diff --git a/dev-docs/upgrade-dependencies.md b/dev-docs/upgrade-dependencies.md
index bc37d38756..cf45e605da 100644
--- a/dev-docs/upgrade-dependencies.md
+++ b/dev-docs/upgrade-dependencies.md
@@ -11,3 +11,17 @@ Contact JJ so he uploads the binaries to the S3 bucket.
- In `src/import_map.json`, change the version number of the imports like `https://deno.land/std@0.204.0/archive` to the new version number (e.g. `0.205.0`).
- run `./package/scripts/vendoring/vendor.sh`
+
+## Upgrade mermaidjs
+
+Apparently mermaidjs doesn't actually build mermaid in their releases :shrug:.
+They also don't appear to offer any clear documentation on how to do it, and `npm install` from their `packages/mermaidjs` directory just fails.
+
+So, we grab the published javascript bundles from unpkg.com.
+
+For version 11.2.0, for example, these are:
+
+- https://unpkg.com/mermaid@11.2.0/dist/mermaid.js
+- https://unpkg.com/mermaid@11.2.0/dist/mermaid.min.js
+
+Copy these files to `src/resources/formats/html/mermaid`.
diff --git a/news/changelog-1.6.md b/news/changelog-1.6.md
index 27551eeb19..1d325a1f8c 100644
--- a/news/changelog-1.6.md
+++ b/news/changelog-1.6.md
@@ -71,6 +71,7 @@ All changes included in 1.6:
## Other Fixes and Improvements
+- Dependency update: `mermaidjs` to 11.2.0.
- ([#10608](https://github.com/quarto-dev/quarto-cli/issues/10608)): Don't overwrite the built-in CSS function `contrast` in Quarto's SCSS.
- ([#10162](https://github.com/quarto-dev/quarto-cli/issues/10162)): Use Edge on `macOS` as a Chromium browser when available.
- ([#10235](https://github.com/quarto-dev/quarto-cli/issues/10235)): Configure the CI schedule trigger to activate exclusively for the upstream repository.
diff --git a/src/resources/formats/html/mermaid/mermaid.js b/src/resources/formats/html/mermaid/mermaid.js
index 5c750276e5..cd95d1c5d1 100644
--- a/src/resources/formats/html/mermaid/mermaid.js
+++ b/src/resources/formats/html/mermaid/mermaid.js
@@ -1,163303 +1,130833 @@
-(function(global2, factory) {
- typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.mermaid = factory());
-})(this, function() {
- "use strict";
- function dedent(templ) {
- var values2 = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- values2[_i - 1] = arguments[_i];
- }
- var strings = Array.from(typeof templ === "string" ? [templ] : templ);
- strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, "");
- var indentLengths = strings.reduce(function(arr, str2) {
- var matches = str2.match(/\n([\t ]+|(?!\s).)/g);
- if (matches) {
- return arr.concat(matches.map(function(match) {
- var _a, _b;
- return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
- }));
- }
- return arr;
- }, []);
- if (indentLengths.length) {
- var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g");
- strings = strings.map(function(str2) {
- return str2.replace(pattern_1, "\n");
+"use strict";
+var __esbuild_esm_mermaid = (() => {
+ var __create = Object.create;
+ var __defProp = Object.defineProperty;
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+ var __getOwnPropNames = Object.getOwnPropertyNames;
+ var __getProtoOf = Object.getPrototypeOf;
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
+ var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true });
+ var __esm = (fn3, res) => function __init() {
+ return fn3 && (res = (0, fn3[__getOwnPropNames(fn3)[0]])(fn3 = 0)), res;
+ };
+ var __commonJS = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+ };
+ var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+ };
+ var __copyProps = (to, from2, except, desc) => {
+ if (from2 && typeof from2 === "object" || typeof from2 === "function") {
+ for (let key of __getOwnPropNames(from2))
+ if (!__hasOwnProp.call(to, key) && key !== except)
+ __defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
+ }
+ return to;
+ };
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+ ));
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+
+ // ../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js
+ var require_dayjs_min = __commonJS({
+ "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js"(exports2, module2) {
+ "use strict";
+ !function(t4, e3) {
+ "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = e3() : "function" == typeof define && define.amd ? define(e3) : (t4 = "undefined" != typeof globalThis ? globalThis : t4 || self).dayjs = e3();
+ }(exports2, function() {
+ "use strict";
+ var t4 = 1e3, e3 = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u2 = "hour", a2 = "day", o2 = "week", c3 = "month", f3 = "quarter", h2 = "year", d2 = "date", l2 = "Invalid Date", $3 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y5 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M2 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: /* @__PURE__ */ __name(function(t5) {
+ var e4 = ["th", "st", "nd", "rd"], n3 = t5 % 100;
+ return "[" + t5 + (e4[(n3 - 20) % 10] || e4[n3] || e4[0]) + "]";
+ }, "ordinal") }, m2 = /* @__PURE__ */ __name(function(t5, e4, n3) {
+ var r3 = String(t5);
+ return !r3 || r3.length >= e4 ? t5 : "" + Array(e4 + 1 - r3.length).join(n3) + t5;
+ }, "m"), v3 = { s: m2, z: /* @__PURE__ */ __name(function(t5) {
+ var e4 = -t5.utcOffset(), n3 = Math.abs(e4), r3 = Math.floor(n3 / 60), i3 = n3 % 60;
+ return (e4 <= 0 ? "+" : "-") + m2(r3, 2, "0") + ":" + m2(i3, 2, "0");
+ }, "z"), m: /* @__PURE__ */ __name(function t5(e4, n3) {
+ if (e4.date() < n3.date()) return -t5(n3, e4);
+ var r3 = 12 * (n3.year() - e4.year()) + (n3.month() - e4.month()), i3 = e4.clone().add(r3, c3), s3 = n3 - i3 < 0, u3 = e4.clone().add(r3 + (s3 ? -1 : 1), c3);
+ return +(-(r3 + (n3 - i3) / (s3 ? i3 - u3 : u3 - i3)) || 0);
+ }, "t"), a: /* @__PURE__ */ __name(function(t5) {
+ return t5 < 0 ? Math.ceil(t5) || 0 : Math.floor(t5);
+ }, "a"), p: /* @__PURE__ */ __name(function(t5) {
+ return { M: c3, y: h2, w: o2, d: a2, D: d2, h: u2, m: s2, s: i2, ms: r2, Q: f3 }[t5] || String(t5 || "").toLowerCase().replace(/s$/, "");
+ }, "p"), u: /* @__PURE__ */ __name(function(t5) {
+ return void 0 === t5;
+ }, "u") }, g2 = "en", D3 = {};
+ D3[g2] = M2;
+ var p3 = "$isDayjsObject", S3 = /* @__PURE__ */ __name(function(t5) {
+ return t5 instanceof _2 || !(!t5 || !t5[p3]);
+ }, "S"), w3 = /* @__PURE__ */ __name(function t5(e4, n3, r3) {
+ var i3;
+ if (!e4) return g2;
+ if ("string" == typeof e4) {
+ var s3 = e4.toLowerCase();
+ D3[s3] && (i3 = s3), n3 && (D3[s3] = n3, i3 = s3);
+ var u3 = e4.split("-");
+ if (!i3 && u3.length > 1) return t5(u3[0]);
+ } else {
+ var a3 = e4.name;
+ D3[a3] = e4, i3 = a3;
+ }
+ return !r3 && i3 && (g2 = i3), i3 || !r3 && g2;
+ }, "t"), O2 = /* @__PURE__ */ __name(function(t5, e4) {
+ if (S3(t5)) return t5.clone();
+ var n3 = "object" == typeof e4 ? e4 : {};
+ return n3.date = t5, n3.args = arguments, new _2(n3);
+ }, "O"), b2 = v3;
+ b2.l = w3, b2.i = S3, b2.w = function(t5, e4) {
+ return O2(t5, { locale: e4.$L, utc: e4.$u, x: e4.$x, $offset: e4.$offset });
+ };
+ var _2 = function() {
+ function M3(t5) {
+ this.$L = w3(t5.locale, null, true), this.parse(t5), this.$x = this.$x || t5.x || {}, this[p3] = true;
+ }
+ __name(M3, "M");
+ var m3 = M3.prototype;
+ return m3.parse = function(t5) {
+ this.$d = function(t6) {
+ var e4 = t6.date, n3 = t6.utc;
+ if (null === e4) return /* @__PURE__ */ new Date(NaN);
+ if (b2.u(e4)) return /* @__PURE__ */ new Date();
+ if (e4 instanceof Date) return new Date(e4);
+ if ("string" == typeof e4 && !/Z$/i.test(e4)) {
+ var r3 = e4.match($3);
+ if (r3) {
+ var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3);
+ return n3 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3);
+ }
+ }
+ return new Date(e4);
+ }(t5), this.init();
+ }, m3.init = function() {
+ var t5 = this.$d;
+ this.$y = t5.getFullYear(), this.$M = t5.getMonth(), this.$D = t5.getDate(), this.$W = t5.getDay(), this.$H = t5.getHours(), this.$m = t5.getMinutes(), this.$s = t5.getSeconds(), this.$ms = t5.getMilliseconds();
+ }, m3.$utils = function() {
+ return b2;
+ }, m3.isValid = function() {
+ return !(this.$d.toString() === l2);
+ }, m3.isSame = function(t5, e4) {
+ var n3 = O2(t5);
+ return this.startOf(e4) <= n3 && n3 <= this.endOf(e4);
+ }, m3.isAfter = function(t5, e4) {
+ return O2(t5) < this.startOf(e4);
+ }, m3.isBefore = function(t5, e4) {
+ return this.endOf(e4) < O2(t5);
+ }, m3.$g = function(t5, e4, n3) {
+ return b2.u(t5) ? this[e4] : this.set(n3, t5);
+ }, m3.unix = function() {
+ return Math.floor(this.valueOf() / 1e3);
+ }, m3.valueOf = function() {
+ return this.$d.getTime();
+ }, m3.startOf = function(t5, e4) {
+ var n3 = this, r3 = !!b2.u(e4) || e4, f4 = b2.p(t5), l3 = /* @__PURE__ */ __name(function(t6, e6) {
+ var i3 = b2.w(n3.$u ? Date.UTC(n3.$y, e6, t6) : new Date(n3.$y, e6, t6), n3);
+ return r3 ? i3 : i3.endOf(a2);
+ }, "l"), $4 = /* @__PURE__ */ __name(function(t6, e6) {
+ return b2.w(n3.toDate()[t6].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e6)), n3);
+ }, "$"), y6 = this.$W, M4 = this.$M, m4 = this.$D, v4 = "set" + (this.$u ? "UTC" : "");
+ switch (f4) {
+ case h2:
+ return r3 ? l3(1, 0) : l3(31, 11);
+ case c3:
+ return r3 ? l3(1, M4) : l3(0, M4 + 1);
+ case o2:
+ var g3 = this.$locale().weekStart || 0, D4 = (y6 < g3 ? y6 + 7 : y6) - g3;
+ return l3(r3 ? m4 - D4 : m4 + (6 - D4), M4);
+ case a2:
+ case d2:
+ return $4(v4 + "Hours", 0);
+ case u2:
+ return $4(v4 + "Minutes", 1);
+ case s2:
+ return $4(v4 + "Seconds", 2);
+ case i2:
+ return $4(v4 + "Milliseconds", 3);
+ default:
+ return this.clone();
+ }
+ }, m3.endOf = function(t5) {
+ return this.startOf(t5, false);
+ }, m3.$set = function(t5, e4) {
+ var n3, o3 = b2.p(t5), f4 = "set" + (this.$u ? "UTC" : ""), l3 = (n3 = {}, n3[a2] = f4 + "Date", n3[d2] = f4 + "Date", n3[c3] = f4 + "Month", n3[h2] = f4 + "FullYear", n3[u2] = f4 + "Hours", n3[s2] = f4 + "Minutes", n3[i2] = f4 + "Seconds", n3[r2] = f4 + "Milliseconds", n3)[o3], $4 = o3 === a2 ? this.$D + (e4 - this.$W) : e4;
+ if (o3 === c3 || o3 === h2) {
+ var y6 = this.clone().set(d2, 1);
+ y6.$d[l3]($4), y6.init(), this.$d = y6.set(d2, Math.min(this.$D, y6.daysInMonth())).$d;
+ } else l3 && this.$d[l3]($4);
+ return this.init(), this;
+ }, m3.set = function(t5, e4) {
+ return this.clone().$set(t5, e4);
+ }, m3.get = function(t5) {
+ return this[b2.p(t5)]();
+ }, m3.add = function(r3, f4) {
+ var d3, l3 = this;
+ r3 = Number(r3);
+ var $4 = b2.p(f4), y6 = /* @__PURE__ */ __name(function(t5) {
+ var e4 = O2(l3);
+ return b2.w(e4.date(e4.date() + Math.round(t5 * r3)), l3);
+ }, "y");
+ if ($4 === c3) return this.set(c3, this.$M + r3);
+ if ($4 === h2) return this.set(h2, this.$y + r3);
+ if ($4 === a2) return y6(1);
+ if ($4 === o2) return y6(7);
+ var M4 = (d3 = {}, d3[s2] = e3, d3[u2] = n2, d3[i2] = t4, d3)[$4] || 1, m4 = this.$d.getTime() + r3 * M4;
+ return b2.w(m4, this);
+ }, m3.subtract = function(t5, e4) {
+ return this.add(-1 * t5, e4);
+ }, m3.format = function(t5) {
+ var e4 = this, n3 = this.$locale();
+ if (!this.isValid()) return n3.invalidDate || l2;
+ var r3 = t5 || "YYYY-MM-DDTHH:mm:ssZ", i3 = b2.z(this), s3 = this.$H, u3 = this.$m, a3 = this.$M, o3 = n3.weekdays, c4 = n3.months, f4 = n3.meridiem, h3 = /* @__PURE__ */ __name(function(t6, n4, i4, s4) {
+ return t6 && (t6[n4] || t6(e4, r3)) || i4[n4].slice(0, s4);
+ }, "h"), d3 = /* @__PURE__ */ __name(function(t6) {
+ return b2.s(s3 % 12 || 12, t6, "0");
+ }, "d"), $4 = f4 || function(t6, e6, n4) {
+ var r4 = t6 < 12 ? "AM" : "PM";
+ return n4 ? r4.toLowerCase() : r4;
+ };
+ return r3.replace(y5, function(t6, r4) {
+ return r4 || function(t7) {
+ switch (t7) {
+ case "YY":
+ return String(e4.$y).slice(-2);
+ case "YYYY":
+ return b2.s(e4.$y, 4, "0");
+ case "M":
+ return a3 + 1;
+ case "MM":
+ return b2.s(a3 + 1, 2, "0");
+ case "MMM":
+ return h3(n3.monthsShort, a3, c4, 3);
+ case "MMMM":
+ return h3(c4, a3);
+ case "D":
+ return e4.$D;
+ case "DD":
+ return b2.s(e4.$D, 2, "0");
+ case "d":
+ return String(e4.$W);
+ case "dd":
+ return h3(n3.weekdaysMin, e4.$W, o3, 2);
+ case "ddd":
+ return h3(n3.weekdaysShort, e4.$W, o3, 3);
+ case "dddd":
+ return o3[e4.$W];
+ case "H":
+ return String(s3);
+ case "HH":
+ return b2.s(s3, 2, "0");
+ case "h":
+ return d3(1);
+ case "hh":
+ return d3(2);
+ case "a":
+ return $4(s3, u3, true);
+ case "A":
+ return $4(s3, u3, false);
+ case "m":
+ return String(u3);
+ case "mm":
+ return b2.s(u3, 2, "0");
+ case "s":
+ return String(e4.$s);
+ case "ss":
+ return b2.s(e4.$s, 2, "0");
+ case "SSS":
+ return b2.s(e4.$ms, 3, "0");
+ case "Z":
+ return i3;
+ }
+ return null;
+ }(t6) || i3.replace(":", "");
+ });
+ }, m3.utcOffset = function() {
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
+ }, m3.diff = function(r3, d3, l3) {
+ var $4, y6 = this, M4 = b2.p(d3), m4 = O2(r3), v4 = (m4.utcOffset() - this.utcOffset()) * e3, g3 = this - m4, D4 = /* @__PURE__ */ __name(function() {
+ return b2.m(y6, m4);
+ }, "D");
+ switch (M4) {
+ case h2:
+ $4 = D4() / 12;
+ break;
+ case c3:
+ $4 = D4();
+ break;
+ case f3:
+ $4 = D4() / 3;
+ break;
+ case o2:
+ $4 = (g3 - v4) / 6048e5;
+ break;
+ case a2:
+ $4 = (g3 - v4) / 864e5;
+ break;
+ case u2:
+ $4 = g3 / n2;
+ break;
+ case s2:
+ $4 = g3 / e3;
+ break;
+ case i2:
+ $4 = g3 / t4;
+ break;
+ default:
+ $4 = g3;
+ }
+ return l3 ? $4 : b2.a($4);
+ }, m3.daysInMonth = function() {
+ return this.endOf(c3).$D;
+ }, m3.$locale = function() {
+ return D3[this.$L];
+ }, m3.locale = function(t5, e4) {
+ if (!t5) return this.$L;
+ var n3 = this.clone(), r3 = w3(t5, e4, true);
+ return r3 && (n3.$L = r3), n3;
+ }, m3.clone = function() {
+ return b2.w(this.$d, this);
+ }, m3.toDate = function() {
+ return new Date(this.valueOf());
+ }, m3.toJSON = function() {
+ return this.isValid() ? this.toISOString() : null;
+ }, m3.toISOString = function() {
+ return this.$d.toISOString();
+ }, m3.toString = function() {
+ return this.$d.toUTCString();
+ }, M3;
+ }(), k2 = _2.prototype;
+ return O2.prototype = k2, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u2], ["$W", a2], ["$M", c3], ["$y", h2], ["$D", d2]].forEach(function(t5) {
+ k2[t5[1]] = function(e4) {
+ return this.$g(e4, t5[0], t5[1]);
+ };
+ }), O2.extend = function(t5, e4) {
+ return t5.$i || (t5(e4, _2, O2), t5.$i = true), O2;
+ }, O2.locale = w3, O2.isDayjs = S3, O2.unix = function(t5) {
+ return O2(1e3 * t5);
+ }, O2.en = D3[g2], O2.Ls = D3, O2.p = {}, O2;
});
}
- strings[0] = strings[0].replace(/^\r?\n/, "");
- var string = strings[0];
- values2.forEach(function(value, i2) {
- var endentations = string.match(/(?:^|\n)( *)$/);
- var endentation = endentations ? endentations[1] : "";
- var indentedValue = value;
- if (typeof value === "string" && value.includes("\n")) {
- indentedValue = String(value).split("\n").map(function(str2, i3) {
- return i3 === 0 ? str2 : "" + endentation + str2;
- }).join("\n");
- }
- string += indentedValue + strings[i2 + 1];
- });
- return string;
- }
- var SECONDS_A_MINUTE = 60;
- var SECONDS_A_HOUR = SECONDS_A_MINUTE * 60;
- var SECONDS_A_DAY = SECONDS_A_HOUR * 24;
- var SECONDS_A_WEEK = SECONDS_A_DAY * 7;
- var MILLISECONDS_A_SECOND = 1e3;
- var MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND;
- var MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND;
- var MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND;
- var MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND;
- var MS = "millisecond";
- var S = "second";
- var MIN = "minute";
- var H = "hour";
- var D = "day";
- var W = "week";
- var M = "month";
- var Q = "quarter";
- var Y = "year";
- var DATE = "date";
- var FORMAT_DEFAULT = "YYYY-MM-DDTHH:mm:ssZ";
- var INVALID_DATE_STRING = "Invalid Date";
- var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
- var REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
- const en = {
- name: "en",
- weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
- months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
- ordinal: function ordinal2(n) {
- var s = ["th", "st", "nd", "rd"];
- var v = n % 100;
- return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
- }
- };
- var padStart$1 = function padStart2(string, length2, pad2) {
- var s = String(string);
- if (!s || s.length >= length2)
- return string;
- return "" + Array(length2 + 1 - s.length).join(pad2) + string;
- };
- var padZoneStr = function padZoneStr2(instance2) {
- var negMinutes = -instance2.utcOffset();
- var minutes = Math.abs(negMinutes);
- var hourOffset = Math.floor(minutes / 60);
- var minuteOffset = minutes % 60;
- return (negMinutes <= 0 ? "+" : "-") + padStart$1(hourOffset, 2, "0") + ":" + padStart$1(minuteOffset, 2, "0");
- };
- var monthDiff = function monthDiff2(a, b) {
- if (a.date() < b.date())
- return -monthDiff2(b, a);
- var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month());
- var anchor = a.clone().add(wholeMonthDiff, M);
- var c2 = b - anchor < 0;
- var anchor2 = a.clone().add(wholeMonthDiff + (c2 ? -1 : 1), M);
- return +(-(wholeMonthDiff + (b - anchor) / (c2 ? anchor - anchor2 : anchor2 - anchor)) || 0);
- };
- var absFloor = function absFloor2(n) {
- return n < 0 ? Math.ceil(n) || 0 : Math.floor(n);
- };
- var prettyUnit = function prettyUnit2(u2) {
- var special = {
- M,
- y: Y,
- w: W,
- d: D,
- D: DATE,
- h: H,
- m: MIN,
- s: S,
- ms: MS,
- Q
- };
- return special[u2] || String(u2 || "").toLowerCase().replace(/s$/, "");
- };
- var isUndefined$1 = function isUndefined2(s) {
- return s === void 0;
- };
- const U = {
- s: padStart$1,
- z: padZoneStr,
- m: monthDiff,
- a: absFloor,
- p: prettyUnit,
- u: isUndefined$1
- };
- var L = "en";
- var Ls = {};
- Ls[L] = en;
- var isDayjs = function isDayjs2(d) {
- return d instanceof Dayjs;
- };
- var parseLocale = function parseLocale2(preset, object2, isLocal) {
- var l;
- if (!preset)
- return L;
- if (typeof preset === "string") {
- var presetLower = preset.toLowerCase();
- if (Ls[presetLower]) {
- l = presetLower;
- }
- if (object2) {
- Ls[presetLower] = object2;
- l = presetLower;
- }
- var presetSplit = preset.split("-");
- if (!l && presetSplit.length > 1) {
- return parseLocale2(presetSplit[0]);
- }
- } else {
- var name2 = preset.name;
- Ls[name2] = preset;
- l = name2;
- }
- if (!isLocal && l)
- L = l;
- return l || !isLocal && L;
- };
- var dayjs = function dayjs2(date2, c2) {
- if (isDayjs(date2)) {
- return date2.clone();
- }
- var cfg = typeof c2 === "object" ? c2 : {};
- cfg.date = date2;
- cfg.args = arguments;
- return new Dayjs(cfg);
- };
- var wrapper = function wrapper2(date2, instance2) {
- return dayjs(date2, {
- locale: instance2.$L,
- utc: instance2.$u,
- x: instance2.$x,
- $offset: instance2.$offset
- // todo: refactor; do not use this.$offset in you code
- });
- };
- var Utils$1 = U;
- Utils$1.l = parseLocale;
- Utils$1.i = isDayjs;
- Utils$1.w = wrapper;
- var parseDate = function parseDate2(cfg) {
- var date2 = cfg.date, utc = cfg.utc;
- if (date2 === null)
- return /* @__PURE__ */ new Date(NaN);
- if (Utils$1.u(date2))
- return /* @__PURE__ */ new Date();
- if (date2 instanceof Date)
- return new Date(date2);
- if (typeof date2 === "string" && !/Z$/i.test(date2)) {
- var d = date2.match(REGEX_PARSE);
- if (d) {
- var m = d[2] - 1 || 0;
- var ms = (d[7] || "0").substring(0, 3);
- if (utc) {
- return new Date(Date.UTC(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms));
- }
- return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
- }
- }
- return new Date(date2);
- };
- var Dayjs = /* @__PURE__ */ function() {
- function Dayjs2(cfg) {
- this.$L = parseLocale(cfg.locale, null, true);
- this.parse(cfg);
- }
- var _proto = Dayjs2.prototype;
- _proto.parse = function parse2(cfg) {
- this.$d = parseDate(cfg);
- this.$x = cfg.x || {};
- this.init();
- };
- _proto.init = function init2() {
- var $d = this.$d;
- this.$y = $d.getFullYear();
- this.$M = $d.getMonth();
- this.$D = $d.getDate();
- this.$W = $d.getDay();
- this.$H = $d.getHours();
- this.$m = $d.getMinutes();
- this.$s = $d.getSeconds();
- this.$ms = $d.getMilliseconds();
- };
- _proto.$utils = function $utils() {
- return Utils$1;
- };
- _proto.isValid = function isValid() {
- return !(this.$d.toString() === INVALID_DATE_STRING);
- };
- _proto.isSame = function isSame(that, units) {
- var other = dayjs(that);
- return this.startOf(units) <= other && other <= this.endOf(units);
- };
- _proto.isAfter = function isAfter(that, units) {
- return dayjs(that) < this.startOf(units);
- };
- _proto.isBefore = function isBefore(that, units) {
- return this.endOf(units) < dayjs(that);
- };
- _proto.$g = function $g(input, get2, set2) {
- if (Utils$1.u(input))
- return this[get2];
- return this.set(set2, input);
- };
- _proto.unix = function unix() {
- return Math.floor(this.valueOf() / 1e3);
- };
- _proto.valueOf = function valueOf() {
- return this.$d.getTime();
- };
- _proto.startOf = function startOf(units, _startOf) {
- var _this = this;
- var isStartOf = !Utils$1.u(_startOf) ? _startOf : true;
- var unit2 = Utils$1.p(units);
- var instanceFactory = function instanceFactory2(d, m) {
- var ins = Utils$1.w(_this.$u ? Date.UTC(_this.$y, m, d) : new Date(_this.$y, m, d), _this);
- return isStartOf ? ins : ins.endOf(D);
- };
- var instanceFactorySet = function instanceFactorySet2(method, slice2) {
- var argumentStart = [0, 0, 0, 0];
- var argumentEnd = [23, 59, 59, 999];
- return Utils$1.w(_this.toDate()[method].apply(
- // eslint-disable-line prefer-spread
- _this.toDate("s"),
- (isStartOf ? argumentStart : argumentEnd).slice(slice2)
- ), _this);
- };
- var $W = this.$W, $M = this.$M, $D = this.$D;
- var utcPad = "set" + (this.$u ? "UTC" : "");
- switch (unit2) {
- case Y:
- return isStartOf ? instanceFactory(1, 0) : instanceFactory(31, 11);
- case M:
- return isStartOf ? instanceFactory(1, $M) : instanceFactory(0, $M + 1);
- case W: {
- var weekStart = this.$locale().weekStart || 0;
- var gap = ($W < weekStart ? $W + 7 : $W) - weekStart;
- return instanceFactory(isStartOf ? $D - gap : $D + (6 - gap), $M);
- }
- case D:
- case DATE:
- return instanceFactorySet(utcPad + "Hours", 0);
- case H:
- return instanceFactorySet(utcPad + "Minutes", 1);
- case MIN:
- return instanceFactorySet(utcPad + "Seconds", 2);
- case S:
- return instanceFactorySet(utcPad + "Milliseconds", 3);
- default:
- return this.clone();
- }
- };
- _proto.endOf = function endOf(arg) {
- return this.startOf(arg, false);
- };
- _proto.$set = function $set(units, _int) {
- var _C$D$C$DATE$C$M$C$Y$C;
- var unit2 = Utils$1.p(units);
- var utcPad = "set" + (this.$u ? "UTC" : "");
- var name2 = (_C$D$C$DATE$C$M$C$Y$C = {}, _C$D$C$DATE$C$M$C$Y$C[D] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[DATE] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[M] = utcPad + "Month", _C$D$C$DATE$C$M$C$Y$C[Y] = utcPad + "FullYear", _C$D$C$DATE$C$M$C$Y$C[H] = utcPad + "Hours", _C$D$C$DATE$C$M$C$Y$C[MIN] = utcPad + "Minutes", _C$D$C$DATE$C$M$C$Y$C[S] = utcPad + "Seconds", _C$D$C$DATE$C$M$C$Y$C[MS] = utcPad + "Milliseconds", _C$D$C$DATE$C$M$C$Y$C)[unit2];
- var arg = unit2 === D ? this.$D + (_int - this.$W) : _int;
- if (unit2 === M || unit2 === Y) {
- var date2 = this.clone().set(DATE, 1);
- date2.$d[name2](arg);
- date2.init();
- this.$d = date2.set(DATE, Math.min(this.$D, date2.daysInMonth())).$d;
- } else if (name2)
- this.$d[name2](arg);
- this.init();
- return this;
- };
- _proto.set = function set2(string, _int2) {
- return this.clone().$set(string, _int2);
- };
- _proto.get = function get2(unit2) {
- return this[Utils$1.p(unit2)]();
- };
- _proto.add = function add(number2, units) {
- var _this2 = this, _C$MIN$C$H$C$S$unit;
- number2 = Number(number2);
- var unit2 = Utils$1.p(units);
- var instanceFactorySet = function instanceFactorySet2(n) {
- var d = dayjs(_this2);
- return Utils$1.w(d.date(d.date() + Math.round(n * number2)), _this2);
- };
- if (unit2 === M) {
- return this.set(M, this.$M + number2);
- }
- if (unit2 === Y) {
- return this.set(Y, this.$y + number2);
- }
- if (unit2 === D) {
- return instanceFactorySet(1);
- }
- if (unit2 === W) {
- return instanceFactorySet(7);
- }
- var step = (_C$MIN$C$H$C$S$unit = {}, _C$MIN$C$H$C$S$unit[MIN] = MILLISECONDS_A_MINUTE, _C$MIN$C$H$C$S$unit[H] = MILLISECONDS_A_HOUR, _C$MIN$C$H$C$S$unit[S] = MILLISECONDS_A_SECOND, _C$MIN$C$H$C$S$unit)[unit2] || 1;
- var nextTimeStamp = this.$d.getTime() + number2 * step;
- return Utils$1.w(nextTimeStamp, this);
- };
- _proto.subtract = function subtract(number2, string) {
- return this.add(number2 * -1, string);
- };
- _proto.format = function format2(formatStr) {
- var _this3 = this;
- var locale2 = this.$locale();
- if (!this.isValid())
- return locale2.invalidDate || INVALID_DATE_STRING;
- var str2 = formatStr || FORMAT_DEFAULT;
- var zoneStr = Utils$1.z(this);
- var $H = this.$H, $m = this.$m, $M = this.$M;
- var weekdays = locale2.weekdays, months = locale2.months, meridiem = locale2.meridiem;
- var getShort = function getShort2(arr, index, full, length2) {
- return arr && (arr[index] || arr(_this3, str2)) || full[index].slice(0, length2);
- };
- var get$H = function get$H2(num) {
- return Utils$1.s($H % 12 || 12, num, "0");
- };
- var meridiemFunc = meridiem || function(hour2, minute2, isLowercase) {
- var m = hour2 < 12 ? "AM" : "PM";
- return isLowercase ? m.toLowerCase() : m;
- };
- var matches = {
- YY: String(this.$y).slice(-2),
- YYYY: this.$y,
- M: $M + 1,
- MM: Utils$1.s($M + 1, 2, "0"),
- MMM: getShort(locale2.monthsShort, $M, months, 3),
- MMMM: getShort(months, $M),
- D: this.$D,
- DD: Utils$1.s(this.$D, 2, "0"),
- d: String(this.$W),
- dd: getShort(locale2.weekdaysMin, this.$W, weekdays, 2),
- ddd: getShort(locale2.weekdaysShort, this.$W, weekdays, 3),
- dddd: weekdays[this.$W],
- H: String($H),
- HH: Utils$1.s($H, 2, "0"),
- h: get$H(1),
- hh: get$H(2),
- a: meridiemFunc($H, $m, true),
- A: meridiemFunc($H, $m, false),
- m: String($m),
- mm: Utils$1.s($m, 2, "0"),
- s: String(this.$s),
- ss: Utils$1.s(this.$s, 2, "0"),
- SSS: Utils$1.s(this.$ms, 3, "0"),
- Z: zoneStr
- // 'ZZ' logic below
- };
- return str2.replace(REGEX_FORMAT, function(match, $1) {
- return $1 || matches[match] || zoneStr.replace(":", "");
- });
- };
- _proto.utcOffset = function utcOffset() {
- return -Math.round(this.$d.getTimezoneOffset() / 15) * 15;
- };
- _proto.diff = function diff(input, units, _float) {
- var _C$Y$C$M$C$Q$C$W$C$D$;
- var unit2 = Utils$1.p(units);
- var that = dayjs(input);
- var zoneDelta = (that.utcOffset() - this.utcOffset()) * MILLISECONDS_A_MINUTE;
- var diff2 = this - that;
- var result = Utils$1.m(this, that);
- result = (_C$Y$C$M$C$Q$C$W$C$D$ = {}, _C$Y$C$M$C$Q$C$W$C$D$[Y] = result / 12, _C$Y$C$M$C$Q$C$W$C$D$[M] = result, _C$Y$C$M$C$Q$C$W$C$D$[Q] = result / 3, _C$Y$C$M$C$Q$C$W$C$D$[W] = (diff2 - zoneDelta) / MILLISECONDS_A_WEEK, _C$Y$C$M$C$Q$C$W$C$D$[D] = (diff2 - zoneDelta) / MILLISECONDS_A_DAY, _C$Y$C$M$C$Q$C$W$C$D$[H] = diff2 / MILLISECONDS_A_HOUR, _C$Y$C$M$C$Q$C$W$C$D$[MIN] = diff2 / MILLISECONDS_A_MINUTE, _C$Y$C$M$C$Q$C$W$C$D$[S] = diff2 / MILLISECONDS_A_SECOND, _C$Y$C$M$C$Q$C$W$C$D$)[unit2] || diff2;
- return _float ? result : Utils$1.a(result);
- };
- _proto.daysInMonth = function daysInMonth() {
- return this.endOf(M).$D;
- };
- _proto.$locale = function $locale() {
- return Ls[this.$L];
- };
- _proto.locale = function locale2(preset, object2) {
- if (!preset)
- return this.$L;
- var that = this.clone();
- var nextLocaleName = parseLocale(preset, object2, true);
- if (nextLocaleName)
- that.$L = nextLocaleName;
- return that;
- };
- _proto.clone = function clone2() {
- return Utils$1.w(this.$d, this);
- };
- _proto.toDate = function toDate() {
- return new Date(this.valueOf());
- };
- _proto.toJSON = function toJSON() {
- return this.isValid() ? this.toISOString() : null;
- };
- _proto.toISOString = function toISOString() {
- return this.$d.toISOString();
- };
- _proto.toString = function toString2() {
- return this.$d.toUTCString();
- };
- return Dayjs2;
- }();
- var proto = Dayjs.prototype;
- dayjs.prototype = proto;
- [["$ms", MS], ["$s", S], ["$m", MIN], ["$H", H], ["$W", D], ["$M", M], ["$y", Y], ["$D", DATE]].forEach(function(g) {
- proto[g[1]] = function(input) {
- return this.$g(input, g[0], g[1]);
- };
});
- dayjs.extend = function(plugin2, option) {
- if (!plugin2.$i) {
- plugin2(option, Dayjs, dayjs);
- plugin2.$i = true;
- }
- return dayjs;
- };
- dayjs.locale = parseLocale;
- dayjs.isDayjs = isDayjs;
- dayjs.unix = function(timestamp2) {
- return dayjs(timestamp2 * 1e3);
- };
- dayjs.en = Ls[L];
- dayjs.Ls = Ls;
- dayjs.p = {};
- const LEVELS = {
- trace: 0,
- debug: 1,
- info: 2,
- warn: 3,
- error: 4,
- fatal: 5
- };
- const log$1 = {
- trace: (..._args) => {
- },
- debug: (..._args) => {
- },
- info: (..._args) => {
- },
- warn: (..._args) => {
- },
- error: (..._args) => {
- },
- fatal: (..._args) => {
- }
- };
- const setLogLevel$1 = function(level = "fatal") {
- let numericLevel = LEVELS.fatal;
- if (typeof level === "string") {
- level = level.toLowerCase();
- if (level in LEVELS) {
- numericLevel = LEVELS[level];
- }
- } else if (typeof level === "number") {
- numericLevel = level;
- }
- log$1.trace = () => {
- };
- log$1.debug = () => {
- };
- log$1.info = () => {
- };
- log$1.warn = () => {
- };
- log$1.error = () => {
- };
- log$1.fatal = () => {
- };
- if (numericLevel <= LEVELS.fatal) {
- log$1.fatal = console.error ? console.error.bind(console, format$1("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format$1("FATAL"));
- }
- if (numericLevel <= LEVELS.error) {
- log$1.error = console.error ? console.error.bind(console, format$1("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format$1("ERROR"));
- }
- if (numericLevel <= LEVELS.warn) {
- log$1.warn = console.warn ? console.warn.bind(console, format$1("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format$1("WARN"));
- }
- if (numericLevel <= LEVELS.info) {
- log$1.info = console.info ? console.info.bind(console, format$1("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format$1("INFO"));
+
+ // src/logger.ts
+ var import_dayjs, LEVELS, log, setLogLevel, format;
+ var init_logger = __esm({
+ "src/logger.ts"() {
+ "use strict";
+ import_dayjs = __toESM(require_dayjs_min(), 1);
+ LEVELS = {
+ trace: 0,
+ debug: 1,
+ info: 2,
+ warn: 3,
+ error: 4,
+ fatal: 5
+ };
+ log = {
+ trace: /* @__PURE__ */ __name((..._args) => {
+ }, "trace"),
+ debug: /* @__PURE__ */ __name((..._args) => {
+ }, "debug"),
+ info: /* @__PURE__ */ __name((..._args) => {
+ }, "info"),
+ warn: /* @__PURE__ */ __name((..._args) => {
+ }, "warn"),
+ error: /* @__PURE__ */ __name((..._args) => {
+ }, "error"),
+ fatal: /* @__PURE__ */ __name((..._args) => {
+ }, "fatal")
+ };
+ setLogLevel = /* @__PURE__ */ __name(function(level = "fatal") {
+ let numericLevel = LEVELS.fatal;
+ if (typeof level === "string") {
+ if (level.toLowerCase() in LEVELS) {
+ numericLevel = LEVELS[level];
+ }
+ } else if (typeof level === "number") {
+ numericLevel = level;
+ }
+ log.trace = () => {
+ };
+ log.debug = () => {
+ };
+ log.info = () => {
+ };
+ log.warn = () => {
+ };
+ log.error = () => {
+ };
+ log.fatal = () => {
+ };
+ if (numericLevel <= LEVELS.fatal) {
+ log.fatal = console.error ? console.error.bind(console, format("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format("FATAL"));
+ }
+ if (numericLevel <= LEVELS.error) {
+ log.error = console.error ? console.error.bind(console, format("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format("ERROR"));
+ }
+ if (numericLevel <= LEVELS.warn) {
+ log.warn = console.warn ? console.warn.bind(console, format("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format("WARN"));
+ }
+ if (numericLevel <= LEVELS.info) {
+ log.info = console.info ? console.info.bind(console, format("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format("INFO"));
+ }
+ if (numericLevel <= LEVELS.debug) {
+ log.debug = console.debug ? console.debug.bind(console, format("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("DEBUG"));
+ }
+ if (numericLevel <= LEVELS.trace) {
+ log.trace = console.debug ? console.debug.bind(console, format("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("TRACE"));
+ }
+ }, "setLogLevel");
+ format = /* @__PURE__ */ __name((level) => {
+ const time4 = (0, import_dayjs.default)().format("ss.SSS");
+ return `%c${time4} : ${level} : `;
+ }, "format");
}
- if (numericLevel <= LEVELS.debug) {
- log$1.debug = console.debug ? console.debug.bind(console, format$1("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format$1("DEBUG"));
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/defaults.mjs
+ var defaultIconDimensions, defaultIconTransformations, defaultIconProps, defaultExtendedIconProps;
+ var init_defaults = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/defaults.mjs"() {
+ "use strict";
+ defaultIconDimensions = Object.freeze(
+ {
+ left: 0,
+ top: 0,
+ width: 16,
+ height: 16
+ }
+ );
+ defaultIconTransformations = Object.freeze({
+ rotate: 0,
+ vFlip: false,
+ hFlip: false
+ });
+ defaultIconProps = Object.freeze({
+ ...defaultIconDimensions,
+ ...defaultIconTransformations
+ });
+ defaultExtendedIconProps = Object.freeze({
+ ...defaultIconProps,
+ body: "",
+ hidden: false
+ });
}
- if (numericLevel <= LEVELS.trace) {
- log$1.trace = console.debug ? console.debug.bind(console, format$1("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format$1("TRACE"));
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/customisations/defaults.mjs
+ var defaultIconSizeCustomisations, defaultIconCustomisations;
+ var init_defaults2 = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/customisations/defaults.mjs"() {
+ "use strict";
+ init_defaults();
+ defaultIconSizeCustomisations = Object.freeze({
+ width: null,
+ height: null
+ });
+ defaultIconCustomisations = Object.freeze({
+ // Dimensions
+ ...defaultIconSizeCustomisations,
+ // Transformations
+ ...defaultIconTransformations
+ });
}
- };
- const format$1 = (level) => {
- const time2 = dayjs().format("ss.SSS");
- return `%c${time2} : ${level} : `;
- };
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
- function getDefaultExportFromCjs(x2) {
- return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
- }
- var dist = {};
- Object.defineProperty(dist, "__esModule", { value: true });
- var sanitizeUrl_1 = dist.sanitizeUrl = void 0;
- var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
- var htmlEntitiesRegex = /(\w+)(^\w|;)?/g;
- var htmlCtrlEntityRegex = /&(newline|tab);/gi;
- var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
- var urlSchemeRegex = /^.+(:|:)/gim;
- var relativeFirstCharacters = [".", "/"];
- function isRelativeUrlWithoutProtocol(url) {
- return relativeFirstCharacters.indexOf(url[0]) > -1;
- }
- function decodeHtmlCharacters(str2) {
- return str2.replace(htmlEntitiesRegex, function(match, dec) {
- return String.fromCharCode(dec);
- });
- }
- function sanitizeUrl$1(url) {
- var sanitizedUrl = decodeHtmlCharacters(url || "").replace(htmlCtrlEntityRegex, "").replace(ctrlCharactersRegex, "").trim();
- if (!sanitizedUrl) {
- return "about:blank";
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/name.mjs
+ var matchIconName, stringToIcon, validateIconName;
+ var init_name = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/name.mjs"() {
+ "use strict";
+ matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;
+ stringToIcon = /* @__PURE__ */ __name((value2, validate2, allowSimpleName, provider = "") => {
+ const colonSeparated = value2.split(":");
+ if (value2.slice(0, 1) === "@") {
+ if (colonSeparated.length < 2 || colonSeparated.length > 3) {
+ return null;
+ }
+ provider = colonSeparated.shift().slice(1);
+ }
+ if (colonSeparated.length > 3 || !colonSeparated.length) {
+ return null;
+ }
+ if (colonSeparated.length > 1) {
+ const name2 = colonSeparated.pop();
+ const prefix = colonSeparated.pop();
+ const result = {
+ // Allow provider without '@': "provider:prefix:name"
+ provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,
+ prefix,
+ name: name2
+ };
+ return validate2 && !validateIconName(result) ? null : result;
+ }
+ const name = colonSeparated[0];
+ const dashSeparated = name.split("-");
+ if (dashSeparated.length > 1) {
+ const result = {
+ provider,
+ prefix: dashSeparated.shift(),
+ name: dashSeparated.join("-")
+ };
+ return validate2 && !validateIconName(result) ? null : result;
+ }
+ if (allowSimpleName && provider === "") {
+ const result = {
+ provider,
+ prefix: "",
+ name
+ };
+ return validate2 && !validateIconName(result, allowSimpleName) ? null : result;
+ }
+ return null;
+ }, "stringToIcon");
+ validateIconName = /* @__PURE__ */ __name((icon, allowSimpleName) => {
+ if (!icon) {
+ return false;
+ }
+ return !!((icon.provider === "" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === "" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));
+ }, "validateIconName");
}
- if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
- return sanitizedUrl;
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/transformations.mjs
+ function mergeIconTransformations(obj1, obj2) {
+ const result = {};
+ if (!obj1.hFlip !== !obj2.hFlip) {
+ result.hFlip = true;
}
- var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
- if (!urlSchemeParseResults) {
- return sanitizedUrl;
+ if (!obj1.vFlip !== !obj2.vFlip) {
+ result.vFlip = true;
}
- var urlScheme = urlSchemeParseResults[0];
- if (invalidProtocolRegex.test(urlScheme)) {
- return "about:blank";
+ const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;
+ if (rotate) {
+ result.rotate = rotate;
}
- return sanitizedUrl;
- }
- sanitizeUrl_1 = dist.sanitizeUrl = sanitizeUrl$1;
- function ascending$1(a, b) {
- return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
- }
- function descending$1(a, b) {
- return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+ return result;
}
- function bisector(f2) {
- let compare1, compare2, delta;
- if (f2.length !== 2) {
- compare1 = ascending$1;
- compare2 = (d, x2) => ascending$1(f2(d), x2);
- delta = (d, x2) => f2(d) - x2;
- } else {
- compare1 = f2 === ascending$1 || f2 === descending$1 ? f2 : zero$1;
- compare2 = f2;
- delta = f2;
- }
- function left2(a, x2, lo = 0, hi = a.length) {
- if (lo < hi) {
- if (compare1(x2, x2) !== 0)
- return hi;
- do {
- const mid = lo + hi >>> 1;
- if (compare2(a[mid], x2) < 0)
- lo = mid + 1;
- else
- hi = mid;
- } while (lo < hi);
- }
- return lo;
+ var init_transformations = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/transformations.mjs"() {
+ "use strict";
+ __name(mergeIconTransformations, "mergeIconTransformations");
}
- function right2(a, x2, lo = 0, hi = a.length) {
- if (lo < hi) {
- if (compare1(x2, x2) !== 0)
- return hi;
- do {
- const mid = lo + hi >>> 1;
- if (compare2(a[mid], x2) <= 0)
- lo = mid + 1;
- else
- hi = mid;
- } while (lo < hi);
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/merge.mjs
+ function mergeIconData(parent4, child) {
+ const result = mergeIconTransformations(parent4, child);
+ for (const key in defaultExtendedIconProps) {
+ if (key in defaultIconTransformations) {
+ if (key in parent4 && !(key in result)) {
+ result[key] = defaultIconTransformations[key];
+ }
+ } else if (key in child) {
+ result[key] = child[key];
+ } else if (key in parent4) {
+ result[key] = parent4[key];
}
- return lo;
- }
- function center2(a, x2, lo = 0, hi = a.length) {
- const i2 = left2(a, x2, lo, hi - 1);
- return i2 > lo && delta(a[i2 - 1], x2) > -delta(a[i2], x2) ? i2 - 1 : i2;
}
- return { left: left2, center: center2, right: right2 };
- }
- function zero$1() {
- return 0;
- }
- function number$3(x2) {
- return x2 === null ? NaN : +x2;
+ return result;
}
- const ascendingBisect = bisector(ascending$1);
- const bisectRight = ascendingBisect.right;
- bisector(number$3).center;
- const bisect = bisectRight;
- class InternMap extends Map {
- constructor(entries2, key = keyof) {
- super();
- Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key } });
- if (entries2 != null)
- for (const [key2, value] of entries2)
- this.set(key2, value);
- }
- get(key) {
- return super.get(intern_get(this, key));
- }
- has(key) {
- return super.has(intern_get(this, key));
+ var init_merge = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon/merge.mjs"() {
+ "use strict";
+ init_defaults();
+ init_transformations();
+ __name(mergeIconData, "mergeIconData");
}
- set(key, value) {
- return super.set(intern_set(this, key), value);
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon-set/tree.mjs
+ function getIconsTree(data5, names) {
+ const icons = data5.icons;
+ const aliases = data5.aliases || /* @__PURE__ */ Object.create(null);
+ const resolved = /* @__PURE__ */ Object.create(null);
+ function resolve3(name) {
+ if (icons[name]) {
+ return resolved[name] = [];
+ }
+ if (!(name in resolved)) {
+ resolved[name] = null;
+ const parent4 = aliases[name] && aliases[name].parent;
+ const value2 = parent4 && resolve3(parent4);
+ if (value2) {
+ resolved[name] = [parent4].concat(value2);
+ }
+ }
+ return resolved[name];
+ }
+ __name(resolve3, "resolve");
+ (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve3);
+ return resolved;
+ }
+ var init_tree = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon-set/tree.mjs"() {
+ "use strict";
+ __name(getIconsTree, "getIconsTree");
}
- delete(key) {
- return super.delete(intern_delete(this, key));
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon-set/get-icon.mjs
+ function internalGetIconData(data5, name, tree) {
+ const icons = data5.icons;
+ const aliases = data5.aliases || /* @__PURE__ */ Object.create(null);
+ let currentProps = {};
+ function parse8(name2) {
+ currentProps = mergeIconData(
+ icons[name2] || aliases[name2],
+ currentProps
+ );
}
+ __name(parse8, "parse");
+ parse8(name);
+ tree.forEach(parse8);
+ return mergeIconData(data5, currentProps);
}
- function intern_get({ _intern, _key }, value) {
- const key = _key(value);
- return _intern.has(key) ? _intern.get(key) : value;
- }
- function intern_set({ _intern, _key }, value) {
- const key = _key(value);
- if (_intern.has(key))
- return _intern.get(key);
- _intern.set(key, value);
- return value;
- }
- function intern_delete({ _intern, _key }, value) {
- const key = _key(value);
- if (_intern.has(key)) {
- value = _intern.get(key);
- _intern.delete(key);
+ function getIconData(data5, name) {
+ if (data5.icons[name]) {
+ return internalGetIconData(data5, name, []);
}
- return value;
- }
- function keyof(value) {
- return value !== null && typeof value === "object" ? value.valueOf() : value;
- }
- var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
- function ticks(start2, stop, count) {
- var reverse, i2 = -1, n, ticks2, step;
- stop = +stop, start2 = +start2, count = +count;
- if (start2 === stop && count > 0)
- return [start2];
- if (reverse = stop < start2)
- n = start2, start2 = stop, stop = n;
- if ((step = tickIncrement(start2, stop, count)) === 0 || !isFinite(step))
- return [];
- if (step > 0) {
- let r0 = Math.round(start2 / step), r1 = Math.round(stop / step);
- if (r0 * step < start2)
- ++r0;
- if (r1 * step > stop)
- --r1;
- ticks2 = new Array(n = r1 - r0 + 1);
- while (++i2 < n)
- ticks2[i2] = (r0 + i2) * step;
- } else {
- step = -step;
- let r0 = Math.round(start2 * step), r1 = Math.round(stop * step);
- if (r0 / step < start2)
- ++r0;
- if (r1 / step > stop)
- --r1;
- ticks2 = new Array(n = r1 - r0 + 1);
- while (++i2 < n)
- ticks2[i2] = (r0 + i2) / step;
- }
- if (reverse)
- ticks2.reverse();
- return ticks2;
+ const tree = getIconsTree(data5, [name])[name];
+ return tree ? internalGetIconData(data5, name, tree) : null;
}
- function tickIncrement(start2, stop, count) {
- var step = (stop - start2) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power);
- return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
- }
- function tickStep(start2, stop, count) {
- var step0 = Math.abs(stop - start2) / Math.max(0, count), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error = step0 / step1;
- if (error >= e10)
- step1 *= 10;
- else if (error >= e5)
- step1 *= 5;
- else if (error >= e2)
- step1 *= 2;
- return stop < start2 ? -step1 : step1;
- }
- function max$2(values2, valueof) {
- let max2;
- if (valueof === void 0) {
- for (const value of values2) {
- if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
- max2 = value;
- }
- }
- } else {
- let index = -1;
- for (let value of values2) {
- if ((value = valueof(value, ++index, values2)) != null && (max2 < value || max2 === void 0 && value >= value)) {
- max2 = value;
- }
- }
+ var init_get_icon = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/icon-set/get-icon.mjs"() {
+ "use strict";
+ init_merge();
+ init_tree();
+ __name(internalGetIconData, "internalGetIconData");
+ __name(getIconData, "getIconData");
}
- return max2;
- }
- function min$2(values2, valueof) {
- let min2;
- if (valueof === void 0) {
- for (const value of values2) {
- if (value != null && (min2 > value || min2 === void 0 && value >= value)) {
- min2 = value;
- }
- }
- } else {
- let index = -1;
- for (let value of values2) {
- if ((value = valueof(value, ++index, values2)) != null && (min2 > value || min2 === void 0 && value >= value)) {
- min2 = value;
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/size.mjs
+ function calculateSize(size5, ratio, precision) {
+ if (ratio === 1) {
+ return size5;
+ }
+ precision = precision || 100;
+ if (typeof size5 === "number") {
+ return Math.ceil(size5 * ratio * precision) / precision;
+ }
+ if (typeof size5 !== "string") {
+ return size5;
+ }
+ const oldParts = size5.split(unitsSplit);
+ if (oldParts === null || !oldParts.length) {
+ return size5;
+ }
+ const newParts = [];
+ let code = oldParts.shift();
+ let isNumber = unitsTest.test(code);
+ while (true) {
+ if (isNumber) {
+ const num = parseFloat(code);
+ if (isNaN(num)) {
+ newParts.push(code);
+ } else {
+ newParts.push(Math.ceil(num * ratio * precision) / precision);
}
+ } else {
+ newParts.push(code);
}
- }
- return min2;
- }
- function identity$5(x2) {
- return x2;
- }
- var top = 1, right = 2, bottom = 3, left = 4, epsilon$2 = 1e-6;
- function translateX(x2) {
- return "translate(" + x2 + ",0)";
- }
- function translateY(y2) {
- return "translate(0," + y2 + ")";
- }
- function number$2(scale) {
- return (d) => +scale(d);
- }
- function center(scale, offset) {
- offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
- if (scale.round())
- offset = Math.round(offset);
- return (d) => +scale(d) + offset;
- }
- function entering() {
- return !this.__axis;
- }
- function axis(orient, scale) {
- var tickArguments = [], tickValues = null, tickFormat2 = null, tickSizeInner = 6, tickSizeOuter = 6, tickPadding = 3, offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, k = orient === top || orient === left ? -1 : 1, x2 = orient === left || orient === right ? "x" : "y", transform = orient === top || orient === bottom ? translateX : translateY;
- function axis2(context) {
- var values2 = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues, format2 = tickFormat2 == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$5 : tickFormat2, spacing = Math.max(tickSizeInner, 0) + tickPadding, range2 = scale.range(), range0 = +range2[0] + offset, range1 = +range2[range2.length - 1] + offset, position2 = (scale.bandwidth ? center : number$2)(scale.copy(), offset), selection2 = context.selection ? context.selection() : context, path2 = selection2.selectAll(".domain").data([null]), tick = selection2.selectAll(".tick").data(values2, scale).order(), tickExit = tick.exit(), tickEnter = tick.enter().append("g").attr("class", "tick"), line2 = tick.select("line"), text2 = tick.select("text");
- path2 = path2.merge(path2.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor"));
- tick = tick.merge(tickEnter);
- line2 = line2.merge(tickEnter.append("line").attr("stroke", "currentColor").attr(x2 + "2", k * tickSizeInner));
- text2 = text2.merge(tickEnter.append("text").attr("fill", "currentColor").attr(x2, k * spacing).attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
- if (context !== selection2) {
- path2 = path2.transition(context);
- tick = tick.transition(context);
- line2 = line2.transition(context);
- text2 = text2.transition(context);
- tickExit = tickExit.transition(context).attr("opacity", epsilon$2).attr("transform", function(d) {
- return isFinite(d = position2(d)) ? transform(d + offset) : this.getAttribute("transform");
- });
- tickEnter.attr("opacity", epsilon$2).attr("transform", function(d) {
- var p = this.parentNode.__axis;
- return transform((p && isFinite(p = p(d)) ? p : position2(d)) + offset);
- });
+ code = oldParts.shift();
+ if (code === void 0) {
+ return newParts.join("");
}
- tickExit.remove();
- path2.attr("d", orient === left || orient === right ? tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1 : tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1);
- tick.attr("opacity", 1).attr("transform", function(d) {
- return transform(position2(d) + offset);
- });
- line2.attr(x2 + "2", k * tickSizeInner);
- text2.attr(x2, k * spacing).text(format2);
- selection2.filter(entering).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
- selection2.each(function() {
- this.__axis = position2;
- });
- }
- axis2.scale = function(_2) {
- return arguments.length ? (scale = _2, axis2) : scale;
- };
- axis2.ticks = function() {
- return tickArguments = Array.from(arguments), axis2;
- };
- axis2.tickArguments = function(_2) {
- return arguments.length ? (tickArguments = _2 == null ? [] : Array.from(_2), axis2) : tickArguments.slice();
- };
- axis2.tickValues = function(_2) {
- return arguments.length ? (tickValues = _2 == null ? null : Array.from(_2), axis2) : tickValues && tickValues.slice();
- };
- axis2.tickFormat = function(_2) {
- return arguments.length ? (tickFormat2 = _2, axis2) : tickFormat2;
- };
- axis2.tickSize = function(_2) {
- return arguments.length ? (tickSizeInner = tickSizeOuter = +_2, axis2) : tickSizeInner;
- };
- axis2.tickSizeInner = function(_2) {
- return arguments.length ? (tickSizeInner = +_2, axis2) : tickSizeInner;
- };
- axis2.tickSizeOuter = function(_2) {
- return arguments.length ? (tickSizeOuter = +_2, axis2) : tickSizeOuter;
- };
- axis2.tickPadding = function(_2) {
- return arguments.length ? (tickPadding = +_2, axis2) : tickPadding;
- };
- axis2.offset = function(_2) {
- return arguments.length ? (offset = +_2, axis2) : offset;
- };
- return axis2;
- }
- function axisTop(scale) {
- return axis(top, scale);
- }
- function axisBottom(scale) {
- return axis(bottom, scale);
- }
- var noop$2 = { value: () => {
- } };
- function dispatch() {
- for (var i2 = 0, n = arguments.length, _2 = {}, t4; i2 < n; ++i2) {
- if (!(t4 = arguments[i2] + "") || t4 in _2 || /[\s.]/.test(t4))
- throw new Error("illegal type: " + t4);
- _2[t4] = [];
+ isNumber = !isNumber;
}
- return new Dispatch(_2);
- }
- function Dispatch(_2) {
- this._ = _2;
- }
- function parseTypenames$1(typenames, types) {
- return typenames.trim().split(/^|\s+/).map(function(t4) {
- var name2 = "", i2 = t4.indexOf(".");
- if (i2 >= 0)
- name2 = t4.slice(i2 + 1), t4 = t4.slice(0, i2);
- if (t4 && !types.hasOwnProperty(t4))
- throw new Error("unknown type: " + t4);
- return { type: t4, name: name2 };
- });
}
- Dispatch.prototype = dispatch.prototype = {
- constructor: Dispatch,
- on: function(typename, callback) {
- var _2 = this._, T = parseTypenames$1(typename + "", _2), t4, i2 = -1, n = T.length;
- if (arguments.length < 2) {
- while (++i2 < n)
- if ((t4 = (typename = T[i2]).type) && (t4 = get$3(_2[t4], typename.name)))
- return t4;
- return;
- }
- if (callback != null && typeof callback !== "function")
- throw new Error("invalid callback: " + callback);
- while (++i2 < n) {
- if (t4 = (typename = T[i2]).type)
- _2[t4] = set$3(_2[t4], typename.name, callback);
- else if (callback == null)
- for (t4 in _2)
- _2[t4] = set$3(_2[t4], typename.name, null);
- }
- return this;
- },
- copy: function() {
- var copy2 = {}, _2 = this._;
- for (var t4 in _2)
- copy2[t4] = _2[t4].slice();
- return new Dispatch(copy2);
- },
- call: function(type2, that) {
- if ((n = arguments.length - 2) > 0)
- for (var args = new Array(n), i2 = 0, n, t4; i2 < n; ++i2)
- args[i2] = arguments[i2 + 2];
- if (!this._.hasOwnProperty(type2))
- throw new Error("unknown type: " + type2);
- for (t4 = this._[type2], i2 = 0, n = t4.length; i2 < n; ++i2)
- t4[i2].value.apply(that, args);
- },
- apply: function(type2, that, args) {
- if (!this._.hasOwnProperty(type2))
- throw new Error("unknown type: " + type2);
- for (var t4 = this._[type2], i2 = 0, n = t4.length; i2 < n; ++i2)
- t4[i2].value.apply(that, args);
+ var unitsSplit, unitsTest;
+ var init_size = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/size.mjs"() {
+ "use strict";
+ unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;
+ unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;
+ __name(calculateSize, "calculateSize");
}
- };
- function get$3(type2, name2) {
- for (var i2 = 0, n = type2.length, c2; i2 < n; ++i2) {
- if ((c2 = type2[i2]).name === name2) {
- return c2.value;
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/defs.mjs
+ function splitSVGDefs(content, tag2 = "defs") {
+ let defs2 = "";
+ const index = content.indexOf("<" + tag2);
+ while (index >= 0) {
+ const start3 = content.indexOf(">", index);
+ const end2 = content.indexOf("" + tag2);
+ if (start3 === -1 || end2 === -1) {
+ break;
}
- }
- }
- function set$3(type2, name2, callback) {
- for (var i2 = 0, n = type2.length; i2 < n; ++i2) {
- if (type2[i2].name === name2) {
- type2[i2] = noop$2, type2 = type2.slice(0, i2).concat(type2.slice(i2 + 1));
+ const endEnd = content.indexOf(">", end2);
+ if (endEnd === -1) {
break;
}
+ defs2 += content.slice(start3 + 1, end2).trim();
+ content = content.slice(0, index).trim() + content.slice(endEnd + 1);
}
- if (callback != null)
- type2.push({ name: name2, value: callback });
- return type2;
- }
- var xhtml = "http://www.w3.org/1999/xhtml";
- const namespaces = {
- svg: "http://www.w3.org/2000/svg",
- xhtml,
- xlink: "http://www.w3.org/1999/xlink",
- xml: "http://www.w3.org/XML/1998/namespace",
- xmlns: "http://www.w3.org/2000/xmlns/"
- };
- function namespace(name2) {
- var prefix = name2 += "", i2 = prefix.indexOf(":");
- if (i2 >= 0 && (prefix = name2.slice(0, i2)) !== "xmlns")
- name2 = name2.slice(i2 + 1);
- return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name2 } : name2;
- }
- function creatorInherit(name2) {
- return function() {
- var document2 = this.ownerDocument, uri = this.namespaceURI;
- return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name2) : document2.createElementNS(uri, name2);
- };
- }
- function creatorFixed(fullname) {
- return function() {
- return this.ownerDocument.createElementNS(fullname.space, fullname.local);
- };
- }
- function creator(name2) {
- var fullname = namespace(name2);
- return (fullname.local ? creatorFixed : creatorInherit)(fullname);
- }
- function none() {
- }
- function selector(selector2) {
- return selector2 == null ? none : function() {
- return this.querySelector(selector2);
+ return {
+ defs: defs2,
+ content
};
}
- function selection_select(select2) {
- if (typeof select2 !== "function")
- select2 = selector(select2);
- for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i2 = 0; i2 < n; ++i2) {
- if ((node2 = group[i2]) && (subnode = select2.call(node2, node2.__data__, i2, group))) {
- if ("__data__" in node2)
- subnode.__data__ = node2.__data__;
- subgroup[i2] = subnode;
- }
- }
- }
- return new Selection$1(subgroups, this._parents);
- }
- function array$1(x2) {
- return x2 == null ? [] : Array.isArray(x2) ? x2 : Array.from(x2);
- }
- function empty() {
- return [];
- }
- function selectorAll(selector2) {
- return selector2 == null ? empty : function() {
- return this.querySelectorAll(selector2);
- };
+ function mergeDefsAndContent(defs2, content) {
+ return defs2 ? "" + defs2 + "" + content : content;
}
- function arrayAll(select2) {
- return function() {
- return array$1(select2.apply(this, arguments));
- };
+ function wrapSVGContent(body, start3, end2) {
+ const split = splitSVGDefs(body);
+ return mergeDefsAndContent(split.defs, start3 + split.content + end2);
}
- function selection_selectAll(select2) {
- if (typeof select2 === "function")
- select2 = arrayAll(select2);
- else
- select2 = selectorAll(select2);
- for (var groups = this._groups, m = groups.length, subgroups = [], parents2 = [], j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
- if (node2 = group[i2]) {
- subgroups.push(select2.call(node2, node2.__data__, i2, group));
- parents2.push(node2);
- }
- }
+ var init_defs = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/defs.mjs"() {
+ "use strict";
+ __name(splitSVGDefs, "splitSVGDefs");
+ __name(mergeDefsAndContent, "mergeDefsAndContent");
+ __name(wrapSVGContent, "wrapSVGContent");
}
- return new Selection$1(subgroups, parents2);
- }
- function matcher(selector2) {
- return function() {
- return this.matches(selector2);
- };
- }
- function childMatcher(selector2) {
- return function(node2) {
- return node2.matches(selector2);
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/build.mjs
+ function iconToSVG(icon, customisations) {
+ const fullIcon = {
+ ...defaultIconProps,
+ ...icon
};
- }
- var find$2 = Array.prototype.find;
- function childFind(match) {
- return function() {
- return find$2.call(this.children, match);
+ const fullCustomisations = {
+ ...defaultIconCustomisations,
+ ...customisations
};
- }
- function childFirst() {
- return this.firstElementChild;
- }
- function selection_selectChild(match) {
- return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match)));
- }
- var filter$1 = Array.prototype.filter;
- function children() {
- return Array.from(this.children);
- }
- function childrenFilter(match) {
- return function() {
- return filter$1.call(this.children, match);
+ const box = {
+ left: fullIcon.left,
+ top: fullIcon.top,
+ width: fullIcon.width,
+ height: fullIcon.height
};
- }
- function selection_selectChildren(match) {
- return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
- }
- function selection_filter(match) {
- if (typeof match !== "function")
- match = matcher(match);
- for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i2 = 0; i2 < n; ++i2) {
- if ((node2 = group[i2]) && match.call(node2, node2.__data__, i2, group)) {
- subgroup.push(node2);
+ let body = fullIcon.body;
+ [fullIcon, fullCustomisations].forEach((props) => {
+ const transformations = [];
+ const hFlip = props.hFlip;
+ const vFlip = props.vFlip;
+ let rotation = props.rotate;
+ if (hFlip) {
+ if (vFlip) {
+ rotation += 2;
+ } else {
+ transformations.push(
+ "translate(" + (box.width + box.left).toString() + " " + (0 - box.top).toString() + ")"
+ );
+ transformations.push("scale(-1 1)");
+ box.top = box.left = 0;
}
+ } else if (vFlip) {
+ transformations.push(
+ "translate(" + (0 - box.left).toString() + " " + (box.height + box.top).toString() + ")"
+ );
+ transformations.push("scale(1 -1)");
+ box.top = box.left = 0;
}
- }
- return new Selection$1(subgroups, this._parents);
- }
- function sparse(update2) {
- return new Array(update2.length);
- }
- function selection_enter() {
- return new Selection$1(this._enter || this._groups.map(sparse), this._parents);
- }
- function EnterNode(parent, datum2) {
- this.ownerDocument = parent.ownerDocument;
- this.namespaceURI = parent.namespaceURI;
- this._next = null;
- this._parent = parent;
- this.__data__ = datum2;
- }
- EnterNode.prototype = {
- constructor: EnterNode,
- appendChild: function(child) {
- return this._parent.insertBefore(child, this._next);
- },
- insertBefore: function(child, next2) {
- return this._parent.insertBefore(child, next2);
- },
- querySelector: function(selector2) {
- return this._parent.querySelector(selector2);
- },
- querySelectorAll: function(selector2) {
- return this._parent.querySelectorAll(selector2);
- }
- };
- function constant$3(x2) {
- return function() {
- return x2;
- };
- }
- function bindIndex(parent, group, enter2, update2, exit2, data) {
- var i2 = 0, node2, groupLength = group.length, dataLength = data.length;
- for (; i2 < dataLength; ++i2) {
- if (node2 = group[i2]) {
- node2.__data__ = data[i2];
- update2[i2] = node2;
- } else {
- enter2[i2] = new EnterNode(parent, data[i2]);
+ let tempValue;
+ if (rotation < 0) {
+ rotation -= Math.floor(rotation / 4) * 4;
}
- }
- for (; i2 < groupLength; ++i2) {
- if (node2 = group[i2]) {
- exit2[i2] = node2;
+ rotation = rotation % 4;
+ switch (rotation) {
+ case 1:
+ tempValue = box.height / 2 + box.top;
+ transformations.unshift(
+ "rotate(90 " + tempValue.toString() + " " + tempValue.toString() + ")"
+ );
+ break;
+ case 2:
+ transformations.unshift(
+ "rotate(180 " + (box.width / 2 + box.left).toString() + " " + (box.height / 2 + box.top).toString() + ")"
+ );
+ break;
+ case 3:
+ tempValue = box.width / 2 + box.left;
+ transformations.unshift(
+ "rotate(-90 " + tempValue.toString() + " " + tempValue.toString() + ")"
+ );
+ break;
}
- }
- }
- function bindKey(parent, group, enter2, update2, exit2, data, key) {
- var i2, node2, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
- for (i2 = 0; i2 < groupLength; ++i2) {
- if (node2 = group[i2]) {
- keyValues[i2] = keyValue = key.call(node2, node2.__data__, i2, group) + "";
- if (nodeByKeyValue.has(keyValue)) {
- exit2[i2] = node2;
- } else {
- nodeByKeyValue.set(keyValue, node2);
+ if (rotation % 2 === 1) {
+ if (box.left !== box.top) {
+ tempValue = box.left;
+ box.left = box.top;
+ box.top = tempValue;
+ }
+ if (box.width !== box.height) {
+ tempValue = box.width;
+ box.width = box.height;
+ box.height = tempValue;
}
}
- }
- for (i2 = 0; i2 < dataLength; ++i2) {
- keyValue = key.call(parent, data[i2], i2, data) + "";
- if (node2 = nodeByKeyValue.get(keyValue)) {
- update2[i2] = node2;
- node2.__data__ = data[i2];
- nodeByKeyValue.delete(keyValue);
- } else {
- enter2[i2] = new EnterNode(parent, data[i2]);
- }
- }
- for (i2 = 0; i2 < groupLength; ++i2) {
- if ((node2 = group[i2]) && nodeByKeyValue.get(keyValues[i2]) === node2) {
- exit2[i2] = node2;
+ if (transformations.length) {
+ body = wrapSVGContent(
+ body,
+ '',
+ ""
+ );
}
- }
- }
- function datum(node2) {
- return node2.__data__;
+ });
+ const customisationsWidth = fullCustomisations.width;
+ const customisationsHeight = fullCustomisations.height;
+ const boxWidth = box.width;
+ const boxHeight = box.height;
+ let width3;
+ let height2;
+ if (customisationsWidth === null) {
+ height2 = customisationsHeight === null ? "1em" : customisationsHeight === "auto" ? boxHeight : customisationsHeight;
+ width3 = calculateSize(height2, boxWidth / boxHeight);
+ } else {
+ width3 = customisationsWidth === "auto" ? boxWidth : customisationsWidth;
+ height2 = customisationsHeight === null ? calculateSize(width3, boxHeight / boxWidth) : customisationsHeight === "auto" ? boxHeight : customisationsHeight;
+ }
+ const attributes = {};
+ const setAttr = /* @__PURE__ */ __name((prop, value2) => {
+ if (!isUnsetKeyword(value2)) {
+ attributes[prop] = value2.toString();
+ }
+ }, "setAttr");
+ setAttr("width", width3);
+ setAttr("height", height2);
+ const viewBox = [box.left, box.top, boxWidth, boxHeight];
+ attributes.viewBox = viewBox.join(" ");
+ return {
+ attributes,
+ viewBox,
+ body
+ };
}
- function selection_data(value, key) {
- if (!arguments.length)
- return Array.from(this, datum);
- var bind = key ? bindKey : bindIndex, parents2 = this._parents, groups = this._groups;
- if (typeof value !== "function")
- value = constant$3(value);
- for (var m = groups.length, update2 = new Array(m), enter2 = new Array(m), exit2 = new Array(m), j = 0; j < m; ++j) {
- var parent = parents2[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents2)), dataLength = data.length, enterGroup = enter2[j] = new Array(dataLength), updateGroup = update2[j] = new Array(dataLength), exitGroup = exit2[j] = new Array(groupLength);
- bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
- for (var i0 = 0, i1 = 0, previous, next2; i0 < dataLength; ++i0) {
- if (previous = enterGroup[i0]) {
- if (i0 >= i1)
- i1 = i0 + 1;
- while (!(next2 = updateGroup[i1]) && ++i1 < dataLength)
- ;
- previous._next = next2 || null;
- }
- }
+ var isUnsetKeyword;
+ var init_build = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/build.mjs"() {
+ "use strict";
+ init_defaults();
+ init_defaults2();
+ init_size();
+ init_defs();
+ isUnsetKeyword = /* @__PURE__ */ __name((value2) => value2 === "unset" || value2 === "undefined" || value2 === "none", "isUnsetKeyword");
+ __name(iconToSVG, "iconToSVG");
}
- update2 = new Selection$1(update2, parents2);
- update2._enter = enter2;
- update2._exit = exit2;
- return update2;
- }
- function arraylike(data) {
- return typeof data === "object" && "length" in data ? data : Array.from(data);
- }
- function selection_exit() {
- return new Selection$1(this._exit || this._groups.map(sparse), this._parents);
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/id.mjs
+ function replaceIDs(body, prefix = randomPrefix) {
+ const ids = [];
+ let match2;
+ while (match2 = regex.exec(body)) {
+ ids.push(match2[1]);
+ }
+ if (!ids.length) {
+ return body;
+ }
+ const suffix = "suffix" + (Math.random() * 16777216 | Date.now()).toString(16);
+ ids.forEach((id27) => {
+ const newID = typeof prefix === "function" ? prefix(id27) : prefix + (counter++).toString();
+ const escapedID = id27.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+ body = body.replace(
+ // Allowed characters before id: [#;"]
+ // Allowed characters after id: [)"], .[a-z]
+ new RegExp('([#;"])(' + escapedID + ')([")]|\\.[a-z])', "g"),
+ "$1" + newID + suffix + "$3"
+ );
+ });
+ body = body.replace(new RegExp(suffix, "g"), "");
+ return body;
}
- function selection_join(onenter, onupdate, onexit) {
- var enter2 = this.enter(), update2 = this, exit2 = this.exit();
- if (typeof onenter === "function") {
- enter2 = onenter(enter2);
- if (enter2)
- enter2 = enter2.selection();
- } else {
- enter2 = enter2.append(onenter + "");
+ var regex, randomPrefix, counter;
+ var init_id = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/id.mjs"() {
+ "use strict";
+ regex = /\sid="(\S+)"/g;
+ randomPrefix = "IconifyId" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);
+ counter = 0;
+ __name(replaceIDs, "replaceIDs");
}
- if (onupdate != null) {
- update2 = onupdate(update2);
- if (update2)
- update2 = update2.selection();
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/html.mjs
+ function iconToHTML(body, attributes) {
+ let renderAttribsHTML = body.indexOf("xlink:") === -1 ? "" : ' xmlns:xlink="http://www.w3.org/1999/xlink"';
+ for (const attr in attributes) {
+ renderAttribsHTML += " " + attr + '="' + attributes[attr] + '"';
}
- if (onexit == null)
- exit2.remove();
- else
- onexit(exit2);
- return enter2 && update2 ? enter2.merge(update2).order() : update2;
+ return '";
}
- function selection_merge(context) {
- var selection2 = context.selection ? context.selection() : context;
- for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
- for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge2 = merges[j] = new Array(n), node2, i2 = 0; i2 < n; ++i2) {
- if (node2 = group0[i2] || group1[i2]) {
- merge2[i2] = node2;
+ var init_html = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/svg/html.mjs"() {
+ "use strict";
+ __name(iconToHTML, "iconToHTML");
+ }
+ });
+
+ // ../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js
+ var require_ms = __commonJS({
+ "../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports2, module2) {
+ "use strict";
+ var s2 = 1e3;
+ var m2 = s2 * 60;
+ var h2 = m2 * 60;
+ var d2 = h2 * 24;
+ var w3 = d2 * 7;
+ var y5 = d2 * 365.25;
+ module2.exports = function(val, options3) {
+ options3 = options3 || {};
+ var type3 = typeof val;
+ if (type3 === "string" && val.length > 0) {
+ return parse8(val);
+ } else if (type3 === "number" && isFinite(val)) {
+ return options3.long ? fmtLong(val) : fmtShort(val);
+ }
+ throw new Error(
+ "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
+ );
+ };
+ function parse8(str2) {
+ str2 = String(str2);
+ if (str2.length > 100) {
+ return;
+ }
+ var match2 = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+ str2
+ );
+ if (!match2) {
+ return;
+ }
+ var n2 = parseFloat(match2[1]);
+ var type3 = (match2[2] || "ms").toLowerCase();
+ switch (type3) {
+ case "years":
+ case "year":
+ case "yrs":
+ case "yr":
+ case "y":
+ return n2 * y5;
+ case "weeks":
+ case "week":
+ case "w":
+ return n2 * w3;
+ case "days":
+ case "day":
+ case "d":
+ return n2 * d2;
+ case "hours":
+ case "hour":
+ case "hrs":
+ case "hr":
+ case "h":
+ return n2 * h2;
+ case "minutes":
+ case "minute":
+ case "mins":
+ case "min":
+ case "m":
+ return n2 * m2;
+ case "seconds":
+ case "second":
+ case "secs":
+ case "sec":
+ case "s":
+ return n2 * s2;
+ case "milliseconds":
+ case "millisecond":
+ case "msecs":
+ case "msec":
+ case "ms":
+ return n2;
+ default:
+ return void 0;
}
}
- }
- for (; j < m0; ++j) {
- merges[j] = groups0[j];
- }
- return new Selection$1(merges, this._parents);
- }
- function selection_order() {
- for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
- for (var group = groups[j], i2 = group.length - 1, next2 = group[i2], node2; --i2 >= 0; ) {
- if (node2 = group[i2]) {
- if (next2 && node2.compareDocumentPosition(next2) ^ 4)
- next2.parentNode.insertBefore(node2, next2);
- next2 = node2;
+ __name(parse8, "parse");
+ function fmtShort(ms3) {
+ var msAbs = Math.abs(ms3);
+ if (msAbs >= d2) {
+ return Math.round(ms3 / d2) + "d";
+ }
+ if (msAbs >= h2) {
+ return Math.round(ms3 / h2) + "h";
}
+ if (msAbs >= m2) {
+ return Math.round(ms3 / m2) + "m";
+ }
+ if (msAbs >= s2) {
+ return Math.round(ms3 / s2) + "s";
+ }
+ return ms3 + "ms";
}
- }
- return this;
- }
- function selection_sort(compare) {
- if (!compare)
- compare = ascending;
- function compareNode(a, b) {
- return a && b ? compare(a.__data__, b.__data__) : !a - !b;
- }
- for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node2, i2 = 0; i2 < n; ++i2) {
- if (node2 = group[i2]) {
- sortgroup[i2] = node2;
+ __name(fmtShort, "fmtShort");
+ function fmtLong(ms3) {
+ var msAbs = Math.abs(ms3);
+ if (msAbs >= d2) {
+ return plural(ms3, msAbs, d2, "day");
+ }
+ if (msAbs >= h2) {
+ return plural(ms3, msAbs, h2, "hour");
}
+ if (msAbs >= m2) {
+ return plural(ms3, msAbs, m2, "minute");
+ }
+ if (msAbs >= s2) {
+ return plural(ms3, msAbs, s2, "second");
+ }
+ return ms3 + " ms";
}
- sortgroup.sort(compareNode);
+ __name(fmtLong, "fmtLong");
+ function plural(ms3, msAbs, n2, name) {
+ var isPlural = msAbs >= n2 * 1.5;
+ return Math.round(ms3 / n2) + " " + name + (isPlural ? "s" : "");
+ }
+ __name(plural, "plural");
}
- return new Selection$1(sortgroups, this._parents).order();
- }
- function ascending(a, b) {
- return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
- }
- function selection_call() {
- var callback = arguments[0];
- arguments[0] = this;
- callback.apply(null, arguments);
- return this;
- }
- function selection_nodes() {
- return Array.from(this);
- }
- function selection_node() {
- for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
- for (var group = groups[j], i2 = 0, n = group.length; i2 < n; ++i2) {
- var node2 = group[i2];
- if (node2)
- return node2;
+ });
+
+ // ../../node_modules/.pnpm/debug@4.3.6_supports-color@8.1.1/node_modules/debug/src/common.js
+ var require_common = __commonJS({
+ "../../node_modules/.pnpm/debug@4.3.6_supports-color@8.1.1/node_modules/debug/src/common.js"(exports2, module2) {
+ "use strict";
+ function setup(env) {
+ createDebug.debug = createDebug;
+ createDebug.default = createDebug;
+ createDebug.coerce = coerce;
+ createDebug.disable = disable;
+ createDebug.enable = enable;
+ createDebug.enabled = enabled;
+ createDebug.humanize = require_ms();
+ createDebug.destroy = destroy2;
+ Object.keys(env).forEach((key) => {
+ createDebug[key] = env[key];
+ });
+ createDebug.names = [];
+ createDebug.skips = [];
+ createDebug.formatters = {};
+ function selectColor(namespace) {
+ let hash = 0;
+ for (let i2 = 0; i2 < namespace.length; i2++) {
+ hash = (hash << 5) - hash + namespace.charCodeAt(i2);
+ hash |= 0;
+ }
+ return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
+ }
+ __name(selectColor, "selectColor");
+ createDebug.selectColor = selectColor;
+ function createDebug(namespace) {
+ let prevTime;
+ let enableOverride = null;
+ let namespacesCache;
+ let enabledCache;
+ function debug(...args) {
+ if (!debug.enabled) {
+ return;
+ }
+ const self2 = debug;
+ const curr = Number(/* @__PURE__ */ new Date());
+ const ms3 = curr - (prevTime || curr);
+ self2.diff = ms3;
+ self2.prev = prevTime;
+ self2.curr = curr;
+ prevTime = curr;
+ args[0] = createDebug.coerce(args[0]);
+ if (typeof args[0] !== "string") {
+ args.unshift("%O");
+ }
+ let index = 0;
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, (match2, format3) => {
+ if (match2 === "%%") {
+ return "%";
+ }
+ index++;
+ const formatter = createDebug.formatters[format3];
+ if (typeof formatter === "function") {
+ const val = args[index];
+ match2 = formatter.call(self2, val);
+ args.splice(index, 1);
+ index--;
+ }
+ return match2;
+ });
+ createDebug.formatArgs.call(self2, args);
+ const logFn = self2.log || createDebug.log;
+ logFn.apply(self2, args);
+ }
+ __name(debug, "debug");
+ debug.namespace = namespace;
+ debug.useColors = createDebug.useColors();
+ debug.color = createDebug.selectColor(namespace);
+ debug.extend = extend5;
+ debug.destroy = createDebug.destroy;
+ Object.defineProperty(debug, "enabled", {
+ enumerable: true,
+ configurable: false,
+ get: /* @__PURE__ */ __name(() => {
+ if (enableOverride !== null) {
+ return enableOverride;
+ }
+ if (namespacesCache !== createDebug.namespaces) {
+ namespacesCache = createDebug.namespaces;
+ enabledCache = createDebug.enabled(namespace);
+ }
+ return enabledCache;
+ }, "get"),
+ set: /* @__PURE__ */ __name((v3) => {
+ enableOverride = v3;
+ }, "set")
+ });
+ if (typeof createDebug.init === "function") {
+ createDebug.init(debug);
+ }
+ return debug;
+ }
+ __name(createDebug, "createDebug");
+ function extend5(namespace, delimiter3) {
+ const newDebug = createDebug(this.namespace + (typeof delimiter3 === "undefined" ? ":" : delimiter3) + namespace);
+ newDebug.log = this.log;
+ return newDebug;
+ }
+ __name(extend5, "extend");
+ function enable(namespaces2) {
+ createDebug.save(namespaces2);
+ createDebug.namespaces = namespaces2;
+ createDebug.names = [];
+ createDebug.skips = [];
+ let i2;
+ const split = (typeof namespaces2 === "string" ? namespaces2 : "").split(/[\s,]+/);
+ const len = split.length;
+ for (i2 = 0; i2 < len; i2++) {
+ if (!split[i2]) {
+ continue;
+ }
+ namespaces2 = split[i2].replace(/\*/g, ".*?");
+ if (namespaces2[0] === "-") {
+ createDebug.skips.push(new RegExp("^" + namespaces2.slice(1) + "$"));
+ } else {
+ createDebug.names.push(new RegExp("^" + namespaces2 + "$"));
+ }
+ }
+ }
+ __name(enable, "enable");
+ function disable() {
+ const namespaces2 = [
+ ...createDebug.names.map(toNamespace),
+ ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
+ ].join(",");
+ createDebug.enable("");
+ return namespaces2;
+ }
+ __name(disable, "disable");
+ function enabled(name) {
+ if (name[name.length - 1] === "*") {
+ return true;
+ }
+ let i2;
+ let len;
+ for (i2 = 0, len = createDebug.skips.length; i2 < len; i2++) {
+ if (createDebug.skips[i2].test(name)) {
+ return false;
+ }
+ }
+ for (i2 = 0, len = createDebug.names.length; i2 < len; i2++) {
+ if (createDebug.names[i2].test(name)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ __name(enabled, "enabled");
+ function toNamespace(regexp) {
+ return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
+ }
+ __name(toNamespace, "toNamespace");
+ function coerce(val) {
+ if (val instanceof Error) {
+ return val.stack || val.message;
+ }
+ return val;
+ }
+ __name(coerce, "coerce");
+ function destroy2() {
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
+ }
+ __name(destroy2, "destroy");
+ createDebug.enable(createDebug.load());
+ return createDebug;
}
+ __name(setup, "setup");
+ module2.exports = setup;
}
- return null;
- }
- function selection_size() {
- let size2 = 0;
- for (const node2 of this)
- ++size2;
- return size2;
- }
- function selection_empty() {
- return !this.node();
- }
- function selection_each(callback) {
- for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
- for (var group = groups[j], i2 = 0, n = group.length, node2; i2 < n; ++i2) {
- if (node2 = group[i2])
- callback.call(node2, node2.__data__, i2, group);
- }
- }
- return this;
- }
- function attrRemove$1(name2) {
- return function() {
- this.removeAttribute(name2);
- };
- }
- function attrRemoveNS$1(fullname) {
- return function() {
- this.removeAttributeNS(fullname.space, fullname.local);
- };
- }
- function attrConstant$1(name2, value) {
- return function() {
- this.setAttribute(name2, value);
- };
- }
- function attrConstantNS$1(fullname, value) {
- return function() {
- this.setAttributeNS(fullname.space, fullname.local, value);
- };
- }
- function attrFunction$1(name2, value) {
- return function() {
- var v = value.apply(this, arguments);
- if (v == null)
- this.removeAttribute(name2);
- else
- this.setAttribute(name2, v);
- };
- }
- function attrFunctionNS$1(fullname, value) {
- return function() {
- var v = value.apply(this, arguments);
- if (v == null)
- this.removeAttributeNS(fullname.space, fullname.local);
- else
- this.setAttributeNS(fullname.space, fullname.local, v);
- };
- }
- function selection_attr(name2, value) {
- var fullname = namespace(name2);
- if (arguments.length < 2) {
- var node2 = this.node();
- return fullname.local ? node2.getAttributeNS(fullname.space, fullname.local) : node2.getAttribute(fullname);
- }
- return this.each((value == null ? fullname.local ? attrRemoveNS$1 : attrRemove$1 : typeof value === "function" ? fullname.local ? attrFunctionNS$1 : attrFunction$1 : fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, value));
- }
- function defaultView(node2) {
- return node2.ownerDocument && node2.ownerDocument.defaultView || node2.document && node2 || node2.defaultView;
- }
- function styleRemove$1(name2) {
- return function() {
- this.style.removeProperty(name2);
- };
- }
- function styleConstant$1(name2, value, priority) {
- return function() {
- this.style.setProperty(name2, value, priority);
- };
- }
- function styleFunction$1(name2, value, priority) {
- return function() {
- var v = value.apply(this, arguments);
- if (v == null)
- this.style.removeProperty(name2);
- else
- this.style.setProperty(name2, v, priority);
- };
- }
- function selection_style(name2, value, priority) {
- return arguments.length > 1 ? this.each((value == null ? styleRemove$1 : typeof value === "function" ? styleFunction$1 : styleConstant$1)(name2, value, priority == null ? "" : priority)) : styleValue(this.node(), name2);
- }
- function styleValue(node2, name2) {
- return node2.style.getPropertyValue(name2) || defaultView(node2).getComputedStyle(node2, null).getPropertyValue(name2);
- }
- function propertyRemove(name2) {
- return function() {
- delete this[name2];
- };
- }
- function propertyConstant(name2, value) {
- return function() {
- this[name2] = value;
- };
- }
- function propertyFunction(name2, value) {
- return function() {
- var v = value.apply(this, arguments);
- if (v == null)
- delete this[name2];
- else
- this[name2] = v;
- };
- }
- function selection_property(name2, value) {
- return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name2, value)) : this.node()[name2];
- }
- function classArray(string) {
- return string.trim().split(/^|\s+/);
- }
- function classList(node2) {
- return node2.classList || new ClassList(node2);
- }
- function ClassList(node2) {
- this._node = node2;
- this._names = classArray(node2.getAttribute("class") || "");
- }
- ClassList.prototype = {
- add: function(name2) {
- var i2 = this._names.indexOf(name2);
- if (i2 < 0) {
- this._names.push(name2);
- this._node.setAttribute("class", this._names.join(" "));
- }
- },
- remove: function(name2) {
- var i2 = this._names.indexOf(name2);
- if (i2 >= 0) {
- this._names.splice(i2, 1);
- this._node.setAttribute("class", this._names.join(" "));
- }
- },
- contains: function(name2) {
- return this._names.indexOf(name2) >= 0;
- }
- };
- function classedAdd(node2, names) {
- var list = classList(node2), i2 = -1, n = names.length;
- while (++i2 < n)
- list.add(names[i2]);
- }
- function classedRemove(node2, names) {
- var list = classList(node2), i2 = -1, n = names.length;
- while (++i2 < n)
- list.remove(names[i2]);
- }
- function classedTrue(names) {
- return function() {
- classedAdd(this, names);
- };
- }
- function classedFalse(names) {
- return function() {
- classedRemove(this, names);
- };
- }
- function classedFunction(names, value) {
- return function() {
- (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
- };
- }
- function selection_classed(name2, value) {
- var names = classArray(name2 + "");
- if (arguments.length < 2) {
- var list = classList(this.node()), i2 = -1, n = names.length;
- while (++i2 < n)
- if (!list.contains(names[i2]))
+ });
+
+ // ../../node_modules/.pnpm/debug@4.3.6_supports-color@8.1.1/node_modules/debug/src/browser.js
+ var require_browser = __commonJS({
+ "../../node_modules/.pnpm/debug@4.3.6_supports-color@8.1.1/node_modules/debug/src/browser.js"(exports2, module2) {
+ "use strict";
+ exports2.formatArgs = formatArgs;
+ exports2.save = save;
+ exports2.load = load2;
+ exports2.useColors = useColors;
+ exports2.storage = localstorage();
+ exports2.destroy = /* @__PURE__ */ (() => {
+ let warned = false;
+ return () => {
+ if (!warned) {
+ warned = true;
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
+ }
+ };
+ })();
+ exports2.colors = [
+ "#0000CC",
+ "#0000FF",
+ "#0033CC",
+ "#0033FF",
+ "#0066CC",
+ "#0066FF",
+ "#0099CC",
+ "#0099FF",
+ "#00CC00",
+ "#00CC33",
+ "#00CC66",
+ "#00CC99",
+ "#00CCCC",
+ "#00CCFF",
+ "#3300CC",
+ "#3300FF",
+ "#3333CC",
+ "#3333FF",
+ "#3366CC",
+ "#3366FF",
+ "#3399CC",
+ "#3399FF",
+ "#33CC00",
+ "#33CC33",
+ "#33CC66",
+ "#33CC99",
+ "#33CCCC",
+ "#33CCFF",
+ "#6600CC",
+ "#6600FF",
+ "#6633CC",
+ "#6633FF",
+ "#66CC00",
+ "#66CC33",
+ "#9900CC",
+ "#9900FF",
+ "#9933CC",
+ "#9933FF",
+ "#99CC00",
+ "#99CC33",
+ "#CC0000",
+ "#CC0033",
+ "#CC0066",
+ "#CC0099",
+ "#CC00CC",
+ "#CC00FF",
+ "#CC3300",
+ "#CC3333",
+ "#CC3366",
+ "#CC3399",
+ "#CC33CC",
+ "#CC33FF",
+ "#CC6600",
+ "#CC6633",
+ "#CC9900",
+ "#CC9933",
+ "#CCCC00",
+ "#CCCC33",
+ "#FF0000",
+ "#FF0033",
+ "#FF0066",
+ "#FF0099",
+ "#FF00CC",
+ "#FF00FF",
+ "#FF3300",
+ "#FF3333",
+ "#FF3366",
+ "#FF3399",
+ "#FF33CC",
+ "#FF33FF",
+ "#FF6600",
+ "#FF6633",
+ "#FF9900",
+ "#FF9933",
+ "#FFCC00",
+ "#FFCC33"
+ ];
+ function useColors() {
+ if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
+ return true;
+ }
+ if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
return false;
- return true;
- }
- return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value));
- }
- function textRemove() {
- this.textContent = "";
- }
- function textConstant$1(value) {
- return function() {
- this.textContent = value;
- };
- }
- function textFunction$1(value) {
- return function() {
- var v = value.apply(this, arguments);
- this.textContent = v == null ? "" : v;
- };
- }
- function selection_text(value) {
- return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction$1 : textConstant$1)(value)) : this.node().textContent;
- }
- function htmlRemove() {
- this.innerHTML = "";
- }
- function htmlConstant(value) {
- return function() {
- this.innerHTML = value;
- };
- }
- function htmlFunction(value) {
- return function() {
- var v = value.apply(this, arguments);
- this.innerHTML = v == null ? "" : v;
- };
- }
- function selection_html(value) {
- return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;
- }
- function raise() {
- if (this.nextSibling)
- this.parentNode.appendChild(this);
- }
- function selection_raise() {
- return this.each(raise);
- }
- function lower() {
- if (this.previousSibling)
- this.parentNode.insertBefore(this, this.parentNode.firstChild);
- }
- function selection_lower() {
- return this.each(lower);
- }
- function selection_append(name2) {
- var create2 = typeof name2 === "function" ? name2 : creator(name2);
- return this.select(function() {
- return this.appendChild(create2.apply(this, arguments));
- });
- }
- function constantNull() {
- return null;
- }
- function selection_insert(name2, before) {
- var create2 = typeof name2 === "function" ? name2 : creator(name2), select2 = before == null ? constantNull : typeof before === "function" ? before : selector(before);
- return this.select(function() {
- return this.insertBefore(create2.apply(this, arguments), select2.apply(this, arguments) || null);
- });
- }
- function remove() {
- var parent = this.parentNode;
- if (parent)
- parent.removeChild(this);
- }
- function selection_remove() {
- return this.each(remove);
- }
- function selection_cloneShallow() {
- var clone2 = this.cloneNode(false), parent = this.parentNode;
- return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2;
- }
- function selection_cloneDeep() {
- var clone2 = this.cloneNode(true), parent = this.parentNode;
- return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2;
- }
- function selection_clone(deep) {
- return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
- }
- function selection_datum(value) {
- return arguments.length ? this.property("__data__", value) : this.node().__data__;
- }
- function contextListener(listener) {
- return function(event) {
- listener.call(this, event, this.__data__);
- };
- }
- function parseTypenames(typenames) {
- return typenames.trim().split(/^|\s+/).map(function(t4) {
- var name2 = "", i2 = t4.indexOf(".");
- if (i2 >= 0)
- name2 = t4.slice(i2 + 1), t4 = t4.slice(0, i2);
- return { type: t4, name: name2 };
- });
- }
- function onRemove(typename) {
- return function() {
- var on = this.__on;
- if (!on)
- return;
- for (var j = 0, i2 = -1, m = on.length, o; j < m; ++j) {
- if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
- this.removeEventListener(o.type, o.listener, o.options);
- } else {
- on[++i2] = o;
}
- }
- if (++i2)
- on.length = i2;
- else
- delete this.__on;
- };
- }
- function onAdd(typename, value, options2) {
- return function() {
- var on = this.__on, o, listener = contextListener(value);
- if (on)
- for (var j = 0, m = on.length; j < m; ++j) {
- if ((o = on[j]).type === typename.type && o.name === typename.name) {
- this.removeEventListener(o.type, o.listener, o.options);
- this.addEventListener(o.type, o.listener = listener, o.options = options2);
- o.value = value;
+ let m2;
+ return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
+ typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
+ typeof navigator !== "undefined" && navigator.userAgent && (m2 = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m2[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
+ typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
+ }
+ __name(useColors, "useColors");
+ function formatArgs(args) {
+ args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
+ if (!this.useColors) {
+ return;
+ }
+ const c3 = "color: " + this.color;
+ args.splice(1, 0, c3, "color: inherit");
+ let index = 0;
+ let lastC = 0;
+ args[0].replace(/%[a-zA-Z%]/g, (match2) => {
+ if (match2 === "%%") {
return;
}
- }
- this.addEventListener(typename.type, listener, options2);
- o = { type: typename.type, name: typename.name, value, listener, options: options2 };
- if (!on)
- this.__on = [o];
- else
- on.push(o);
- };
- }
- function selection_on(typename, value, options2) {
- var typenames = parseTypenames(typename + ""), i2, n = typenames.length, t4;
- if (arguments.length < 2) {
- var on = this.node().__on;
- if (on)
- for (var j = 0, m = on.length, o; j < m; ++j) {
- for (i2 = 0, o = on[j]; i2 < n; ++i2) {
- if ((t4 = typenames[i2]).type === o.type && t4.name === o.name) {
- return o.value;
- }
+ index++;
+ if (match2 === "%c") {
+ lastC = index;
}
- }
- return;
- }
- on = value ? onAdd : onRemove;
- for (i2 = 0; i2 < n; ++i2)
- this.each(on(typenames[i2], value, options2));
- return this;
- }
- function dispatchEvent(node2, type2, params) {
- var window2 = defaultView(node2), event = window2.CustomEvent;
- if (typeof event === "function") {
- event = new event(type2, params);
- } else {
- event = window2.document.createEvent("Event");
- if (params)
- event.initEvent(type2, params.bubbles, params.cancelable), event.detail = params.detail;
- else
- event.initEvent(type2, false, false);
- }
- node2.dispatchEvent(event);
- }
- function dispatchConstant(type2, params) {
- return function() {
- return dispatchEvent(this, type2, params);
- };
- }
- function dispatchFunction(type2, params) {
- return function() {
- return dispatchEvent(this, type2, params.apply(this, arguments));
- };
- }
- function selection_dispatch(type2, params) {
- return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type2, params));
- }
- function* selection_iterator() {
- for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
- for (var group = groups[j], i2 = 0, n = group.length, node2; i2 < n; ++i2) {
- if (node2 = group[i2])
- yield node2;
+ });
+ args.splice(lastC, 0, c3);
}
- }
- }
- var root$2 = [null];
- function Selection$1(groups, parents2) {
- this._groups = groups;
- this._parents = parents2;
- }
- function selection() {
- return new Selection$1([[document.documentElement]], root$2);
- }
- function selection_selection() {
- return this;
- }
- Selection$1.prototype = selection.prototype = {
- constructor: Selection$1,
- select: selection_select,
- selectAll: selection_selectAll,
- selectChild: selection_selectChild,
- selectChildren: selection_selectChildren,
- filter: selection_filter,
- data: selection_data,
- enter: selection_enter,
- exit: selection_exit,
- join: selection_join,
- merge: selection_merge,
- selection: selection_selection,
- order: selection_order,
- sort: selection_sort,
- call: selection_call,
- nodes: selection_nodes,
- node: selection_node,
- size: selection_size,
- empty: selection_empty,
- each: selection_each,
- attr: selection_attr,
- style: selection_style,
- property: selection_property,
- classed: selection_classed,
- text: selection_text,
- html: selection_html,
- raise: selection_raise,
- lower: selection_lower,
- append: selection_append,
- insert: selection_insert,
- remove: selection_remove,
- clone: selection_clone,
- datum: selection_datum,
- on: selection_on,
- dispatch: selection_dispatch,
- [Symbol.iterator]: selection_iterator
- };
- function select(selector2) {
- return typeof selector2 === "string" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root$2);
- }
- function selectAll(selector2) {
- return typeof selector2 === "string" ? new Selection$1([document.querySelectorAll(selector2)], [document.documentElement]) : new Selection$1([array$1(selector2)], root$2);
- }
- function define2(constructor, factory, prototype) {
- constructor.prototype = factory.prototype = prototype;
- prototype.constructor = constructor;
- }
- function extend$1(parent, definition) {
- var prototype = Object.create(parent.prototype);
- for (var key in definition)
- prototype[key] = definition[key];
- return prototype;
- }
- function Color$2() {
- }
- var darker = 0.7;
- var brighter = 1 / darker;
- var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
- var named = {
- aliceblue: 15792383,
- antiquewhite: 16444375,
- aqua: 65535,
- aquamarine: 8388564,
- azure: 15794175,
- beige: 16119260,
- bisque: 16770244,
- black: 0,
- blanchedalmond: 16772045,
- blue: 255,
- blueviolet: 9055202,
- brown: 10824234,
- burlywood: 14596231,
- cadetblue: 6266528,
- chartreuse: 8388352,
- chocolate: 13789470,
- coral: 16744272,
- cornflowerblue: 6591981,
- cornsilk: 16775388,
- crimson: 14423100,
- cyan: 65535,
- darkblue: 139,
- darkcyan: 35723,
- darkgoldenrod: 12092939,
- darkgray: 11119017,
- darkgreen: 25600,
- darkgrey: 11119017,
- darkkhaki: 12433259,
- darkmagenta: 9109643,
- darkolivegreen: 5597999,
- darkorange: 16747520,
- darkorchid: 10040012,
- darkred: 9109504,
- darksalmon: 15308410,
- darkseagreen: 9419919,
- darkslateblue: 4734347,
- darkslategray: 3100495,
- darkslategrey: 3100495,
- darkturquoise: 52945,
- darkviolet: 9699539,
- deeppink: 16716947,
- deepskyblue: 49151,
- dimgray: 6908265,
- dimgrey: 6908265,
- dodgerblue: 2003199,
- firebrick: 11674146,
- floralwhite: 16775920,
- forestgreen: 2263842,
- fuchsia: 16711935,
- gainsboro: 14474460,
- ghostwhite: 16316671,
- gold: 16766720,
- goldenrod: 14329120,
- gray: 8421504,
- green: 32768,
- greenyellow: 11403055,
- grey: 8421504,
- honeydew: 15794160,
- hotpink: 16738740,
- indianred: 13458524,
- indigo: 4915330,
- ivory: 16777200,
- khaki: 15787660,
- lavender: 15132410,
- lavenderblush: 16773365,
- lawngreen: 8190976,
- lemonchiffon: 16775885,
- lightblue: 11393254,
- lightcoral: 15761536,
- lightcyan: 14745599,
- lightgoldenrodyellow: 16448210,
- lightgray: 13882323,
- lightgreen: 9498256,
- lightgrey: 13882323,
- lightpink: 16758465,
- lightsalmon: 16752762,
- lightseagreen: 2142890,
- lightskyblue: 8900346,
- lightslategray: 7833753,
- lightslategrey: 7833753,
- lightsteelblue: 11584734,
- lightyellow: 16777184,
- lime: 65280,
- limegreen: 3329330,
- linen: 16445670,
- magenta: 16711935,
- maroon: 8388608,
- mediumaquamarine: 6737322,
- mediumblue: 205,
- mediumorchid: 12211667,
- mediumpurple: 9662683,
- mediumseagreen: 3978097,
- mediumslateblue: 8087790,
- mediumspringgreen: 64154,
- mediumturquoise: 4772300,
- mediumvioletred: 13047173,
- midnightblue: 1644912,
- mintcream: 16121850,
- mistyrose: 16770273,
- moccasin: 16770229,
- navajowhite: 16768685,
- navy: 128,
- oldlace: 16643558,
- olive: 8421376,
- olivedrab: 7048739,
- orange: 16753920,
- orangered: 16729344,
- orchid: 14315734,
- palegoldenrod: 15657130,
- palegreen: 10025880,
- paleturquoise: 11529966,
- palevioletred: 14381203,
- papayawhip: 16773077,
- peachpuff: 16767673,
- peru: 13468991,
- pink: 16761035,
- plum: 14524637,
- powderblue: 11591910,
- purple: 8388736,
- rebeccapurple: 6697881,
- red: 16711680,
- rosybrown: 12357519,
- royalblue: 4286945,
- saddlebrown: 9127187,
- salmon: 16416882,
- sandybrown: 16032864,
- seagreen: 3050327,
- seashell: 16774638,
- sienna: 10506797,
- silver: 12632256,
- skyblue: 8900331,
- slateblue: 6970061,
- slategray: 7372944,
- slategrey: 7372944,
- snow: 16775930,
- springgreen: 65407,
- steelblue: 4620980,
- tan: 13808780,
- teal: 32896,
- thistle: 14204888,
- tomato: 16737095,
- turquoise: 4251856,
- violet: 15631086,
- wheat: 16113331,
- white: 16777215,
- whitesmoke: 16119285,
- yellow: 16776960,
- yellowgreen: 10145074
- };
- define2(Color$2, color, {
- copy(channels2) {
- return Object.assign(new this.constructor(), this, channels2);
- },
- displayable() {
- return this.rgb().displayable();
- },
- hex: color_formatHex,
- // Deprecated! Use color.formatHex.
- formatHex: color_formatHex,
- formatHex8: color_formatHex8,
- formatHsl: color_formatHsl,
- formatRgb: color_formatRgb,
- toString: color_formatRgb
- });
- function color_formatHex() {
- return this.rgb().formatHex();
- }
- function color_formatHex8() {
- return this.rgb().formatHex8();
- }
- function color_formatHsl() {
- return hslConvert(this).formatHsl();
- }
- function color_formatRgb() {
- return this.rgb().formatRgb();
- }
- function color(format2) {
- var m, l;
- format2 = (format2 + "").trim().toLowerCase();
- return (m = reHex.exec(format2)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba$2(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba$2(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format2)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format2)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format2)) ? rgba$2(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format2)) ? rgba$2(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format2) ? rgbn(named[format2]) : format2 === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null;
- }
- function rgbn(n) {
- return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);
- }
- function rgba$2(r, g, b, a) {
- if (a <= 0)
- r = g = b = NaN;
- return new Rgb(r, g, b, a);
- }
- function rgbConvert(o) {
- if (!(o instanceof Color$2))
- o = color(o);
- if (!o)
- return new Rgb();
- o = o.rgb();
- return new Rgb(o.r, o.g, o.b, o.opacity);
- }
- function rgb(r, g, b, opacity) {
- return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
- }
- function Rgb(r, g, b, opacity) {
- this.r = +r;
- this.g = +g;
- this.b = +b;
- this.opacity = +opacity;
- }
- define2(Rgb, rgb, extend$1(Color$2, {
- brighter(k) {
- k = k == null ? brighter : Math.pow(brighter, k);
- return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
- },
- darker(k) {
- k = k == null ? darker : Math.pow(darker, k);
- return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
- },
- rgb() {
- return this;
- },
- clamp() {
- return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
- },
- displayable() {
- return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);
- },
- hex: rgb_formatHex,
- // Deprecated! Use color.formatHex.
- formatHex: rgb_formatHex,
- formatHex8: rgb_formatHex8,
- formatRgb: rgb_formatRgb,
- toString: rgb_formatRgb
- }));
- function rgb_formatHex() {
- return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
- }
- function rgb_formatHex8() {
- return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
- }
- function rgb_formatRgb() {
- const a = clampa(this.opacity);
- return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
- }
- function clampa(opacity) {
- return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
- }
- function clampi(value) {
- return Math.max(0, Math.min(255, Math.round(value) || 0));
- }
- function hex(value) {
- value = clampi(value);
- return (value < 16 ? "0" : "") + value.toString(16);
- }
- function hsla(h, s, l, a) {
- if (a <= 0)
- h = s = l = NaN;
- else if (l <= 0 || l >= 1)
- h = s = NaN;
- else if (s <= 0)
- h = NaN;
- return new Hsl(h, s, l, a);
- }
- function hslConvert(o) {
- if (o instanceof Hsl)
- return new Hsl(o.h, o.s, o.l, o.opacity);
- if (!(o instanceof Color$2))
- o = color(o);
- if (!o)
- return new Hsl();
- if (o instanceof Hsl)
- return o;
- o = o.rgb();
- var r = o.r / 255, g = o.g / 255, b = o.b / 255, min2 = Math.min(r, g, b), max2 = Math.max(r, g, b), h = NaN, s = max2 - min2, l = (max2 + min2) / 2;
- if (s) {
- if (r === max2)
- h = (g - b) / s + (g < b) * 6;
- else if (g === max2)
- h = (b - r) / s + 2;
- else
- h = (r - g) / s + 4;
- s /= l < 0.5 ? max2 + min2 : 2 - max2 - min2;
- h *= 60;
- } else {
- s = l > 0 && l < 1 ? 0 : h;
- }
- return new Hsl(h, s, l, o.opacity);
- }
- function hsl(h, s, l, opacity) {
- return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
- }
- function Hsl(h, s, l, opacity) {
- this.h = +h;
- this.s = +s;
- this.l = +l;
- this.opacity = +opacity;
- }
- define2(Hsl, hsl, extend$1(Color$2, {
- brighter(k) {
- k = k == null ? brighter : Math.pow(brighter, k);
- return new Hsl(this.h, this.s, this.l * k, this.opacity);
- },
- darker(k) {
- k = k == null ? darker : Math.pow(darker, k);
- return new Hsl(this.h, this.s, this.l * k, this.opacity);
- },
- rgb() {
- var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;
- return new Rgb(
- hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
- hsl2rgb(h, m1, m2),
- hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
- this.opacity
- );
- },
- clamp() {
- return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
- },
- displayable() {
- return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);
- },
- formatHsl() {
- const a = clampa(this.opacity);
- return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
- }
- }));
- function clamph(value) {
- value = (value || 0) % 360;
- return value < 0 ? value + 360 : value;
- }
- function clampt(value) {
- return Math.max(0, Math.min(1, value || 0));
- }
- function hsl2rgb(h, m1, m2) {
- return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;
- }
- const radians = Math.PI / 180;
- const degrees$1 = 180 / Math.PI;
- const K = 18, Xn = 0.96422, Yn = 1, Zn = 0.82521, t0$1 = 4 / 29, t1$1 = 6 / 29, t2 = 3 * t1$1 * t1$1, t3 = t1$1 * t1$1 * t1$1;
- function labConvert(o) {
- if (o instanceof Lab)
- return new Lab(o.l, o.a, o.b, o.opacity);
- if (o instanceof Hcl)
- return hcl2lab(o);
- if (!(o instanceof Rgb))
- o = rgbConvert(o);
- var r = rgb2lrgb(o.r), g = rgb2lrgb(o.g), b = rgb2lrgb(o.b), y2 = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x2, z;
- if (r === g && g === b)
- x2 = z = y2;
- else {
- x2 = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
- z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
- }
- return new Lab(116 * y2 - 16, 500 * (x2 - y2), 200 * (y2 - z), o.opacity);
- }
- function lab(l, a, b, opacity) {
- return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
- }
- function Lab(l, a, b, opacity) {
- this.l = +l;
- this.a = +a;
- this.b = +b;
- this.opacity = +opacity;
- }
- define2(Lab, lab, extend$1(Color$2, {
- brighter(k) {
- return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
- },
- darker(k) {
- return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
- },
- rgb() {
- var y2 = (this.l + 16) / 116, x2 = isNaN(this.a) ? y2 : y2 + this.a / 500, z = isNaN(this.b) ? y2 : y2 - this.b / 200;
- x2 = Xn * lab2xyz(x2);
- y2 = Yn * lab2xyz(y2);
- z = Zn * lab2xyz(z);
- return new Rgb(
- lrgb2rgb(3.1338561 * x2 - 1.6168667 * y2 - 0.4906146 * z),
- lrgb2rgb(-0.9787684 * x2 + 1.9161415 * y2 + 0.033454 * z),
- lrgb2rgb(0.0719453 * x2 - 0.2289914 * y2 + 1.4052427 * z),
- this.opacity
- );
- }
- }));
- function xyz2lab(t4) {
- return t4 > t3 ? Math.pow(t4, 1 / 3) : t4 / t2 + t0$1;
- }
- function lab2xyz(t4) {
- return t4 > t1$1 ? t4 * t4 * t4 : t2 * (t4 - t0$1);
- }
- function lrgb2rgb(x2) {
- return 255 * (x2 <= 31308e-7 ? 12.92 * x2 : 1.055 * Math.pow(x2, 1 / 2.4) - 0.055);
- }
- function rgb2lrgb(x2) {
- return (x2 /= 255) <= 0.04045 ? x2 / 12.92 : Math.pow((x2 + 0.055) / 1.055, 2.4);
- }
- function hclConvert(o) {
- if (o instanceof Hcl)
- return new Hcl(o.h, o.c, o.l, o.opacity);
- if (!(o instanceof Lab))
- o = labConvert(o);
- if (o.a === 0 && o.b === 0)
- return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
- var h = Math.atan2(o.b, o.a) * degrees$1;
- return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
- }
- function hcl$1(h, c2, l, opacity) {
- return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c2, l, opacity == null ? 1 : opacity);
- }
- function Hcl(h, c2, l, opacity) {
- this.h = +h;
- this.c = +c2;
- this.l = +l;
- this.opacity = +opacity;
- }
- function hcl2lab(o) {
- if (isNaN(o.h))
- return new Lab(o.l, 0, 0, o.opacity);
- var h = o.h * radians;
- return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
- }
- define2(Hcl, hcl$1, extend$1(Color$2, {
- brighter(k) {
- return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
- },
- darker(k) {
- return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
- },
- rgb() {
- return hcl2lab(this).rgb();
- }
- }));
- const constant$2 = (x2) => () => x2;
- function linear$1(a, d) {
- return function(t4) {
- return a + t4 * d;
- };
- }
- function exponential(a, b, y2) {
- return a = Math.pow(a, y2), b = Math.pow(b, y2) - a, y2 = 1 / y2, function(t4) {
- return Math.pow(a + t4 * b, y2);
- };
- }
- function hue(a, b) {
- var d = b - a;
- return d ? linear$1(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$2(isNaN(a) ? b : a);
- }
- function gamma(y2) {
- return (y2 = +y2) === 1 ? nogamma : function(a, b) {
- return b - a ? exponential(a, b, y2) : constant$2(isNaN(a) ? b : a);
- };
- }
- function nogamma(a, b) {
- var d = b - a;
- return d ? linear$1(a, d) : constant$2(isNaN(a) ? b : a);
- }
- const interpolateRgb = function rgbGamma(y2) {
- var color2 = gamma(y2);
- function rgb$1(start2, end2) {
- var r = color2((start2 = rgb(start2)).r, (end2 = rgb(end2)).r), g = color2(start2.g, end2.g), b = color2(start2.b, end2.b), opacity = nogamma(start2.opacity, end2.opacity);
- return function(t4) {
- start2.r = r(t4);
- start2.g = g(t4);
- start2.b = b(t4);
- start2.opacity = opacity(t4);
- return start2 + "";
- };
- }
- rgb$1.gamma = rgbGamma;
- return rgb$1;
- }(1);
- function numberArray(a, b) {
- if (!b)
- b = [];
- var n = a ? Math.min(b.length, a.length) : 0, c2 = b.slice(), i2;
- return function(t4) {
- for (i2 = 0; i2 < n; ++i2)
- c2[i2] = a[i2] * (1 - t4) + b[i2] * t4;
- return c2;
- };
- }
- function isNumberArray(x2) {
- return ArrayBuffer.isView(x2) && !(x2 instanceof DataView);
- }
- function genericArray(a, b) {
- var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x2 = new Array(na), c2 = new Array(nb), i2;
- for (i2 = 0; i2 < na; ++i2)
- x2[i2] = interpolate$1(a[i2], b[i2]);
- for (; i2 < nb; ++i2)
- c2[i2] = b[i2];
- return function(t4) {
- for (i2 = 0; i2 < na; ++i2)
- c2[i2] = x2[i2](t4);
- return c2;
- };
- }
- function date$1(a, b) {
- var d = /* @__PURE__ */ new Date();
- return a = +a, b = +b, function(t4) {
- return d.setTime(a * (1 - t4) + b * t4), d;
- };
- }
- function interpolateNumber(a, b) {
- return a = +a, b = +b, function(t4) {
- return a * (1 - t4) + b * t4;
- };
- }
- function object(a, b) {
- var i2 = {}, c2 = {}, k;
- if (a === null || typeof a !== "object")
- a = {};
- if (b === null || typeof b !== "object")
- b = {};
- for (k in b) {
- if (k in a) {
- i2[k] = interpolate$1(a[k], b[k]);
- } else {
- c2[k] = b[k];
+ __name(formatArgs, "formatArgs");
+ exports2.log = console.debug || console.log || (() => {
+ });
+ function save(namespaces2) {
+ try {
+ if (namespaces2) {
+ exports2.storage.setItem("debug", namespaces2);
+ } else {
+ exports2.storage.removeItem("debug");
+ }
+ } catch (error3) {
+ }
}
- }
- return function(t4) {
- for (k in i2)
- c2[k] = i2[k](t4);
- return c2;
- };
- }
- var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g");
- function zero(b) {
- return function() {
- return b;
- };
- }
- function one(b) {
- return function(t4) {
- return b(t4) + "";
- };
- }
- function interpolateString(a, b) {
- var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i2 = -1, s = [], q = [];
- a = a + "", b = b + "";
- while ((am = reA.exec(a)) && (bm = reB.exec(b))) {
- if ((bs = bm.index) > bi) {
- bs = b.slice(bi, bs);
- if (s[i2])
- s[i2] += bs;
- else
- s[++i2] = bs;
+ __name(save, "save");
+ function load2() {
+ let r2;
+ try {
+ r2 = exports2.storage.getItem("debug");
+ } catch (error3) {
+ }
+ if (!r2 && typeof process !== "undefined" && "env" in process) {
+ r2 = process.env.DEBUG;
+ }
+ return r2;
}
- if ((am = am[0]) === (bm = bm[0])) {
- if (s[i2])
- s[i2] += bm;
- else
- s[++i2] = bm;
- } else {
- s[++i2] = null;
- q.push({ i: i2, x: interpolateNumber(am, bm) });
+ __name(load2, "load");
+ function localstorage() {
+ try {
+ return localStorage;
+ } catch (error3) {
+ }
}
- bi = reB.lastIndex;
- }
- if (bi < b.length) {
- bs = b.slice(bi);
- if (s[i2])
- s[i2] += bs;
- else
- s[++i2] = bs;
+ __name(localstorage, "localstorage");
+ module2.exports = require_common()(exports2);
+ var { formatters } = module2.exports;
+ formatters.j = function(v3) {
+ try {
+ return JSON.stringify(v3);
+ } catch (error3) {
+ return "[UnexpectedJSONParseError]: " + error3.message;
+ }
+ };
}
- return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t4) {
- for (var i3 = 0, o; i3 < b; ++i3)
- s[(o = q[i3]).i] = o.x(t4);
- return s.join("");
- });
- }
- function interpolate$1(a, b) {
- var t4 = typeof b, c2;
- return b == null || t4 === "boolean" ? constant$2(b) : (t4 === "number" ? interpolateNumber : t4 === "string" ? (c2 = color(b)) ? (b = c2, interpolateRgb) : interpolateString : b instanceof color ? interpolateRgb : b instanceof Date ? date$1 : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : interpolateNumber)(a, b);
- }
- function interpolateRound(a, b) {
- return a = +a, b = +b, function(t4) {
- return Math.round(a * (1 - t4) + b * t4);
- };
- }
- var degrees = 180 / Math.PI;
- var identity$4 = {
- translateX: 0,
- translateY: 0,
- rotate: 0,
- skewX: 0,
- scaleX: 1,
- scaleY: 1
- };
- function decompose(a, b, c2, d, e, f2) {
- var scaleX, scaleY, skewX;
- if (scaleX = Math.sqrt(a * a + b * b))
- a /= scaleX, b /= scaleX;
- if (skewX = a * c2 + b * d)
- c2 -= a * skewX, d -= b * skewX;
- if (scaleY = Math.sqrt(c2 * c2 + d * d))
- c2 /= scaleY, d /= scaleY, skewX /= scaleY;
- if (a * d < b * c2)
- a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
- return {
- translateX: e,
- translateY: f2,
- rotate: Math.atan2(b, a) * degrees,
- skewX: Math.atan(skewX) * degrees,
- scaleX,
- scaleY
- };
- }
- var svgNode;
- function parseCss(value) {
- const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
- return m.isIdentity ? identity$4 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
- }
- function parseSvg(value) {
- if (value == null)
- return identity$4;
- if (!svgNode)
- svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
- svgNode.setAttribute("transform", value);
- if (!(value = svgNode.transform.baseVal.consolidate()))
- return identity$4;
- value = value.matrix;
- return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
- }
- function interpolateTransform(parse2, pxComma, pxParen, degParen) {
- function pop(s) {
- return s.length ? s.pop() + " " : "";
- }
- function translate(xa, ya, xb, yb, s, q) {
- if (xa !== xb || ya !== yb) {
- var i2 = s.push("translate(", null, pxComma, null, pxParen);
- q.push({ i: i2 - 4, x: interpolateNumber(xa, xb) }, { i: i2 - 2, x: interpolateNumber(ya, yb) });
- } else if (xb || yb) {
- s.push("translate(" + xb + pxComma + yb + pxParen);
- }
+ });
+
+ // ../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/index.mjs
+ var import_debug;
+ var init_lib = __esm({
+ "../../node_modules/.pnpm/@iconify+utils@2.1.32/node_modules/@iconify/utils/lib/index.mjs"() {
+ "use strict";
+ init_name();
+ init_get_icon();
+ init_build();
+ init_id();
+ init_html();
+ import_debug = __toESM(require_browser(), 1);
}
- function rotate(a, b, s, q) {
- if (a !== b) {
- if (a - b > 180)
- b += 360;
- else if (b - a > 180)
- a += 360;
- q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b) });
- } else if (b) {
- s.push(pop(s) + "rotate(" + b + degParen);
- }
+ });
+
+ // src/rendering-util/icons.ts
+ var unknownIcon, iconsStore, loaderStore, registerIconPacks, getRegisteredIconData, getIconSVG;
+ var init_icons = __esm({
+ "src/rendering-util/icons.ts"() {
+ "use strict";
+ init_logger();
+ init_lib();
+ unknownIcon = {
+ body: '?',
+ height: 80,
+ width: 80
+ };
+ iconsStore = /* @__PURE__ */ new Map();
+ loaderStore = /* @__PURE__ */ new Map();
+ registerIconPacks = /* @__PURE__ */ __name((iconLoaders) => {
+ for (const iconLoader of iconLoaders) {
+ if (!iconLoader.name) {
+ throw new Error(
+ 'Invalid icon loader. Must have a "name" property with non-empty string value.'
+ );
+ }
+ log.debug("Registering icon pack:", iconLoader.name);
+ if ("loader" in iconLoader) {
+ loaderStore.set(iconLoader.name, iconLoader.loader);
+ } else if ("icons" in iconLoader) {
+ iconsStore.set(iconLoader.name, iconLoader.icons);
+ } else {
+ log.error("Invalid icon loader:", iconLoader);
+ throw new Error('Invalid icon loader. Must have either "icons" or "loader" property.');
+ }
+ }
+ }, "registerIconPacks");
+ getRegisteredIconData = /* @__PURE__ */ __name(async (iconName, fallbackPrefix) => {
+ const data5 = stringToIcon(iconName, true, fallbackPrefix !== void 0);
+ if (!data5) {
+ throw new Error(`Invalid icon name: ${iconName}`);
+ }
+ const prefix = data5.prefix || fallbackPrefix;
+ if (!prefix) {
+ throw new Error(`Icon name must contain a prefix: ${iconName}`);
+ }
+ let icons = iconsStore.get(prefix);
+ if (!icons) {
+ const loader26 = loaderStore.get(prefix);
+ if (!loader26) {
+ throw new Error(`Icon set not found: ${data5.prefix}`);
+ }
+ try {
+ const loaded = await loader26();
+ icons = { ...loaded, prefix };
+ iconsStore.set(prefix, icons);
+ } catch (e3) {
+ log.error(e3);
+ throw new Error(`Failed to load icon set: ${data5.prefix}`);
+ }
+ }
+ const iconData = getIconData(icons, data5.name);
+ if (!iconData) {
+ throw new Error(`Icon not found: ${iconName}`);
+ }
+ return iconData;
+ }, "getRegisteredIconData");
+ getIconSVG = /* @__PURE__ */ __name(async (iconName, customisations) => {
+ let iconData;
+ try {
+ iconData = await getRegisteredIconData(iconName, customisations?.fallbackPrefix);
+ } catch (e3) {
+ log.error(e3);
+ iconData = unknownIcon;
+ }
+ const renderData = iconToSVG(iconData, customisations);
+ const svg = iconToHTML(replaceIDs(renderData.body), renderData.attributes);
+ return svg;
+ }, "getIconSVG");
}
- function skewX(a, b, s, q) {
- if (a !== b) {
- q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b) });
- } else if (b) {
- s.push(pop(s) + "skewX(" + b + degParen);
- }
+ });
+
+ // ../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js
+ function dedent(templ) {
+ var values2 = [];
+ for (var _i = 1; _i < arguments.length; _i++) {
+ values2[_i - 1] = arguments[_i];
}
- function scale(xa, ya, xb, yb, s, q) {
- if (xa !== xb || ya !== yb) {
- var i2 = s.push(pop(s) + "scale(", null, ",", null, ")");
- q.push({ i: i2 - 4, x: interpolateNumber(xa, xb) }, { i: i2 - 2, x: interpolateNumber(ya, yb) });
- } else if (xb !== 1 || yb !== 1) {
- s.push(pop(s) + "scale(" + xb + "," + yb + ")");
+ var strings = Array.from(typeof templ === "string" ? [templ] : templ);
+ strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, "");
+ var indentLengths = strings.reduce(function(arr, str2) {
+ var matches33 = str2.match(/\n([\t ]+|(?!\s).)/g);
+ if (matches33) {
+ return arr.concat(matches33.map(function(match2) {
+ var _a, _b;
+ return (_b = (_a = match2.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
+ }));
}
+ return arr;
+ }, []);
+ if (indentLengths.length) {
+ var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g");
+ strings = strings.map(function(str2) {
+ return str2.replace(pattern_1, "\n");
+ });
}
- return function(a, b) {
- var s = [], q = [];
- a = parse2(a), b = parse2(b);
- translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
- rotate(a.rotate, b.rotate, s, q);
- skewX(a.skewX, b.skewX, s, q);
- scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
- a = b = null;
- return function(t4) {
- var i2 = -1, n = q.length, o;
- while (++i2 < n)
- s[(o = q[i2]).i] = o.x(t4);
- return s.join("");
- };
- };
- }
- var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
- var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
- function hcl(hue2) {
- return function(start2, end2) {
- var h = hue2((start2 = hcl$1(start2)).h, (end2 = hcl$1(end2)).h), c2 = nogamma(start2.c, end2.c), l = nogamma(start2.l, end2.l), opacity = nogamma(start2.opacity, end2.opacity);
- return function(t4) {
- start2.h = h(t4);
- start2.c = c2(t4);
- start2.l = l(t4);
- start2.opacity = opacity(t4);
- return start2 + "";
- };
- };
- }
- const interpolateHcl = hcl(hue);
- var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f2) {
- setTimeout(f2, 17);
- };
- function now$2() {
- return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
- }
- function clearNow() {
- clockNow = 0;
- }
- function Timer() {
- this._call = this._time = this._next = null;
- }
- Timer.prototype = timer.prototype = {
- constructor: Timer,
- restart: function(callback, delay, time2) {
- if (typeof callback !== "function")
- throw new TypeError("callback is not a function");
- time2 = (time2 == null ? now$2() : +time2) + (delay == null ? 0 : +delay);
- if (!this._next && taskTail !== this) {
- if (taskTail)
- taskTail._next = this;
- else
- taskHead = this;
- taskTail = this;
- }
- this._call = callback;
- this._time = time2;
- sleep();
- },
- stop: function() {
- if (this._call) {
- this._call = null;
- this._time = Infinity;
- sleep();
+ strings[0] = strings[0].replace(/^\r?\n/, "");
+ var string3 = strings[0];
+ values2.forEach(function(value2, i2) {
+ var endentations = string3.match(/(?:^|\n)( *)$/);
+ var endentation = endentations ? endentations[1] : "";
+ var indentedValue = value2;
+ if (typeof value2 === "string" && value2.includes("\n")) {
+ indentedValue = String(value2).split("\n").map(function(str2, i3) {
+ return i3 === 0 ? str2 : "" + endentation + str2;
+ }).join("\n");
}
- }
- };
- function timer(callback, delay, time2) {
- var t4 = new Timer();
- t4.restart(callback, delay, time2);
- return t4;
- }
- function timerFlush() {
- now$2();
- ++frame;
- var t4 = taskHead, e;
- while (t4) {
- if ((e = clockNow - t4._time) >= 0)
- t4._call.call(void 0, e);
- t4 = t4._next;
- }
- --frame;
- }
- function wake() {
- clockNow = (clockLast = clock.now()) + clockSkew;
- frame = timeout$1 = 0;
- try {
- timerFlush();
- } finally {
- frame = 0;
- nap();
- clockNow = 0;
- }
- }
- function poke() {
- var now2 = clock.now(), delay = now2 - clockLast;
- if (delay > pokeDelay)
- clockSkew -= delay, clockLast = now2;
+ string3 += indentedValue + strings[i2 + 1];
+ });
+ return string3;
}
- function nap() {
- var t02, t12 = taskHead, t22, time2 = Infinity;
- while (t12) {
- if (t12._call) {
- if (time2 > t12._time)
- time2 = t12._time;
- t02 = t12, t12 = t12._next;
- } else {
- t22 = t12._next, t12._next = null;
- t12 = t02 ? t02._next = t22 : taskHead = t22;
- }
+ var init_esm = __esm({
+ "../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js"() {
+ "use strict";
+ __name(dedent, "dedent");
}
- taskTail = t02;
- sleep(time2);
- }
- function sleep(time2) {
- if (frame)
- return;
- if (timeout$1)
- timeout$1 = clearTimeout(timeout$1);
- var delay = time2 - clockNow;
- if (delay > 24) {
- if (time2 < Infinity)
- timeout$1 = setTimeout(wake, time2 - clock.now() - clockSkew);
- if (interval)
- interval = clearInterval(interval);
- } else {
- if (!interval)
- clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
- frame = 1, setFrame(wake);
+ });
+
+ // src/diagram-api/regexes.ts
+ var frontMatterRegex, directiveRegex, anyCommentRegex;
+ var init_regexes = __esm({
+ "src/diagram-api/regexes.ts"() {
+ "use strict";
+ frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
+ directiveRegex = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+ anyCommentRegex = /\s*%%.*\n/gm;
}
- }
- function timeout(callback, delay, time2) {
- var t4 = new Timer();
- delay = delay == null ? 0 : +delay;
- t4.restart((elapsed) => {
- t4.stop();
- callback(elapsed + delay);
- }, delay, time2);
- return t4;
- }
- var emptyOn = dispatch("start", "end", "cancel", "interrupt");
- var emptyTween = [];
- var CREATED = 0;
- var SCHEDULED = 1;
- var STARTING = 2;
- var STARTED = 3;
- var RUNNING = 4;
- var ENDING = 5;
- var ENDED = 6;
- function schedule(node2, name2, id2, index, group, timing) {
- var schedules = node2.__transition;
- if (!schedules)
- node2.__transition = {};
- else if (id2 in schedules)
- return;
- create$1(node2, id2, {
- name: name2,
- index,
- // For context during callback.
- group,
- // For context during callback.
- on: emptyOn,
- tween: emptyTween,
- time: timing.time,
- delay: timing.delay,
- duration: timing.duration,
- ease: timing.ease,
- timer: null,
- state: CREATED
- });
- }
- function init$1(node2, id2) {
- var schedule2 = get$2(node2, id2);
- if (schedule2.state > CREATED)
- throw new Error("too late; already scheduled");
- return schedule2;
- }
- function set$2(node2, id2) {
- var schedule2 = get$2(node2, id2);
- if (schedule2.state > STARTED)
- throw new Error("too late; already running");
- return schedule2;
- }
- function get$2(node2, id2) {
- var schedule2 = node2.__transition;
- if (!schedule2 || !(schedule2 = schedule2[id2]))
- throw new Error("transition not found");
- return schedule2;
- }
- function create$1(node2, id2, self2) {
- var schedules = node2.__transition, tween;
- schedules[id2] = self2;
- self2.timer = timer(schedule2, 0, self2.time);
- function schedule2(elapsed) {
- self2.state = SCHEDULED;
- self2.timer.restart(start2, self2.delay, self2.time);
- if (self2.delay <= elapsed)
- start2(elapsed - self2.delay);
- }
- function start2(elapsed) {
- var i2, j, n, o;
- if (self2.state !== SCHEDULED)
- return stop();
- for (i2 in schedules) {
- o = schedules[i2];
- if (o.name !== self2.name)
- continue;
- if (o.state === STARTED)
- return timeout(start2);
- if (o.state === RUNNING) {
- o.state = ENDED;
- o.timer.stop();
- o.on.call("interrupt", node2, node2.__data__, o.index, o.group);
- delete schedules[i2];
- } else if (+i2 < id2) {
- o.state = ENDED;
- o.timer.stop();
- o.on.call("cancel", node2, node2.__data__, o.index, o.group);
- delete schedules[i2];
- }
- }
- timeout(function() {
- if (self2.state === STARTED) {
- self2.state = RUNNING;
- self2.timer.restart(tick, self2.delay, self2.time);
- tick(elapsed);
+ });
+
+ // src/errors.ts
+ var UnknownDiagramError;
+ var init_errors = __esm({
+ "src/errors.ts"() {
+ "use strict";
+ UnknownDiagramError = class extends Error {
+ static {
+ __name(this, "UnknownDiagramError");
}
- });
- self2.state = STARTING;
- self2.on.call("start", node2, node2.__data__, self2.index, self2.group);
- if (self2.state !== STARTING)
- return;
- self2.state = STARTED;
- tween = new Array(n = self2.tween.length);
- for (i2 = 0, j = -1; i2 < n; ++i2) {
- if (o = self2.tween[i2].value.call(node2, node2.__data__, self2.index, self2.group)) {
- tween[++j] = o;
+ constructor(message) {
+ super(message);
+ this.name = "UnknownDiagramError";
}
- }
- tween.length = j + 1;
- }
- function tick(elapsed) {
- var t4 = elapsed < self2.duration ? self2.ease.call(null, elapsed / self2.duration) : (self2.timer.restart(stop), self2.state = ENDING, 1), i2 = -1, n = tween.length;
- while (++i2 < n) {
- tween[i2].call(node2, t4);
- }
- if (self2.state === ENDING) {
- self2.on.call("end", node2, node2.__data__, self2.index, self2.group);
- stop();
- }
- }
- function stop() {
- self2.state = ENDED;
- self2.timer.stop();
- delete schedules[id2];
- for (var i2 in schedules)
- return;
- delete node2.__transition;
+ };
}
- }
- function interrupt(node2, name2) {
- var schedules = node2.__transition, schedule2, active, empty2 = true, i2;
- if (!schedules)
- return;
- name2 = name2 == null ? null : name2 + "";
- for (i2 in schedules) {
- if ((schedule2 = schedules[i2]).name !== name2) {
- empty2 = false;
- continue;
- }
- active = schedule2.state > STARTING && schedule2.state < ENDING;
- schedule2.state = ENDED;
- schedule2.timer.stop();
- schedule2.on.call(active ? "interrupt" : "cancel", node2, node2.__data__, schedule2.index, schedule2.group);
- delete schedules[i2];
+ });
+
+ // src/diagram-api/detectType.ts
+ var detectors, detectType, registerLazyLoadedDiagrams, addDetector, getDiagramLoader;
+ var init_detectType = __esm({
+ "src/diagram-api/detectType.ts"() {
+ "use strict";
+ init_logger();
+ init_regexes();
+ init_errors();
+ detectors = {};
+ detectType = /* @__PURE__ */ __name(function(text2, config6) {
+ text2 = text2.replace(frontMatterRegex, "").replace(directiveRegex, "").replace(anyCommentRegex, "\n");
+ for (const [key, { detector: detector25 }] of Object.entries(detectors)) {
+ const diagram24 = detector25(text2, config6);
+ if (diagram24) {
+ return key;
+ }
+ }
+ throw new UnknownDiagramError(
+ `No diagram type detected matching given configuration for text: ${text2}`
+ );
+ }, "detectType");
+ registerLazyLoadedDiagrams = /* @__PURE__ */ __name((...diagrams2) => {
+ for (const { id: id27, detector: detector25, loader: loader26 } of diagrams2) {
+ addDetector(id27, detector25, loader26);
+ }
+ }, "registerLazyLoadedDiagrams");
+ addDetector = /* @__PURE__ */ __name((key, detector25, loader26) => {
+ if (detectors[key]) {
+ log.warn(`Detector with key ${key} already exists. Overwriting.`);
+ }
+ detectors[key] = { detector: detector25, loader: loader26 };
+ log.debug(`Detector with key ${key} added${loader26 ? " with loader" : ""}`);
+ }, "addDetector");
+ getDiagramLoader = /* @__PURE__ */ __name((key) => {
+ return detectors[key].loader;
+ }, "getDiagramLoader");
}
- if (empty2)
- delete node2.__transition;
- }
- function selection_interrupt(name2) {
- return this.each(function() {
- interrupt(this, name2);
- });
- }
- function tweenRemove(id2, name2) {
- var tween0, tween1;
- return function() {
- var schedule2 = set$2(this, id2), tween = schedule2.tween;
- if (tween !== tween0) {
- tween1 = tween0 = tween;
- for (var i2 = 0, n = tween1.length; i2 < n; ++i2) {
- if (tween1[i2].name === name2) {
- tween1 = tween1.slice();
- tween1.splice(i2, 1);
- break;
- }
+ });
+
+ // src/diagrams/c4/parser/c4Diagram.jison
+ var parser, c4Diagram_default;
+ var init_c4Diagram = __esm({
+ "src/diagrams/c4/parser/c4Diagram.jison"() {
+ "use strict";
+ parser = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VJ = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "direction_tb": 6, "direction_bt": 7, "direction_rl": 8, "direction_lr": 9, "graphConfig": 10, "C4_CONTEXT": 11, "NEWLINE": 12, "statements": 13, "EOF": 14, "C4_CONTAINER": 15, "C4_COMPONENT": 16, "C4_DYNAMIC": 17, "C4_DEPLOYMENT": 18, "otherStatements": 19, "diagramStatements": 20, "otherStatement": 21, "title": 22, "accDescription": 23, "acc_title": 24, "acc_title_value": 25, "acc_descr": 26, "acc_descr_value": 27, "acc_descr_multiline_value": 28, "boundaryStatement": 29, "boundaryStartStatement": 30, "boundaryStopStatement": 31, "boundaryStart": 32, "LBRACE": 33, "ENTERPRISE_BOUNDARY": 34, "attributes": 35, "SYSTEM_BOUNDARY": 36, "BOUNDARY": 37, "CONTAINER_BOUNDARY": 38, "NODE": 39, "NODE_L": 40, "NODE_R": 41, "RBRACE": 42, "diagramStatement": 43, "PERSON": 44, "PERSON_EXT": 45, "SYSTEM": 46, "SYSTEM_DB": 47, "SYSTEM_QUEUE": 48, "SYSTEM_EXT": 49, "SYSTEM_EXT_DB": 50, "SYSTEM_EXT_QUEUE": 51, "CONTAINER": 52, "CONTAINER_DB": 53, "CONTAINER_QUEUE": 54, "CONTAINER_EXT": 55, "CONTAINER_EXT_DB": 56, "CONTAINER_EXT_QUEUE": 57, "COMPONENT": 58, "COMPONENT_DB": 59, "COMPONENT_QUEUE": 60, "COMPONENT_EXT": 61, "COMPONENT_EXT_DB": 62, "COMPONENT_EXT_QUEUE": 63, "REL": 64, "BIREL": 65, "REL_U": 66, "REL_D": 67, "REL_L": 68, "REL_R": 69, "REL_B": 70, "REL_INDEX": 71, "UPDATE_EL_STYLE": 72, "UPDATE_REL_STYLE": 73, "UPDATE_LAYOUT_CONFIG": 74, "attribute": 75, "STR": 76, "STR_KEY": 77, "STR_VALUE": 78, "ATTRIBUTE": 79, "ATTRIBUTE_EMPTY": 80, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "direction_tb", 7: "direction_bt", 8: "direction_rl", 9: "direction_lr", 11: "C4_CONTEXT", 12: "NEWLINE", 14: "EOF", 15: "C4_CONTAINER", 16: "C4_COMPONENT", 17: "C4_DYNAMIC", 18: "C4_DEPLOYMENT", 22: "title", 23: "accDescription", 24: "acc_title", 25: "acc_title_value", 26: "acc_descr", 27: "acc_descr_value", 28: "acc_descr_multiline_value", 33: "LBRACE", 34: "ENTERPRISE_BOUNDARY", 36: "SYSTEM_BOUNDARY", 37: "BOUNDARY", 38: "CONTAINER_BOUNDARY", 39: "NODE", 40: "NODE_L", 41: "NODE_R", 42: "RBRACE", 44: "PERSON", 45: "PERSON_EXT", 46: "SYSTEM", 47: "SYSTEM_DB", 48: "SYSTEM_QUEUE", 49: "SYSTEM_EXT", 50: "SYSTEM_EXT_DB", 51: "SYSTEM_EXT_QUEUE", 52: "CONTAINER", 53: "CONTAINER_DB", 54: "CONTAINER_QUEUE", 55: "CONTAINER_EXT", 56: "CONTAINER_EXT_DB", 57: "CONTAINER_EXT_QUEUE", 58: "COMPONENT", 59: "COMPONENT_DB", 60: "COMPONENT_QUEUE", 61: "COMPONENT_EXT", 62: "COMPONENT_EXT_DB", 63: "COMPONENT_EXT_QUEUE", 64: "REL", 65: "BIREL", 66: "REL_U", 67: "REL_D", 68: "REL_L", 69: "REL_R", 70: "REL_B", 71: "REL_INDEX", 72: "UPDATE_EL_STYLE", 73: "UPDATE_REL_STYLE", 74: "UPDATE_LAYOUT_CONFIG", 76: "STR", 77: "STR_KEY", 78: "STR_VALUE", 79: "ATTRIBUTE", 80: "ATTRIBUTE_EMPTY" },
+ productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 3:
+ yy.setDirection("TB");
+ break;
+ case 4:
+ yy.setDirection("BT");
+ break;
+ case 5:
+ yy.setDirection("RL");
+ break;
+ case 6:
+ yy.setDirection("LR");
+ break;
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ yy.setC4Type($$[$0 - 3]);
+ break;
+ case 19:
+ yy.setTitle($$[$0].substring(6));
+ this.$ = $$[$0].substring(6);
+ break;
+ case 20:
+ yy.setAccDescription($$[$0].substring(15));
+ this.$ = $$[$0].substring(15);
+ break;
+ case 21:
+ this.$ = $$[$0].trim();
+ yy.setTitle(this.$);
+ break;
+ case 22:
+ case 23:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 28:
+ $$[$0].splice(2, 0, "ENTERPRISE");
+ yy.addPersonOrSystemBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 29:
+ $$[$0].splice(2, 0, "SYSTEM");
+ yy.addPersonOrSystemBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 30:
+ yy.addPersonOrSystemBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 31:
+ $$[$0].splice(2, 0, "CONTAINER");
+ yy.addContainerBoundary(...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 32:
+ yy.addDeploymentNode("node", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 33:
+ yy.addDeploymentNode("nodeL", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 34:
+ yy.addDeploymentNode("nodeR", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 35:
+ yy.popBoundaryParseStack();
+ break;
+ case 39:
+ yy.addPersonOrSystem("person", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 40:
+ yy.addPersonOrSystem("external_person", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 41:
+ yy.addPersonOrSystem("system", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 42:
+ yy.addPersonOrSystem("system_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 43:
+ yy.addPersonOrSystem("system_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 44:
+ yy.addPersonOrSystem("external_system", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 45:
+ yy.addPersonOrSystem("external_system_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 46:
+ yy.addPersonOrSystem("external_system_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 47:
+ yy.addContainer("container", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 48:
+ yy.addContainer("container_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 49:
+ yy.addContainer("container_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 50:
+ yy.addContainer("external_container", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 51:
+ yy.addContainer("external_container_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 52:
+ yy.addContainer("external_container_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 53:
+ yy.addComponent("component", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 54:
+ yy.addComponent("component_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 55:
+ yy.addComponent("component_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 56:
+ yy.addComponent("external_component", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 57:
+ yy.addComponent("external_component_db", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 58:
+ yy.addComponent("external_component_queue", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 60:
+ yy.addRel("rel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 61:
+ yy.addRel("birel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 62:
+ yy.addRel("rel_u", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 63:
+ yy.addRel("rel_d", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 64:
+ yy.addRel("rel_l", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 65:
+ yy.addRel("rel_r", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 66:
+ yy.addRel("rel_b", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 67:
+ $$[$0].splice(0, 1);
+ yy.addRel("rel", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 68:
+ yy.updateElStyle("update_el_style", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 69:
+ yy.updateRelStyle("update_rel_style", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 70:
+ yy.updateLayoutConfig("update_layout_config", ...$$[$0]);
+ this.$ = $$[$0];
+ break;
+ case 71:
+ this.$ = [$$[$0]];
+ break;
+ case 72:
+ $$[$0].unshift($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 73:
+ case 75:
+ this.$ = $$[$0].trim();
+ break;
+ case 74:
+ let kv = {};
+ kv[$$[$0 - 1].trim()] = $$[$0].trim();
+ this.$ = kv;
+ break;
+ case 76:
+ this.$ = "";
+ break;
+ }
+ }, "anonymous"),
+ table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o2($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o2($VH, [2, 14]), o2($VI, [2, 16], { 12: [1, 76] }), o2($VH, [2, 36], { 12: [1, 77] }), o2($VJ, [2, 19]), o2($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o2($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o2($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o2($VH, [2, 15]), o2($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o2($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o2($VJ, [2, 21]), o2($VJ, [2, 22]), o2($VO, [2, 39]), o2($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o2($VQ, [2, 73]), { 78: [1, 133] }, o2($VQ, [2, 75]), o2($VQ, [2, 76]), o2($VO, [2, 40]), o2($VO, [2, 41]), o2($VO, [2, 42]), o2($VO, [2, 43]), o2($VO, [2, 44]), o2($VO, [2, 45]), o2($VO, [2, 46]), o2($VO, [2, 47]), o2($VO, [2, 48]), o2($VO, [2, 49]), o2($VO, [2, 50]), o2($VO, [2, 51]), o2($VO, [2, 52]), o2($VO, [2, 53]), o2($VO, [2, 54]), o2($VO, [2, 55]), o2($VO, [2, 56]), o2($VO, [2, 57]), o2($VO, [2, 58]), o2($VO, [2, 60]), o2($VO, [2, 61]), o2($VO, [2, 62]), o2($VO, [2, 63]), o2($VO, [2, 64]), o2($VO, [2, 65]), o2($VO, [2, 66]), o2($VO, [2, 67]), o2($VO, [2, 68]), o2($VO, [2, 69]), o2($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o2($VR, [2, 28]), o2($VR, [2, 29]), o2($VR, [2, 30]), o2($VR, [2, 31]), o2($VR, [2, 32]), o2($VR, [2, 33]), o2($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o2($VI, [2, 18]), o2($VH, [2, 38]), o2($VP, [2, 72]), o2($VQ, [2, 74]), o2($VO, [2, 24]), o2($VO, [2, 35]), o2($VS, [2, 25]), o2($VS, [2, 26], { 12: [1, 138] }), o2($VS, [2, 27])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
+ }
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
+ }
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: {},
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ return 6;
+ break;
+ case 1:
+ return 7;
+ break;
+ case 2:
+ return 8;
+ break;
+ case 3:
+ return 9;
+ break;
+ case 4:
+ return 22;
+ break;
+ case 5:
+ return 23;
+ break;
+ case 6:
+ this.begin("acc_title");
+ return 24;
+ break;
+ case 7:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 8:
+ this.begin("acc_descr");
+ return 26;
+ break;
+ case 9:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 10:
+ this.begin("acc_descr_multiline");
+ break;
+ case 11:
+ this.popState();
+ break;
+ case 12:
+ return "acc_descr_multiline_value";
+ break;
+ case 13:
+ break;
+ case 14:
+ c;
+ break;
+ case 15:
+ return 12;
+ break;
+ case 16:
+ break;
+ case 17:
+ return 11;
+ break;
+ case 18:
+ return 15;
+ break;
+ case 19:
+ return 16;
+ break;
+ case 20:
+ return 17;
+ break;
+ case 21:
+ return 18;
+ break;
+ case 22:
+ this.begin("person_ext");
+ return 45;
+ break;
+ case 23:
+ this.begin("person");
+ return 44;
+ break;
+ case 24:
+ this.begin("system_ext_queue");
+ return 51;
+ break;
+ case 25:
+ this.begin("system_ext_db");
+ return 50;
+ break;
+ case 26:
+ this.begin("system_ext");
+ return 49;
+ break;
+ case 27:
+ this.begin("system_queue");
+ return 48;
+ break;
+ case 28:
+ this.begin("system_db");
+ return 47;
+ break;
+ case 29:
+ this.begin("system");
+ return 46;
+ break;
+ case 30:
+ this.begin("boundary");
+ return 37;
+ break;
+ case 31:
+ this.begin("enterprise_boundary");
+ return 34;
+ break;
+ case 32:
+ this.begin("system_boundary");
+ return 36;
+ break;
+ case 33:
+ this.begin("container_ext_queue");
+ return 57;
+ break;
+ case 34:
+ this.begin("container_ext_db");
+ return 56;
+ break;
+ case 35:
+ this.begin("container_ext");
+ return 55;
+ break;
+ case 36:
+ this.begin("container_queue");
+ return 54;
+ break;
+ case 37:
+ this.begin("container_db");
+ return 53;
+ break;
+ case 38:
+ this.begin("container");
+ return 52;
+ break;
+ case 39:
+ this.begin("container_boundary");
+ return 38;
+ break;
+ case 40:
+ this.begin("component_ext_queue");
+ return 63;
+ break;
+ case 41:
+ this.begin("component_ext_db");
+ return 62;
+ break;
+ case 42:
+ this.begin("component_ext");
+ return 61;
+ break;
+ case 43:
+ this.begin("component_queue");
+ return 60;
+ break;
+ case 44:
+ this.begin("component_db");
+ return 59;
+ break;
+ case 45:
+ this.begin("component");
+ return 58;
+ break;
+ case 46:
+ this.begin("node");
+ return 39;
+ break;
+ case 47:
+ this.begin("node");
+ return 39;
+ break;
+ case 48:
+ this.begin("node_l");
+ return 40;
+ break;
+ case 49:
+ this.begin("node_r");
+ return 41;
+ break;
+ case 50:
+ this.begin("rel");
+ return 64;
+ break;
+ case 51:
+ this.begin("birel");
+ return 65;
+ break;
+ case 52:
+ this.begin("rel_u");
+ return 66;
+ break;
+ case 53:
+ this.begin("rel_u");
+ return 66;
+ break;
+ case 54:
+ this.begin("rel_d");
+ return 67;
+ break;
+ case 55:
+ this.begin("rel_d");
+ return 67;
+ break;
+ case 56:
+ this.begin("rel_l");
+ return 68;
+ break;
+ case 57:
+ this.begin("rel_l");
+ return 68;
+ break;
+ case 58:
+ this.begin("rel_r");
+ return 69;
+ break;
+ case 59:
+ this.begin("rel_r");
+ return 69;
+ break;
+ case 60:
+ this.begin("rel_b");
+ return 70;
+ break;
+ case 61:
+ this.begin("rel_index");
+ return 71;
+ break;
+ case 62:
+ this.begin("update_el_style");
+ return 72;
+ break;
+ case 63:
+ this.begin("update_rel_style");
+ return 73;
+ break;
+ case 64:
+ this.begin("update_layout_config");
+ return 74;
+ break;
+ case 65:
+ return "EOF_IN_STRUCT";
+ break;
+ case 66:
+ this.begin("attribute");
+ return "ATTRIBUTE_EMPTY";
+ break;
+ case 67:
+ this.begin("attribute");
+ break;
+ case 68:
+ this.popState();
+ this.popState();
+ break;
+ case 69:
+ return 80;
+ break;
+ case 70:
+ break;
+ case 71:
+ return 80;
+ break;
+ case 72:
+ this.begin("string");
+ break;
+ case 73:
+ this.popState();
+ break;
+ case 74:
+ return "STR";
+ break;
+ case 75:
+ this.begin("string_kv");
+ break;
+ case 76:
+ this.begin("string_kv_key");
+ return "STR_KEY";
+ break;
+ case 77:
+ this.popState();
+ this.begin("string_kv_value");
+ break;
+ case 78:
+ return "STR_VALUE";
+ break;
+ case 79:
+ this.popState();
+ this.popState();
+ break;
+ case 80:
+ return "STR";
+ break;
+ case 81:
+ return "LBRACE";
+ break;
+ case 82:
+ return "RBRACE";
+ break;
+ case 83:
+ return "SPACE";
+ break;
+ case 84:
+ return "EOL";
+ break;
+ case 85:
+ return 14;
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/],
+ conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "string_kv_value": { "rules": [78, 79], "inclusive": false }, "string_kv_key": { "rules": [77], "inclusive": false }, "string_kv": { "rules": [76], "inclusive": false }, "string": { "rules": [73, 74], "inclusive": false }, "attribute": { "rules": [68, 69, 70, 71, 72, 75, 80], "inclusive": false }, "update_layout_config": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_rel_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_el_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_b": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_d": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_u": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "node": { "rules": [65, 66, 67, 68], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container": { "rules": [65, 66, 67, 68], "inclusive": false }, "birel": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "enterprise_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system": { "rules": [65, 66, 67, 68], "inclusive": false }, "person_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "person": { "rules": [65, 66, 67, 68], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser.parser = parser;
+ c4Diagram_default = parser;
+ }
+ });
+
+ // src/assignWithDepth.ts
+ var assignWithDepth, assignWithDepth_default;
+ var init_assignWithDepth = __esm({
+ "src/assignWithDepth.ts"() {
+ "use strict";
+ assignWithDepth = /* @__PURE__ */ __name((dst, src, { depth = 2, clobber = false } = {}) => {
+ const config6 = { depth, clobber };
+ if (Array.isArray(src) && !Array.isArray(dst)) {
+ src.forEach((s2) => assignWithDepth(dst, s2, config6));
+ return dst;
+ } else if (Array.isArray(src) && Array.isArray(dst)) {
+ src.forEach((s2) => {
+ if (!dst.includes(s2)) {
+ dst.push(s2);
+ }
+ });
+ return dst;
}
- }
- schedule2.tween = tween1;
- };
- }
- function tweenFunction(id2, name2, value) {
- var tween0, tween1;
- if (typeof value !== "function")
- throw new Error();
- return function() {
- var schedule2 = set$2(this, id2), tween = schedule2.tween;
- if (tween !== tween0) {
- tween1 = (tween0 = tween).slice();
- for (var t4 = { name: name2, value }, i2 = 0, n = tween1.length; i2 < n; ++i2) {
- if (tween1[i2].name === name2) {
- tween1[i2] = t4;
- break;
+ if (dst === void 0 || depth <= 0) {
+ if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") {
+ return Object.assign(dst, src);
+ } else {
+ return src;
}
}
- if (i2 === n)
- tween1.push(t4);
- }
- schedule2.tween = tween1;
- };
- }
- function transition_tween(name2, value) {
- var id2 = this._id;
- name2 += "";
- if (arguments.length < 2) {
- var tween = get$2(this.node(), id2).tween;
- for (var i2 = 0, n = tween.length, t4; i2 < n; ++i2) {
- if ((t4 = tween[i2]).name === name2) {
- return t4.value;
+ if (src !== void 0 && typeof dst === "object" && typeof src === "object") {
+ Object.keys(src).forEach((key) => {
+ if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) {
+ if (dst[key] === void 0) {
+ dst[key] = Array.isArray(src[key]) ? [] : {};
+ }
+ dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });
+ } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") {
+ dst[key] = src[key];
+ }
+ });
}
- }
- return null;
+ return dst;
+ }, "assignWithDepth");
+ assignWithDepth_default = assignWithDepth;
}
- return this.each((value == null ? tweenRemove : tweenFunction)(id2, name2, value));
- }
- function tweenValue(transition, name2, value) {
- var id2 = transition._id;
- transition.each(function() {
- var schedule2 = set$2(this, id2);
- (schedule2.value || (schedule2.value = {}))[name2] = value.apply(this, arguments);
- });
- return function(node2) {
- return get$2(node2, id2).value[name2];
- };
- }
- function interpolate(a, b) {
- var c2;
- return (typeof b === "number" ? interpolateNumber : b instanceof color ? interpolateRgb : (c2 = color(b)) ? (b = c2, interpolateRgb) : interpolateString)(a, b);
- }
- function attrRemove(name2) {
- return function() {
- this.removeAttribute(name2);
- };
- }
- function attrRemoveNS(fullname) {
- return function() {
- this.removeAttributeNS(fullname.space, fullname.local);
- };
- }
- function attrConstant(name2, interpolate2, value1) {
- var string00, string1 = value1 + "", interpolate0;
- return function() {
- var string0 = this.getAttribute(name2);
- return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
- };
- }
- function attrConstantNS(fullname, interpolate2, value1) {
- var string00, string1 = value1 + "", interpolate0;
- return function() {
- var string0 = this.getAttributeNS(fullname.space, fullname.local);
- return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
- };
- }
- function attrFunction(name2, interpolate2, value) {
- var string00, string10, interpolate0;
- return function() {
- var string0, value1 = value(this), string1;
- if (value1 == null)
- return void this.removeAttribute(name2);
- string0 = this.getAttribute(name2);
- string1 = value1 + "";
- return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
- };
- }
- function attrFunctionNS(fullname, interpolate2, value) {
- var string00, string10, interpolate0;
- return function() {
- var string0, value1 = value(this), string1;
- if (value1 == null)
- return void this.removeAttributeNS(fullname.space, fullname.local);
- string0 = this.getAttributeNS(fullname.space, fullname.local);
- string1 = value1 + "";
- return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
- };
- }
- function transition_attr(name2, value) {
- var fullname = namespace(name2), i2 = fullname === "transform" ? interpolateTransformSvg : interpolate;
- return this.attrTween(name2, typeof value === "function" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i2, tweenValue(this, "attr." + name2, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i2, value));
- }
- function attrInterpolate(name2, i2) {
- return function(t4) {
- this.setAttribute(name2, i2.call(this, t4));
- };
- }
- function attrInterpolateNS(fullname, i2) {
- return function(t4) {
- this.setAttributeNS(fullname.space, fullname.local, i2.call(this, t4));
- };
- }
- function attrTweenNS(fullname, value) {
- var t02, i0;
- function tween() {
- var i2 = value.apply(this, arguments);
- if (i2 !== i0)
- t02 = (i0 = i2) && attrInterpolateNS(fullname, i2);
- return t02;
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/channel.js
+ var Channel, channel_default;
+ var init_channel = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/channel.js"() {
+ "use strict";
+ Channel = {
+ /* CLAMP */
+ min: {
+ r: 0,
+ g: 0,
+ b: 0,
+ s: 0,
+ l: 0,
+ a: 0
+ },
+ max: {
+ r: 255,
+ g: 255,
+ b: 255,
+ h: 360,
+ s: 100,
+ l: 100,
+ a: 1
+ },
+ clamp: {
+ r: /* @__PURE__ */ __name((r2) => r2 >= 255 ? 255 : r2 < 0 ? 0 : r2, "r"),
+ g: /* @__PURE__ */ __name((g2) => g2 >= 255 ? 255 : g2 < 0 ? 0 : g2, "g"),
+ b: /* @__PURE__ */ __name((b2) => b2 >= 255 ? 255 : b2 < 0 ? 0 : b2, "b"),
+ h: /* @__PURE__ */ __name((h2) => h2 % 360, "h"),
+ s: /* @__PURE__ */ __name((s2) => s2 >= 100 ? 100 : s2 < 0 ? 0 : s2, "s"),
+ l: /* @__PURE__ */ __name((l2) => l2 >= 100 ? 100 : l2 < 0 ? 0 : l2, "l"),
+ a: /* @__PURE__ */ __name((a2) => a2 >= 1 ? 1 : a2 < 0 ? 0 : a2, "a")
+ },
+ /* CONVERSION */
+ //SOURCE: https://planetcalc.com/7779
+ toLinear: /* @__PURE__ */ __name((c3) => {
+ const n2 = c3 / 255;
+ return c3 > 0.03928 ? Math.pow((n2 + 0.055) / 1.055, 2.4) : n2 / 12.92;
+ }, "toLinear"),
+ //SOURCE: https://gist.github.com/mjackson/5311256
+ hue2rgb: /* @__PURE__ */ __name((p3, q2, t4) => {
+ if (t4 < 0)
+ t4 += 1;
+ if (t4 > 1)
+ t4 -= 1;
+ if (t4 < 1 / 6)
+ return p3 + (q2 - p3) * 6 * t4;
+ if (t4 < 1 / 2)
+ return q2;
+ if (t4 < 2 / 3)
+ return p3 + (q2 - p3) * (2 / 3 - t4) * 6;
+ return p3;
+ }, "hue2rgb"),
+ hsl2rgb: /* @__PURE__ */ __name(({ h: h2, s: s2, l: l2 }, channel2) => {
+ if (!s2)
+ return l2 * 2.55;
+ h2 /= 360;
+ s2 /= 100;
+ l2 /= 100;
+ const q2 = l2 < 0.5 ? l2 * (1 + s2) : l2 + s2 - l2 * s2;
+ const p3 = 2 * l2 - q2;
+ switch (channel2) {
+ case "r":
+ return Channel.hue2rgb(p3, q2, h2 + 1 / 3) * 255;
+ case "g":
+ return Channel.hue2rgb(p3, q2, h2) * 255;
+ case "b":
+ return Channel.hue2rgb(p3, q2, h2 - 1 / 3) * 255;
+ }
+ }, "hsl2rgb"),
+ rgb2hsl: /* @__PURE__ */ __name(({ r: r2, g: g2, b: b2 }, channel2) => {
+ r2 /= 255;
+ g2 /= 255;
+ b2 /= 255;
+ const max10 = Math.max(r2, g2, b2);
+ const min9 = Math.min(r2, g2, b2);
+ const l2 = (max10 + min9) / 2;
+ if (channel2 === "l")
+ return l2 * 100;
+ if (max10 === min9)
+ return 0;
+ const d2 = max10 - min9;
+ const s2 = l2 > 0.5 ? d2 / (2 - max10 - min9) : d2 / (max10 + min9);
+ if (channel2 === "s")
+ return s2 * 100;
+ switch (max10) {
+ case r2:
+ return ((g2 - b2) / d2 + (g2 < b2 ? 6 : 0)) * 60;
+ case g2:
+ return ((b2 - r2) / d2 + 2) * 60;
+ case b2:
+ return ((r2 - g2) / d2 + 4) * 60;
+ default:
+ return -1;
+ }
+ }, "rgb2hsl")
+ };
+ channel_default = Channel;
}
- tween._value = value;
- return tween;
- }
- function attrTween(name2, value) {
- var t02, i0;
- function tween() {
- var i2 = value.apply(this, arguments);
- if (i2 !== i0)
- t02 = (i0 = i2) && attrInterpolate(name2, i2);
- return t02;
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/lang.js
+ var Lang, lang_default;
+ var init_lang = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/lang.js"() {
+ "use strict";
+ Lang = {
+ /* API */
+ clamp: /* @__PURE__ */ __name((number7, lower2, upper) => {
+ if (lower2 > upper)
+ return Math.min(lower2, Math.max(upper, number7));
+ return Math.min(upper, Math.max(lower2, number7));
+ }, "clamp"),
+ round: /* @__PURE__ */ __name((number7) => {
+ return Math.round(number7 * 1e10) / 1e10;
+ }, "round")
+ };
+ lang_default = Lang;
}
- tween._value = value;
- return tween;
- }
- function transition_attrTween(name2, value) {
- var key = "attr." + name2;
- if (arguments.length < 2)
- return (key = this.tween(key)) && key._value;
- if (value == null)
- return this.tween(key, null);
- if (typeof value !== "function")
- throw new Error();
- var fullname = namespace(name2);
- return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
- }
- function delayFunction(id2, value) {
- return function() {
- init$1(this, id2).delay = +value.apply(this, arguments);
- };
- }
- function delayConstant(id2, value) {
- return value = +value, function() {
- init$1(this, id2).delay = value;
- };
- }
- function transition_delay(value) {
- var id2 = this._id;
- return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id2, value)) : get$2(this.node(), id2).delay;
- }
- function durationFunction(id2, value) {
- return function() {
- set$2(this, id2).duration = +value.apply(this, arguments);
- };
- }
- function durationConstant(id2, value) {
- return value = +value, function() {
- set$2(this, id2).duration = value;
- };
- }
- function transition_duration(value) {
- var id2 = this._id;
- return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id2, value)) : get$2(this.node(), id2).duration;
- }
- function easeConstant(id2, value) {
- if (typeof value !== "function")
- throw new Error();
- return function() {
- set$2(this, id2).ease = value;
- };
- }
- function transition_ease(value) {
- var id2 = this._id;
- return arguments.length ? this.each(easeConstant(id2, value)) : get$2(this.node(), id2).ease;
- }
- function easeVarying(id2, value) {
- return function() {
- var v = value.apply(this, arguments);
- if (typeof v !== "function")
- throw new Error();
- set$2(this, id2).ease = v;
- };
- }
- function transition_easeVarying(value) {
- if (typeof value !== "function")
- throw new Error();
- return this.each(easeVarying(this._id, value));
- }
- function transition_filter(match) {
- if (typeof match !== "function")
- match = matcher(match);
- for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i2 = 0; i2 < n; ++i2) {
- if ((node2 = group[i2]) && match.call(node2, node2.__data__, i2, group)) {
- subgroup.push(node2);
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/unit.js
+ var Unit, unit_default;
+ var init_unit = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/unit.js"() {
+ "use strict";
+ Unit = {
+ /* API */
+ dec2hex: /* @__PURE__ */ __name((dec) => {
+ const hex2 = Math.round(dec).toString(16);
+ return hex2.length > 1 ? hex2 : `0${hex2}`;
+ }, "dec2hex")
+ };
+ unit_default = Unit;
+ }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/index.js
+ var Utils, utils_default;
+ var init_utils = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/index.js"() {
+ "use strict";
+ init_channel();
+ init_lang();
+ init_unit();
+ Utils = {
+ channel: channel_default,
+ lang: lang_default,
+ unit: unit_default
+ };
+ utils_default = Utils;
+ }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/constants.js
+ var DEC2HEX, TYPE;
+ var init_constants = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/constants.js"() {
+ "use strict";
+ init_utils();
+ DEC2HEX = {};
+ for (let i2 = 0; i2 <= 255; i2++)
+ DEC2HEX[i2] = utils_default.unit.dec2hex(i2);
+ TYPE = {
+ ALL: 0,
+ RGB: 1,
+ HSL: 2
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/type.js
+ var Type, type_default;
+ var init_type = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/type.js"() {
+ "use strict";
+ init_constants();
+ Type = class {
+ static {
+ __name(this, "Type");
}
- }
+ constructor() {
+ this.type = TYPE.ALL;
+ }
+ /* API */
+ get() {
+ return this.type;
+ }
+ set(type3) {
+ if (this.type && this.type !== type3)
+ throw new Error("Cannot change both RGB and HSL channels at the same time");
+ this.type = type3;
+ }
+ reset() {
+ this.type = TYPE.ALL;
+ }
+ is(type3) {
+ return this.type === type3;
+ }
+ };
+ type_default = Type;
}
- return new Transition(subgroups, this._parents, this._name, this._id);
- }
- function transition_merge(transition) {
- if (transition._id !== this._id)
- throw new Error();
- for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
- for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge2 = merges[j] = new Array(n), node2, i2 = 0; i2 < n; ++i2) {
- if (node2 = group0[i2] || group1[i2]) {
- merge2[i2] = node2;
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/index.js
+ var Channels, channels_default;
+ var init_channels = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/index.js"() {
+ "use strict";
+ init_utils();
+ init_type();
+ init_constants();
+ Channels = class {
+ static {
+ __name(this, "Channels");
+ }
+ /* CONSTRUCTOR */
+ constructor(data5, color2) {
+ this.color = color2;
+ this.changed = false;
+ this.data = data5;
+ this.type = new type_default();
+ }
+ /* API */
+ set(data5, color2) {
+ this.color = color2;
+ this.changed = false;
+ this.data = data5;
+ this.type.type = TYPE.ALL;
+ return this;
}
- }
+ /* HELPERS */
+ _ensureHSL() {
+ const data5 = this.data;
+ const { h: h2, s: s2, l: l2 } = data5;
+ if (h2 === void 0)
+ data5.h = utils_default.channel.rgb2hsl(data5, "h");
+ if (s2 === void 0)
+ data5.s = utils_default.channel.rgb2hsl(data5, "s");
+ if (l2 === void 0)
+ data5.l = utils_default.channel.rgb2hsl(data5, "l");
+ }
+ _ensureRGB() {
+ const data5 = this.data;
+ const { r: r2, g: g2, b: b2 } = data5;
+ if (r2 === void 0)
+ data5.r = utils_default.channel.hsl2rgb(data5, "r");
+ if (g2 === void 0)
+ data5.g = utils_default.channel.hsl2rgb(data5, "g");
+ if (b2 === void 0)
+ data5.b = utils_default.channel.hsl2rgb(data5, "b");
+ }
+ /* GETTERS */
+ get r() {
+ const data5 = this.data;
+ const r2 = data5.r;
+ if (!this.type.is(TYPE.HSL) && r2 !== void 0)
+ return r2;
+ this._ensureHSL();
+ return utils_default.channel.hsl2rgb(data5, "r");
+ }
+ get g() {
+ const data5 = this.data;
+ const g2 = data5.g;
+ if (!this.type.is(TYPE.HSL) && g2 !== void 0)
+ return g2;
+ this._ensureHSL();
+ return utils_default.channel.hsl2rgb(data5, "g");
+ }
+ get b() {
+ const data5 = this.data;
+ const b2 = data5.b;
+ if (!this.type.is(TYPE.HSL) && b2 !== void 0)
+ return b2;
+ this._ensureHSL();
+ return utils_default.channel.hsl2rgb(data5, "b");
+ }
+ get h() {
+ const data5 = this.data;
+ const h2 = data5.h;
+ if (!this.type.is(TYPE.RGB) && h2 !== void 0)
+ return h2;
+ this._ensureRGB();
+ return utils_default.channel.rgb2hsl(data5, "h");
+ }
+ get s() {
+ const data5 = this.data;
+ const s2 = data5.s;
+ if (!this.type.is(TYPE.RGB) && s2 !== void 0)
+ return s2;
+ this._ensureRGB();
+ return utils_default.channel.rgb2hsl(data5, "s");
+ }
+ get l() {
+ const data5 = this.data;
+ const l2 = data5.l;
+ if (!this.type.is(TYPE.RGB) && l2 !== void 0)
+ return l2;
+ this._ensureRGB();
+ return utils_default.channel.rgb2hsl(data5, "l");
+ }
+ get a() {
+ return this.data.a;
+ }
+ /* SETTERS */
+ set r(r2) {
+ this.type.set(TYPE.RGB);
+ this.changed = true;
+ this.data.r = r2;
+ }
+ set g(g2) {
+ this.type.set(TYPE.RGB);
+ this.changed = true;
+ this.data.g = g2;
+ }
+ set b(b2) {
+ this.type.set(TYPE.RGB);
+ this.changed = true;
+ this.data.b = b2;
+ }
+ set h(h2) {
+ this.type.set(TYPE.HSL);
+ this.changed = true;
+ this.data.h = h2;
+ }
+ set s(s2) {
+ this.type.set(TYPE.HSL);
+ this.changed = true;
+ this.data.s = s2;
+ }
+ set l(l2) {
+ this.type.set(TYPE.HSL);
+ this.changed = true;
+ this.data.l = l2;
+ }
+ set a(a2) {
+ this.changed = true;
+ this.data.a = a2;
+ }
+ };
+ channels_default = Channels;
}
- for (; j < m0; ++j) {
- merges[j] = groups0[j];
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/reusable.js
+ var channels, reusable_default;
+ var init_reusable = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/reusable.js"() {
+ "use strict";
+ init_channels();
+ channels = new channels_default({ r: 0, g: 0, b: 0, a: 0 }, "transparent");
+ reusable_default = channels;
}
- return new Transition(merges, this._parents, this._name, this._id);
- }
- function start$1(name2) {
- return (name2 + "").trim().split(/^|\s+/).every(function(t4) {
- var i2 = t4.indexOf(".");
- if (i2 >= 0)
- t4 = t4.slice(0, i2);
- return !t4 || t4 === "start";
- });
- }
- function onFunction(id2, name2, listener) {
- var on0, on1, sit = start$1(name2) ? init$1 : set$2;
- return function() {
- var schedule2 = sit(this, id2), on = schedule2.on;
- if (on !== on0)
- (on1 = (on0 = on).copy()).on(name2, listener);
- schedule2.on = on1;
- };
- }
- function transition_on(name2, listener) {
- var id2 = this._id;
- return arguments.length < 2 ? get$2(this.node(), id2).on.on(name2) : this.each(onFunction(id2, name2, listener));
- }
- function removeFunction(id2) {
- return function() {
- var parent = this.parentNode;
- for (var i2 in this.__transition)
- if (+i2 !== id2)
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hex.js
+ var Hex, hex_default;
+ var init_hex = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hex.js"() {
+ "use strict";
+ init_reusable();
+ init_constants();
+ Hex = {
+ /* VARIABLES */
+ re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
+ /* API */
+ parse: /* @__PURE__ */ __name((color2) => {
+ if (color2.charCodeAt(0) !== 35)
+ return;
+ const match2 = color2.match(Hex.re);
+ if (!match2)
+ return;
+ const hex2 = match2[1];
+ const dec = parseInt(hex2, 16);
+ const length2 = hex2.length;
+ const hasAlpha = length2 % 4 === 0;
+ const isFullLength = length2 > 4;
+ const multiplier = isFullLength ? 1 : 17;
+ const bits = isFullLength ? 8 : 4;
+ const bitsOffset = hasAlpha ? 0 : -1;
+ const mask = isFullLength ? 255 : 15;
+ return reusable_default.set({
+ r: (dec >> bits * (bitsOffset + 3) & mask) * multiplier,
+ g: (dec >> bits * (bitsOffset + 2) & mask) * multiplier,
+ b: (dec >> bits * (bitsOffset + 1) & mask) * multiplier,
+ a: hasAlpha ? (dec & mask) * multiplier / 255 : 1
+ }, color2);
+ }, "parse"),
+ stringify: /* @__PURE__ */ __name((channels2) => {
+ const { r: r2, g: g2, b: b2, a: a2 } = channels2;
+ if (a2 < 1) {
+ return `#${DEC2HEX[Math.round(r2)]}${DEC2HEX[Math.round(g2)]}${DEC2HEX[Math.round(b2)]}${DEC2HEX[Math.round(a2 * 255)]}`;
+ } else {
+ return `#${DEC2HEX[Math.round(r2)]}${DEC2HEX[Math.round(g2)]}${DEC2HEX[Math.round(b2)]}`;
+ }
+ }, "stringify")
+ };
+ hex_default = Hex;
+ }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hsl.js
+ var HSL, hsl_default;
+ var init_hsl = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hsl.js"() {
+ "use strict";
+ init_utils();
+ init_reusable();
+ HSL = {
+ /* VARIABLES */
+ re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
+ hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
+ /* HELPERS */
+ _hue2deg: /* @__PURE__ */ __name((hue2) => {
+ const match2 = hue2.match(HSL.hueRe);
+ if (match2) {
+ const [, number7, unit2] = match2;
+ switch (unit2) {
+ case "grad":
+ return utils_default.channel.clamp.h(parseFloat(number7) * 0.9);
+ case "rad":
+ return utils_default.channel.clamp.h(parseFloat(number7) * 180 / Math.PI);
+ case "turn":
+ return utils_default.channel.clamp.h(parseFloat(number7) * 360);
+ }
+ }
+ return utils_default.channel.clamp.h(parseFloat(hue2));
+ }, "_hue2deg"),
+ /* API */
+ parse: /* @__PURE__ */ __name((color2) => {
+ const charCode = color2.charCodeAt(0);
+ if (charCode !== 104 && charCode !== 72)
+ return;
+ const match2 = color2.match(HSL.re);
+ if (!match2)
+ return;
+ const [, h2, s2, l2, a2, isAlphaPercentage] = match2;
+ return reusable_default.set({
+ h: HSL._hue2deg(h2),
+ s: utils_default.channel.clamp.s(parseFloat(s2)),
+ l: utils_default.channel.clamp.l(parseFloat(l2)),
+ a: a2 ? utils_default.channel.clamp.a(isAlphaPercentage ? parseFloat(a2) / 100 : parseFloat(a2)) : 1
+ }, color2);
+ }, "parse"),
+ stringify: /* @__PURE__ */ __name((channels2) => {
+ const { h: h2, s: s2, l: l2, a: a2 } = channels2;
+ if (a2 < 1) {
+ return `hsla(${utils_default.lang.round(h2)}, ${utils_default.lang.round(s2)}%, ${utils_default.lang.round(l2)}%, ${a2})`;
+ } else {
+ return `hsl(${utils_default.lang.round(h2)}, ${utils_default.lang.round(s2)}%, ${utils_default.lang.round(l2)}%)`;
+ }
+ }, "stringify")
+ };
+ hsl_default = HSL;
+ }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/keyword.js
+ var Keyword, keyword_default;
+ var init_keyword = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/keyword.js"() {
+ "use strict";
+ init_hex();
+ Keyword = {
+ /* VARIABLES */
+ colors: {
+ aliceblue: "#f0f8ff",
+ antiquewhite: "#faebd7",
+ aqua: "#00ffff",
+ aquamarine: "#7fffd4",
+ azure: "#f0ffff",
+ beige: "#f5f5dc",
+ bisque: "#ffe4c4",
+ black: "#000000",
+ blanchedalmond: "#ffebcd",
+ blue: "#0000ff",
+ blueviolet: "#8a2be2",
+ brown: "#a52a2a",
+ burlywood: "#deb887",
+ cadetblue: "#5f9ea0",
+ chartreuse: "#7fff00",
+ chocolate: "#d2691e",
+ coral: "#ff7f50",
+ cornflowerblue: "#6495ed",
+ cornsilk: "#fff8dc",
+ crimson: "#dc143c",
+ cyanaqua: "#00ffff",
+ darkblue: "#00008b",
+ darkcyan: "#008b8b",
+ darkgoldenrod: "#b8860b",
+ darkgray: "#a9a9a9",
+ darkgreen: "#006400",
+ darkgrey: "#a9a9a9",
+ darkkhaki: "#bdb76b",
+ darkmagenta: "#8b008b",
+ darkolivegreen: "#556b2f",
+ darkorange: "#ff8c00",
+ darkorchid: "#9932cc",
+ darkred: "#8b0000",
+ darksalmon: "#e9967a",
+ darkseagreen: "#8fbc8f",
+ darkslateblue: "#483d8b",
+ darkslategray: "#2f4f4f",
+ darkslategrey: "#2f4f4f",
+ darkturquoise: "#00ced1",
+ darkviolet: "#9400d3",
+ deeppink: "#ff1493",
+ deepskyblue: "#00bfff",
+ dimgray: "#696969",
+ dimgrey: "#696969",
+ dodgerblue: "#1e90ff",
+ firebrick: "#b22222",
+ floralwhite: "#fffaf0",
+ forestgreen: "#228b22",
+ fuchsia: "#ff00ff",
+ gainsboro: "#dcdcdc",
+ ghostwhite: "#f8f8ff",
+ gold: "#ffd700",
+ goldenrod: "#daa520",
+ gray: "#808080",
+ green: "#008000",
+ greenyellow: "#adff2f",
+ grey: "#808080",
+ honeydew: "#f0fff0",
+ hotpink: "#ff69b4",
+ indianred: "#cd5c5c",
+ indigo: "#4b0082",
+ ivory: "#fffff0",
+ khaki: "#f0e68c",
+ lavender: "#e6e6fa",
+ lavenderblush: "#fff0f5",
+ lawngreen: "#7cfc00",
+ lemonchiffon: "#fffacd",
+ lightblue: "#add8e6",
+ lightcoral: "#f08080",
+ lightcyan: "#e0ffff",
+ lightgoldenrodyellow: "#fafad2",
+ lightgray: "#d3d3d3",
+ lightgreen: "#90ee90",
+ lightgrey: "#d3d3d3",
+ lightpink: "#ffb6c1",
+ lightsalmon: "#ffa07a",
+ lightseagreen: "#20b2aa",
+ lightskyblue: "#87cefa",
+ lightslategray: "#778899",
+ lightslategrey: "#778899",
+ lightsteelblue: "#b0c4de",
+ lightyellow: "#ffffe0",
+ lime: "#00ff00",
+ limegreen: "#32cd32",
+ linen: "#faf0e6",
+ magenta: "#ff00ff",
+ maroon: "#800000",
+ mediumaquamarine: "#66cdaa",
+ mediumblue: "#0000cd",
+ mediumorchid: "#ba55d3",
+ mediumpurple: "#9370db",
+ mediumseagreen: "#3cb371",
+ mediumslateblue: "#7b68ee",
+ mediumspringgreen: "#00fa9a",
+ mediumturquoise: "#48d1cc",
+ mediumvioletred: "#c71585",
+ midnightblue: "#191970",
+ mintcream: "#f5fffa",
+ mistyrose: "#ffe4e1",
+ moccasin: "#ffe4b5",
+ navajowhite: "#ffdead",
+ navy: "#000080",
+ oldlace: "#fdf5e6",
+ olive: "#808000",
+ olivedrab: "#6b8e23",
+ orange: "#ffa500",
+ orangered: "#ff4500",
+ orchid: "#da70d6",
+ palegoldenrod: "#eee8aa",
+ palegreen: "#98fb98",
+ paleturquoise: "#afeeee",
+ palevioletred: "#db7093",
+ papayawhip: "#ffefd5",
+ peachpuff: "#ffdab9",
+ peru: "#cd853f",
+ pink: "#ffc0cb",
+ plum: "#dda0dd",
+ powderblue: "#b0e0e6",
+ purple: "#800080",
+ rebeccapurple: "#663399",
+ red: "#ff0000",
+ rosybrown: "#bc8f8f",
+ royalblue: "#4169e1",
+ saddlebrown: "#8b4513",
+ salmon: "#fa8072",
+ sandybrown: "#f4a460",
+ seagreen: "#2e8b57",
+ seashell: "#fff5ee",
+ sienna: "#a0522d",
+ silver: "#c0c0c0",
+ skyblue: "#87ceeb",
+ slateblue: "#6a5acd",
+ slategray: "#708090",
+ slategrey: "#708090",
+ snow: "#fffafa",
+ springgreen: "#00ff7f",
+ tan: "#d2b48c",
+ teal: "#008080",
+ thistle: "#d8bfd8",
+ transparent: "#00000000",
+ turquoise: "#40e0d0",
+ violet: "#ee82ee",
+ wheat: "#f5deb3",
+ white: "#ffffff",
+ whitesmoke: "#f5f5f5",
+ yellow: "#ffff00",
+ yellowgreen: "#9acd32"
+ },
+ /* API */
+ parse: /* @__PURE__ */ __name((color2) => {
+ color2 = color2.toLowerCase();
+ const hex2 = Keyword.colors[color2];
+ if (!hex2)
+ return;
+ return hex_default.parse(hex2);
+ }, "parse"),
+ stringify: /* @__PURE__ */ __name((channels2) => {
+ const hex2 = hex_default.stringify(channels2);
+ for (const name in Keyword.colors) {
+ if (Keyword.colors[name] === hex2)
+ return name;
+ }
return;
- if (parent)
- parent.removeChild(this);
- };
- }
- function transition_remove() {
- return this.on("end.remove", removeFunction(this._id));
- }
- function transition_select(select2) {
- var name2 = this._name, id2 = this._id;
- if (typeof select2 !== "function")
- select2 = selector(select2);
- for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i2 = 0; i2 < n; ++i2) {
- if ((node2 = group[i2]) && (subnode = select2.call(node2, node2.__data__, i2, group))) {
- if ("__data__" in node2)
- subnode.__data__ = node2.__data__;
- subgroup[i2] = subnode;
- schedule(subgroup[i2], name2, id2, i2, subgroup, get$2(node2, id2));
- }
- }
+ }, "stringify")
+ };
+ keyword_default = Keyword;
}
- return new Transition(subgroups, this._parents, name2, id2);
- }
- function transition_selectAll(select2) {
- var name2 = this._name, id2 = this._id;
- if (typeof select2 !== "function")
- select2 = selectorAll(select2);
- for (var groups = this._groups, m = groups.length, subgroups = [], parents2 = [], j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
- if (node2 = group[i2]) {
- for (var children2 = select2.call(node2, node2.__data__, i2, group), child, inherit2 = get$2(node2, id2), k = 0, l = children2.length; k < l; ++k) {
- if (child = children2[k]) {
- schedule(child, name2, id2, k, children2, inherit2);
- }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/rgb.js
+ var RGB, rgb_default;
+ var init_rgb = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/rgb.js"() {
+ "use strict";
+ init_utils();
+ init_reusable();
+ RGB = {
+ /* VARIABLES */
+ re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
+ /* API */
+ parse: /* @__PURE__ */ __name((color2) => {
+ const charCode = color2.charCodeAt(0);
+ if (charCode !== 114 && charCode !== 82)
+ return;
+ const match2 = color2.match(RGB.re);
+ if (!match2)
+ return;
+ const [, r2, isRedPercentage, g2, isGreenPercentage, b2, isBluePercentage, a2, isAlphaPercentage] = match2;
+ return reusable_default.set({
+ r: utils_default.channel.clamp.r(isRedPercentage ? parseFloat(r2) * 2.55 : parseFloat(r2)),
+ g: utils_default.channel.clamp.g(isGreenPercentage ? parseFloat(g2) * 2.55 : parseFloat(g2)),
+ b: utils_default.channel.clamp.b(isBluePercentage ? parseFloat(b2) * 2.55 : parseFloat(b2)),
+ a: a2 ? utils_default.channel.clamp.a(isAlphaPercentage ? parseFloat(a2) / 100 : parseFloat(a2)) : 1
+ }, color2);
+ }, "parse"),
+ stringify: /* @__PURE__ */ __name((channels2) => {
+ const { r: r2, g: g2, b: b2, a: a2 } = channels2;
+ if (a2 < 1) {
+ return `rgba(${utils_default.lang.round(r2)}, ${utils_default.lang.round(g2)}, ${utils_default.lang.round(b2)}, ${utils_default.lang.round(a2)})`;
+ } else {
+ return `rgb(${utils_default.lang.round(r2)}, ${utils_default.lang.round(g2)}, ${utils_default.lang.round(b2)})`;
}
- subgroups.push(children2);
- parents2.push(node2);
- }
- }
+ }, "stringify")
+ };
+ rgb_default = RGB;
}
- return new Transition(subgroups, parents2, name2, id2);
- }
- var Selection = selection.prototype.constructor;
- function transition_selection() {
- return new Selection(this._groups, this._parents);
- }
- function styleNull(name2, interpolate2) {
- var string00, string10, interpolate0;
- return function() {
- var string0 = styleValue(this, name2), string1 = (this.style.removeProperty(name2), styleValue(this, name2));
- return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1);
- };
- }
- function styleRemove(name2) {
- return function() {
- this.style.removeProperty(name2);
- };
- }
- function styleConstant(name2, interpolate2, value1) {
- var string00, string1 = value1 + "", interpolate0;
- return function() {
- var string0 = styleValue(this, name2);
- return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
- };
- }
- function styleFunction(name2, interpolate2, value) {
- var string00, string10, interpolate0;
- return function() {
- var string0 = styleValue(this, name2), value1 = value(this), string1 = value1 + "";
- if (value1 == null)
- string1 = value1 = (this.style.removeProperty(name2), styleValue(this, name2));
- return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
- };
- }
- function styleMaybeRemove(id2, name2) {
- var on0, on1, listener0, key = "style." + name2, event = "end." + key, remove2;
- return function() {
- var schedule2 = set$2(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name2)) : void 0;
- if (on !== on0 || listener0 !== listener)
- (on1 = (on0 = on).copy()).on(event, listener0 = listener);
- schedule2.on = on1;
- };
- }
- function transition_style(name2, value, priority) {
- var i2 = (name2 += "") === "transform" ? interpolateTransformCss : interpolate;
- return value == null ? this.styleTween(name2, styleNull(name2, i2)).on("end.style." + name2, styleRemove(name2)) : typeof value === "function" ? this.styleTween(name2, styleFunction(name2, i2, tweenValue(this, "style." + name2, value))).each(styleMaybeRemove(this._id, name2)) : this.styleTween(name2, styleConstant(name2, i2, value), priority).on("end.style." + name2, null);
- }
- function styleInterpolate(name2, i2, priority) {
- return function(t4) {
- this.style.setProperty(name2, i2.call(this, t4), priority);
- };
- }
- function styleTween(name2, value, priority) {
- var t4, i0;
- function tween() {
- var i2 = value.apply(this, arguments);
- if (i2 !== i0)
- t4 = (i0 = i2) && styleInterpolate(name2, i2, priority);
- return t4;
- }
- tween._value = value;
- return tween;
- }
- function transition_styleTween(name2, value, priority) {
- var key = "style." + (name2 += "");
- if (arguments.length < 2)
- return (key = this.tween(key)) && key._value;
- if (value == null)
- return this.tween(key, null);
- if (typeof value !== "function")
- throw new Error();
- return this.tween(key, styleTween(name2, value, priority == null ? "" : priority));
- }
- function textConstant(value) {
- return function() {
- this.textContent = value;
- };
- }
- function textFunction(value) {
- return function() {
- var value1 = value(this);
- this.textContent = value1 == null ? "" : value1;
- };
- }
- function transition_text(value) {
- return this.tween("text", typeof value === "function" ? textFunction(tweenValue(this, "text", value)) : textConstant(value == null ? "" : value + ""));
- }
- function textInterpolate(i2) {
- return function(t4) {
- this.textContent = i2.call(this, t4);
- };
- }
- function textTween(value) {
- var t02, i0;
- function tween() {
- var i2 = value.apply(this, arguments);
- if (i2 !== i0)
- t02 = (i0 = i2) && textInterpolate(i2);
- return t02;
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/index.js
+ var Color, color_default;
+ var init_color = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/index.js"() {
+ "use strict";
+ init_hex();
+ init_hsl();
+ init_keyword();
+ init_rgb();
+ init_constants();
+ Color = {
+ /* VARIABLES */
+ format: {
+ keyword: keyword_default,
+ hex: hex_default,
+ rgb: rgb_default,
+ rgba: rgb_default,
+ hsl: hsl_default,
+ hsla: hsl_default
+ },
+ /* API */
+ parse: /* @__PURE__ */ __name((color2) => {
+ if (typeof color2 !== "string")
+ return color2;
+ const channels2 = hex_default.parse(color2) || rgb_default.parse(color2) || hsl_default.parse(color2) || keyword_default.parse(color2);
+ if (channels2)
+ return channels2;
+ throw new Error(`Unsupported color format: "${color2}"`);
+ }, "parse"),
+ stringify: /* @__PURE__ */ __name((channels2) => {
+ if (!channels2.changed && channels2.color)
+ return channels2.color;
+ if (channels2.type.is(TYPE.HSL) || channels2.data.r === void 0) {
+ return hsl_default.stringify(channels2);
+ } else if (channels2.a < 1 || !Number.isInteger(channels2.r) || !Number.isInteger(channels2.g) || !Number.isInteger(channels2.b)) {
+ return rgb_default.stringify(channels2);
+ } else {
+ return hex_default.stringify(channels2);
+ }
+ }, "stringify")
+ };
+ color_default = Color;
}
- tween._value = value;
- return tween;
- }
- function transition_textTween(value) {
- var key = "text";
- if (arguments.length < 1)
- return (key = this.tween(key)) && key._value;
- if (value == null)
- return this.tween(key, null);
- if (typeof value !== "function")
- throw new Error();
- return this.tween(key, textTween(value));
- }
- function transition_transition() {
- var name2 = this._name, id0 = this._id, id1 = newId();
- for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
- if (node2 = group[i2]) {
- var inherit2 = get$2(node2, id0);
- schedule(node2, name2, id1, i2, group, {
- time: inherit2.time + inherit2.delay + inherit2.duration,
- delay: 0,
- duration: inherit2.duration,
- ease: inherit2.ease
- });
- }
- }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/change.js
+ var change, change_default;
+ var init_change = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/change.js"() {
+ "use strict";
+ init_utils();
+ init_color();
+ change = /* @__PURE__ */ __name((color2, channels2) => {
+ const ch = color_default.parse(color2);
+ for (const c3 in channels2) {
+ ch[c3] = utils_default.channel.clamp[c3](channels2[c3]);
+ }
+ return color_default.stringify(ch);
+ }, "change");
+ change_default = change;
}
- return new Transition(groups, this._parents, name2, id1);
- }
- function transition_end() {
- var on0, on1, that = this, id2 = that._id, size2 = that.size();
- return new Promise(function(resolve, reject) {
- var cancel = { value: reject }, end2 = { value: function() {
- if (--size2 === 0)
- resolve();
- } };
- that.each(function() {
- var schedule2 = set$2(this, id2), on = schedule2.on;
- if (on !== on0) {
- on1 = (on0 = on).copy();
- on1._.cancel.push(cancel);
- on1._.interrupt.push(cancel);
- on1._.end.push(end2);
- }
- schedule2.on = on1;
- });
- if (size2 === 0)
- resolve();
- });
- }
- var id$i = 0;
- function Transition(groups, parents2, name2, id2) {
- this._groups = groups;
- this._parents = parents2;
- this._name = name2;
- this._id = id2;
- }
- function newId() {
- return ++id$i;
- }
- var selection_prototype = selection.prototype;
- Transition.prototype = {
- constructor: Transition,
- select: transition_select,
- selectAll: transition_selectAll,
- selectChild: selection_prototype.selectChild,
- selectChildren: selection_prototype.selectChildren,
- filter: transition_filter,
- merge: transition_merge,
- selection: transition_selection,
- transition: transition_transition,
- call: selection_prototype.call,
- nodes: selection_prototype.nodes,
- node: selection_prototype.node,
- size: selection_prototype.size,
- empty: selection_prototype.empty,
- each: selection_prototype.each,
- on: transition_on,
- attr: transition_attr,
- attrTween: transition_attrTween,
- style: transition_style,
- styleTween: transition_styleTween,
- text: transition_text,
- textTween: transition_textTween,
- remove: transition_remove,
- tween: transition_tween,
- delay: transition_delay,
- duration: transition_duration,
- ease: transition_ease,
- easeVarying: transition_easeVarying,
- end: transition_end,
- [Symbol.iterator]: selection_prototype[Symbol.iterator]
- };
- function cubicInOut(t4) {
- return ((t4 *= 2) <= 1 ? t4 * t4 * t4 : (t4 -= 2) * t4 * t4 + 2) / 2;
- }
- var defaultTiming = {
- time: null,
- // Set on use.
- delay: 0,
- duration: 250,
- ease: cubicInOut
- };
- function inherit(node2, id2) {
- var timing;
- while (!(timing = node2.__transition) || !(timing = timing[id2])) {
- if (!(node2 = node2.parentNode)) {
- throw new Error(`transition ${id2} not found`);
- }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/rgba.js
+ var rgba, rgba_default;
+ var init_rgba = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/rgba.js"() {
+ "use strict";
+ init_utils();
+ init_reusable();
+ init_color();
+ init_change();
+ rgba = /* @__PURE__ */ __name((r2, g2, b2 = 0, a2 = 1) => {
+ if (typeof r2 !== "number")
+ return change_default(r2, { a: g2 });
+ const channels2 = reusable_default.set({
+ r: utils_default.channel.clamp.r(r2),
+ g: utils_default.channel.clamp.g(g2),
+ b: utils_default.channel.clamp.b(b2),
+ a: utils_default.channel.clamp.a(a2)
+ });
+ return color_default.stringify(channels2);
+ }, "rgba");
+ rgba_default = rgba;
}
- return timing;
- }
- function selection_transition(name2) {
- var id2, timing;
- if (name2 instanceof Transition) {
- id2 = name2._id, name2 = name2._name;
- } else {
- id2 = newId(), (timing = defaultTiming).time = now$2(), name2 = name2 == null ? null : name2 + "";
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/channel.js
+ var channel, channel_default2;
+ var init_channel2 = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/channel.js"() {
+ "use strict";
+ init_utils();
+ init_color();
+ channel = /* @__PURE__ */ __name((color2, channel2) => {
+ return utils_default.lang.round(color_default.parse(color2)[channel2]);
+ }, "channel");
+ channel_default2 = channel;
}
- for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
- for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
- if (node2 = group[i2]) {
- schedule(node2, name2, id2, i2, group, timing || inherit(node2, id2));
- }
- }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/luminance.js
+ var luminance, luminance_default;
+ var init_luminance = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/luminance.js"() {
+ "use strict";
+ init_utils();
+ init_color();
+ luminance = /* @__PURE__ */ __name((color2) => {
+ const { r: r2, g: g2, b: b2 } = color_default.parse(color2);
+ const luminance2 = 0.2126 * utils_default.channel.toLinear(r2) + 0.7152 * utils_default.channel.toLinear(g2) + 0.0722 * utils_default.channel.toLinear(b2);
+ return utils_default.lang.round(luminance2);
+ }, "luminance");
+ luminance_default = luminance;
}
- return new Transition(groups, this._parents, name2, id2);
- }
- selection.prototype.interrupt = selection_interrupt;
- selection.prototype.transition = selection_transition;
- const pi$1 = Math.PI, tau$1 = 2 * pi$1, epsilon$1 = 1e-6, tauEpsilon = tau$1 - epsilon$1;
- function Path() {
- this._x0 = this._y0 = // start of current subpath
- this._x1 = this._y1 = null;
- this._ = "";
- }
- function path() {
- return new Path();
- }
- Path.prototype = path.prototype = {
- constructor: Path,
- moveTo: function(x2, y2) {
- this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2);
- },
- closePath: function() {
- if (this._x1 !== null) {
- this._x1 = this._x0, this._y1 = this._y0;
- this._ += "Z";
- }
- },
- lineTo: function(x2, y2) {
- this._ += "L" + (this._x1 = +x2) + "," + (this._y1 = +y2);
- },
- quadraticCurveTo: function(x1, y1, x2, y2) {
- this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x2) + "," + (this._y1 = +y2);
- },
- bezierCurveTo: function(x1, y1, x2, y2, x3, y3) {
- this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x3) + "," + (this._y1 = +y3);
- },
- arcTo: function(x1, y1, x2, y2, r) {
- x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
- var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;
- if (r < 0)
- throw new Error("negative radius: " + r);
- if (this._x1 === null) {
- this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
- } else if (!(l01_2 > epsilon$1))
- ;
- else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$1) || !r) {
- this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
- } else {
- var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi$1 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;
- if (Math.abs(t01 - 1) > epsilon$1) {
- this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
- }
- this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
- }
- },
- arc: function(x2, y2, r, a0, a1, ccw) {
- x2 = +x2, y2 = +y2, r = +r, ccw = !!ccw;
- var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x2 + dx, y0 = y2 + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;
- if (r < 0)
- throw new Error("negative radius: " + r);
- if (this._x1 === null) {
- this._ += "M" + x0 + "," + y0;
- } else if (Math.abs(this._x1 - x0) > epsilon$1 || Math.abs(this._y1 - y0) > epsilon$1) {
- this._ += "L" + x0 + "," + y0;
- }
- if (!r)
- return;
- if (da < 0)
- da = da % tau$1 + tau$1;
- if (da > tauEpsilon) {
- this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x2 - dx) + "," + (y2 - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
- } else if (da > epsilon$1) {
- this._ += "A" + r + "," + r + ",0," + +(da >= pi$1) + "," + cw + "," + (this._x1 = x2 + r * Math.cos(a1)) + "," + (this._y1 = y2 + r * Math.sin(a1));
- }
- },
- rect: function(x2, y2, w2, h) {
- this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2) + "h" + +w2 + "v" + +h + "h" + -w2 + "Z";
- },
- toString: function() {
- return this._;
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_light.js
+ var isLight, is_light_default;
+ var init_is_light = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_light.js"() {
+ "use strict";
+ init_luminance();
+ isLight = /* @__PURE__ */ __name((color2) => {
+ return luminance_default(color2) >= 0.5;
+ }, "isLight");
+ is_light_default = isLight;
}
- };
- function responseText(response) {
- if (!response.ok)
- throw new Error(response.status + " " + response.statusText);
- return response.text();
- }
- function text$1(input, init2) {
- return fetch(input, init2).then(responseText);
- }
- function parser$n(type2) {
- return (input, init2) => text$1(input, init2).then((text2) => new DOMParser().parseFromString(text2, type2));
- }
- var svg$2 = parser$n("image/svg+xml");
- function formatDecimal(x2) {
- return Math.abs(x2 = Math.round(x2)) >= 1e21 ? x2.toLocaleString("en").replace(/,/g, "") : x2.toString(10);
- }
- function formatDecimalParts(x2, p) {
- if ((i2 = (x2 = p ? x2.toExponential(p - 1) : x2.toExponential()).indexOf("e")) < 0)
- return null;
- var i2, coefficient = x2.slice(0, i2);
- return [
- coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
- +x2.slice(i2 + 1)
- ];
- }
- function exponent(x2) {
- return x2 = formatDecimalParts(Math.abs(x2)), x2 ? x2[1] : NaN;
- }
- function formatGroup(grouping, thousands) {
- return function(value, width2) {
- var i2 = value.length, t4 = [], j = 0, g = grouping[0], length2 = 0;
- while (i2 > 0 && g > 0) {
- if (length2 + g + 1 > width2)
- g = Math.max(1, width2 - length2);
- t4.push(value.substring(i2 -= g, i2 + g));
- if ((length2 += g + 1) > width2)
- break;
- g = grouping[j = (j + 1) % grouping.length];
- }
- return t4.reverse().join(thousands);
- };
- }
- function formatNumerals(numerals) {
- return function(value) {
- return value.replace(/[0-9]/g, function(i2) {
- return numerals[+i2];
- });
- };
- }
- var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
- function formatSpecifier(specifier) {
- if (!(match = re.exec(specifier)))
- throw new Error("invalid format: " + specifier);
- var match;
- return new FormatSpecifier({
- fill: match[1],
- align: match[2],
- sign: match[3],
- symbol: match[4],
- zero: match[5],
- width: match[6],
- comma: match[7],
- precision: match[8] && match[8].slice(1),
- trim: match[9],
- type: match[10]
- });
- }
- formatSpecifier.prototype = FormatSpecifier.prototype;
- function FormatSpecifier(specifier) {
- this.fill = specifier.fill === void 0 ? " " : specifier.fill + "";
- this.align = specifier.align === void 0 ? ">" : specifier.align + "";
- this.sign = specifier.sign === void 0 ? "-" : specifier.sign + "";
- this.symbol = specifier.symbol === void 0 ? "" : specifier.symbol + "";
- this.zero = !!specifier.zero;
- this.width = specifier.width === void 0 ? void 0 : +specifier.width;
- this.comma = !!specifier.comma;
- this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision;
- this.trim = !!specifier.trim;
- this.type = specifier.type === void 0 ? "" : specifier.type + "";
- }
- FormatSpecifier.prototype.toString = function() {
- return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
- };
- function formatTrim(s) {
- out:
- for (var n = s.length, i2 = 1, i0 = -1, i1; i2 < n; ++i2) {
- switch (s[i2]) {
- case ".":
- i0 = i1 = i2;
- break;
- case "0":
- if (i0 === 0)
- i0 = i2;
- i1 = i2;
- break;
- default:
- if (!+s[i2])
- break out;
- if (i0 > 0)
- i0 = 0;
- break;
- }
- }
- return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
- }
- var prefixExponent;
- function formatPrefixAuto(x2, p) {
- var d = formatDecimalParts(x2, p);
- if (!d)
- return x2 + "";
- var coefficient = d[0], exponent2 = d[1], i2 = exponent2 - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent2 / 3))) * 3) + 1, n = coefficient.length;
- return i2 === n ? coefficient : i2 > n ? coefficient + new Array(i2 - n + 1).join("0") : i2 > 0 ? coefficient.slice(0, i2) + "." + coefficient.slice(i2) : "0." + new Array(1 - i2).join("0") + formatDecimalParts(x2, Math.max(0, p + i2 - 1))[0];
- }
- function formatRounded(x2, p) {
- var d = formatDecimalParts(x2, p);
- if (!d)
- return x2 + "";
- var coefficient = d[0], exponent2 = d[1];
- return exponent2 < 0 ? "0." + new Array(-exponent2).join("0") + coefficient : coefficient.length > exponent2 + 1 ? coefficient.slice(0, exponent2 + 1) + "." + coefficient.slice(exponent2 + 1) : coefficient + new Array(exponent2 - coefficient.length + 2).join("0");
- }
- const formatTypes = {
- "%": (x2, p) => (x2 * 100).toFixed(p),
- "b": (x2) => Math.round(x2).toString(2),
- "c": (x2) => x2 + "",
- "d": formatDecimal,
- "e": (x2, p) => x2.toExponential(p),
- "f": (x2, p) => x2.toFixed(p),
- "g": (x2, p) => x2.toPrecision(p),
- "o": (x2) => Math.round(x2).toString(8),
- "p": (x2, p) => formatRounded(x2 * 100, p),
- "r": formatRounded,
- "s": formatPrefixAuto,
- "X": (x2) => Math.round(x2).toString(16).toUpperCase(),
- "x": (x2) => Math.round(x2).toString(16)
- };
- function identity$3(x2) {
- return x2;
- }
- var map$2 = Array.prototype.map, prefixes = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
- function formatLocale$1(locale2) {
- var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity$3 : formatGroup(map$2.call(locale2.grouping, Number), locale2.thousands + ""), currencyPrefix = locale2.currency === void 0 ? "" : locale2.currency[0] + "", currencySuffix = locale2.currency === void 0 ? "" : locale2.currency[1] + "", decimal = locale2.decimal === void 0 ? "." : locale2.decimal + "", numerals = locale2.numerals === void 0 ? identity$3 : formatNumerals(map$2.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? "%" : locale2.percent + "", minus = locale2.minus === void 0 ? "−" : locale2.minus + "", nan = locale2.nan === void 0 ? "NaN" : locale2.nan + "";
- function newFormat(specifier) {
- specifier = formatSpecifier(specifier);
- var fill = specifier.fill, align = specifier.align, sign2 = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width2 = specifier.width, comma = specifier.comma, precision = specifier.precision, trim2 = specifier.trim, type2 = specifier.type;
- if (type2 === "n")
- comma = true, type2 = "g";
- else if (!formatTypes[type2])
- precision === void 0 && (precision = 12), trim2 = true, type2 = "g";
- if (zero2 || fill === "0" && align === "=")
- zero2 = true, fill = "0", align = "=";
- var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type2) ? "0" + type2.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type2) ? percent : "";
- var formatType = formatTypes[type2], maybeSuffix = /[defgprs%]/.test(type2);
- precision = precision === void 0 ? 6 : /[gprs]/.test(type2) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));
- function format2(value) {
- var valuePrefix = prefix, valueSuffix = suffix, i2, n, c2;
- if (type2 === "c") {
- valueSuffix = formatType(value) + valueSuffix;
- value = "";
- } else {
- value = +value;
- var valueNegative = value < 0 || 1 / value < 0;
- value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
- if (trim2)
- value = formatTrim(value);
- if (valueNegative && +value === 0 && sign2 !== "+")
- valueNegative = false;
- valuePrefix = (valueNegative ? sign2 === "(" ? sign2 : minus : sign2 === "-" || sign2 === "(" ? "" : sign2) + valuePrefix;
- valueSuffix = (type2 === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign2 === "(" ? ")" : "");
- if (maybeSuffix) {
- i2 = -1, n = value.length;
- while (++i2 < n) {
- if (c2 = value.charCodeAt(i2), 48 > c2 || c2 > 57) {
- valueSuffix = (c2 === 46 ? decimal + value.slice(i2 + 1) : value.slice(i2)) + valueSuffix;
- value = value.slice(0, i2);
- break;
- }
- }
- }
- }
- if (comma && !zero2)
- value = group(value, Infinity);
- var length2 = valuePrefix.length + value.length + valueSuffix.length, padding2 = length2 < width2 ? new Array(width2 - length2 + 1).join(fill) : "";
- if (comma && zero2)
- value = group(padding2 + value, padding2.length ? width2 - valueSuffix.length : Infinity), padding2 = "";
- switch (align) {
- case "<":
- value = valuePrefix + value + valueSuffix + padding2;
- break;
- case "=":
- value = valuePrefix + padding2 + value + valueSuffix;
- break;
- case "^":
- value = padding2.slice(0, length2 = padding2.length >> 1) + valuePrefix + value + valueSuffix + padding2.slice(length2);
- break;
- default:
- value = padding2 + valuePrefix + value + valueSuffix;
- break;
- }
- return numerals(value);
- }
- format2.toString = function() {
- return specifier + "";
- };
- return format2;
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_dark.js
+ var isDark, is_dark_default;
+ var init_is_dark = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_dark.js"() {
+ "use strict";
+ init_is_light();
+ isDark = /* @__PURE__ */ __name((color2) => {
+ return !is_light_default(color2);
+ }, "isDark");
+ is_dark_default = isDark;
}
- function formatPrefix2(specifier, value) {
- var f2 = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3];
- return function(value2) {
- return f2(k * value2) + prefix;
- };
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust_channel.js
+ var adjustChannel, adjust_channel_default;
+ var init_adjust_channel = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust_channel.js"() {
+ "use strict";
+ init_utils();
+ init_color();
+ adjustChannel = /* @__PURE__ */ __name((color2, channel2, amount) => {
+ const channels2 = color_default.parse(color2);
+ const amountCurrent = channels2[channel2];
+ const amountNext = utils_default.channel.clamp[channel2](amountCurrent + amount);
+ if (amountCurrent !== amountNext)
+ channels2[channel2] = amountNext;
+ return color_default.stringify(channels2);
+ }, "adjustChannel");
+ adjust_channel_default = adjustChannel;
}
- return {
- format: newFormat,
- formatPrefix: formatPrefix2
- };
- }
- var locale$2;
- var format;
- var formatPrefix;
- defaultLocale$1({
- thousands: ",",
- grouping: [3],
- currency: ["$", ""]
});
- function defaultLocale$1(definition) {
- locale$2 = formatLocale$1(definition);
- format = locale$2.format;
- formatPrefix = locale$2.formatPrefix;
- return locale$2;
- }
- function precisionFixed(step) {
- return Math.max(0, -exponent(Math.abs(step)));
- }
- function precisionPrefix(step, value) {
- return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
- }
- function precisionRound(step, max2) {
- step = Math.abs(step), max2 = Math.abs(max2) - step;
- return Math.max(0, exponent(max2) - exponent(step)) + 1;
- }
- function initRange(domain, range2) {
- switch (arguments.length) {
- case 0:
- break;
- case 1:
- this.range(domain);
- break;
- default:
- this.range(range2).domain(domain);
- break;
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/lighten.js
+ var lighten, lighten_default;
+ var init_lighten = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/lighten.js"() {
+ "use strict";
+ init_adjust_channel();
+ lighten = /* @__PURE__ */ __name((color2, amount) => {
+ return adjust_channel_default(color2, "l", amount);
+ }, "lighten");
+ lighten_default = lighten;
}
- return this;
- }
- const implicit = Symbol("implicit");
- function ordinal() {
- var index = new InternMap(), domain = [], range2 = [], unknown = implicit;
- function scale(d) {
- let i2 = index.get(d);
- if (i2 === void 0) {
- if (unknown !== implicit)
- return unknown;
- index.set(d, i2 = domain.push(d) - 1);
- }
- return range2[i2 % range2.length];
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/darken.js
+ var darken, darken_default;
+ var init_darken = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/darken.js"() {
+ "use strict";
+ init_adjust_channel();
+ darken = /* @__PURE__ */ __name((color2, amount) => {
+ return adjust_channel_default(color2, "l", -amount);
+ }, "darken");
+ darken_default = darken;
}
- scale.domain = function(_2) {
- if (!arguments.length)
- return domain.slice();
- domain = [], index = new InternMap();
- for (const value of _2) {
- if (index.has(value))
- continue;
- index.set(value, domain.push(value) - 1);
- }
- return scale;
- };
- scale.range = function(_2) {
- return arguments.length ? (range2 = Array.from(_2), scale) : range2.slice();
- };
- scale.unknown = function(_2) {
- return arguments.length ? (unknown = _2, scale) : unknown;
- };
- scale.copy = function() {
- return ordinal(domain, range2).unknown(unknown);
- };
- initRange.apply(scale, arguments);
- return scale;
- }
- function constants(x2) {
- return function() {
- return x2;
- };
- }
- function number$1(x2) {
- return +x2;
- }
- var unit$1 = [0, 1];
- function identity$2(x2) {
- return x2;
- }
- function normalize(a, b) {
- return (b -= a = +a) ? function(x2) {
- return (x2 - a) / b;
- } : constants(isNaN(b) ? NaN : 0.5);
- }
- function clamper(a, b) {
- var t4;
- if (a > b)
- t4 = a, a = b, b = t4;
- return function(x2) {
- return Math.max(a, Math.min(b, x2));
- };
- }
- function bimap(domain, range2, interpolate2) {
- var d0 = domain[0], d1 = domain[1], r0 = range2[0], r1 = range2[1];
- if (d1 < d0)
- d0 = normalize(d1, d0), r0 = interpolate2(r1, r0);
- else
- d0 = normalize(d0, d1), r0 = interpolate2(r0, r1);
- return function(x2) {
- return r0(d0(x2));
- };
- }
- function polymap(domain, range2, interpolate2) {
- var j = Math.min(domain.length, range2.length) - 1, d = new Array(j), r = new Array(j), i2 = -1;
- if (domain[j] < domain[0]) {
- domain = domain.slice().reverse();
- range2 = range2.slice().reverse();
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust.js
+ var adjust, adjust_default;
+ var init_adjust = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust.js"() {
+ "use strict";
+ init_color();
+ init_change();
+ adjust = /* @__PURE__ */ __name((color2, channels2) => {
+ const ch = color_default.parse(color2);
+ const changes = {};
+ for (const c3 in channels2) {
+ if (!channels2[c3])
+ continue;
+ changes[c3] = ch[c3] + channels2[c3];
+ }
+ return change_default(color2, changes);
+ }, "adjust");
+ adjust_default = adjust;
}
- while (++i2 < j) {
- d[i2] = normalize(domain[i2], domain[i2 + 1]);
- r[i2] = interpolate2(range2[i2], range2[i2 + 1]);
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/mix.js
+ var mix, mix_default;
+ var init_mix = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/mix.js"() {
+ "use strict";
+ init_color();
+ init_rgba();
+ mix = /* @__PURE__ */ __name((color1, color2, weight8 = 50) => {
+ const { r: r1, g: g1, b: b1, a: a1 } = color_default.parse(color1);
+ const { r: r2, g: g2, b: b2, a: a2 } = color_default.parse(color2);
+ const weightScale = weight8 / 100;
+ const weightNormalized = weightScale * 2 - 1;
+ const alphaDelta = a1 - a2;
+ const weight1combined = weightNormalized * alphaDelta === -1 ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);
+ const weight1 = (weight1combined + 1) / 2;
+ const weight22 = 1 - weight1;
+ const r3 = r1 * weight1 + r2 * weight22;
+ const g3 = g1 * weight1 + g2 * weight22;
+ const b3 = b1 * weight1 + b2 * weight22;
+ const a3 = a1 * weightScale + a2 * (1 - weightScale);
+ return rgba_default(r3, g3, b3, a3);
+ }, "mix");
+ mix_default = mix;
}
- return function(x2) {
- var i3 = bisect(domain, x2, 1, j) - 1;
- return r[i3](d[i3](x2));
- };
- }
- function copy$1(source, target) {
- return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
- }
- function transformer() {
- var domain = unit$1, range2 = unit$1, interpolate2 = interpolate$1, transform, untransform, unknown, clamp = identity$2, piecewise, output, input;
- function rescale() {
- var n = Math.min(domain.length, range2.length);
- if (clamp !== identity$2)
- clamp = clamper(domain[0], domain[n - 1]);
- piecewise = n > 2 ? polymap : bimap;
- output = input = null;
- return scale;
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/invert.js
+ var invert, invert_default;
+ var init_invert = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/invert.js"() {
+ "use strict";
+ init_color();
+ init_mix();
+ invert = /* @__PURE__ */ __name((color2, weight8 = 100) => {
+ const inverse = color_default.parse(color2);
+ inverse.r = 255 - inverse.r;
+ inverse.g = 255 - inverse.g;
+ inverse.b = 255 - inverse.b;
+ return mix_default(inverse, color2, weight8);
+ }, "invert");
+ invert_default = invert;
}
- function scale(x2) {
- return x2 == null || isNaN(x2 = +x2) ? unknown : (output || (output = piecewise(domain.map(transform), range2, interpolate2)))(transform(clamp(x2)));
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/index.js
+ var init_methods = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/index.js"() {
+ "use strict";
+ init_rgba();
+ init_channel2();
+ init_is_dark();
+ init_lighten();
+ init_darken();
+ init_adjust();
+ init_invert();
}
- scale.invert = function(y2) {
- return clamp(untransform((input || (input = piecewise(range2, domain.map(transform), interpolateNumber)))(y2)));
- };
- scale.domain = function(_2) {
- return arguments.length ? (domain = Array.from(_2, number$1), rescale()) : domain.slice();
- };
- scale.range = function(_2) {
- return arguments.length ? (range2 = Array.from(_2), rescale()) : range2.slice();
- };
- scale.rangeRound = function(_2) {
- return range2 = Array.from(_2), interpolate2 = interpolateRound, rescale();
- };
- scale.clamp = function(_2) {
- return arguments.length ? (clamp = _2 ? true : identity$2, rescale()) : clamp !== identity$2;
- };
- scale.interpolate = function(_2) {
- return arguments.length ? (interpolate2 = _2, rescale()) : interpolate2;
- };
- scale.unknown = function(_2) {
- return arguments.length ? (unknown = _2, scale) : unknown;
- };
- return function(t4, u2) {
- transform = t4, untransform = u2;
- return rescale();
- };
- }
- function continuous() {
- return transformer()(identity$2, identity$2);
- }
- function tickFormat(start2, stop, count, specifier) {
- var step = tickStep(start2, stop, count), precision;
- specifier = formatSpecifier(specifier == null ? ",f" : specifier);
- switch (specifier.type) {
- case "s": {
- var value = Math.max(Math.abs(start2), Math.abs(stop));
- if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value)))
- specifier.precision = precision;
- return formatPrefix(specifier, value);
- }
- case "":
- case "e":
- case "g":
- case "p":
- case "r": {
- if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start2), Math.abs(stop)))))
- specifier.precision = precision - (specifier.type === "e");
- break;
- }
- case "f":
- case "%": {
- if (specifier.precision == null && !isNaN(precision = precisionFixed(step)))
- specifier.precision = precision - (specifier.type === "%") * 2;
- break;
- }
+ });
+
+ // ../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/index.js
+ var init_dist = __esm({
+ "../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/index.js"() {
+ "use strict";
+ init_methods();
}
- return format(specifier);
- }
- function linearish(scale) {
- var domain = scale.domain;
- scale.ticks = function(count) {
- var d = domain();
- return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
- };
- scale.tickFormat = function(count, specifier) {
- var d = domain();
- return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
- };
- scale.nice = function(count) {
- if (count == null)
- count = 10;
- var d = domain();
- var i0 = 0;
- var i1 = d.length - 1;
- var start2 = d[i0];
- var stop = d[i1];
- var prestep;
- var step;
- var maxIter = 10;
- if (stop < start2) {
- step = start2, start2 = stop, stop = step;
- step = i0, i0 = i1, i1 = step;
- }
- while (maxIter-- > 0) {
- step = tickIncrement(start2, stop, count);
- if (step === prestep) {
- d[i0] = start2;
- d[i1] = stop;
- return domain(d);
- } else if (step > 0) {
- start2 = Math.floor(start2 / step) * step;
- stop = Math.ceil(stop / step) * step;
- } else if (step < 0) {
- start2 = Math.ceil(start2 * step) / step;
- stop = Math.floor(stop * step) / step;
- } else {
- break;
- }
- prestep = step;
- }
- return scale;
- };
- return scale;
- }
- function linear() {
- var scale = continuous();
- scale.copy = function() {
- return copy$1(scale, linear());
- };
- initRange.apply(scale, arguments);
- return linearish(scale);
- }
- function nice(domain, interval2) {
- domain = domain.slice();
- var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], t4;
- if (x1 < x0) {
- t4 = i0, i0 = i1, i1 = t4;
- t4 = x0, x0 = x1, x1 = t4;
+ });
+
+ // src/themes/erDiagram-oldHardcodedValues.ts
+ var oldAttributeBackgroundColorOdd, oldAttributeBackgroundColorEven;
+ var init_erDiagram_oldHardcodedValues = __esm({
+ "src/themes/erDiagram-oldHardcodedValues.ts"() {
+ "use strict";
+ oldAttributeBackgroundColorOdd = "#ffffff";
+ oldAttributeBackgroundColorEven = "#f2f2f2";
}
- domain[i0] = interval2.floor(x0);
- domain[i1] = interval2.ceil(x1);
- return domain;
- }
- var t0 = /* @__PURE__ */ new Date(), t1 = /* @__PURE__ */ new Date();
- function newInterval(floori, offseti, count, field) {
- function interval2(date2) {
- return floori(date2 = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+date2)), date2;
+ });
+
+ // src/themes/theme-helpers.js
+ var mkBorder;
+ var init_theme_helpers = __esm({
+ "src/themes/theme-helpers.js"() {
+ "use strict";
+ init_dist();
+ mkBorder = /* @__PURE__ */ __name((col, darkMode) => darkMode ? adjust_default(col, { s: -40, l: 10 }) : adjust_default(col, { s: -40, l: -10 }), "mkBorder");
}
- interval2.floor = function(date2) {
- return floori(date2 = /* @__PURE__ */ new Date(+date2)), date2;
- };
- interval2.ceil = function(date2) {
- return floori(date2 = new Date(date2 - 1)), offseti(date2, 1), floori(date2), date2;
- };
- interval2.round = function(date2) {
- var d0 = interval2(date2), d1 = interval2.ceil(date2);
- return date2 - d0 < d1 - date2 ? d0 : d1;
- };
- interval2.offset = function(date2, step) {
- return offseti(date2 = /* @__PURE__ */ new Date(+date2), step == null ? 1 : Math.floor(step)), date2;
- };
- interval2.range = function(start2, stop, step) {
- var range2 = [], previous;
- start2 = interval2.ceil(start2);
- step = step == null ? 1 : Math.floor(step);
- if (!(start2 < stop) || !(step > 0))
- return range2;
- do
- range2.push(previous = /* @__PURE__ */ new Date(+start2)), offseti(start2, step), floori(start2);
- while (previous < start2 && start2 < stop);
- return range2;
- };
- interval2.filter = function(test) {
- return newInterval(function(date2) {
- if (date2 >= date2)
- while (floori(date2), !test(date2))
- date2.setTime(date2 - 1);
- }, function(date2, step) {
- if (date2 >= date2) {
- if (step < 0)
- while (++step <= 0) {
- while (offseti(date2, -1), !test(date2)) {
- }
+ });
+
+ // src/themes/theme-base.js
+ var Theme, getThemeVariables;
+ var init_theme_base = __esm({
+ "src/themes/theme-base.js"() {
+ "use strict";
+ init_dist();
+ init_erDiagram_oldHardcodedValues();
+ init_theme_helpers();
+ Theme = class {
+ static {
+ __name(this, "Theme");
+ }
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#fff4dd";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "#333";
+ this.THEME_COLOR_LIMIT = 12;
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ }
+ updateColors() {
+ this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333");
+ this.secondaryColor = this.secondaryColor || adjust_default(this.primaryColor, { h: -120 });
+ this.tertiaryColor = this.tertiaryColor || adjust_default(this.primaryColor, { h: 180, l: 5 });
+ this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);
+ this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);
+ this.noteBkgColor = this.noteBkgColor || "#fff5ad";
+ this.noteTextColor = this.noteTextColor || "#333";
+ this.secondaryTextColor = this.secondaryTextColor || invert_default(this.secondaryColor);
+ this.tertiaryTextColor = this.tertiaryTextColor || invert_default(this.tertiaryColor);
+ this.lineColor = this.lineColor || invert_default(this.background);
+ this.arrowheadColor = this.arrowheadColor || invert_default(this.background);
+ this.textColor = this.textColor || this.primaryTextColor;
+ this.border2 = this.border2 || this.tertiaryBorderColor;
+ this.nodeBkg = this.nodeBkg || this.primaryColor;
+ this.mainBkg = this.mainBkg || this.primaryColor;
+ this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
+ this.clusterBkg = this.clusterBkg || this.tertiaryColor;
+ this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
+ this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
+ this.titleColor = this.titleColor || this.tertiaryTextColor;
+ this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken_default(this.secondaryColor, 30) : this.secondaryColor);
+ this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
+ this.actorBorder = this.actorBorder || this.primaryBorderColor;
+ this.actorBkg = this.actorBkg || this.mainBkg;
+ this.actorTextColor = this.actorTextColor || this.primaryTextColor;
+ this.actorLineColor = this.actorLineColor || this.actorBorder;
+ this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
+ this.signalColor = this.signalColor || this.textColor;
+ this.signalTextColor = this.signalTextColor || this.textColor;
+ this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
+ this.labelTextColor = this.labelTextColor || this.actorTextColor;
+ this.loopTextColor = this.loopTextColor || this.actorTextColor;
+ this.activationBorderColor = this.activationBorderColor || darken_default(this.secondaryColor, 10);
+ this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
+ this.sequenceNumberColor = this.sequenceNumberColor || invert_default(this.lineColor);
+ this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
+ this.altSectionBkgColor = this.altSectionBkgColor || "white";
+ this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
+ this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
+ this.excludeBkgColor = this.excludeBkgColor || "#eeeeee";
+ this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
+ this.taskBkgColor = this.taskBkgColor || this.primaryColor;
+ this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
+ this.activeTaskBkgColor = this.activeTaskBkgColor || lighten_default(this.primaryColor, 23);
+ this.gridColor = this.gridColor || "lightgrey";
+ this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey";
+ this.doneTaskBorderColor = this.doneTaskBorderColor || "grey";
+ this.critBorderColor = this.critBorderColor || "#ff8888";
+ this.critBkgColor = this.critBkgColor || "red";
+ this.todayLineColor = this.todayLineColor || "red";
+ this.taskTextColor = this.taskTextColor || this.textColor;
+ this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
+ this.taskTextLightColor = this.taskTextLightColor || this.textColor;
+ this.taskTextColor = this.taskTextColor || this.primaryTextColor;
+ this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
+ this.taskTextClickableColor = this.taskTextClickableColor || "#003163";
+ this.personBorder = this.personBorder || this.primaryBorderColor;
+ this.personBkg = this.personBkg || this.mainBkg;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || this.tertiaryColor;
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.nodeBorder;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.specialStateColor = this.lineColor;
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust_default(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust_default(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust_default(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust_default(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust_default(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust_default(this.primaryColor, { h: 210, l: 150 });
+ this.cScale9 = this.cScale9 || adjust_default(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust_default(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust_default(this.primaryColor, { h: 330 });
+ if (this.darkMode) {
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScale" + i2] = darken_default(this["cScale" + i2], 75);
}
- else
- while (--step >= 0) {
- while (offseti(date2, 1), !test(date2)) {
- }
+ } else {
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScale" + i2] = darken_default(this["cScale" + i2], 25);
}
+ }
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert_default(this["cScale" + i2]);
+ }
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ if (this.darkMode) {
+ this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten_default(this["cScale" + i2], 10);
+ } else {
+ this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken_default(this["cScale" + i2], 10);
+ }
+ }
+ this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
+ }
+ const multiplier = this.darkMode ? -4 : -1;
+ for (let i2 = 0; i2 < 5; i2++) {
+ this["surface" + i2] = this["surface" + i2] || adjust_default(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i2 * 3) });
+ this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust_default(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i2 * 3) });
+ }
+ this.classText = this.classText || this.textColor;
+ this.fillType0 = this.fillType0 || this.primaryColor;
+ this.fillType1 = this.fillType1 || this.secondaryColor;
+ this.fillType2 = this.fillType2 || adjust_default(this.primaryColor, { h: 64 });
+ this.fillType3 = this.fillType3 || adjust_default(this.secondaryColor, { h: 64 });
+ this.fillType4 = this.fillType4 || adjust_default(this.primaryColor, { h: -64 });
+ this.fillType5 = this.fillType5 || adjust_default(this.secondaryColor, { h: -64 });
+ this.fillType6 = this.fillType6 || adjust_default(this.primaryColor, { h: 128 });
+ this.fillType7 = this.fillType7 || adjust_default(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || this.tertiaryColor;
+ this.pie4 = this.pie4 || adjust_default(this.primaryColor, { l: -10 });
+ this.pie5 = this.pie5 || adjust_default(this.secondaryColor, { l: -10 });
+ this.pie6 = this.pie6 || adjust_default(this.tertiaryColor, { l: -10 });
+ this.pie7 = this.pie7 || adjust_default(this.primaryColor, { h: 60, l: -10 });
+ this.pie8 = this.pie8 || adjust_default(this.primaryColor, { h: -60, l: -10 });
+ this.pie9 = this.pie9 || adjust_default(this.primaryColor, { h: 120, l: 0 });
+ this.pie10 = this.pie10 || adjust_default(this.primaryColor, { h: 60, l: -20 });
+ this.pie11 = this.pie11 || adjust_default(this.primaryColor, { h: -60, l: -20 });
+ this.pie12 = this.pie12 || adjust_default(this.primaryColor, { h: 120, l: -10 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.archEdgeColor = this.archEdgeColor || "#777";
+ this.archEdgeArrowColor = this.archEdgeArrowColor || "#777";
+ this.archEdgeWidth = this.archEdgeWidth || "3";
+ this.archGroupBorderColor = this.archGroupBorderColor || "#000";
+ this.archGroupBorderWidth = this.archGroupBorderWidth || "2px";
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
+ this.quadrant2Fill = this.quadrant2Fill || adjust_default(this.primaryColor, { r: 5, g: 5, b: 5 });
+ this.quadrant3Fill = this.quadrant3Fill || adjust_default(this.primaryColor, { r: 10, g: 10, b: 10 });
+ this.quadrant4Fill = this.quadrant4Fill || adjust_default(this.primaryColor, { r: 15, g: 15, b: 15 });
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust_default(this.primaryTextColor, { r: -5, g: -5, b: -5 });
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust_default(this.primaryTextColor, { r: -10, g: -10, b: -10 });
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust_default(this.primaryTextColor, { r: -15, g: -15, b: -15 });
+ this.quadrantPointFill = this.quadrantPointFill || is_dark_default(this.quadrant1Fill) ? lighten_default(this.quadrant1Fill) : darken_default(this.quadrant1Fill);
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
+ this.xyChart = {
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
+ plotColorPalette: this.xyChart?.plotColorPalette || "#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"
+ };
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || "1";
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken_default(this.secondaryColor, 30) : this.secondaryColor);
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust_default(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust_default(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust_default(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust_default(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust_default(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten_default(this.git0, 25);
+ this.git1 = lighten_default(this.git1, 25);
+ this.git2 = lighten_default(this.git2, 25);
+ this.git3 = lighten_default(this.git3, 25);
+ this.git4 = lighten_default(this.git4, 25);
+ this.git5 = lighten_default(this.git5, 25);
+ this.git6 = lighten_default(this.git6, 25);
+ this.git7 = lighten_default(this.git7, 25);
+ } else {
+ this.git0 = darken_default(this.git0, 25);
+ this.git1 = darken_default(this.git1, 25);
+ this.git2 = darken_default(this.git2, 25);
+ this.git3 = darken_default(this.git3, 25);
+ this.git4 = darken_default(this.git4, 25);
+ this.git5 = darken_default(this.git5, 25);
+ this.git6 = darken_default(this.git6, 25);
+ this.git7 = darken_default(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || invert_default(this.git0);
+ this.gitInv1 = this.gitInv1 || invert_default(this.git1);
+ this.gitInv2 = this.gitInv2 || invert_default(this.git2);
+ this.gitInv3 = this.gitInv3 || invert_default(this.git3);
+ this.gitInv4 = this.gitInv4 || invert_default(this.git4);
+ this.gitInv5 = this.gitInv5 || invert_default(this.git5);
+ this.gitInv6 = this.gitInv6 || invert_default(this.git6);
+ this.gitInv7 = this.gitInv7 || invert_default(this.git7);
+ this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys3 = Object.keys(overrides);
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
+ this.updateColors();
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
}
- });
- };
- if (count) {
- interval2.count = function(start2, end2) {
- t0.setTime(+start2), t1.setTime(+end2);
- floori(t0), floori(t1);
- return Math.floor(count(t0, t1));
- };
- interval2.every = function(step) {
- step = Math.floor(step);
- return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval2 : interval2.filter(field ? function(d) {
- return field(d) % step === 0;
- } : function(d) {
- return interval2.count(0, d) % step === 0;
- });
};
+ getThemeVariables = /* @__PURE__ */ __name((userOverrides) => {
+ const theme = new Theme();
+ theme.calculate(userOverrides);
+ return theme;
+ }, "getThemeVariables");
}
- return interval2;
- }
- var millisecond = newInterval(function() {
- }, function(date2, step) {
- date2.setTime(+date2 + step);
- }, function(start2, end2) {
- return end2 - start2;
});
- millisecond.every = function(k) {
- k = Math.floor(k);
- if (!isFinite(k) || !(k > 0))
- return null;
- if (!(k > 1))
- return millisecond;
- return newInterval(function(date2) {
- date2.setTime(Math.floor(date2 / k) * k);
- }, function(date2, step) {
- date2.setTime(+date2 + step * k);
- }, function(start2, end2) {
- return (end2 - start2) / k;
- });
- };
- const millisecond$1 = millisecond;
- millisecond.range;
- const durationSecond = 1e3;
- const durationMinute = durationSecond * 60;
- const durationHour = durationMinute * 60;
- const durationDay = durationHour * 24;
- const durationWeek = durationDay * 7;
- const durationMonth = durationDay * 30;
- const durationYear = durationDay * 365;
- var second = newInterval(function(date2) {
- date2.setTime(date2 - date2.getMilliseconds());
- }, function(date2, step) {
- date2.setTime(+date2 + step * durationSecond);
- }, function(start2, end2) {
- return (end2 - start2) / durationSecond;
- }, function(date2) {
- return date2.getUTCSeconds();
- });
- const utcSecond = second;
- second.range;
- var minute = newInterval(function(date2) {
- date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond);
- }, function(date2, step) {
- date2.setTime(+date2 + step * durationMinute);
- }, function(start2, end2) {
- return (end2 - start2) / durationMinute;
- }, function(date2) {
- return date2.getMinutes();
- });
- const timeMinute = minute;
- minute.range;
- var hour = newInterval(function(date2) {
- date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond - date2.getMinutes() * durationMinute);
- }, function(date2, step) {
- date2.setTime(+date2 + step * durationHour);
- }, function(start2, end2) {
- return (end2 - start2) / durationHour;
- }, function(date2) {
- return date2.getHours();
- });
- const timeHour = hour;
- hour.range;
- var day = newInterval(
- (date2) => date2.setHours(0, 0, 0, 0),
- (date2, step) => date2.setDate(date2.getDate() + step),
- (start2, end2) => (end2 - start2 - (end2.getTimezoneOffset() - start2.getTimezoneOffset()) * durationMinute) / durationDay,
- (date2) => date2.getDate() - 1
- );
- const timeDay = day;
- day.range;
- function weekday(i2) {
- return newInterval(function(date2) {
- date2.setDate(date2.getDate() - (date2.getDay() + 7 - i2) % 7);
- date2.setHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setDate(date2.getDate() + step * 7);
- }, function(start2, end2) {
- return (end2 - start2 - (end2.getTimezoneOffset() - start2.getTimezoneOffset()) * durationMinute) / durationWeek;
- });
- }
- var sunday = weekday(0);
- var monday = weekday(1);
- var tuesday = weekday(2);
- var wednesday = weekday(3);
- var thursday = weekday(4);
- var friday = weekday(5);
- var saturday = weekday(6);
- sunday.range;
- monday.range;
- tuesday.range;
- wednesday.range;
- thursday.range;
- friday.range;
- saturday.range;
- var month = newInterval(function(date2) {
- date2.setDate(1);
- date2.setHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setMonth(date2.getMonth() + step);
- }, function(start2, end2) {
- return end2.getMonth() - start2.getMonth() + (end2.getFullYear() - start2.getFullYear()) * 12;
- }, function(date2) {
- return date2.getMonth();
- });
- const timeMonth = month;
- month.range;
- var year = newInterval(function(date2) {
- date2.setMonth(0, 1);
- date2.setHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setFullYear(date2.getFullYear() + step);
- }, function(start2, end2) {
- return end2.getFullYear() - start2.getFullYear();
- }, function(date2) {
- return date2.getFullYear();
- });
- year.every = function(k) {
- return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date2) {
- date2.setFullYear(Math.floor(date2.getFullYear() / k) * k);
- date2.setMonth(0, 1);
- date2.setHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setFullYear(date2.getFullYear() + step * k);
- });
- };
- const timeYear = year;
- year.range;
- var utcDay = newInterval(function(date2) {
- date2.setUTCHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setUTCDate(date2.getUTCDate() + step);
- }, function(start2, end2) {
- return (end2 - start2) / durationDay;
- }, function(date2) {
- return date2.getUTCDate() - 1;
- });
- const utcDay$1 = utcDay;
- utcDay.range;
- function utcWeekday(i2) {
- return newInterval(function(date2) {
- date2.setUTCDate(date2.getUTCDate() - (date2.getUTCDay() + 7 - i2) % 7);
- date2.setUTCHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setUTCDate(date2.getUTCDate() + step * 7);
- }, function(start2, end2) {
- return (end2 - start2) / durationWeek;
- });
- }
- var utcSunday = utcWeekday(0);
- var utcMonday = utcWeekday(1);
- var utcTuesday = utcWeekday(2);
- var utcWednesday = utcWeekday(3);
- var utcThursday = utcWeekday(4);
- var utcFriday = utcWeekday(5);
- var utcSaturday = utcWeekday(6);
- utcSunday.range;
- utcMonday.range;
- utcTuesday.range;
- utcWednesday.range;
- utcThursday.range;
- utcFriday.range;
- utcSaturday.range;
- var utcYear = newInterval(function(date2) {
- date2.setUTCMonth(0, 1);
- date2.setUTCHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setUTCFullYear(date2.getUTCFullYear() + step);
- }, function(start2, end2) {
- return end2.getUTCFullYear() - start2.getUTCFullYear();
- }, function(date2) {
- return date2.getUTCFullYear();
- });
- utcYear.every = function(k) {
- return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date2) {
- date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / k) * k);
- date2.setUTCMonth(0, 1);
- date2.setUTCHours(0, 0, 0, 0);
- }, function(date2, step) {
- date2.setUTCFullYear(date2.getUTCFullYear() + step * k);
- });
- };
- const utcYear$1 = utcYear;
- utcYear.range;
- function ticker(year2, month2, week, day2, hour2, minute2) {
- const tickIntervals = [
- [utcSecond, 1, durationSecond],
- [utcSecond, 5, 5 * durationSecond],
- [utcSecond, 15, 15 * durationSecond],
- [utcSecond, 30, 30 * durationSecond],
- [minute2, 1, durationMinute],
- [minute2, 5, 5 * durationMinute],
- [minute2, 15, 15 * durationMinute],
- [minute2, 30, 30 * durationMinute],
- [hour2, 1, durationHour],
- [hour2, 3, 3 * durationHour],
- [hour2, 6, 6 * durationHour],
- [hour2, 12, 12 * durationHour],
- [day2, 1, durationDay],
- [day2, 2, 2 * durationDay],
- [week, 1, durationWeek],
- [month2, 1, durationMonth],
- [month2, 3, 3 * durationMonth],
- [year2, 1, durationYear]
- ];
- function ticks2(start2, stop, count) {
- const reverse = stop < start2;
- if (reverse)
- [start2, stop] = [stop, start2];
- const interval2 = count && typeof count.range === "function" ? count : tickInterval2(start2, stop, count);
- const ticks3 = interval2 ? interval2.range(start2, +stop + 1) : [];
- return reverse ? ticks3.reverse() : ticks3;
- }
- function tickInterval2(start2, stop, count) {
- const target = Math.abs(stop - start2) / count;
- const i2 = bisector(([, , step2]) => step2).right(tickIntervals, target);
- if (i2 === tickIntervals.length)
- return year2.every(tickStep(start2 / durationYear, stop / durationYear, count));
- if (i2 === 0)
- return millisecond$1.every(Math.max(tickStep(start2, stop, count), 1));
- const [t4, step] = tickIntervals[target / tickIntervals[i2 - 1][2] < tickIntervals[i2][2] / target ? i2 - 1 : i2];
- return t4.every(step);
- }
- return [ticks2, tickInterval2];
- }
- const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute);
- function localDate(d) {
- if (0 <= d.y && d.y < 100) {
- var date2 = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
- date2.setFullYear(d.y);
- return date2;
- }
- return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
- }
- function utcDate(d) {
- if (0 <= d.y && d.y < 100) {
- var date2 = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
- date2.setUTCFullYear(d.y);
- return date2;
- }
- return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
- }
- function newDate(y2, m, d) {
- return { y: y2, m, d, H: 0, M: 0, S: 0, L: 0 };
- }
- function formatLocale(locale2) {
- var locale_dateTime = locale2.dateTime, locale_date = locale2.date, locale_time = locale2.time, locale_periods = locale2.periods, locale_weekdays = locale2.days, locale_shortWeekdays = locale2.shortDays, locale_months = locale2.months, locale_shortMonths = locale2.shortMonths;
- var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths);
- var formats = {
- "a": formatShortWeekday,
- "A": formatWeekday,
- "b": formatShortMonth,
- "B": formatMonth,
- "c": null,
- "d": formatDayOfMonth,
- "e": formatDayOfMonth,
- "f": formatMicroseconds,
- "g": formatYearISO,
- "G": formatFullYearISO,
- "H": formatHour24,
- "I": formatHour12,
- "j": formatDayOfYear,
- "L": formatMilliseconds,
- "m": formatMonthNumber,
- "M": formatMinutes,
- "p": formatPeriod,
- "q": formatQuarter,
- "Q": formatUnixTimestamp,
- "s": formatUnixTimestampSeconds,
- "S": formatSeconds,
- "u": formatWeekdayNumberMonday,
- "U": formatWeekNumberSunday,
- "V": formatWeekNumberISO,
- "w": formatWeekdayNumberSunday,
- "W": formatWeekNumberMonday,
- "x": null,
- "X": null,
- "y": formatYear,
- "Y": formatFullYear,
- "Z": formatZone,
- "%": formatLiteralPercent
- };
- var utcFormats = {
- "a": formatUTCShortWeekday,
- "A": formatUTCWeekday,
- "b": formatUTCShortMonth,
- "B": formatUTCMonth,
- "c": null,
- "d": formatUTCDayOfMonth,
- "e": formatUTCDayOfMonth,
- "f": formatUTCMicroseconds,
- "g": formatUTCYearISO,
- "G": formatUTCFullYearISO,
- "H": formatUTCHour24,
- "I": formatUTCHour12,
- "j": formatUTCDayOfYear,
- "L": formatUTCMilliseconds,
- "m": formatUTCMonthNumber,
- "M": formatUTCMinutes,
- "p": formatUTCPeriod,
- "q": formatUTCQuarter,
- "Q": formatUnixTimestamp,
- "s": formatUnixTimestampSeconds,
- "S": formatUTCSeconds,
- "u": formatUTCWeekdayNumberMonday,
- "U": formatUTCWeekNumberSunday,
- "V": formatUTCWeekNumberISO,
- "w": formatUTCWeekdayNumberSunday,
- "W": formatUTCWeekNumberMonday,
- "x": null,
- "X": null,
- "y": formatUTCYear,
- "Y": formatUTCFullYear,
- "Z": formatUTCZone,
- "%": formatLiteralPercent
- };
- var parses = {
- "a": parseShortWeekday,
- "A": parseWeekday,
- "b": parseShortMonth,
- "B": parseMonth,
- "c": parseLocaleDateTime,
- "d": parseDayOfMonth,
- "e": parseDayOfMonth,
- "f": parseMicroseconds,
- "g": parseYear,
- "G": parseFullYear,
- "H": parseHour24,
- "I": parseHour24,
- "j": parseDayOfYear,
- "L": parseMilliseconds,
- "m": parseMonthNumber,
- "M": parseMinutes,
- "p": parsePeriod,
- "q": parseQuarter,
- "Q": parseUnixTimestamp,
- "s": parseUnixTimestampSeconds,
- "S": parseSeconds,
- "u": parseWeekdayNumberMonday,
- "U": parseWeekNumberSunday,
- "V": parseWeekNumberISO,
- "w": parseWeekdayNumberSunday,
- "W": parseWeekNumberMonday,
- "x": parseLocaleDate,
- "X": parseLocaleTime,
- "y": parseYear,
- "Y": parseFullYear,
- "Z": parseZone,
- "%": parseLiteralPercent
- };
- formats.x = newFormat(locale_date, formats);
- formats.X = newFormat(locale_time, formats);
- formats.c = newFormat(locale_dateTime, formats);
- utcFormats.x = newFormat(locale_date, utcFormats);
- utcFormats.X = newFormat(locale_time, utcFormats);
- utcFormats.c = newFormat(locale_dateTime, utcFormats);
- function newFormat(specifier, formats2) {
- return function(date2) {
- var string = [], i2 = -1, j = 0, n = specifier.length, c2, pad2, format2;
- if (!(date2 instanceof Date))
- date2 = /* @__PURE__ */ new Date(+date2);
- while (++i2 < n) {
- if (specifier.charCodeAt(i2) === 37) {
- string.push(specifier.slice(j, i2));
- if ((pad2 = pads[c2 = specifier.charAt(++i2)]) != null)
- c2 = specifier.charAt(++i2);
- else
- pad2 = c2 === "e" ? " " : "0";
- if (format2 = formats2[c2])
- c2 = format2(date2, pad2);
- string.push(c2);
- j = i2 + 1;
+
+ // src/themes/theme-dark.js
+ var Theme2, getThemeVariables2;
+ var init_theme_dark = __esm({
+ "src/themes/theme-dark.js"() {
+ "use strict";
+ init_dist();
+ init_theme_helpers();
+ Theme2 = class {
+ static {
+ __name(this, "Theme");
+ }
+ constructor() {
+ this.background = "#333";
+ this.primaryColor = "#1f2020";
+ this.secondaryColor = lighten_default(this.primaryColor, 16);
+ this.tertiaryColor = adjust_default(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = invert_default(this.background);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert_default(this.primaryColor);
+ this.secondaryTextColor = invert_default(this.secondaryColor);
+ this.tertiaryTextColor = invert_default(this.tertiaryColor);
+ this.lineColor = invert_default(this.background);
+ this.textColor = invert_default(this.background);
+ this.mainBkg = "#1f2020";
+ this.secondBkg = "calculated";
+ this.mainContrastColor = "lightgrey";
+ this.darkTextColor = lighten_default(invert_default("#323D47"), 10);
+ this.lineColor = "calculated";
+ this.border1 = "#ccc";
+ this.border2 = rgba_default(255, 255, 255, 0.25);
+ this.arrowheadColor = "calculated";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.labelBackground = "#181818";
+ this.textColor = "#ccc";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "#F9FFFE";
+ this.edgeLabelBackground = "calculated";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "calculated";
+ this.actorLineColor = "calculated";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "calculated";
+ this.activationBkgColor = "calculated";
+ this.sequenceNumberColor = "black";
+ this.sectionBkgColor = darken_default("#EAE8D9", 30);
+ this.altSectionBkgColor = "calculated";
+ this.sectionBkgColor2 = "#EAE8D9";
+ this.excludeBkgColor = darken_default(this.sectionBkgColor, 10);
+ this.taskBorderColor = rgba_default(255, 255, 255, 70);
+ this.taskBkgColor = "calculated";
+ this.taskTextColor = "calculated";
+ this.taskTextLightColor = "calculated";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = rgba_default(255, 255, 255, 50);
+ this.activeTaskBkgColor = "#81B1DB";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#E83737";
+ this.critBkgColor = "#E83737";
+ this.taskTextDarkColor = "calculated";
+ this.todayLineColor = "#DB5757";
+ this.personBorder = this.primaryBorderColor;
+ this.personBkg = this.mainBkg;
+ this.archEdgeColor = "calculated";
+ this.archEdgeArrowColor = "calculated";
+ this.archEdgeWidth = "3";
+ this.archGroupBorderColor = this.primaryBorderColor;
+ this.archGroupBorderWidth = "2px";
+ this.labelColor = "calculated";
+ this.errorBkgColor = "#a44141";
+ this.errorTextColor = "#ddd";
+ }
+ updateColors() {
+ this.secondBkg = lighten_default(this.mainBkg, 16);
+ this.lineColor = this.mainContrastColor;
+ this.arrowheadColor = this.mainContrastColor;
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.edgeLabelBackground = lighten_default(this.labelBackground, 25);
+ this.actorBorder = this.border1;
+ this.actorBkg = this.mainBkg;
+ this.actorTextColor = this.mainContrastColor;
+ this.actorLineColor = this.actorBorder;
+ this.signalColor = this.mainContrastColor;
+ this.signalTextColor = this.mainContrastColor;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.mainContrastColor;
+ this.loopTextColor = this.mainContrastColor;
+ this.noteBorderColor = this.secondaryBorderColor;
+ this.noteBkgColor = this.secondBkg;
+ this.noteTextColor = this.secondaryTextColor;
+ this.activationBorderColor = this.border1;
+ this.activationBkgColor = this.secondBkg;
+ this.altSectionBkgColor = this.background;
+ this.taskBkgColor = lighten_default(this.mainBkg, 23);
+ this.taskTextColor = this.darkTextColor;
+ this.taskTextLightColor = this.mainContrastColor;
+ this.taskTextOutsideColor = this.taskTextLightColor;
+ this.gridColor = this.mainContrastColor;
+ this.doneTaskBkgColor = this.mainContrastColor;
+ this.taskTextDarkColor = this.darkTextColor;
+ this.archEdgeColor = this.lineColor;
+ this.archEdgeArrowColor = this.lineColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#555";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = "#f4f4f4";
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust_default(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust_default(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust_default(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust_default(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust_default(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust_default(this.secondaryColor, { h: 128 });
+ this.cScale1 = this.cScale1 || "#0b0000";
+ this.cScale2 = this.cScale2 || "#4d1037";
+ this.cScale3 = this.cScale3 || "#3f5258";
+ this.cScale4 = this.cScale4 || "#4f2f1b";
+ this.cScale5 = this.cScale5 || "#6e0a0a";
+ this.cScale6 = this.cScale6 || "#3b0048";
+ this.cScale7 = this.cScale7 || "#995a01";
+ this.cScale8 = this.cScale8 || "#154706";
+ this.cScale9 = this.cScale9 || "#161722";
+ this.cScale10 = this.cScale10 || "#00296f";
+ this.cScale11 = this.cScale11 || "#01629c";
+ this.cScale12 = this.cScale12 || "#010029";
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust_default(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust_default(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust_default(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust_default(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust_default(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust_default(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust_default(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust_default(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust_default(this.primaryColor, { h: 330 });
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert_default(this["cScale" + i2]);
+ }
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten_default(this["cScale" + i2], 10);
+ }
+ for (let i2 = 0; i2 < 5; i2++) {
+ this["surface" + i2] = this["surface" + i2] || adjust_default(this.mainBkg, { h: 30, s: -30, l: -(-10 + i2 * 4) });
+ this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust_default(this.mainBkg, { h: 30, s: -30, l: -(-7 + i2 * 4) });
+ }
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
+ }
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["pie" + i2] = this["cScale" + i2];
+ }
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
+ this.quadrant2Fill = this.quadrant2Fill || adjust_default(this.primaryColor, { r: 5, g: 5, b: 5 });
+ this.quadrant3Fill = this.quadrant3Fill || adjust_default(this.primaryColor, { r: 10, g: 10, b: 10 });
+ this.quadrant4Fill = this.quadrant4Fill || adjust_default(this.primaryColor, { r: 15, g: 15, b: 15 });
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust_default(this.primaryTextColor, { r: -5, g: -5, b: -5 });
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust_default(this.primaryTextColor, { r: -10, g: -10, b: -10 });
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust_default(this.primaryTextColor, { r: -15, g: -15, b: -15 });
+ this.quadrantPointFill = this.quadrantPointFill || is_dark_default(this.quadrant1Fill) ? lighten_default(this.quadrant1Fill) : darken_default(this.quadrant1Fill);
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
+ this.xyChart = {
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
+ plotColorPalette: this.xyChart?.plotColorPalette || "#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22"
+ };
+ this.packet = {
+ startByteColor: this.primaryTextColor,
+ endByteColor: this.primaryTextColor,
+ labelColor: this.primaryTextColor,
+ titleColor: this.primaryTextColor,
+ blockStrokeColor: this.primaryTextColor,
+ blockFillColor: this.background
+ };
+ this.classText = this.primaryTextColor;
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || "1";
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken_default(this.secondaryColor, 30) : this.secondaryColor);
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = lighten_default(this.secondaryColor, 20);
+ this.git1 = lighten_default(this.pie2 || this.secondaryColor, 20);
+ this.git2 = lighten_default(this.pie3 || this.tertiaryColor, 20);
+ this.git3 = lighten_default(this.pie4 || adjust_default(this.primaryColor, { h: -30 }), 20);
+ this.git4 = lighten_default(this.pie5 || adjust_default(this.primaryColor, { h: -60 }), 20);
+ this.git5 = lighten_default(this.pie6 || adjust_default(this.primaryColor, { h: -90 }), 10);
+ this.git6 = lighten_default(this.pie7 || adjust_default(this.primaryColor, { h: 60 }), 10);
+ this.git7 = lighten_default(this.pie8 || adjust_default(this.primaryColor, { h: 120 }), 20);
+ this.gitInv0 = this.gitInv0 || invert_default(this.git0);
+ this.gitInv1 = this.gitInv1 || invert_default(this.git1);
+ this.gitInv2 = this.gitInv2 || invert_default(this.git2);
+ this.gitInv3 = this.gitInv3 || invert_default(this.git3);
+ this.gitInv4 = this.gitInv4 || invert_default(this.git4);
+ this.gitInv5 = this.gitInv5 || invert_default(this.git5);
+ this.gitInv6 = this.gitInv6 || invert_default(this.git6);
+ this.gitInv7 = this.gitInv7 || invert_default(this.git7);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert_default(this.labelTextColor);
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert_default(this.labelTextColor);
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten_default(this.background, 12);
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten_default(this.background, 2);
+ this.nodeBorder = this.nodeBorder || "#999";
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
}
+ const keys3 = Object.keys(overrides);
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
+ this.updateColors();
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
}
- string.push(specifier.slice(j, i2));
- return string.join("");
};
+ getThemeVariables2 = /* @__PURE__ */ __name((userOverrides) => {
+ const theme = new Theme2();
+ theme.calculate(userOverrides);
+ return theme;
+ }, "getThemeVariables");
}
- function newParse(specifier, Z) {
- return function(string) {
- var d = newDate(1900, void 0, 1), i2 = parseSpecifier(d, specifier, string += "", 0), week, day2;
- if (i2 != string.length)
- return null;
- if ("Q" in d)
- return new Date(d.Q);
- if ("s" in d)
- return new Date(d.s * 1e3 + ("L" in d ? d.L : 0));
- if (Z && !("Z" in d))
- d.Z = 0;
- if ("p" in d)
- d.H = d.H % 12 + d.p * 12;
- if (d.m === void 0)
- d.m = "q" in d ? d.q : 0;
- if ("V" in d) {
- if (d.V < 1 || d.V > 53)
- return null;
- if (!("w" in d))
- d.w = 1;
- if ("Z" in d) {
- week = utcDate(newDate(d.y, 0, 1)), day2 = week.getUTCDay();
- week = day2 > 4 || day2 === 0 ? utcMonday.ceil(week) : utcMonday(week);
- week = utcDay$1.offset(week, (d.V - 1) * 7);
- d.y = week.getUTCFullYear();
- d.m = week.getUTCMonth();
- d.d = week.getUTCDate() + (d.w + 6) % 7;
+ });
+
+ // src/themes/theme-default.js
+ var Theme3, getThemeVariables3;
+ var init_theme_default = __esm({
+ "src/themes/theme-default.js"() {
+ "use strict";
+ init_dist();
+ init_theme_helpers();
+ init_erDiagram_oldHardcodedValues();
+ Theme3 = class {
+ static {
+ __name(this, "Theme");
+ }
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#ECECFF";
+ this.secondaryColor = adjust_default(this.primaryColor, { h: 120 });
+ this.secondaryColor = "#ffffde";
+ this.tertiaryColor = adjust_default(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert_default(this.primaryColor);
+ this.secondaryTextColor = invert_default(this.secondaryColor);
+ this.tertiaryTextColor = invert_default(this.tertiaryColor);
+ this.lineColor = invert_default(this.background);
+ this.textColor = invert_default(this.background);
+ this.background = "white";
+ this.mainBkg = "#ECECFF";
+ this.secondBkg = "#ffffde";
+ this.lineColor = "#333333";
+ this.border1 = "#9370DB";
+ this.border2 = "#aaaa33";
+ this.arrowheadColor = "#333333";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.labelBackground = "rgba(232,232,232, 0.8)";
+ this.textColor = "#333";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "calculated";
+ this.edgeLabelBackground = "calculated";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "black";
+ this.actorLineColor = "calculated";
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "calculated";
+ this.altSectionBkgColor = "calculated";
+ this.sectionBkgColor2 = "calculated";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "calculated";
+ this.taskTextLightColor = "calculated";
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextDarkColor = "calculated";
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.taskTextClickableColor = "calculated";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "calculated";
+ this.critBorderColor = "calculated";
+ this.critBkgColor = "calculated";
+ this.todayLineColor = "calculated";
+ this.sectionBkgColor = rgba_default(102, 102, 255, 0.49);
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "#fff400";
+ this.taskBorderColor = "#534fbc";
+ this.taskBkgColor = "#8a90dd";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "black";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "#534fbc";
+ this.activeTaskBkgColor = "#bfc7ff";
+ this.gridColor = "lightgrey";
+ this.doneTaskBkgColor = "lightgrey";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#ff8888";
+ this.critBkgColor = "red";
+ this.todayLineColor = "red";
+ this.personBorder = this.primaryBorderColor;
+ this.personBkg = this.mainBkg;
+ this.archEdgeColor = "calculated";
+ this.archEdgeArrowColor = "calculated";
+ this.archEdgeWidth = "3";
+ this.archGroupBorderColor = this.primaryBorderColor;
+ this.archGroupBorderWidth = "2px";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ this.updateColors();
+ }
+ updateColors() {
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust_default(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust_default(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust_default(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust_default(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust_default(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust_default(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust_default(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust_default(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust_default(this.primaryColor, { h: 330 });
+ this["cScalePeer1"] = this["cScalePeer1"] || darken_default(this.secondaryColor, 45);
+ this["cScalePeer2"] = this["cScalePeer2"] || darken_default(this.tertiaryColor, 40);
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScale" + i2] = darken_default(this["cScale" + i2], 10);
+ this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken_default(this["cScale" + i2], 25);
+ }
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleInv" + i2] = this["cScaleInv" + i2] || adjust_default(this["cScale" + i2], { h: 180 });
+ }
+ for (let i2 = 0; i2 < 5; i2++) {
+ this["surface" + i2] = this["surface" + i2] || adjust_default(this.mainBkg, { h: 30, l: -(5 + i2 * 5) });
+ this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust_default(this.mainBkg, { h: 30, l: -(7 + i2 * 5) });
+ }
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
+ if (this.labelTextColor !== "calculated") {
+ this.cScaleLabel0 = this.cScaleLabel0 || invert_default(this.labelTextColor);
+ this.cScaleLabel3 = this.cScaleLabel3 || invert_default(this.labelTextColor);
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.labelTextColor;
+ }
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.titleColor = this.textColor;
+ this.edgeLabelBackground = this.labelBackground;
+ this.actorBorder = lighten_default(this.border1, 23);
+ this.actorBkg = this.mainBkg;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.signalColor = this.textColor;
+ this.signalTextColor = this.textColor;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.actorTextColor;
+ this.loopTextColor = this.actorTextColor;
+ this.noteBorderColor = this.border2;
+ this.noteTextColor = this.actorTextColor;
+ this.actorLineColor = this.actorBorder;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.archEdgeColor = this.lineColor;
+ this.archEdgeArrowColor = this.lineColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f0f0f0";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.nodeBorder;
+ this.specialStateColor = this.lineColor;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust_default(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust_default(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust_default(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust_default(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust_default(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust_default(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || adjust_default(this.tertiaryColor, { l: -40 });
+ this.pie4 = this.pie4 || adjust_default(this.primaryColor, { l: -10 });
+ this.pie5 = this.pie5 || adjust_default(this.secondaryColor, { l: -30 });
+ this.pie6 = this.pie6 || adjust_default(this.tertiaryColor, { l: -20 });
+ this.pie7 = this.pie7 || adjust_default(this.primaryColor, { h: 60, l: -20 });
+ this.pie8 = this.pie8 || adjust_default(this.primaryColor, { h: -60, l: -40 });
+ this.pie9 = this.pie9 || adjust_default(this.primaryColor, { h: 120, l: -40 });
+ this.pie10 = this.pie10 || adjust_default(this.primaryColor, { h: 60, l: -40 });
+ this.pie11 = this.pie11 || adjust_default(this.primaryColor, { h: -90, l: -40 });
+ this.pie12 = this.pie12 || adjust_default(this.primaryColor, { h: 120, l: -30 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
+ this.quadrant2Fill = this.quadrant2Fill || adjust_default(this.primaryColor, { r: 5, g: 5, b: 5 });
+ this.quadrant3Fill = this.quadrant3Fill || adjust_default(this.primaryColor, { r: 10, g: 10, b: 10 });
+ this.quadrant4Fill = this.quadrant4Fill || adjust_default(this.primaryColor, { r: 15, g: 15, b: 15 });
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust_default(this.primaryTextColor, { r: -5, g: -5, b: -5 });
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust_default(this.primaryTextColor, { r: -10, g: -10, b: -10 });
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust_default(this.primaryTextColor, { r: -15, g: -15, b: -15 });
+ this.quadrantPointFill = this.quadrantPointFill || is_dark_default(this.quadrant1Fill) ? lighten_default(this.quadrant1Fill) : darken_default(this.quadrant1Fill);
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
+ this.xyChart = {
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
+ plotColorPalette: this.xyChart?.plotColorPalette || "#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3"
+ };
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || "1";
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust_default(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust_default(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust_default(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust_default(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust_default(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten_default(this.git0, 25);
+ this.git1 = lighten_default(this.git1, 25);
+ this.git2 = lighten_default(this.git2, 25);
+ this.git3 = lighten_default(this.git3, 25);
+ this.git4 = lighten_default(this.git4, 25);
+ this.git5 = lighten_default(this.git5, 25);
+ this.git6 = lighten_default(this.git6, 25);
+ this.git7 = lighten_default(this.git7, 25);
} else {
- week = localDate(newDate(d.y, 0, 1)), day2 = week.getDay();
- week = day2 > 4 || day2 === 0 ? monday.ceil(week) : monday(week);
- week = timeDay.offset(week, (d.V - 1) * 7);
- d.y = week.getFullYear();
- d.m = week.getMonth();
- d.d = week.getDate() + (d.w + 6) % 7;
- }
- } else if ("W" in d || "U" in d) {
- if (!("w" in d))
- d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
- day2 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
- d.m = 0;
- d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day2 + 5) % 7 : d.w + d.U * 7 - (day2 + 6) % 7;
- }
- if ("Z" in d) {
- d.H += d.Z / 100 | 0;
- d.M += d.Z % 100;
- return utcDate(d);
- }
- return localDate(d);
- };
- }
- function parseSpecifier(d, specifier, string, j) {
- var i2 = 0, n = specifier.length, m = string.length, c2, parse2;
- while (i2 < n) {
- if (j >= m)
- return -1;
- c2 = specifier.charCodeAt(i2++);
- if (c2 === 37) {
- c2 = specifier.charAt(i2++);
- parse2 = parses[c2 in pads ? specifier.charAt(i2++) : c2];
- if (!parse2 || (j = parse2(d, string, j)) < 0)
- return -1;
- } else if (c2 != string.charCodeAt(j++)) {
- return -1;
+ this.git0 = darken_default(this.git0, 25);
+ this.git1 = darken_default(this.git1, 25);
+ this.git2 = darken_default(this.git2, 25);
+ this.git3 = darken_default(this.git3, 25);
+ this.git4 = darken_default(this.git4, 25);
+ this.git5 = darken_default(this.git5, 25);
+ this.git6 = darken_default(this.git6, 25);
+ this.git7 = darken_default(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || darken_default(invert_default(this.git0), 25);
+ this.gitInv1 = this.gitInv1 || invert_default(this.git1);
+ this.gitInv2 = this.gitInv2 || invert_default(this.git2);
+ this.gitInv3 = this.gitInv3 || invert_default(this.git3);
+ this.gitInv4 = this.gitInv4 || invert_default(this.git4);
+ this.gitInv5 = this.gitInv5 || invert_default(this.git5);
+ this.gitInv6 = this.gitInv6 || invert_default(this.git6);
+ this.gitInv7 = this.gitInv7 || invert_default(this.git7);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert_default(this.labelTextColor);
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert_default(this.labelTextColor);
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys3 = Object.keys(overrides);
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
+ this.updateColors();
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
}
- }
- return j;
- }
- function parsePeriod(d, string, i2) {
- var n = periodRe.exec(string.slice(i2));
- return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
- }
- function parseShortWeekday(d, string, i2) {
- var n = shortWeekdayRe.exec(string.slice(i2));
- return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
+ };
+ getThemeVariables3 = /* @__PURE__ */ __name((userOverrides) => {
+ const theme = new Theme3();
+ theme.calculate(userOverrides);
+ return theme;
+ }, "getThemeVariables");
}
- function parseWeekday(d, string, i2) {
- var n = weekdayRe.exec(string.slice(i2));
- return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
+ });
+
+ // src/themes/theme-forest.js
+ var Theme4, getThemeVariables4;
+ var init_theme_forest = __esm({
+ "src/themes/theme-forest.js"() {
+ "use strict";
+ init_dist();
+ init_erDiagram_oldHardcodedValues();
+ init_theme_helpers();
+ Theme4 = class {
+ static {
+ __name(this, "Theme");
+ }
+ constructor() {
+ this.background = "#f4f4f4";
+ this.primaryColor = "#cde498";
+ this.secondaryColor = "#cdffb2";
+ this.background = "white";
+ this.mainBkg = "#cde498";
+ this.secondBkg = "#cdffb2";
+ this.lineColor = "green";
+ this.border1 = "#13540c";
+ this.border2 = "#6eaa49";
+ this.arrowheadColor = "green";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.tertiaryColor = lighten_default("#cde498", 10);
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert_default(this.primaryColor);
+ this.secondaryTextColor = invert_default(this.secondaryColor);
+ this.tertiaryTextColor = invert_default(this.primaryColor);
+ this.lineColor = invert_default(this.background);
+ this.textColor = invert_default(this.background);
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "#333";
+ this.edgeLabelBackground = "#e8e8e8";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "black";
+ this.actorLineColor = "calculated";
+ this.signalColor = "#333";
+ this.signalTextColor = "#333";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "#326932";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "#fff5ad";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "#6eaa49";
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "#6eaa49";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "#487e3a";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "black";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "lightgrey";
+ this.doneTaskBkgColor = "lightgrey";
+ this.doneTaskBorderColor = "grey";
+ this.critBorderColor = "#ff8888";
+ this.critBkgColor = "red";
+ this.todayLineColor = "red";
+ this.personBorder = this.primaryBorderColor;
+ this.personBkg = this.mainBkg;
+ this.archEdgeColor = "calculated";
+ this.archEdgeArrowColor = "calculated";
+ this.archEdgeWidth = "3";
+ this.archGroupBorderColor = this.primaryBorderColor;
+ this.archGroupBorderWidth = "2px";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.actorBorder = darken_default(this.mainBkg, 20);
+ this.actorBkg = this.mainBkg;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelTextColor = this.actorTextColor;
+ this.loopTextColor = this.actorTextColor;
+ this.noteBorderColor = this.border2;
+ this.noteTextColor = this.actorTextColor;
+ this.actorLineColor = this.actorBorder;
+ this.cScale0 = this.cScale0 || this.primaryColor;
+ this.cScale1 = this.cScale1 || this.secondaryColor;
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
+ this.cScale3 = this.cScale3 || adjust_default(this.primaryColor, { h: 30 });
+ this.cScale4 = this.cScale4 || adjust_default(this.primaryColor, { h: 60 });
+ this.cScale5 = this.cScale5 || adjust_default(this.primaryColor, { h: 90 });
+ this.cScale6 = this.cScale6 || adjust_default(this.primaryColor, { h: 120 });
+ this.cScale7 = this.cScale7 || adjust_default(this.primaryColor, { h: 150 });
+ this.cScale8 = this.cScale8 || adjust_default(this.primaryColor, { h: 210 });
+ this.cScale9 = this.cScale9 || adjust_default(this.primaryColor, { h: 270 });
+ this.cScale10 = this.cScale10 || adjust_default(this.primaryColor, { h: 300 });
+ this.cScale11 = this.cScale11 || adjust_default(this.primaryColor, { h: 330 });
+ this["cScalePeer1"] = this["cScalePeer1"] || darken_default(this.secondaryColor, 45);
+ this["cScalePeer2"] = this["cScalePeer2"] || darken_default(this.tertiaryColor, 40);
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScale" + i2] = darken_default(this["cScale" + i2], 10);
+ this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken_default(this["cScale" + i2], 25);
+ }
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleInv" + i2] = this["cScaleInv" + i2] || adjust_default(this["cScale" + i2], { h: 180 });
+ }
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
+ }
+ for (let i2 = 0; i2 < 5; i2++) {
+ this["surface" + i2] = this["surface" + i2] || adjust_default(this.mainBkg, { h: 30, s: -30, l: -(5 + i2 * 5) });
+ this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust_default(this.mainBkg, { h: 30, s: -30, l: -(8 + i2 * 5) });
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.taskBorderColor = this.border1;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.activeTaskBorderColor = this.taskBorderColor;
+ this.activeTaskBkgColor = this.mainBkg;
+ this.archEdgeColor = this.lineColor;
+ this.archEdgeArrowColor = this.lineColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f0f0f0";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = this.lineColor;
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.transitionColor = this.transitionColor || this.lineColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust_default(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust_default(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust_default(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust_default(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust_default(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust_default(this.secondaryColor, { h: 128 });
+ this.pie1 = this.pie1 || this.primaryColor;
+ this.pie2 = this.pie2 || this.secondaryColor;
+ this.pie3 = this.pie3 || this.tertiaryColor;
+ this.pie4 = this.pie4 || adjust_default(this.primaryColor, { l: -30 });
+ this.pie5 = this.pie5 || adjust_default(this.secondaryColor, { l: -30 });
+ this.pie6 = this.pie6 || adjust_default(this.tertiaryColor, { h: 40, l: -40 });
+ this.pie7 = this.pie7 || adjust_default(this.primaryColor, { h: 60, l: -10 });
+ this.pie8 = this.pie8 || adjust_default(this.primaryColor, { h: -60, l: -10 });
+ this.pie9 = this.pie9 || adjust_default(this.primaryColor, { h: 120, l: 0 });
+ this.pie10 = this.pie10 || adjust_default(this.primaryColor, { h: 60, l: -50 });
+ this.pie11 = this.pie11 || adjust_default(this.primaryColor, { h: -60, l: -50 });
+ this.pie12 = this.pie12 || adjust_default(this.primaryColor, { h: 120, l: -50 });
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
+ this.quadrant2Fill = this.quadrant2Fill || adjust_default(this.primaryColor, { r: 5, g: 5, b: 5 });
+ this.quadrant3Fill = this.quadrant3Fill || adjust_default(this.primaryColor, { r: 10, g: 10, b: 10 });
+ this.quadrant4Fill = this.quadrant4Fill || adjust_default(this.primaryColor, { r: 15, g: 15, b: 15 });
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust_default(this.primaryTextColor, { r: -5, g: -5, b: -5 });
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust_default(this.primaryTextColor, { r: -10, g: -10, b: -10 });
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust_default(this.primaryTextColor, { r: -15, g: -15, b: -15 });
+ this.quadrantPointFill = this.quadrantPointFill || is_dark_default(this.quadrant1Fill) ? lighten_default(this.quadrant1Fill) : darken_default(this.quadrant1Fill);
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
+ this.packet = {
+ startByteColor: this.primaryTextColor,
+ endByteColor: this.primaryTextColor,
+ labelColor: this.primaryTextColor,
+ titleColor: this.primaryTextColor,
+ blockStrokeColor: this.primaryTextColor,
+ blockFillColor: this.mainBkg
+ };
+ this.xyChart = {
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
+ plotColorPalette: this.xyChart?.plotColorPalette || "#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176"
+ };
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || "1";
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = this.git0 || this.primaryColor;
+ this.git1 = this.git1 || this.secondaryColor;
+ this.git2 = this.git2 || this.tertiaryColor;
+ this.git3 = this.git3 || adjust_default(this.primaryColor, { h: -30 });
+ this.git4 = this.git4 || adjust_default(this.primaryColor, { h: -60 });
+ this.git5 = this.git5 || adjust_default(this.primaryColor, { h: -90 });
+ this.git6 = this.git6 || adjust_default(this.primaryColor, { h: 60 });
+ this.git7 = this.git7 || adjust_default(this.primaryColor, { h: 120 });
+ if (this.darkMode) {
+ this.git0 = lighten_default(this.git0, 25);
+ this.git1 = lighten_default(this.git1, 25);
+ this.git2 = lighten_default(this.git2, 25);
+ this.git3 = lighten_default(this.git3, 25);
+ this.git4 = lighten_default(this.git4, 25);
+ this.git5 = lighten_default(this.git5, 25);
+ this.git6 = lighten_default(this.git6, 25);
+ this.git7 = lighten_default(this.git7, 25);
+ } else {
+ this.git0 = darken_default(this.git0, 25);
+ this.git1 = darken_default(this.git1, 25);
+ this.git2 = darken_default(this.git2, 25);
+ this.git3 = darken_default(this.git3, 25);
+ this.git4 = darken_default(this.git4, 25);
+ this.git5 = darken_default(this.git5, 25);
+ this.git6 = darken_default(this.git6, 25);
+ this.git7 = darken_default(this.git7, 25);
+ }
+ this.gitInv0 = this.gitInv0 || invert_default(this.git0);
+ this.gitInv1 = this.gitInv1 || invert_default(this.git1);
+ this.gitInv2 = this.gitInv2 || invert_default(this.git2);
+ this.gitInv3 = this.gitInv3 || invert_default(this.git3);
+ this.gitInv4 = this.gitInv4 || invert_default(this.git4);
+ this.gitInv5 = this.gitInv5 || invert_default(this.git5);
+ this.gitInv6 = this.gitInv6 || invert_default(this.git6);
+ this.gitInv7 = this.gitInv7 || invert_default(this.git7);
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert_default(this.labelTextColor);
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert_default(this.labelTextColor);
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys3 = Object.keys(overrides);
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
+ this.updateColors();
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
+ }
+ };
+ getThemeVariables4 = /* @__PURE__ */ __name((userOverrides) => {
+ const theme = new Theme4();
+ theme.calculate(userOverrides);
+ return theme;
+ }, "getThemeVariables");
}
- function parseShortMonth(d, string, i2) {
- var n = shortMonthRe.exec(string.slice(i2));
- return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
+ });
+
+ // src/themes/theme-neutral.js
+ var Theme5, getThemeVariables5;
+ var init_theme_neutral = __esm({
+ "src/themes/theme-neutral.js"() {
+ "use strict";
+ init_dist();
+ init_theme_helpers();
+ init_erDiagram_oldHardcodedValues();
+ Theme5 = class {
+ static {
+ __name(this, "Theme");
+ }
+ constructor() {
+ this.primaryColor = "#eee";
+ this.contrast = "#707070";
+ this.secondaryColor = lighten_default(this.contrast, 55);
+ this.background = "#ffffff";
+ this.tertiaryColor = adjust_default(this.primaryColor, { h: -160 });
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
+ this.primaryTextColor = invert_default(this.primaryColor);
+ this.secondaryTextColor = invert_default(this.secondaryColor);
+ this.tertiaryTextColor = invert_default(this.tertiaryColor);
+ this.lineColor = invert_default(this.background);
+ this.textColor = invert_default(this.background);
+ this.mainBkg = "#eee";
+ this.secondBkg = "calculated";
+ this.lineColor = "#666";
+ this.border1 = "#999";
+ this.border2 = "calculated";
+ this.note = "#ffa";
+ this.text = "#333";
+ this.critical = "#d42";
+ this.done = "#bbb";
+ this.arrowheadColor = "#333333";
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
+ this.fontSize = "16px";
+ this.THEME_COLOR_LIMIT = 12;
+ this.nodeBkg = "calculated";
+ this.nodeBorder = "calculated";
+ this.clusterBkg = "calculated";
+ this.clusterBorder = "calculated";
+ this.defaultLinkColor = "calculated";
+ this.titleColor = "calculated";
+ this.edgeLabelBackground = "white";
+ this.actorBorder = "calculated";
+ this.actorBkg = "calculated";
+ this.actorTextColor = "calculated";
+ this.actorLineColor = this.actorBorder;
+ this.signalColor = "calculated";
+ this.signalTextColor = "calculated";
+ this.labelBoxBkgColor = "calculated";
+ this.labelBoxBorderColor = "calculated";
+ this.labelTextColor = "calculated";
+ this.loopTextColor = "calculated";
+ this.noteBorderColor = "calculated";
+ this.noteBkgColor = "calculated";
+ this.noteTextColor = "calculated";
+ this.activationBorderColor = "#666";
+ this.activationBkgColor = "#f4f4f4";
+ this.sequenceNumberColor = "white";
+ this.sectionBkgColor = "calculated";
+ this.altSectionBkgColor = "white";
+ this.sectionBkgColor2 = "calculated";
+ this.excludeBkgColor = "#eeeeee";
+ this.taskBorderColor = "calculated";
+ this.taskBkgColor = "calculated";
+ this.taskTextLightColor = "white";
+ this.taskTextColor = "calculated";
+ this.taskTextDarkColor = "calculated";
+ this.taskTextOutsideColor = "calculated";
+ this.taskTextClickableColor = "#003163";
+ this.activeTaskBorderColor = "calculated";
+ this.activeTaskBkgColor = "calculated";
+ this.gridColor = "calculated";
+ this.doneTaskBkgColor = "calculated";
+ this.doneTaskBorderColor = "calculated";
+ this.critBkgColor = "calculated";
+ this.critBorderColor = "calculated";
+ this.todayLineColor = "calculated";
+ this.personBorder = this.primaryBorderColor;
+ this.personBkg = this.mainBkg;
+ this.archEdgeColor = "calculated";
+ this.archEdgeArrowColor = "calculated";
+ this.archEdgeWidth = "3";
+ this.archGroupBorderColor = this.primaryBorderColor;
+ this.archGroupBorderWidth = "2px";
+ this.labelColor = "black";
+ this.errorBkgColor = "#552222";
+ this.errorTextColor = "#552222";
+ }
+ updateColors() {
+ this.secondBkg = lighten_default(this.contrast, 55);
+ this.border2 = this.contrast;
+ this.actorBorder = lighten_default(this.border1, 23);
+ this.actorBkg = this.mainBkg;
+ this.actorTextColor = this.text;
+ this.actorLineColor = this.actorBorder;
+ this.signalColor = this.text;
+ this.signalTextColor = this.text;
+ this.labelBoxBkgColor = this.actorBkg;
+ this.labelBoxBorderColor = this.actorBorder;
+ this.labelTextColor = this.text;
+ this.loopTextColor = this.text;
+ this.noteBorderColor = "#999";
+ this.noteBkgColor = "#666";
+ this.noteTextColor = "#fff";
+ this.cScale0 = this.cScale0 || "#555";
+ this.cScale1 = this.cScale1 || "#F4F4F4";
+ this.cScale2 = this.cScale2 || "#555";
+ this.cScale3 = this.cScale3 || "#BBB";
+ this.cScale4 = this.cScale4 || "#777";
+ this.cScale5 = this.cScale5 || "#999";
+ this.cScale6 = this.cScale6 || "#DDD";
+ this.cScale7 = this.cScale7 || "#FFF";
+ this.cScale8 = this.cScale8 || "#DDD";
+ this.cScale9 = this.cScale9 || "#BBB";
+ this.cScale10 = this.cScale10 || "#999";
+ this.cScale11 = this.cScale11 || "#777";
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert_default(this["cScale" + i2]);
+ }
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ if (this.darkMode) {
+ this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten_default(this["cScale" + i2], 10);
+ } else {
+ this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken_default(this["cScale" + i2], 10);
+ }
+ }
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
+ this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1;
+ this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
+ }
+ for (let i2 = 0; i2 < 5; i2++) {
+ this["surface" + i2] = this["surface" + i2] || adjust_default(this.mainBkg, { l: -(5 + i2 * 5) });
+ this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust_default(this.mainBkg, { l: -(8 + i2 * 5) });
+ }
+ this.nodeBkg = this.mainBkg;
+ this.nodeBorder = this.border1;
+ this.clusterBkg = this.secondBkg;
+ this.clusterBorder = this.border2;
+ this.defaultLinkColor = this.lineColor;
+ this.titleColor = this.text;
+ this.sectionBkgColor = lighten_default(this.contrast, 30);
+ this.sectionBkgColor2 = lighten_default(this.contrast, 30);
+ this.taskBorderColor = darken_default(this.contrast, 10);
+ this.taskBkgColor = this.contrast;
+ this.taskTextColor = this.taskTextLightColor;
+ this.taskTextDarkColor = this.text;
+ this.taskTextOutsideColor = this.taskTextDarkColor;
+ this.activeTaskBorderColor = this.taskBorderColor;
+ this.activeTaskBkgColor = this.mainBkg;
+ this.gridColor = lighten_default(this.border1, 30);
+ this.doneTaskBkgColor = this.done;
+ this.doneTaskBorderColor = this.lineColor;
+ this.critBkgColor = this.critical;
+ this.critBorderColor = darken_default(this.critBkgColor, 10);
+ this.todayLineColor = this.critBkgColor;
+ this.archEdgeColor = this.lineColor;
+ this.archEdgeArrowColor = this.lineColor;
+ this.transitionColor = this.transitionColor || "#000";
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
+ this.stateBkg = this.stateBkg || this.mainBkg;
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
+ this.altBackground = this.altBackground || "#f4f4f4";
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
+ this.stateBorder = this.stateBorder || "#000";
+ this.innerEndBackground = this.primaryBorderColor;
+ this.specialStateColor = "#222";
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
+ this.classText = this.primaryTextColor;
+ this.fillType0 = this.primaryColor;
+ this.fillType1 = this.secondaryColor;
+ this.fillType2 = adjust_default(this.primaryColor, { h: 64 });
+ this.fillType3 = adjust_default(this.secondaryColor, { h: 64 });
+ this.fillType4 = adjust_default(this.primaryColor, { h: -64 });
+ this.fillType5 = adjust_default(this.secondaryColor, { h: -64 });
+ this.fillType6 = adjust_default(this.primaryColor, { h: 128 });
+ this.fillType7 = adjust_default(this.secondaryColor, { h: 128 });
+ for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
+ this["pie" + i2] = this["cScale" + i2];
+ }
+ this.pie12 = this.pie0;
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
+ this.pieStrokeColor = this.pieStrokeColor || "black";
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
+ this.pieOpacity = this.pieOpacity || "0.7";
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
+ this.quadrant2Fill = this.quadrant2Fill || adjust_default(this.primaryColor, { r: 5, g: 5, b: 5 });
+ this.quadrant3Fill = this.quadrant3Fill || adjust_default(this.primaryColor, { r: 10, g: 10, b: 10 });
+ this.quadrant4Fill = this.quadrant4Fill || adjust_default(this.primaryColor, { r: 15, g: 15, b: 15 });
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust_default(this.primaryTextColor, { r: -5, g: -5, b: -5 });
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust_default(this.primaryTextColor, { r: -10, g: -10, b: -10 });
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust_default(this.primaryTextColor, { r: -15, g: -15, b: -15 });
+ this.quadrantPointFill = this.quadrantPointFill || is_dark_default(this.quadrant1Fill) ? lighten_default(this.quadrant1Fill) : darken_default(this.quadrant1Fill);
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
+ this.xyChart = {
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
+ plotColorPalette: this.xyChart?.plotColorPalette || "#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0"
+ };
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
+ this.requirementBorderSize = this.requirementBorderSize || "1";
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
+ this.relationColor = this.relationColor || this.lineColor;
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
+ this.git0 = darken_default(this.pie1, 25) || this.primaryColor;
+ this.git1 = this.pie2 || this.secondaryColor;
+ this.git2 = this.pie3 || this.tertiaryColor;
+ this.git3 = this.pie4 || adjust_default(this.primaryColor, { h: -30 });
+ this.git4 = this.pie5 || adjust_default(this.primaryColor, { h: -60 });
+ this.git5 = this.pie6 || adjust_default(this.primaryColor, { h: -90 });
+ this.git6 = this.pie7 || adjust_default(this.primaryColor, { h: 60 });
+ this.git7 = this.pie8 || adjust_default(this.primaryColor, { h: 120 });
+ this.gitInv0 = this.gitInv0 || invert_default(this.git0);
+ this.gitInv1 = this.gitInv1 || invert_default(this.git1);
+ this.gitInv2 = this.gitInv2 || invert_default(this.git2);
+ this.gitInv3 = this.gitInv3 || invert_default(this.git3);
+ this.gitInv4 = this.gitInv4 || invert_default(this.git4);
+ this.gitInv5 = this.gitInv5 || invert_default(this.git5);
+ this.gitInv6 = this.gitInv6 || invert_default(this.git6);
+ this.gitInv7 = this.gitInv7 || invert_default(this.git7);
+ this.branchLabelColor = this.branchLabelColor || this.labelTextColor;
+ this.gitBranchLabel0 = this.branchLabelColor;
+ this.gitBranchLabel1 = "white";
+ this.gitBranchLabel2 = this.branchLabelColor;
+ this.gitBranchLabel3 = "white";
+ this.gitBranchLabel4 = this.branchLabelColor;
+ this.gitBranchLabel5 = this.branchLabelColor;
+ this.gitBranchLabel6 = this.branchLabelColor;
+ this.gitBranchLabel7 = this.branchLabelColor;
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
+ }
+ calculate(overrides) {
+ if (typeof overrides !== "object") {
+ this.updateColors();
+ return;
+ }
+ const keys3 = Object.keys(overrides);
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
+ this.updateColors();
+ keys3.forEach((k2) => {
+ this[k2] = overrides[k2];
+ });
+ }
+ };
+ getThemeVariables5 = /* @__PURE__ */ __name((userOverrides) => {
+ const theme = new Theme5();
+ theme.calculate(userOverrides);
+ return theme;
+ }, "getThemeVariables");
}
- function parseMonth(d, string, i2) {
- var n = monthRe.exec(string.slice(i2));
- return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
+ });
+
+ // src/themes/index.js
+ var themes_default;
+ var init_themes = __esm({
+ "src/themes/index.js"() {
+ "use strict";
+ init_theme_base();
+ init_theme_dark();
+ init_theme_default();
+ init_theme_forest();
+ init_theme_neutral();
+ themes_default = {
+ base: {
+ getThemeVariables
+ },
+ dark: {
+ getThemeVariables: getThemeVariables2
+ },
+ default: {
+ getThemeVariables: getThemeVariables3
+ },
+ forest: {
+ getThemeVariables: getThemeVariables4
+ },
+ neutral: {
+ getThemeVariables: getThemeVariables5
+ }
+ };
}
- function parseLocaleDateTime(d, string, i2) {
- return parseSpecifier(d, locale_dateTime, string, i2);
+ });
+
+ // src/schemas/config.schema.yaml?only-defaults=true
+ var config_schema_default;
+ var init_config_schema = __esm({
+ "src/schemas/config.schema.yaml?only-defaults=true"() {
+ "use strict";
+ config_schema_default = {
+ "flowchart": {
+ "useMaxWidth": true,
+ "titleTopMargin": 25,
+ "subGraphTitleMargin": {
+ "top": 0,
+ "bottom": 0
+ },
+ "diagramPadding": 8,
+ "htmlLabels": true,
+ "nodeSpacing": 50,
+ "rankSpacing": 50,
+ "curve": "basis",
+ "padding": 15,
+ "defaultRenderer": "dagre-wrapper",
+ "wrappingWidth": 200
+ },
+ "sequence": {
+ "useMaxWidth": true,
+ "hideUnusedParticipants": false,
+ "activationWidth": 10,
+ "diagramMarginX": 50,
+ "diagramMarginY": 10,
+ "actorMargin": 50,
+ "width": 150,
+ "height": 65,
+ "boxMargin": 10,
+ "boxTextMargin": 5,
+ "noteMargin": 10,
+ "messageMargin": 35,
+ "messageAlign": "center",
+ "mirrorActors": true,
+ "forceMenus": false,
+ "bottomMarginAdj": 1,
+ "rightAngles": false,
+ "showSequenceNumbers": false,
+ "actorFontSize": 14,
+ "actorFontFamily": '"Open Sans", sans-serif',
+ "actorFontWeight": 400,
+ "noteFontSize": 14,
+ "noteFontFamily": '"trebuchet ms", verdana, arial, sans-serif',
+ "noteFontWeight": 400,
+ "noteAlign": "center",
+ "messageFontSize": 16,
+ "messageFontFamily": '"trebuchet ms", verdana, arial, sans-serif',
+ "messageFontWeight": 400,
+ "wrap": false,
+ "wrapPadding": 10,
+ "labelBoxWidth": 50,
+ "labelBoxHeight": 20
+ },
+ "gantt": {
+ "useMaxWidth": true,
+ "titleTopMargin": 25,
+ "barHeight": 20,
+ "barGap": 4,
+ "topPadding": 50,
+ "rightPadding": 75,
+ "leftPadding": 75,
+ "gridLineStartPadding": 35,
+ "fontSize": 11,
+ "sectionFontSize": 11,
+ "numberSectionStyles": 4,
+ "axisFormat": "%Y-%m-%d",
+ "topAxis": false,
+ "displayMode": "",
+ "weekday": "sunday"
+ },
+ "journey": {
+ "useMaxWidth": true,
+ "diagramMarginX": 50,
+ "diagramMarginY": 10,
+ "leftMargin": 150,
+ "width": 150,
+ "height": 50,
+ "boxMargin": 10,
+ "boxTextMargin": 5,
+ "noteMargin": 10,
+ "messageMargin": 35,
+ "messageAlign": "center",
+ "bottomMarginAdj": 1,
+ "rightAngles": false,
+ "taskFontSize": 14,
+ "taskFontFamily": '"Open Sans", sans-serif',
+ "taskMargin": 50,
+ "activationWidth": 10,
+ "textPlacement": "fo",
+ "actorColours": [
+ "#8FBC8F",
+ "#7CFC00",
+ "#00FFFF",
+ "#20B2AA",
+ "#B0E0E6",
+ "#FFFFE0"
+ ],
+ "sectionFills": [
+ "#191970",
+ "#8B008B",
+ "#4B0082",
+ "#2F4F4F",
+ "#800000",
+ "#8B4513",
+ "#00008B"
+ ],
+ "sectionColours": [
+ "#fff"
+ ]
+ },
+ "class": {
+ "useMaxWidth": true,
+ "titleTopMargin": 25,
+ "arrowMarkerAbsolute": false,
+ "dividerMargin": 10,
+ "padding": 5,
+ "textHeight": 10,
+ "defaultRenderer": "dagre-wrapper",
+ "htmlLabels": false
+ },
+ "state": {
+ "useMaxWidth": true,
+ "titleTopMargin": 25,
+ "dividerMargin": 10,
+ "sizeUnit": 5,
+ "padding": 8,
+ "textHeight": 10,
+ "titleShift": -15,
+ "noteMargin": 10,
+ "forkWidth": 70,
+ "forkHeight": 7,
+ "miniPadding": 2,
+ "fontSizeFactor": 5.02,
+ "fontSize": 24,
+ "labelHeight": 16,
+ "edgeLengthFactor": "20",
+ "compositTitleSize": 35,
+ "radius": 5,
+ "defaultRenderer": "dagre-wrapper"
+ },
+ "er": {
+ "useMaxWidth": true,
+ "titleTopMargin": 25,
+ "diagramPadding": 20,
+ "layoutDirection": "TB",
+ "minEntityWidth": 100,
+ "minEntityHeight": 75,
+ "entityPadding": 15,
+ "stroke": "gray",
+ "fill": "honeydew",
+ "fontSize": 12
+ },
+ "pie": {
+ "useMaxWidth": true,
+ "textPosition": 0.75
+ },
+ "quadrantChart": {
+ "useMaxWidth": true,
+ "chartWidth": 500,
+ "chartHeight": 500,
+ "titleFontSize": 20,
+ "titlePadding": 10,
+ "quadrantPadding": 5,
+ "xAxisLabelPadding": 5,
+ "yAxisLabelPadding": 5,
+ "xAxisLabelFontSize": 16,
+ "yAxisLabelFontSize": 16,
+ "quadrantLabelFontSize": 16,
+ "quadrantTextTopPadding": 5,
+ "pointTextPadding": 5,
+ "pointLabelFontSize": 12,
+ "pointRadius": 5,
+ "xAxisPosition": "top",
+ "yAxisPosition": "left",
+ "quadrantInternalBorderStrokeWidth": 1,
+ "quadrantExternalBorderStrokeWidth": 2
+ },
+ "xyChart": {
+ "useMaxWidth": true,
+ "width": 700,
+ "height": 500,
+ "titleFontSize": 20,
+ "titlePadding": 10,
+ "showTitle": true,
+ "xAxis": {
+ "$ref": "#/$defs/XYChartAxisConfig",
+ "showLabel": true,
+ "labelFontSize": 14,
+ "labelPadding": 5,
+ "showTitle": true,
+ "titleFontSize": 16,
+ "titlePadding": 5,
+ "showTick": true,
+ "tickLength": 5,
+ "tickWidth": 2,
+ "showAxisLine": true,
+ "axisLineWidth": 2
+ },
+ "yAxis": {
+ "$ref": "#/$defs/XYChartAxisConfig",
+ "showLabel": true,
+ "labelFontSize": 14,
+ "labelPadding": 5,
+ "showTitle": true,
+ "titleFontSize": 16,
+ "titlePadding": 5,
+ "showTick": true,
+ "tickLength": 5,
+ "tickWidth": 2,
+ "showAxisLine": true,
+ "axisLineWidth": 2
+ },
+ "chartOrientation": "vertical",
+ "plotReservedSpacePercent": 50
+ },
+ "requirement": {
+ "useMaxWidth": true,
+ "rect_fill": "#f9f9f9",
+ "text_color": "#333",
+ "rect_border_size": "0.5px",
+ "rect_border_color": "#bbb",
+ "rect_min_width": 200,
+ "rect_min_height": 200,
+ "fontSize": 14,
+ "rect_padding": 10,
+ "line_height": 20
+ },
+ "mindmap": {
+ "useMaxWidth": true,
+ "padding": 10,
+ "maxNodeWidth": 200
+ },
+ "timeline": {
+ "useMaxWidth": true,
+ "diagramMarginX": 50,
+ "diagramMarginY": 10,
+ "leftMargin": 150,
+ "width": 150,
+ "height": 50,
+ "boxMargin": 10,
+ "boxTextMargin": 5,
+ "noteMargin": 10,
+ "messageMargin": 35,
+ "messageAlign": "center",
+ "bottomMarginAdj": 1,
+ "rightAngles": false,
+ "taskFontSize": 14,
+ "taskFontFamily": '"Open Sans", sans-serif',
+ "taskMargin": 50,
+ "activationWidth": 10,
+ "textPlacement": "fo",
+ "actorColours": [
+ "#8FBC8F",
+ "#7CFC00",
+ "#00FFFF",
+ "#20B2AA",
+ "#B0E0E6",
+ "#FFFFE0"
+ ],
+ "sectionFills": [
+ "#191970",
+ "#8B008B",
+ "#4B0082",
+ "#2F4F4F",
+ "#800000",
+ "#8B4513",
+ "#00008B"
+ ],
+ "sectionColours": [
+ "#fff"
+ ],
+ "disableMulticolor": false
+ },
+ "gitGraph": {
+ "useMaxWidth": true,
+ "titleTopMargin": 25,
+ "diagramPadding": 8,
+ "nodeLabel": {
+ "width": 75,
+ "height": 100,
+ "x": -25,
+ "y": 0
+ },
+ "mainBranchName": "main",
+ "mainBranchOrder": 0,
+ "showCommitLabel": true,
+ "showBranches": true,
+ "rotateCommitLabel": true,
+ "parallelCommits": false,
+ "arrowMarkerAbsolute": false
+ },
+ "c4": {
+ "useMaxWidth": true,
+ "diagramMarginX": 50,
+ "diagramMarginY": 10,
+ "c4ShapeMargin": 50,
+ "c4ShapePadding": 20,
+ "width": 216,
+ "height": 60,
+ "boxMargin": 10,
+ "c4ShapeInRow": 4,
+ "nextLinePaddingX": 0,
+ "c4BoundaryInRow": 2,
+ "personFontSize": 14,
+ "personFontFamily": '"Open Sans", sans-serif',
+ "personFontWeight": "normal",
+ "external_personFontSize": 14,
+ "external_personFontFamily": '"Open Sans", sans-serif',
+ "external_personFontWeight": "normal",
+ "systemFontSize": 14,
+ "systemFontFamily": '"Open Sans", sans-serif',
+ "systemFontWeight": "normal",
+ "external_systemFontSize": 14,
+ "external_systemFontFamily": '"Open Sans", sans-serif',
+ "external_systemFontWeight": "normal",
+ "system_dbFontSize": 14,
+ "system_dbFontFamily": '"Open Sans", sans-serif',
+ "system_dbFontWeight": "normal",
+ "external_system_dbFontSize": 14,
+ "external_system_dbFontFamily": '"Open Sans", sans-serif',
+ "external_system_dbFontWeight": "normal",
+ "system_queueFontSize": 14,
+ "system_queueFontFamily": '"Open Sans", sans-serif',
+ "system_queueFontWeight": "normal",
+ "external_system_queueFontSize": 14,
+ "external_system_queueFontFamily": '"Open Sans", sans-serif',
+ "external_system_queueFontWeight": "normal",
+ "boundaryFontSize": 14,
+ "boundaryFontFamily": '"Open Sans", sans-serif',
+ "boundaryFontWeight": "normal",
+ "messageFontSize": 12,
+ "messageFontFamily": '"Open Sans", sans-serif',
+ "messageFontWeight": "normal",
+ "containerFontSize": 14,
+ "containerFontFamily": '"Open Sans", sans-serif',
+ "containerFontWeight": "normal",
+ "external_containerFontSize": 14,
+ "external_containerFontFamily": '"Open Sans", sans-serif',
+ "external_containerFontWeight": "normal",
+ "container_dbFontSize": 14,
+ "container_dbFontFamily": '"Open Sans", sans-serif',
+ "container_dbFontWeight": "normal",
+ "external_container_dbFontSize": 14,
+ "external_container_dbFontFamily": '"Open Sans", sans-serif',
+ "external_container_dbFontWeight": "normal",
+ "container_queueFontSize": 14,
+ "container_queueFontFamily": '"Open Sans", sans-serif',
+ "container_queueFontWeight": "normal",
+ "external_container_queueFontSize": 14,
+ "external_container_queueFontFamily": '"Open Sans", sans-serif',
+ "external_container_queueFontWeight": "normal",
+ "componentFontSize": 14,
+ "componentFontFamily": '"Open Sans", sans-serif',
+ "componentFontWeight": "normal",
+ "external_componentFontSize": 14,
+ "external_componentFontFamily": '"Open Sans", sans-serif',
+ "external_componentFontWeight": "normal",
+ "component_dbFontSize": 14,
+ "component_dbFontFamily": '"Open Sans", sans-serif',
+ "component_dbFontWeight": "normal",
+ "external_component_dbFontSize": 14,
+ "external_component_dbFontFamily": '"Open Sans", sans-serif',
+ "external_component_dbFontWeight": "normal",
+ "component_queueFontSize": 14,
+ "component_queueFontFamily": '"Open Sans", sans-serif',
+ "component_queueFontWeight": "normal",
+ "external_component_queueFontSize": 14,
+ "external_component_queueFontFamily": '"Open Sans", sans-serif',
+ "external_component_queueFontWeight": "normal",
+ "wrap": true,
+ "wrapPadding": 10,
+ "person_bg_color": "#08427B",
+ "person_border_color": "#073B6F",
+ "external_person_bg_color": "#686868",
+ "external_person_border_color": "#8A8A8A",
+ "system_bg_color": "#1168BD",
+ "system_border_color": "#3C7FC0",
+ "system_db_bg_color": "#1168BD",
+ "system_db_border_color": "#3C7FC0",
+ "system_queue_bg_color": "#1168BD",
+ "system_queue_border_color": "#3C7FC0",
+ "external_system_bg_color": "#999999",
+ "external_system_border_color": "#8A8A8A",
+ "external_system_db_bg_color": "#999999",
+ "external_system_db_border_color": "#8A8A8A",
+ "external_system_queue_bg_color": "#999999",
+ "external_system_queue_border_color": "#8A8A8A",
+ "container_bg_color": "#438DD5",
+ "container_border_color": "#3C7FC0",
+ "container_db_bg_color": "#438DD5",
+ "container_db_border_color": "#3C7FC0",
+ "container_queue_bg_color": "#438DD5",
+ "container_queue_border_color": "#3C7FC0",
+ "external_container_bg_color": "#B3B3B3",
+ "external_container_border_color": "#A6A6A6",
+ "external_container_db_bg_color": "#B3B3B3",
+ "external_container_db_border_color": "#A6A6A6",
+ "external_container_queue_bg_color": "#B3B3B3",
+ "external_container_queue_border_color": "#A6A6A6",
+ "component_bg_color": "#85BBF0",
+ "component_border_color": "#78A8D8",
+ "component_db_bg_color": "#85BBF0",
+ "component_db_border_color": "#78A8D8",
+ "component_queue_bg_color": "#85BBF0",
+ "component_queue_border_color": "#78A8D8",
+ "external_component_bg_color": "#CCCCCC",
+ "external_component_border_color": "#BFBFBF",
+ "external_component_db_bg_color": "#CCCCCC",
+ "external_component_db_border_color": "#BFBFBF",
+ "external_component_queue_bg_color": "#CCCCCC",
+ "external_component_queue_border_color": "#BFBFBF"
+ },
+ "sankey": {
+ "useMaxWidth": true,
+ "width": 600,
+ "height": 400,
+ "linkColor": "gradient",
+ "nodeAlignment": "justify",
+ "showValues": true,
+ "prefix": "",
+ "suffix": ""
+ },
+ "block": {
+ "useMaxWidth": true,
+ "padding": 8
+ },
+ "packet": {
+ "useMaxWidth": true,
+ "rowHeight": 32,
+ "bitWidth": 32,
+ "bitsPerRow": 32,
+ "showBits": true,
+ "paddingX": 5,
+ "paddingY": 5
+ },
+ "architecture": {
+ "useMaxWidth": true,
+ "padding": 40,
+ "iconSize": 80,
+ "fontSize": 16
+ },
+ "theme": "default",
+ "look": "classic",
+ "handDrawnSeed": 0,
+ "layout": "dagre",
+ "maxTextSize": 5e4,
+ "maxEdges": 500,
+ "darkMode": false,
+ "fontFamily": '"trebuchet ms", verdana, arial, sans-serif;',
+ "logLevel": 5,
+ "securityLevel": "strict",
+ "startOnLoad": true,
+ "arrowMarkerAbsolute": false,
+ "secure": [
+ "secure",
+ "securityLevel",
+ "startOnLoad",
+ "maxTextSize",
+ "suppressErrorRendering",
+ "maxEdges"
+ ],
+ "legacyMathML": false,
+ "forceLegacyMathML": false,
+ "deterministicIds": false,
+ "fontSize": 16,
+ "markdownAutoWrap": true,
+ "suppressErrorRendering": false
+ };
}
- function parseLocaleDate(d, string, i2) {
- return parseSpecifier(d, locale_date, string, i2);
+ });
+
+ // src/defaultConfig.ts
+ var config, keyify, configKeys, defaultConfig_default;
+ var init_defaultConfig = __esm({
+ "src/defaultConfig.ts"() {
+ "use strict";
+ init_themes();
+ init_config_schema();
+ config = {
+ ...config_schema_default,
+ // Set, even though they're `undefined` so that `configKeys` finds these keys
+ // TODO: Should we replace these with `null` so that they can go in the JSON Schema?
+ deterministicIDSeed: void 0,
+ elk: {
+ mergeEdges: false,
+ nodePlacementStrategy: "SIMPLE"
+ },
+ themeCSS: void 0,
+ // add non-JSON default config values
+ themeVariables: themes_default.default.getThemeVariables(),
+ sequence: {
+ ...config_schema_default.sequence,
+ messageFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ }, "messageFont"),
+ noteFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.noteFontFamily,
+ fontSize: this.noteFontSize,
+ fontWeight: this.noteFontWeight
+ };
+ }, "noteFont"),
+ actorFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.actorFontFamily,
+ fontSize: this.actorFontSize,
+ fontWeight: this.actorFontWeight
+ };
+ }, "actorFont")
+ },
+ gantt: {
+ ...config_schema_default.gantt,
+ tickInterval: void 0,
+ useWidth: void 0
+ // can probably be removed since `configKeys` already includes this
+ },
+ c4: {
+ ...config_schema_default.c4,
+ useWidth: void 0,
+ personFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.personFontFamily,
+ fontSize: this.personFontSize,
+ fontWeight: this.personFontWeight
+ };
+ }, "personFont"),
+ external_personFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_personFontFamily,
+ fontSize: this.external_personFontSize,
+ fontWeight: this.external_personFontWeight
+ };
+ }, "external_personFont"),
+ systemFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.systemFontFamily,
+ fontSize: this.systemFontSize,
+ fontWeight: this.systemFontWeight
+ };
+ }, "systemFont"),
+ external_systemFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_systemFontFamily,
+ fontSize: this.external_systemFontSize,
+ fontWeight: this.external_systemFontWeight
+ };
+ }, "external_systemFont"),
+ system_dbFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.system_dbFontFamily,
+ fontSize: this.system_dbFontSize,
+ fontWeight: this.system_dbFontWeight
+ };
+ }, "system_dbFont"),
+ external_system_dbFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_system_dbFontFamily,
+ fontSize: this.external_system_dbFontSize,
+ fontWeight: this.external_system_dbFontWeight
+ };
+ }, "external_system_dbFont"),
+ system_queueFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.system_queueFontFamily,
+ fontSize: this.system_queueFontSize,
+ fontWeight: this.system_queueFontWeight
+ };
+ }, "system_queueFont"),
+ external_system_queueFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_system_queueFontFamily,
+ fontSize: this.external_system_queueFontSize,
+ fontWeight: this.external_system_queueFontWeight
+ };
+ }, "external_system_queueFont"),
+ containerFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.containerFontFamily,
+ fontSize: this.containerFontSize,
+ fontWeight: this.containerFontWeight
+ };
+ }, "containerFont"),
+ external_containerFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_containerFontFamily,
+ fontSize: this.external_containerFontSize,
+ fontWeight: this.external_containerFontWeight
+ };
+ }, "external_containerFont"),
+ container_dbFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.container_dbFontFamily,
+ fontSize: this.container_dbFontSize,
+ fontWeight: this.container_dbFontWeight
+ };
+ }, "container_dbFont"),
+ external_container_dbFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_container_dbFontFamily,
+ fontSize: this.external_container_dbFontSize,
+ fontWeight: this.external_container_dbFontWeight
+ };
+ }, "external_container_dbFont"),
+ container_queueFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.container_queueFontFamily,
+ fontSize: this.container_queueFontSize,
+ fontWeight: this.container_queueFontWeight
+ };
+ }, "container_queueFont"),
+ external_container_queueFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_container_queueFontFamily,
+ fontSize: this.external_container_queueFontSize,
+ fontWeight: this.external_container_queueFontWeight
+ };
+ }, "external_container_queueFont"),
+ componentFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.componentFontFamily,
+ fontSize: this.componentFontSize,
+ fontWeight: this.componentFontWeight
+ };
+ }, "componentFont"),
+ external_componentFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_componentFontFamily,
+ fontSize: this.external_componentFontSize,
+ fontWeight: this.external_componentFontWeight
+ };
+ }, "external_componentFont"),
+ component_dbFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.component_dbFontFamily,
+ fontSize: this.component_dbFontSize,
+ fontWeight: this.component_dbFontWeight
+ };
+ }, "component_dbFont"),
+ external_component_dbFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_component_dbFontFamily,
+ fontSize: this.external_component_dbFontSize,
+ fontWeight: this.external_component_dbFontWeight
+ };
+ }, "external_component_dbFont"),
+ component_queueFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.component_queueFontFamily,
+ fontSize: this.component_queueFontSize,
+ fontWeight: this.component_queueFontWeight
+ };
+ }, "component_queueFont"),
+ external_component_queueFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.external_component_queueFontFamily,
+ fontSize: this.external_component_queueFontSize,
+ fontWeight: this.external_component_queueFontWeight
+ };
+ }, "external_component_queueFont"),
+ boundaryFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.boundaryFontFamily,
+ fontSize: this.boundaryFontSize,
+ fontWeight: this.boundaryFontWeight
+ };
+ }, "boundaryFont"),
+ messageFont: /* @__PURE__ */ __name(function() {
+ return {
+ fontFamily: this.messageFontFamily,
+ fontSize: this.messageFontSize,
+ fontWeight: this.messageFontWeight
+ };
+ }, "messageFont")
+ },
+ pie: {
+ ...config_schema_default.pie,
+ useWidth: 984
+ },
+ xyChart: {
+ ...config_schema_default.xyChart,
+ useWidth: void 0
+ },
+ requirement: {
+ ...config_schema_default.requirement,
+ useWidth: void 0
+ },
+ packet: {
+ ...config_schema_default.packet
+ }
+ };
+ keyify = /* @__PURE__ */ __name((obj, prefix = "") => Object.keys(obj).reduce((res, el) => {
+ if (Array.isArray(obj[el])) {
+ return res;
+ } else if (typeof obj[el] === "object" && obj[el] !== null) {
+ return [...res, prefix + el, ...keyify(obj[el], "")];
+ }
+ return [...res, prefix + el];
+ }, []), "keyify");
+ configKeys = new Set(keyify(config, ""));
+ defaultConfig_default = config;
}
- function parseLocaleTime(d, string, i2) {
- return parseSpecifier(d, locale_time, string, i2);
+ });
+
+ // src/utils/sanitizeDirective.ts
+ var sanitizeDirective, sanitizeCss;
+ var init_sanitizeDirective = __esm({
+ "src/utils/sanitizeDirective.ts"() {
+ "use strict";
+ init_defaultConfig();
+ init_logger();
+ sanitizeDirective = /* @__PURE__ */ __name((args) => {
+ log.debug("sanitizeDirective called with", args);
+ if (typeof args !== "object" || args == null) {
+ return;
+ }
+ if (Array.isArray(args)) {
+ args.forEach((arg) => sanitizeDirective(arg));
+ return;
+ }
+ for (const key of Object.keys(args)) {
+ log.debug("Checking key", key);
+ if (key.startsWith("__") || key.includes("proto") || key.includes("constr") || !configKeys.has(key) || args[key] == null) {
+ log.debug("sanitize deleting key: ", key);
+ delete args[key];
+ continue;
+ }
+ if (typeof args[key] === "object") {
+ log.debug("sanitizing object", key);
+ sanitizeDirective(args[key]);
+ continue;
+ }
+ const cssMatchers = ["themeCSS", "fontFamily", "altFontFamily"];
+ for (const cssKey of cssMatchers) {
+ if (key.includes(cssKey)) {
+ log.debug("sanitizing css option", key);
+ args[key] = sanitizeCss(args[key]);
+ }
+ }
+ }
+ if (args.themeVariables) {
+ for (const k2 of Object.keys(args.themeVariables)) {
+ const val = args.themeVariables[k2];
+ if (val?.match && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) {
+ args.themeVariables[k2] = "";
+ }
+ }
+ }
+ log.debug("After sanitization", args);
+ }, "sanitizeDirective");
+ sanitizeCss = /* @__PURE__ */ __name((str2) => {
+ let startCnt = 0;
+ let endCnt = 0;
+ for (const element3 of str2) {
+ if (startCnt < endCnt) {
+ return "{ /* ERROR: Unbalanced CSS */ }";
+ }
+ if (element3 === "{") {
+ startCnt++;
+ } else if (element3 === "}") {
+ endCnt++;
+ }
+ }
+ if (startCnt !== endCnt) {
+ return "{ /* ERROR: Unbalanced CSS */ }";
+ }
+ return str2;
+ }, "sanitizeCss");
}
- function formatShortWeekday(d) {
- return locale_shortWeekdays[d.getDay()];
+ });
+
+ // src/config.ts
+ var defaultConfig, siteConfig, configFromInitialize, directives, currentConfig, updateCurrentConfig, setSiteConfig, saveConfigFromInitialize, updateSiteConfig, getSiteConfig, setConfig, getConfig, sanitize, addDirective, reset, ConfigWarning, issuedWarnings, issueWarning, checkConfig;
+ var init_config = __esm({
+ "src/config.ts"() {
+ "use strict";
+ init_assignWithDepth();
+ init_logger();
+ init_themes();
+ init_defaultConfig();
+ init_sanitizeDirective();
+ defaultConfig = Object.freeze(defaultConfig_default);
+ siteConfig = assignWithDepth_default({}, defaultConfig);
+ directives = [];
+ currentConfig = assignWithDepth_default({}, defaultConfig);
+ updateCurrentConfig = /* @__PURE__ */ __name((siteCfg, _directives) => {
+ let cfg = assignWithDepth_default({}, siteCfg);
+ let sumOfDirectives = {};
+ for (const d2 of _directives) {
+ sanitize(d2);
+ sumOfDirectives = assignWithDepth_default(sumOfDirectives, d2);
+ }
+ cfg = assignWithDepth_default(cfg, sumOfDirectives);
+ if (sumOfDirectives.theme && sumOfDirectives.theme in themes_default) {
+ const tmpConfigFromInitialize = assignWithDepth_default({}, configFromInitialize);
+ const themeVariables = assignWithDepth_default(
+ tmpConfigFromInitialize.themeVariables || {},
+ sumOfDirectives.themeVariables
+ );
+ if (cfg.theme && cfg.theme in themes_default) {
+ cfg.themeVariables = themes_default[cfg.theme].getThemeVariables(themeVariables);
+ }
+ }
+ currentConfig = cfg;
+ checkConfig(currentConfig);
+ return currentConfig;
+ }, "updateCurrentConfig");
+ setSiteConfig = /* @__PURE__ */ __name((conf8) => {
+ siteConfig = assignWithDepth_default({}, defaultConfig);
+ siteConfig = assignWithDepth_default(siteConfig, conf8);
+ if (conf8.theme && themes_default[conf8.theme]) {
+ siteConfig.themeVariables = themes_default[conf8.theme].getThemeVariables(conf8.themeVariables);
+ }
+ updateCurrentConfig(siteConfig, directives);
+ return siteConfig;
+ }, "setSiteConfig");
+ saveConfigFromInitialize = /* @__PURE__ */ __name((conf8) => {
+ configFromInitialize = assignWithDepth_default({}, conf8);
+ }, "saveConfigFromInitialize");
+ updateSiteConfig = /* @__PURE__ */ __name((conf8) => {
+ siteConfig = assignWithDepth_default(siteConfig, conf8);
+ updateCurrentConfig(siteConfig, directives);
+ return siteConfig;
+ }, "updateSiteConfig");
+ getSiteConfig = /* @__PURE__ */ __name(() => {
+ return assignWithDepth_default({}, siteConfig);
+ }, "getSiteConfig");
+ setConfig = /* @__PURE__ */ __name((conf8) => {
+ checkConfig(conf8);
+ assignWithDepth_default(currentConfig, conf8);
+ return getConfig();
+ }, "setConfig");
+ getConfig = /* @__PURE__ */ __name(() => {
+ return assignWithDepth_default({}, currentConfig);
+ }, "getConfig");
+ sanitize = /* @__PURE__ */ __name((options3) => {
+ if (!options3) {
+ return;
+ }
+ ["secure", ...siteConfig.secure ?? []].forEach((key) => {
+ if (Object.hasOwn(options3, key)) {
+ log.debug(`Denied attempt to modify a secure key ${key}`, options3[key]);
+ delete options3[key];
+ }
+ });
+ Object.keys(options3).forEach((key) => {
+ if (key.startsWith("__")) {
+ delete options3[key];
+ }
+ });
+ Object.keys(options3).forEach((key) => {
+ if (typeof options3[key] === "string" && (options3[key].includes("<") || options3[key].includes(">") || options3[key].includes("url(data:"))) {
+ delete options3[key];
+ }
+ if (typeof options3[key] === "object") {
+ sanitize(options3[key]);
+ }
+ });
+ }, "sanitize");
+ addDirective = /* @__PURE__ */ __name((directive) => {
+ sanitizeDirective(directive);
+ if (directive.fontFamily && !directive.themeVariables?.fontFamily) {
+ directive.themeVariables = {
+ ...directive.themeVariables,
+ fontFamily: directive.fontFamily
+ };
+ }
+ directives.push(directive);
+ updateCurrentConfig(siteConfig, directives);
+ }, "addDirective");
+ reset = /* @__PURE__ */ __name((config6 = siteConfig) => {
+ directives = [];
+ updateCurrentConfig(config6, directives);
+ }, "reset");
+ ConfigWarning = {
+ LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."
+ };
+ issuedWarnings = {};
+ issueWarning = /* @__PURE__ */ __name((warning) => {
+ if (issuedWarnings[warning]) {
+ return;
+ }
+ log.warn(ConfigWarning[warning]);
+ issuedWarnings[warning] = true;
+ }, "issueWarning");
+ checkConfig = /* @__PURE__ */ __name((config6) => {
+ if (!config6) {
+ return;
+ }
+ if (config6.lazyLoadedDiagrams || config6.loadExternalDiagramsAtStartup) {
+ issueWarning("LAZY_LOAD_DEPRECATED");
+ }
+ }, "checkConfig");
}
- function formatWeekday(d) {
- return locale_weekdays[d.getDay()];
+ });
+
+ // ../../node_modules/.pnpm/dompurify@3.1.6/node_modules/dompurify/dist/purify.js
+ var require_purify = __commonJS({
+ "../../node_modules/.pnpm/dompurify@3.1.6/node_modules/dompurify/dist/purify.js"(exports2, module2) {
+ "use strict";
+ (function(global2, factory) {
+ typeof exports2 === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.DOMPurify = factory());
+ })(exports2, function() {
+ "use strict";
+ const {
+ entries,
+ setPrototypeOf,
+ isFrozen,
+ getPrototypeOf,
+ getOwnPropertyDescriptor
+ } = Object;
+ let {
+ freeze,
+ seal,
+ create: create2
+ } = Object;
+ let {
+ apply: apply4,
+ construct
+ } = typeof Reflect !== "undefined" && Reflect;
+ if (!freeze) {
+ freeze = /* @__PURE__ */ __name(function freeze2(x5) {
+ return x5;
+ }, "freeze");
+ }
+ if (!seal) {
+ seal = /* @__PURE__ */ __name(function seal2(x5) {
+ return x5;
+ }, "seal");
+ }
+ if (!apply4) {
+ apply4 = /* @__PURE__ */ __name(function apply5(fun, thisValue, args) {
+ return fun.apply(thisValue, args);
+ }, "apply");
+ }
+ if (!construct) {
+ construct = /* @__PURE__ */ __name(function construct2(Func, args) {
+ return new Func(...args);
+ }, "construct");
+ }
+ const arrayForEach = unapply(Array.prototype.forEach);
+ const arrayPop = unapply(Array.prototype.pop);
+ const arrayPush2 = unapply(Array.prototype.push);
+ const stringToLowerCase = unapply(String.prototype.toLowerCase);
+ const stringToString = unapply(String.prototype.toString);
+ const stringMatch = unapply(String.prototype.match);
+ const stringReplace = unapply(String.prototype.replace);
+ const stringIndexOf = unapply(String.prototype.indexOf);
+ const stringTrim = unapply(String.prototype.trim);
+ const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
+ const regExpTest = unapply(RegExp.prototype.test);
+ const typeErrorCreate = unconstruct(TypeError);
+ function unapply(func) {
+ return function(thisArg) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+ return apply4(func, thisArg, args);
+ };
+ }
+ __name(unapply, "unapply");
+ function unconstruct(func) {
+ return function() {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+ return construct(func, args);
+ };
+ }
+ __name(unconstruct, "unconstruct");
+ function addToSet(set6, array4) {
+ let transformCaseFunc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : stringToLowerCase;
+ if (setPrototypeOf) {
+ setPrototypeOf(set6, null);
+ }
+ let l2 = array4.length;
+ while (l2--) {
+ let element3 = array4[l2];
+ if (typeof element3 === "string") {
+ const lcElement = transformCaseFunc(element3);
+ if (lcElement !== element3) {
+ if (!isFrozen(array4)) {
+ array4[l2] = lcElement;
+ }
+ element3 = lcElement;
+ }
+ }
+ set6[element3] = true;
+ }
+ return set6;
+ }
+ __name(addToSet, "addToSet");
+ function cleanArray(array4) {
+ for (let index = 0; index < array4.length; index++) {
+ const isPropertyExist = objectHasOwnProperty(array4, index);
+ if (!isPropertyExist) {
+ array4[index] = null;
+ }
+ }
+ return array4;
+ }
+ __name(cleanArray, "cleanArray");
+ function clone5(object3) {
+ const newObject = create2(null);
+ for (const [property2, value2] of entries(object3)) {
+ const isPropertyExist = objectHasOwnProperty(object3, property2);
+ if (isPropertyExist) {
+ if (Array.isArray(value2)) {
+ newObject[property2] = cleanArray(value2);
+ } else if (value2 && typeof value2 === "object" && value2.constructor === Object) {
+ newObject[property2] = clone5(value2);
+ } else {
+ newObject[property2] = value2;
+ }
+ }
+ }
+ return newObject;
+ }
+ __name(clone5, "clone");
+ function lookupGetter(object3, prop) {
+ while (object3 !== null) {
+ const desc = getOwnPropertyDescriptor(object3, prop);
+ if (desc) {
+ if (desc.get) {
+ return unapply(desc.get);
+ }
+ if (typeof desc.value === "function") {
+ return unapply(desc.value);
+ }
+ }
+ object3 = getPrototypeOf(object3);
+ }
+ function fallbackValue() {
+ return null;
+ }
+ __name(fallbackValue, "fallbackValue");
+ return fallbackValue;
+ }
+ __name(lookupGetter, "lookupGetter");
+ const html$1 = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]);
+ const svg$1 = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]);
+ const svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]);
+ const svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]);
+ const mathMl$1 = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]);
+ const mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]);
+ const text2 = freeze(["#text"]);
+ const html2 = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]);
+ const svg = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]);
+ const mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]);
+ const xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
+ const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
+ const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
+ const TMPLIT_EXPR = seal(/\${[\w\W]*}/gm);
+ const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/);
+ const ARIA_ATTR = seal(/^aria-[\-\w]+$/);
+ const IS_ALLOWED_URI = seal(
+ /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
+ // eslint-disable-line no-useless-escape
+ );
+ const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
+ const ATTR_WHITESPACE = seal(
+ /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
+ // eslint-disable-line no-control-regex
+ );
+ const DOCTYPE_NAME = seal(/^html$/i);
+ const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
+ var EXPRESSIONS = /* @__PURE__ */ Object.freeze({
+ __proto__: null,
+ MUSTACHE_EXPR,
+ ERB_EXPR,
+ TMPLIT_EXPR,
+ DATA_ATTR,
+ ARIA_ATTR,
+ IS_ALLOWED_URI,
+ IS_SCRIPT_OR_DATA,
+ ATTR_WHITESPACE,
+ DOCTYPE_NAME,
+ CUSTOM_ELEMENT
+ });
+ const NODE_TYPE = {
+ element: 1,
+ attribute: 2,
+ text: 3,
+ cdataSection: 4,
+ entityReference: 5,
+ // Deprecated
+ entityNode: 6,
+ // Deprecated
+ progressingInstruction: 7,
+ comment: 8,
+ document: 9,
+ documentType: 10,
+ documentFragment: 11,
+ notation: 12
+ // Deprecated
+ };
+ const getGlobal = /* @__PURE__ */ __name(function getGlobal2() {
+ return typeof window === "undefined" ? null : window;
+ }, "getGlobal");
+ const _createTrustedTypesPolicy = /* @__PURE__ */ __name(function _createTrustedTypesPolicy2(trustedTypes, purifyHostElement) {
+ if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function") {
+ return null;
+ }
+ let suffix = null;
+ const ATTR_NAME = "data-tt-policy-suffix";
+ if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {
+ suffix = purifyHostElement.getAttribute(ATTR_NAME);
+ }
+ const policyName = "dompurify" + (suffix ? "#" + suffix : "");
+ try {
+ return trustedTypes.createPolicy(policyName, {
+ createHTML(html3) {
+ return html3;
+ },
+ createScriptURL(scriptUrl) {
+ return scriptUrl;
+ }
+ });
+ } catch (_2) {
+ console.warn("TrustedTypes policy " + policyName + " could not be created.");
+ return null;
+ }
+ }, "_createTrustedTypesPolicy");
+ function createDOMPurify() {
+ let window3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
+ const DOMPurify3 = /* @__PURE__ */ __name((root4) => createDOMPurify(root4), "DOMPurify");
+ DOMPurify3.version = "3.1.6";
+ DOMPurify3.removed = [];
+ if (!window3 || !window3.document || window3.document.nodeType !== NODE_TYPE.document) {
+ DOMPurify3.isSupported = false;
+ return DOMPurify3;
+ }
+ let {
+ document: document2
+ } = window3;
+ const originalDocument = document2;
+ const currentScript = originalDocument.currentScript;
+ const {
+ DocumentFragment: DocumentFragment2,
+ HTMLTemplateElement,
+ Node,
+ Element: Element3,
+ NodeFilter,
+ NamedNodeMap = window3.NamedNodeMap || window3.MozNamedAttrMap,
+ HTMLFormElement,
+ DOMParser,
+ trustedTypes
+ } = window3;
+ const ElementPrototype = Element3.prototype;
+ const cloneNode = lookupGetter(ElementPrototype, "cloneNode");
+ const remove3 = lookupGetter(ElementPrototype, "remove");
+ const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
+ const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
+ const getParentNode = lookupGetter(ElementPrototype, "parentNode");
+ if (typeof HTMLTemplateElement === "function") {
+ const template = document2.createElement("template");
+ if (template.content && template.content.ownerDocument) {
+ document2 = template.content.ownerDocument;
+ }
+ }
+ let trustedTypesPolicy;
+ let emptyHTML = "";
+ const {
+ implementation,
+ createNodeIterator,
+ createDocumentFragment,
+ getElementsByTagName
+ } = document2;
+ const {
+ importNode
+ } = originalDocument;
+ let hooks = {};
+ DOMPurify3.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0;
+ const {
+ MUSTACHE_EXPR: MUSTACHE_EXPR2,
+ ERB_EXPR: ERB_EXPR2,
+ TMPLIT_EXPR: TMPLIT_EXPR2,
+ DATA_ATTR: DATA_ATTR2,
+ ARIA_ATTR: ARIA_ATTR2,
+ IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA2,
+ ATTR_WHITESPACE: ATTR_WHITESPACE2,
+ CUSTOM_ELEMENT: CUSTOM_ELEMENT2
+ } = EXPRESSIONS;
+ let {
+ IS_ALLOWED_URI: IS_ALLOWED_URI$1
+ } = EXPRESSIONS;
+ let ALLOWED_TAGS = null;
+ const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text2]);
+ let ALLOWED_ATTR = null;
+ const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html2, ...svg, ...mathMl, ...xml]);
+ let CUSTOM_ELEMENT_HANDLING = Object.seal(create2(null, {
+ tagNameCheck: {
+ writable: true,
+ configurable: false,
+ enumerable: true,
+ value: null
+ },
+ attributeNameCheck: {
+ writable: true,
+ configurable: false,
+ enumerable: true,
+ value: null
+ },
+ allowCustomizedBuiltInElements: {
+ writable: true,
+ configurable: false,
+ enumerable: true,
+ value: false
+ }
+ }));
+ let FORBID_TAGS = null;
+ let FORBID_ATTR = null;
+ let ALLOW_ARIA_ATTR = true;
+ let ALLOW_DATA_ATTR = true;
+ let ALLOW_UNKNOWN_PROTOCOLS = false;
+ let ALLOW_SELF_CLOSE_IN_ATTR = true;
+ let SAFE_FOR_TEMPLATES = false;
+ let SAFE_FOR_XML = true;
+ let WHOLE_DOCUMENT = false;
+ let SET_CONFIG = false;
+ let FORCE_BODY = false;
+ let RETURN_DOM = false;
+ let RETURN_DOM_FRAGMENT = false;
+ let RETURN_TRUSTED_TYPE = false;
+ let SANITIZE_DOM = true;
+ let SANITIZE_NAMED_PROPS = false;
+ const SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
+ let KEEP_CONTENT = true;
+ let IN_PLACE = false;
+ let USE_PROFILES = {};
+ let FORBID_CONTENTS = null;
+ const DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
+ let DATA_URI_TAGS = null;
+ const DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]);
+ let URI_SAFE_ATTRIBUTES = null;
+ const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]);
+ const MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
+ const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
+ const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
+ let NAMESPACE = HTML_NAMESPACE;
+ let IS_EMPTY_INPUT = false;
+ let ALLOWED_NAMESPACES = null;
+ const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
+ let PARSER_MEDIA_TYPE = null;
+ const SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
+ const DEFAULT_PARSER_MEDIA_TYPE = "text/html";
+ let transformCaseFunc = null;
+ let CONFIG = null;
+ const formElement = document2.createElement("form");
+ const isRegexOrFunction = /* @__PURE__ */ __name(function isRegexOrFunction2(testValue) {
+ return testValue instanceof RegExp || testValue instanceof Function;
+ }, "isRegexOrFunction");
+ const _parseConfig = /* @__PURE__ */ __name(function _parseConfig2() {
+ let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
+ if (CONFIG && CONFIG === cfg) {
+ return;
+ }
+ if (!cfg || typeof cfg !== "object") {
+ cfg = {};
+ }
+ cfg = clone5(cfg);
+ PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes
+ SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
+ transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
+ ALLOWED_TAGS = objectHasOwnProperty(cfg, "ALLOWED_TAGS") ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
+ ALLOWED_ATTR = objectHasOwnProperty(cfg, "ALLOWED_ATTR") ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
+ ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, "ALLOWED_NAMESPACES") ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
+ URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, "ADD_URI_SAFE_ATTR") ? addToSet(
+ clone5(DEFAULT_URI_SAFE_ATTRIBUTES),
+ // eslint-disable-line indent
+ cfg.ADD_URI_SAFE_ATTR,
+ // eslint-disable-line indent
+ transformCaseFunc
+ // eslint-disable-line indent
+ ) : DEFAULT_URI_SAFE_ATTRIBUTES;
+ DATA_URI_TAGS = objectHasOwnProperty(cfg, "ADD_DATA_URI_TAGS") ? addToSet(
+ clone5(DEFAULT_DATA_URI_TAGS),
+ // eslint-disable-line indent
+ cfg.ADD_DATA_URI_TAGS,
+ // eslint-disable-line indent
+ transformCaseFunc
+ // eslint-disable-line indent
+ ) : DEFAULT_DATA_URI_TAGS;
+ FORBID_CONTENTS = objectHasOwnProperty(cfg, "FORBID_CONTENTS") ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
+ FORBID_TAGS = objectHasOwnProperty(cfg, "FORBID_TAGS") ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
+ FORBID_ATTR = objectHasOwnProperty(cfg, "FORBID_ATTR") ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
+ USE_PROFILES = objectHasOwnProperty(cfg, "USE_PROFILES") ? cfg.USE_PROFILES : false;
+ ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
+ ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
+ ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
+ ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
+ SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
+ SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false;
+ WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
+ RETURN_DOM = cfg.RETURN_DOM || false;
+ RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
+ RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
+ FORCE_BODY = cfg.FORCE_BODY || false;
+ SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
+ SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
+ KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
+ IN_PLACE = cfg.IN_PLACE || false;
+ IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
+ NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
+ CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
+ if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
+ CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
+ }
+ if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
+ CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
+ }
+ if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") {
+ CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
+ }
+ if (SAFE_FOR_TEMPLATES) {
+ ALLOW_DATA_ATTR = false;
+ }
+ if (RETURN_DOM_FRAGMENT) {
+ RETURN_DOM = true;
+ }
+ if (USE_PROFILES) {
+ ALLOWED_TAGS = addToSet({}, text2);
+ ALLOWED_ATTR = [];
+ if (USE_PROFILES.html === true) {
+ addToSet(ALLOWED_TAGS, html$1);
+ addToSet(ALLOWED_ATTR, html2);
+ }
+ if (USE_PROFILES.svg === true) {
+ addToSet(ALLOWED_TAGS, svg$1);
+ addToSet(ALLOWED_ATTR, svg);
+ addToSet(ALLOWED_ATTR, xml);
+ }
+ if (USE_PROFILES.svgFilters === true) {
+ addToSet(ALLOWED_TAGS, svgFilters);
+ addToSet(ALLOWED_ATTR, svg);
+ addToSet(ALLOWED_ATTR, xml);
+ }
+ if (USE_PROFILES.mathMl === true) {
+ addToSet(ALLOWED_TAGS, mathMl$1);
+ addToSet(ALLOWED_ATTR, mathMl);
+ addToSet(ALLOWED_ATTR, xml);
+ }
+ }
+ if (cfg.ADD_TAGS) {
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
+ ALLOWED_TAGS = clone5(ALLOWED_TAGS);
+ }
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
+ }
+ if (cfg.ADD_ATTR) {
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
+ ALLOWED_ATTR = clone5(ALLOWED_ATTR);
+ }
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
+ }
+ if (cfg.ADD_URI_SAFE_ATTR) {
+ addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
+ }
+ if (cfg.FORBID_CONTENTS) {
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
+ FORBID_CONTENTS = clone5(FORBID_CONTENTS);
+ }
+ addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
+ }
+ if (KEEP_CONTENT) {
+ ALLOWED_TAGS["#text"] = true;
+ }
+ if (WHOLE_DOCUMENT) {
+ addToSet(ALLOWED_TAGS, ["html", "head", "body"]);
+ }
+ if (ALLOWED_TAGS.table) {
+ addToSet(ALLOWED_TAGS, ["tbody"]);
+ delete FORBID_TAGS.tbody;
+ }
+ if (cfg.TRUSTED_TYPES_POLICY) {
+ if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== "function") {
+ throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
+ }
+ if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") {
+ throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
+ }
+ trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
+ emptyHTML = trustedTypesPolicy.createHTML("");
+ } else {
+ if (trustedTypesPolicy === void 0) {
+ trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
+ }
+ if (trustedTypesPolicy !== null && typeof emptyHTML === "string") {
+ emptyHTML = trustedTypesPolicy.createHTML("");
+ }
+ }
+ if (freeze) {
+ freeze(cfg);
+ }
+ CONFIG = cfg;
+ }, "_parseConfig");
+ const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]);
+ const HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "annotation-xml"]);
+ const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ["title", "style", "font", "a", "script"]);
+ const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);
+ const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
+ const _checkValidNamespace = /* @__PURE__ */ __name(function _checkValidNamespace2(element3) {
+ let parent4 = getParentNode(element3);
+ if (!parent4 || !parent4.tagName) {
+ parent4 = {
+ namespaceURI: NAMESPACE,
+ tagName: "template"
+ };
+ }
+ const tagName = stringToLowerCase(element3.tagName);
+ const parentTagName = stringToLowerCase(parent4.tagName);
+ if (!ALLOWED_NAMESPACES[element3.namespaceURI]) {
+ return false;
+ }
+ if (element3.namespaceURI === SVG_NAMESPACE) {
+ if (parent4.namespaceURI === HTML_NAMESPACE) {
+ return tagName === "svg";
+ }
+ if (parent4.namespaceURI === MATHML_NAMESPACE) {
+ return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
+ }
+ return Boolean(ALL_SVG_TAGS[tagName]);
+ }
+ if (element3.namespaceURI === MATHML_NAMESPACE) {
+ if (parent4.namespaceURI === HTML_NAMESPACE) {
+ return tagName === "math";
+ }
+ if (parent4.namespaceURI === SVG_NAMESPACE) {
+ return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
+ }
+ return Boolean(ALL_MATHML_TAGS[tagName]);
+ }
+ if (element3.namespaceURI === HTML_NAMESPACE) {
+ if (parent4.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
+ return false;
+ }
+ if (parent4.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
+ return false;
+ }
+ return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
+ }
+ if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element3.namespaceURI]) {
+ return true;
+ }
+ return false;
+ }, "_checkValidNamespace");
+ const _forceRemove = /* @__PURE__ */ __name(function _forceRemove2(node2) {
+ arrayPush2(DOMPurify3.removed, {
+ element: node2
+ });
+ try {
+ getParentNode(node2).removeChild(node2);
+ } catch (_2) {
+ remove3(node2);
+ }
+ }, "_forceRemove");
+ const _removeAttribute = /* @__PURE__ */ __name(function _removeAttribute2(name, node2) {
+ try {
+ arrayPush2(DOMPurify3.removed, {
+ attribute: node2.getAttributeNode(name),
+ from: node2
+ });
+ } catch (_2) {
+ arrayPush2(DOMPurify3.removed, {
+ attribute: null,
+ from: node2
+ });
+ }
+ node2.removeAttribute(name);
+ if (name === "is" && !ALLOWED_ATTR[name]) {
+ if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
+ try {
+ _forceRemove(node2);
+ } catch (_2) {
+ }
+ } else {
+ try {
+ node2.setAttribute(name, "");
+ } catch (_2) {
+ }
+ }
+ }
+ }, "_removeAttribute");
+ const _initDocument = /* @__PURE__ */ __name(function _initDocument2(dirty) {
+ let doc = null;
+ let leadingWhitespace = null;
+ if (FORCE_BODY) {
+ dirty = "" + dirty;
+ } else {
+ const matches33 = stringMatch(dirty, /^[\r\n\t ]+/);
+ leadingWhitespace = matches33 && matches33[0];
+ }
+ if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) {
+ dirty = '
' + dirty + "";
+ }
+ const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
+ if (NAMESPACE === HTML_NAMESPACE) {
+ try {
+ doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
+ } catch (_2) {
+ }
+ }
+ if (!doc || !doc.documentElement) {
+ doc = implementation.createDocument(NAMESPACE, "template", null);
+ try {
+ doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
+ } catch (_2) {
+ }
+ }
+ const body = doc.body || doc.documentElement;
+ if (dirty && leadingWhitespace) {
+ body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null);
+ }
+ if (NAMESPACE === HTML_NAMESPACE) {
+ return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
+ }
+ return WHOLE_DOCUMENT ? doc.documentElement : body;
+ }, "_initDocument");
+ const _createNodeIterator = /* @__PURE__ */ __name(function _createNodeIterator2(root4) {
+ return createNodeIterator.call(
+ root4.ownerDocument || root4,
+ root4,
+ // eslint-disable-next-line no-bitwise
+ NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION,
+ null
+ );
+ }, "_createNodeIterator");
+ const _isClobbered = /* @__PURE__ */ __name(function _isClobbered2(elm) {
+ return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function" || typeof elm.hasChildNodes !== "function");
+ }, "_isClobbered");
+ const _isNode = /* @__PURE__ */ __name(function _isNode2(object3) {
+ return typeof Node === "function" && object3 instanceof Node;
+ }, "_isNode");
+ const _executeHook = /* @__PURE__ */ __name(function _executeHook2(entryPoint, currentNode, data5) {
+ if (!hooks[entryPoint]) {
+ return;
+ }
+ arrayForEach(hooks[entryPoint], (hook2) => {
+ hook2.call(DOMPurify3, currentNode, data5, CONFIG);
+ });
+ }, "_executeHook");
+ const _sanitizeElements = /* @__PURE__ */ __name(function _sanitizeElements2(currentNode) {
+ let content = null;
+ _executeHook("beforeSanitizeElements", currentNode, null);
+ if (_isClobbered(currentNode)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ const tagName = transformCaseFunc(currentNode.nodeName);
+ _executeHook("uponSanitizeElement", currentNode, {
+ tagName,
+ allowedTags: ALLOWED_TAGS
+ });
+ if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
+ if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
+ return false;
+ }
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
+ return false;
+ }
+ }
+ if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
+ const parentNode = getParentNode(currentNode) || currentNode.parentNode;
+ const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
+ if (childNodes && parentNode) {
+ const childCount = childNodes.length;
+ for (let i2 = childCount - 1; i2 >= 0; --i2) {
+ const childClone = cloneNode(childNodes[i2], true);
+ childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
+ parentNode.insertBefore(childClone, getNextSibling(currentNode));
+ }
+ }
+ }
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (currentNode instanceof Element3 && !_checkValidNamespace(currentNode)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
+ _forceRemove(currentNode);
+ return true;
+ }
+ if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
+ content = currentNode.textContent;
+ arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
+ content = stringReplace(content, expr, " ");
+ });
+ if (currentNode.textContent !== content) {
+ arrayPush2(DOMPurify3.removed, {
+ element: currentNode.cloneNode()
+ });
+ currentNode.textContent = content;
+ }
+ }
+ _executeHook("afterSanitizeElements", currentNode, null);
+ return false;
+ }, "_sanitizeElements");
+ const _isValidAttribute = /* @__PURE__ */ __name(function _isValidAttribute2(lcTag, lcName, value2) {
+ if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value2 in document2 || value2 in formElement)) {
+ return false;
+ }
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR2, lcName)) ;
+ else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR2, lcName)) ;
+ else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
+ if (
+ // First condition does a very basic check if a) it's basically a valid custom element tagname AND
+ // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+ // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
+ _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
+ // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+ lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value2) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value2))
+ ) ;
+ else {
+ return false;
+ }
+ } else if (URI_SAFE_ATTRIBUTES[lcName]) ;
+ else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value2, ATTR_WHITESPACE2, ""))) ;
+ else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value2, "data:") === 0 && DATA_URI_TAGS[lcTag]) ;
+ else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA2, stringReplace(value2, ATTR_WHITESPACE2, ""))) ;
+ else if (value2) {
+ return false;
+ } else ;
+ return true;
+ }, "_isValidAttribute");
+ const _isBasicCustomElement = /* @__PURE__ */ __name(function _isBasicCustomElement2(tagName) {
+ return tagName !== "annotation-xml" && stringMatch(tagName, CUSTOM_ELEMENT2);
+ }, "_isBasicCustomElement");
+ const _sanitizeAttributes = /* @__PURE__ */ __name(function _sanitizeAttributes2(currentNode) {
+ _executeHook("beforeSanitizeAttributes", currentNode, null);
+ const {
+ attributes
+ } = currentNode;
+ if (!attributes) {
+ return;
+ }
+ const hookEvent = {
+ attrName: "",
+ attrValue: "",
+ keepAttr: true,
+ allowedAttributes: ALLOWED_ATTR
+ };
+ let l2 = attributes.length;
+ while (l2--) {
+ const attr = attributes[l2];
+ const {
+ name,
+ namespaceURI,
+ value: attrValue
+ } = attr;
+ const lcName = transformCaseFunc(name);
+ let value2 = name === "value" ? attrValue : stringTrim(attrValue);
+ hookEvent.attrName = lcName;
+ hookEvent.attrValue = value2;
+ hookEvent.keepAttr = true;
+ hookEvent.forceKeepAttr = void 0;
+ _executeHook("uponSanitizeAttribute", currentNode, hookEvent);
+ value2 = hookEvent.attrValue;
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value2)) {
+ _removeAttribute(name, currentNode);
+ continue;
+ }
+ if (hookEvent.forceKeepAttr) {
+ continue;
+ }
+ _removeAttribute(name, currentNode);
+ if (!hookEvent.keepAttr) {
+ continue;
+ }
+ if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value2)) {
+ _removeAttribute(name, currentNode);
+ continue;
+ }
+ if (SAFE_FOR_TEMPLATES) {
+ arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
+ value2 = stringReplace(value2, expr, " ");
+ });
+ }
+ const lcTag = transformCaseFunc(currentNode.nodeName);
+ if (!_isValidAttribute(lcTag, lcName, value2)) {
+ continue;
+ }
+ if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
+ _removeAttribute(name, currentNode);
+ value2 = SANITIZE_NAMED_PROPS_PREFIX + value2;
+ }
+ if (trustedTypesPolicy && typeof trustedTypes === "object" && typeof trustedTypes.getAttributeType === "function") {
+ if (namespaceURI) ;
+ else {
+ switch (trustedTypes.getAttributeType(lcTag, lcName)) {
+ case "TrustedHTML": {
+ value2 = trustedTypesPolicy.createHTML(value2);
+ break;
+ }
+ case "TrustedScriptURL": {
+ value2 = trustedTypesPolicy.createScriptURL(value2);
+ break;
+ }
+ }
+ }
+ }
+ try {
+ if (namespaceURI) {
+ currentNode.setAttributeNS(namespaceURI, name, value2);
+ } else {
+ currentNode.setAttribute(name, value2);
+ }
+ if (_isClobbered(currentNode)) {
+ _forceRemove(currentNode);
+ } else {
+ arrayPop(DOMPurify3.removed);
+ }
+ } catch (_2) {
+ }
+ }
+ _executeHook("afterSanitizeAttributes", currentNode, null);
+ }, "_sanitizeAttributes");
+ const _sanitizeShadowDOM = /* @__PURE__ */ __name(function _sanitizeShadowDOM2(fragment) {
+ let shadowNode = null;
+ const shadowIterator = _createNodeIterator(fragment);
+ _executeHook("beforeSanitizeShadowDOM", fragment, null);
+ while (shadowNode = shadowIterator.nextNode()) {
+ _executeHook("uponSanitizeShadowNode", shadowNode, null);
+ if (_sanitizeElements(shadowNode)) {
+ continue;
+ }
+ if (shadowNode.content instanceof DocumentFragment2) {
+ _sanitizeShadowDOM2(shadowNode.content);
+ }
+ _sanitizeAttributes(shadowNode);
+ }
+ _executeHook("afterSanitizeShadowDOM", fragment, null);
+ }, "_sanitizeShadowDOM");
+ DOMPurify3.sanitize = function(dirty) {
+ let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
+ let body = null;
+ let importedNode = null;
+ let currentNode = null;
+ let returnNode = null;
+ IS_EMPTY_INPUT = !dirty;
+ if (IS_EMPTY_INPUT) {
+ dirty = "";
+ }
+ if (typeof dirty !== "string" && !_isNode(dirty)) {
+ if (typeof dirty.toString === "function") {
+ dirty = dirty.toString();
+ if (typeof dirty !== "string") {
+ throw typeErrorCreate("dirty is not a string, aborting");
+ }
+ } else {
+ throw typeErrorCreate("toString is not a function");
+ }
+ }
+ if (!DOMPurify3.isSupported) {
+ return dirty;
+ }
+ if (!SET_CONFIG) {
+ _parseConfig(cfg);
+ }
+ DOMPurify3.removed = [];
+ if (typeof dirty === "string") {
+ IN_PLACE = false;
+ }
+ if (IN_PLACE) {
+ if (dirty.nodeName) {
+ const tagName = transformCaseFunc(dirty.nodeName);
+ if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
+ throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
+ }
+ }
+ } else if (dirty instanceof Node) {
+ body = _initDocument("");
+ importedNode = body.ownerDocument.importNode(dirty, true);
+ if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === "BODY") {
+ body = importedNode;
+ } else if (importedNode.nodeName === "HTML") {
+ body = importedNode;
+ } else {
+ body.appendChild(importedNode);
+ }
+ } else {
+ if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
+ dirty.indexOf("<") === -1) {
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
+ }
+ body = _initDocument(dirty);
+ if (!body) {
+ return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
+ }
+ }
+ if (body && FORCE_BODY) {
+ _forceRemove(body.firstChild);
+ }
+ const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
+ while (currentNode = nodeIterator.nextNode()) {
+ if (_sanitizeElements(currentNode)) {
+ continue;
+ }
+ if (currentNode.content instanceof DocumentFragment2) {
+ _sanitizeShadowDOM(currentNode.content);
+ }
+ _sanitizeAttributes(currentNode);
+ }
+ if (IN_PLACE) {
+ return dirty;
+ }
+ if (RETURN_DOM) {
+ if (RETURN_DOM_FRAGMENT) {
+ returnNode = createDocumentFragment.call(body.ownerDocument);
+ while (body.firstChild) {
+ returnNode.appendChild(body.firstChild);
+ }
+ } else {
+ returnNode = body;
+ }
+ if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {
+ returnNode = importNode.call(originalDocument, returnNode, true);
+ }
+ return returnNode;
+ }
+ let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
+ if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
+ serializedHTML = "\n" + serializedHTML;
+ }
+ if (SAFE_FOR_TEMPLATES) {
+ arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
+ serializedHTML = stringReplace(serializedHTML, expr, " ");
+ });
+ }
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
+ };
+ DOMPurify3.setConfig = function() {
+ let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
+ _parseConfig(cfg);
+ SET_CONFIG = true;
+ };
+ DOMPurify3.clearConfig = function() {
+ CONFIG = null;
+ SET_CONFIG = false;
+ };
+ DOMPurify3.isValidAttribute = function(tag2, attr, value2) {
+ if (!CONFIG) {
+ _parseConfig({});
+ }
+ const lcTag = transformCaseFunc(tag2);
+ const lcName = transformCaseFunc(attr);
+ return _isValidAttribute(lcTag, lcName, value2);
+ };
+ DOMPurify3.addHook = function(entryPoint, hookFunction) {
+ if (typeof hookFunction !== "function") {
+ return;
+ }
+ hooks[entryPoint] = hooks[entryPoint] || [];
+ arrayPush2(hooks[entryPoint], hookFunction);
+ };
+ DOMPurify3.removeHook = function(entryPoint) {
+ if (hooks[entryPoint]) {
+ return arrayPop(hooks[entryPoint]);
+ }
+ };
+ DOMPurify3.removeHooks = function(entryPoint) {
+ if (hooks[entryPoint]) {
+ hooks[entryPoint] = [];
+ }
+ };
+ DOMPurify3.removeAllHooks = function() {
+ hooks = {};
+ };
+ return DOMPurify3;
+ }
+ __name(createDOMPurify, "createDOMPurify");
+ var purify = createDOMPurify();
+ return purify;
+ });
}
- function formatShortMonth(d) {
- return locale_shortMonths[d.getMonth()];
+ });
+
+ // ../../node_modules/.pnpm/katex@0.16.11/node_modules/katex/dist/katex.mjs
+ var katex_exports = {};
+ __export(katex_exports, {
+ default: () => katex
+ });
+ function escape2(text2) {
+ return String(text2).replace(ESCAPE_REGEX, (match2) => ESCAPE_LOOKUP[match2]);
+ }
+ function getDefaultValue(schema2) {
+ if (schema2.default) {
+ return schema2.default;
}
- function formatMonth(d) {
- return locale_months[d.getMonth()];
+ var type3 = schema2.type;
+ var defaultType = Array.isArray(type3) ? type3[0] : type3;
+ if (typeof defaultType !== "string") {
+ return defaultType.enum[0];
}
- function formatPeriod(d) {
- return locale_periods[+(d.getHours() >= 12)];
+ switch (defaultType) {
+ case "boolean":
+ return false;
+ case "string":
+ return "";
+ case "number":
+ return 0;
+ case "object":
+ return {};
}
- function formatQuarter(d) {
- return 1 + ~~(d.getMonth() / 3);
+ }
+ function scriptFromCodepoint(codepoint) {
+ for (var i2 = 0; i2 < scriptData.length; i2++) {
+ var script = scriptData[i2];
+ for (var _i = 0; _i < script.blocks.length; _i++) {
+ var block3 = script.blocks[_i];
+ if (codepoint >= block3[0] && codepoint <= block3[1]) {
+ return script.name;
+ }
+ }
}
- function formatUTCShortWeekday(d) {
- return locale_shortWeekdays[d.getUTCDay()];
+ return null;
+ }
+ function supportedCodepoint(codepoint) {
+ for (var i2 = 0; i2 < allBlocks.length; i2 += 2) {
+ if (codepoint >= allBlocks[i2] && codepoint <= allBlocks[i2 + 1]) {
+ return true;
+ }
}
- function formatUTCWeekday(d) {
- return locale_weekdays[d.getUTCDay()];
+ return false;
+ }
+ function setFontMetrics(fontName, metrics) {
+ fontMetricsData[fontName] = metrics;
+ }
+ function getCharacterMetrics(character2, font, mode) {
+ if (!fontMetricsData[font]) {
+ throw new Error("Font metrics not found for font: " + font + ".");
}
- function formatUTCShortMonth(d) {
- return locale_shortMonths[d.getUTCMonth()];
+ var ch = character2.charCodeAt(0);
+ var metrics = fontMetricsData[font][ch];
+ if (!metrics && character2[0] in extraCharacterMap) {
+ ch = extraCharacterMap[character2[0]].charCodeAt(0);
+ metrics = fontMetricsData[font][ch];
}
- function formatUTCMonth(d) {
- return locale_months[d.getUTCMonth()];
+ if (!metrics && mode === "text") {
+ if (supportedCodepoint(ch)) {
+ metrics = fontMetricsData[font][77];
+ }
}
- function formatUTCPeriod(d) {
- return locale_periods[+(d.getUTCHours() >= 12)];
+ if (metrics) {
+ return {
+ depth: metrics[0],
+ height: metrics[1],
+ italic: metrics[2],
+ skew: metrics[3],
+ width: metrics[4]
+ };
}
- function formatUTCQuarter(d) {
- return 1 + ~~(d.getUTCMonth() / 3);
+ }
+ function getGlobalMetrics(size5) {
+ var sizeIndex;
+ if (size5 >= 5) {
+ sizeIndex = 0;
+ } else if (size5 >= 3) {
+ sizeIndex = 1;
+ } else {
+ sizeIndex = 2;
}
- return {
- format: function(specifier) {
- var f2 = newFormat(specifier += "", formats);
- f2.toString = function() {
- return specifier;
- };
- return f2;
- },
- parse: function(specifier) {
- var p = newParse(specifier += "", false);
- p.toString = function() {
- return specifier;
- };
- return p;
- },
- utcFormat: function(specifier) {
- var f2 = newFormat(specifier += "", utcFormats);
- f2.toString = function() {
- return specifier;
- };
- return f2;
- },
- utcParse: function(specifier) {
- var p = newParse(specifier += "", true);
- p.toString = function() {
- return specifier;
- };
- return p;
+ if (!fontMetricsBySizeIndex[sizeIndex]) {
+ var metrics = fontMetricsBySizeIndex[sizeIndex] = {
+ cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18
+ };
+ for (var key in sigmasAndXis) {
+ if (sigmasAndXis.hasOwnProperty(key)) {
+ metrics[key] = sigmasAndXis[key][sizeIndex];
+ }
}
- };
- }
- var pads = { "-": "", "_": " ", "0": "0" }, numberRe = /^\s*\d+/, percentRe = /^%/, requoteRe = /[\\^$*+?|[\]().{}]/g;
- function pad(value, fill, width2) {
- var sign2 = value < 0 ? "-" : "", string = (sign2 ? -value : value) + "", length2 = string.length;
- return sign2 + (length2 < width2 ? new Array(width2 - length2 + 1).join(fill) + string : string);
- }
- function requote(s) {
- return s.replace(requoteRe, "\\$&");
- }
- function formatRe(names) {
- return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
- }
- function formatLookup(names) {
- return new Map(names.map((name2, i2) => [name2.toLowerCase(), i2]));
- }
- function parseWeekdayNumberSunday(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 1));
- return n ? (d.w = +n[0], i2 + n[0].length) : -1;
- }
- function parseWeekdayNumberMonday(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 1));
- return n ? (d.u = +n[0], i2 + n[0].length) : -1;
- }
- function parseWeekNumberSunday(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.U = +n[0], i2 + n[0].length) : -1;
- }
- function parseWeekNumberISO(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.V = +n[0], i2 + n[0].length) : -1;
- }
- function parseWeekNumberMonday(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.W = +n[0], i2 + n[0].length) : -1;
- }
- function parseFullYear(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 4));
- return n ? (d.y = +n[0], i2 + n[0].length) : -1;
- }
- function parseYear(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), i2 + n[0].length) : -1;
- }
- function parseZone(d, string, i2) {
- var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i2, i2 + 6));
- return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i2 + n[0].length) : -1;
- }
- function parseQuarter(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 1));
- return n ? (d.q = n[0] * 3 - 3, i2 + n[0].length) : -1;
- }
- function parseMonthNumber(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.m = n[0] - 1, i2 + n[0].length) : -1;
- }
- function parseDayOfMonth(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.d = +n[0], i2 + n[0].length) : -1;
+ }
+ return fontMetricsBySizeIndex[sizeIndex];
}
- function parseDayOfYear(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 3));
- return n ? (d.m = 0, d.d = +n[0], i2 + n[0].length) : -1;
+ function assertSymbolDomNode(group2) {
+ if (group2 instanceof SymbolNode) {
+ return group2;
+ } else {
+ throw new Error("Expected symbolNode but got " + String(group2) + ".");
+ }
}
- function parseHour24(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.H = +n[0], i2 + n[0].length) : -1;
+ function assertSpan(group2) {
+ if (group2 instanceof Span) {
+ return group2;
+ } else {
+ throw new Error("Expected span but got " + String(group2) + ".");
+ }
}
- function parseMinutes(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.M = +n[0], i2 + n[0].length) : -1;
+ function defineSymbol(mode, font, group2, replace2, name, acceptUnicodeChar) {
+ symbols[mode][name] = {
+ font,
+ group: group2,
+ replace: replace2
+ };
+ if (acceptUnicodeChar && replace2) {
+ symbols[mode][replace2] = symbols[mode][name];
+ }
}
- function parseSeconds(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 2));
- return n ? (d.S = +n[0], i2 + n[0].length) : -1;
+ function defineFunction(_ref) {
+ var {
+ type: type3,
+ names,
+ props,
+ handler,
+ htmlBuilder: htmlBuilder3,
+ mathmlBuilder: mathmlBuilder3
+ } = _ref;
+ var data5 = {
+ type: type3,
+ numArgs: props.numArgs,
+ argTypes: props.argTypes,
+ allowedInArgument: !!props.allowedInArgument,
+ allowedInText: !!props.allowedInText,
+ allowedInMath: props.allowedInMath === void 0 ? true : props.allowedInMath,
+ numOptionalArgs: props.numOptionalArgs || 0,
+ infix: !!props.infix,
+ primitive: !!props.primitive,
+ handler
+ };
+ for (var i2 = 0; i2 < names.length; ++i2) {
+ _functions[names[i2]] = data5;
+ }
+ if (type3) {
+ if (htmlBuilder3) {
+ _htmlGroupBuilders[type3] = htmlBuilder3;
+ }
+ if (mathmlBuilder3) {
+ _mathmlGroupBuilders[type3] = mathmlBuilder3;
+ }
+ }
}
- function parseMilliseconds(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 3));
- return n ? (d.L = +n[0], i2 + n[0].length) : -1;
+ function defineFunctionBuilders(_ref2) {
+ var {
+ type: type3,
+ htmlBuilder: htmlBuilder3,
+ mathmlBuilder: mathmlBuilder3
+ } = _ref2;
+ defineFunction({
+ type: type3,
+ names: [],
+ props: {
+ numArgs: 0
+ },
+ handler() {
+ throw new Error("Should never be called.");
+ },
+ htmlBuilder: htmlBuilder3,
+ mathmlBuilder: mathmlBuilder3
+ });
}
- function parseMicroseconds(d, string, i2) {
- var n = numberRe.exec(string.slice(i2, i2 + 6));
- return n ? (d.L = Math.floor(n[0] / 1e3), i2 + n[0].length) : -1;
+ function buildHTMLUnbreakable(children2, options3) {
+ var body = makeSpan$1(["base"], children2, options3);
+ var strut = makeSpan$1(["strut"]);
+ strut.style.height = makeEm(body.height + body.depth);
+ if (body.depth) {
+ strut.style.verticalAlign = makeEm(-body.depth);
+ }
+ body.children.unshift(strut);
+ return body;
}
- function parseLiteralPercent(d, string, i2) {
- var n = percentRe.exec(string.slice(i2, i2 + 1));
- return n ? i2 + n[0].length : -1;
+ function buildHTML(tree, options3) {
+ var tag2 = null;
+ if (tree.length === 1 && tree[0].type === "tag") {
+ tag2 = tree[0].tag;
+ tree = tree[0].body;
+ }
+ var expression = buildExpression$1(tree, options3, "root");
+ var eqnNum;
+ if (expression.length === 2 && expression[1].hasClass("tag")) {
+ eqnNum = expression.pop();
+ }
+ var children2 = [];
+ var parts = [];
+ for (var i2 = 0; i2 < expression.length; i2++) {
+ parts.push(expression[i2]);
+ if (expression[i2].hasClass("mbin") || expression[i2].hasClass("mrel") || expression[i2].hasClass("allowbreak")) {
+ var nobreak = false;
+ while (i2 < expression.length - 1 && expression[i2 + 1].hasClass("mspace") && !expression[i2 + 1].hasClass("newline")) {
+ i2++;
+ parts.push(expression[i2]);
+ if (expression[i2].hasClass("nobreak")) {
+ nobreak = true;
+ }
+ }
+ if (!nobreak) {
+ children2.push(buildHTMLUnbreakable(parts, options3));
+ parts = [];
+ }
+ } else if (expression[i2].hasClass("newline")) {
+ parts.pop();
+ if (parts.length > 0) {
+ children2.push(buildHTMLUnbreakable(parts, options3));
+ parts = [];
+ }
+ children2.push(expression[i2]);
+ }
+ }
+ if (parts.length > 0) {
+ children2.push(buildHTMLUnbreakable(parts, options3));
+ }
+ var tagChild;
+ if (tag2) {
+ tagChild = buildHTMLUnbreakable(buildExpression$1(tag2, options3, true));
+ tagChild.classes = ["tag"];
+ children2.push(tagChild);
+ } else if (eqnNum) {
+ children2.push(eqnNum);
+ }
+ var htmlNode = makeSpan$1(["katex-html"], children2);
+ htmlNode.setAttribute("aria-hidden", "true");
+ if (tagChild) {
+ var strut = tagChild.children[0];
+ strut.style.height = makeEm(htmlNode.height + htmlNode.depth);
+ if (htmlNode.depth) {
+ strut.style.verticalAlign = makeEm(-htmlNode.depth);
+ }
+ }
+ return htmlNode;
}
- function parseUnixTimestamp(d, string, i2) {
- var n = numberRe.exec(string.slice(i2));
- return n ? (d.Q = +n[0], i2 + n[0].length) : -1;
+ function newDocumentFragment(children2) {
+ return new DocumentFragment(children2);
}
- function parseUnixTimestampSeconds(d, string, i2) {
- var n = numberRe.exec(string.slice(i2));
- return n ? (d.s = +n[0], i2 + n[0].length) : -1;
+ function buildMathML(tree, texExpression, options3, isDisplayMode, forMathmlOnly) {
+ var expression = buildExpression2(tree, options3);
+ var wrapper;
+ if (expression.length === 1 && expression[0] instanceof MathNode && utils.contains(["mrow", "mtable"], expression[0].type)) {
+ wrapper = expression[0];
+ } else {
+ wrapper = new mathMLTree.MathNode("mrow", expression);
+ }
+ var annotation = new mathMLTree.MathNode("annotation", [new mathMLTree.TextNode(texExpression)]);
+ annotation.setAttribute("encoding", "application/x-tex");
+ var semantics = new mathMLTree.MathNode("semantics", [wrapper, annotation]);
+ var math2 = new mathMLTree.MathNode("math", [semantics]);
+ math2.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML");
+ if (isDisplayMode) {
+ math2.setAttribute("display", "block");
+ }
+ var wrapperClass = forMathmlOnly ? "katex" : "katex-mathml";
+ return buildCommon.makeSpan([wrapperClass], [math2]);
}
- function formatDayOfMonth(d, p) {
- return pad(d.getDate(), p, 2);
+ function assertNodeType(node2, type3) {
+ if (!node2 || node2.type !== type3) {
+ throw new Error("Expected node of type " + type3 + ", but got " + (node2 ? "node of type " + node2.type : String(node2)));
+ }
+ return node2;
}
- function formatHour24(d, p) {
- return pad(d.getHours(), p, 2);
+ function assertSymbolNodeType(node2) {
+ var typedNode = checkSymbolNodeType(node2);
+ if (!typedNode) {
+ throw new Error("Expected node of symbol group type, but got " + (node2 ? "node of type " + node2.type : String(node2)));
+ }
+ return typedNode;
}
- function formatHour12(d, p) {
- return pad(d.getHours() % 12 || 12, p, 2);
+ function checkSymbolNodeType(node2) {
+ if (node2 && (node2.type === "atom" || NON_ATOMS.hasOwnProperty(node2.type))) {
+ return node2;
+ }
+ return null;
}
- function formatDayOfYear(d, p) {
- return pad(1 + timeDay.count(timeYear(d), d), p, 3);
+ function htmlBuilder$9(group2, options3) {
+ var elements3 = buildExpression$1(group2.body, options3, true);
+ return makeSpan2([group2.mclass], elements3, options3);
+ }
+ function mathmlBuilder$8(group2, options3) {
+ var node2;
+ var inner2 = buildExpression2(group2.body, options3);
+ if (group2.mclass === "minner") {
+ node2 = new mathMLTree.MathNode("mpadded", inner2);
+ } else if (group2.mclass === "mord") {
+ if (group2.isCharacterBox) {
+ node2 = inner2[0];
+ node2.type = "mi";
+ } else {
+ node2 = new mathMLTree.MathNode("mi", inner2);
+ }
+ } else {
+ if (group2.isCharacterBox) {
+ node2 = inner2[0];
+ node2.type = "mo";
+ } else {
+ node2 = new mathMLTree.MathNode("mo", inner2);
+ }
+ if (group2.mclass === "mbin") {
+ node2.attributes.lspace = "0.22em";
+ node2.attributes.rspace = "0.22em";
+ } else if (group2.mclass === "mpunct") {
+ node2.attributes.lspace = "0em";
+ node2.attributes.rspace = "0.17em";
+ } else if (group2.mclass === "mopen" || group2.mclass === "mclose") {
+ node2.attributes.lspace = "0em";
+ node2.attributes.rspace = "0em";
+ } else if (group2.mclass === "minner") {
+ node2.attributes.lspace = "0.0556em";
+ node2.attributes.width = "+0.1111em";
+ }
+ }
+ return node2;
}
- function formatMilliseconds(d, p) {
- return pad(d.getMilliseconds(), p, 3);
+ function cdArrow(arrowChar, labels, parser22) {
+ var funcName = cdArrowFunctionName[arrowChar];
+ switch (funcName) {
+ case "\\\\cdrightarrow":
+ case "\\\\cdleftarrow":
+ return parser22.callFunction(funcName, [labels[0]], [labels[1]]);
+ case "\\uparrow":
+ case "\\downarrow": {
+ var leftLabel = parser22.callFunction("\\\\cdleft", [labels[0]], []);
+ var bareArrow = {
+ type: "atom",
+ text: funcName,
+ mode: "math",
+ family: "rel"
+ };
+ var sizedArrow = parser22.callFunction("\\Big", [bareArrow], []);
+ var rightLabel = parser22.callFunction("\\\\cdright", [labels[1]], []);
+ var arrowGroup = {
+ type: "ordgroup",
+ mode: "math",
+ body: [leftLabel, sizedArrow, rightLabel]
+ };
+ return parser22.callFunction("\\\\cdparent", [arrowGroup], []);
+ }
+ case "\\\\cdlongequal":
+ return parser22.callFunction("\\\\cdlongequal", [], []);
+ case "\\Vert": {
+ var arrow = {
+ type: "textord",
+ text: "\\Vert",
+ mode: "math"
+ };
+ return parser22.callFunction("\\Big", [arrow], []);
+ }
+ default:
+ return {
+ type: "textord",
+ text: " ",
+ mode: "math"
+ };
+ }
}
- function formatMicroseconds(d, p) {
- return formatMilliseconds(d, p) + "000";
+ function parseCD(parser22) {
+ var parsedRows = [];
+ parser22.gullet.beginGroup();
+ parser22.gullet.macros.set("\\cr", "\\\\\\relax");
+ parser22.gullet.beginGroup();
+ while (true) {
+ parsedRows.push(parser22.parseExpression(false, "\\\\"));
+ parser22.gullet.endGroup();
+ parser22.gullet.beginGroup();
+ var next3 = parser22.fetch().text;
+ if (next3 === "&" || next3 === "\\\\") {
+ parser22.consume();
+ } else if (next3 === "\\end") {
+ if (parsedRows[parsedRows.length - 1].length === 0) {
+ parsedRows.pop();
+ }
+ break;
+ } else {
+ throw new ParseError("Expected \\\\ or \\cr or \\end", parser22.nextToken);
+ }
+ }
+ var row = [];
+ var body = [row];
+ for (var i2 = 0; i2 < parsedRows.length; i2++) {
+ var rowNodes = parsedRows[i2];
+ var cell = newCell();
+ for (var j2 = 0; j2 < rowNodes.length; j2++) {
+ if (!isStartOfArrow(rowNodes[j2])) {
+ cell.body.push(rowNodes[j2]);
+ } else {
+ row.push(cell);
+ j2 += 1;
+ var arrowChar = assertSymbolNodeType(rowNodes[j2]).text;
+ var labels = new Array(2);
+ labels[0] = {
+ type: "ordgroup",
+ mode: "math",
+ body: []
+ };
+ labels[1] = {
+ type: "ordgroup",
+ mode: "math",
+ body: []
+ };
+ if ("=|.".indexOf(arrowChar) > -1) ;
+ else if ("<>AV".indexOf(arrowChar) > -1) {
+ for (var labelNum = 0; labelNum < 2; labelNum++) {
+ var inLabel = true;
+ for (var k2 = j2 + 1; k2 < rowNodes.length; k2++) {
+ if (isLabelEnd(rowNodes[k2], arrowChar)) {
+ inLabel = false;
+ j2 = k2;
+ break;
+ }
+ if (isStartOfArrow(rowNodes[k2])) {
+ throw new ParseError("Missing a " + arrowChar + " character to complete a CD arrow.", rowNodes[k2]);
+ }
+ labels[labelNum].body.push(rowNodes[k2]);
+ }
+ if (inLabel) {
+ throw new ParseError("Missing a " + arrowChar + " character to complete a CD arrow.", rowNodes[j2]);
+ }
+ }
+ } else {
+ throw new ParseError('Expected one of "<>AV=|." after @', rowNodes[j2]);
+ }
+ var arrow = cdArrow(arrowChar, labels, parser22);
+ var wrappedArrow = {
+ type: "styling",
+ body: [arrow],
+ mode: "math",
+ style: "display"
+ // CD is always displaystyle.
+ };
+ row.push(wrappedArrow);
+ cell = newCell();
+ }
+ }
+ if (i2 % 2 === 0) {
+ row.push(cell);
+ } else {
+ row.shift();
+ }
+ row = [];
+ body.push(row);
+ }
+ parser22.gullet.endGroup();
+ parser22.gullet.endGroup();
+ var cols = new Array(body[0].length).fill({
+ type: "align",
+ align: "c",
+ pregap: 0.25,
+ // CD package sets \enskip between columns.
+ postgap: 0.25
+ // So pre and post each get half an \enskip, i.e. 0.25em.
+ });
+ return {
+ type: "array",
+ mode: "math",
+ body,
+ arraystretch: 1,
+ addJot: true,
+ rowGaps: [null],
+ cols,
+ colSeparationType: "CD",
+ hLinesBeforeRow: new Array(body.length + 1).fill([])
+ };
}
- function formatMonthNumber(d, p) {
- return pad(d.getMonth() + 1, p, 2);
+ function checkDelimiter(delim, context) {
+ var symDelim = checkSymbolNodeType(delim);
+ if (symDelim && utils.contains(delimiters, symDelim.text)) {
+ return symDelim;
+ } else if (symDelim) {
+ throw new ParseError("Invalid delimiter '" + symDelim.text + "' after '" + context.funcName + "'", delim);
+ } else {
+ throw new ParseError("Invalid delimiter type '" + delim.type + "'", delim);
+ }
}
- function formatMinutes(d, p) {
- return pad(d.getMinutes(), p, 2);
+ function assertParsed(group2) {
+ if (!group2.body) {
+ throw new Error("Bug: The leftright ParseNode wasn't fully parsed.");
+ }
}
- function formatSeconds(d, p) {
- return pad(d.getSeconds(), p, 2);
+ function defineEnvironment(_ref) {
+ var {
+ type: type3,
+ names,
+ props,
+ handler,
+ htmlBuilder: htmlBuilder3,
+ mathmlBuilder: mathmlBuilder3
+ } = _ref;
+ var data5 = {
+ type: type3,
+ numArgs: props.numArgs || 0,
+ allowedInText: false,
+ numOptionalArgs: 0,
+ handler
+ };
+ for (var i2 = 0; i2 < names.length; ++i2) {
+ _environments[names[i2]] = data5;
+ }
+ if (htmlBuilder3) {
+ _htmlGroupBuilders[type3] = htmlBuilder3;
+ }
+ if (mathmlBuilder3) {
+ _mathmlGroupBuilders[type3] = mathmlBuilder3;
+ }
+ }
+ function defineMacro(name, body) {
+ _macros[name] = body;
+ }
+ function getHLines(parser22) {
+ var hlineInfo = [];
+ parser22.consumeSpaces();
+ var nxt = parser22.fetch().text;
+ if (nxt === "\\relax") {
+ parser22.consume();
+ parser22.consumeSpaces();
+ nxt = parser22.fetch().text;
+ }
+ while (nxt === "\\hline" || nxt === "\\hdashline") {
+ parser22.consume();
+ hlineInfo.push(nxt === "\\hdashline");
+ parser22.consumeSpaces();
+ nxt = parser22.fetch().text;
+ }
+ return hlineInfo;
+ }
+ function getAutoTag(name) {
+ if (name.indexOf("ed") === -1) {
+ return name.indexOf("*") === -1;
+ }
+ }
+ function parseArray(parser22, _ref, style3) {
+ var {
+ hskipBeforeAndAfter,
+ addJot,
+ cols,
+ arraystretch,
+ colSeparationType,
+ autoTag,
+ singleRow,
+ emptySingleRow,
+ maxNumCols,
+ leqno
+ } = _ref;
+ parser22.gullet.beginGroup();
+ if (!singleRow) {
+ parser22.gullet.macros.set("\\cr", "\\\\\\relax");
+ }
+ if (!arraystretch) {
+ var stretch = parser22.gullet.expandMacroAsText("\\arraystretch");
+ if (stretch == null) {
+ arraystretch = 1;
+ } else {
+ arraystretch = parseFloat(stretch);
+ if (!arraystretch || arraystretch < 0) {
+ throw new ParseError("Invalid \\arraystretch: " + stretch);
+ }
+ }
+ }
+ parser22.gullet.beginGroup();
+ var row = [];
+ var body = [row];
+ var rowGaps = [];
+ var hLinesBeforeRow = [];
+ var tags2 = autoTag != null ? [] : void 0;
+ function beginRow() {
+ if (autoTag) {
+ parser22.gullet.macros.set("\\@eqnsw", "1", true);
+ }
+ }
+ __name(beginRow, "beginRow");
+ function endRow() {
+ if (tags2) {
+ if (parser22.gullet.macros.get("\\df@tag")) {
+ tags2.push(parser22.subparse([new Token("\\df@tag")]));
+ parser22.gullet.macros.set("\\df@tag", void 0, true);
+ } else {
+ tags2.push(Boolean(autoTag) && parser22.gullet.macros.get("\\@eqnsw") === "1");
+ }
+ }
+ }
+ __name(endRow, "endRow");
+ beginRow();
+ hLinesBeforeRow.push(getHLines(parser22));
+ while (true) {
+ var cell = parser22.parseExpression(false, singleRow ? "\\end" : "\\\\");
+ parser22.gullet.endGroup();
+ parser22.gullet.beginGroup();
+ cell = {
+ type: "ordgroup",
+ mode: parser22.mode,
+ body: cell
+ };
+ if (style3) {
+ cell = {
+ type: "styling",
+ mode: parser22.mode,
+ style: style3,
+ body: [cell]
+ };
+ }
+ row.push(cell);
+ var next3 = parser22.fetch().text;
+ if (next3 === "&") {
+ if (maxNumCols && row.length === maxNumCols) {
+ if (singleRow || colSeparationType) {
+ throw new ParseError("Too many tab characters: &", parser22.nextToken);
+ } else {
+ parser22.settings.reportNonstrict("textEnv", "Too few columns specified in the {array} column argument.");
+ }
+ }
+ parser22.consume();
+ } else if (next3 === "\\end") {
+ endRow();
+ if (row.length === 1 && cell.type === "styling" && cell.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow)) {
+ body.pop();
+ }
+ if (hLinesBeforeRow.length < body.length + 1) {
+ hLinesBeforeRow.push([]);
+ }
+ break;
+ } else if (next3 === "\\\\") {
+ parser22.consume();
+ var size5 = void 0;
+ if (parser22.gullet.future().text !== " ") {
+ size5 = parser22.parseSizeGroup(true);
+ }
+ rowGaps.push(size5 ? size5.value : null);
+ endRow();
+ hLinesBeforeRow.push(getHLines(parser22));
+ row = [];
+ body.push(row);
+ beginRow();
+ } else {
+ throw new ParseError("Expected & or \\\\ or \\cr or \\end", parser22.nextToken);
+ }
+ }
+ parser22.gullet.endGroup();
+ parser22.gullet.endGroup();
+ return {
+ type: "array",
+ mode: parser22.mode,
+ addJot,
+ arraystretch,
+ body,
+ cols,
+ rowGaps,
+ hskipBeforeAndAfter,
+ hLinesBeforeRow,
+ colSeparationType,
+ tags: tags2,
+ leqno
+ };
}
- function formatWeekdayNumberMonday(d) {
- var day2 = d.getDay();
- return day2 === 0 ? 7 : day2;
- }
- function formatWeekNumberSunday(d, p) {
- return pad(sunday.count(timeYear(d) - 1, d), p, 2);
- }
- function dISO(d) {
- var day2 = d.getDay();
- return day2 >= 4 || day2 === 0 ? thursday(d) : thursday.ceil(d);
- }
- function formatWeekNumberISO(d, p) {
- d = dISO(d);
- return pad(thursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
- }
- function formatWeekdayNumberSunday(d) {
- return d.getDay();
- }
- function formatWeekNumberMonday(d, p) {
- return pad(monday.count(timeYear(d) - 1, d), p, 2);
- }
- function formatYear(d, p) {
- return pad(d.getFullYear() % 100, p, 2);
- }
- function formatYearISO(d, p) {
- d = dISO(d);
- return pad(d.getFullYear() % 100, p, 2);
- }
- function formatFullYear(d, p) {
- return pad(d.getFullYear() % 1e4, p, 4);
- }
- function formatFullYearISO(d, p) {
- var day2 = d.getDay();
- d = day2 >= 4 || day2 === 0 ? thursday(d) : thursday.ceil(d);
- return pad(d.getFullYear() % 1e4, p, 4);
- }
- function formatZone(d) {
- var z = d.getTimezoneOffset();
- return (z > 0 ? "-" : (z *= -1, "+")) + pad(z / 60 | 0, "0", 2) + pad(z % 60, "0", 2);
- }
- function formatUTCDayOfMonth(d, p) {
- return pad(d.getUTCDate(), p, 2);
- }
- function formatUTCHour24(d, p) {
- return pad(d.getUTCHours(), p, 2);
- }
- function formatUTCHour12(d, p) {
- return pad(d.getUTCHours() % 12 || 12, p, 2);
- }
- function formatUTCDayOfYear(d, p) {
- return pad(1 + utcDay$1.count(utcYear$1(d), d), p, 3);
- }
- function formatUTCMilliseconds(d, p) {
- return pad(d.getUTCMilliseconds(), p, 3);
- }
- function formatUTCMicroseconds(d, p) {
- return formatUTCMilliseconds(d, p) + "000";
- }
- function formatUTCMonthNumber(d, p) {
- return pad(d.getUTCMonth() + 1, p, 2);
- }
- function formatUTCMinutes(d, p) {
- return pad(d.getUTCMinutes(), p, 2);
- }
- function formatUTCSeconds(d, p) {
- return pad(d.getUTCSeconds(), p, 2);
- }
- function formatUTCWeekdayNumberMonday(d) {
- var dow = d.getUTCDay();
- return dow === 0 ? 7 : dow;
- }
- function formatUTCWeekNumberSunday(d, p) {
- return pad(utcSunday.count(utcYear$1(d) - 1, d), p, 2);
- }
- function UTCdISO(d) {
- var day2 = d.getUTCDay();
- return day2 >= 4 || day2 === 0 ? utcThursday(d) : utcThursday.ceil(d);
- }
- function formatUTCWeekNumberISO(d, p) {
- d = UTCdISO(d);
- return pad(utcThursday.count(utcYear$1(d), d) + (utcYear$1(d).getUTCDay() === 4), p, 2);
- }
- function formatUTCWeekdayNumberSunday(d) {
- return d.getUTCDay();
- }
- function formatUTCWeekNumberMonday(d, p) {
- return pad(utcMonday.count(utcYear$1(d) - 1, d), p, 2);
- }
- function formatUTCYear(d, p) {
- return pad(d.getUTCFullYear() % 100, p, 2);
- }
- function formatUTCYearISO(d, p) {
- d = UTCdISO(d);
- return pad(d.getUTCFullYear() % 100, p, 2);
- }
- function formatUTCFullYear(d, p) {
- return pad(d.getUTCFullYear() % 1e4, p, 4);
- }
- function formatUTCFullYearISO(d, p) {
- var day2 = d.getUTCDay();
- d = day2 >= 4 || day2 === 0 ? utcThursday(d) : utcThursday.ceil(d);
- return pad(d.getUTCFullYear() % 1e4, p, 4);
- }
- function formatUTCZone() {
- return "+0000";
- }
- function formatLiteralPercent() {
- return "%";
- }
- function formatUnixTimestamp(d) {
- return +d;
- }
- function formatUnixTimestampSeconds(d) {
- return Math.floor(+d / 1e3);
- }
- var locale$1;
- var timeFormat;
- defaultLocale({
- dateTime: "%x, %X",
- date: "%-m/%-d/%Y",
- time: "%-I:%M:%S %p",
- periods: ["AM", "PM"],
- days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
- shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
- shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
- });
- function defaultLocale(definition) {
- locale$1 = formatLocale(definition);
- timeFormat = locale$1.format;
- locale$1.parse;
- locale$1.utcFormat;
- locale$1.utcParse;
- return locale$1;
- }
- function date(t4) {
- return new Date(t4);
- }
- function number(t4) {
- return t4 instanceof Date ? +t4 : +/* @__PURE__ */ new Date(+t4);
- }
- function calendar(ticks2, tickInterval2, year2, month2, week, day2, hour2, minute2, second2, format2) {
- var scale = continuous(), invert2 = scale.invert, domain = scale.domain;
- var formatMillisecond = format2(".%L"), formatSecond = format2(":%S"), formatMinute = format2("%I:%M"), formatHour = format2("%I %p"), formatDay = format2("%a %d"), formatWeek = format2("%b %d"), formatMonth = format2("%B"), formatYear2 = format2("%Y");
- function tickFormat2(date2) {
- return (second2(date2) < date2 ? formatMillisecond : minute2(date2) < date2 ? formatSecond : hour2(date2) < date2 ? formatMinute : day2(date2) < date2 ? formatHour : month2(date2) < date2 ? week(date2) < date2 ? formatDay : formatWeek : year2(date2) < date2 ? formatMonth : formatYear2)(date2);
- }
- scale.invert = function(y2) {
- return new Date(invert2(y2));
- };
- scale.domain = function(_2) {
- return arguments.length ? domain(Array.from(_2, number)) : domain().map(date);
- };
- scale.ticks = function(interval2) {
- var d = domain();
- return ticks2(d[0], d[d.length - 1], interval2 == null ? 10 : interval2);
- };
- scale.tickFormat = function(count, specifier) {
- return specifier == null ? tickFormat2 : format2(specifier);
- };
- scale.nice = function(interval2) {
- var d = domain();
- if (!interval2 || typeof interval2.range !== "function")
- interval2 = tickInterval2(d[0], d[d.length - 1], interval2 == null ? 10 : interval2);
- return interval2 ? domain(nice(d, interval2)) : scale;
- };
- scale.copy = function() {
- return copy$1(scale, calendar(ticks2, tickInterval2, year2, month2, week, day2, hour2, minute2, second2, format2));
- };
- return scale;
- }
- function time$1() {
- return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute, utcSecond, timeFormat).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments);
- }
- function constant$1(x2) {
- return function constant2() {
- return x2;
- };
- }
- const abs$1 = Math.abs;
- const atan2 = Math.atan2;
- const cos = Math.cos;
- const max$1 = Math.max;
- const min$1 = Math.min;
- const sin = Math.sin;
- const sqrt = Math.sqrt;
- const epsilon = 1e-12;
- const pi = Math.PI;
- const halfPi = pi / 2;
- const tau = 2 * pi;
- function acos(x2) {
- return x2 > 1 ? 0 : x2 < -1 ? pi : Math.acos(x2);
- }
- function asin(x2) {
- return x2 >= 1 ? halfPi : x2 <= -1 ? -halfPi : Math.asin(x2);
- }
- function arcInnerRadius(d) {
- return d.innerRadius;
- }
- function arcOuterRadius(d) {
- return d.outerRadius;
- }
- function arcStartAngle(d) {
- return d.startAngle;
- }
- function arcEndAngle(d) {
- return d.endAngle;
- }
- function arcPadAngle(d) {
- return d && d.padAngle;
- }
- function intersect$1(x0, y0, x1, y1, x2, y2, x3, y3) {
- var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t4 = y32 * x10 - x32 * y10;
- if (t4 * t4 < epsilon)
- return;
- t4 = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t4;
- return [x0 + t4 * x10, y0 + t4 * y10];
- }
- function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
- var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D2 = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max$1(0, r * r * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;
- if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1)
- cx0 = cx1, cy0 = cy1;
- return {
- cx: cx0,
- cy: cy0,
- x01: -ox,
- y01: -oy,
- x11: cx0 * (r1 / r - 1),
- y11: cy0 * (r1 / r - 1)
- };
- }
- function d3arc() {
- var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant$1(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null;
- function arc() {
- var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs$1(a1 - a0), cw = a1 > a0;
- if (!context)
- context = buffer = path();
- if (r1 < r0)
- r = r1, r1 = r0, r0 = r;
- if (!(r1 > epsilon))
- context.moveTo(0, 0);
- else if (da > tau - epsilon) {
- context.moveTo(r1 * cos(a0), r1 * sin(a0));
- context.arc(0, 0, r1, a0, a1, !cw);
- if (r0 > epsilon) {
- context.moveTo(r0 * cos(a1), r0 * sin(a1));
- context.arc(0, 0, r0, a1, a0, cw);
+ function dCellStyle(envName) {
+ if (envName.slice(0, 1) === "d") {
+ return "display";
+ } else {
+ return "text";
+ }
+ }
+ function sizingGroup(value2, options3, baseOptions) {
+ var inner2 = buildExpression$1(value2, options3, false);
+ var multiplier = options3.sizeMultiplier / baseOptions.sizeMultiplier;
+ for (var i2 = 0; i2 < inner2.length; i2++) {
+ var pos = inner2[i2].classes.indexOf("sizing");
+ if (pos < 0) {
+ Array.prototype.push.apply(inner2[i2].classes, options3.sizingClasses(baseOptions));
+ } else if (inner2[i2].classes[pos + 1] === "reset-size" + options3.size) {
+ inner2[i2].classes[pos + 1] = "reset-size" + baseOptions.size;
+ }
+ inner2[i2].height *= multiplier;
+ inner2[i2].depth *= multiplier;
+ }
+ return buildCommon.makeFragment(inner2);
+ }
+ var SourceLocation, Token, ParseError, contains, deflt, uppercase, hyphenate, ESCAPE_LOOKUP, ESCAPE_REGEX, getBaseElem, isCharacterBox, assert, protocolFromUrl, utils, SETTINGS_SCHEMA, Settings, Style, D, Dc, T, Tc, S, Sc, SS, SSc, styles, sup, sub, fracNum, fracDen, cramp, text$1, Style$1, scriptData, allBlocks, hLinePad, sqrtMain, sqrtSize1, sqrtSize2, sqrtSize3, sqrtSize4, phasePath, sqrtTall, sqrtPath, innerPath, path, tallDelim, DocumentFragment, fontMetricsData, sigmasAndXis, extraCharacterMap, fontMetricsBySizeIndex, sizeStyleMap, sizeMultipliers, sizeAtStyle, Options, ptPerUnit, relativeUnit, validUnit, calculateSize2, makeEm, createClass, initNode, toNode, toMarkup, Span, Anchor, Img, iCombinations, SymbolNode, SvgNode, PathNode, LineNode, ATOMS, NON_ATOMS, symbols, math, text, main, ams, accent, bin, close, inner, mathord, op, open, punct, rel, spacing, textord, ligatures, mathTextSymbols, ch, i2, textSymbols, _ch, _i, letters, _ch2, _i2, wideChar, _ch3, _i3, _ch4, _i4, extraLatin, _ch5, _i5, wideLatinLetterData, wideNumeralData, wideCharacterFont, lookupSymbol, makeSymbol, mathsym, boldsymbol, makeOrd, canCombine, tryCombineChars, sizeElementFromChildren, makeSpan$2, makeSvgSpan, makeLineSpan, makeAnchor, makeFragment, wrapFragment, getVListChildrenAndDepth, makeVList, makeGlue, retrieveTextFontName, fontMap, svgData, staticSvg, buildCommon, thinspace, mediumspace, thickspace, spacings, tightSpacings, _functions, _htmlGroupBuilders, _mathmlGroupBuilders, normalizeArgument, ordargument, makeSpan$1, binLeftCanceller, binRightCanceller, styleMap$1, DomEnum, buildExpression$1, traverseNonSpaceNodes, checkPartialGroup, getOutermostNode, getTypeOfDomTree, makeNullDelimiter, buildGroup$1, MathNode, TextNode, SpaceNode, mathMLTree, makeText, makeRow, getVariant, buildExpression2, buildExpressionRow, buildGroup2, optionsFromSettings, displayWrap, buildTree, buildHTMLTree, stretchyCodePoint, mathMLnode, katexImagesData, groupLength, svgSpan, encloseSpan, stretchy, htmlBuilder$a, mathmlBuilder$9, NON_STRETCHY_ACCENT_REGEX, paddedNode, makeSpan2, binrelClass, cdArrowFunctionName, newCell, isStartOfArrow, isLabelEnd, htmlBuilder$8, mathmlBuilder$7, globalMap, checkControlSequence, getRHS, letCommand, getMetrics, styleWrap, centerSpan, makeSmallDelim, mathrmSize, makeLargeDelim, makeGlyphSpan, makeInner, lapInEms, lap, verts, doubleVerts, makeStackedDelim, vbPad, emPad, sqrtSvg, makeSqrtImage, stackLargeDelimiters, stackAlwaysDelimiters, stackNeverDelimiters, sizeToMaxHeight, makeSizedDelim, stackNeverDelimiterSequence, stackAlwaysDelimiterSequence, stackLargeDelimiterSequence, delimTypeToFont, traverseSequence, makeCustomSizedDelim, makeLeftRightDelim, delimiter, delimiterSizes, delimiters, htmlBuilder$7, mathmlBuilder$6, _environments, _macros, validateAmsEnvironmentContext, htmlBuilder$6, alignMap, mathmlBuilder$5, alignedHandler, environments, htmlBuilder$5, mathmlBuilder$4, fontAliases, adjustStyle, htmlBuilder$4, mathmlBuilder$3, stylArray, delimFromValue, htmlBuilder$3, mathmlBuilder$2, sizeData, chooseMathStyle, assembleSupSub, noSuccessor, htmlBuilder$2, mathmlBuilder$1, singleCharBigOps, singleCharIntegrals, htmlBuilder$1, mathmlBuilder2, sizeFuncs, htmlBuilder2, styleMap, htmlBuilderDelegate, defaultVariant, cssSpace, regularSpace, pad, textFontFamilies, textFontWeights, textFontShapes, optionsWithFont, makeVerb, functions, spaceRegexString, controlWordRegexString, controlSymbolRegexString, controlWordWhitespaceRegexString, controlSpaceRegexString, combiningDiacriticalMarkString, combiningDiacriticalMarksEndRegex, tokenRegexString, Lexer, Namespace, macros, digitToNumber, newcommand, dotsByToken, spaceAfterDots, latexRaiseA, braketHelper, implicitCommands, MacroExpander, unicodeSubRegEx, uSubsAndSups, unicodeAccents, unicodeSymbols, Parser, parseTree, render, renderToString, generateParseTree, renderError, renderToDomTree, renderToHTMLTree, katex;
+ var init_katex = __esm({
+ "../../node_modules/.pnpm/katex@0.16.11/node_modules/katex/dist/katex.mjs"() {
+ "use strict";
+ SourceLocation = class _SourceLocation {
+ static {
+ __name(this, "SourceLocation");
+ }
+ // The + prefix indicates that these fields aren't writeable
+ // Lexer holding the input string.
+ // Start offset, zero-based inclusive.
+ // End offset, zero-based exclusive.
+ constructor(lexer2, start3, end2) {
+ this.lexer = void 0;
+ this.start = void 0;
+ this.end = void 0;
+ this.lexer = lexer2;
+ this.start = start3;
+ this.end = end2;
+ }
+ /**
+ * Merges two `SourceLocation`s from location providers, given they are
+ * provided in order of appearance.
+ * - Returns the first one's location if only the first is provided.
+ * - Returns a merged range of the first and the last if both are provided
+ * and their lexers match.
+ * - Otherwise, returns null.
+ */
+ static range(first3, second2) {
+ if (!second2) {
+ return first3 && first3.loc;
+ } else if (!first3 || !first3.loc || !second2.loc || first3.loc.lexer !== second2.loc.lexer) {
+ return null;
+ } else {
+ return new _SourceLocation(first3.loc.lexer, first3.loc.start, second2.loc.end);
+ }
+ }
+ };
+ Token = class _Token {
+ static {
+ __name(this, "Token");
+ }
+ // don't expand the token
+ // used in \noexpand
+ constructor(text2, loc) {
+ this.text = void 0;
+ this.loc = void 0;
+ this.noexpand = void 0;
+ this.treatAsRelax = void 0;
+ this.text = text2;
+ this.loc = loc;
+ }
+ /**
+ * Given a pair of tokens (this and endToken), compute a `Token` encompassing
+ * the whole input range enclosed by these two.
+ */
+ range(endToken, text2) {
+ return new _Token(text2, SourceLocation.range(this, endToken));
+ }
+ };
+ ParseError = class _ParseError {
+ static {
+ __name(this, "ParseError");
+ }
+ // Error start position based on passed-in Token or ParseNode.
+ // Length of affected text based on passed-in Token or ParseNode.
+ // The underlying error message without any context added.
+ constructor(message, token2) {
+ this.name = void 0;
+ this.position = void 0;
+ this.length = void 0;
+ this.rawMessage = void 0;
+ var error3 = "KaTeX parse error: " + message;
+ var start3;
+ var end2;
+ var loc = token2 && token2.loc;
+ if (loc && loc.start <= loc.end) {
+ var input = loc.lexer.input;
+ start3 = loc.start;
+ end2 = loc.end;
+ if (start3 === input.length) {
+ error3 += " at end of input: ";
+ } else {
+ error3 += " at position " + (start3 + 1) + ": ";
+ }
+ var underlined = input.slice(start3, end2).replace(/[^]/g, "$&\u0332");
+ var left3;
+ if (start3 > 15) {
+ left3 = "\u2026" + input.slice(start3 - 15, start3);
+ } else {
+ left3 = input.slice(0, start3);
+ }
+ var right3;
+ if (end2 + 15 < input.length) {
+ right3 = input.slice(end2, end2 + 15) + "\u2026";
+ } else {
+ right3 = input.slice(end2);
+ }
+ error3 += left3 + underlined + right3;
+ }
+ var self2 = new Error(error3);
+ self2.name = "ParseError";
+ self2.__proto__ = _ParseError.prototype;
+ self2.position = start3;
+ if (start3 != null && end2 != null) {
+ self2.length = end2 - start3;
+ }
+ self2.rawMessage = message;
+ return self2;
}
- } else {
- var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min$1(abs$1(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t02, t12;
- if (rp > epsilon) {
- var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));
- if ((da0 -= p0 * 2) > epsilon)
- p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;
- else
- da0 = 0, a00 = a10 = (a0 + a1) / 2;
- if ((da1 -= p1 * 2) > epsilon)
- p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;
- else
- da1 = 0, a01 = a11 = (a0 + a1) / 2;
+ };
+ ParseError.prototype.__proto__ = Error.prototype;
+ contains = /* @__PURE__ */ __name(function contains2(list2, elem) {
+ return list2.indexOf(elem) !== -1;
+ }, "contains");
+ deflt = /* @__PURE__ */ __name(function deflt2(setting, defaultIfUndefined) {
+ return setting === void 0 ? defaultIfUndefined : setting;
+ }, "deflt");
+ uppercase = /([A-Z])/g;
+ hyphenate = /* @__PURE__ */ __name(function hyphenate2(str2) {
+ return str2.replace(uppercase, "-$1").toLowerCase();
+ }, "hyphenate");
+ ESCAPE_LOOKUP = {
+ "&": "&",
+ ">": ">",
+ "<": "<",
+ '"': """,
+ "'": "'"
+ };
+ ESCAPE_REGEX = /[&><"']/g;
+ __name(escape2, "escape");
+ getBaseElem = /* @__PURE__ */ __name(function getBaseElem2(group2) {
+ if (group2.type === "ordgroup") {
+ if (group2.body.length === 1) {
+ return getBaseElem2(group2.body[0]);
+ } else {
+ return group2;
+ }
+ } else if (group2.type === "color") {
+ if (group2.body.length === 1) {
+ return getBaseElem2(group2.body[0]);
+ } else {
+ return group2;
+ }
+ } else if (group2.type === "font") {
+ return getBaseElem2(group2.body);
+ } else {
+ return group2;
+ }
+ }, "getBaseElem");
+ isCharacterBox = /* @__PURE__ */ __name(function isCharacterBox2(group2) {
+ var baseElem = getBaseElem(group2);
+ return baseElem.type === "mathord" || baseElem.type === "textord" || baseElem.type === "atom";
+ }, "isCharacterBox");
+ assert = /* @__PURE__ */ __name(function assert2(value2) {
+ if (!value2) {
+ throw new Error("Expected non-null, but got " + String(value2));
+ }
+ return value2;
+ }, "assert");
+ protocolFromUrl = /* @__PURE__ */ __name(function protocolFromUrl2(url) {
+ var protocol = /^[\x00-\x20]*([^\\/#?]*?)(:|*58|*3a|&colon)/i.exec(url);
+ if (!protocol) {
+ return "_relative";
+ }
+ if (protocol[2] !== ":") {
+ return null;
}
- var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);
- if (rc > epsilon) {
- var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;
- if (da < pi && (oc = intersect$1(x01, y01, x00, y00, x11, y11, x10, y10))) {
- var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
- rc0 = min$1(rc, (r0 - lc) / (kc - 1));
- rc1 = min$1(rc, (r1 - lc) / (kc + 1));
- }
- }
- if (!(da1 > epsilon))
- context.moveTo(x01, y01);
- else if (rc1 > epsilon) {
- t02 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
- t12 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
- context.moveTo(t02.cx + t02.x01, t02.cy + t02.y01);
- if (rc1 < rc)
- context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);
- else {
- context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);
- context.arc(0, 0, r1, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), !cw);
- context.arc(t12.cx, t12.cy, rc1, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);
- }
- } else
- context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
- if (!(r0 > epsilon) || !(da0 > epsilon))
- context.lineTo(x10, y10);
- else if (rc0 > epsilon) {
- t02 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
- t12 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
- context.lineTo(t02.cx + t02.x01, t02.cy + t02.y01);
- if (rc0 < rc)
- context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);
- else {
- context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);
- context.arc(0, 0, r0, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), cw);
- context.arc(t12.cx, t12.cy, rc0, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);
+ if (!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(protocol[1])) {
+ return null;
+ }
+ return protocol[1].toLowerCase();
+ }, "protocolFromUrl");
+ utils = {
+ contains,
+ deflt,
+ escape: escape2,
+ hyphenate,
+ getBaseElem,
+ isCharacterBox,
+ protocolFromUrl
+ };
+ SETTINGS_SCHEMA = {
+ displayMode: {
+ type: "boolean",
+ description: "Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",
+ cli: "-d, --display-mode"
+ },
+ output: {
+ type: {
+ enum: ["htmlAndMathml", "html", "mathml"]
+ },
+ description: "Determines the markup language of the output.",
+ cli: "-F, --format "
+ },
+ leqno: {
+ type: "boolean",
+ description: "Render display math in leqno style (left-justified tags)."
+ },
+ fleqn: {
+ type: "boolean",
+ description: "Render display math flush left."
+ },
+ throwOnError: {
+ type: "boolean",
+ default: true,
+ cli: "-t, --no-throw-on-error",
+ cliDescription: "Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."
+ },
+ errorColor: {
+ type: "string",
+ default: "#cc0000",
+ cli: "-c, --error-color ",
+ cliDescription: "A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",
+ cliProcessor: /* @__PURE__ */ __name((color2) => "#" + color2, "cliProcessor")
+ },
+ macros: {
+ type: "object",
+ cli: "-m, --macro ",
+ cliDescription: "Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",
+ cliDefault: [],
+ cliProcessor: /* @__PURE__ */ __name((def2, defs2) => {
+ defs2.push(def2);
+ return defs2;
+ }, "cliProcessor")
+ },
+ minRuleThickness: {
+ type: "number",
+ description: "Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",
+ processor: /* @__PURE__ */ __name((t4) => Math.max(0, t4), "processor"),
+ cli: "--min-rule-thickness ",
+ cliProcessor: parseFloat
+ },
+ colorIsTextColor: {
+ type: "boolean",
+ description: "Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",
+ cli: "-b, --color-is-text-color"
+ },
+ strict: {
+ type: [{
+ enum: ["warn", "ignore", "error"]
+ }, "boolean", "function"],
+ description: "Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",
+ cli: "-S, --strict",
+ cliDefault: false
+ },
+ trust: {
+ type: ["boolean", "function"],
+ description: "Trust the input, enabling all HTML features such as \\url.",
+ cli: "-T, --trust"
+ },
+ maxSize: {
+ type: "number",
+ default: Infinity,
+ description: "If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",
+ processor: /* @__PURE__ */ __name((s2) => Math.max(0, s2), "processor"),
+ cli: "-s, --max-size ",
+ cliProcessor: parseInt
+ },
+ maxExpand: {
+ type: "number",
+ default: 1e3,
+ description: "Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",
+ processor: /* @__PURE__ */ __name((n2) => Math.max(0, n2), "processor"),
+ cli: "-e, --max-expand ",
+ cliProcessor: /* @__PURE__ */ __name((n2) => n2 === "Infinity" ? Infinity : parseInt(n2), "cliProcessor")
+ },
+ globalGroup: {
+ type: "boolean",
+ cli: false
+ }
+ };
+ __name(getDefaultValue, "getDefaultValue");
+ Settings = class {
+ static {
+ __name(this, "Settings");
+ }
+ constructor(options3) {
+ this.displayMode = void 0;
+ this.output = void 0;
+ this.leqno = void 0;
+ this.fleqn = void 0;
+ this.throwOnError = void 0;
+ this.errorColor = void 0;
+ this.macros = void 0;
+ this.minRuleThickness = void 0;
+ this.colorIsTextColor = void 0;
+ this.strict = void 0;
+ this.trust = void 0;
+ this.maxSize = void 0;
+ this.maxExpand = void 0;
+ this.globalGroup = void 0;
+ options3 = options3 || {};
+ for (var prop in SETTINGS_SCHEMA) {
+ if (SETTINGS_SCHEMA.hasOwnProperty(prop)) {
+ var schema2 = SETTINGS_SCHEMA[prop];
+ this[prop] = options3[prop] !== void 0 ? schema2.processor ? schema2.processor(options3[prop]) : options3[prop] : getDefaultValue(schema2);
+ }
+ }
+ }
+ /**
+ * Report nonstrict (non-LaTeX-compatible) input.
+ * Can safely not be called if `this.strict` is false in JavaScript.
+ */
+ reportNonstrict(errorCode, errorMsg, token2) {
+ var strict = this.strict;
+ if (typeof strict === "function") {
+ strict = strict(errorCode, errorMsg, token2);
+ }
+ if (!strict || strict === "ignore") {
+ return;
+ } else if (strict === true || strict === "error") {
+ throw new ParseError("LaTeX-incompatible input and strict mode is set to 'error': " + (errorMsg + " [" + errorCode + "]"), token2);
+ } else if (strict === "warn") {
+ typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (errorMsg + " [" + errorCode + "]"));
+ } else {
+ typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + strict + "': " + errorMsg + " [" + errorCode + "]"));
+ }
+ }
+ /**
+ * Check whether to apply strict (LaTeX-adhering) behavior for unusual
+ * input (like `\\`). Unlike `nonstrict`, will not throw an error;
+ * instead, "error" translates to a return value of `true`, while "ignore"
+ * translates to a return value of `false`. May still print a warning:
+ * "warn" prints a warning and returns `false`.
+ * This is for the second category of `errorCode`s listed in the README.
+ */
+ useStrictBehavior(errorCode, errorMsg, token2) {
+ var strict = this.strict;
+ if (typeof strict === "function") {
+ try {
+ strict = strict(errorCode, errorMsg, token2);
+ } catch (error3) {
+ strict = "error";
+ }
+ }
+ if (!strict || strict === "ignore") {
+ return false;
+ } else if (strict === true || strict === "error") {
+ return true;
+ } else if (strict === "warn") {
+ typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (errorMsg + " [" + errorCode + "]"));
+ return false;
+ } else {
+ typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + strict + "': " + errorMsg + " [" + errorCode + "]"));
+ return false;
}
- } else
- context.arc(0, 0, r0, a10, a00, cw);
- }
- context.closePath();
- if (buffer)
- return context = null, buffer + "" || null;
- }
- arc.centroid = function() {
- var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
- return [cos(a) * r, sin(a) * r];
- };
- arc.innerRadius = function(_2) {
- return arguments.length ? (innerRadius = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : innerRadius;
- };
- arc.outerRadius = function(_2) {
- return arguments.length ? (outerRadius = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : outerRadius;
- };
- arc.cornerRadius = function(_2) {
- return arguments.length ? (cornerRadius = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : cornerRadius;
- };
- arc.padRadius = function(_2) {
- return arguments.length ? (padRadius = _2 == null ? null : typeof _2 === "function" ? _2 : constant$1(+_2), arc) : padRadius;
- };
- arc.startAngle = function(_2) {
- return arguments.length ? (startAngle = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : startAngle;
- };
- arc.endAngle = function(_2) {
- return arguments.length ? (endAngle = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : endAngle;
- };
- arc.padAngle = function(_2) {
- return arguments.length ? (padAngle = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : padAngle;
- };
- arc.context = function(_2) {
- return arguments.length ? (context = _2 == null ? null : _2, arc) : context;
- };
- return arc;
- }
- function array(x2) {
- return typeof x2 === "object" && "length" in x2 ? x2 : Array.from(x2);
- }
- function Linear(context) {
- this._context = context;
- }
- Linear.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._point = 0;
- },
- lineEnd: function() {
- if (this._line || this._line !== 0 && this._point === 1)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
- break;
- case 1:
- this._point = 2;
- default:
- this._context.lineTo(x2, y2);
- break;
- }
- }
- };
- function curveLinear(context) {
- return new Linear(context);
- }
- function x(p) {
- return p[0];
- }
- function y(p) {
- return p[1];
- }
- function line$1(x$1, y$1) {
- var defined = constant$1(true), context = null, curve = curveLinear, output = null;
- x$1 = typeof x$1 === "function" ? x$1 : x$1 === void 0 ? x : constant$1(x$1);
- y$1 = typeof y$1 === "function" ? y$1 : y$1 === void 0 ? y : constant$1(y$1);
- function line2(data) {
- var i2, n = (data = array(data)).length, d, defined0 = false, buffer;
- if (context == null)
- output = curve(buffer = path());
- for (i2 = 0; i2 <= n; ++i2) {
- if (!(i2 < n && defined(d = data[i2], i2, data)) === defined0) {
- if (defined0 = !defined0)
- output.lineStart();
- else
- output.lineEnd();
- }
- if (defined0)
- output.point(+x$1(d, i2, data), +y$1(d, i2, data));
- }
- if (buffer)
- return output = null, buffer + "" || null;
- }
- line2.x = function(_2) {
- return arguments.length ? (x$1 = typeof _2 === "function" ? _2 : constant$1(+_2), line2) : x$1;
- };
- line2.y = function(_2) {
- return arguments.length ? (y$1 = typeof _2 === "function" ? _2 : constant$1(+_2), line2) : y$1;
- };
- line2.defined = function(_2) {
- return arguments.length ? (defined = typeof _2 === "function" ? _2 : constant$1(!!_2), line2) : defined;
- };
- line2.curve = function(_2) {
- return arguments.length ? (curve = _2, context != null && (output = curve(context)), line2) : curve;
- };
- line2.context = function(_2) {
- return arguments.length ? (_2 == null ? context = output = null : output = curve(context = _2), line2) : context;
- };
- return line2;
- }
- function descending(a, b) {
- return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
- }
- function identity$1(d) {
- return d;
- }
- function d3pie() {
- var value = identity$1, sortValues = descending, sort2 = null, startAngle = constant$1(0), endAngle = constant$1(tau), padAngle = constant$1(0);
- function pie2(data) {
- var i2, n = (data = array(data)).length, j, k, sum = 0, index = new Array(n), arcs = new Array(n), a0 = +startAngle.apply(this, arguments), da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), a1, p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), pa = p * (da < 0 ? -1 : 1), v;
- for (i2 = 0; i2 < n; ++i2) {
- if ((v = arcs[index[i2] = i2] = +value(data[i2], i2, data)) > 0) {
- sum += v;
}
- }
- if (sortValues != null)
- index.sort(function(i3, j2) {
- return sortValues(arcs[i3], arcs[j2]);
- });
- else if (sort2 != null)
- index.sort(function(i3, j2) {
- return sort2(data[i3], data[j2]);
- });
- for (i2 = 0, k = sum ? (da - n * pa) / sum : 0; i2 < n; ++i2, a0 = a1) {
- j = index[i2], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
- data: data[j],
- index: i2,
- value: v,
- startAngle: a0,
- endAngle: a1,
- padAngle: p
- };
- }
- return arcs;
- }
- pie2.value = function(_2) {
- return arguments.length ? (value = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : value;
- };
- pie2.sortValues = function(_2) {
- return arguments.length ? (sortValues = _2, sort2 = null, pie2) : sortValues;
- };
- pie2.sort = function(_2) {
- return arguments.length ? (sort2 = _2, sortValues = null, pie2) : sort2;
- };
- pie2.startAngle = function(_2) {
- return arguments.length ? (startAngle = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : startAngle;
- };
- pie2.endAngle = function(_2) {
- return arguments.length ? (endAngle = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : endAngle;
- };
- pie2.padAngle = function(_2) {
- return arguments.length ? (padAngle = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : padAngle;
- };
- return pie2;
- }
- class Bump {
- constructor(context, x2) {
- this._context = context;
- this._x = x2;
- }
- areaStart() {
- this._line = 0;
- }
- areaEnd() {
- this._line = NaN;
- }
- lineStart() {
- this._point = 0;
- }
- lineEnd() {
- if (this._line || this._line !== 0 && this._point === 1)
- this._context.closePath();
- this._line = 1 - this._line;
- }
- point(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0: {
- this._point = 1;
- if (this._line)
- this._context.lineTo(x2, y2);
- else
- this._context.moveTo(x2, y2);
- break;
+ /**
+ * Check whether to test potentially dangerous input, and return
+ * `true` (trusted) or `false` (untrusted). The sole argument `context`
+ * should be an object with `command` field specifying the relevant LaTeX
+ * command (as a string starting with `\`), and any other arguments, etc.
+ * If `context` has a `url` field, a `protocol` field will automatically
+ * get added by this function (changing the specified object).
+ */
+ isTrusted(context) {
+ if (context.url && !context.protocol) {
+ var protocol = utils.protocolFromUrl(context.url);
+ if (protocol == null) {
+ return false;
+ }
+ context.protocol = protocol;
+ }
+ var trust = typeof this.trust === "function" ? this.trust(context) : this.trust;
+ return Boolean(trust);
+ }
+ };
+ Style = class {
+ static {
+ __name(this, "Style");
+ }
+ constructor(id27, size5, cramped) {
+ this.id = void 0;
+ this.size = void 0;
+ this.cramped = void 0;
+ this.id = id27;
+ this.size = size5;
+ this.cramped = cramped;
+ }
+ /**
+ * Get the style of a superscript given a base in the current style.
+ */
+ sup() {
+ return styles[sup[this.id]];
+ }
+ /**
+ * Get the style of a subscript given a base in the current style.
+ */
+ sub() {
+ return styles[sub[this.id]];
+ }
+ /**
+ * Get the style of a fraction numerator given the fraction in the current
+ * style.
+ */
+ fracNum() {
+ return styles[fracNum[this.id]];
+ }
+ /**
+ * Get the style of a fraction denominator given the fraction in the current
+ * style.
+ */
+ fracDen() {
+ return styles[fracDen[this.id]];
+ }
+ /**
+ * Get the cramped version of a style (in particular, cramping a cramped style
+ * doesn't change the style).
+ */
+ cramp() {
+ return styles[cramp[this.id]];
+ }
+ /**
+ * Get a text or display version of this style.
+ */
+ text() {
+ return styles[text$1[this.id]];
+ }
+ /**
+ * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)
+ */
+ isTight() {
+ return this.size >= 2;
+ }
+ };
+ D = 0;
+ Dc = 1;
+ T = 2;
+ Tc = 3;
+ S = 4;
+ Sc = 5;
+ SS = 6;
+ SSc = 7;
+ styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)];
+ sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];
+ sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];
+ fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];
+ fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];
+ cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];
+ text$1 = [D, Dc, T, Tc, T, Tc, T, Tc];
+ Style$1 = {
+ DISPLAY: styles[D],
+ TEXT: styles[T],
+ SCRIPT: styles[S],
+ SCRIPTSCRIPT: styles[SS]
+ };
+ scriptData = [{
+ // Latin characters beyond the Latin-1 characters we have metrics for.
+ // Needed for Czech, Hungarian and Turkish text, for example.
+ name: "latin",
+ blocks: [
+ [256, 591],
+ // Latin Extended-A and Latin Extended-B
+ [768, 879]
+ // Combining Diacritical marks
+ ]
+ }, {
+ // The Cyrillic script used by Russian and related languages.
+ // A Cyrillic subset used to be supported as explicitly defined
+ // symbols in symbols.js
+ name: "cyrillic",
+ blocks: [[1024, 1279]]
+ }, {
+ // Armenian
+ name: "armenian",
+ blocks: [[1328, 1423]]
+ }, {
+ // The Brahmic scripts of South and Southeast Asia
+ // Devanagari (0900–097F)
+ // Bengali (0980–09FF)
+ // Gurmukhi (0A00–0A7F)
+ // Gujarati (0A80–0AFF)
+ // Oriya (0B00–0B7F)
+ // Tamil (0B80–0BFF)
+ // Telugu (0C00–0C7F)
+ // Kannada (0C80–0CFF)
+ // Malayalam (0D00–0D7F)
+ // Sinhala (0D80–0DFF)
+ // Thai (0E00–0E7F)
+ // Lao (0E80–0EFF)
+ // Tibetan (0F00–0FFF)
+ // Myanmar (1000–109F)
+ name: "brahmic",
+ blocks: [[2304, 4255]]
+ }, {
+ name: "georgian",
+ blocks: [[4256, 4351]]
+ }, {
+ // Chinese and Japanese.
+ // The "k" in cjk is for Korean, but we've separated Korean out
+ name: "cjk",
+ blocks: [
+ [12288, 12543],
+ // CJK symbols and punctuation, Hiragana, Katakana
+ [19968, 40879],
+ // CJK ideograms
+ [65280, 65376]
+ // Fullwidth punctuation
+ // TODO: add halfwidth Katakana and Romanji glyphs
+ ]
+ }, {
+ // Korean
+ name: "hangul",
+ blocks: [[44032, 55215]]
+ }];
+ __name(scriptFromCodepoint, "scriptFromCodepoint");
+ allBlocks = [];
+ scriptData.forEach((s2) => s2.blocks.forEach((b2) => allBlocks.push(...b2)));
+ __name(supportedCodepoint, "supportedCodepoint");
+ hLinePad = 80;
+ sqrtMain = /* @__PURE__ */ __name(function sqrtMain2(extraVinculum, hLinePad2) {
+ return "M95," + (622 + extraVinculum + hLinePad2) + "\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl" + extraVinculum / 2.075 + " -" + extraVinculum + "\nc5.3,-9.3,12,-14,20,-14\nH400000v" + (40 + extraVinculum) + "H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM" + (834 + extraVinculum) + " " + hLinePad2 + "h400000v" + (40 + extraVinculum) + "h-400000z";
+ }, "sqrtMain");
+ sqrtSize1 = /* @__PURE__ */ __name(function sqrtSize12(extraVinculum, hLinePad2) {
+ return "M263," + (601 + extraVinculum + hLinePad2) + "c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl" + extraVinculum / 2.084 + " -" + extraVinculum + "\nc4.7,-7.3,11,-11,19,-11\nH40000v" + (40 + extraVinculum) + "H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM" + (1001 + extraVinculum) + " " + hLinePad2 + "h400000v" + (40 + extraVinculum) + "h-400000z";
+ }, "sqrtSize1");
+ sqrtSize2 = /* @__PURE__ */ __name(function sqrtSize22(extraVinculum, hLinePad2) {
+ return "M983 " + (10 + extraVinculum + hLinePad2) + "\nl" + extraVinculum / 3.13 + " -" + extraVinculum + "\nc4,-6.7,10,-10,18,-10 H400000v" + (40 + extraVinculum) + "\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM" + (1001 + extraVinculum) + " " + hLinePad2 + "h400000v" + (40 + extraVinculum) + "h-400000z";
+ }, "sqrtSize2");
+ sqrtSize3 = /* @__PURE__ */ __name(function sqrtSize32(extraVinculum, hLinePad2) {
+ return "M424," + (2398 + extraVinculum + hLinePad2) + "\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl" + extraVinculum / 4.223 + " -" + extraVinculum + "c4,-6.7,10,-10,18,-10 H400000\nv" + (40 + extraVinculum) + "H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M" + (1001 + extraVinculum) + " " + hLinePad2 + "\nh400000v" + (40 + extraVinculum) + "h-400000z";
+ }, "sqrtSize3");
+ sqrtSize4 = /* @__PURE__ */ __name(function sqrtSize42(extraVinculum, hLinePad2) {
+ return "M473," + (2713 + extraVinculum + hLinePad2) + "\nc339.3,-1799.3,509.3,-2700,510,-2702 l" + extraVinculum / 5.298 + " -" + extraVinculum + "\nc3.3,-7.3,9.3,-11,18,-11 H400000v" + (40 + extraVinculum) + "H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM" + (1001 + extraVinculum) + " " + hLinePad2 + "h400000v" + (40 + extraVinculum) + "H1017.7z";
+ }, "sqrtSize4");
+ phasePath = /* @__PURE__ */ __name(function phasePath2(y5) {
+ var x5 = y5 / 2;
+ return "M400000 " + y5 + " H0 L" + x5 + " 0 l65 45 L145 " + (y5 - 80) + " H400000z";
+ }, "phasePath");
+ sqrtTall = /* @__PURE__ */ __name(function sqrtTall2(extraVinculum, hLinePad2, viewBoxHeight) {
+ var vertSegment = viewBoxHeight - 54 - hLinePad2 - extraVinculum;
+ return "M702 " + (extraVinculum + hLinePad2) + "H400000" + (40 + extraVinculum) + "\nH742v" + vertSegment + "l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 " + hLinePad2 + "H400000v" + (40 + extraVinculum) + "H742z";
+ }, "sqrtTall");
+ sqrtPath = /* @__PURE__ */ __name(function sqrtPath2(size5, extraVinculum, viewBoxHeight) {
+ extraVinculum = 1e3 * extraVinculum;
+ var path4 = "";
+ switch (size5) {
+ case "sqrtMain":
+ path4 = sqrtMain(extraVinculum, hLinePad);
+ break;
+ case "sqrtSize1":
+ path4 = sqrtSize1(extraVinculum, hLinePad);
+ break;
+ case "sqrtSize2":
+ path4 = sqrtSize2(extraVinculum, hLinePad);
+ break;
+ case "sqrtSize3":
+ path4 = sqrtSize3(extraVinculum, hLinePad);
+ break;
+ case "sqrtSize4":
+ path4 = sqrtSize4(extraVinculum, hLinePad);
+ break;
+ case "sqrtTall":
+ path4 = sqrtTall(extraVinculum, hLinePad, viewBoxHeight);
+ }
+ return path4;
+ }, "sqrtPath");
+ innerPath = /* @__PURE__ */ __name(function innerPath2(name, height2) {
+ switch (name) {
+ case "\u239C":
+ return "M291 0 H417 V" + height2 + " H291z M291 0 H417 V" + height2 + " H291z";
+ case "\u2223":
+ return "M145 0 H188 V" + height2 + " H145z M145 0 H188 V" + height2 + " H145z";
+ case "\u2225":
+ return "M145 0 H188 V" + height2 + " H145z M145 0 H188 V" + height2 + " H145z" + ("M367 0 H410 V" + height2 + " H367z M367 0 H410 V" + height2 + " H367z");
+ case "\u239F":
+ return "M457 0 H583 V" + height2 + " H457z M457 0 H583 V" + height2 + " H457z";
+ case "\u23A2":
+ return "M319 0 H403 V" + height2 + " H319z M319 0 H403 V" + height2 + " H319z";
+ case "\u23A5":
+ return "M263 0 H347 V" + height2 + " H263z M263 0 H347 V" + height2 + " H263z";
+ case "\u23AA":
+ return "M384 0 H504 V" + height2 + " H384z M384 0 H504 V" + height2 + " H384z";
+ case "\u23D0":
+ return "M312 0 H355 V" + height2 + " H312z M312 0 H355 V" + height2 + " H312z";
+ case "\u2016":
+ return "M257 0 H300 V" + height2 + " H257z M257 0 H300 V" + height2 + " H257z" + ("M478 0 H521 V" + height2 + " H478z M478 0 H521 V" + height2 + " H478z");
+ default:
+ return "";
}
- case 1:
- this._point = 2;
- default: {
- if (this._x)
- this._context.bezierCurveTo(this._x0 = (this._x0 + x2) / 2, this._y0, this._x0, y2, x2, y2);
- else
- this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y2) / 2, x2, this._y0, x2, y2);
- break;
+ }, "innerPath");
+ path = {
+ // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main
+ doubleleftarrow: "M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",
+ // doublerightarrow is from glyph U+21D2 in font KaTeX Main
+ doublerightarrow: "M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",
+ // leftarrow is from glyph U+2190 in font KaTeX Main
+ leftarrow: "M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",
+ // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular
+ leftbrace: "M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",
+ leftbraceunder: "M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",
+ // overgroup is from the MnSymbol package (public domain)
+ leftgroup: "M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",
+ leftgroupunder: "M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",
+ // Harpoons are from glyph U+21BD in font KaTeX Main
+ leftharpoon: "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",
+ leftharpoonplus: "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",
+ leftharpoondown: "M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",
+ leftharpoondownplus: "M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",
+ // hook is from glyph U+21A9 in font KaTeX Main
+ lefthook: "M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",
+ leftlinesegment: "M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",
+ leftmapsto: "M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",
+ // tofrom is from glyph U+21C4 in font KaTeX AMS Regular
+ leftToFrom: "M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",
+ longequal: "M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",
+ midbrace: "M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",
+ midbraceunder: "M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",
+ oiintSize1: "M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",
+ oiintSize2: "M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",
+ oiiintSize1: "M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",
+ oiiintSize2: "M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",
+ rightarrow: "M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",
+ rightbrace: "M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",
+ rightbraceunder: "M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",
+ rightgroup: "M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",
+ rightgroupunder: "M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",
+ rightharpoon: "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",
+ rightharpoonplus: "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",
+ rightharpoondown: "M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",
+ rightharpoondownplus: "M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",
+ righthook: "M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",
+ rightlinesegment: "M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",
+ rightToFrom: "M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",
+ // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular
+ twoheadleftarrow: "M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",
+ twoheadrightarrow: "M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",
+ // tilde1 is a modified version of a glyph from the MnSymbol package
+ tilde1: "M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",
+ // ditto tilde2, tilde3, & tilde4
+ tilde2: "M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",
+ tilde3: "M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",
+ tilde4: "M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",
+ // vec is from glyph U+20D7 in font KaTeX Main
+ vec: "M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",
+ // widehat1 is a modified version of a glyph from the MnSymbol package
+ widehat1: "M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",
+ // ditto widehat2, widehat3, & widehat4
+ widehat2: "M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",
+ widehat3: "M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",
+ widehat4: "M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",
+ // widecheck paths are all inverted versions of widehat
+ widecheck1: "M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",
+ widecheck2: "M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",
+ widecheck3: "M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",
+ widecheck4: "M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",
+ // The next ten paths support reaction arrows from the mhchem package.
+ // Arrows for \ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX
+ // baraboveleftarrow is mostly from glyph U+2190 in font KaTeX Main
+ baraboveleftarrow: "M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",
+ // rightarrowabovebar is mostly from glyph U+2192, KaTeX Main
+ rightarrowabovebar: "M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",
+ // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end.
+ // Ref from mhchem.sty: \rlap{\raisebox{-.22ex}{$\kern0.5em
+ baraboveshortleftharpoon: "M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",
+ rightharpoonaboveshortbar: "M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",
+ shortbaraboveleftharpoon: "M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",
+ shortrightharpoonabovebar: "M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"
+ };
+ tallDelim = /* @__PURE__ */ __name(function tallDelim2(label, midHeight) {
+ switch (label) {
+ case "lbrack":
+ return "M403 1759 V84 H666 V0 H319 V1759 v" + midHeight + " v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v" + midHeight + " v1759 h84z";
+ case "rbrack":
+ return "M347 1759 V0 H0 V84 H263 V1759 v" + midHeight + " v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v" + midHeight + " v1759 h84z";
+ case "vert":
+ return "M145 15 v585 v" + midHeight + " v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v" + -midHeight + " v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v" + midHeight + " v585 h43z";
+ case "doublevert":
+ return "M145 15 v585 v" + midHeight + " v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v" + -midHeight + " v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v" + midHeight + " v585 h43z\nM367 15 v585 v" + midHeight + " v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v" + -midHeight + " v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v" + midHeight + " v585 h43z";
+ case "lfloor":
+ return "M319 602 V0 H403 V602 v" + midHeight + " v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v" + midHeight + " v1715 H319z";
+ case "rfloor":
+ return "M319 602 V0 H403 V602 v" + midHeight + " v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v" + midHeight + " v1715 H319z";
+ case "lceil":
+ return "M403 1759 V84 H666 V0 H319 V1759 v" + midHeight + " v602 h84z\nM403 1759 V0 H319 V1759 v" + midHeight + " v602 h84z";
+ case "rceil":
+ return "M347 1759 V0 H0 V84 H263 V1759 v" + midHeight + " v602 h84z\nM347 1759 V0 h-84 V1759 v" + midHeight + " v602 h84z";
+ case "lparen":
+ return "M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0," + (midHeight + 84) + "c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-" + (midHeight + 92) + "c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";
+ case "rparen":
+ return "M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0," + (midHeight + 9) + "\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-" + (midHeight + 144) + "c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";
+ default:
+ throw new Error("Unknown stretchy delimiter.");
+ }
+ }, "tallDelim");
+ DocumentFragment = class {
+ static {
+ __name(this, "DocumentFragment");
+ }
+ // HtmlDomNode
+ // Never used; needed for satisfying interface.
+ constructor(children2) {
+ this.children = void 0;
+ this.classes = void 0;
+ this.height = void 0;
+ this.depth = void 0;
+ this.maxFontSize = void 0;
+ this.style = void 0;
+ this.children = children2;
+ this.classes = [];
+ this.height = 0;
+ this.depth = 0;
+ this.maxFontSize = 0;
+ this.style = {};
+ }
+ hasClass(className) {
+ return utils.contains(this.classes, className);
+ }
+ /** Convert the fragment into a node. */
+ toNode() {
+ var frag = document.createDocumentFragment();
+ for (var i2 = 0; i2 < this.children.length; i2++) {
+ frag.appendChild(this.children[i2].toNode());
+ }
+ return frag;
+ }
+ /** Convert the fragment into HTML markup. */
+ toMarkup() {
+ var markup = "";
+ for (var i2 = 0; i2 < this.children.length; i2++) {
+ markup += this.children[i2].toMarkup();
+ }
+ return markup;
+ }
+ /**
+ * Converts the math node into a string, similar to innerText. Applies to
+ * MathDomNode's only.
+ */
+ toText() {
+ var toText = /* @__PURE__ */ __name((child) => child.toText(), "toText");
+ return this.children.map(toText).join("");
+ }
+ };
+ fontMetricsData = {
+ "AMS-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "65": [0, 0.68889, 0, 0, 0.72222],
+ "66": [0, 0.68889, 0, 0, 0.66667],
+ "67": [0, 0.68889, 0, 0, 0.72222],
+ "68": [0, 0.68889, 0, 0, 0.72222],
+ "69": [0, 0.68889, 0, 0, 0.66667],
+ "70": [0, 0.68889, 0, 0, 0.61111],
+ "71": [0, 0.68889, 0, 0, 0.77778],
+ "72": [0, 0.68889, 0, 0, 0.77778],
+ "73": [0, 0.68889, 0, 0, 0.38889],
+ "74": [0.16667, 0.68889, 0, 0, 0.5],
+ "75": [0, 0.68889, 0, 0, 0.77778],
+ "76": [0, 0.68889, 0, 0, 0.66667],
+ "77": [0, 0.68889, 0, 0, 0.94445],
+ "78": [0, 0.68889, 0, 0, 0.72222],
+ "79": [0.16667, 0.68889, 0, 0, 0.77778],
+ "80": [0, 0.68889, 0, 0, 0.61111],
+ "81": [0.16667, 0.68889, 0, 0, 0.77778],
+ "82": [0, 0.68889, 0, 0, 0.72222],
+ "83": [0, 0.68889, 0, 0, 0.55556],
+ "84": [0, 0.68889, 0, 0, 0.66667],
+ "85": [0, 0.68889, 0, 0, 0.72222],
+ "86": [0, 0.68889, 0, 0, 0.72222],
+ "87": [0, 0.68889, 0, 0, 1],
+ "88": [0, 0.68889, 0, 0, 0.72222],
+ "89": [0, 0.68889, 0, 0, 0.72222],
+ "90": [0, 0.68889, 0, 0, 0.66667],
+ "107": [0, 0.68889, 0, 0, 0.55556],
+ "160": [0, 0, 0, 0, 0.25],
+ "165": [0, 0.675, 0.025, 0, 0.75],
+ "174": [0.15559, 0.69224, 0, 0, 0.94666],
+ "240": [0, 0.68889, 0, 0, 0.55556],
+ "295": [0, 0.68889, 0, 0, 0.54028],
+ "710": [0, 0.825, 0, 0, 2.33334],
+ "732": [0, 0.9, 0, 0, 2.33334],
+ "770": [0, 0.825, 0, 0, 2.33334],
+ "771": [0, 0.9, 0, 0, 2.33334],
+ "989": [0.08167, 0.58167, 0, 0, 0.77778],
+ "1008": [0, 0.43056, 0.04028, 0, 0.66667],
+ "8245": [0, 0.54986, 0, 0, 0.275],
+ "8463": [0, 0.68889, 0, 0, 0.54028],
+ "8487": [0, 0.68889, 0, 0, 0.72222],
+ "8498": [0, 0.68889, 0, 0, 0.55556],
+ "8502": [0, 0.68889, 0, 0, 0.66667],
+ "8503": [0, 0.68889, 0, 0, 0.44445],
+ "8504": [0, 0.68889, 0, 0, 0.66667],
+ "8513": [0, 0.68889, 0, 0, 0.63889],
+ "8592": [-0.03598, 0.46402, 0, 0, 0.5],
+ "8594": [-0.03598, 0.46402, 0, 0, 0.5],
+ "8602": [-0.13313, 0.36687, 0, 0, 1],
+ "8603": [-0.13313, 0.36687, 0, 0, 1],
+ "8606": [0.01354, 0.52239, 0, 0, 1],
+ "8608": [0.01354, 0.52239, 0, 0, 1],
+ "8610": [0.01354, 0.52239, 0, 0, 1.11111],
+ "8611": [0.01354, 0.52239, 0, 0, 1.11111],
+ "8619": [0, 0.54986, 0, 0, 1],
+ "8620": [0, 0.54986, 0, 0, 1],
+ "8621": [-0.13313, 0.37788, 0, 0, 1.38889],
+ "8622": [-0.13313, 0.36687, 0, 0, 1],
+ "8624": [0, 0.69224, 0, 0, 0.5],
+ "8625": [0, 0.69224, 0, 0, 0.5],
+ "8630": [0, 0.43056, 0, 0, 1],
+ "8631": [0, 0.43056, 0, 0, 1],
+ "8634": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8635": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8638": [0.19444, 0.69224, 0, 0, 0.41667],
+ "8639": [0.19444, 0.69224, 0, 0, 0.41667],
+ "8642": [0.19444, 0.69224, 0, 0, 0.41667],
+ "8643": [0.19444, 0.69224, 0, 0, 0.41667],
+ "8644": [0.1808, 0.675, 0, 0, 1],
+ "8646": [0.1808, 0.675, 0, 0, 1],
+ "8647": [0.1808, 0.675, 0, 0, 1],
+ "8648": [0.19444, 0.69224, 0, 0, 0.83334],
+ "8649": [0.1808, 0.675, 0, 0, 1],
+ "8650": [0.19444, 0.69224, 0, 0, 0.83334],
+ "8651": [0.01354, 0.52239, 0, 0, 1],
+ "8652": [0.01354, 0.52239, 0, 0, 1],
+ "8653": [-0.13313, 0.36687, 0, 0, 1],
+ "8654": [-0.13313, 0.36687, 0, 0, 1],
+ "8655": [-0.13313, 0.36687, 0, 0, 1],
+ "8666": [0.13667, 0.63667, 0, 0, 1],
+ "8667": [0.13667, 0.63667, 0, 0, 1],
+ "8669": [-0.13313, 0.37788, 0, 0, 1],
+ "8672": [-0.064, 0.437, 0, 0, 1.334],
+ "8674": [-0.064, 0.437, 0, 0, 1.334],
+ "8705": [0, 0.825, 0, 0, 0.5],
+ "8708": [0, 0.68889, 0, 0, 0.55556],
+ "8709": [0.08167, 0.58167, 0, 0, 0.77778],
+ "8717": [0, 0.43056, 0, 0, 0.42917],
+ "8722": [-0.03598, 0.46402, 0, 0, 0.5],
+ "8724": [0.08198, 0.69224, 0, 0, 0.77778],
+ "8726": [0.08167, 0.58167, 0, 0, 0.77778],
+ "8733": [0, 0.69224, 0, 0, 0.77778],
+ "8736": [0, 0.69224, 0, 0, 0.72222],
+ "8737": [0, 0.69224, 0, 0, 0.72222],
+ "8738": [0.03517, 0.52239, 0, 0, 0.72222],
+ "8739": [0.08167, 0.58167, 0, 0, 0.22222],
+ "8740": [0.25142, 0.74111, 0, 0, 0.27778],
+ "8741": [0.08167, 0.58167, 0, 0, 0.38889],
+ "8742": [0.25142, 0.74111, 0, 0, 0.5],
+ "8756": [0, 0.69224, 0, 0, 0.66667],
+ "8757": [0, 0.69224, 0, 0, 0.66667],
+ "8764": [-0.13313, 0.36687, 0, 0, 0.77778],
+ "8765": [-0.13313, 0.37788, 0, 0, 0.77778],
+ "8769": [-0.13313, 0.36687, 0, 0, 0.77778],
+ "8770": [-0.03625, 0.46375, 0, 0, 0.77778],
+ "8774": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8776": [-0.01688, 0.48312, 0, 0, 0.77778],
+ "8778": [0.08167, 0.58167, 0, 0, 0.77778],
+ "8782": [0.06062, 0.54986, 0, 0, 0.77778],
+ "8783": [0.06062, 0.54986, 0, 0, 0.77778],
+ "8785": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8786": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8787": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8790": [0, 0.69224, 0, 0, 0.77778],
+ "8791": [0.22958, 0.72958, 0, 0, 0.77778],
+ "8796": [0.08198, 0.91667, 0, 0, 0.77778],
+ "8806": [0.25583, 0.75583, 0, 0, 0.77778],
+ "8807": [0.25583, 0.75583, 0, 0, 0.77778],
+ "8808": [0.25142, 0.75726, 0, 0, 0.77778],
+ "8809": [0.25142, 0.75726, 0, 0, 0.77778],
+ "8812": [0.25583, 0.75583, 0, 0, 0.5],
+ "8814": [0.20576, 0.70576, 0, 0, 0.77778],
+ "8815": [0.20576, 0.70576, 0, 0, 0.77778],
+ "8816": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8817": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8818": [0.22958, 0.72958, 0, 0, 0.77778],
+ "8819": [0.22958, 0.72958, 0, 0, 0.77778],
+ "8822": [0.1808, 0.675, 0, 0, 0.77778],
+ "8823": [0.1808, 0.675, 0, 0, 0.77778],
+ "8828": [0.13667, 0.63667, 0, 0, 0.77778],
+ "8829": [0.13667, 0.63667, 0, 0, 0.77778],
+ "8830": [0.22958, 0.72958, 0, 0, 0.77778],
+ "8831": [0.22958, 0.72958, 0, 0, 0.77778],
+ "8832": [0.20576, 0.70576, 0, 0, 0.77778],
+ "8833": [0.20576, 0.70576, 0, 0, 0.77778],
+ "8840": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8841": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8842": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8843": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8847": [0.03517, 0.54986, 0, 0, 0.77778],
+ "8848": [0.03517, 0.54986, 0, 0, 0.77778],
+ "8858": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8859": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8861": [0.08198, 0.58198, 0, 0, 0.77778],
+ "8862": [0, 0.675, 0, 0, 0.77778],
+ "8863": [0, 0.675, 0, 0, 0.77778],
+ "8864": [0, 0.675, 0, 0, 0.77778],
+ "8865": [0, 0.675, 0, 0, 0.77778],
+ "8872": [0, 0.69224, 0, 0, 0.61111],
+ "8873": [0, 0.69224, 0, 0, 0.72222],
+ "8874": [0, 0.69224, 0, 0, 0.88889],
+ "8876": [0, 0.68889, 0, 0, 0.61111],
+ "8877": [0, 0.68889, 0, 0, 0.61111],
+ "8878": [0, 0.68889, 0, 0, 0.72222],
+ "8879": [0, 0.68889, 0, 0, 0.72222],
+ "8882": [0.03517, 0.54986, 0, 0, 0.77778],
+ "8883": [0.03517, 0.54986, 0, 0, 0.77778],
+ "8884": [0.13667, 0.63667, 0, 0, 0.77778],
+ "8885": [0.13667, 0.63667, 0, 0, 0.77778],
+ "8888": [0, 0.54986, 0, 0, 1.11111],
+ "8890": [0.19444, 0.43056, 0, 0, 0.55556],
+ "8891": [0.19444, 0.69224, 0, 0, 0.61111],
+ "8892": [0.19444, 0.69224, 0, 0, 0.61111],
+ "8901": [0, 0.54986, 0, 0, 0.27778],
+ "8903": [0.08167, 0.58167, 0, 0, 0.77778],
+ "8905": [0.08167, 0.58167, 0, 0, 0.77778],
+ "8906": [0.08167, 0.58167, 0, 0, 0.77778],
+ "8907": [0, 0.69224, 0, 0, 0.77778],
+ "8908": [0, 0.69224, 0, 0, 0.77778],
+ "8909": [-0.03598, 0.46402, 0, 0, 0.77778],
+ "8910": [0, 0.54986, 0, 0, 0.76042],
+ "8911": [0, 0.54986, 0, 0, 0.76042],
+ "8912": [0.03517, 0.54986, 0, 0, 0.77778],
+ "8913": [0.03517, 0.54986, 0, 0, 0.77778],
+ "8914": [0, 0.54986, 0, 0, 0.66667],
+ "8915": [0, 0.54986, 0, 0, 0.66667],
+ "8916": [0, 0.69224, 0, 0, 0.66667],
+ "8918": [0.0391, 0.5391, 0, 0, 0.77778],
+ "8919": [0.0391, 0.5391, 0, 0, 0.77778],
+ "8920": [0.03517, 0.54986, 0, 0, 1.33334],
+ "8921": [0.03517, 0.54986, 0, 0, 1.33334],
+ "8922": [0.38569, 0.88569, 0, 0, 0.77778],
+ "8923": [0.38569, 0.88569, 0, 0, 0.77778],
+ "8926": [0.13667, 0.63667, 0, 0, 0.77778],
+ "8927": [0.13667, 0.63667, 0, 0, 0.77778],
+ "8928": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8929": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8934": [0.23222, 0.74111, 0, 0, 0.77778],
+ "8935": [0.23222, 0.74111, 0, 0, 0.77778],
+ "8936": [0.23222, 0.74111, 0, 0, 0.77778],
+ "8937": [0.23222, 0.74111, 0, 0, 0.77778],
+ "8938": [0.20576, 0.70576, 0, 0, 0.77778],
+ "8939": [0.20576, 0.70576, 0, 0, 0.77778],
+ "8940": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8941": [0.30274, 0.79383, 0, 0, 0.77778],
+ "8994": [0.19444, 0.69224, 0, 0, 0.77778],
+ "8995": [0.19444, 0.69224, 0, 0, 0.77778],
+ "9416": [0.15559, 0.69224, 0, 0, 0.90222],
+ "9484": [0, 0.69224, 0, 0, 0.5],
+ "9488": [0, 0.69224, 0, 0, 0.5],
+ "9492": [0, 0.37788, 0, 0, 0.5],
+ "9496": [0, 0.37788, 0, 0, 0.5],
+ "9585": [0.19444, 0.68889, 0, 0, 0.88889],
+ "9586": [0.19444, 0.74111, 0, 0, 0.88889],
+ "9632": [0, 0.675, 0, 0, 0.77778],
+ "9633": [0, 0.675, 0, 0, 0.77778],
+ "9650": [0, 0.54986, 0, 0, 0.72222],
+ "9651": [0, 0.54986, 0, 0, 0.72222],
+ "9654": [0.03517, 0.54986, 0, 0, 0.77778],
+ "9660": [0, 0.54986, 0, 0, 0.72222],
+ "9661": [0, 0.54986, 0, 0, 0.72222],
+ "9664": [0.03517, 0.54986, 0, 0, 0.77778],
+ "9674": [0.11111, 0.69224, 0, 0, 0.66667],
+ "9733": [0.19444, 0.69224, 0, 0, 0.94445],
+ "10003": [0, 0.69224, 0, 0, 0.83334],
+ "10016": [0, 0.69224, 0, 0, 0.83334],
+ "10731": [0.11111, 0.69224, 0, 0, 0.66667],
+ "10846": [0.19444, 0.75583, 0, 0, 0.61111],
+ "10877": [0.13667, 0.63667, 0, 0, 0.77778],
+ "10878": [0.13667, 0.63667, 0, 0, 0.77778],
+ "10885": [0.25583, 0.75583, 0, 0, 0.77778],
+ "10886": [0.25583, 0.75583, 0, 0, 0.77778],
+ "10887": [0.13597, 0.63597, 0, 0, 0.77778],
+ "10888": [0.13597, 0.63597, 0, 0, 0.77778],
+ "10889": [0.26167, 0.75726, 0, 0, 0.77778],
+ "10890": [0.26167, 0.75726, 0, 0, 0.77778],
+ "10891": [0.48256, 0.98256, 0, 0, 0.77778],
+ "10892": [0.48256, 0.98256, 0, 0, 0.77778],
+ "10901": [0.13667, 0.63667, 0, 0, 0.77778],
+ "10902": [0.13667, 0.63667, 0, 0, 0.77778],
+ "10933": [0.25142, 0.75726, 0, 0, 0.77778],
+ "10934": [0.25142, 0.75726, 0, 0, 0.77778],
+ "10935": [0.26167, 0.75726, 0, 0, 0.77778],
+ "10936": [0.26167, 0.75726, 0, 0, 0.77778],
+ "10937": [0.26167, 0.75726, 0, 0, 0.77778],
+ "10938": [0.26167, 0.75726, 0, 0, 0.77778],
+ "10949": [0.25583, 0.75583, 0, 0, 0.77778],
+ "10950": [0.25583, 0.75583, 0, 0, 0.77778],
+ "10955": [0.28481, 0.79383, 0, 0, 0.77778],
+ "10956": [0.28481, 0.79383, 0, 0, 0.77778],
+ "57350": [0.08167, 0.58167, 0, 0, 0.22222],
+ "57351": [0.08167, 0.58167, 0, 0, 0.38889],
+ "57352": [0.08167, 0.58167, 0, 0, 0.77778],
+ "57353": [0, 0.43056, 0.04028, 0, 0.66667],
+ "57356": [0.25142, 0.75726, 0, 0, 0.77778],
+ "57357": [0.25142, 0.75726, 0, 0, 0.77778],
+ "57358": [0.41951, 0.91951, 0, 0, 0.77778],
+ "57359": [0.30274, 0.79383, 0, 0, 0.77778],
+ "57360": [0.30274, 0.79383, 0, 0, 0.77778],
+ "57361": [0.41951, 0.91951, 0, 0, 0.77778],
+ "57366": [0.25142, 0.75726, 0, 0, 0.77778],
+ "57367": [0.25142, 0.75726, 0, 0, 0.77778],
+ "57368": [0.25142, 0.75726, 0, 0, 0.77778],
+ "57369": [0.25142, 0.75726, 0, 0, 0.77778],
+ "57370": [0.13597, 0.63597, 0, 0, 0.77778],
+ "57371": [0.13597, 0.63597, 0, 0, 0.77778]
+ },
+ "Caligraphic-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "65": [0, 0.68333, 0, 0.19445, 0.79847],
+ "66": [0, 0.68333, 0.03041, 0.13889, 0.65681],
+ "67": [0, 0.68333, 0.05834, 0.13889, 0.52653],
+ "68": [0, 0.68333, 0.02778, 0.08334, 0.77139],
+ "69": [0, 0.68333, 0.08944, 0.11111, 0.52778],
+ "70": [0, 0.68333, 0.09931, 0.11111, 0.71875],
+ "71": [0.09722, 0.68333, 0.0593, 0.11111, 0.59487],
+ "72": [0, 0.68333, 965e-5, 0.11111, 0.84452],
+ "73": [0, 0.68333, 0.07382, 0, 0.54452],
+ "74": [0.09722, 0.68333, 0.18472, 0.16667, 0.67778],
+ "75": [0, 0.68333, 0.01445, 0.05556, 0.76195],
+ "76": [0, 0.68333, 0, 0.13889, 0.68972],
+ "77": [0, 0.68333, 0, 0.13889, 1.2009],
+ "78": [0, 0.68333, 0.14736, 0.08334, 0.82049],
+ "79": [0, 0.68333, 0.02778, 0.11111, 0.79611],
+ "80": [0, 0.68333, 0.08222, 0.08334, 0.69556],
+ "81": [0.09722, 0.68333, 0, 0.11111, 0.81667],
+ "82": [0, 0.68333, 0, 0.08334, 0.8475],
+ "83": [0, 0.68333, 0.075, 0.13889, 0.60556],
+ "84": [0, 0.68333, 0.25417, 0, 0.54464],
+ "85": [0, 0.68333, 0.09931, 0.08334, 0.62583],
+ "86": [0, 0.68333, 0.08222, 0, 0.61278],
+ "87": [0, 0.68333, 0.08222, 0.08334, 0.98778],
+ "88": [0, 0.68333, 0.14643, 0.13889, 0.7133],
+ "89": [0.09722, 0.68333, 0.08222, 0.08334, 0.66834],
+ "90": [0, 0.68333, 0.07944, 0.13889, 0.72473],
+ "160": [0, 0, 0, 0, 0.25]
+ },
+ "Fraktur-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69141, 0, 0, 0.29574],
+ "34": [0, 0.69141, 0, 0, 0.21471],
+ "38": [0, 0.69141, 0, 0, 0.73786],
+ "39": [0, 0.69141, 0, 0, 0.21201],
+ "40": [0.24982, 0.74947, 0, 0, 0.38865],
+ "41": [0.24982, 0.74947, 0, 0, 0.38865],
+ "42": [0, 0.62119, 0, 0, 0.27764],
+ "43": [0.08319, 0.58283, 0, 0, 0.75623],
+ "44": [0, 0.10803, 0, 0, 0.27764],
+ "45": [0.08319, 0.58283, 0, 0, 0.75623],
+ "46": [0, 0.10803, 0, 0, 0.27764],
+ "47": [0.24982, 0.74947, 0, 0, 0.50181],
+ "48": [0, 0.47534, 0, 0, 0.50181],
+ "49": [0, 0.47534, 0, 0, 0.50181],
+ "50": [0, 0.47534, 0, 0, 0.50181],
+ "51": [0.18906, 0.47534, 0, 0, 0.50181],
+ "52": [0.18906, 0.47534, 0, 0, 0.50181],
+ "53": [0.18906, 0.47534, 0, 0, 0.50181],
+ "54": [0, 0.69141, 0, 0, 0.50181],
+ "55": [0.18906, 0.47534, 0, 0, 0.50181],
+ "56": [0, 0.69141, 0, 0, 0.50181],
+ "57": [0.18906, 0.47534, 0, 0, 0.50181],
+ "58": [0, 0.47534, 0, 0, 0.21606],
+ "59": [0.12604, 0.47534, 0, 0, 0.21606],
+ "61": [-0.13099, 0.36866, 0, 0, 0.75623],
+ "63": [0, 0.69141, 0, 0, 0.36245],
+ "65": [0, 0.69141, 0, 0, 0.7176],
+ "66": [0, 0.69141, 0, 0, 0.88397],
+ "67": [0, 0.69141, 0, 0, 0.61254],
+ "68": [0, 0.69141, 0, 0, 0.83158],
+ "69": [0, 0.69141, 0, 0, 0.66278],
+ "70": [0.12604, 0.69141, 0, 0, 0.61119],
+ "71": [0, 0.69141, 0, 0, 0.78539],
+ "72": [0.06302, 0.69141, 0, 0, 0.7203],
+ "73": [0, 0.69141, 0, 0, 0.55448],
+ "74": [0.12604, 0.69141, 0, 0, 0.55231],
+ "75": [0, 0.69141, 0, 0, 0.66845],
+ "76": [0, 0.69141, 0, 0, 0.66602],
+ "77": [0, 0.69141, 0, 0, 1.04953],
+ "78": [0, 0.69141, 0, 0, 0.83212],
+ "79": [0, 0.69141, 0, 0, 0.82699],
+ "80": [0.18906, 0.69141, 0, 0, 0.82753],
+ "81": [0.03781, 0.69141, 0, 0, 0.82699],
+ "82": [0, 0.69141, 0, 0, 0.82807],
+ "83": [0, 0.69141, 0, 0, 0.82861],
+ "84": [0, 0.69141, 0, 0, 0.66899],
+ "85": [0, 0.69141, 0, 0, 0.64576],
+ "86": [0, 0.69141, 0, 0, 0.83131],
+ "87": [0, 0.69141, 0, 0, 1.04602],
+ "88": [0, 0.69141, 0, 0, 0.71922],
+ "89": [0.18906, 0.69141, 0, 0, 0.83293],
+ "90": [0.12604, 0.69141, 0, 0, 0.60201],
+ "91": [0.24982, 0.74947, 0, 0, 0.27764],
+ "93": [0.24982, 0.74947, 0, 0, 0.27764],
+ "94": [0, 0.69141, 0, 0, 0.49965],
+ "97": [0, 0.47534, 0, 0, 0.50046],
+ "98": [0, 0.69141, 0, 0, 0.51315],
+ "99": [0, 0.47534, 0, 0, 0.38946],
+ "100": [0, 0.62119, 0, 0, 0.49857],
+ "101": [0, 0.47534, 0, 0, 0.40053],
+ "102": [0.18906, 0.69141, 0, 0, 0.32626],
+ "103": [0.18906, 0.47534, 0, 0, 0.5037],
+ "104": [0.18906, 0.69141, 0, 0, 0.52126],
+ "105": [0, 0.69141, 0, 0, 0.27899],
+ "106": [0, 0.69141, 0, 0, 0.28088],
+ "107": [0, 0.69141, 0, 0, 0.38946],
+ "108": [0, 0.69141, 0, 0, 0.27953],
+ "109": [0, 0.47534, 0, 0, 0.76676],
+ "110": [0, 0.47534, 0, 0, 0.52666],
+ "111": [0, 0.47534, 0, 0, 0.48885],
+ "112": [0.18906, 0.52396, 0, 0, 0.50046],
+ "113": [0.18906, 0.47534, 0, 0, 0.48912],
+ "114": [0, 0.47534, 0, 0, 0.38919],
+ "115": [0, 0.47534, 0, 0, 0.44266],
+ "116": [0, 0.62119, 0, 0, 0.33301],
+ "117": [0, 0.47534, 0, 0, 0.5172],
+ "118": [0, 0.52396, 0, 0, 0.5118],
+ "119": [0, 0.52396, 0, 0, 0.77351],
+ "120": [0.18906, 0.47534, 0, 0, 0.38865],
+ "121": [0.18906, 0.47534, 0, 0, 0.49884],
+ "122": [0.18906, 0.47534, 0, 0, 0.39054],
+ "160": [0, 0, 0, 0, 0.25],
+ "8216": [0, 0.69141, 0, 0, 0.21471],
+ "8217": [0, 0.69141, 0, 0, 0.21471],
+ "58112": [0, 0.62119, 0, 0, 0.49749],
+ "58113": [0, 0.62119, 0, 0, 0.4983],
+ "58114": [0.18906, 0.69141, 0, 0, 0.33328],
+ "58115": [0.18906, 0.69141, 0, 0, 0.32923],
+ "58116": [0.18906, 0.47534, 0, 0, 0.50343],
+ "58117": [0, 0.69141, 0, 0, 0.33301],
+ "58118": [0, 0.62119, 0, 0, 0.33409],
+ "58119": [0, 0.47534, 0, 0, 0.50073]
+ },
+ "Main-Bold": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69444, 0, 0, 0.35],
+ "34": [0, 0.69444, 0, 0, 0.60278],
+ "35": [0.19444, 0.69444, 0, 0, 0.95833],
+ "36": [0.05556, 0.75, 0, 0, 0.575],
+ "37": [0.05556, 0.75, 0, 0, 0.95833],
+ "38": [0, 0.69444, 0, 0, 0.89444],
+ "39": [0, 0.69444, 0, 0, 0.31944],
+ "40": [0.25, 0.75, 0, 0, 0.44722],
+ "41": [0.25, 0.75, 0, 0, 0.44722],
+ "42": [0, 0.75, 0, 0, 0.575],
+ "43": [0.13333, 0.63333, 0, 0, 0.89444],
+ "44": [0.19444, 0.15556, 0, 0, 0.31944],
+ "45": [0, 0.44444, 0, 0, 0.38333],
+ "46": [0, 0.15556, 0, 0, 0.31944],
+ "47": [0.25, 0.75, 0, 0, 0.575],
+ "48": [0, 0.64444, 0, 0, 0.575],
+ "49": [0, 0.64444, 0, 0, 0.575],
+ "50": [0, 0.64444, 0, 0, 0.575],
+ "51": [0, 0.64444, 0, 0, 0.575],
+ "52": [0, 0.64444, 0, 0, 0.575],
+ "53": [0, 0.64444, 0, 0, 0.575],
+ "54": [0, 0.64444, 0, 0, 0.575],
+ "55": [0, 0.64444, 0, 0, 0.575],
+ "56": [0, 0.64444, 0, 0, 0.575],
+ "57": [0, 0.64444, 0, 0, 0.575],
+ "58": [0, 0.44444, 0, 0, 0.31944],
+ "59": [0.19444, 0.44444, 0, 0, 0.31944],
+ "60": [0.08556, 0.58556, 0, 0, 0.89444],
+ "61": [-0.10889, 0.39111, 0, 0, 0.89444],
+ "62": [0.08556, 0.58556, 0, 0, 0.89444],
+ "63": [0, 0.69444, 0, 0, 0.54305],
+ "64": [0, 0.69444, 0, 0, 0.89444],
+ "65": [0, 0.68611, 0, 0, 0.86944],
+ "66": [0, 0.68611, 0, 0, 0.81805],
+ "67": [0, 0.68611, 0, 0, 0.83055],
+ "68": [0, 0.68611, 0, 0, 0.88194],
+ "69": [0, 0.68611, 0, 0, 0.75555],
+ "70": [0, 0.68611, 0, 0, 0.72361],
+ "71": [0, 0.68611, 0, 0, 0.90416],
+ "72": [0, 0.68611, 0, 0, 0.9],
+ "73": [0, 0.68611, 0, 0, 0.43611],
+ "74": [0, 0.68611, 0, 0, 0.59444],
+ "75": [0, 0.68611, 0, 0, 0.90138],
+ "76": [0, 0.68611, 0, 0, 0.69166],
+ "77": [0, 0.68611, 0, 0, 1.09166],
+ "78": [0, 0.68611, 0, 0, 0.9],
+ "79": [0, 0.68611, 0, 0, 0.86388],
+ "80": [0, 0.68611, 0, 0, 0.78611],
+ "81": [0.19444, 0.68611, 0, 0, 0.86388],
+ "82": [0, 0.68611, 0, 0, 0.8625],
+ "83": [0, 0.68611, 0, 0, 0.63889],
+ "84": [0, 0.68611, 0, 0, 0.8],
+ "85": [0, 0.68611, 0, 0, 0.88472],
+ "86": [0, 0.68611, 0.01597, 0, 0.86944],
+ "87": [0, 0.68611, 0.01597, 0, 1.18888],
+ "88": [0, 0.68611, 0, 0, 0.86944],
+ "89": [0, 0.68611, 0.02875, 0, 0.86944],
+ "90": [0, 0.68611, 0, 0, 0.70277],
+ "91": [0.25, 0.75, 0, 0, 0.31944],
+ "92": [0.25, 0.75, 0, 0, 0.575],
+ "93": [0.25, 0.75, 0, 0, 0.31944],
+ "94": [0, 0.69444, 0, 0, 0.575],
+ "95": [0.31, 0.13444, 0.03194, 0, 0.575],
+ "97": [0, 0.44444, 0, 0, 0.55902],
+ "98": [0, 0.69444, 0, 0, 0.63889],
+ "99": [0, 0.44444, 0, 0, 0.51111],
+ "100": [0, 0.69444, 0, 0, 0.63889],
+ "101": [0, 0.44444, 0, 0, 0.52708],
+ "102": [0, 0.69444, 0.10903, 0, 0.35139],
+ "103": [0.19444, 0.44444, 0.01597, 0, 0.575],
+ "104": [0, 0.69444, 0, 0, 0.63889],
+ "105": [0, 0.69444, 0, 0, 0.31944],
+ "106": [0.19444, 0.69444, 0, 0, 0.35139],
+ "107": [0, 0.69444, 0, 0, 0.60694],
+ "108": [0, 0.69444, 0, 0, 0.31944],
+ "109": [0, 0.44444, 0, 0, 0.95833],
+ "110": [0, 0.44444, 0, 0, 0.63889],
+ "111": [0, 0.44444, 0, 0, 0.575],
+ "112": [0.19444, 0.44444, 0, 0, 0.63889],
+ "113": [0.19444, 0.44444, 0, 0, 0.60694],
+ "114": [0, 0.44444, 0, 0, 0.47361],
+ "115": [0, 0.44444, 0, 0, 0.45361],
+ "116": [0, 0.63492, 0, 0, 0.44722],
+ "117": [0, 0.44444, 0, 0, 0.63889],
+ "118": [0, 0.44444, 0.01597, 0, 0.60694],
+ "119": [0, 0.44444, 0.01597, 0, 0.83055],
+ "120": [0, 0.44444, 0, 0, 0.60694],
+ "121": [0.19444, 0.44444, 0.01597, 0, 0.60694],
+ "122": [0, 0.44444, 0, 0, 0.51111],
+ "123": [0.25, 0.75, 0, 0, 0.575],
+ "124": [0.25, 0.75, 0, 0, 0.31944],
+ "125": [0.25, 0.75, 0, 0, 0.575],
+ "126": [0.35, 0.34444, 0, 0, 0.575],
+ "160": [0, 0, 0, 0, 0.25],
+ "163": [0, 0.69444, 0, 0, 0.86853],
+ "168": [0, 0.69444, 0, 0, 0.575],
+ "172": [0, 0.44444, 0, 0, 0.76666],
+ "176": [0, 0.69444, 0, 0, 0.86944],
+ "177": [0.13333, 0.63333, 0, 0, 0.89444],
+ "184": [0.17014, 0, 0, 0, 0.51111],
+ "198": [0, 0.68611, 0, 0, 1.04166],
+ "215": [0.13333, 0.63333, 0, 0, 0.89444],
+ "216": [0.04861, 0.73472, 0, 0, 0.89444],
+ "223": [0, 0.69444, 0, 0, 0.59722],
+ "230": [0, 0.44444, 0, 0, 0.83055],
+ "247": [0.13333, 0.63333, 0, 0, 0.89444],
+ "248": [0.09722, 0.54167, 0, 0, 0.575],
+ "305": [0, 0.44444, 0, 0, 0.31944],
+ "338": [0, 0.68611, 0, 0, 1.16944],
+ "339": [0, 0.44444, 0, 0, 0.89444],
+ "567": [0.19444, 0.44444, 0, 0, 0.35139],
+ "710": [0, 0.69444, 0, 0, 0.575],
+ "711": [0, 0.63194, 0, 0, 0.575],
+ "713": [0, 0.59611, 0, 0, 0.575],
+ "714": [0, 0.69444, 0, 0, 0.575],
+ "715": [0, 0.69444, 0, 0, 0.575],
+ "728": [0, 0.69444, 0, 0, 0.575],
+ "729": [0, 0.69444, 0, 0, 0.31944],
+ "730": [0, 0.69444, 0, 0, 0.86944],
+ "732": [0, 0.69444, 0, 0, 0.575],
+ "733": [0, 0.69444, 0, 0, 0.575],
+ "915": [0, 0.68611, 0, 0, 0.69166],
+ "916": [0, 0.68611, 0, 0, 0.95833],
+ "920": [0, 0.68611, 0, 0, 0.89444],
+ "923": [0, 0.68611, 0, 0, 0.80555],
+ "926": [0, 0.68611, 0, 0, 0.76666],
+ "928": [0, 0.68611, 0, 0, 0.9],
+ "931": [0, 0.68611, 0, 0, 0.83055],
+ "933": [0, 0.68611, 0, 0, 0.89444],
+ "934": [0, 0.68611, 0, 0, 0.83055],
+ "936": [0, 0.68611, 0, 0, 0.89444],
+ "937": [0, 0.68611, 0, 0, 0.83055],
+ "8211": [0, 0.44444, 0.03194, 0, 0.575],
+ "8212": [0, 0.44444, 0.03194, 0, 1.14999],
+ "8216": [0, 0.69444, 0, 0, 0.31944],
+ "8217": [0, 0.69444, 0, 0, 0.31944],
+ "8220": [0, 0.69444, 0, 0, 0.60278],
+ "8221": [0, 0.69444, 0, 0, 0.60278],
+ "8224": [0.19444, 0.69444, 0, 0, 0.51111],
+ "8225": [0.19444, 0.69444, 0, 0, 0.51111],
+ "8242": [0, 0.55556, 0, 0, 0.34444],
+ "8407": [0, 0.72444, 0.15486, 0, 0.575],
+ "8463": [0, 0.69444, 0, 0, 0.66759],
+ "8465": [0, 0.69444, 0, 0, 0.83055],
+ "8467": [0, 0.69444, 0, 0, 0.47361],
+ "8472": [0.19444, 0.44444, 0, 0, 0.74027],
+ "8476": [0, 0.69444, 0, 0, 0.83055],
+ "8501": [0, 0.69444, 0, 0, 0.70277],
+ "8592": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8593": [0.19444, 0.69444, 0, 0, 0.575],
+ "8594": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8595": [0.19444, 0.69444, 0, 0, 0.575],
+ "8596": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8597": [0.25, 0.75, 0, 0, 0.575],
+ "8598": [0.19444, 0.69444, 0, 0, 1.14999],
+ "8599": [0.19444, 0.69444, 0, 0, 1.14999],
+ "8600": [0.19444, 0.69444, 0, 0, 1.14999],
+ "8601": [0.19444, 0.69444, 0, 0, 1.14999],
+ "8636": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8637": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8640": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8641": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8656": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8657": [0.19444, 0.69444, 0, 0, 0.70277],
+ "8658": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8659": [0.19444, 0.69444, 0, 0, 0.70277],
+ "8660": [-0.10889, 0.39111, 0, 0, 1.14999],
+ "8661": [0.25, 0.75, 0, 0, 0.70277],
+ "8704": [0, 0.69444, 0, 0, 0.63889],
+ "8706": [0, 0.69444, 0.06389, 0, 0.62847],
+ "8707": [0, 0.69444, 0, 0, 0.63889],
+ "8709": [0.05556, 0.75, 0, 0, 0.575],
+ "8711": [0, 0.68611, 0, 0, 0.95833],
+ "8712": [0.08556, 0.58556, 0, 0, 0.76666],
+ "8715": [0.08556, 0.58556, 0, 0, 0.76666],
+ "8722": [0.13333, 0.63333, 0, 0, 0.89444],
+ "8723": [0.13333, 0.63333, 0, 0, 0.89444],
+ "8725": [0.25, 0.75, 0, 0, 0.575],
+ "8726": [0.25, 0.75, 0, 0, 0.575],
+ "8727": [-0.02778, 0.47222, 0, 0, 0.575],
+ "8728": [-0.02639, 0.47361, 0, 0, 0.575],
+ "8729": [-0.02639, 0.47361, 0, 0, 0.575],
+ "8730": [0.18, 0.82, 0, 0, 0.95833],
+ "8733": [0, 0.44444, 0, 0, 0.89444],
+ "8734": [0, 0.44444, 0, 0, 1.14999],
+ "8736": [0, 0.69224, 0, 0, 0.72222],
+ "8739": [0.25, 0.75, 0, 0, 0.31944],
+ "8741": [0.25, 0.75, 0, 0, 0.575],
+ "8743": [0, 0.55556, 0, 0, 0.76666],
+ "8744": [0, 0.55556, 0, 0, 0.76666],
+ "8745": [0, 0.55556, 0, 0, 0.76666],
+ "8746": [0, 0.55556, 0, 0, 0.76666],
+ "8747": [0.19444, 0.69444, 0.12778, 0, 0.56875],
+ "8764": [-0.10889, 0.39111, 0, 0, 0.89444],
+ "8768": [0.19444, 0.69444, 0, 0, 0.31944],
+ "8771": [222e-5, 0.50222, 0, 0, 0.89444],
+ "8773": [0.027, 0.638, 0, 0, 0.894],
+ "8776": [0.02444, 0.52444, 0, 0, 0.89444],
+ "8781": [222e-5, 0.50222, 0, 0, 0.89444],
+ "8801": [222e-5, 0.50222, 0, 0, 0.89444],
+ "8804": [0.19667, 0.69667, 0, 0, 0.89444],
+ "8805": [0.19667, 0.69667, 0, 0, 0.89444],
+ "8810": [0.08556, 0.58556, 0, 0, 1.14999],
+ "8811": [0.08556, 0.58556, 0, 0, 1.14999],
+ "8826": [0.08556, 0.58556, 0, 0, 0.89444],
+ "8827": [0.08556, 0.58556, 0, 0, 0.89444],
+ "8834": [0.08556, 0.58556, 0, 0, 0.89444],
+ "8835": [0.08556, 0.58556, 0, 0, 0.89444],
+ "8838": [0.19667, 0.69667, 0, 0, 0.89444],
+ "8839": [0.19667, 0.69667, 0, 0, 0.89444],
+ "8846": [0, 0.55556, 0, 0, 0.76666],
+ "8849": [0.19667, 0.69667, 0, 0, 0.89444],
+ "8850": [0.19667, 0.69667, 0, 0, 0.89444],
+ "8851": [0, 0.55556, 0, 0, 0.76666],
+ "8852": [0, 0.55556, 0, 0, 0.76666],
+ "8853": [0.13333, 0.63333, 0, 0, 0.89444],
+ "8854": [0.13333, 0.63333, 0, 0, 0.89444],
+ "8855": [0.13333, 0.63333, 0, 0, 0.89444],
+ "8856": [0.13333, 0.63333, 0, 0, 0.89444],
+ "8857": [0.13333, 0.63333, 0, 0, 0.89444],
+ "8866": [0, 0.69444, 0, 0, 0.70277],
+ "8867": [0, 0.69444, 0, 0, 0.70277],
+ "8868": [0, 0.69444, 0, 0, 0.89444],
+ "8869": [0, 0.69444, 0, 0, 0.89444],
+ "8900": [-0.02639, 0.47361, 0, 0, 0.575],
+ "8901": [-0.02639, 0.47361, 0, 0, 0.31944],
+ "8902": [-0.02778, 0.47222, 0, 0, 0.575],
+ "8968": [0.25, 0.75, 0, 0, 0.51111],
+ "8969": [0.25, 0.75, 0, 0, 0.51111],
+ "8970": [0.25, 0.75, 0, 0, 0.51111],
+ "8971": [0.25, 0.75, 0, 0, 0.51111],
+ "8994": [-0.13889, 0.36111, 0, 0, 1.14999],
+ "8995": [-0.13889, 0.36111, 0, 0, 1.14999],
+ "9651": [0.19444, 0.69444, 0, 0, 1.02222],
+ "9657": [-0.02778, 0.47222, 0, 0, 0.575],
+ "9661": [0.19444, 0.69444, 0, 0, 1.02222],
+ "9667": [-0.02778, 0.47222, 0, 0, 0.575],
+ "9711": [0.19444, 0.69444, 0, 0, 1.14999],
+ "9824": [0.12963, 0.69444, 0, 0, 0.89444],
+ "9825": [0.12963, 0.69444, 0, 0, 0.89444],
+ "9826": [0.12963, 0.69444, 0, 0, 0.89444],
+ "9827": [0.12963, 0.69444, 0, 0, 0.89444],
+ "9837": [0, 0.75, 0, 0, 0.44722],
+ "9838": [0.19444, 0.69444, 0, 0, 0.44722],
+ "9839": [0.19444, 0.69444, 0, 0, 0.44722],
+ "10216": [0.25, 0.75, 0, 0, 0.44722],
+ "10217": [0.25, 0.75, 0, 0, 0.44722],
+ "10815": [0, 0.68611, 0, 0, 0.9],
+ "10927": [0.19667, 0.69667, 0, 0, 0.89444],
+ "10928": [0.19667, 0.69667, 0, 0, 0.89444],
+ "57376": [0.19444, 0.69444, 0, 0, 0]
+ },
+ "Main-BoldItalic": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69444, 0.11417, 0, 0.38611],
+ "34": [0, 0.69444, 0.07939, 0, 0.62055],
+ "35": [0.19444, 0.69444, 0.06833, 0, 0.94444],
+ "37": [0.05556, 0.75, 0.12861, 0, 0.94444],
+ "38": [0, 0.69444, 0.08528, 0, 0.88555],
+ "39": [0, 0.69444, 0.12945, 0, 0.35555],
+ "40": [0.25, 0.75, 0.15806, 0, 0.47333],
+ "41": [0.25, 0.75, 0.03306, 0, 0.47333],
+ "42": [0, 0.75, 0.14333, 0, 0.59111],
+ "43": [0.10333, 0.60333, 0.03306, 0, 0.88555],
+ "44": [0.19444, 0.14722, 0, 0, 0.35555],
+ "45": [0, 0.44444, 0.02611, 0, 0.41444],
+ "46": [0, 0.14722, 0, 0, 0.35555],
+ "47": [0.25, 0.75, 0.15806, 0, 0.59111],
+ "48": [0, 0.64444, 0.13167, 0, 0.59111],
+ "49": [0, 0.64444, 0.13167, 0, 0.59111],
+ "50": [0, 0.64444, 0.13167, 0, 0.59111],
+ "51": [0, 0.64444, 0.13167, 0, 0.59111],
+ "52": [0.19444, 0.64444, 0.13167, 0, 0.59111],
+ "53": [0, 0.64444, 0.13167, 0, 0.59111],
+ "54": [0, 0.64444, 0.13167, 0, 0.59111],
+ "55": [0.19444, 0.64444, 0.13167, 0, 0.59111],
+ "56": [0, 0.64444, 0.13167, 0, 0.59111],
+ "57": [0, 0.64444, 0.13167, 0, 0.59111],
+ "58": [0, 0.44444, 0.06695, 0, 0.35555],
+ "59": [0.19444, 0.44444, 0.06695, 0, 0.35555],
+ "61": [-0.10889, 0.39111, 0.06833, 0, 0.88555],
+ "63": [0, 0.69444, 0.11472, 0, 0.59111],
+ "64": [0, 0.69444, 0.09208, 0, 0.88555],
+ "65": [0, 0.68611, 0, 0, 0.86555],
+ "66": [0, 0.68611, 0.0992, 0, 0.81666],
+ "67": [0, 0.68611, 0.14208, 0, 0.82666],
+ "68": [0, 0.68611, 0.09062, 0, 0.87555],
+ "69": [0, 0.68611, 0.11431, 0, 0.75666],
+ "70": [0, 0.68611, 0.12903, 0, 0.72722],
+ "71": [0, 0.68611, 0.07347, 0, 0.89527],
+ "72": [0, 0.68611, 0.17208, 0, 0.8961],
+ "73": [0, 0.68611, 0.15681, 0, 0.47166],
+ "74": [0, 0.68611, 0.145, 0, 0.61055],
+ "75": [0, 0.68611, 0.14208, 0, 0.89499],
+ "76": [0, 0.68611, 0, 0, 0.69777],
+ "77": [0, 0.68611, 0.17208, 0, 1.07277],
+ "78": [0, 0.68611, 0.17208, 0, 0.8961],
+ "79": [0, 0.68611, 0.09062, 0, 0.85499],
+ "80": [0, 0.68611, 0.0992, 0, 0.78721],
+ "81": [0.19444, 0.68611, 0.09062, 0, 0.85499],
+ "82": [0, 0.68611, 0.02559, 0, 0.85944],
+ "83": [0, 0.68611, 0.11264, 0, 0.64999],
+ "84": [0, 0.68611, 0.12903, 0, 0.7961],
+ "85": [0, 0.68611, 0.17208, 0, 0.88083],
+ "86": [0, 0.68611, 0.18625, 0, 0.86555],
+ "87": [0, 0.68611, 0.18625, 0, 1.15999],
+ "88": [0, 0.68611, 0.15681, 0, 0.86555],
+ "89": [0, 0.68611, 0.19803, 0, 0.86555],
+ "90": [0, 0.68611, 0.14208, 0, 0.70888],
+ "91": [0.25, 0.75, 0.1875, 0, 0.35611],
+ "93": [0.25, 0.75, 0.09972, 0, 0.35611],
+ "94": [0, 0.69444, 0.06709, 0, 0.59111],
+ "95": [0.31, 0.13444, 0.09811, 0, 0.59111],
+ "97": [0, 0.44444, 0.09426, 0, 0.59111],
+ "98": [0, 0.69444, 0.07861, 0, 0.53222],
+ "99": [0, 0.44444, 0.05222, 0, 0.53222],
+ "100": [0, 0.69444, 0.10861, 0, 0.59111],
+ "101": [0, 0.44444, 0.085, 0, 0.53222],
+ "102": [0.19444, 0.69444, 0.21778, 0, 0.4],
+ "103": [0.19444, 0.44444, 0.105, 0, 0.53222],
+ "104": [0, 0.69444, 0.09426, 0, 0.59111],
+ "105": [0, 0.69326, 0.11387, 0, 0.35555],
+ "106": [0.19444, 0.69326, 0.1672, 0, 0.35555],
+ "107": [0, 0.69444, 0.11111, 0, 0.53222],
+ "108": [0, 0.69444, 0.10861, 0, 0.29666],
+ "109": [0, 0.44444, 0.09426, 0, 0.94444],
+ "110": [0, 0.44444, 0.09426, 0, 0.64999],
+ "111": [0, 0.44444, 0.07861, 0, 0.59111],
+ "112": [0.19444, 0.44444, 0.07861, 0, 0.59111],
+ "113": [0.19444, 0.44444, 0.105, 0, 0.53222],
+ "114": [0, 0.44444, 0.11111, 0, 0.50167],
+ "115": [0, 0.44444, 0.08167, 0, 0.48694],
+ "116": [0, 0.63492, 0.09639, 0, 0.385],
+ "117": [0, 0.44444, 0.09426, 0, 0.62055],
+ "118": [0, 0.44444, 0.11111, 0, 0.53222],
+ "119": [0, 0.44444, 0.11111, 0, 0.76777],
+ "120": [0, 0.44444, 0.12583, 0, 0.56055],
+ "121": [0.19444, 0.44444, 0.105, 0, 0.56166],
+ "122": [0, 0.44444, 0.13889, 0, 0.49055],
+ "126": [0.35, 0.34444, 0.11472, 0, 0.59111],
+ "160": [0, 0, 0, 0, 0.25],
+ "168": [0, 0.69444, 0.11473, 0, 0.59111],
+ "176": [0, 0.69444, 0, 0, 0.94888],
+ "184": [0.17014, 0, 0, 0, 0.53222],
+ "198": [0, 0.68611, 0.11431, 0, 1.02277],
+ "216": [0.04861, 0.73472, 0.09062, 0, 0.88555],
+ "223": [0.19444, 0.69444, 0.09736, 0, 0.665],
+ "230": [0, 0.44444, 0.085, 0, 0.82666],
+ "248": [0.09722, 0.54167, 0.09458, 0, 0.59111],
+ "305": [0, 0.44444, 0.09426, 0, 0.35555],
+ "338": [0, 0.68611, 0.11431, 0, 1.14054],
+ "339": [0, 0.44444, 0.085, 0, 0.82666],
+ "567": [0.19444, 0.44444, 0.04611, 0, 0.385],
+ "710": [0, 0.69444, 0.06709, 0, 0.59111],
+ "711": [0, 0.63194, 0.08271, 0, 0.59111],
+ "713": [0, 0.59444, 0.10444, 0, 0.59111],
+ "714": [0, 0.69444, 0.08528, 0, 0.59111],
+ "715": [0, 0.69444, 0, 0, 0.59111],
+ "728": [0, 0.69444, 0.10333, 0, 0.59111],
+ "729": [0, 0.69444, 0.12945, 0, 0.35555],
+ "730": [0, 0.69444, 0, 0, 0.94888],
+ "732": [0, 0.69444, 0.11472, 0, 0.59111],
+ "733": [0, 0.69444, 0.11472, 0, 0.59111],
+ "915": [0, 0.68611, 0.12903, 0, 0.69777],
+ "916": [0, 0.68611, 0, 0, 0.94444],
+ "920": [0, 0.68611, 0.09062, 0, 0.88555],
+ "923": [0, 0.68611, 0, 0, 0.80666],
+ "926": [0, 0.68611, 0.15092, 0, 0.76777],
+ "928": [0, 0.68611, 0.17208, 0, 0.8961],
+ "931": [0, 0.68611, 0.11431, 0, 0.82666],
+ "933": [0, 0.68611, 0.10778, 0, 0.88555],
+ "934": [0, 0.68611, 0.05632, 0, 0.82666],
+ "936": [0, 0.68611, 0.10778, 0, 0.88555],
+ "937": [0, 0.68611, 0.0992, 0, 0.82666],
+ "8211": [0, 0.44444, 0.09811, 0, 0.59111],
+ "8212": [0, 0.44444, 0.09811, 0, 1.18221],
+ "8216": [0, 0.69444, 0.12945, 0, 0.35555],
+ "8217": [0, 0.69444, 0.12945, 0, 0.35555],
+ "8220": [0, 0.69444, 0.16772, 0, 0.62055],
+ "8221": [0, 0.69444, 0.07939, 0, 0.62055]
+ },
+ "Main-Italic": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69444, 0.12417, 0, 0.30667],
+ "34": [0, 0.69444, 0.06961, 0, 0.51444],
+ "35": [0.19444, 0.69444, 0.06616, 0, 0.81777],
+ "37": [0.05556, 0.75, 0.13639, 0, 0.81777],
+ "38": [0, 0.69444, 0.09694, 0, 0.76666],
+ "39": [0, 0.69444, 0.12417, 0, 0.30667],
+ "40": [0.25, 0.75, 0.16194, 0, 0.40889],
+ "41": [0.25, 0.75, 0.03694, 0, 0.40889],
+ "42": [0, 0.75, 0.14917, 0, 0.51111],
+ "43": [0.05667, 0.56167, 0.03694, 0, 0.76666],
+ "44": [0.19444, 0.10556, 0, 0, 0.30667],
+ "45": [0, 0.43056, 0.02826, 0, 0.35778],
+ "46": [0, 0.10556, 0, 0, 0.30667],
+ "47": [0.25, 0.75, 0.16194, 0, 0.51111],
+ "48": [0, 0.64444, 0.13556, 0, 0.51111],
+ "49": [0, 0.64444, 0.13556, 0, 0.51111],
+ "50": [0, 0.64444, 0.13556, 0, 0.51111],
+ "51": [0, 0.64444, 0.13556, 0, 0.51111],
+ "52": [0.19444, 0.64444, 0.13556, 0, 0.51111],
+ "53": [0, 0.64444, 0.13556, 0, 0.51111],
+ "54": [0, 0.64444, 0.13556, 0, 0.51111],
+ "55": [0.19444, 0.64444, 0.13556, 0, 0.51111],
+ "56": [0, 0.64444, 0.13556, 0, 0.51111],
+ "57": [0, 0.64444, 0.13556, 0, 0.51111],
+ "58": [0, 0.43056, 0.0582, 0, 0.30667],
+ "59": [0.19444, 0.43056, 0.0582, 0, 0.30667],
+ "61": [-0.13313, 0.36687, 0.06616, 0, 0.76666],
+ "63": [0, 0.69444, 0.1225, 0, 0.51111],
+ "64": [0, 0.69444, 0.09597, 0, 0.76666],
+ "65": [0, 0.68333, 0, 0, 0.74333],
+ "66": [0, 0.68333, 0.10257, 0, 0.70389],
+ "67": [0, 0.68333, 0.14528, 0, 0.71555],
+ "68": [0, 0.68333, 0.09403, 0, 0.755],
+ "69": [0, 0.68333, 0.12028, 0, 0.67833],
+ "70": [0, 0.68333, 0.13305, 0, 0.65277],
+ "71": [0, 0.68333, 0.08722, 0, 0.77361],
+ "72": [0, 0.68333, 0.16389, 0, 0.74333],
+ "73": [0, 0.68333, 0.15806, 0, 0.38555],
+ "74": [0, 0.68333, 0.14028, 0, 0.525],
+ "75": [0, 0.68333, 0.14528, 0, 0.76888],
+ "76": [0, 0.68333, 0, 0, 0.62722],
+ "77": [0, 0.68333, 0.16389, 0, 0.89666],
+ "78": [0, 0.68333, 0.16389, 0, 0.74333],
+ "79": [0, 0.68333, 0.09403, 0, 0.76666],
+ "80": [0, 0.68333, 0.10257, 0, 0.67833],
+ "81": [0.19444, 0.68333, 0.09403, 0, 0.76666],
+ "82": [0, 0.68333, 0.03868, 0, 0.72944],
+ "83": [0, 0.68333, 0.11972, 0, 0.56222],
+ "84": [0, 0.68333, 0.13305, 0, 0.71555],
+ "85": [0, 0.68333, 0.16389, 0, 0.74333],
+ "86": [0, 0.68333, 0.18361, 0, 0.74333],
+ "87": [0, 0.68333, 0.18361, 0, 0.99888],
+ "88": [0, 0.68333, 0.15806, 0, 0.74333],
+ "89": [0, 0.68333, 0.19383, 0, 0.74333],
+ "90": [0, 0.68333, 0.14528, 0, 0.61333],
+ "91": [0.25, 0.75, 0.1875, 0, 0.30667],
+ "93": [0.25, 0.75, 0.10528, 0, 0.30667],
+ "94": [0, 0.69444, 0.06646, 0, 0.51111],
+ "95": [0.31, 0.12056, 0.09208, 0, 0.51111],
+ "97": [0, 0.43056, 0.07671, 0, 0.51111],
+ "98": [0, 0.69444, 0.06312, 0, 0.46],
+ "99": [0, 0.43056, 0.05653, 0, 0.46],
+ "100": [0, 0.69444, 0.10333, 0, 0.51111],
+ "101": [0, 0.43056, 0.07514, 0, 0.46],
+ "102": [0.19444, 0.69444, 0.21194, 0, 0.30667],
+ "103": [0.19444, 0.43056, 0.08847, 0, 0.46],
+ "104": [0, 0.69444, 0.07671, 0, 0.51111],
+ "105": [0, 0.65536, 0.1019, 0, 0.30667],
+ "106": [0.19444, 0.65536, 0.14467, 0, 0.30667],
+ "107": [0, 0.69444, 0.10764, 0, 0.46],
+ "108": [0, 0.69444, 0.10333, 0, 0.25555],
+ "109": [0, 0.43056, 0.07671, 0, 0.81777],
+ "110": [0, 0.43056, 0.07671, 0, 0.56222],
+ "111": [0, 0.43056, 0.06312, 0, 0.51111],
+ "112": [0.19444, 0.43056, 0.06312, 0, 0.51111],
+ "113": [0.19444, 0.43056, 0.08847, 0, 0.46],
+ "114": [0, 0.43056, 0.10764, 0, 0.42166],
+ "115": [0, 0.43056, 0.08208, 0, 0.40889],
+ "116": [0, 0.61508, 0.09486, 0, 0.33222],
+ "117": [0, 0.43056, 0.07671, 0, 0.53666],
+ "118": [0, 0.43056, 0.10764, 0, 0.46],
+ "119": [0, 0.43056, 0.10764, 0, 0.66444],
+ "120": [0, 0.43056, 0.12042, 0, 0.46389],
+ "121": [0.19444, 0.43056, 0.08847, 0, 0.48555],
+ "122": [0, 0.43056, 0.12292, 0, 0.40889],
+ "126": [0.35, 0.31786, 0.11585, 0, 0.51111],
+ "160": [0, 0, 0, 0, 0.25],
+ "168": [0, 0.66786, 0.10474, 0, 0.51111],
+ "176": [0, 0.69444, 0, 0, 0.83129],
+ "184": [0.17014, 0, 0, 0, 0.46],
+ "198": [0, 0.68333, 0.12028, 0, 0.88277],
+ "216": [0.04861, 0.73194, 0.09403, 0, 0.76666],
+ "223": [0.19444, 0.69444, 0.10514, 0, 0.53666],
+ "230": [0, 0.43056, 0.07514, 0, 0.71555],
+ "248": [0.09722, 0.52778, 0.09194, 0, 0.51111],
+ "338": [0, 0.68333, 0.12028, 0, 0.98499],
+ "339": [0, 0.43056, 0.07514, 0, 0.71555],
+ "710": [0, 0.69444, 0.06646, 0, 0.51111],
+ "711": [0, 0.62847, 0.08295, 0, 0.51111],
+ "713": [0, 0.56167, 0.10333, 0, 0.51111],
+ "714": [0, 0.69444, 0.09694, 0, 0.51111],
+ "715": [0, 0.69444, 0, 0, 0.51111],
+ "728": [0, 0.69444, 0.10806, 0, 0.51111],
+ "729": [0, 0.66786, 0.11752, 0, 0.30667],
+ "730": [0, 0.69444, 0, 0, 0.83129],
+ "732": [0, 0.66786, 0.11585, 0, 0.51111],
+ "733": [0, 0.69444, 0.1225, 0, 0.51111],
+ "915": [0, 0.68333, 0.13305, 0, 0.62722],
+ "916": [0, 0.68333, 0, 0, 0.81777],
+ "920": [0, 0.68333, 0.09403, 0, 0.76666],
+ "923": [0, 0.68333, 0, 0, 0.69222],
+ "926": [0, 0.68333, 0.15294, 0, 0.66444],
+ "928": [0, 0.68333, 0.16389, 0, 0.74333],
+ "931": [0, 0.68333, 0.12028, 0, 0.71555],
+ "933": [0, 0.68333, 0.11111, 0, 0.76666],
+ "934": [0, 0.68333, 0.05986, 0, 0.71555],
+ "936": [0, 0.68333, 0.11111, 0, 0.76666],
+ "937": [0, 0.68333, 0.10257, 0, 0.71555],
+ "8211": [0, 0.43056, 0.09208, 0, 0.51111],
+ "8212": [0, 0.43056, 0.09208, 0, 1.02222],
+ "8216": [0, 0.69444, 0.12417, 0, 0.30667],
+ "8217": [0, 0.69444, 0.12417, 0, 0.30667],
+ "8220": [0, 0.69444, 0.1685, 0, 0.51444],
+ "8221": [0, 0.69444, 0.06961, 0, 0.51444],
+ "8463": [0, 0.68889, 0, 0, 0.54028]
+ },
+ "Main-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69444, 0, 0, 0.27778],
+ "34": [0, 0.69444, 0, 0, 0.5],
+ "35": [0.19444, 0.69444, 0, 0, 0.83334],
+ "36": [0.05556, 0.75, 0, 0, 0.5],
+ "37": [0.05556, 0.75, 0, 0, 0.83334],
+ "38": [0, 0.69444, 0, 0, 0.77778],
+ "39": [0, 0.69444, 0, 0, 0.27778],
+ "40": [0.25, 0.75, 0, 0, 0.38889],
+ "41": [0.25, 0.75, 0, 0, 0.38889],
+ "42": [0, 0.75, 0, 0, 0.5],
+ "43": [0.08333, 0.58333, 0, 0, 0.77778],
+ "44": [0.19444, 0.10556, 0, 0, 0.27778],
+ "45": [0, 0.43056, 0, 0, 0.33333],
+ "46": [0, 0.10556, 0, 0, 0.27778],
+ "47": [0.25, 0.75, 0, 0, 0.5],
+ "48": [0, 0.64444, 0, 0, 0.5],
+ "49": [0, 0.64444, 0, 0, 0.5],
+ "50": [0, 0.64444, 0, 0, 0.5],
+ "51": [0, 0.64444, 0, 0, 0.5],
+ "52": [0, 0.64444, 0, 0, 0.5],
+ "53": [0, 0.64444, 0, 0, 0.5],
+ "54": [0, 0.64444, 0, 0, 0.5],
+ "55": [0, 0.64444, 0, 0, 0.5],
+ "56": [0, 0.64444, 0, 0, 0.5],
+ "57": [0, 0.64444, 0, 0, 0.5],
+ "58": [0, 0.43056, 0, 0, 0.27778],
+ "59": [0.19444, 0.43056, 0, 0, 0.27778],
+ "60": [0.0391, 0.5391, 0, 0, 0.77778],
+ "61": [-0.13313, 0.36687, 0, 0, 0.77778],
+ "62": [0.0391, 0.5391, 0, 0, 0.77778],
+ "63": [0, 0.69444, 0, 0, 0.47222],
+ "64": [0, 0.69444, 0, 0, 0.77778],
+ "65": [0, 0.68333, 0, 0, 0.75],
+ "66": [0, 0.68333, 0, 0, 0.70834],
+ "67": [0, 0.68333, 0, 0, 0.72222],
+ "68": [0, 0.68333, 0, 0, 0.76389],
+ "69": [0, 0.68333, 0, 0, 0.68056],
+ "70": [0, 0.68333, 0, 0, 0.65278],
+ "71": [0, 0.68333, 0, 0, 0.78472],
+ "72": [0, 0.68333, 0, 0, 0.75],
+ "73": [0, 0.68333, 0, 0, 0.36111],
+ "74": [0, 0.68333, 0, 0, 0.51389],
+ "75": [0, 0.68333, 0, 0, 0.77778],
+ "76": [0, 0.68333, 0, 0, 0.625],
+ "77": [0, 0.68333, 0, 0, 0.91667],
+ "78": [0, 0.68333, 0, 0, 0.75],
+ "79": [0, 0.68333, 0, 0, 0.77778],
+ "80": [0, 0.68333, 0, 0, 0.68056],
+ "81": [0.19444, 0.68333, 0, 0, 0.77778],
+ "82": [0, 0.68333, 0, 0, 0.73611],
+ "83": [0, 0.68333, 0, 0, 0.55556],
+ "84": [0, 0.68333, 0, 0, 0.72222],
+ "85": [0, 0.68333, 0, 0, 0.75],
+ "86": [0, 0.68333, 0.01389, 0, 0.75],
+ "87": [0, 0.68333, 0.01389, 0, 1.02778],
+ "88": [0, 0.68333, 0, 0, 0.75],
+ "89": [0, 0.68333, 0.025, 0, 0.75],
+ "90": [0, 0.68333, 0, 0, 0.61111],
+ "91": [0.25, 0.75, 0, 0, 0.27778],
+ "92": [0.25, 0.75, 0, 0, 0.5],
+ "93": [0.25, 0.75, 0, 0, 0.27778],
+ "94": [0, 0.69444, 0, 0, 0.5],
+ "95": [0.31, 0.12056, 0.02778, 0, 0.5],
+ "97": [0, 0.43056, 0, 0, 0.5],
+ "98": [0, 0.69444, 0, 0, 0.55556],
+ "99": [0, 0.43056, 0, 0, 0.44445],
+ "100": [0, 0.69444, 0, 0, 0.55556],
+ "101": [0, 0.43056, 0, 0, 0.44445],
+ "102": [0, 0.69444, 0.07778, 0, 0.30556],
+ "103": [0.19444, 0.43056, 0.01389, 0, 0.5],
+ "104": [0, 0.69444, 0, 0, 0.55556],
+ "105": [0, 0.66786, 0, 0, 0.27778],
+ "106": [0.19444, 0.66786, 0, 0, 0.30556],
+ "107": [0, 0.69444, 0, 0, 0.52778],
+ "108": [0, 0.69444, 0, 0, 0.27778],
+ "109": [0, 0.43056, 0, 0, 0.83334],
+ "110": [0, 0.43056, 0, 0, 0.55556],
+ "111": [0, 0.43056, 0, 0, 0.5],
+ "112": [0.19444, 0.43056, 0, 0, 0.55556],
+ "113": [0.19444, 0.43056, 0, 0, 0.52778],
+ "114": [0, 0.43056, 0, 0, 0.39167],
+ "115": [0, 0.43056, 0, 0, 0.39445],
+ "116": [0, 0.61508, 0, 0, 0.38889],
+ "117": [0, 0.43056, 0, 0, 0.55556],
+ "118": [0, 0.43056, 0.01389, 0, 0.52778],
+ "119": [0, 0.43056, 0.01389, 0, 0.72222],
+ "120": [0, 0.43056, 0, 0, 0.52778],
+ "121": [0.19444, 0.43056, 0.01389, 0, 0.52778],
+ "122": [0, 0.43056, 0, 0, 0.44445],
+ "123": [0.25, 0.75, 0, 0, 0.5],
+ "124": [0.25, 0.75, 0, 0, 0.27778],
+ "125": [0.25, 0.75, 0, 0, 0.5],
+ "126": [0.35, 0.31786, 0, 0, 0.5],
+ "160": [0, 0, 0, 0, 0.25],
+ "163": [0, 0.69444, 0, 0, 0.76909],
+ "167": [0.19444, 0.69444, 0, 0, 0.44445],
+ "168": [0, 0.66786, 0, 0, 0.5],
+ "172": [0, 0.43056, 0, 0, 0.66667],
+ "176": [0, 0.69444, 0, 0, 0.75],
+ "177": [0.08333, 0.58333, 0, 0, 0.77778],
+ "182": [0.19444, 0.69444, 0, 0, 0.61111],
+ "184": [0.17014, 0, 0, 0, 0.44445],
+ "198": [0, 0.68333, 0, 0, 0.90278],
+ "215": [0.08333, 0.58333, 0, 0, 0.77778],
+ "216": [0.04861, 0.73194, 0, 0, 0.77778],
+ "223": [0, 0.69444, 0, 0, 0.5],
+ "230": [0, 0.43056, 0, 0, 0.72222],
+ "247": [0.08333, 0.58333, 0, 0, 0.77778],
+ "248": [0.09722, 0.52778, 0, 0, 0.5],
+ "305": [0, 0.43056, 0, 0, 0.27778],
+ "338": [0, 0.68333, 0, 0, 1.01389],
+ "339": [0, 0.43056, 0, 0, 0.77778],
+ "567": [0.19444, 0.43056, 0, 0, 0.30556],
+ "710": [0, 0.69444, 0, 0, 0.5],
+ "711": [0, 0.62847, 0, 0, 0.5],
+ "713": [0, 0.56778, 0, 0, 0.5],
+ "714": [0, 0.69444, 0, 0, 0.5],
+ "715": [0, 0.69444, 0, 0, 0.5],
+ "728": [0, 0.69444, 0, 0, 0.5],
+ "729": [0, 0.66786, 0, 0, 0.27778],
+ "730": [0, 0.69444, 0, 0, 0.75],
+ "732": [0, 0.66786, 0, 0, 0.5],
+ "733": [0, 0.69444, 0, 0, 0.5],
+ "915": [0, 0.68333, 0, 0, 0.625],
+ "916": [0, 0.68333, 0, 0, 0.83334],
+ "920": [0, 0.68333, 0, 0, 0.77778],
+ "923": [0, 0.68333, 0, 0, 0.69445],
+ "926": [0, 0.68333, 0, 0, 0.66667],
+ "928": [0, 0.68333, 0, 0, 0.75],
+ "931": [0, 0.68333, 0, 0, 0.72222],
+ "933": [0, 0.68333, 0, 0, 0.77778],
+ "934": [0, 0.68333, 0, 0, 0.72222],
+ "936": [0, 0.68333, 0, 0, 0.77778],
+ "937": [0, 0.68333, 0, 0, 0.72222],
+ "8211": [0, 0.43056, 0.02778, 0, 0.5],
+ "8212": [0, 0.43056, 0.02778, 0, 1],
+ "8216": [0, 0.69444, 0, 0, 0.27778],
+ "8217": [0, 0.69444, 0, 0, 0.27778],
+ "8220": [0, 0.69444, 0, 0, 0.5],
+ "8221": [0, 0.69444, 0, 0, 0.5],
+ "8224": [0.19444, 0.69444, 0, 0, 0.44445],
+ "8225": [0.19444, 0.69444, 0, 0, 0.44445],
+ "8230": [0, 0.123, 0, 0, 1.172],
+ "8242": [0, 0.55556, 0, 0, 0.275],
+ "8407": [0, 0.71444, 0.15382, 0, 0.5],
+ "8463": [0, 0.68889, 0, 0, 0.54028],
+ "8465": [0, 0.69444, 0, 0, 0.72222],
+ "8467": [0, 0.69444, 0, 0.11111, 0.41667],
+ "8472": [0.19444, 0.43056, 0, 0.11111, 0.63646],
+ "8476": [0, 0.69444, 0, 0, 0.72222],
+ "8501": [0, 0.69444, 0, 0, 0.61111],
+ "8592": [-0.13313, 0.36687, 0, 0, 1],
+ "8593": [0.19444, 0.69444, 0, 0, 0.5],
+ "8594": [-0.13313, 0.36687, 0, 0, 1],
+ "8595": [0.19444, 0.69444, 0, 0, 0.5],
+ "8596": [-0.13313, 0.36687, 0, 0, 1],
+ "8597": [0.25, 0.75, 0, 0, 0.5],
+ "8598": [0.19444, 0.69444, 0, 0, 1],
+ "8599": [0.19444, 0.69444, 0, 0, 1],
+ "8600": [0.19444, 0.69444, 0, 0, 1],
+ "8601": [0.19444, 0.69444, 0, 0, 1],
+ "8614": [0.011, 0.511, 0, 0, 1],
+ "8617": [0.011, 0.511, 0, 0, 1.126],
+ "8618": [0.011, 0.511, 0, 0, 1.126],
+ "8636": [-0.13313, 0.36687, 0, 0, 1],
+ "8637": [-0.13313, 0.36687, 0, 0, 1],
+ "8640": [-0.13313, 0.36687, 0, 0, 1],
+ "8641": [-0.13313, 0.36687, 0, 0, 1],
+ "8652": [0.011, 0.671, 0, 0, 1],
+ "8656": [-0.13313, 0.36687, 0, 0, 1],
+ "8657": [0.19444, 0.69444, 0, 0, 0.61111],
+ "8658": [-0.13313, 0.36687, 0, 0, 1],
+ "8659": [0.19444, 0.69444, 0, 0, 0.61111],
+ "8660": [-0.13313, 0.36687, 0, 0, 1],
+ "8661": [0.25, 0.75, 0, 0, 0.61111],
+ "8704": [0, 0.69444, 0, 0, 0.55556],
+ "8706": [0, 0.69444, 0.05556, 0.08334, 0.5309],
+ "8707": [0, 0.69444, 0, 0, 0.55556],
+ "8709": [0.05556, 0.75, 0, 0, 0.5],
+ "8711": [0, 0.68333, 0, 0, 0.83334],
+ "8712": [0.0391, 0.5391, 0, 0, 0.66667],
+ "8715": [0.0391, 0.5391, 0, 0, 0.66667],
+ "8722": [0.08333, 0.58333, 0, 0, 0.77778],
+ "8723": [0.08333, 0.58333, 0, 0, 0.77778],
+ "8725": [0.25, 0.75, 0, 0, 0.5],
+ "8726": [0.25, 0.75, 0, 0, 0.5],
+ "8727": [-0.03472, 0.46528, 0, 0, 0.5],
+ "8728": [-0.05555, 0.44445, 0, 0, 0.5],
+ "8729": [-0.05555, 0.44445, 0, 0, 0.5],
+ "8730": [0.2, 0.8, 0, 0, 0.83334],
+ "8733": [0, 0.43056, 0, 0, 0.77778],
+ "8734": [0, 0.43056, 0, 0, 1],
+ "8736": [0, 0.69224, 0, 0, 0.72222],
+ "8739": [0.25, 0.75, 0, 0, 0.27778],
+ "8741": [0.25, 0.75, 0, 0, 0.5],
+ "8743": [0, 0.55556, 0, 0, 0.66667],
+ "8744": [0, 0.55556, 0, 0, 0.66667],
+ "8745": [0, 0.55556, 0, 0, 0.66667],
+ "8746": [0, 0.55556, 0, 0, 0.66667],
+ "8747": [0.19444, 0.69444, 0.11111, 0, 0.41667],
+ "8764": [-0.13313, 0.36687, 0, 0, 0.77778],
+ "8768": [0.19444, 0.69444, 0, 0, 0.27778],
+ "8771": [-0.03625, 0.46375, 0, 0, 0.77778],
+ "8773": [-0.022, 0.589, 0, 0, 0.778],
+ "8776": [-0.01688, 0.48312, 0, 0, 0.77778],
+ "8781": [-0.03625, 0.46375, 0, 0, 0.77778],
+ "8784": [-0.133, 0.673, 0, 0, 0.778],
+ "8801": [-0.03625, 0.46375, 0, 0, 0.77778],
+ "8804": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8805": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8810": [0.0391, 0.5391, 0, 0, 1],
+ "8811": [0.0391, 0.5391, 0, 0, 1],
+ "8826": [0.0391, 0.5391, 0, 0, 0.77778],
+ "8827": [0.0391, 0.5391, 0, 0, 0.77778],
+ "8834": [0.0391, 0.5391, 0, 0, 0.77778],
+ "8835": [0.0391, 0.5391, 0, 0, 0.77778],
+ "8838": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8839": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8846": [0, 0.55556, 0, 0, 0.66667],
+ "8849": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8850": [0.13597, 0.63597, 0, 0, 0.77778],
+ "8851": [0, 0.55556, 0, 0, 0.66667],
+ "8852": [0, 0.55556, 0, 0, 0.66667],
+ "8853": [0.08333, 0.58333, 0, 0, 0.77778],
+ "8854": [0.08333, 0.58333, 0, 0, 0.77778],
+ "8855": [0.08333, 0.58333, 0, 0, 0.77778],
+ "8856": [0.08333, 0.58333, 0, 0, 0.77778],
+ "8857": [0.08333, 0.58333, 0, 0, 0.77778],
+ "8866": [0, 0.69444, 0, 0, 0.61111],
+ "8867": [0, 0.69444, 0, 0, 0.61111],
+ "8868": [0, 0.69444, 0, 0, 0.77778],
+ "8869": [0, 0.69444, 0, 0, 0.77778],
+ "8872": [0.249, 0.75, 0, 0, 0.867],
+ "8900": [-0.05555, 0.44445, 0, 0, 0.5],
+ "8901": [-0.05555, 0.44445, 0, 0, 0.27778],
+ "8902": [-0.03472, 0.46528, 0, 0, 0.5],
+ "8904": [5e-3, 0.505, 0, 0, 0.9],
+ "8942": [0.03, 0.903, 0, 0, 0.278],
+ "8943": [-0.19, 0.313, 0, 0, 1.172],
+ "8945": [-0.1, 0.823, 0, 0, 1.282],
+ "8968": [0.25, 0.75, 0, 0, 0.44445],
+ "8969": [0.25, 0.75, 0, 0, 0.44445],
+ "8970": [0.25, 0.75, 0, 0, 0.44445],
+ "8971": [0.25, 0.75, 0, 0, 0.44445],
+ "8994": [-0.14236, 0.35764, 0, 0, 1],
+ "8995": [-0.14236, 0.35764, 0, 0, 1],
+ "9136": [0.244, 0.744, 0, 0, 0.412],
+ "9137": [0.244, 0.745, 0, 0, 0.412],
+ "9651": [0.19444, 0.69444, 0, 0, 0.88889],
+ "9657": [-0.03472, 0.46528, 0, 0, 0.5],
+ "9661": [0.19444, 0.69444, 0, 0, 0.88889],
+ "9667": [-0.03472, 0.46528, 0, 0, 0.5],
+ "9711": [0.19444, 0.69444, 0, 0, 1],
+ "9824": [0.12963, 0.69444, 0, 0, 0.77778],
+ "9825": [0.12963, 0.69444, 0, 0, 0.77778],
+ "9826": [0.12963, 0.69444, 0, 0, 0.77778],
+ "9827": [0.12963, 0.69444, 0, 0, 0.77778],
+ "9837": [0, 0.75, 0, 0, 0.38889],
+ "9838": [0.19444, 0.69444, 0, 0, 0.38889],
+ "9839": [0.19444, 0.69444, 0, 0, 0.38889],
+ "10216": [0.25, 0.75, 0, 0, 0.38889],
+ "10217": [0.25, 0.75, 0, 0, 0.38889],
+ "10222": [0.244, 0.744, 0, 0, 0.412],
+ "10223": [0.244, 0.745, 0, 0, 0.412],
+ "10229": [0.011, 0.511, 0, 0, 1.609],
+ "10230": [0.011, 0.511, 0, 0, 1.638],
+ "10231": [0.011, 0.511, 0, 0, 1.859],
+ "10232": [0.024, 0.525, 0, 0, 1.609],
+ "10233": [0.024, 0.525, 0, 0, 1.638],
+ "10234": [0.024, 0.525, 0, 0, 1.858],
+ "10236": [0.011, 0.511, 0, 0, 1.638],
+ "10815": [0, 0.68333, 0, 0, 0.75],
+ "10927": [0.13597, 0.63597, 0, 0, 0.77778],
+ "10928": [0.13597, 0.63597, 0, 0, 0.77778],
+ "57376": [0.19444, 0.69444, 0, 0, 0]
+ },
+ "Math-BoldItalic": {
+ "32": [0, 0, 0, 0, 0.25],
+ "48": [0, 0.44444, 0, 0, 0.575],
+ "49": [0, 0.44444, 0, 0, 0.575],
+ "50": [0, 0.44444, 0, 0, 0.575],
+ "51": [0.19444, 0.44444, 0, 0, 0.575],
+ "52": [0.19444, 0.44444, 0, 0, 0.575],
+ "53": [0.19444, 0.44444, 0, 0, 0.575],
+ "54": [0, 0.64444, 0, 0, 0.575],
+ "55": [0.19444, 0.44444, 0, 0, 0.575],
+ "56": [0, 0.64444, 0, 0, 0.575],
+ "57": [0.19444, 0.44444, 0, 0, 0.575],
+ "65": [0, 0.68611, 0, 0, 0.86944],
+ "66": [0, 0.68611, 0.04835, 0, 0.8664],
+ "67": [0, 0.68611, 0.06979, 0, 0.81694],
+ "68": [0, 0.68611, 0.03194, 0, 0.93812],
+ "69": [0, 0.68611, 0.05451, 0, 0.81007],
+ "70": [0, 0.68611, 0.15972, 0, 0.68889],
+ "71": [0, 0.68611, 0, 0, 0.88673],
+ "72": [0, 0.68611, 0.08229, 0, 0.98229],
+ "73": [0, 0.68611, 0.07778, 0, 0.51111],
+ "74": [0, 0.68611, 0.10069, 0, 0.63125],
+ "75": [0, 0.68611, 0.06979, 0, 0.97118],
+ "76": [0, 0.68611, 0, 0, 0.75555],
+ "77": [0, 0.68611, 0.11424, 0, 1.14201],
+ "78": [0, 0.68611, 0.11424, 0, 0.95034],
+ "79": [0, 0.68611, 0.03194, 0, 0.83666],
+ "80": [0, 0.68611, 0.15972, 0, 0.72309],
+ "81": [0.19444, 0.68611, 0, 0, 0.86861],
+ "82": [0, 0.68611, 421e-5, 0, 0.87235],
+ "83": [0, 0.68611, 0.05382, 0, 0.69271],
+ "84": [0, 0.68611, 0.15972, 0, 0.63663],
+ "85": [0, 0.68611, 0.11424, 0, 0.80027],
+ "86": [0, 0.68611, 0.25555, 0, 0.67778],
+ "87": [0, 0.68611, 0.15972, 0, 1.09305],
+ "88": [0, 0.68611, 0.07778, 0, 0.94722],
+ "89": [0, 0.68611, 0.25555, 0, 0.67458],
+ "90": [0, 0.68611, 0.06979, 0, 0.77257],
+ "97": [0, 0.44444, 0, 0, 0.63287],
+ "98": [0, 0.69444, 0, 0, 0.52083],
+ "99": [0, 0.44444, 0, 0, 0.51342],
+ "100": [0, 0.69444, 0, 0, 0.60972],
+ "101": [0, 0.44444, 0, 0, 0.55361],
+ "102": [0.19444, 0.69444, 0.11042, 0, 0.56806],
+ "103": [0.19444, 0.44444, 0.03704, 0, 0.5449],
+ "104": [0, 0.69444, 0, 0, 0.66759],
+ "105": [0, 0.69326, 0, 0, 0.4048],
+ "106": [0.19444, 0.69326, 0.0622, 0, 0.47083],
+ "107": [0, 0.69444, 0.01852, 0, 0.6037],
+ "108": [0, 0.69444, 88e-4, 0, 0.34815],
+ "109": [0, 0.44444, 0, 0, 1.0324],
+ "110": [0, 0.44444, 0, 0, 0.71296],
+ "111": [0, 0.44444, 0, 0, 0.58472],
+ "112": [0.19444, 0.44444, 0, 0, 0.60092],
+ "113": [0.19444, 0.44444, 0.03704, 0, 0.54213],
+ "114": [0, 0.44444, 0.03194, 0, 0.5287],
+ "115": [0, 0.44444, 0, 0, 0.53125],
+ "116": [0, 0.63492, 0, 0, 0.41528],
+ "117": [0, 0.44444, 0, 0, 0.68102],
+ "118": [0, 0.44444, 0.03704, 0, 0.56666],
+ "119": [0, 0.44444, 0.02778, 0, 0.83148],
+ "120": [0, 0.44444, 0, 0, 0.65903],
+ "121": [0.19444, 0.44444, 0.03704, 0, 0.59028],
+ "122": [0, 0.44444, 0.04213, 0, 0.55509],
+ "160": [0, 0, 0, 0, 0.25],
+ "915": [0, 0.68611, 0.15972, 0, 0.65694],
+ "916": [0, 0.68611, 0, 0, 0.95833],
+ "920": [0, 0.68611, 0.03194, 0, 0.86722],
+ "923": [0, 0.68611, 0, 0, 0.80555],
+ "926": [0, 0.68611, 0.07458, 0, 0.84125],
+ "928": [0, 0.68611, 0.08229, 0, 0.98229],
+ "931": [0, 0.68611, 0.05451, 0, 0.88507],
+ "933": [0, 0.68611, 0.15972, 0, 0.67083],
+ "934": [0, 0.68611, 0, 0, 0.76666],
+ "936": [0, 0.68611, 0.11653, 0, 0.71402],
+ "937": [0, 0.68611, 0.04835, 0, 0.8789],
+ "945": [0, 0.44444, 0, 0, 0.76064],
+ "946": [0.19444, 0.69444, 0.03403, 0, 0.65972],
+ "947": [0.19444, 0.44444, 0.06389, 0, 0.59003],
+ "948": [0, 0.69444, 0.03819, 0, 0.52222],
+ "949": [0, 0.44444, 0, 0, 0.52882],
+ "950": [0.19444, 0.69444, 0.06215, 0, 0.50833],
+ "951": [0.19444, 0.44444, 0.03704, 0, 0.6],
+ "952": [0, 0.69444, 0.03194, 0, 0.5618],
+ "953": [0, 0.44444, 0, 0, 0.41204],
+ "954": [0, 0.44444, 0, 0, 0.66759],
+ "955": [0, 0.69444, 0, 0, 0.67083],
+ "956": [0.19444, 0.44444, 0, 0, 0.70787],
+ "957": [0, 0.44444, 0.06898, 0, 0.57685],
+ "958": [0.19444, 0.69444, 0.03021, 0, 0.50833],
+ "959": [0, 0.44444, 0, 0, 0.58472],
+ "960": [0, 0.44444, 0.03704, 0, 0.68241],
+ "961": [0.19444, 0.44444, 0, 0, 0.6118],
+ "962": [0.09722, 0.44444, 0.07917, 0, 0.42361],
+ "963": [0, 0.44444, 0.03704, 0, 0.68588],
+ "964": [0, 0.44444, 0.13472, 0, 0.52083],
+ "965": [0, 0.44444, 0.03704, 0, 0.63055],
+ "966": [0.19444, 0.44444, 0, 0, 0.74722],
+ "967": [0.19444, 0.44444, 0, 0, 0.71805],
+ "968": [0.19444, 0.69444, 0.03704, 0, 0.75833],
+ "969": [0, 0.44444, 0.03704, 0, 0.71782],
+ "977": [0, 0.69444, 0, 0, 0.69155],
+ "981": [0.19444, 0.69444, 0, 0, 0.7125],
+ "982": [0, 0.44444, 0.03194, 0, 0.975],
+ "1009": [0.19444, 0.44444, 0, 0, 0.6118],
+ "1013": [0, 0.44444, 0, 0, 0.48333],
+ "57649": [0, 0.44444, 0, 0, 0.39352],
+ "57911": [0.19444, 0.44444, 0, 0, 0.43889]
+ },
+ "Math-Italic": {
+ "32": [0, 0, 0, 0, 0.25],
+ "48": [0, 0.43056, 0, 0, 0.5],
+ "49": [0, 0.43056, 0, 0, 0.5],
+ "50": [0, 0.43056, 0, 0, 0.5],
+ "51": [0.19444, 0.43056, 0, 0, 0.5],
+ "52": [0.19444, 0.43056, 0, 0, 0.5],
+ "53": [0.19444, 0.43056, 0, 0, 0.5],
+ "54": [0, 0.64444, 0, 0, 0.5],
+ "55": [0.19444, 0.43056, 0, 0, 0.5],
+ "56": [0, 0.64444, 0, 0, 0.5],
+ "57": [0.19444, 0.43056, 0, 0, 0.5],
+ "65": [0, 0.68333, 0, 0.13889, 0.75],
+ "66": [0, 0.68333, 0.05017, 0.08334, 0.75851],
+ "67": [0, 0.68333, 0.07153, 0.08334, 0.71472],
+ "68": [0, 0.68333, 0.02778, 0.05556, 0.82792],
+ "69": [0, 0.68333, 0.05764, 0.08334, 0.7382],
+ "70": [0, 0.68333, 0.13889, 0.08334, 0.64306],
+ "71": [0, 0.68333, 0, 0.08334, 0.78625],
+ "72": [0, 0.68333, 0.08125, 0.05556, 0.83125],
+ "73": [0, 0.68333, 0.07847, 0.11111, 0.43958],
+ "74": [0, 0.68333, 0.09618, 0.16667, 0.55451],
+ "75": [0, 0.68333, 0.07153, 0.05556, 0.84931],
+ "76": [0, 0.68333, 0, 0.02778, 0.68056],
+ "77": [0, 0.68333, 0.10903, 0.08334, 0.97014],
+ "78": [0, 0.68333, 0.10903, 0.08334, 0.80347],
+ "79": [0, 0.68333, 0.02778, 0.08334, 0.76278],
+ "80": [0, 0.68333, 0.13889, 0.08334, 0.64201],
+ "81": [0.19444, 0.68333, 0, 0.08334, 0.79056],
+ "82": [0, 0.68333, 773e-5, 0.08334, 0.75929],
+ "83": [0, 0.68333, 0.05764, 0.08334, 0.6132],
+ "84": [0, 0.68333, 0.13889, 0.08334, 0.58438],
+ "85": [0, 0.68333, 0.10903, 0.02778, 0.68278],
+ "86": [0, 0.68333, 0.22222, 0, 0.58333],
+ "87": [0, 0.68333, 0.13889, 0, 0.94445],
+ "88": [0, 0.68333, 0.07847, 0.08334, 0.82847],
+ "89": [0, 0.68333, 0.22222, 0, 0.58056],
+ "90": [0, 0.68333, 0.07153, 0.08334, 0.68264],
+ "97": [0, 0.43056, 0, 0, 0.52859],
+ "98": [0, 0.69444, 0, 0, 0.42917],
+ "99": [0, 0.43056, 0, 0.05556, 0.43276],
+ "100": [0, 0.69444, 0, 0.16667, 0.52049],
+ "101": [0, 0.43056, 0, 0.05556, 0.46563],
+ "102": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],
+ "103": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],
+ "104": [0, 0.69444, 0, 0, 0.57616],
+ "105": [0, 0.65952, 0, 0, 0.34451],
+ "106": [0.19444, 0.65952, 0.05724, 0, 0.41181],
+ "107": [0, 0.69444, 0.03148, 0, 0.5206],
+ "108": [0, 0.69444, 0.01968, 0.08334, 0.29838],
+ "109": [0, 0.43056, 0, 0, 0.87801],
+ "110": [0, 0.43056, 0, 0, 0.60023],
+ "111": [0, 0.43056, 0, 0.05556, 0.48472],
+ "112": [0.19444, 0.43056, 0, 0.08334, 0.50313],
+ "113": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],
+ "114": [0, 0.43056, 0.02778, 0.05556, 0.45116],
+ "115": [0, 0.43056, 0, 0.05556, 0.46875],
+ "116": [0, 0.61508, 0, 0.08334, 0.36111],
+ "117": [0, 0.43056, 0, 0.02778, 0.57246],
+ "118": [0, 0.43056, 0.03588, 0.02778, 0.48472],
+ "119": [0, 0.43056, 0.02691, 0.08334, 0.71592],
+ "120": [0, 0.43056, 0, 0.02778, 0.57153],
+ "121": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],
+ "122": [0, 0.43056, 0.04398, 0.05556, 0.46505],
+ "160": [0, 0, 0, 0, 0.25],
+ "915": [0, 0.68333, 0.13889, 0.08334, 0.61528],
+ "916": [0, 0.68333, 0, 0.16667, 0.83334],
+ "920": [0, 0.68333, 0.02778, 0.08334, 0.76278],
+ "923": [0, 0.68333, 0, 0.16667, 0.69445],
+ "926": [0, 0.68333, 0.07569, 0.08334, 0.74236],
+ "928": [0, 0.68333, 0.08125, 0.05556, 0.83125],
+ "931": [0, 0.68333, 0.05764, 0.08334, 0.77986],
+ "933": [0, 0.68333, 0.13889, 0.05556, 0.58333],
+ "934": [0, 0.68333, 0, 0.08334, 0.66667],
+ "936": [0, 0.68333, 0.11, 0.05556, 0.61222],
+ "937": [0, 0.68333, 0.05017, 0.08334, 0.7724],
+ "945": [0, 0.43056, 37e-4, 0.02778, 0.6397],
+ "946": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],
+ "947": [0.19444, 0.43056, 0.05556, 0, 0.51773],
+ "948": [0, 0.69444, 0.03785, 0.05556, 0.44444],
+ "949": [0, 0.43056, 0, 0.08334, 0.46632],
+ "950": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],
+ "951": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],
+ "952": [0, 0.69444, 0.02778, 0.08334, 0.46944],
+ "953": [0, 0.43056, 0, 0.05556, 0.35394],
+ "954": [0, 0.43056, 0, 0, 0.57616],
+ "955": [0, 0.69444, 0, 0, 0.58334],
+ "956": [0.19444, 0.43056, 0, 0.02778, 0.60255],
+ "957": [0, 0.43056, 0.06366, 0.02778, 0.49398],
+ "958": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],
+ "959": [0, 0.43056, 0, 0.05556, 0.48472],
+ "960": [0, 0.43056, 0.03588, 0, 0.57003],
+ "961": [0.19444, 0.43056, 0, 0.08334, 0.51702],
+ "962": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],
+ "963": [0, 0.43056, 0.03588, 0, 0.57141],
+ "964": [0, 0.43056, 0.1132, 0.02778, 0.43715],
+ "965": [0, 0.43056, 0.03588, 0.02778, 0.54028],
+ "966": [0.19444, 0.43056, 0, 0.08334, 0.65417],
+ "967": [0.19444, 0.43056, 0, 0.05556, 0.62569],
+ "968": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],
+ "969": [0, 0.43056, 0.03588, 0, 0.62245],
+ "977": [0, 0.69444, 0, 0.08334, 0.59144],
+ "981": [0.19444, 0.69444, 0, 0.08334, 0.59583],
+ "982": [0, 0.43056, 0.02778, 0, 0.82813],
+ "1009": [0.19444, 0.43056, 0, 0.08334, 0.51702],
+ "1013": [0, 0.43056, 0, 0.05556, 0.4059],
+ "57649": [0, 0.43056, 0, 0.02778, 0.32246],
+ "57911": [0.19444, 0.43056, 0, 0.08334, 0.38403]
+ },
+ "SansSerif-Bold": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69444, 0, 0, 0.36667],
+ "34": [0, 0.69444, 0, 0, 0.55834],
+ "35": [0.19444, 0.69444, 0, 0, 0.91667],
+ "36": [0.05556, 0.75, 0, 0, 0.55],
+ "37": [0.05556, 0.75, 0, 0, 1.02912],
+ "38": [0, 0.69444, 0, 0, 0.83056],
+ "39": [0, 0.69444, 0, 0, 0.30556],
+ "40": [0.25, 0.75, 0, 0, 0.42778],
+ "41": [0.25, 0.75, 0, 0, 0.42778],
+ "42": [0, 0.75, 0, 0, 0.55],
+ "43": [0.11667, 0.61667, 0, 0, 0.85556],
+ "44": [0.10556, 0.13056, 0, 0, 0.30556],
+ "45": [0, 0.45833, 0, 0, 0.36667],
+ "46": [0, 0.13056, 0, 0, 0.30556],
+ "47": [0.25, 0.75, 0, 0, 0.55],
+ "48": [0, 0.69444, 0, 0, 0.55],
+ "49": [0, 0.69444, 0, 0, 0.55],
+ "50": [0, 0.69444, 0, 0, 0.55],
+ "51": [0, 0.69444, 0, 0, 0.55],
+ "52": [0, 0.69444, 0, 0, 0.55],
+ "53": [0, 0.69444, 0, 0, 0.55],
+ "54": [0, 0.69444, 0, 0, 0.55],
+ "55": [0, 0.69444, 0, 0, 0.55],
+ "56": [0, 0.69444, 0, 0, 0.55],
+ "57": [0, 0.69444, 0, 0, 0.55],
+ "58": [0, 0.45833, 0, 0, 0.30556],
+ "59": [0.10556, 0.45833, 0, 0, 0.30556],
+ "61": [-0.09375, 0.40625, 0, 0, 0.85556],
+ "63": [0, 0.69444, 0, 0, 0.51945],
+ "64": [0, 0.69444, 0, 0, 0.73334],
+ "65": [0, 0.69444, 0, 0, 0.73334],
+ "66": [0, 0.69444, 0, 0, 0.73334],
+ "67": [0, 0.69444, 0, 0, 0.70278],
+ "68": [0, 0.69444, 0, 0, 0.79445],
+ "69": [0, 0.69444, 0, 0, 0.64167],
+ "70": [0, 0.69444, 0, 0, 0.61111],
+ "71": [0, 0.69444, 0, 0, 0.73334],
+ "72": [0, 0.69444, 0, 0, 0.79445],
+ "73": [0, 0.69444, 0, 0, 0.33056],
+ "74": [0, 0.69444, 0, 0, 0.51945],
+ "75": [0, 0.69444, 0, 0, 0.76389],
+ "76": [0, 0.69444, 0, 0, 0.58056],
+ "77": [0, 0.69444, 0, 0, 0.97778],
+ "78": [0, 0.69444, 0, 0, 0.79445],
+ "79": [0, 0.69444, 0, 0, 0.79445],
+ "80": [0, 0.69444, 0, 0, 0.70278],
+ "81": [0.10556, 0.69444, 0, 0, 0.79445],
+ "82": [0, 0.69444, 0, 0, 0.70278],
+ "83": [0, 0.69444, 0, 0, 0.61111],
+ "84": [0, 0.69444, 0, 0, 0.73334],
+ "85": [0, 0.69444, 0, 0, 0.76389],
+ "86": [0, 0.69444, 0.01528, 0, 0.73334],
+ "87": [0, 0.69444, 0.01528, 0, 1.03889],
+ "88": [0, 0.69444, 0, 0, 0.73334],
+ "89": [0, 0.69444, 0.0275, 0, 0.73334],
+ "90": [0, 0.69444, 0, 0, 0.67223],
+ "91": [0.25, 0.75, 0, 0, 0.34306],
+ "93": [0.25, 0.75, 0, 0, 0.34306],
+ "94": [0, 0.69444, 0, 0, 0.55],
+ "95": [0.35, 0.10833, 0.03056, 0, 0.55],
+ "97": [0, 0.45833, 0, 0, 0.525],
+ "98": [0, 0.69444, 0, 0, 0.56111],
+ "99": [0, 0.45833, 0, 0, 0.48889],
+ "100": [0, 0.69444, 0, 0, 0.56111],
+ "101": [0, 0.45833, 0, 0, 0.51111],
+ "102": [0, 0.69444, 0.07639, 0, 0.33611],
+ "103": [0.19444, 0.45833, 0.01528, 0, 0.55],
+ "104": [0, 0.69444, 0, 0, 0.56111],
+ "105": [0, 0.69444, 0, 0, 0.25556],
+ "106": [0.19444, 0.69444, 0, 0, 0.28611],
+ "107": [0, 0.69444, 0, 0, 0.53056],
+ "108": [0, 0.69444, 0, 0, 0.25556],
+ "109": [0, 0.45833, 0, 0, 0.86667],
+ "110": [0, 0.45833, 0, 0, 0.56111],
+ "111": [0, 0.45833, 0, 0, 0.55],
+ "112": [0.19444, 0.45833, 0, 0, 0.56111],
+ "113": [0.19444, 0.45833, 0, 0, 0.56111],
+ "114": [0, 0.45833, 0.01528, 0, 0.37222],
+ "115": [0, 0.45833, 0, 0, 0.42167],
+ "116": [0, 0.58929, 0, 0, 0.40417],
+ "117": [0, 0.45833, 0, 0, 0.56111],
+ "118": [0, 0.45833, 0.01528, 0, 0.5],
+ "119": [0, 0.45833, 0.01528, 0, 0.74445],
+ "120": [0, 0.45833, 0, 0, 0.5],
+ "121": [0.19444, 0.45833, 0.01528, 0, 0.5],
+ "122": [0, 0.45833, 0, 0, 0.47639],
+ "126": [0.35, 0.34444, 0, 0, 0.55],
+ "160": [0, 0, 0, 0, 0.25],
+ "168": [0, 0.69444, 0, 0, 0.55],
+ "176": [0, 0.69444, 0, 0, 0.73334],
+ "180": [0, 0.69444, 0, 0, 0.55],
+ "184": [0.17014, 0, 0, 0, 0.48889],
+ "305": [0, 0.45833, 0, 0, 0.25556],
+ "567": [0.19444, 0.45833, 0, 0, 0.28611],
+ "710": [0, 0.69444, 0, 0, 0.55],
+ "711": [0, 0.63542, 0, 0, 0.55],
+ "713": [0, 0.63778, 0, 0, 0.55],
+ "728": [0, 0.69444, 0, 0, 0.55],
+ "729": [0, 0.69444, 0, 0, 0.30556],
+ "730": [0, 0.69444, 0, 0, 0.73334],
+ "732": [0, 0.69444, 0, 0, 0.55],
+ "733": [0, 0.69444, 0, 0, 0.55],
+ "915": [0, 0.69444, 0, 0, 0.58056],
+ "916": [0, 0.69444, 0, 0, 0.91667],
+ "920": [0, 0.69444, 0, 0, 0.85556],
+ "923": [0, 0.69444, 0, 0, 0.67223],
+ "926": [0, 0.69444, 0, 0, 0.73334],
+ "928": [0, 0.69444, 0, 0, 0.79445],
+ "931": [0, 0.69444, 0, 0, 0.79445],
+ "933": [0, 0.69444, 0, 0, 0.85556],
+ "934": [0, 0.69444, 0, 0, 0.79445],
+ "936": [0, 0.69444, 0, 0, 0.85556],
+ "937": [0, 0.69444, 0, 0, 0.79445],
+ "8211": [0, 0.45833, 0.03056, 0, 0.55],
+ "8212": [0, 0.45833, 0.03056, 0, 1.10001],
+ "8216": [0, 0.69444, 0, 0, 0.30556],
+ "8217": [0, 0.69444, 0, 0, 0.30556],
+ "8220": [0, 0.69444, 0, 0, 0.55834],
+ "8221": [0, 0.69444, 0, 0, 0.55834]
+ },
+ "SansSerif-Italic": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69444, 0.05733, 0, 0.31945],
+ "34": [0, 0.69444, 316e-5, 0, 0.5],
+ "35": [0.19444, 0.69444, 0.05087, 0, 0.83334],
+ "36": [0.05556, 0.75, 0.11156, 0, 0.5],
+ "37": [0.05556, 0.75, 0.03126, 0, 0.83334],
+ "38": [0, 0.69444, 0.03058, 0, 0.75834],
+ "39": [0, 0.69444, 0.07816, 0, 0.27778],
+ "40": [0.25, 0.75, 0.13164, 0, 0.38889],
+ "41": [0.25, 0.75, 0.02536, 0, 0.38889],
+ "42": [0, 0.75, 0.11775, 0, 0.5],
+ "43": [0.08333, 0.58333, 0.02536, 0, 0.77778],
+ "44": [0.125, 0.08333, 0, 0, 0.27778],
+ "45": [0, 0.44444, 0.01946, 0, 0.33333],
+ "46": [0, 0.08333, 0, 0, 0.27778],
+ "47": [0.25, 0.75, 0.13164, 0, 0.5],
+ "48": [0, 0.65556, 0.11156, 0, 0.5],
+ "49": [0, 0.65556, 0.11156, 0, 0.5],
+ "50": [0, 0.65556, 0.11156, 0, 0.5],
+ "51": [0, 0.65556, 0.11156, 0, 0.5],
+ "52": [0, 0.65556, 0.11156, 0, 0.5],
+ "53": [0, 0.65556, 0.11156, 0, 0.5],
+ "54": [0, 0.65556, 0.11156, 0, 0.5],
+ "55": [0, 0.65556, 0.11156, 0, 0.5],
+ "56": [0, 0.65556, 0.11156, 0, 0.5],
+ "57": [0, 0.65556, 0.11156, 0, 0.5],
+ "58": [0, 0.44444, 0.02502, 0, 0.27778],
+ "59": [0.125, 0.44444, 0.02502, 0, 0.27778],
+ "61": [-0.13, 0.37, 0.05087, 0, 0.77778],
+ "63": [0, 0.69444, 0.11809, 0, 0.47222],
+ "64": [0, 0.69444, 0.07555, 0, 0.66667],
+ "65": [0, 0.69444, 0, 0, 0.66667],
+ "66": [0, 0.69444, 0.08293, 0, 0.66667],
+ "67": [0, 0.69444, 0.11983, 0, 0.63889],
+ "68": [0, 0.69444, 0.07555, 0, 0.72223],
+ "69": [0, 0.69444, 0.11983, 0, 0.59722],
+ "70": [0, 0.69444, 0.13372, 0, 0.56945],
+ "71": [0, 0.69444, 0.11983, 0, 0.66667],
+ "72": [0, 0.69444, 0.08094, 0, 0.70834],
+ "73": [0, 0.69444, 0.13372, 0, 0.27778],
+ "74": [0, 0.69444, 0.08094, 0, 0.47222],
+ "75": [0, 0.69444, 0.11983, 0, 0.69445],
+ "76": [0, 0.69444, 0, 0, 0.54167],
+ "77": [0, 0.69444, 0.08094, 0, 0.875],
+ "78": [0, 0.69444, 0.08094, 0, 0.70834],
+ "79": [0, 0.69444, 0.07555, 0, 0.73611],
+ "80": [0, 0.69444, 0.08293, 0, 0.63889],
+ "81": [0.125, 0.69444, 0.07555, 0, 0.73611],
+ "82": [0, 0.69444, 0.08293, 0, 0.64584],
+ "83": [0, 0.69444, 0.09205, 0, 0.55556],
+ "84": [0, 0.69444, 0.13372, 0, 0.68056],
+ "85": [0, 0.69444, 0.08094, 0, 0.6875],
+ "86": [0, 0.69444, 0.1615, 0, 0.66667],
+ "87": [0, 0.69444, 0.1615, 0, 0.94445],
+ "88": [0, 0.69444, 0.13372, 0, 0.66667],
+ "89": [0, 0.69444, 0.17261, 0, 0.66667],
+ "90": [0, 0.69444, 0.11983, 0, 0.61111],
+ "91": [0.25, 0.75, 0.15942, 0, 0.28889],
+ "93": [0.25, 0.75, 0.08719, 0, 0.28889],
+ "94": [0, 0.69444, 0.0799, 0, 0.5],
+ "95": [0.35, 0.09444, 0.08616, 0, 0.5],
+ "97": [0, 0.44444, 981e-5, 0, 0.48056],
+ "98": [0, 0.69444, 0.03057, 0, 0.51667],
+ "99": [0, 0.44444, 0.08336, 0, 0.44445],
+ "100": [0, 0.69444, 0.09483, 0, 0.51667],
+ "101": [0, 0.44444, 0.06778, 0, 0.44445],
+ "102": [0, 0.69444, 0.21705, 0, 0.30556],
+ "103": [0.19444, 0.44444, 0.10836, 0, 0.5],
+ "104": [0, 0.69444, 0.01778, 0, 0.51667],
+ "105": [0, 0.67937, 0.09718, 0, 0.23889],
+ "106": [0.19444, 0.67937, 0.09162, 0, 0.26667],
+ "107": [0, 0.69444, 0.08336, 0, 0.48889],
+ "108": [0, 0.69444, 0.09483, 0, 0.23889],
+ "109": [0, 0.44444, 0.01778, 0, 0.79445],
+ "110": [0, 0.44444, 0.01778, 0, 0.51667],
+ "111": [0, 0.44444, 0.06613, 0, 0.5],
+ "112": [0.19444, 0.44444, 0.0389, 0, 0.51667],
+ "113": [0.19444, 0.44444, 0.04169, 0, 0.51667],
+ "114": [0, 0.44444, 0.10836, 0, 0.34167],
+ "115": [0, 0.44444, 0.0778, 0, 0.38333],
+ "116": [0, 0.57143, 0.07225, 0, 0.36111],
+ "117": [0, 0.44444, 0.04169, 0, 0.51667],
+ "118": [0, 0.44444, 0.10836, 0, 0.46111],
+ "119": [0, 0.44444, 0.10836, 0, 0.68334],
+ "120": [0, 0.44444, 0.09169, 0, 0.46111],
+ "121": [0.19444, 0.44444, 0.10836, 0, 0.46111],
+ "122": [0, 0.44444, 0.08752, 0, 0.43472],
+ "126": [0.35, 0.32659, 0.08826, 0, 0.5],
+ "160": [0, 0, 0, 0, 0.25],
+ "168": [0, 0.67937, 0.06385, 0, 0.5],
+ "176": [0, 0.69444, 0, 0, 0.73752],
+ "184": [0.17014, 0, 0, 0, 0.44445],
+ "305": [0, 0.44444, 0.04169, 0, 0.23889],
+ "567": [0.19444, 0.44444, 0.04169, 0, 0.26667],
+ "710": [0, 0.69444, 0.0799, 0, 0.5],
+ "711": [0, 0.63194, 0.08432, 0, 0.5],
+ "713": [0, 0.60889, 0.08776, 0, 0.5],
+ "714": [0, 0.69444, 0.09205, 0, 0.5],
+ "715": [0, 0.69444, 0, 0, 0.5],
+ "728": [0, 0.69444, 0.09483, 0, 0.5],
+ "729": [0, 0.67937, 0.07774, 0, 0.27778],
+ "730": [0, 0.69444, 0, 0, 0.73752],
+ "732": [0, 0.67659, 0.08826, 0, 0.5],
+ "733": [0, 0.69444, 0.09205, 0, 0.5],
+ "915": [0, 0.69444, 0.13372, 0, 0.54167],
+ "916": [0, 0.69444, 0, 0, 0.83334],
+ "920": [0, 0.69444, 0.07555, 0, 0.77778],
+ "923": [0, 0.69444, 0, 0, 0.61111],
+ "926": [0, 0.69444, 0.12816, 0, 0.66667],
+ "928": [0, 0.69444, 0.08094, 0, 0.70834],
+ "931": [0, 0.69444, 0.11983, 0, 0.72222],
+ "933": [0, 0.69444, 0.09031, 0, 0.77778],
+ "934": [0, 0.69444, 0.04603, 0, 0.72222],
+ "936": [0, 0.69444, 0.09031, 0, 0.77778],
+ "937": [0, 0.69444, 0.08293, 0, 0.72222],
+ "8211": [0, 0.44444, 0.08616, 0, 0.5],
+ "8212": [0, 0.44444, 0.08616, 0, 1],
+ "8216": [0, 0.69444, 0.07816, 0, 0.27778],
+ "8217": [0, 0.69444, 0.07816, 0, 0.27778],
+ "8220": [0, 0.69444, 0.14205, 0, 0.5],
+ "8221": [0, 0.69444, 316e-5, 0, 0.5]
+ },
+ "SansSerif-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "33": [0, 0.69444, 0, 0, 0.31945],
+ "34": [0, 0.69444, 0, 0, 0.5],
+ "35": [0.19444, 0.69444, 0, 0, 0.83334],
+ "36": [0.05556, 0.75, 0, 0, 0.5],
+ "37": [0.05556, 0.75, 0, 0, 0.83334],
+ "38": [0, 0.69444, 0, 0, 0.75834],
+ "39": [0, 0.69444, 0, 0, 0.27778],
+ "40": [0.25, 0.75, 0, 0, 0.38889],
+ "41": [0.25, 0.75, 0, 0, 0.38889],
+ "42": [0, 0.75, 0, 0, 0.5],
+ "43": [0.08333, 0.58333, 0, 0, 0.77778],
+ "44": [0.125, 0.08333, 0, 0, 0.27778],
+ "45": [0, 0.44444, 0, 0, 0.33333],
+ "46": [0, 0.08333, 0, 0, 0.27778],
+ "47": [0.25, 0.75, 0, 0, 0.5],
+ "48": [0, 0.65556, 0, 0, 0.5],
+ "49": [0, 0.65556, 0, 0, 0.5],
+ "50": [0, 0.65556, 0, 0, 0.5],
+ "51": [0, 0.65556, 0, 0, 0.5],
+ "52": [0, 0.65556, 0, 0, 0.5],
+ "53": [0, 0.65556, 0, 0, 0.5],
+ "54": [0, 0.65556, 0, 0, 0.5],
+ "55": [0, 0.65556, 0, 0, 0.5],
+ "56": [0, 0.65556, 0, 0, 0.5],
+ "57": [0, 0.65556, 0, 0, 0.5],
+ "58": [0, 0.44444, 0, 0, 0.27778],
+ "59": [0.125, 0.44444, 0, 0, 0.27778],
+ "61": [-0.13, 0.37, 0, 0, 0.77778],
+ "63": [0, 0.69444, 0, 0, 0.47222],
+ "64": [0, 0.69444, 0, 0, 0.66667],
+ "65": [0, 0.69444, 0, 0, 0.66667],
+ "66": [0, 0.69444, 0, 0, 0.66667],
+ "67": [0, 0.69444, 0, 0, 0.63889],
+ "68": [0, 0.69444, 0, 0, 0.72223],
+ "69": [0, 0.69444, 0, 0, 0.59722],
+ "70": [0, 0.69444, 0, 0, 0.56945],
+ "71": [0, 0.69444, 0, 0, 0.66667],
+ "72": [0, 0.69444, 0, 0, 0.70834],
+ "73": [0, 0.69444, 0, 0, 0.27778],
+ "74": [0, 0.69444, 0, 0, 0.47222],
+ "75": [0, 0.69444, 0, 0, 0.69445],
+ "76": [0, 0.69444, 0, 0, 0.54167],
+ "77": [0, 0.69444, 0, 0, 0.875],
+ "78": [0, 0.69444, 0, 0, 0.70834],
+ "79": [0, 0.69444, 0, 0, 0.73611],
+ "80": [0, 0.69444, 0, 0, 0.63889],
+ "81": [0.125, 0.69444, 0, 0, 0.73611],
+ "82": [0, 0.69444, 0, 0, 0.64584],
+ "83": [0, 0.69444, 0, 0, 0.55556],
+ "84": [0, 0.69444, 0, 0, 0.68056],
+ "85": [0, 0.69444, 0, 0, 0.6875],
+ "86": [0, 0.69444, 0.01389, 0, 0.66667],
+ "87": [0, 0.69444, 0.01389, 0, 0.94445],
+ "88": [0, 0.69444, 0, 0, 0.66667],
+ "89": [0, 0.69444, 0.025, 0, 0.66667],
+ "90": [0, 0.69444, 0, 0, 0.61111],
+ "91": [0.25, 0.75, 0, 0, 0.28889],
+ "93": [0.25, 0.75, 0, 0, 0.28889],
+ "94": [0, 0.69444, 0, 0, 0.5],
+ "95": [0.35, 0.09444, 0.02778, 0, 0.5],
+ "97": [0, 0.44444, 0, 0, 0.48056],
+ "98": [0, 0.69444, 0, 0, 0.51667],
+ "99": [0, 0.44444, 0, 0, 0.44445],
+ "100": [0, 0.69444, 0, 0, 0.51667],
+ "101": [0, 0.44444, 0, 0, 0.44445],
+ "102": [0, 0.69444, 0.06944, 0, 0.30556],
+ "103": [0.19444, 0.44444, 0.01389, 0, 0.5],
+ "104": [0, 0.69444, 0, 0, 0.51667],
+ "105": [0, 0.67937, 0, 0, 0.23889],
+ "106": [0.19444, 0.67937, 0, 0, 0.26667],
+ "107": [0, 0.69444, 0, 0, 0.48889],
+ "108": [0, 0.69444, 0, 0, 0.23889],
+ "109": [0, 0.44444, 0, 0, 0.79445],
+ "110": [0, 0.44444, 0, 0, 0.51667],
+ "111": [0, 0.44444, 0, 0, 0.5],
+ "112": [0.19444, 0.44444, 0, 0, 0.51667],
+ "113": [0.19444, 0.44444, 0, 0, 0.51667],
+ "114": [0, 0.44444, 0.01389, 0, 0.34167],
+ "115": [0, 0.44444, 0, 0, 0.38333],
+ "116": [0, 0.57143, 0, 0, 0.36111],
+ "117": [0, 0.44444, 0, 0, 0.51667],
+ "118": [0, 0.44444, 0.01389, 0, 0.46111],
+ "119": [0, 0.44444, 0.01389, 0, 0.68334],
+ "120": [0, 0.44444, 0, 0, 0.46111],
+ "121": [0.19444, 0.44444, 0.01389, 0, 0.46111],
+ "122": [0, 0.44444, 0, 0, 0.43472],
+ "126": [0.35, 0.32659, 0, 0, 0.5],
+ "160": [0, 0, 0, 0, 0.25],
+ "168": [0, 0.67937, 0, 0, 0.5],
+ "176": [0, 0.69444, 0, 0, 0.66667],
+ "184": [0.17014, 0, 0, 0, 0.44445],
+ "305": [0, 0.44444, 0, 0, 0.23889],
+ "567": [0.19444, 0.44444, 0, 0, 0.26667],
+ "710": [0, 0.69444, 0, 0, 0.5],
+ "711": [0, 0.63194, 0, 0, 0.5],
+ "713": [0, 0.60889, 0, 0, 0.5],
+ "714": [0, 0.69444, 0, 0, 0.5],
+ "715": [0, 0.69444, 0, 0, 0.5],
+ "728": [0, 0.69444, 0, 0, 0.5],
+ "729": [0, 0.67937, 0, 0, 0.27778],
+ "730": [0, 0.69444, 0, 0, 0.66667],
+ "732": [0, 0.67659, 0, 0, 0.5],
+ "733": [0, 0.69444, 0, 0, 0.5],
+ "915": [0, 0.69444, 0, 0, 0.54167],
+ "916": [0, 0.69444, 0, 0, 0.83334],
+ "920": [0, 0.69444, 0, 0, 0.77778],
+ "923": [0, 0.69444, 0, 0, 0.61111],
+ "926": [0, 0.69444, 0, 0, 0.66667],
+ "928": [0, 0.69444, 0, 0, 0.70834],
+ "931": [0, 0.69444, 0, 0, 0.72222],
+ "933": [0, 0.69444, 0, 0, 0.77778],
+ "934": [0, 0.69444, 0, 0, 0.72222],
+ "936": [0, 0.69444, 0, 0, 0.77778],
+ "937": [0, 0.69444, 0, 0, 0.72222],
+ "8211": [0, 0.44444, 0.02778, 0, 0.5],
+ "8212": [0, 0.44444, 0.02778, 0, 1],
+ "8216": [0, 0.69444, 0, 0, 0.27778],
+ "8217": [0, 0.69444, 0, 0, 0.27778],
+ "8220": [0, 0.69444, 0, 0, 0.5],
+ "8221": [0, 0.69444, 0, 0, 0.5]
+ },
+ "Script-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "65": [0, 0.7, 0.22925, 0, 0.80253],
+ "66": [0, 0.7, 0.04087, 0, 0.90757],
+ "67": [0, 0.7, 0.1689, 0, 0.66619],
+ "68": [0, 0.7, 0.09371, 0, 0.77443],
+ "69": [0, 0.7, 0.18583, 0, 0.56162],
+ "70": [0, 0.7, 0.13634, 0, 0.89544],
+ "71": [0, 0.7, 0.17322, 0, 0.60961],
+ "72": [0, 0.7, 0.29694, 0, 0.96919],
+ "73": [0, 0.7, 0.19189, 0, 0.80907],
+ "74": [0.27778, 0.7, 0.19189, 0, 1.05159],
+ "75": [0, 0.7, 0.31259, 0, 0.91364],
+ "76": [0, 0.7, 0.19189, 0, 0.87373],
+ "77": [0, 0.7, 0.15981, 0, 1.08031],
+ "78": [0, 0.7, 0.3525, 0, 0.9015],
+ "79": [0, 0.7, 0.08078, 0, 0.73787],
+ "80": [0, 0.7, 0.08078, 0, 1.01262],
+ "81": [0, 0.7, 0.03305, 0, 0.88282],
+ "82": [0, 0.7, 0.06259, 0, 0.85],
+ "83": [0, 0.7, 0.19189, 0, 0.86767],
+ "84": [0, 0.7, 0.29087, 0, 0.74697],
+ "85": [0, 0.7, 0.25815, 0, 0.79996],
+ "86": [0, 0.7, 0.27523, 0, 0.62204],
+ "87": [0, 0.7, 0.27523, 0, 0.80532],
+ "88": [0, 0.7, 0.26006, 0, 0.94445],
+ "89": [0, 0.7, 0.2939, 0, 0.70961],
+ "90": [0, 0.7, 0.24037, 0, 0.8212],
+ "160": [0, 0, 0, 0, 0.25]
+ },
+ "Size1-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "40": [0.35001, 0.85, 0, 0, 0.45834],
+ "41": [0.35001, 0.85, 0, 0, 0.45834],
+ "47": [0.35001, 0.85, 0, 0, 0.57778],
+ "91": [0.35001, 0.85, 0, 0, 0.41667],
+ "92": [0.35001, 0.85, 0, 0, 0.57778],
+ "93": [0.35001, 0.85, 0, 0, 0.41667],
+ "123": [0.35001, 0.85, 0, 0, 0.58334],
+ "125": [0.35001, 0.85, 0, 0, 0.58334],
+ "160": [0, 0, 0, 0, 0.25],
+ "710": [0, 0.72222, 0, 0, 0.55556],
+ "732": [0, 0.72222, 0, 0, 0.55556],
+ "770": [0, 0.72222, 0, 0, 0.55556],
+ "771": [0, 0.72222, 0, 0, 0.55556],
+ "8214": [-99e-5, 0.601, 0, 0, 0.77778],
+ "8593": [1e-5, 0.6, 0, 0, 0.66667],
+ "8595": [1e-5, 0.6, 0, 0, 0.66667],
+ "8657": [1e-5, 0.6, 0, 0, 0.77778],
+ "8659": [1e-5, 0.6, 0, 0, 0.77778],
+ "8719": [0.25001, 0.75, 0, 0, 0.94445],
+ "8720": [0.25001, 0.75, 0, 0, 0.94445],
+ "8721": [0.25001, 0.75, 0, 0, 1.05556],
+ "8730": [0.35001, 0.85, 0, 0, 1],
+ "8739": [-599e-5, 0.606, 0, 0, 0.33333],
+ "8741": [-599e-5, 0.606, 0, 0, 0.55556],
+ "8747": [0.30612, 0.805, 0.19445, 0, 0.47222],
+ "8748": [0.306, 0.805, 0.19445, 0, 0.47222],
+ "8749": [0.306, 0.805, 0.19445, 0, 0.47222],
+ "8750": [0.30612, 0.805, 0.19445, 0, 0.47222],
+ "8896": [0.25001, 0.75, 0, 0, 0.83334],
+ "8897": [0.25001, 0.75, 0, 0, 0.83334],
+ "8898": [0.25001, 0.75, 0, 0, 0.83334],
+ "8899": [0.25001, 0.75, 0, 0, 0.83334],
+ "8968": [0.35001, 0.85, 0, 0, 0.47222],
+ "8969": [0.35001, 0.85, 0, 0, 0.47222],
+ "8970": [0.35001, 0.85, 0, 0, 0.47222],
+ "8971": [0.35001, 0.85, 0, 0, 0.47222],
+ "9168": [-99e-5, 0.601, 0, 0, 0.66667],
+ "10216": [0.35001, 0.85, 0, 0, 0.47222],
+ "10217": [0.35001, 0.85, 0, 0, 0.47222],
+ "10752": [0.25001, 0.75, 0, 0, 1.11111],
+ "10753": [0.25001, 0.75, 0, 0, 1.11111],
+ "10754": [0.25001, 0.75, 0, 0, 1.11111],
+ "10756": [0.25001, 0.75, 0, 0, 0.83334],
+ "10758": [0.25001, 0.75, 0, 0, 0.83334]
+ },
+ "Size2-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "40": [0.65002, 1.15, 0, 0, 0.59722],
+ "41": [0.65002, 1.15, 0, 0, 0.59722],
+ "47": [0.65002, 1.15, 0, 0, 0.81111],
+ "91": [0.65002, 1.15, 0, 0, 0.47222],
+ "92": [0.65002, 1.15, 0, 0, 0.81111],
+ "93": [0.65002, 1.15, 0, 0, 0.47222],
+ "123": [0.65002, 1.15, 0, 0, 0.66667],
+ "125": [0.65002, 1.15, 0, 0, 0.66667],
+ "160": [0, 0, 0, 0, 0.25],
+ "710": [0, 0.75, 0, 0, 1],
+ "732": [0, 0.75, 0, 0, 1],
+ "770": [0, 0.75, 0, 0, 1],
+ "771": [0, 0.75, 0, 0, 1],
+ "8719": [0.55001, 1.05, 0, 0, 1.27778],
+ "8720": [0.55001, 1.05, 0, 0, 1.27778],
+ "8721": [0.55001, 1.05, 0, 0, 1.44445],
+ "8730": [0.65002, 1.15, 0, 0, 1],
+ "8747": [0.86225, 1.36, 0.44445, 0, 0.55556],
+ "8748": [0.862, 1.36, 0.44445, 0, 0.55556],
+ "8749": [0.862, 1.36, 0.44445, 0, 0.55556],
+ "8750": [0.86225, 1.36, 0.44445, 0, 0.55556],
+ "8896": [0.55001, 1.05, 0, 0, 1.11111],
+ "8897": [0.55001, 1.05, 0, 0, 1.11111],
+ "8898": [0.55001, 1.05, 0, 0, 1.11111],
+ "8899": [0.55001, 1.05, 0, 0, 1.11111],
+ "8968": [0.65002, 1.15, 0, 0, 0.52778],
+ "8969": [0.65002, 1.15, 0, 0, 0.52778],
+ "8970": [0.65002, 1.15, 0, 0, 0.52778],
+ "8971": [0.65002, 1.15, 0, 0, 0.52778],
+ "10216": [0.65002, 1.15, 0, 0, 0.61111],
+ "10217": [0.65002, 1.15, 0, 0, 0.61111],
+ "10752": [0.55001, 1.05, 0, 0, 1.51112],
+ "10753": [0.55001, 1.05, 0, 0, 1.51112],
+ "10754": [0.55001, 1.05, 0, 0, 1.51112],
+ "10756": [0.55001, 1.05, 0, 0, 1.11111],
+ "10758": [0.55001, 1.05, 0, 0, 1.11111]
+ },
+ "Size3-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "40": [0.95003, 1.45, 0, 0, 0.73611],
+ "41": [0.95003, 1.45, 0, 0, 0.73611],
+ "47": [0.95003, 1.45, 0, 0, 1.04445],
+ "91": [0.95003, 1.45, 0, 0, 0.52778],
+ "92": [0.95003, 1.45, 0, 0, 1.04445],
+ "93": [0.95003, 1.45, 0, 0, 0.52778],
+ "123": [0.95003, 1.45, 0, 0, 0.75],
+ "125": [0.95003, 1.45, 0, 0, 0.75],
+ "160": [0, 0, 0, 0, 0.25],
+ "710": [0, 0.75, 0, 0, 1.44445],
+ "732": [0, 0.75, 0, 0, 1.44445],
+ "770": [0, 0.75, 0, 0, 1.44445],
+ "771": [0, 0.75, 0, 0, 1.44445],
+ "8730": [0.95003, 1.45, 0, 0, 1],
+ "8968": [0.95003, 1.45, 0, 0, 0.58334],
+ "8969": [0.95003, 1.45, 0, 0, 0.58334],
+ "8970": [0.95003, 1.45, 0, 0, 0.58334],
+ "8971": [0.95003, 1.45, 0, 0, 0.58334],
+ "10216": [0.95003, 1.45, 0, 0, 0.75],
+ "10217": [0.95003, 1.45, 0, 0, 0.75]
+ },
+ "Size4-Regular": {
+ "32": [0, 0, 0, 0, 0.25],
+ "40": [1.25003, 1.75, 0, 0, 0.79167],
+ "41": [1.25003, 1.75, 0, 0, 0.79167],
+ "47": [1.25003, 1.75, 0, 0, 1.27778],
+ "91": [1.25003, 1.75, 0, 0, 0.58334],
+ "92": [1.25003, 1.75, 0, 0, 1.27778],
+ "93": [1.25003, 1.75, 0, 0, 0.58334],
+ "123": [1.25003, 1.75, 0, 0, 0.80556],
+ "125": [1.25003, 1.75, 0, 0, 0.80556],
+ "160": [0, 0, 0, 0, 0.25],
+ "710": [0, 0.825, 0, 0, 1.8889],
+ "732": [0, 0.825, 0, 0, 1.8889],
+ "770": [0, 0.825, 0, 0, 1.8889],
+ "771": [0, 0.825, 0, 0, 1.8889],
+ "8730": [1.25003, 1.75, 0, 0, 1],
+ "8968": [1.25003, 1.75, 0, 0, 0.63889],
+ "8969": [1.25003, 1.75, 0, 0, 0.63889],
+ "8970": [1.25003, 1.75, 0, 0, 0.63889],
+ "8971": [1.25003, 1.75, 0, 0, 0.63889],
+ "9115": [0.64502, 1.155, 0, 0, 0.875],
+ "9116": [1e-5, 0.6, 0, 0, 0.875],
+ "9117": [0.64502, 1.155, 0, 0, 0.875],
+ "9118": [0.64502, 1.155, 0, 0, 0.875],
+ "9119": [1e-5, 0.6, 0, 0, 0.875],
+ "9120": [0.64502, 1.155, 0, 0, 0.875],
+ "9121": [0.64502, 1.155, 0, 0, 0.66667],
+ "9122": [-99e-5, 0.601, 0, 0, 0.66667],
+ "9123": [0.64502, 1.155, 0, 0, 0.66667],
+ "9124": [0.64502, 1.155, 0, 0, 0.66667],
+ "9125": [-99e-5, 0.601, 0, 0, 0.66667],
+ "9126": [0.64502, 1.155, 0, 0, 0.66667],
+ "9127": [1e-5, 0.9, 0, 0, 0.88889],
+ "9128": [0.65002, 1.15, 0, 0, 0.88889],
+ "9129": [0.90001, 0, 0, 0, 0.88889],
+ "9130": [0, 0.3, 0, 0, 0.88889],
+ "9131": [1e-5, 0.9, 0, 0, 0.88889],
+ "9132": [0.65002, 1.15, 0, 0, 0.88889],
+ "9133": [0.90001, 0, 0, 0, 0.88889],
+ "9143": [0.88502, 0.915, 0, 0, 1.05556],
+ "10216": [1.25003, 1.75, 0, 0, 0.80556],
+ "10217": [1.25003, 1.75, 0, 0, 0.80556],
+ "57344": [-499e-5, 0.605, 0, 0, 1.05556],
+ "57345": [-499e-5, 0.605, 0, 0, 1.05556],
+ "57680": [0, 0.12, 0, 0, 0.45],
+ "57681": [0, 0.12, 0, 0, 0.45],
+ "57682": [0, 0.12, 0, 0, 0.45],
+ "57683": [0, 0.12, 0, 0, 0.45]
+ },
+ "Typewriter-Regular": {
+ "32": [0, 0, 0, 0, 0.525],
+ "33": [0, 0.61111, 0, 0, 0.525],
+ "34": [0, 0.61111, 0, 0, 0.525],
+ "35": [0, 0.61111, 0, 0, 0.525],
+ "36": [0.08333, 0.69444, 0, 0, 0.525],
+ "37": [0.08333, 0.69444, 0, 0, 0.525],
+ "38": [0, 0.61111, 0, 0, 0.525],
+ "39": [0, 0.61111, 0, 0, 0.525],
+ "40": [0.08333, 0.69444, 0, 0, 0.525],
+ "41": [0.08333, 0.69444, 0, 0, 0.525],
+ "42": [0, 0.52083, 0, 0, 0.525],
+ "43": [-0.08056, 0.53055, 0, 0, 0.525],
+ "44": [0.13889, 0.125, 0, 0, 0.525],
+ "45": [-0.08056, 0.53055, 0, 0, 0.525],
+ "46": [0, 0.125, 0, 0, 0.525],
+ "47": [0.08333, 0.69444, 0, 0, 0.525],
+ "48": [0, 0.61111, 0, 0, 0.525],
+ "49": [0, 0.61111, 0, 0, 0.525],
+ "50": [0, 0.61111, 0, 0, 0.525],
+ "51": [0, 0.61111, 0, 0, 0.525],
+ "52": [0, 0.61111, 0, 0, 0.525],
+ "53": [0, 0.61111, 0, 0, 0.525],
+ "54": [0, 0.61111, 0, 0, 0.525],
+ "55": [0, 0.61111, 0, 0, 0.525],
+ "56": [0, 0.61111, 0, 0, 0.525],
+ "57": [0, 0.61111, 0, 0, 0.525],
+ "58": [0, 0.43056, 0, 0, 0.525],
+ "59": [0.13889, 0.43056, 0, 0, 0.525],
+ "60": [-0.05556, 0.55556, 0, 0, 0.525],
+ "61": [-0.19549, 0.41562, 0, 0, 0.525],
+ "62": [-0.05556, 0.55556, 0, 0, 0.525],
+ "63": [0, 0.61111, 0, 0, 0.525],
+ "64": [0, 0.61111, 0, 0, 0.525],
+ "65": [0, 0.61111, 0, 0, 0.525],
+ "66": [0, 0.61111, 0, 0, 0.525],
+ "67": [0, 0.61111, 0, 0, 0.525],
+ "68": [0, 0.61111, 0, 0, 0.525],
+ "69": [0, 0.61111, 0, 0, 0.525],
+ "70": [0, 0.61111, 0, 0, 0.525],
+ "71": [0, 0.61111, 0, 0, 0.525],
+ "72": [0, 0.61111, 0, 0, 0.525],
+ "73": [0, 0.61111, 0, 0, 0.525],
+ "74": [0, 0.61111, 0, 0, 0.525],
+ "75": [0, 0.61111, 0, 0, 0.525],
+ "76": [0, 0.61111, 0, 0, 0.525],
+ "77": [0, 0.61111, 0, 0, 0.525],
+ "78": [0, 0.61111, 0, 0, 0.525],
+ "79": [0, 0.61111, 0, 0, 0.525],
+ "80": [0, 0.61111, 0, 0, 0.525],
+ "81": [0.13889, 0.61111, 0, 0, 0.525],
+ "82": [0, 0.61111, 0, 0, 0.525],
+ "83": [0, 0.61111, 0, 0, 0.525],
+ "84": [0, 0.61111, 0, 0, 0.525],
+ "85": [0, 0.61111, 0, 0, 0.525],
+ "86": [0, 0.61111, 0, 0, 0.525],
+ "87": [0, 0.61111, 0, 0, 0.525],
+ "88": [0, 0.61111, 0, 0, 0.525],
+ "89": [0, 0.61111, 0, 0, 0.525],
+ "90": [0, 0.61111, 0, 0, 0.525],
+ "91": [0.08333, 0.69444, 0, 0, 0.525],
+ "92": [0.08333, 0.69444, 0, 0, 0.525],
+ "93": [0.08333, 0.69444, 0, 0, 0.525],
+ "94": [0, 0.61111, 0, 0, 0.525],
+ "95": [0.09514, 0, 0, 0, 0.525],
+ "96": [0, 0.61111, 0, 0, 0.525],
+ "97": [0, 0.43056, 0, 0, 0.525],
+ "98": [0, 0.61111, 0, 0, 0.525],
+ "99": [0, 0.43056, 0, 0, 0.525],
+ "100": [0, 0.61111, 0, 0, 0.525],
+ "101": [0, 0.43056, 0, 0, 0.525],
+ "102": [0, 0.61111, 0, 0, 0.525],
+ "103": [0.22222, 0.43056, 0, 0, 0.525],
+ "104": [0, 0.61111, 0, 0, 0.525],
+ "105": [0, 0.61111, 0, 0, 0.525],
+ "106": [0.22222, 0.61111, 0, 0, 0.525],
+ "107": [0, 0.61111, 0, 0, 0.525],
+ "108": [0, 0.61111, 0, 0, 0.525],
+ "109": [0, 0.43056, 0, 0, 0.525],
+ "110": [0, 0.43056, 0, 0, 0.525],
+ "111": [0, 0.43056, 0, 0, 0.525],
+ "112": [0.22222, 0.43056, 0, 0, 0.525],
+ "113": [0.22222, 0.43056, 0, 0, 0.525],
+ "114": [0, 0.43056, 0, 0, 0.525],
+ "115": [0, 0.43056, 0, 0, 0.525],
+ "116": [0, 0.55358, 0, 0, 0.525],
+ "117": [0, 0.43056, 0, 0, 0.525],
+ "118": [0, 0.43056, 0, 0, 0.525],
+ "119": [0, 0.43056, 0, 0, 0.525],
+ "120": [0, 0.43056, 0, 0, 0.525],
+ "121": [0.22222, 0.43056, 0, 0, 0.525],
+ "122": [0, 0.43056, 0, 0, 0.525],
+ "123": [0.08333, 0.69444, 0, 0, 0.525],
+ "124": [0.08333, 0.69444, 0, 0, 0.525],
+ "125": [0.08333, 0.69444, 0, 0, 0.525],
+ "126": [0, 0.61111, 0, 0, 0.525],
+ "127": [0, 0.61111, 0, 0, 0.525],
+ "160": [0, 0, 0, 0, 0.525],
+ "176": [0, 0.61111, 0, 0, 0.525],
+ "184": [0.19445, 0, 0, 0, 0.525],
+ "305": [0, 0.43056, 0, 0, 0.525],
+ "567": [0.22222, 0.43056, 0, 0, 0.525],
+ "711": [0, 0.56597, 0, 0, 0.525],
+ "713": [0, 0.56555, 0, 0, 0.525],
+ "714": [0, 0.61111, 0, 0, 0.525],
+ "715": [0, 0.61111, 0, 0, 0.525],
+ "728": [0, 0.61111, 0, 0, 0.525],
+ "730": [0, 0.61111, 0, 0, 0.525],
+ "770": [0, 0.61111, 0, 0, 0.525],
+ "771": [0, 0.61111, 0, 0, 0.525],
+ "776": [0, 0.61111, 0, 0, 0.525],
+ "915": [0, 0.61111, 0, 0, 0.525],
+ "916": [0, 0.61111, 0, 0, 0.525],
+ "920": [0, 0.61111, 0, 0, 0.525],
+ "923": [0, 0.61111, 0, 0, 0.525],
+ "926": [0, 0.61111, 0, 0, 0.525],
+ "928": [0, 0.61111, 0, 0, 0.525],
+ "931": [0, 0.61111, 0, 0, 0.525],
+ "933": [0, 0.61111, 0, 0, 0.525],
+ "934": [0, 0.61111, 0, 0, 0.525],
+ "936": [0, 0.61111, 0, 0, 0.525],
+ "937": [0, 0.61111, 0, 0, 0.525],
+ "8216": [0, 0.61111, 0, 0, 0.525],
+ "8217": [0, 0.61111, 0, 0, 0.525],
+ "8242": [0, 0.61111, 0, 0, 0.525],
+ "9251": [0.11111, 0.21944, 0, 0, 0.525]
+ }
+ };
+ sigmasAndXis = {
+ slant: [0.25, 0.25, 0.25],
+ // sigma1
+ space: [0, 0, 0],
+ // sigma2
+ stretch: [0, 0, 0],
+ // sigma3
+ shrink: [0, 0, 0],
+ // sigma4
+ xHeight: [0.431, 0.431, 0.431],
+ // sigma5
+ quad: [1, 1.171, 1.472],
+ // sigma6
+ extraSpace: [0, 0, 0],
+ // sigma7
+ num1: [0.677, 0.732, 0.925],
+ // sigma8
+ num2: [0.394, 0.384, 0.387],
+ // sigma9
+ num3: [0.444, 0.471, 0.504],
+ // sigma10
+ denom1: [0.686, 0.752, 1.025],
+ // sigma11
+ denom2: [0.345, 0.344, 0.532],
+ // sigma12
+ sup1: [0.413, 0.503, 0.504],
+ // sigma13
+ sup2: [0.363, 0.431, 0.404],
+ // sigma14
+ sup3: [0.289, 0.286, 0.294],
+ // sigma15
+ sub1: [0.15, 0.143, 0.2],
+ // sigma16
+ sub2: [0.247, 0.286, 0.4],
+ // sigma17
+ supDrop: [0.386, 0.353, 0.494],
+ // sigma18
+ subDrop: [0.05, 0.071, 0.1],
+ // sigma19
+ delim1: [2.39, 1.7, 1.98],
+ // sigma20
+ delim2: [1.01, 1.157, 1.42],
+ // sigma21
+ axisHeight: [0.25, 0.25, 0.25],
+ // sigma22
+ // These font metrics are extracted from TeX by using tftopl on cmex10.tfm;
+ // they correspond to the font parameters of the extension fonts (family 3).
+ // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to
+ // match cmex7, we'd use cmex7.tfm values for script and scriptscript
+ // values.
+ defaultRuleThickness: [0.04, 0.049, 0.049],
+ // xi8; cmex7: 0.049
+ bigOpSpacing1: [0.111, 0.111, 0.111],
+ // xi9
+ bigOpSpacing2: [0.166, 0.166, 0.166],
+ // xi10
+ bigOpSpacing3: [0.2, 0.2, 0.2],
+ // xi11
+ bigOpSpacing4: [0.6, 0.611, 0.611],
+ // xi12; cmex7: 0.611
+ bigOpSpacing5: [0.1, 0.143, 0.143],
+ // xi13; cmex7: 0.143
+ // The \sqrt rule width is taken from the height of the surd character.
+ // Since we use the same font at all sizes, this thickness doesn't scale.
+ sqrtRuleThickness: [0.04, 0.04, 0.04],
+ // This value determines how large a pt is, for metrics which are defined
+ // in terms of pts.
+ // This value is also used in katex.scss; if you change it make sure the
+ // values match.
+ ptPerEm: [10, 10, 10],
+ // The space between adjacent `|` columns in an array definition. From
+ // `\showthe\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm.
+ doubleRuleSep: [0.2, 0.2, 0.2],
+ // The width of separator lines in {array} environments. From
+ // `\showthe\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm.
+ arrayRuleWidth: [0.04, 0.04, 0.04],
+ // Two values from LaTeX source2e:
+ fboxsep: [0.3, 0.3, 0.3],
+ // 3 pt / ptPerEm
+ fboxrule: [0.04, 0.04, 0.04]
+ // 0.4 pt / ptPerEm
+ };
+ extraCharacterMap = {
+ // Latin-1
+ "\xC5": "A",
+ "\xD0": "D",
+ "\xDE": "o",
+ "\xE5": "a",
+ "\xF0": "d",
+ "\xFE": "o",
+ // Cyrillic
+ "\u0410": "A",
+ "\u0411": "B",
+ "\u0412": "B",
+ "\u0413": "F",
+ "\u0414": "A",
+ "\u0415": "E",
+ "\u0416": "K",
+ "\u0417": "3",
+ "\u0418": "N",
+ "\u0419": "N",
+ "\u041A": "K",
+ "\u041B": "N",
+ "\u041C": "M",
+ "\u041D": "H",
+ "\u041E": "O",
+ "\u041F": "N",
+ "\u0420": "P",
+ "\u0421": "C",
+ "\u0422": "T",
+ "\u0423": "y",
+ "\u0424": "O",
+ "\u0425": "X",
+ "\u0426": "U",
+ "\u0427": "h",
+ "\u0428": "W",
+ "\u0429": "W",
+ "\u042A": "B",
+ "\u042B": "X",
+ "\u042C": "B",
+ "\u042D": "3",
+ "\u042E": "X",
+ "\u042F": "R",
+ "\u0430": "a",
+ "\u0431": "b",
+ "\u0432": "a",
+ "\u0433": "r",
+ "\u0434": "y",
+ "\u0435": "e",
+ "\u0436": "m",
+ "\u0437": "e",
+ "\u0438": "n",
+ "\u0439": "n",
+ "\u043A": "n",
+ "\u043B": "n",
+ "\u043C": "m",
+ "\u043D": "n",
+ "\u043E": "o",
+ "\u043F": "n",
+ "\u0440": "p",
+ "\u0441": "c",
+ "\u0442": "o",
+ "\u0443": "y",
+ "\u0444": "b",
+ "\u0445": "x",
+ "\u0446": "n",
+ "\u0447": "n",
+ "\u0448": "w",
+ "\u0449": "w",
+ "\u044A": "a",
+ "\u044B": "m",
+ "\u044C": "a",
+ "\u044D": "e",
+ "\u044E": "m",
+ "\u044F": "r"
+ };
+ __name(setFontMetrics, "setFontMetrics");
+ __name(getCharacterMetrics, "getCharacterMetrics");
+ fontMetricsBySizeIndex = {};
+ __name(getGlobalMetrics, "getGlobalMetrics");
+ sizeStyleMap = [
+ // Each element contains [textsize, scriptsize, scriptscriptsize].
+ // The size mappings are taken from TeX with \normalsize=10pt.
+ [1, 1, 1],
+ // size1: [5, 5, 5] \tiny
+ [2, 1, 1],
+ // size2: [6, 5, 5]
+ [3, 1, 1],
+ // size3: [7, 5, 5] \scriptsize
+ [4, 2, 1],
+ // size4: [8, 6, 5] \footnotesize
+ [5, 2, 1],
+ // size5: [9, 6, 5] \small
+ [6, 3, 1],
+ // size6: [10, 7, 5] \normalsize
+ [7, 4, 2],
+ // size7: [12, 8, 6] \large
+ [8, 6, 3],
+ // size8: [14.4, 10, 7] \Large
+ [9, 7, 6],
+ // size9: [17.28, 12, 10] \LARGE
+ [10, 8, 7],
+ // size10: [20.74, 14.4, 12] \huge
+ [11, 10, 9]
+ // size11: [24.88, 20.74, 17.28] \HUGE
+ ];
+ sizeMultipliers = [
+ // fontMetrics.js:getGlobalMetrics also uses size indexes, so if
+ // you change size indexes, change that function.
+ 0.5,
+ 0.6,
+ 0.7,
+ 0.8,
+ 0.9,
+ 1,
+ 1.2,
+ 1.44,
+ 1.728,
+ 2.074,
+ 2.488
+ ];
+ sizeAtStyle = /* @__PURE__ */ __name(function sizeAtStyle2(size5, style3) {
+ return style3.size < 2 ? size5 : sizeStyleMap[size5 - 1][style3.size - 1];
+ }, "sizeAtStyle");
+ Options = class _Options {
+ static {
+ __name(this, "Options");
+ }
+ // A font family applies to a group of fonts (i.e. SansSerif), while a font
+ // represents a specific font (i.e. SansSerif Bold).
+ // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm
+ /**
+ * The base size index.
+ */
+ constructor(data5) {
+ this.style = void 0;
+ this.color = void 0;
+ this.size = void 0;
+ this.textSize = void 0;
+ this.phantom = void 0;
+ this.font = void 0;
+ this.fontFamily = void 0;
+ this.fontWeight = void 0;
+ this.fontShape = void 0;
+ this.sizeMultiplier = void 0;
+ this.maxSize = void 0;
+ this.minRuleThickness = void 0;
+ this._fontMetrics = void 0;
+ this.style = data5.style;
+ this.color = data5.color;
+ this.size = data5.size || _Options.BASESIZE;
+ this.textSize = data5.textSize || this.size;
+ this.phantom = !!data5.phantom;
+ this.font = data5.font || "";
+ this.fontFamily = data5.fontFamily || "";
+ this.fontWeight = data5.fontWeight || "";
+ this.fontShape = data5.fontShape || "";
+ this.sizeMultiplier = sizeMultipliers[this.size - 1];
+ this.maxSize = data5.maxSize;
+ this.minRuleThickness = data5.minRuleThickness;
+ this._fontMetrics = void 0;
+ }
+ /**
+ * Returns a new options object with the same properties as "this". Properties
+ * from "extension" will be copied to the new options object.
+ */
+ extend(extension5) {
+ var data5 = {
+ style: this.style,
+ size: this.size,
+ textSize: this.textSize,
+ color: this.color,
+ phantom: this.phantom,
+ font: this.font,
+ fontFamily: this.fontFamily,
+ fontWeight: this.fontWeight,
+ fontShape: this.fontShape,
+ maxSize: this.maxSize,
+ minRuleThickness: this.minRuleThickness
+ };
+ for (var key in extension5) {
+ if (extension5.hasOwnProperty(key)) {
+ data5[key] = extension5[key];
+ }
+ }
+ return new _Options(data5);
}
- }
- this._x0 = x2, this._y0 = y2;
- }
- }
- function bumpX(context) {
- return new Bump(context, true);
- }
- function bumpY(context) {
- return new Bump(context, false);
- }
- function noop$1() {
- }
- function point$4(that, x2, y2) {
- that._context.bezierCurveTo(
- (2 * that._x0 + that._x1) / 3,
- (2 * that._y0 + that._y1) / 3,
- (that._x0 + 2 * that._x1) / 3,
- (that._y0 + 2 * that._y1) / 3,
- (that._x0 + 4 * that._x1 + x2) / 6,
- (that._y0 + 4 * that._y1 + y2) / 6
- );
- }
- function Basis(context) {
- this._context = context;
- }
- Basis.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x0 = this._x1 = this._y0 = this._y1 = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- switch (this._point) {
- case 3:
- point$4(this, this._x1, this._y1);
- case 2:
- this._context.lineTo(this._x1, this._y1);
- break;
- }
- if (this._line || this._line !== 0 && this._point === 1)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
- break;
- case 1:
- this._point = 2;
- break;
- case 2:
- this._point = 3;
- this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
- default:
- point$4(this, x2, y2);
- break;
- }
- this._x0 = this._x1, this._x1 = x2;
- this._y0 = this._y1, this._y1 = y2;
- }
- };
- function curveBasis(context) {
- return new Basis(context);
- }
- function BasisClosed(context) {
- this._context = context;
- }
- BasisClosed.prototype = {
- areaStart: noop$1,
- areaEnd: noop$1,
- lineStart: function() {
- this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- switch (this._point) {
- case 1: {
- this._context.moveTo(this._x2, this._y2);
- this._context.closePath();
- break;
+ /**
+ * Return an options object with the given style. If `this.style === style`,
+ * returns `this`.
+ */
+ havingStyle(style3) {
+ if (this.style === style3) {
+ return this;
+ } else {
+ return this.extend({
+ style: style3,
+ size: sizeAtStyle(this.textSize, style3)
+ });
+ }
}
- case 2: {
- this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
- this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
- this._context.closePath();
- break;
+ /**
+ * Return an options object with a cramped version of the current style. If
+ * the current style is cramped, returns `this`.
+ */
+ havingCrampedStyle() {
+ return this.havingStyle(this.style.cramp());
}
- case 3: {
- this.point(this._x2, this._y2);
- this.point(this._x3, this._y3);
- this.point(this._x4, this._y4);
- break;
+ /**
+ * Return an options object with the given size and in at least `\textstyle`.
+ * Returns `this` if appropriate.
+ */
+ havingSize(size5) {
+ if (this.size === size5 && this.textSize === size5) {
+ return this;
+ } else {
+ return this.extend({
+ style: this.style.text(),
+ size: size5,
+ textSize: size5,
+ sizeMultiplier: sizeMultipliers[size5 - 1]
+ });
+ }
}
- }
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- this._x2 = x2, this._y2 = y2;
- break;
- case 1:
- this._point = 2;
- this._x3 = x2, this._y3 = y2;
- break;
- case 2:
- this._point = 3;
- this._x4 = x2, this._y4 = y2;
- this._context.moveTo((this._x0 + 4 * this._x1 + x2) / 6, (this._y0 + 4 * this._y1 + y2) / 6);
- break;
- default:
- point$4(this, x2, y2);
- break;
- }
- this._x0 = this._x1, this._x1 = x2;
- this._y0 = this._y1, this._y1 = y2;
- }
- };
- function curveBasisClosed(context) {
- return new BasisClosed(context);
- }
- function BasisOpen(context) {
- this._context = context;
- }
- BasisOpen.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x0 = this._x1 = this._y0 = this._y1 = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- if (this._line || this._line !== 0 && this._point === 3)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- break;
- case 1:
- this._point = 2;
- break;
- case 2:
- this._point = 3;
- var x0 = (this._x0 + 4 * this._x1 + x2) / 6, y0 = (this._y0 + 4 * this._y1 + y2) / 6;
- this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);
- break;
- case 3:
- this._point = 4;
- default:
- point$4(this, x2, y2);
- break;
- }
- this._x0 = this._x1, this._x1 = x2;
- this._y0 = this._y1, this._y1 = y2;
- }
- };
- function curveBasisOpen(context) {
- return new BasisOpen(context);
- }
- function Bundle(context, beta) {
- this._basis = new Basis(context);
- this._beta = beta;
- }
- Bundle.prototype = {
- lineStart: function() {
- this._x = [];
- this._y = [];
- this._basis.lineStart();
- },
- lineEnd: function() {
- var x2 = this._x, y2 = this._y, j = x2.length - 1;
- if (j > 0) {
- var x0 = x2[0], y0 = y2[0], dx = x2[j] - x0, dy = y2[j] - y0, i2 = -1, t4;
- while (++i2 <= j) {
- t4 = i2 / j;
- this._basis.point(
- this._beta * x2[i2] + (1 - this._beta) * (x0 + t4 * dx),
- this._beta * y2[i2] + (1 - this._beta) * (y0 + t4 * dy)
- );
+ /**
+ * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,
+ * changes to at least `\textstyle`.
+ */
+ havingBaseStyle(style3) {
+ style3 = style3 || this.style.text();
+ var wantSize = sizeAtStyle(_Options.BASESIZE, style3);
+ if (this.size === wantSize && this.textSize === _Options.BASESIZE && this.style === style3) {
+ return this;
+ } else {
+ return this.extend({
+ style: style3,
+ size: wantSize
+ });
+ }
}
- }
- this._x = this._y = null;
- this._basis.lineEnd();
- },
- point: function(x2, y2) {
- this._x.push(+x2);
- this._y.push(+y2);
- }
- };
- const curveBundle = function custom(beta) {
- function bundle(context) {
- return beta === 1 ? new Basis(context) : new Bundle(context, beta);
- }
- bundle.beta = function(beta2) {
- return custom(+beta2);
- };
- return bundle;
- }(0.85);
- function point$3(that, x2, y2) {
- that._context.bezierCurveTo(
- that._x1 + that._k * (that._x2 - that._x0),
- that._y1 + that._k * (that._y2 - that._y0),
- that._x2 + that._k * (that._x1 - x2),
- that._y2 + that._k * (that._y1 - y2),
- that._x2,
- that._y2
- );
- }
- function Cardinal(context, tension) {
- this._context = context;
- this._k = (1 - tension) / 6;
- }
- Cardinal.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- switch (this._point) {
- case 2:
- this._context.lineTo(this._x2, this._y2);
- break;
- case 3:
- point$3(this, this._x1, this._y1);
- break;
- }
- if (this._line || this._line !== 0 && this._point === 1)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
- break;
- case 1:
- this._point = 2;
- this._x1 = x2, this._y1 = y2;
- break;
- case 2:
- this._point = 3;
- default:
- point$3(this, x2, y2);
- break;
- }
- this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
- this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
- }
- };
- const curveCardinal = function custom(tension) {
- function cardinal(context) {
- return new Cardinal(context, tension);
- }
- cardinal.tension = function(tension2) {
- return custom(+tension2);
- };
- return cardinal;
- }(0);
- function CardinalClosed(context, tension) {
- this._context = context;
- this._k = (1 - tension) / 6;
- }
- CardinalClosed.prototype = {
- areaStart: noop$1,
- areaEnd: noop$1,
- lineStart: function() {
- this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- switch (this._point) {
- case 1: {
- this._context.moveTo(this._x3, this._y3);
- this._context.closePath();
- break;
+ /**
+ * Remove the effect of sizing changes such as \Huge.
+ * Keep the effect of the current style, such as \scriptstyle.
+ */
+ havingBaseSizing() {
+ var size5;
+ switch (this.style.id) {
+ case 4:
+ case 5:
+ size5 = 3;
+ break;
+ case 6:
+ case 7:
+ size5 = 1;
+ break;
+ default:
+ size5 = 6;
+ }
+ return this.extend({
+ style: this.style.text(),
+ size: size5
+ });
}
- case 2: {
- this._context.lineTo(this._x3, this._y3);
- this._context.closePath();
- break;
+ /**
+ * Create a new options object with the given color.
+ */
+ withColor(color2) {
+ return this.extend({
+ color: color2
+ });
}
- case 3: {
- this.point(this._x3, this._y3);
- this.point(this._x4, this._y4);
- this.point(this._x5, this._y5);
- break;
+ /**
+ * Create a new options object with "phantom" set to true.
+ */
+ withPhantom() {
+ return this.extend({
+ phantom: true
+ });
}
- }
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- this._x3 = x2, this._y3 = y2;
- break;
- case 1:
- this._point = 2;
- this._context.moveTo(this._x4 = x2, this._y4 = y2);
- break;
- case 2:
- this._point = 3;
- this._x5 = x2, this._y5 = y2;
- break;
- default:
- point$3(this, x2, y2);
- break;
- }
- this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
- this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
- }
- };
- const curveCardinalClosed = function custom(tension) {
- function cardinal(context) {
- return new CardinalClosed(context, tension);
- }
- cardinal.tension = function(tension2) {
- return custom(+tension2);
- };
- return cardinal;
- }(0);
- function CardinalOpen(context, tension) {
- this._context = context;
- this._k = (1 - tension) / 6;
- }
- CardinalOpen.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- if (this._line || this._line !== 0 && this._point === 3)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- break;
- case 1:
- this._point = 2;
- break;
- case 2:
- this._point = 3;
- this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
- break;
- case 3:
- this._point = 4;
- default:
- point$3(this, x2, y2);
- break;
- }
- this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
- this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
- }
- };
- const curveCardinalOpen = function custom(tension) {
- function cardinal(context) {
- return new CardinalOpen(context, tension);
- }
- cardinal.tension = function(tension2) {
- return custom(+tension2);
- };
- return cardinal;
- }(0);
- function point$2(that, x2, y2) {
- var x1 = that._x1, y1 = that._y1, x22 = that._x2, y22 = that._y2;
- if (that._l01_a > epsilon) {
- var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a);
- x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
- y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
- }
- if (that._l23_a > epsilon) {
- var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a);
- x22 = (x22 * b + that._x1 * that._l23_2a - x2 * that._l12_2a) / m;
- y22 = (y22 * b + that._y1 * that._l23_2a - y2 * that._l12_2a) / m;
- }
- that._context.bezierCurveTo(x1, y1, x22, y22, that._x2, that._y2);
- }
- function CatmullRom(context, alpha) {
- this._context = context;
- this._alpha = alpha;
- }
- CatmullRom.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
- this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
- },
- lineEnd: function() {
- switch (this._point) {
- case 2:
- this._context.lineTo(this._x2, this._y2);
- break;
- case 3:
- this.point(this._x2, this._y2);
- break;
- }
- if (this._line || this._line !== 0 && this._point === 1)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- if (this._point) {
- var x23 = this._x2 - x2, y23 = this._y2 - y2;
- this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
- }
- switch (this._point) {
- case 0:
- this._point = 1;
- this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
- break;
- case 1:
- this._point = 2;
- break;
- case 2:
- this._point = 3;
- default:
- point$2(this, x2, y2);
- break;
- }
- this._l01_a = this._l12_a, this._l12_a = this._l23_a;
- this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
- this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
- this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
- }
- };
- const curveCatmullRom = function custom(alpha) {
- function catmullRom(context) {
- return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
- }
- catmullRom.alpha = function(alpha2) {
- return custom(+alpha2);
- };
- return catmullRom;
- }(0.5);
- function CatmullRomClosed(context, alpha) {
- this._context = context;
- this._alpha = alpha;
- }
- CatmullRomClosed.prototype = {
- areaStart: noop$1,
- areaEnd: noop$1,
- lineStart: function() {
- this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
- this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
- },
- lineEnd: function() {
- switch (this._point) {
- case 1: {
- this._context.moveTo(this._x3, this._y3);
- this._context.closePath();
- break;
+ /**
+ * Creates a new options object with the given math font or old text font.
+ * @type {[type]}
+ */
+ withFont(font) {
+ return this.extend({
+ font
+ });
}
- case 2: {
- this._context.lineTo(this._x3, this._y3);
- this._context.closePath();
- break;
+ /**
+ * Create a new options objects with the given fontFamily.
+ */
+ withTextFontFamily(fontFamily) {
+ return this.extend({
+ fontFamily,
+ font: ""
+ });
}
- case 3: {
- this.point(this._x3, this._y3);
- this.point(this._x4, this._y4);
- this.point(this._x5, this._y5);
- break;
+ /**
+ * Creates a new options object with the given font weight
+ */
+ withTextFontWeight(fontWeight) {
+ return this.extend({
+ fontWeight,
+ font: ""
+ });
}
- }
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- if (this._point) {
- var x23 = this._x2 - x2, y23 = this._y2 - y2;
- this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
- }
- switch (this._point) {
- case 0:
- this._point = 1;
- this._x3 = x2, this._y3 = y2;
- break;
- case 1:
- this._point = 2;
- this._context.moveTo(this._x4 = x2, this._y4 = y2);
- break;
- case 2:
- this._point = 3;
- this._x5 = x2, this._y5 = y2;
- break;
- default:
- point$2(this, x2, y2);
- break;
- }
- this._l01_a = this._l12_a, this._l12_a = this._l23_a;
- this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
- this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
- this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
- }
- };
- const curveCatmullRomClosed = function custom(alpha) {
- function catmullRom(context) {
- return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
- }
- catmullRom.alpha = function(alpha2) {
- return custom(+alpha2);
- };
- return catmullRom;
- }(0.5);
- function CatmullRomOpen(context, alpha) {
- this._context = context;
- this._alpha = alpha;
- }
- CatmullRomOpen.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
- this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
- },
- lineEnd: function() {
- if (this._line || this._line !== 0 && this._point === 3)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- if (this._point) {
- var x23 = this._x2 - x2, y23 = this._y2 - y2;
- this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
- }
- switch (this._point) {
- case 0:
- this._point = 1;
- break;
- case 1:
- this._point = 2;
- break;
- case 2:
- this._point = 3;
- this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
- break;
- case 3:
- this._point = 4;
- default:
- point$2(this, x2, y2);
- break;
- }
- this._l01_a = this._l12_a, this._l12_a = this._l23_a;
- this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
- this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
- this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
- }
- };
- const curveCatmullRomOpen = function custom(alpha) {
- function catmullRom(context) {
- return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
- }
- catmullRom.alpha = function(alpha2) {
- return custom(+alpha2);
- };
- return catmullRom;
- }(0.5);
- function LinearClosed(context) {
- this._context = context;
- }
- LinearClosed.prototype = {
- areaStart: noop$1,
- areaEnd: noop$1,
- lineStart: function() {
- this._point = 0;
- },
- lineEnd: function() {
- if (this._point)
- this._context.closePath();
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- if (this._point)
- this._context.lineTo(x2, y2);
- else
- this._point = 1, this._context.moveTo(x2, y2);
- }
- };
- function curveLinearClosed(context) {
- return new LinearClosed(context);
- }
- function sign(x2) {
- return x2 < 0 ? -1 : 1;
- }
- function slope3(that, x2, y2) {
- var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1);
- return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
- }
- function slope2(that, t4) {
- var h = that._x1 - that._x0;
- return h ? (3 * (that._y1 - that._y0) / h - t4) / 2 : t4;
- }
- function point$1(that, t02, t12) {
- var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3;
- that._context.bezierCurveTo(x0 + dx, y0 + dx * t02, x1 - dx, y1 - dx * t12, x1, y1);
- }
- function MonotoneX(context) {
- this._context = context;
- }
- MonotoneX.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- switch (this._point) {
- case 2:
- this._context.lineTo(this._x1, this._y1);
- break;
- case 3:
- point$1(this, this._t0, slope2(this, this._t0));
- break;
- }
- if (this._line || this._line !== 0 && this._point === 1)
- this._context.closePath();
- this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- var t12 = NaN;
- x2 = +x2, y2 = +y2;
- if (x2 === this._x1 && y2 === this._y1)
- return;
- switch (this._point) {
- case 0:
- this._point = 1;
- this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
- break;
- case 1:
- this._point = 2;
- break;
- case 2:
- this._point = 3;
- point$1(this, slope2(this, t12 = slope3(this, x2, y2)), t12);
- break;
- default:
- point$1(this, this._t0, t12 = slope3(this, x2, y2));
- break;
- }
- this._x0 = this._x1, this._x1 = x2;
- this._y0 = this._y1, this._y1 = y2;
- this._t0 = t12;
- }
- };
- function MonotoneY(context) {
- this._context = new ReflectContext(context);
- }
- (MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x2, y2) {
- MonotoneX.prototype.point.call(this, y2, x2);
- };
- function ReflectContext(context) {
- this._context = context;
- }
- ReflectContext.prototype = {
- moveTo: function(x2, y2) {
- this._context.moveTo(y2, x2);
- },
- closePath: function() {
- this._context.closePath();
- },
- lineTo: function(x2, y2) {
- this._context.lineTo(y2, x2);
- },
- bezierCurveTo: function(x1, y1, x2, y2, x3, y3) {
- this._context.bezierCurveTo(y1, x1, y2, x2, y3, x3);
- }
- };
- function monotoneX(context) {
- return new MonotoneX(context);
- }
- function monotoneY(context) {
- return new MonotoneY(context);
- }
- function Natural(context) {
- this._context = context;
- }
- Natural.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x = [];
- this._y = [];
- },
- lineEnd: function() {
- var x2 = this._x, y2 = this._y, n = x2.length;
- if (n) {
- this._line ? this._context.lineTo(x2[0], y2[0]) : this._context.moveTo(x2[0], y2[0]);
- if (n === 2) {
- this._context.lineTo(x2[1], y2[1]);
+ /**
+ * Creates a new options object with the given font weight
+ */
+ withTextFontShape(fontShape) {
+ return this.extend({
+ fontShape,
+ font: ""
+ });
+ }
+ /**
+ * Return the CSS sizing classes required to switch from enclosing options
+ * `oldOptions` to `this`. Returns an array of classes.
+ */
+ sizingClasses(oldOptions) {
+ if (oldOptions.size !== this.size) {
+ return ["sizing", "reset-size" + oldOptions.size, "size" + this.size];
+ } else {
+ return [];
+ }
+ }
+ /**
+ * Return the CSS sizing classes required to switch to the base size. Like
+ * `this.havingSize(BASESIZE).sizingClasses(this)`.
+ */
+ baseSizingClasses() {
+ if (this.size !== _Options.BASESIZE) {
+ return ["sizing", "reset-size" + this.size, "size" + _Options.BASESIZE];
+ } else {
+ return [];
+ }
+ }
+ /**
+ * Return the font metrics for this size.
+ */
+ fontMetrics() {
+ if (!this._fontMetrics) {
+ this._fontMetrics = getGlobalMetrics(this.size);
+ }
+ return this._fontMetrics;
+ }
+ /**
+ * Gets the CSS color of the current options object
+ */
+ getColor() {
+ if (this.phantom) {
+ return "transparent";
+ } else {
+ return this.color;
+ }
+ }
+ };
+ Options.BASESIZE = 6;
+ ptPerUnit = {
+ // https://en.wikibooks.org/wiki/LaTeX/Lengths and
+ // https://tex.stackexchange.com/a/8263
+ "pt": 1,
+ // TeX point
+ "mm": 7227 / 2540,
+ // millimeter
+ "cm": 7227 / 254,
+ // centimeter
+ "in": 72.27,
+ // inch
+ "bp": 803 / 800,
+ // big (PostScript) points
+ "pc": 12,
+ // pica
+ "dd": 1238 / 1157,
+ // didot
+ "cc": 14856 / 1157,
+ // cicero (12 didot)
+ "nd": 685 / 642,
+ // new didot
+ "nc": 1370 / 107,
+ // new cicero (12 new didot)
+ "sp": 1 / 65536,
+ // scaled point (TeX's internal smallest unit)
+ // https://tex.stackexchange.com/a/41371
+ "px": 803 / 800
+ // \pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX
+ };
+ relativeUnit = {
+ "ex": true,
+ "em": true,
+ "mu": true
+ };
+ validUnit = /* @__PURE__ */ __name(function validUnit2(unit2) {
+ if (typeof unit2 !== "string") {
+ unit2 = unit2.unit;
+ }
+ return unit2 in ptPerUnit || unit2 in relativeUnit || unit2 === "ex";
+ }, "validUnit");
+ calculateSize2 = /* @__PURE__ */ __name(function calculateSize3(sizeValue, options3) {
+ var scale;
+ if (sizeValue.unit in ptPerUnit) {
+ scale = ptPerUnit[sizeValue.unit] / options3.fontMetrics().ptPerEm / options3.sizeMultiplier;
+ } else if (sizeValue.unit === "mu") {
+ scale = options3.fontMetrics().cssEmPerMu;
} else {
- var px = controlPoints(x2), py = controlPoints(y2);
- for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
- this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x2[i1], y2[i1]);
+ var unitOptions;
+ if (options3.style.isTight()) {
+ unitOptions = options3.havingStyle(options3.style.text());
+ } else {
+ unitOptions = options3;
}
+ if (sizeValue.unit === "ex") {
+ scale = unitOptions.fontMetrics().xHeight;
+ } else if (sizeValue.unit === "em") {
+ scale = unitOptions.fontMetrics().quad;
+ } else {
+ throw new ParseError("Invalid unit: '" + sizeValue.unit + "'");
+ }
+ if (unitOptions !== options3) {
+ scale *= unitOptions.sizeMultiplier / options3.sizeMultiplier;
+ }
+ }
+ return Math.min(sizeValue.number * scale, options3.maxSize);
+ }, "calculateSize");
+ makeEm = /* @__PURE__ */ __name(function makeEm2(n2) {
+ return +n2.toFixed(4) + "em";
+ }, "makeEm");
+ createClass = /* @__PURE__ */ __name(function createClass2(classes6) {
+ return classes6.filter((cls) => cls).join(" ");
+ }, "createClass");
+ initNode = /* @__PURE__ */ __name(function initNode2(classes6, options3, style3) {
+ this.classes = classes6 || [];
+ this.attributes = {};
+ this.height = 0;
+ this.depth = 0;
+ this.maxFontSize = 0;
+ this.style = style3 || {};
+ if (options3) {
+ if (options3.style.isTight()) {
+ this.classes.push("mtight");
+ }
+ var color2 = options3.getColor();
+ if (color2) {
+ this.style.color = color2;
+ }
+ }
+ }, "initNode");
+ toNode = /* @__PURE__ */ __name(function toNode2(tagName) {
+ var node2 = document.createElement(tagName);
+ node2.className = createClass(this.classes);
+ for (var style3 in this.style) {
+ if (this.style.hasOwnProperty(style3)) {
+ node2.style[style3] = this.style[style3];
+ }
+ }
+ for (var attr in this.attributes) {
+ if (this.attributes.hasOwnProperty(attr)) {
+ node2.setAttribute(attr, this.attributes[attr]);
+ }
+ }
+ for (var i2 = 0; i2 < this.children.length; i2++) {
+ node2.appendChild(this.children[i2].toNode());
+ }
+ return node2;
+ }, "toNode");
+ toMarkup = /* @__PURE__ */ __name(function toMarkup2(tagName) {
+ var markup = "<" + tagName;
+ if (this.classes.length) {
+ markup += ' class="' + utils.escape(createClass(this.classes)) + '"';
+ }
+ var styles3 = "";
+ for (var style3 in this.style) {
+ if (this.style.hasOwnProperty(style3)) {
+ styles3 += utils.hyphenate(style3) + ":" + this.style[style3] + ";";
+ }
+ }
+ if (styles3) {
+ markup += ' style="' + utils.escape(styles3) + '"';
+ }
+ for (var attr in this.attributes) {
+ if (this.attributes.hasOwnProperty(attr)) {
+ markup += " " + attr + '="' + utils.escape(this.attributes[attr]) + '"';
+ }
+ }
+ markup += ">";
+ for (var i2 = 0; i2 < this.children.length; i2++) {
+ markup += this.children[i2].toMarkup();
+ }
+ markup += "" + tagName + ">";
+ return markup;
+ }, "toMarkup");
+ Span = class {
+ static {
+ __name(this, "Span");
+ }
+ constructor(classes6, children2, options3, style3) {
+ this.children = void 0;
+ this.attributes = void 0;
+ this.classes = void 0;
+ this.height = void 0;
+ this.depth = void 0;
+ this.width = void 0;
+ this.maxFontSize = void 0;
+ this.style = void 0;
+ initNode.call(this, classes6, options3, style3);
+ this.children = children2 || [];
+ }
+ /**
+ * Sets an arbitrary attribute on the span. Warning: use this wisely. Not
+ * all browsers support attributes the same, and having too many custom
+ * attributes is probably bad.
+ */
+ setAttribute(attribute, value2) {
+ this.attributes[attribute] = value2;
+ }
+ hasClass(className) {
+ return utils.contains(this.classes, className);
+ }
+ toNode() {
+ return toNode.call(this, "span");
+ }
+ toMarkup() {
+ return toMarkup.call(this, "span");
+ }
+ };
+ Anchor = class {
+ static {
+ __name(this, "Anchor");
+ }
+ constructor(href, classes6, children2, options3) {
+ this.children = void 0;
+ this.attributes = void 0;
+ this.classes = void 0;
+ this.height = void 0;
+ this.depth = void 0;
+ this.maxFontSize = void 0;
+ this.style = void 0;
+ initNode.call(this, classes6, options3);
+ this.children = children2 || [];
+ this.setAttribute("href", href);
+ }
+ setAttribute(attribute, value2) {
+ this.attributes[attribute] = value2;
+ }
+ hasClass(className) {
+ return utils.contains(this.classes, className);
+ }
+ toNode() {
+ return toNode.call(this, "a");
+ }
+ toMarkup() {
+ return toMarkup.call(this, "a");
+ }
+ };
+ Img = class {
+ static {
+ __name(this, "Img");
+ }
+ constructor(src, alt, style3) {
+ this.src = void 0;
+ this.alt = void 0;
+ this.classes = void 0;
+ this.height = void 0;
+ this.depth = void 0;
+ this.maxFontSize = void 0;
+ this.style = void 0;
+ this.alt = alt;
+ this.src = src;
+ this.classes = ["mord"];
+ this.style = style3;
+ }
+ hasClass(className) {
+ return utils.contains(this.classes, className);
+ }
+ toNode() {
+ var node2 = document.createElement("img");
+ node2.src = this.src;
+ node2.alt = this.alt;
+ node2.className = "mord";
+ for (var style3 in this.style) {
+ if (this.style.hasOwnProperty(style3)) {
+ node2.style[style3] = this.style[style3];
+ }
+ }
+ return node2;
}
- }
- if (this._line || this._line !== 0 && n === 1)
- this._context.closePath();
- this._line = 1 - this._line;
- this._x = this._y = null;
- },
- point: function(x2, y2) {
- this._x.push(+x2);
- this._y.push(+y2);
- }
- };
- function controlPoints(x2) {
- var i2, n = x2.length - 1, m, a = new Array(n), b = new Array(n), r = new Array(n);
- a[0] = 0, b[0] = 2, r[0] = x2[0] + 2 * x2[1];
- for (i2 = 1; i2 < n - 1; ++i2)
- a[i2] = 1, b[i2] = 4, r[i2] = 4 * x2[i2] + 2 * x2[i2 + 1];
- a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x2[n - 1] + x2[n];
- for (i2 = 1; i2 < n; ++i2)
- m = a[i2] / b[i2 - 1], b[i2] -= m, r[i2] -= m * r[i2 - 1];
- a[n - 1] = r[n - 1] / b[n - 1];
- for (i2 = n - 2; i2 >= 0; --i2)
- a[i2] = (r[i2] - a[i2 + 1]) / b[i2];
- b[n - 1] = (x2[n] + a[n - 1]) / 2;
- for (i2 = 0; i2 < n - 1; ++i2)
- b[i2] = 2 * x2[i2 + 1] - a[i2 + 1];
- return [a, b];
- }
- function curveNatural(context) {
- return new Natural(context);
- }
- function Step(context, t4) {
- this._context = context;
- this._t = t4;
- }
- Step.prototype = {
- areaStart: function() {
- this._line = 0;
- },
- areaEnd: function() {
- this._line = NaN;
- },
- lineStart: function() {
- this._x = this._y = NaN;
- this._point = 0;
- },
- lineEnd: function() {
- if (0 < this._t && this._t < 1 && this._point === 2)
- this._context.lineTo(this._x, this._y);
- if (this._line || this._line !== 0 && this._point === 1)
- this._context.closePath();
- if (this._line >= 0)
- this._t = 1 - this._t, this._line = 1 - this._line;
- },
- point: function(x2, y2) {
- x2 = +x2, y2 = +y2;
- switch (this._point) {
- case 0:
- this._point = 1;
- this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
- break;
- case 1:
- this._point = 2;
- default: {
- if (this._t <= 0) {
- this._context.lineTo(this._x, y2);
- this._context.lineTo(x2, y2);
+ toMarkup() {
+ var markup = '";
+ return markup;
+ }
+ };
+ iCombinations = {
+ "\xEE": "\u0131\u0302",
+ "\xEF": "\u0131\u0308",
+ "\xED": "\u0131\u0301",
+ // 'ī': '\u0131\u0304', // enable when we add Extended Latin
+ "\xEC": "\u0131\u0300"
+ };
+ SymbolNode = class {
+ static {
+ __name(this, "SymbolNode");
+ }
+ constructor(text2, height2, depth, italic, skew, width3, classes6, style3) {
+ this.text = void 0;
+ this.height = void 0;
+ this.depth = void 0;
+ this.italic = void 0;
+ this.skew = void 0;
+ this.width = void 0;
+ this.maxFontSize = void 0;
+ this.classes = void 0;
+ this.style = void 0;
+ this.text = text2;
+ this.height = height2 || 0;
+ this.depth = depth || 0;
+ this.italic = italic || 0;
+ this.skew = skew || 0;
+ this.width = width3 || 0;
+ this.classes = classes6 || [];
+ this.style = style3 || {};
+ this.maxFontSize = 0;
+ var script = scriptFromCodepoint(this.text.charCodeAt(0));
+ if (script) {
+ this.classes.push(script + "_fallback");
+ }
+ if (/[îïíì]/.test(this.text)) {
+ this.text = iCombinations[this.text];
+ }
+ }
+ hasClass(className) {
+ return utils.contains(this.classes, className);
+ }
+ /**
+ * Creates a text node or span from a symbol node. Note that a span is only
+ * created if it is needed.
+ */
+ toNode() {
+ var node2 = document.createTextNode(this.text);
+ var span = null;
+ if (this.italic > 0) {
+ span = document.createElement("span");
+ span.style.marginRight = makeEm(this.italic);
+ }
+ if (this.classes.length > 0) {
+ span = span || document.createElement("span");
+ span.className = createClass(this.classes);
+ }
+ for (var style3 in this.style) {
+ if (this.style.hasOwnProperty(style3)) {
+ span = span || document.createElement("span");
+ span.style[style3] = this.style[style3];
+ }
+ }
+ if (span) {
+ span.appendChild(node2);
+ return span;
} else {
- var x1 = this._x * (1 - this._t) + x2 * this._t;
- this._context.lineTo(x1, this._y);
- this._context.lineTo(x1, y2);
+ return node2;
+ }
+ }
+ /**
+ * Creates markup for a symbol node.
+ */
+ toMarkup() {
+ var needsSpan = false;
+ var markup = " 0) {
+ styles3 += "margin-right:" + this.italic + "em;";
+ }
+ for (var style3 in this.style) {
+ if (this.style.hasOwnProperty(style3)) {
+ styles3 += utils.hyphenate(style3) + ":" + this.style[style3] + ";";
+ }
+ }
+ if (styles3) {
+ needsSpan = true;
+ markup += ' style="' + utils.escape(styles3) + '"';
+ }
+ var escaped = utils.escape(this.text);
+ if (needsSpan) {
+ markup += ">";
+ markup += escaped;
+ markup += "";
+ return markup;
+ } else {
+ return escaped;
}
- break;
}
- }
- this._x = x2, this._y = y2;
- }
- };
- function curveStep(context) {
- return new Step(context, 0.5);
- }
- function stepBefore(context) {
- return new Step(context, 0);
- }
- function stepAfter(context) {
- return new Step(context, 1);
- }
- function Transform(k, x2, y2) {
- this.k = k;
- this.x = x2;
- this.y = y2;
- }
- Transform.prototype = {
- constructor: Transform,
- scale: function(k) {
- return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
- },
- translate: function(x2, y2) {
- return x2 === 0 & y2 === 0 ? this : new Transform(this.k, this.x + this.k * x2, this.y + this.k * y2);
- },
- apply: function(point2) {
- return [point2[0] * this.k + this.x, point2[1] * this.k + this.y];
- },
- applyX: function(x2) {
- return x2 * this.k + this.x;
- },
- applyY: function(y2) {
- return y2 * this.k + this.y;
- },
- invert: function(location2) {
- return [(location2[0] - this.x) / this.k, (location2[1] - this.y) / this.k];
- },
- invertX: function(x2) {
- return (x2 - this.x) / this.k;
- },
- invertY: function(y2) {
- return (y2 - this.y) / this.k;
- },
- rescaleX: function(x2) {
- return x2.copy().domain(x2.range().map(this.invertX, this).map(x2.invert, x2));
- },
- rescaleY: function(y2) {
- return y2.copy().domain(y2.range().map(this.invertY, this).map(y2.invert, y2));
- },
- toString: function() {
- return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
- }
- };
- Transform.prototype;
- /*! @license DOMPurify 3.0.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.2/LICENSE */
- const {
- entries,
- setPrototypeOf,
- isFrozen,
- getPrototypeOf,
- getOwnPropertyDescriptor
- } = Object;
- let {
- freeze,
- seal,
- create
- } = Object;
- let {
- apply: apply$2,
- construct
- } = typeof Reflect !== "undefined" && Reflect;
- if (!apply$2) {
- apply$2 = function apply2(fun, thisValue, args) {
- return fun.apply(thisValue, args);
- };
- }
- if (!freeze) {
- freeze = function freeze2(x2) {
- return x2;
- };
- }
- if (!seal) {
- seal = function seal2(x2) {
- return x2;
- };
- }
- if (!construct) {
- construct = function construct2(Func, args) {
- return new Func(...args);
- };
- }
- const arrayForEach = unapply(Array.prototype.forEach);
- const arrayPop = unapply(Array.prototype.pop);
- const arrayPush$1 = unapply(Array.prototype.push);
- const stringToLowerCase = unapply(String.prototype.toLowerCase);
- const stringToString = unapply(String.prototype.toString);
- const stringMatch = unapply(String.prototype.match);
- const stringReplace = unapply(String.prototype.replace);
- const stringIndexOf = unapply(String.prototype.indexOf);
- const stringTrim = unapply(String.prototype.trim);
- const regExpTest = unapply(RegExp.prototype.test);
- const typeErrorCreate = unconstruct(TypeError);
- function unapply(func) {
- return function(thisArg) {
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
- return apply$2(func, thisArg, args);
- };
- }
- function unconstruct(func) {
- return function() {
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
- return construct(func, args);
- };
- }
- function addToSet(set2, array2, transformCaseFunc) {
- transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;
- if (setPrototypeOf) {
- setPrototypeOf(set2, null);
- }
- let l = array2.length;
- while (l--) {
- let element = array2[l];
- if (typeof element === "string") {
- const lcElement = transformCaseFunc(element);
- if (lcElement !== element) {
- if (!isFrozen(array2)) {
- array2[l] = lcElement;
+ };
+ SvgNode = class {
+ static {
+ __name(this, "SvgNode");
+ }
+ constructor(children2, attributes) {
+ this.children = void 0;
+ this.attributes = void 0;
+ this.children = children2 || [];
+ this.attributes = attributes || {};
+ }
+ toNode() {
+ var svgNS = "http://www.w3.org/2000/svg";
+ var node2 = document.createElementNS(svgNS, "svg");
+ for (var attr in this.attributes) {
+ if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
+ node2.setAttribute(attr, this.attributes[attr]);
+ }
+ }
+ for (var i2 = 0; i2 < this.children.length; i2++) {
+ node2.appendChild(this.children[i2].toNode());
}
- element = lcElement;
+ return node2;
}
- }
- set2[element] = true;
- }
- return set2;
- }
- function clone$2(object2) {
- const newObject = create(null);
- for (const [property2, value] of entries(object2)) {
- newObject[property2] = value;
- }
- return newObject;
- }
- function lookupGetter(object2, prop) {
- while (object2 !== null) {
- const desc = getOwnPropertyDescriptor(object2, prop);
- if (desc) {
- if (desc.get) {
- return unapply(desc.get);
+ toMarkup() {
+ var markup = '";
+ return markup;
}
- if (typeof desc.value === "function") {
- return unapply(desc.value);
+ };
+ PathNode = class {
+ static {
+ __name(this, "PathNode");
}
- }
- object2 = getPrototypeOf(object2);
- }
- function fallbackValue(element) {
- console.warn("fallback value for", element);
- return null;
- }
- return fallbackValue;
- }
- const html$1 = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]);
- const svg$1 = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]);
- const svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]);
- const svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]);
- const mathMl$1 = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]);
- const mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]);
- const text = freeze(["#text"]);
- const html = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]);
- const svg = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]);
- const mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]);
- const xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
- const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
- const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
- const TMPLIT_EXPR = seal(/\${[\w\W]*}/gm);
- const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/);
- const ARIA_ATTR = seal(/^aria-[\-\w]+$/);
- const IS_ALLOWED_URI = seal(
- /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
- // eslint-disable-line no-useless-escape
- );
- const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
- const ATTR_WHITESPACE = seal(
- /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
- // eslint-disable-line no-control-regex
- );
- const DOCTYPE_NAME = seal(/^html$/i);
- var EXPRESSIONS = /* @__PURE__ */ Object.freeze({
- __proto__: null,
- MUSTACHE_EXPR,
- ERB_EXPR,
- TMPLIT_EXPR,
- DATA_ATTR,
- ARIA_ATTR,
- IS_ALLOWED_URI,
- IS_SCRIPT_OR_DATA,
- ATTR_WHITESPACE,
- DOCTYPE_NAME
- });
- const getGlobal = () => typeof window === "undefined" ? null : window;
- const _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, document2) {
- if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function") {
- return null;
- }
- let suffix = null;
- const ATTR_NAME = "data-tt-policy-suffix";
- if (document2.currentScript && document2.currentScript.hasAttribute(ATTR_NAME)) {
- suffix = document2.currentScript.getAttribute(ATTR_NAME);
- }
- const policyName = "dompurify" + (suffix ? "#" + suffix : "");
- try {
- return trustedTypes.createPolicy(policyName, {
- createHTML(html2) {
- return html2;
- },
- createScriptURL(scriptUrl) {
- return scriptUrl;
+ constructor(pathName, alternate) {
+ this.pathName = void 0;
+ this.alternate = void 0;
+ this.pathName = pathName;
+ this.alternate = alternate;
}
- });
- } catch (_2) {
- console.warn("TrustedTypes policy " + policyName + " could not be created.");
- return null;
- }
- };
- function createDOMPurify() {
- let window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
- const DOMPurify = (root2) => createDOMPurify(root2);
- DOMPurify.version = "3.0.2";
- DOMPurify.removed = [];
- if (!window2 || !window2.document || window2.document.nodeType !== 9) {
- DOMPurify.isSupported = false;
- return DOMPurify;
- }
- const originalDocument = window2.document;
- let {
- document: document2
- } = window2;
- const {
- DocumentFragment,
- HTMLTemplateElement,
- Node,
- Element,
- NodeFilter,
- NamedNodeMap = window2.NamedNodeMap || window2.MozNamedAttrMap,
- HTMLFormElement,
- DOMParser: DOMParser2,
- trustedTypes
- } = window2;
- const ElementPrototype = Element.prototype;
- const cloneNode = lookupGetter(ElementPrototype, "cloneNode");
- const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
- const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
- const getParentNode = lookupGetter(ElementPrototype, "parentNode");
- if (typeof HTMLTemplateElement === "function") {
- const template = document2.createElement("template");
- if (template.content && template.content.ownerDocument) {
- document2 = template.content.ownerDocument;
- }
- }
- const trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
- const emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML("") : "";
- const {
- implementation,
- createNodeIterator,
- createDocumentFragment,
- getElementsByTagName
- } = document2;
- const {
- importNode
- } = originalDocument;
- let hooks = {};
- DOMPurify.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && typeof implementation.createHTMLDocument !== "undefined";
- const {
- MUSTACHE_EXPR: MUSTACHE_EXPR2,
- ERB_EXPR: ERB_EXPR2,
- TMPLIT_EXPR: TMPLIT_EXPR2,
- DATA_ATTR: DATA_ATTR2,
- ARIA_ATTR: ARIA_ATTR2,
- IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA2,
- ATTR_WHITESPACE: ATTR_WHITESPACE2
- } = EXPRESSIONS;
- let {
- IS_ALLOWED_URI: IS_ALLOWED_URI$1
- } = EXPRESSIONS;
- let ALLOWED_TAGS = null;
- const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);
- let ALLOWED_ATTR = null;
- const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);
- let CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
- tagNameCheck: {
- writable: true,
- configurable: false,
- enumerable: true,
- value: null
- },
- attributeNameCheck: {
- writable: true,
- configurable: false,
- enumerable: true,
- value: null
- },
- allowCustomizedBuiltInElements: {
- writable: true,
- configurable: false,
- enumerable: true,
- value: false
- }
- }));
- let FORBID_TAGS = null;
- let FORBID_ATTR = null;
- let ALLOW_ARIA_ATTR = true;
- let ALLOW_DATA_ATTR = true;
- let ALLOW_UNKNOWN_PROTOCOLS = false;
- let ALLOW_SELF_CLOSE_IN_ATTR = true;
- let SAFE_FOR_TEMPLATES = false;
- let WHOLE_DOCUMENT = false;
- let SET_CONFIG = false;
- let FORCE_BODY = false;
- let RETURN_DOM = false;
- let RETURN_DOM_FRAGMENT = false;
- let RETURN_TRUSTED_TYPE = false;
- let SANITIZE_DOM = true;
- let SANITIZE_NAMED_PROPS = false;
- const SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
- let KEEP_CONTENT = true;
- let IN_PLACE = false;
- let USE_PROFILES = {};
- let FORBID_CONTENTS = null;
- const DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
- let DATA_URI_TAGS = null;
- const DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]);
- let URI_SAFE_ATTRIBUTES = null;
- const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]);
- const MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
- const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
- const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
- let NAMESPACE = HTML_NAMESPACE;
- let IS_EMPTY_INPUT = false;
- let ALLOWED_NAMESPACES = null;
- const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
- let PARSER_MEDIA_TYPE;
- const SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
- const DEFAULT_PARSER_MEDIA_TYPE = "text/html";
- let transformCaseFunc;
- let CONFIG = null;
- const formElement = document2.createElement("form");
- const isRegexOrFunction = function isRegexOrFunction2(testValue) {
- return testValue instanceof RegExp || testValue instanceof Function;
- };
- const _parseConfig = function _parseConfig2(cfg) {
- if (CONFIG && CONFIG === cfg) {
- return;
- }
- if (!cfg || typeof cfg !== "object") {
- cfg = {};
- }
- cfg = clone$2(cfg);
- PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes
- SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;
- transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
- ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
- ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
- ALLOWED_NAMESPACES = "ALLOWED_NAMESPACES" in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
- URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(
- clone$2(DEFAULT_URI_SAFE_ATTRIBUTES),
- // eslint-disable-line indent
- cfg.ADD_URI_SAFE_ATTR,
- // eslint-disable-line indent
- transformCaseFunc
- // eslint-disable-line indent
- ) : DEFAULT_URI_SAFE_ATTRIBUTES;
- DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(
- clone$2(DEFAULT_DATA_URI_TAGS),
- // eslint-disable-line indent
- cfg.ADD_DATA_URI_TAGS,
- // eslint-disable-line indent
- transformCaseFunc
- // eslint-disable-line indent
- ) : DEFAULT_DATA_URI_TAGS;
- FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
- FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
- FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
- USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false;
- ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
- ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
- ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
- ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
- SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
- WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
- RETURN_DOM = cfg.RETURN_DOM || false;
- RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
- RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
- FORCE_BODY = cfg.FORCE_BODY || false;
- SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
- SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
- KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
- IN_PLACE = cfg.IN_PLACE || false;
- IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
- NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
- CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
- if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
- CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
- }
- if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
- CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
- }
- if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") {
- CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
- }
- if (SAFE_FOR_TEMPLATES) {
- ALLOW_DATA_ATTR = false;
- }
- if (RETURN_DOM_FRAGMENT) {
- RETURN_DOM = true;
- }
- if (USE_PROFILES) {
- ALLOWED_TAGS = addToSet({}, [...text]);
- ALLOWED_ATTR = [];
- if (USE_PROFILES.html === true) {
- addToSet(ALLOWED_TAGS, html$1);
- addToSet(ALLOWED_ATTR, html);
- }
- if (USE_PROFILES.svg === true) {
- addToSet(ALLOWED_TAGS, svg$1);
- addToSet(ALLOWED_ATTR, svg);
- addToSet(ALLOWED_ATTR, xml);
- }
- if (USE_PROFILES.svgFilters === true) {
- addToSet(ALLOWED_TAGS, svgFilters);
- addToSet(ALLOWED_ATTR, svg);
- addToSet(ALLOWED_ATTR, xml);
- }
- if (USE_PROFILES.mathMl === true) {
- addToSet(ALLOWED_TAGS, mathMl$1);
- addToSet(ALLOWED_ATTR, mathMl);
- addToSet(ALLOWED_ATTR, xml);
- }
- }
- if (cfg.ADD_TAGS) {
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
- ALLOWED_TAGS = clone$2(ALLOWED_TAGS);
- }
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
- }
- if (cfg.ADD_ATTR) {
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
- ALLOWED_ATTR = clone$2(ALLOWED_ATTR);
- }
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
- }
- if (cfg.ADD_URI_SAFE_ATTR) {
- addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
- }
- if (cfg.FORBID_CONTENTS) {
- if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
- FORBID_CONTENTS = clone$2(FORBID_CONTENTS);
- }
- addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
- }
- if (KEEP_CONTENT) {
- ALLOWED_TAGS["#text"] = true;
- }
- if (WHOLE_DOCUMENT) {
- addToSet(ALLOWED_TAGS, ["html", "head", "body"]);
- }
- if (ALLOWED_TAGS.table) {
- addToSet(ALLOWED_TAGS, ["tbody"]);
- delete FORBID_TAGS.tbody;
- }
- if (freeze) {
- freeze(cfg);
- }
- CONFIG = cfg;
- };
- const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]);
- const HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "desc", "title", "annotation-xml"]);
- const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ["title", "style", "font", "a", "script"]);
- const ALL_SVG_TAGS = addToSet({}, svg$1);
- addToSet(ALL_SVG_TAGS, svgFilters);
- addToSet(ALL_SVG_TAGS, svgDisallowed);
- const ALL_MATHML_TAGS = addToSet({}, mathMl$1);
- addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
- const _checkValidNamespace = function _checkValidNamespace2(element) {
- let parent = getParentNode(element);
- if (!parent || !parent.tagName) {
- parent = {
- namespaceURI: NAMESPACE,
- tagName: "template"
+ toNode() {
+ var svgNS = "http://www.w3.org/2000/svg";
+ var node2 = document.createElementNS(svgNS, "path");
+ if (this.alternate) {
+ node2.setAttribute("d", this.alternate);
+ } else {
+ node2.setAttribute("d", path[this.pathName]);
+ }
+ return node2;
+ }
+ toMarkup() {
+ if (this.alternate) {
+ return '';
+ } else {
+ return '';
+ }
+ }
+ };
+ LineNode = class {
+ static {
+ __name(this, "LineNode");
+ }
+ constructor(attributes) {
+ this.attributes = void 0;
+ this.attributes = attributes || {};
+ }
+ toNode() {
+ var svgNS = "http://www.w3.org/2000/svg";
+ var node2 = document.createElementNS(svgNS, "line");
+ for (var attr in this.attributes) {
+ if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
+ node2.setAttribute(attr, this.attributes[attr]);
+ }
+ }
+ return node2;
+ }
+ toMarkup() {
+ var markup = "";
+ return markup;
+ }
+ };
+ __name(assertSymbolDomNode, "assertSymbolDomNode");
+ __name(assertSpan, "assertSpan");
+ ATOMS = {
+ "bin": 1,
+ "close": 1,
+ "inner": 1,
+ "open": 1,
+ "punct": 1,
+ "rel": 1
+ };
+ NON_ATOMS = {
+ "accent-token": 1,
+ "mathord": 1,
+ "op-token": 1,
+ "spacing": 1,
+ "textord": 1
+ };
+ symbols = {
+ "math": {},
+ "text": {}
+ };
+ __name(defineSymbol, "defineSymbol");
+ math = "math";
+ text = "text";
+ main = "main";
+ ams = "ams";
+ accent = "accent-token";
+ bin = "bin";
+ close = "close";
+ inner = "inner";
+ mathord = "mathord";
+ op = "op-token";
+ open = "open";
+ punct = "punct";
+ rel = "rel";
+ spacing = "spacing";
+ textord = "textord";
+ defineSymbol(math, main, rel, "\u2261", "\\equiv", true);
+ defineSymbol(math, main, rel, "\u227A", "\\prec", true);
+ defineSymbol(math, main, rel, "\u227B", "\\succ", true);
+ defineSymbol(math, main, rel, "\u223C", "\\sim", true);
+ defineSymbol(math, main, rel, "\u22A5", "\\perp");
+ defineSymbol(math, main, rel, "\u2AAF", "\\preceq", true);
+ defineSymbol(math, main, rel, "\u2AB0", "\\succeq", true);
+ defineSymbol(math, main, rel, "\u2243", "\\simeq", true);
+ defineSymbol(math, main, rel, "\u2223", "\\mid", true);
+ defineSymbol(math, main, rel, "\u226A", "\\ll", true);
+ defineSymbol(math, main, rel, "\u226B", "\\gg", true);
+ defineSymbol(math, main, rel, "\u224D", "\\asymp", true);
+ defineSymbol(math, main, rel, "\u2225", "\\parallel");
+ defineSymbol(math, main, rel, "\u22C8", "\\bowtie", true);
+ defineSymbol(math, main, rel, "\u2323", "\\smile", true);
+ defineSymbol(math, main, rel, "\u2291", "\\sqsubseteq", true);
+ defineSymbol(math, main, rel, "\u2292", "\\sqsupseteq", true);
+ defineSymbol(math, main, rel, "\u2250", "\\doteq", true);
+ defineSymbol(math, main, rel, "\u2322", "\\frown", true);
+ defineSymbol(math, main, rel, "\u220B", "\\ni", true);
+ defineSymbol(math, main, rel, "\u221D", "\\propto", true);
+ defineSymbol(math, main, rel, "\u22A2", "\\vdash", true);
+ defineSymbol(math, main, rel, "\u22A3", "\\dashv", true);
+ defineSymbol(math, main, rel, "\u220B", "\\owns");
+ defineSymbol(math, main, punct, ".", "\\ldotp");
+ defineSymbol(math, main, punct, "\u22C5", "\\cdotp");
+ defineSymbol(math, main, textord, "#", "\\#");
+ defineSymbol(text, main, textord, "#", "\\#");
+ defineSymbol(math, main, textord, "&", "\\&");
+ defineSymbol(text, main, textord, "&", "\\&");
+ defineSymbol(math, main, textord, "\u2135", "\\aleph", true);
+ defineSymbol(math, main, textord, "\u2200", "\\forall", true);
+ defineSymbol(math, main, textord, "\u210F", "\\hbar", true);
+ defineSymbol(math, main, textord, "\u2203", "\\exists", true);
+ defineSymbol(math, main, textord, "\u2207", "\\nabla", true);
+ defineSymbol(math, main, textord, "\u266D", "\\flat", true);
+ defineSymbol(math, main, textord, "\u2113", "\\ell", true);
+ defineSymbol(math, main, textord, "\u266E", "\\natural", true);
+ defineSymbol(math, main, textord, "\u2663", "\\clubsuit", true);
+ defineSymbol(math, main, textord, "\u2118", "\\wp", true);
+ defineSymbol(math, main, textord, "\u266F", "\\sharp", true);
+ defineSymbol(math, main, textord, "\u2662", "\\diamondsuit", true);
+ defineSymbol(math, main, textord, "\u211C", "\\Re", true);
+ defineSymbol(math, main, textord, "\u2661", "\\heartsuit", true);
+ defineSymbol(math, main, textord, "\u2111", "\\Im", true);
+ defineSymbol(math, main, textord, "\u2660", "\\spadesuit", true);
+ defineSymbol(math, main, textord, "\xA7", "\\S", true);
+ defineSymbol(text, main, textord, "\xA7", "\\S");
+ defineSymbol(math, main, textord, "\xB6", "\\P", true);
+ defineSymbol(text, main, textord, "\xB6", "\\P");
+ defineSymbol(math, main, textord, "\u2020", "\\dag");
+ defineSymbol(text, main, textord, "\u2020", "\\dag");
+ defineSymbol(text, main, textord, "\u2020", "\\textdagger");
+ defineSymbol(math, main, textord, "\u2021", "\\ddag");
+ defineSymbol(text, main, textord, "\u2021", "\\ddag");
+ defineSymbol(text, main, textord, "\u2021", "\\textdaggerdbl");
+ defineSymbol(math, main, close, "\u23B1", "\\rmoustache", true);
+ defineSymbol(math, main, open, "\u23B0", "\\lmoustache", true);
+ defineSymbol(math, main, close, "\u27EF", "\\rgroup", true);
+ defineSymbol(math, main, open, "\u27EE", "\\lgroup", true);
+ defineSymbol(math, main, bin, "\u2213", "\\mp", true);
+ defineSymbol(math, main, bin, "\u2296", "\\ominus", true);
+ defineSymbol(math, main, bin, "\u228E", "\\uplus", true);
+ defineSymbol(math, main, bin, "\u2293", "\\sqcap", true);
+ defineSymbol(math, main, bin, "\u2217", "\\ast");
+ defineSymbol(math, main, bin, "\u2294", "\\sqcup", true);
+ defineSymbol(math, main, bin, "\u25EF", "\\bigcirc", true);
+ defineSymbol(math, main, bin, "\u2219", "\\bullet", true);
+ defineSymbol(math, main, bin, "\u2021", "\\ddagger");
+ defineSymbol(math, main, bin, "\u2240", "\\wr", true);
+ defineSymbol(math, main, bin, "\u2A3F", "\\amalg");
+ defineSymbol(math, main, bin, "&", "\\And");
+ defineSymbol(math, main, rel, "\u27F5", "\\longleftarrow", true);
+ defineSymbol(math, main, rel, "\u21D0", "\\Leftarrow", true);
+ defineSymbol(math, main, rel, "\u27F8", "\\Longleftarrow", true);
+ defineSymbol(math, main, rel, "\u27F6", "\\longrightarrow", true);
+ defineSymbol(math, main, rel, "\u21D2", "\\Rightarrow", true);
+ defineSymbol(math, main, rel, "\u27F9", "\\Longrightarrow", true);
+ defineSymbol(math, main, rel, "\u2194", "\\leftrightarrow", true);
+ defineSymbol(math, main, rel, "\u27F7", "\\longleftrightarrow", true);
+ defineSymbol(math, main, rel, "\u21D4", "\\Leftrightarrow", true);
+ defineSymbol(math, main, rel, "\u27FA", "\\Longleftrightarrow", true);
+ defineSymbol(math, main, rel, "\u21A6", "\\mapsto", true);
+ defineSymbol(math, main, rel, "\u27FC", "\\longmapsto", true);
+ defineSymbol(math, main, rel, "\u2197", "\\nearrow", true);
+ defineSymbol(math, main, rel, "\u21A9", "\\hookleftarrow", true);
+ defineSymbol(math, main, rel, "\u21AA", "\\hookrightarrow", true);
+ defineSymbol(math, main, rel, "\u2198", "\\searrow", true);
+ defineSymbol(math, main, rel, "\u21BC", "\\leftharpoonup", true);
+ defineSymbol(math, main, rel, "\u21C0", "\\rightharpoonup", true);
+ defineSymbol(math, main, rel, "\u2199", "\\swarrow", true);
+ defineSymbol(math, main, rel, "\u21BD", "\\leftharpoondown", true);
+ defineSymbol(math, main, rel, "\u21C1", "\\rightharpoondown", true);
+ defineSymbol(math, main, rel, "\u2196", "\\nwarrow", true);
+ defineSymbol(math, main, rel, "\u21CC", "\\rightleftharpoons", true);
+ defineSymbol(math, ams, rel, "\u226E", "\\nless", true);
+ defineSymbol(math, ams, rel, "\uE010", "\\@nleqslant");
+ defineSymbol(math, ams, rel, "\uE011", "\\@nleqq");
+ defineSymbol(math, ams, rel, "\u2A87", "\\lneq", true);
+ defineSymbol(math, ams, rel, "\u2268", "\\lneqq", true);
+ defineSymbol(math, ams, rel, "\uE00C", "\\@lvertneqq");
+ defineSymbol(math, ams, rel, "\u22E6", "\\lnsim", true);
+ defineSymbol(math, ams, rel, "\u2A89", "\\lnapprox", true);
+ defineSymbol(math, ams, rel, "\u2280", "\\nprec", true);
+ defineSymbol(math, ams, rel, "\u22E0", "\\npreceq", true);
+ defineSymbol(math, ams, rel, "\u22E8", "\\precnsim", true);
+ defineSymbol(math, ams, rel, "\u2AB9", "\\precnapprox", true);
+ defineSymbol(math, ams, rel, "\u2241", "\\nsim", true);
+ defineSymbol(math, ams, rel, "\uE006", "\\@nshortmid");
+ defineSymbol(math, ams, rel, "\u2224", "\\nmid", true);
+ defineSymbol(math, ams, rel, "\u22AC", "\\nvdash", true);
+ defineSymbol(math, ams, rel, "\u22AD", "\\nvDash", true);
+ defineSymbol(math, ams, rel, "\u22EA", "\\ntriangleleft");
+ defineSymbol(math, ams, rel, "\u22EC", "\\ntrianglelefteq", true);
+ defineSymbol(math, ams, rel, "\u228A", "\\subsetneq", true);
+ defineSymbol(math, ams, rel, "\uE01A", "\\@varsubsetneq");
+ defineSymbol(math, ams, rel, "\u2ACB", "\\subsetneqq", true);
+ defineSymbol(math, ams, rel, "\uE017", "\\@varsubsetneqq");
+ defineSymbol(math, ams, rel, "\u226F", "\\ngtr", true);
+ defineSymbol(math, ams, rel, "\uE00F", "\\@ngeqslant");
+ defineSymbol(math, ams, rel, "\uE00E", "\\@ngeqq");
+ defineSymbol(math, ams, rel, "\u2A88", "\\gneq", true);
+ defineSymbol(math, ams, rel, "\u2269", "\\gneqq", true);
+ defineSymbol(math, ams, rel, "\uE00D", "\\@gvertneqq");
+ defineSymbol(math, ams, rel, "\u22E7", "\\gnsim", true);
+ defineSymbol(math, ams, rel, "\u2A8A", "\\gnapprox", true);
+ defineSymbol(math, ams, rel, "\u2281", "\\nsucc", true);
+ defineSymbol(math, ams, rel, "\u22E1", "\\nsucceq", true);
+ defineSymbol(math, ams, rel, "\u22E9", "\\succnsim", true);
+ defineSymbol(math, ams, rel, "\u2ABA", "\\succnapprox", true);
+ defineSymbol(math, ams, rel, "\u2246", "\\ncong", true);
+ defineSymbol(math, ams, rel, "\uE007", "\\@nshortparallel");
+ defineSymbol(math, ams, rel, "\u2226", "\\nparallel", true);
+ defineSymbol(math, ams, rel, "\u22AF", "\\nVDash", true);
+ defineSymbol(math, ams, rel, "\u22EB", "\\ntriangleright");
+ defineSymbol(math, ams, rel, "\u22ED", "\\ntrianglerighteq", true);
+ defineSymbol(math, ams, rel, "\uE018", "\\@nsupseteqq");
+ defineSymbol(math, ams, rel, "\u228B", "\\supsetneq", true);
+ defineSymbol(math, ams, rel, "\uE01B", "\\@varsupsetneq");
+ defineSymbol(math, ams, rel, "\u2ACC", "\\supsetneqq", true);
+ defineSymbol(math, ams, rel, "\uE019", "\\@varsupsetneqq");
+ defineSymbol(math, ams, rel, "\u22AE", "\\nVdash", true);
+ defineSymbol(math, ams, rel, "\u2AB5", "\\precneqq", true);
+ defineSymbol(math, ams, rel, "\u2AB6", "\\succneqq", true);
+ defineSymbol(math, ams, rel, "\uE016", "\\@nsubseteqq");
+ defineSymbol(math, ams, bin, "\u22B4", "\\unlhd");
+ defineSymbol(math, ams, bin, "\u22B5", "\\unrhd");
+ defineSymbol(math, ams, rel, "\u219A", "\\nleftarrow", true);
+ defineSymbol(math, ams, rel, "\u219B", "\\nrightarrow", true);
+ defineSymbol(math, ams, rel, "\u21CD", "\\nLeftarrow", true);
+ defineSymbol(math, ams, rel, "\u21CF", "\\nRightarrow", true);
+ defineSymbol(math, ams, rel, "\u21AE", "\\nleftrightarrow", true);
+ defineSymbol(math, ams, rel, "\u21CE", "\\nLeftrightarrow", true);
+ defineSymbol(math, ams, rel, "\u25B3", "\\vartriangle");
+ defineSymbol(math, ams, textord, "\u210F", "\\hslash");
+ defineSymbol(math, ams, textord, "\u25BD", "\\triangledown");
+ defineSymbol(math, ams, textord, "\u25CA", "\\lozenge");
+ defineSymbol(math, ams, textord, "\u24C8", "\\circledS");
+ defineSymbol(math, ams, textord, "\xAE", "\\circledR");
+ defineSymbol(text, ams, textord, "\xAE", "\\circledR");
+ defineSymbol(math, ams, textord, "\u2221", "\\measuredangle", true);
+ defineSymbol(math, ams, textord, "\u2204", "\\nexists");
+ defineSymbol(math, ams, textord, "\u2127", "\\mho");
+ defineSymbol(math, ams, textord, "\u2132", "\\Finv", true);
+ defineSymbol(math, ams, textord, "\u2141", "\\Game", true);
+ defineSymbol(math, ams, textord, "\u2035", "\\backprime");
+ defineSymbol(math, ams, textord, "\u25B2", "\\blacktriangle");
+ defineSymbol(math, ams, textord, "\u25BC", "\\blacktriangledown");
+ defineSymbol(math, ams, textord, "\u25A0", "\\blacksquare");
+ defineSymbol(math, ams, textord, "\u29EB", "\\blacklozenge");
+ defineSymbol(math, ams, textord, "\u2605", "\\bigstar");
+ defineSymbol(math, ams, textord, "\u2222", "\\sphericalangle", true);
+ defineSymbol(math, ams, textord, "\u2201", "\\complement", true);
+ defineSymbol(math, ams, textord, "\xF0", "\\eth", true);
+ defineSymbol(text, main, textord, "\xF0", "\xF0");
+ defineSymbol(math, ams, textord, "\u2571", "\\diagup");
+ defineSymbol(math, ams, textord, "\u2572", "\\diagdown");
+ defineSymbol(math, ams, textord, "\u25A1", "\\square");
+ defineSymbol(math, ams, textord, "\u25A1", "\\Box");
+ defineSymbol(math, ams, textord, "\u25CA", "\\Diamond");
+ defineSymbol(math, ams, textord, "\xA5", "\\yen", true);
+ defineSymbol(text, ams, textord, "\xA5", "\\yen", true);
+ defineSymbol(math, ams, textord, "\u2713", "\\checkmark", true);
+ defineSymbol(text, ams, textord, "\u2713", "\\checkmark");
+ defineSymbol(math, ams, textord, "\u2136", "\\beth", true);
+ defineSymbol(math, ams, textord, "\u2138", "\\daleth", true);
+ defineSymbol(math, ams, textord, "\u2137", "\\gimel", true);
+ defineSymbol(math, ams, textord, "\u03DD", "\\digamma", true);
+ defineSymbol(math, ams, textord, "\u03F0", "\\varkappa");
+ defineSymbol(math, ams, open, "\u250C", "\\@ulcorner", true);
+ defineSymbol(math, ams, close, "\u2510", "\\@urcorner", true);
+ defineSymbol(math, ams, open, "\u2514", "\\@llcorner", true);
+ defineSymbol(math, ams, close, "\u2518", "\\@lrcorner", true);
+ defineSymbol(math, ams, rel, "\u2266", "\\leqq", true);
+ defineSymbol(math, ams, rel, "\u2A7D", "\\leqslant", true);
+ defineSymbol(math, ams, rel, "\u2A95", "\\eqslantless", true);
+ defineSymbol(math, ams, rel, "\u2272", "\\lesssim", true);
+ defineSymbol(math, ams, rel, "\u2A85", "\\lessapprox", true);
+ defineSymbol(math, ams, rel, "\u224A", "\\approxeq", true);
+ defineSymbol(math, ams, bin, "\u22D6", "\\lessdot");
+ defineSymbol(math, ams, rel, "\u22D8", "\\lll", true);
+ defineSymbol(math, ams, rel, "\u2276", "\\lessgtr", true);
+ defineSymbol(math, ams, rel, "\u22DA", "\\lesseqgtr", true);
+ defineSymbol(math, ams, rel, "\u2A8B", "\\lesseqqgtr", true);
+ defineSymbol(math, ams, rel, "\u2251", "\\doteqdot");
+ defineSymbol(math, ams, rel, "\u2253", "\\risingdotseq", true);
+ defineSymbol(math, ams, rel, "\u2252", "\\fallingdotseq", true);
+ defineSymbol(math, ams, rel, "\u223D", "\\backsim", true);
+ defineSymbol(math, ams, rel, "\u22CD", "\\backsimeq", true);
+ defineSymbol(math, ams, rel, "\u2AC5", "\\subseteqq", true);
+ defineSymbol(math, ams, rel, "\u22D0", "\\Subset", true);
+ defineSymbol(math, ams, rel, "\u228F", "\\sqsubset", true);
+ defineSymbol(math, ams, rel, "\u227C", "\\preccurlyeq", true);
+ defineSymbol(math, ams, rel, "\u22DE", "\\curlyeqprec", true);
+ defineSymbol(math, ams, rel, "\u227E", "\\precsim", true);
+ defineSymbol(math, ams, rel, "\u2AB7", "\\precapprox", true);
+ defineSymbol(math, ams, rel, "\u22B2", "\\vartriangleleft");
+ defineSymbol(math, ams, rel, "\u22B4", "\\trianglelefteq");
+ defineSymbol(math, ams, rel, "\u22A8", "\\vDash", true);
+ defineSymbol(math, ams, rel, "\u22AA", "\\Vvdash", true);
+ defineSymbol(math, ams, rel, "\u2323", "\\smallsmile");
+ defineSymbol(math, ams, rel, "\u2322", "\\smallfrown");
+ defineSymbol(math, ams, rel, "\u224F", "\\bumpeq", true);
+ defineSymbol(math, ams, rel, "\u224E", "\\Bumpeq", true);
+ defineSymbol(math, ams, rel, "\u2267", "\\geqq", true);
+ defineSymbol(math, ams, rel, "\u2A7E", "\\geqslant", true);
+ defineSymbol(math, ams, rel, "\u2A96", "\\eqslantgtr", true);
+ defineSymbol(math, ams, rel, "\u2273", "\\gtrsim", true);
+ defineSymbol(math, ams, rel, "\u2A86", "\\gtrapprox", true);
+ defineSymbol(math, ams, bin, "\u22D7", "\\gtrdot");
+ defineSymbol(math, ams, rel, "\u22D9", "\\ggg", true);
+ defineSymbol(math, ams, rel, "\u2277", "\\gtrless", true);
+ defineSymbol(math, ams, rel, "\u22DB", "\\gtreqless", true);
+ defineSymbol(math, ams, rel, "\u2A8C", "\\gtreqqless", true);
+ defineSymbol(math, ams, rel, "\u2256", "\\eqcirc", true);
+ defineSymbol(math, ams, rel, "\u2257", "\\circeq", true);
+ defineSymbol(math, ams, rel, "\u225C", "\\triangleq", true);
+ defineSymbol(math, ams, rel, "\u223C", "\\thicksim");
+ defineSymbol(math, ams, rel, "\u2248", "\\thickapprox");
+ defineSymbol(math, ams, rel, "\u2AC6", "\\supseteqq", true);
+ defineSymbol(math, ams, rel, "\u22D1", "\\Supset", true);
+ defineSymbol(math, ams, rel, "\u2290", "\\sqsupset", true);
+ defineSymbol(math, ams, rel, "\u227D", "\\succcurlyeq", true);
+ defineSymbol(math, ams, rel, "\u22DF", "\\curlyeqsucc", true);
+ defineSymbol(math, ams, rel, "\u227F", "\\succsim", true);
+ defineSymbol(math, ams, rel, "\u2AB8", "\\succapprox", true);
+ defineSymbol(math, ams, rel, "\u22B3", "\\vartriangleright");
+ defineSymbol(math, ams, rel, "\u22B5", "\\trianglerighteq");
+ defineSymbol(math, ams, rel, "\u22A9", "\\Vdash", true);
+ defineSymbol(math, ams, rel, "\u2223", "\\shortmid");
+ defineSymbol(math, ams, rel, "\u2225", "\\shortparallel");
+ defineSymbol(math, ams, rel, "\u226C", "\\between", true);
+ defineSymbol(math, ams, rel, "\u22D4", "\\pitchfork", true);
+ defineSymbol(math, ams, rel, "\u221D", "\\varpropto");
+ defineSymbol(math, ams, rel, "\u25C0", "\\blacktriangleleft");
+ defineSymbol(math, ams, rel, "\u2234", "\\therefore", true);
+ defineSymbol(math, ams, rel, "\u220D", "\\backepsilon");
+ defineSymbol(math, ams, rel, "\u25B6", "\\blacktriangleright");
+ defineSymbol(math, ams, rel, "\u2235", "\\because", true);
+ defineSymbol(math, ams, rel, "\u22D8", "\\llless");
+ defineSymbol(math, ams, rel, "\u22D9", "\\gggtr");
+ defineSymbol(math, ams, bin, "\u22B2", "\\lhd");
+ defineSymbol(math, ams, bin, "\u22B3", "\\rhd");
+ defineSymbol(math, ams, rel, "\u2242", "\\eqsim", true);
+ defineSymbol(math, main, rel, "\u22C8", "\\Join");
+ defineSymbol(math, ams, rel, "\u2251", "\\Doteq", true);
+ defineSymbol(math, ams, bin, "\u2214", "\\dotplus", true);
+ defineSymbol(math, ams, bin, "\u2216", "\\smallsetminus");
+ defineSymbol(math, ams, bin, "\u22D2", "\\Cap", true);
+ defineSymbol(math, ams, bin, "\u22D3", "\\Cup", true);
+ defineSymbol(math, ams, bin, "\u2A5E", "\\doublebarwedge", true);
+ defineSymbol(math, ams, bin, "\u229F", "\\boxminus", true);
+ defineSymbol(math, ams, bin, "\u229E", "\\boxplus", true);
+ defineSymbol(math, ams, bin, "\u22C7", "\\divideontimes", true);
+ defineSymbol(math, ams, bin, "\u22C9", "\\ltimes", true);
+ defineSymbol(math, ams, bin, "\u22CA", "\\rtimes", true);
+ defineSymbol(math, ams, bin, "\u22CB", "\\leftthreetimes", true);
+ defineSymbol(math, ams, bin, "\u22CC", "\\rightthreetimes", true);
+ defineSymbol(math, ams, bin, "\u22CF", "\\curlywedge", true);
+ defineSymbol(math, ams, bin, "\u22CE", "\\curlyvee", true);
+ defineSymbol(math, ams, bin, "\u229D", "\\circleddash", true);
+ defineSymbol(math, ams, bin, "\u229B", "\\circledast", true);
+ defineSymbol(math, ams, bin, "\u22C5", "\\centerdot");
+ defineSymbol(math, ams, bin, "\u22BA", "\\intercal", true);
+ defineSymbol(math, ams, bin, "\u22D2", "\\doublecap");
+ defineSymbol(math, ams, bin, "\u22D3", "\\doublecup");
+ defineSymbol(math, ams, bin, "\u22A0", "\\boxtimes", true);
+ defineSymbol(math, ams, rel, "\u21E2", "\\dashrightarrow", true);
+ defineSymbol(math, ams, rel, "\u21E0", "\\dashleftarrow", true);
+ defineSymbol(math, ams, rel, "\u21C7", "\\leftleftarrows", true);
+ defineSymbol(math, ams, rel, "\u21C6", "\\leftrightarrows", true);
+ defineSymbol(math, ams, rel, "\u21DA", "\\Lleftarrow", true);
+ defineSymbol(math, ams, rel, "\u219E", "\\twoheadleftarrow", true);
+ defineSymbol(math, ams, rel, "\u21A2", "\\leftarrowtail", true);
+ defineSymbol(math, ams, rel, "\u21AB", "\\looparrowleft", true);
+ defineSymbol(math, ams, rel, "\u21CB", "\\leftrightharpoons", true);
+ defineSymbol(math, ams, rel, "\u21B6", "\\curvearrowleft", true);
+ defineSymbol(math, ams, rel, "\u21BA", "\\circlearrowleft", true);
+ defineSymbol(math, ams, rel, "\u21B0", "\\Lsh", true);
+ defineSymbol(math, ams, rel, "\u21C8", "\\upuparrows", true);
+ defineSymbol(math, ams, rel, "\u21BF", "\\upharpoonleft", true);
+ defineSymbol(math, ams, rel, "\u21C3", "\\downharpoonleft", true);
+ defineSymbol(math, main, rel, "\u22B6", "\\origof", true);
+ defineSymbol(math, main, rel, "\u22B7", "\\imageof", true);
+ defineSymbol(math, ams, rel, "\u22B8", "\\multimap", true);
+ defineSymbol(math, ams, rel, "\u21AD", "\\leftrightsquigarrow", true);
+ defineSymbol(math, ams, rel, "\u21C9", "\\rightrightarrows", true);
+ defineSymbol(math, ams, rel, "\u21C4", "\\rightleftarrows", true);
+ defineSymbol(math, ams, rel, "\u21A0", "\\twoheadrightarrow", true);
+ defineSymbol(math, ams, rel, "\u21A3", "\\rightarrowtail", true);
+ defineSymbol(math, ams, rel, "\u21AC", "\\looparrowright", true);
+ defineSymbol(math, ams, rel, "\u21B7", "\\curvearrowright", true);
+ defineSymbol(math, ams, rel, "\u21BB", "\\circlearrowright", true);
+ defineSymbol(math, ams, rel, "\u21B1", "\\Rsh", true);
+ defineSymbol(math, ams, rel, "\u21CA", "\\downdownarrows", true);
+ defineSymbol(math, ams, rel, "\u21BE", "\\upharpoonright", true);
+ defineSymbol(math, ams, rel, "\u21C2", "\\downharpoonright", true);
+ defineSymbol(math, ams, rel, "\u21DD", "\\rightsquigarrow", true);
+ defineSymbol(math, ams, rel, "\u21DD", "\\leadsto");
+ defineSymbol(math, ams, rel, "\u21DB", "\\Rrightarrow", true);
+ defineSymbol(math, ams, rel, "\u21BE", "\\restriction");
+ defineSymbol(math, main, textord, "\u2018", "`");
+ defineSymbol(math, main, textord, "$", "\\$");
+ defineSymbol(text, main, textord, "$", "\\$");
+ defineSymbol(text, main, textord, "$", "\\textdollar");
+ defineSymbol(math, main, textord, "%", "\\%");
+ defineSymbol(text, main, textord, "%", "\\%");
+ defineSymbol(math, main, textord, "_", "\\_");
+ defineSymbol(text, main, textord, "_", "\\_");
+ defineSymbol(text, main, textord, "_", "\\textunderscore");
+ defineSymbol(math, main, textord, "\u2220", "\\angle", true);
+ defineSymbol(math, main, textord, "\u221E", "\\infty", true);
+ defineSymbol(math, main, textord, "\u2032", "\\prime");
+ defineSymbol(math, main, textord, "\u25B3", "\\triangle");
+ defineSymbol(math, main, textord, "\u0393", "\\Gamma", true);
+ defineSymbol(math, main, textord, "\u0394", "\\Delta", true);
+ defineSymbol(math, main, textord, "\u0398", "\\Theta", true);
+ defineSymbol(math, main, textord, "\u039B", "\\Lambda", true);
+ defineSymbol(math, main, textord, "\u039E", "\\Xi", true);
+ defineSymbol(math, main, textord, "\u03A0", "\\Pi", true);
+ defineSymbol(math, main, textord, "\u03A3", "\\Sigma", true);
+ defineSymbol(math, main, textord, "\u03A5", "\\Upsilon", true);
+ defineSymbol(math, main, textord, "\u03A6", "\\Phi", true);
+ defineSymbol(math, main, textord, "\u03A8", "\\Psi", true);
+ defineSymbol(math, main, textord, "\u03A9", "\\Omega", true);
+ defineSymbol(math, main, textord, "A", "\u0391");
+ defineSymbol(math, main, textord, "B", "\u0392");
+ defineSymbol(math, main, textord, "E", "\u0395");
+ defineSymbol(math, main, textord, "Z", "\u0396");
+ defineSymbol(math, main, textord, "H", "\u0397");
+ defineSymbol(math, main, textord, "I", "\u0399");
+ defineSymbol(math, main, textord, "K", "\u039A");
+ defineSymbol(math, main, textord, "M", "\u039C");
+ defineSymbol(math, main, textord, "N", "\u039D");
+ defineSymbol(math, main, textord, "O", "\u039F");
+ defineSymbol(math, main, textord, "P", "\u03A1");
+ defineSymbol(math, main, textord, "T", "\u03A4");
+ defineSymbol(math, main, textord, "X", "\u03A7");
+ defineSymbol(math, main, textord, "\xAC", "\\neg", true);
+ defineSymbol(math, main, textord, "\xAC", "\\lnot");
+ defineSymbol(math, main, textord, "\u22A4", "\\top");
+ defineSymbol(math, main, textord, "\u22A5", "\\bot");
+ defineSymbol(math, main, textord, "\u2205", "\\emptyset");
+ defineSymbol(math, ams, textord, "\u2205", "\\varnothing");
+ defineSymbol(math, main, mathord, "\u03B1", "\\alpha", true);
+ defineSymbol(math, main, mathord, "\u03B2", "\\beta", true);
+ defineSymbol(math, main, mathord, "\u03B3", "\\gamma", true);
+ defineSymbol(math, main, mathord, "\u03B4", "\\delta", true);
+ defineSymbol(math, main, mathord, "\u03F5", "\\epsilon", true);
+ defineSymbol(math, main, mathord, "\u03B6", "\\zeta", true);
+ defineSymbol(math, main, mathord, "\u03B7", "\\eta", true);
+ defineSymbol(math, main, mathord, "\u03B8", "\\theta", true);
+ defineSymbol(math, main, mathord, "\u03B9", "\\iota", true);
+ defineSymbol(math, main, mathord, "\u03BA", "\\kappa", true);
+ defineSymbol(math, main, mathord, "\u03BB", "\\lambda", true);
+ defineSymbol(math, main, mathord, "\u03BC", "\\mu", true);
+ defineSymbol(math, main, mathord, "\u03BD", "\\nu", true);
+ defineSymbol(math, main, mathord, "\u03BE", "\\xi", true);
+ defineSymbol(math, main, mathord, "\u03BF", "\\omicron", true);
+ defineSymbol(math, main, mathord, "\u03C0", "\\pi", true);
+ defineSymbol(math, main, mathord, "\u03C1", "\\rho", true);
+ defineSymbol(math, main, mathord, "\u03C3", "\\sigma", true);
+ defineSymbol(math, main, mathord, "\u03C4", "\\tau", true);
+ defineSymbol(math, main, mathord, "\u03C5", "\\upsilon", true);
+ defineSymbol(math, main, mathord, "\u03D5", "\\phi", true);
+ defineSymbol(math, main, mathord, "\u03C7", "\\chi", true);
+ defineSymbol(math, main, mathord, "\u03C8", "\\psi", true);
+ defineSymbol(math, main, mathord, "\u03C9", "\\omega", true);
+ defineSymbol(math, main, mathord, "\u03B5", "\\varepsilon", true);
+ defineSymbol(math, main, mathord, "\u03D1", "\\vartheta", true);
+ defineSymbol(math, main, mathord, "\u03D6", "\\varpi", true);
+ defineSymbol(math, main, mathord, "\u03F1", "\\varrho", true);
+ defineSymbol(math, main, mathord, "\u03C2", "\\varsigma", true);
+ defineSymbol(math, main, mathord, "\u03C6", "\\varphi", true);
+ defineSymbol(math, main, bin, "\u2217", "*", true);
+ defineSymbol(math, main, bin, "+", "+");
+ defineSymbol(math, main, bin, "\u2212", "-", true);
+ defineSymbol(math, main, bin, "\u22C5", "\\cdot", true);
+ defineSymbol(math, main, bin, "\u2218", "\\circ", true);
+ defineSymbol(math, main, bin, "\xF7", "\\div", true);
+ defineSymbol(math, main, bin, "\xB1", "\\pm", true);
+ defineSymbol(math, main, bin, "\xD7", "\\times", true);
+ defineSymbol(math, main, bin, "\u2229", "\\cap", true);
+ defineSymbol(math, main, bin, "\u222A", "\\cup", true);
+ defineSymbol(math, main, bin, "\u2216", "\\setminus", true);
+ defineSymbol(math, main, bin, "\u2227", "\\land");
+ defineSymbol(math, main, bin, "\u2228", "\\lor");
+ defineSymbol(math, main, bin, "\u2227", "\\wedge", true);
+ defineSymbol(math, main, bin, "\u2228", "\\vee", true);
+ defineSymbol(math, main, textord, "\u221A", "\\surd");
+ defineSymbol(math, main, open, "\u27E8", "\\langle", true);
+ defineSymbol(math, main, open, "\u2223", "\\lvert");
+ defineSymbol(math, main, open, "\u2225", "\\lVert");
+ defineSymbol(math, main, close, "?", "?");
+ defineSymbol(math, main, close, "!", "!");
+ defineSymbol(math, main, close, "\u27E9", "\\rangle", true);
+ defineSymbol(math, main, close, "\u2223", "\\rvert");
+ defineSymbol(math, main, close, "\u2225", "\\rVert");
+ defineSymbol(math, main, rel, "=", "=");
+ defineSymbol(math, main, rel, ":", ":");
+ defineSymbol(math, main, rel, "\u2248", "\\approx", true);
+ defineSymbol(math, main, rel, "\u2245", "\\cong", true);
+ defineSymbol(math, main, rel, "\u2265", "\\ge");
+ defineSymbol(math, main, rel, "\u2265", "\\geq", true);
+ defineSymbol(math, main, rel, "\u2190", "\\gets");
+ defineSymbol(math, main, rel, ">", "\\gt", true);
+ defineSymbol(math, main, rel, "\u2208", "\\in", true);
+ defineSymbol(math, main, rel, "\uE020", "\\@not");
+ defineSymbol(math, main, rel, "\u2282", "\\subset", true);
+ defineSymbol(math, main, rel, "\u2283", "\\supset", true);
+ defineSymbol(math, main, rel, "\u2286", "\\subseteq", true);
+ defineSymbol(math, main, rel, "\u2287", "\\supseteq", true);
+ defineSymbol(math, ams, rel, "\u2288", "\\nsubseteq", true);
+ defineSymbol(math, ams, rel, "\u2289", "\\nsupseteq", true);
+ defineSymbol(math, main, rel, "\u22A8", "\\models");
+ defineSymbol(math, main, rel, "\u2190", "\\leftarrow", true);
+ defineSymbol(math, main, rel, "\u2264", "\\le");
+ defineSymbol(math, main, rel, "\u2264", "\\leq", true);
+ defineSymbol(math, main, rel, "<", "\\lt", true);
+ defineSymbol(math, main, rel, "\u2192", "\\rightarrow", true);
+ defineSymbol(math, main, rel, "\u2192", "\\to");
+ defineSymbol(math, ams, rel, "\u2271", "\\ngeq", true);
+ defineSymbol(math, ams, rel, "\u2270", "\\nleq", true);
+ defineSymbol(math, main, spacing, "\xA0", "\\ ");
+ defineSymbol(math, main, spacing, "\xA0", "\\space");
+ defineSymbol(math, main, spacing, "\xA0", "\\nobreakspace");
+ defineSymbol(text, main, spacing, "\xA0", "\\ ");
+ defineSymbol(text, main, spacing, "\xA0", " ");
+ defineSymbol(text, main, spacing, "\xA0", "\\space");
+ defineSymbol(text, main, spacing, "\xA0", "\\nobreakspace");
+ defineSymbol(math, main, spacing, null, "\\nobreak");
+ defineSymbol(math, main, spacing, null, "\\allowbreak");
+ defineSymbol(math, main, punct, ",", ",");
+ defineSymbol(math, main, punct, ";", ";");
+ defineSymbol(math, ams, bin, "\u22BC", "\\barwedge", true);
+ defineSymbol(math, ams, bin, "\u22BB", "\\veebar", true);
+ defineSymbol(math, main, bin, "\u2299", "\\odot", true);
+ defineSymbol(math, main, bin, "\u2295", "\\oplus", true);
+ defineSymbol(math, main, bin, "\u2297", "\\otimes", true);
+ defineSymbol(math, main, textord, "\u2202", "\\partial", true);
+ defineSymbol(math, main, bin, "\u2298", "\\oslash", true);
+ defineSymbol(math, ams, bin, "\u229A", "\\circledcirc", true);
+ defineSymbol(math, ams, bin, "\u22A1", "\\boxdot", true);
+ defineSymbol(math, main, bin, "\u25B3", "\\bigtriangleup");
+ defineSymbol(math, main, bin, "\u25BD", "\\bigtriangledown");
+ defineSymbol(math, main, bin, "\u2020", "\\dagger");
+ defineSymbol(math, main, bin, "\u22C4", "\\diamond");
+ defineSymbol(math, main, bin, "\u22C6", "\\star");
+ defineSymbol(math, main, bin, "\u25C3", "\\triangleleft");
+ defineSymbol(math, main, bin, "\u25B9", "\\triangleright");
+ defineSymbol(math, main, open, "{", "\\{");
+ defineSymbol(text, main, textord, "{", "\\{");
+ defineSymbol(text, main, textord, "{", "\\textbraceleft");
+ defineSymbol(math, main, close, "}", "\\}");
+ defineSymbol(text, main, textord, "}", "\\}");
+ defineSymbol(text, main, textord, "}", "\\textbraceright");
+ defineSymbol(math, main, open, "{", "\\lbrace");
+ defineSymbol(math, main, close, "}", "\\rbrace");
+ defineSymbol(math, main, open, "[", "\\lbrack", true);
+ defineSymbol(text, main, textord, "[", "\\lbrack", true);
+ defineSymbol(math, main, close, "]", "\\rbrack", true);
+ defineSymbol(text, main, textord, "]", "\\rbrack", true);
+ defineSymbol(math, main, open, "(", "\\lparen", true);
+ defineSymbol(math, main, close, ")", "\\rparen", true);
+ defineSymbol(text, main, textord, "<", "\\textless", true);
+ defineSymbol(text, main, textord, ">", "\\textgreater", true);
+ defineSymbol(math, main, open, "\u230A", "\\lfloor", true);
+ defineSymbol(math, main, close, "\u230B", "\\rfloor", true);
+ defineSymbol(math, main, open, "\u2308", "\\lceil", true);
+ defineSymbol(math, main, close, "\u2309", "\\rceil", true);
+ defineSymbol(math, main, textord, "\\", "\\backslash");
+ defineSymbol(math, main, textord, "\u2223", "|");
+ defineSymbol(math, main, textord, "\u2223", "\\vert");
+ defineSymbol(text, main, textord, "|", "\\textbar", true);
+ defineSymbol(math, main, textord, "\u2225", "\\|");
+ defineSymbol(math, main, textord, "\u2225", "\\Vert");
+ defineSymbol(text, main, textord, "\u2225", "\\textbardbl");
+ defineSymbol(text, main, textord, "~", "\\textasciitilde");
+ defineSymbol(text, main, textord, "\\", "\\textbackslash");
+ defineSymbol(text, main, textord, "^", "\\textasciicircum");
+ defineSymbol(math, main, rel, "\u2191", "\\uparrow", true);
+ defineSymbol(math, main, rel, "\u21D1", "\\Uparrow", true);
+ defineSymbol(math, main, rel, "\u2193", "\\downarrow", true);
+ defineSymbol(math, main, rel, "\u21D3", "\\Downarrow", true);
+ defineSymbol(math, main, rel, "\u2195", "\\updownarrow", true);
+ defineSymbol(math, main, rel, "\u21D5", "\\Updownarrow", true);
+ defineSymbol(math, main, op, "\u2210", "\\coprod");
+ defineSymbol(math, main, op, "\u22C1", "\\bigvee");
+ defineSymbol(math, main, op, "\u22C0", "\\bigwedge");
+ defineSymbol(math, main, op, "\u2A04", "\\biguplus");
+ defineSymbol(math, main, op, "\u22C2", "\\bigcap");
+ defineSymbol(math, main, op, "\u22C3", "\\bigcup");
+ defineSymbol(math, main, op, "\u222B", "\\int");
+ defineSymbol(math, main, op, "\u222B", "\\intop");
+ defineSymbol(math, main, op, "\u222C", "\\iint");
+ defineSymbol(math, main, op, "\u222D", "\\iiint");
+ defineSymbol(math, main, op, "\u220F", "\\prod");
+ defineSymbol(math, main, op, "\u2211", "\\sum");
+ defineSymbol(math, main, op, "\u2A02", "\\bigotimes");
+ defineSymbol(math, main, op, "\u2A01", "\\bigoplus");
+ defineSymbol(math, main, op, "\u2A00", "\\bigodot");
+ defineSymbol(math, main, op, "\u222E", "\\oint");
+ defineSymbol(math, main, op, "\u222F", "\\oiint");
+ defineSymbol(math, main, op, "\u2230", "\\oiiint");
+ defineSymbol(math, main, op, "\u2A06", "\\bigsqcup");
+ defineSymbol(math, main, op, "\u222B", "\\smallint");
+ defineSymbol(text, main, inner, "\u2026", "\\textellipsis");
+ defineSymbol(math, main, inner, "\u2026", "\\mathellipsis");
+ defineSymbol(text, main, inner, "\u2026", "\\ldots", true);
+ defineSymbol(math, main, inner, "\u2026", "\\ldots", true);
+ defineSymbol(math, main, inner, "\u22EF", "\\@cdots", true);
+ defineSymbol(math, main, inner, "\u22F1", "\\ddots", true);
+ defineSymbol(math, main, textord, "\u22EE", "\\varvdots");
+ defineSymbol(math, main, accent, "\u02CA", "\\acute");
+ defineSymbol(math, main, accent, "\u02CB", "\\grave");
+ defineSymbol(math, main, accent, "\xA8", "\\ddot");
+ defineSymbol(math, main, accent, "~", "\\tilde");
+ defineSymbol(math, main, accent, "\u02C9", "\\bar");
+ defineSymbol(math, main, accent, "\u02D8", "\\breve");
+ defineSymbol(math, main, accent, "\u02C7", "\\check");
+ defineSymbol(math, main, accent, "^", "\\hat");
+ defineSymbol(math, main, accent, "\u20D7", "\\vec");
+ defineSymbol(math, main, accent, "\u02D9", "\\dot");
+ defineSymbol(math, main, accent, "\u02DA", "\\mathring");
+ defineSymbol(math, main, mathord, "\uE131", "\\@imath");
+ defineSymbol(math, main, mathord, "\uE237", "\\@jmath");
+ defineSymbol(math, main, textord, "\u0131", "\u0131");
+ defineSymbol(math, main, textord, "\u0237", "\u0237");
+ defineSymbol(text, main, textord, "\u0131", "\\i", true);
+ defineSymbol(text, main, textord, "\u0237", "\\j", true);
+ defineSymbol(text, main, textord, "\xDF", "\\ss", true);
+ defineSymbol(text, main, textord, "\xE6", "\\ae", true);
+ defineSymbol(text, main, textord, "\u0153", "\\oe", true);
+ defineSymbol(text, main, textord, "\xF8", "\\o", true);
+ defineSymbol(text, main, textord, "\xC6", "\\AE", true);
+ defineSymbol(text, main, textord, "\u0152", "\\OE", true);
+ defineSymbol(text, main, textord, "\xD8", "\\O", true);
+ defineSymbol(text, main, accent, "\u02CA", "\\'");
+ defineSymbol(text, main, accent, "\u02CB", "\\`");
+ defineSymbol(text, main, accent, "\u02C6", "\\^");
+ defineSymbol(text, main, accent, "\u02DC", "\\~");
+ defineSymbol(text, main, accent, "\u02C9", "\\=");
+ defineSymbol(text, main, accent, "\u02D8", "\\u");
+ defineSymbol(text, main, accent, "\u02D9", "\\.");
+ defineSymbol(text, main, accent, "\xB8", "\\c");
+ defineSymbol(text, main, accent, "\u02DA", "\\r");
+ defineSymbol(text, main, accent, "\u02C7", "\\v");
+ defineSymbol(text, main, accent, "\xA8", '\\"');
+ defineSymbol(text, main, accent, "\u02DD", "\\H");
+ defineSymbol(text, main, accent, "\u25EF", "\\textcircled");
+ ligatures = {
+ "--": true,
+ "---": true,
+ "``": true,
+ "''": true
+ };
+ defineSymbol(text, main, textord, "\u2013", "--", true);
+ defineSymbol(text, main, textord, "\u2013", "\\textendash");
+ defineSymbol(text, main, textord, "\u2014", "---", true);
+ defineSymbol(text, main, textord, "\u2014", "\\textemdash");
+ defineSymbol(text, main, textord, "\u2018", "`", true);
+ defineSymbol(text, main, textord, "\u2018", "\\textquoteleft");
+ defineSymbol(text, main, textord, "\u2019", "'", true);
+ defineSymbol(text, main, textord, "\u2019", "\\textquoteright");
+ defineSymbol(text, main, textord, "\u201C", "``", true);
+ defineSymbol(text, main, textord, "\u201C", "\\textquotedblleft");
+ defineSymbol(text, main, textord, "\u201D", "''", true);
+ defineSymbol(text, main, textord, "\u201D", "\\textquotedblright");
+ defineSymbol(math, main, textord, "\xB0", "\\degree", true);
+ defineSymbol(text, main, textord, "\xB0", "\\degree");
+ defineSymbol(text, main, textord, "\xB0", "\\textdegree", true);
+ defineSymbol(math, main, textord, "\xA3", "\\pounds");
+ defineSymbol(math, main, textord, "\xA3", "\\mathsterling", true);
+ defineSymbol(text, main, textord, "\xA3", "\\pounds");
+ defineSymbol(text, main, textord, "\xA3", "\\textsterling", true);
+ defineSymbol(math, ams, textord, "\u2720", "\\maltese");
+ defineSymbol(text, ams, textord, "\u2720", "\\maltese");
+ mathTextSymbols = '0123456789/@."';
+ for (i2 = 0; i2 < mathTextSymbols.length; i2++) {
+ ch = mathTextSymbols.charAt(i2);
+ defineSymbol(math, main, textord, ch, ch);
+ }
+ textSymbols = '0123456789!@*()-=+";:?/.,';
+ for (_i = 0; _i < textSymbols.length; _i++) {
+ _ch = textSymbols.charAt(_i);
+ defineSymbol(text, main, textord, _ch, _ch);
+ }
+ letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ for (_i2 = 0; _i2 < letters.length; _i2++) {
+ _ch2 = letters.charAt(_i2);
+ defineSymbol(math, main, mathord, _ch2, _ch2);
+ defineSymbol(text, main, textord, _ch2, _ch2);
+ }
+ defineSymbol(math, ams, textord, "C", "\u2102");
+ defineSymbol(text, ams, textord, "C", "\u2102");
+ defineSymbol(math, ams, textord, "H", "\u210D");
+ defineSymbol(text, ams, textord, "H", "\u210D");
+ defineSymbol(math, ams, textord, "N", "\u2115");
+ defineSymbol(text, ams, textord, "N", "\u2115");
+ defineSymbol(math, ams, textord, "P", "\u2119");
+ defineSymbol(text, ams, textord, "P", "\u2119");
+ defineSymbol(math, ams, textord, "Q", "\u211A");
+ defineSymbol(text, ams, textord, "Q", "\u211A");
+ defineSymbol(math, ams, textord, "R", "\u211D");
+ defineSymbol(text, ams, textord, "R", "\u211D");
+ defineSymbol(math, ams, textord, "Z", "\u2124");
+ defineSymbol(text, ams, textord, "Z", "\u2124");
+ defineSymbol(math, main, mathord, "h", "\u210E");
+ defineSymbol(text, main, mathord, "h", "\u210E");
+ wideChar = "";
+ for (_i3 = 0; _i3 < letters.length; _i3++) {
+ _ch3 = letters.charAt(_i3);
+ wideChar = String.fromCharCode(55349, 56320 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56372 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56424 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56580 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56684 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56736 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56788 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56840 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56944 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ if (_i3 < 26) {
+ wideChar = String.fromCharCode(55349, 56632 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ wideChar = String.fromCharCode(55349, 56476 + _i3);
+ defineSymbol(math, main, mathord, _ch3, wideChar);
+ defineSymbol(text, main, textord, _ch3, wideChar);
+ }
+ }
+ wideChar = String.fromCharCode(55349, 56668);
+ defineSymbol(math, main, mathord, "k", wideChar);
+ defineSymbol(text, main, textord, "k", wideChar);
+ for (_i4 = 0; _i4 < 10; _i4++) {
+ _ch4 = _i4.toString();
+ wideChar = String.fromCharCode(55349, 57294 + _i4);
+ defineSymbol(math, main, mathord, _ch4, wideChar);
+ defineSymbol(text, main, textord, _ch4, wideChar);
+ wideChar = String.fromCharCode(55349, 57314 + _i4);
+ defineSymbol(math, main, mathord, _ch4, wideChar);
+ defineSymbol(text, main, textord, _ch4, wideChar);
+ wideChar = String.fromCharCode(55349, 57324 + _i4);
+ defineSymbol(math, main, mathord, _ch4, wideChar);
+ defineSymbol(text, main, textord, _ch4, wideChar);
+ wideChar = String.fromCharCode(55349, 57334 + _i4);
+ defineSymbol(math, main, mathord, _ch4, wideChar);
+ defineSymbol(text, main, textord, _ch4, wideChar);
+ }
+ extraLatin = "\xD0\xDE\xFE";
+ for (_i5 = 0; _i5 < extraLatin.length; _i5++) {
+ _ch5 = extraLatin.charAt(_i5);
+ defineSymbol(math, main, mathord, _ch5, _ch5);
+ defineSymbol(text, main, textord, _ch5, _ch5);
+ }
+ wideLatinLetterData = [
+ ["mathbf", "textbf", "Main-Bold"],
+ // A-Z bold upright
+ ["mathbf", "textbf", "Main-Bold"],
+ // a-z bold upright
+ ["mathnormal", "textit", "Math-Italic"],
+ // A-Z italic
+ ["mathnormal", "textit", "Math-Italic"],
+ // a-z italic
+ ["boldsymbol", "boldsymbol", "Main-BoldItalic"],
+ // A-Z bold italic
+ ["boldsymbol", "boldsymbol", "Main-BoldItalic"],
+ // a-z bold italic
+ // Map fancy A-Z letters to script, not calligraphic.
+ // This aligns with unicode-math and math fonts (except Cambria Math).
+ ["mathscr", "textscr", "Script-Regular"],
+ // A-Z script
+ ["", "", ""],
+ // a-z script. No font
+ ["", "", ""],
+ // A-Z bold script. No font
+ ["", "", ""],
+ // a-z bold script. No font
+ ["mathfrak", "textfrak", "Fraktur-Regular"],
+ // A-Z Fraktur
+ ["mathfrak", "textfrak", "Fraktur-Regular"],
+ // a-z Fraktur
+ ["mathbb", "textbb", "AMS-Regular"],
+ // A-Z double-struck
+ ["mathbb", "textbb", "AMS-Regular"],
+ // k double-struck
+ // Note that we are using a bold font, but font metrics for regular Fraktur.
+ ["mathboldfrak", "textboldfrak", "Fraktur-Regular"],
+ // A-Z bold Fraktur
+ ["mathboldfrak", "textboldfrak", "Fraktur-Regular"],
+ // a-z bold Fraktur
+ ["mathsf", "textsf", "SansSerif-Regular"],
+ // A-Z sans-serif
+ ["mathsf", "textsf", "SansSerif-Regular"],
+ // a-z sans-serif
+ ["mathboldsf", "textboldsf", "SansSerif-Bold"],
+ // A-Z bold sans-serif
+ ["mathboldsf", "textboldsf", "SansSerif-Bold"],
+ // a-z bold sans-serif
+ ["mathitsf", "textitsf", "SansSerif-Italic"],
+ // A-Z italic sans-serif
+ ["mathitsf", "textitsf", "SansSerif-Italic"],
+ // a-z italic sans-serif
+ ["", "", ""],
+ // A-Z bold italic sans. No font
+ ["", "", ""],
+ // a-z bold italic sans. No font
+ ["mathtt", "texttt", "Typewriter-Regular"],
+ // A-Z monospace
+ ["mathtt", "texttt", "Typewriter-Regular"]
+ // a-z monospace
+ ];
+ wideNumeralData = [
+ ["mathbf", "textbf", "Main-Bold"],
+ // 0-9 bold
+ ["", "", ""],
+ // 0-9 double-struck. No KaTeX font.
+ ["mathsf", "textsf", "SansSerif-Regular"],
+ // 0-9 sans-serif
+ ["mathboldsf", "textboldsf", "SansSerif-Bold"],
+ // 0-9 bold sans-serif
+ ["mathtt", "texttt", "Typewriter-Regular"]
+ // 0-9 monospace
+ ];
+ wideCharacterFont = /* @__PURE__ */ __name(function wideCharacterFont2(wideChar2, mode) {
+ var H2 = wideChar2.charCodeAt(0);
+ var L2 = wideChar2.charCodeAt(1);
+ var codePoint = (H2 - 55296) * 1024 + (L2 - 56320) + 65536;
+ var j2 = mode === "math" ? 0 : 1;
+ if (119808 <= codePoint && codePoint < 120484) {
+ var i2 = Math.floor((codePoint - 119808) / 26);
+ return [wideLatinLetterData[i2][2], wideLatinLetterData[i2][j2]];
+ } else if (120782 <= codePoint && codePoint <= 120831) {
+ var _i = Math.floor((codePoint - 120782) / 10);
+ return [wideNumeralData[_i][2], wideNumeralData[_i][j2]];
+ } else if (codePoint === 120485 || codePoint === 120486) {
+ return [wideLatinLetterData[0][2], wideLatinLetterData[0][j2]];
+ } else if (120486 < codePoint && codePoint < 120782) {
+ return ["", ""];
+ } else {
+ throw new ParseError("Unsupported character: " + wideChar2);
+ }
+ }, "wideCharacterFont");
+ lookupSymbol = /* @__PURE__ */ __name(function lookupSymbol2(value2, fontName, mode) {
+ if (symbols[mode][value2] && symbols[mode][value2].replace) {
+ value2 = symbols[mode][value2].replace;
+ }
+ return {
+ value: value2,
+ metrics: getCharacterMetrics(value2, fontName, mode)
};
- }
- const tagName = stringToLowerCase(element.tagName);
- const parentTagName = stringToLowerCase(parent.tagName);
- if (!ALLOWED_NAMESPACES[element.namespaceURI]) {
- return false;
- }
- if (element.namespaceURI === SVG_NAMESPACE) {
- if (parent.namespaceURI === HTML_NAMESPACE) {
- return tagName === "svg";
+ }, "lookupSymbol");
+ makeSymbol = /* @__PURE__ */ __name(function makeSymbol2(value2, fontName, mode, options3, classes6) {
+ var lookup2 = lookupSymbol(value2, fontName, mode);
+ var metrics = lookup2.metrics;
+ value2 = lookup2.value;
+ var symbolNode;
+ if (metrics) {
+ var italic = metrics.italic;
+ if (mode === "text" || options3 && options3.font === "mathit") {
+ italic = 0;
+ }
+ symbolNode = new SymbolNode(value2, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes6);
+ } else {
+ typeof console !== "undefined" && console.warn("No character metrics " + ("for '" + value2 + "' in style '" + fontName + "' and mode '" + mode + "'"));
+ symbolNode = new SymbolNode(value2, 0, 0, 0, 0, 0, classes6);
}
- if (parent.namespaceURI === MATHML_NAMESPACE) {
- return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
+ if (options3) {
+ symbolNode.maxFontSize = options3.sizeMultiplier;
+ if (options3.style.isTight()) {
+ symbolNode.classes.push("mtight");
+ }
+ var color2 = options3.getColor();
+ if (color2) {
+ symbolNode.style.color = color2;
+ }
}
- return Boolean(ALL_SVG_TAGS[tagName]);
- }
- if (element.namespaceURI === MATHML_NAMESPACE) {
- if (parent.namespaceURI === HTML_NAMESPACE) {
- return tagName === "math";
+ return symbolNode;
+ }, "makeSymbol");
+ mathsym = /* @__PURE__ */ __name(function mathsym2(value2, mode, options3, classes6) {
+ if (classes6 === void 0) {
+ classes6 = [];
}
- if (parent.namespaceURI === SVG_NAMESPACE) {
- return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
+ if (options3.font === "boldsymbol" && lookupSymbol(value2, "Main-Bold", mode).metrics) {
+ return makeSymbol(value2, "Main-Bold", mode, options3, classes6.concat(["mathbf"]));
+ } else if (value2 === "\\" || symbols[mode][value2].font === "main") {
+ return makeSymbol(value2, "Main-Regular", mode, options3, classes6);
+ } else {
+ return makeSymbol(value2, "AMS-Regular", mode, options3, classes6.concat(["amsrm"]));
}
- return Boolean(ALL_MATHML_TAGS[tagName]);
- }
- if (element.namespaceURI === HTML_NAMESPACE) {
- if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
- return false;
+ }, "mathsym");
+ boldsymbol = /* @__PURE__ */ __name(function boldsymbol2(value2, mode, options3, classes6, type3) {
+ if (type3 !== "textord" && lookupSymbol(value2, "Math-BoldItalic", mode).metrics) {
+ return {
+ fontName: "Math-BoldItalic",
+ fontClass: "boldsymbol"
+ };
+ } else {
+ return {
+ fontName: "Main-Bold",
+ fontClass: "mathbf"
+ };
+ }
+ }, "boldsymbol");
+ makeOrd = /* @__PURE__ */ __name(function makeOrd2(group2, options3, type3) {
+ var mode = group2.mode;
+ var text2 = group2.text;
+ var classes6 = ["mord"];
+ var isFont = mode === "math" || mode === "text" && options3.font;
+ var fontOrFamily = isFont ? options3.font : options3.fontFamily;
+ var wideFontName = "";
+ var wideFontClass = "";
+ if (text2.charCodeAt(0) === 55349) {
+ [wideFontName, wideFontClass] = wideCharacterFont(text2, mode);
+ }
+ if (wideFontName.length > 0) {
+ return makeSymbol(text2, wideFontName, mode, options3, classes6.concat(wideFontClass));
+ } else if (fontOrFamily) {
+ var fontName;
+ var fontClasses;
+ if (fontOrFamily === "boldsymbol") {
+ var fontData = boldsymbol(text2, mode, options3, classes6, type3);
+ fontName = fontData.fontName;
+ fontClasses = [fontData.fontClass];
+ } else if (isFont) {
+ fontName = fontMap[fontOrFamily].fontName;
+ fontClasses = [fontOrFamily];
+ } else {
+ fontName = retrieveTextFontName(fontOrFamily, options3.fontWeight, options3.fontShape);
+ fontClasses = [fontOrFamily, options3.fontWeight, options3.fontShape];
+ }
+ if (lookupSymbol(text2, fontName, mode).metrics) {
+ return makeSymbol(text2, fontName, mode, options3, classes6.concat(fontClasses));
+ } else if (ligatures.hasOwnProperty(text2) && fontName.slice(0, 10) === "Typewriter") {
+ var parts = [];
+ for (var i2 = 0; i2 < text2.length; i2++) {
+ parts.push(makeSymbol(text2[i2], fontName, mode, options3, classes6.concat(fontClasses)));
+ }
+ return makeFragment(parts);
+ }
+ }
+ if (type3 === "mathord") {
+ return makeSymbol(text2, "Math-Italic", mode, options3, classes6.concat(["mathnormal"]));
+ } else if (type3 === "textord") {
+ var font = symbols[mode][text2] && symbols[mode][text2].font;
+ if (font === "ams") {
+ var _fontName = retrieveTextFontName("amsrm", options3.fontWeight, options3.fontShape);
+ return makeSymbol(text2, _fontName, mode, options3, classes6.concat("amsrm", options3.fontWeight, options3.fontShape));
+ } else if (font === "main" || !font) {
+ var _fontName2 = retrieveTextFontName("textrm", options3.fontWeight, options3.fontShape);
+ return makeSymbol(text2, _fontName2, mode, options3, classes6.concat(options3.fontWeight, options3.fontShape));
+ } else {
+ var _fontName3 = retrieveTextFontName(font, options3.fontWeight, options3.fontShape);
+ return makeSymbol(text2, _fontName3, mode, options3, classes6.concat(_fontName3, options3.fontWeight, options3.fontShape));
+ }
+ } else {
+ throw new Error("unexpected type: " + type3 + " in makeOrd");
}
- if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
+ }, "makeOrd");
+ canCombine = /* @__PURE__ */ __name((prev2, next3) => {
+ if (createClass(prev2.classes) !== createClass(next3.classes) || prev2.skew !== next3.skew || prev2.maxFontSize !== next3.maxFontSize) {
return false;
}
- return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
- }
- if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) {
+ if (prev2.classes.length === 1) {
+ var cls = prev2.classes[0];
+ if (cls === "mbin" || cls === "mord") {
+ return false;
+ }
+ }
+ for (var style3 in prev2.style) {
+ if (prev2.style.hasOwnProperty(style3) && prev2.style[style3] !== next3.style[style3]) {
+ return false;
+ }
+ }
+ for (var _style in next3.style) {
+ if (next3.style.hasOwnProperty(_style) && prev2.style[_style] !== next3.style[_style]) {
+ return false;
+ }
+ }
return true;
- }
- return false;
- };
- const _forceRemove = function _forceRemove2(node2) {
- arrayPush$1(DOMPurify.removed, {
- element: node2
- });
- try {
- node2.parentNode.removeChild(node2);
- } catch (_2) {
- node2.remove();
- }
- };
- const _removeAttribute = function _removeAttribute2(name2, node2) {
- try {
- arrayPush$1(DOMPurify.removed, {
- attribute: node2.getAttributeNode(name2),
- from: node2
- });
- } catch (_2) {
- arrayPush$1(DOMPurify.removed, {
- attribute: null,
- from: node2
- });
- }
- node2.removeAttribute(name2);
- if (name2 === "is" && !ALLOWED_ATTR[name2]) {
- if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
- try {
- _forceRemove(node2);
- } catch (_2) {
+ }, "canCombine");
+ tryCombineChars = /* @__PURE__ */ __name((chars) => {
+ for (var i2 = 0; i2 < chars.length - 1; i2++) {
+ var prev2 = chars[i2];
+ var next3 = chars[i2 + 1];
+ if (prev2 instanceof SymbolNode && next3 instanceof SymbolNode && canCombine(prev2, next3)) {
+ prev2.text += next3.text;
+ prev2.height = Math.max(prev2.height, next3.height);
+ prev2.depth = Math.max(prev2.depth, next3.depth);
+ prev2.italic = next3.italic;
+ chars.splice(i2 + 1, 1);
+ i2--;
+ }
+ }
+ return chars;
+ }, "tryCombineChars");
+ sizeElementFromChildren = /* @__PURE__ */ __name(function sizeElementFromChildren2(elem) {
+ var height2 = 0;
+ var depth = 0;
+ var maxFontSize = 0;
+ for (var i2 = 0; i2 < elem.children.length; i2++) {
+ var child = elem.children[i2];
+ if (child.height > height2) {
+ height2 = child.height;
+ }
+ if (child.depth > depth) {
+ depth = child.depth;
+ }
+ if (child.maxFontSize > maxFontSize) {
+ maxFontSize = child.maxFontSize;
+ }
+ }
+ elem.height = height2;
+ elem.depth = depth;
+ elem.maxFontSize = maxFontSize;
+ }, "sizeElementFromChildren");
+ makeSpan$2 = /* @__PURE__ */ __name(function makeSpan(classes6, children2, options3, style3) {
+ var span = new Span(classes6, children2, options3, style3);
+ sizeElementFromChildren(span);
+ return span;
+ }, "makeSpan");
+ makeSvgSpan = /* @__PURE__ */ __name((classes6, children2, options3, style3) => new Span(classes6, children2, options3, style3), "makeSvgSpan");
+ makeLineSpan = /* @__PURE__ */ __name(function makeLineSpan2(className, options3, thickness) {
+ var line2 = makeSpan$2([className], [], options3);
+ line2.height = Math.max(thickness || options3.fontMetrics().defaultRuleThickness, options3.minRuleThickness);
+ line2.style.borderBottomWidth = makeEm(line2.height);
+ line2.maxFontSize = 1;
+ return line2;
+ }, "makeLineSpan");
+ makeAnchor = /* @__PURE__ */ __name(function makeAnchor2(href, classes6, children2, options3) {
+ var anchor = new Anchor(href, classes6, children2, options3);
+ sizeElementFromChildren(anchor);
+ return anchor;
+ }, "makeAnchor");
+ makeFragment = /* @__PURE__ */ __name(function makeFragment2(children2) {
+ var fragment = new DocumentFragment(children2);
+ sizeElementFromChildren(fragment);
+ return fragment;
+ }, "makeFragment");
+ wrapFragment = /* @__PURE__ */ __name(function wrapFragment2(group2, options3) {
+ if (group2 instanceof DocumentFragment) {
+ return makeSpan$2([], [group2], options3);
+ }
+ return group2;
+ }, "wrapFragment");
+ getVListChildrenAndDepth = /* @__PURE__ */ __name(function getVListChildrenAndDepth2(params) {
+ if (params.positionType === "individualShift") {
+ var oldChildren = params.children;
+ var children2 = [oldChildren[0]];
+ var _depth = -oldChildren[0].shift - oldChildren[0].elem.depth;
+ var currPos = _depth;
+ for (var i2 = 1; i2 < oldChildren.length; i2++) {
+ var diff2 = -oldChildren[i2].shift - currPos - oldChildren[i2].elem.depth;
+ var size5 = diff2 - (oldChildren[i2 - 1].elem.height + oldChildren[i2 - 1].elem.depth);
+ currPos = currPos + diff2;
+ children2.push({
+ type: "kern",
+ size: size5
+ });
+ children2.push(oldChildren[i2]);
+ }
+ return {
+ children: children2,
+ depth: _depth
+ };
+ }
+ var depth;
+ if (params.positionType === "top") {
+ var bottom2 = params.positionData;
+ for (var _i = 0; _i < params.children.length; _i++) {
+ var child = params.children[_i];
+ bottom2 -= child.type === "kern" ? child.size : child.elem.height + child.elem.depth;
}
+ depth = bottom2;
+ } else if (params.positionType === "bottom") {
+ depth = -params.positionData;
} else {
- try {
- node2.setAttribute(name2, "");
- } catch (_2) {
+ var firstChild = params.children[0];
+ if (firstChild.type !== "elem") {
+ throw new Error('First child must have type "elem".');
+ }
+ if (params.positionType === "shift") {
+ depth = -firstChild.elem.depth - params.positionData;
+ } else if (params.positionType === "firstBaseline") {
+ depth = -firstChild.elem.depth;
+ } else {
+ throw new Error("Invalid positionType " + params.positionType + ".");
}
}
- }
- };
- const _initDocument = function _initDocument2(dirty) {
- let doc;
- let leadingWhitespace;
- if (FORCE_BODY) {
- dirty = "" + dirty;
- } else {
- const matches = stringMatch(dirty, /^[\r\n\t ]+/);
- leadingWhitespace = matches && matches[0];
- }
- if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) {
- dirty = '' + dirty + "";
- }
- const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
- if (NAMESPACE === HTML_NAMESPACE) {
- try {
- doc = new DOMParser2().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
- } catch (_2) {
+ return {
+ children: params.children,
+ depth
+ };
+ }, "getVListChildrenAndDepth");
+ makeVList = /* @__PURE__ */ __name(function makeVList2(params, options3) {
+ var {
+ children: children2,
+ depth
+ } = getVListChildrenAndDepth(params);
+ var pstrutSize = 0;
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var child = children2[i2];
+ if (child.type === "elem") {
+ var elem = child.elem;
+ pstrutSize = Math.max(pstrutSize, elem.maxFontSize, elem.height);
+ }
+ }
+ pstrutSize += 2;
+ var pstrut = makeSpan$2(["pstrut"], []);
+ pstrut.style.height = makeEm(pstrutSize);
+ var realChildren = [];
+ var minPos = depth;
+ var maxPos2 = depth;
+ var currPos = depth;
+ for (var _i2 = 0; _i2 < children2.length; _i2++) {
+ var _child = children2[_i2];
+ if (_child.type === "kern") {
+ currPos += _child.size;
+ } else {
+ var _elem = _child.elem;
+ var classes6 = _child.wrapperClasses || [];
+ var style3 = _child.wrapperStyle || {};
+ var childWrap = makeSpan$2(classes6, [pstrut, _elem], void 0, style3);
+ childWrap.style.top = makeEm(-pstrutSize - currPos - _elem.depth);
+ if (_child.marginLeft) {
+ childWrap.style.marginLeft = _child.marginLeft;
+ }
+ if (_child.marginRight) {
+ childWrap.style.marginRight = _child.marginRight;
+ }
+ realChildren.push(childWrap);
+ currPos += _elem.height + _elem.depth;
+ }
+ minPos = Math.min(minPos, currPos);
+ maxPos2 = Math.max(maxPos2, currPos);
+ }
+ var vlist = makeSpan$2(["vlist"], realChildren);
+ vlist.style.height = makeEm(maxPos2);
+ var rows;
+ if (minPos < 0) {
+ var emptySpan = makeSpan$2([], []);
+ var depthStrut = makeSpan$2(["vlist"], [emptySpan]);
+ depthStrut.style.height = makeEm(-minPos);
+ var topStrut = makeSpan$2(["vlist-s"], [new SymbolNode("\u200B")]);
+ rows = [makeSpan$2(["vlist-r"], [vlist, topStrut]), makeSpan$2(["vlist-r"], [depthStrut])];
+ } else {
+ rows = [makeSpan$2(["vlist-r"], [vlist])];
+ }
+ var vtable = makeSpan$2(["vlist-t"], rows);
+ if (rows.length === 2) {
+ vtable.classes.push("vlist-t2");
+ }
+ vtable.height = maxPos2;
+ vtable.depth = -minPos;
+ return vtable;
+ }, "makeVList");
+ makeGlue = /* @__PURE__ */ __name((measurement, options3) => {
+ var rule = makeSpan$2(["mspace"], [], options3);
+ var size5 = calculateSize2(measurement, options3);
+ rule.style.marginRight = makeEm(size5);
+ return rule;
+ }, "makeGlue");
+ retrieveTextFontName = /* @__PURE__ */ __name(function retrieveTextFontName2(fontFamily, fontWeight, fontShape) {
+ var baseFontName = "";
+ switch (fontFamily) {
+ case "amsrm":
+ baseFontName = "AMS";
+ break;
+ case "textrm":
+ baseFontName = "Main";
+ break;
+ case "textsf":
+ baseFontName = "SansSerif";
+ break;
+ case "texttt":
+ baseFontName = "Typewriter";
+ break;
+ default:
+ baseFontName = fontFamily;
+ }
+ var fontStylesName;
+ if (fontWeight === "textbf" && fontShape === "textit") {
+ fontStylesName = "BoldItalic";
+ } else if (fontWeight === "textbf") {
+ fontStylesName = "Bold";
+ } else if (fontWeight === "textit") {
+ fontStylesName = "Italic";
+ } else {
+ fontStylesName = "Regular";
+ }
+ return baseFontName + "-" + fontStylesName;
+ }, "retrieveTextFontName");
+ fontMap = {
+ // styles
+ "mathbf": {
+ variant: "bold",
+ fontName: "Main-Bold"
+ },
+ "mathrm": {
+ variant: "normal",
+ fontName: "Main-Regular"
+ },
+ "textit": {
+ variant: "italic",
+ fontName: "Main-Italic"
+ },
+ "mathit": {
+ variant: "italic",
+ fontName: "Main-Italic"
+ },
+ "mathnormal": {
+ variant: "italic",
+ fontName: "Math-Italic"
+ },
+ // "boldsymbol" is missing because they require the use of multiple fonts:
+ // Math-BoldItalic and Main-Bold. This is handled by a special case in
+ // makeOrd which ends up calling boldsymbol.
+ // families
+ "mathbb": {
+ variant: "double-struck",
+ fontName: "AMS-Regular"
+ },
+ "mathcal": {
+ variant: "script",
+ fontName: "Caligraphic-Regular"
+ },
+ "mathfrak": {
+ variant: "fraktur",
+ fontName: "Fraktur-Regular"
+ },
+ "mathscr": {
+ variant: "script",
+ fontName: "Script-Regular"
+ },
+ "mathsf": {
+ variant: "sans-serif",
+ fontName: "SansSerif-Regular"
+ },
+ "mathtt": {
+ variant: "monospace",
+ fontName: "Typewriter-Regular"
+ }
+ };
+ svgData = {
+ // path, width, height
+ vec: ["vec", 0.471, 0.714],
+ // values from the font glyph
+ oiintSize1: ["oiintSize1", 0.957, 0.499],
+ // oval to overlay the integrand
+ oiintSize2: ["oiintSize2", 1.472, 0.659],
+ oiiintSize1: ["oiiintSize1", 1.304, 0.499],
+ oiiintSize2: ["oiiintSize2", 1.98, 0.659]
+ };
+ staticSvg = /* @__PURE__ */ __name(function staticSvg2(value2, options3) {
+ var [pathName, width3, height2] = svgData[value2];
+ var path4 = new PathNode(pathName);
+ var svgNode2 = new SvgNode([path4], {
+ "width": makeEm(width3),
+ "height": makeEm(height2),
+ // Override CSS rule `.katex svg { width: 100% }`
+ "style": "width:" + makeEm(width3),
+ "viewBox": "0 0 " + 1e3 * width3 + " " + 1e3 * height2,
+ "preserveAspectRatio": "xMinYMin"
+ });
+ var span = makeSvgSpan(["overlay"], [svgNode2], options3);
+ span.height = height2;
+ span.style.height = makeEm(height2);
+ span.style.width = makeEm(width3);
+ return span;
+ }, "staticSvg");
+ buildCommon = {
+ fontMap,
+ makeSymbol,
+ mathsym,
+ makeSpan: makeSpan$2,
+ makeSvgSpan,
+ makeLineSpan,
+ makeAnchor,
+ makeFragment,
+ wrapFragment,
+ makeVList,
+ makeOrd,
+ makeGlue,
+ staticSvg,
+ svgData,
+ tryCombineChars
+ };
+ thinspace = {
+ number: 3,
+ unit: "mu"
+ };
+ mediumspace = {
+ number: 4,
+ unit: "mu"
+ };
+ thickspace = {
+ number: 5,
+ unit: "mu"
+ };
+ spacings = {
+ mord: {
+ mop: thinspace,
+ mbin: mediumspace,
+ mrel: thickspace,
+ minner: thinspace
+ },
+ mop: {
+ mord: thinspace,
+ mop: thinspace,
+ mrel: thickspace,
+ minner: thinspace
+ },
+ mbin: {
+ mord: mediumspace,
+ mop: mediumspace,
+ mopen: mediumspace,
+ minner: mediumspace
+ },
+ mrel: {
+ mord: thickspace,
+ mop: thickspace,
+ mopen: thickspace,
+ minner: thickspace
+ },
+ mopen: {},
+ mclose: {
+ mop: thinspace,
+ mbin: mediumspace,
+ mrel: thickspace,
+ minner: thinspace
+ },
+ mpunct: {
+ mord: thinspace,
+ mop: thinspace,
+ mrel: thickspace,
+ mopen: thinspace,
+ mclose: thinspace,
+ mpunct: thinspace,
+ minner: thinspace
+ },
+ minner: {
+ mord: thinspace,
+ mop: thinspace,
+ mbin: mediumspace,
+ mrel: thickspace,
+ mopen: thinspace,
+ mpunct: thinspace,
+ minner: thinspace
+ }
+ };
+ tightSpacings = {
+ mord: {
+ mop: thinspace
+ },
+ mop: {
+ mord: thinspace,
+ mop: thinspace
+ },
+ mbin: {},
+ mrel: {},
+ mopen: {},
+ mclose: {
+ mop: thinspace
+ },
+ mpunct: {},
+ minner: {
+ mop: thinspace
+ }
+ };
+ _functions = {};
+ _htmlGroupBuilders = {};
+ _mathmlGroupBuilders = {};
+ __name(defineFunction, "defineFunction");
+ __name(defineFunctionBuilders, "defineFunctionBuilders");
+ normalizeArgument = /* @__PURE__ */ __name(function normalizeArgument2(arg) {
+ return arg.type === "ordgroup" && arg.body.length === 1 ? arg.body[0] : arg;
+ }, "normalizeArgument");
+ ordargument = /* @__PURE__ */ __name(function ordargument2(arg) {
+ return arg.type === "ordgroup" ? arg.body : [arg];
+ }, "ordargument");
+ makeSpan$1 = buildCommon.makeSpan;
+ binLeftCanceller = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"];
+ binRightCanceller = ["rightmost", "mrel", "mclose", "mpunct"];
+ styleMap$1 = {
+ "display": Style$1.DISPLAY,
+ "text": Style$1.TEXT,
+ "script": Style$1.SCRIPT,
+ "scriptscript": Style$1.SCRIPTSCRIPT
+ };
+ DomEnum = {
+ mord: "mord",
+ mop: "mop",
+ mbin: "mbin",
+ mrel: "mrel",
+ mopen: "mopen",
+ mclose: "mclose",
+ mpunct: "mpunct",
+ minner: "minner"
+ };
+ buildExpression$1 = /* @__PURE__ */ __name(function buildExpression(expression, options3, isRealGroup, surrounding) {
+ if (surrounding === void 0) {
+ surrounding = [null, null];
+ }
+ var groups = [];
+ for (var i2 = 0; i2 < expression.length; i2++) {
+ var output2 = buildGroup$1(expression[i2], options3);
+ if (output2 instanceof DocumentFragment) {
+ var children2 = output2.children;
+ groups.push(...children2);
+ } else {
+ groups.push(output2);
+ }
}
- }
- if (!doc || !doc.documentElement) {
- doc = implementation.createDocument(NAMESPACE, "template", null);
- try {
- doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
- } catch (_2) {
+ buildCommon.tryCombineChars(groups);
+ if (!isRealGroup) {
+ return groups;
}
- }
- const body = doc.body || doc.documentElement;
- if (dirty && leadingWhitespace) {
- body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null);
- }
- if (NAMESPACE === HTML_NAMESPACE) {
- return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
- }
- return WHOLE_DOCUMENT ? doc.documentElement : body;
- };
- const _createIterator = function _createIterator2(root2) {
- return createNodeIterator.call(
- root2.ownerDocument || root2,
- root2,
- // eslint-disable-next-line no-bitwise
- NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,
- null,
- false
- );
- };
- const _isClobbered = function _isClobbered2(elm) {
- return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function" || typeof elm.hasChildNodes !== "function");
- };
- const _isNode = function _isNode2(object2) {
- return typeof Node === "object" ? object2 instanceof Node : object2 && typeof object2 === "object" && typeof object2.nodeType === "number" && typeof object2.nodeName === "string";
- };
- const _executeHook = function _executeHook2(entryPoint, currentNode, data) {
- if (!hooks[entryPoint]) {
- return;
- }
- arrayForEach(hooks[entryPoint], (hook) => {
- hook.call(DOMPurify, currentNode, data, CONFIG);
- });
- };
- const _sanitizeElements = function _sanitizeElements2(currentNode) {
- let content;
- _executeHook("beforeSanitizeElements", currentNode, null);
- if (_isClobbered(currentNode)) {
- _forceRemove(currentNode);
- return true;
- }
- const tagName = transformCaseFunc(currentNode.nodeName);
- _executeHook("uponSanitizeElement", currentNode, {
- tagName,
- allowedTags: ALLOWED_TAGS
- });
- if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
- _forceRemove(currentNode);
- return true;
- }
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
- if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName))
- return false;
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName))
- return false;
+ var glueOptions = options3;
+ if (expression.length === 1) {
+ var node2 = expression[0];
+ if (node2.type === "sizing") {
+ glueOptions = options3.havingSize(node2.size);
+ } else if (node2.type === "styling") {
+ glueOptions = options3.havingStyle(styleMap$1[node2.style]);
+ }
}
- if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
- const parentNode = getParentNode(currentNode) || currentNode.parentNode;
- const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
- if (childNodes && parentNode) {
- const childCount = childNodes.length;
- for (let i2 = childCount - 1; i2 >= 0; --i2) {
- parentNode.insertBefore(cloneNode(childNodes[i2], true), getNextSibling(currentNode));
- }
+ var dummyPrev = makeSpan$1([surrounding[0] || "leftmost"], [], options3);
+ var dummyNext = makeSpan$1([surrounding[1] || "rightmost"], [], options3);
+ var isRoot = isRealGroup === "root";
+ traverseNonSpaceNodes(groups, (node3, prev2) => {
+ var prevType = prev2.classes[0];
+ var type3 = node3.classes[0];
+ if (prevType === "mbin" && utils.contains(binRightCanceller, type3)) {
+ prev2.classes[0] = "mord";
+ } else if (type3 === "mbin" && utils.contains(binLeftCanceller, prevType)) {
+ node3.classes[0] = "mord";
+ }
+ }, {
+ node: dummyPrev
+ }, dummyNext, isRoot);
+ traverseNonSpaceNodes(groups, (node3, prev2) => {
+ var prevType = getTypeOfDomTree(prev2);
+ var type3 = getTypeOfDomTree(node3);
+ var space = prevType && type3 ? node3.hasClass("mtight") ? tightSpacings[prevType][type3] : spacings[prevType][type3] : null;
+ if (space) {
+ return buildCommon.makeGlue(space, glueOptions);
}
+ }, {
+ node: dummyPrev
+ }, dummyNext, isRoot);
+ return groups;
+ }, "buildExpression");
+ traverseNonSpaceNodes = /* @__PURE__ */ __name(function traverseNonSpaceNodes2(nodes6, callback, prev2, next3, isRoot) {
+ if (next3) {
+ nodes6.push(next3);
}
- _forceRemove(currentNode);
- return true;
- }
- if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
- _forceRemove(currentNode);
- return true;
- }
- if ((tagName === "noscript" || tagName === "noembed") && regExpTest(/<\/no(script|embed)/i, currentNode.innerHTML)) {
- _forceRemove(currentNode);
- return true;
- }
- if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
- content = currentNode.textContent;
- content = stringReplace(content, MUSTACHE_EXPR2, " ");
- content = stringReplace(content, ERB_EXPR2, " ");
- content = stringReplace(content, TMPLIT_EXPR2, " ");
- if (currentNode.textContent !== content) {
- arrayPush$1(DOMPurify.removed, {
- element: currentNode.cloneNode()
- });
- currentNode.textContent = content;
+ var i2 = 0;
+ for (; i2 < nodes6.length; i2++) {
+ var node2 = nodes6[i2];
+ var partialGroup = checkPartialGroup(node2);
+ if (partialGroup) {
+ traverseNonSpaceNodes2(partialGroup.children, callback, prev2, null, isRoot);
+ continue;
+ }
+ var nonspace = !node2.hasClass("mspace");
+ if (nonspace) {
+ var result = callback(node2, prev2.node);
+ if (result) {
+ if (prev2.insertAfter) {
+ prev2.insertAfter(result);
+ } else {
+ nodes6.unshift(result);
+ i2++;
+ }
+ }
+ }
+ if (nonspace) {
+ prev2.node = node2;
+ } else if (isRoot && node2.hasClass("newline")) {
+ prev2.node = makeSpan$1(["leftmost"]);
+ }
+ prev2.insertAfter = /* @__PURE__ */ ((index) => (n2) => {
+ nodes6.splice(index + 1, 0, n2);
+ i2++;
+ })(i2);
}
- }
- _executeHook("afterSanitizeElements", currentNode, null);
- return false;
- };
- const _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) {
- if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document2 || value in formElement)) {
- return false;
- }
- if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR2, lcName))
- ;
- else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR2, lcName))
- ;
- else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
- if (
- // First condition does a very basic check if a) it's basically a valid custom element tagname AND
- // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
- // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
- _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
- // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
- lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))
- )
- ;
- else {
- return false;
+ if (next3) {
+ nodes6.pop();
}
- } else if (URI_SAFE_ATTRIBUTES[lcName])
- ;
- else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE2, "")))
- ;
- else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag])
- ;
- else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA2, stringReplace(value, ATTR_WHITESPACE2, "")))
- ;
- else if (!value)
- ;
- else {
- return false;
- }
- return true;
- };
- const _basicCustomElementTest = function _basicCustomElementTest2(tagName) {
- return tagName.indexOf("-") > 0;
- };
- const _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {
- let attr;
- let value;
- let lcName;
- let l;
- _executeHook("beforeSanitizeAttributes", currentNode, null);
- const {
- attributes
- } = currentNode;
- if (!attributes) {
- return;
- }
- const hookEvent = {
- attrName: "",
- attrValue: "",
- keepAttr: true,
- allowedAttributes: ALLOWED_ATTR
- };
- l = attributes.length;
- while (l--) {
- attr = attributes[l];
- const {
- name: name2,
- namespaceURI
- } = attr;
- value = name2 === "value" ? attr.value : stringTrim(attr.value);
- lcName = transformCaseFunc(name2);
- hookEvent.attrName = lcName;
- hookEvent.attrValue = value;
- hookEvent.keepAttr = true;
- hookEvent.forceKeepAttr = void 0;
- _executeHook("uponSanitizeAttribute", currentNode, hookEvent);
- value = hookEvent.attrValue;
- if (hookEvent.forceKeepAttr) {
- continue;
+ }, "traverseNonSpaceNodes");
+ checkPartialGroup = /* @__PURE__ */ __name(function checkPartialGroup2(node2) {
+ if (node2 instanceof DocumentFragment || node2 instanceof Anchor || node2 instanceof Span && node2.hasClass("enclosing")) {
+ return node2;
}
- _removeAttribute(name2, currentNode);
- if (!hookEvent.keepAttr) {
- continue;
+ return null;
+ }, "checkPartialGroup");
+ getOutermostNode = /* @__PURE__ */ __name(function getOutermostNode2(node2, side) {
+ var partialGroup = checkPartialGroup(node2);
+ if (partialGroup) {
+ var children2 = partialGroup.children;
+ if (children2.length) {
+ if (side === "right") {
+ return getOutermostNode2(children2[children2.length - 1], "right");
+ } else if (side === "left") {
+ return getOutermostNode2(children2[0], "left");
+ }
+ }
+ }
+ return node2;
+ }, "getOutermostNode");
+ getTypeOfDomTree = /* @__PURE__ */ __name(function getTypeOfDomTree2(node2, side) {
+ if (!node2) {
+ return null;
}
- if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
- _removeAttribute(name2, currentNode);
- continue;
+ if (side) {
+ node2 = getOutermostNode(node2, side);
+ }
+ return DomEnum[node2.classes[0]] || null;
+ }, "getTypeOfDomTree");
+ makeNullDelimiter = /* @__PURE__ */ __name(function makeNullDelimiter2(options3, classes6) {
+ var moreClasses = ["nulldelimiter"].concat(options3.baseSizingClasses());
+ return makeSpan$1(classes6.concat(moreClasses));
+ }, "makeNullDelimiter");
+ buildGroup$1 = /* @__PURE__ */ __name(function buildGroup(group2, options3, baseOptions) {
+ if (!group2) {
+ return makeSpan$1();
+ }
+ if (_htmlGroupBuilders[group2.type]) {
+ var groupNode = _htmlGroupBuilders[group2.type](group2, options3);
+ if (baseOptions && options3.size !== baseOptions.size) {
+ groupNode = makeSpan$1(options3.sizingClasses(baseOptions), [groupNode], options3);
+ var multiplier = options3.sizeMultiplier / baseOptions.sizeMultiplier;
+ groupNode.height *= multiplier;
+ groupNode.depth *= multiplier;
+ }
+ return groupNode;
+ } else {
+ throw new ParseError("Got group of unknown type: '" + group2.type + "'");
+ }
+ }, "buildGroup");
+ __name(buildHTMLUnbreakable, "buildHTMLUnbreakable");
+ __name(buildHTML, "buildHTML");
+ __name(newDocumentFragment, "newDocumentFragment");
+ MathNode = class {
+ static {
+ __name(this, "MathNode");
+ }
+ constructor(type3, children2, classes6) {
+ this.type = void 0;
+ this.attributes = void 0;
+ this.children = void 0;
+ this.classes = void 0;
+ this.type = type3;
+ this.attributes = {};
+ this.children = children2 || [];
+ this.classes = classes6 || [];
+ }
+ /**
+ * Sets an attribute on a MathML node. MathML depends on attributes to convey a
+ * semantic content, so this is used heavily.
+ */
+ setAttribute(name, value2) {
+ this.attributes[name] = value2;
+ }
+ /**
+ * Gets an attribute on a MathML node.
+ */
+ getAttribute(name) {
+ return this.attributes[name];
+ }
+ /**
+ * Converts the math node into a MathML-namespaced DOM element.
+ */
+ toNode() {
+ var node2 = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type);
+ for (var attr in this.attributes) {
+ if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
+ node2.setAttribute(attr, this.attributes[attr]);
+ }
+ }
+ if (this.classes.length > 0) {
+ node2.className = createClass(this.classes);
+ }
+ for (var i2 = 0; i2 < this.children.length; i2++) {
+ node2.appendChild(this.children[i2].toNode());
+ }
+ return node2;
}
- if (SAFE_FOR_TEMPLATES) {
- value = stringReplace(value, MUSTACHE_EXPR2, " ");
- value = stringReplace(value, ERB_EXPR2, " ");
- value = stringReplace(value, TMPLIT_EXPR2, " ");
+ /**
+ * Converts the math node into an HTML markup string.
+ */
+ toMarkup() {
+ var markup = "<" + this.type;
+ for (var attr in this.attributes) {
+ if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
+ markup += " " + attr + '="';
+ markup += utils.escape(this.attributes[attr]);
+ markup += '"';
+ }
+ }
+ if (this.classes.length > 0) {
+ markup += ' class ="' + utils.escape(createClass(this.classes)) + '"';
+ }
+ markup += ">";
+ for (var i2 = 0; i2 < this.children.length; i2++) {
+ markup += this.children[i2].toMarkup();
+ }
+ markup += "" + this.type + ">";
+ return markup;
+ }
+ /**
+ * Converts the math node into a string, similar to innerText, but escaped.
+ */
+ toText() {
+ return this.children.map((child) => child.toText()).join("");
+ }
+ };
+ TextNode = class {
+ static {
+ __name(this, "TextNode");
+ }
+ constructor(text2) {
+ this.text = void 0;
+ this.text = text2;
+ }
+ /**
+ * Converts the text node into a DOM text node.
+ */
+ toNode() {
+ return document.createTextNode(this.text);
+ }
+ /**
+ * Converts the text node into escaped HTML markup
+ * (representing the text itself).
+ */
+ toMarkup() {
+ return utils.escape(this.toText());
+ }
+ /**
+ * Converts the text node into a string
+ * (representing the text itself).
+ */
+ toText() {
+ return this.text;
+ }
+ };
+ SpaceNode = class {
+ static {
+ __name(this, "SpaceNode");
+ }
+ /**
+ * Create a Space node with width given in CSS ems.
+ */
+ constructor(width3) {
+ this.width = void 0;
+ this.character = void 0;
+ this.width = width3;
+ if (width3 >= 0.05555 && width3 <= 0.05556) {
+ this.character = "\u200A";
+ } else if (width3 >= 0.1666 && width3 <= 0.1667) {
+ this.character = "\u2009";
+ } else if (width3 >= 0.2222 && width3 <= 0.2223) {
+ this.character = "\u2005";
+ } else if (width3 >= 0.2777 && width3 <= 0.2778) {
+ this.character = "\u2005\u200A";
+ } else if (width3 >= -0.05556 && width3 <= -0.05555) {
+ this.character = "\u200A\u2063";
+ } else if (width3 >= -0.1667 && width3 <= -0.1666) {
+ this.character = "\u2009\u2063";
+ } else if (width3 >= -0.2223 && width3 <= -0.2222) {
+ this.character = "\u205F\u2063";
+ } else if (width3 >= -0.2778 && width3 <= -0.2777) {
+ this.character = "\u2005\u2063";
+ } else {
+ this.character = null;
+ }
}
- const lcTag = transformCaseFunc(currentNode.nodeName);
- if (!_isValidAttribute(lcTag, lcName, value)) {
- continue;
+ /**
+ * Converts the math node into a MathML-namespaced DOM element.
+ */
+ toNode() {
+ if (this.character) {
+ return document.createTextNode(this.character);
+ } else {
+ var node2 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace");
+ node2.setAttribute("width", makeEm(this.width));
+ return node2;
+ }
}
- if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
- _removeAttribute(name2, currentNode);
- value = SANITIZE_NAMED_PROPS_PREFIX + value;
+ /**
+ * Converts the math node into an HTML markup string.
+ */
+ toMarkup() {
+ if (this.character) {
+ return "" + this.character + "";
+ } else {
+ return '';
+ }
}
- if (trustedTypesPolicy && typeof trustedTypes === "object" && typeof trustedTypes.getAttributeType === "function") {
- if (namespaceURI)
- ;
- else {
- switch (trustedTypes.getAttributeType(lcTag, lcName)) {
- case "TrustedHTML":
- value = trustedTypesPolicy.createHTML(value);
- break;
- case "TrustedScriptURL":
- value = trustedTypesPolicy.createScriptURL(value);
- break;
- }
+ /**
+ * Converts the math node into a string, similar to innerText.
+ */
+ toText() {
+ if (this.character) {
+ return this.character;
+ } else {
+ return " ";
}
}
- try {
- if (namespaceURI) {
- currentNode.setAttributeNS(namespaceURI, name2, value);
+ };
+ mathMLTree = {
+ MathNode,
+ TextNode,
+ SpaceNode,
+ newDocumentFragment
+ };
+ makeText = /* @__PURE__ */ __name(function makeText2(text2, mode, options3) {
+ if (symbols[mode][text2] && symbols[mode][text2].replace && text2.charCodeAt(0) !== 55349 && !(ligatures.hasOwnProperty(text2) && options3 && (options3.fontFamily && options3.fontFamily.slice(4, 6) === "tt" || options3.font && options3.font.slice(4, 6) === "tt"))) {
+ text2 = symbols[mode][text2].replace;
+ }
+ return new mathMLTree.TextNode(text2);
+ }, "makeText");
+ makeRow = /* @__PURE__ */ __name(function makeRow2(body) {
+ if (body.length === 1) {
+ return body[0];
+ } else {
+ return new mathMLTree.MathNode("mrow", body);
+ }
+ }, "makeRow");
+ getVariant = /* @__PURE__ */ __name(function getVariant2(group2, options3) {
+ if (options3.fontFamily === "texttt") {
+ return "monospace";
+ } else if (options3.fontFamily === "textsf") {
+ if (options3.fontShape === "textit" && options3.fontWeight === "textbf") {
+ return "sans-serif-bold-italic";
+ } else if (options3.fontShape === "textit") {
+ return "sans-serif-italic";
+ } else if (options3.fontWeight === "textbf") {
+ return "bold-sans-serif";
} else {
- currentNode.setAttribute(name2, value);
+ return "sans-serif";
}
- arrayPop(DOMPurify.removed);
- } catch (_2) {
+ } else if (options3.fontShape === "textit" && options3.fontWeight === "textbf") {
+ return "bold-italic";
+ } else if (options3.fontShape === "textit") {
+ return "italic";
+ } else if (options3.fontWeight === "textbf") {
+ return "bold";
}
- }
- _executeHook("afterSanitizeAttributes", currentNode, null);
- };
- const _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) {
- let shadowNode;
- const shadowIterator = _createIterator(fragment);
- _executeHook("beforeSanitizeShadowDOM", fragment, null);
- while (shadowNode = shadowIterator.nextNode()) {
- _executeHook("uponSanitizeShadowNode", shadowNode, null);
- if (_sanitizeElements(shadowNode)) {
- continue;
+ var font = options3.font;
+ if (!font || font === "mathnormal") {
+ return null;
}
- if (shadowNode.content instanceof DocumentFragment) {
- _sanitizeShadowDOM2(shadowNode.content);
+ var mode = group2.mode;
+ if (font === "mathit") {
+ return "italic";
+ } else if (font === "boldsymbol") {
+ return group2.type === "textord" ? "bold" : "bold-italic";
+ } else if (font === "mathbf") {
+ return "bold";
+ } else if (font === "mathbb") {
+ return "double-struck";
+ } else if (font === "mathfrak") {
+ return "fraktur";
+ } else if (font === "mathscr" || font === "mathcal") {
+ return "script";
+ } else if (font === "mathsf") {
+ return "sans-serif";
+ } else if (font === "mathtt") {
+ return "monospace";
+ }
+ var text2 = group2.text;
+ if (utils.contains(["\\imath", "\\jmath"], text2)) {
+ return null;
}
- _sanitizeAttributes(shadowNode);
- }
- _executeHook("afterSanitizeShadowDOM", fragment, null);
- };
- DOMPurify.sanitize = function(dirty) {
- let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- let body;
- let importedNode;
- let currentNode;
- let returnNode;
- IS_EMPTY_INPUT = !dirty;
- if (IS_EMPTY_INPUT) {
- dirty = "";
- }
- if (typeof dirty !== "string" && !_isNode(dirty)) {
- if (typeof dirty.toString !== "function") {
- throw typeErrorCreate("toString is not a function");
+ if (symbols[mode][text2] && symbols[mode][text2].replace) {
+ text2 = symbols[mode][text2].replace;
+ }
+ var fontName = buildCommon.fontMap[font].fontName;
+ if (getCharacterMetrics(text2, fontName, mode)) {
+ return buildCommon.fontMap[font].variant;
+ }
+ return null;
+ }, "getVariant");
+ buildExpression2 = /* @__PURE__ */ __name(function buildExpression3(expression, options3, isOrdgroup) {
+ if (expression.length === 1) {
+ var group2 = buildGroup2(expression[0], options3);
+ if (isOrdgroup && group2 instanceof MathNode && group2.type === "mo") {
+ group2.setAttribute("lspace", "0em");
+ group2.setAttribute("rspace", "0em");
+ }
+ return [group2];
+ }
+ var groups = [];
+ var lastGroup;
+ for (var i2 = 0; i2 < expression.length; i2++) {
+ var _group = buildGroup2(expression[i2], options3);
+ if (_group instanceof MathNode && lastGroup instanceof MathNode) {
+ if (_group.type === "mtext" && lastGroup.type === "mtext" && _group.getAttribute("mathvariant") === lastGroup.getAttribute("mathvariant")) {
+ lastGroup.children.push(..._group.children);
+ continue;
+ } else if (_group.type === "mn" && lastGroup.type === "mn") {
+ lastGroup.children.push(..._group.children);
+ continue;
+ } else if (_group.type === "mi" && _group.children.length === 1 && lastGroup.type === "mn") {
+ var child = _group.children[0];
+ if (child instanceof TextNode && child.text === ".") {
+ lastGroup.children.push(..._group.children);
+ continue;
+ }
+ } else if (lastGroup.type === "mi" && lastGroup.children.length === 1) {
+ var lastChild = lastGroup.children[0];
+ if (lastChild instanceof TextNode && lastChild.text === "\u0338" && (_group.type === "mo" || _group.type === "mi" || _group.type === "mn")) {
+ var _child = _group.children[0];
+ if (_child instanceof TextNode && _child.text.length > 0) {
+ _child.text = _child.text.slice(0, 1) + "\u0338" + _child.text.slice(1);
+ groups.pop();
+ }
+ }
+ }
+ }
+ groups.push(_group);
+ lastGroup = _group;
+ }
+ return groups;
+ }, "buildExpression");
+ buildExpressionRow = /* @__PURE__ */ __name(function buildExpressionRow2(expression, options3, isOrdgroup) {
+ return makeRow(buildExpression2(expression, options3, isOrdgroup));
+ }, "buildExpressionRow");
+ buildGroup2 = /* @__PURE__ */ __name(function buildGroup3(group2, options3) {
+ if (!group2) {
+ return new mathMLTree.MathNode("mrow");
+ }
+ if (_mathmlGroupBuilders[group2.type]) {
+ var result = _mathmlGroupBuilders[group2.type](group2, options3);
+ return result;
+ } else {
+ throw new ParseError("Got group of unknown type: '" + group2.type + "'");
+ }
+ }, "buildGroup");
+ __name(buildMathML, "buildMathML");
+ optionsFromSettings = /* @__PURE__ */ __name(function optionsFromSettings2(settings) {
+ return new Options({
+ style: settings.displayMode ? Style$1.DISPLAY : Style$1.TEXT,
+ maxSize: settings.maxSize,
+ minRuleThickness: settings.minRuleThickness
+ });
+ }, "optionsFromSettings");
+ displayWrap = /* @__PURE__ */ __name(function displayWrap2(node2, settings) {
+ if (settings.displayMode) {
+ var classes6 = ["katex-display"];
+ if (settings.leqno) {
+ classes6.push("leqno");
+ }
+ if (settings.fleqn) {
+ classes6.push("fleqn");
+ }
+ node2 = buildCommon.makeSpan(classes6, [node2]);
+ }
+ return node2;
+ }, "displayWrap");
+ buildTree = /* @__PURE__ */ __name(function buildTree2(tree, expression, settings) {
+ var options3 = optionsFromSettings(settings);
+ var katexNode;
+ if (settings.output === "mathml") {
+ return buildMathML(tree, expression, options3, settings.displayMode, true);
+ } else if (settings.output === "html") {
+ var htmlNode = buildHTML(tree, options3);
+ katexNode = buildCommon.makeSpan(["katex"], [htmlNode]);
} else {
- dirty = dirty.toString();
- if (typeof dirty !== "string") {
- throw typeErrorCreate("dirty is not a string, aborting");
+ var mathMLNode = buildMathML(tree, expression, options3, settings.displayMode, false);
+ var _htmlNode = buildHTML(tree, options3);
+ katexNode = buildCommon.makeSpan(["katex"], [mathMLNode, _htmlNode]);
+ }
+ return displayWrap(katexNode, settings);
+ }, "buildTree");
+ buildHTMLTree = /* @__PURE__ */ __name(function buildHTMLTree2(tree, expression, settings) {
+ var options3 = optionsFromSettings(settings);
+ var htmlNode = buildHTML(tree, options3);
+ var katexNode = buildCommon.makeSpan(["katex"], [htmlNode]);
+ return displayWrap(katexNode, settings);
+ }, "buildHTMLTree");
+ stretchyCodePoint = {
+ widehat: "^",
+ widecheck: "\u02C7",
+ widetilde: "~",
+ utilde: "~",
+ overleftarrow: "\u2190",
+ underleftarrow: "\u2190",
+ xleftarrow: "\u2190",
+ overrightarrow: "\u2192",
+ underrightarrow: "\u2192",
+ xrightarrow: "\u2192",
+ underbrace: "\u23DF",
+ overbrace: "\u23DE",
+ overgroup: "\u23E0",
+ undergroup: "\u23E1",
+ overleftrightarrow: "\u2194",
+ underleftrightarrow: "\u2194",
+ xleftrightarrow: "\u2194",
+ Overrightarrow: "\u21D2",
+ xRightarrow: "\u21D2",
+ overleftharpoon: "\u21BC",
+ xleftharpoonup: "\u21BC",
+ overrightharpoon: "\u21C0",
+ xrightharpoonup: "\u21C0",
+ xLeftarrow: "\u21D0",
+ xLeftrightarrow: "\u21D4",
+ xhookleftarrow: "\u21A9",
+ xhookrightarrow: "\u21AA",
+ xmapsto: "\u21A6",
+ xrightharpoondown: "\u21C1",
+ xleftharpoondown: "\u21BD",
+ xrightleftharpoons: "\u21CC",
+ xleftrightharpoons: "\u21CB",
+ xtwoheadleftarrow: "\u219E",
+ xtwoheadrightarrow: "\u21A0",
+ xlongequal: "=",
+ xtofrom: "\u21C4",
+ xrightleftarrows: "\u21C4",
+ xrightequilibrium: "\u21CC",
+ // Not a perfect match.
+ xleftequilibrium: "\u21CB",
+ // None better available.
+ "\\cdrightarrow": "\u2192",
+ "\\cdleftarrow": "\u2190",
+ "\\cdlongequal": "="
+ };
+ mathMLnode = /* @__PURE__ */ __name(function mathMLnode2(label) {
+ var node2 = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(stretchyCodePoint[label.replace(/^\\/, "")])]);
+ node2.setAttribute("stretchy", "true");
+ return node2;
+ }, "mathMLnode");
+ katexImagesData = {
+ // path(s), minWidth, height, align
+ overrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"],
+ overleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"],
+ underrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"],
+ underleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"],
+ xrightarrow: [["rightarrow"], 1.469, 522, "xMaxYMin"],
+ "\\cdrightarrow": [["rightarrow"], 3, 522, "xMaxYMin"],
+ // CD minwwidth2.5pc
+ xleftarrow: [["leftarrow"], 1.469, 522, "xMinYMin"],
+ "\\cdleftarrow": [["leftarrow"], 3, 522, "xMinYMin"],
+ Overrightarrow: [["doublerightarrow"], 0.888, 560, "xMaxYMin"],
+ xRightarrow: [["doublerightarrow"], 1.526, 560, "xMaxYMin"],
+ xLeftarrow: [["doubleleftarrow"], 1.526, 560, "xMinYMin"],
+ overleftharpoon: [["leftharpoon"], 0.888, 522, "xMinYMin"],
+ xleftharpoonup: [["leftharpoon"], 0.888, 522, "xMinYMin"],
+ xleftharpoondown: [["leftharpoondown"], 0.888, 522, "xMinYMin"],
+ overrightharpoon: [["rightharpoon"], 0.888, 522, "xMaxYMin"],
+ xrightharpoonup: [["rightharpoon"], 0.888, 522, "xMaxYMin"],
+ xrightharpoondown: [["rightharpoondown"], 0.888, 522, "xMaxYMin"],
+ xlongequal: [["longequal"], 0.888, 334, "xMinYMin"],
+ "\\cdlongequal": [["longequal"], 3, 334, "xMinYMin"],
+ xtwoheadleftarrow: [["twoheadleftarrow"], 0.888, 334, "xMinYMin"],
+ xtwoheadrightarrow: [["twoheadrightarrow"], 0.888, 334, "xMaxYMin"],
+ overleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522],
+ overbrace: [["leftbrace", "midbrace", "rightbrace"], 1.6, 548],
+ underbrace: [["leftbraceunder", "midbraceunder", "rightbraceunder"], 1.6, 548],
+ underleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522],
+ xleftrightarrow: [["leftarrow", "rightarrow"], 1.75, 522],
+ xLeftrightarrow: [["doubleleftarrow", "doublerightarrow"], 1.75, 560],
+ xrightleftharpoons: [["leftharpoondownplus", "rightharpoonplus"], 1.75, 716],
+ xleftrightharpoons: [["leftharpoonplus", "rightharpoondownplus"], 1.75, 716],
+ xhookleftarrow: [["leftarrow", "righthook"], 1.08, 522],
+ xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522],
+ overlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
+ underlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
+ overgroup: [["leftgroup", "rightgroup"], 0.888, 342],
+ undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342],
+ xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522],
+ xtofrom: [["leftToFrom", "rightToFrom"], 1.75, 528],
+ // The next three arrows are from the mhchem package.
+ // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the
+ // document as \xrightarrow or \xrightleftharpoons. Those have
+ // min-length = 1.75em, so we set min-length on these next three to match.
+ xrightleftarrows: [["baraboveleftarrow", "rightarrowabovebar"], 1.75, 901],
+ xrightequilibrium: [["baraboveshortleftharpoon", "rightharpoonaboveshortbar"], 1.75, 716],
+ xleftequilibrium: [["shortbaraboveleftharpoon", "shortrightharpoonabovebar"], 1.75, 716]
+ };
+ groupLength = /* @__PURE__ */ __name(function groupLength2(arg) {
+ if (arg.type === "ordgroup") {
+ return arg.body.length;
+ } else {
+ return 1;
+ }
+ }, "groupLength");
+ svgSpan = /* @__PURE__ */ __name(function svgSpan2(group2, options3) {
+ function buildSvgSpan_() {
+ var viewBoxWidth = 4e5;
+ var label = group2.label.slice(1);
+ if (utils.contains(["widehat", "widecheck", "widetilde", "utilde"], label)) {
+ var grp = group2;
+ var numChars = groupLength(grp.base);
+ var viewBoxHeight;
+ var pathName;
+ var _height;
+ if (numChars > 5) {
+ if (label === "widehat" || label === "widecheck") {
+ viewBoxHeight = 420;
+ viewBoxWidth = 2364;
+ _height = 0.42;
+ pathName = label + "4";
+ } else {
+ viewBoxHeight = 312;
+ viewBoxWidth = 2340;
+ _height = 0.34;
+ pathName = "tilde4";
+ }
+ } else {
+ var imgIndex = [1, 1, 2, 2, 3, 3][numChars];
+ if (label === "widehat" || label === "widecheck") {
+ viewBoxWidth = [0, 1062, 2364, 2364, 2364][imgIndex];
+ viewBoxHeight = [0, 239, 300, 360, 420][imgIndex];
+ _height = [0, 0.24, 0.3, 0.3, 0.36, 0.42][imgIndex];
+ pathName = label + imgIndex;
+ } else {
+ viewBoxWidth = [0, 600, 1033, 2339, 2340][imgIndex];
+ viewBoxHeight = [0, 260, 286, 306, 312][imgIndex];
+ _height = [0, 0.26, 0.286, 0.3, 0.306, 0.34][imgIndex];
+ pathName = "tilde" + imgIndex;
+ }
+ }
+ var path4 = new PathNode(pathName);
+ var svgNode2 = new SvgNode([path4], {
+ "width": "100%",
+ "height": makeEm(_height),
+ "viewBox": "0 0 " + viewBoxWidth + " " + viewBoxHeight,
+ "preserveAspectRatio": "none"
+ });
+ return {
+ span: buildCommon.makeSvgSpan([], [svgNode2], options3),
+ minWidth: 0,
+ height: _height
+ };
+ } else {
+ var spans = [];
+ var data5 = katexImagesData[label];
+ var [paths, _minWidth, _viewBoxHeight] = data5;
+ var _height2 = _viewBoxHeight / 1e3;
+ var numSvgChildren = paths.length;
+ var widthClasses;
+ var aligns;
+ if (numSvgChildren === 1) {
+ var align1 = data5[3];
+ widthClasses = ["hide-tail"];
+ aligns = [align1];
+ } else if (numSvgChildren === 2) {
+ widthClasses = ["halfarrow-left", "halfarrow-right"];
+ aligns = ["xMinYMin", "xMaxYMin"];
+ } else if (numSvgChildren === 3) {
+ widthClasses = ["brace-left", "brace-center", "brace-right"];
+ aligns = ["xMinYMin", "xMidYMin", "xMaxYMin"];
+ } else {
+ throw new Error("Correct katexImagesData or update code here to support\n " + numSvgChildren + " children.");
+ }
+ for (var i2 = 0; i2 < numSvgChildren; i2++) {
+ var _path = new PathNode(paths[i2]);
+ var _svgNode = new SvgNode([_path], {
+ "width": "400em",
+ "height": makeEm(_height2),
+ "viewBox": "0 0 " + viewBoxWidth + " " + _viewBoxHeight,
+ "preserveAspectRatio": aligns[i2] + " slice"
+ });
+ var _span = buildCommon.makeSvgSpan([widthClasses[i2]], [_svgNode], options3);
+ if (numSvgChildren === 1) {
+ return {
+ span: _span,
+ minWidth: _minWidth,
+ height: _height2
+ };
+ } else {
+ _span.style.height = makeEm(_height2);
+ spans.push(_span);
+ }
+ }
+ return {
+ span: buildCommon.makeSpan(["stretchy"], spans, options3),
+ minWidth: _minWidth,
+ height: _height2
+ };
}
}
- }
- if (!DOMPurify.isSupported) {
- return dirty;
- }
- if (!SET_CONFIG) {
- _parseConfig(cfg);
- }
- DOMPurify.removed = [];
- if (typeof dirty === "string") {
- IN_PLACE = false;
- }
- if (IN_PLACE) {
- if (dirty.nodeName) {
- const tagName = transformCaseFunc(dirty.nodeName);
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
- throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
+ __name(buildSvgSpan_, "buildSvgSpan_");
+ var {
+ span,
+ minWidth,
+ height: height2
+ } = buildSvgSpan_();
+ span.height = height2;
+ span.style.height = makeEm(height2);
+ if (minWidth > 0) {
+ span.style.minWidth = makeEm(minWidth);
+ }
+ return span;
+ }, "svgSpan");
+ encloseSpan = /* @__PURE__ */ __name(function encloseSpan2(inner2, label, topPad, bottomPad, options3) {
+ var img;
+ var totalHeight = inner2.height + inner2.depth + topPad + bottomPad;
+ if (/fbox|color|angl/.test(label)) {
+ img = buildCommon.makeSpan(["stretchy", label], [], options3);
+ if (label === "fbox") {
+ var color2 = options3.color && options3.getColor();
+ if (color2) {
+ img.style.borderColor = color2;
+ }
+ }
+ } else {
+ var lines = [];
+ if (/^[bx]cancel$/.test(label)) {
+ lines.push(new LineNode({
+ "x1": "0",
+ "y1": "0",
+ "x2": "100%",
+ "y2": "100%",
+ "stroke-width": "0.046em"
+ }));
+ }
+ if (/^x?cancel$/.test(label)) {
+ lines.push(new LineNode({
+ "x1": "0",
+ "y1": "100%",
+ "x2": "100%",
+ "y2": "0",
+ "stroke-width": "0.046em"
+ }));
+ }
+ var svgNode2 = new SvgNode(lines, {
+ "width": "100%",
+ "height": makeEm(totalHeight)
+ });
+ img = buildCommon.makeSvgSpan([], [svgNode2], options3);
+ }
+ img.height = totalHeight;
+ img.style.height = makeEm(totalHeight);
+ return img;
+ }, "encloseSpan");
+ stretchy = {
+ encloseSpan,
+ mathMLnode,
+ svgSpan
+ };
+ __name(assertNodeType, "assertNodeType");
+ __name(assertSymbolNodeType, "assertSymbolNodeType");
+ __name(checkSymbolNodeType, "checkSymbolNodeType");
+ htmlBuilder$a = /* @__PURE__ */ __name((grp, options3) => {
+ var base;
+ var group2;
+ var supSubGroup;
+ if (grp && grp.type === "supsub") {
+ group2 = assertNodeType(grp.base, "accent");
+ base = group2.base;
+ grp.base = base;
+ supSubGroup = assertSpan(buildGroup$1(grp, options3));
+ grp.base = group2;
+ } else {
+ group2 = assertNodeType(grp, "accent");
+ base = group2.base;
+ }
+ var body = buildGroup$1(base, options3.havingCrampedStyle());
+ var mustShift = group2.isShifty && utils.isCharacterBox(base);
+ var skew = 0;
+ if (mustShift) {
+ var baseChar = utils.getBaseElem(base);
+ var baseGroup = buildGroup$1(baseChar, options3.havingCrampedStyle());
+ skew = assertSymbolDomNode(baseGroup).skew;
+ }
+ var accentBelow = group2.label === "\\c";
+ var clearance = accentBelow ? body.height + body.depth : Math.min(body.height, options3.fontMetrics().xHeight);
+ var accentBody;
+ if (!group2.isStretchy) {
+ var accent2;
+ var width3;
+ if (group2.label === "\\vec") {
+ accent2 = buildCommon.staticSvg("vec", options3);
+ width3 = buildCommon.svgData.vec[1];
+ } else {
+ accent2 = buildCommon.makeOrd({
+ mode: group2.mode,
+ text: group2.label
+ }, options3, "textord");
+ accent2 = assertSymbolDomNode(accent2);
+ accent2.italic = 0;
+ width3 = accent2.width;
+ if (accentBelow) {
+ clearance += accent2.depth;
+ }
+ }
+ accentBody = buildCommon.makeSpan(["accent-body"], [accent2]);
+ var accentFull = group2.label === "\\textcircled";
+ if (accentFull) {
+ accentBody.classes.push("accent-full");
+ clearance = body.height;
+ }
+ var left3 = skew;
+ if (!accentFull) {
+ left3 -= width3 / 2;
+ }
+ accentBody.style.left = makeEm(left3);
+ if (group2.label === "\\textcircled") {
+ accentBody.style.top = ".2em";
+ }
+ accentBody = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: body
+ }, {
+ type: "kern",
+ size: -clearance
+ }, {
+ type: "elem",
+ elem: accentBody
+ }]
+ }, options3);
+ } else {
+ accentBody = stretchy.svgSpan(group2, options3);
+ accentBody = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: body
+ }, {
+ type: "elem",
+ elem: accentBody,
+ wrapperClasses: ["svg-align"],
+ wrapperStyle: skew > 0 ? {
+ width: "calc(100% - " + makeEm(2 * skew) + ")",
+ marginLeft: makeEm(2 * skew)
+ } : void 0
+ }]
+ }, options3);
+ }
+ var accentWrap = buildCommon.makeSpan(["mord", "accent"], [accentBody], options3);
+ if (supSubGroup) {
+ supSubGroup.children[0] = accentWrap;
+ supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height);
+ supSubGroup.classes[0] = "mord";
+ return supSubGroup;
+ } else {
+ return accentWrap;
+ }
+ }, "htmlBuilder$a");
+ mathmlBuilder$9 = /* @__PURE__ */ __name((group2, options3) => {
+ var accentNode = group2.isStretchy ? stretchy.mathMLnode(group2.label) : new mathMLTree.MathNode("mo", [makeText(group2.label, group2.mode)]);
+ var node2 = new mathMLTree.MathNode("mover", [buildGroup2(group2.base, options3), accentNode]);
+ node2.setAttribute("accent", "true");
+ return node2;
+ }, "mathmlBuilder$9");
+ NON_STRETCHY_ACCENT_REGEX = new RegExp(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"].map((accent2) => "\\" + accent2).join("|"));
+ defineFunction({
+ type: "accent",
+ names: ["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring", "\\widecheck", "\\widehat", "\\widetilde", "\\overrightarrow", "\\overleftarrow", "\\Overrightarrow", "\\overleftrightarrow", "\\overgroup", "\\overlinesegment", "\\overleftharpoon", "\\overrightharpoon"],
+ props: {
+ numArgs: 1
+ },
+ handler: /* @__PURE__ */ __name((context, args) => {
+ var base = normalizeArgument(args[0]);
+ var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);
+ var isShifty = !isStretchy || context.funcName === "\\widehat" || context.funcName === "\\widetilde" || context.funcName === "\\widecheck";
+ return {
+ type: "accent",
+ mode: context.parser.mode,
+ label: context.funcName,
+ isStretchy,
+ isShifty,
+ base
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$a,
+ mathmlBuilder: mathmlBuilder$9
+ });
+ defineFunction({
+ type: "accent",
+ names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\c", "\\r", "\\H", "\\v", "\\textcircled"],
+ props: {
+ numArgs: 1,
+ allowedInText: true,
+ allowedInMath: true,
+ // unless in strict mode
+ argTypes: ["primitive"]
+ },
+ handler: /* @__PURE__ */ __name((context, args) => {
+ var base = args[0];
+ var mode = context.parser.mode;
+ if (mode === "math") {
+ context.parser.settings.reportNonstrict("mathVsTextAccents", "LaTeX's accent " + context.funcName + " works only in text mode");
+ mode = "text";
+ }
+ return {
+ type: "accent",
+ mode,
+ label: context.funcName,
+ isStretchy: false,
+ isShifty: true,
+ base
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$a,
+ mathmlBuilder: mathmlBuilder$9
+ });
+ defineFunction({
+ type: "accentUnder",
+ names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"],
+ props: {
+ numArgs: 1
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var base = args[0];
+ return {
+ type: "accentUnder",
+ mode: parser22.mode,
+ label: funcName,
+ base
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var innerGroup = buildGroup$1(group2.base, options3);
+ var accentBody = stretchy.svgSpan(group2, options3);
+ var kern = group2.label === "\\utilde" ? 0.12 : 0;
+ var vlist = buildCommon.makeVList({
+ positionType: "top",
+ positionData: innerGroup.height,
+ children: [{
+ type: "elem",
+ elem: accentBody,
+ wrapperClasses: ["svg-align"]
+ }, {
+ type: "kern",
+ size: kern
+ }, {
+ type: "elem",
+ elem: innerGroup
+ }]
+ }, options3);
+ return buildCommon.makeSpan(["mord", "accentunder"], [vlist], options3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var accentNode = stretchy.mathMLnode(group2.label);
+ var node2 = new mathMLTree.MathNode("munder", [buildGroup2(group2.base, options3), accentNode]);
+ node2.setAttribute("accentunder", "true");
+ return node2;
+ }, "mathmlBuilder")
+ });
+ paddedNode = /* @__PURE__ */ __name((group2) => {
+ var node2 = new mathMLTree.MathNode("mpadded", group2 ? [group2] : []);
+ node2.setAttribute("width", "+0.6em");
+ node2.setAttribute("lspace", "0.3em");
+ return node2;
+ }, "paddedNode");
+ defineFunction({
+ type: "xArrow",
+ names: [
+ "\\xleftarrow",
+ "\\xrightarrow",
+ "\\xLeftarrow",
+ "\\xRightarrow",
+ "\\xleftrightarrow",
+ "\\xLeftrightarrow",
+ "\\xhookleftarrow",
+ "\\xhookrightarrow",
+ "\\xmapsto",
+ "\\xrightharpoondown",
+ "\\xrightharpoonup",
+ "\\xleftharpoondown",
+ "\\xleftharpoonup",
+ "\\xrightleftharpoons",
+ "\\xleftrightharpoons",
+ "\\xlongequal",
+ "\\xtwoheadrightarrow",
+ "\\xtwoheadleftarrow",
+ "\\xtofrom",
+ // The next 3 functions are here to support the mhchem extension.
+ // Direct use of these functions is discouraged and may break someday.
+ "\\xrightleftarrows",
+ "\\xrightequilibrium",
+ "\\xleftequilibrium",
+ // The next 3 functions are here only to support the {CD} environment.
+ "\\\\cdrightarrow",
+ "\\\\cdleftarrow",
+ "\\\\cdlongequal"
+ ],
+ props: {
+ numArgs: 1,
+ numOptionalArgs: 1
+ },
+ handler(_ref, args, optArgs) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ return {
+ type: "xArrow",
+ mode: parser22.mode,
+ label: funcName,
+ body: args[0],
+ below: optArgs[0]
+ };
+ },
+ // Flow is unable to correctly infer the type of `group`, even though it's
+ // unambiguously determined from the passed-in `type` above.
+ htmlBuilder(group2, options3) {
+ var style3 = options3.style;
+ var newOptions = options3.havingStyle(style3.sup());
+ var upperGroup = buildCommon.wrapFragment(buildGroup$1(group2.body, newOptions, options3), options3);
+ var arrowPrefix = group2.label.slice(0, 2) === "\\x" ? "x" : "cd";
+ upperGroup.classes.push(arrowPrefix + "-arrow-pad");
+ var lowerGroup;
+ if (group2.below) {
+ newOptions = options3.havingStyle(style3.sub());
+ lowerGroup = buildCommon.wrapFragment(buildGroup$1(group2.below, newOptions, options3), options3);
+ lowerGroup.classes.push(arrowPrefix + "-arrow-pad");
+ }
+ var arrowBody = stretchy.svgSpan(group2, options3);
+ var arrowShift = -options3.fontMetrics().axisHeight + 0.5 * arrowBody.height;
+ var upperShift = -options3.fontMetrics().axisHeight - 0.5 * arrowBody.height - 0.111;
+ if (upperGroup.depth > 0.25 || group2.label === "\\xleftequilibrium") {
+ upperShift -= upperGroup.depth;
+ }
+ var vlist;
+ if (lowerGroup) {
+ var lowerShift = -options3.fontMetrics().axisHeight + lowerGroup.height + 0.5 * arrowBody.height + 0.111;
+ vlist = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: [{
+ type: "elem",
+ elem: upperGroup,
+ shift: upperShift
+ }, {
+ type: "elem",
+ elem: arrowBody,
+ shift: arrowShift
+ }, {
+ type: "elem",
+ elem: lowerGroup,
+ shift: lowerShift
+ }]
+ }, options3);
+ } else {
+ vlist = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: [{
+ type: "elem",
+ elem: upperGroup,
+ shift: upperShift
+ }, {
+ type: "elem",
+ elem: arrowBody,
+ shift: arrowShift
+ }]
+ }, options3);
+ }
+ vlist.children[0].children[0].children[1].classes.push("svg-align");
+ return buildCommon.makeSpan(["mrel", "x-arrow"], [vlist], options3);
+ },
+ mathmlBuilder(group2, options3) {
+ var arrowNode = stretchy.mathMLnode(group2.label);
+ arrowNode.setAttribute("minsize", group2.label.charAt(0) === "x" ? "1.75em" : "3.0em");
+ var node2;
+ if (group2.body) {
+ var upperNode = paddedNode(buildGroup2(group2.body, options3));
+ if (group2.below) {
+ var lowerNode = paddedNode(buildGroup2(group2.below, options3));
+ node2 = new mathMLTree.MathNode("munderover", [arrowNode, lowerNode, upperNode]);
+ } else {
+ node2 = new mathMLTree.MathNode("mover", [arrowNode, upperNode]);
+ }
+ } else if (group2.below) {
+ var _lowerNode = paddedNode(buildGroup2(group2.below, options3));
+ node2 = new mathMLTree.MathNode("munder", [arrowNode, _lowerNode]);
+ } else {
+ node2 = paddedNode();
+ node2 = new mathMLTree.MathNode("mover", [arrowNode, node2]);
}
+ return node2;
}
- } else if (dirty instanceof Node) {
- body = _initDocument("");
- importedNode = body.ownerDocument.importNode(dirty, true);
- if (importedNode.nodeType === 1 && importedNode.nodeName === "BODY") {
- body = importedNode;
- } else if (importedNode.nodeName === "HTML") {
- body = importedNode;
+ });
+ makeSpan2 = buildCommon.makeSpan;
+ __name(htmlBuilder$9, "htmlBuilder$9");
+ __name(mathmlBuilder$8, "mathmlBuilder$8");
+ defineFunction({
+ type: "mclass",
+ names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"],
+ props: {
+ numArgs: 1,
+ primitive: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var body = args[0];
+ return {
+ type: "mclass",
+ mode: parser22.mode,
+ mclass: "m" + funcName.slice(5),
+ // TODO(kevinb): don't prefix with 'm'
+ body: ordargument(body),
+ isCharacterBox: utils.isCharacterBox(body)
+ };
+ },
+ htmlBuilder: htmlBuilder$9,
+ mathmlBuilder: mathmlBuilder$8
+ });
+ binrelClass = /* @__PURE__ */ __name((arg) => {
+ var atom2 = arg.type === "ordgroup" && arg.body.length ? arg.body[0] : arg;
+ if (atom2.type === "atom" && (atom2.family === "bin" || atom2.family === "rel")) {
+ return "m" + atom2.family;
} else {
- body.appendChild(importedNode);
+ return "mord";
+ }
+ }, "binrelClass");
+ defineFunction({
+ type: "mclass",
+ names: ["\\@binrel"],
+ props: {
+ numArgs: 2
+ },
+ handler(_ref2, args) {
+ var {
+ parser: parser22
+ } = _ref2;
+ return {
+ type: "mclass",
+ mode: parser22.mode,
+ mclass: binrelClass(args[0]),
+ body: ordargument(args[1]),
+ isCharacterBox: utils.isCharacterBox(args[1])
+ };
}
- } else {
- if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
- dirty.indexOf("<") === -1) {
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
+ });
+ defineFunction({
+ type: "mclass",
+ names: ["\\stackrel", "\\overset", "\\underset"],
+ props: {
+ numArgs: 2
+ },
+ handler(_ref3, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref3;
+ var baseArg = args[1];
+ var shiftedArg = args[0];
+ var mclass;
+ if (funcName !== "\\stackrel") {
+ mclass = binrelClass(baseArg);
+ } else {
+ mclass = "mrel";
+ }
+ var baseOp = {
+ type: "op",
+ mode: baseArg.mode,
+ limits: true,
+ alwaysHandleSupSub: true,
+ parentIsSupSub: false,
+ symbol: false,
+ suppressBaseShift: funcName !== "\\stackrel",
+ body: ordargument(baseArg)
+ };
+ var supsub = {
+ type: "supsub",
+ mode: shiftedArg.mode,
+ base: baseOp,
+ sup: funcName === "\\underset" ? null : shiftedArg,
+ sub: funcName === "\\underset" ? shiftedArg : null
+ };
+ return {
+ type: "mclass",
+ mode: parser22.mode,
+ mclass,
+ body: [supsub],
+ isCharacterBox: utils.isCharacterBox(supsub)
+ };
+ },
+ htmlBuilder: htmlBuilder$9,
+ mathmlBuilder: mathmlBuilder$8
+ });
+ defineFunction({
+ type: "pmb",
+ names: ["\\pmb"],
+ props: {
+ numArgs: 1,
+ allowedInText: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ return {
+ type: "pmb",
+ mode: parser22.mode,
+ mclass: binrelClass(args[0]),
+ body: ordargument(args[0])
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var elements3 = buildExpression$1(group2.body, options3, true);
+ var node2 = buildCommon.makeSpan([group2.mclass], elements3, options3);
+ node2.style.textShadow = "0.02em 0.01em 0.04px";
+ return node2;
+ },
+ mathmlBuilder(group2, style3) {
+ var inner2 = buildExpression2(group2.body, style3);
+ var node2 = new mathMLTree.MathNode("mstyle", inner2);
+ node2.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px");
+ return node2;
}
- body = _initDocument(dirty);
- if (!body) {
- return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
+ });
+ cdArrowFunctionName = {
+ ">": "\\\\cdrightarrow",
+ "<": "\\\\cdleftarrow",
+ "=": "\\\\cdlongequal",
+ "A": "\\uparrow",
+ "V": "\\downarrow",
+ "|": "\\Vert",
+ ".": "no arrow"
+ };
+ newCell = /* @__PURE__ */ __name(() => {
+ return {
+ type: "styling",
+ body: [],
+ mode: "math",
+ style: "display"
+ };
+ }, "newCell");
+ isStartOfArrow = /* @__PURE__ */ __name((node2) => {
+ return node2.type === "textord" && node2.text === "@";
+ }, "isStartOfArrow");
+ isLabelEnd = /* @__PURE__ */ __name((node2, endChar) => {
+ return (node2.type === "mathord" || node2.type === "atom") && node2.text === endChar;
+ }, "isLabelEnd");
+ __name(cdArrow, "cdArrow");
+ __name(parseCD, "parseCD");
+ defineFunction({
+ type: "cdlabel",
+ names: ["\\\\cdleft", "\\\\cdright"],
+ props: {
+ numArgs: 1
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ return {
+ type: "cdlabel",
+ mode: parser22.mode,
+ side: funcName.slice(4),
+ label: args[0]
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var newOptions = options3.havingStyle(options3.style.sup());
+ var label = buildCommon.wrapFragment(buildGroup$1(group2.label, newOptions, options3), options3);
+ label.classes.push("cd-label-" + group2.side);
+ label.style.bottom = makeEm(0.8 - label.depth);
+ label.height = 0;
+ label.depth = 0;
+ return label;
+ },
+ mathmlBuilder(group2, options3) {
+ var label = new mathMLTree.MathNode("mrow", [buildGroup2(group2.label, options3)]);
+ label = new mathMLTree.MathNode("mpadded", [label]);
+ label.setAttribute("width", "0");
+ if (group2.side === "left") {
+ label.setAttribute("lspace", "-1width");
+ }
+ label.setAttribute("voffset", "0.7em");
+ label = new mathMLTree.MathNode("mstyle", [label]);
+ label.setAttribute("displaystyle", "false");
+ label.setAttribute("scriptlevel", "1");
+ return label;
}
- }
- if (body && FORCE_BODY) {
- _forceRemove(body.firstChild);
- }
- const nodeIterator = _createIterator(IN_PLACE ? dirty : body);
- while (currentNode = nodeIterator.nextNode()) {
- if (_sanitizeElements(currentNode)) {
- continue;
+ });
+ defineFunction({
+ type: "cdlabelparent",
+ names: ["\\\\cdparent"],
+ props: {
+ numArgs: 1
+ },
+ handler(_ref2, args) {
+ var {
+ parser: parser22
+ } = _ref2;
+ return {
+ type: "cdlabelparent",
+ mode: parser22.mode,
+ fragment: args[0]
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var parent4 = buildCommon.wrapFragment(buildGroup$1(group2.fragment, options3), options3);
+ parent4.classes.push("cd-vert-arrow");
+ return parent4;
+ },
+ mathmlBuilder(group2, options3) {
+ return new mathMLTree.MathNode("mrow", [buildGroup2(group2.fragment, options3)]);
}
- if (currentNode.content instanceof DocumentFragment) {
- _sanitizeShadowDOM(currentNode.content);
+ });
+ defineFunction({
+ type: "textord",
+ names: ["\\@char"],
+ props: {
+ numArgs: 1,
+ allowedInText: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ var arg = assertNodeType(args[0], "ordgroup");
+ var group2 = arg.body;
+ var number7 = "";
+ for (var i2 = 0; i2 < group2.length; i2++) {
+ var node2 = assertNodeType(group2[i2], "textord");
+ number7 += node2.text;
+ }
+ var code = parseInt(number7);
+ var text2;
+ if (isNaN(code)) {
+ throw new ParseError("\\@char has non-numeric argument " + number7);
+ } else if (code < 0 || code >= 1114111) {
+ throw new ParseError("\\@char with invalid code point " + number7);
+ } else if (code <= 65535) {
+ text2 = String.fromCharCode(code);
+ } else {
+ code -= 65536;
+ text2 = String.fromCharCode((code >> 10) + 55296, (code & 1023) + 56320);
+ }
+ return {
+ type: "textord",
+ mode: parser22.mode,
+ text: text2
+ };
}
- _sanitizeAttributes(currentNode);
- }
- if (IN_PLACE) {
- return dirty;
- }
- if (RETURN_DOM) {
- if (RETURN_DOM_FRAGMENT) {
- returnNode = createDocumentFragment.call(body.ownerDocument);
- while (body.firstChild) {
- returnNode.appendChild(body.firstChild);
+ });
+ htmlBuilder$8 = /* @__PURE__ */ __name((group2, options3) => {
+ var elements3 = buildExpression$1(group2.body, options3.withColor(group2.color), false);
+ return buildCommon.makeFragment(elements3);
+ }, "htmlBuilder$8");
+ mathmlBuilder$7 = /* @__PURE__ */ __name((group2, options3) => {
+ var inner2 = buildExpression2(group2.body, options3.withColor(group2.color));
+ var node2 = new mathMLTree.MathNode("mstyle", inner2);
+ node2.setAttribute("mathcolor", group2.color);
+ return node2;
+ }, "mathmlBuilder$7");
+ defineFunction({
+ type: "color",
+ names: ["\\textcolor"],
+ props: {
+ numArgs: 2,
+ allowedInText: true,
+ argTypes: ["color", "original"]
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ var color2 = assertNodeType(args[0], "color-token").color;
+ var body = args[1];
+ return {
+ type: "color",
+ mode: parser22.mode,
+ color: color2,
+ body: ordargument(body)
+ };
+ },
+ htmlBuilder: htmlBuilder$8,
+ mathmlBuilder: mathmlBuilder$7
+ });
+ defineFunction({
+ type: "color",
+ names: ["\\color"],
+ props: {
+ numArgs: 1,
+ allowedInText: true,
+ argTypes: ["color"]
+ },
+ handler(_ref2, args) {
+ var {
+ parser: parser22,
+ breakOnTokenText
+ } = _ref2;
+ var color2 = assertNodeType(args[0], "color-token").color;
+ parser22.gullet.macros.set("\\current@color", color2);
+ var body = parser22.parseExpression(true, breakOnTokenText);
+ return {
+ type: "color",
+ mode: parser22.mode,
+ color: color2,
+ body
+ };
+ },
+ htmlBuilder: htmlBuilder$8,
+ mathmlBuilder: mathmlBuilder$7
+ });
+ defineFunction({
+ type: "cr",
+ names: ["\\\\"],
+ props: {
+ numArgs: 0,
+ numOptionalArgs: 0,
+ allowedInText: true
+ },
+ handler(_ref, args, optArgs) {
+ var {
+ parser: parser22
+ } = _ref;
+ var size5 = parser22.gullet.future().text === "[" ? parser22.parseSizeGroup(true) : null;
+ var newLine = !parser22.settings.displayMode || !parser22.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode");
+ return {
+ type: "cr",
+ mode: parser22.mode,
+ newLine,
+ size: size5 && assertNodeType(size5, "size").value
+ };
+ },
+ // The following builders are called only at the top level,
+ // not within tabular/array environments.
+ htmlBuilder(group2, options3) {
+ var span = buildCommon.makeSpan(["mspace"], [], options3);
+ if (group2.newLine) {
+ span.classes.push("newline");
+ if (group2.size) {
+ span.style.marginTop = makeEm(calculateSize2(group2.size, options3));
+ }
}
- } else {
- returnNode = body;
+ return span;
+ },
+ mathmlBuilder(group2, options3) {
+ var node2 = new mathMLTree.MathNode("mspace");
+ if (group2.newLine) {
+ node2.setAttribute("linebreak", "newline");
+ if (group2.size) {
+ node2.setAttribute("height", makeEm(calculateSize2(group2.size, options3)));
+ }
+ }
+ return node2;
}
- if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {
- returnNode = importNode.call(originalDocument, returnNode, true);
+ });
+ globalMap = {
+ "\\global": "\\global",
+ "\\long": "\\\\globallong",
+ "\\\\globallong": "\\\\globallong",
+ "\\def": "\\gdef",
+ "\\gdef": "\\gdef",
+ "\\edef": "\\xdef",
+ "\\xdef": "\\xdef",
+ "\\let": "\\\\globallet",
+ "\\futurelet": "\\\\globalfuture"
+ };
+ checkControlSequence = /* @__PURE__ */ __name((tok) => {
+ var name = tok.text;
+ if (/^(?:[\\{}$^_]|EOF)$/.test(name)) {
+ throw new ParseError("Expected a control sequence", tok);
+ }
+ return name;
+ }, "checkControlSequence");
+ getRHS = /* @__PURE__ */ __name((parser22) => {
+ var tok = parser22.gullet.popToken();
+ if (tok.text === "=") {
+ tok = parser22.gullet.popToken();
+ if (tok.text === " ") {
+ tok = parser22.gullet.popToken();
+ }
+ }
+ return tok;
+ }, "getRHS");
+ letCommand = /* @__PURE__ */ __name((parser22, name, tok, global2) => {
+ var macro = parser22.gullet.macros.get(tok.text);
+ if (macro == null) {
+ tok.noexpand = true;
+ macro = {
+ tokens: [tok],
+ numArgs: 0,
+ // reproduce the same behavior in expansion
+ unexpandable: !parser22.gullet.isExpandable(tok.text)
+ };
}
- return returnNode;
- }
- let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
- if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
- serializedHTML = "\n" + serializedHTML;
- }
- if (SAFE_FOR_TEMPLATES) {
- serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR2, " ");
- serializedHTML = stringReplace(serializedHTML, ERB_EXPR2, " ");
- serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR2, " ");
- }
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
- };
- DOMPurify.setConfig = function(cfg) {
- _parseConfig(cfg);
- SET_CONFIG = true;
- };
- DOMPurify.clearConfig = function() {
- CONFIG = null;
- SET_CONFIG = false;
- };
- DOMPurify.isValidAttribute = function(tag, attr, value) {
- if (!CONFIG) {
- _parseConfig({});
- }
- const lcTag = transformCaseFunc(tag);
- const lcName = transformCaseFunc(attr);
- return _isValidAttribute(lcTag, lcName, value);
- };
- DOMPurify.addHook = function(entryPoint, hookFunction) {
- if (typeof hookFunction !== "function") {
- return;
- }
- hooks[entryPoint] = hooks[entryPoint] || [];
- arrayPush$1(hooks[entryPoint], hookFunction);
- };
- DOMPurify.removeHook = function(entryPoint) {
- if (hooks[entryPoint]) {
- return arrayPop(hooks[entryPoint]);
- }
- };
- DOMPurify.removeHooks = function(entryPoint) {
- if (hooks[entryPoint]) {
- hooks[entryPoint] = [];
- }
- };
- DOMPurify.removeAllHooks = function() {
- hooks = {};
- };
- return DOMPurify;
- }
- var purify = createDOMPurify();
- const lineBreakRegex = /
/gi;
- const getRows = (s) => {
- if (!s) {
- return [""];
- }
- const str2 = breakToPlaceholder(s).replace(/\\n/g, "#br#");
- return str2.split("#br#");
- };
- const removeScript = (txt) => {
- return purify.sanitize(txt);
- };
- const sanitizeMore = (text2, config2) => {
- var _a;
- if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) {
- const level = config2.securityLevel;
- if (level === "antiscript" || level === "strict") {
- text2 = removeScript(text2);
- } else if (level !== "loose") {
- text2 = breakToPlaceholder(text2);
- text2 = text2.replace(//g, ">");
- text2 = text2.replace(/=/g, "=");
- text2 = placeholderToBreak(text2);
- }
- }
- return text2;
- };
- const sanitizeText$7 = (text2, config2) => {
- if (!text2) {
- return text2;
- }
- if (config2.dompurifyConfig) {
- text2 = purify.sanitize(sanitizeMore(text2, config2), config2.dompurifyConfig).toString();
- } else {
- text2 = purify.sanitize(sanitizeMore(text2, config2), {
- FORBID_TAGS: ["style"]
- }).toString();
- }
- return text2;
- };
- const sanitizeTextOrArray = (a, config2) => {
- if (typeof a === "string") {
- return sanitizeText$7(a, config2);
- }
- return a.flat().map((x2) => sanitizeText$7(x2, config2));
- };
- const hasBreaks = (text2) => {
- return lineBreakRegex.test(text2);
- };
- const splitBreaks = (text2) => {
- return text2.split(lineBreakRegex);
- };
- const placeholderToBreak = (s) => {
- return s.replace(/#br#/g, "
");
- };
- const breakToPlaceholder = (s) => {
- return s.replace(lineBreakRegex, "#br#");
- };
- const getUrl = (useAbsolute) => {
- let url = "";
- if (useAbsolute) {
- url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
- url = url.replaceAll(/\(/g, "\\(");
- url = url.replaceAll(/\)/g, "\\)");
- }
- return url;
- };
- const evaluate = (val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true;
- const parseGenericTypes = function(text2) {
- let cleanedText = text2;
- if (text2.split("~").length - 1 >= 2) {
- let newCleanedText = cleanedText;
- do {
- cleanedText = newCleanedText;
- newCleanedText = cleanedText.replace(/~([^\s,:;]+)~/, "<$1>");
- } while (newCleanedText != cleanedText);
- return parseGenericTypes(newCleanedText);
- } else {
- return cleanedText;
- }
- };
- const common$1 = {
- getRows,
- sanitizeText: sanitizeText$7,
- sanitizeTextOrArray,
- hasBreaks,
- splitBreaks,
- lineBreakRegex,
- removeScript,
- getUrl,
- evaluate
- };
- const Channel = {
- /* CLAMP */
- min: {
- r: 0,
- g: 0,
- b: 0,
- s: 0,
- l: 0,
- a: 0
- },
- max: {
- r: 255,
- g: 255,
- b: 255,
- h: 360,
- s: 100,
- l: 100,
- a: 1
- },
- clamp: {
- r: (r) => r >= 255 ? 255 : r < 0 ? 0 : r,
- g: (g) => g >= 255 ? 255 : g < 0 ? 0 : g,
- b: (b) => b >= 255 ? 255 : b < 0 ? 0 : b,
- h: (h) => h % 360,
- s: (s) => s >= 100 ? 100 : s < 0 ? 0 : s,
- l: (l) => l >= 100 ? 100 : l < 0 ? 0 : l,
- a: (a) => a >= 1 ? 1 : a < 0 ? 0 : a
- },
- /* CONVERSION */
- //SOURCE: https://planetcalc.com/7779
- toLinear: (c2) => {
- const n = c2 / 255;
- return c2 > 0.03928 ? Math.pow((n + 0.055) / 1.055, 2.4) : n / 12.92;
- },
- //SOURCE: https://gist.github.com/mjackson/5311256
- hue2rgb: (p, q, t4) => {
- if (t4 < 0)
- t4 += 1;
- if (t4 > 1)
- t4 -= 1;
- if (t4 < 1 / 6)
- return p + (q - p) * 6 * t4;
- if (t4 < 1 / 2)
- return q;
- if (t4 < 2 / 3)
- return p + (q - p) * (2 / 3 - t4) * 6;
- return p;
- },
- hsl2rgb: ({ h, s, l }, channel2) => {
- if (!s)
- return l * 2.55;
- h /= 360;
- s /= 100;
- l /= 100;
- const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
- const p = 2 * l - q;
- switch (channel2) {
- case "r":
- return Channel.hue2rgb(p, q, h + 1 / 3) * 255;
- case "g":
- return Channel.hue2rgb(p, q, h) * 255;
- case "b":
- return Channel.hue2rgb(p, q, h - 1 / 3) * 255;
- }
- },
- rgb2hsl: ({ r, g, b }, channel2) => {
- r /= 255;
- g /= 255;
- b /= 255;
- const max2 = Math.max(r, g, b);
- const min2 = Math.min(r, g, b);
- const l = (max2 + min2) / 2;
- if (channel2 === "l")
- return l * 100;
- if (max2 === min2)
- return 0;
- const d = max2 - min2;
- const s = l > 0.5 ? d / (2 - max2 - min2) : d / (max2 + min2);
- if (channel2 === "s")
- return s * 100;
- switch (max2) {
- case r:
- return ((g - b) / d + (g < b ? 6 : 0)) * 60;
- case g:
- return ((b - r) / d + 2) * 60;
- case b:
- return ((r - g) / d + 4) * 60;
- default:
- return -1;
- }
- }
- };
- const channel = Channel;
- const Lang = {
- /* API */
- clamp: (number2, lower2, upper) => {
- if (lower2 > upper)
- return Math.min(lower2, Math.max(upper, number2));
- return Math.min(upper, Math.max(lower2, number2));
- },
- round: (number2) => {
- return Math.round(number2 * 1e10) / 1e10;
- }
- };
- const lang = Lang;
- const Unit = {
- /* API */
- dec2hex: (dec) => {
- const hex2 = Math.round(dec).toString(16);
- return hex2.length > 1 ? hex2 : `0${hex2}`;
- }
- };
- const unit = Unit;
- const Utils = {
- channel,
- lang,
- unit
- };
- const _ = Utils;
- const DEC2HEX = {};
- for (let i2 = 0; i2 <= 255; i2++)
- DEC2HEX[i2] = _.unit.dec2hex(i2);
- const TYPE = {
- ALL: 0,
- RGB: 1,
- HSL: 2
- };
- class Type {
- constructor() {
- this.type = TYPE.ALL;
- }
- /* API */
- get() {
- return this.type;
- }
- set(type2) {
- if (this.type && this.type !== type2)
- throw new Error("Cannot change both RGB and HSL channels at the same time");
- this.type = type2;
- }
- reset() {
- this.type = TYPE.ALL;
- }
- is(type2) {
- return this.type === type2;
- }
- }
- const Type$2 = Type;
- class Channels {
- /* CONSTRUCTOR */
- constructor(data, color2) {
- this.color = color2;
- this.changed = false;
- this.data = data;
- this.type = new Type$2();
- }
- /* API */
- set(data, color2) {
- this.color = color2;
- this.changed = false;
- this.data = data;
- this.type.type = TYPE.ALL;
- return this;
- }
- /* HELPERS */
- _ensureHSL() {
- const data = this.data;
- const { h, s, l } = data;
- if (h === void 0)
- data.h = _.channel.rgb2hsl(data, "h");
- if (s === void 0)
- data.s = _.channel.rgb2hsl(data, "s");
- if (l === void 0)
- data.l = _.channel.rgb2hsl(data, "l");
- }
- _ensureRGB() {
- const data = this.data;
- const { r, g, b } = data;
- if (r === void 0)
- data.r = _.channel.hsl2rgb(data, "r");
- if (g === void 0)
- data.g = _.channel.hsl2rgb(data, "g");
- if (b === void 0)
- data.b = _.channel.hsl2rgb(data, "b");
- }
- /* GETTERS */
- get r() {
- const data = this.data;
- const r = data.r;
- if (!this.type.is(TYPE.HSL) && r !== void 0)
- return r;
- this._ensureHSL();
- return _.channel.hsl2rgb(data, "r");
- }
- get g() {
- const data = this.data;
- const g = data.g;
- if (!this.type.is(TYPE.HSL) && g !== void 0)
- return g;
- this._ensureHSL();
- return _.channel.hsl2rgb(data, "g");
- }
- get b() {
- const data = this.data;
- const b = data.b;
- if (!this.type.is(TYPE.HSL) && b !== void 0)
- return b;
- this._ensureHSL();
- return _.channel.hsl2rgb(data, "b");
- }
- get h() {
- const data = this.data;
- const h = data.h;
- if (!this.type.is(TYPE.RGB) && h !== void 0)
- return h;
- this._ensureRGB();
- return _.channel.rgb2hsl(data, "h");
- }
- get s() {
- const data = this.data;
- const s = data.s;
- if (!this.type.is(TYPE.RGB) && s !== void 0)
- return s;
- this._ensureRGB();
- return _.channel.rgb2hsl(data, "s");
- }
- get l() {
- const data = this.data;
- const l = data.l;
- if (!this.type.is(TYPE.RGB) && l !== void 0)
- return l;
- this._ensureRGB();
- return _.channel.rgb2hsl(data, "l");
- }
- get a() {
- return this.data.a;
- }
- /* SETTERS */
- set r(r) {
- this.type.set(TYPE.RGB);
- this.changed = true;
- this.data.r = r;
- }
- set g(g) {
- this.type.set(TYPE.RGB);
- this.changed = true;
- this.data.g = g;
- }
- set b(b) {
- this.type.set(TYPE.RGB);
- this.changed = true;
- this.data.b = b;
- }
- set h(h) {
- this.type.set(TYPE.HSL);
- this.changed = true;
- this.data.h = h;
- }
- set s(s) {
- this.type.set(TYPE.HSL);
- this.changed = true;
- this.data.s = s;
- }
- set l(l) {
- this.type.set(TYPE.HSL);
- this.changed = true;
- this.data.l = l;
- }
- set a(a) {
- this.changed = true;
- this.data.a = a;
- }
- }
- const Channels$1 = Channels;
- const channels = new Channels$1({ r: 0, g: 0, b: 0, a: 0 }, "transparent");
- const ChannelsReusable = channels;
- const Hex = {
- /* VARIABLES */
- re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
- /* API */
- parse: (color2) => {
- if (color2.charCodeAt(0) !== 35)
- return;
- const match = color2.match(Hex.re);
- if (!match)
- return;
- const hex2 = match[1];
- const dec = parseInt(hex2, 16);
- const length2 = hex2.length;
- const hasAlpha = length2 % 4 === 0;
- const isFullLength = length2 > 4;
- const multiplier = isFullLength ? 1 : 17;
- const bits = isFullLength ? 8 : 4;
- const bitsOffset = hasAlpha ? 0 : -1;
- const mask = isFullLength ? 255 : 15;
- return ChannelsReusable.set({
- r: (dec >> bits * (bitsOffset + 3) & mask) * multiplier,
- g: (dec >> bits * (bitsOffset + 2) & mask) * multiplier,
- b: (dec >> bits * (bitsOffset + 1) & mask) * multiplier,
- a: hasAlpha ? (dec & mask) * multiplier / 255 : 1
- }, color2);
- },
- stringify: (channels2) => {
- const { r, g, b, a } = channels2;
- if (a < 1) {
- return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;
- } else {
- return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;
- }
- }
- };
- const Hex$1 = Hex;
- const HSL = {
- /* VARIABLES */
- re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
- hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
- /* HELPERS */
- _hue2deg: (hue2) => {
- const match = hue2.match(HSL.hueRe);
- if (match) {
- const [, number2, unit2] = match;
- switch (unit2) {
- case "grad":
- return _.channel.clamp.h(parseFloat(number2) * 0.9);
- case "rad":
- return _.channel.clamp.h(parseFloat(number2) * 180 / Math.PI);
- case "turn":
- return _.channel.clamp.h(parseFloat(number2) * 360);
- }
- }
- return _.channel.clamp.h(parseFloat(hue2));
- },
- /* API */
- parse: (color2) => {
- const charCode = color2.charCodeAt(0);
- if (charCode !== 104 && charCode !== 72)
- return;
- const match = color2.match(HSL.re);
- if (!match)
- return;
- const [, h, s, l, a, isAlphaPercentage] = match;
- return ChannelsReusable.set({
- h: HSL._hue2deg(h),
- s: _.channel.clamp.s(parseFloat(s)),
- l: _.channel.clamp.l(parseFloat(l)),
- a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
- }, color2);
- },
- stringify: (channels2) => {
- const { h, s, l, a } = channels2;
- if (a < 1) {
- return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;
- } else {
- return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;
- }
- }
- };
- const HSL$1 = HSL;
- const Keyword = {
- /* VARIABLES */
- colors: {
- aliceblue: "#f0f8ff",
- antiquewhite: "#faebd7",
- aqua: "#00ffff",
- aquamarine: "#7fffd4",
- azure: "#f0ffff",
- beige: "#f5f5dc",
- bisque: "#ffe4c4",
- black: "#000000",
- blanchedalmond: "#ffebcd",
- blue: "#0000ff",
- blueviolet: "#8a2be2",
- brown: "#a52a2a",
- burlywood: "#deb887",
- cadetblue: "#5f9ea0",
- chartreuse: "#7fff00",
- chocolate: "#d2691e",
- coral: "#ff7f50",
- cornflowerblue: "#6495ed",
- cornsilk: "#fff8dc",
- crimson: "#dc143c",
- cyanaqua: "#00ffff",
- darkblue: "#00008b",
- darkcyan: "#008b8b",
- darkgoldenrod: "#b8860b",
- darkgray: "#a9a9a9",
- darkgreen: "#006400",
- darkgrey: "#a9a9a9",
- darkkhaki: "#bdb76b",
- darkmagenta: "#8b008b",
- darkolivegreen: "#556b2f",
- darkorange: "#ff8c00",
- darkorchid: "#9932cc",
- darkred: "#8b0000",
- darksalmon: "#e9967a",
- darkseagreen: "#8fbc8f",
- darkslateblue: "#483d8b",
- darkslategray: "#2f4f4f",
- darkslategrey: "#2f4f4f",
- darkturquoise: "#00ced1",
- darkviolet: "#9400d3",
- deeppink: "#ff1493",
- deepskyblue: "#00bfff",
- dimgray: "#696969",
- dimgrey: "#696969",
- dodgerblue: "#1e90ff",
- firebrick: "#b22222",
- floralwhite: "#fffaf0",
- forestgreen: "#228b22",
- fuchsia: "#ff00ff",
- gainsboro: "#dcdcdc",
- ghostwhite: "#f8f8ff",
- gold: "#ffd700",
- goldenrod: "#daa520",
- gray: "#808080",
- green: "#008000",
- greenyellow: "#adff2f",
- grey: "#808080",
- honeydew: "#f0fff0",
- hotpink: "#ff69b4",
- indianred: "#cd5c5c",
- indigo: "#4b0082",
- ivory: "#fffff0",
- khaki: "#f0e68c",
- lavender: "#e6e6fa",
- lavenderblush: "#fff0f5",
- lawngreen: "#7cfc00",
- lemonchiffon: "#fffacd",
- lightblue: "#add8e6",
- lightcoral: "#f08080",
- lightcyan: "#e0ffff",
- lightgoldenrodyellow: "#fafad2",
- lightgray: "#d3d3d3",
- lightgreen: "#90ee90",
- lightgrey: "#d3d3d3",
- lightpink: "#ffb6c1",
- lightsalmon: "#ffa07a",
- lightseagreen: "#20b2aa",
- lightskyblue: "#87cefa",
- lightslategray: "#778899",
- lightslategrey: "#778899",
- lightsteelblue: "#b0c4de",
- lightyellow: "#ffffe0",
- lime: "#00ff00",
- limegreen: "#32cd32",
- linen: "#faf0e6",
- magenta: "#ff00ff",
- maroon: "#800000",
- mediumaquamarine: "#66cdaa",
- mediumblue: "#0000cd",
- mediumorchid: "#ba55d3",
- mediumpurple: "#9370db",
- mediumseagreen: "#3cb371",
- mediumslateblue: "#7b68ee",
- mediumspringgreen: "#00fa9a",
- mediumturquoise: "#48d1cc",
- mediumvioletred: "#c71585",
- midnightblue: "#191970",
- mintcream: "#f5fffa",
- mistyrose: "#ffe4e1",
- moccasin: "#ffe4b5",
- navajowhite: "#ffdead",
- navy: "#000080",
- oldlace: "#fdf5e6",
- olive: "#808000",
- olivedrab: "#6b8e23",
- orange: "#ffa500",
- orangered: "#ff4500",
- orchid: "#da70d6",
- palegoldenrod: "#eee8aa",
- palegreen: "#98fb98",
- paleturquoise: "#afeeee",
- palevioletred: "#db7093",
- papayawhip: "#ffefd5",
- peachpuff: "#ffdab9",
- peru: "#cd853f",
- pink: "#ffc0cb",
- plum: "#dda0dd",
- powderblue: "#b0e0e6",
- purple: "#800080",
- rebeccapurple: "#663399",
- red: "#ff0000",
- rosybrown: "#bc8f8f",
- royalblue: "#4169e1",
- saddlebrown: "#8b4513",
- salmon: "#fa8072",
- sandybrown: "#f4a460",
- seagreen: "#2e8b57",
- seashell: "#fff5ee",
- sienna: "#a0522d",
- silver: "#c0c0c0",
- skyblue: "#87ceeb",
- slateblue: "#6a5acd",
- slategray: "#708090",
- slategrey: "#708090",
- snow: "#fffafa",
- springgreen: "#00ff7f",
- tan: "#d2b48c",
- teal: "#008080",
- thistle: "#d8bfd8",
- transparent: "#00000000",
- turquoise: "#40e0d0",
- violet: "#ee82ee",
- wheat: "#f5deb3",
- white: "#ffffff",
- whitesmoke: "#f5f5f5",
- yellow: "#ffff00",
- yellowgreen: "#9acd32"
- },
- /* API */
- parse: (color2) => {
- color2 = color2.toLowerCase();
- const hex2 = Keyword.colors[color2];
- if (!hex2)
- return;
- return Hex$1.parse(hex2);
- },
- stringify: (channels2) => {
- const hex2 = Hex$1.stringify(channels2);
- for (const name2 in Keyword.colors) {
- if (Keyword.colors[name2] === hex2)
- return name2;
- }
- return;
- }
- };
- const Keyword$1 = Keyword;
- const RGB = {
- /* VARIABLES */
- re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
- /* API */
- parse: (color2) => {
- const charCode = color2.charCodeAt(0);
- if (charCode !== 114 && charCode !== 82)
- return;
- const match = color2.match(RGB.re);
- if (!match)
- return;
- const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;
- return ChannelsReusable.set({
- r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),
- g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),
- b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),
- a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
- }, color2);
- },
- stringify: (channels2) => {
- const { r, g, b, a } = channels2;
- if (a < 1) {
- return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;
- } else {
- return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;
- }
- }
- };
- const RGB$1 = RGB;
- const Color = {
- /* VARIABLES */
- format: {
- keyword: Keyword$1,
- hex: Hex$1,
- rgb: RGB$1,
- rgba: RGB$1,
- hsl: HSL$1,
- hsla: HSL$1
- },
- /* API */
- parse: (color2) => {
- if (typeof color2 !== "string")
- return color2;
- const channels2 = Hex$1.parse(color2) || RGB$1.parse(color2) || HSL$1.parse(color2) || Keyword$1.parse(color2);
- if (channels2)
- return channels2;
- throw new Error(`Unsupported color format: "${color2}"`);
- },
- stringify: (channels2) => {
- if (!channels2.changed && channels2.color)
- return channels2.color;
- if (channels2.type.is(TYPE.HSL) || channels2.data.r === void 0) {
- return HSL$1.stringify(channels2);
- } else if (channels2.a < 1 || !Number.isInteger(channels2.r) || !Number.isInteger(channels2.g) || !Number.isInteger(channels2.b)) {
- return RGB$1.stringify(channels2);
- } else {
- return Hex$1.stringify(channels2);
- }
- }
- };
- const Color$1 = Color;
- const change = (color2, channels2) => {
- const ch = Color$1.parse(color2);
- for (const c2 in channels2) {
- ch[c2] = _.channel.clamp[c2](channels2[c2]);
- }
- return Color$1.stringify(ch);
- };
- const change$1 = change;
- const rgba = (r, g, b = 0, a = 1) => {
- if (typeof r !== "number")
- return change$1(r, { a: g });
- const channels2 = ChannelsReusable.set({
- r: _.channel.clamp.r(r),
- g: _.channel.clamp.g(g),
- b: _.channel.clamp.b(b),
- a: _.channel.clamp.a(a)
- });
- return Color$1.stringify(channels2);
- };
- const rgba$1 = rgba;
- const luminance = (color2) => {
- const { r, g, b } = Color$1.parse(color2);
- const luminance2 = 0.2126 * _.channel.toLinear(r) + 0.7152 * _.channel.toLinear(g) + 0.0722 * _.channel.toLinear(b);
- return _.lang.round(luminance2);
- };
- const luminance$1 = luminance;
- const isLight = (color2) => {
- return luminance$1(color2) >= 0.5;
- };
- const isLight$1 = isLight;
- const isDark = (color2) => {
- return !isLight$1(color2);
- };
- const isDark$1 = isDark;
- const adjustChannel = (color2, channel2, amount) => {
- const channels2 = Color$1.parse(color2);
- const amountCurrent = channels2[channel2];
- const amountNext = _.channel.clamp[channel2](amountCurrent + amount);
- if (amountCurrent !== amountNext)
- channels2[channel2] = amountNext;
- return Color$1.stringify(channels2);
- };
- const adjustChannel$1 = adjustChannel;
- const lighten = (color2, amount) => {
- return adjustChannel$1(color2, "l", amount);
- };
- const lighten$1 = lighten;
- const darken = (color2, amount) => {
- return adjustChannel$1(color2, "l", -amount);
- };
- const darken$1 = darken;
- const adjust$1 = (color2, channels2) => {
- const ch = Color$1.parse(color2);
- const changes = {};
- for (const c2 in channels2) {
- if (!channels2[c2])
- continue;
- changes[c2] = ch[c2] + channels2[c2];
- }
- return change$1(color2, changes);
- };
- const adjust$2 = adjust$1;
- const mix = (color1, color2, weight = 50) => {
- const { r: r1, g: g1, b: b1, a: a1 } = Color$1.parse(color1);
- const { r: r2, g: g2, b: b2, a: a2 } = Color$1.parse(color2);
- const weightScale = weight / 100;
- const weightNormalized = weightScale * 2 - 1;
- const alphaDelta = a1 - a2;
- const weight1combined = weightNormalized * alphaDelta === -1 ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);
- const weight1 = (weight1combined + 1) / 2;
- const weight2 = 1 - weight1;
- const r = r1 * weight1 + r2 * weight2;
- const g = g1 * weight1 + g2 * weight2;
- const b = b1 * weight1 + b2 * weight2;
- const a = a1 * weightScale + a2 * (1 - weightScale);
- return rgba$1(r, g, b, a);
- };
- const mix$1 = mix;
- const invert = (color2, weight = 100) => {
- const inverse = Color$1.parse(color2);
- inverse.r = 255 - inverse.r;
- inverse.g = 255 - inverse.g;
- inverse.b = 255 - inverse.b;
- return mix$1(inverse, color2, weight);
- };
- const invert$1 = invert;
- const mkBorder = (col, darkMode) => darkMode ? adjust$2(col, { s: -40, l: 10 }) : adjust$2(col, { s: -40, l: -10 });
- const oldAttributeBackgroundColorOdd = "#ffffff";
- const oldAttributeBackgroundColorEven = "#f2f2f2";
- let Theme$4 = class Theme {
- constructor() {
- this.background = "#f4f4f4";
- this.primaryColor = "#fff4dd";
- this.noteBkgColor = "#fff5ad";
- this.noteTextColor = "#333";
- this.THEME_COLOR_LIMIT = 12;
- this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
- this.fontSize = "16px";
- }
- updateColors() {
- this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333");
- this.secondaryColor = this.secondaryColor || adjust$2(this.primaryColor, { h: -120 });
- this.tertiaryColor = this.tertiaryColor || adjust$2(this.primaryColor, { h: 180, l: 5 });
- this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);
- this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);
- this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);
- this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);
- this.noteBkgColor = this.noteBkgColor || "#fff5ad";
- this.noteTextColor = this.noteTextColor || "#333";
- this.secondaryTextColor = this.secondaryTextColor || invert$1(this.secondaryColor);
- this.tertiaryTextColor = this.tertiaryTextColor || invert$1(this.tertiaryColor);
- this.lineColor = this.lineColor || invert$1(this.background);
- this.arrowheadColor = this.arrowheadColor || invert$1(this.background);
- this.textColor = this.textColor || this.primaryTextColor;
- this.border2 = this.border2 || this.tertiaryBorderColor;
- this.nodeBkg = this.nodeBkg || this.primaryColor;
- this.mainBkg = this.mainBkg || this.primaryColor;
- this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
- this.clusterBkg = this.clusterBkg || this.tertiaryColor;
- this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
- this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
- this.titleColor = this.titleColor || this.tertiaryTextColor;
- this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
- this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
- this.actorBorder = this.actorBorder || this.primaryBorderColor;
- this.actorBkg = this.actorBkg || this.mainBkg;
- this.actorTextColor = this.actorTextColor || this.primaryTextColor;
- this.actorLineColor = this.actorLineColor || "grey";
- this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
- this.signalColor = this.signalColor || this.textColor;
- this.signalTextColor = this.signalTextColor || this.textColor;
- this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
- this.labelTextColor = this.labelTextColor || this.actorTextColor;
- this.loopTextColor = this.loopTextColor || this.actorTextColor;
- this.activationBorderColor = this.activationBorderColor || darken$1(this.secondaryColor, 10);
- this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
- this.sequenceNumberColor = this.sequenceNumberColor || invert$1(this.lineColor);
- this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
- this.altSectionBkgColor = this.altSectionBkgColor || "white";
- this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
- this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
- this.excludeBkgColor = this.excludeBkgColor || "#eeeeee";
- this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
- this.taskBkgColor = this.taskBkgColor || this.primaryColor;
- this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
- this.activeTaskBkgColor = this.activeTaskBkgColor || lighten$1(this.primaryColor, 23);
- this.gridColor = this.gridColor || "lightgrey";
- this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey";
- this.doneTaskBorderColor = this.doneTaskBorderColor || "grey";
- this.critBorderColor = this.critBorderColor || "#ff8888";
- this.critBkgColor = this.critBkgColor || "red";
- this.todayLineColor = this.todayLineColor || "red";
- this.taskTextColor = this.taskTextColor || this.textColor;
- this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
- this.taskTextLightColor = this.taskTextLightColor || this.textColor;
- this.taskTextColor = this.taskTextColor || this.primaryTextColor;
- this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
- this.taskTextClickableColor = this.taskTextClickableColor || "#003163";
- this.personBorder = this.personBorder || this.primaryBorderColor;
- this.personBkg = this.personBkg || this.mainBkg;
- this.transitionColor = this.transitionColor || this.lineColor;
- this.transitionLabelColor = this.transitionLabelColor || this.textColor;
- this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
- this.stateBkg = this.stateBkg || this.mainBkg;
- this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
- this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
- this.altBackground = this.altBackground || this.tertiaryColor;
- this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
- this.compositeBorder = this.compositeBorder || this.nodeBorder;
- this.innerEndBackground = this.nodeBorder;
- this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
- this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
- this.transitionColor = this.transitionColor || this.lineColor;
- this.specialStateColor = this.lineColor;
- this.cScale0 = this.cScale0 || this.primaryColor;
- this.cScale1 = this.cScale1 || this.secondaryColor;
- this.cScale2 = this.cScale2 || this.tertiaryColor;
- this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
- this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
- this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
- this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
- this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
- this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210, l: 150 });
- this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
- this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
- this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
- if (this.darkMode) {
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScale" + i2] = darken$1(this["cScale" + i2], 75);
- }
- } else {
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScale" + i2] = darken$1(this["cScale" + i2], 25);
+ parser22.gullet.macros.set(name, macro, global2);
+ }, "letCommand");
+ defineFunction({
+ type: "internal",
+ names: [
+ "\\global",
+ "\\long",
+ "\\\\globallong"
+ // can’t be entered directly
+ ],
+ props: {
+ numArgs: 0,
+ allowedInText: true
+ },
+ handler(_ref) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ parser22.consumeSpaces();
+ var token2 = parser22.fetch();
+ if (globalMap[token2.text]) {
+ if (funcName === "\\global" || funcName === "\\\\globallong") {
+ token2.text = globalMap[token2.text];
+ }
+ return assertNodeType(parser22.parseFunction(), "internal");
+ }
+ throw new ParseError("Invalid token after macro prefix", token2);
}
- }
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert$1(this["cScale" + i2]);
- }
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- if (this.darkMode) {
- this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten$1(this["cScale" + i2], 10);
- } else {
- this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 10);
- }
- }
- this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
- }
- const multiplier = this.darkMode ? -4 : -1;
- for (let i2 = 0; i2 < 5; i2++) {
- this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i2 * 3) });
- this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i2 * 3) });
- }
- this.classText = this.classText || this.textColor;
- this.fillType0 = this.fillType0 || this.primaryColor;
- this.fillType1 = this.fillType1 || this.secondaryColor;
- this.fillType2 = this.fillType2 || adjust$2(this.primaryColor, { h: 64 });
- this.fillType3 = this.fillType3 || adjust$2(this.secondaryColor, { h: 64 });
- this.fillType4 = this.fillType4 || adjust$2(this.primaryColor, { h: -64 });
- this.fillType5 = this.fillType5 || adjust$2(this.secondaryColor, { h: -64 });
- this.fillType6 = this.fillType6 || adjust$2(this.primaryColor, { h: 128 });
- this.fillType7 = this.fillType7 || adjust$2(this.secondaryColor, { h: 128 });
- this.pie1 = this.pie1 || this.primaryColor;
- this.pie2 = this.pie2 || this.secondaryColor;
- this.pie3 = this.pie3 || this.tertiaryColor;
- this.pie4 = this.pie4 || adjust$2(this.primaryColor, { l: -10 });
- this.pie5 = this.pie5 || adjust$2(this.secondaryColor, { l: -10 });
- this.pie6 = this.pie6 || adjust$2(this.tertiaryColor, { l: -10 });
- this.pie7 = this.pie7 || adjust$2(this.primaryColor, { h: 60, l: -10 });
- this.pie8 = this.pie8 || adjust$2(this.primaryColor, { h: -60, l: -10 });
- this.pie9 = this.pie9 || adjust$2(this.primaryColor, { h: 120, l: 0 });
- this.pie10 = this.pie10 || adjust$2(this.primaryColor, { h: 60, l: -20 });
- this.pie11 = this.pie11 || adjust$2(this.primaryColor, { h: -60, l: -20 });
- this.pie12 = this.pie12 || adjust$2(this.primaryColor, { h: 120, l: -10 });
- this.pieTitleTextSize = this.pieTitleTextSize || "25px";
- this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
- this.pieSectionTextSize = this.pieSectionTextSize || "17px";
- this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
- this.pieLegendTextSize = this.pieLegendTextSize || "17px";
- this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
- this.pieStrokeColor = this.pieStrokeColor || "black";
- this.pieStrokeWidth = this.pieStrokeWidth || "2px";
- this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
- this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
- this.pieOpacity = this.pieOpacity || "0.7";
- this.requirementBackground = this.requirementBackground || this.primaryColor;
- this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
- this.requirementBorderSize = this.requirementBorderSize || "1";
- this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
- this.relationColor = this.relationColor || this.lineColor;
- this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
- this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
- this.git0 = this.git0 || this.primaryColor;
- this.git1 = this.git1 || this.secondaryColor;
- this.git2 = this.git2 || this.tertiaryColor;
- this.git3 = this.git3 || adjust$2(this.primaryColor, { h: -30 });
- this.git4 = this.git4 || adjust$2(this.primaryColor, { h: -60 });
- this.git5 = this.git5 || adjust$2(this.primaryColor, { h: -90 });
- this.git6 = this.git6 || adjust$2(this.primaryColor, { h: 60 });
- this.git7 = this.git7 || adjust$2(this.primaryColor, { h: 120 });
- if (this.darkMode) {
- this.git0 = lighten$1(this.git0, 25);
- this.git1 = lighten$1(this.git1, 25);
- this.git2 = lighten$1(this.git2, 25);
- this.git3 = lighten$1(this.git3, 25);
- this.git4 = lighten$1(this.git4, 25);
- this.git5 = lighten$1(this.git5, 25);
- this.git6 = lighten$1(this.git6, 25);
- this.git7 = lighten$1(this.git7, 25);
- } else {
- this.git0 = darken$1(this.git0, 25);
- this.git1 = darken$1(this.git1, 25);
- this.git2 = darken$1(this.git2, 25);
- this.git3 = darken$1(this.git3, 25);
- this.git4 = darken$1(this.git4, 25);
- this.git5 = darken$1(this.git5, 25);
- this.git6 = darken$1(this.git6, 25);
- this.git7 = darken$1(this.git7, 25);
- }
- this.gitInv0 = this.gitInv0 || invert$1(this.git0);
- this.gitInv1 = this.gitInv1 || invert$1(this.git1);
- this.gitInv2 = this.gitInv2 || invert$1(this.git2);
- this.gitInv3 = this.gitInv3 || invert$1(this.git3);
- this.gitInv4 = this.gitInv4 || invert$1(this.git4);
- this.gitInv5 = this.gitInv5 || invert$1(this.git5);
- this.gitInv6 = this.gitInv6 || invert$1(this.git6);
- this.gitInv7 = this.gitInv7 || invert$1(this.git7);
- this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor);
- this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;
- this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;
- this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;
- this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;
- this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;
- this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;
- this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;
- this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;
- this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
- this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
- this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
- this.tagLabelFontSize = this.tagLabelFontSize || "10px";
- this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
- this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
- this.commitLabelFontSize = this.commitLabelFontSize || "10px";
- this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
- this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
- }
- calculate(overrides) {
- if (typeof overrides !== "object") {
- this.updateColors();
- return;
- }
- const keys2 = Object.keys(overrides);
- keys2.forEach((k) => {
- this[k] = overrides[k];
- });
- this.updateColors();
- keys2.forEach((k) => {
- this[k] = overrides[k];
- });
- }
- };
- const getThemeVariables$4 = (userOverrides) => {
- const theme2 = new Theme$4();
- theme2.calculate(userOverrides);
- return theme2;
- };
- let Theme$3 = class Theme {
- constructor() {
- this.background = "#333";
- this.primaryColor = "#1f2020";
- this.secondaryColor = lighten$1(this.primaryColor, 16);
- this.tertiaryColor = adjust$2(this.primaryColor, { h: -160 });
- this.primaryBorderColor = invert$1(this.background);
- this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
- this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
- this.primaryTextColor = invert$1(this.primaryColor);
- this.secondaryTextColor = invert$1(this.secondaryColor);
- this.tertiaryTextColor = invert$1(this.tertiaryColor);
- this.lineColor = invert$1(this.background);
- this.textColor = invert$1(this.background);
- this.mainBkg = "#1f2020";
- this.secondBkg = "calculated";
- this.mainContrastColor = "lightgrey";
- this.darkTextColor = lighten$1(invert$1("#323D47"), 10);
- this.lineColor = "calculated";
- this.border1 = "#81B1DB";
- this.border2 = rgba$1(255, 255, 255, 0.25);
- this.arrowheadColor = "calculated";
- this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
- this.fontSize = "16px";
- this.labelBackground = "#181818";
- this.textColor = "#ccc";
- this.THEME_COLOR_LIMIT = 12;
- this.nodeBkg = "calculated";
- this.nodeBorder = "calculated";
- this.clusterBkg = "calculated";
- this.clusterBorder = "calculated";
- this.defaultLinkColor = "calculated";
- this.titleColor = "#F9FFFE";
- this.edgeLabelBackground = "calculated";
- this.actorBorder = "calculated";
- this.actorBkg = "calculated";
- this.actorTextColor = "calculated";
- this.actorLineColor = "calculated";
- this.signalColor = "calculated";
- this.signalTextColor = "calculated";
- this.labelBoxBkgColor = "calculated";
- this.labelBoxBorderColor = "calculated";
- this.labelTextColor = "calculated";
- this.loopTextColor = "calculated";
- this.noteBorderColor = "calculated";
- this.noteBkgColor = "#fff5ad";
- this.noteTextColor = "calculated";
- this.activationBorderColor = "calculated";
- this.activationBkgColor = "calculated";
- this.sequenceNumberColor = "black";
- this.sectionBkgColor = darken$1("#EAE8D9", 30);
- this.altSectionBkgColor = "calculated";
- this.sectionBkgColor2 = "#EAE8D9";
- this.excludeBkgColor = darken$1(this.sectionBkgColor, 10);
- this.taskBorderColor = rgba$1(255, 255, 255, 70);
- this.taskBkgColor = "calculated";
- this.taskTextColor = "calculated";
- this.taskTextLightColor = "calculated";
- this.taskTextOutsideColor = "calculated";
- this.taskTextClickableColor = "#003163";
- this.activeTaskBorderColor = rgba$1(255, 255, 255, 50);
- this.activeTaskBkgColor = "#81B1DB";
- this.gridColor = "calculated";
- this.doneTaskBkgColor = "calculated";
- this.doneTaskBorderColor = "grey";
- this.critBorderColor = "#E83737";
- this.critBkgColor = "#E83737";
- this.taskTextDarkColor = "calculated";
- this.todayLineColor = "#DB5757";
- this.personBorder = this.primaryBorderColor;
- this.personBkg = this.mainBkg;
- this.labelColor = "calculated";
- this.errorBkgColor = "#a44141";
- this.errorTextColor = "#ddd";
- }
- updateColors() {
- this.secondBkg = lighten$1(this.mainBkg, 16);
- this.lineColor = this.mainContrastColor;
- this.arrowheadColor = this.mainContrastColor;
- this.nodeBkg = this.mainBkg;
- this.nodeBorder = this.border1;
- this.clusterBkg = this.secondBkg;
- this.clusterBorder = this.border2;
- this.defaultLinkColor = this.lineColor;
- this.edgeLabelBackground = lighten$1(this.labelBackground, 25);
- this.actorBorder = this.border1;
- this.actorBkg = this.mainBkg;
- this.actorTextColor = this.mainContrastColor;
- this.actorLineColor = this.mainContrastColor;
- this.signalColor = this.mainContrastColor;
- this.signalTextColor = this.mainContrastColor;
- this.labelBoxBkgColor = this.actorBkg;
- this.labelBoxBorderColor = this.actorBorder;
- this.labelTextColor = this.mainContrastColor;
- this.loopTextColor = this.mainContrastColor;
- this.noteBorderColor = this.secondaryBorderColor;
- this.noteBkgColor = this.secondBkg;
- this.noteTextColor = this.secondaryTextColor;
- this.activationBorderColor = this.border1;
- this.activationBkgColor = this.secondBkg;
- this.altSectionBkgColor = this.background;
- this.taskBkgColor = lighten$1(this.mainBkg, 23);
- this.taskTextColor = this.darkTextColor;
- this.taskTextLightColor = this.mainContrastColor;
- this.taskTextOutsideColor = this.taskTextLightColor;
- this.gridColor = this.mainContrastColor;
- this.doneTaskBkgColor = this.mainContrastColor;
- this.taskTextDarkColor = this.darkTextColor;
- this.transitionColor = this.transitionColor || this.lineColor;
- this.transitionLabelColor = this.transitionLabelColor || this.textColor;
- this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
- this.stateBkg = this.stateBkg || this.mainBkg;
- this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
- this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
- this.altBackground = this.altBackground || "#555";
- this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
- this.compositeBorder = this.compositeBorder || this.nodeBorder;
- this.innerEndBackground = this.primaryBorderColor;
- this.specialStateColor = "#f4f4f4";
- this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
- this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
- this.fillType0 = this.primaryColor;
- this.fillType1 = this.secondaryColor;
- this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
- this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
- this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
- this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
- this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
- this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
- this.cScale1 = this.cScale1 || "#0b0000";
- this.cScale2 = this.cScale2 || "#4d1037";
- this.cScale3 = this.cScale3 || "#3f5258";
- this.cScale4 = this.cScale4 || "#4f2f1b";
- this.cScale5 = this.cScale5 || "#6e0a0a";
- this.cScale6 = this.cScale6 || "#3b0048";
- this.cScale7 = this.cScale7 || "#995a01";
- this.cScale8 = this.cScale8 || "#154706";
- this.cScale9 = this.cScale9 || "#161722";
- this.cScale10 = this.cScale10 || "#00296f";
- this.cScale11 = this.cScale11 || "#01629c";
- this.cScale12 = this.cScale12 || "#010029";
- this.cScale0 = this.cScale0 || this.primaryColor;
- this.cScale1 = this.cScale1 || this.secondaryColor;
- this.cScale2 = this.cScale2 || this.tertiaryColor;
- this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
- this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
- this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
- this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
- this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
- this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210 });
- this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
- this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
- this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert$1(this["cScale" + i2]);
- }
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten$1(this["cScale" + i2], 10);
- }
- for (let i2 = 0; i2 < 5; i2++) {
- this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(-10 + i2 * 4) });
- this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(-7 + i2 * 4) });
- }
- this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
- }
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["pie" + i2] = this["cScale" + i2];
- }
- this.pieTitleTextSize = this.pieTitleTextSize || "25px";
- this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
- this.pieSectionTextSize = this.pieSectionTextSize || "17px";
- this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
- this.pieLegendTextSize = this.pieLegendTextSize || "17px";
- this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
- this.pieStrokeColor = this.pieStrokeColor || "black";
- this.pieStrokeWidth = this.pieStrokeWidth || "2px";
- this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
- this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
- this.pieOpacity = this.pieOpacity || "0.7";
- this.classText = this.primaryTextColor;
- this.requirementBackground = this.requirementBackground || this.primaryColor;
- this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
- this.requirementBorderSize = this.requirementBorderSize || "1";
- this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
- this.relationColor = this.relationColor || this.lineColor;
- this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
- this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
- this.git0 = lighten$1(this.secondaryColor, 20);
- this.git1 = lighten$1(this.pie2 || this.secondaryColor, 20);
- this.git2 = lighten$1(this.pie3 || this.tertiaryColor, 20);
- this.git3 = lighten$1(this.pie4 || adjust$2(this.primaryColor, { h: -30 }), 20);
- this.git4 = lighten$1(this.pie5 || adjust$2(this.primaryColor, { h: -60 }), 20);
- this.git5 = lighten$1(this.pie6 || adjust$2(this.primaryColor, { h: -90 }), 10);
- this.git6 = lighten$1(this.pie7 || adjust$2(this.primaryColor, { h: 60 }), 10);
- this.git7 = lighten$1(this.pie8 || adjust$2(this.primaryColor, { h: 120 }), 20);
- this.gitInv0 = this.gitInv0 || invert$1(this.git0);
- this.gitInv1 = this.gitInv1 || invert$1(this.git1);
- this.gitInv2 = this.gitInv2 || invert$1(this.git2);
- this.gitInv3 = this.gitInv3 || invert$1(this.git3);
- this.gitInv4 = this.gitInv4 || invert$1(this.git4);
- this.gitInv5 = this.gitInv5 || invert$1(this.git5);
- this.gitInv6 = this.gitInv6 || invert$1(this.git6);
- this.gitInv7 = this.gitInv7 || invert$1(this.git7);
- this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor);
- this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
- this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
- this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor);
- this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
- this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
- this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
- this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
- this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
- this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
- this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
- this.tagLabelFontSize = this.tagLabelFontSize || "10px";
- this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
- this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
- this.commitLabelFontSize = this.commitLabelFontSize || "10px";
- this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten$1(this.background, 12);
- this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten$1(this.background, 2);
- }
- calculate(overrides) {
- if (typeof overrides !== "object") {
- this.updateColors();
- return;
- }
- const keys2 = Object.keys(overrides);
- keys2.forEach((k) => {
- this[k] = overrides[k];
- });
- this.updateColors();
- keys2.forEach((k) => {
- this[k] = overrides[k];
- });
- }
- };
- const getThemeVariables$3 = (userOverrides) => {
- const theme2 = new Theme$3();
- theme2.calculate(userOverrides);
- return theme2;
- };
- let Theme$2 = class Theme {
- constructor() {
- this.background = "#f4f4f4";
- this.primaryColor = "#ECECFF";
- this.secondaryColor = adjust$2(this.primaryColor, { h: 120 });
- this.secondaryColor = "#ffffde";
- this.tertiaryColor = adjust$2(this.primaryColor, { h: -160 });
- this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
- this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
- this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
- this.primaryTextColor = invert$1(this.primaryColor);
- this.secondaryTextColor = invert$1(this.secondaryColor);
- this.tertiaryTextColor = invert$1(this.tertiaryColor);
- this.lineColor = invert$1(this.background);
- this.textColor = invert$1(this.background);
- this.background = "white";
- this.mainBkg = "#ECECFF";
- this.secondBkg = "#ffffde";
- this.lineColor = "#333333";
- this.border1 = "#9370DB";
- this.border2 = "#aaaa33";
- this.arrowheadColor = "#333333";
- this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
- this.fontSize = "16px";
- this.labelBackground = "#e8e8e8";
- this.textColor = "#333";
- this.THEME_COLOR_LIMIT = 12;
- this.nodeBkg = "calculated";
- this.nodeBorder = "calculated";
- this.clusterBkg = "calculated";
- this.clusterBorder = "calculated";
- this.defaultLinkColor = "calculated";
- this.titleColor = "calculated";
- this.edgeLabelBackground = "calculated";
- this.actorBorder = "calculated";
- this.actorBkg = "calculated";
- this.actorTextColor = "black";
- this.actorLineColor = "grey";
- this.signalColor = "calculated";
- this.signalTextColor = "calculated";
- this.labelBoxBkgColor = "calculated";
- this.labelBoxBorderColor = "calculated";
- this.labelTextColor = "calculated";
- this.loopTextColor = "calculated";
- this.noteBorderColor = "calculated";
- this.noteBkgColor = "#fff5ad";
- this.noteTextColor = "calculated";
- this.activationBorderColor = "#666";
- this.activationBkgColor = "#f4f4f4";
- this.sequenceNumberColor = "white";
- this.sectionBkgColor = "calculated";
- this.altSectionBkgColor = "calculated";
- this.sectionBkgColor2 = "calculated";
- this.excludeBkgColor = "#eeeeee";
- this.taskBorderColor = "calculated";
- this.taskBkgColor = "calculated";
- this.taskTextLightColor = "calculated";
- this.taskTextColor = this.taskTextLightColor;
- this.taskTextDarkColor = "calculated";
- this.taskTextOutsideColor = this.taskTextDarkColor;
- this.taskTextClickableColor = "calculated";
- this.activeTaskBorderColor = "calculated";
- this.activeTaskBkgColor = "calculated";
- this.gridColor = "calculated";
- this.doneTaskBkgColor = "calculated";
- this.doneTaskBorderColor = "calculated";
- this.critBorderColor = "calculated";
- this.critBkgColor = "calculated";
- this.todayLineColor = "calculated";
- this.sectionBkgColor = rgba$1(102, 102, 255, 0.49);
- this.altSectionBkgColor = "white";
- this.sectionBkgColor2 = "#fff400";
- this.taskBorderColor = "#534fbc";
- this.taskBkgColor = "#8a90dd";
- this.taskTextLightColor = "white";
- this.taskTextColor = "calculated";
- this.taskTextDarkColor = "black";
- this.taskTextOutsideColor = "calculated";
- this.taskTextClickableColor = "#003163";
- this.activeTaskBorderColor = "#534fbc";
- this.activeTaskBkgColor = "#bfc7ff";
- this.gridColor = "lightgrey";
- this.doneTaskBkgColor = "lightgrey";
- this.doneTaskBorderColor = "grey";
- this.critBorderColor = "#ff8888";
- this.critBkgColor = "red";
- this.todayLineColor = "red";
- this.personBorder = this.primaryBorderColor;
- this.personBkg = this.mainBkg;
- this.labelColor = "black";
- this.errorBkgColor = "#552222";
- this.errorTextColor = "#552222";
- this.updateColors();
- }
- updateColors() {
- this.cScale0 = this.cScale0 || this.primaryColor;
- this.cScale1 = this.cScale1 || this.secondaryColor;
- this.cScale2 = this.cScale2 || this.tertiaryColor;
- this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
- this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
- this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
- this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
- this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
- this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210 });
- this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
- this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
- this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
- this["cScalePeer1"] = this["cScalePeer1"] || darken$1(this.secondaryColor, 45);
- this["cScalePeer2"] = this["cScalePeer2"] || darken$1(this.tertiaryColor, 40);
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScale" + i2] = darken$1(this["cScale" + i2], 10);
- this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 25);
- }
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleInv" + i2] = this["cScaleInv" + i2] || adjust$2(this["cScale" + i2], { h: 180 });
- }
- for (let i2 = 0; i2 < 5; i2++) {
- this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 30, l: -(5 + i2 * 5) });
- this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 30, l: -(7 + i2 * 5) });
- }
- this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
- if (this.labelTextColor !== "calculated") {
- this.cScaleLabel0 = this.cScaleLabel0 || invert$1(this.labelTextColor);
- this.cScaleLabel3 = this.cScaleLabel3 || invert$1(this.labelTextColor);
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.labelTextColor;
- }
- }
- this.nodeBkg = this.mainBkg;
- this.nodeBorder = this.border1;
- this.clusterBkg = this.secondBkg;
- this.clusterBorder = this.border2;
- this.defaultLinkColor = this.lineColor;
- this.titleColor = this.textColor;
- this.edgeLabelBackground = this.labelBackground;
- this.actorBorder = lighten$1(this.border1, 23);
- this.actorBkg = this.mainBkg;
- this.labelBoxBkgColor = this.actorBkg;
- this.signalColor = this.textColor;
- this.signalTextColor = this.textColor;
- this.labelBoxBorderColor = this.actorBorder;
- this.labelTextColor = this.actorTextColor;
- this.loopTextColor = this.actorTextColor;
- this.noteBorderColor = this.border2;
- this.noteTextColor = this.actorTextColor;
- this.taskTextColor = this.taskTextLightColor;
- this.taskTextOutsideColor = this.taskTextDarkColor;
- this.transitionColor = this.transitionColor || this.lineColor;
- this.transitionLabelColor = this.transitionLabelColor || this.textColor;
- this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
- this.stateBkg = this.stateBkg || this.mainBkg;
- this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
- this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
- this.altBackground = this.altBackground || "#f0f0f0";
- this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
- this.compositeBorder = this.compositeBorder || this.nodeBorder;
- this.innerEndBackground = this.nodeBorder;
- this.specialStateColor = this.lineColor;
- this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
- this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
- this.transitionColor = this.transitionColor || this.lineColor;
- this.classText = this.primaryTextColor;
- this.fillType0 = this.primaryColor;
- this.fillType1 = this.secondaryColor;
- this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
- this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
- this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
- this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
- this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
- this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
- this.pie1 = this.pie1 || this.primaryColor;
- this.pie2 = this.pie2 || this.secondaryColor;
- this.pie3 = this.pie3 || adjust$2(this.tertiaryColor, { l: -40 });
- this.pie4 = this.pie4 || adjust$2(this.primaryColor, { l: -10 });
- this.pie5 = this.pie5 || adjust$2(this.secondaryColor, { l: -30 });
- this.pie6 = this.pie6 || adjust$2(this.tertiaryColor, { l: -20 });
- this.pie7 = this.pie7 || adjust$2(this.primaryColor, { h: 60, l: -20 });
- this.pie8 = this.pie8 || adjust$2(this.primaryColor, { h: -60, l: -40 });
- this.pie9 = this.pie9 || adjust$2(this.primaryColor, { h: 120, l: -40 });
- this.pie10 = this.pie10 || adjust$2(this.primaryColor, { h: 60, l: -40 });
- this.pie11 = this.pie11 || adjust$2(this.primaryColor, { h: -90, l: -40 });
- this.pie12 = this.pie12 || adjust$2(this.primaryColor, { h: 120, l: -30 });
- this.pieTitleTextSize = this.pieTitleTextSize || "25px";
- this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
- this.pieSectionTextSize = this.pieSectionTextSize || "17px";
- this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
- this.pieLegendTextSize = this.pieLegendTextSize || "17px";
- this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
- this.pieStrokeColor = this.pieStrokeColor || "black";
- this.pieStrokeWidth = this.pieStrokeWidth || "2px";
- this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
- this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
- this.pieOpacity = this.pieOpacity || "0.7";
- this.requirementBackground = this.requirementBackground || this.primaryColor;
- this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
- this.requirementBorderSize = this.requirementBorderSize || "1";
- this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
- this.relationColor = this.relationColor || this.lineColor;
- this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
- this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
- this.git0 = this.git0 || this.primaryColor;
- this.git1 = this.git1 || this.secondaryColor;
- this.git2 = this.git2 || this.tertiaryColor;
- this.git3 = this.git3 || adjust$2(this.primaryColor, { h: -30 });
- this.git4 = this.git4 || adjust$2(this.primaryColor, { h: -60 });
- this.git5 = this.git5 || adjust$2(this.primaryColor, { h: -90 });
- this.git6 = this.git6 || adjust$2(this.primaryColor, { h: 60 });
- this.git7 = this.git7 || adjust$2(this.primaryColor, { h: 120 });
- if (this.darkMode) {
- this.git0 = lighten$1(this.git0, 25);
- this.git1 = lighten$1(this.git1, 25);
- this.git2 = lighten$1(this.git2, 25);
- this.git3 = lighten$1(this.git3, 25);
- this.git4 = lighten$1(this.git4, 25);
- this.git5 = lighten$1(this.git5, 25);
- this.git6 = lighten$1(this.git6, 25);
- this.git7 = lighten$1(this.git7, 25);
- } else {
- this.git0 = darken$1(this.git0, 25);
- this.git1 = darken$1(this.git1, 25);
- this.git2 = darken$1(this.git2, 25);
- this.git3 = darken$1(this.git3, 25);
- this.git4 = darken$1(this.git4, 25);
- this.git5 = darken$1(this.git5, 25);
- this.git6 = darken$1(this.git6, 25);
- this.git7 = darken$1(this.git7, 25);
- }
- this.gitInv0 = this.gitInv0 || darken$1(invert$1(this.git0), 25);
- this.gitInv1 = this.gitInv1 || invert$1(this.git1);
- this.gitInv2 = this.gitInv2 || invert$1(this.git2);
- this.gitInv3 = this.gitInv3 || invert$1(this.git3);
- this.gitInv4 = this.gitInv4 || invert$1(this.git4);
- this.gitInv5 = this.gitInv5 || invert$1(this.git5);
- this.gitInv6 = this.gitInv6 || invert$1(this.git6);
- this.gitInv7 = this.gitInv7 || invert$1(this.git7);
- this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor);
- this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
- this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
- this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor);
- this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
- this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
- this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
- this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
- this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
- this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
- this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
- this.tagLabelFontSize = this.tagLabelFontSize || "10px";
- this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
- this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
- this.commitLabelFontSize = this.commitLabelFontSize || "10px";
- this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
- this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
- }
- calculate(overrides) {
- if (typeof overrides !== "object") {
- this.updateColors();
- return;
- }
- const keys2 = Object.keys(overrides);
- keys2.forEach((k) => {
- this[k] = overrides[k];
});
- this.updateColors();
- keys2.forEach((k) => {
- this[k] = overrides[k];
+ defineFunction({
+ type: "internal",
+ names: ["\\def", "\\gdef", "\\edef", "\\xdef"],
+ props: {
+ numArgs: 0,
+ allowedInText: true,
+ primitive: true
+ },
+ handler(_ref2) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref2;
+ var tok = parser22.gullet.popToken();
+ var name = tok.text;
+ if (/^(?:[\\{}$^_]|EOF)$/.test(name)) {
+ throw new ParseError("Expected a control sequence", tok);
+ }
+ var numArgs = 0;
+ var insert;
+ var delimiters2 = [[]];
+ while (parser22.gullet.future().text !== "{") {
+ tok = parser22.gullet.popToken();
+ if (tok.text === "#") {
+ if (parser22.gullet.future().text === "{") {
+ insert = parser22.gullet.future();
+ delimiters2[numArgs].push("{");
+ break;
+ }
+ tok = parser22.gullet.popToken();
+ if (!/^[1-9]$/.test(tok.text)) {
+ throw new ParseError('Invalid argument number "' + tok.text + '"');
+ }
+ if (parseInt(tok.text) !== numArgs + 1) {
+ throw new ParseError('Argument number "' + tok.text + '" out of order');
+ }
+ numArgs++;
+ delimiters2.push([]);
+ } else if (tok.text === "EOF") {
+ throw new ParseError("Expected a macro definition");
+ } else {
+ delimiters2[numArgs].push(tok.text);
+ }
+ }
+ var {
+ tokens: tokens2
+ } = parser22.gullet.consumeArg();
+ if (insert) {
+ tokens2.unshift(insert);
+ }
+ if (funcName === "\\edef" || funcName === "\\xdef") {
+ tokens2 = parser22.gullet.expandTokens(tokens2);
+ tokens2.reverse();
+ }
+ parser22.gullet.macros.set(name, {
+ tokens: tokens2,
+ numArgs,
+ delimiters: delimiters2
+ }, funcName === globalMap[funcName]);
+ return {
+ type: "internal",
+ mode: parser22.mode
+ };
+ }
});
- }
- };
- const getThemeVariables$2 = (userOverrides) => {
- const theme2 = new Theme$2();
- theme2.calculate(userOverrides);
- return theme2;
- };
- let Theme$1 = class Theme {
- constructor() {
- this.background = "#f4f4f4";
- this.primaryColor = "#cde498";
- this.secondaryColor = "#cdffb2";
- this.background = "white";
- this.mainBkg = "#cde498";
- this.secondBkg = "#cdffb2";
- this.lineColor = "green";
- this.border1 = "#13540c";
- this.border2 = "#6eaa49";
- this.arrowheadColor = "green";
- this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
- this.fontSize = "16px";
- this.tertiaryColor = lighten$1("#cde498", 10);
- this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
- this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
- this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
- this.primaryTextColor = invert$1(this.primaryColor);
- this.secondaryTextColor = invert$1(this.secondaryColor);
- this.tertiaryTextColor = invert$1(this.primaryColor);
- this.lineColor = invert$1(this.background);
- this.textColor = invert$1(this.background);
- this.THEME_COLOR_LIMIT = 12;
- this.nodeBkg = "calculated";
- this.nodeBorder = "calculated";
- this.clusterBkg = "calculated";
- this.clusterBorder = "calculated";
- this.defaultLinkColor = "calculated";
- this.titleColor = "#333";
- this.edgeLabelBackground = "#e8e8e8";
- this.actorBorder = "calculated";
- this.actorBkg = "calculated";
- this.actorTextColor = "black";
- this.actorLineColor = "grey";
- this.signalColor = "#333";
- this.signalTextColor = "#333";
- this.labelBoxBkgColor = "calculated";
- this.labelBoxBorderColor = "#326932";
- this.labelTextColor = "calculated";
- this.loopTextColor = "calculated";
- this.noteBorderColor = "calculated";
- this.noteBkgColor = "#fff5ad";
- this.noteTextColor = "calculated";
- this.activationBorderColor = "#666";
- this.activationBkgColor = "#f4f4f4";
- this.sequenceNumberColor = "white";
- this.sectionBkgColor = "#6eaa49";
- this.altSectionBkgColor = "white";
- this.sectionBkgColor2 = "#6eaa49";
- this.excludeBkgColor = "#eeeeee";
- this.taskBorderColor = "calculated";
- this.taskBkgColor = "#487e3a";
- this.taskTextLightColor = "white";
- this.taskTextColor = "calculated";
- this.taskTextDarkColor = "black";
- this.taskTextOutsideColor = "calculated";
- this.taskTextClickableColor = "#003163";
- this.activeTaskBorderColor = "calculated";
- this.activeTaskBkgColor = "calculated";
- this.gridColor = "lightgrey";
- this.doneTaskBkgColor = "lightgrey";
- this.doneTaskBorderColor = "grey";
- this.critBorderColor = "#ff8888";
- this.critBkgColor = "red";
- this.todayLineColor = "red";
- this.personBorder = this.primaryBorderColor;
- this.personBkg = this.mainBkg;
- this.labelColor = "black";
- this.errorBkgColor = "#552222";
- this.errorTextColor = "#552222";
- }
- updateColors() {
- this.actorBorder = darken$1(this.mainBkg, 20);
- this.actorBkg = this.mainBkg;
- this.labelBoxBkgColor = this.actorBkg;
- this.labelTextColor = this.actorTextColor;
- this.loopTextColor = this.actorTextColor;
- this.noteBorderColor = this.border2;
- this.noteTextColor = this.actorTextColor;
- this.cScale0 = this.cScale0 || this.primaryColor;
- this.cScale1 = this.cScale1 || this.secondaryColor;
- this.cScale2 = this.cScale2 || this.tertiaryColor;
- this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
- this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
- this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
- this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
- this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
- this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210 });
- this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
- this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
- this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
- this["cScalePeer1"] = this["cScalePeer1"] || darken$1(this.secondaryColor, 45);
- this["cScalePeer2"] = this["cScalePeer2"] || darken$1(this.tertiaryColor, 40);
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScale" + i2] = darken$1(this["cScale" + i2], 10);
- this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 25);
- }
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleInv" + i2] = this["cScaleInv" + i2] || adjust$2(this["cScale" + i2], { h: 180 });
- }
- this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
- }
- for (let i2 = 0; i2 < 5; i2++) {
- this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(5 + i2 * 5) });
- this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(8 + i2 * 5) });
- }
- this.nodeBkg = this.mainBkg;
- this.nodeBorder = this.border1;
- this.clusterBkg = this.secondBkg;
- this.clusterBorder = this.border2;
- this.defaultLinkColor = this.lineColor;
- this.taskBorderColor = this.border1;
- this.taskTextColor = this.taskTextLightColor;
- this.taskTextOutsideColor = this.taskTextDarkColor;
- this.activeTaskBorderColor = this.taskBorderColor;
- this.activeTaskBkgColor = this.mainBkg;
- this.transitionColor = this.transitionColor || this.lineColor;
- this.transitionLabelColor = this.transitionLabelColor || this.textColor;
- this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
- this.stateBkg = this.stateBkg || this.mainBkg;
- this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
- this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
- this.altBackground = this.altBackground || "#f0f0f0";
- this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
- this.compositeBorder = this.compositeBorder || this.nodeBorder;
- this.innerEndBackground = this.primaryBorderColor;
- this.specialStateColor = this.lineColor;
- this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
- this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
- this.transitionColor = this.transitionColor || this.lineColor;
- this.classText = this.primaryTextColor;
- this.fillType0 = this.primaryColor;
- this.fillType1 = this.secondaryColor;
- this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
- this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
- this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
- this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
- this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
- this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
- this.pie1 = this.pie1 || this.primaryColor;
- this.pie2 = this.pie2 || this.secondaryColor;
- this.pie3 = this.pie3 || this.tertiaryColor;
- this.pie4 = this.pie4 || adjust$2(this.primaryColor, { l: -30 });
- this.pie5 = this.pie5 || adjust$2(this.secondaryColor, { l: -30 });
- this.pie6 = this.pie6 || adjust$2(this.tertiaryColor, { h: 40, l: -40 });
- this.pie7 = this.pie7 || adjust$2(this.primaryColor, { h: 60, l: -10 });
- this.pie8 = this.pie8 || adjust$2(this.primaryColor, { h: -60, l: -10 });
- this.pie9 = this.pie9 || adjust$2(this.primaryColor, { h: 120, l: 0 });
- this.pie10 = this.pie10 || adjust$2(this.primaryColor, { h: 60, l: -50 });
- this.pie11 = this.pie11 || adjust$2(this.primaryColor, { h: -60, l: -50 });
- this.pie12 = this.pie12 || adjust$2(this.primaryColor, { h: 120, l: -50 });
- this.pieTitleTextSize = this.pieTitleTextSize || "25px";
- this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
- this.pieSectionTextSize = this.pieSectionTextSize || "17px";
- this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
- this.pieLegendTextSize = this.pieLegendTextSize || "17px";
- this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
- this.pieStrokeColor = this.pieStrokeColor || "black";
- this.pieStrokeWidth = this.pieStrokeWidth || "2px";
- this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
- this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
- this.pieOpacity = this.pieOpacity || "0.7";
- this.requirementBackground = this.requirementBackground || this.primaryColor;
- this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
- this.requirementBorderSize = this.requirementBorderSize || "1";
- this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
- this.relationColor = this.relationColor || this.lineColor;
- this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
- this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
- this.git0 = this.git0 || this.primaryColor;
- this.git1 = this.git1 || this.secondaryColor;
- this.git2 = this.git2 || this.tertiaryColor;
- this.git3 = this.git3 || adjust$2(this.primaryColor, { h: -30 });
- this.git4 = this.git4 || adjust$2(this.primaryColor, { h: -60 });
- this.git5 = this.git5 || adjust$2(this.primaryColor, { h: -90 });
- this.git6 = this.git6 || adjust$2(this.primaryColor, { h: 60 });
- this.git7 = this.git7 || adjust$2(this.primaryColor, { h: 120 });
- if (this.darkMode) {
- this.git0 = lighten$1(this.git0, 25);
- this.git1 = lighten$1(this.git1, 25);
- this.git2 = lighten$1(this.git2, 25);
- this.git3 = lighten$1(this.git3, 25);
- this.git4 = lighten$1(this.git4, 25);
- this.git5 = lighten$1(this.git5, 25);
- this.git6 = lighten$1(this.git6, 25);
- this.git7 = lighten$1(this.git7, 25);
- } else {
- this.git0 = darken$1(this.git0, 25);
- this.git1 = darken$1(this.git1, 25);
- this.git2 = darken$1(this.git2, 25);
- this.git3 = darken$1(this.git3, 25);
- this.git4 = darken$1(this.git4, 25);
- this.git5 = darken$1(this.git5, 25);
- this.git6 = darken$1(this.git6, 25);
- this.git7 = darken$1(this.git7, 25);
- }
- this.gitInv0 = this.gitInv0 || invert$1(this.git0);
- this.gitInv1 = this.gitInv1 || invert$1(this.git1);
- this.gitInv2 = this.gitInv2 || invert$1(this.git2);
- this.gitInv3 = this.gitInv3 || invert$1(this.git3);
- this.gitInv4 = this.gitInv4 || invert$1(this.git4);
- this.gitInv5 = this.gitInv5 || invert$1(this.git5);
- this.gitInv6 = this.gitInv6 || invert$1(this.git6);
- this.gitInv7 = this.gitInv7 || invert$1(this.git7);
- this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor);
- this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
- this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
- this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor);
- this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
- this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
- this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
- this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
- this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
- this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
- this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
- this.tagLabelFontSize = this.tagLabelFontSize || "10px";
- this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
- this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
- this.commitLabelFontSize = this.commitLabelFontSize || "10px";
- this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
- this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
- }
- calculate(overrides) {
- if (typeof overrides !== "object") {
- this.updateColors();
- return;
- }
- const keys2 = Object.keys(overrides);
- keys2.forEach((k) => {
- this[k] = overrides[k];
+ defineFunction({
+ type: "internal",
+ names: [
+ "\\let",
+ "\\\\globallet"
+ // can’t be entered directly
+ ],
+ props: {
+ numArgs: 0,
+ allowedInText: true,
+ primitive: true
+ },
+ handler(_ref3) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref3;
+ var name = checkControlSequence(parser22.gullet.popToken());
+ parser22.gullet.consumeSpaces();
+ var tok = getRHS(parser22);
+ letCommand(parser22, name, tok, funcName === "\\\\globallet");
+ return {
+ type: "internal",
+ mode: parser22.mode
+ };
+ }
});
- this.updateColors();
- keys2.forEach((k) => {
- this[k] = overrides[k];
+ defineFunction({
+ type: "internal",
+ names: [
+ "\\futurelet",
+ "\\\\globalfuture"
+ // can’t be entered directly
+ ],
+ props: {
+ numArgs: 0,
+ allowedInText: true,
+ primitive: true
+ },
+ handler(_ref4) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref4;
+ var name = checkControlSequence(parser22.gullet.popToken());
+ var middle = parser22.gullet.popToken();
+ var tok = parser22.gullet.popToken();
+ letCommand(parser22, name, tok, funcName === "\\\\globalfuture");
+ parser22.gullet.pushToken(tok);
+ parser22.gullet.pushToken(middle);
+ return {
+ type: "internal",
+ mode: parser22.mode
+ };
+ }
});
- }
- };
- const getThemeVariables$1 = (userOverrides) => {
- const theme2 = new Theme$1();
- theme2.calculate(userOverrides);
- return theme2;
- };
- class Theme {
- constructor() {
- this.primaryColor = "#eee";
- this.contrast = "#707070";
- this.secondaryColor = lighten$1(this.contrast, 55);
- this.background = "#ffffff";
- this.tertiaryColor = adjust$2(this.primaryColor, { h: -160 });
- this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
- this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
- this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
- this.primaryTextColor = invert$1(this.primaryColor);
- this.secondaryTextColor = invert$1(this.secondaryColor);
- this.tertiaryTextColor = invert$1(this.tertiaryColor);
- this.lineColor = invert$1(this.background);
- this.textColor = invert$1(this.background);
- this.mainBkg = "#eee";
- this.secondBkg = "calculated";
- this.lineColor = "#666";
- this.border1 = "#999";
- this.border2 = "calculated";
- this.note = "#ffa";
- this.text = "#333";
- this.critical = "#d42";
- this.done = "#bbb";
- this.arrowheadColor = "#333333";
- this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
- this.fontSize = "16px";
- this.THEME_COLOR_LIMIT = 12;
- this.nodeBkg = "calculated";
- this.nodeBorder = "calculated";
- this.clusterBkg = "calculated";
- this.clusterBorder = "calculated";
- this.defaultLinkColor = "calculated";
- this.titleColor = "calculated";
- this.edgeLabelBackground = "white";
- this.actorBorder = "calculated";
- this.actorBkg = "calculated";
- this.actorTextColor = "calculated";
- this.actorLineColor = "calculated";
- this.signalColor = "calculated";
- this.signalTextColor = "calculated";
- this.labelBoxBkgColor = "calculated";
- this.labelBoxBorderColor = "calculated";
- this.labelTextColor = "calculated";
- this.loopTextColor = "calculated";
- this.noteBorderColor = "calculated";
- this.noteBkgColor = "calculated";
- this.noteTextColor = "calculated";
- this.activationBorderColor = "#666";
- this.activationBkgColor = "#f4f4f4";
- this.sequenceNumberColor = "white";
- this.sectionBkgColor = "calculated";
- this.altSectionBkgColor = "white";
- this.sectionBkgColor2 = "calculated";
- this.excludeBkgColor = "#eeeeee";
- this.taskBorderColor = "calculated";
- this.taskBkgColor = "calculated";
- this.taskTextLightColor = "white";
- this.taskTextColor = "calculated";
- this.taskTextDarkColor = "calculated";
- this.taskTextOutsideColor = "calculated";
- this.taskTextClickableColor = "#003163";
- this.activeTaskBorderColor = "calculated";
- this.activeTaskBkgColor = "calculated";
- this.gridColor = "calculated";
- this.doneTaskBkgColor = "calculated";
- this.doneTaskBorderColor = "calculated";
- this.critBkgColor = "calculated";
- this.critBorderColor = "calculated";
- this.todayLineColor = "calculated";
- this.personBorder = this.primaryBorderColor;
- this.personBkg = this.mainBkg;
- this.labelColor = "black";
- this.errorBkgColor = "#552222";
- this.errorTextColor = "#552222";
- }
- updateColors() {
- this.secondBkg = lighten$1(this.contrast, 55);
- this.border2 = this.contrast;
- this.actorBorder = lighten$1(this.border1, 23);
- this.actorBkg = this.mainBkg;
- this.actorTextColor = this.text;
- this.actorLineColor = this.lineColor;
- this.signalColor = this.text;
- this.signalTextColor = this.text;
- this.labelBoxBkgColor = this.actorBkg;
- this.labelBoxBorderColor = this.actorBorder;
- this.labelTextColor = this.text;
- this.loopTextColor = this.text;
- this.noteBorderColor = "#999";
- this.noteBkgColor = "#666";
- this.noteTextColor = "#fff";
- this.cScale0 = this.cScale0 || "#555";
- this.cScale1 = this.cScale1 || "#F4F4F4";
- this.cScale2 = this.cScale2 || "#555";
- this.cScale3 = this.cScale3 || "#BBB";
- this.cScale4 = this.cScale4 || "#777";
- this.cScale5 = this.cScale5 || "#999";
- this.cScale6 = this.cScale6 || "#DDD";
- this.cScale7 = this.cScale7 || "#FFF";
- this.cScale8 = this.cScale8 || "#DDD";
- this.cScale9 = this.cScale9 || "#BBB";
- this.cScale10 = this.cScale10 || "#999";
- this.cScale11 = this.cScale11 || "#777";
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert$1(this["cScale" + i2]);
- }
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- if (this.darkMode) {
- this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten$1(this["cScale" + i2], 10);
+ getMetrics = /* @__PURE__ */ __name(function getMetrics2(symbol, font, mode) {
+ var replace2 = symbols.math[symbol] && symbols.math[symbol].replace;
+ var metrics = getCharacterMetrics(replace2 || symbol, font, mode);
+ if (!metrics) {
+ throw new Error("Unsupported symbol " + symbol + " and font size " + font + ".");
+ }
+ return metrics;
+ }, "getMetrics");
+ styleWrap = /* @__PURE__ */ __name(function styleWrap2(delim, toStyle, options3, classes6) {
+ var newOptions = options3.havingBaseStyle(toStyle);
+ var span = buildCommon.makeSpan(classes6.concat(newOptions.sizingClasses(options3)), [delim], options3);
+ var delimSizeMultiplier = newOptions.sizeMultiplier / options3.sizeMultiplier;
+ span.height *= delimSizeMultiplier;
+ span.depth *= delimSizeMultiplier;
+ span.maxFontSize = newOptions.sizeMultiplier;
+ return span;
+ }, "styleWrap");
+ centerSpan = /* @__PURE__ */ __name(function centerSpan2(span, options3, style3) {
+ var newOptions = options3.havingBaseStyle(style3);
+ var shift2 = (1 - options3.sizeMultiplier / newOptions.sizeMultiplier) * options3.fontMetrics().axisHeight;
+ span.classes.push("delimcenter");
+ span.style.top = makeEm(shift2);
+ span.height -= shift2;
+ span.depth += shift2;
+ }, "centerSpan");
+ makeSmallDelim = /* @__PURE__ */ __name(function makeSmallDelim2(delim, style3, center4, options3, mode, classes6) {
+ var text2 = buildCommon.makeSymbol(delim, "Main-Regular", mode, options3);
+ var span = styleWrap(text2, style3, options3, classes6);
+ if (center4) {
+ centerSpan(span, options3, style3);
+ }
+ return span;
+ }, "makeSmallDelim");
+ mathrmSize = /* @__PURE__ */ __name(function mathrmSize2(value2, size5, mode, options3) {
+ return buildCommon.makeSymbol(value2, "Size" + size5 + "-Regular", mode, options3);
+ }, "mathrmSize");
+ makeLargeDelim = /* @__PURE__ */ __name(function makeLargeDelim2(delim, size5, center4, options3, mode, classes6) {
+ var inner2 = mathrmSize(delim, size5, mode, options3);
+ var span = styleWrap(buildCommon.makeSpan(["delimsizing", "size" + size5], [inner2], options3), Style$1.TEXT, options3, classes6);
+ if (center4) {
+ centerSpan(span, options3, Style$1.TEXT);
+ }
+ return span;
+ }, "makeLargeDelim");
+ makeGlyphSpan = /* @__PURE__ */ __name(function makeGlyphSpan2(symbol, font, mode) {
+ var sizeClass;
+ if (font === "Size1-Regular") {
+ sizeClass = "delim-size1";
} else {
- this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 10);
- }
- }
- this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
- this["cScaleLabel0"] = this["cScaleLabel0"] || this.cScale1;
- this["cScaleLabel2"] = this["cScaleLabel2"] || this.cScale1;
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
- }
- for (let i2 = 0; i2 < 5; i2++) {
- this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { l: -(5 + i2 * 5) });
- this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { l: -(8 + i2 * 5) });
- }
- this.nodeBkg = this.mainBkg;
- this.nodeBorder = this.border1;
- this.clusterBkg = this.secondBkg;
- this.clusterBorder = this.border2;
- this.defaultLinkColor = this.lineColor;
- this.titleColor = this.text;
- this.sectionBkgColor = lighten$1(this.contrast, 30);
- this.sectionBkgColor2 = lighten$1(this.contrast, 30);
- this.taskBorderColor = darken$1(this.contrast, 10);
- this.taskBkgColor = this.contrast;
- this.taskTextColor = this.taskTextLightColor;
- this.taskTextDarkColor = this.text;
- this.taskTextOutsideColor = this.taskTextDarkColor;
- this.activeTaskBorderColor = this.taskBorderColor;
- this.activeTaskBkgColor = this.mainBkg;
- this.gridColor = lighten$1(this.border1, 30);
- this.doneTaskBkgColor = this.done;
- this.doneTaskBorderColor = this.lineColor;
- this.critBkgColor = this.critical;
- this.critBorderColor = darken$1(this.critBkgColor, 10);
- this.todayLineColor = this.critBkgColor;
- this.transitionColor = this.transitionColor || "#000";
- this.transitionLabelColor = this.transitionLabelColor || this.textColor;
- this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
- this.stateBkg = this.stateBkg || this.mainBkg;
- this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
- this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
- this.altBackground = this.altBackground || "#f4f4f4";
- this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
- this.stateBorder = this.stateBorder || "#000";
- this.innerEndBackground = this.primaryBorderColor;
- this.specialStateColor = "#222";
- this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
- this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
- this.classText = this.primaryTextColor;
- this.fillType0 = this.primaryColor;
- this.fillType1 = this.secondaryColor;
- this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
- this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
- this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
- this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
- this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
- this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
- for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
- this["pie" + i2] = this["cScale" + i2];
- }
- this.pie12 = this.pie0;
- this.pieTitleTextSize = this.pieTitleTextSize || "25px";
- this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
- this.pieSectionTextSize = this.pieSectionTextSize || "17px";
- this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
- this.pieLegendTextSize = this.pieLegendTextSize || "17px";
- this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
- this.pieStrokeColor = this.pieStrokeColor || "black";
- this.pieStrokeWidth = this.pieStrokeWidth || "2px";
- this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
- this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
- this.pieOpacity = this.pieOpacity || "0.7";
- this.requirementBackground = this.requirementBackground || this.primaryColor;
- this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
- this.requirementBorderSize = this.requirementBorderSize || "1";
- this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
- this.relationColor = this.relationColor || this.lineColor;
- this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
- this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
- this.git0 = darken$1(this.pie1, 25) || this.primaryColor;
- this.git1 = this.pie2 || this.secondaryColor;
- this.git2 = this.pie3 || this.tertiaryColor;
- this.git3 = this.pie4 || adjust$2(this.primaryColor, { h: -30 });
- this.git4 = this.pie5 || adjust$2(this.primaryColor, { h: -60 });
- this.git5 = this.pie6 || adjust$2(this.primaryColor, { h: -90 });
- this.git6 = this.pie7 || adjust$2(this.primaryColor, { h: 60 });
- this.git7 = this.pie8 || adjust$2(this.primaryColor, { h: 120 });
- this.gitInv0 = this.gitInv0 || invert$1(this.git0);
- this.gitInv1 = this.gitInv1 || invert$1(this.git1);
- this.gitInv2 = this.gitInv2 || invert$1(this.git2);
- this.gitInv3 = this.gitInv3 || invert$1(this.git3);
- this.gitInv4 = this.gitInv4 || invert$1(this.git4);
- this.gitInv5 = this.gitInv5 || invert$1(this.git5);
- this.gitInv6 = this.gitInv6 || invert$1(this.git6);
- this.gitInv7 = this.gitInv7 || invert$1(this.git7);
- this.branchLabelColor = this.branchLabelColor || this.labelTextColor;
- this.gitBranchLabel0 = this.branchLabelColor;
- this.gitBranchLabel1 = "white";
- this.gitBranchLabel2 = this.branchLabelColor;
- this.gitBranchLabel3 = "white";
- this.gitBranchLabel4 = this.branchLabelColor;
- this.gitBranchLabel5 = this.branchLabelColor;
- this.gitBranchLabel6 = this.branchLabelColor;
- this.gitBranchLabel7 = this.branchLabelColor;
- this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
- this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
- this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
- this.tagLabelFontSize = this.tagLabelFontSize || "10px";
- this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
- this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
- this.commitLabelFontSize = this.commitLabelFontSize || "10px";
- this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
- this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
- }
- calculate(overrides) {
- if (typeof overrides !== "object") {
- this.updateColors();
- return;
- }
- const keys2 = Object.keys(overrides);
- keys2.forEach((k) => {
- this[k] = overrides[k];
- });
- this.updateColors();
- keys2.forEach((k) => {
- this[k] = overrides[k];
- });
- }
- }
- const getThemeVariables = (userOverrides) => {
- const theme2 = new Theme();
- theme2.calculate(userOverrides);
- return theme2;
- };
- const theme = {
- base: {
- getThemeVariables: getThemeVariables$4
- },
- dark: {
- getThemeVariables: getThemeVariables$3
- },
- default: {
- getThemeVariables: getThemeVariables$2
- },
- forest: {
- getThemeVariables: getThemeVariables$1
- },
- neutral: {
- getThemeVariables
- }
- };
- const config$1 = {
- /**
- * Theme , the CSS style sheet
- *
- * | Parameter | Description | Type | Required | Values |
- * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |
- * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |
- *
- * **Notes:** To disable any pre-defined mermaid theme, use "null".
- *
- * @example
- *
- * ```js
- * {
- * "theme": "forest",
- * "themeCSS": ".node rect { fill: red; }"
- * }
- * ```
- */
- theme: "default",
- themeVariables: theme["default"].getThemeVariables(),
- themeCSS: void 0,
- /* **maxTextSize** - The maximum allowed size of the users text diagram */
- maxTextSize: 5e4,
- darkMode: false,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |
- * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |
- *
- * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'.
- */
- fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- |
- * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' |
- *
- * **Notes:**
- *
- * - Trace: 0
- * - Debug: 1
- * - Info: 2
- * - Warn: 3
- * - Error: 4
- * - Fatal: 5 (default)
- */
- logLevel: 5,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |
- * | securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |
- *
- * **Notes**:
- *
- * - **strict**: (**default**) tags in text are encoded, click functionality is disabled
- * - **loose**: tags in text are allowed, click functionality is enabled
- * - **antiscript**: html tags in text are allowed, (only script element is removed), click
- * functionality is enabled
- * - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This
- * prevent any JavaScript from running in the context. This may hinder interactive functionality
- * of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc.
- */
- securityLevel: "strict",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |
- * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |
- *
- * **Notes:** Default value: true
- */
- startOnLoad: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |
- * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |
- *
- * **Notes**:
- *
- * This matters if you are using base tag settings.
- *
- * Default value: false
- */
- arrowMarkerAbsolute: false,
- /**
- * This option controls which currentConfig keys are considered _secure_ and can only be changed
- * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the
- * `secure` keys in the current currentConfig. This prevents malicious graph directives from
- * overriding a site's default security.
- *
- * **Notes**:
- *
- * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
- */
- secure: ["secure", "securityLevel", "startOnLoad", "maxTextSize"],
- /**
- * This option controls if the generated ids of nodes in the SVG are generated randomly or based
- * on a seed. If set to false, the IDs are generated based on the current date and thus are not
- * deterministic. This is the default behavior.
- *
- * **Notes**:
- *
- * This matters if your files are checked into source control e.g. git and should not change unless
- * content is changed.
- *
- * Default value: false
- */
- deterministicIds: false,
- /**
- * This option is the optional seed for deterministic ids. if set to undefined but
- * deterministicIds is true, a simple number iterator is used. You can set this attribute to base
- * the seed on a static string.
- */
- deterministicIDSeed: void 0,
- /** The object containing configurations specific for flowcharts */
- flowchart: {
- /**
- * ### titleTopMargin
- *
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
- * | titleTopMargin | Margin top for the text over the flowchart | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 25
- */
- titleTopMargin: 25,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
- *
- * **Notes:**
- *
- * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
- * expressed in pixels
- *
- * Default value: 8
- */
- diagramPadding: 8,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
- * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |
- *
- * **Notes:** Default value: true.
- */
- htmlLabels: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |
- * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |
- *
- * **Notes:**
- *
- * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the
- * vertical spacing for LR as well as RL graphs.**
- *
- * Default value: 50
- */
- nodeSpacing: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |
- * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |
- *
- * **Notes**:
- *
- * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal
- * spacing for LR as well as RL graphs.
- *
- * Default value 50
- */
- rankSpacing: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |
- * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |
- *
- * **Notes:**
- *
- * Default Value: 'basis'
- */
- curve: "basis",
- // Only used in new experimental rendering
- // represents the padding between the labels and the shape
- padding: 15,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See notes | boolean | 4 | true, false |
- *
- * **Notes:**
- *
- * When this flag is set the height and width is set to 100% and is then scaling with the
- * available space if not the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ----------- | ------- | -------- | ----------------------- |
- * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper, elk |
- *
- * **Notes:**
- *
- * Decides which rendering engine that is to be used for the rendering. Legal values are:
- * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using
- * elkjs
- *
- * Default value: 'dagre-wrapper'
- */
- defaultRenderer: "dagre-wrapper",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ----------- | ------- | -------- | ----------------------- |
- * | wrappingWidth | See notes | number | 4 | width of nodes where text is wrapped |
- *
- * **Notes:**
- *
- * When using markdown strings the text ius wrapped automatically, this
- * value sets the max width of a text before it continues on a new line.
- * Default value: 'dagre-wrapper'
- */
- wrappingWidth: 200
- },
- /** The object containing configurations specific for sequence diagrams */
- sequence: {
- hideUnusedParticipants: false,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ---------------------------- | ------- | -------- | ------------------ |
- * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value :10
- */
- activationWidth: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- diagramMarginX: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- diagramMarginY: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | --------------------- | ------- | -------- | ------------------ |
- * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- actorMargin: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | -------------------- | ------- | -------- | ------------------ |
- * | width | Width of actor boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 150
- */
- width: 150,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | --------------------- | ------- | -------- | ------------------ |
- * | height | Height of actor boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 65
- */
- height: 65,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ------------------------ | ------- | -------- | ------------------ |
- * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- boxMargin: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
- * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 5
- */
- boxTextMargin: 5,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | ------------------- | ------- | -------- | ------------------ |
- * | noteMargin | margin around notes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- noteMargin: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | ---------------------- | ------- | -------- | ------------------ |
- * | messageMargin | Space between messages | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 35
- */
- messageMargin: 35,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | --------------------------- | ------ | -------- | ------------------------- |
- * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |
- *
- * **Notes:** Default value: 'center'
- */
- messageAlign: "center",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | --------------------------- | ------- | -------- | ----------- |
- * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |
- *
- * **Notes:** Default value: true
- */
- mirrorActors: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
- * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |
- *
- * **Notes:**
- *
- * Default value: false.
- */
- forceMenus: false,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
- * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |
- *
- * **Notes:**
- *
- * Depending on css styling this might need adjustment.
- *
- * Default value: 1
- */
- bottomMarginAdj: 1,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See Notes | boolean | Required | true, false |
- *
- * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
- * scaling with the available space. If set to false, the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ------------------------------------ | ------- | -------- | ----------- |
- * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |
- *
- * **Notes:**
- *
- * This will display arrows that start and begin at the same node as right angles, rather than a
- * curve
- *
- * Default value: false
- */
- rightAngles: false,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------------- | ------------------------------- | ------- | -------- | ----------- |
- * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |
- *
- * **Notes:** Default value: false
- */
- showSequenceNumbers: false,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
- * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |
- *
- * **Notes:** **Default value 14**..
- */
- actorFontSize: 14,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |
- * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |
- *
- * **Notes:** Default value: "'Open Sans", sans-serif'
- */
- actorFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of the actor's description
- *
- * **Notes:** Default value: 400.
- */
- actorFontWeight: 400,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |
- * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 14
- */
- noteFontSize: 14,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |
- * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |
- *
- * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif'
- */
- noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
- /**
- * This sets the font weight of the note's description
- *
- * **Notes:** Default value: 400
- */
- noteFontWeight: 400,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |
- * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |
- *
- * **Notes:** Default value: 'center'
- */
- noteAlign: "center",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |
- * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |
- *
- * **Notes:** Default value: 16
- */
- messageFontSize: 16,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |
- * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |
- *
- * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif'
- */
- messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
- /**
- * This sets the font weight of the message's description
- *
- * **Notes:** Default value: 400.
- */
- messageFontWeight: 400,
- /**
- * This sets the auto-wrap state for the diagram
- *
- * **Notes:** Default value: false.
- */
- wrap: false,
- /**
- * This sets the auto-wrap padding for the diagram (sides only)
- *
- * **Notes:** Default value: 0.
- */
- wrapPadding: 10,
- /**
- * This sets the width of the loop-box (loop, alt, opt, par)
- *
- * **Notes:** Default value: 50.
- */
- labelBoxWidth: 50,
- /**
- * This sets the height of the loop-box (loop, alt, opt, par)
- *
- * **Notes:** Default value: 20.
- */
- labelBoxHeight: 20,
- messageFont: function() {
- return {
- fontFamily: this.messageFontFamily,
- fontSize: this.messageFontSize,
- fontWeight: this.messageFontWeight
- };
- },
- noteFont: function() {
- return {
- fontFamily: this.noteFontFamily,
- fontSize: this.noteFontSize,
- fontWeight: this.noteFontWeight
- };
- },
- actorFont: function() {
- return {
- fontFamily: this.actorFontFamily,
- fontSize: this.actorFontSize,
- fontWeight: this.actorFontWeight
- };
- }
- },
- /** The object containing configurations specific for gantt diagrams */
- gantt: {
- /**
- * ### titleTopMargin
- *
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
- * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 25
- */
- titleTopMargin: 25,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ----------------------------------- | ------- | -------- | ------------------ |
- * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 20
- */
- barHeight: 20,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |
- * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |
- *
- * **Notes:** Default value: 4
- */
- barGap: 4,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |
- * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- topPadding: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |
- * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 75
- */
- rightPadding: 75,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |
- * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 75
- */
- leftPadding: 75,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |
- * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 35
- */
- gridLineStartPadding: 35,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ----------- | ------- | -------- | ------------------ |
- * | fontSize | Font size | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 11
- */
- fontSize: 11,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ---------------------- | ------- | -------- | ------------------ |
- * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 11
- */
- sectionFontSize: 11,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |
- * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
- *
- * **Notes:** Default value: 4
- */
- numberSectionStyles: 4,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ------------------------- | ------ | -------- | --------- |
- * | displayMode | Controls the display mode | string | 4 | 'compact' |
- *
- * **Notes**:
- *
- * - **compact**: Enables displaying multiple tasks on the same row.
- */
- displayMode: "",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | ---------------------------- | ---- | -------- | ---------------- |
- * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd |
- *
- * **Notes:**
- *
- * This might need adjustment to match your locale and preferences
- *
- * Default value: '%Y-%m-%d'.
- */
- axisFormat: "%Y-%m-%d",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | ------------| ------ | -------- | ------- |
- * | tickInterval | axis ticks | string | Optional | string |
- *
- * **Notes:**
- *
- * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/
- *
- * Default value: undefined
- */
- tickInterval: void 0,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See notes | boolean | 4 | true, false |
- *
- * **Notes:**
- *
- * When this flag is set the height and width is set to 100% and is then scaling with the
- * available space if not the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ----------- | ------- | -------- | ----------- |
- * | topAxis | See notes | Boolean | 4 | True, False |
- *
- * **Notes:** when this flag is set date labels will be added to the top of the chart
- *
- * **Default value false**.
- */
- topAxis: false,
- useWidth: void 0
- },
- /** The object containing configurations specific for journey diagrams */
- journey: {
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- diagramMarginX: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- diagramMarginY: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | --------------------- | ------- | -------- | ------------------ |
- * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- leftMargin: 150,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | -------------------- | ------- | -------- | ------------------ |
- * | width | Width of actor boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 150
- */
- width: 150,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | --------------------- | ------- | -------- | ------------------ |
- * | height | Height of actor boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 65
- */
- height: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ------------------------ | ------- | -------- | ------------------ |
- * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- boxMargin: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
- * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 5
- */
- boxTextMargin: 5,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | ------------------- | ------- | -------- | ------------------ |
- * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- noteMargin: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | ----------------------- | ------- | -------- | ------------------ |
- * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
- *
- * **Notes:**
- *
- * Space between messages.
- *
- * Default value: 35
- */
- messageMargin: 35,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
- * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
- *
- * **Notes:** Default value: 'center'
- */
- messageAlign: "center",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
- * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
- *
- * **Notes:**
- *
- * Depending on css styling this might need adjustment.
- *
- * Default value: 1
- */
- bottomMarginAdj: 1,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See notes | boolean | 4 | true, false |
- *
- * **Notes:**
- *
- * When this flag is set the height and width is set to 100% and is then scaling with the
- * available space if not the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | --------------------------------- | ---- | -------- | ----------- |
- * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
- *
- * **Notes:**
- *
- * This will display arrows that start and begin at the same node as right angles, rather than a
- * curves
- *
- * Default value: false
- */
- rightAngles: false,
- taskFontSize: 14,
- taskFontFamily: '"Open Sans", sans-serif',
- taskMargin: 50,
- // width of activation box
- activationWidth: 10,
- // text placement as: tspan | fo | old only text as before
- textPlacement: "fo",
- actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
- sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
- sectionColours: ["#fff"]
- },
- /** The object containing configurations specific for timeline diagrams */
- timeline: {
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- diagramMarginX: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- diagramMarginY: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | --------------------- | ------- | -------- | ------------------ |
- * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- leftMargin: 150,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | -------------------- | ------- | -------- | ------------------ |
- * | width | Width of actor boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 150
- */
- width: 150,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | --------------------- | ------- | -------- | ------------------ |
- * | height | Height of actor boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 65
- */
- height: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ------------------------ | ------- | -------- | ------------------ |
- * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- boxMargin: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
- * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 5
- */
- boxTextMargin: 5,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ---------- | ------------------- | ------- | -------- | ------------------ |
- * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- noteMargin: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | ----------------------- | ------- | -------- | ------------------ |
- * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
- *
- * **Notes:**
- *
- * Space between messages.
- *
- * Default value: 35
- */
- messageMargin: 35,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
- * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
- *
- * **Notes:** Default value: 'center'
- */
- messageAlign: "center",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
- * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
- *
- * **Notes:**
- *
- * Depending on css styling this might need adjustment.
- *
- * Default value: 1
- */
- bottomMarginAdj: 1,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See notes | boolean | 4 | true, false |
- *
- * **Notes:**
- *
- * When this flag is set the height and width is set to 100% and is then scaling with the
- * available space if not the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | --------------------------------- | ---- | -------- | ----------- |
- * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
- *
- * **Notes:**
- *
- * This will display arrows that start and begin at the same node as right angles, rather than a
- * curves
- *
- * Default value: false
- */
- rightAngles: false,
- taskFontSize: 14,
- taskFontFamily: '"Open Sans", sans-serif',
- taskMargin: 50,
- // width of activation box
- activationWidth: 10,
- // text placement as: tspan | fo | old only text as before
- textPlacement: "fo",
- actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
- sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
- sectionColours: ["#fff"],
- disableMulticolor: false
- },
- class: {
- /**
- * ### titleTopMargin
- *
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
- * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 25
- */
- titleTopMargin: 25,
- arrowMarkerAbsolute: false,
- dividerMargin: 10,
- padding: 5,
- textHeight: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See notes | boolean | 4 | true, false |
- *
- * **Notes:**
- *
- * When this flag is set the height and width is set to 100% and is then scaling with the
- * available space if not the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ----------- | ------- | -------- | ----------------------- |
- * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
- *
- * **Notes**:
- *
- * Decides which rendering engine that is to be used for the rendering. Legal values are:
- * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
- *
- * Default value: 'dagre-d3'
- */
- defaultRenderer: "dagre-wrapper"
- },
- state: {
- /**
- * ### titleTopMargin
- *
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
- * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 25
- */
- titleTopMargin: 25,
- dividerMargin: 10,
- sizeUnit: 5,
- padding: 8,
- textHeight: 10,
- titleShift: -15,
- noteMargin: 10,
- forkWidth: 70,
- forkHeight: 7,
- // Used
- miniPadding: 2,
- // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
- // layout. This might need updating if/when switching font
- fontSizeFactor: 5.02,
- fontSize: 24,
- labelHeight: 16,
- edgeLengthFactor: "20",
- compositTitleSize: 35,
- radius: 5,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See notes | boolean | 4 | true, false |
- *
- * **Notes:**
- *
- * When this flag is set the height and width is set to 100% and is then scaling with the
- * available space if not the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ----------- | ------- | -------- | ----------------------- |
- * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
- *
- * **Notes:**
- *
- * Decides which rendering engine that is to be used for the rendering. Legal values are:
- * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
- *
- * Default value: 'dagre-d3'
- */
- defaultRenderer: "dagre-wrapper"
- },
- /** The object containing configurations specific for entity relationship diagrams */
- er: {
- /**
- * ### titleTopMargin
- *
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
- * | titleTopMargin | Margin top for the text over the diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 25
- */
- titleTopMargin: 25,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
- *
- * **Notes:**
- *
- * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
- * expressed in pixels
- *
- * Default value: 20
- */
- diagramPadding: 20,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |
- * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" |
- *
- * **Notes:**
- *
- * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
- *
- * T = top, B = bottom, L = left, and R = right.
- *
- * Default value: 'TB'
- */
- layoutDirection: "TB",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |
- * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |
- *
- * **Notes:** Expressed in pixels. Default value: 100
- */
- minEntityWidth: 100,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |
- * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |
- *
- * **Notes:** Expressed in pixels Default value: 75
- */
- minEntityHeight: 75,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |
- * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |
- *
- * **Notes:**
- *
- * The minimum internal padding between text in an entity box and the enclosing box borders,
- * expressed in pixels.
- *
- * Default value: 15
- */
- entityPadding: 15,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ----------------------------------- | ------ | -------- | -------------------- |
- * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |
- *
- * **Notes:** Default value: 'gray'
- */
- stroke: "gray",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | -------------------------- | ------ | -------- | -------------------- |
- * | fill | Fill color of entity boxes | string | 4 | Any recognized color |
- *
- * **Notes:** Default value: 'honeydew'
- */
- fill: "honeydew",
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ------------------- | ------- | -------- | ------------------ |
- * | fontSize | Font Size in pixels | Integer | | Any Positive Value |
- *
- * **Notes:**
- *
- * Font size (expressed as an integer representing a number of pixels) Default value: 12
- */
- fontSize: 12,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See Notes | boolean | Required | true, false |
- *
- * **Notes:**
- *
- * When this flag is set to true, the diagram width is locked to 100% and scaled based on
- * available space. If set to false, the diagram reserves its absolute width.
- *
- * Default value: true
- */
- useMaxWidth: true
- },
- /** The object containing configurations specific for pie diagrams */
- pie: {
- useWidth: void 0,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See Notes | boolean | Required | true, false |
- *
- * **Notes:**
- *
- * When this flag is set to true, the diagram width is locked to 100% and scaled based on
- * available space. If set to false, the diagram reserves its absolute width.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | -------------------------------------------------------------------------------- | ------- | -------- | ------------------- |
- * | textPosition | Axial position of slice's label from zero at the center to 1 at the outside edge | Number | Optional | Decimal from 0 to 1 |
- *
- * **Notes:** Default value: 0.75
- */
- textPosition: 0.75
- },
- /** The object containing configurations specific for req diagrams */
- requirement: {
- useWidth: void 0,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See Notes | boolean | Required | true, false |
- *
- * **Notes:**
- *
- * When this flag is set to true, the diagram width is locked to 100% and scaled based on
- * available space. If set to false, the diagram reserves its absolute width.
- *
- * Default value: true
- */
- useMaxWidth: true,
- rect_fill: "#f9f9f9",
- text_color: "#333",
- rect_border_size: "0.5px",
- rect_border_color: "#bbb",
- rect_min_width: 200,
- rect_min_height: 200,
- fontSize: 14,
- rect_padding: 10,
- line_height: 20
- },
- gitGraph: {
- /**
- * ### titleTopMargin
- *
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
- * | titleTopMargin | Margin top for the text over the Git diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 25
- */
- titleTopMargin: 25,
- diagramPadding: 8,
- nodeLabel: {
- width: 75,
- height: 100,
- x: -25,
- y: 0
- },
- mainBranchName: "main",
- mainBranchOrder: 0,
- showCommitLabel: true,
- showBranches: true,
- rotateCommitLabel: true
- },
- /** The object containing configurations specific for c4 diagrams */
- c4: {
- useWidth: void 0,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- diagramMarginX: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |
- * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- diagramMarginY: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------- | --------------------- | ------- | -------- | ------------------ |
- * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 50
- */
- c4ShapeMargin: 50,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | -------------- | ---------------------- | ------- | -------- | ------------------ |
- * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 20
- */
- c4ShapePadding: 20,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | --------------------- | ------- | -------- | ------------------ |
- * | width | Width of person boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 216
- */
- width: 216,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ---------------------- | ------- | -------- | ------------------ |
- * | height | Height of person boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 60
- */
- height: 60,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------- | ------------------- | ------- | -------- | ------------------ |
- * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |
- *
- * **Notes:** Default value: 10
- */
- boxMargin: 10,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ----------- | ----------- | ------- | -------- | ----------- |
- * | useMaxWidth | See Notes | boolean | Required | true, false |
- *
- * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
- * scaling with the available space. If set to false, the absolute space required is used.
- *
- * Default value: true
- */
- useMaxWidth: true,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | ------------ | ----------- | ------- | -------- | ------------------ |
- * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |
- *
- * **Notes:** How many shapes to place in each row.
- *
- * Default value: 4
- */
- c4ShapeInRow: 4,
- nextLinePaddingX: 0,
- /**
- * | Parameter | Description | Type | Required | Values |
- * | --------------- | ----------- | ------- | -------- | ------------------ |
- * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
- *
- * **Notes:** How many boundaries to place in each row.
- *
- * Default value: 2
- */
- c4BoundaryInRow: 2,
- /**
- * This sets the font size of Person shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- personFontSize: 14,
- /**
- * This sets the font family of Person shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- personFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Person shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- personFontWeight: "normal",
- /**
- * This sets the font size of External Person shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_personFontSize: 14,
- /**
- * This sets the font family of External Person shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_personFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External Person shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_personFontWeight: "normal",
- /**
- * This sets the font size of System shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- systemFontSize: 14,
- /**
- * This sets the font family of System shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- systemFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of System shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- systemFontWeight: "normal",
- /**
- * This sets the font size of External System shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_systemFontSize: 14,
- /**
- * This sets the font family of External System shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_systemFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External System shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_systemFontWeight: "normal",
- /**
- * This sets the font size of System DB shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- system_dbFontSize: 14,
- /**
- * This sets the font family of System DB shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- system_dbFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of System DB shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- system_dbFontWeight: "normal",
- /**
- * This sets the font size of External System DB shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_system_dbFontSize: 14,
- /**
- * This sets the font family of External System DB shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_system_dbFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External System DB shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_system_dbFontWeight: "normal",
- /**
- * This sets the font size of System Queue shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- system_queueFontSize: 14,
- /**
- * This sets the font family of System Queue shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- system_queueFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of System Queue shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- system_queueFontWeight: "normal",
- /**
- * This sets the font size of External System Queue shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_system_queueFontSize: 14,
- /**
- * This sets the font family of External System Queue shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_system_queueFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External System Queue shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_system_queueFontWeight: "normal",
- /**
- * This sets the font size of Boundary shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- boundaryFontSize: 14,
- /**
- * This sets the font family of Boundary shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- boundaryFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Boundary shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- boundaryFontWeight: "normal",
- /**
- * This sets the font size of Message shape for the diagram
- *
- * **Notes:** Default value: 12.
- */
- messageFontSize: 12,
- /**
- * This sets the font family of Message shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- messageFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Message shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- messageFontWeight: "normal",
- /**
- * This sets the font size of Container shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- containerFontSize: 14,
- /**
- * This sets the font family of Container shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- containerFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Container shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- containerFontWeight: "normal",
- /**
- * This sets the font size of External Container shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_containerFontSize: 14,
- /**
- * This sets the font family of External Container shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_containerFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External Container shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_containerFontWeight: "normal",
- /**
- * This sets the font size of Container DB shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- container_dbFontSize: 14,
- /**
- * This sets the font family of Container DB shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- container_dbFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Container DB shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- container_dbFontWeight: "normal",
- /**
- * This sets the font size of External Container DB shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_container_dbFontSize: 14,
- /**
- * This sets the font family of External Container DB shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_container_dbFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External Container DB shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_container_dbFontWeight: "normal",
- /**
- * This sets the font size of Container Queue shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- container_queueFontSize: 14,
- /**
- * This sets the font family of Container Queue shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- container_queueFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Container Queue shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- container_queueFontWeight: "normal",
- /**
- * This sets the font size of External Container Queue shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_container_queueFontSize: 14,
- /**
- * This sets the font family of External Container Queue shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_container_queueFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External Container Queue shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_container_queueFontWeight: "normal",
- /**
- * This sets the font size of Component shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- componentFontSize: 14,
- /**
- * This sets the font family of Component shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- componentFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Component shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- componentFontWeight: "normal",
- /**
- * This sets the font size of External Component shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_componentFontSize: 14,
- /**
- * This sets the font family of External Component shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_componentFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External Component shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_componentFontWeight: "normal",
- /**
- * This sets the font size of Component DB shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- component_dbFontSize: 14,
- /**
- * This sets the font family of Component DB shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- component_dbFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Component DB shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- component_dbFontWeight: "normal",
- /**
- * This sets the font size of External Component DB shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_component_dbFontSize: 14,
- /**
- * This sets the font family of External Component DB shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_component_dbFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External Component DB shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_component_dbFontWeight: "normal",
- /**
- * This sets the font size of Component Queue shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- component_queueFontSize: 14,
- /**
- * This sets the font family of Component Queue shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- component_queueFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of Component Queue shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- component_queueFontWeight: "normal",
- /**
- * This sets the font size of External Component Queue shape for the diagram
- *
- * **Notes:** Default value: 14.
- */
- external_component_queueFontSize: 14,
- /**
- * This sets the font family of External Component Queue shape for the diagram
- *
- * **Notes:** Default value: "Open Sans", sans-serif.
- */
- external_component_queueFontFamily: '"Open Sans", sans-serif',
- /**
- * This sets the font weight of External Component Queue shape for the diagram
- *
- * **Notes:** Default value: normal.
- */
- external_component_queueFontWeight: "normal",
- /**
- * This sets the auto-wrap state for the diagram
- *
- * **Notes:** Default value: true.
- */
- wrap: true,
- /**
- * This sets the auto-wrap padding for the diagram (sides only)
- *
- * **Notes:** Default value: 0.
- */
- wrapPadding: 10,
- personFont: function() {
- return {
- fontFamily: this.personFontFamily,
- fontSize: this.personFontSize,
- fontWeight: this.personFontWeight
- };
- },
- external_personFont: function() {
- return {
- fontFamily: this.external_personFontFamily,
- fontSize: this.external_personFontSize,
- fontWeight: this.external_personFontWeight
- };
- },
- systemFont: function() {
- return {
- fontFamily: this.systemFontFamily,
- fontSize: this.systemFontSize,
- fontWeight: this.systemFontWeight
- };
- },
- external_systemFont: function() {
- return {
- fontFamily: this.external_systemFontFamily,
- fontSize: this.external_systemFontSize,
- fontWeight: this.external_systemFontWeight
- };
- },
- system_dbFont: function() {
- return {
- fontFamily: this.system_dbFontFamily,
- fontSize: this.system_dbFontSize,
- fontWeight: this.system_dbFontWeight
- };
- },
- external_system_dbFont: function() {
- return {
- fontFamily: this.external_system_dbFontFamily,
- fontSize: this.external_system_dbFontSize,
- fontWeight: this.external_system_dbFontWeight
- };
- },
- system_queueFont: function() {
- return {
- fontFamily: this.system_queueFontFamily,
- fontSize: this.system_queueFontSize,
- fontWeight: this.system_queueFontWeight
- };
- },
- external_system_queueFont: function() {
- return {
- fontFamily: this.external_system_queueFontFamily,
- fontSize: this.external_system_queueFontSize,
- fontWeight: this.external_system_queueFontWeight
- };
- },
- containerFont: function() {
- return {
- fontFamily: this.containerFontFamily,
- fontSize: this.containerFontSize,
- fontWeight: this.containerFontWeight
- };
- },
- external_containerFont: function() {
- return {
- fontFamily: this.external_containerFontFamily,
- fontSize: this.external_containerFontSize,
- fontWeight: this.external_containerFontWeight
- };
- },
- container_dbFont: function() {
- return {
- fontFamily: this.container_dbFontFamily,
- fontSize: this.container_dbFontSize,
- fontWeight: this.container_dbFontWeight
- };
- },
- external_container_dbFont: function() {
- return {
- fontFamily: this.external_container_dbFontFamily,
- fontSize: this.external_container_dbFontSize,
- fontWeight: this.external_container_dbFontWeight
- };
- },
- container_queueFont: function() {
- return {
- fontFamily: this.container_queueFontFamily,
- fontSize: this.container_queueFontSize,
- fontWeight: this.container_queueFontWeight
- };
- },
- external_container_queueFont: function() {
- return {
- fontFamily: this.external_container_queueFontFamily,
- fontSize: this.external_container_queueFontSize,
- fontWeight: this.external_container_queueFontWeight
- };
- },
- componentFont: function() {
- return {
- fontFamily: this.componentFontFamily,
- fontSize: this.componentFontSize,
- fontWeight: this.componentFontWeight
- };
- },
- external_componentFont: function() {
- return {
- fontFamily: this.external_componentFontFamily,
- fontSize: this.external_componentFontSize,
- fontWeight: this.external_componentFontWeight
- };
- },
- component_dbFont: function() {
- return {
- fontFamily: this.component_dbFontFamily,
- fontSize: this.component_dbFontSize,
- fontWeight: this.component_dbFontWeight
- };
- },
- external_component_dbFont: function() {
- return {
- fontFamily: this.external_component_dbFontFamily,
- fontSize: this.external_component_dbFontSize,
- fontWeight: this.external_component_dbFontWeight
- };
- },
- component_queueFont: function() {
- return {
- fontFamily: this.component_queueFontFamily,
- fontSize: this.component_queueFontSize,
- fontWeight: this.component_queueFontWeight
- };
- },
- external_component_queueFont: function() {
+ sizeClass = "delim-size4";
+ }
+ var corner = buildCommon.makeSpan(["delimsizinginner", sizeClass], [buildCommon.makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]);
return {
- fontFamily: this.external_component_queueFontFamily,
- fontSize: this.external_component_queueFontSize,
- fontWeight: this.external_component_queueFontWeight
+ type: "elem",
+ elem: corner
};
- },
- boundaryFont: function() {
+ }, "makeGlyphSpan");
+ makeInner = /* @__PURE__ */ __name(function makeInner2(ch, height2, options3) {
+ var width3 = fontMetricsData["Size4-Regular"][ch.charCodeAt(0)] ? fontMetricsData["Size4-Regular"][ch.charCodeAt(0)][4] : fontMetricsData["Size1-Regular"][ch.charCodeAt(0)][4];
+ var path4 = new PathNode("inner", innerPath(ch, Math.round(1e3 * height2)));
+ var svgNode2 = new SvgNode([path4], {
+ "width": makeEm(width3),
+ "height": makeEm(height2),
+ // Override CSS rule `.katex svg { width: 100% }`
+ "style": "width:" + makeEm(width3),
+ "viewBox": "0 0 " + 1e3 * width3 + " " + Math.round(1e3 * height2),
+ "preserveAspectRatio": "xMinYMin"
+ });
+ var span = buildCommon.makeSvgSpan([], [svgNode2], options3);
+ span.height = height2;
+ span.style.height = makeEm(height2);
+ span.style.width = makeEm(width3);
return {
- fontFamily: this.boundaryFontFamily,
- fontSize: this.boundaryFontSize,
- fontWeight: this.boundaryFontWeight
+ type: "elem",
+ elem: span
};
- },
- messageFont: function() {
+ }, "makeInner");
+ lapInEms = 8e-3;
+ lap = {
+ type: "kern",
+ size: -1 * lapInEms
+ };
+ verts = ["|", "\\lvert", "\\rvert", "\\vert"];
+ doubleVerts = ["\\|", "\\lVert", "\\rVert", "\\Vert"];
+ makeStackedDelim = /* @__PURE__ */ __name(function makeStackedDelim2(delim, heightTotal, center4, options3, mode, classes6) {
+ var top2;
+ var middle;
+ var repeat2;
+ var bottom2;
+ var svgLabel = "";
+ var viewBoxWidth = 0;
+ top2 = repeat2 = bottom2 = delim;
+ middle = null;
+ var font = "Size1-Regular";
+ if (delim === "\\uparrow") {
+ repeat2 = bottom2 = "\u23D0";
+ } else if (delim === "\\Uparrow") {
+ repeat2 = bottom2 = "\u2016";
+ } else if (delim === "\\downarrow") {
+ top2 = repeat2 = "\u23D0";
+ } else if (delim === "\\Downarrow") {
+ top2 = repeat2 = "\u2016";
+ } else if (delim === "\\updownarrow") {
+ top2 = "\\uparrow";
+ repeat2 = "\u23D0";
+ bottom2 = "\\downarrow";
+ } else if (delim === "\\Updownarrow") {
+ top2 = "\\Uparrow";
+ repeat2 = "\u2016";
+ bottom2 = "\\Downarrow";
+ } else if (utils.contains(verts, delim)) {
+ repeat2 = "\u2223";
+ svgLabel = "vert";
+ viewBoxWidth = 333;
+ } else if (utils.contains(doubleVerts, delim)) {
+ repeat2 = "\u2225";
+ svgLabel = "doublevert";
+ viewBoxWidth = 556;
+ } else if (delim === "[" || delim === "\\lbrack") {
+ top2 = "\u23A1";
+ repeat2 = "\u23A2";
+ bottom2 = "\u23A3";
+ font = "Size4-Regular";
+ svgLabel = "lbrack";
+ viewBoxWidth = 667;
+ } else if (delim === "]" || delim === "\\rbrack") {
+ top2 = "\u23A4";
+ repeat2 = "\u23A5";
+ bottom2 = "\u23A6";
+ font = "Size4-Regular";
+ svgLabel = "rbrack";
+ viewBoxWidth = 667;
+ } else if (delim === "\\lfloor" || delim === "\u230A") {
+ repeat2 = top2 = "\u23A2";
+ bottom2 = "\u23A3";
+ font = "Size4-Regular";
+ svgLabel = "lfloor";
+ viewBoxWidth = 667;
+ } else if (delim === "\\lceil" || delim === "\u2308") {
+ top2 = "\u23A1";
+ repeat2 = bottom2 = "\u23A2";
+ font = "Size4-Regular";
+ svgLabel = "lceil";
+ viewBoxWidth = 667;
+ } else if (delim === "\\rfloor" || delim === "\u230B") {
+ repeat2 = top2 = "\u23A5";
+ bottom2 = "\u23A6";
+ font = "Size4-Regular";
+ svgLabel = "rfloor";
+ viewBoxWidth = 667;
+ } else if (delim === "\\rceil" || delim === "\u2309") {
+ top2 = "\u23A4";
+ repeat2 = bottom2 = "\u23A5";
+ font = "Size4-Regular";
+ svgLabel = "rceil";
+ viewBoxWidth = 667;
+ } else if (delim === "(" || delim === "\\lparen") {
+ top2 = "\u239B";
+ repeat2 = "\u239C";
+ bottom2 = "\u239D";
+ font = "Size4-Regular";
+ svgLabel = "lparen";
+ viewBoxWidth = 875;
+ } else if (delim === ")" || delim === "\\rparen") {
+ top2 = "\u239E";
+ repeat2 = "\u239F";
+ bottom2 = "\u23A0";
+ font = "Size4-Regular";
+ svgLabel = "rparen";
+ viewBoxWidth = 875;
+ } else if (delim === "\\{" || delim === "\\lbrace") {
+ top2 = "\u23A7";
+ middle = "\u23A8";
+ bottom2 = "\u23A9";
+ repeat2 = "\u23AA";
+ font = "Size4-Regular";
+ } else if (delim === "\\}" || delim === "\\rbrace") {
+ top2 = "\u23AB";
+ middle = "\u23AC";
+ bottom2 = "\u23AD";
+ repeat2 = "\u23AA";
+ font = "Size4-Regular";
+ } else if (delim === "\\lgroup" || delim === "\u27EE") {
+ top2 = "\u23A7";
+ bottom2 = "\u23A9";
+ repeat2 = "\u23AA";
+ font = "Size4-Regular";
+ } else if (delim === "\\rgroup" || delim === "\u27EF") {
+ top2 = "\u23AB";
+ bottom2 = "\u23AD";
+ repeat2 = "\u23AA";
+ font = "Size4-Regular";
+ } else if (delim === "\\lmoustache" || delim === "\u23B0") {
+ top2 = "\u23A7";
+ bottom2 = "\u23AD";
+ repeat2 = "\u23AA";
+ font = "Size4-Regular";
+ } else if (delim === "\\rmoustache" || delim === "\u23B1") {
+ top2 = "\u23AB";
+ bottom2 = "\u23A9";
+ repeat2 = "\u23AA";
+ font = "Size4-Regular";
+ }
+ var topMetrics = getMetrics(top2, font, mode);
+ var topHeightTotal = topMetrics.height + topMetrics.depth;
+ var repeatMetrics = getMetrics(repeat2, font, mode);
+ var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;
+ var bottomMetrics = getMetrics(bottom2, font, mode);
+ var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;
+ var middleHeightTotal = 0;
+ var middleFactor = 1;
+ if (middle !== null) {
+ var middleMetrics = getMetrics(middle, font, mode);
+ middleHeightTotal = middleMetrics.height + middleMetrics.depth;
+ middleFactor = 2;
+ }
+ var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal;
+ var repeatCount = Math.max(0, Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal)));
+ var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal;
+ var axisHeight = options3.fontMetrics().axisHeight;
+ if (center4) {
+ axisHeight *= options3.sizeMultiplier;
+ }
+ var depth = realHeightTotal / 2 - axisHeight;
+ var stack = [];
+ if (svgLabel.length > 0) {
+ var midHeight = realHeightTotal - topHeightTotal - bottomHeightTotal;
+ var viewBoxHeight = Math.round(realHeightTotal * 1e3);
+ var pathStr = tallDelim(svgLabel, Math.round(midHeight * 1e3));
+ var path4 = new PathNode(svgLabel, pathStr);
+ var width3 = (viewBoxWidth / 1e3).toFixed(3) + "em";
+ var height2 = (viewBoxHeight / 1e3).toFixed(3) + "em";
+ var svg = new SvgNode([path4], {
+ "width": width3,
+ "height": height2,
+ "viewBox": "0 0 " + viewBoxWidth + " " + viewBoxHeight
+ });
+ var wrapper = buildCommon.makeSvgSpan([], [svg], options3);
+ wrapper.height = viewBoxHeight / 1e3;
+ wrapper.style.width = width3;
+ wrapper.style.height = height2;
+ stack.push({
+ type: "elem",
+ elem: wrapper
+ });
+ } else {
+ stack.push(makeGlyphSpan(bottom2, font, mode));
+ stack.push(lap);
+ if (middle === null) {
+ var innerHeight = realHeightTotal - topHeightTotal - bottomHeightTotal + 2 * lapInEms;
+ stack.push(makeInner(repeat2, innerHeight, options3));
+ } else {
+ var _innerHeight = (realHeightTotal - topHeightTotal - bottomHeightTotal - middleHeightTotal) / 2 + 2 * lapInEms;
+ stack.push(makeInner(repeat2, _innerHeight, options3));
+ stack.push(lap);
+ stack.push(makeGlyphSpan(middle, font, mode));
+ stack.push(lap);
+ stack.push(makeInner(repeat2, _innerHeight, options3));
+ }
+ stack.push(lap);
+ stack.push(makeGlyphSpan(top2, font, mode));
+ }
+ var newOptions = options3.havingBaseStyle(Style$1.TEXT);
+ var inner2 = buildCommon.makeVList({
+ positionType: "bottom",
+ positionData: depth,
+ children: stack
+ }, newOptions);
+ return styleWrap(buildCommon.makeSpan(["delimsizing", "mult"], [inner2], newOptions), Style$1.TEXT, options3, classes6);
+ }, "makeStackedDelim");
+ vbPad = 80;
+ emPad = 0.08;
+ sqrtSvg = /* @__PURE__ */ __name(function sqrtSvg2(sqrtName, height2, viewBoxHeight, extraVinculum, options3) {
+ var path4 = sqrtPath(sqrtName, extraVinculum, viewBoxHeight);
+ var pathNode = new PathNode(sqrtName, path4);
+ var svg = new SvgNode([pathNode], {
+ // Note: 1000:1 ratio of viewBox to document em width.
+ "width": "400em",
+ "height": makeEm(height2),
+ "viewBox": "0 0 400000 " + viewBoxHeight,
+ "preserveAspectRatio": "xMinYMin slice"
+ });
+ return buildCommon.makeSvgSpan(["hide-tail"], [svg], options3);
+ }, "sqrtSvg");
+ makeSqrtImage = /* @__PURE__ */ __name(function makeSqrtImage2(height2, options3) {
+ var newOptions = options3.havingBaseSizing();
+ var delim = traverseSequence("\\surd", height2 * newOptions.sizeMultiplier, stackLargeDelimiterSequence, newOptions);
+ var sizeMultiplier = newOptions.sizeMultiplier;
+ var extraVinculum = Math.max(0, options3.minRuleThickness - options3.fontMetrics().sqrtRuleThickness);
+ var span;
+ var spanHeight = 0;
+ var texHeight = 0;
+ var viewBoxHeight = 0;
+ var advanceWidth;
+ if (delim.type === "small") {
+ viewBoxHeight = 1e3 + 1e3 * extraVinculum + vbPad;
+ if (height2 < 1) {
+ sizeMultiplier = 1;
+ } else if (height2 < 1.4) {
+ sizeMultiplier = 0.7;
+ }
+ spanHeight = (1 + extraVinculum + emPad) / sizeMultiplier;
+ texHeight = (1 + extraVinculum) / sizeMultiplier;
+ span = sqrtSvg("sqrtMain", spanHeight, viewBoxHeight, extraVinculum, options3);
+ span.style.minWidth = "0.853em";
+ advanceWidth = 0.833 / sizeMultiplier;
+ } else if (delim.type === "large") {
+ viewBoxHeight = (1e3 + vbPad) * sizeToMaxHeight[delim.size];
+ texHeight = (sizeToMaxHeight[delim.size] + extraVinculum) / sizeMultiplier;
+ spanHeight = (sizeToMaxHeight[delim.size] + extraVinculum + emPad) / sizeMultiplier;
+ span = sqrtSvg("sqrtSize" + delim.size, spanHeight, viewBoxHeight, extraVinculum, options3);
+ span.style.minWidth = "1.02em";
+ advanceWidth = 1 / sizeMultiplier;
+ } else {
+ spanHeight = height2 + extraVinculum + emPad;
+ texHeight = height2 + extraVinculum;
+ viewBoxHeight = Math.floor(1e3 * height2 + extraVinculum) + vbPad;
+ span = sqrtSvg("sqrtTall", spanHeight, viewBoxHeight, extraVinculum, options3);
+ span.style.minWidth = "0.742em";
+ advanceWidth = 1.056;
+ }
+ span.height = texHeight;
+ span.style.height = makeEm(spanHeight);
return {
- fontFamily: this.messageFontFamily,
- fontSize: this.messageFontSize,
- fontWeight: this.messageFontWeight
+ span,
+ advanceWidth,
+ // Calculate the actual line width.
+ // This actually should depend on the chosen font -- e.g. \boldmath
+ // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and
+ // have thicker rules.
+ ruleWidth: (options3.fontMetrics().sqrtRuleThickness + extraVinculum) * sizeMultiplier
};
- },
- // ' Colors
- // ' ##################################
- person_bg_color: "#08427B",
- person_border_color: "#073B6F",
- external_person_bg_color: "#686868",
- external_person_border_color: "#8A8A8A",
- system_bg_color: "#1168BD",
- system_border_color: "#3C7FC0",
- system_db_bg_color: "#1168BD",
- system_db_border_color: "#3C7FC0",
- system_queue_bg_color: "#1168BD",
- system_queue_border_color: "#3C7FC0",
- external_system_bg_color: "#999999",
- external_system_border_color: "#8A8A8A",
- external_system_db_bg_color: "#999999",
- external_system_db_border_color: "#8A8A8A",
- external_system_queue_bg_color: "#999999",
- external_system_queue_border_color: "#8A8A8A",
- container_bg_color: "#438DD5",
- container_border_color: "#3C7FC0",
- container_db_bg_color: "#438DD5",
- container_db_border_color: "#3C7FC0",
- container_queue_bg_color: "#438DD5",
- container_queue_border_color: "#3C7FC0",
- external_container_bg_color: "#B3B3B3",
- external_container_border_color: "#A6A6A6",
- external_container_db_bg_color: "#B3B3B3",
- external_container_db_border_color: "#A6A6A6",
- external_container_queue_bg_color: "#B3B3B3",
- external_container_queue_border_color: "#A6A6A6",
- component_bg_color: "#85BBF0",
- component_border_color: "#78A8D8",
- component_db_bg_color: "#85BBF0",
- component_db_border_color: "#78A8D8",
- component_queue_bg_color: "#85BBF0",
- component_queue_border_color: "#78A8D8",
- external_component_bg_color: "#CCCCCC",
- external_component_border_color: "#BFBFBF",
- external_component_db_bg_color: "#CCCCCC",
- external_component_db_border_color: "#BFBFBF",
- external_component_queue_bg_color: "#CCCCCC",
- external_component_queue_border_color: "#BFBFBF"
- },
- mindmap: {
- useMaxWidth: true,
- padding: 10,
- maxNodeWidth: 200
- },
- fontSize: 16
- };
- if (config$1.class) {
- config$1.class.arrowMarkerAbsolute = config$1.arrowMarkerAbsolute;
- }
- if (config$1.gitGraph) {
- config$1.gitGraph.arrowMarkerAbsolute = config$1.arrowMarkerAbsolute;
- }
- const keyify = (obj, prefix = "") => Object.keys(obj).reduce((res, el) => {
- if (Array.isArray(obj[el])) {
- return res;
- } else if (typeof obj[el] === "object" && obj[el] !== null) {
- return [...res, prefix + el, ...keyify(obj[el], "")];
- }
- return [...res, prefix + el];
- }, []);
- const configKeys = keyify(config$1, "");
- const config$2 = config$1;
- /*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
- function isNothing(subject) {
- return typeof subject === "undefined" || subject === null;
- }
- function isObject$1(subject) {
- return typeof subject === "object" && subject !== null;
- }
- function toArray(sequence2) {
- if (Array.isArray(sequence2))
- return sequence2;
- else if (isNothing(sequence2))
- return [];
- return [sequence2];
- }
- function extend(target, source) {
- var index, length2, key, sourceKeys;
- if (source) {
- sourceKeys = Object.keys(source);
- for (index = 0, length2 = sourceKeys.length; index < length2; index += 1) {
- key = sourceKeys[index];
- target[key] = source[key];
- }
- }
- return target;
- }
- function repeat(string, count) {
- var result = "", cycle;
- for (cycle = 0; cycle < count; cycle += 1) {
- result += string;
- }
- return result;
- }
- function isNegativeZero(number2) {
- return number2 === 0 && Number.NEGATIVE_INFINITY === 1 / number2;
- }
- var isNothing_1 = isNothing;
- var isObject_1 = isObject$1;
- var toArray_1 = toArray;
- var repeat_1 = repeat;
- var isNegativeZero_1 = isNegativeZero;
- var extend_1 = extend;
- var common = {
- isNothing: isNothing_1,
- isObject: isObject_1,
- toArray: toArray_1,
- repeat: repeat_1,
- isNegativeZero: isNegativeZero_1,
- extend: extend_1
- };
- function formatError(exception2, compact) {
- var where = "", message2 = exception2.reason || "(unknown reason)";
- if (!exception2.mark)
- return message2;
- if (exception2.mark.name) {
- where += 'in "' + exception2.mark.name + '" ';
- }
- where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")";
- if (!compact && exception2.mark.snippet) {
- where += "\n\n" + exception2.mark.snippet;
- }
- return message2 + " " + where;
- }
- function YAMLException$1(reason, mark) {
- Error.call(this);
- this.name = "YAMLException";
- this.reason = reason;
- this.mark = mark;
- this.message = formatError(this, false);
- if (Error.captureStackTrace) {
- Error.captureStackTrace(this, this.constructor);
- } else {
- this.stack = new Error().stack || "";
- }
- }
- YAMLException$1.prototype = Object.create(Error.prototype);
- YAMLException$1.prototype.constructor = YAMLException$1;
- YAMLException$1.prototype.toString = function toString2(compact) {
- return this.name + ": " + formatError(this, compact);
- };
- var exception = YAMLException$1;
- function getLine(buffer, lineStart, lineEnd, position2, maxLineLength) {
- var head2 = "";
- var tail = "";
- var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
- if (position2 - lineStart > maxHalfLength) {
- head2 = " ... ";
- lineStart = position2 - maxHalfLength + head2.length;
- }
- if (lineEnd - position2 > maxHalfLength) {
- tail = " ...";
- lineEnd = position2 + maxHalfLength - tail.length;
- }
- return {
- str: head2 + buffer.slice(lineStart, lineEnd).replace(/\t/g, "→") + tail,
- pos: position2 - lineStart + head2.length
- // relative position
- };
- }
- function padStart(string, max2) {
- return common.repeat(" ", max2 - string.length) + string;
- }
- function makeSnippet(mark, options2) {
- options2 = Object.create(options2 || null);
- if (!mark.buffer)
- return null;
- if (!options2.maxLength)
- options2.maxLength = 79;
- if (typeof options2.indent !== "number")
- options2.indent = 1;
- if (typeof options2.linesBefore !== "number")
- options2.linesBefore = 3;
- if (typeof options2.linesAfter !== "number")
- options2.linesAfter = 2;
- var re2 = /\r?\n|\r|\0/g;
- var lineStarts = [0];
- var lineEnds = [];
- var match;
- var foundLineNo = -1;
- while (match = re2.exec(mark.buffer)) {
- lineEnds.push(match.index);
- lineStarts.push(match.index + match[0].length);
- if (mark.position <= match.index && foundLineNo < 0) {
- foundLineNo = lineStarts.length - 2;
- }
- }
- if (foundLineNo < 0)
- foundLineNo = lineStarts.length - 1;
- var result = "", i2, line2;
- var lineNoLength = Math.min(mark.line + options2.linesAfter, lineEnds.length).toString().length;
- var maxLineLength = options2.maxLength - (options2.indent + lineNoLength + 3);
- for (i2 = 1; i2 <= options2.linesBefore; i2++) {
- if (foundLineNo - i2 < 0)
- break;
- line2 = getLine(
- mark.buffer,
- lineStarts[foundLineNo - i2],
- lineEnds[foundLineNo - i2],
- mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i2]),
- maxLineLength
- );
- result = common.repeat(" ", options2.indent) + padStart((mark.line - i2 + 1).toString(), lineNoLength) + " | " + line2.str + "\n" + result;
- }
- line2 = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
- result += common.repeat(" ", options2.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line2.str + "\n";
- result += common.repeat("-", options2.indent + lineNoLength + 3 + line2.pos) + "^\n";
- for (i2 = 1; i2 <= options2.linesAfter; i2++) {
- if (foundLineNo + i2 >= lineEnds.length)
- break;
- line2 = getLine(
- mark.buffer,
- lineStarts[foundLineNo + i2],
- lineEnds[foundLineNo + i2],
- mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i2]),
- maxLineLength
- );
- result += common.repeat(" ", options2.indent) + padStart((mark.line + i2 + 1).toString(), lineNoLength) + " | " + line2.str + "\n";
- }
- return result.replace(/\n$/, "");
- }
- var snippet = makeSnippet;
- var TYPE_CONSTRUCTOR_OPTIONS = [
- "kind",
- "multi",
- "resolve",
- "construct",
- "instanceOf",
- "predicate",
- "represent",
- "representName",
- "defaultStyle",
- "styleAliases"
- ];
- var YAML_NODE_KINDS = [
- "scalar",
- "sequence",
- "mapping"
- ];
- function compileStyleAliases(map2) {
- var result = {};
- if (map2 !== null) {
- Object.keys(map2).forEach(function(style) {
- map2[style].forEach(function(alias) {
- result[String(alias)] = style;
- });
+ }, "makeSqrtImage");
+ stackLargeDelimiters = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\u230A", "\u230B", "\\lceil", "\\rceil", "\u2308", "\u2309", "\\surd"];
+ stackAlwaysDelimiters = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\u27EE", "\u27EF", "\\lmoustache", "\\rmoustache", "\u23B0", "\u23B1"];
+ stackNeverDelimiters = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"];
+ sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3];
+ makeSizedDelim = /* @__PURE__ */ __name(function makeSizedDelim2(delim, size5, options3, mode, classes6) {
+ if (delim === "<" || delim === "\\lt" || delim === "\u27E8") {
+ delim = "\\langle";
+ } else if (delim === ">" || delim === "\\gt" || delim === "\u27E9") {
+ delim = "\\rangle";
+ }
+ if (utils.contains(stackLargeDelimiters, delim) || utils.contains(stackNeverDelimiters, delim)) {
+ return makeLargeDelim(delim, size5, false, options3, mode, classes6);
+ } else if (utils.contains(stackAlwaysDelimiters, delim)) {
+ return makeStackedDelim(delim, sizeToMaxHeight[size5], false, options3, mode, classes6);
+ } else {
+ throw new ParseError("Illegal delimiter: '" + delim + "'");
+ }
+ }, "makeSizedDelim");
+ stackNeverDelimiterSequence = [{
+ type: "small",
+ style: Style$1.SCRIPTSCRIPT
+ }, {
+ type: "small",
+ style: Style$1.SCRIPT
+ }, {
+ type: "small",
+ style: Style$1.TEXT
+ }, {
+ type: "large",
+ size: 1
+ }, {
+ type: "large",
+ size: 2
+ }, {
+ type: "large",
+ size: 3
+ }, {
+ type: "large",
+ size: 4
+ }];
+ stackAlwaysDelimiterSequence = [{
+ type: "small",
+ style: Style$1.SCRIPTSCRIPT
+ }, {
+ type: "small",
+ style: Style$1.SCRIPT
+ }, {
+ type: "small",
+ style: Style$1.TEXT
+ }, {
+ type: "stack"
+ }];
+ stackLargeDelimiterSequence = [{
+ type: "small",
+ style: Style$1.SCRIPTSCRIPT
+ }, {
+ type: "small",
+ style: Style$1.SCRIPT
+ }, {
+ type: "small",
+ style: Style$1.TEXT
+ }, {
+ type: "large",
+ size: 1
+ }, {
+ type: "large",
+ size: 2
+ }, {
+ type: "large",
+ size: 3
+ }, {
+ type: "large",
+ size: 4
+ }, {
+ type: "stack"
+ }];
+ delimTypeToFont = /* @__PURE__ */ __name(function delimTypeToFont2(type3) {
+ if (type3.type === "small") {
+ return "Main-Regular";
+ } else if (type3.type === "large") {
+ return "Size" + type3.size + "-Regular";
+ } else if (type3.type === "stack") {
+ return "Size4-Regular";
+ } else {
+ throw new Error("Add support for delim type '" + type3.type + "' here.");
+ }
+ }, "delimTypeToFont");
+ traverseSequence = /* @__PURE__ */ __name(function traverseSequence2(delim, height2, sequence, options3) {
+ var start3 = Math.min(2, 3 - options3.style.size);
+ for (var i2 = start3; i2 < sequence.length; i2++) {
+ if (sequence[i2].type === "stack") {
+ break;
+ }
+ var metrics = getMetrics(delim, delimTypeToFont(sequence[i2]), "math");
+ var heightDepth = metrics.height + metrics.depth;
+ if (sequence[i2].type === "small") {
+ var newOptions = options3.havingBaseStyle(sequence[i2].style);
+ heightDepth *= newOptions.sizeMultiplier;
+ }
+ if (heightDepth > height2) {
+ return sequence[i2];
+ }
+ }
+ return sequence[sequence.length - 1];
+ }, "traverseSequence");
+ makeCustomSizedDelim = /* @__PURE__ */ __name(function makeCustomSizedDelim2(delim, height2, center4, options3, mode, classes6) {
+ if (delim === "<" || delim === "\\lt" || delim === "\u27E8") {
+ delim = "\\langle";
+ } else if (delim === ">" || delim === "\\gt" || delim === "\u27E9") {
+ delim = "\\rangle";
+ }
+ var sequence;
+ if (utils.contains(stackNeverDelimiters, delim)) {
+ sequence = stackNeverDelimiterSequence;
+ } else if (utils.contains(stackLargeDelimiters, delim)) {
+ sequence = stackLargeDelimiterSequence;
+ } else {
+ sequence = stackAlwaysDelimiterSequence;
+ }
+ var delimType = traverseSequence(delim, height2, sequence, options3);
+ if (delimType.type === "small") {
+ return makeSmallDelim(delim, delimType.style, center4, options3, mode, classes6);
+ } else if (delimType.type === "large") {
+ return makeLargeDelim(delim, delimType.size, center4, options3, mode, classes6);
+ } else {
+ return makeStackedDelim(delim, height2, center4, options3, mode, classes6);
+ }
+ }, "makeCustomSizedDelim");
+ makeLeftRightDelim = /* @__PURE__ */ __name(function makeLeftRightDelim2(delim, height2, depth, options3, mode, classes6) {
+ var axisHeight = options3.fontMetrics().axisHeight * options3.sizeMultiplier;
+ var delimiterFactor = 901;
+ var delimiterExtend = 5 / options3.fontMetrics().ptPerEm;
+ var maxDistFromAxis = Math.max(height2 - axisHeight, depth + axisHeight);
+ var totalHeight = Math.max(
+ // In real TeX, calculations are done using integral values which are
+ // 65536 per pt, or 655360 per em. So, the division here truncates in
+ // TeX but doesn't here, producing different results. If we wanted to
+ // exactly match TeX's calculation, we could do
+ // Math.floor(655360 * maxDistFromAxis / 500) *
+ // delimiterFactor / 655360
+ // (To see the difference, compare
+ // x^{x^{\left(\rule{0.1em}{0.68em}\right)}}
+ // in TeX and KaTeX)
+ maxDistFromAxis / 500 * delimiterFactor,
+ 2 * maxDistFromAxis - delimiterExtend
+ );
+ return makeCustomSizedDelim(delim, totalHeight, true, options3, mode, classes6);
+ }, "makeLeftRightDelim");
+ delimiter = {
+ sqrtImage: makeSqrtImage,
+ sizedDelim: makeSizedDelim,
+ sizeToMaxHeight,
+ customSizedDelim: makeCustomSizedDelim,
+ leftRightDelim: makeLeftRightDelim
+ };
+ delimiterSizes = {
+ "\\bigl": {
+ mclass: "mopen",
+ size: 1
+ },
+ "\\Bigl": {
+ mclass: "mopen",
+ size: 2
+ },
+ "\\biggl": {
+ mclass: "mopen",
+ size: 3
+ },
+ "\\Biggl": {
+ mclass: "mopen",
+ size: 4
+ },
+ "\\bigr": {
+ mclass: "mclose",
+ size: 1
+ },
+ "\\Bigr": {
+ mclass: "mclose",
+ size: 2
+ },
+ "\\biggr": {
+ mclass: "mclose",
+ size: 3
+ },
+ "\\Biggr": {
+ mclass: "mclose",
+ size: 4
+ },
+ "\\bigm": {
+ mclass: "mrel",
+ size: 1
+ },
+ "\\Bigm": {
+ mclass: "mrel",
+ size: 2
+ },
+ "\\biggm": {
+ mclass: "mrel",
+ size: 3
+ },
+ "\\Biggm": {
+ mclass: "mrel",
+ size: 4
+ },
+ "\\big": {
+ mclass: "mord",
+ size: 1
+ },
+ "\\Big": {
+ mclass: "mord",
+ size: 2
+ },
+ "\\bigg": {
+ mclass: "mord",
+ size: 3
+ },
+ "\\Bigg": {
+ mclass: "mord",
+ size: 4
+ }
+ };
+ delimiters = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\u230A", "\u230B", "\\lceil", "\\rceil", "\u2308", "\u2309", "<", ">", "\\langle", "\u27E8", "\\rangle", "\u27E9", "\\lt", "\\gt", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\u27EE", "\u27EF", "\\lmoustache", "\\rmoustache", "\u23B0", "\u23B1", "/", "\\backslash", "|", "\\vert", "\\|", "\\Vert", "\\uparrow", "\\Uparrow", "\\downarrow", "\\Downarrow", "\\updownarrow", "\\Updownarrow", "."];
+ __name(checkDelimiter, "checkDelimiter");
+ defineFunction({
+ type: "delimsizing",
+ names: ["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"],
+ props: {
+ numArgs: 1,
+ argTypes: ["primitive"]
+ },
+ handler: /* @__PURE__ */ __name((context, args) => {
+ var delim = checkDelimiter(args[0], context);
+ return {
+ type: "delimsizing",
+ mode: context.parser.mode,
+ size: delimiterSizes[context.funcName].size,
+ mclass: delimiterSizes[context.funcName].mclass,
+ delim: delim.text
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ if (group2.delim === ".") {
+ return buildCommon.makeSpan([group2.mclass]);
+ }
+ return delimiter.sizedDelim(group2.delim, group2.size, options3, group2.mode, [group2.mclass]);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2) => {
+ var children2 = [];
+ if (group2.delim !== ".") {
+ children2.push(makeText(group2.delim, group2.mode));
+ }
+ var node2 = new mathMLTree.MathNode("mo", children2);
+ if (group2.mclass === "mopen" || group2.mclass === "mclose") {
+ node2.setAttribute("fence", "true");
+ } else {
+ node2.setAttribute("fence", "false");
+ }
+ node2.setAttribute("stretchy", "true");
+ var size5 = makeEm(delimiter.sizeToMaxHeight[group2.size]);
+ node2.setAttribute("minsize", size5);
+ node2.setAttribute("maxsize", size5);
+ return node2;
+ }, "mathmlBuilder")
});
- }
- return result;
- }
- function Type$1(tag, options2) {
- options2 = options2 || {};
- Object.keys(options2).forEach(function(name2) {
- if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name2) === -1) {
- throw new exception('Unknown option "' + name2 + '" is met in definition of "' + tag + '" YAML type.');
- }
- });
- this.options = options2;
- this.tag = tag;
- this.kind = options2["kind"] || null;
- this.resolve = options2["resolve"] || function() {
- return true;
- };
- this.construct = options2["construct"] || function(data) {
- return data;
- };
- this.instanceOf = options2["instanceOf"] || null;
- this.predicate = options2["predicate"] || null;
- this.represent = options2["represent"] || null;
- this.representName = options2["representName"] || null;
- this.defaultStyle = options2["defaultStyle"] || null;
- this.multi = options2["multi"] || false;
- this.styleAliases = compileStyleAliases(options2["styleAliases"] || null);
- if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
- throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
- }
- }
- var type = Type$1;
- function compileList(schema2, name2) {
- var result = [];
- schema2[name2].forEach(function(currentType) {
- var newIndex = result.length;
- result.forEach(function(previousType, previousIndex) {
- if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
- newIndex = previousIndex;
+ __name(assertParsed, "assertParsed");
+ defineFunction({
+ type: "leftright-right",
+ names: ["\\right"],
+ props: {
+ numArgs: 1,
+ primitive: true
+ },
+ handler: /* @__PURE__ */ __name((context, args) => {
+ var color2 = context.parser.gullet.macros.get("\\current@color");
+ if (color2 && typeof color2 !== "string") {
+ throw new ParseError("\\current@color set to non-string in \\right");
+ }
+ return {
+ type: "leftright-right",
+ mode: context.parser.mode,
+ delim: checkDelimiter(args[0], context).text,
+ color: color2
+ // undefined if not set via \color
+ };
+ }, "handler")
+ });
+ defineFunction({
+ type: "leftright",
+ names: ["\\left"],
+ props: {
+ numArgs: 1,
+ primitive: true
+ },
+ handler: /* @__PURE__ */ __name((context, args) => {
+ var delim = checkDelimiter(args[0], context);
+ var parser22 = context.parser;
+ ++parser22.leftrightDepth;
+ var body = parser22.parseExpression(false);
+ --parser22.leftrightDepth;
+ parser22.expect("\\right", false);
+ var right3 = assertNodeType(parser22.parseFunction(), "leftright-right");
+ return {
+ type: "leftright",
+ mode: parser22.mode,
+ body,
+ left: delim.text,
+ right: right3.delim,
+ rightColor: right3.color
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ assertParsed(group2);
+ var inner2 = buildExpression$1(group2.body, options3, true, ["mopen", "mclose"]);
+ var innerHeight = 0;
+ var innerDepth = 0;
+ var hadMiddle = false;
+ for (var i2 = 0; i2 < inner2.length; i2++) {
+ if (inner2[i2].isMiddle) {
+ hadMiddle = true;
+ } else {
+ innerHeight = Math.max(inner2[i2].height, innerHeight);
+ innerDepth = Math.max(inner2[i2].depth, innerDepth);
+ }
+ }
+ innerHeight *= options3.sizeMultiplier;
+ innerDepth *= options3.sizeMultiplier;
+ var leftDelim;
+ if (group2.left === ".") {
+ leftDelim = makeNullDelimiter(options3, ["mopen"]);
+ } else {
+ leftDelim = delimiter.leftRightDelim(group2.left, innerHeight, innerDepth, options3, group2.mode, ["mopen"]);
+ }
+ inner2.unshift(leftDelim);
+ if (hadMiddle) {
+ for (var _i = 1; _i < inner2.length; _i++) {
+ var middleDelim = inner2[_i];
+ var isMiddle = middleDelim.isMiddle;
+ if (isMiddle) {
+ inner2[_i] = delimiter.leftRightDelim(isMiddle.delim, innerHeight, innerDepth, isMiddle.options, group2.mode, []);
+ }
+ }
+ }
+ var rightDelim;
+ if (group2.right === ".") {
+ rightDelim = makeNullDelimiter(options3, ["mclose"]);
+ } else {
+ var colorOptions = group2.rightColor ? options3.withColor(group2.rightColor) : options3;
+ rightDelim = delimiter.leftRightDelim(group2.right, innerHeight, innerDepth, colorOptions, group2.mode, ["mclose"]);
+ }
+ inner2.push(rightDelim);
+ return buildCommon.makeSpan(["minner"], inner2, options3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ assertParsed(group2);
+ var inner2 = buildExpression2(group2.body, options3);
+ if (group2.left !== ".") {
+ var leftNode = new mathMLTree.MathNode("mo", [makeText(group2.left, group2.mode)]);
+ leftNode.setAttribute("fence", "true");
+ inner2.unshift(leftNode);
+ }
+ if (group2.right !== ".") {
+ var rightNode = new mathMLTree.MathNode("mo", [makeText(group2.right, group2.mode)]);
+ rightNode.setAttribute("fence", "true");
+ if (group2.rightColor) {
+ rightNode.setAttribute("mathcolor", group2.rightColor);
+ }
+ inner2.push(rightNode);
+ }
+ return makeRow(inner2);
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "middle",
+ names: ["\\middle"],
+ props: {
+ numArgs: 1,
+ primitive: true
+ },
+ handler: /* @__PURE__ */ __name((context, args) => {
+ var delim = checkDelimiter(args[0], context);
+ if (!context.parser.leftrightDepth) {
+ throw new ParseError("\\middle without preceding \\left", delim);
+ }
+ return {
+ type: "middle",
+ mode: context.parser.mode,
+ delim: delim.text
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var middleDelim;
+ if (group2.delim === ".") {
+ middleDelim = makeNullDelimiter(options3, []);
+ } else {
+ middleDelim = delimiter.sizedDelim(group2.delim, 1, options3, group2.mode, []);
+ var isMiddle = {
+ delim: group2.delim,
+ options: options3
+ };
+ middleDelim.isMiddle = isMiddle;
+ }
+ return middleDelim;
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var textNode = group2.delim === "\\vert" || group2.delim === "|" ? makeText("|", "text") : makeText(group2.delim, group2.mode);
+ var middleNode = new mathMLTree.MathNode("mo", [textNode]);
+ middleNode.setAttribute("fence", "true");
+ middleNode.setAttribute("lspace", "0.05em");
+ middleNode.setAttribute("rspace", "0.05em");
+ return middleNode;
+ }, "mathmlBuilder")
+ });
+ htmlBuilder$7 = /* @__PURE__ */ __name((group2, options3) => {
+ var inner2 = buildCommon.wrapFragment(buildGroup$1(group2.body, options3), options3);
+ var label = group2.label.slice(1);
+ var scale = options3.sizeMultiplier;
+ var img;
+ var imgShift = 0;
+ var isSingleChar = utils.isCharacterBox(group2.body);
+ if (label === "sout") {
+ img = buildCommon.makeSpan(["stretchy", "sout"]);
+ img.height = options3.fontMetrics().defaultRuleThickness / scale;
+ imgShift = -0.5 * options3.fontMetrics().xHeight;
+ } else if (label === "phase") {
+ var lineWeight = calculateSize2({
+ number: 0.6,
+ unit: "pt"
+ }, options3);
+ var clearance = calculateSize2({
+ number: 0.35,
+ unit: "ex"
+ }, options3);
+ var newOptions = options3.havingBaseSizing();
+ scale = scale / newOptions.sizeMultiplier;
+ var angleHeight = inner2.height + inner2.depth + lineWeight + clearance;
+ inner2.style.paddingLeft = makeEm(angleHeight / 2 + lineWeight);
+ var viewBoxHeight = Math.floor(1e3 * angleHeight * scale);
+ var path4 = phasePath(viewBoxHeight);
+ var svgNode2 = new SvgNode([new PathNode("phase", path4)], {
+ "width": "400em",
+ "height": makeEm(viewBoxHeight / 1e3),
+ "viewBox": "0 0 400000 " + viewBoxHeight,
+ "preserveAspectRatio": "xMinYMin slice"
+ });
+ img = buildCommon.makeSvgSpan(["hide-tail"], [svgNode2], options3);
+ img.style.height = makeEm(angleHeight);
+ imgShift = inner2.depth + lineWeight + clearance;
+ } else {
+ if (/cancel/.test(label)) {
+ if (!isSingleChar) {
+ inner2.classes.push("cancel-pad");
+ }
+ } else if (label === "angl") {
+ inner2.classes.push("anglpad");
+ } else {
+ inner2.classes.push("boxpad");
+ }
+ var topPad = 0;
+ var bottomPad = 0;
+ var ruleThickness = 0;
+ if (/box/.test(label)) {
+ ruleThickness = Math.max(
+ options3.fontMetrics().fboxrule,
+ // default
+ options3.minRuleThickness
+ // User override.
+ );
+ topPad = options3.fontMetrics().fboxsep + (label === "colorbox" ? 0 : ruleThickness);
+ bottomPad = topPad;
+ } else if (label === "angl") {
+ ruleThickness = Math.max(options3.fontMetrics().defaultRuleThickness, options3.minRuleThickness);
+ topPad = 4 * ruleThickness;
+ bottomPad = Math.max(0, 0.25 - inner2.depth);
+ } else {
+ topPad = isSingleChar ? 0.2 : 0;
+ bottomPad = topPad;
+ }
+ img = stretchy.encloseSpan(inner2, label, topPad, bottomPad, options3);
+ if (/fbox|boxed|fcolorbox/.test(label)) {
+ img.style.borderStyle = "solid";
+ img.style.borderWidth = makeEm(ruleThickness);
+ } else if (label === "angl" && ruleThickness !== 0.049) {
+ img.style.borderTopWidth = makeEm(ruleThickness);
+ img.style.borderRightWidth = makeEm(ruleThickness);
+ }
+ imgShift = inner2.depth + bottomPad;
+ if (group2.backgroundColor) {
+ img.style.backgroundColor = group2.backgroundColor;
+ if (group2.borderColor) {
+ img.style.borderColor = group2.borderColor;
+ }
+ }
+ }
+ var vlist;
+ if (group2.backgroundColor) {
+ vlist = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: [
+ // Put the color background behind inner;
+ {
+ type: "elem",
+ elem: img,
+ shift: imgShift
+ },
+ {
+ type: "elem",
+ elem: inner2,
+ shift: 0
+ }
+ ]
+ }, options3);
+ } else {
+ var classes6 = /cancel|phase/.test(label) ? ["svg-align"] : [];
+ vlist = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: [
+ // Write the \cancel stroke on top of inner.
+ {
+ type: "elem",
+ elem: inner2,
+ shift: 0
+ },
+ {
+ type: "elem",
+ elem: img,
+ shift: imgShift,
+ wrapperClasses: classes6
+ }
+ ]
+ }, options3);
+ }
+ if (/cancel/.test(label)) {
+ vlist.height = inner2.height;
+ vlist.depth = inner2.depth;
+ }
+ if (/cancel/.test(label) && !isSingleChar) {
+ return buildCommon.makeSpan(["mord", "cancel-lap"], [vlist], options3);
+ } else {
+ return buildCommon.makeSpan(["mord"], [vlist], options3);
+ }
+ }, "htmlBuilder$7");
+ mathmlBuilder$6 = /* @__PURE__ */ __name((group2, options3) => {
+ var fboxsep = 0;
+ var node2 = new mathMLTree.MathNode(group2.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [buildGroup2(group2.body, options3)]);
+ switch (group2.label) {
+ case "\\cancel":
+ node2.setAttribute("notation", "updiagonalstrike");
+ break;
+ case "\\bcancel":
+ node2.setAttribute("notation", "downdiagonalstrike");
+ break;
+ case "\\phase":
+ node2.setAttribute("notation", "phasorangle");
+ break;
+ case "\\sout":
+ node2.setAttribute("notation", "horizontalstrike");
+ break;
+ case "\\fbox":
+ node2.setAttribute("notation", "box");
+ break;
+ case "\\angl":
+ node2.setAttribute("notation", "actuarial");
+ break;
+ case "\\fcolorbox":
+ case "\\colorbox":
+ fboxsep = options3.fontMetrics().fboxsep * options3.fontMetrics().ptPerEm;
+ node2.setAttribute("width", "+" + 2 * fboxsep + "pt");
+ node2.setAttribute("height", "+" + 2 * fboxsep + "pt");
+ node2.setAttribute("lspace", fboxsep + "pt");
+ node2.setAttribute("voffset", fboxsep + "pt");
+ if (group2.label === "\\fcolorbox") {
+ var thk = Math.max(
+ options3.fontMetrics().fboxrule,
+ // default
+ options3.minRuleThickness
+ // user override
+ );
+ node2.setAttribute("style", "border: " + thk + "em solid " + String(group2.borderColor));
+ }
+ break;
+ case "\\xcancel":
+ node2.setAttribute("notation", "updiagonalstrike downdiagonalstrike");
+ break;
}
+ if (group2.backgroundColor) {
+ node2.setAttribute("mathbackground", group2.backgroundColor);
+ }
+ return node2;
+ }, "mathmlBuilder$6");
+ defineFunction({
+ type: "enclose",
+ names: ["\\colorbox"],
+ props: {
+ numArgs: 2,
+ allowedInText: true,
+ argTypes: ["color", "text"]
+ },
+ handler(_ref, args, optArgs) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var color2 = assertNodeType(args[0], "color-token").color;
+ var body = args[1];
+ return {
+ type: "enclose",
+ mode: parser22.mode,
+ label: funcName,
+ backgroundColor: color2,
+ body
+ };
+ },
+ htmlBuilder: htmlBuilder$7,
+ mathmlBuilder: mathmlBuilder$6
});
- result[newIndex] = currentType;
- });
- return result;
- }
- function compileMap() {
- var result = {
- scalar: {},
- sequence: {},
- mapping: {},
- fallback: {},
- multi: {
- scalar: [],
- sequence: [],
- mapping: [],
- fallback: []
- }
- }, index, length2;
- function collectType(type2) {
- if (type2.multi) {
- result.multi[type2.kind].push(type2);
- result.multi["fallback"].push(type2);
- } else {
- result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2;
- }
- }
- for (index = 0, length2 = arguments.length; index < length2; index += 1) {
- arguments[index].forEach(collectType);
- }
- return result;
- }
- function Schema$1(definition) {
- return this.extend(definition);
- }
- Schema$1.prototype.extend = function extend2(definition) {
- var implicit2 = [];
- var explicit = [];
- if (definition instanceof type) {
- explicit.push(definition);
- } else if (Array.isArray(definition)) {
- explicit = explicit.concat(definition);
- } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
- if (definition.implicit)
- implicit2 = implicit2.concat(definition.implicit);
- if (definition.explicit)
- explicit = explicit.concat(definition.explicit);
- } else {
- throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
- }
- implicit2.forEach(function(type$1) {
- if (!(type$1 instanceof type)) {
- throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
- }
- if (type$1.loadKind && type$1.loadKind !== "scalar") {
- throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
- }
- if (type$1.multi) {
- throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
- }
- });
- explicit.forEach(function(type$1) {
- if (!(type$1 instanceof type)) {
- throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
- }
- });
- var result = Object.create(Schema$1.prototype);
- result.implicit = (this.implicit || []).concat(implicit2);
- result.explicit = (this.explicit || []).concat(explicit);
- result.compiledImplicit = compileList(result, "implicit");
- result.compiledExplicit = compileList(result, "explicit");
- result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
- return result;
- };
- var schema = Schema$1;
- var str = new type("tag:yaml.org,2002:str", {
- kind: "scalar",
- construct: function(data) {
- return data !== null ? data : "";
- }
- });
- var seq$1 = new type("tag:yaml.org,2002:seq", {
- kind: "sequence",
- construct: function(data) {
- return data !== null ? data : [];
- }
- });
- var map$1 = new type("tag:yaml.org,2002:map", {
- kind: "mapping",
- construct: function(data) {
- return data !== null ? data : {};
- }
- });
- var failsafe = new schema({
- explicit: [
- str,
- seq$1,
- map$1
- ]
- });
- function resolveYamlNull(data) {
- if (data === null)
- return true;
- var max2 = data.length;
- return max2 === 1 && data === "~" || max2 === 4 && (data === "null" || data === "Null" || data === "NULL");
- }
- function constructYamlNull() {
- return null;
- }
- function isNull(object2) {
- return object2 === null;
- }
- var _null = new type("tag:yaml.org,2002:null", {
- kind: "scalar",
- resolve: resolveYamlNull,
- construct: constructYamlNull,
- predicate: isNull,
- represent: {
- canonical: function() {
- return "~";
- },
- lowercase: function() {
- return "null";
- },
- uppercase: function() {
- return "NULL";
- },
- camelcase: function() {
- return "Null";
- },
- empty: function() {
- return "";
- }
- },
- defaultStyle: "lowercase"
- });
- function resolveYamlBoolean(data) {
- if (data === null)
- return false;
- var max2 = data.length;
- return max2 === 4 && (data === "true" || data === "True" || data === "TRUE") || max2 === 5 && (data === "false" || data === "False" || data === "FALSE");
- }
- function constructYamlBoolean(data) {
- return data === "true" || data === "True" || data === "TRUE";
- }
- function isBoolean(object2) {
- return Object.prototype.toString.call(object2) === "[object Boolean]";
- }
- var bool = new type("tag:yaml.org,2002:bool", {
- kind: "scalar",
- resolve: resolveYamlBoolean,
- construct: constructYamlBoolean,
- predicate: isBoolean,
- represent: {
- lowercase: function(object2) {
- return object2 ? "true" : "false";
- },
- uppercase: function(object2) {
- return object2 ? "TRUE" : "FALSE";
- },
- camelcase: function(object2) {
- return object2 ? "True" : "False";
- }
- },
- defaultStyle: "lowercase"
- });
- function isHexCode(c2) {
- return 48 <= c2 && c2 <= 57 || 65 <= c2 && c2 <= 70 || 97 <= c2 && c2 <= 102;
- }
- function isOctCode(c2) {
- return 48 <= c2 && c2 <= 55;
- }
- function isDecCode(c2) {
- return 48 <= c2 && c2 <= 57;
- }
- function resolveYamlInteger(data) {
- if (data === null)
- return false;
- var max2 = data.length, index = 0, hasDigits = false, ch;
- if (!max2)
- return false;
- ch = data[index];
- if (ch === "-" || ch === "+") {
- ch = data[++index];
- }
- if (ch === "0") {
- if (index + 1 === max2)
- return true;
- ch = data[++index];
- if (ch === "b") {
- index++;
- for (; index < max2; index++) {
- ch = data[index];
- if (ch === "_")
- continue;
- if (ch !== "0" && ch !== "1")
- return false;
- hasDigits = true;
- }
- return hasDigits && ch !== "_";
- }
- if (ch === "x") {
- index++;
- for (; index < max2; index++) {
- ch = data[index];
- if (ch === "_")
- continue;
- if (!isHexCode(data.charCodeAt(index)))
- return false;
- hasDigits = true;
+ defineFunction({
+ type: "enclose",
+ names: ["\\fcolorbox"],
+ props: {
+ numArgs: 3,
+ allowedInText: true,
+ argTypes: ["color", "color", "text"]
+ },
+ handler(_ref2, args, optArgs) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref2;
+ var borderColor = assertNodeType(args[0], "color-token").color;
+ var backgroundColor = assertNodeType(args[1], "color-token").color;
+ var body = args[2];
+ return {
+ type: "enclose",
+ mode: parser22.mode,
+ label: funcName,
+ backgroundColor,
+ borderColor,
+ body
+ };
+ },
+ htmlBuilder: htmlBuilder$7,
+ mathmlBuilder: mathmlBuilder$6
+ });
+ defineFunction({
+ type: "enclose",
+ names: ["\\fbox"],
+ props: {
+ numArgs: 1,
+ argTypes: ["hbox"],
+ allowedInText: true
+ },
+ handler(_ref3, args) {
+ var {
+ parser: parser22
+ } = _ref3;
+ return {
+ type: "enclose",
+ mode: parser22.mode,
+ label: "\\fbox",
+ body: args[0]
+ };
}
- return hasDigits && ch !== "_";
- }
- if (ch === "o") {
- index++;
- for (; index < max2; index++) {
- ch = data[index];
- if (ch === "_")
- continue;
- if (!isOctCode(data.charCodeAt(index)))
- return false;
- hasDigits = true;
+ });
+ defineFunction({
+ type: "enclose",
+ names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"],
+ props: {
+ numArgs: 1
+ },
+ handler(_ref4, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref4;
+ var body = args[0];
+ return {
+ type: "enclose",
+ mode: parser22.mode,
+ label: funcName,
+ body
+ };
+ },
+ htmlBuilder: htmlBuilder$7,
+ mathmlBuilder: mathmlBuilder$6
+ });
+ defineFunction({
+ type: "enclose",
+ names: ["\\angl"],
+ props: {
+ numArgs: 1,
+ argTypes: ["hbox"],
+ allowedInText: false
+ },
+ handler(_ref5, args) {
+ var {
+ parser: parser22
+ } = _ref5;
+ return {
+ type: "enclose",
+ mode: parser22.mode,
+ label: "\\angl",
+ body: args[0]
+ };
}
- return hasDigits && ch !== "_";
- }
- }
- if (ch === "_")
- return false;
- for (; index < max2; index++) {
- ch = data[index];
- if (ch === "_")
- continue;
- if (!isDecCode(data.charCodeAt(index))) {
- return false;
- }
- hasDigits = true;
- }
- if (!hasDigits || ch === "_")
- return false;
- return true;
- }
- function constructYamlInteger(data) {
- var value = data, sign2 = 1, ch;
- if (value.indexOf("_") !== -1) {
- value = value.replace(/_/g, "");
- }
- ch = value[0];
- if (ch === "-" || ch === "+") {
- if (ch === "-")
- sign2 = -1;
- value = value.slice(1);
- ch = value[0];
- }
- if (value === "0")
- return 0;
- if (ch === "0") {
- if (value[1] === "b")
- return sign2 * parseInt(value.slice(2), 2);
- if (value[1] === "x")
- return sign2 * parseInt(value.slice(2), 16);
- if (value[1] === "o")
- return sign2 * parseInt(value.slice(2), 8);
- }
- return sign2 * parseInt(value, 10);
- }
- function isInteger(object2) {
- return Object.prototype.toString.call(object2) === "[object Number]" && (object2 % 1 === 0 && !common.isNegativeZero(object2));
- }
- var int = new type("tag:yaml.org,2002:int", {
- kind: "scalar",
- resolve: resolveYamlInteger,
- construct: constructYamlInteger,
- predicate: isInteger,
- represent: {
- binary: function(obj) {
- return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
- },
- octal: function(obj) {
- return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
- },
- decimal: function(obj) {
- return obj.toString(10);
- },
- /* eslint-disable max-len */
- hexadecimal: function(obj) {
- return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
- }
- },
- defaultStyle: "decimal",
- styleAliases: {
- binary: [2, "bin"],
- octal: [8, "oct"],
- decimal: [10, "dec"],
- hexadecimal: [16, "hex"]
- }
- });
- var YAML_FLOAT_PATTERN = new RegExp(
- // 2.5e4, 2.5 and integers
- "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
- );
- function resolveYamlFloat(data) {
- if (data === null)
- return false;
- if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`
- // Probably should update regexp & check speed
- data[data.length - 1] === "_") {
- return false;
- }
- return true;
- }
- function constructYamlFloat(data) {
- var value, sign2;
- value = data.replace(/_/g, "").toLowerCase();
- sign2 = value[0] === "-" ? -1 : 1;
- if ("+-".indexOf(value[0]) >= 0) {
- value = value.slice(1);
- }
- if (value === ".inf") {
- return sign2 === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
- } else if (value === ".nan") {
- return NaN;
- }
- return sign2 * parseFloat(value, 10);
- }
- var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
- function representYamlFloat(object2, style) {
- var res;
- if (isNaN(object2)) {
- switch (style) {
- case "lowercase":
- return ".nan";
- case "uppercase":
- return ".NAN";
- case "camelcase":
- return ".NaN";
- }
- } else if (Number.POSITIVE_INFINITY === object2) {
- switch (style) {
- case "lowercase":
- return ".inf";
- case "uppercase":
- return ".INF";
- case "camelcase":
- return ".Inf";
- }
- } else if (Number.NEGATIVE_INFINITY === object2) {
- switch (style) {
- case "lowercase":
- return "-.inf";
- case "uppercase":
- return "-.INF";
- case "camelcase":
- return "-.Inf";
- }
- } else if (common.isNegativeZero(object2)) {
- return "-0.0";
- }
- res = object2.toString(10);
- return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
- }
- function isFloat(object2) {
- return Object.prototype.toString.call(object2) === "[object Number]" && (object2 % 1 !== 0 || common.isNegativeZero(object2));
- }
- var float = new type("tag:yaml.org,2002:float", {
- kind: "scalar",
- resolve: resolveYamlFloat,
- construct: constructYamlFloat,
- predicate: isFloat,
- represent: representYamlFloat,
- defaultStyle: "lowercase"
- });
- var json = failsafe.extend({
- implicit: [
- _null,
- bool,
- int,
- float
- ]
- });
- var core = json;
- var YAML_DATE_REGEXP = new RegExp(
- "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
- );
- var YAML_TIMESTAMP_REGEXP = new RegExp(
- "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
- );
- function resolveYamlTimestamp(data) {
- if (data === null)
- return false;
- if (YAML_DATE_REGEXP.exec(data) !== null)
- return true;
- if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)
- return true;
- return false;
- }
- function constructYamlTimestamp(data) {
- var match, year2, month2, day2, hour2, minute2, second2, fraction = 0, delta = null, tz_hour, tz_minute, date2;
- match = YAML_DATE_REGEXP.exec(data);
- if (match === null)
- match = YAML_TIMESTAMP_REGEXP.exec(data);
- if (match === null)
- throw new Error("Date resolve error");
- year2 = +match[1];
- month2 = +match[2] - 1;
- day2 = +match[3];
- if (!match[4]) {
- return new Date(Date.UTC(year2, month2, day2));
- }
- hour2 = +match[4];
- minute2 = +match[5];
- second2 = +match[6];
- if (match[7]) {
- fraction = match[7].slice(0, 3);
- while (fraction.length < 3) {
- fraction += "0";
- }
- fraction = +fraction;
- }
- if (match[9]) {
- tz_hour = +match[10];
- tz_minute = +(match[11] || 0);
- delta = (tz_hour * 60 + tz_minute) * 6e4;
- if (match[9] === "-")
- delta = -delta;
- }
- date2 = new Date(Date.UTC(year2, month2, day2, hour2, minute2, second2, fraction));
- if (delta)
- date2.setTime(date2.getTime() - delta);
- return date2;
- }
- function representYamlTimestamp(object2) {
- return object2.toISOString();
- }
- var timestamp = new type("tag:yaml.org,2002:timestamp", {
- kind: "scalar",
- resolve: resolveYamlTimestamp,
- construct: constructYamlTimestamp,
- instanceOf: Date,
- represent: representYamlTimestamp
- });
- function resolveYamlMerge(data) {
- return data === "<<" || data === null;
- }
- var merge$3 = new type("tag:yaml.org,2002:merge", {
- kind: "scalar",
- resolve: resolveYamlMerge
- });
- var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
- function resolveYamlBinary(data) {
- if (data === null)
- return false;
- var code, idx, bitlen = 0, max2 = data.length, map2 = BASE64_MAP;
- for (idx = 0; idx < max2; idx++) {
- code = map2.indexOf(data.charAt(idx));
- if (code > 64)
- continue;
- if (code < 0)
- return false;
- bitlen += 6;
- }
- return bitlen % 8 === 0;
- }
- function constructYamlBinary(data) {
- var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max2 = input.length, map2 = BASE64_MAP, bits = 0, result = [];
- for (idx = 0; idx < max2; idx++) {
- if (idx % 4 === 0 && idx) {
- result.push(bits >> 16 & 255);
- result.push(bits >> 8 & 255);
- result.push(bits & 255);
- }
- bits = bits << 6 | map2.indexOf(input.charAt(idx));
- }
- tailbits = max2 % 4 * 6;
- if (tailbits === 0) {
- result.push(bits >> 16 & 255);
- result.push(bits >> 8 & 255);
- result.push(bits & 255);
- } else if (tailbits === 18) {
- result.push(bits >> 10 & 255);
- result.push(bits >> 2 & 255);
- } else if (tailbits === 12) {
- result.push(bits >> 4 & 255);
- }
- return new Uint8Array(result);
- }
- function representYamlBinary(object2) {
- var result = "", bits = 0, idx, tail, max2 = object2.length, map2 = BASE64_MAP;
- for (idx = 0; idx < max2; idx++) {
- if (idx % 3 === 0 && idx) {
- result += map2[bits >> 18 & 63];
- result += map2[bits >> 12 & 63];
- result += map2[bits >> 6 & 63];
- result += map2[bits & 63];
- }
- bits = (bits << 8) + object2[idx];
- }
- tail = max2 % 3;
- if (tail === 0) {
- result += map2[bits >> 18 & 63];
- result += map2[bits >> 12 & 63];
- result += map2[bits >> 6 & 63];
- result += map2[bits & 63];
- } else if (tail === 2) {
- result += map2[bits >> 10 & 63];
- result += map2[bits >> 4 & 63];
- result += map2[bits << 2 & 63];
- result += map2[64];
- } else if (tail === 1) {
- result += map2[bits >> 2 & 63];
- result += map2[bits << 4 & 63];
- result += map2[64];
- result += map2[64];
- }
- return result;
- }
- function isBinary(obj) {
- return Object.prototype.toString.call(obj) === "[object Uint8Array]";
- }
- var binary = new type("tag:yaml.org,2002:binary", {
- kind: "scalar",
- resolve: resolveYamlBinary,
- construct: constructYamlBinary,
- predicate: isBinary,
- represent: representYamlBinary
- });
- var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
- var _toString$2 = Object.prototype.toString;
- function resolveYamlOmap(data) {
- if (data === null)
- return true;
- var objectKeys = [], index, length2, pair, pairKey, pairHasKey, object2 = data;
- for (index = 0, length2 = object2.length; index < length2; index += 1) {
- pair = object2[index];
- pairHasKey = false;
- if (_toString$2.call(pair) !== "[object Object]")
- return false;
- for (pairKey in pair) {
- if (_hasOwnProperty$3.call(pair, pairKey)) {
- if (!pairHasKey)
- pairHasKey = true;
- else
- return false;
+ });
+ _environments = {};
+ __name(defineEnvironment, "defineEnvironment");
+ _macros = {};
+ __name(defineMacro, "defineMacro");
+ __name(getHLines, "getHLines");
+ validateAmsEnvironmentContext = /* @__PURE__ */ __name((context) => {
+ var settings = context.parser.settings;
+ if (!settings.displayMode) {
+ throw new ParseError("{" + context.envName + "} can be used only in display mode.");
+ }
+ }, "validateAmsEnvironmentContext");
+ __name(getAutoTag, "getAutoTag");
+ __name(parseArray, "parseArray");
+ __name(dCellStyle, "dCellStyle");
+ htmlBuilder$6 = /* @__PURE__ */ __name(function htmlBuilder(group2, options3) {
+ var r2;
+ var c3;
+ var nr = group2.body.length;
+ var hLinesBeforeRow = group2.hLinesBeforeRow;
+ var nc = 0;
+ var body = new Array(nr);
+ var hlines = [];
+ var ruleThickness = Math.max(
+ // From LaTeX \showthe\arrayrulewidth. Equals 0.04 em.
+ options3.fontMetrics().arrayRuleWidth,
+ options3.minRuleThickness
+ // User override.
+ );
+ var pt = 1 / options3.fontMetrics().ptPerEm;
+ var arraycolsep = 5 * pt;
+ if (group2.colSeparationType && group2.colSeparationType === "small") {
+ var localMultiplier = options3.havingStyle(Style$1.SCRIPT).sizeMultiplier;
+ arraycolsep = 0.2778 * (localMultiplier / options3.sizeMultiplier);
+ }
+ var baselineskip = group2.colSeparationType === "CD" ? calculateSize2({
+ number: 3,
+ unit: "ex"
+ }, options3) : 12 * pt;
+ var jot = 3 * pt;
+ var arrayskip = group2.arraystretch * baselineskip;
+ var arstrutHeight = 0.7 * arrayskip;
+ var arstrutDepth = 0.3 * arrayskip;
+ var totalHeight = 0;
+ function setHLinePos(hlinesInGap) {
+ for (var i2 = 0; i2 < hlinesInGap.length; ++i2) {
+ if (i2 > 0) {
+ totalHeight += 0.25;
+ }
+ hlines.push({
+ pos: totalHeight,
+ isDashed: hlinesInGap[i2]
+ });
+ }
}
- }
- if (!pairHasKey)
- return false;
- if (objectKeys.indexOf(pairKey) === -1)
- objectKeys.push(pairKey);
- else
- return false;
- }
- return true;
- }
- function constructYamlOmap(data) {
- return data !== null ? data : [];
- }
- var omap = new type("tag:yaml.org,2002:omap", {
- kind: "sequence",
- resolve: resolveYamlOmap,
- construct: constructYamlOmap
- });
- var _toString$1 = Object.prototype.toString;
- function resolveYamlPairs(data) {
- if (data === null)
- return true;
- var index, length2, pair, keys2, result, object2 = data;
- result = new Array(object2.length);
- for (index = 0, length2 = object2.length; index < length2; index += 1) {
- pair = object2[index];
- if (_toString$1.call(pair) !== "[object Object]")
- return false;
- keys2 = Object.keys(pair);
- if (keys2.length !== 1)
- return false;
- result[index] = [keys2[0], pair[keys2[0]]];
- }
- return true;
- }
- function constructYamlPairs(data) {
- if (data === null)
- return [];
- var index, length2, pair, keys2, result, object2 = data;
- result = new Array(object2.length);
- for (index = 0, length2 = object2.length; index < length2; index += 1) {
- pair = object2[index];
- keys2 = Object.keys(pair);
- result[index] = [keys2[0], pair[keys2[0]]];
- }
- return result;
- }
- var pairs = new type("tag:yaml.org,2002:pairs", {
- kind: "sequence",
- resolve: resolveYamlPairs,
- construct: constructYamlPairs
- });
- var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;
- function resolveYamlSet(data) {
- if (data === null)
- return true;
- var key, object2 = data;
- for (key in object2) {
- if (_hasOwnProperty$2.call(object2, key)) {
- if (object2[key] !== null)
- return false;
- }
- }
- return true;
- }
- function constructYamlSet(data) {
- return data !== null ? data : {};
- }
- var set$1 = new type("tag:yaml.org,2002:set", {
- kind: "mapping",
- resolve: resolveYamlSet,
- construct: constructYamlSet
- });
- var _default = core.extend({
- implicit: [
- timestamp,
- merge$3
- ],
- explicit: [
- binary,
- omap,
- pairs,
- set$1
- ]
- });
- var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;
- var CONTEXT_FLOW_IN = 1;
- var CONTEXT_FLOW_OUT = 2;
- var CONTEXT_BLOCK_IN = 3;
- var CONTEXT_BLOCK_OUT = 4;
- var CHOMPING_CLIP = 1;
- var CHOMPING_STRIP = 2;
- var CHOMPING_KEEP = 3;
- var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
- var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
- var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
- var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
- var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
- function _class(obj) {
- return Object.prototype.toString.call(obj);
- }
- function is_EOL(c2) {
- return c2 === 10 || c2 === 13;
- }
- function is_WHITE_SPACE(c2) {
- return c2 === 9 || c2 === 32;
- }
- function is_WS_OR_EOL(c2) {
- return c2 === 9 || c2 === 32 || c2 === 10 || c2 === 13;
- }
- function is_FLOW_INDICATOR(c2) {
- return c2 === 44 || c2 === 91 || c2 === 93 || c2 === 123 || c2 === 125;
- }
- function fromHexCode(c2) {
- var lc;
- if (48 <= c2 && c2 <= 57) {
- return c2 - 48;
- }
- lc = c2 | 32;
- if (97 <= lc && lc <= 102) {
- return lc - 97 + 10;
- }
- return -1;
- }
- function escapedHexLen(c2) {
- if (c2 === 120) {
- return 2;
- }
- if (c2 === 117) {
- return 4;
- }
- if (c2 === 85) {
- return 8;
- }
- return 0;
- }
- function fromDecimalCode(c2) {
- if (48 <= c2 && c2 <= 57) {
- return c2 - 48;
- }
- return -1;
- }
- function simpleEscapeSequence(c2) {
- return c2 === 48 ? "\0" : c2 === 97 ? "\x07" : c2 === 98 ? "\b" : c2 === 116 ? " " : c2 === 9 ? " " : c2 === 110 ? "\n" : c2 === 118 ? "\v" : c2 === 102 ? "\f" : c2 === 114 ? "\r" : c2 === 101 ? "\x1B" : c2 === 32 ? " " : c2 === 34 ? '"' : c2 === 47 ? "/" : c2 === 92 ? "\\" : c2 === 78 ? "
" : c2 === 95 ? " " : c2 === 76 ? "\u2028" : c2 === 80 ? "\u2029" : "";
- }
- function charFromCodepoint(c2) {
- if (c2 <= 65535) {
- return String.fromCharCode(c2);
- }
- return String.fromCharCode(
- (c2 - 65536 >> 10) + 55296,
- (c2 - 65536 & 1023) + 56320
- );
- }
- var simpleEscapeCheck = new Array(256);
- var simpleEscapeMap = new Array(256);
- for (var i = 0; i < 256; i++) {
- simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
- simpleEscapeMap[i] = simpleEscapeSequence(i);
- }
- function State$1(input, options2) {
- this.input = input;
- this.filename = options2["filename"] || null;
- this.schema = options2["schema"] || _default;
- this.onWarning = options2["onWarning"] || null;
- this.legacy = options2["legacy"] || false;
- this.json = options2["json"] || false;
- this.listener = options2["listener"] || null;
- this.implicitTypes = this.schema.compiledImplicit;
- this.typeMap = this.schema.compiledTypeMap;
- this.length = input.length;
- this.position = 0;
- this.line = 0;
- this.lineStart = 0;
- this.lineIndent = 0;
- this.firstTabInLine = -1;
- this.documents = [];
- }
- function generateError(state2, message2) {
- var mark = {
- name: state2.filename,
- buffer: state2.input.slice(0, -1),
- // omit trailing \0
- position: state2.position,
- line: state2.line,
- column: state2.position - state2.lineStart
- };
- mark.snippet = snippet(mark);
- return new exception(message2, mark);
- }
- function throwError(state2, message2) {
- throw generateError(state2, message2);
- }
- function throwWarning(state2, message2) {
- if (state2.onWarning) {
- state2.onWarning.call(null, generateError(state2, message2));
- }
- }
- var directiveHandlers = {
- YAML: function handleYamlDirective(state2, name2, args) {
- var match, major, minor;
- if (state2.version !== null) {
- throwError(state2, "duplication of %YAML directive");
- }
- if (args.length !== 1) {
- throwError(state2, "YAML directive accepts exactly one argument");
- }
- match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
- if (match === null) {
- throwError(state2, "ill-formed argument of the YAML directive");
- }
- major = parseInt(match[1], 10);
- minor = parseInt(match[2], 10);
- if (major !== 1) {
- throwError(state2, "unacceptable YAML version of the document");
- }
- state2.version = args[0];
- state2.checkLineBreaks = minor < 2;
- if (minor !== 1 && minor !== 2) {
- throwWarning(state2, "unsupported YAML version of the document");
- }
- },
- TAG: function handleTagDirective(state2, name2, args) {
- var handle, prefix;
- if (args.length !== 2) {
- throwError(state2, "TAG directive accepts exactly two arguments");
- }
- handle = args[0];
- prefix = args[1];
- if (!PATTERN_TAG_HANDLE.test(handle)) {
- throwError(state2, "ill-formed tag handle (first argument) of the TAG directive");
- }
- if (_hasOwnProperty$1.call(state2.tagMap, handle)) {
- throwError(state2, 'there is a previously declared suffix for "' + handle + '" tag handle');
- }
- if (!PATTERN_TAG_URI.test(prefix)) {
- throwError(state2, "ill-formed tag prefix (second argument) of the TAG directive");
- }
- try {
- prefix = decodeURIComponent(prefix);
- } catch (err) {
- throwError(state2, "tag prefix is malformed: " + prefix);
- }
- state2.tagMap[handle] = prefix;
- }
- };
- function captureSegment(state2, start2, end2, checkJson) {
- var _position, _length, _character, _result;
- if (start2 < end2) {
- _result = state2.input.slice(start2, end2);
- if (checkJson) {
- for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
- _character = _result.charCodeAt(_position);
- if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
- throwError(state2, "expected valid JSON character");
+ __name(setHLinePos, "setHLinePos");
+ setHLinePos(hLinesBeforeRow[0]);
+ for (r2 = 0; r2 < group2.body.length; ++r2) {
+ var inrow = group2.body[r2];
+ var height2 = arstrutHeight;
+ var depth = arstrutDepth;
+ if (nc < inrow.length) {
+ nc = inrow.length;
+ }
+ var outrow = new Array(inrow.length);
+ for (c3 = 0; c3 < inrow.length; ++c3) {
+ var elt = buildGroup$1(inrow[c3], options3);
+ if (depth < elt.depth) {
+ depth = elt.depth;
+ }
+ if (height2 < elt.height) {
+ height2 = elt.height;
+ }
+ outrow[c3] = elt;
+ }
+ var rowGap = group2.rowGaps[r2];
+ var gap = 0;
+ if (rowGap) {
+ gap = calculateSize2(rowGap, options3);
+ if (gap > 0) {
+ gap += arstrutDepth;
+ if (depth < gap) {
+ depth = gap;
+ }
+ gap = 0;
+ }
+ }
+ if (group2.addJot) {
+ depth += jot;
+ }
+ outrow.height = height2;
+ outrow.depth = depth;
+ totalHeight += height2;
+ outrow.pos = totalHeight;
+ totalHeight += depth + gap;
+ body[r2] = outrow;
+ setHLinePos(hLinesBeforeRow[r2 + 1]);
+ }
+ var offset = totalHeight / 2 + options3.fontMetrics().axisHeight;
+ var colDescriptions = group2.cols || [];
+ var cols = [];
+ var colSep;
+ var colDescrNum;
+ var tagSpans = [];
+ if (group2.tags && group2.tags.some((tag3) => tag3)) {
+ for (r2 = 0; r2 < nr; ++r2) {
+ var rw = body[r2];
+ var shift2 = rw.pos - offset;
+ var tag2 = group2.tags[r2];
+ var tagSpan = void 0;
+ if (tag2 === true) {
+ tagSpan = buildCommon.makeSpan(["eqn-num"], [], options3);
+ } else if (tag2 === false) {
+ tagSpan = buildCommon.makeSpan([], [], options3);
+ } else {
+ tagSpan = buildCommon.makeSpan([], buildExpression$1(tag2, options3, true), options3);
+ }
+ tagSpan.depth = rw.depth;
+ tagSpan.height = rw.height;
+ tagSpans.push({
+ type: "elem",
+ elem: tagSpan,
+ shift: shift2
+ });
}
}
- } else if (PATTERN_NON_PRINTABLE.test(_result)) {
- throwError(state2, "the stream contains non-printable characters");
- }
- state2.result += _result;
- }
- }
- function mergeMappings(state2, destination, source, overridableKeys) {
- var sourceKeys, key, index, quantity;
- if (!common.isObject(source)) {
- throwError(state2, "cannot merge mappings; the provided source object is unacceptable");
- }
- sourceKeys = Object.keys(source);
- for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
- key = sourceKeys[index];
- if (!_hasOwnProperty$1.call(destination, key)) {
- destination[key] = source[key];
- overridableKeys[key] = true;
- }
- }
- }
- function storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
- var index, quantity;
- if (Array.isArray(keyNode)) {
- keyNode = Array.prototype.slice.call(keyNode);
- for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
- if (Array.isArray(keyNode[index])) {
- throwError(state2, "nested arrays are not supported inside keys");
+ for (
+ c3 = 0, colDescrNum = 0;
+ // Continue while either there are more columns or more column
+ // descriptions, so trailing separators don't get lost.
+ c3 < nc || colDescrNum < colDescriptions.length;
+ ++c3, ++colDescrNum
+ ) {
+ var colDescr = colDescriptions[colDescrNum] || {};
+ var firstSeparator = true;
+ while (colDescr.type === "separator") {
+ if (!firstSeparator) {
+ colSep = buildCommon.makeSpan(["arraycolsep"], []);
+ colSep.style.width = makeEm(options3.fontMetrics().doubleRuleSep);
+ cols.push(colSep);
+ }
+ if (colDescr.separator === "|" || colDescr.separator === ":") {
+ var lineType3 = colDescr.separator === "|" ? "solid" : "dashed";
+ var separator = buildCommon.makeSpan(["vertical-separator"], [], options3);
+ separator.style.height = makeEm(totalHeight);
+ separator.style.borderRightWidth = makeEm(ruleThickness);
+ separator.style.borderRightStyle = lineType3;
+ separator.style.margin = "0 " + makeEm(-ruleThickness / 2);
+ var _shift = totalHeight - offset;
+ if (_shift) {
+ separator.style.verticalAlign = makeEm(-_shift);
+ }
+ cols.push(separator);
+ } else {
+ throw new ParseError("Invalid separator type: " + colDescr.separator);
+ }
+ colDescrNum++;
+ colDescr = colDescriptions[colDescrNum] || {};
+ firstSeparator = false;
+ }
+ if (c3 >= nc) {
+ continue;
+ }
+ var sepwidth = void 0;
+ if (c3 > 0 || group2.hskipBeforeAndAfter) {
+ sepwidth = utils.deflt(colDescr.pregap, arraycolsep);
+ if (sepwidth !== 0) {
+ colSep = buildCommon.makeSpan(["arraycolsep"], []);
+ colSep.style.width = makeEm(sepwidth);
+ cols.push(colSep);
+ }
+ }
+ var col = [];
+ for (r2 = 0; r2 < nr; ++r2) {
+ var row = body[r2];
+ var elem = row[c3];
+ if (!elem) {
+ continue;
+ }
+ var _shift2 = row.pos - offset;
+ elem.depth = row.depth;
+ elem.height = row.height;
+ col.push({
+ type: "elem",
+ elem,
+ shift: _shift2
+ });
+ }
+ col = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: col
+ }, options3);
+ col = buildCommon.makeSpan(["col-align-" + (colDescr.align || "c")], [col]);
+ cols.push(col);
+ if (c3 < nc - 1 || group2.hskipBeforeAndAfter) {
+ sepwidth = utils.deflt(colDescr.postgap, arraycolsep);
+ if (sepwidth !== 0) {
+ colSep = buildCommon.makeSpan(["arraycolsep"], []);
+ colSep.style.width = makeEm(sepwidth);
+ cols.push(colSep);
+ }
+ }
+ }
+ body = buildCommon.makeSpan(["mtable"], cols);
+ if (hlines.length > 0) {
+ var line2 = buildCommon.makeLineSpan("hline", options3, ruleThickness);
+ var dashes = buildCommon.makeLineSpan("hdashline", options3, ruleThickness);
+ var vListElems = [{
+ type: "elem",
+ elem: body,
+ shift: 0
+ }];
+ while (hlines.length > 0) {
+ var hline = hlines.pop();
+ var lineShift = hline.pos - offset;
+ if (hline.isDashed) {
+ vListElems.push({
+ type: "elem",
+ elem: dashes,
+ shift: lineShift
+ });
+ } else {
+ vListElems.push({
+ type: "elem",
+ elem: line2,
+ shift: lineShift
+ });
+ }
+ }
+ body = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: vListElems
+ }, options3);
}
- if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") {
- keyNode[index] = "[object Object]";
+ if (tagSpans.length === 0) {
+ return buildCommon.makeSpan(["mord"], [body], options3);
+ } else {
+ var eqnNumCol = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: tagSpans
+ }, options3);
+ eqnNumCol = buildCommon.makeSpan(["tag"], [eqnNumCol], options3);
+ return buildCommon.makeFragment([body, eqnNumCol]);
+ }
+ }, "htmlBuilder");
+ alignMap = {
+ c: "center ",
+ l: "left ",
+ r: "right "
+ };
+ mathmlBuilder$5 = /* @__PURE__ */ __name(function mathmlBuilder(group2, options3) {
+ var tbl = [];
+ var glue = new mathMLTree.MathNode("mtd", [], ["mtr-glue"]);
+ var tag2 = new mathMLTree.MathNode("mtd", [], ["mml-eqn-num"]);
+ for (var i2 = 0; i2 < group2.body.length; i2++) {
+ var rw = group2.body[i2];
+ var row = [];
+ for (var j2 = 0; j2 < rw.length; j2++) {
+ row.push(new mathMLTree.MathNode("mtd", [buildGroup2(rw[j2], options3)]));
+ }
+ if (group2.tags && group2.tags[i2]) {
+ row.unshift(glue);
+ row.push(glue);
+ if (group2.leqno) {
+ row.unshift(tag2);
+ } else {
+ row.push(tag2);
+ }
+ }
+ tbl.push(new mathMLTree.MathNode("mtr", row));
+ }
+ var table = new mathMLTree.MathNode("mtable", tbl);
+ var gap = group2.arraystretch === 0.5 ? 0.1 : 0.16 + group2.arraystretch - 1 + (group2.addJot ? 0.09 : 0);
+ table.setAttribute("rowspacing", makeEm(gap));
+ var menclose = "";
+ var align = "";
+ if (group2.cols && group2.cols.length > 0) {
+ var cols = group2.cols;
+ var columnLines = "";
+ var prevTypeWasAlign = false;
+ var iStart = 0;
+ var iEnd = cols.length;
+ if (cols[0].type === "separator") {
+ menclose += "top ";
+ iStart = 1;
+ }
+ if (cols[cols.length - 1].type === "separator") {
+ menclose += "bottom ";
+ iEnd -= 1;
+ }
+ for (var _i = iStart; _i < iEnd; _i++) {
+ if (cols[_i].type === "align") {
+ align += alignMap[cols[_i].align];
+ if (prevTypeWasAlign) {
+ columnLines += "none ";
+ }
+ prevTypeWasAlign = true;
+ } else if (cols[_i].type === "separator") {
+ if (prevTypeWasAlign) {
+ columnLines += cols[_i].separator === "|" ? "solid " : "dashed ";
+ prevTypeWasAlign = false;
+ }
+ }
+ }
+ table.setAttribute("columnalign", align.trim());
+ if (/[sd]/.test(columnLines)) {
+ table.setAttribute("columnlines", columnLines.trim());
+ }
+ }
+ if (group2.colSeparationType === "align") {
+ var _cols = group2.cols || [];
+ var spacing2 = "";
+ for (var _i2 = 1; _i2 < _cols.length; _i2++) {
+ spacing2 += _i2 % 2 ? "0em " : "1em ";
+ }
+ table.setAttribute("columnspacing", spacing2.trim());
+ } else if (group2.colSeparationType === "alignat" || group2.colSeparationType === "gather") {
+ table.setAttribute("columnspacing", "0em");
+ } else if (group2.colSeparationType === "small") {
+ table.setAttribute("columnspacing", "0.2778em");
+ } else if (group2.colSeparationType === "CD") {
+ table.setAttribute("columnspacing", "0.5em");
+ } else {
+ table.setAttribute("columnspacing", "1em");
+ }
+ var rowLines = "";
+ var hlines = group2.hLinesBeforeRow;
+ menclose += hlines[0].length > 0 ? "left " : "";
+ menclose += hlines[hlines.length - 1].length > 0 ? "right " : "";
+ for (var _i3 = 1; _i3 < hlines.length - 1; _i3++) {
+ rowLines += hlines[_i3].length === 0 ? "none " : hlines[_i3][0] ? "dashed " : "solid ";
+ }
+ if (/[sd]/.test(rowLines)) {
+ table.setAttribute("rowlines", rowLines.trim());
+ }
+ if (menclose !== "") {
+ table = new mathMLTree.MathNode("menclose", [table]);
+ table.setAttribute("notation", menclose.trim());
+ }
+ if (group2.arraystretch && group2.arraystretch < 1) {
+ table = new mathMLTree.MathNode("mstyle", [table]);
+ table.setAttribute("scriptlevel", "1");
+ }
+ return table;
+ }, "mathmlBuilder");
+ alignedHandler = /* @__PURE__ */ __name(function alignedHandler2(context, args) {
+ if (context.envName.indexOf("ed") === -1) {
+ validateAmsEnvironmentContext(context);
+ }
+ var cols = [];
+ var separationType = context.envName.indexOf("at") > -1 ? "alignat" : "align";
+ var isSplit = context.envName === "split";
+ var res = parseArray(context.parser, {
+ cols,
+ addJot: true,
+ autoTag: isSplit ? void 0 : getAutoTag(context.envName),
+ emptySingleRow: true,
+ colSeparationType: separationType,
+ maxNumCols: isSplit ? 2 : void 0,
+ leqno: context.parser.settings.leqno
+ }, "display");
+ var numMaths;
+ var numCols = 0;
+ var emptyGroup = {
+ type: "ordgroup",
+ mode: context.mode,
+ body: []
+ };
+ if (args[0] && args[0].type === "ordgroup") {
+ var arg0 = "";
+ for (var i2 = 0; i2 < args[0].body.length; i2++) {
+ var textord2 = assertNodeType(args[0].body[i2], "textord");
+ arg0 += textord2.text;
+ }
+ numMaths = Number(arg0);
+ numCols = numMaths * 2;
+ }
+ var isAligned = !numCols;
+ res.body.forEach(function(row) {
+ for (var _i4 = 1; _i4 < row.length; _i4 += 2) {
+ var styling = assertNodeType(row[_i4], "styling");
+ var ordgroup = assertNodeType(styling.body[0], "ordgroup");
+ ordgroup.body.unshift(emptyGroup);
+ }
+ if (!isAligned) {
+ var curMaths = row.length / 2;
+ if (numMaths < curMaths) {
+ throw new ParseError("Too many math in a row: " + ("expected " + numMaths + ", but got " + curMaths), row[0]);
+ }
+ } else if (numCols < row.length) {
+ numCols = row.length;
+ }
+ });
+ for (var _i5 = 0; _i5 < numCols; ++_i5) {
+ var align = "r";
+ var pregap = 0;
+ if (_i5 % 2 === 1) {
+ align = "l";
+ } else if (_i5 > 0 && isAligned) {
+ pregap = 1;
+ }
+ cols[_i5] = {
+ type: "align",
+ align,
+ pregap,
+ postgap: 0
+ };
}
- }
- }
- if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
- keyNode = "[object Object]";
- }
- keyNode = String(keyNode);
- if (_result === null) {
- _result = {};
- }
- if (keyTag === "tag:yaml.org,2002:merge") {
- if (Array.isArray(valueNode)) {
- for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
- mergeMappings(state2, _result, valueNode[index], overridableKeys);
- }
- } else {
- mergeMappings(state2, _result, valueNode, overridableKeys);
- }
- } else {
- if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {
- state2.line = startLine || state2.line;
- state2.lineStart = startLineStart || state2.lineStart;
- state2.position = startPos || state2.position;
- throwError(state2, "duplicated mapping key");
- }
- if (keyNode === "__proto__") {
- Object.defineProperty(_result, keyNode, {
- configurable: true,
- enumerable: true,
- writable: true,
- value: valueNode
- });
- } else {
- _result[keyNode] = valueNode;
- }
- delete overridableKeys[keyNode];
- }
- return _result;
- }
- function readLineBreak(state2) {
- var ch;
- ch = state2.input.charCodeAt(state2.position);
- if (ch === 10) {
- state2.position++;
- } else if (ch === 13) {
- state2.position++;
- if (state2.input.charCodeAt(state2.position) === 10) {
- state2.position++;
- }
- } else {
- throwError(state2, "a line break is expected");
- }
- state2.line += 1;
- state2.lineStart = state2.position;
- state2.firstTabInLine = -1;
- }
- function skipSeparationSpace(state2, allowComments, checkIndent) {
- var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position);
- while (ch !== 0) {
- while (is_WHITE_SPACE(ch)) {
- if (ch === 9 && state2.firstTabInLine === -1) {
- state2.firstTabInLine = state2.position;
- }
- ch = state2.input.charCodeAt(++state2.position);
- }
- if (allowComments && ch === 35) {
- do {
- ch = state2.input.charCodeAt(++state2.position);
- } while (ch !== 10 && ch !== 13 && ch !== 0);
- }
- if (is_EOL(ch)) {
- readLineBreak(state2);
- ch = state2.input.charCodeAt(state2.position);
- lineBreaks++;
- state2.lineIndent = 0;
- while (ch === 32) {
- state2.lineIndent++;
- ch = state2.input.charCodeAt(++state2.position);
+ res.colSeparationType = isAligned ? "align" : "alignat";
+ return res;
+ }, "alignedHandler");
+ defineEnvironment({
+ type: "array",
+ names: ["array", "darray"],
+ props: {
+ numArgs: 1
+ },
+ handler(context, args) {
+ var symNode = checkSymbolNodeType(args[0]);
+ var colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body;
+ var cols = colalign.map(function(nde) {
+ var node2 = assertSymbolNodeType(nde);
+ var ca = node2.text;
+ if ("lcr".indexOf(ca) !== -1) {
+ return {
+ type: "align",
+ align: ca
+ };
+ } else if (ca === "|") {
+ return {
+ type: "separator",
+ separator: "|"
+ };
+ } else if (ca === ":") {
+ return {
+ type: "separator",
+ separator: ":"
+ };
+ }
+ throw new ParseError("Unknown column alignment: " + ca, nde);
+ });
+ var res = {
+ cols,
+ hskipBeforeAndAfter: true,
+ // \@preamble in lttab.dtx
+ maxNumCols: cols.length
+ };
+ return parseArray(context.parser, res, dCellStyle(context.envName));
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix", "matrix*", "pmatrix*", "bmatrix*", "Bmatrix*", "vmatrix*", "Vmatrix*"],
+ props: {
+ numArgs: 0
+ },
+ handler(context) {
+ var delimiters2 = {
+ "matrix": null,
+ "pmatrix": ["(", ")"],
+ "bmatrix": ["[", "]"],
+ "Bmatrix": ["\\{", "\\}"],
+ "vmatrix": ["|", "|"],
+ "Vmatrix": ["\\Vert", "\\Vert"]
+ }[context.envName.replace("*", "")];
+ var colAlign = "c";
+ var payload = {
+ hskipBeforeAndAfter: false,
+ cols: [{
+ type: "align",
+ align: colAlign
+ }]
+ };
+ if (context.envName.charAt(context.envName.length - 1) === "*") {
+ var parser22 = context.parser;
+ parser22.consumeSpaces();
+ if (parser22.fetch().text === "[") {
+ parser22.consume();
+ parser22.consumeSpaces();
+ colAlign = parser22.fetch().text;
+ if ("lcr".indexOf(colAlign) === -1) {
+ throw new ParseError("Expected l or c or r", parser22.nextToken);
+ }
+ parser22.consume();
+ parser22.consumeSpaces();
+ parser22.expect("]");
+ parser22.consume();
+ payload.cols = [{
+ type: "align",
+ align: colAlign
+ }];
+ }
+ }
+ var res = parseArray(context.parser, payload, dCellStyle(context.envName));
+ var numCols = Math.max(0, ...res.body.map((row) => row.length));
+ res.cols = new Array(numCols).fill({
+ type: "align",
+ align: colAlign
+ });
+ return delimiters2 ? {
+ type: "leftright",
+ mode: context.mode,
+ body: [res],
+ left: delimiters2[0],
+ right: delimiters2[1],
+ rightColor: void 0
+ // \right uninfluenced by \color in array
+ } : res;
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["smallmatrix"],
+ props: {
+ numArgs: 0
+ },
+ handler(context) {
+ var payload = {
+ arraystretch: 0.5
+ };
+ var res = parseArray(context.parser, payload, "script");
+ res.colSeparationType = "small";
+ return res;
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["subarray"],
+ props: {
+ numArgs: 1
+ },
+ handler(context, args) {
+ var symNode = checkSymbolNodeType(args[0]);
+ var colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body;
+ var cols = colalign.map(function(nde) {
+ var node2 = assertSymbolNodeType(nde);
+ var ca = node2.text;
+ if ("lc".indexOf(ca) !== -1) {
+ return {
+ type: "align",
+ align: ca
+ };
+ }
+ throw new ParseError("Unknown column alignment: " + ca, nde);
+ });
+ if (cols.length > 1) {
+ throw new ParseError("{subarray} can contain only one column");
+ }
+ var res = {
+ cols,
+ hskipBeforeAndAfter: false,
+ arraystretch: 0.5
+ };
+ res = parseArray(context.parser, res, "script");
+ if (res.body.length > 0 && res.body[0].length > 1) {
+ throw new ParseError("{subarray} can contain only one column");
+ }
+ return res;
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["cases", "dcases", "rcases", "drcases"],
+ props: {
+ numArgs: 0
+ },
+ handler(context) {
+ var payload = {
+ arraystretch: 1.2,
+ cols: [{
+ type: "align",
+ align: "l",
+ pregap: 0,
+ // TODO(kevinb) get the current style.
+ // For now we use the metrics for TEXT style which is what we were
+ // doing before. Before attempting to get the current style we
+ // should look at TeX's behavior especially for \over and matrices.
+ postgap: 1
+ /* 1em quad */
+ }, {
+ type: "align",
+ align: "l",
+ pregap: 0,
+ postgap: 0
+ }]
+ };
+ var res = parseArray(context.parser, payload, dCellStyle(context.envName));
+ return {
+ type: "leftright",
+ mode: context.mode,
+ body: [res],
+ left: context.envName.indexOf("r") > -1 ? "." : "\\{",
+ right: context.envName.indexOf("r") > -1 ? "\\}" : ".",
+ rightColor: void 0
+ };
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["align", "align*", "aligned", "split"],
+ props: {
+ numArgs: 0
+ },
+ handler: alignedHandler,
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["gathered", "gather", "gather*"],
+ props: {
+ numArgs: 0
+ },
+ handler(context) {
+ if (utils.contains(["gather", "gather*"], context.envName)) {
+ validateAmsEnvironmentContext(context);
+ }
+ var res = {
+ cols: [{
+ type: "align",
+ align: "c"
+ }],
+ addJot: true,
+ colSeparationType: "gather",
+ autoTag: getAutoTag(context.envName),
+ emptySingleRow: true,
+ leqno: context.parser.settings.leqno
+ };
+ return parseArray(context.parser, res, "display");
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["alignat", "alignat*", "alignedat"],
+ props: {
+ numArgs: 1
+ },
+ handler: alignedHandler,
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["equation", "equation*"],
+ props: {
+ numArgs: 0
+ },
+ handler(context) {
+ validateAmsEnvironmentContext(context);
+ var res = {
+ autoTag: getAutoTag(context.envName),
+ emptySingleRow: true,
+ singleRow: true,
+ maxNumCols: 1,
+ leqno: context.parser.settings.leqno
+ };
+ return parseArray(context.parser, res, "display");
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineEnvironment({
+ type: "array",
+ names: ["CD"],
+ props: {
+ numArgs: 0
+ },
+ handler(context) {
+ validateAmsEnvironmentContext(context);
+ return parseCD(context.parser);
+ },
+ htmlBuilder: htmlBuilder$6,
+ mathmlBuilder: mathmlBuilder$5
+ });
+ defineMacro("\\nonumber", "\\gdef\\@eqnsw{0}");
+ defineMacro("\\notag", "\\nonumber");
+ defineFunction({
+ type: "text",
+ // Doesn't matter what this is.
+ names: ["\\hline", "\\hdashline"],
+ props: {
+ numArgs: 0,
+ allowedInText: true,
+ allowedInMath: true
+ },
+ handler(context, args) {
+ throw new ParseError(context.funcName + " valid only within array environment");
}
- } else {
- break;
- }
- }
- if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) {
- throwWarning(state2, "deficient indentation");
- }
- return lineBreaks;
- }
- function testDocumentSeparator(state2) {
- var _position = state2.position, ch;
- ch = state2.input.charCodeAt(_position);
- if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) {
- _position += 3;
- ch = state2.input.charCodeAt(_position);
- if (ch === 0 || is_WS_OR_EOL(ch)) {
- return true;
- }
- }
- return false;
- }
- function writeFoldedLines(state2, count) {
- if (count === 1) {
- state2.result += " ";
- } else if (count > 1) {
- state2.result += common.repeat("\n", count - 1);
- }
- }
- function readPlainScalar(state2, nodeIndent, withinFlowCollection) {
- var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch;
- ch = state2.input.charCodeAt(state2.position);
- if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
- return false;
- }
- if (ch === 63 || ch === 45) {
- following = state2.input.charCodeAt(state2.position + 1);
- if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
- return false;
- }
- }
- state2.kind = "scalar";
- state2.result = "";
- captureStart = captureEnd = state2.position;
- hasPendingContent = false;
- while (ch !== 0) {
- if (ch === 58) {
- following = state2.input.charCodeAt(state2.position + 1);
- if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
- break;
+ });
+ environments = _environments;
+ defineFunction({
+ type: "environment",
+ names: ["\\begin", "\\end"],
+ props: {
+ numArgs: 1,
+ argTypes: ["text"]
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var nameGroup = args[0];
+ if (nameGroup.type !== "ordgroup") {
+ throw new ParseError("Invalid environment name", nameGroup);
+ }
+ var envName = "";
+ for (var i2 = 0; i2 < nameGroup.body.length; ++i2) {
+ envName += assertNodeType(nameGroup.body[i2], "textord").text;
+ }
+ if (funcName === "\\begin") {
+ if (!environments.hasOwnProperty(envName)) {
+ throw new ParseError("No such environment: " + envName, nameGroup);
+ }
+ var env = environments[envName];
+ var {
+ args: _args,
+ optArgs
+ } = parser22.parseArguments("\\begin{" + envName + "}", env);
+ var context = {
+ mode: parser22.mode,
+ envName,
+ parser: parser22
+ };
+ var result = env.handler(context, _args, optArgs);
+ parser22.expect("\\end", false);
+ var endNameToken = parser22.nextToken;
+ var end2 = assertNodeType(parser22.parseFunction(), "environment");
+ if (end2.name !== envName) {
+ throw new ParseError("Mismatch: \\begin{" + envName + "} matched by \\end{" + end2.name + "}", endNameToken);
+ }
+ return result;
+ }
+ return {
+ type: "environment",
+ mode: parser22.mode,
+ name: envName,
+ nameGroup
+ };
}
- } else if (ch === 35) {
- preceding = state2.input.charCodeAt(state2.position - 1);
- if (is_WS_OR_EOL(preceding)) {
- break;
+ });
+ htmlBuilder$5 = /* @__PURE__ */ __name((group2, options3) => {
+ var font = group2.font;
+ var newOptions = options3.withFont(font);
+ return buildGroup$1(group2.body, newOptions);
+ }, "htmlBuilder$5");
+ mathmlBuilder$4 = /* @__PURE__ */ __name((group2, options3) => {
+ var font = group2.font;
+ var newOptions = options3.withFont(font);
+ return buildGroup2(group2.body, newOptions);
+ }, "mathmlBuilder$4");
+ fontAliases = {
+ "\\Bbb": "\\mathbb",
+ "\\bold": "\\mathbf",
+ "\\frak": "\\mathfrak",
+ "\\bm": "\\boldsymbol"
+ };
+ defineFunction({
+ type: "font",
+ names: [
+ // styles, except \boldsymbol defined below
+ "\\mathrm",
+ "\\mathit",
+ "\\mathbf",
+ "\\mathnormal",
+ // families
+ "\\mathbb",
+ "\\mathcal",
+ "\\mathfrak",
+ "\\mathscr",
+ "\\mathsf",
+ "\\mathtt",
+ // aliases, except \bm defined below
+ "\\Bbb",
+ "\\bold",
+ "\\frak"
+ ],
+ props: {
+ numArgs: 1,
+ allowedInArgument: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var body = normalizeArgument(args[0]);
+ var func = funcName;
+ if (func in fontAliases) {
+ func = fontAliases[func];
+ }
+ return {
+ type: "font",
+ mode: parser22.mode,
+ font: func.slice(1),
+ body
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$5,
+ mathmlBuilder: mathmlBuilder$4
+ });
+ defineFunction({
+ type: "mclass",
+ names: ["\\boldsymbol", "\\bm"],
+ props: {
+ numArgs: 1
+ },
+ handler: /* @__PURE__ */ __name((_ref2, args) => {
+ var {
+ parser: parser22
+ } = _ref2;
+ var body = args[0];
+ var isCharacterBox3 = utils.isCharacterBox(body);
+ return {
+ type: "mclass",
+ mode: parser22.mode,
+ mclass: binrelClass(body),
+ body: [{
+ type: "font",
+ mode: parser22.mode,
+ font: "boldsymbol",
+ body
+ }],
+ isCharacterBox: isCharacterBox3
+ };
+ }, "handler")
+ });
+ defineFunction({
+ type: "font",
+ names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"],
+ props: {
+ numArgs: 0,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref3, args) => {
+ var {
+ parser: parser22,
+ funcName,
+ breakOnTokenText
+ } = _ref3;
+ var {
+ mode
+ } = parser22;
+ var body = parser22.parseExpression(true, breakOnTokenText);
+ var style3 = "math" + funcName.slice(1);
+ return {
+ type: "font",
+ mode,
+ font: style3,
+ body: {
+ type: "ordgroup",
+ mode: parser22.mode,
+ body
+ }
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$5,
+ mathmlBuilder: mathmlBuilder$4
+ });
+ adjustStyle = /* @__PURE__ */ __name((size5, originalStyle) => {
+ var style3 = originalStyle;
+ if (size5 === "display") {
+ style3 = style3.id >= Style$1.SCRIPT.id ? style3.text() : Style$1.DISPLAY;
+ } else if (size5 === "text" && style3.size === Style$1.DISPLAY.size) {
+ style3 = Style$1.TEXT;
+ } else if (size5 === "script") {
+ style3 = Style$1.SCRIPT;
+ } else if (size5 === "scriptscript") {
+ style3 = Style$1.SCRIPTSCRIPT;
+ }
+ return style3;
+ }, "adjustStyle");
+ htmlBuilder$4 = /* @__PURE__ */ __name((group2, options3) => {
+ var style3 = adjustStyle(group2.size, options3.style);
+ var nstyle = style3.fracNum();
+ var dstyle = style3.fracDen();
+ var newOptions;
+ newOptions = options3.havingStyle(nstyle);
+ var numerm = buildGroup$1(group2.numer, newOptions, options3);
+ if (group2.continued) {
+ var hStrut = 8.5 / options3.fontMetrics().ptPerEm;
+ var dStrut = 3.5 / options3.fontMetrics().ptPerEm;
+ numerm.height = numerm.height < hStrut ? hStrut : numerm.height;
+ numerm.depth = numerm.depth < dStrut ? dStrut : numerm.depth;
+ }
+ newOptions = options3.havingStyle(dstyle);
+ var denomm = buildGroup$1(group2.denom, newOptions, options3);
+ var rule;
+ var ruleWidth;
+ var ruleSpacing;
+ if (group2.hasBarLine) {
+ if (group2.barSize) {
+ ruleWidth = calculateSize2(group2.barSize, options3);
+ rule = buildCommon.makeLineSpan("frac-line", options3, ruleWidth);
+ } else {
+ rule = buildCommon.makeLineSpan("frac-line", options3);
+ }
+ ruleWidth = rule.height;
+ ruleSpacing = rule.height;
+ } else {
+ rule = null;
+ ruleWidth = 0;
+ ruleSpacing = options3.fontMetrics().defaultRuleThickness;
+ }
+ var numShift;
+ var clearance;
+ var denomShift;
+ if (style3.size === Style$1.DISPLAY.size || group2.size === "display") {
+ numShift = options3.fontMetrics().num1;
+ if (ruleWidth > 0) {
+ clearance = 3 * ruleSpacing;
+ } else {
+ clearance = 7 * ruleSpacing;
+ }
+ denomShift = options3.fontMetrics().denom1;
+ } else {
+ if (ruleWidth > 0) {
+ numShift = options3.fontMetrics().num2;
+ clearance = ruleSpacing;
+ } else {
+ numShift = options3.fontMetrics().num3;
+ clearance = 3 * ruleSpacing;
+ }
+ denomShift = options3.fontMetrics().denom2;
+ }
+ var frac;
+ if (!rule) {
+ var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift);
+ if (candidateClearance < clearance) {
+ numShift += 0.5 * (clearance - candidateClearance);
+ denomShift += 0.5 * (clearance - candidateClearance);
+ }
+ frac = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: [{
+ type: "elem",
+ elem: denomm,
+ shift: denomShift
+ }, {
+ type: "elem",
+ elem: numerm,
+ shift: -numShift
+ }]
+ }, options3);
+ } else {
+ var axisHeight = options3.fontMetrics().axisHeight;
+ if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) {
+ numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth));
+ }
+ if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) {
+ denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift));
+ }
+ var midShift = -(axisHeight - 0.5 * ruleWidth);
+ frac = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: [{
+ type: "elem",
+ elem: denomm,
+ shift: denomShift
+ }, {
+ type: "elem",
+ elem: rule,
+ shift: midShift
+ }, {
+ type: "elem",
+ elem: numerm,
+ shift: -numShift
+ }]
+ }, options3);
+ }
+ newOptions = options3.havingStyle(style3);
+ frac.height *= newOptions.sizeMultiplier / options3.sizeMultiplier;
+ frac.depth *= newOptions.sizeMultiplier / options3.sizeMultiplier;
+ var delimSize;
+ if (style3.size === Style$1.DISPLAY.size) {
+ delimSize = options3.fontMetrics().delim1;
+ } else if (style3.size === Style$1.SCRIPTSCRIPT.size) {
+ delimSize = options3.havingStyle(Style$1.SCRIPT).fontMetrics().delim2;
+ } else {
+ delimSize = options3.fontMetrics().delim2;
}
- } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
- break;
- } else if (is_EOL(ch)) {
- _line = state2.line;
- _lineStart = state2.lineStart;
- _lineIndent = state2.lineIndent;
- skipSeparationSpace(state2, false, -1);
- if (state2.lineIndent >= nodeIndent) {
- hasPendingContent = true;
- ch = state2.input.charCodeAt(state2.position);
- continue;
+ var leftDelim;
+ var rightDelim;
+ if (group2.leftDelim == null) {
+ leftDelim = makeNullDelimiter(options3, ["mopen"]);
} else {
- state2.position = captureEnd;
- state2.line = _line;
- state2.lineStart = _lineStart;
- state2.lineIndent = _lineIndent;
- break;
+ leftDelim = delimiter.customSizedDelim(group2.leftDelim, delimSize, true, options3.havingStyle(style3), group2.mode, ["mopen"]);
}
- }
- if (hasPendingContent) {
- captureSegment(state2, captureStart, captureEnd, false);
- writeFoldedLines(state2, state2.line - _line);
- captureStart = captureEnd = state2.position;
- hasPendingContent = false;
- }
- if (!is_WHITE_SPACE(ch)) {
- captureEnd = state2.position + 1;
- }
- ch = state2.input.charCodeAt(++state2.position);
- }
- captureSegment(state2, captureStart, captureEnd, false);
- if (state2.result) {
- return true;
- }
- state2.kind = _kind;
- state2.result = _result;
- return false;
- }
- function readSingleQuotedScalar(state2, nodeIndent) {
- var ch, captureStart, captureEnd;
- ch = state2.input.charCodeAt(state2.position);
- if (ch !== 39) {
- return false;
- }
- state2.kind = "scalar";
- state2.result = "";
- state2.position++;
- captureStart = captureEnd = state2.position;
- while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {
- if (ch === 39) {
- captureSegment(state2, captureStart, state2.position, true);
- ch = state2.input.charCodeAt(++state2.position);
- if (ch === 39) {
- captureStart = state2.position;
- state2.position++;
- captureEnd = state2.position;
+ if (group2.continued) {
+ rightDelim = buildCommon.makeSpan([]);
+ } else if (group2.rightDelim == null) {
+ rightDelim = makeNullDelimiter(options3, ["mclose"]);
} else {
- return true;
+ rightDelim = delimiter.customSizedDelim(group2.rightDelim, delimSize, true, options3.havingStyle(style3), group2.mode, ["mclose"]);
+ }
+ return buildCommon.makeSpan(["mord"].concat(newOptions.sizingClasses(options3)), [leftDelim, buildCommon.makeSpan(["mfrac"], [frac]), rightDelim], options3);
+ }, "htmlBuilder$4");
+ mathmlBuilder$3 = /* @__PURE__ */ __name((group2, options3) => {
+ var node2 = new mathMLTree.MathNode("mfrac", [buildGroup2(group2.numer, options3), buildGroup2(group2.denom, options3)]);
+ if (!group2.hasBarLine) {
+ node2.setAttribute("linethickness", "0px");
+ } else if (group2.barSize) {
+ var ruleWidth = calculateSize2(group2.barSize, options3);
+ node2.setAttribute("linethickness", makeEm(ruleWidth));
+ }
+ var style3 = adjustStyle(group2.size, options3.style);
+ if (style3.size !== options3.style.size) {
+ node2 = new mathMLTree.MathNode("mstyle", [node2]);
+ var isDisplay = style3.size === Style$1.DISPLAY.size ? "true" : "false";
+ node2.setAttribute("displaystyle", isDisplay);
+ node2.setAttribute("scriptlevel", "0");
+ }
+ if (group2.leftDelim != null || group2.rightDelim != null) {
+ var withDelims = [];
+ if (group2.leftDelim != null) {
+ var leftOp = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(group2.leftDelim.replace("\\", ""))]);
+ leftOp.setAttribute("fence", "true");
+ withDelims.push(leftOp);
+ }
+ withDelims.push(node2);
+ if (group2.rightDelim != null) {
+ var rightOp = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(group2.rightDelim.replace("\\", ""))]);
+ rightOp.setAttribute("fence", "true");
+ withDelims.push(rightOp);
+ }
+ return makeRow(withDelims);
+ }
+ return node2;
+ }, "mathmlBuilder$3");
+ defineFunction({
+ type: "genfrac",
+ names: [
+ "\\dfrac",
+ "\\frac",
+ "\\tfrac",
+ "\\dbinom",
+ "\\binom",
+ "\\tbinom",
+ "\\\\atopfrac",
+ // can’t be entered directly
+ "\\\\bracefrac",
+ "\\\\brackfrac"
+ // ditto
+ ],
+ props: {
+ numArgs: 2,
+ allowedInArgument: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var numer = args[0];
+ var denom = args[1];
+ var hasBarLine;
+ var leftDelim = null;
+ var rightDelim = null;
+ var size5 = "auto";
+ switch (funcName) {
+ case "\\dfrac":
+ case "\\frac":
+ case "\\tfrac":
+ hasBarLine = true;
+ break;
+ case "\\\\atopfrac":
+ hasBarLine = false;
+ break;
+ case "\\dbinom":
+ case "\\binom":
+ case "\\tbinom":
+ hasBarLine = false;
+ leftDelim = "(";
+ rightDelim = ")";
+ break;
+ case "\\\\bracefrac":
+ hasBarLine = false;
+ leftDelim = "\\{";
+ rightDelim = "\\}";
+ break;
+ case "\\\\brackfrac":
+ hasBarLine = false;
+ leftDelim = "[";
+ rightDelim = "]";
+ break;
+ default:
+ throw new Error("Unrecognized genfrac command");
+ }
+ switch (funcName) {
+ case "\\dfrac":
+ case "\\dbinom":
+ size5 = "display";
+ break;
+ case "\\tfrac":
+ case "\\tbinom":
+ size5 = "text";
+ break;
+ }
+ return {
+ type: "genfrac",
+ mode: parser22.mode,
+ continued: false,
+ numer,
+ denom,
+ hasBarLine,
+ leftDelim,
+ rightDelim,
+ size: size5,
+ barSize: null
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$4,
+ mathmlBuilder: mathmlBuilder$3
+ });
+ defineFunction({
+ type: "genfrac",
+ names: ["\\cfrac"],
+ props: {
+ numArgs: 2
+ },
+ handler: /* @__PURE__ */ __name((_ref2, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref2;
+ var numer = args[0];
+ var denom = args[1];
+ return {
+ type: "genfrac",
+ mode: parser22.mode,
+ continued: true,
+ numer,
+ denom,
+ hasBarLine: true,
+ leftDelim: null,
+ rightDelim: null,
+ size: "display",
+ barSize: null
+ };
+ }, "handler")
+ });
+ defineFunction({
+ type: "infix",
+ names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"],
+ props: {
+ numArgs: 0,
+ infix: true
+ },
+ handler(_ref3) {
+ var {
+ parser: parser22,
+ funcName,
+ token: token2
+ } = _ref3;
+ var replaceWith;
+ switch (funcName) {
+ case "\\over":
+ replaceWith = "\\frac";
+ break;
+ case "\\choose":
+ replaceWith = "\\binom";
+ break;
+ case "\\atop":
+ replaceWith = "\\\\atopfrac";
+ break;
+ case "\\brace":
+ replaceWith = "\\\\bracefrac";
+ break;
+ case "\\brack":
+ replaceWith = "\\\\brackfrac";
+ break;
+ default:
+ throw new Error("Unrecognized infix genfrac command");
+ }
+ return {
+ type: "infix",
+ mode: parser22.mode,
+ replaceWith,
+ token: token2
+ };
}
- } else if (is_EOL(ch)) {
- captureSegment(state2, captureStart, captureEnd, true);
- writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));
- captureStart = captureEnd = state2.position;
- } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {
- throwError(state2, "unexpected end of the document within a single quoted scalar");
- } else {
- state2.position++;
- captureEnd = state2.position;
- }
- }
- throwError(state2, "unexpected end of the stream within a single quoted scalar");
- }
- function readDoubleQuotedScalar(state2, nodeIndent) {
- var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
- ch = state2.input.charCodeAt(state2.position);
- if (ch !== 34) {
- return false;
- }
- state2.kind = "scalar";
- state2.result = "";
- state2.position++;
- captureStart = captureEnd = state2.position;
- while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {
- if (ch === 34) {
- captureSegment(state2, captureStart, state2.position, true);
- state2.position++;
- return true;
- } else if (ch === 92) {
- captureSegment(state2, captureStart, state2.position, true);
- ch = state2.input.charCodeAt(++state2.position);
- if (is_EOL(ch)) {
- skipSeparationSpace(state2, false, nodeIndent);
- } else if (ch < 256 && simpleEscapeCheck[ch]) {
- state2.result += simpleEscapeMap[ch];
- state2.position++;
- } else if ((tmp = escapedHexLen(ch)) > 0) {
- hexLength = tmp;
- hexResult = 0;
- for (; hexLength > 0; hexLength--) {
- ch = state2.input.charCodeAt(++state2.position);
- if ((tmp = fromHexCode(ch)) >= 0) {
- hexResult = (hexResult << 4) + tmp;
- } else {
- throwError(state2, "expected hexadecimal character");
+ });
+ stylArray = ["display", "text", "script", "scriptscript"];
+ delimFromValue = /* @__PURE__ */ __name(function delimFromValue2(delimString) {
+ var delim = null;
+ if (delimString.length > 0) {
+ delim = delimString;
+ delim = delim === "." ? null : delim;
+ }
+ return delim;
+ }, "delimFromValue");
+ defineFunction({
+ type: "genfrac",
+ names: ["\\genfrac"],
+ props: {
+ numArgs: 6,
+ allowedInArgument: true,
+ argTypes: ["math", "math", "size", "text", "math", "math"]
+ },
+ handler(_ref4, args) {
+ var {
+ parser: parser22
+ } = _ref4;
+ var numer = args[4];
+ var denom = args[5];
+ var leftNode = normalizeArgument(args[0]);
+ var leftDelim = leftNode.type === "atom" && leftNode.family === "open" ? delimFromValue(leftNode.text) : null;
+ var rightNode = normalizeArgument(args[1]);
+ var rightDelim = rightNode.type === "atom" && rightNode.family === "close" ? delimFromValue(rightNode.text) : null;
+ var barNode = assertNodeType(args[2], "size");
+ var hasBarLine;
+ var barSize = null;
+ if (barNode.isBlank) {
+ hasBarLine = true;
+ } else {
+ barSize = barNode.value;
+ hasBarLine = barSize.number > 0;
+ }
+ var size5 = "auto";
+ var styl = args[3];
+ if (styl.type === "ordgroup") {
+ if (styl.body.length > 0) {
+ var textOrd = assertNodeType(styl.body[0], "textord");
+ size5 = stylArray[Number(textOrd.text)];
}
+ } else {
+ styl = assertNodeType(styl, "textord");
+ size5 = stylArray[Number(styl.text)];
}
- state2.result += charFromCodepoint(hexResult);
- state2.position++;
- } else {
- throwError(state2, "unknown escape sequence");
+ return {
+ type: "genfrac",
+ mode: parser22.mode,
+ numer,
+ denom,
+ continued: false,
+ hasBarLine,
+ barSize,
+ leftDelim,
+ rightDelim,
+ size: size5
+ };
+ },
+ htmlBuilder: htmlBuilder$4,
+ mathmlBuilder: mathmlBuilder$3
+ });
+ defineFunction({
+ type: "infix",
+ names: ["\\above"],
+ props: {
+ numArgs: 1,
+ argTypes: ["size"],
+ infix: true
+ },
+ handler(_ref5, args) {
+ var {
+ parser: parser22,
+ funcName,
+ token: token2
+ } = _ref5;
+ return {
+ type: "infix",
+ mode: parser22.mode,
+ replaceWith: "\\\\abovefrac",
+ size: assertNodeType(args[0], "size").value,
+ token: token2
+ };
}
- captureStart = captureEnd = state2.position;
- } else if (is_EOL(ch)) {
- captureSegment(state2, captureStart, captureEnd, true);
- writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));
- captureStart = captureEnd = state2.position;
- } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {
- throwError(state2, "unexpected end of the document within a double quoted scalar");
- } else {
- state2.position++;
- captureEnd = state2.position;
- }
- }
- throwError(state2, "unexpected end of the stream within a double quoted scalar");
- }
- function readFlowCollection(state2, nodeIndent) {
- var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
- ch = state2.input.charCodeAt(state2.position);
- if (ch === 91) {
- terminator = 93;
- isMapping = false;
- _result = [];
- } else if (ch === 123) {
- terminator = 125;
- isMapping = true;
- _result = {};
- } else {
- return false;
- }
- if (state2.anchor !== null) {
- state2.anchorMap[state2.anchor] = _result;
- }
- ch = state2.input.charCodeAt(++state2.position);
- while (ch !== 0) {
- skipSeparationSpace(state2, true, nodeIndent);
- ch = state2.input.charCodeAt(state2.position);
- if (ch === terminator) {
- state2.position++;
- state2.tag = _tag;
- state2.anchor = _anchor;
- state2.kind = isMapping ? "mapping" : "sequence";
- state2.result = _result;
- return true;
- } else if (!readNext) {
- throwError(state2, "missed comma between flow collection entries");
- } else if (ch === 44) {
- throwError(state2, "expected the node content, but found ','");
- }
- keyTag = keyNode = valueNode = null;
- isPair = isExplicitPair = false;
- if (ch === 63) {
- following = state2.input.charCodeAt(state2.position + 1);
- if (is_WS_OR_EOL(following)) {
- isPair = isExplicitPair = true;
- state2.position++;
- skipSeparationSpace(state2, true, nodeIndent);
- }
- }
- _line = state2.line;
- _lineStart = state2.lineStart;
- _pos = state2.position;
- composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);
- keyTag = state2.tag;
- keyNode = state2.result;
- skipSeparationSpace(state2, true, nodeIndent);
- ch = state2.input.charCodeAt(state2.position);
- if ((isExplicitPair || state2.line === _line) && ch === 58) {
- isPair = true;
- ch = state2.input.charCodeAt(++state2.position);
- skipSeparationSpace(state2, true, nodeIndent);
- composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);
- valueNode = state2.result;
- }
- if (isMapping) {
- storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
- } else if (isPair) {
- _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
- } else {
- _result.push(keyNode);
- }
- skipSeparationSpace(state2, true, nodeIndent);
- ch = state2.input.charCodeAt(state2.position);
- if (ch === 44) {
- readNext = true;
- ch = state2.input.charCodeAt(++state2.position);
- } else {
- readNext = false;
- }
- }
- throwError(state2, "unexpected end of the stream within a flow collection");
- }
- function readBlockScalar(state2, nodeIndent) {
- var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
- ch = state2.input.charCodeAt(state2.position);
- if (ch === 124) {
- folding = false;
- } else if (ch === 62) {
- folding = true;
- } else {
- return false;
- }
- state2.kind = "scalar";
- state2.result = "";
- while (ch !== 0) {
- ch = state2.input.charCodeAt(++state2.position);
- if (ch === 43 || ch === 45) {
- if (CHOMPING_CLIP === chomping) {
- chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
+ });
+ defineFunction({
+ type: "genfrac",
+ names: ["\\\\abovefrac"],
+ props: {
+ numArgs: 3,
+ argTypes: ["math", "size", "math"]
+ },
+ handler: /* @__PURE__ */ __name((_ref6, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref6;
+ var numer = args[0];
+ var barSize = assert(assertNodeType(args[1], "infix").size);
+ var denom = args[2];
+ var hasBarLine = barSize.number > 0;
+ return {
+ type: "genfrac",
+ mode: parser22.mode,
+ numer,
+ denom,
+ continued: false,
+ hasBarLine,
+ barSize,
+ leftDelim: null,
+ rightDelim: null,
+ size: "auto"
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$4,
+ mathmlBuilder: mathmlBuilder$3
+ });
+ htmlBuilder$3 = /* @__PURE__ */ __name((grp, options3) => {
+ var style3 = options3.style;
+ var supSubGroup;
+ var group2;
+ if (grp.type === "supsub") {
+ supSubGroup = grp.sup ? buildGroup$1(grp.sup, options3.havingStyle(style3.sup()), options3) : buildGroup$1(grp.sub, options3.havingStyle(style3.sub()), options3);
+ group2 = assertNodeType(grp.base, "horizBrace");
} else {
- throwError(state2, "repeat of a chomping mode identifier");
- }
- } else if ((tmp = fromDecimalCode(ch)) >= 0) {
- if (tmp === 0) {
- throwError(state2, "bad explicit indentation width of a block scalar; it cannot be less than one");
- } else if (!detectedIndent) {
- textIndent = nodeIndent + tmp - 1;
- detectedIndent = true;
+ group2 = assertNodeType(grp, "horizBrace");
+ }
+ var body = buildGroup$1(group2.base, options3.havingBaseStyle(Style$1.DISPLAY));
+ var braceBody = stretchy.svgSpan(group2, options3);
+ var vlist;
+ if (group2.isOver) {
+ vlist = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: body
+ }, {
+ type: "kern",
+ size: 0.1
+ }, {
+ type: "elem",
+ elem: braceBody
+ }]
+ }, options3);
+ vlist.children[0].children[0].children[1].classes.push("svg-align");
} else {
- throwError(state2, "repeat of an indentation width identifier");
- }
- } else {
- break;
- }
- }
- if (is_WHITE_SPACE(ch)) {
- do {
- ch = state2.input.charCodeAt(++state2.position);
- } while (is_WHITE_SPACE(ch));
- if (ch === 35) {
- do {
- ch = state2.input.charCodeAt(++state2.position);
- } while (!is_EOL(ch) && ch !== 0);
- }
- }
- while (ch !== 0) {
- readLineBreak(state2);
- state2.lineIndent = 0;
- ch = state2.input.charCodeAt(state2.position);
- while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) {
- state2.lineIndent++;
- ch = state2.input.charCodeAt(++state2.position);
- }
- if (!detectedIndent && state2.lineIndent > textIndent) {
- textIndent = state2.lineIndent;
- }
- if (is_EOL(ch)) {
- emptyLines++;
- continue;
- }
- if (state2.lineIndent < textIndent) {
- if (chomping === CHOMPING_KEEP) {
- state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
- } else if (chomping === CHOMPING_CLIP) {
- if (didReadContent) {
- state2.result += "\n";
+ vlist = buildCommon.makeVList({
+ positionType: "bottom",
+ positionData: body.depth + 0.1 + braceBody.height,
+ children: [{
+ type: "elem",
+ elem: braceBody
+ }, {
+ type: "kern",
+ size: 0.1
+ }, {
+ type: "elem",
+ elem: body
+ }]
+ }, options3);
+ vlist.children[0].children[0].children[0].classes.push("svg-align");
+ }
+ if (supSubGroup) {
+ var vSpan = buildCommon.makeSpan(["mord", group2.isOver ? "mover" : "munder"], [vlist], options3);
+ if (group2.isOver) {
+ vlist = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: vSpan
+ }, {
+ type: "kern",
+ size: 0.2
+ }, {
+ type: "elem",
+ elem: supSubGroup
+ }]
+ }, options3);
+ } else {
+ vlist = buildCommon.makeVList({
+ positionType: "bottom",
+ positionData: vSpan.depth + 0.2 + supSubGroup.height + supSubGroup.depth,
+ children: [{
+ type: "elem",
+ elem: supSubGroup
+ }, {
+ type: "kern",
+ size: 0.2
+ }, {
+ type: "elem",
+ elem: vSpan
+ }]
+ }, options3);
+ }
+ }
+ return buildCommon.makeSpan(["mord", group2.isOver ? "mover" : "munder"], [vlist], options3);
+ }, "htmlBuilder$3");
+ mathmlBuilder$2 = /* @__PURE__ */ __name((group2, options3) => {
+ var accentNode = stretchy.mathMLnode(group2.label);
+ return new mathMLTree.MathNode(group2.isOver ? "mover" : "munder", [buildGroup2(group2.base, options3), accentNode]);
+ }, "mathmlBuilder$2");
+ defineFunction({
+ type: "horizBrace",
+ names: ["\\overbrace", "\\underbrace"],
+ props: {
+ numArgs: 1
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ return {
+ type: "horizBrace",
+ mode: parser22.mode,
+ label: funcName,
+ isOver: /^\\over/.test(funcName),
+ base: args[0]
+ };
+ },
+ htmlBuilder: htmlBuilder$3,
+ mathmlBuilder: mathmlBuilder$2
+ });
+ defineFunction({
+ type: "href",
+ names: ["\\href"],
+ props: {
+ numArgs: 2,
+ argTypes: ["url", "original"],
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22
+ } = _ref;
+ var body = args[1];
+ var href = assertNodeType(args[0], "url").url;
+ if (!parser22.settings.isTrusted({
+ command: "\\href",
+ url: href
+ })) {
+ return parser22.formatUnsupportedCmd("\\href");
+ }
+ return {
+ type: "href",
+ mode: parser22.mode,
+ href,
+ body: ordargument(body)
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var elements3 = buildExpression$1(group2.body, options3, false);
+ return buildCommon.makeAnchor(group2.href, [], elements3, options3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var math2 = buildExpressionRow(group2.body, options3);
+ if (!(math2 instanceof MathNode)) {
+ math2 = new MathNode("mrow", [math2]);
+ }
+ math2.setAttribute("href", group2.href);
+ return math2;
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "href",
+ names: ["\\url"],
+ props: {
+ numArgs: 1,
+ argTypes: ["url"],
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref2, args) => {
+ var {
+ parser: parser22
+ } = _ref2;
+ var href = assertNodeType(args[0], "url").url;
+ if (!parser22.settings.isTrusted({
+ command: "\\url",
+ url: href
+ })) {
+ return parser22.formatUnsupportedCmd("\\url");
+ }
+ var chars = [];
+ for (var i2 = 0; i2 < href.length; i2++) {
+ var c3 = href[i2];
+ if (c3 === "~") {
+ c3 = "\\textasciitilde";
+ }
+ chars.push({
+ type: "textord",
+ mode: "text",
+ text: c3
+ });
}
+ var body = {
+ type: "text",
+ mode: parser22.mode,
+ font: "\\texttt",
+ body: chars
+ };
+ return {
+ type: "href",
+ mode: parser22.mode,
+ href,
+ body: ordargument(body)
+ };
+ }, "handler")
+ });
+ defineFunction({
+ type: "hbox",
+ names: ["\\hbox"],
+ props: {
+ numArgs: 1,
+ argTypes: ["text"],
+ allowedInText: true,
+ primitive: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ return {
+ type: "hbox",
+ mode: parser22.mode,
+ body: ordargument(args[0])
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var elements3 = buildExpression$1(group2.body, options3, false);
+ return buildCommon.makeFragment(elements3);
+ },
+ mathmlBuilder(group2, options3) {
+ return new mathMLTree.MathNode("mrow", buildExpression2(group2.body, options3));
}
- break;
- }
- if (folding) {
- if (is_WHITE_SPACE(ch)) {
- atMoreIndented = true;
- state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
- } else if (atMoreIndented) {
- atMoreIndented = false;
- state2.result += common.repeat("\n", emptyLines + 1);
- } else if (emptyLines === 0) {
- if (didReadContent) {
- state2.result += " ";
+ });
+ defineFunction({
+ type: "html",
+ names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"],
+ props: {
+ numArgs: 2,
+ argTypes: ["raw", "original"],
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22,
+ funcName,
+ token: token2
+ } = _ref;
+ var value2 = assertNodeType(args[0], "raw").string;
+ var body = args[1];
+ if (parser22.settings.strict) {
+ parser22.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode");
+ }
+ var trustContext;
+ var attributes = {};
+ switch (funcName) {
+ case "\\htmlClass":
+ attributes.class = value2;
+ trustContext = {
+ command: "\\htmlClass",
+ class: value2
+ };
+ break;
+ case "\\htmlId":
+ attributes.id = value2;
+ trustContext = {
+ command: "\\htmlId",
+ id: value2
+ };
+ break;
+ case "\\htmlStyle":
+ attributes.style = value2;
+ trustContext = {
+ command: "\\htmlStyle",
+ style: value2
+ };
+ break;
+ case "\\htmlData": {
+ var data5 = value2.split(",");
+ for (var i2 = 0; i2 < data5.length; i2++) {
+ var keyVal = data5[i2].split("=");
+ if (keyVal.length !== 2) {
+ throw new ParseError("Error parsing key-value for \\htmlData");
+ }
+ attributes["data-" + keyVal[0].trim()] = keyVal[1].trim();
+ }
+ trustContext = {
+ command: "\\htmlData",
+ attributes
+ };
+ break;
+ }
+ default:
+ throw new Error("Unrecognized html command");
+ }
+ if (!parser22.settings.isTrusted(trustContext)) {
+ return parser22.formatUnsupportedCmd(funcName);
}
+ return {
+ type: "html",
+ mode: parser22.mode,
+ attributes,
+ body: ordargument(body)
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var elements3 = buildExpression$1(group2.body, options3, false);
+ var classes6 = ["enclosing"];
+ if (group2.attributes.class) {
+ classes6.push(...group2.attributes.class.trim().split(/\s+/));
+ }
+ var span = buildCommon.makeSpan(classes6, elements3, options3);
+ for (var attr in group2.attributes) {
+ if (attr !== "class" && group2.attributes.hasOwnProperty(attr)) {
+ span.setAttribute(attr, group2.attributes[attr]);
+ }
+ }
+ return span;
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ return buildExpressionRow(group2.body, options3);
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "htmlmathml",
+ names: ["\\html@mathml"],
+ props: {
+ numArgs: 2,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22
+ } = _ref;
+ return {
+ type: "htmlmathml",
+ mode: parser22.mode,
+ html: ordargument(args[0]),
+ mathml: ordargument(args[1])
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var elements3 = buildExpression$1(group2.html, options3, false);
+ return buildCommon.makeFragment(elements3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ return buildExpressionRow(group2.mathml, options3);
+ }, "mathmlBuilder")
+ });
+ sizeData = /* @__PURE__ */ __name(function sizeData2(str2) {
+ if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(str2)) {
+ return {
+ number: +str2,
+ unit: "bp"
+ };
} else {
- state2.result += common.repeat("\n", emptyLines);
+ var match2 = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(str2);
+ if (!match2) {
+ throw new ParseError("Invalid size: '" + str2 + "' in \\includegraphics");
+ }
+ var data5 = {
+ number: +(match2[1] + match2[2]),
+ // sign + magnitude, cast to number
+ unit: match2[3]
+ };
+ if (!validUnit(data5)) {
+ throw new ParseError("Invalid unit: '" + data5.unit + "' in \\includegraphics.");
+ }
+ return data5;
+ }
+ }, "sizeData");
+ defineFunction({
+ type: "includegraphics",
+ names: ["\\includegraphics"],
+ props: {
+ numArgs: 1,
+ numOptionalArgs: 1,
+ argTypes: ["raw", "url"],
+ allowedInText: false
+ },
+ handler: /* @__PURE__ */ __name((_ref, args, optArgs) => {
+ var {
+ parser: parser22
+ } = _ref;
+ var width3 = {
+ number: 0,
+ unit: "em"
+ };
+ var height2 = {
+ number: 0.9,
+ unit: "em"
+ };
+ var totalheight = {
+ number: 0,
+ unit: "em"
+ };
+ var alt = "";
+ if (optArgs[0]) {
+ var attributeStr = assertNodeType(optArgs[0], "raw").string;
+ var attributes = attributeStr.split(",");
+ for (var i2 = 0; i2 < attributes.length; i2++) {
+ var keyVal = attributes[i2].split("=");
+ if (keyVal.length === 2) {
+ var str2 = keyVal[1].trim();
+ switch (keyVal[0].trim()) {
+ case "alt":
+ alt = str2;
+ break;
+ case "width":
+ width3 = sizeData(str2);
+ break;
+ case "height":
+ height2 = sizeData(str2);
+ break;
+ case "totalheight":
+ totalheight = sizeData(str2);
+ break;
+ default:
+ throw new ParseError("Invalid key: '" + keyVal[0] + "' in \\includegraphics.");
+ }
+ }
+ }
+ }
+ var src = assertNodeType(args[0], "url").url;
+ if (alt === "") {
+ alt = src;
+ alt = alt.replace(/^.*[\\/]/, "");
+ alt = alt.substring(0, alt.lastIndexOf("."));
+ }
+ if (!parser22.settings.isTrusted({
+ command: "\\includegraphics",
+ url: src
+ })) {
+ return parser22.formatUnsupportedCmd("\\includegraphics");
+ }
+ return {
+ type: "includegraphics",
+ mode: parser22.mode,
+ alt,
+ width: width3,
+ height: height2,
+ totalheight,
+ src
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var height2 = calculateSize2(group2.height, options3);
+ var depth = 0;
+ if (group2.totalheight.number > 0) {
+ depth = calculateSize2(group2.totalheight, options3) - height2;
+ }
+ var width3 = 0;
+ if (group2.width.number > 0) {
+ width3 = calculateSize2(group2.width, options3);
+ }
+ var style3 = {
+ height: makeEm(height2 + depth)
+ };
+ if (width3 > 0) {
+ style3.width = makeEm(width3);
+ }
+ if (depth > 0) {
+ style3.verticalAlign = makeEm(-depth);
+ }
+ var node2 = new Img(group2.src, group2.alt, style3);
+ node2.height = height2;
+ node2.depth = depth;
+ return node2;
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var node2 = new mathMLTree.MathNode("mglyph", []);
+ node2.setAttribute("alt", group2.alt);
+ var height2 = calculateSize2(group2.height, options3);
+ var depth = 0;
+ if (group2.totalheight.number > 0) {
+ depth = calculateSize2(group2.totalheight, options3) - height2;
+ node2.setAttribute("valign", makeEm(-depth));
+ }
+ node2.setAttribute("height", makeEm(height2 + depth));
+ if (group2.width.number > 0) {
+ var width3 = calculateSize2(group2.width, options3);
+ node2.setAttribute("width", makeEm(width3));
+ }
+ node2.setAttribute("src", group2.src);
+ return node2;
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "kern",
+ names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"],
+ props: {
+ numArgs: 1,
+ argTypes: ["size"],
+ primitive: true,
+ allowedInText: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var size5 = assertNodeType(args[0], "size");
+ if (parser22.settings.strict) {
+ var mathFunction = funcName[1] === "m";
+ var muUnit = size5.value.unit === "mu";
+ if (mathFunction) {
+ if (!muUnit) {
+ parser22.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " supports only mu units, " + ("not " + size5.value.unit + " units"));
+ }
+ if (parser22.mode !== "math") {
+ parser22.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " works only in math mode");
+ }
+ } else {
+ if (muUnit) {
+ parser22.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " doesn't support mu units");
+ }
+ }
+ }
+ return {
+ type: "kern",
+ mode: parser22.mode,
+ dimension: size5.value
+ };
+ },
+ htmlBuilder(group2, options3) {
+ return buildCommon.makeGlue(group2.dimension, options3);
+ },
+ mathmlBuilder(group2, options3) {
+ var dimension = calculateSize2(group2.dimension, options3);
+ return new mathMLTree.SpaceNode(dimension);
}
- } else {
- state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
- }
- didReadContent = true;
- detectedIndent = true;
- emptyLines = 0;
- captureStart = state2.position;
- while (!is_EOL(ch) && ch !== 0) {
- ch = state2.input.charCodeAt(++state2.position);
- }
- captureSegment(state2, captureStart, state2.position, false);
- }
- return true;
- }
- function readBlockSequence(state2, nodeIndent) {
- var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch;
- if (state2.firstTabInLine !== -1)
- return false;
- if (state2.anchor !== null) {
- state2.anchorMap[state2.anchor] = _result;
- }
- ch = state2.input.charCodeAt(state2.position);
- while (ch !== 0) {
- if (state2.firstTabInLine !== -1) {
- state2.position = state2.firstTabInLine;
- throwError(state2, "tab characters must not be used in indentation");
- }
- if (ch !== 45) {
- break;
- }
- following = state2.input.charCodeAt(state2.position + 1);
- if (!is_WS_OR_EOL(following)) {
- break;
- }
- detected = true;
- state2.position++;
- if (skipSeparationSpace(state2, true, -1)) {
- if (state2.lineIndent <= nodeIndent) {
- _result.push(null);
- ch = state2.input.charCodeAt(state2.position);
- continue;
+ });
+ defineFunction({
+ type: "lap",
+ names: ["\\mathllap", "\\mathrlap", "\\mathclap"],
+ props: {
+ numArgs: 1,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var body = args[0];
+ return {
+ type: "lap",
+ mode: parser22.mode,
+ alignment: funcName.slice(5),
+ body
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var inner2;
+ if (group2.alignment === "clap") {
+ inner2 = buildCommon.makeSpan([], [buildGroup$1(group2.body, options3)]);
+ inner2 = buildCommon.makeSpan(["inner"], [inner2], options3);
+ } else {
+ inner2 = buildCommon.makeSpan(["inner"], [buildGroup$1(group2.body, options3)]);
+ }
+ var fix = buildCommon.makeSpan(["fix"], []);
+ var node2 = buildCommon.makeSpan([group2.alignment], [inner2, fix], options3);
+ var strut = buildCommon.makeSpan(["strut"]);
+ strut.style.height = makeEm(node2.height + node2.depth);
+ if (node2.depth) {
+ strut.style.verticalAlign = makeEm(-node2.depth);
+ }
+ node2.children.unshift(strut);
+ node2 = buildCommon.makeSpan(["thinbox"], [node2], options3);
+ return buildCommon.makeSpan(["mord", "vbox"], [node2], options3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var node2 = new mathMLTree.MathNode("mpadded", [buildGroup2(group2.body, options3)]);
+ if (group2.alignment !== "rlap") {
+ var offset = group2.alignment === "llap" ? "-1" : "-0.5";
+ node2.setAttribute("lspace", offset + "width");
+ }
+ node2.setAttribute("width", "0px");
+ return node2;
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "styling",
+ names: ["\\(", "$"],
+ props: {
+ numArgs: 0,
+ allowedInText: true,
+ allowedInMath: false
+ },
+ handler(_ref, args) {
+ var {
+ funcName,
+ parser: parser22
+ } = _ref;
+ var outerMode = parser22.mode;
+ parser22.switchMode("math");
+ var close2 = funcName === "\\(" ? "\\)" : "$";
+ var body = parser22.parseExpression(false, close2);
+ parser22.expect(close2);
+ parser22.switchMode(outerMode);
+ return {
+ type: "styling",
+ mode: parser22.mode,
+ style: "text",
+ body
+ };
}
- }
- _line = state2.line;
- composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true);
- _result.push(state2.result);
- skipSeparationSpace(state2, true, -1);
- ch = state2.input.charCodeAt(state2.position);
- if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {
- throwError(state2, "bad indentation of a sequence entry");
- } else if (state2.lineIndent < nodeIndent) {
- break;
- }
- }
- if (detected) {
- state2.tag = _tag;
- state2.anchor = _anchor;
- state2.kind = "sequence";
- state2.result = _result;
- return true;
- }
- return false;
- }
- function readBlockMapping(state2, nodeIndent, flowIndent) {
- var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
- if (state2.firstTabInLine !== -1)
- return false;
- if (state2.anchor !== null) {
- state2.anchorMap[state2.anchor] = _result;
- }
- ch = state2.input.charCodeAt(state2.position);
- while (ch !== 0) {
- if (!atExplicitKey && state2.firstTabInLine !== -1) {
- state2.position = state2.firstTabInLine;
- throwError(state2, "tab characters must not be used in indentation");
- }
- following = state2.input.charCodeAt(state2.position + 1);
- _line = state2.line;
- if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
- if (ch === 63) {
- if (atExplicitKey) {
- storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
- keyTag = keyNode = valueNode = null;
- }
- detected = true;
- atExplicitKey = true;
- allowCompact = true;
- } else if (atExplicitKey) {
- atExplicitKey = false;
- allowCompact = true;
- } else {
- throwError(state2, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
+ });
+ defineFunction({
+ type: "text",
+ // Doesn't matter what this is.
+ names: ["\\)", "\\]"],
+ props: {
+ numArgs: 0,
+ allowedInText: true,
+ allowedInMath: false
+ },
+ handler(context, args) {
+ throw new ParseError("Mismatched " + context.funcName);
}
- state2.position += 1;
- ch = following;
- } else {
- _keyLine = state2.line;
- _keyLineStart = state2.lineStart;
- _keyPos = state2.position;
- if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
- break;
+ });
+ chooseMathStyle = /* @__PURE__ */ __name((group2, options3) => {
+ switch (options3.style.size) {
+ case Style$1.DISPLAY.size:
+ return group2.display;
+ case Style$1.TEXT.size:
+ return group2.text;
+ case Style$1.SCRIPT.size:
+ return group2.script;
+ case Style$1.SCRIPTSCRIPT.size:
+ return group2.scriptscript;
+ default:
+ return group2.text;
+ }
+ }, "chooseMathStyle");
+ defineFunction({
+ type: "mathchoice",
+ names: ["\\mathchoice"],
+ props: {
+ numArgs: 4,
+ primitive: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22
+ } = _ref;
+ return {
+ type: "mathchoice",
+ mode: parser22.mode,
+ display: ordargument(args[0]),
+ text: ordargument(args[1]),
+ script: ordargument(args[2]),
+ scriptscript: ordargument(args[3])
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var body = chooseMathStyle(group2, options3);
+ var elements3 = buildExpression$1(body, options3, false);
+ return buildCommon.makeFragment(elements3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var body = chooseMathStyle(group2, options3);
+ return buildExpressionRow(body, options3);
+ }, "mathmlBuilder")
+ });
+ assembleSupSub = /* @__PURE__ */ __name((base, supGroup, subGroup, options3, style3, slant, baseShift) => {
+ base = buildCommon.makeSpan([], [base]);
+ var subIsSingleCharacter = subGroup && utils.isCharacterBox(subGroup);
+ var sub2;
+ var sup2;
+ if (supGroup) {
+ var elem = buildGroup$1(supGroup, options3.havingStyle(style3.sup()), options3);
+ sup2 = {
+ elem,
+ kern: Math.max(options3.fontMetrics().bigOpSpacing1, options3.fontMetrics().bigOpSpacing3 - elem.depth)
+ };
}
- if (state2.line === _line) {
- ch = state2.input.charCodeAt(state2.position);
- while (is_WHITE_SPACE(ch)) {
- ch = state2.input.charCodeAt(++state2.position);
- }
- if (ch === 58) {
- ch = state2.input.charCodeAt(++state2.position);
- if (!is_WS_OR_EOL(ch)) {
- throwError(state2, "a whitespace character is expected after the key-value separator within a block mapping");
- }
- if (atExplicitKey) {
- storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
- keyTag = keyNode = valueNode = null;
- }
- detected = true;
- atExplicitKey = false;
- allowCompact = false;
- keyTag = state2.tag;
- keyNode = state2.result;
- } else if (detected) {
- throwError(state2, "can not read an implicit mapping pair; a colon is missed");
+ if (subGroup) {
+ var _elem = buildGroup$1(subGroup, options3.havingStyle(style3.sub()), options3);
+ sub2 = {
+ elem: _elem,
+ kern: Math.max(options3.fontMetrics().bigOpSpacing2, options3.fontMetrics().bigOpSpacing4 - _elem.height)
+ };
+ }
+ var finalGroup;
+ if (sup2 && sub2) {
+ var bottom2 = options3.fontMetrics().bigOpSpacing5 + sub2.elem.height + sub2.elem.depth + sub2.kern + base.depth + baseShift;
+ finalGroup = buildCommon.makeVList({
+ positionType: "bottom",
+ positionData: bottom2,
+ children: [{
+ type: "kern",
+ size: options3.fontMetrics().bigOpSpacing5
+ }, {
+ type: "elem",
+ elem: sub2.elem,
+ marginLeft: makeEm(-slant)
+ }, {
+ type: "kern",
+ size: sub2.kern
+ }, {
+ type: "elem",
+ elem: base
+ }, {
+ type: "kern",
+ size: sup2.kern
+ }, {
+ type: "elem",
+ elem: sup2.elem,
+ marginLeft: makeEm(slant)
+ }, {
+ type: "kern",
+ size: options3.fontMetrics().bigOpSpacing5
+ }]
+ }, options3);
+ } else if (sub2) {
+ var top2 = base.height - baseShift;
+ finalGroup = buildCommon.makeVList({
+ positionType: "top",
+ positionData: top2,
+ children: [{
+ type: "kern",
+ size: options3.fontMetrics().bigOpSpacing5
+ }, {
+ type: "elem",
+ elem: sub2.elem,
+ marginLeft: makeEm(-slant)
+ }, {
+ type: "kern",
+ size: sub2.kern
+ }, {
+ type: "elem",
+ elem: base
+ }]
+ }, options3);
+ } else if (sup2) {
+ var _bottom = base.depth + baseShift;
+ finalGroup = buildCommon.makeVList({
+ positionType: "bottom",
+ positionData: _bottom,
+ children: [{
+ type: "elem",
+ elem: base
+ }, {
+ type: "kern",
+ size: sup2.kern
+ }, {
+ type: "elem",
+ elem: sup2.elem,
+ marginLeft: makeEm(slant)
+ }, {
+ type: "kern",
+ size: options3.fontMetrics().bigOpSpacing5
+ }]
+ }, options3);
+ } else {
+ return base;
+ }
+ var parts = [finalGroup];
+ if (sub2 && slant !== 0 && !subIsSingleCharacter) {
+ var spacer = buildCommon.makeSpan(["mspace"], [], options3);
+ spacer.style.marginRight = makeEm(slant);
+ parts.unshift(spacer);
+ }
+ return buildCommon.makeSpan(["mop", "op-limits"], parts, options3);
+ }, "assembleSupSub");
+ noSuccessor = ["\\smallint"];
+ htmlBuilder$2 = /* @__PURE__ */ __name((grp, options3) => {
+ var supGroup;
+ var subGroup;
+ var hasLimits = false;
+ var group2;
+ if (grp.type === "supsub") {
+ supGroup = grp.sup;
+ subGroup = grp.sub;
+ group2 = assertNodeType(grp.base, "op");
+ hasLimits = true;
+ } else {
+ group2 = assertNodeType(grp, "op");
+ }
+ var style3 = options3.style;
+ var large = false;
+ if (style3.size === Style$1.DISPLAY.size && group2.symbol && !utils.contains(noSuccessor, group2.name)) {
+ large = true;
+ }
+ var base;
+ if (group2.symbol) {
+ var fontName = large ? "Size2-Regular" : "Size1-Regular";
+ var stash = "";
+ if (group2.name === "\\oiint" || group2.name === "\\oiiint") {
+ stash = group2.name.slice(1);
+ group2.name = stash === "oiint" ? "\\iint" : "\\iiint";
+ }
+ base = buildCommon.makeSymbol(group2.name, fontName, "math", options3, ["mop", "op-symbol", large ? "large-op" : "small-op"]);
+ if (stash.length > 0) {
+ var italic = base.italic;
+ var oval = buildCommon.staticSvg(stash + "Size" + (large ? "2" : "1"), options3);
+ base = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: [{
+ type: "elem",
+ elem: base,
+ shift: 0
+ }, {
+ type: "elem",
+ elem: oval,
+ shift: large ? 0.08 : 0
+ }]
+ }, options3);
+ group2.name = "\\" + stash;
+ base.classes.unshift("mop");
+ base.italic = italic;
+ }
+ } else if (group2.body) {
+ var inner2 = buildExpression$1(group2.body, options3, true);
+ if (inner2.length === 1 && inner2[0] instanceof SymbolNode) {
+ base = inner2[0];
+ base.classes[0] = "mop";
} else {
- state2.tag = _tag;
- state2.anchor = _anchor;
- return true;
+ base = buildCommon.makeSpan(["mop"], inner2, options3);
}
- } else if (detected) {
- throwError(state2, "can not read a block mapping entry; a multiline key may not be an implicit key");
} else {
- state2.tag = _tag;
- state2.anchor = _anchor;
- return true;
+ var output2 = [];
+ for (var i2 = 1; i2 < group2.name.length; i2++) {
+ output2.push(buildCommon.mathsym(group2.name[i2], group2.mode, options3));
+ }
+ base = buildCommon.makeSpan(["mop"], output2, options3);
}
- }
- if (state2.line === _line || state2.lineIndent > nodeIndent) {
- if (atExplicitKey) {
- _keyLine = state2.line;
- _keyLineStart = state2.lineStart;
- _keyPos = state2.position;
+ var baseShift = 0;
+ var slant = 0;
+ if ((base instanceof SymbolNode || group2.name === "\\oiint" || group2.name === "\\oiiint") && !group2.suppressBaseShift) {
+ baseShift = (base.height - base.depth) / 2 - options3.fontMetrics().axisHeight;
+ slant = base.italic;
}
- if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
- if (atExplicitKey) {
- keyNode = state2.result;
- } else {
- valueNode = state2.result;
+ if (hasLimits) {
+ return assembleSupSub(base, supGroup, subGroup, options3, style3, slant, baseShift);
+ } else {
+ if (baseShift) {
+ base.style.position = "relative";
+ base.style.top = makeEm(baseShift);
+ }
+ return base;
+ }
+ }, "htmlBuilder$2");
+ mathmlBuilder$1 = /* @__PURE__ */ __name((group2, options3) => {
+ var node2;
+ if (group2.symbol) {
+ node2 = new MathNode("mo", [makeText(group2.name, group2.mode)]);
+ if (utils.contains(noSuccessor, group2.name)) {
+ node2.setAttribute("largeop", "false");
+ }
+ } else if (group2.body) {
+ node2 = new MathNode("mo", buildExpression2(group2.body, options3));
+ } else {
+ node2 = new MathNode("mi", [new TextNode(group2.name.slice(1))]);
+ var operator = new MathNode("mo", [makeText("\u2061", "text")]);
+ if (group2.parentIsSupSub) {
+ node2 = new MathNode("mrow", [node2, operator]);
+ } else {
+ node2 = newDocumentFragment([node2, operator]);
+ }
+ }
+ return node2;
+ }, "mathmlBuilder$1");
+ singleCharBigOps = {
+ "\u220F": "\\prod",
+ "\u2210": "\\coprod",
+ "\u2211": "\\sum",
+ "\u22C0": "\\bigwedge",
+ "\u22C1": "\\bigvee",
+ "\u22C2": "\\bigcap",
+ "\u22C3": "\\bigcup",
+ "\u2A00": "\\bigodot",
+ "\u2A01": "\\bigoplus",
+ "\u2A02": "\\bigotimes",
+ "\u2A04": "\\biguplus",
+ "\u2A06": "\\bigsqcup"
+ };
+ defineFunction({
+ type: "op",
+ names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "\u220F", "\u2210", "\u2211", "\u22C0", "\u22C1", "\u22C2", "\u22C3", "\u2A00", "\u2A01", "\u2A02", "\u2A04", "\u2A06"],
+ props: {
+ numArgs: 0
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var fName = funcName;
+ if (fName.length === 1) {
+ fName = singleCharBigOps[fName];
+ }
+ return {
+ type: "op",
+ mode: parser22.mode,
+ limits: true,
+ parentIsSupSub: false,
+ symbol: true,
+ name: fName
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$2,
+ mathmlBuilder: mathmlBuilder$1
+ });
+ defineFunction({
+ type: "op",
+ names: ["\\mathop"],
+ props: {
+ numArgs: 1,
+ primitive: true
+ },
+ handler: /* @__PURE__ */ __name((_ref2, args) => {
+ var {
+ parser: parser22
+ } = _ref2;
+ var body = args[0];
+ return {
+ type: "op",
+ mode: parser22.mode,
+ limits: false,
+ parentIsSupSub: false,
+ symbol: false,
+ body: ordargument(body)
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$2,
+ mathmlBuilder: mathmlBuilder$1
+ });
+ singleCharIntegrals = {
+ "\u222B": "\\int",
+ "\u222C": "\\iint",
+ "\u222D": "\\iiint",
+ "\u222E": "\\oint",
+ "\u222F": "\\oiint",
+ "\u2230": "\\oiiint"
+ };
+ defineFunction({
+ type: "op",
+ names: ["\\arcsin", "\\arccos", "\\arctan", "\\arctg", "\\arcctg", "\\arg", "\\ch", "\\cos", "\\cosec", "\\cosh", "\\cot", "\\cotg", "\\coth", "\\csc", "\\ctg", "\\cth", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\sh", "\\tan", "\\tanh", "\\tg", "\\th"],
+ props: {
+ numArgs: 0
+ },
+ handler(_ref3) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref3;
+ return {
+ type: "op",
+ mode: parser22.mode,
+ limits: false,
+ parentIsSupSub: false,
+ symbol: false,
+ name: funcName
+ };
+ },
+ htmlBuilder: htmlBuilder$2,
+ mathmlBuilder: mathmlBuilder$1
+ });
+ defineFunction({
+ type: "op",
+ names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"],
+ props: {
+ numArgs: 0
+ },
+ handler(_ref4) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref4;
+ return {
+ type: "op",
+ mode: parser22.mode,
+ limits: true,
+ parentIsSupSub: false,
+ symbol: false,
+ name: funcName
+ };
+ },
+ htmlBuilder: htmlBuilder$2,
+ mathmlBuilder: mathmlBuilder$1
+ });
+ defineFunction({
+ type: "op",
+ names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "\u222B", "\u222C", "\u222D", "\u222E", "\u222F", "\u2230"],
+ props: {
+ numArgs: 0
+ },
+ handler(_ref5) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref5;
+ var fName = funcName;
+ if (fName.length === 1) {
+ fName = singleCharIntegrals[fName];
}
+ return {
+ type: "op",
+ mode: parser22.mode,
+ limits: false,
+ parentIsSupSub: false,
+ symbol: true,
+ name: fName
+ };
+ },
+ htmlBuilder: htmlBuilder$2,
+ mathmlBuilder: mathmlBuilder$1
+ });
+ htmlBuilder$1 = /* @__PURE__ */ __name((grp, options3) => {
+ var supGroup;
+ var subGroup;
+ var hasLimits = false;
+ var group2;
+ if (grp.type === "supsub") {
+ supGroup = grp.sup;
+ subGroup = grp.sub;
+ group2 = assertNodeType(grp.base, "operatorname");
+ hasLimits = true;
+ } else {
+ group2 = assertNodeType(grp, "operatorname");
}
- if (!atExplicitKey) {
- storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
- keyTag = keyNode = valueNode = null;
+ var base;
+ if (group2.body.length > 0) {
+ var body = group2.body.map((child2) => {
+ var childText = child2.text;
+ if (typeof childText === "string") {
+ return {
+ type: "textord",
+ mode: child2.mode,
+ text: childText
+ };
+ } else {
+ return child2;
+ }
+ });
+ var expression = buildExpression$1(body, options3.withFont("mathrm"), true);
+ for (var i2 = 0; i2 < expression.length; i2++) {
+ var child = expression[i2];
+ if (child instanceof SymbolNode) {
+ child.text = child.text.replace(/\u2212/, "-").replace(/\u2217/, "*");
+ }
+ }
+ base = buildCommon.makeSpan(["mop"], expression, options3);
+ } else {
+ base = buildCommon.makeSpan(["mop"], [], options3);
}
- skipSeparationSpace(state2, true, -1);
- ch = state2.input.charCodeAt(state2.position);
- }
- if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {
- throwError(state2, "bad indentation of a mapping entry");
- } else if (state2.lineIndent < nodeIndent) {
- break;
- }
- }
- if (atExplicitKey) {
- storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
- }
- if (detected) {
- state2.tag = _tag;
- state2.anchor = _anchor;
- state2.kind = "mapping";
- state2.result = _result;
- }
- return detected;
- }
- function readTagProperty(state2) {
- var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;
- ch = state2.input.charCodeAt(state2.position);
- if (ch !== 33)
- return false;
- if (state2.tag !== null) {
- throwError(state2, "duplication of a tag property");
- }
- ch = state2.input.charCodeAt(++state2.position);
- if (ch === 60) {
- isVerbatim = true;
- ch = state2.input.charCodeAt(++state2.position);
- } else if (ch === 33) {
- isNamed = true;
- tagHandle = "!!";
- ch = state2.input.charCodeAt(++state2.position);
- } else {
- tagHandle = "!";
- }
- _position = state2.position;
- if (isVerbatim) {
- do {
- ch = state2.input.charCodeAt(++state2.position);
- } while (ch !== 0 && ch !== 62);
- if (state2.position < state2.length) {
- tagName = state2.input.slice(_position, state2.position);
- ch = state2.input.charCodeAt(++state2.position);
- } else {
- throwError(state2, "unexpected end of the stream within a verbatim tag");
- }
- } else {
- while (ch !== 0 && !is_WS_OR_EOL(ch)) {
- if (ch === 33) {
- if (!isNamed) {
- tagHandle = state2.input.slice(_position - 1, state2.position + 1);
- if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
- throwError(state2, "named tag handle cannot contain such characters");
+ if (hasLimits) {
+ return assembleSupSub(base, supGroup, subGroup, options3, options3.style, 0, 0);
+ } else {
+ return base;
+ }
+ }, "htmlBuilder$1");
+ mathmlBuilder2 = /* @__PURE__ */ __name((group2, options3) => {
+ var expression = buildExpression2(group2.body, options3.withFont("mathrm"));
+ var isAllString = true;
+ for (var i2 = 0; i2 < expression.length; i2++) {
+ var node2 = expression[i2];
+ if (node2 instanceof mathMLTree.SpaceNode) ;
+ else if (node2 instanceof mathMLTree.MathNode) {
+ switch (node2.type) {
+ case "mi":
+ case "mn":
+ case "ms":
+ case "mspace":
+ case "mtext":
+ break;
+ case "mo": {
+ var child = node2.children[0];
+ if (node2.children.length === 1 && child instanceof mathMLTree.TextNode) {
+ child.text = child.text.replace(/\u2212/, "-").replace(/\u2217/, "*");
+ } else {
+ isAllString = false;
+ }
+ break;
+ }
+ default:
+ isAllString = false;
}
- isNamed = true;
- _position = state2.position + 1;
} else {
- throwError(state2, "tag suffix cannot contain exclamation marks");
+ isAllString = false;
}
}
- ch = state2.input.charCodeAt(++state2.position);
- }
- tagName = state2.input.slice(_position, state2.position);
- if (PATTERN_FLOW_INDICATORS.test(tagName)) {
- throwError(state2, "tag suffix cannot contain flow indicator characters");
- }
- }
- if (tagName && !PATTERN_TAG_URI.test(tagName)) {
- throwError(state2, "tag name cannot contain such characters: " + tagName);
- }
- try {
- tagName = decodeURIComponent(tagName);
- } catch (err) {
- throwError(state2, "tag name is malformed: " + tagName);
- }
- if (isVerbatim) {
- state2.tag = tagName;
- } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) {
- state2.tag = state2.tagMap[tagHandle] + tagName;
- } else if (tagHandle === "!") {
- state2.tag = "!" + tagName;
- } else if (tagHandle === "!!") {
- state2.tag = "tag:yaml.org,2002:" + tagName;
- } else {
- throwError(state2, 'undeclared tag handle "' + tagHandle + '"');
- }
- return true;
- }
- function readAnchorProperty(state2) {
- var _position, ch;
- ch = state2.input.charCodeAt(state2.position);
- if (ch !== 38)
- return false;
- if (state2.anchor !== null) {
- throwError(state2, "duplication of an anchor property");
- }
- ch = state2.input.charCodeAt(++state2.position);
- _position = state2.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
- ch = state2.input.charCodeAt(++state2.position);
- }
- if (state2.position === _position) {
- throwError(state2, "name of an anchor node must contain at least one character");
- }
- state2.anchor = state2.input.slice(_position, state2.position);
- return true;
- }
- function readAlias(state2) {
- var _position, alias, ch;
- ch = state2.input.charCodeAt(state2.position);
- if (ch !== 42)
- return false;
- ch = state2.input.charCodeAt(++state2.position);
- _position = state2.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
- ch = state2.input.charCodeAt(++state2.position);
- }
- if (state2.position === _position) {
- throwError(state2, "name of an alias node must contain at least one character");
- }
- alias = state2.input.slice(_position, state2.position);
- if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) {
- throwError(state2, 'unidentified alias "' + alias + '"');
- }
- state2.result = state2.anchorMap[alias];
- skipSeparationSpace(state2, true, -1);
- return true;
- }
- function composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) {
- var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;
- if (state2.listener !== null) {
- state2.listener("open", state2);
- }
- state2.tag = null;
- state2.anchor = null;
- state2.kind = null;
- state2.result = null;
- allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
- if (allowToSeek) {
- if (skipSeparationSpace(state2, true, -1)) {
- atNewLine = true;
- if (state2.lineIndent > parentIndent) {
- indentStatus = 1;
- } else if (state2.lineIndent === parentIndent) {
- indentStatus = 0;
- } else if (state2.lineIndent < parentIndent) {
- indentStatus = -1;
+ if (isAllString) {
+ var word = expression.map((node3) => node3.toText()).join("");
+ expression = [new mathMLTree.TextNode(word)];
}
- }
- }
- if (indentStatus === 1) {
- while (readTagProperty(state2) || readAnchorProperty(state2)) {
- if (skipSeparationSpace(state2, true, -1)) {
- atNewLine = true;
- allowBlockCollections = allowBlockStyles;
- if (state2.lineIndent > parentIndent) {
- indentStatus = 1;
- } else if (state2.lineIndent === parentIndent) {
- indentStatus = 0;
- } else if (state2.lineIndent < parentIndent) {
- indentStatus = -1;
- }
+ var identifier2 = new mathMLTree.MathNode("mi", expression);
+ identifier2.setAttribute("mathvariant", "normal");
+ var operator = new mathMLTree.MathNode("mo", [makeText("\u2061", "text")]);
+ if (group2.parentIsSupSub) {
+ return new mathMLTree.MathNode("mrow", [identifier2, operator]);
} else {
- allowBlockCollections = false;
+ return mathMLTree.newDocumentFragment([identifier2, operator]);
+ }
+ }, "mathmlBuilder");
+ defineFunction({
+ type: "operatorname",
+ names: ["\\operatorname@", "\\operatornamewithlimits"],
+ props: {
+ numArgs: 1
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var body = args[0];
+ return {
+ type: "operatorname",
+ mode: parser22.mode,
+ body: ordargument(body),
+ alwaysHandleSupSub: funcName === "\\operatornamewithlimits",
+ limits: false,
+ parentIsSupSub: false
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder$1,
+ mathmlBuilder: mathmlBuilder2
+ });
+ defineMacro("\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@");
+ defineFunctionBuilders({
+ type: "ordgroup",
+ htmlBuilder(group2, options3) {
+ if (group2.semisimple) {
+ return buildCommon.makeFragment(buildExpression$1(group2.body, options3, false));
+ }
+ return buildCommon.makeSpan(["mord"], buildExpression$1(group2.body, options3, true), options3);
+ },
+ mathmlBuilder(group2, options3) {
+ return buildExpressionRow(group2.body, options3, true);
}
- }
- }
- if (allowBlockCollections) {
- allowBlockCollections = atNewLine || allowCompact;
- }
- if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
- if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
- flowIndent = parentIndent;
- } else {
- flowIndent = parentIndent + 1;
- }
- blockIndent = state2.position - state2.lineStart;
- if (indentStatus === 1) {
- if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) {
- hasContent = true;
+ });
+ defineFunction({
+ type: "overline",
+ names: ["\\overline"],
+ props: {
+ numArgs: 1
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ var body = args[0];
+ return {
+ type: "overline",
+ mode: parser22.mode,
+ body
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var innerGroup = buildGroup$1(group2.body, options3.havingCrampedStyle());
+ var line2 = buildCommon.makeLineSpan("overline-line", options3);
+ var defaultRuleThickness = options3.fontMetrics().defaultRuleThickness;
+ var vlist = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: innerGroup
+ }, {
+ type: "kern",
+ size: 3 * defaultRuleThickness
+ }, {
+ type: "elem",
+ elem: line2
+ }, {
+ type: "kern",
+ size: defaultRuleThickness
+ }]
+ }, options3);
+ return buildCommon.makeSpan(["mord", "overline"], [vlist], options3);
+ },
+ mathmlBuilder(group2, options3) {
+ var operator = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode("\u203E")]);
+ operator.setAttribute("stretchy", "true");
+ var node2 = new mathMLTree.MathNode("mover", [buildGroup2(group2.body, options3), operator]);
+ node2.setAttribute("accent", "true");
+ return node2;
+ }
+ });
+ defineFunction({
+ type: "phantom",
+ names: ["\\phantom"],
+ props: {
+ numArgs: 1,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ parser: parser22
+ } = _ref;
+ var body = args[0];
+ return {
+ type: "phantom",
+ mode: parser22.mode,
+ body: ordargument(body)
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var elements3 = buildExpression$1(group2.body, options3.withPhantom(), false);
+ return buildCommon.makeFragment(elements3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var inner2 = buildExpression2(group2.body, options3);
+ return new mathMLTree.MathNode("mphantom", inner2);
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "hphantom",
+ names: ["\\hphantom"],
+ props: {
+ numArgs: 1,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref2, args) => {
+ var {
+ parser: parser22
+ } = _ref2;
+ var body = args[0];
+ return {
+ type: "hphantom",
+ mode: parser22.mode,
+ body
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var node2 = buildCommon.makeSpan([], [buildGroup$1(group2.body, options3.withPhantom())]);
+ node2.height = 0;
+ node2.depth = 0;
+ if (node2.children) {
+ for (var i2 = 0; i2 < node2.children.length; i2++) {
+ node2.children[i2].height = 0;
+ node2.children[i2].depth = 0;
+ }
+ }
+ node2 = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: node2
+ }]
+ }, options3);
+ return buildCommon.makeSpan(["mord"], [node2], options3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var inner2 = buildExpression2(ordargument(group2.body), options3);
+ var phantom = new mathMLTree.MathNode("mphantom", inner2);
+ var node2 = new mathMLTree.MathNode("mpadded", [phantom]);
+ node2.setAttribute("height", "0px");
+ node2.setAttribute("depth", "0px");
+ return node2;
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "vphantom",
+ names: ["\\vphantom"],
+ props: {
+ numArgs: 1,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref3, args) => {
+ var {
+ parser: parser22
+ } = _ref3;
+ var body = args[0];
+ return {
+ type: "vphantom",
+ mode: parser22.mode,
+ body
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var inner2 = buildCommon.makeSpan(["inner"], [buildGroup$1(group2.body, options3.withPhantom())]);
+ var fix = buildCommon.makeSpan(["fix"], []);
+ return buildCommon.makeSpan(["mord", "rlap"], [inner2, fix], options3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var inner2 = buildExpression2(ordargument(group2.body), options3);
+ var phantom = new mathMLTree.MathNode("mphantom", inner2);
+ var node2 = new mathMLTree.MathNode("mpadded", [phantom]);
+ node2.setAttribute("width", "0px");
+ return node2;
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "raisebox",
+ names: ["\\raisebox"],
+ props: {
+ numArgs: 2,
+ argTypes: ["size", "hbox"],
+ allowedInText: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ var amount = assertNodeType(args[0], "size").value;
+ var body = args[1];
+ return {
+ type: "raisebox",
+ mode: parser22.mode,
+ dy: amount,
+ body
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var body = buildGroup$1(group2.body, options3);
+ var dy = calculateSize2(group2.dy, options3);
+ return buildCommon.makeVList({
+ positionType: "shift",
+ positionData: -dy,
+ children: [{
+ type: "elem",
+ elem: body
+ }]
+ }, options3);
+ },
+ mathmlBuilder(group2, options3) {
+ var node2 = new mathMLTree.MathNode("mpadded", [buildGroup2(group2.body, options3)]);
+ var dy = group2.dy.number + group2.dy.unit;
+ node2.setAttribute("voffset", dy);
+ return node2;
+ }
+ });
+ defineFunction({
+ type: "internal",
+ names: ["\\relax"],
+ props: {
+ numArgs: 0,
+ allowedInText: true
+ },
+ handler(_ref) {
+ var {
+ parser: parser22
+ } = _ref;
+ return {
+ type: "internal",
+ mode: parser22.mode
+ };
+ }
+ });
+ defineFunction({
+ type: "rule",
+ names: ["\\rule"],
+ props: {
+ numArgs: 2,
+ numOptionalArgs: 1,
+ argTypes: ["size", "size", "size"]
+ },
+ handler(_ref, args, optArgs) {
+ var {
+ parser: parser22
+ } = _ref;
+ var shift2 = optArgs[0];
+ var width3 = assertNodeType(args[0], "size");
+ var height2 = assertNodeType(args[1], "size");
+ return {
+ type: "rule",
+ mode: parser22.mode,
+ shift: shift2 && assertNodeType(shift2, "size").value,
+ width: width3.value,
+ height: height2.value
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var rule = buildCommon.makeSpan(["mord", "rule"], [], options3);
+ var width3 = calculateSize2(group2.width, options3);
+ var height2 = calculateSize2(group2.height, options3);
+ var shift2 = group2.shift ? calculateSize2(group2.shift, options3) : 0;
+ rule.style.borderRightWidth = makeEm(width3);
+ rule.style.borderTopWidth = makeEm(height2);
+ rule.style.bottom = makeEm(shift2);
+ rule.width = width3;
+ rule.height = height2 + shift2;
+ rule.depth = -shift2;
+ rule.maxFontSize = height2 * 1.125 * options3.sizeMultiplier;
+ return rule;
+ },
+ mathmlBuilder(group2, options3) {
+ var width3 = calculateSize2(group2.width, options3);
+ var height2 = calculateSize2(group2.height, options3);
+ var shift2 = group2.shift ? calculateSize2(group2.shift, options3) : 0;
+ var color2 = options3.color && options3.getColor() || "black";
+ var rule = new mathMLTree.MathNode("mspace");
+ rule.setAttribute("mathbackground", color2);
+ rule.setAttribute("width", makeEm(width3));
+ rule.setAttribute("height", makeEm(height2));
+ var wrapper = new mathMLTree.MathNode("mpadded", [rule]);
+ if (shift2 >= 0) {
+ wrapper.setAttribute("height", makeEm(shift2));
+ } else {
+ wrapper.setAttribute("height", makeEm(shift2));
+ wrapper.setAttribute("depth", makeEm(-shift2));
+ }
+ wrapper.setAttribute("voffset", makeEm(shift2));
+ return wrapper;
+ }
+ });
+ __name(sizingGroup, "sizingGroup");
+ sizeFuncs = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"];
+ htmlBuilder2 = /* @__PURE__ */ __name((group2, options3) => {
+ var newOptions = options3.havingSize(group2.size);
+ return sizingGroup(group2.body, newOptions, options3);
+ }, "htmlBuilder");
+ defineFunction({
+ type: "sizing",
+ names: sizeFuncs,
+ props: {
+ numArgs: 0,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args) => {
+ var {
+ breakOnTokenText,
+ funcName,
+ parser: parser22
+ } = _ref;
+ var body = parser22.parseExpression(false, breakOnTokenText);
+ return {
+ type: "sizing",
+ mode: parser22.mode,
+ // Figure out what size to use based on the list of functions above
+ size: sizeFuncs.indexOf(funcName) + 1,
+ body
+ };
+ }, "handler"),
+ htmlBuilder: htmlBuilder2,
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var newOptions = options3.havingSize(group2.size);
+ var inner2 = buildExpression2(group2.body, newOptions);
+ var node2 = new mathMLTree.MathNode("mstyle", inner2);
+ node2.setAttribute("mathsize", makeEm(newOptions.sizeMultiplier));
+ return node2;
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "smash",
+ names: ["\\smash"],
+ props: {
+ numArgs: 1,
+ numOptionalArgs: 1,
+ allowedInText: true
+ },
+ handler: /* @__PURE__ */ __name((_ref, args, optArgs) => {
+ var {
+ parser: parser22
+ } = _ref;
+ var smashHeight = false;
+ var smashDepth = false;
+ var tbArg = optArgs[0] && assertNodeType(optArgs[0], "ordgroup");
+ if (tbArg) {
+ var letter = "";
+ for (var i2 = 0; i2 < tbArg.body.length; ++i2) {
+ var node2 = tbArg.body[i2];
+ letter = node2.text;
+ if (letter === "t") {
+ smashHeight = true;
+ } else if (letter === "b") {
+ smashDepth = true;
+ } else {
+ smashHeight = false;
+ smashDepth = false;
+ break;
+ }
+ }
+ } else {
+ smashHeight = true;
+ smashDepth = true;
+ }
+ var body = args[0];
+ return {
+ type: "smash",
+ mode: parser22.mode,
+ body,
+ smashHeight,
+ smashDepth
+ };
+ }, "handler"),
+ htmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var node2 = buildCommon.makeSpan([], [buildGroup$1(group2.body, options3)]);
+ if (!group2.smashHeight && !group2.smashDepth) {
+ return node2;
+ }
+ if (group2.smashHeight) {
+ node2.height = 0;
+ if (node2.children) {
+ for (var i2 = 0; i2 < node2.children.length; i2++) {
+ node2.children[i2].height = 0;
+ }
+ }
+ }
+ if (group2.smashDepth) {
+ node2.depth = 0;
+ if (node2.children) {
+ for (var _i = 0; _i < node2.children.length; _i++) {
+ node2.children[_i].depth = 0;
+ }
+ }
+ }
+ var smashedNode = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: node2
+ }]
+ }, options3);
+ return buildCommon.makeSpan(["mord"], [smashedNode], options3);
+ }, "htmlBuilder"),
+ mathmlBuilder: /* @__PURE__ */ __name((group2, options3) => {
+ var node2 = new mathMLTree.MathNode("mpadded", [buildGroup2(group2.body, options3)]);
+ if (group2.smashHeight) {
+ node2.setAttribute("height", "0px");
+ }
+ if (group2.smashDepth) {
+ node2.setAttribute("depth", "0px");
+ }
+ return node2;
+ }, "mathmlBuilder")
+ });
+ defineFunction({
+ type: "sqrt",
+ names: ["\\sqrt"],
+ props: {
+ numArgs: 1,
+ numOptionalArgs: 1
+ },
+ handler(_ref, args, optArgs) {
+ var {
+ parser: parser22
+ } = _ref;
+ var index = optArgs[0];
+ var body = args[0];
+ return {
+ type: "sqrt",
+ mode: parser22.mode,
+ body,
+ index
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var inner2 = buildGroup$1(group2.body, options3.havingCrampedStyle());
+ if (inner2.height === 0) {
+ inner2.height = options3.fontMetrics().xHeight;
+ }
+ inner2 = buildCommon.wrapFragment(inner2, options3);
+ var metrics = options3.fontMetrics();
+ var theta = metrics.defaultRuleThickness;
+ var phi = theta;
+ if (options3.style.id < Style$1.TEXT.id) {
+ phi = options3.fontMetrics().xHeight;
+ }
+ var lineClearance = theta + phi / 4;
+ var minDelimiterHeight = inner2.height + inner2.depth + lineClearance + theta;
+ var {
+ span: img,
+ ruleWidth,
+ advanceWidth
+ } = delimiter.sqrtImage(minDelimiterHeight, options3);
+ var delimDepth = img.height - ruleWidth;
+ if (delimDepth > inner2.height + inner2.depth + lineClearance) {
+ lineClearance = (lineClearance + delimDepth - inner2.height - inner2.depth) / 2;
+ }
+ var imgShift = img.height - inner2.height - lineClearance - ruleWidth;
+ inner2.style.paddingLeft = makeEm(advanceWidth);
+ var body = buildCommon.makeVList({
+ positionType: "firstBaseline",
+ children: [{
+ type: "elem",
+ elem: inner2,
+ wrapperClasses: ["svg-align"]
+ }, {
+ type: "kern",
+ size: -(inner2.height + imgShift)
+ }, {
+ type: "elem",
+ elem: img
+ }, {
+ type: "kern",
+ size: ruleWidth
+ }]
+ }, options3);
+ if (!group2.index) {
+ return buildCommon.makeSpan(["mord", "sqrt"], [body], options3);
+ } else {
+ var newOptions = options3.havingStyle(Style$1.SCRIPTSCRIPT);
+ var rootm = buildGroup$1(group2.index, newOptions, options3);
+ var toShift = 0.6 * (body.height - body.depth);
+ var rootVList = buildCommon.makeVList({
+ positionType: "shift",
+ positionData: -toShift,
+ children: [{
+ type: "elem",
+ elem: rootm
+ }]
+ }, options3);
+ var rootVListWrap = buildCommon.makeSpan(["root"], [rootVList]);
+ return buildCommon.makeSpan(["mord", "sqrt"], [rootVListWrap, body], options3);
+ }
+ },
+ mathmlBuilder(group2, options3) {
+ var {
+ body,
+ index
+ } = group2;
+ return index ? new mathMLTree.MathNode("mroot", [buildGroup2(body, options3), buildGroup2(index, options3)]) : new mathMLTree.MathNode("msqrt", [buildGroup2(body, options3)]);
+ }
+ });
+ styleMap = {
+ "display": Style$1.DISPLAY,
+ "text": Style$1.TEXT,
+ "script": Style$1.SCRIPT,
+ "scriptscript": Style$1.SCRIPTSCRIPT
+ };
+ defineFunction({
+ type: "styling",
+ names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"],
+ props: {
+ numArgs: 0,
+ allowedInText: true,
+ primitive: true
+ },
+ handler(_ref, args) {
+ var {
+ breakOnTokenText,
+ funcName,
+ parser: parser22
+ } = _ref;
+ var body = parser22.parseExpression(true, breakOnTokenText);
+ var style3 = funcName.slice(1, funcName.length - 5);
+ return {
+ type: "styling",
+ mode: parser22.mode,
+ // Figure out what style to use by pulling out the style from
+ // the function name
+ style: style3,
+ body
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var newStyle = styleMap[group2.style];
+ var newOptions = options3.havingStyle(newStyle).withFont("");
+ return sizingGroup(group2.body, newOptions, options3);
+ },
+ mathmlBuilder(group2, options3) {
+ var newStyle = styleMap[group2.style];
+ var newOptions = options3.havingStyle(newStyle);
+ var inner2 = buildExpression2(group2.body, newOptions);
+ var node2 = new mathMLTree.MathNode("mstyle", inner2);
+ var styleAttributes = {
+ "display": ["0", "true"],
+ "text": ["0", "false"],
+ "script": ["1", "false"],
+ "scriptscript": ["2", "false"]
+ };
+ var attr = styleAttributes[group2.style];
+ node2.setAttribute("scriptlevel", attr[0]);
+ node2.setAttribute("displaystyle", attr[1]);
+ return node2;
+ }
+ });
+ htmlBuilderDelegate = /* @__PURE__ */ __name(function htmlBuilderDelegate2(group2, options3) {
+ var base = group2.base;
+ if (!base) {
+ return null;
+ } else if (base.type === "op") {
+ var delegate = base.limits && (options3.style.size === Style$1.DISPLAY.size || base.alwaysHandleSupSub);
+ return delegate ? htmlBuilder$2 : null;
+ } else if (base.type === "operatorname") {
+ var _delegate = base.alwaysHandleSupSub && (options3.style.size === Style$1.DISPLAY.size || base.limits);
+ return _delegate ? htmlBuilder$1 : null;
+ } else if (base.type === "accent") {
+ return utils.isCharacterBox(base.base) ? htmlBuilder$a : null;
+ } else if (base.type === "horizBrace") {
+ var isSup = !group2.sub;
+ return isSup === base.isOver ? htmlBuilder$3 : null;
} else {
- if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) {
- hasContent = true;
- } else if (readAlias(state2)) {
- hasContent = true;
- if (state2.tag !== null || state2.anchor !== null) {
- throwError(state2, "alias node should not have any properties");
+ return null;
+ }
+ }, "htmlBuilderDelegate");
+ defineFunctionBuilders({
+ type: "supsub",
+ htmlBuilder(group2, options3) {
+ var builderDelegate = htmlBuilderDelegate(group2, options3);
+ if (builderDelegate) {
+ return builderDelegate(group2, options3);
+ }
+ var {
+ base: valueBase,
+ sup: valueSup,
+ sub: valueSub
+ } = group2;
+ var base = buildGroup$1(valueBase, options3);
+ var supm;
+ var subm;
+ var metrics = options3.fontMetrics();
+ var supShift = 0;
+ var subShift = 0;
+ var isCharacterBox3 = valueBase && utils.isCharacterBox(valueBase);
+ if (valueSup) {
+ var newOptions = options3.havingStyle(options3.style.sup());
+ supm = buildGroup$1(valueSup, newOptions, options3);
+ if (!isCharacterBox3) {
+ supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options3.sizeMultiplier;
+ }
+ }
+ if (valueSub) {
+ var _newOptions = options3.havingStyle(options3.style.sub());
+ subm = buildGroup$1(valueSub, _newOptions, options3);
+ if (!isCharacterBox3) {
+ subShift = base.depth + _newOptions.fontMetrics().subDrop * _newOptions.sizeMultiplier / options3.sizeMultiplier;
+ }
+ }
+ var minSupShift;
+ if (options3.style === Style$1.DISPLAY) {
+ minSupShift = metrics.sup1;
+ } else if (options3.style.cramped) {
+ minSupShift = metrics.sup3;
+ } else {
+ minSupShift = metrics.sup2;
+ }
+ var multiplier = options3.sizeMultiplier;
+ var marginRight = makeEm(0.5 / metrics.ptPerEm / multiplier);
+ var marginLeft = null;
+ if (subm) {
+ var isOiint = group2.base && group2.base.type === "op" && group2.base.name && (group2.base.name === "\\oiint" || group2.base.name === "\\oiiint");
+ if (base instanceof SymbolNode || isOiint) {
+ marginLeft = makeEm(-base.italic);
+ }
+ }
+ var supsub;
+ if (supm && subm) {
+ supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);
+ subShift = Math.max(subShift, metrics.sub2);
+ var ruleWidth = metrics.defaultRuleThickness;
+ var maxWidth = 4 * ruleWidth;
+ if (supShift - supm.depth - (subm.height - subShift) < maxWidth) {
+ subShift = maxWidth - (supShift - supm.depth) + subm.height;
+ var psi = 0.8 * metrics.xHeight - (supShift - supm.depth);
+ if (psi > 0) {
+ supShift += psi;
+ subShift -= psi;
+ }
+ }
+ var vlistElem = [{
+ type: "elem",
+ elem: subm,
+ shift: subShift,
+ marginRight,
+ marginLeft
+ }, {
+ type: "elem",
+ elem: supm,
+ shift: -supShift,
+ marginRight
+ }];
+ supsub = buildCommon.makeVList({
+ positionType: "individualShift",
+ children: vlistElem
+ }, options3);
+ } else if (subm) {
+ subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight);
+ var _vlistElem = [{
+ type: "elem",
+ elem: subm,
+ marginLeft,
+ marginRight
+ }];
+ supsub = buildCommon.makeVList({
+ positionType: "shift",
+ positionData: subShift,
+ children: _vlistElem
+ }, options3);
+ } else if (supm) {
+ supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);
+ supsub = buildCommon.makeVList({
+ positionType: "shift",
+ positionData: -supShift,
+ children: [{
+ type: "elem",
+ elem: supm,
+ marginRight
+ }]
+ }, options3);
+ } else {
+ throw new Error("supsub must have either sup or sub.");
+ }
+ var mclass = getTypeOfDomTree(base, "right") || "mord";
+ return buildCommon.makeSpan([mclass], [base, buildCommon.makeSpan(["msupsub"], [supsub])], options3);
+ },
+ mathmlBuilder(group2, options3) {
+ var isBrace = false;
+ var isOver;
+ var isSup;
+ if (group2.base && group2.base.type === "horizBrace") {
+ isSup = !!group2.sup;
+ if (isSup === group2.base.isOver) {
+ isBrace = true;
+ isOver = group2.base.isOver;
+ }
+ }
+ if (group2.base && (group2.base.type === "op" || group2.base.type === "operatorname")) {
+ group2.base.parentIsSupSub = true;
+ }
+ var children2 = [buildGroup2(group2.base, options3)];
+ if (group2.sub) {
+ children2.push(buildGroup2(group2.sub, options3));
+ }
+ if (group2.sup) {
+ children2.push(buildGroup2(group2.sup, options3));
+ }
+ var nodeType2;
+ if (isBrace) {
+ nodeType2 = isOver ? "mover" : "munder";
+ } else if (!group2.sub) {
+ var base = group2.base;
+ if (base && base.type === "op" && base.limits && (options3.style === Style$1.DISPLAY || base.alwaysHandleSupSub)) {
+ nodeType2 = "mover";
+ } else if (base && base.type === "operatorname" && base.alwaysHandleSupSub && (base.limits || options3.style === Style$1.DISPLAY)) {
+ nodeType2 = "mover";
+ } else {
+ nodeType2 = "msup";
+ }
+ } else if (!group2.sup) {
+ var _base = group2.base;
+ if (_base && _base.type === "op" && _base.limits && (options3.style === Style$1.DISPLAY || _base.alwaysHandleSupSub)) {
+ nodeType2 = "munder";
+ } else if (_base && _base.type === "operatorname" && _base.alwaysHandleSupSub && (_base.limits || options3.style === Style$1.DISPLAY)) {
+ nodeType2 = "munder";
+ } else {
+ nodeType2 = "msub";
}
- } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
- hasContent = true;
- if (state2.tag === null) {
- state2.tag = "?";
+ } else {
+ var _base2 = group2.base;
+ if (_base2 && _base2.type === "op" && _base2.limits && options3.style === Style$1.DISPLAY) {
+ nodeType2 = "munderover";
+ } else if (_base2 && _base2.type === "operatorname" && _base2.alwaysHandleSupSub && (options3.style === Style$1.DISPLAY || _base2.limits)) {
+ nodeType2 = "munderover";
+ } else {
+ nodeType2 = "msubsup";
}
}
- if (state2.anchor !== null) {
- state2.anchorMap[state2.anchor] = state2.result;
+ return new mathMLTree.MathNode(nodeType2, children2);
+ }
+ });
+ defineFunctionBuilders({
+ type: "atom",
+ htmlBuilder(group2, options3) {
+ return buildCommon.mathsym(group2.text, group2.mode, options3, ["m" + group2.family]);
+ },
+ mathmlBuilder(group2, options3) {
+ var node2 = new mathMLTree.MathNode("mo", [makeText(group2.text, group2.mode)]);
+ if (group2.family === "bin") {
+ var variant = getVariant(group2, options3);
+ if (variant === "bold-italic") {
+ node2.setAttribute("mathvariant", variant);
+ }
+ } else if (group2.family === "punct") {
+ node2.setAttribute("separator", "true");
+ } else if (group2.family === "open" || group2.family === "close") {
+ node2.setAttribute("stretchy", "false");
}
+ return node2;
}
- } else if (indentStatus === 0) {
- hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent);
- }
- }
- if (state2.tag === null) {
- if (state2.anchor !== null) {
- state2.anchorMap[state2.anchor] = state2.result;
- }
- } else if (state2.tag === "?") {
- if (state2.result !== null && state2.kind !== "scalar") {
- throwError(state2, 'unacceptable node kind for !> tag; it should be "scalar", not "' + state2.kind + '"');
- }
- for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
- type2 = state2.implicitTypes[typeIndex];
- if (type2.resolve(state2.result)) {
- state2.result = type2.construct(state2.result);
- state2.tag = type2.tag;
- if (state2.anchor !== null) {
- state2.anchorMap[state2.anchor] = state2.result;
+ });
+ defaultVariant = {
+ "mi": "italic",
+ "mn": "normal",
+ "mtext": "normal"
+ };
+ defineFunctionBuilders({
+ type: "mathord",
+ htmlBuilder(group2, options3) {
+ return buildCommon.makeOrd(group2, options3, "mathord");
+ },
+ mathmlBuilder(group2, options3) {
+ var node2 = new mathMLTree.MathNode("mi", [makeText(group2.text, group2.mode, options3)]);
+ var variant = getVariant(group2, options3) || "italic";
+ if (variant !== defaultVariant[node2.type]) {
+ node2.setAttribute("mathvariant", variant);
}
- break;
+ return node2;
}
- }
- } else if (state2.tag !== "!") {
- if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || "fallback"], state2.tag)) {
- type2 = state2.typeMap[state2.kind || "fallback"][state2.tag];
- } else {
- type2 = null;
- typeList = state2.typeMap.multi[state2.kind || "fallback"];
- for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
- if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
- type2 = typeList[typeIndex];
- break;
+ });
+ defineFunctionBuilders({
+ type: "textord",
+ htmlBuilder(group2, options3) {
+ return buildCommon.makeOrd(group2, options3, "textord");
+ },
+ mathmlBuilder(group2, options3) {
+ var text2 = makeText(group2.text, group2.mode, options3);
+ var variant = getVariant(group2, options3) || "normal";
+ var node2;
+ if (group2.mode === "text") {
+ node2 = new mathMLTree.MathNode("mtext", [text2]);
+ } else if (/[0-9]/.test(group2.text)) {
+ node2 = new mathMLTree.MathNode("mn", [text2]);
+ } else if (group2.text === "\\prime") {
+ node2 = new mathMLTree.MathNode("mo", [text2]);
+ } else {
+ node2 = new mathMLTree.MathNode("mi", [text2]);
}
+ if (variant !== defaultVariant[node2.type]) {
+ node2.setAttribute("mathvariant", variant);
+ }
+ return node2;
}
- }
- if (!type2) {
- throwError(state2, "unknown tag !<" + state2.tag + ">");
- }
- if (state2.result !== null && type2.kind !== state2.kind) {
- throwError(state2, "unacceptable node kind for !<" + state2.tag + '> tag; it should be "' + type2.kind + '", not "' + state2.kind + '"');
- }
- if (!type2.resolve(state2.result, state2.tag)) {
- throwError(state2, "cannot resolve a node with !<" + state2.tag + "> explicit tag");
- } else {
- state2.result = type2.construct(state2.result, state2.tag);
- if (state2.anchor !== null) {
- state2.anchorMap[state2.anchor] = state2.result;
+ });
+ cssSpace = {
+ "\\nobreak": "nobreak",
+ "\\allowbreak": "allowbreak"
+ };
+ regularSpace = {
+ " ": {},
+ "\\ ": {},
+ "~": {
+ className: "nobreak"
+ },
+ "\\space": {},
+ "\\nobreakspace": {
+ className: "nobreak"
+ }
+ };
+ defineFunctionBuilders({
+ type: "spacing",
+ htmlBuilder(group2, options3) {
+ if (regularSpace.hasOwnProperty(group2.text)) {
+ var className = regularSpace[group2.text].className || "";
+ if (group2.mode === "text") {
+ var ord = buildCommon.makeOrd(group2, options3, "textord");
+ ord.classes.push(className);
+ return ord;
+ } else {
+ return buildCommon.makeSpan(["mspace", className], [buildCommon.mathsym(group2.text, group2.mode, options3)], options3);
+ }
+ } else if (cssSpace.hasOwnProperty(group2.text)) {
+ return buildCommon.makeSpan(["mspace", cssSpace[group2.text]], [], options3);
+ } else {
+ throw new ParseError('Unknown type of space "' + group2.text + '"');
+ }
+ },
+ mathmlBuilder(group2, options3) {
+ var node2;
+ if (regularSpace.hasOwnProperty(group2.text)) {
+ node2 = new mathMLTree.MathNode("mtext", [new mathMLTree.TextNode("\xA0")]);
+ } else if (cssSpace.hasOwnProperty(group2.text)) {
+ return new mathMLTree.MathNode("mspace");
+ } else {
+ throw new ParseError('Unknown type of space "' + group2.text + '"');
+ }
+ return node2;
}
- }
- }
- if (state2.listener !== null) {
- state2.listener("close", state2);
- }
- return state2.tag !== null || state2.anchor !== null || hasContent;
- }
- function readDocument(state2) {
- var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
- state2.version = null;
- state2.checkLineBreaks = state2.legacy;
- state2.tagMap = /* @__PURE__ */ Object.create(null);
- state2.anchorMap = /* @__PURE__ */ Object.create(null);
- while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {
- skipSeparationSpace(state2, true, -1);
- ch = state2.input.charCodeAt(state2.position);
- if (state2.lineIndent > 0 || ch !== 37) {
- break;
- }
- hasDirectives = true;
- ch = state2.input.charCodeAt(++state2.position);
- _position = state2.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch)) {
- ch = state2.input.charCodeAt(++state2.position);
- }
- directiveName = state2.input.slice(_position, state2.position);
- directiveArgs = [];
- if (directiveName.length < 1) {
- throwError(state2, "directive name must not be less than one character in length");
- }
- while (ch !== 0) {
- while (is_WHITE_SPACE(ch)) {
- ch = state2.input.charCodeAt(++state2.position);
+ });
+ pad = /* @__PURE__ */ __name(() => {
+ var padNode = new mathMLTree.MathNode("mtd", []);
+ padNode.setAttribute("width", "50%");
+ return padNode;
+ }, "pad");
+ defineFunctionBuilders({
+ type: "tag",
+ mathmlBuilder(group2, options3) {
+ var table = new mathMLTree.MathNode("mtable", [new mathMLTree.MathNode("mtr", [pad(), new mathMLTree.MathNode("mtd", [buildExpressionRow(group2.body, options3)]), pad(), new mathMLTree.MathNode("mtd", [buildExpressionRow(group2.tag, options3)])])]);
+ table.setAttribute("width", "100%");
+ return table;
}
- if (ch === 35) {
- do {
- ch = state2.input.charCodeAt(++state2.position);
- } while (ch !== 0 && !is_EOL(ch));
- break;
+ });
+ textFontFamilies = {
+ "\\text": void 0,
+ "\\textrm": "textrm",
+ "\\textsf": "textsf",
+ "\\texttt": "texttt",
+ "\\textnormal": "textrm"
+ };
+ textFontWeights = {
+ "\\textbf": "textbf",
+ "\\textmd": "textmd"
+ };
+ textFontShapes = {
+ "\\textit": "textit",
+ "\\textup": "textup"
+ };
+ optionsWithFont = /* @__PURE__ */ __name((group2, options3) => {
+ var font = group2.font;
+ if (!font) {
+ return options3;
+ } else if (textFontFamilies[font]) {
+ return options3.withTextFontFamily(textFontFamilies[font]);
+ } else if (textFontWeights[font]) {
+ return options3.withTextFontWeight(textFontWeights[font]);
+ } else if (font === "\\emph") {
+ return options3.fontShape === "textit" ? options3.withTextFontShape("textup") : options3.withTextFontShape("textit");
+ }
+ return options3.withTextFontShape(textFontShapes[font]);
+ }, "optionsWithFont");
+ defineFunction({
+ type: "text",
+ names: [
+ // Font families
+ "\\text",
+ "\\textrm",
+ "\\textsf",
+ "\\texttt",
+ "\\textnormal",
+ // Font weights
+ "\\textbf",
+ "\\textmd",
+ // Font Shapes
+ "\\textit",
+ "\\textup",
+ "\\emph"
+ ],
+ props: {
+ numArgs: 1,
+ argTypes: ["text"],
+ allowedInArgument: true,
+ allowedInText: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22,
+ funcName
+ } = _ref;
+ var body = args[0];
+ return {
+ type: "text",
+ mode: parser22.mode,
+ body: ordargument(body),
+ font: funcName
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var newOptions = optionsWithFont(group2, options3);
+ var inner2 = buildExpression$1(group2.body, newOptions, true);
+ return buildCommon.makeSpan(["mord", "text"], inner2, newOptions);
+ },
+ mathmlBuilder(group2, options3) {
+ var newOptions = optionsWithFont(group2, options3);
+ return buildExpressionRow(group2.body, newOptions);
}
- if (is_EOL(ch))
- break;
- _position = state2.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch)) {
- ch = state2.input.charCodeAt(++state2.position);
+ });
+ defineFunction({
+ type: "underline",
+ names: ["\\underline"],
+ props: {
+ numArgs: 1,
+ allowedInText: true
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ return {
+ type: "underline",
+ mode: parser22.mode,
+ body: args[0]
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var innerGroup = buildGroup$1(group2.body, options3);
+ var line2 = buildCommon.makeLineSpan("underline-line", options3);
+ var defaultRuleThickness = options3.fontMetrics().defaultRuleThickness;
+ var vlist = buildCommon.makeVList({
+ positionType: "top",
+ positionData: innerGroup.height,
+ children: [{
+ type: "kern",
+ size: defaultRuleThickness
+ }, {
+ type: "elem",
+ elem: line2
+ }, {
+ type: "kern",
+ size: 3 * defaultRuleThickness
+ }, {
+ type: "elem",
+ elem: innerGroup
+ }]
+ }, options3);
+ return buildCommon.makeSpan(["mord", "underline"], [vlist], options3);
+ },
+ mathmlBuilder(group2, options3) {
+ var operator = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode("\u203E")]);
+ operator.setAttribute("stretchy", "true");
+ var node2 = new mathMLTree.MathNode("munder", [buildGroup2(group2.body, options3), operator]);
+ node2.setAttribute("accentunder", "true");
+ return node2;
}
- directiveArgs.push(state2.input.slice(_position, state2.position));
- }
- if (ch !== 0)
- readLineBreak(state2);
- if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
- directiveHandlers[directiveName](state2, directiveName, directiveArgs);
- } else {
- throwWarning(state2, 'unknown document directive "' + directiveName + '"');
- }
- }
- skipSeparationSpace(state2, true, -1);
- if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) {
- state2.position += 3;
- skipSeparationSpace(state2, true, -1);
- } else if (hasDirectives) {
- throwError(state2, "directives end mark is expected");
- }
- composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
- skipSeparationSpace(state2, true, -1);
- if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) {
- throwWarning(state2, "non-ASCII line breaks are interpreted as content");
- }
- state2.documents.push(state2.result);
- if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {
- if (state2.input.charCodeAt(state2.position) === 46) {
- state2.position += 3;
- skipSeparationSpace(state2, true, -1);
- }
- return;
- }
- if (state2.position < state2.length - 1) {
- throwError(state2, "end of the stream or a document separator is expected");
- } else {
- return;
- }
- }
- function loadDocuments(input, options2) {
- input = String(input);
- options2 = options2 || {};
- if (input.length !== 0) {
- if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
- input += "\n";
- }
- if (input.charCodeAt(0) === 65279) {
- input = input.slice(1);
- }
- }
- var state2 = new State$1(input, options2);
- var nullpos = input.indexOf("\0");
- if (nullpos !== -1) {
- state2.position = nullpos;
- throwError(state2, "null byte is not allowed in input");
- }
- state2.input += "\0";
- while (state2.input.charCodeAt(state2.position) === 32) {
- state2.lineIndent += 1;
- state2.position += 1;
- }
- while (state2.position < state2.length - 1) {
- readDocument(state2);
- }
- return state2.documents;
- }
- function loadAll$1(input, iterator, options2) {
- if (iterator !== null && typeof iterator === "object" && typeof options2 === "undefined") {
- options2 = iterator;
- iterator = null;
- }
- var documents2 = loadDocuments(input, options2);
- if (typeof iterator !== "function") {
- return documents2;
- }
- for (var index = 0, length2 = documents2.length; index < length2; index += 1) {
- iterator(documents2[index]);
- }
- }
- function load$1(input, options2) {
- var documents2 = loadDocuments(input, options2);
- if (documents2.length === 0) {
- return void 0;
- } else if (documents2.length === 1) {
- return documents2[0];
- }
- throw new exception("expected a single document in the stream, but found more");
- }
- var loadAll_1 = loadAll$1;
- var load_1 = load$1;
- var loader$i = {
- loadAll: loadAll_1,
- load: load_1
- };
- var FAILSAFE_SCHEMA = failsafe;
- var load = loader$i.load;
- const frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
- function extractFrontMatter(text2, db2) {
- var _a, _b;
- const matches = text2.match(frontMatterRegex);
- if (matches) {
- const parsed = load(matches[1], {
- // To keep things simple, only allow strings, arrays, and plain objects.
- // https://www.yaml.org/spec/1.2/spec.html#id2802346
- schema: FAILSAFE_SCHEMA
});
- if (parsed == null ? void 0 : parsed.title) {
- (_a = db2.setDiagramTitle) == null ? void 0 : _a.call(db2, parsed.title);
- }
- if (parsed == null ? void 0 : parsed.displayMode) {
- (_b = db2.setDisplayMode) == null ? void 0 : _b.call(db2, parsed.displayMode);
- }
- return text2.slice(matches[0].length);
- } else {
- return text2;
- }
- }
- const assignWithDepth = function(dst, src, config2) {
- const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config2);
- if (Array.isArray(src) && !Array.isArray(dst)) {
- src.forEach((s) => assignWithDepth(dst, s, config2));
- return dst;
- } else if (Array.isArray(src) && Array.isArray(dst)) {
- src.forEach((s) => {
- if (!dst.includes(s)) {
- dst.push(s);
+ defineFunction({
+ type: "vcenter",
+ names: ["\\vcenter"],
+ props: {
+ numArgs: 1,
+ argTypes: ["original"],
+ // In LaTeX, \vcenter can act only on a box.
+ allowedInText: false
+ },
+ handler(_ref, args) {
+ var {
+ parser: parser22
+ } = _ref;
+ return {
+ type: "vcenter",
+ mode: parser22.mode,
+ body: args[0]
+ };
+ },
+ htmlBuilder(group2, options3) {
+ var body = buildGroup$1(group2.body, options3);
+ var axisHeight = options3.fontMetrics().axisHeight;
+ var dy = 0.5 * (body.height - axisHeight - (body.depth + axisHeight));
+ return buildCommon.makeVList({
+ positionType: "shift",
+ positionData: dy,
+ children: [{
+ type: "elem",
+ elem: body
+ }]
+ }, options3);
+ },
+ mathmlBuilder(group2, options3) {
+ return new mathMLTree.MathNode("mpadded", [buildGroup2(group2.body, options3)], ["vcenter"]);
}
});
- return dst;
- }
- if (dst === void 0 || depth <= 0) {
- if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") {
- return Object.assign(dst, src);
- } else {
- return src;
- }
- }
- if (src !== void 0 && typeof dst === "object" && typeof src === "object") {
- Object.keys(src).forEach((key) => {
- if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) {
- if (dst[key] === void 0) {
- dst[key] = Array.isArray(src[key]) ? [] : {};
- }
- dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });
- } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") {
- dst[key] = src[key];
+ defineFunction({
+ type: "verb",
+ names: ["\\verb"],
+ props: {
+ numArgs: 0,
+ allowedInText: true
+ },
+ handler(context, args, optArgs) {
+ throw new ParseError("\\verb ended by end of line instead of matching delimiter");
+ },
+ htmlBuilder(group2, options3) {
+ var text2 = makeVerb(group2);
+ var body = [];
+ var newOptions = options3.havingStyle(options3.style.text());
+ for (var i2 = 0; i2 < text2.length; i2++) {
+ var c3 = text2[i2];
+ if (c3 === "~") {
+ c3 = "\\textasciitilde";
+ }
+ body.push(buildCommon.makeSymbol(c3, "Typewriter-Regular", group2.mode, newOptions, ["mord", "texttt"]));
+ }
+ return buildCommon.makeSpan(["mord", "text"].concat(newOptions.sizingClasses(options3)), buildCommon.tryCombineChars(body), newOptions);
+ },
+ mathmlBuilder(group2, options3) {
+ var text2 = new mathMLTree.TextNode(makeVerb(group2));
+ var node2 = new mathMLTree.MathNode("mtext", [text2]);
+ node2.setAttribute("mathvariant", "monospace");
+ return node2;
}
});
- }
- return dst;
- };
- const assignWithDepth$1 = assignWithDepth;
- const defaultConfig = Object.freeze(config$2);
- let siteConfig = assignWithDepth$1({}, defaultConfig);
- let configFromInitialize;
- let directives = [];
- let currentConfig = assignWithDepth$1({}, defaultConfig);
- const updateCurrentConfig = (siteCfg, _directives) => {
- let cfg = assignWithDepth$1({}, siteCfg);
- let sumOfDirectives = {};
- for (const d of _directives) {
- sanitize(d);
- sumOfDirectives = assignWithDepth$1(sumOfDirectives, d);
- }
- cfg = assignWithDepth$1(cfg, sumOfDirectives);
- if (sumOfDirectives.theme && sumOfDirectives.theme in theme) {
- const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize);
- const themeVariables = assignWithDepth$1(
- tmpConfigFromInitialize.themeVariables || {},
- sumOfDirectives.themeVariables
- );
- if (cfg.theme && cfg.theme in theme) {
- cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);
- }
- }
- currentConfig = cfg;
- checkConfig(currentConfig);
- return currentConfig;
- };
- const setSiteConfig = (conf2) => {
- siteConfig = assignWithDepth$1({}, defaultConfig);
- siteConfig = assignWithDepth$1(siteConfig, conf2);
- if (conf2.theme && theme[conf2.theme]) {
- siteConfig.themeVariables = theme[conf2.theme].getThemeVariables(conf2.themeVariables);
- }
- updateCurrentConfig(siteConfig, directives);
- return siteConfig;
- };
- const saveConfigFromInitialize = (conf2) => {
- configFromInitialize = assignWithDepth$1({}, conf2);
- };
- const updateSiteConfig = (conf2) => {
- siteConfig = assignWithDepth$1(siteConfig, conf2);
- updateCurrentConfig(siteConfig, directives);
- return siteConfig;
- };
- const getSiteConfig = () => {
- return assignWithDepth$1({}, siteConfig);
- };
- const setConfig = (conf2) => {
- checkConfig(conf2);
- assignWithDepth$1(currentConfig, conf2);
- return getConfig$1();
- };
- const getConfig$1 = () => {
- return assignWithDepth$1({}, currentConfig);
- };
- const sanitize = (options2) => {
- ["secure", ...siteConfig.secure ?? []].forEach((key) => {
- if (options2[key] !== void 0) {
- log$1.debug(`Denied attempt to modify a secure key ${key}`, options2[key]);
- delete options2[key];
- }
- });
- Object.keys(options2).forEach((key) => {
- if (key.indexOf("__") === 0) {
- delete options2[key];
- }
- });
- Object.keys(options2).forEach((key) => {
- if (typeof options2[key] === "string" && (options2[key].includes("<") || options2[key].includes(">") || options2[key].includes("url(data:"))) {
- delete options2[key];
- }
- if (typeof options2[key] === "object") {
- sanitize(options2[key]);
- }
- });
- };
- const addDirective = (directive2) => {
- if (directive2.fontFamily) {
- if (!directive2.themeVariables) {
- directive2.themeVariables = { fontFamily: directive2.fontFamily };
- } else {
- if (!directive2.themeVariables.fontFamily) {
- directive2.themeVariables = { fontFamily: directive2.fontFamily };
+ makeVerb = /* @__PURE__ */ __name((group2) => group2.body.replace(/ /g, group2.star ? "\u2423" : "\xA0"), "makeVerb");
+ functions = _functions;
+ spaceRegexString = "[ \r\n ]";
+ controlWordRegexString = "\\\\[a-zA-Z@]+";
+ controlSymbolRegexString = "\\\\[^\uD800-\uDFFF]";
+ controlWordWhitespaceRegexString = "(" + controlWordRegexString + ")" + spaceRegexString + "*";
+ controlSpaceRegexString = "\\\\(\n|[ \r ]+\n?)[ \r ]*";
+ combiningDiacriticalMarkString = "[\u0300-\u036F]";
+ combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + "+$");
+ tokenRegexString = "(" + spaceRegexString + "+)|" + // whitespace
+ (controlSpaceRegexString + "|") + // \whitespace
+ "([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]" + // single codepoint
+ (combiningDiacriticalMarkString + "*") + // ...plus accents
+ "|[\uD800-\uDBFF][\uDC00-\uDFFF]" + // surrogate pair
+ (combiningDiacriticalMarkString + "*") + // ...plus accents
+ "|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5" + // \verb unstarred
+ ("|" + controlWordWhitespaceRegexString) + // \macroName + spaces
+ ("|" + controlSymbolRegexString + ")");
+ Lexer = class {
+ static {
+ __name(this, "Lexer");
+ }
+ // Category codes. The lexer only supports comment characters (14) for now.
+ // MacroExpander additionally distinguishes active (13).
+ constructor(input, settings) {
+ this.input = void 0;
+ this.settings = void 0;
+ this.tokenRegex = void 0;
+ this.catcodes = void 0;
+ this.input = input;
+ this.settings = settings;
+ this.tokenRegex = new RegExp(tokenRegexString, "g");
+ this.catcodes = {
+ "%": 14,
+ // comment character
+ "~": 13
+ // active character
+ };
}
- }
- }
- directives.push(directive2);
- updateCurrentConfig(siteConfig, directives);
- };
- const reset = (config2 = siteConfig) => {
- directives = [];
- updateCurrentConfig(config2, directives);
- };
- var ConfigWarning = /* @__PURE__ */ ((ConfigWarning2) => {
- ConfigWarning2["LAZY_LOAD_DEPRECATED"] = "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.";
- return ConfigWarning2;
- })(ConfigWarning || {});
- const issuedWarnings = {};
- const issueWarning = (warning) => {
- if (issuedWarnings[warning]) {
- return;
- }
- log$1.warn(ConfigWarning[warning]);
- issuedWarnings[warning] = true;
- };
- const checkConfig = (config2) => {
- if (!config2) {
- return;
- }
- if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {
- issueWarning("LAZY_LOAD_DEPRECATED");
- }
- };
- const d3Attrs = function(d3Elem, attrs) {
- for (let attr of attrs) {
- d3Elem.attr(attr[0], attr[1]);
- }
- };
- const calculateSvgSizeAttrs = function(height2, width2, useMaxWidth) {
- let attrs = /* @__PURE__ */ new Map();
- if (useMaxWidth) {
- attrs.set("width", "100%");
- attrs.set("style", `max-width: ${width2}px;`);
- } else {
- attrs.set("height", height2);
- attrs.set("width", width2);
- }
- return attrs;
- };
- const configureSvgSize = function(svgElem, height2, width2, useMaxWidth) {
- const attrs = calculateSvgSizeAttrs(height2, width2, useMaxWidth);
- d3Attrs(svgElem, attrs);
- };
- const setupGraphViewbox$1 = function(graph, svgElem, padding2, useMaxWidth) {
- const svgBounds = svgElem.node().getBBox();
- const sWidth = svgBounds.width;
- const sHeight = svgBounds.height;
- log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);
- let width2 = 0;
- let height2 = 0;
- log$1.info(`Graph bounds: ${width2}x${height2}`, graph);
- width2 = sWidth + padding2 * 2;
- height2 = sHeight + padding2 * 2;
- log$1.info(`Calculated bounds: ${width2}x${height2}`);
- configureSvgSize(svgElem, height2, width2, useMaxWidth);
- const vBox = `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${svgBounds.width + 2 * padding2} ${svgBounds.height + 2 * padding2}`;
- svgElem.attr("viewBox", vBox);
- };
- const themes = {};
- const getStyles$g = (type2, userStyles, options2) => {
- let diagramStyles = "";
- if (type2 in themes && themes[type2]) {
- diagramStyles = themes[type2](options2);
- } else {
- log$1.warn(`No theme found for ${type2}`);
- }
- return ` & {
- font-family: ${options2.fontFamily};
- font-size: ${options2.fontSize};
- fill: ${options2.textColor}
- }
-
- /* Classes common for multiple diagrams */
-
- & .error-icon {
- fill: ${options2.errorBkgColor};
- }
- & .error-text {
- fill: ${options2.errorTextColor};
- stroke: ${options2.errorTextColor};
- }
-
- & .edge-thickness-normal {
- stroke-width: 2px;
- }
- & .edge-thickness-thick {
- stroke-width: 3.5px
- }
- & .edge-pattern-solid {
- stroke-dasharray: 0;
- }
-
- & .edge-pattern-dashed{
- stroke-dasharray: 3;
- }
- .edge-pattern-dotted {
- stroke-dasharray: 2;
- }
-
- & .marker {
- fill: ${options2.lineColor};
- stroke: ${options2.lineColor};
- }
- & .marker.cross {
- stroke: ${options2.lineColor};
- }
-
- & svg {
- font-family: ${options2.fontFamily};
- font-size: ${options2.fontSize};
- }
-
- ${diagramStyles}
-
- ${userStyles}
-`;
- };
- const addStylesForDiagram = (type2, diagramTheme) => {
- themes[type2] = diagramTheme;
- };
- const getStyles$h = getStyles$g;
- let title$1 = "";
- let diagramTitle = "";
- let description = "";
- const sanitizeText$6 = (txt) => sanitizeText$7(txt, getConfig$1());
- const clear$i = function() {
- title$1 = "";
- description = "";
- diagramTitle = "";
- };
- const setAccTitle = function(txt) {
- title$1 = sanitizeText$6(txt).replace(/^\s+/g, "");
- };
- const getAccTitle = function() {
- return title$1 || diagramTitle;
- };
- const setAccDescription = function(txt) {
- description = sanitizeText$6(txt).replace(/\n\s+/g, "\n");
- };
- const getAccDescription = function() {
- return description;
- };
- const setDiagramTitle = function(txt) {
- diagramTitle = sanitizeText$6(txt);
- };
- const getDiagramTitle = function() {
- return diagramTitle;
- };
- const commonDb = {
- getAccTitle,
- setAccTitle,
- getDiagramTitle,
- setDiagramTitle,
- getAccDescription,
- setAccDescription,
- clear: clear$i
- };
- const commonDb$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- clear: clear$i,
- default: commonDb,
- getAccDescription,
- getAccTitle,
- getDiagramTitle,
- setAccDescription,
- setAccTitle,
- setDiagramTitle
- }, Symbol.toStringTag, { value: "Module" }));
- let currentDirective = {};
- const parseDirective$d = function(p, statement, context, type2) {
- log$1.debug("parseDirective is being called", statement, context, type2);
- try {
- if (statement !== void 0) {
- statement = statement.trim();
- switch (context) {
- case "open_directive":
- currentDirective = {};
- break;
- case "type_directive":
- if (!currentDirective) {
- throw new Error("currentDirective is undefined");
- }
- currentDirective.type = statement.toLowerCase();
- break;
- case "arg_directive":
- if (!currentDirective) {
- throw new Error("currentDirective is undefined");
+ setCatcode(char2, code) {
+ this.catcodes[char2] = code;
+ }
+ /**
+ * This function lexes a single token.
+ */
+ lex() {
+ var input = this.input;
+ var pos = this.tokenRegex.lastIndex;
+ if (pos === input.length) {
+ return new Token("EOF", new SourceLocation(this, pos, pos));
+ }
+ var match2 = this.tokenRegex.exec(input);
+ if (match2 === null || match2.index !== pos) {
+ throw new ParseError("Unexpected character: '" + input[pos] + "'", new Token(input[pos], new SourceLocation(this, pos, pos + 1)));
+ }
+ var text2 = match2[6] || match2[3] || (match2[2] ? "\\ " : " ");
+ if (this.catcodes[text2] === 14) {
+ var nlIndex = input.indexOf("\n", this.tokenRegex.lastIndex);
+ if (nlIndex === -1) {
+ this.tokenRegex.lastIndex = input.length;
+ this.settings.reportNonstrict("commentAtEnd", "% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)");
+ } else {
+ this.tokenRegex.lastIndex = nlIndex + 1;
}
- currentDirective.args = JSON.parse(statement);
- break;
- case "close_directive":
- handleDirective(p, currentDirective, type2);
- currentDirective = void 0;
- break;
- }
- }
- } catch (error) {
- log$1.error(
- `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`
- );
- log$1.error(error.message);
- }
- };
- const handleDirective = function(p, directive2, type2) {
- log$1.info(`Directive type=${directive2.type} with args:`, directive2.args);
- switch (directive2.type) {
- case "init":
- case "initialize": {
- ["config"].forEach((prop) => {
- if (directive2.args[prop] !== void 0) {
- if (type2 === "flowchart-v2") {
- type2 = "flowchart";
- }
- directive2.args[type2] = directive2.args[prop];
- delete directive2.args[prop];
+ return this.lex();
+ }
+ return new Token(text2, new SourceLocation(this, pos, this.tokenRegex.lastIndex));
+ }
+ };
+ Namespace = class {
+ static {
+ __name(this, "Namespace");
+ }
+ /**
+ * Both arguments are optional. The first argument is an object of
+ * built-in mappings which never change. The second argument is an object
+ * of initial (global-level) mappings, which will constantly change
+ * according to any global/top-level `set`s done.
+ */
+ constructor(builtins, globalMacros) {
+ if (builtins === void 0) {
+ builtins = {};
+ }
+ if (globalMacros === void 0) {
+ globalMacros = {};
+ }
+ this.current = void 0;
+ this.builtins = void 0;
+ this.undefStack = void 0;
+ this.current = globalMacros;
+ this.builtins = builtins;
+ this.undefStack = [];
+ }
+ /**
+ * Start a new nested group, affecting future local `set`s.
+ */
+ beginGroup() {
+ this.undefStack.push({});
+ }
+ /**
+ * End current nested group, restoring values before the group began.
+ */
+ endGroup() {
+ if (this.undefStack.length === 0) {
+ throw new ParseError("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");
+ }
+ var undefs = this.undefStack.pop();
+ for (var undef2 in undefs) {
+ if (undefs.hasOwnProperty(undef2)) {
+ if (undefs[undef2] == null) {
+ delete this.current[undef2];
+ } else {
+ this.current[undef2] = undefs[undef2];
+ }
+ }
+ }
+ }
+ /**
+ * Ends all currently nested groups (if any), restoring values before the
+ * groups began. Useful in case of an error in the middle of parsing.
+ */
+ endGroups() {
+ while (this.undefStack.length > 0) {
+ this.endGroup();
+ }
+ }
+ /**
+ * Detect whether `name` has a definition. Equivalent to
+ * `get(name) != null`.
+ */
+ has(name) {
+ return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name);
+ }
+ /**
+ * Get the current value of a name, or `undefined` if there is no value.
+ *
+ * Note: Do not use `if (namespace.get(...))` to detect whether a macro
+ * is defined, as the definition may be the empty string which evaluates
+ * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or
+ * `if (namespace.has(...))`.
+ */
+ get(name) {
+ if (this.current.hasOwnProperty(name)) {
+ return this.current[name];
+ } else {
+ return this.builtins[name];
}
- });
- log$1.info("sanitize in handleDirective", directive2.args);
- directiveSanitizer(directive2.args);
- log$1.info("sanitize in handleDirective (done)", directive2.args);
- addDirective(directive2.args);
- break;
- }
- case "wrap":
- case "nowrap":
- if (p && p["setWrap"]) {
- p.setWrap(directive2.type === "wrap");
}
- break;
- case "themeCss":
- log$1.warn("themeCss encountered");
- break;
- default:
- log$1.warn(
- `Unhandled directive: source: '%%{${directive2.type}: ${JSON.stringify(
- directive2.args ? directive2.args : {}
- )}}%%`,
- directive2
- );
- break;
- }
- };
- const log = log$1;
- const setLogLevel = setLogLevel$1;
- const getConfig = getConfig$1;
- const sanitizeText$5 = (text2) => sanitizeText$7(text2, getConfig());
- const setupGraphViewbox = setupGraphViewbox$1;
- const getCommonDb$1 = () => {
- return commonDb$1;
- };
- const parseDirective$c = (p, statement, context, type2) => parseDirective$d(p, statement, context, type2);
- const diagrams = {};
- const registerDiagram = (id2, diagram2, detector2) => {
- if (diagrams[id2]) {
- throw new Error(`Diagram ${id2} already registered.`);
- }
- diagrams[id2] = diagram2;
- if (detector2) {
- addDetector(id2, detector2);
- }
- addStylesForDiagram(id2, diagram2.styles);
- if (diagram2.injectUtils) {
- diagram2.injectUtils(
- log,
- setLogLevel,
- getConfig,
- sanitizeText$5,
- setupGraphViewbox,
- getCommonDb$1(),
- parseDirective$c
- );
- }
- };
- const getDiagram = (name2) => {
- if (name2 in diagrams) {
- return diagrams[name2];
- }
- throw new Error(`Diagram ${name2} not found.`);
- };
- class UnknownDiagramError extends Error {
- constructor(message2) {
- super(message2);
- this.name = "UnknownDiagramError";
- }
- }
- const directive$1 = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
- const anyComment = /\s*%%.*\n/gm;
- const detectors = {};
- const detectType = function(text2, config2) {
- text2 = text2.replace(frontMatterRegex, "").replace(directive$1, "").replace(anyComment, "\n");
- for (const [key, { detector: detector2 }] of Object.entries(detectors)) {
- const diagram2 = detector2(text2, config2);
- if (diagram2) {
- return key;
- }
- }
- throw new UnknownDiagramError(
- `No diagram type detected matching given configuration for text: ${text2}`
- );
- };
- const registerLazyLoadedDiagrams = (...diagrams2) => {
- for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) {
- addDetector(id2, detector2, loader2);
- }
- };
- const loadRegisteredDiagrams = async () => {
- log$1.debug(`Loading registered diagrams`);
- const results = await Promise.allSettled(
- Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => {
- if (loader2) {
- try {
- getDiagram(key);
- } catch (error) {
- try {
- const { diagram: diagram2, id: id2 } = await loader2();
- registerDiagram(id2, diagram2, detector2);
- } catch (err) {
- log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);
- delete detectors[key];
- throw err;
+ /**
+ * Set the current value of a name, and optionally set it globally too.
+ * Local set() sets the current value and (when appropriate) adds an undo
+ * operation to the undo stack. Global set() may change the undo
+ * operation at every level, so takes time linear in their number.
+ * A value of undefined means to delete existing definitions.
+ */
+ set(name, value2, global2) {
+ if (global2 === void 0) {
+ global2 = false;
+ }
+ if (global2) {
+ for (var i2 = 0; i2 < this.undefStack.length; i2++) {
+ delete this.undefStack[i2][name];
+ }
+ if (this.undefStack.length > 0) {
+ this.undefStack[this.undefStack.length - 1][name] = value2;
+ }
+ } else {
+ var top2 = this.undefStack[this.undefStack.length - 1];
+ if (top2 && !top2.hasOwnProperty(name)) {
+ top2[name] = this.current[name];
}
}
+ if (value2 == null) {
+ delete this.current[name];
+ } else {
+ this.current[name] = value2;
+ }
}
- })
- );
- const failed = results.filter((result) => result.status === "rejected");
- if (failed.length > 0) {
- log$1.error(`Failed to load ${failed.length} external diagrams`);
- for (const res of failed) {
- log$1.error(res);
- }
- throw new Error(`Failed to load ${failed.length} external diagrams`);
- }
- };
- const addDetector = (key, detector2, loader2) => {
- if (detectors[key]) {
- log$1.error(`Detector with key ${key} already exists`);
- } else {
- detectors[key] = { detector: detector2, loader: loader2 };
- }
- log$1.debug(`Detector with key ${key} added${loader2 ? " with loader" : ""}`);
- };
- const getDiagramLoader = (key) => {
- return detectors[key].loader;
- };
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
- const freeGlobal$1 = freeGlobal;
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
- var root = freeGlobal$1 || freeSelf || Function("return this")();
- const root$1 = root;
- var Symbol$1 = root$1.Symbol;
- const Symbol$2 = Symbol$1;
- var objectProto$i = Object.prototype;
- var hasOwnProperty$f = objectProto$i.hasOwnProperty;
- var nativeObjectToString$1 = objectProto$i.toString;
- var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0;
- function getRawTag(value) {
- var isOwn = hasOwnProperty$f.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;
- }
- var objectProto$h = Object.prototype;
- var nativeObjectToString = objectProto$h.toString;
- function objectToString(value) {
- return nativeObjectToString.call(value);
- }
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
- var symToStringTag = Symbol$2 ? Symbol$2.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);
- }
- function isObject(value) {
- var type2 = typeof value;
- return value != null && (type2 == "object" || type2 == "function");
- }
- var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
- function isFunction(value) {
- if (!isObject(value)) {
- return false;
- }
- var tag = baseGetTag(value);
- return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag;
- }
- var coreJsData = root$1["__core-js_shared__"];
- const coreJsData$1 = coreJsData;
- var maskSrcKey = function() {
- var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || "");
- return uid ? "Symbol(src)_1." + uid : "";
- }();
- function isMasked(func) {
- return !!maskSrcKey && maskSrcKey in func;
- }
- var funcProto$2 = Function.prototype;
- var funcToString$2 = funcProto$2.toString;
- function toSource(func) {
- if (func != null) {
- try {
- return funcToString$2.call(func);
- } catch (e) {
- }
- try {
- return func + "";
- } catch (e) {
- }
- }
- return "";
- }
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
- var funcProto$1 = Function.prototype, objectProto$g = Object.prototype;
- var funcToString$1 = funcProto$1.toString;
- var hasOwnProperty$e = objectProto$g.hasOwnProperty;
- var reIsNative = RegExp(
- "^" + funcToString$1.call(hasOwnProperty$e).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
- );
- function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
- }
- function getValue(object2, key) {
- return object2 == null ? void 0 : object2[key];
- }
- function getNative(object2, key) {
- var value = getValue(object2, key);
- return baseIsNative(value) ? value : void 0;
- }
- var nativeCreate = getNative(Object, "create");
- const nativeCreate$1 = nativeCreate;
- function hashClear() {
- this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {};
- this.size = 0;
- }
- function hashDelete(key) {
- var result = this.has(key) && delete this.__data__[key];
- this.size -= result ? 1 : 0;
- return result;
- }
- var HASH_UNDEFINED$2 = "__lodash_hash_undefined__";
- var objectProto$f = Object.prototype;
- var hasOwnProperty$d = objectProto$f.hasOwnProperty;
- function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate$1) {
- var result = data[key];
- return result === HASH_UNDEFINED$2 ? void 0 : result;
- }
- return hasOwnProperty$d.call(data, key) ? data[key] : void 0;
- }
- var objectProto$e = Object.prototype;
- var hasOwnProperty$c = objectProto$e.hasOwnProperty;
- function hashHas(key) {
- var data = this.__data__;
- return nativeCreate$1 ? data[key] !== void 0 : hasOwnProperty$c.call(data, key);
- }
- var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
- function hashSet(key, value) {
- var data = this.__data__;
- this.size += this.has(key) ? 0 : 1;
- data[key] = nativeCreate$1 && value === void 0 ? HASH_UNDEFINED$1 : value;
- return this;
- }
- function Hash(entries2) {
- var index = -1, length2 = entries2 == null ? 0 : entries2.length;
- this.clear();
- while (++index < length2) {
- var entry = entries2[index];
- this.set(entry[0], entry[1]);
- }
- }
- Hash.prototype.clear = hashClear;
- Hash.prototype["delete"] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
- function listCacheClear() {
- this.__data__ = [];
- this.size = 0;
- }
- function eq(value, other) {
- return value === other || value !== value && other !== other;
- }
- function assocIndexOf(array2, key) {
- var length2 = array2.length;
- while (length2--) {
- if (eq(array2[length2][0], key)) {
- return length2;
- }
- }
- return -1;
- }
- var arrayProto = Array.prototype;
- var splice = arrayProto.splice;
- function listCacheDelete(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- --this.size;
- return true;
- }
- function listCacheGet(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- return index < 0 ? void 0 : data[index][1];
- }
- function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
- }
- function listCacheSet(key, value) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- ++this.size;
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
- }
- function ListCache(entries2) {
- var index = -1, length2 = entries2 == null ? 0 : entries2.length;
- this.clear();
- while (++index < length2) {
- var entry = entries2[index];
- this.set(entry[0], entry[1]);
- }
- }
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype["delete"] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
- var Map$1 = getNative(root$1, "Map");
- const Map$2 = Map$1;
- function mapCacheClear() {
- this.size = 0;
- this.__data__ = {
- "hash": new Hash(),
- "map": new (Map$2 || ListCache)(),
- "string": new Hash()
- };
- }
- function isKeyable(value) {
- var type2 = typeof value;
- return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null;
- }
- function getMapData(map2, key) {
- var data = map2.__data__;
- return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
- }
- function mapCacheDelete(key) {
- var result = getMapData(this, key)["delete"](key);
- this.size -= result ? 1 : 0;
- return result;
- }
- function mapCacheGet(key) {
- return getMapData(this, key).get(key);
- }
- function mapCacheHas(key) {
- return getMapData(this, key).has(key);
- }
- function mapCacheSet(key, value) {
- var data = getMapData(this, key), size2 = data.size;
- data.set(key, value);
- this.size += data.size == size2 ? 0 : 1;
- return this;
- }
- function MapCache(entries2) {
- var index = -1, length2 = entries2 == null ? 0 : entries2.length;
- this.clear();
- while (++index < length2) {
- var entry = entries2[index];
- this.set(entry[0], entry[1]);
- }
- }
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype["delete"] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
- var FUNC_ERROR_TEXT = "Expected a function";
- function memoize(func, resolver) {
- if (typeof func != "function" || resolver != null && typeof resolver != "function") {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- var memoized = function() {
- var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
- if (cache.has(key)) {
- return cache.get(key);
- }
- var result = func.apply(this, args);
- memoized.cache = cache.set(key, result) || cache;
- return result;
- };
- memoized.cache = new (memoize.Cache || MapCache)();
- return memoized;
- }
- memoize.Cache = MapCache;
- const d3CurveTypes = {
- curveBasis,
- curveBasisClosed,
- curveBasisOpen,
- curveBumpX: bumpX,
- curveBumpY: bumpY,
- curveBundle,
- curveCardinalClosed,
- curveCardinalOpen,
- curveCardinal,
- curveCatmullRomClosed,
- curveCatmullRomOpen,
- curveCatmullRom,
- curveLinear,
- curveLinearClosed,
- curveMonotoneX: monotoneX,
- curveMonotoneY: monotoneY,
- curveNatural,
- curveStep,
- curveStepAfter: stepAfter,
- curveStepBefore: stepBefore
- };
- const directive = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
- const directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
- const detectInit = function(text2, config2) {
- const inits = detectDirective(text2, /(?:init\b)|(?:initialize\b)/);
- let results = {};
- if (Array.isArray(inits)) {
- const args = inits.map((init2) => init2.args);
- directiveSanitizer(args);
- results = assignWithDepth$1(results, [...args]);
- } else {
- results = inits.args;
- }
- if (results) {
- let type2 = detectType(text2, config2);
- ["config"].forEach((prop) => {
- if (results[prop] !== void 0) {
- if (type2 === "flowchart-v2") {
- type2 = "flowchart";
- }
- results[type2] = results[prop];
- delete results[prop];
+ };
+ macros = _macros;
+ defineMacro("\\noexpand", function(context) {
+ var t4 = context.popToken();
+ if (context.isExpandable(t4.text)) {
+ t4.noexpand = true;
+ t4.treatAsRelax = true;
}
+ return {
+ tokens: [t4],
+ numArgs: 0
+ };
});
- }
- return results;
- };
- const detectDirective = function(text2, type2 = null) {
- try {
- const commentWithoutDirectives = new RegExp(
- `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*
-`,
- "ig"
- );
- text2 = text2.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"');
- log$1.debug(
- `Detecting diagram directive${type2 !== null ? " type:" + type2 : ""} based on the text:${text2}`
- );
- let match;
- const result = [];
- while ((match = directive.exec(text2)) !== null) {
- if (match.index === directive.lastIndex) {
- directive.lastIndex++;
- }
- if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) {
- const type22 = match[1] ? match[1] : match[2];
- const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
- result.push({ type: type22, args });
- }
- }
- if (result.length === 0) {
- result.push({ type: text2, args: null });
- }
- return result.length === 1 ? result[0] : result;
- } catch (error) {
- log$1.error(
- `ERROR: ${error.message} - Unable to parse directive
- ${type2 !== null ? " type:" + type2 : ""} based on the text:${text2}`
- );
- return { type: null, args: null };
- }
- };
- const isSubstringInArray = function(str2, arr) {
- for (const [i2, element] of arr.entries()) {
- if (element.match(str2)) {
- return i2;
- }
- }
- return -1;
- };
- function interpolateToCurve(interpolate2, defaultCurve) {
- if (!interpolate2) {
- return defaultCurve;
- }
- const curveName = `curve${interpolate2.charAt(0).toUpperCase() + interpolate2.slice(1)}`;
- return d3CurveTypes[curveName] || defaultCurve;
- }
- function formatUrl(linkStr, config2) {
- const url = linkStr.trim();
- if (url) {
- if (config2.securityLevel !== "loose") {
- return sanitizeUrl_1(url);
- }
- return url;
- }
- }
- const runFunc = (functionName, ...params) => {
- const arrPaths = functionName.split(".");
- const len = arrPaths.length - 1;
- const fnName = arrPaths[len];
- let obj = window;
- for (let i2 = 0; i2 < len; i2++) {
- obj = obj[arrPaths[i2]];
- if (!obj) {
- return;
- }
- }
- obj[fnName](...params);
- };
- function distance(p1, p2) {
- return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;
- }
- function traverseEdge(points) {
- let prevPoint;
- let totalDistance = 0;
- points.forEach((point2) => {
- totalDistance += distance(point2, prevPoint);
- prevPoint = point2;
- });
- let remainingDistance = totalDistance / 2;
- let center2 = void 0;
- prevPoint = void 0;
- points.forEach((point2) => {
- if (prevPoint && !center2) {
- const vectorDistance = distance(point2, prevPoint);
- if (vectorDistance < remainingDistance) {
- remainingDistance -= vectorDistance;
+ defineMacro("\\expandafter", function(context) {
+ var t4 = context.popToken();
+ context.expandOnce(true);
+ return {
+ tokens: [t4],
+ numArgs: 0
+ };
+ });
+ defineMacro("\\@firstoftwo", function(context) {
+ var args = context.consumeArgs(2);
+ return {
+ tokens: args[0],
+ numArgs: 0
+ };
+ });
+ defineMacro("\\@secondoftwo", function(context) {
+ var args = context.consumeArgs(2);
+ return {
+ tokens: args[1],
+ numArgs: 0
+ };
+ });
+ defineMacro("\\@ifnextchar", function(context) {
+ var args = context.consumeArgs(3);
+ context.consumeSpaces();
+ var nextToken = context.future();
+ if (args[0].length === 1 && args[0][0].text === nextToken.text) {
+ return {
+ tokens: args[1],
+ numArgs: 0
+ };
+ } else {
+ return {
+ tokens: args[2],
+ numArgs: 0
+ };
+ }
+ });
+ defineMacro("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}");
+ defineMacro("\\TextOrMath", function(context) {
+ var args = context.consumeArgs(2);
+ if (context.mode === "text") {
+ return {
+ tokens: args[0],
+ numArgs: 0
+ };
} else {
- const distanceRatio = remainingDistance / vectorDistance;
- if (distanceRatio <= 0) {
- center2 = prevPoint;
+ return {
+ tokens: args[1],
+ numArgs: 0
+ };
+ }
+ });
+ digitToNumber = {
+ "0": 0,
+ "1": 1,
+ "2": 2,
+ "3": 3,
+ "4": 4,
+ "5": 5,
+ "6": 6,
+ "7": 7,
+ "8": 8,
+ "9": 9,
+ "a": 10,
+ "A": 10,
+ "b": 11,
+ "B": 11,
+ "c": 12,
+ "C": 12,
+ "d": 13,
+ "D": 13,
+ "e": 14,
+ "E": 14,
+ "f": 15,
+ "F": 15
+ };
+ defineMacro("\\char", function(context) {
+ var token2 = context.popToken();
+ var base;
+ var number7 = "";
+ if (token2.text === "'") {
+ base = 8;
+ token2 = context.popToken();
+ } else if (token2.text === '"') {
+ base = 16;
+ token2 = context.popToken();
+ } else if (token2.text === "`") {
+ token2 = context.popToken();
+ if (token2.text[0] === "\\") {
+ number7 = token2.text.charCodeAt(1);
+ } else if (token2.text === "EOF") {
+ throw new ParseError("\\char` missing argument");
+ } else {
+ number7 = token2.text.charCodeAt(0);
}
- if (distanceRatio >= 1) {
- center2 = { x: point2.x, y: point2.y };
+ } else {
+ base = 10;
+ }
+ if (base) {
+ number7 = digitToNumber[token2.text];
+ if (number7 == null || number7 >= base) {
+ throw new ParseError("Invalid base-" + base + " digit " + token2.text);
}
- if (distanceRatio > 0 && distanceRatio < 1) {
- center2 = {
- x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
- y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
- };
+ var digit;
+ while ((digit = digitToNumber[context.future().text]) != null && digit < base) {
+ number7 *= base;
+ number7 += digit;
+ context.popToken();
}
}
- }
- prevPoint = point2;
- });
- return center2;
- }
- function calcLabelPosition(points) {
- if (points.length === 1) {
- return points[0];
- }
- return traverseEdge(points);
- }
- const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {
- let prevPoint;
- log$1.info(`our points ${JSON.stringify(points)}`);
- if (points[0] !== initialPosition) {
- points = points.reverse();
- }
- const distanceToCardinalityPoint = 25;
- let remainingDistance = distanceToCardinalityPoint;
- let center2;
- prevPoint = void 0;
- points.forEach((point2) => {
- if (prevPoint && !center2) {
- const vectorDistance = distance(point2, prevPoint);
- if (vectorDistance < remainingDistance) {
- remainingDistance -= vectorDistance;
+ return "\\@char{" + number7 + "}";
+ });
+ newcommand = /* @__PURE__ */ __name((context, existsOK, nonexistsOK) => {
+ var arg = context.consumeArg().tokens;
+ if (arg.length !== 1) {
+ throw new ParseError("\\newcommand's first argument must be a macro name");
+ }
+ var name = arg[0].text;
+ var exists2 = context.isDefined(name);
+ if (exists2 && !existsOK) {
+ throw new ParseError("\\newcommand{" + name + "} attempting to redefine " + (name + "; use \\renewcommand"));
+ }
+ if (!exists2 && !nonexistsOK) {
+ throw new ParseError("\\renewcommand{" + name + "} when command " + name + " does not yet exist; use \\newcommand");
+ }
+ var numArgs = 0;
+ arg = context.consumeArg().tokens;
+ if (arg.length === 1 && arg[0].text === "[") {
+ var argText = "";
+ var token2 = context.expandNextToken();
+ while (token2.text !== "]" && token2.text !== "EOF") {
+ argText += token2.text;
+ token2 = context.expandNextToken();
+ }
+ if (!argText.match(/^\s*[0-9]+\s*$/)) {
+ throw new ParseError("Invalid number of arguments: " + argText);
+ }
+ numArgs = parseInt(argText);
+ arg = context.consumeArg().tokens;
+ }
+ context.macros.set(name, {
+ tokens: arg,
+ numArgs
+ });
+ return "";
+ }, "newcommand");
+ defineMacro("\\newcommand", (context) => newcommand(context, false, true));
+ defineMacro("\\renewcommand", (context) => newcommand(context, true, false));
+ defineMacro("\\providecommand", (context) => newcommand(context, true, true));
+ defineMacro("\\message", (context) => {
+ var arg = context.consumeArgs(1)[0];
+ console.log(arg.reverse().map((token2) => token2.text).join(""));
+ return "";
+ });
+ defineMacro("\\errmessage", (context) => {
+ var arg = context.consumeArgs(1)[0];
+ console.error(arg.reverse().map((token2) => token2.text).join(""));
+ return "";
+ });
+ defineMacro("\\show", (context) => {
+ var tok = context.popToken();
+ var name = tok.text;
+ console.log(tok, context.macros.get(name), functions[name], symbols.math[name], symbols.text[name]);
+ return "";
+ });
+ defineMacro("\\bgroup", "{");
+ defineMacro("\\egroup", "}");
+ defineMacro("~", "\\nobreakspace");
+ defineMacro("\\lq", "`");
+ defineMacro("\\rq", "'");
+ defineMacro("\\aa", "\\r a");
+ defineMacro("\\AA", "\\r A");
+ defineMacro("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`\xA9}");
+ defineMacro("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");
+ defineMacro("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");
+ defineMacro("\u212C", "\\mathscr{B}");
+ defineMacro("\u2130", "\\mathscr{E}");
+ defineMacro("\u2131", "\\mathscr{F}");
+ defineMacro("\u210B", "\\mathscr{H}");
+ defineMacro("\u2110", "\\mathscr{I}");
+ defineMacro("\u2112", "\\mathscr{L}");
+ defineMacro("\u2133", "\\mathscr{M}");
+ defineMacro("\u211B", "\\mathscr{R}");
+ defineMacro("\u212D", "\\mathfrak{C}");
+ defineMacro("\u210C", "\\mathfrak{H}");
+ defineMacro("\u2128", "\\mathfrak{Z}");
+ defineMacro("\\Bbbk", "\\Bbb{k}");
+ defineMacro("\xB7", "\\cdotp");
+ defineMacro("\\llap", "\\mathllap{\\textrm{#1}}");
+ defineMacro("\\rlap", "\\mathrlap{\\textrm{#1}}");
+ defineMacro("\\clap", "\\mathclap{\\textrm{#1}}");
+ defineMacro("\\mathstrut", "\\vphantom{(}");
+ defineMacro("\\underbar", "\\underline{\\text{#1}}");
+ defineMacro("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');
+ defineMacro("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");
+ defineMacro("\\ne", "\\neq");
+ defineMacro("\u2260", "\\neq");
+ defineMacro("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");
+ defineMacro("\u2209", "\\notin");
+ defineMacro("\u2258", "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");
+ defineMacro("\u2259", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");
+ defineMacro("\u225A", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");
+ defineMacro("\u225B", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");
+ defineMacro("\u225D", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");
+ defineMacro("\u225E", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");
+ defineMacro("\u225F", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");
+ defineMacro("\u27C2", "\\perp");
+ defineMacro("\u203C", "\\mathclose{!\\mkern-0.8mu!}");
+ defineMacro("\u220C", "\\notni");
+ defineMacro("\u231C", "\\ulcorner");
+ defineMacro("\u231D", "\\urcorner");
+ defineMacro("\u231E", "\\llcorner");
+ defineMacro("\u231F", "\\lrcorner");
+ defineMacro("\xA9", "\\copyright");
+ defineMacro("\xAE", "\\textregistered");
+ defineMacro("\uFE0F", "\\textregistered");
+ defineMacro("\\ulcorner", '\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');
+ defineMacro("\\urcorner", '\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');
+ defineMacro("\\llcorner", '\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');
+ defineMacro("\\lrcorner", '\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');
+ defineMacro("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}");
+ defineMacro("\u22EE", "\\vdots");
+ defineMacro("\\varGamma", "\\mathit{\\Gamma}");
+ defineMacro("\\varDelta", "\\mathit{\\Delta}");
+ defineMacro("\\varTheta", "\\mathit{\\Theta}");
+ defineMacro("\\varLambda", "\\mathit{\\Lambda}");
+ defineMacro("\\varXi", "\\mathit{\\Xi}");
+ defineMacro("\\varPi", "\\mathit{\\Pi}");
+ defineMacro("\\varSigma", "\\mathit{\\Sigma}");
+ defineMacro("\\varUpsilon", "\\mathit{\\Upsilon}");
+ defineMacro("\\varPhi", "\\mathit{\\Phi}");
+ defineMacro("\\varPsi", "\\mathit{\\Psi}");
+ defineMacro("\\varOmega", "\\mathit{\\Omega}");
+ defineMacro("\\substack", "\\begin{subarray}{c}#1\\end{subarray}");
+ defineMacro("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");
+ defineMacro("\\boxed", "\\fbox{$\\displaystyle{#1}$}");
+ defineMacro("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;");
+ defineMacro("\\implies", "\\DOTSB\\;\\Longrightarrow\\;");
+ defineMacro("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;");
+ dotsByToken = {
+ ",": "\\dotsc",
+ "\\not": "\\dotsb",
+ // \keybin@ checks for the following:
+ "+": "\\dotsb",
+ "=": "\\dotsb",
+ "<": "\\dotsb",
+ ">": "\\dotsb",
+ "-": "\\dotsb",
+ "*": "\\dotsb",
+ ":": "\\dotsb",
+ // Symbols whose definition starts with \DOTSB:
+ "\\DOTSB": "\\dotsb",
+ "\\coprod": "\\dotsb",
+ "\\bigvee": "\\dotsb",
+ "\\bigwedge": "\\dotsb",
+ "\\biguplus": "\\dotsb",
+ "\\bigcap": "\\dotsb",
+ "\\bigcup": "\\dotsb",
+ "\\prod": "\\dotsb",
+ "\\sum": "\\dotsb",
+ "\\bigotimes": "\\dotsb",
+ "\\bigoplus": "\\dotsb",
+ "\\bigodot": "\\dotsb",
+ "\\bigsqcup": "\\dotsb",
+ "\\And": "\\dotsb",
+ "\\longrightarrow": "\\dotsb",
+ "\\Longrightarrow": "\\dotsb",
+ "\\longleftarrow": "\\dotsb",
+ "\\Longleftarrow": "\\dotsb",
+ "\\longleftrightarrow": "\\dotsb",
+ "\\Longleftrightarrow": "\\dotsb",
+ "\\mapsto": "\\dotsb",
+ "\\longmapsto": "\\dotsb",
+ "\\hookrightarrow": "\\dotsb",
+ "\\doteq": "\\dotsb",
+ // Symbols whose definition starts with \mathbin:
+ "\\mathbin": "\\dotsb",
+ // Symbols whose definition starts with \mathrel:
+ "\\mathrel": "\\dotsb",
+ "\\relbar": "\\dotsb",
+ "\\Relbar": "\\dotsb",
+ "\\xrightarrow": "\\dotsb",
+ "\\xleftarrow": "\\dotsb",
+ // Symbols whose definition starts with \DOTSI:
+ "\\DOTSI": "\\dotsi",
+ "\\int": "\\dotsi",
+ "\\oint": "\\dotsi",
+ "\\iint": "\\dotsi",
+ "\\iiint": "\\dotsi",
+ "\\iiiint": "\\dotsi",
+ "\\idotsint": "\\dotsi",
+ // Symbols whose definition starts with \DOTSX:
+ "\\DOTSX": "\\dotsx"
+ };
+ defineMacro("\\dots", function(context) {
+ var thedots = "\\dotso";
+ var next3 = context.expandAfterFuture().text;
+ if (next3 in dotsByToken) {
+ thedots = dotsByToken[next3];
+ } else if (next3.slice(0, 4) === "\\not") {
+ thedots = "\\dotsb";
+ } else if (next3 in symbols.math) {
+ if (utils.contains(["bin", "rel"], symbols.math[next3].group)) {
+ thedots = "\\dotsb";
+ }
+ }
+ return thedots;
+ });
+ spaceAfterDots = {
+ // \rightdelim@ checks for the following:
+ ")": true,
+ "]": true,
+ "\\rbrack": true,
+ "\\}": true,
+ "\\rbrace": true,
+ "\\rangle": true,
+ "\\rceil": true,
+ "\\rfloor": true,
+ "\\rgroup": true,
+ "\\rmoustache": true,
+ "\\right": true,
+ "\\bigr": true,
+ "\\biggr": true,
+ "\\Bigr": true,
+ "\\Biggr": true,
+ // \extra@ also tests for the following:
+ "$": true,
+ // \extrap@ checks for the following:
+ ";": true,
+ ".": true,
+ ",": true
+ };
+ defineMacro("\\dotso", function(context) {
+ var next3 = context.future().text;
+ if (next3 in spaceAfterDots) {
+ return "\\ldots\\,";
} else {
- const distanceRatio = remainingDistance / vectorDistance;
- if (distanceRatio <= 0) {
- center2 = prevPoint;
+ return "\\ldots";
+ }
+ });
+ defineMacro("\\dotsc", function(context) {
+ var next3 = context.future().text;
+ if (next3 in spaceAfterDots && next3 !== ",") {
+ return "\\ldots\\,";
+ } else {
+ return "\\ldots";
+ }
+ });
+ defineMacro("\\cdots", function(context) {
+ var next3 = context.future().text;
+ if (next3 in spaceAfterDots) {
+ return "\\@cdots\\,";
+ } else {
+ return "\\@cdots";
+ }
+ });
+ defineMacro("\\dotsb", "\\cdots");
+ defineMacro("\\dotsm", "\\cdots");
+ defineMacro("\\dotsi", "\\!\\cdots");
+ defineMacro("\\dotsx", "\\ldots\\,");
+ defineMacro("\\DOTSI", "\\relax");
+ defineMacro("\\DOTSB", "\\relax");
+ defineMacro("\\DOTSX", "\\relax");
+ defineMacro("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");
+ defineMacro("\\,", "\\tmspace+{3mu}{.1667em}");
+ defineMacro("\\thinspace", "\\,");
+ defineMacro("\\>", "\\mskip{4mu}");
+ defineMacro("\\:", "\\tmspace+{4mu}{.2222em}");
+ defineMacro("\\medspace", "\\:");
+ defineMacro("\\;", "\\tmspace+{5mu}{.2777em}");
+ defineMacro("\\thickspace", "\\;");
+ defineMacro("\\!", "\\tmspace-{3mu}{.1667em}");
+ defineMacro("\\negthinspace", "\\!");
+ defineMacro("\\negmedspace", "\\tmspace-{4mu}{.2222em}");
+ defineMacro("\\negthickspace", "\\tmspace-{5mu}{.277em}");
+ defineMacro("\\enspace", "\\kern.5em ");
+ defineMacro("\\enskip", "\\hskip.5em\\relax");
+ defineMacro("\\quad", "\\hskip1em\\relax");
+ defineMacro("\\qquad", "\\hskip2em\\relax");
+ defineMacro("\\tag", "\\@ifstar\\tag@literal\\tag@paren");
+ defineMacro("\\tag@paren", "\\tag@literal{({#1})}");
+ defineMacro("\\tag@literal", (context) => {
+ if (context.macros.get("\\df@tag")) {
+ throw new ParseError("Multiple \\tag");
+ }
+ return "\\gdef\\df@tag{\\text{#1}}";
+ });
+ defineMacro("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");
+ defineMacro("\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");
+ defineMacro("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}");
+ defineMacro("\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");
+ defineMacro("\\newline", "\\\\\\relax");
+ defineMacro("\\TeX", "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");
+ latexRaiseA = makeEm(fontMetricsData["Main-Regular"]["T".charCodeAt(0)][1] - 0.7 * fontMetricsData["Main-Regular"]["A".charCodeAt(0)][1]);
+ defineMacro("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + latexRaiseA + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}");
+ defineMacro("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + latexRaiseA + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}");
+ defineMacro("\\hspace", "\\@ifstar\\@hspacer\\@hspace");
+ defineMacro("\\@hspace", "\\hskip #1\\relax");
+ defineMacro("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax");
+ defineMacro("\\ordinarycolon", ":");
+ defineMacro("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}");
+ defineMacro("\\dblcolon", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');
+ defineMacro("\\coloneqq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');
+ defineMacro("\\Coloneqq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');
+ defineMacro("\\coloneq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');
+ defineMacro("\\Coloneq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');
+ defineMacro("\\eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');
+ defineMacro("\\Eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');
+ defineMacro("\\eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');
+ defineMacro("\\Eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');
+ defineMacro("\\colonapprox", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');
+ defineMacro("\\Colonapprox", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');
+ defineMacro("\\colonsim", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');
+ defineMacro("\\Colonsim", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');
+ defineMacro("\u2237", "\\dblcolon");
+ defineMacro("\u2239", "\\eqcolon");
+ defineMacro("\u2254", "\\coloneqq");
+ defineMacro("\u2255", "\\eqqcolon");
+ defineMacro("\u2A74", "\\Coloneqq");
+ defineMacro("\\ratio", "\\vcentcolon");
+ defineMacro("\\coloncolon", "\\dblcolon");
+ defineMacro("\\colonequals", "\\coloneqq");
+ defineMacro("\\coloncolonequals", "\\Coloneqq");
+ defineMacro("\\equalscolon", "\\eqqcolon");
+ defineMacro("\\equalscoloncolon", "\\Eqqcolon");
+ defineMacro("\\colonminus", "\\coloneq");
+ defineMacro("\\coloncolonminus", "\\Coloneq");
+ defineMacro("\\minuscolon", "\\eqcolon");
+ defineMacro("\\minuscoloncolon", "\\Eqcolon");
+ defineMacro("\\coloncolonapprox", "\\Colonapprox");
+ defineMacro("\\coloncolonsim", "\\Colonsim");
+ defineMacro("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
+ defineMacro("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");
+ defineMacro("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
+ defineMacro("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");
+ defineMacro("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");
+ defineMacro("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}");
+ defineMacro("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}");
+ defineMacro("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}");
+ defineMacro("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}");
+ defineMacro("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}");
+ defineMacro("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}");
+ defineMacro("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}");
+ defineMacro("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}");
+ defineMacro("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{\u2269}");
+ defineMacro("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{\u2268}");
+ defineMacro("\\ngeqq", "\\html@mathml{\\@ngeqq}{\u2271}");
+ defineMacro("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{\u2271}");
+ defineMacro("\\nleqq", "\\html@mathml{\\@nleqq}{\u2270}");
+ defineMacro("\\nleqslant", "\\html@mathml{\\@nleqslant}{\u2270}");
+ defineMacro("\\nshortmid", "\\html@mathml{\\@nshortmid}{\u2224}");
+ defineMacro("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{\u2226}");
+ defineMacro("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{\u2288}");
+ defineMacro("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{\u2289}");
+ defineMacro("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{\u228A}");
+ defineMacro("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{\u2ACB}");
+ defineMacro("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{\u228B}");
+ defineMacro("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{\u2ACC}");
+ defineMacro("\\imath", "\\html@mathml{\\@imath}{\u0131}");
+ defineMacro("\\jmath", "\\html@mathml{\\@jmath}{\u0237}");
+ defineMacro("\\llbracket", "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");
+ defineMacro("\\rrbracket", "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");
+ defineMacro("\u27E6", "\\llbracket");
+ defineMacro("\u27E7", "\\rrbracket");
+ defineMacro("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");
+ defineMacro("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");
+ defineMacro("\u2983", "\\lBrace");
+ defineMacro("\u2984", "\\rBrace");
+ defineMacro("\\minuso", "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");
+ defineMacro("\u29B5", "\\minuso");
+ defineMacro("\\darr", "\\downarrow");
+ defineMacro("\\dArr", "\\Downarrow");
+ defineMacro("\\Darr", "\\Downarrow");
+ defineMacro("\\lang", "\\langle");
+ defineMacro("\\rang", "\\rangle");
+ defineMacro("\\uarr", "\\uparrow");
+ defineMacro("\\uArr", "\\Uparrow");
+ defineMacro("\\Uarr", "\\Uparrow");
+ defineMacro("\\N", "\\mathbb{N}");
+ defineMacro("\\R", "\\mathbb{R}");
+ defineMacro("\\Z", "\\mathbb{Z}");
+ defineMacro("\\alef", "\\aleph");
+ defineMacro("\\alefsym", "\\aleph");
+ defineMacro("\\Alpha", "\\mathrm{A}");
+ defineMacro("\\Beta", "\\mathrm{B}");
+ defineMacro("\\bull", "\\bullet");
+ defineMacro("\\Chi", "\\mathrm{X}");
+ defineMacro("\\clubs", "\\clubsuit");
+ defineMacro("\\cnums", "\\mathbb{C}");
+ defineMacro("\\Complex", "\\mathbb{C}");
+ defineMacro("\\Dagger", "\\ddagger");
+ defineMacro("\\diamonds", "\\diamondsuit");
+ defineMacro("\\empty", "\\emptyset");
+ defineMacro("\\Epsilon", "\\mathrm{E}");
+ defineMacro("\\Eta", "\\mathrm{H}");
+ defineMacro("\\exist", "\\exists");
+ defineMacro("\\harr", "\\leftrightarrow");
+ defineMacro("\\hArr", "\\Leftrightarrow");
+ defineMacro("\\Harr", "\\Leftrightarrow");
+ defineMacro("\\hearts", "\\heartsuit");
+ defineMacro("\\image", "\\Im");
+ defineMacro("\\infin", "\\infty");
+ defineMacro("\\Iota", "\\mathrm{I}");
+ defineMacro("\\isin", "\\in");
+ defineMacro("\\Kappa", "\\mathrm{K}");
+ defineMacro("\\larr", "\\leftarrow");
+ defineMacro("\\lArr", "\\Leftarrow");
+ defineMacro("\\Larr", "\\Leftarrow");
+ defineMacro("\\lrarr", "\\leftrightarrow");
+ defineMacro("\\lrArr", "\\Leftrightarrow");
+ defineMacro("\\Lrarr", "\\Leftrightarrow");
+ defineMacro("\\Mu", "\\mathrm{M}");
+ defineMacro("\\natnums", "\\mathbb{N}");
+ defineMacro("\\Nu", "\\mathrm{N}");
+ defineMacro("\\Omicron", "\\mathrm{O}");
+ defineMacro("\\plusmn", "\\pm");
+ defineMacro("\\rarr", "\\rightarrow");
+ defineMacro("\\rArr", "\\Rightarrow");
+ defineMacro("\\Rarr", "\\Rightarrow");
+ defineMacro("\\real", "\\Re");
+ defineMacro("\\reals", "\\mathbb{R}");
+ defineMacro("\\Reals", "\\mathbb{R}");
+ defineMacro("\\Rho", "\\mathrm{P}");
+ defineMacro("\\sdot", "\\cdot");
+ defineMacro("\\sect", "\\S");
+ defineMacro("\\spades", "\\spadesuit");
+ defineMacro("\\sub", "\\subset");
+ defineMacro("\\sube", "\\subseteq");
+ defineMacro("\\supe", "\\supseteq");
+ defineMacro("\\Tau", "\\mathrm{T}");
+ defineMacro("\\thetasym", "\\vartheta");
+ defineMacro("\\weierp", "\\wp");
+ defineMacro("\\Zeta", "\\mathrm{Z}");
+ defineMacro("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}");
+ defineMacro("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}");
+ defineMacro("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits");
+ defineMacro("\\bra", "\\mathinner{\\langle{#1}|}");
+ defineMacro("\\ket", "\\mathinner{|{#1}\\rangle}");
+ defineMacro("\\braket", "\\mathinner{\\langle{#1}\\rangle}");
+ defineMacro("\\Bra", "\\left\\langle#1\\right|");
+ defineMacro("\\Ket", "\\left|#1\\right\\rangle");
+ braketHelper = /* @__PURE__ */ __name((one4) => (context) => {
+ var left3 = context.consumeArg().tokens;
+ var middle = context.consumeArg().tokens;
+ var middleDouble = context.consumeArg().tokens;
+ var right3 = context.consumeArg().tokens;
+ var oldMiddle = context.macros.get("|");
+ var oldMiddleDouble = context.macros.get("\\|");
+ context.macros.beginGroup();
+ var midMacro = /* @__PURE__ */ __name((double) => (context2) => {
+ if (one4) {
+ context2.macros.set("|", oldMiddle);
+ if (middleDouble.length) {
+ context2.macros.set("\\|", oldMiddleDouble);
+ }
+ }
+ var doubled = double;
+ if (!double && middleDouble.length) {
+ var nextToken = context2.future();
+ if (nextToken.text === "|") {
+ context2.popToken();
+ doubled = true;
+ }
+ }
+ return {
+ tokens: doubled ? middleDouble : middle,
+ numArgs: 0
+ };
+ }, "midMacro");
+ context.macros.set("|", midMacro(false));
+ if (middleDouble.length) {
+ context.macros.set("\\|", midMacro(true));
+ }
+ var arg = context.consumeArg().tokens;
+ var expanded = context.expandTokens([
+ ...right3,
+ ...arg,
+ ...left3
+ // reversed
+ ]);
+ context.macros.endGroup();
+ return {
+ tokens: expanded.reverse(),
+ numArgs: 0
+ };
+ }, "braketHelper");
+ defineMacro("\\bra@ket", braketHelper(false));
+ defineMacro("\\bra@set", braketHelper(true));
+ defineMacro("\\Braket", "\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");
+ defineMacro("\\Set", "\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");
+ defineMacro("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");
+ defineMacro("\\angln", "{\\angl n}");
+ defineMacro("\\blue", "\\textcolor{##6495ed}{#1}");
+ defineMacro("\\orange", "\\textcolor{##ffa500}{#1}");
+ defineMacro("\\pink", "\\textcolor{##ff00af}{#1}");
+ defineMacro("\\red", "\\textcolor{##df0030}{#1}");
+ defineMacro("\\green", "\\textcolor{##28ae7b}{#1}");
+ defineMacro("\\gray", "\\textcolor{gray}{#1}");
+ defineMacro("\\purple", "\\textcolor{##9d38bd}{#1}");
+ defineMacro("\\blueA", "\\textcolor{##ccfaff}{#1}");
+ defineMacro("\\blueB", "\\textcolor{##80f6ff}{#1}");
+ defineMacro("\\blueC", "\\textcolor{##63d9ea}{#1}");
+ defineMacro("\\blueD", "\\textcolor{##11accd}{#1}");
+ defineMacro("\\blueE", "\\textcolor{##0c7f99}{#1}");
+ defineMacro("\\tealA", "\\textcolor{##94fff5}{#1}");
+ defineMacro("\\tealB", "\\textcolor{##26edd5}{#1}");
+ defineMacro("\\tealC", "\\textcolor{##01d1c1}{#1}");
+ defineMacro("\\tealD", "\\textcolor{##01a995}{#1}");
+ defineMacro("\\tealE", "\\textcolor{##208170}{#1}");
+ defineMacro("\\greenA", "\\textcolor{##b6ffb0}{#1}");
+ defineMacro("\\greenB", "\\textcolor{##8af281}{#1}");
+ defineMacro("\\greenC", "\\textcolor{##74cf70}{#1}");
+ defineMacro("\\greenD", "\\textcolor{##1fab54}{#1}");
+ defineMacro("\\greenE", "\\textcolor{##0d923f}{#1}");
+ defineMacro("\\goldA", "\\textcolor{##ffd0a9}{#1}");
+ defineMacro("\\goldB", "\\textcolor{##ffbb71}{#1}");
+ defineMacro("\\goldC", "\\textcolor{##ff9c39}{#1}");
+ defineMacro("\\goldD", "\\textcolor{##e07d10}{#1}");
+ defineMacro("\\goldE", "\\textcolor{##a75a05}{#1}");
+ defineMacro("\\redA", "\\textcolor{##fca9a9}{#1}");
+ defineMacro("\\redB", "\\textcolor{##ff8482}{#1}");
+ defineMacro("\\redC", "\\textcolor{##f9685d}{#1}");
+ defineMacro("\\redD", "\\textcolor{##e84d39}{#1}");
+ defineMacro("\\redE", "\\textcolor{##bc2612}{#1}");
+ defineMacro("\\maroonA", "\\textcolor{##ffbde0}{#1}");
+ defineMacro("\\maroonB", "\\textcolor{##ff92c6}{#1}");
+ defineMacro("\\maroonC", "\\textcolor{##ed5fa6}{#1}");
+ defineMacro("\\maroonD", "\\textcolor{##ca337c}{#1}");
+ defineMacro("\\maroonE", "\\textcolor{##9e034e}{#1}");
+ defineMacro("\\purpleA", "\\textcolor{##ddd7ff}{#1}");
+ defineMacro("\\purpleB", "\\textcolor{##c6b9fc}{#1}");
+ defineMacro("\\purpleC", "\\textcolor{##aa87ff}{#1}");
+ defineMacro("\\purpleD", "\\textcolor{##7854ab}{#1}");
+ defineMacro("\\purpleE", "\\textcolor{##543b78}{#1}");
+ defineMacro("\\mintA", "\\textcolor{##f5f9e8}{#1}");
+ defineMacro("\\mintB", "\\textcolor{##edf2df}{#1}");
+ defineMacro("\\mintC", "\\textcolor{##e0e5cc}{#1}");
+ defineMacro("\\grayA", "\\textcolor{##f6f7f7}{#1}");
+ defineMacro("\\grayB", "\\textcolor{##f0f1f2}{#1}");
+ defineMacro("\\grayC", "\\textcolor{##e3e5e6}{#1}");
+ defineMacro("\\grayD", "\\textcolor{##d6d8da}{#1}");
+ defineMacro("\\grayE", "\\textcolor{##babec2}{#1}");
+ defineMacro("\\grayF", "\\textcolor{##888d93}{#1}");
+ defineMacro("\\grayG", "\\textcolor{##626569}{#1}");
+ defineMacro("\\grayH", "\\textcolor{##3b3e40}{#1}");
+ defineMacro("\\grayI", "\\textcolor{##21242c}{#1}");
+ defineMacro("\\kaBlue", "\\textcolor{##314453}{#1}");
+ defineMacro("\\kaGreen", "\\textcolor{##71B307}{#1}");
+ implicitCommands = {
+ "^": true,
+ // Parser.js
+ "_": true,
+ // Parser.js
+ "\\limits": true,
+ // Parser.js
+ "\\nolimits": true
+ // Parser.js
+ };
+ MacroExpander = class {
+ static {
+ __name(this, "MacroExpander");
+ }
+ constructor(input, settings, mode) {
+ this.settings = void 0;
+ this.expansionCount = void 0;
+ this.lexer = void 0;
+ this.macros = void 0;
+ this.stack = void 0;
+ this.mode = void 0;
+ this.settings = settings;
+ this.expansionCount = 0;
+ this.feed(input);
+ this.macros = new Namespace(macros, settings.macros);
+ this.mode = mode;
+ this.stack = [];
+ }
+ /**
+ * Feed a new input string to the same MacroExpander
+ * (with existing macros etc.).
+ */
+ feed(input) {
+ this.lexer = new Lexer(input, this.settings);
+ }
+ /**
+ * Switches between "text" and "math" modes.
+ */
+ switchMode(newMode) {
+ this.mode = newMode;
+ }
+ /**
+ * Start a new group nesting within all namespaces.
+ */
+ beginGroup() {
+ this.macros.beginGroup();
+ }
+ /**
+ * End current group nesting within all namespaces.
+ */
+ endGroup() {
+ this.macros.endGroup();
+ }
+ /**
+ * Ends all currently nested groups (if any), restoring values before the
+ * groups began. Useful in case of an error in the middle of parsing.
+ */
+ endGroups() {
+ this.macros.endGroups();
+ }
+ /**
+ * Returns the topmost token on the stack, without expanding it.
+ * Similar in behavior to TeX's `\futurelet`.
+ */
+ future() {
+ if (this.stack.length === 0) {
+ this.pushToken(this.lexer.lex());
+ }
+ return this.stack[this.stack.length - 1];
+ }
+ /**
+ * Remove and return the next unexpanded token.
+ */
+ popToken() {
+ this.future();
+ return this.stack.pop();
+ }
+ /**
+ * Add a given token to the token stack. In particular, this get be used
+ * to put back a token returned from one of the other methods.
+ */
+ pushToken(token2) {
+ this.stack.push(token2);
+ }
+ /**
+ * Append an array of tokens to the token stack.
+ */
+ pushTokens(tokens2) {
+ this.stack.push(...tokens2);
+ }
+ /**
+ * Find an macro argument without expanding tokens and append the array of
+ * tokens to the token stack. Uses Token as a container for the result.
+ */
+ scanArgument(isOptional) {
+ var start3;
+ var end2;
+ var tokens2;
+ if (isOptional) {
+ this.consumeSpaces();
+ if (this.future().text !== "[") {
+ return null;
+ }
+ start3 = this.popToken();
+ ({
+ tokens: tokens2,
+ end: end2
+ } = this.consumeArg(["]"]));
+ } else {
+ ({
+ tokens: tokens2,
+ start: start3,
+ end: end2
+ } = this.consumeArg());
+ }
+ this.pushToken(new Token("EOF", end2.loc));
+ this.pushTokens(tokens2);
+ return start3.range(end2, "");
+ }
+ /**
+ * Consume all following space tokens, without expansion.
+ */
+ consumeSpaces() {
+ for (; ; ) {
+ var token2 = this.future();
+ if (token2.text === " ") {
+ this.stack.pop();
+ } else {
+ break;
+ }
}
- if (distanceRatio >= 1) {
- center2 = { x: point2.x, y: point2.y };
+ }
+ /**
+ * Consume an argument from the token stream, and return the resulting array
+ * of tokens and start/end token.
+ */
+ consumeArg(delims) {
+ var tokens2 = [];
+ var isDelimited = delims && delims.length > 0;
+ if (!isDelimited) {
+ this.consumeSpaces();
}
- if (distanceRatio > 0 && distanceRatio < 1) {
- center2 = {
- x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
- y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
- };
+ var start3 = this.future();
+ var tok;
+ var depth = 0;
+ var match2 = 0;
+ do {
+ tok = this.popToken();
+ tokens2.push(tok);
+ if (tok.text === "{") {
+ ++depth;
+ } else if (tok.text === "}") {
+ --depth;
+ if (depth === -1) {
+ throw new ParseError("Extra }", tok);
+ }
+ } else if (tok.text === "EOF") {
+ throw new ParseError("Unexpected end of input in a macro argument, expected '" + (delims && isDelimited ? delims[match2] : "}") + "'", tok);
+ }
+ if (delims && isDelimited) {
+ if ((depth === 0 || depth === 1 && delims[match2] === "{") && tok.text === delims[match2]) {
+ ++match2;
+ if (match2 === delims.length) {
+ tokens2.splice(-match2, match2);
+ break;
+ }
+ } else {
+ match2 = 0;
+ }
+ }
+ } while (depth !== 0 || isDelimited);
+ if (start3.text === "{" && tokens2[tokens2.length - 1].text === "}") {
+ tokens2.pop();
+ tokens2.shift();
}
+ tokens2.reverse();
+ return {
+ tokens: tokens2,
+ start: start3,
+ end: tok
+ };
}
- }
- prevPoint = point2;
- });
- const d = isRelationTypePresent ? 10 : 5;
- const angle = Math.atan2(points[0].y - center2.y, points[0].x - center2.x);
- const cardinalityPosition = { x: 0, y: 0 };
- cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center2.x) / 2;
- cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center2.y) / 2;
- return cardinalityPosition;
- };
- function calcTerminalLabelPosition(terminalMarkerSize, position2, _points) {
- let points = JSON.parse(JSON.stringify(_points));
- let prevPoint;
- log$1.info("our points", points);
- if (position2 !== "start_left" && position2 !== "start_right") {
- points = points.reverse();
- }
- points.forEach((point2) => {
- prevPoint = point2;
- });
- const distanceToCardinalityPoint = 25 + terminalMarkerSize;
- let remainingDistance = distanceToCardinalityPoint;
- let center2;
- prevPoint = void 0;
- points.forEach((point2) => {
- if (prevPoint && !center2) {
- const vectorDistance = distance(point2, prevPoint);
- if (vectorDistance < remainingDistance) {
- remainingDistance -= vectorDistance;
- } else {
- const distanceRatio = remainingDistance / vectorDistance;
- if (distanceRatio <= 0) {
- center2 = prevPoint;
+ /**
+ * Consume the specified number of (delimited) arguments from the token
+ * stream and return the resulting array of arguments.
+ */
+ consumeArgs(numArgs, delimiters2) {
+ if (delimiters2) {
+ if (delimiters2.length !== numArgs + 1) {
+ throw new ParseError("The length of delimiters doesn't match the number of args!");
+ }
+ var delims = delimiters2[0];
+ for (var i2 = 0; i2 < delims.length; i2++) {
+ var tok = this.popToken();
+ if (delims[i2] !== tok.text) {
+ throw new ParseError("Use of the macro doesn't match its definition", tok);
+ }
+ }
+ }
+ var args = [];
+ for (var _i = 0; _i < numArgs; _i++) {
+ args.push(this.consumeArg(delimiters2 && delimiters2[_i + 1]).tokens);
+ }
+ return args;
+ }
+ /**
+ * Increment `expansionCount` by the specified amount.
+ * Throw an error if it exceeds `maxExpand`.
+ */
+ countExpansion(amount) {
+ this.expansionCount += amount;
+ if (this.expansionCount > this.settings.maxExpand) {
+ throw new ParseError("Too many expansions: infinite loop or need to increase maxExpand setting");
+ }
+ }
+ /**
+ * Expand the next token only once if possible.
+ *
+ * If the token is expanded, the resulting tokens will be pushed onto
+ * the stack in reverse order, and the number of such tokens will be
+ * returned. This number might be zero or positive.
+ *
+ * If not, the return value is `false`, and the next token remains at the
+ * top of the stack.
+ *
+ * In either case, the next token will be on the top of the stack,
+ * or the stack will be empty (in case of empty expansion
+ * and no other tokens).
+ *
+ * Used to implement `expandAfterFuture` and `expandNextToken`.
+ *
+ * If expandableOnly, only expandable tokens are expanded and
+ * an undefined control sequence results in an error.
+ */
+ expandOnce(expandableOnly) {
+ var topToken = this.popToken();
+ var name = topToken.text;
+ var expansion = !topToken.noexpand ? this._getExpansion(name) : null;
+ if (expansion == null || expandableOnly && expansion.unexpandable) {
+ if (expandableOnly && expansion == null && name[0] === "\\" && !this.isDefined(name)) {
+ throw new ParseError("Undefined control sequence: " + name);
+ }
+ this.pushToken(topToken);
+ return false;
+ }
+ this.countExpansion(1);
+ var tokens2 = expansion.tokens;
+ var args = this.consumeArgs(expansion.numArgs, expansion.delimiters);
+ if (expansion.numArgs) {
+ tokens2 = tokens2.slice();
+ for (var i2 = tokens2.length - 1; i2 >= 0; --i2) {
+ var tok = tokens2[i2];
+ if (tok.text === "#") {
+ if (i2 === 0) {
+ throw new ParseError("Incomplete placeholder at end of macro body", tok);
+ }
+ tok = tokens2[--i2];
+ if (tok.text === "#") {
+ tokens2.splice(i2 + 1, 1);
+ } else if (/^[1-9]$/.test(tok.text)) {
+ tokens2.splice(i2, 2, ...args[+tok.text - 1]);
+ } else {
+ throw new ParseError("Not a valid argument number", tok);
+ }
+ }
+ }
+ }
+ this.pushTokens(tokens2);
+ return tokens2.length;
+ }
+ /**
+ * Expand the next token only once (if possible), and return the resulting
+ * top token on the stack (without removing anything from the stack).
+ * Similar in behavior to TeX's `\expandafter\futurelet`.
+ * Equivalent to expandOnce() followed by future().
+ */
+ expandAfterFuture() {
+ this.expandOnce();
+ return this.future();
+ }
+ /**
+ * Recursively expand first token, then return first non-expandable token.
+ */
+ expandNextToken() {
+ for (; ; ) {
+ if (this.expandOnce() === false) {
+ var token2 = this.stack.pop();
+ if (token2.treatAsRelax) {
+ token2.text = "\\relax";
+ }
+ return token2;
+ }
+ }
+ throw new Error();
+ }
+ /**
+ * Fully expand the given macro name and return the resulting list of
+ * tokens, or return `undefined` if no such macro is defined.
+ */
+ expandMacro(name) {
+ return this.macros.has(name) ? this.expandTokens([new Token(name)]) : void 0;
+ }
+ /**
+ * Fully expand the given token stream and return the resulting list of
+ * tokens. Note that the input tokens are in reverse order, but the
+ * output tokens are in forward order.
+ */
+ expandTokens(tokens2) {
+ var output2 = [];
+ var oldStackLength = this.stack.length;
+ this.pushTokens(tokens2);
+ while (this.stack.length > oldStackLength) {
+ if (this.expandOnce(true) === false) {
+ var token2 = this.stack.pop();
+ if (token2.treatAsRelax) {
+ token2.noexpand = false;
+ token2.treatAsRelax = false;
+ }
+ output2.push(token2);
+ }
+ }
+ this.countExpansion(output2.length);
+ return output2;
+ }
+ /**
+ * Fully expand the given macro name and return the result as a string,
+ * or return `undefined` if no such macro is defined.
+ */
+ expandMacroAsText(name) {
+ var tokens2 = this.expandMacro(name);
+ if (tokens2) {
+ return tokens2.map((token2) => token2.text).join("");
+ } else {
+ return tokens2;
+ }
+ }
+ /**
+ * Returns the expanded macro as a reversed array of tokens and a macro
+ * argument count. Or returns `null` if no such macro.
+ */
+ _getExpansion(name) {
+ var definition = this.macros.get(name);
+ if (definition == null) {
+ return definition;
+ }
+ if (name.length === 1) {
+ var catcode = this.lexer.catcodes[name];
+ if (catcode != null && catcode !== 13) {
+ return;
+ }
+ }
+ var expansion = typeof definition === "function" ? definition(this) : definition;
+ if (typeof expansion === "string") {
+ var numArgs = 0;
+ if (expansion.indexOf("#") !== -1) {
+ var stripped = expansion.replace(/##/g, "");
+ while (stripped.indexOf("#" + (numArgs + 1)) !== -1) {
+ ++numArgs;
+ }
+ }
+ var bodyLexer = new Lexer(expansion, this.settings);
+ var tokens2 = [];
+ var tok = bodyLexer.lex();
+ while (tok.text !== "EOF") {
+ tokens2.push(tok);
+ tok = bodyLexer.lex();
+ }
+ tokens2.reverse();
+ var expanded = {
+ tokens: tokens2,
+ numArgs
+ };
+ return expanded;
+ }
+ return expansion;
+ }
+ /**
+ * Determine whether a command is currently "defined" (has some
+ * functionality), meaning that it's a macro (in the current group),
+ * a function, a symbol, or one of the special commands listed in
+ * `implicitCommands`.
+ */
+ isDefined(name) {
+ return this.macros.has(name) || functions.hasOwnProperty(name) || symbols.math.hasOwnProperty(name) || symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name);
+ }
+ /**
+ * Determine whether a command is expandable.
+ */
+ isExpandable(name) {
+ var macro = this.macros.get(name);
+ return macro != null ? typeof macro === "string" || typeof macro === "function" || !macro.unexpandable : functions.hasOwnProperty(name) && !functions[name].primitive;
+ }
+ };
+ unicodeSubRegEx = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/;
+ uSubsAndSups = Object.freeze({
+ "\u208A": "+",
+ "\u208B": "-",
+ "\u208C": "=",
+ "\u208D": "(",
+ "\u208E": ")",
+ "\u2080": "0",
+ "\u2081": "1",
+ "\u2082": "2",
+ "\u2083": "3",
+ "\u2084": "4",
+ "\u2085": "5",
+ "\u2086": "6",
+ "\u2087": "7",
+ "\u2088": "8",
+ "\u2089": "9",
+ "\u2090": "a",
+ "\u2091": "e",
+ "\u2095": "h",
+ "\u1D62": "i",
+ "\u2C7C": "j",
+ "\u2096": "k",
+ "\u2097": "l",
+ "\u2098": "m",
+ "\u2099": "n",
+ "\u2092": "o",
+ "\u209A": "p",
+ "\u1D63": "r",
+ "\u209B": "s",
+ "\u209C": "t",
+ "\u1D64": "u",
+ "\u1D65": "v",
+ "\u2093": "x",
+ "\u1D66": "\u03B2",
+ "\u1D67": "\u03B3",
+ "\u1D68": "\u03C1",
+ "\u1D69": "\u03D5",
+ "\u1D6A": "\u03C7",
+ "\u207A": "+",
+ "\u207B": "-",
+ "\u207C": "=",
+ "\u207D": "(",
+ "\u207E": ")",
+ "\u2070": "0",
+ "\xB9": "1",
+ "\xB2": "2",
+ "\xB3": "3",
+ "\u2074": "4",
+ "\u2075": "5",
+ "\u2076": "6",
+ "\u2077": "7",
+ "\u2078": "8",
+ "\u2079": "9",
+ "\u1D2C": "A",
+ "\u1D2E": "B",
+ "\u1D30": "D",
+ "\u1D31": "E",
+ "\u1D33": "G",
+ "\u1D34": "H",
+ "\u1D35": "I",
+ "\u1D36": "J",
+ "\u1D37": "K",
+ "\u1D38": "L",
+ "\u1D39": "M",
+ "\u1D3A": "N",
+ "\u1D3C": "O",
+ "\u1D3E": "P",
+ "\u1D3F": "R",
+ "\u1D40": "T",
+ "\u1D41": "U",
+ "\u2C7D": "V",
+ "\u1D42": "W",
+ "\u1D43": "a",
+ "\u1D47": "b",
+ "\u1D9C": "c",
+ "\u1D48": "d",
+ "\u1D49": "e",
+ "\u1DA0": "f",
+ "\u1D4D": "g",
+ "\u02B0": "h",
+ "\u2071": "i",
+ "\u02B2": "j",
+ "\u1D4F": "k",
+ "\u02E1": "l",
+ "\u1D50": "m",
+ "\u207F": "n",
+ "\u1D52": "o",
+ "\u1D56": "p",
+ "\u02B3": "r",
+ "\u02E2": "s",
+ "\u1D57": "t",
+ "\u1D58": "u",
+ "\u1D5B": "v",
+ "\u02B7": "w",
+ "\u02E3": "x",
+ "\u02B8": "y",
+ "\u1DBB": "z",
+ "\u1D5D": "\u03B2",
+ "\u1D5E": "\u03B3",
+ "\u1D5F": "\u03B4",
+ "\u1D60": "\u03D5",
+ "\u1D61": "\u03C7",
+ "\u1DBF": "\u03B8"
+ });
+ unicodeAccents = {
+ "\u0301": {
+ "text": "\\'",
+ "math": "\\acute"
+ },
+ "\u0300": {
+ "text": "\\`",
+ "math": "\\grave"
+ },
+ "\u0308": {
+ "text": '\\"',
+ "math": "\\ddot"
+ },
+ "\u0303": {
+ "text": "\\~",
+ "math": "\\tilde"
+ },
+ "\u0304": {
+ "text": "\\=",
+ "math": "\\bar"
+ },
+ "\u0306": {
+ "text": "\\u",
+ "math": "\\breve"
+ },
+ "\u030C": {
+ "text": "\\v",
+ "math": "\\check"
+ },
+ "\u0302": {
+ "text": "\\^",
+ "math": "\\hat"
+ },
+ "\u0307": {
+ "text": "\\.",
+ "math": "\\dot"
+ },
+ "\u030A": {
+ "text": "\\r",
+ "math": "\\mathring"
+ },
+ "\u030B": {
+ "text": "\\H"
+ },
+ "\u0327": {
+ "text": "\\c"
+ }
+ };
+ unicodeSymbols = {
+ "\xE1": "a\u0301",
+ "\xE0": "a\u0300",
+ "\xE4": "a\u0308",
+ "\u01DF": "a\u0308\u0304",
+ "\xE3": "a\u0303",
+ "\u0101": "a\u0304",
+ "\u0103": "a\u0306",
+ "\u1EAF": "a\u0306\u0301",
+ "\u1EB1": "a\u0306\u0300",
+ "\u1EB5": "a\u0306\u0303",
+ "\u01CE": "a\u030C",
+ "\xE2": "a\u0302",
+ "\u1EA5": "a\u0302\u0301",
+ "\u1EA7": "a\u0302\u0300",
+ "\u1EAB": "a\u0302\u0303",
+ "\u0227": "a\u0307",
+ "\u01E1": "a\u0307\u0304",
+ "\xE5": "a\u030A",
+ "\u01FB": "a\u030A\u0301",
+ "\u1E03": "b\u0307",
+ "\u0107": "c\u0301",
+ "\u1E09": "c\u0327\u0301",
+ "\u010D": "c\u030C",
+ "\u0109": "c\u0302",
+ "\u010B": "c\u0307",
+ "\xE7": "c\u0327",
+ "\u010F": "d\u030C",
+ "\u1E0B": "d\u0307",
+ "\u1E11": "d\u0327",
+ "\xE9": "e\u0301",
+ "\xE8": "e\u0300",
+ "\xEB": "e\u0308",
+ "\u1EBD": "e\u0303",
+ "\u0113": "e\u0304",
+ "\u1E17": "e\u0304\u0301",
+ "\u1E15": "e\u0304\u0300",
+ "\u0115": "e\u0306",
+ "\u1E1D": "e\u0327\u0306",
+ "\u011B": "e\u030C",
+ "\xEA": "e\u0302",
+ "\u1EBF": "e\u0302\u0301",
+ "\u1EC1": "e\u0302\u0300",
+ "\u1EC5": "e\u0302\u0303",
+ "\u0117": "e\u0307",
+ "\u0229": "e\u0327",
+ "\u1E1F": "f\u0307",
+ "\u01F5": "g\u0301",
+ "\u1E21": "g\u0304",
+ "\u011F": "g\u0306",
+ "\u01E7": "g\u030C",
+ "\u011D": "g\u0302",
+ "\u0121": "g\u0307",
+ "\u0123": "g\u0327",
+ "\u1E27": "h\u0308",
+ "\u021F": "h\u030C",
+ "\u0125": "h\u0302",
+ "\u1E23": "h\u0307",
+ "\u1E29": "h\u0327",
+ "\xED": "i\u0301",
+ "\xEC": "i\u0300",
+ "\xEF": "i\u0308",
+ "\u1E2F": "i\u0308\u0301",
+ "\u0129": "i\u0303",
+ "\u012B": "i\u0304",
+ "\u012D": "i\u0306",
+ "\u01D0": "i\u030C",
+ "\xEE": "i\u0302",
+ "\u01F0": "j\u030C",
+ "\u0135": "j\u0302",
+ "\u1E31": "k\u0301",
+ "\u01E9": "k\u030C",
+ "\u0137": "k\u0327",
+ "\u013A": "l\u0301",
+ "\u013E": "l\u030C",
+ "\u013C": "l\u0327",
+ "\u1E3F": "m\u0301",
+ "\u1E41": "m\u0307",
+ "\u0144": "n\u0301",
+ "\u01F9": "n\u0300",
+ "\xF1": "n\u0303",
+ "\u0148": "n\u030C",
+ "\u1E45": "n\u0307",
+ "\u0146": "n\u0327",
+ "\xF3": "o\u0301",
+ "\xF2": "o\u0300",
+ "\xF6": "o\u0308",
+ "\u022B": "o\u0308\u0304",
+ "\xF5": "o\u0303",
+ "\u1E4D": "o\u0303\u0301",
+ "\u1E4F": "o\u0303\u0308",
+ "\u022D": "o\u0303\u0304",
+ "\u014D": "o\u0304",
+ "\u1E53": "o\u0304\u0301",
+ "\u1E51": "o\u0304\u0300",
+ "\u014F": "o\u0306",
+ "\u01D2": "o\u030C",
+ "\xF4": "o\u0302",
+ "\u1ED1": "o\u0302\u0301",
+ "\u1ED3": "o\u0302\u0300",
+ "\u1ED7": "o\u0302\u0303",
+ "\u022F": "o\u0307",
+ "\u0231": "o\u0307\u0304",
+ "\u0151": "o\u030B",
+ "\u1E55": "p\u0301",
+ "\u1E57": "p\u0307",
+ "\u0155": "r\u0301",
+ "\u0159": "r\u030C",
+ "\u1E59": "r\u0307",
+ "\u0157": "r\u0327",
+ "\u015B": "s\u0301",
+ "\u1E65": "s\u0301\u0307",
+ "\u0161": "s\u030C",
+ "\u1E67": "s\u030C\u0307",
+ "\u015D": "s\u0302",
+ "\u1E61": "s\u0307",
+ "\u015F": "s\u0327",
+ "\u1E97": "t\u0308",
+ "\u0165": "t\u030C",
+ "\u1E6B": "t\u0307",
+ "\u0163": "t\u0327",
+ "\xFA": "u\u0301",
+ "\xF9": "u\u0300",
+ "\xFC": "u\u0308",
+ "\u01D8": "u\u0308\u0301",
+ "\u01DC": "u\u0308\u0300",
+ "\u01D6": "u\u0308\u0304",
+ "\u01DA": "u\u0308\u030C",
+ "\u0169": "u\u0303",
+ "\u1E79": "u\u0303\u0301",
+ "\u016B": "u\u0304",
+ "\u1E7B": "u\u0304\u0308",
+ "\u016D": "u\u0306",
+ "\u01D4": "u\u030C",
+ "\xFB": "u\u0302",
+ "\u016F": "u\u030A",
+ "\u0171": "u\u030B",
+ "\u1E7D": "v\u0303",
+ "\u1E83": "w\u0301",
+ "\u1E81": "w\u0300",
+ "\u1E85": "w\u0308",
+ "\u0175": "w\u0302",
+ "\u1E87": "w\u0307",
+ "\u1E98": "w\u030A",
+ "\u1E8D": "x\u0308",
+ "\u1E8B": "x\u0307",
+ "\xFD": "y\u0301",
+ "\u1EF3": "y\u0300",
+ "\xFF": "y\u0308",
+ "\u1EF9": "y\u0303",
+ "\u0233": "y\u0304",
+ "\u0177": "y\u0302",
+ "\u1E8F": "y\u0307",
+ "\u1E99": "y\u030A",
+ "\u017A": "z\u0301",
+ "\u017E": "z\u030C",
+ "\u1E91": "z\u0302",
+ "\u017C": "z\u0307",
+ "\xC1": "A\u0301",
+ "\xC0": "A\u0300",
+ "\xC4": "A\u0308",
+ "\u01DE": "A\u0308\u0304",
+ "\xC3": "A\u0303",
+ "\u0100": "A\u0304",
+ "\u0102": "A\u0306",
+ "\u1EAE": "A\u0306\u0301",
+ "\u1EB0": "A\u0306\u0300",
+ "\u1EB4": "A\u0306\u0303",
+ "\u01CD": "A\u030C",
+ "\xC2": "A\u0302",
+ "\u1EA4": "A\u0302\u0301",
+ "\u1EA6": "A\u0302\u0300",
+ "\u1EAA": "A\u0302\u0303",
+ "\u0226": "A\u0307",
+ "\u01E0": "A\u0307\u0304",
+ "\xC5": "A\u030A",
+ "\u01FA": "A\u030A\u0301",
+ "\u1E02": "B\u0307",
+ "\u0106": "C\u0301",
+ "\u1E08": "C\u0327\u0301",
+ "\u010C": "C\u030C",
+ "\u0108": "C\u0302",
+ "\u010A": "C\u0307",
+ "\xC7": "C\u0327",
+ "\u010E": "D\u030C",
+ "\u1E0A": "D\u0307",
+ "\u1E10": "D\u0327",
+ "\xC9": "E\u0301",
+ "\xC8": "E\u0300",
+ "\xCB": "E\u0308",
+ "\u1EBC": "E\u0303",
+ "\u0112": "E\u0304",
+ "\u1E16": "E\u0304\u0301",
+ "\u1E14": "E\u0304\u0300",
+ "\u0114": "E\u0306",
+ "\u1E1C": "E\u0327\u0306",
+ "\u011A": "E\u030C",
+ "\xCA": "E\u0302",
+ "\u1EBE": "E\u0302\u0301",
+ "\u1EC0": "E\u0302\u0300",
+ "\u1EC4": "E\u0302\u0303",
+ "\u0116": "E\u0307",
+ "\u0228": "E\u0327",
+ "\u1E1E": "F\u0307",
+ "\u01F4": "G\u0301",
+ "\u1E20": "G\u0304",
+ "\u011E": "G\u0306",
+ "\u01E6": "G\u030C",
+ "\u011C": "G\u0302",
+ "\u0120": "G\u0307",
+ "\u0122": "G\u0327",
+ "\u1E26": "H\u0308",
+ "\u021E": "H\u030C",
+ "\u0124": "H\u0302",
+ "\u1E22": "H\u0307",
+ "\u1E28": "H\u0327",
+ "\xCD": "I\u0301",
+ "\xCC": "I\u0300",
+ "\xCF": "I\u0308",
+ "\u1E2E": "I\u0308\u0301",
+ "\u0128": "I\u0303",
+ "\u012A": "I\u0304",
+ "\u012C": "I\u0306",
+ "\u01CF": "I\u030C",
+ "\xCE": "I\u0302",
+ "\u0130": "I\u0307",
+ "\u0134": "J\u0302",
+ "\u1E30": "K\u0301",
+ "\u01E8": "K\u030C",
+ "\u0136": "K\u0327",
+ "\u0139": "L\u0301",
+ "\u013D": "L\u030C",
+ "\u013B": "L\u0327",
+ "\u1E3E": "M\u0301",
+ "\u1E40": "M\u0307",
+ "\u0143": "N\u0301",
+ "\u01F8": "N\u0300",
+ "\xD1": "N\u0303",
+ "\u0147": "N\u030C",
+ "\u1E44": "N\u0307",
+ "\u0145": "N\u0327",
+ "\xD3": "O\u0301",
+ "\xD2": "O\u0300",
+ "\xD6": "O\u0308",
+ "\u022A": "O\u0308\u0304",
+ "\xD5": "O\u0303",
+ "\u1E4C": "O\u0303\u0301",
+ "\u1E4E": "O\u0303\u0308",
+ "\u022C": "O\u0303\u0304",
+ "\u014C": "O\u0304",
+ "\u1E52": "O\u0304\u0301",
+ "\u1E50": "O\u0304\u0300",
+ "\u014E": "O\u0306",
+ "\u01D1": "O\u030C",
+ "\xD4": "O\u0302",
+ "\u1ED0": "O\u0302\u0301",
+ "\u1ED2": "O\u0302\u0300",
+ "\u1ED6": "O\u0302\u0303",
+ "\u022E": "O\u0307",
+ "\u0230": "O\u0307\u0304",
+ "\u0150": "O\u030B",
+ "\u1E54": "P\u0301",
+ "\u1E56": "P\u0307",
+ "\u0154": "R\u0301",
+ "\u0158": "R\u030C",
+ "\u1E58": "R\u0307",
+ "\u0156": "R\u0327",
+ "\u015A": "S\u0301",
+ "\u1E64": "S\u0301\u0307",
+ "\u0160": "S\u030C",
+ "\u1E66": "S\u030C\u0307",
+ "\u015C": "S\u0302",
+ "\u1E60": "S\u0307",
+ "\u015E": "S\u0327",
+ "\u0164": "T\u030C",
+ "\u1E6A": "T\u0307",
+ "\u0162": "T\u0327",
+ "\xDA": "U\u0301",
+ "\xD9": "U\u0300",
+ "\xDC": "U\u0308",
+ "\u01D7": "U\u0308\u0301",
+ "\u01DB": "U\u0308\u0300",
+ "\u01D5": "U\u0308\u0304",
+ "\u01D9": "U\u0308\u030C",
+ "\u0168": "U\u0303",
+ "\u1E78": "U\u0303\u0301",
+ "\u016A": "U\u0304",
+ "\u1E7A": "U\u0304\u0308",
+ "\u016C": "U\u0306",
+ "\u01D3": "U\u030C",
+ "\xDB": "U\u0302",
+ "\u016E": "U\u030A",
+ "\u0170": "U\u030B",
+ "\u1E7C": "V\u0303",
+ "\u1E82": "W\u0301",
+ "\u1E80": "W\u0300",
+ "\u1E84": "W\u0308",
+ "\u0174": "W\u0302",
+ "\u1E86": "W\u0307",
+ "\u1E8C": "X\u0308",
+ "\u1E8A": "X\u0307",
+ "\xDD": "Y\u0301",
+ "\u1EF2": "Y\u0300",
+ "\u0178": "Y\u0308",
+ "\u1EF8": "Y\u0303",
+ "\u0232": "Y\u0304",
+ "\u0176": "Y\u0302",
+ "\u1E8E": "Y\u0307",
+ "\u0179": "Z\u0301",
+ "\u017D": "Z\u030C",
+ "\u1E90": "Z\u0302",
+ "\u017B": "Z\u0307",
+ "\u03AC": "\u03B1\u0301",
+ "\u1F70": "\u03B1\u0300",
+ "\u1FB1": "\u03B1\u0304",
+ "\u1FB0": "\u03B1\u0306",
+ "\u03AD": "\u03B5\u0301",
+ "\u1F72": "\u03B5\u0300",
+ "\u03AE": "\u03B7\u0301",
+ "\u1F74": "\u03B7\u0300",
+ "\u03AF": "\u03B9\u0301",
+ "\u1F76": "\u03B9\u0300",
+ "\u03CA": "\u03B9\u0308",
+ "\u0390": "\u03B9\u0308\u0301",
+ "\u1FD2": "\u03B9\u0308\u0300",
+ "\u1FD1": "\u03B9\u0304",
+ "\u1FD0": "\u03B9\u0306",
+ "\u03CC": "\u03BF\u0301",
+ "\u1F78": "\u03BF\u0300",
+ "\u03CD": "\u03C5\u0301",
+ "\u1F7A": "\u03C5\u0300",
+ "\u03CB": "\u03C5\u0308",
+ "\u03B0": "\u03C5\u0308\u0301",
+ "\u1FE2": "\u03C5\u0308\u0300",
+ "\u1FE1": "\u03C5\u0304",
+ "\u1FE0": "\u03C5\u0306",
+ "\u03CE": "\u03C9\u0301",
+ "\u1F7C": "\u03C9\u0300",
+ "\u038E": "\u03A5\u0301",
+ "\u1FEA": "\u03A5\u0300",
+ "\u03AB": "\u03A5\u0308",
+ "\u1FE9": "\u03A5\u0304",
+ "\u1FE8": "\u03A5\u0306",
+ "\u038F": "\u03A9\u0301",
+ "\u1FFA": "\u03A9\u0300"
+ };
+ Parser = class _Parser2 {
+ static {
+ __name(this, "Parser");
+ }
+ constructor(input, settings) {
+ this.mode = void 0;
+ this.gullet = void 0;
+ this.settings = void 0;
+ this.leftrightDepth = void 0;
+ this.nextToken = void 0;
+ this.mode = "math";
+ this.gullet = new MacroExpander(input, settings, this.mode);
+ this.settings = settings;
+ this.leftrightDepth = 0;
+ }
+ /**
+ * Checks a result to make sure it has the right type, and throws an
+ * appropriate error otherwise.
+ */
+ expect(text2, consume) {
+ if (consume === void 0) {
+ consume = true;
+ }
+ if (this.fetch().text !== text2) {
+ throw new ParseError("Expected '" + text2 + "', got '" + this.fetch().text + "'", this.fetch());
+ }
+ if (consume) {
+ this.consume();
+ }
+ }
+ /**
+ * Discards the current lookahead token, considering it consumed.
+ */
+ consume() {
+ this.nextToken = null;
+ }
+ /**
+ * Return the current lookahead token, or if there isn't one (at the
+ * beginning, or if the previous lookahead token was consume()d),
+ * fetch the next token as the new lookahead token and return it.
+ */
+ fetch() {
+ if (this.nextToken == null) {
+ this.nextToken = this.gullet.expandNextToken();
+ }
+ return this.nextToken;
+ }
+ /**
+ * Switches between "text" and "math" modes.
+ */
+ switchMode(newMode) {
+ this.mode = newMode;
+ this.gullet.switchMode(newMode);
+ }
+ /**
+ * Main parsing function, which parses an entire input.
+ */
+ parse() {
+ if (!this.settings.globalGroup) {
+ this.gullet.beginGroup();
+ }
+ if (this.settings.colorIsTextColor) {
+ this.gullet.macros.set("\\color", "\\textcolor");
+ }
+ try {
+ var parse8 = this.parseExpression(false);
+ this.expect("EOF");
+ if (!this.settings.globalGroup) {
+ this.gullet.endGroup();
+ }
+ return parse8;
+ } finally {
+ this.gullet.endGroups();
+ }
+ }
+ /**
+ * Fully parse a separate sequence of tokens as a separate job.
+ * Tokens should be specified in reverse order, as in a MacroDefinition.
+ */
+ subparse(tokens2) {
+ var oldToken = this.nextToken;
+ this.consume();
+ this.gullet.pushToken(new Token("}"));
+ this.gullet.pushTokens(tokens2);
+ var parse8 = this.parseExpression(false);
+ this.expect("}");
+ this.nextToken = oldToken;
+ return parse8;
+ }
+ /**
+ * Parses an "expression", which is a list of atoms.
+ *
+ * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This
+ * happens when functions have higher precedence han infix
+ * nodes in implicit parses.
+ *
+ * `breakOnTokenText`: The text of the token that the expression should end
+ * with, or `null` if something else should end the
+ * expression.
+ */
+ parseExpression(breakOnInfix, breakOnTokenText) {
+ var body = [];
+ while (true) {
+ if (this.mode === "math") {
+ this.consumeSpaces();
+ }
+ var lex2 = this.fetch();
+ if (_Parser2.endOfExpression.indexOf(lex2.text) !== -1) {
+ break;
+ }
+ if (breakOnTokenText && lex2.text === breakOnTokenText) {
+ break;
+ }
+ if (breakOnInfix && functions[lex2.text] && functions[lex2.text].infix) {
+ break;
+ }
+ var atom2 = this.parseAtom(breakOnTokenText);
+ if (!atom2) {
+ break;
+ } else if (atom2.type === "internal") {
+ continue;
+ }
+ body.push(atom2);
+ }
+ if (this.mode === "text") {
+ this.formLigatures(body);
+ }
+ return this.handleInfixNodes(body);
+ }
+ /**
+ * Rewrites infix operators such as \over with corresponding commands such
+ * as \frac.
+ *
+ * There can only be one infix operator per group. If there's more than one
+ * then the expression is ambiguous. This can be resolved by adding {}.
+ */
+ handleInfixNodes(body) {
+ var overIndex = -1;
+ var funcName;
+ for (var i2 = 0; i2 < body.length; i2++) {
+ if (body[i2].type === "infix") {
+ if (overIndex !== -1) {
+ throw new ParseError("only one infix operator per group", body[i2].token);
+ }
+ overIndex = i2;
+ funcName = body[i2].replaceWith;
+ }
+ }
+ if (overIndex !== -1 && funcName) {
+ var numerNode;
+ var denomNode;
+ var numerBody = body.slice(0, overIndex);
+ var denomBody = body.slice(overIndex + 1);
+ if (numerBody.length === 1 && numerBody[0].type === "ordgroup") {
+ numerNode = numerBody[0];
+ } else {
+ numerNode = {
+ type: "ordgroup",
+ mode: this.mode,
+ body: numerBody
+ };
+ }
+ if (denomBody.length === 1 && denomBody[0].type === "ordgroup") {
+ denomNode = denomBody[0];
+ } else {
+ denomNode = {
+ type: "ordgroup",
+ mode: this.mode,
+ body: denomBody
+ };
+ }
+ var node2;
+ if (funcName === "\\\\abovefrac") {
+ node2 = this.callFunction(funcName, [numerNode, body[overIndex], denomNode], []);
+ } else {
+ node2 = this.callFunction(funcName, [numerNode, denomNode], []);
+ }
+ return [node2];
+ } else {
+ return body;
+ }
+ }
+ /**
+ * Handle a subscript or superscript with nice errors.
+ */
+ handleSupSubscript(name) {
+ var symbolToken = this.fetch();
+ var symbol = symbolToken.text;
+ this.consume();
+ this.consumeSpaces();
+ var group2 = this.parseGroup(name);
+ if (!group2) {
+ throw new ParseError("Expected group after '" + symbol + "'", symbolToken);
+ }
+ return group2;
+ }
+ /**
+ * Converts the textual input of an unsupported command into a text node
+ * contained within a color node whose color is determined by errorColor
+ */
+ formatUnsupportedCmd(text2) {
+ var textordArray = [];
+ for (var i2 = 0; i2 < text2.length; i2++) {
+ textordArray.push({
+ type: "textord",
+ mode: "text",
+ text: text2[i2]
+ });
}
- if (distanceRatio >= 1) {
- center2 = { x: point2.x, y: point2.y };
+ var textNode = {
+ type: "text",
+ mode: this.mode,
+ body: textordArray
+ };
+ var colorNode = {
+ type: "color",
+ mode: this.mode,
+ color: this.settings.errorColor,
+ body: [textNode]
+ };
+ return colorNode;
+ }
+ /**
+ * Parses a group with optional super/subscripts.
+ */
+ parseAtom(breakOnTokenText) {
+ var base = this.parseGroup("atom", breakOnTokenText);
+ if (this.mode === "text") {
+ return base;
+ }
+ var superscript;
+ var subscript;
+ while (true) {
+ this.consumeSpaces();
+ var lex2 = this.fetch();
+ if (lex2.text === "\\limits" || lex2.text === "\\nolimits") {
+ if (base && base.type === "op") {
+ var limits = lex2.text === "\\limits";
+ base.limits = limits;
+ base.alwaysHandleSupSub = true;
+ } else if (base && base.type === "operatorname") {
+ if (base.alwaysHandleSupSub) {
+ base.limits = lex2.text === "\\limits";
+ }
+ } else {
+ throw new ParseError("Limit controls must follow a math operator", lex2);
+ }
+ this.consume();
+ } else if (lex2.text === "^") {
+ if (superscript) {
+ throw new ParseError("Double superscript", lex2);
+ }
+ superscript = this.handleSupSubscript("superscript");
+ } else if (lex2.text === "_") {
+ if (subscript) {
+ throw new ParseError("Double subscript", lex2);
+ }
+ subscript = this.handleSupSubscript("subscript");
+ } else if (lex2.text === "'") {
+ if (superscript) {
+ throw new ParseError("Double superscript", lex2);
+ }
+ var prime = {
+ type: "textord",
+ mode: this.mode,
+ text: "\\prime"
+ };
+ var primes = [prime];
+ this.consume();
+ while (this.fetch().text === "'") {
+ primes.push(prime);
+ this.consume();
+ }
+ if (this.fetch().text === "^") {
+ primes.push(this.handleSupSubscript("superscript"));
+ }
+ superscript = {
+ type: "ordgroup",
+ mode: this.mode,
+ body: primes
+ };
+ } else if (uSubsAndSups[lex2.text]) {
+ var isSub = unicodeSubRegEx.test(lex2.text);
+ var subsupTokens = [];
+ subsupTokens.push(new Token(uSubsAndSups[lex2.text]));
+ this.consume();
+ while (true) {
+ var token2 = this.fetch().text;
+ if (!uSubsAndSups[token2]) {
+ break;
+ }
+ if (unicodeSubRegEx.test(token2) !== isSub) {
+ break;
+ }
+ subsupTokens.unshift(new Token(uSubsAndSups[token2]));
+ this.consume();
+ }
+ var body = this.subparse(subsupTokens);
+ if (isSub) {
+ subscript = {
+ type: "ordgroup",
+ mode: "math",
+ body
+ };
+ } else {
+ superscript = {
+ type: "ordgroup",
+ mode: "math",
+ body
+ };
+ }
+ } else {
+ break;
+ }
}
- if (distanceRatio > 0 && distanceRatio < 1) {
- center2 = {
- x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
- y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
+ if (superscript || subscript) {
+ return {
+ type: "supsub",
+ mode: this.mode,
+ base,
+ sup: superscript,
+ sub: subscript
};
+ } else {
+ return base;
}
}
- }
- prevPoint = point2;
- });
- const d = 10 + terminalMarkerSize * 0.5;
- const angle = Math.atan2(points[0].y - center2.y, points[0].x - center2.x);
- const cardinalityPosition = { x: 0, y: 0 };
- cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center2.x) / 2;
- cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center2.y) / 2;
- if (position2 === "start_left") {
- cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center2.x) / 2;
- cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center2.y) / 2;
- }
- if (position2 === "end_right") {
- cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center2.x) / 2 - 5;
- cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center2.y) / 2 - 5;
- }
- if (position2 === "end_left") {
- cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center2.x) / 2 - 5;
- cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center2.y) / 2 - 5;
- }
- return cardinalityPosition;
- }
- function getStylesFromArray(arr) {
- let style = "";
- let labelStyle = "";
- for (const element of arr) {
- if (element !== void 0) {
- if (element.startsWith("color:") || element.startsWith("text-align:")) {
- labelStyle = labelStyle + element + ";";
- } else {
- style = style + element + ";";
+ /**
+ * Parses an entire function, including its base and all of its arguments.
+ */
+ parseFunction(breakOnTokenText, name) {
+ var token2 = this.fetch();
+ var func = token2.text;
+ var funcData = functions[func];
+ if (!funcData) {
+ return null;
+ }
+ this.consume();
+ if (name && name !== "atom" && !funcData.allowedInArgument) {
+ throw new ParseError("Got function '" + func + "' with no arguments" + (name ? " as " + name : ""), token2);
+ } else if (this.mode === "text" && !funcData.allowedInText) {
+ throw new ParseError("Can't use function '" + func + "' in text mode", token2);
+ } else if (this.mode === "math" && funcData.allowedInMath === false) {
+ throw new ParseError("Can't use function '" + func + "' in math mode", token2);
+ }
+ var {
+ args,
+ optArgs
+ } = this.parseArguments(func, funcData);
+ return this.callFunction(func, args, optArgs, token2, breakOnTokenText);
+ }
+ /**
+ * Call a function handler with a suitable context and arguments.
+ */
+ callFunction(name, args, optArgs, token2, breakOnTokenText) {
+ var context = {
+ funcName: name,
+ parser: this,
+ token: token2,
+ breakOnTokenText
+ };
+ var func = functions[name];
+ if (func && func.handler) {
+ return func.handler(context, args, optArgs);
+ } else {
+ throw new ParseError("No function handler for " + name);
+ }
}
- }
- }
- return { style, labelStyle };
- }
- let cnt$1 = 0;
- const generateId$1 = () => {
- cnt$1++;
- return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt$1;
- };
- function makeid(length2) {
- let result = "";
- const characters2 = "0123456789abcdef";
- const charactersLength = characters2.length;
- for (let i2 = 0; i2 < length2; i2++) {
- result += characters2.charAt(Math.floor(Math.random() * charactersLength));
- }
- return result;
- }
- const random = (options2) => {
- return makeid(options2.length);
- };
- const getTextObj$3 = function() {
- return {
- x: 0,
- y: 0,
- fill: void 0,
- anchor: "start",
- style: "#666",
- width: 100,
- height: 100,
- textMargin: 0,
- rx: 0,
- ry: 0,
- valign: void 0
- };
- };
- const drawSimpleText = function(elem, textData) {
- const nText = textData.text.replace(common$1.lineBreakRegex, " ");
- const [, _fontSizePx] = parseFontSize(textData.fontSize);
- const textElem = elem.append("text");
- textElem.attr("x", textData.x);
- textElem.attr("y", textData.y);
- textElem.style("text-anchor", textData.anchor);
- textElem.style("font-family", textData.fontFamily);
- textElem.style("font-size", _fontSizePx);
- textElem.style("font-weight", textData.fontWeight);
- textElem.attr("fill", textData.fill);
- if (textData.class !== void 0) {
- textElem.attr("class", textData.class);
- }
- const span = textElem.append("tspan");
- span.attr("x", textData.x + textData.textMargin * 2);
- span.attr("fill", textData.fill);
- span.text(nText);
- return textElem;
- };
- const wrapLabel = memoize(
- (label, maxWidth, config2) => {
- if (!label) {
- return label;
- }
- config2 = Object.assign(
- { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" },
- config2
- );
- if (common$1.lineBreakRegex.test(label)) {
- return label;
- }
- const words = label.split(" ");
- const completedLines = [];
- let nextLine = "";
- words.forEach((word, index) => {
- const wordLength = calculateTextWidth(`${word} `, config2);
- const nextLineLength = calculateTextWidth(nextLine, config2);
- if (wordLength > maxWidth) {
- const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config2);
- completedLines.push(nextLine, ...hyphenatedStrings);
- nextLine = remainingWord;
- } else if (nextLineLength + wordLength >= maxWidth) {
- completedLines.push(nextLine);
- nextLine = word;
- } else {
- nextLine = [nextLine, word].filter(Boolean).join(" ");
+ /**
+ * Parses the arguments of a function or environment
+ */
+ parseArguments(func, funcData) {
+ var totalArgs = funcData.numArgs + funcData.numOptionalArgs;
+ if (totalArgs === 0) {
+ return {
+ args: [],
+ optArgs: []
+ };
+ }
+ var args = [];
+ var optArgs = [];
+ for (var i2 = 0; i2 < totalArgs; i2++) {
+ var argType = funcData.argTypes && funcData.argTypes[i2];
+ var isOptional = i2 < funcData.numOptionalArgs;
+ if (funcData.primitive && argType == null || // \sqrt expands into primitive if optional argument doesn't exist
+ funcData.type === "sqrt" && i2 === 1 && optArgs[0] == null) {
+ argType = "primitive";
+ }
+ var arg = this.parseGroupOfType("argument to '" + func + "'", argType, isOptional);
+ if (isOptional) {
+ optArgs.push(arg);
+ } else if (arg != null) {
+ args.push(arg);
+ } else {
+ throw new ParseError("Null argument, please report this as a bug");
+ }
+ }
+ return {
+ args,
+ optArgs
+ };
}
- const currentWord = index + 1;
- const isLastWord = currentWord === words.length;
- if (isLastWord) {
- completedLines.push(nextLine);
+ /**
+ * Parses a group when the mode is changing.
+ */
+ parseGroupOfType(name, type3, optional2) {
+ switch (type3) {
+ case "color":
+ return this.parseColorGroup(optional2);
+ case "size":
+ return this.parseSizeGroup(optional2);
+ case "url":
+ return this.parseUrlGroup(optional2);
+ case "math":
+ case "text":
+ return this.parseArgumentGroup(optional2, type3);
+ case "hbox": {
+ var group2 = this.parseArgumentGroup(optional2, "text");
+ return group2 != null ? {
+ type: "styling",
+ mode: group2.mode,
+ body: [group2],
+ style: "text"
+ // simulate \textstyle
+ } : null;
+ }
+ case "raw": {
+ var token2 = this.parseStringGroup("raw", optional2);
+ return token2 != null ? {
+ type: "raw",
+ mode: "text",
+ string: token2.text
+ } : null;
+ }
+ case "primitive": {
+ if (optional2) {
+ throw new ParseError("A primitive argument cannot be optional");
+ }
+ var _group = this.parseGroup(name);
+ if (_group == null) {
+ throw new ParseError("Expected group as " + name, this.fetch());
+ }
+ return _group;
+ }
+ case "original":
+ case null:
+ case void 0:
+ return this.parseArgumentGroup(optional2);
+ default:
+ throw new ParseError("Unknown group type as " + name, this.fetch());
+ }
}
- });
- return completedLines.filter((line2) => line2 !== "").join(config2.joinWith);
- },
- (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}`
- );
- const breakString = memoize(
- (word, maxWidth, hyphenCharacter = "-", config2) => {
- config2 = Object.assign(
- { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
- config2
- );
- const characters2 = [...word];
- const lines = [];
- let currentLine = "";
- characters2.forEach((character2, index) => {
- const nextLine = `${currentLine}${character2}`;
- const lineWidth = calculateTextWidth(nextLine, config2);
- if (lineWidth >= maxWidth) {
- const currentCharacter = index + 1;
- const isLastLine = characters2.length === currentCharacter;
- const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;
- lines.push(isLastLine ? nextLine : hyphenatedNextLine);
- currentLine = "";
- } else {
- currentLine = nextLine;
+ /**
+ * Discard any space tokens, fetching the next non-space token.
+ */
+ consumeSpaces() {
+ while (this.fetch().text === " ") {
+ this.consume();
+ }
}
- });
- return { hyphenatedStrings: lines, remainingWord: currentLine };
- },
- (word, maxWidth, hyphenCharacter = "-", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`
- );
- function calculateTextHeight(text2, config2) {
- config2 = Object.assign(
- { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 15 },
- config2
- );
- return calculateTextDimensions(text2, config2).height;
- }
- function calculateTextWidth(text2, config2) {
- config2 = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config2);
- return calculateTextDimensions(text2, config2).width;
- }
- const calculateTextDimensions = memoize(
- (text2, config2) => {
- config2 = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config2);
- const { fontSize, fontFamily, fontWeight } = config2;
- if (!text2) {
- return { width: 0, height: 0 };
- }
- const [, _fontSizePx] = parseFontSize(fontSize);
- const fontFamilies = ["sans-serif", fontFamily];
- const lines = text2.split(common$1.lineBreakRegex);
- const dims = [];
- const body = select("body");
- if (!body.remove) {
- return { width: 0, height: 0, lineHeight: 0 };
- }
- const g = body.append("svg");
- for (const fontFamily2 of fontFamilies) {
- let cheight = 0;
- const dim = { width: 0, height: 0, lineHeight: 0 };
- for (const line2 of lines) {
- const textObj = getTextObj$3();
- textObj.text = line2;
- const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2);
- const bBox = (textElem._groups || textElem)[0][0].getBBox();
- if (bBox.width === 0 && bBox.height === 0) {
- throw new Error("svg element not in render tree");
- }
- dim.width = Math.round(Math.max(dim.width, bBox.width));
- cheight = Math.round(bBox.height);
- dim.height += cheight;
- dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));
- }
- dims.push(dim);
- }
- g.remove();
- const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;
- return dims[index];
- },
- (text2, config2) => `${text2}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`
- );
- const initIdGenerator = class iterator {
- constructor(deterministic, seed) {
- this.deterministic = deterministic;
- this.seed = seed;
- this.count = seed ? seed.length : 0;
- }
- next() {
- if (!this.deterministic) {
- return Date.now();
- }
- return this.count++;
- }
- };
- let decoder;
- const entityDecode = function(html2) {
- decoder = decoder || document.createElement("div");
- html2 = escape(html2).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";");
- decoder.innerHTML = html2;
- return unescape(decoder.textContent);
- };
- const directiveSanitizer = (args) => {
- log$1.debug("directiveSanitizer called with", args);
- if (typeof args === "object") {
- if (args.length) {
- args.forEach((arg) => directiveSanitizer(arg));
- } else {
- Object.keys(args).forEach((key) => {
- log$1.debug("Checking key", key);
- if (key.startsWith("__")) {
- log$1.debug("sanitize deleting __ option", key);
- delete args[key];
+ /**
+ * Parses a group, essentially returning the string formed by the
+ * brace-enclosed tokens plus some position information.
+ */
+ parseStringGroup(modeName, optional2) {
+ var argToken = this.gullet.scanArgument(optional2);
+ if (argToken == null) {
+ return null;
}
- if (key.includes("proto")) {
- log$1.debug("sanitize deleting proto option", key);
- delete args[key];
+ var str2 = "";
+ var nextToken;
+ while ((nextToken = this.fetch()).text !== "EOF") {
+ str2 += nextToken.text;
+ this.consume();
+ }
+ this.consume();
+ argToken.text = str2;
+ return argToken;
+ }
+ /**
+ * Parses a regex-delimited group: the largest sequence of tokens
+ * whose concatenated strings match `regex`. Returns the string
+ * formed by the tokens plus some position information.
+ */
+ parseRegexGroup(regex2, modeName) {
+ var firstToken = this.fetch();
+ var lastToken = firstToken;
+ var str2 = "";
+ var nextToken;
+ while ((nextToken = this.fetch()).text !== "EOF" && regex2.test(str2 + nextToken.text)) {
+ lastToken = nextToken;
+ str2 += lastToken.text;
+ this.consume();
+ }
+ if (str2 === "") {
+ throw new ParseError("Invalid " + modeName + ": '" + firstToken.text + "'", firstToken);
+ }
+ return firstToken.range(lastToken, str2);
+ }
+ /**
+ * Parses a color description.
+ */
+ parseColorGroup(optional2) {
+ var res = this.parseStringGroup("color", optional2);
+ if (res == null) {
+ return null;
}
- if (key.includes("constr")) {
- log$1.debug("sanitize deleting constr option", key);
- delete args[key];
+ var match2 = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(res.text);
+ if (!match2) {
+ throw new ParseError("Invalid color: '" + res.text + "'", res);
+ }
+ var color2 = match2[0];
+ if (/^[0-9a-f]{6}$/i.test(color2)) {
+ color2 = "#" + color2;
}
- if (key.includes("themeCSS")) {
- log$1.debug("sanitizing themeCss option");
- args[key] = sanitizeCss(args[key]);
+ return {
+ type: "color-token",
+ mode: this.mode,
+ color: color2
+ };
+ }
+ /**
+ * Parses a size specification, consisting of magnitude and unit.
+ */
+ parseSizeGroup(optional2) {
+ var res;
+ var isBlank = false;
+ this.gullet.consumeSpaces();
+ if (!optional2 && this.gullet.future().text !== "{") {
+ res = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size");
+ } else {
+ res = this.parseStringGroup("size", optional2);
}
- if (key.includes("fontFamily")) {
- log$1.debug("sanitizing fontFamily option");
- args[key] = sanitizeCss(args[key]);
+ if (!res) {
+ return null;
}
- if (key.includes("altFontFamily")) {
- log$1.debug("sanitizing altFontFamily option");
- args[key] = sanitizeCss(args[key]);
+ if (!optional2 && res.text.length === 0) {
+ res.text = "0pt";
+ isBlank = true;
}
- if (!configKeys.includes(key)) {
- log$1.debug("sanitize deleting option", key);
- delete args[key];
+ var match2 = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(res.text);
+ if (!match2) {
+ throw new ParseError("Invalid size: '" + res.text + "'", res);
+ }
+ var data5 = {
+ number: +(match2[1] + match2[2]),
+ // sign + magnitude, cast to number
+ unit: match2[3]
+ };
+ if (!validUnit(data5)) {
+ throw new ParseError("Invalid unit: '" + data5.unit + "'", res);
+ }
+ return {
+ type: "size",
+ mode: this.mode,
+ value: data5,
+ isBlank
+ };
+ }
+ /**
+ * Parses an URL, checking escaped letters and allowed protocols,
+ * and setting the catcode of % as an active character (as in \hyperref).
+ */
+ parseUrlGroup(optional2) {
+ this.gullet.lexer.setCatcode("%", 13);
+ this.gullet.lexer.setCatcode("~", 12);
+ var res = this.parseStringGroup("url", optional2);
+ this.gullet.lexer.setCatcode("%", 14);
+ this.gullet.lexer.setCatcode("~", 13);
+ if (res == null) {
+ return null;
+ }
+ var url = res.text.replace(/\\([#$%&~_^{}])/g, "$1");
+ return {
+ type: "url",
+ mode: this.mode,
+ url
+ };
+ }
+ /**
+ * Parses an argument with the mode specified.
+ */
+ parseArgumentGroup(optional2, mode) {
+ var argToken = this.gullet.scanArgument(optional2);
+ if (argToken == null) {
+ return null;
+ }
+ var outerMode = this.mode;
+ if (mode) {
+ this.switchMode(mode);
+ }
+ this.gullet.beginGroup();
+ var expression = this.parseExpression(false, "EOF");
+ this.expect("EOF");
+ this.gullet.endGroup();
+ var result = {
+ type: "ordgroup",
+ mode: this.mode,
+ loc: argToken.loc,
+ body: expression
+ };
+ if (mode) {
+ this.switchMode(outerMode);
+ }
+ return result;
+ }
+ /**
+ * Parses an ordinary group, which is either a single nucleus (like "x")
+ * or an expression in braces (like "{x+y}") or an implicit group, a group
+ * that starts at the current position, and ends right before a higher explicit
+ * group ends, or at EOF.
+ */
+ parseGroup(name, breakOnTokenText) {
+ var firstToken = this.fetch();
+ var text2 = firstToken.text;
+ var result;
+ if (text2 === "{" || text2 === "\\begingroup") {
+ this.consume();
+ var groupEnd = text2 === "{" ? "}" : "\\endgroup";
+ this.gullet.beginGroup();
+ var expression = this.parseExpression(false, groupEnd);
+ var lastToken = this.fetch();
+ this.expect(groupEnd);
+ this.gullet.endGroup();
+ result = {
+ type: "ordgroup",
+ mode: this.mode,
+ loc: SourceLocation.range(firstToken, lastToken),
+ body: expression,
+ // A group formed by \begingroup...\endgroup is a semi-simple group
+ // which doesn't affect spacing in math mode, i.e., is transparent.
+ // https://tex.stackexchange.com/questions/1930/when-should-one-
+ // use-begingroup-instead-of-bgroup
+ semisimple: text2 === "\\begingroup" || void 0
+ };
} else {
- if (typeof args[key] === "object") {
- log$1.debug("sanitize deleting object", key);
- directiveSanitizer(args[key]);
+ result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol();
+ if (result == null && text2[0] === "\\" && !implicitCommands.hasOwnProperty(text2)) {
+ if (this.settings.throwOnError) {
+ throw new ParseError("Undefined control sequence: " + text2, firstToken);
+ }
+ result = this.formatUnsupportedCmd(text2);
+ this.consume();
}
}
- });
- }
- }
- if (args.themeVariables) {
- const kArr = Object.keys(args.themeVariables);
- for (const k of kArr) {
- const val = args.themeVariables[k];
- if (val && val.match && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) {
- args.themeVariables[k] = "";
+ return result;
}
- }
+ /**
+ * Form ligature-like combinations of characters for text mode.
+ * This includes inputs like "--", "---", "``" and "''".
+ * The result will simply replace multiple textord nodes with a single
+ * character in each value by a single textord node having multiple
+ * characters in its value. The representation is still ASCII source.
+ * The group will be modified in place.
+ */
+ formLigatures(group2) {
+ var n2 = group2.length - 1;
+ for (var i2 = 0; i2 < n2; ++i2) {
+ var a2 = group2[i2];
+ var v3 = a2.text;
+ if (v3 === "-" && group2[i2 + 1].text === "-") {
+ if (i2 + 1 < n2 && group2[i2 + 2].text === "-") {
+ group2.splice(i2, 3, {
+ type: "textord",
+ mode: "text",
+ loc: SourceLocation.range(a2, group2[i2 + 2]),
+ text: "---"
+ });
+ n2 -= 2;
+ } else {
+ group2.splice(i2, 2, {
+ type: "textord",
+ mode: "text",
+ loc: SourceLocation.range(a2, group2[i2 + 1]),
+ text: "--"
+ });
+ n2 -= 1;
+ }
+ }
+ if ((v3 === "'" || v3 === "`") && group2[i2 + 1].text === v3) {
+ group2.splice(i2, 2, {
+ type: "textord",
+ mode: "text",
+ loc: SourceLocation.range(a2, group2[i2 + 1]),
+ text: v3 + v3
+ });
+ n2 -= 1;
+ }
+ }
+ }
+ /**
+ * Parse a single symbol out of the string. Here, we handle single character
+ * symbols and special functions like \verb.
+ */
+ parseSymbol() {
+ var nucleus = this.fetch();
+ var text2 = nucleus.text;
+ if (/^\\verb[^a-zA-Z]/.test(text2)) {
+ this.consume();
+ var arg = text2.slice(5);
+ var star2 = arg.charAt(0) === "*";
+ if (star2) {
+ arg = arg.slice(1);
+ }
+ if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) {
+ throw new ParseError("\\verb assertion failed --\n please report what input caused this bug");
+ }
+ arg = arg.slice(1, -1);
+ return {
+ type: "verb",
+ mode: "text",
+ body: arg,
+ star: star2
+ };
+ }
+ if (unicodeSymbols.hasOwnProperty(text2[0]) && !symbols[this.mode][text2[0]]) {
+ if (this.settings.strict && this.mode === "math") {
+ this.settings.reportNonstrict("unicodeTextInMathMode", 'Accented Unicode text character "' + text2[0] + '" used in math mode', nucleus);
+ }
+ text2 = unicodeSymbols[text2[0]] + text2.slice(1);
+ }
+ var match2 = combiningDiacriticalMarksEndRegex.exec(text2);
+ if (match2) {
+ text2 = text2.substring(0, match2.index);
+ if (text2 === "i") {
+ text2 = "\u0131";
+ } else if (text2 === "j") {
+ text2 = "\u0237";
+ }
+ }
+ var symbol;
+ if (symbols[this.mode][text2]) {
+ if (this.settings.strict && this.mode === "math" && extraLatin.indexOf(text2) >= 0) {
+ this.settings.reportNonstrict("unicodeTextInMathMode", 'Latin-1/Unicode text character "' + text2[0] + '" used in math mode', nucleus);
+ }
+ var group2 = symbols[this.mode][text2].group;
+ var loc = SourceLocation.range(nucleus);
+ var s2;
+ if (ATOMS.hasOwnProperty(group2)) {
+ var family = group2;
+ s2 = {
+ type: "atom",
+ mode: this.mode,
+ family,
+ loc,
+ text: text2
+ };
+ } else {
+ s2 = {
+ type: group2,
+ mode: this.mode,
+ loc,
+ text: text2
+ };
+ }
+ symbol = s2;
+ } else if (text2.charCodeAt(0) >= 128) {
+ if (this.settings.strict) {
+ if (!supportedCodepoint(text2.charCodeAt(0))) {
+ this.settings.reportNonstrict("unknownSymbol", 'Unrecognized Unicode character "' + text2[0] + '"' + (" (" + text2.charCodeAt(0) + ")"), nucleus);
+ } else if (this.mode === "math") {
+ this.settings.reportNonstrict("unicodeTextInMathMode", 'Unicode text character "' + text2[0] + '" used in math mode', nucleus);
+ }
+ }
+ symbol = {
+ type: "textord",
+ mode: "text",
+ loc: SourceLocation.range(nucleus),
+ text: text2
+ };
+ } else {
+ return null;
+ }
+ this.consume();
+ if (match2) {
+ for (var i2 = 0; i2 < match2[0].length; i2++) {
+ var accent2 = match2[0][i2];
+ if (!unicodeAccents[accent2]) {
+ throw new ParseError("Unknown accent ' " + accent2 + "'", nucleus);
+ }
+ var command = unicodeAccents[accent2][this.mode] || unicodeAccents[accent2].text;
+ if (!command) {
+ throw new ParseError("Accent " + accent2 + " unsupported in " + this.mode + " mode", nucleus);
+ }
+ symbol = {
+ type: "accent",
+ mode: this.mode,
+ loc: SourceLocation.range(nucleus),
+ label: command,
+ isStretchy: false,
+ isShifty: true,
+ // $FlowFixMe
+ base: symbol
+ };
+ }
+ }
+ return symbol;
+ }
+ };
+ Parser.endOfExpression = ["}", "\\endgroup", "\\end", "\\right", "&"];
+ parseTree = /* @__PURE__ */ __name(function parseTree2(toParse, settings) {
+ if (!(typeof toParse === "string" || toParse instanceof String)) {
+ throw new TypeError("KaTeX can only parse string typed expression");
+ }
+ var parser22 = new Parser(toParse, settings);
+ delete parser22.gullet.macros.current["\\df@tag"];
+ var tree = parser22.parse();
+ delete parser22.gullet.macros.current["\\current@color"];
+ delete parser22.gullet.macros.current["\\color"];
+ if (parser22.gullet.macros.get("\\df@tag")) {
+ if (!settings.displayMode) {
+ throw new ParseError("\\tag works only in display equations");
+ }
+ tree = [{
+ type: "tag",
+ mode: "text",
+ body: tree,
+ tag: parser22.subparse([new Token("\\df@tag")])
+ }];
+ }
+ return tree;
+ }, "parseTree");
+ render = /* @__PURE__ */ __name(function render2(expression, baseNode, options3) {
+ baseNode.textContent = "";
+ var node2 = renderToDomTree(expression, options3).toNode();
+ baseNode.appendChild(node2);
+ }, "render");
+ if (typeof document !== "undefined") {
+ if (document.compatMode !== "CSS1Compat") {
+ typeof console !== "undefined" && console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype.");
+ render = /* @__PURE__ */ __name(function render8() {
+ throw new ParseError("KaTeX doesn't work in quirks mode.");
+ }, "render");
+ }
+ }
+ renderToString = /* @__PURE__ */ __name(function renderToString2(expression, options3) {
+ var markup = renderToDomTree(expression, options3).toMarkup();
+ return markup;
+ }, "renderToString");
+ generateParseTree = /* @__PURE__ */ __name(function generateParseTree2(expression, options3) {
+ var settings = new Settings(options3);
+ return parseTree(expression, settings);
+ }, "generateParseTree");
+ renderError = /* @__PURE__ */ __name(function renderError2(error3, expression, options3) {
+ if (options3.throwOnError || !(error3 instanceof ParseError)) {
+ throw error3;
+ }
+ var node2 = buildCommon.makeSpan(["katex-error"], [new SymbolNode(expression)]);
+ node2.setAttribute("title", error3.toString());
+ node2.setAttribute("style", "color:" + options3.errorColor);
+ return node2;
+ }, "renderError");
+ renderToDomTree = /* @__PURE__ */ __name(function renderToDomTree2(expression, options3) {
+ var settings = new Settings(options3);
+ try {
+ var tree = parseTree(expression, settings);
+ return buildTree(tree, expression, settings);
+ } catch (error3) {
+ return renderError(error3, expression, settings);
+ }
+ }, "renderToDomTree");
+ renderToHTMLTree = /* @__PURE__ */ __name(function renderToHTMLTree2(expression, options3) {
+ var settings = new Settings(options3);
+ try {
+ var tree = parseTree(expression, settings);
+ return buildHTMLTree(tree, expression, settings);
+ } catch (error3) {
+ return renderError(error3, expression, settings);
+ }
+ }, "renderToHTMLTree");
+ katex = {
+ /**
+ * Current KaTeX version
+ */
+ version: "0.16.11",
+ /**
+ * Renders the given LaTeX into an HTML+MathML combination, and adds
+ * it as a child to the specified DOM node.
+ */
+ render,
+ /**
+ * Renders the given LaTeX into an HTML+MathML combination string,
+ * for sending to the client.
+ */
+ renderToString,
+ /**
+ * KaTeX error, usually during parsing.
+ */
+ ParseError,
+ /**
+ * The shema of Settings
+ */
+ SETTINGS_SCHEMA,
+ /**
+ * Parses the given LaTeX into KaTeX's internal parse tree structure,
+ * without rendering to HTML or MathML.
+ *
+ * NOTE: This method is not currently recommended for public use.
+ * The internal tree representation is unstable and is very likely
+ * to change. Use at your own risk.
+ */
+ __parse: generateParseTree,
+ /**
+ * Renders the given LaTeX into an HTML+MathML internal DOM tree
+ * representation, without flattening that representation to a string.
+ *
+ * NOTE: This method is not currently recommended for public use.
+ * The internal tree representation is unstable and is very likely
+ * to change. Use at your own risk.
+ */
+ __renderToDomTree: renderToDomTree,
+ /**
+ * Renders the given LaTeX into an HTML internal DOM tree representation,
+ * without MathML and without flattening that representation to a string.
+ *
+ * NOTE: This method is not currently recommended for public use.
+ * The internal tree representation is unstable and is very likely
+ * to change. Use at your own risk.
+ */
+ __renderToHTMLTree: renderToHTMLTree,
+ /**
+ * extends internal font metrics object with a new object
+ * each key in the new object represents a font name
+ */
+ __setFontMetrics: setFontMetrics,
+ /**
+ * adds a new symbol to builtin symbols table
+ */
+ __defineSymbol: defineSymbol,
+ /**
+ * adds a new function to builtin function list,
+ * which directly produce parse tree elements
+ * and have their own html/mathml builders
+ */
+ __defineFunction: defineFunction,
+ /**
+ * adds a new macro to builtin macro list
+ */
+ __defineMacro: defineMacro,
+ /**
+ * Expose the dom tree node types, which can be useful for type checking nodes.
+ *
+ * NOTE: This method is not currently recommended for public use.
+ * The internal tree representation is unstable and is very likely
+ * to change. Use at your own risk.
+ */
+ __domTree: {
+ Span,
+ Anchor,
+ SymbolNode,
+ SvgNode,
+ PathNode,
+ LineNode
+ }
+ };
}
- log$1.debug("After sanitization", args);
- };
- const sanitizeCss = (str2) => {
- let startCnt = 0;
- let endCnt = 0;
- for (const element of str2) {
- if (startCnt < endCnt) {
- return "{ /* ERROR: Unbalanced CSS */ }";
+ });
+
+ // src/diagrams/common/common.ts
+ function setupDompurifyHooks() {
+ const TEMPORARY_ATTRIBUTE = "data-temp-href-target";
+ import_dompurify.default.addHook("beforeSanitizeAttributes", (node2) => {
+ if (node2.tagName === "A" && node2.hasAttribute("target")) {
+ node2.setAttribute(TEMPORARY_ATTRIBUTE, node2.getAttribute("target") ?? "");
}
- if (element === "{") {
- startCnt++;
- } else if (element === "}") {
- endCnt++;
+ });
+ import_dompurify.default.addHook("afterSanitizeAttributes", (node2) => {
+ if (node2.tagName === "A" && node2.hasAttribute(TEMPORARY_ATTRIBUTE)) {
+ node2.setAttribute("target", node2.getAttribute(TEMPORARY_ATTRIBUTE) ?? "");
+ node2.removeAttribute(TEMPORARY_ATTRIBUTE);
+ if (node2.getAttribute("target") === "_blank") {
+ node2.setAttribute("rel", "noopener");
+ }
}
- }
- if (startCnt !== endCnt) {
- return "{ /* ERROR: Unbalanced CSS */ }";
- }
- return str2;
- };
- function isDetailedError(error) {
- return "str" in error;
- }
- function getErrorMessage(error) {
- if (error instanceof Error) {
- return error.message;
- }
- return String(error);
+ });
}
- const insertTitle = (parent, cssClass, titleTopMargin, title2) => {
- if (!title2) {
- return;
+ var import_dompurify, lineBreakRegex, getRows, setupDompurifyHooksIfNotSetup, removeScript, sanitizeMore, sanitizeText, sanitizeTextOrArray, hasBreaks, splitBreaks, placeholderToBreak, breakToPlaceholder, getUrl, evaluate, getMax, getMin, parseGenericTypes, countOccurrence, shouldCombineSets, processSet, isMathMLSupported, katexRegex, hasKatex, calculateMathMLDimensions, renderKatex, common_default;
+ var init_common = __esm({
+ "src/diagrams/common/common.ts"() {
+ "use strict";
+ import_dompurify = __toESM(require_purify(), 1);
+ lineBreakRegex = /
/gi;
+ getRows = /* @__PURE__ */ __name((s2) => {
+ if (!s2) {
+ return [""];
+ }
+ const str2 = breakToPlaceholder(s2).replace(/\\n/g, "#br#");
+ return str2.split("#br#");
+ }, "getRows");
+ setupDompurifyHooksIfNotSetup = /* @__PURE__ */ (() => {
+ let setup = false;
+ return () => {
+ if (!setup) {
+ setupDompurifyHooks();
+ setup = true;
+ }
+ };
+ })();
+ __name(setupDompurifyHooks, "setupDompurifyHooks");
+ removeScript = /* @__PURE__ */ __name((txt) => {
+ setupDompurifyHooksIfNotSetup();
+ const sanitizedText = import_dompurify.default.sanitize(txt);
+ return sanitizedText;
+ }, "removeScript");
+ sanitizeMore = /* @__PURE__ */ __name((text2, config6) => {
+ if (config6.flowchart?.htmlLabels !== false) {
+ const level = config6.securityLevel;
+ if (level === "antiscript" || level === "strict") {
+ text2 = removeScript(text2);
+ } else if (level !== "loose") {
+ text2 = breakToPlaceholder(text2);
+ text2 = text2.replace(//g, ">");
+ text2 = text2.replace(/=/g, "=");
+ text2 = placeholderToBreak(text2);
+ }
+ }
+ return text2;
+ }, "sanitizeMore");
+ sanitizeText = /* @__PURE__ */ __name((text2, config6) => {
+ if (!text2) {
+ return text2;
+ }
+ if (config6.dompurifyConfig) {
+ text2 = import_dompurify.default.sanitize(sanitizeMore(text2, config6), config6.dompurifyConfig).toString();
+ } else {
+ text2 = import_dompurify.default.sanitize(sanitizeMore(text2, config6), {
+ FORBID_TAGS: ["style"]
+ }).toString();
+ }
+ return text2;
+ }, "sanitizeText");
+ sanitizeTextOrArray = /* @__PURE__ */ __name((a2, config6) => {
+ if (typeof a2 === "string") {
+ return sanitizeText(a2, config6);
+ }
+ return a2.flat().map((x5) => sanitizeText(x5, config6));
+ }, "sanitizeTextOrArray");
+ hasBreaks = /* @__PURE__ */ __name((text2) => {
+ return lineBreakRegex.test(text2);
+ }, "hasBreaks");
+ splitBreaks = /* @__PURE__ */ __name((text2) => {
+ return text2.split(lineBreakRegex);
+ }, "splitBreaks");
+ placeholderToBreak = /* @__PURE__ */ __name((s2) => {
+ return s2.replace(/#br#/g, "
");
+ }, "placeholderToBreak");
+ breakToPlaceholder = /* @__PURE__ */ __name((s2) => {
+ return s2.replace(lineBreakRegex, "#br#");
+ }, "breakToPlaceholder");
+ getUrl = /* @__PURE__ */ __name((useAbsolute) => {
+ let url = "";
+ if (useAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replaceAll(/\(/g, "\\(");
+ url = url.replaceAll(/\)/g, "\\)");
+ }
+ return url;
+ }, "getUrl");
+ evaluate = /* @__PURE__ */ __name((val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true, "evaluate");
+ getMax = /* @__PURE__ */ __name(function(...values2) {
+ const newValues = values2.filter((value2) => {
+ return !isNaN(value2);
+ });
+ return Math.max(...newValues);
+ }, "getMax");
+ getMin = /* @__PURE__ */ __name(function(...values2) {
+ const newValues = values2.filter((value2) => {
+ return !isNaN(value2);
+ });
+ return Math.min(...newValues);
+ }, "getMin");
+ parseGenericTypes = /* @__PURE__ */ __name(function(input) {
+ const inputSets = input.split(/(,)/);
+ const output2 = [];
+ for (let i2 = 0; i2 < inputSets.length; i2++) {
+ let thisSet = inputSets[i2];
+ if (thisSet === "," && i2 > 0 && i2 + 1 < inputSets.length) {
+ const previousSet = inputSets[i2 - 1];
+ const nextSet = inputSets[i2 + 1];
+ if (shouldCombineSets(previousSet, nextSet)) {
+ thisSet = previousSet + "," + nextSet;
+ i2++;
+ output2.pop();
+ }
+ }
+ output2.push(processSet(thisSet));
+ }
+ return output2.join("");
+ }, "parseGenericTypes");
+ countOccurrence = /* @__PURE__ */ __name((string3, substring) => {
+ return Math.max(0, string3.split(substring).length - 1);
+ }, "countOccurrence");
+ shouldCombineSets = /* @__PURE__ */ __name((previousSet, nextSet) => {
+ const prevCount = countOccurrence(previousSet, "~");
+ const nextCount = countOccurrence(nextSet, "~");
+ return prevCount === 1 && nextCount === 1;
+ }, "shouldCombineSets");
+ processSet = /* @__PURE__ */ __name((input) => {
+ const tildeCount = countOccurrence(input, "~");
+ let hasStartingTilde = false;
+ if (tildeCount <= 1) {
+ return input;
+ }
+ if (tildeCount % 2 !== 0 && input.startsWith("~")) {
+ input = input.substring(1);
+ hasStartingTilde = true;
+ }
+ const chars = [...input];
+ let first3 = chars.indexOf("~");
+ let last3 = chars.lastIndexOf("~");
+ while (first3 !== -1 && last3 !== -1 && first3 !== last3) {
+ chars[first3] = "<";
+ chars[last3] = ">";
+ first3 = chars.indexOf("~");
+ last3 = chars.lastIndexOf("~");
+ }
+ if (hasStartingTilde) {
+ chars.unshift("~");
+ }
+ return chars.join("");
+ }, "processSet");
+ isMathMLSupported = /* @__PURE__ */ __name(() => window.MathMLElement !== void 0, "isMathMLSupported");
+ katexRegex = /\$\$(.*)\$\$/g;
+ hasKatex = /* @__PURE__ */ __name((text2) => (text2.match(katexRegex)?.length ?? 0) > 0, "hasKatex");
+ calculateMathMLDimensions = /* @__PURE__ */ __name(async (text2, config6) => {
+ text2 = await renderKatex(text2, config6);
+ const divElem = document.createElement("div");
+ divElem.innerHTML = text2;
+ divElem.id = "katex-temp";
+ divElem.style.visibility = "hidden";
+ divElem.style.position = "absolute";
+ divElem.style.top = "0";
+ const body = document.querySelector("body");
+ body?.insertAdjacentElement("beforeend", divElem);
+ const dim = { width: divElem.clientWidth, height: divElem.clientHeight };
+ divElem.remove();
+ return dim;
+ }, "calculateMathMLDimensions");
+ renderKatex = /* @__PURE__ */ __name(async (text2, config6) => {
+ if (!hasKatex(text2)) {
+ return text2;
+ }
+ if (!(isMathMLSupported() || config6.legacyMathML || config6.forceLegacyMathML)) {
+ return text2.replace(katexRegex, "MathML is unsupported in this environment.");
+ }
+ const { default: katex2 } = await Promise.resolve().then(() => (init_katex(), katex_exports));
+ const outputMode = config6.forceLegacyMathML || !isMathMLSupported() && config6.legacyMathML ? "htmlAndMathml" : "mathml";
+ return text2.split(lineBreakRegex).map(
+ (line2) => hasKatex(line2) ? `${line2}
` : `${line2}
`
+ ).join("").replace(
+ katexRegex,
+ (_2, c3) => katex2.renderToString(c3, {
+ throwOnError: true,
+ displayMode: true,
+ output: outputMode
+ }).replace(/\n/g, " ").replace(//g, "")
+ );
+ }, "renderKatex");
+ common_default = {
+ getRows,
+ sanitizeText,
+ sanitizeTextOrArray,
+ hasBreaks,
+ splitBreaks,
+ lineBreakRegex,
+ removeScript,
+ getUrl,
+ evaluate,
+ getMax,
+ getMin
+ };
}
- const bounds2 = parent.node().getBBox();
- parent.append("text").text(title2).attr("x", bounds2.x + bounds2.width / 2).attr("y", -titleTopMargin).attr("class", cssClass);
- };
- const parseFontSize = (fontSize) => {
- if (typeof fontSize === "number") {
- return [fontSize, fontSize + "px"];
- }
- const fontSizeNumber = parseInt(fontSize, 10);
- if (Number.isNaN(fontSizeNumber)) {
- return [void 0, void 0];
- } else if (fontSize === String(fontSizeNumber)) {
- return [fontSizeNumber, fontSize + "px"];
- } else {
- return [fontSizeNumber, fontSize];
+ });
+
+ // src/setupGraphViewbox.js
+ var d3Attrs, calculateSvgSizeAttrs, configureSvgSize, setupGraphViewbox;
+ var init_setupGraphViewbox = __esm({
+ "src/setupGraphViewbox.js"() {
+ "use strict";
+ init_logger();
+ d3Attrs = /* @__PURE__ */ __name(function(d3Elem, attrs) {
+ for (let attr of attrs) {
+ d3Elem.attr(attr[0], attr[1]);
+ }
+ }, "d3Attrs");
+ calculateSvgSizeAttrs = /* @__PURE__ */ __name(function(height2, width3, useMaxWidth) {
+ let attrs = /* @__PURE__ */ new Map();
+ if (useMaxWidth) {
+ attrs.set("width", "100%");
+ attrs.set("style", `max-width: ${width3}px;`);
+ } else {
+ attrs.set("height", height2);
+ attrs.set("width", width3);
+ }
+ return attrs;
+ }, "calculateSvgSizeAttrs");
+ configureSvgSize = /* @__PURE__ */ __name(function(svgElem, height2, width3, useMaxWidth) {
+ const attrs = calculateSvgSizeAttrs(height2, width3, useMaxWidth);
+ d3Attrs(svgElem, attrs);
+ }, "configureSvgSize");
+ setupGraphViewbox = /* @__PURE__ */ __name(function(graph, svgElem, padding3, useMaxWidth) {
+ const svgBounds = svgElem.node().getBBox();
+ const sWidth = svgBounds.width;
+ const sHeight = svgBounds.height;
+ log.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);
+ let width3 = 0;
+ let height2 = 0;
+ log.info(`Graph bounds: ${width3}x${height2}`, graph);
+ width3 = sWidth + padding3 * 2;
+ height2 = sHeight + padding3 * 2;
+ log.info(`Calculated bounds: ${width3}x${height2}`);
+ configureSvgSize(svgElem, height2, width3, useMaxWidth);
+ const vBox = `${svgBounds.x - padding3} ${svgBounds.y - padding3} ${svgBounds.width + 2 * padding3} ${svgBounds.height + 2 * padding3}`;
+ svgElem.attr("viewBox", vBox);
+ }, "setupGraphViewbox");
}
- };
- const utils = {
- assignWithDepth: assignWithDepth$1,
- wrapLabel,
- calculateTextHeight,
- calculateTextWidth,
- calculateTextDimensions,
- detectInit,
- detectDirective,
- isSubstringInArray,
- interpolateToCurve,
- calcLabelPosition,
- calcCardinalityPosition,
- calcTerminalLabelPosition,
- formatUrl,
- getStylesFromArray,
- generateId: generateId$1,
- random,
- runFunc,
- entityDecode,
- initIdGenerator,
- directiveSanitizer,
- sanitizeCss,
- insertTitle,
- parseFontSize
- };
- var COMMENT = "comm";
- var RULESET = "rule";
- var DECLARATION = "decl";
- var IMPORT = "@import";
- var KEYFRAMES = "@keyframes";
- var abs = Math.abs;
- var from = String.fromCharCode;
- function trim(value) {
- return value.trim();
- }
- function replace(value, pattern, replacement) {
- return value.replace(pattern, replacement);
- }
- function indexof(value, search) {
- return value.indexOf(search);
+ });
+
+ // src/styles.ts
+ var themes, getStyles, addStylesForDiagram, styles_default;
+ var init_styles = __esm({
+ "src/styles.ts"() {
+ "use strict";
+ init_logger();
+ themes = {};
+ getStyles = /* @__PURE__ */ __name((type3, userStyles, options3) => {
+ let diagramStyles = "";
+ if (type3 in themes && themes[type3]) {
+ diagramStyles = themes[type3](options3);
+ } else {
+ log.warn(`No theme found for ${type3}`);
+ }
+ return ` & {
+ font-family: ${options3.fontFamily};
+ font-size: ${options3.fontSize};
+ fill: ${options3.textColor}
}
- function charat(value, index) {
- return value.charCodeAt(index) | 0;
+
+ /* Classes common for multiple diagrams */
+
+ & .error-icon {
+ fill: ${options3.errorBkgColor};
}
- function substr(value, begin, end2) {
- return value.slice(begin, end2);
+ & .error-text {
+ fill: ${options3.errorTextColor};
+ stroke: ${options3.errorTextColor};
}
- function strlen(value) {
- return value.length;
- }
- function sizeof(value) {
- return value.length;
+
+ & .edge-thickness-normal {
+ stroke-width: 1px;
}
- function append(value, array2) {
- return array2.push(value), value;
+ & .edge-thickness-thick {
+ stroke-width: 3.5px
}
- var line = 1;
- var column = 1;
- var length = 0;
- var position$1 = 0;
- var character = 0;
- var characters = "";
- function node(value, root2, parent, type2, props, children2, length2) {
- return { value, root: root2, parent, type: type2, props, children: children2, line, column, length: length2, return: "" };
+ & .edge-pattern-solid {
+ stroke-dasharray: 0;
}
- function char() {
- return character;
+ & .edge-thickness-invisible {
+ stroke-width: 0;
+ fill: none;
}
- function prev() {
- character = position$1 > 0 ? charat(characters, --position$1) : 0;
- if (column--, character === 10)
- column = 1, line--;
- return character;
+ & .edge-pattern-dashed{
+ stroke-dasharray: 3;
}
- function next$1() {
- character = position$1 < length ? charat(characters, position$1++) : 0;
- if (column++, character === 10)
- column = 1, line++;
- return character;
+ .edge-pattern-dotted {
+ stroke-dasharray: 2;
}
- function peek() {
- return charat(characters, position$1);
+
+ & .marker {
+ fill: ${options3.lineColor};
+ stroke: ${options3.lineColor};
}
- function caret() {
- return position$1;
+ & .marker.cross {
+ stroke: ${options3.lineColor};
}
- function slice(begin, end2) {
- return substr(characters, begin, end2);
+
+ & svg {
+ font-family: ${options3.fontFamily};
+ font-size: ${options3.fontSize};
}
- function token(type2) {
- switch (type2) {
- case 0:
- case 9:
- case 10:
- case 13:
- case 32:
- return 5;
- case 33:
- case 43:
- case 44:
- case 47:
- case 62:
- case 64:
- case 126:
- case 59:
- case 123:
- case 125:
- return 4;
- case 58:
- return 3;
- case 34:
- case 39:
- case 40:
- case 91:
- return 2;
- case 41:
- case 93:
- return 1;
+ & p {
+ margin: 0
+ }
+
+ ${diagramStyles}
+
+ ${userStyles}
+`;
+ }, "getStyles");
+ addStylesForDiagram = /* @__PURE__ */ __name((type3, diagramTheme) => {
+ if (diagramTheme !== void 0) {
+ themes[type3] = diagramTheme;
+ }
+ }, "addStylesForDiagram");
+ styles_default = getStyles;
}
- return 0;
- }
- function alloc(value) {
- return line = column = 1, length = strlen(characters = value), position$1 = 0, [];
- }
- function dealloc(value) {
- return characters = "", value;
- }
- function delimit(type2) {
- return trim(slice(position$1 - 1, delimiter(type2 === 91 ? type2 + 2 : type2 === 40 ? type2 + 1 : type2)));
- }
- function whitespace(type2) {
- while (character = peek())
- if (character < 33)
- next$1();
- else
- break;
- return token(type2) > 2 || token(character) > 3 ? "" : " ";
- }
- function escaping(index, count) {
- while (--count && next$1())
- if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97)
- break;
- return slice(index, caret() + (count < 6 && peek() == 32 && next$1() == 32));
- }
- function delimiter(type2) {
- while (next$1())
- switch (character) {
- case type2:
- return position$1;
- case 34:
- case 39:
- if (type2 !== 34 && type2 !== 39)
- delimiter(character);
- break;
- case 40:
- if (type2 === 41)
- delimiter(type2);
- break;
- case 92:
- next$1();
- break;
- }
- return position$1;
- }
- function commenter(type2, index) {
- while (next$1())
- if (type2 + character === 47 + 10)
- break;
- else if (type2 + character === 42 + 42 && peek() === 47)
- break;
- return "/*" + slice(index, position$1 - 1) + "*" + from(type2 === 47 ? type2 : next$1());
- }
- function identifier(index) {
- while (!token(peek()))
- next$1();
- return slice(index, position$1);
- }
- function compile(value) {
- return dealloc(parse$3("", null, null, null, [""], value = alloc(value), 0, [0], value));
- }
- function parse$3(value, root2, parent, rule, rules, rulesets, pseudo, points, declarations) {
- var index = 0;
- var offset = 0;
- var length2 = pseudo;
- var atrule = 0;
- var property2 = 0;
- var previous = 0;
- var variable = 1;
- var scanning = 1;
- var ampersand = 1;
- var character2 = 0;
- var type2 = "";
- var props = rules;
- var children2 = rulesets;
- var reference = rule;
- var characters2 = type2;
- while (scanning)
- switch (previous = character2, character2 = next$1()) {
- case 40:
- if (previous != 108 && charat(characters2, length2 - 1) == 58) {
- if (indexof(characters2 += replace(delimit(character2), "&", "&\f"), "&\f") != -1)
- ampersand = -1;
- break;
+ });
+
+ // src/diagrams/common/commonDb.ts
+ var commonDb_exports = {};
+ __export(commonDb_exports, {
+ clear: () => clear,
+ getAccDescription: () => getAccDescription,
+ getAccTitle: () => getAccTitle,
+ getDiagramTitle: () => getDiagramTitle,
+ setAccDescription: () => setAccDescription,
+ setAccTitle: () => setAccTitle,
+ setDiagramTitle: () => setDiagramTitle
+ });
+ var accTitle, diagramTitle, accDescription, sanitizeText2, clear, setAccTitle, getAccTitle, setAccDescription, getAccDescription, setDiagramTitle, getDiagramTitle;
+ var init_commonDb = __esm({
+ "src/diagrams/common/commonDb.ts"() {
+ "use strict";
+ init_common();
+ init_config();
+ accTitle = "";
+ diagramTitle = "";
+ accDescription = "";
+ sanitizeText2 = /* @__PURE__ */ __name((txt) => sanitizeText(txt, getConfig()), "sanitizeText");
+ clear = /* @__PURE__ */ __name(() => {
+ accTitle = "";
+ accDescription = "";
+ diagramTitle = "";
+ }, "clear");
+ setAccTitle = /* @__PURE__ */ __name((txt) => {
+ accTitle = sanitizeText2(txt).replace(/^\s+/g, "");
+ }, "setAccTitle");
+ getAccTitle = /* @__PURE__ */ __name(() => accTitle, "getAccTitle");
+ setAccDescription = /* @__PURE__ */ __name((txt) => {
+ accDescription = sanitizeText2(txt).replace(/\n\s+/g, "\n");
+ }, "setAccDescription");
+ getAccDescription = /* @__PURE__ */ __name(() => accDescription, "getAccDescription");
+ setDiagramTitle = /* @__PURE__ */ __name((txt) => {
+ diagramTitle = sanitizeText2(txt);
+ }, "setDiagramTitle");
+ getDiagramTitle = /* @__PURE__ */ __name(() => diagramTitle, "getDiagramTitle");
+ }
+ });
+
+ // src/diagram-api/diagramAPI.ts
+ var log2, setLogLevel2, getConfig2, setConfig2, defaultConfig2, sanitizeText3, setupGraphViewbox2, getCommonDb, diagrams, registerDiagram, getDiagram, DiagramNotFoundError;
+ var init_diagramAPI = __esm({
+ "src/diagram-api/diagramAPI.ts"() {
+ "use strict";
+ init_detectType();
+ init_logger();
+ init_config();
+ init_common();
+ init_setupGraphViewbox();
+ init_styles();
+ init_commonDb();
+ log2 = log;
+ setLogLevel2 = setLogLevel;
+ getConfig2 = getConfig;
+ setConfig2 = setConfig;
+ defaultConfig2 = defaultConfig;
+ sanitizeText3 = /* @__PURE__ */ __name((text2) => sanitizeText(text2, getConfig2()), "sanitizeText");
+ setupGraphViewbox2 = setupGraphViewbox;
+ getCommonDb = /* @__PURE__ */ __name(() => {
+ return commonDb_exports;
+ }, "getCommonDb");
+ diagrams = {};
+ registerDiagram = /* @__PURE__ */ __name((id27, diagram24, detector25) => {
+ if (diagrams[id27]) {
+ log2.warn(`Diagram with id ${id27} already registered. Overwriting.`);
+ }
+ diagrams[id27] = diagram24;
+ if (detector25) {
+ addDetector(id27, detector25);
+ }
+ addStylesForDiagram(id27, diagram24.styles);
+ diagram24.injectUtils?.(
+ log2,
+ setLogLevel2,
+ getConfig2,
+ sanitizeText3,
+ setupGraphViewbox2,
+ getCommonDb(),
+ () => {
}
- case 34:
- case 39:
- case 91:
- characters2 += delimit(character2);
- break;
- case 9:
- case 10:
- case 13:
- case 32:
- characters2 += whitespace(previous);
- break;
- case 92:
- characters2 += escaping(caret() - 1, 7);
- continue;
- case 47:
- switch (peek()) {
- case 42:
- case 47:
- append(comment(commenter(next$1(), caret()), root2, parent), declarations);
- break;
- default:
- characters2 += "/";
+ );
+ }, "registerDiagram");
+ getDiagram = /* @__PURE__ */ __name((name) => {
+ if (name in diagrams) {
+ return diagrams[name];
+ }
+ throw new DiagramNotFoundError(name);
+ }, "getDiagram");
+ DiagramNotFoundError = class extends Error {
+ static {
+ __name(this, "DiagramNotFoundError");
+ }
+ constructor(name) {
+ super(`Diagram ${name} not found.`);
+ }
+ };
+ }
+ });
+
+ // src/diagrams/c4/c4Db.js
+ var c4ShapeArray, boundaryParseStack, currentBoundaryParse, parentBoundaryParse, boundaries, rels, title, wrapEnabled, c4ShapeInRow, c4BoundaryInRow, c4Type, getC4Type, setC4Type, addRel, addPersonOrSystem, addContainer, addComponent, addPersonOrSystemBoundary, addContainerBoundary, addDeploymentNode, popBoundaryParseStack, updateElStyle, updateRelStyle, updateLayoutConfig, getC4ShapeInRow, getC4BoundaryInRow, getCurrentBoundaryParse, getParentBoundaryParse, getC4ShapeArray, getC4Shape, getC4ShapeKeys, getBoundaries, getBoundarys, getRels, getTitle, setWrap, autoWrap, clear2, LINETYPE, ARROWTYPE, PLACEMENT, setTitle, c4Db_default;
+ var init_c4Db = __esm({
+ "src/diagrams/c4/c4Db.js"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ init_commonDb();
+ c4ShapeArray = [];
+ boundaryParseStack = [""];
+ currentBoundaryParse = "global";
+ parentBoundaryParse = "";
+ boundaries = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+ ];
+ rels = [];
+ title = "";
+ wrapEnabled = false;
+ c4ShapeInRow = 4;
+ c4BoundaryInRow = 2;
+ getC4Type = /* @__PURE__ */ __name(function() {
+ return c4Type;
+ }, "getC4Type");
+ setC4Type = /* @__PURE__ */ __name(function(c4TypeParam) {
+ let sanitizedText = sanitizeText(c4TypeParam, getConfig2());
+ c4Type = sanitizedText;
+ }, "setC4Type");
+ addRel = /* @__PURE__ */ __name(function(type3, from2, to, label, techn, descr, sprite, tags2, link3) {
+ if (type3 === void 0 || type3 === null || from2 === void 0 || from2 === null || to === void 0 || to === null || label === void 0 || label === null) {
+ return;
+ }
+ let rel2 = {};
+ const old = rels.find((rel3) => rel3.from === from2 && rel3.to === to);
+ if (old) {
+ rel2 = old;
+ } else {
+ rels.push(rel2);
+ }
+ rel2.type = type3;
+ rel2.from = from2;
+ rel2.to = to;
+ rel2.label = { text: label };
+ if (techn === void 0 || techn === null) {
+ rel2.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value2] = Object.entries(techn)[0];
+ rel2[key] = { text: value2 };
+ } else {
+ rel2.techn = { text: techn };
}
- break;
- case 123 * variable:
- points[index++] = strlen(characters2) * ampersand;
- case 125 * variable:
- case 59:
- case 0:
- switch (character2) {
- case 0:
- case 125:
- scanning = 0;
- case 59 + offset:
- if (property2 > 0 && strlen(characters2) - length2)
- append(property2 > 32 ? declaration(characters2 + ";", rule, parent, length2 - 1) : declaration(replace(characters2, " ", "") + ";", rule, parent, length2 - 2), declarations);
- break;
- case 59:
- characters2 += ";";
- default:
- append(reference = ruleset(characters2, root2, parent, index, offset, rules, points, type2, props = [], children2 = [], length2), rulesets);
- if (character2 === 123)
- if (offset === 0)
- parse$3(characters2, root2, reference, reference, props, rulesets, length2, points, children2);
- else
- switch (atrule === 99 && charat(characters2, 3) === 110 ? 100 : atrule) {
- case 100:
- case 109:
- case 115:
- parse$3(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type2, rules, props = [], length2), children2), rules, children2, length2, points, rule ? props : children2);
- break;
- default:
- parse$3(characters2, reference, reference, reference, [""], children2, 0, points, children2);
- }
+ }
+ if (descr === void 0 || descr === null) {
+ rel2.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value2] = Object.entries(descr)[0];
+ rel2[key] = { text: value2 };
+ } else {
+ rel2.descr = { text: descr };
}
- index = offset = property2 = 0, variable = ampersand = 1, type2 = characters2 = "", length2 = pseudo;
- break;
- case 58:
- length2 = 1 + strlen(characters2), property2 = previous;
- default:
- if (variable < 1) {
- if (character2 == 123)
- --variable;
- else if (character2 == 125 && variable++ == 0 && prev() == 125)
- continue;
+ }
+ if (typeof sprite === "object") {
+ let [key, value2] = Object.entries(sprite)[0];
+ rel2[key] = value2;
+ } else {
+ rel2.sprite = sprite;
+ }
+ if (typeof tags2 === "object") {
+ let [key, value2] = Object.entries(tags2)[0];
+ rel2[key] = value2;
+ } else {
+ rel2.tags = tags2;
+ }
+ if (typeof link3 === "object") {
+ let [key, value2] = Object.entries(link3)[0];
+ rel2[key] = value2;
+ } else {
+ rel2.link = link3;
+ }
+ rel2.wrap = autoWrap();
+ }, "addRel");
+ addPersonOrSystem = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, descr, sprite, tags2, link3) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let personOrSystem = {};
+ const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);
+ if (old && alias === old.alias) {
+ personOrSystem = old;
+ } else {
+ personOrSystem.alias = alias;
+ c4ShapeArray.push(personOrSystem);
+ }
+ if (label === void 0 || label === null) {
+ personOrSystem.label = { text: "" };
+ } else {
+ personOrSystem.label = { text: label };
+ }
+ if (descr === void 0 || descr === null) {
+ personOrSystem.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value2] = Object.entries(descr)[0];
+ personOrSystem[key] = { text: value2 };
+ } else {
+ personOrSystem.descr = { text: descr };
}
- switch (characters2 += from(character2), character2 * variable) {
- case 38:
- ampersand = offset > 0 ? 1 : (characters2 += "\f", -1);
- break;
- case 44:
- points[index++] = (strlen(characters2) - 1) * ampersand, ampersand = 1;
- break;
- case 64:
- if (peek() === 45)
- characters2 += delimit(next$1());
- atrule = peek(), offset = length2 = strlen(type2 = characters2 += identifier(caret())), character2++;
- break;
- case 45:
- if (previous === 45 && strlen(characters2) == 2)
- variable = 0;
+ }
+ if (typeof sprite === "object") {
+ let [key, value2] = Object.entries(sprite)[0];
+ personOrSystem[key] = value2;
+ } else {
+ personOrSystem.sprite = sprite;
+ }
+ if (typeof tags2 === "object") {
+ let [key, value2] = Object.entries(tags2)[0];
+ personOrSystem[key] = value2;
+ } else {
+ personOrSystem.tags = tags2;
+ }
+ if (typeof link3 === "object") {
+ let [key, value2] = Object.entries(link3)[0];
+ personOrSystem[key] = value2;
+ } else {
+ personOrSystem.link = link3;
+ }
+ personOrSystem.typeC4Shape = { text: typeC4Shape };
+ personOrSystem.parentBoundary = currentBoundaryParse;
+ personOrSystem.wrap = autoWrap();
+ }, "addPersonOrSystem");
+ addContainer = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags2, link3) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let container2 = {};
+ const old = c4ShapeArray.find((container3) => container3.alias === alias);
+ if (old && alias === old.alias) {
+ container2 = old;
+ } else {
+ container2.alias = alias;
+ c4ShapeArray.push(container2);
+ }
+ if (label === void 0 || label === null) {
+ container2.label = { text: "" };
+ } else {
+ container2.label = { text: label };
+ }
+ if (techn === void 0 || techn === null) {
+ container2.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value2] = Object.entries(techn)[0];
+ container2[key] = { text: value2 };
+ } else {
+ container2.techn = { text: techn };
}
- }
- return rulesets;
- }
- function ruleset(value, root2, parent, index, offset, rules, points, type2, props, children2, length2) {
- var post = offset - 1;
- var rule = offset === 0 ? rules : [""];
- var size2 = sizeof(rule);
- for (var i2 = 0, j = 0, k = 0; i2 < index; ++i2)
- for (var x2 = 0, y2 = substr(value, post + 1, post = abs(j = points[i2])), z = value; x2 < size2; ++x2)
- if (z = trim(j > 0 ? rule[x2] + " " + y2 : replace(y2, /&\f/g, rule[x2])))
- props[k++] = z;
- return node(value, root2, parent, offset === 0 ? RULESET : type2, props, children2, length2);
- }
- function comment(value, root2, parent) {
- return node(value, root2, parent, COMMENT, from(char()), substr(value, 2, -2), 0);
- }
- function declaration(value, root2, parent, length2) {
- return node(value, root2, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2);
+ }
+ if (descr === void 0 || descr === null) {
+ container2.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value2] = Object.entries(descr)[0];
+ container2[key] = { text: value2 };
+ } else {
+ container2.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value2] = Object.entries(sprite)[0];
+ container2[key] = value2;
+ } else {
+ container2.sprite = sprite;
+ }
+ if (typeof tags2 === "object") {
+ let [key, value2] = Object.entries(tags2)[0];
+ container2[key] = value2;
+ } else {
+ container2.tags = tags2;
+ }
+ if (typeof link3 === "object") {
+ let [key, value2] = Object.entries(link3)[0];
+ container2[key] = value2;
+ } else {
+ container2.link = link3;
+ }
+ container2.wrap = autoWrap();
+ container2.typeC4Shape = { text: typeC4Shape };
+ container2.parentBoundary = currentBoundaryParse;
+ }, "addContainer");
+ addComponent = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags2, link3) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let component2 = {};
+ const old = c4ShapeArray.find((component3) => component3.alias === alias);
+ if (old && alias === old.alias) {
+ component2 = old;
+ } else {
+ component2.alias = alias;
+ c4ShapeArray.push(component2);
+ }
+ if (label === void 0 || label === null) {
+ component2.label = { text: "" };
+ } else {
+ component2.label = { text: label };
+ }
+ if (techn === void 0 || techn === null) {
+ component2.techn = { text: "" };
+ } else {
+ if (typeof techn === "object") {
+ let [key, value2] = Object.entries(techn)[0];
+ component2[key] = { text: value2 };
+ } else {
+ component2.techn = { text: techn };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ component2.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value2] = Object.entries(descr)[0];
+ component2[key] = { text: value2 };
+ } else {
+ component2.descr = { text: descr };
+ }
+ }
+ if (typeof sprite === "object") {
+ let [key, value2] = Object.entries(sprite)[0];
+ component2[key] = value2;
+ } else {
+ component2.sprite = sprite;
+ }
+ if (typeof tags2 === "object") {
+ let [key, value2] = Object.entries(tags2)[0];
+ component2[key] = value2;
+ } else {
+ component2.tags = tags2;
+ }
+ if (typeof link3 === "object") {
+ let [key, value2] = Object.entries(link3)[0];
+ component2[key] = value2;
+ } else {
+ component2.link = link3;
+ }
+ component2.wrap = autoWrap();
+ component2.typeC4Shape = { text: typeC4Shape };
+ component2.parentBoundary = currentBoundaryParse;
+ }, "addComponent");
+ addPersonOrSystemBoundary = /* @__PURE__ */ __name(function(alias, label, type3, tags2, link3) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundaries.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundaries.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type3 === void 0 || type3 === null) {
+ boundary.type = { text: "system" };
+ } else {
+ if (typeof type3 === "object") {
+ let [key, value2] = Object.entries(type3)[0];
+ boundary[key] = { text: value2 };
+ } else {
+ boundary.type = { text: type3 };
+ }
+ }
+ if (typeof tags2 === "object") {
+ let [key, value2] = Object.entries(tags2)[0];
+ boundary[key] = value2;
+ } else {
+ boundary.tags = tags2;
+ }
+ if (typeof link3 === "object") {
+ let [key, value2] = Object.entries(link3)[0];
+ boundary[key] = value2;
+ } else {
+ boundary.link = link3;
+ }
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+ }, "addPersonOrSystemBoundary");
+ addContainerBoundary = /* @__PURE__ */ __name(function(alias, label, type3, tags2, link3) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundaries.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundaries.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type3 === void 0 || type3 === null) {
+ boundary.type = { text: "container" };
+ } else {
+ if (typeof type3 === "object") {
+ let [key, value2] = Object.entries(type3)[0];
+ boundary[key] = { text: value2 };
+ } else {
+ boundary.type = { text: type3 };
+ }
+ }
+ if (typeof tags2 === "object") {
+ let [key, value2] = Object.entries(tags2)[0];
+ boundary[key] = value2;
+ } else {
+ boundary.tags = tags2;
+ }
+ if (typeof link3 === "object") {
+ let [key, value2] = Object.entries(link3)[0];
+ boundary[key] = value2;
+ } else {
+ boundary.link = link3;
+ }
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+ }, "addContainerBoundary");
+ addDeploymentNode = /* @__PURE__ */ __name(function(nodeType2, alias, label, type3, descr, sprite, tags2, link3) {
+ if (alias === null || label === null) {
+ return;
+ }
+ let boundary = {};
+ const old = boundaries.find((boundary2) => boundary2.alias === alias);
+ if (old && alias === old.alias) {
+ boundary = old;
+ } else {
+ boundary.alias = alias;
+ boundaries.push(boundary);
+ }
+ if (label === void 0 || label === null) {
+ boundary.label = { text: "" };
+ } else {
+ boundary.label = { text: label };
+ }
+ if (type3 === void 0 || type3 === null) {
+ boundary.type = { text: "node" };
+ } else {
+ if (typeof type3 === "object") {
+ let [key, value2] = Object.entries(type3)[0];
+ boundary[key] = { text: value2 };
+ } else {
+ boundary.type = { text: type3 };
+ }
+ }
+ if (descr === void 0 || descr === null) {
+ boundary.descr = { text: "" };
+ } else {
+ if (typeof descr === "object") {
+ let [key, value2] = Object.entries(descr)[0];
+ boundary[key] = { text: value2 };
+ } else {
+ boundary.descr = { text: descr };
+ }
+ }
+ if (typeof tags2 === "object") {
+ let [key, value2] = Object.entries(tags2)[0];
+ boundary[key] = value2;
+ } else {
+ boundary.tags = tags2;
+ }
+ if (typeof link3 === "object") {
+ let [key, value2] = Object.entries(link3)[0];
+ boundary[key] = value2;
+ } else {
+ boundary.link = link3;
+ }
+ boundary.nodeType = nodeType2;
+ boundary.parentBoundary = currentBoundaryParse;
+ boundary.wrap = autoWrap();
+ parentBoundaryParse = currentBoundaryParse;
+ currentBoundaryParse = alias;
+ boundaryParseStack.push(parentBoundaryParse);
+ }, "addDeploymentNode");
+ popBoundaryParseStack = /* @__PURE__ */ __name(function() {
+ currentBoundaryParse = parentBoundaryParse;
+ boundaryParseStack.pop();
+ parentBoundaryParse = boundaryParseStack.pop();
+ boundaryParseStack.push(parentBoundaryParse);
+ }, "popBoundaryParseStack");
+ updateElStyle = /* @__PURE__ */ __name(function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {
+ let old = c4ShapeArray.find((element3) => element3.alias === elementName);
+ if (old === void 0) {
+ old = boundaries.find((element3) => element3.alias === elementName);
+ if (old === void 0) {
+ return;
+ }
+ }
+ if (bgColor !== void 0 && bgColor !== null) {
+ if (typeof bgColor === "object") {
+ let [key, value2] = Object.entries(bgColor)[0];
+ old[key] = value2;
+ } else {
+ old.bgColor = bgColor;
+ }
+ }
+ if (fontColor !== void 0 && fontColor !== null) {
+ if (typeof fontColor === "object") {
+ let [key, value2] = Object.entries(fontColor)[0];
+ old[key] = value2;
+ } else {
+ old.fontColor = fontColor;
+ }
+ }
+ if (borderColor !== void 0 && borderColor !== null) {
+ if (typeof borderColor === "object") {
+ let [key, value2] = Object.entries(borderColor)[0];
+ old[key] = value2;
+ } else {
+ old.borderColor = borderColor;
+ }
+ }
+ if (shadowing !== void 0 && shadowing !== null) {
+ if (typeof shadowing === "object") {
+ let [key, value2] = Object.entries(shadowing)[0];
+ old[key] = value2;
+ } else {
+ old.shadowing = shadowing;
+ }
+ }
+ if (shape !== void 0 && shape !== null) {
+ if (typeof shape === "object") {
+ let [key, value2] = Object.entries(shape)[0];
+ old[key] = value2;
+ } else {
+ old.shape = shape;
+ }
+ }
+ if (sprite !== void 0 && sprite !== null) {
+ if (typeof sprite === "object") {
+ let [key, value2] = Object.entries(sprite)[0];
+ old[key] = value2;
+ } else {
+ old.sprite = sprite;
+ }
+ }
+ if (techn !== void 0 && techn !== null) {
+ if (typeof techn === "object") {
+ let [key, value2] = Object.entries(techn)[0];
+ old[key] = value2;
+ } else {
+ old.techn = techn;
+ }
+ }
+ if (legendText !== void 0 && legendText !== null) {
+ if (typeof legendText === "object") {
+ let [key, value2] = Object.entries(legendText)[0];
+ old[key] = value2;
+ } else {
+ old.legendText = legendText;
+ }
+ }
+ if (legendSprite !== void 0 && legendSprite !== null) {
+ if (typeof legendSprite === "object") {
+ let [key, value2] = Object.entries(legendSprite)[0];
+ old[key] = value2;
+ } else {
+ old.legendSprite = legendSprite;
+ }
+ }
+ }, "updateElStyle");
+ updateRelStyle = /* @__PURE__ */ __name(function(typeC4Shape, from2, to, textColor, lineColor, offsetX, offsetY) {
+ const old = rels.find((rel2) => rel2.from === from2 && rel2.to === to);
+ if (old === void 0) {
+ return;
+ }
+ if (textColor !== void 0 && textColor !== null) {
+ if (typeof textColor === "object") {
+ let [key, value2] = Object.entries(textColor)[0];
+ old[key] = value2;
+ } else {
+ old.textColor = textColor;
+ }
+ }
+ if (lineColor !== void 0 && lineColor !== null) {
+ if (typeof lineColor === "object") {
+ let [key, value2] = Object.entries(lineColor)[0];
+ old[key] = value2;
+ } else {
+ old.lineColor = lineColor;
+ }
+ }
+ if (offsetX !== void 0 && offsetX !== null) {
+ if (typeof offsetX === "object") {
+ let [key, value2] = Object.entries(offsetX)[0];
+ old[key] = parseInt(value2);
+ } else {
+ old.offsetX = parseInt(offsetX);
+ }
+ }
+ if (offsetY !== void 0 && offsetY !== null) {
+ if (typeof offsetY === "object") {
+ let [key, value2] = Object.entries(offsetY)[0];
+ old[key] = parseInt(value2);
+ } else {
+ old.offsetY = parseInt(offsetY);
+ }
+ }
+ }, "updateRelStyle");
+ updateLayoutConfig = /* @__PURE__ */ __name(function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {
+ let c4ShapeInRowValue = c4ShapeInRow;
+ let c4BoundaryInRowValue = c4BoundaryInRow;
+ if (typeof c4ShapeInRowParam === "object") {
+ const value2 = Object.values(c4ShapeInRowParam)[0];
+ c4ShapeInRowValue = parseInt(value2);
+ } else {
+ c4ShapeInRowValue = parseInt(c4ShapeInRowParam);
+ }
+ if (typeof c4BoundaryInRowParam === "object") {
+ const value2 = Object.values(c4BoundaryInRowParam)[0];
+ c4BoundaryInRowValue = parseInt(value2);
+ } else {
+ c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);
+ }
+ if (c4ShapeInRowValue >= 1) {
+ c4ShapeInRow = c4ShapeInRowValue;
+ }
+ if (c4BoundaryInRowValue >= 1) {
+ c4BoundaryInRow = c4BoundaryInRowValue;
+ }
+ }, "updateLayoutConfig");
+ getC4ShapeInRow = /* @__PURE__ */ __name(function() {
+ return c4ShapeInRow;
+ }, "getC4ShapeInRow");
+ getC4BoundaryInRow = /* @__PURE__ */ __name(function() {
+ return c4BoundaryInRow;
+ }, "getC4BoundaryInRow");
+ getCurrentBoundaryParse = /* @__PURE__ */ __name(function() {
+ return currentBoundaryParse;
+ }, "getCurrentBoundaryParse");
+ getParentBoundaryParse = /* @__PURE__ */ __name(function() {
+ return parentBoundaryParse;
+ }, "getParentBoundaryParse");
+ getC4ShapeArray = /* @__PURE__ */ __name(function(parentBoundary) {
+ if (parentBoundary === void 0 || parentBoundary === null) {
+ return c4ShapeArray;
+ } else {
+ return c4ShapeArray.filter((personOrSystem) => {
+ return personOrSystem.parentBoundary === parentBoundary;
+ });
+ }
+ }, "getC4ShapeArray");
+ getC4Shape = /* @__PURE__ */ __name(function(alias) {
+ return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);
+ }, "getC4Shape");
+ getC4ShapeKeys = /* @__PURE__ */ __name(function(parentBoundary) {
+ return Object.keys(getC4ShapeArray(parentBoundary));
+ }, "getC4ShapeKeys");
+ getBoundaries = /* @__PURE__ */ __name(function(parentBoundary) {
+ if (parentBoundary === void 0 || parentBoundary === null) {
+ return boundaries;
+ } else {
+ return boundaries.filter((boundary) => boundary.parentBoundary === parentBoundary);
+ }
+ }, "getBoundaries");
+ getBoundarys = getBoundaries;
+ getRels = /* @__PURE__ */ __name(function() {
+ return rels;
+ }, "getRels");
+ getTitle = /* @__PURE__ */ __name(function() {
+ return title;
+ }, "getTitle");
+ setWrap = /* @__PURE__ */ __name(function(wrapSetting) {
+ wrapEnabled = wrapSetting;
+ }, "setWrap");
+ autoWrap = /* @__PURE__ */ __name(function() {
+ return wrapEnabled;
+ }, "autoWrap");
+ clear2 = /* @__PURE__ */ __name(function() {
+ c4ShapeArray = [];
+ boundaries = [
+ {
+ alias: "global",
+ label: { text: "global" },
+ type: { text: "global" },
+ tags: null,
+ link: null,
+ parentBoundary: ""
+ }
+ ];
+ parentBoundaryParse = "";
+ currentBoundaryParse = "global";
+ boundaryParseStack = [""];
+ rels = [];
+ boundaryParseStack = [""];
+ title = "";
+ wrapEnabled = false;
+ c4ShapeInRow = 4;
+ c4BoundaryInRow = 2;
+ }, "clear");
+ LINETYPE = {
+ SOLID: 0,
+ DOTTED: 1,
+ NOTE: 2,
+ SOLID_CROSS: 3,
+ DOTTED_CROSS: 4,
+ SOLID_OPEN: 5,
+ DOTTED_OPEN: 6,
+ LOOP_START: 10,
+ LOOP_END: 11,
+ ALT_START: 12,
+ ALT_ELSE: 13,
+ ALT_END: 14,
+ OPT_START: 15,
+ OPT_END: 16,
+ ACTIVE_START: 17,
+ ACTIVE_END: 18,
+ PAR_START: 19,
+ PAR_AND: 20,
+ PAR_END: 21,
+ RECT_START: 22,
+ RECT_END: 23,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25
+ };
+ ARROWTYPE = {
+ FILLED: 0,
+ OPEN: 1
+ };
+ PLACEMENT = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+ };
+ setTitle = /* @__PURE__ */ __name(function(txt) {
+ let sanitizedText = sanitizeText(txt, getConfig2());
+ title = sanitizedText;
+ }, "setTitle");
+ c4Db_default = {
+ addPersonOrSystem,
+ addPersonOrSystemBoundary,
+ addContainer,
+ addContainerBoundary,
+ addComponent,
+ addDeploymentNode,
+ popBoundaryParseStack,
+ addRel,
+ updateElStyle,
+ updateRelStyle,
+ updateLayoutConfig,
+ autoWrap,
+ setWrap,
+ getC4ShapeArray,
+ getC4Shape,
+ getC4ShapeKeys,
+ getBoundaries,
+ getBoundarys,
+ getCurrentBoundaryParse,
+ getParentBoundaryParse,
+ getRels,
+ getTitle,
+ getC4Type,
+ getC4ShapeInRow,
+ getC4BoundaryInRow,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().c4, "getConfig"),
+ clear: clear2,
+ LINETYPE,
+ ARROWTYPE,
+ PLACEMENT,
+ setTitle,
+ setC4Type
+ // apply,
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js
+ function ascending(a2, b2) {
+ return a2 == null || b2 == null ? NaN : a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
}
- function serialize(children2, callback) {
- var output = "";
- var length2 = sizeof(children2);
- for (var i2 = 0; i2 < length2; i2++)
- output += callback(children2[i2], i2, children2, callback) || "";
- return output;
- }
- function stringify(element, index, children2, callback) {
- switch (element.type) {
- case IMPORT:
- case DECLARATION:
- return element.return = element.return || element.value;
- case COMMENT:
- return "";
- case KEYFRAMES:
- return element.return = element.value + "{" + serialize(element.children, callback) + "}";
- case RULESET:
- element.value = element.props.join(",");
+ var init_ascending = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js"() {
+ "use strict";
+ __name(ascending, "ascending");
}
- return strlen(children2 = serialize(element.children, callback)) ? element.return = element.value + "{" + children2 + "}" : "";
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js
+ function descending(a2, b2) {
+ return a2 == null || b2 == null ? NaN : b2 < a2 ? -1 : b2 > a2 ? 1 : b2 >= a2 ? 0 : NaN;
}
- const version$1 = "10.2.0-rc.2";
- const id$h = "c4";
- const detector$h = (txt) => {
- return txt.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/) !== null;
- };
- const loader$h = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => c4Diagram);
- return { id: id$h, diagram: diagram2 };
- };
- const plugin$h = {
- id: id$h,
- detector: detector$h,
- loader: loader$h
- };
- const c4 = plugin$h;
- const id$g = "flowchart";
- const detector$g = (txt, config2) => {
- var _a, _b;
- if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
- return false;
+ var init_descending = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js"() {
+ "use strict";
+ __name(descending, "descending");
}
- return txt.match(/^\s*graph/) !== null;
- };
- const loader$g = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => flowDiagram);
- return { id: id$g, diagram: diagram2 };
- };
- const plugin$g = {
- id: id$g,
- detector: detector$g,
- loader: loader$g
- };
- const flowchart = plugin$g;
- const id$f = "flowchart-v2";
- const detector$f = (txt, config2) => {
- var _a, _b, _c;
- if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-d3" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
- return false;
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js
+ function bisector(f3) {
+ let compare1, compare2, delta;
+ if (f3.length !== 2) {
+ compare1 = ascending;
+ compare2 = /* @__PURE__ */ __name((d2, x5) => ascending(f3(d2), x5), "compare2");
+ delta = /* @__PURE__ */ __name((d2, x5) => f3(d2) - x5, "delta");
+ } else {
+ compare1 = f3 === ascending || f3 === descending ? f3 : zero;
+ compare2 = f3;
+ delta = f3;
}
- if (txt.match(/^\s*graph/) !== null && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === "dagre-wrapper") {
- return true;
+ function left3(a2, x5, lo = 0, hi = a2.length) {
+ if (lo < hi) {
+ if (compare1(x5, x5) !== 0) return hi;
+ do {
+ const mid = lo + hi >>> 1;
+ if (compare2(a2[mid], x5) < 0) lo = mid + 1;
+ else hi = mid;
+ } while (lo < hi);
+ }
+ return lo;
}
- return txt.match(/^\s*flowchart/) !== null;
- };
- const loader$f = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => flowDiagramV2);
- return { id: id$f, diagram: diagram2 };
- };
- const plugin$f = {
- id: id$f,
- detector: detector$f,
- loader: loader$f
- };
- const flowchartV2 = plugin$f;
- const id$e = "er";
- const detector$e = (txt) => {
- return txt.match(/^\s*erDiagram/) !== null;
- };
- const loader$e = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => erDiagram);
- return { id: id$e, diagram: diagram2 };
- };
- const plugin$e = {
- id: id$e,
- detector: detector$e,
- loader: loader$e
- };
- const er = plugin$e;
- const id$d = "gitGraph";
- const detector$d = (txt) => {
- return txt.match(/^\s*gitGraph/) !== null;
- };
- const loader$d = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => gitGraphDiagram);
- return { id: id$d, diagram: diagram2 };
- };
- const plugin$d = {
- id: id$d,
- detector: detector$d,
- loader: loader$d
- };
- const git = plugin$d;
- const id$c = "gantt";
- const detector$c = (txt) => {
- return txt.match(/^\s*gantt/) !== null;
- };
- const loader$c = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => ganttDiagram);
- return { id: id$c, diagram: diagram2 };
- };
- const plugin$c = {
- id: id$c,
- detector: detector$c,
- loader: loader$c
- };
- const gantt = plugin$c;
- const id$b = "info";
- const detector$b = (txt) => {
- return txt.match(/^\s*info/) !== null;
- };
- const loader$b = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => infoDiagram);
- return { id: id$b, diagram: diagram2 };
- };
- const plugin$b = {
- id: id$b,
- detector: detector$b,
- loader: loader$b
- };
- const info$1 = plugin$b;
- const id$a = "pie";
- const detector$a = (txt) => {
- return txt.match(/^\s*pie/) !== null;
- };
- const loader$a = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => pieDiagram);
- return { id: id$a, diagram: diagram2 };
- };
- const plugin$a = {
- id: id$a,
- detector: detector$a,
- loader: loader$a
- };
- const pie = plugin$a;
- const id$9 = "requirement";
- const detector$9 = (txt) => {
- return txt.match(/^\s*requirement(Diagram)?/) !== null;
- };
- const loader$9 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => requirementDiagram);
- return { id: id$9, diagram: diagram2 };
- };
- const plugin$9 = {
- id: id$9,
- detector: detector$9,
- loader: loader$9
- };
- const requirement = plugin$9;
- const id$8 = "sequence";
- const detector$8 = (txt) => {
- return txt.match(/^\s*sequenceDiagram/) !== null;
- };
- const loader$8 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => sequenceDiagram);
- return { id: id$8, diagram: diagram2 };
- };
- const plugin$8 = {
- id: id$8,
- detector: detector$8,
- loader: loader$8
- };
- const sequence = plugin$8;
- const id$7 = "class";
- const detector$7 = (txt, config2) => {
- var _a;
- if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
- return false;
+ __name(left3, "left");
+ function right3(a2, x5, lo = 0, hi = a2.length) {
+ if (lo < hi) {
+ if (compare1(x5, x5) !== 0) return hi;
+ do {
+ const mid = lo + hi >>> 1;
+ if (compare2(a2[mid], x5) <= 0) lo = mid + 1;
+ else hi = mid;
+ } while (lo < hi);
+ }
+ return lo;
}
- return txt.match(/^\s*classDiagram/) !== null;
- };
- const loader$7 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => classDiagram);
- return { id: id$7, diagram: diagram2 };
- };
- const plugin$7 = {
- id: id$7,
- detector: detector$7,
- loader: loader$7
- };
- const classDiagram$1 = plugin$7;
- const id$6 = "classDiagram";
- const detector$6 = (txt, config2) => {
- var _a;
- if (txt.match(/^\s*classDiagram/) !== null && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
- return true;
+ __name(right3, "right");
+ function center4(a2, x5, lo = 0, hi = a2.length) {
+ const i2 = left3(a2, x5, lo, hi - 1);
+ return i2 > lo && delta(a2[i2 - 1], x5) > -delta(a2[i2], x5) ? i2 - 1 : i2;
}
- return txt.match(/^\s*classDiagram-v2/) !== null;
- };
- const loader$6 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => classDiagramV2);
- return { id: id$6, diagram: diagram2 };
- };
- const plugin$6 = {
- id: id$6,
- detector: detector$6,
- loader: loader$6
- };
- const classDiagramV2$1 = plugin$6;
- const id$5 = "state";
- const detector$5 = (txt, config2) => {
- var _a;
- if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
- return false;
+ __name(center4, "center");
+ return { left: left3, center: center4, right: right3 };
+ }
+ function zero() {
+ return 0;
+ }
+ var init_bisector = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js"() {
+ "use strict";
+ init_ascending();
+ init_descending();
+ __name(bisector, "bisector");
+ __name(zero, "zero");
}
- return txt.match(/^\s*stateDiagram/) !== null;
- };
- const loader$5 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => stateDiagram);
- return { id: id$5, diagram: diagram2 };
- };
- const plugin$5 = {
- id: id$5,
- detector: detector$5,
- loader: loader$5
- };
- const state = plugin$5;
- const id$4 = "stateDiagram";
- const detector$4 = (text2, config2) => {
- var _a, _b;
- if (text2.match(/^\s*stateDiagram-v2/) !== null) {
- return true;
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js
+ function number(x5) {
+ return x5 === null ? NaN : +x5;
+ }
+ var init_number = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js"() {
+ "use strict";
+ __name(number, "number");
}
- if (text2.match(/^\s*stateDiagram/) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
- return true;
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js
+ var ascendingBisect, bisectRight, bisectLeft, bisectCenter, bisect_default;
+ var init_bisect = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js"() {
+ "use strict";
+ init_ascending();
+ init_bisector();
+ init_number();
+ ascendingBisect = bisector(ascending);
+ bisectRight = ascendingBisect.right;
+ bisectLeft = ascendingBisect.left;
+ bisectCenter = bisector(number).center;
+ bisect_default = bisectRight;
}
- if (text2.match(/^\s*stateDiagram/) && ((_b = config2 == null ? void 0 : config2.state) == null ? void 0 : _b.defaultRenderer) === "dagre-wrapper") {
- return true;
+ });
+
+ // ../../node_modules/.pnpm/internmap@2.0.3/node_modules/internmap/src/index.js
+ function intern_get({ _intern, _key }, value2) {
+ const key = _key(value2);
+ return _intern.has(key) ? _intern.get(key) : value2;
+ }
+ function intern_set({ _intern, _key }, value2) {
+ const key = _key(value2);
+ if (_intern.has(key)) return _intern.get(key);
+ _intern.set(key, value2);
+ return value2;
+ }
+ function intern_delete({ _intern, _key }, value2) {
+ const key = _key(value2);
+ if (_intern.has(key)) {
+ value2 = _intern.get(key);
+ _intern.delete(key);
}
- return false;
- };
- const loader$4 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => stateDiagramV2);
- return { id: id$4, diagram: diagram2 };
- };
- const plugin$4 = {
- id: id$4,
- detector: detector$4,
- loader: loader$4
- };
- const stateV2 = plugin$4;
- const id$3 = "journey";
- const detector$3 = (txt) => {
- return txt.match(/^\s*journey/) !== null;
- };
- const loader$3 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => journeyDiagram);
- return { id: id$3, diagram: diagram2 };
- };
- const plugin$3 = {
- id: id$3,
- detector: detector$3,
- loader: loader$3
- };
- const journey = plugin$3;
- const getStyles$f = () => ``;
- const styles$9 = getStyles$f;
- const setConf$a = function() {
- };
- const draw$i = (_text, id2, mermaidVersion) => {
- try {
- log$1.debug("Renering svg for syntax error\n");
- const svg2 = select("#" + id2);
- const g = svg2.append("g");
- g.append("path").attr("class", "error-icon").attr(
- "d",
- "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"
- );
- g.append("path").attr("class", "error-icon").attr(
- "d",
- "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"
- );
- g.append("path").attr("class", "error-icon").attr(
- "d",
- "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"
- );
- g.append("path").attr("class", "error-icon").attr(
- "d",
- "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"
- );
- g.append("path").attr("class", "error-icon").attr(
- "d",
- "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"
- );
- g.append("path").attr("class", "error-icon").attr(
- "d",
- "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"
- );
- g.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text");
- g.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text("mermaid version " + mermaidVersion);
- svg2.attr("height", 100);
- svg2.attr("width", 500);
- svg2.attr("viewBox", "768 0 912 512");
- } catch (e) {
- log$1.error("Error while rendering info diagram");
- log$1.error(getErrorMessage(e));
+ return value2;
+ }
+ function keyof(value2) {
+ return value2 !== null && typeof value2 === "object" ? value2.valueOf() : value2;
+ }
+ var InternMap;
+ var init_src = __esm({
+ "../../node_modules/.pnpm/internmap@2.0.3/node_modules/internmap/src/index.js"() {
+ "use strict";
+ InternMap = class extends Map {
+ static {
+ __name(this, "InternMap");
+ }
+ constructor(entries, key = keyof) {
+ super();
+ Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key } });
+ if (entries != null) for (const [key2, value2] of entries) this.set(key2, value2);
+ }
+ get(key) {
+ return super.get(intern_get(this, key));
+ }
+ has(key) {
+ return super.has(intern_get(this, key));
+ }
+ set(key, value2) {
+ return super.set(intern_set(this, key), value2);
+ }
+ delete(key) {
+ return super.delete(intern_delete(this, key));
+ }
+ };
+ __name(intern_get, "intern_get");
+ __name(intern_set, "intern_set");
+ __name(intern_delete, "intern_delete");
+ __name(keyof, "keyof");
}
- };
- const errorRenderer = {
- setConf: setConf$a,
- draw: draw$i
- };
- const diagram$i = {
- db: {
- clear: () => {
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js
+ function tickSpec(start3, stop5, count) {
+ const step3 = (stop5 - start3) / Math.max(0, count), power = Math.floor(Math.log10(step3)), error3 = step3 / Math.pow(10, power), factor = error3 >= e10 ? 10 : error3 >= e5 ? 5 : error3 >= e2 ? 2 : 1;
+ let i1, i2, inc;
+ if (power < 0) {
+ inc = Math.pow(10, -power) / factor;
+ i1 = Math.round(start3 * inc);
+ i2 = Math.round(stop5 * inc);
+ if (i1 / inc < start3) ++i1;
+ if (i2 / inc > stop5) --i2;
+ inc = -inc;
+ } else {
+ inc = Math.pow(10, power) * factor;
+ i1 = Math.round(start3 / inc);
+ i2 = Math.round(stop5 / inc);
+ if (i1 * inc < start3) ++i1;
+ if (i2 * inc > stop5) --i2;
+ }
+ if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start3, stop5, count * 2);
+ return [i1, i2, inc];
+ }
+ function ticks(start3, stop5, count) {
+ stop5 = +stop5, start3 = +start3, count = +count;
+ if (!(count > 0)) return [];
+ if (start3 === stop5) return [start3];
+ const reverse2 = stop5 < start3, [i1, i2, inc] = reverse2 ? tickSpec(stop5, start3, count) : tickSpec(start3, stop5, count);
+ if (!(i2 >= i1)) return [];
+ const n2 = i2 - i1 + 1, ticks2 = new Array(n2);
+ if (reverse2) {
+ if (inc < 0) for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i2 - i3) / -inc;
+ else for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i2 - i3) * inc;
+ } else {
+ if (inc < 0) for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i1 + i3) / -inc;
+ else for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i1 + i3) * inc;
+ }
+ return ticks2;
+ }
+ function tickIncrement(start3, stop5, count) {
+ stop5 = +stop5, start3 = +start3, count = +count;
+ return tickSpec(start3, stop5, count)[2];
+ }
+ function tickStep(start3, stop5, count) {
+ stop5 = +stop5, start3 = +start3, count = +count;
+ const reverse2 = stop5 < start3, inc = reverse2 ? tickIncrement(stop5, start3, count) : tickIncrement(start3, stop5, count);
+ return (reverse2 ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
+ }
+ var e10, e5, e2;
+ var init_ticks = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js"() {
+ "use strict";
+ e10 = Math.sqrt(50);
+ e5 = Math.sqrt(10);
+ e2 = Math.sqrt(2);
+ __name(tickSpec, "tickSpec");
+ __name(ticks, "ticks");
+ __name(tickIncrement, "tickIncrement");
+ __name(tickStep, "tickStep");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js
+ function max(values2, valueof) {
+ let max10;
+ if (valueof === void 0) {
+ for (const value2 of values2) {
+ if (value2 != null && (max10 < value2 || max10 === void 0 && value2 >= value2)) {
+ max10 = value2;
+ }
}
- },
- styles: styles$9,
- renderer: errorRenderer,
- parser: {
- parser: { yy: {} },
- parse: () => {
+ } else {
+ let index = -1;
+ for (let value2 of values2) {
+ if ((value2 = valueof(value2, ++index, values2)) != null && (max10 < value2 || max10 === void 0 && value2 >= value2)) {
+ max10 = value2;
+ }
}
- },
- init: () => {
}
- };
- const errorDiagram = diagram$i;
- const id$2 = "flowchart-elk";
- const detector$2 = (txt, config2) => {
- var _a;
- if (
- // If diagram explicitly states flowchart-elk
- txt.match(/^\s*flowchart-elk/) || // If a flowchart/graph diagram has their default renderer set to elk
- txt.match(/^\s*flowchart|graph/) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "elk"
- ) {
- return true;
- }
- return false;
- };
- const loader$2 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => flowchartElkDefinition);
- return { id: id$2, diagram: diagram2 };
- };
- const plugin$2 = {
- id: id$2,
- detector: detector$2,
- loader: loader$2
- };
- const flowchartElk = plugin$2;
- const id$1 = "timeline";
- const detector$1 = (txt) => {
- return txt.match(/^\s*timeline/) !== null;
- };
- const loader$1 = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => timelineDefinition);
- return { id: id$1, diagram: diagram2 };
- };
- const plugin$1 = {
- id: id$1,
- detector: detector$1,
- loader: loader$1
- };
- const timeline = plugin$1;
- const id = "mindmap";
- const detector = (txt) => {
- return txt.match(/^\s*mindmap/) !== null;
- };
- const loader = async () => {
- const { diagram: diagram2 } = await Promise.resolve().then(() => mindmapDefinition);
- return { id, diagram: diagram2 };
- };
- const plugin = {
- id,
- detector,
- loader
- };
- const mindmap = plugin;
- let hasLoadedDiagrams = false;
- const addDiagrams = () => {
- if (hasLoadedDiagrams) {
- return;
+ return max10;
+ }
+ var init_max = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js"() {
+ "use strict";
+ __name(max, "max");
}
- hasLoadedDiagrams = true;
- registerDiagram("error", errorDiagram, (text2) => {
- return text2.toLowerCase().trim() === "error";
- });
- registerDiagram(
- "---",
- // --- diagram type may appear if YAML front-matter is not parsed correctly
- {
- db: {
- clear: () => {
- }
- },
- styles: {},
- // should never be used
- renderer: {},
- // should never be used
- parser: {
- parser: { yy: {} },
- parse: () => {
- throw new Error(
- "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks"
- );
- }
- },
- init: () => null
- // no op
- },
- (text2) => {
- return text2.toLowerCase().trimStart().startsWith("---");
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/min.js
+ function min(values2, valueof) {
+ let min9;
+ if (valueof === void 0) {
+ for (const value2 of values2) {
+ if (value2 != null && (min9 > value2 || min9 === void 0 && value2 >= value2)) {
+ min9 = value2;
+ }
+ }
+ } else {
+ let index = -1;
+ for (let value2 of values2) {
+ if ((value2 = valueof(value2, ++index, values2)) != null && (min9 > value2 || min9 === void 0 && value2 >= value2)) {
+ min9 = value2;
+ }
}
- );
- registerLazyLoadedDiagrams(
- c4,
- classDiagramV2$1,
- classDiagram$1,
- er,
- gantt,
- info$1,
- pie,
- requirement,
- sequence,
- flowchartElk,
- flowchartV2,
- flowchart,
- mindmap,
- timeline,
- git,
- stateV2,
- state,
- journey
- );
- };
- const cleanupComments = (text2) => {
- return text2.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm, "");
- };
- class Diagram {
- constructor(text2) {
- var _a, _b;
- this.text = text2;
- this.type = "graph";
- this.text += "\n";
- const cnf = getConfig$1();
- try {
- this.type = detectType(text2, cnf);
- } catch (e) {
- this.type = "error";
- this.detectError = e;
- }
- const diagram2 = getDiagram(this.type);
- log$1.debug("Type " + this.type);
- this.db = diagram2.db;
- (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
- this.renderer = diagram2.renderer;
- this.parser = diagram2.parser;
- const originalParse = this.parser.parse.bind(this.parser);
- this.parser.parse = (text22) => originalParse(cleanupComments(extractFrontMatter(text22, this.db)));
- this.parser.parser.yy = this.db;
- if (diagram2.init) {
- diagram2.init(cnf);
- log$1.info("Initialized diagram " + this.type, cnf);
- }
- this.parse();
- }
- parse() {
- var _a, _b;
- if (this.detectError) {
- throw this.detectError;
- }
- (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
- this.parser.parse(this.text);
- }
- async render(id2, version2) {
- await this.renderer.draw(this.text, id2, version2, this);
}
- getParser() {
- return this.parser;
+ return min9;
+ }
+ var init_min = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/min.js"() {
+ "use strict";
+ __name(min, "min");
}
- getType() {
- return this.type;
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js
+ function range(start3, stop5, step3) {
+ start3 = +start3, stop5 = +stop5, step3 = (n2 = arguments.length) < 2 ? (stop5 = start3, start3 = 0, 1) : n2 < 3 ? 1 : +step3;
+ var i2 = -1, n2 = Math.max(0, Math.ceil((stop5 - start3) / step3)) | 0, range3 = new Array(n2);
+ while (++i2 < n2) {
+ range3[i2] = start3 + i2 * step3;
}
+ return range3;
}
- const getDiagramFromText = async (text2) => {
- const type2 = detectType(text2, getConfig$1());
- try {
- getDiagram(type2);
- } catch (error) {
- const loader2 = getDiagramLoader(type2);
- if (!loader2) {
- throw new UnknownDiagramError(`Diagram ${type2} not found.`);
- }
- const { id: id2, diagram: diagram2 } = await loader2();
- registerDiagram(id2, diagram2);
+ var init_range = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js"() {
+ "use strict";
+ __name(range, "range");
}
- return new Diagram(text2);
- };
- let interactionFunctions = [];
- const addFunction = (func) => {
- interactionFunctions.push(func);
- };
- const attachFunctions = () => {
- interactionFunctions.forEach((f2) => {
- f2();
- });
- interactionFunctions = [];
- };
- var objectProto$d = Object.prototype;
- function isPrototype(value) {
- var Ctor = value && value.constructor, proto2 = typeof Ctor == "function" && Ctor.prototype || objectProto$d;
- return value === proto2;
+ });
+
+ // ../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/index.js
+ var init_src2 = __esm({
+ "../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/index.js"() {
+ "use strict";
+ init_bisect();
+ init_bisector();
+ init_max();
+ init_min();
+ init_range();
+ init_ticks();
+ init_src();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/identity.js
+ function identity_default(x5) {
+ return x5;
}
- function overArg(func, transform) {
- return function(arg) {
- return func(transform(arg));
+ var init_identity = __esm({
+ "../../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/identity.js"() {
+ "use strict";
+ __name(identity_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/axis.js
+ function translateX(x5) {
+ return "translate(" + x5 + ",0)";
+ }
+ function translateY(y5) {
+ return "translate(0," + y5 + ")";
+ }
+ function number2(scale) {
+ return (d2) => +scale(d2);
+ }
+ function center(scale, offset) {
+ offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
+ if (scale.round()) offset = Math.round(offset);
+ return (d2) => +scale(d2) + offset;
+ }
+ function entering() {
+ return !this.__axis;
+ }
+ function axis(orient, scale) {
+ var tickArguments = [], tickValues = null, tickFormat2 = null, tickSizeInner = 6, tickSizeOuter = 6, tickPadding = 3, offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, k2 = orient === top || orient === left ? -1 : 1, x5 = orient === left || orient === right ? "x" : "y", transform8 = orient === top || orient === bottom ? translateX : translateY;
+ function axis2(context) {
+ var values2 = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues, format3 = tickFormat2 == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity_default : tickFormat2, spacing2 = Math.max(tickSizeInner, 0) + tickPadding, range3 = scale.range(), range0 = +range3[0] + offset, range1 = +range3[range3.length - 1] + offset, position5 = (scale.bandwidth ? center : number2)(scale.copy(), offset), selection2 = context.selection ? context.selection() : context, path4 = selection2.selectAll(".domain").data([null]), tick = selection2.selectAll(".tick").data(values2, scale).order(), tickExit = tick.exit(), tickEnter = tick.enter().append("g").attr("class", "tick"), line2 = tick.select("line"), text2 = tick.select("text");
+ path4 = path4.merge(path4.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor"));
+ tick = tick.merge(tickEnter);
+ line2 = line2.merge(tickEnter.append("line").attr("stroke", "currentColor").attr(x5 + "2", k2 * tickSizeInner));
+ text2 = text2.merge(tickEnter.append("text").attr("fill", "currentColor").attr(x5, k2 * spacing2).attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
+ if (context !== selection2) {
+ path4 = path4.transition(context);
+ tick = tick.transition(context);
+ line2 = line2.transition(context);
+ text2 = text2.transition(context);
+ tickExit = tickExit.transition(context).attr("opacity", epsilon).attr("transform", function(d2) {
+ return isFinite(d2 = position5(d2)) ? transform8(d2 + offset) : this.getAttribute("transform");
+ });
+ tickEnter.attr("opacity", epsilon).attr("transform", function(d2) {
+ var p3 = this.parentNode.__axis;
+ return transform8((p3 && isFinite(p3 = p3(d2)) ? p3 : position5(d2)) + offset);
+ });
+ }
+ tickExit.remove();
+ path4.attr("d", orient === left || orient === right ? tickSizeOuter ? "M" + k2 * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k2 * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1 : tickSizeOuter ? "M" + range0 + "," + k2 * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k2 * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1);
+ tick.attr("opacity", 1).attr("transform", function(d2) {
+ return transform8(position5(d2) + offset);
+ });
+ line2.attr(x5 + "2", k2 * tickSizeInner);
+ text2.attr(x5, k2 * spacing2).text(format3);
+ selection2.filter(entering).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
+ selection2.each(function() {
+ this.__axis = position5;
+ });
+ }
+ __name(axis2, "axis");
+ axis2.scale = function(_2) {
+ return arguments.length ? (scale = _2, axis2) : scale;
+ };
+ axis2.ticks = function() {
+ return tickArguments = Array.from(arguments), axis2;
+ };
+ axis2.tickArguments = function(_2) {
+ return arguments.length ? (tickArguments = _2 == null ? [] : Array.from(_2), axis2) : tickArguments.slice();
+ };
+ axis2.tickValues = function(_2) {
+ return arguments.length ? (tickValues = _2 == null ? null : Array.from(_2), axis2) : tickValues && tickValues.slice();
+ };
+ axis2.tickFormat = function(_2) {
+ return arguments.length ? (tickFormat2 = _2, axis2) : tickFormat2;
+ };
+ axis2.tickSize = function(_2) {
+ return arguments.length ? (tickSizeInner = tickSizeOuter = +_2, axis2) : tickSizeInner;
+ };
+ axis2.tickSizeInner = function(_2) {
+ return arguments.length ? (tickSizeInner = +_2, axis2) : tickSizeInner;
+ };
+ axis2.tickSizeOuter = function(_2) {
+ return arguments.length ? (tickSizeOuter = +_2, axis2) : tickSizeOuter;
+ };
+ axis2.tickPadding = function(_2) {
+ return arguments.length ? (tickPadding = +_2, axis2) : tickPadding;
+ };
+ axis2.offset = function(_2) {
+ return arguments.length ? (offset = +_2, axis2) : offset;
};
+ return axis2;
+ }
+ function axisTop(scale) {
+ return axis(top, scale);
}
- var nativeKeys = overArg(Object.keys, Object);
- const nativeKeys$1 = nativeKeys;
- var objectProto$c = Object.prototype;
- var hasOwnProperty$b = objectProto$c.hasOwnProperty;
- function baseKeys(object2) {
- if (!isPrototype(object2)) {
- return nativeKeys$1(object2);
+ function axisBottom(scale) {
+ return axis(bottom, scale);
+ }
+ var top, right, bottom, left, epsilon;
+ var init_axis = __esm({
+ "../../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/axis.js"() {
+ "use strict";
+ init_identity();
+ top = 1;
+ right = 2;
+ bottom = 3;
+ left = 4;
+ epsilon = 1e-6;
+ __name(translateX, "translateX");
+ __name(translateY, "translateY");
+ __name(number2, "number");
+ __name(center, "center");
+ __name(entering, "entering");
+ __name(axis, "axis");
+ __name(axisTop, "axisTop");
+ __name(axisBottom, "axisBottom");
}
- var result = [];
- for (var key in Object(object2)) {
- if (hasOwnProperty$b.call(object2, key) && key != "constructor") {
- result.push(key);
+ });
+
+ // ../../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/index.js
+ var init_src3 = __esm({
+ "../../node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/index.js"() {
+ "use strict";
+ init_axis();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js
+ function dispatch() {
+ for (var i2 = 0, n2 = arguments.length, _2 = {}, t4; i2 < n2; ++i2) {
+ if (!(t4 = arguments[i2] + "") || t4 in _2 || /[\s.]/.test(t4)) throw new Error("illegal type: " + t4);
+ _2[t4] = [];
+ }
+ return new Dispatch(_2);
+ }
+ function Dispatch(_2) {
+ this._ = _2;
+ }
+ function parseTypenames(typenames, types) {
+ return typenames.trim().split(/^|\s+/).map(function(t4) {
+ var name = "", i2 = t4.indexOf(".");
+ if (i2 >= 0) name = t4.slice(i2 + 1), t4 = t4.slice(0, i2);
+ if (t4 && !types.hasOwnProperty(t4)) throw new Error("unknown type: " + t4);
+ return { type: t4, name };
+ });
+ }
+ function get(type3, name) {
+ for (var i2 = 0, n2 = type3.length, c3; i2 < n2; ++i2) {
+ if ((c3 = type3[i2]).name === name) {
+ return c3.value;
}
}
- return result;
}
- var DataView$1 = getNative(root$1, "DataView");
- const DataView$2 = DataView$1;
- var Promise$1 = getNative(root$1, "Promise");
- const Promise$2 = Promise$1;
- var Set$1 = getNative(root$1, "Set");
- const Set$2 = Set$1;
- var WeakMap = getNative(root$1, "WeakMap");
- const WeakMap$1 = WeakMap;
- var mapTag$6 = "[object Map]", objectTag$4 = "[object Object]", promiseTag = "[object Promise]", setTag$6 = "[object Set]", weakMapTag$2 = "[object WeakMap]";
- var dataViewTag$4 = "[object DataView]";
- var dataViewCtorString = toSource(DataView$2), mapCtorString = toSource(Map$2), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$2), weakMapCtorString = toSource(WeakMap$1);
- var getTag = baseGetTag;
- if (DataView$2 && getTag(new DataView$2(new ArrayBuffer(1))) != dataViewTag$4 || Map$2 && getTag(new Map$2()) != mapTag$6 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$2 && getTag(new Set$2()) != setTag$6 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$2) {
- getTag = function(value) {
- var result = baseGetTag(value), Ctor = result == objectTag$4 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
- if (ctorString) {
- switch (ctorString) {
- case dataViewCtorString:
- return dataViewTag$4;
- case mapCtorString:
- return mapTag$6;
- case promiseCtorString:
- return promiseTag;
- case setCtorString:
- return setTag$6;
- case weakMapCtorString:
- return weakMapTag$2;
- }
+ function set(type3, name, callback) {
+ for (var i2 = 0, n2 = type3.length; i2 < n2; ++i2) {
+ if (type3[i2].name === name) {
+ type3[i2] = noop, type3 = type3.slice(0, i2).concat(type3.slice(i2 + 1));
+ break;
}
- return result;
+ }
+ if (callback != null) type3.push({ name, value: callback });
+ return type3;
+ }
+ var noop, dispatch_default;
+ var init_dispatch = __esm({
+ "../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js"() {
+ "use strict";
+ noop = { value: /* @__PURE__ */ __name(() => {
+ }, "value") };
+ __name(dispatch, "dispatch");
+ __name(Dispatch, "Dispatch");
+ __name(parseTypenames, "parseTypenames");
+ Dispatch.prototype = dispatch.prototype = {
+ constructor: Dispatch,
+ on: /* @__PURE__ */ __name(function(typename, callback) {
+ var _2 = this._, T3 = parseTypenames(typename + "", _2), t4, i2 = -1, n2 = T3.length;
+ if (arguments.length < 2) {
+ while (++i2 < n2) if ((t4 = (typename = T3[i2]).type) && (t4 = get(_2[t4], typename.name))) return t4;
+ return;
+ }
+ if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
+ while (++i2 < n2) {
+ if (t4 = (typename = T3[i2]).type) _2[t4] = set(_2[t4], typename.name, callback);
+ else if (callback == null) for (t4 in _2) _2[t4] = set(_2[t4], typename.name, null);
+ }
+ return this;
+ }, "on"),
+ copy: /* @__PURE__ */ __name(function() {
+ var copy6 = {}, _2 = this._;
+ for (var t4 in _2) copy6[t4] = _2[t4].slice();
+ return new Dispatch(copy6);
+ }, "copy"),
+ call: /* @__PURE__ */ __name(function(type3, that) {
+ if ((n2 = arguments.length - 2) > 0) for (var args = new Array(n2), i2 = 0, n2, t4; i2 < n2; ++i2) args[i2] = arguments[i2 + 2];
+ if (!this._.hasOwnProperty(type3)) throw new Error("unknown type: " + type3);
+ for (t4 = this._[type3], i2 = 0, n2 = t4.length; i2 < n2; ++i2) t4[i2].value.apply(that, args);
+ }, "call"),
+ apply: /* @__PURE__ */ __name(function(type3, that, args) {
+ if (!this._.hasOwnProperty(type3)) throw new Error("unknown type: " + type3);
+ for (var t4 = this._[type3], i2 = 0, n2 = t4.length; i2 < n2; ++i2) t4[i2].value.apply(that, args);
+ }, "apply")
+ };
+ __name(get, "get");
+ __name(set, "set");
+ dispatch_default = dispatch;
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/index.js
+ var init_src4 = __esm({
+ "../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/index.js"() {
+ "use strict";
+ init_dispatch();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespaces.js
+ var xhtml, namespaces_default;
+ var init_namespaces = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespaces.js"() {
+ "use strict";
+ xhtml = "http://www.w3.org/1999/xhtml";
+ namespaces_default = {
+ svg: "http://www.w3.org/2000/svg",
+ xhtml,
+ xlink: "http://www.w3.org/1999/xlink",
+ xml: "http://www.w3.org/XML/1998/namespace",
+ xmlns: "http://www.w3.org/2000/xmlns/"
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespace.js
+ function namespace_default(name) {
+ var prefix = name += "", i2 = prefix.indexOf(":");
+ if (i2 >= 0 && (prefix = name.slice(0, i2)) !== "xmlns") name = name.slice(i2 + 1);
+ return namespaces_default.hasOwnProperty(prefix) ? { space: namespaces_default[prefix], local: name } : name;
+ }
+ var init_namespace = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespace.js"() {
+ "use strict";
+ init_namespaces();
+ __name(namespace_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/creator.js
+ function creatorInherit(name) {
+ return function() {
+ var document2 = this.ownerDocument, uri = this.namespaceURI;
+ return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);
};
}
- const getTag$1 = getTag;
- function isObjectLike(value) {
- return value != null && typeof value == "object";
- }
- var argsTag$3 = "[object Arguments]";
- function baseIsArguments(value) {
- return isObjectLike(value) && baseGetTag(value) == argsTag$3;
- }
- var objectProto$b = Object.prototype;
- var hasOwnProperty$a = objectProto$b.hasOwnProperty;
- var propertyIsEnumerable$1 = objectProto$b.propertyIsEnumerable;
- var isArguments = baseIsArguments(function() {
- return arguments;
- }()) ? baseIsArguments : function(value) {
- return isObjectLike(value) && hasOwnProperty$a.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
- };
- const isArguments$1 = isArguments;
- var isArray = Array.isArray;
- const isArray$1 = isArray;
- var MAX_SAFE_INTEGER$1 = 9007199254740991;
- function isLength(value) {
- return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1;
- }
- function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction(value);
+ function creatorFixed(fullname) {
+ return function() {
+ return this.ownerDocument.createElementNS(fullname.space, fullname.local);
+ };
}
- function stubFalse() {
- return false;
+ function creator_default(name) {
+ var fullname = namespace_default(name);
+ return (fullname.local ? creatorFixed : creatorInherit)(fullname);
}
- var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports;
- var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module;
- var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2;
- var Buffer$1 = moduleExports$2 ? root$1.Buffer : void 0;
- var nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : void 0;
- var isBuffer = nativeIsBuffer || stubFalse;
- const isBuffer$1 = isBuffer;
- var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$5 = "[object Map]", numberTag$3 = "[object Number]", objectTag$3 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$5 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$1 = "[object WeakMap]";
- var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$3 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]";
- var typedArrayTags = {};
- typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true;
- typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$3] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$5] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$1] = false;
- function baseIsTypedArray(value) {
- return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
+ var init_creator = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/creator.js"() {
+ "use strict";
+ init_namespace();
+ init_namespaces();
+ __name(creatorInherit, "creatorInherit");
+ __name(creatorFixed, "creatorFixed");
+ __name(creator_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selector.js
+ function none() {
}
- function baseUnary(func) {
- return function(value) {
- return func(value);
+ function selector_default(selector) {
+ return selector == null ? none : function() {
+ return this.querySelector(selector);
};
}
- var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
- var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
- var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
- var freeProcess = moduleExports$1 && freeGlobal$1.process;
- var nodeUtil = function() {
- try {
- var types = freeModule$1 && freeModule$1.require && freeModule$1.require("util").types;
- if (types) {
- return types;
- }
- return freeProcess && freeProcess.binding && freeProcess.binding("util");
- } catch (e) {
- }
- }();
- const nodeUtil$1 = nodeUtil;
- var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
- var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
- const isTypedArray$1 = isTypedArray;
- var mapTag$4 = "[object Map]", setTag$4 = "[object Set]";
- var objectProto$a = Object.prototype;
- var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
- function isEmpty(value) {
- if (value == null) {
- return true;
- }
- if (isArrayLike(value) && (isArray$1(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer$1(value) || isTypedArray$1(value) || isArguments$1(value))) {
- return !value.length;
- }
- var tag = getTag$1(value);
- if (tag == mapTag$4 || tag == setTag$4) {
- return !value.size;
- }
- if (isPrototype(value)) {
- return !baseKeys(value).length;
+ var init_selector = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selector.js"() {
+ "use strict";
+ __name(none, "none");
+ __name(selector_default, "default");
}
- for (var key in value) {
- if (hasOwnProperty$9.call(value, key)) {
- return false;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/select.js
+ function select_default(select) {
+ if (typeof select !== "function") select = selector_default(select);
+ for (var groups = this._groups, m2 = groups.length, subgroups = new Array(m2), j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, subgroup = subgroups[j2] = new Array(n2), node2, subnode, i2 = 0; i2 < n2; ++i2) {
+ if ((node2 = group2[i2]) && (subnode = select.call(node2, node2.__data__, i2, group2))) {
+ if ("__data__" in node2) subnode.__data__ = node2.__data__;
+ subgroup[i2] = subnode;
+ }
}
}
- return true;
+ return new Selection(subgroups, this._parents);
}
- const SVG_ROLE = "graphics-document document";
- function setA11yDiagramInfo(svg2, diagramType) {
- svg2.attr("role", SVG_ROLE);
- if (!isEmpty(diagramType)) {
- svg2.attr("aria-roledescription", diagramType);
+ var init_select = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/select.js"() {
+ "use strict";
+ init_selection();
+ init_selector();
+ __name(select_default, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/array.js
+ function array(x5) {
+ return x5 == null ? [] : Array.isArray(x5) ? x5 : Array.from(x5);
}
- function addSVGa11yTitleDescription(svg2, a11yTitle, a11yDesc, baseId) {
- if (svg2.insert === void 0) {
- return;
+ var init_array = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/array.js"() {
+ "use strict";
+ __name(array, "array");
}
- if (a11yTitle || a11yDesc) {
- if (a11yDesc) {
- const descId = "chart-desc-" + baseId;
- svg2.attr("aria-describedby", descId);
- svg2.insert("desc", ":first-child").attr("id", descId).text(a11yDesc);
- }
- if (a11yTitle) {
- const titleId = "chart-title-" + baseId;
- svg2.attr("aria-labelledby", titleId);
- svg2.insert("title", ":first-child").attr("id", titleId).text(a11yTitle);
- }
- } else {
- return;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selectorAll.js
+ function empty() {
+ return [];
+ }
+ function selectorAll_default(selector) {
+ return selector == null ? empty : function() {
+ return this.querySelectorAll(selector);
+ };
+ }
+ var init_selectorAll = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selectorAll.js"() {
+ "use strict";
+ __name(empty, "empty");
+ __name(selectorAll_default, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js
+ function arrayAll(select) {
+ return function() {
+ return array(select.apply(this, arguments));
+ };
}
- const CLASSDEF_DIAGRAMS = [
- "graph",
- "flowchart",
- "flowchart-v2",
- "flowchart-elk",
- "stateDiagram",
- "stateDiagram-v2"
- ];
- const MAX_TEXTLENGTH = 5e4;
- const MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa";
- const SECURITY_LVL_SANDBOX = "sandbox";
- const SECURITY_LVL_LOOSE = "loose";
- const XMLNS_SVG_STD = "http://www.w3.org/2000/svg";
- const XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink";
- const XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml";
- const IFRAME_WIDTH = "100%";
- const IFRAME_HEIGHT = "100%";
- const IFRAME_STYLES = "border:0;margin:0;";
- const IFRAME_BODY_STYLE = "margin:0";
- const IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups";
- const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.';
- const DOMPURIFY_TAGS = ["foreignobject"];
- const DOMPURIFY_ATTR = ["dominant-baseline"];
- async function parse$2(text2, parseOptions) {
- addDiagrams();
- try {
- const diagram2 = await getDiagramFromText(text2);
- diagram2.parse();
- } catch (error) {
- if (parseOptions == null ? void 0 : parseOptions.suppressErrors) {
- return false;
+ function selectAll_default(select) {
+ if (typeof select === "function") select = arrayAll(select);
+ else select = selectorAll_default(select);
+ for (var groups = this._groups, m2 = groups.length, subgroups = [], parents4 = [], j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, node2, i2 = 0; i2 < n2; ++i2) {
+ if (node2 = group2[i2]) {
+ subgroups.push(select.call(node2, node2.__data__, i2, group2));
+ parents4.push(node2);
+ }
}
- throw error;
}
- return true;
+ return new Selection(subgroups, parents4);
}
- const encodeEntities = function(text2) {
- let txt = text2;
- txt = txt.replace(/style.*:\S*#.*;/g, function(s) {
- return s.substring(0, s.length - 1);
- });
- txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) {
- return s.substring(0, s.length - 1);
- });
- txt = txt.replace(/#\w+;/g, function(s) {
- const innerTxt = s.substring(1, s.length - 1);
- const isInt = /^\+?\d+$/.test(innerTxt);
- if (isInt) {
- return "fl°°" + innerTxt + "¶ß";
- } else {
- return "fl°" + innerTxt + "¶ß";
- }
- });
- return txt;
- };
- const decodeEntities = function(text2) {
- let txt = text2;
- txt = txt.replace(/fl°°/g, "");
- txt = txt.replace(/fl°/g, "&");
- txt = txt.replace(/¶ß/g, ";");
- return txt;
- };
- const cssImportantStyles = (cssClass, element, cssClasses = []) => {
- return `
-.${cssClass} ${element} { ${cssClasses.join(" !important; ")} !important; }`;
- };
- const createCssStyles = (config2, graphType, classDefs = {}) => {
- var _a;
- let cssStyles = "";
- if (config2.themeCSS !== void 0) {
- cssStyles += `
-${config2.themeCSS}`;
+ var init_selectAll = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js"() {
+ "use strict";
+ init_selection();
+ init_array();
+ init_selectorAll();
+ __name(arrayAll, "arrayAll");
+ __name(selectAll_default, "default");
}
- if (config2.fontFamily !== void 0) {
- cssStyles += `
-:root { --mermaid-font-family: ${config2.fontFamily}}`;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/matcher.js
+ function matcher_default(selector) {
+ return function() {
+ return this.matches(selector);
+ };
+ }
+ function childMatcher(selector) {
+ return function(node2) {
+ return node2.matches(selector);
+ };
+ }
+ var init_matcher = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/matcher.js"() {
+ "use strict";
+ __name(matcher_default, "default");
+ __name(childMatcher, "childMatcher");
}
- if (config2.altFontFamily !== void 0) {
- cssStyles += `
-:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChild.js
+ function childFind(match2) {
+ return function() {
+ return find.call(this.children, match2);
+ };
+ }
+ function childFirst() {
+ return this.firstElementChild;
+ }
+ function selectChild_default(match2) {
+ return this.select(match2 == null ? childFirst : childFind(typeof match2 === "function" ? match2 : childMatcher(match2)));
+ }
+ var find;
+ var init_selectChild = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChild.js"() {
+ "use strict";
+ init_matcher();
+ find = Array.prototype.find;
+ __name(childFind, "childFind");
+ __name(childFirst, "childFirst");
+ __name(selectChild_default, "default");
}
- if (!isEmpty(classDefs) && CLASSDEF_DIAGRAMS.includes(graphType)) {
- const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels);
- const cssHtmlElements = ["> *", "span"];
- const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"];
- const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;
- for (const classId in classDefs) {
- const styleClassDef = classDefs[classId];
- if (!isEmpty(styleClassDef.styles)) {
- cssElements.forEach((cssElement) => {
- cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);
- });
- }
- if (!isEmpty(styleClassDef.textStyles)) {
- cssStyles += cssImportantStyles(styleClassDef.id, "tspan", styleClassDef.textStyles);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChildren.js
+ function children() {
+ return Array.from(this.children);
+ }
+ function childrenFilter(match2) {
+ return function() {
+ return filter.call(this.children, match2);
+ };
+ }
+ function selectChildren_default(match2) {
+ return this.selectAll(match2 == null ? children : childrenFilter(typeof match2 === "function" ? match2 : childMatcher(match2)));
+ }
+ var filter;
+ var init_selectChildren = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChildren.js"() {
+ "use strict";
+ init_matcher();
+ filter = Array.prototype.filter;
+ __name(children, "children");
+ __name(childrenFilter, "childrenFilter");
+ __name(selectChildren_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/filter.js
+ function filter_default(match2) {
+ if (typeof match2 !== "function") match2 = matcher_default(match2);
+ for (var groups = this._groups, m2 = groups.length, subgroups = new Array(m2), j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, subgroup = subgroups[j2] = [], node2, i2 = 0; i2 < n2; ++i2) {
+ if ((node2 = group2[i2]) && match2.call(node2, node2.__data__, i2, group2)) {
+ subgroup.push(node2);
}
}
}
- return cssStyles;
- };
- const createUserStyles = (config2, graphType, classDefs, svgId) => {
- const userCSSstyles = createCssStyles(config2, graphType, classDefs);
- const allStyles = getStyles$h(graphType, userCSSstyles, config2.themeVariables);
- return serialize(compile(`${svgId}{${allStyles}}`), stringify);
- };
- const cleanUpSvgCode = (svgCode = "", inSandboxMode, useArrowMarkerUrls) => {
- let cleanedUpSvg = svgCode;
- if (!useArrowMarkerUrls && !inSandboxMode) {
- cleanedUpSvg = cleanedUpSvg.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#');
+ return new Selection(subgroups, this._parents);
+ }
+ var init_filter = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/filter.js"() {
+ "use strict";
+ init_selection();
+ init_matcher();
+ __name(filter_default, "default");
}
- cleanedUpSvg = decodeEntities(cleanedUpSvg);
- cleanedUpSvg = cleanedUpSvg.replace(/
/g, "
");
- return cleanedUpSvg;
- };
- const putIntoIFrame = (svgCode = "", svgElement) => {
- const height2 = svgElement ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT;
- const base64encodedSrc = btoa('' + svgCode + "");
- return ``;
- };
- const appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => {
- const enclosingDiv = parentRoot.append("div");
- enclosingDiv.attr("id", enclosingDivId);
- if (divStyle) {
- enclosingDiv.attr("style", divStyle);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sparse.js
+ function sparse_default(update2) {
+ return new Array(update2.length);
+ }
+ var init_sparse = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sparse.js"() {
+ "use strict";
+ __name(sparse_default, "default");
}
- const svgNode2 = enclosingDiv.append("svg").attr("id", id2).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD);
- if (svgXlink) {
- svgNode2.attr("xmlns:xlink", svgXlink);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/enter.js
+ function enter_default() {
+ return new Selection(this._enter || this._groups.map(sparse_default), this._parents);
+ }
+ function EnterNode(parent4, datum2) {
+ this.ownerDocument = parent4.ownerDocument;
+ this.namespaceURI = parent4.namespaceURI;
+ this._next = null;
+ this._parent = parent4;
+ this.__data__ = datum2;
+ }
+ var init_enter = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/enter.js"() {
+ "use strict";
+ init_sparse();
+ init_selection();
+ __name(enter_default, "default");
+ __name(EnterNode, "EnterNode");
+ EnterNode.prototype = {
+ constructor: EnterNode,
+ appendChild: /* @__PURE__ */ __name(function(child) {
+ return this._parent.insertBefore(child, this._next);
+ }, "appendChild"),
+ insertBefore: /* @__PURE__ */ __name(function(child, next3) {
+ return this._parent.insertBefore(child, next3);
+ }, "insertBefore"),
+ querySelector: /* @__PURE__ */ __name(function(selector) {
+ return this._parent.querySelector(selector);
+ }, "querySelector"),
+ querySelectorAll: /* @__PURE__ */ __name(function(selector) {
+ return this._parent.querySelectorAll(selector);
+ }, "querySelectorAll")
+ };
}
- svgNode2.append("g");
- return parentRoot;
- };
- function sandboxedIframe(parentNode, iFrameId) {
- return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js
+ function constant_default(x5) {
+ return function() {
+ return x5;
+ };
}
- const removeExistingElements = (doc, id2, divId, iFrameId) => {
- var _a, _b, _c;
- (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove();
- (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove();
- (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove();
- };
- const render$3 = async function(id2, text2, svgContainingElement) {
- var _a, _b, _c, _d;
- addDiagrams();
- reset();
- const graphInit = utils.detectInit(text2);
- if (graphInit) {
- directiveSanitizer(graphInit);
- addDirective(graphInit);
- }
- const config2 = getConfig$1();
- log$1.debug(config2);
- if (text2.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) {
- text2 = MAX_TEXTLENGTH_EXCEEDED_MSG;
+ var init_constant = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js"() {
+ "use strict";
+ __name(constant_default, "default");
}
- text2 = text2.replace(/\r\n?/g, "\n");
- text2 = text2.replace(
- /<(\w+)([^>]*)>/g,
- (match, tag, attributes) => "<" + tag + attributes.replace(/="([^"]*)"/g, "='$1'") + ">"
- );
- const idSelector = "#" + id2;
- const iFrameID = "i" + id2;
- const iFrameID_selector = "#" + iFrameID;
- const enclosingDivID = "d" + id2;
- const enclosingDivID_selector = "#" + enclosingDivID;
- let root2 = select("body");
- const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX;
- const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE;
- const fontFamily = config2.fontFamily;
- if (svgContainingElement !== void 0) {
- if (svgContainingElement) {
- svgContainingElement.innerHTML = "";
- }
- if (isSandboxed) {
- const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);
- root2 = select(iframe.nodes()[0].contentDocument.body);
- root2.node().style.margin = 0;
- } else {
- root2 = select(svgContainingElement);
- }
- appendDivSvgG(root2, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);
- } else {
- removeExistingElements(document, id2, enclosingDivID, iFrameID);
- if (isSandboxed) {
- const iframe = sandboxedIframe(select("body"), iFrameID);
- root2 = select(iframe.nodes()[0].contentDocument.body);
- root2.node().style.margin = 0;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/data.js
+ function bindIndex(parent4, group2, enter, update2, exit, data5) {
+ var i2 = 0, node2, groupLength3 = group2.length, dataLength = data5.length;
+ for (; i2 < dataLength; ++i2) {
+ if (node2 = group2[i2]) {
+ node2.__data__ = data5[i2];
+ update2[i2] = node2;
} else {
- root2 = select("body");
+ enter[i2] = new EnterNode(parent4, data5[i2]);
}
- appendDivSvgG(root2, id2, enclosingDivID);
}
- text2 = encodeEntities(text2);
- let diag;
- let parseEncounteredException;
- try {
- diag = await getDiagramFromText(text2);
- } catch (error) {
- diag = new Diagram("error");
- parseEncounteredException = error;
- }
- const element = root2.select(enclosingDivID_selector).node();
- const graphType = diag.type;
- const svg2 = element.firstChild;
- const firstChild = svg2.firstChild;
- const diagramClassDefs = CLASSDEF_DIAGRAMS.includes(graphType) ? diag.renderer.getClasses(text2, diag) : {};
- const rules = createUserStyles(
- config2,
- graphType,
- // @ts-ignore convert renderer to TS.
- diagramClassDefs,
- idSelector
- );
- const style1 = document.createElement("style");
- style1.innerHTML = rules;
- svg2.insertBefore(style1, firstChild);
- try {
- await diag.renderer.draw(text2, id2, version$1, diag);
- } catch (e) {
- errorRenderer.draw(text2, id2, version$1);
- throw e;
- }
- const svgNode2 = root2.select(`${enclosingDivID_selector} svg`);
- const a11yTitle = (_b = (_a = diag.db).getAccTitle) == null ? void 0 : _b.call(_a);
- const a11yDescr = (_d = (_c = diag.db).getAccDescription) == null ? void 0 : _d.call(_c);
- addA11yInfo(graphType, svgNode2, a11yTitle, a11yDescr);
- root2.select(`[id="${id2}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD);
- let svgCode = root2.select(enclosingDivID_selector).node().innerHTML;
- log$1.debug("config.arrowMarkerAbsolute", config2.arrowMarkerAbsolute);
- svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute));
- if (isSandboxed) {
- const svgEl = root2.select(enclosingDivID_selector + " svg").node();
- svgCode = putIntoIFrame(svgCode, svgEl);
- } else if (!isLooseSecurityLevel) {
- svgCode = purify.sanitize(svgCode, {
- ADD_TAGS: DOMPURIFY_TAGS,
- ADD_ATTR: DOMPURIFY_ATTR
- });
+ for (; i2 < groupLength3; ++i2) {
+ if (node2 = group2[i2]) {
+ exit[i2] = node2;
+ }
}
- attachFunctions();
- if (parseEncounteredException) {
- throw parseEncounteredException;
+ }
+ function bindKey(parent4, group2, enter, update2, exit, data5, key) {
+ var i2, node2, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength3 = group2.length, dataLength = data5.length, keyValues = new Array(groupLength3), keyValue;
+ for (i2 = 0; i2 < groupLength3; ++i2) {
+ if (node2 = group2[i2]) {
+ keyValues[i2] = keyValue = key.call(node2, node2.__data__, i2, group2) + "";
+ if (nodeByKeyValue.has(keyValue)) {
+ exit[i2] = node2;
+ } else {
+ nodeByKeyValue.set(keyValue, node2);
+ }
+ }
}
- const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
- const node2 = select(tmpElementSelector).node();
- if (node2 && "remove" in node2) {
- node2.remove();
+ for (i2 = 0; i2 < dataLength; ++i2) {
+ keyValue = key.call(parent4, data5[i2], i2, data5) + "";
+ if (node2 = nodeByKeyValue.get(keyValue)) {
+ update2[i2] = node2;
+ node2.__data__ = data5[i2];
+ nodeByKeyValue.delete(keyValue);
+ } else {
+ enter[i2] = new EnterNode(parent4, data5[i2]);
+ }
}
- return {
- svg: svgCode,
- bindFunctions: diag.db.bindFunctions
- };
- };
- function initialize$1(options2 = {}) {
- var _a;
- if ((options2 == null ? void 0 : options2.fontFamily) && !((_a = options2.themeVariables) == null ? void 0 : _a.fontFamily)) {
- if (!options2.themeVariables) {
- options2.themeVariables = {};
+ for (i2 = 0; i2 < groupLength3; ++i2) {
+ if ((node2 = group2[i2]) && nodeByKeyValue.get(keyValues[i2]) === node2) {
+ exit[i2] = node2;
}
- options2.themeVariables.fontFamily = options2.fontFamily;
}
- saveConfigFromInitialize(options2);
- if ((options2 == null ? void 0 : options2.theme) && options2.theme in theme) {
- options2.themeVariables = theme[options2.theme].getThemeVariables(
- options2.themeVariables
- );
- } else if (options2) {
- options2.themeVariables = theme.default.getThemeVariables(options2.themeVariables);
+ }
+ function datum(node2) {
+ return node2.__data__;
+ }
+ function data_default(value2, key) {
+ if (!arguments.length) return Array.from(this, datum);
+ var bind = key ? bindKey : bindIndex, parents4 = this._parents, groups = this._groups;
+ if (typeof value2 !== "function") value2 = constant_default(value2);
+ for (var m2 = groups.length, update2 = new Array(m2), enter = new Array(m2), exit = new Array(m2), j2 = 0; j2 < m2; ++j2) {
+ var parent4 = parents4[j2], group2 = groups[j2], groupLength3 = group2.length, data5 = arraylike(value2.call(parent4, parent4 && parent4.__data__, j2, parents4)), dataLength = data5.length, enterGroup = enter[j2] = new Array(dataLength), updateGroup = update2[j2] = new Array(dataLength), exitGroup = exit[j2] = new Array(groupLength3);
+ bind(parent4, group2, enterGroup, updateGroup, exitGroup, data5, key);
+ for (var i0 = 0, i1 = 0, previous, next3; i0 < dataLength; ++i0) {
+ if (previous = enterGroup[i0]) {
+ if (i0 >= i1) i1 = i0 + 1;
+ while (!(next3 = updateGroup[i1]) && ++i1 < dataLength) ;
+ previous._next = next3 || null;
+ }
+ }
}
- const config2 = typeof options2 === "object" ? setSiteConfig(options2) : getSiteConfig();
- setLogLevel$1(config2.logLevel);
- addDiagrams();
+ update2 = new Selection(update2, parents4);
+ update2._enter = enter;
+ update2._exit = exit;
+ return update2;
}
- function addA11yInfo(graphType, svgNode2, a11yTitle, a11yDescr) {
- setA11yDiagramInfo(svgNode2, graphType);
- addSVGa11yTitleDescription(svgNode2, a11yTitle, a11yDescr, svgNode2.attr("id"));
+ function arraylike(data5) {
+ return typeof data5 === "object" && "length" in data5 ? data5 : Array.from(data5);
+ }
+ var init_data = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/data.js"() {
+ "use strict";
+ init_selection();
+ init_enter();
+ init_constant();
+ __name(bindIndex, "bindIndex");
+ __name(bindKey, "bindKey");
+ __name(datum, "datum");
+ __name(data_default, "default");
+ __name(arraylike, "arraylike");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/exit.js
+ function exit_default() {
+ return new Selection(this._exit || this._groups.map(sparse_default), this._parents);
}
- const mermaidAPI = Object.freeze({
- render: render$3,
- parse: parse$2,
- parseDirective: parseDirective$d,
- getDiagramFromText,
- initialize: initialize$1,
- getConfig: getConfig$1,
- setConfig,
- getSiteConfig,
- updateSiteConfig,
- reset: () => {
- reset();
- },
- globalReset: () => {
- reset(defaultConfig);
- },
- defaultConfig
+ var init_exit = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/exit.js"() {
+ "use strict";
+ init_sparse();
+ init_selection();
+ __name(exit_default, "default");
+ }
});
- setLogLevel$1(getConfig$1().logLevel);
- reset(getConfig$1());
- const handleError = (error, errors, parseError2) => {
- log$1.warn(error);
- if (isDetailedError(error)) {
- if (parseError2) {
- parseError2(error.str, error.hash);
- }
- errors.push({ ...error, message: error.str, error });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/join.js
+ function join_default(onenter, onupdate, onexit) {
+ var enter = this.enter(), update2 = this, exit = this.exit();
+ if (typeof onenter === "function") {
+ enter = onenter(enter);
+ if (enter) enter = enter.selection();
} else {
- if (parseError2) {
- parseError2(error);
- }
- if (error instanceof Error) {
- errors.push({
- str: error.message,
- message: error.message,
- hash: error.name,
- error
- });
- }
+ enter = enter.append(onenter + "");
}
- };
- const run$3 = async function(options2 = {
- querySelector: ".mermaid"
- }) {
- try {
- await runThrowsErrors(options2);
- } catch (e) {
- if (isDetailedError(e)) {
- log$1.error(e.str);
- }
- if (mermaid.parseError) {
- mermaid.parseError(e);
- }
- if (!options2.suppressErrors) {
- log$1.error("Use the suppressErrors option to suppress these errors");
- throw e;
+ if (onupdate != null) {
+ update2 = onupdate(update2);
+ if (update2) update2 = update2.selection();
+ }
+ if (onexit == null) exit.remove();
+ else onexit(exit);
+ return enter && update2 ? enter.merge(update2).order() : update2;
+ }
+ var init_join = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/join.js"() {
+ "use strict";
+ __name(join_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/merge.js
+ function merge_default(context) {
+ var selection2 = context.selection ? context.selection() : context;
+ for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m2 = Math.min(m0, m1), merges = new Array(m0), j2 = 0; j2 < m2; ++j2) {
+ for (var group0 = groups0[j2], group1 = groups1[j2], n2 = group0.length, merge5 = merges[j2] = new Array(n2), node2, i2 = 0; i2 < n2; ++i2) {
+ if (node2 = group0[i2] || group1[i2]) {
+ merge5[i2] = node2;
+ }
}
}
- };
- const runThrowsErrors = async function({ postRenderCallback, querySelector, nodes: nodes2 } = {
- querySelector: ".mermaid"
- }) {
- const conf2 = mermaidAPI.getConfig();
- log$1.debug(`${!postRenderCallback ? "No " : ""}Callback function found`);
- let nodesToProcess;
- if (nodes2) {
- nodesToProcess = nodes2;
- } else if (querySelector) {
- nodesToProcess = document.querySelectorAll(querySelector);
- } else {
- throw new Error("Nodes and querySelector are both undefined");
+ for (; j2 < m0; ++j2) {
+ merges[j2] = groups0[j2];
}
- log$1.debug(`Found ${nodesToProcess.length} diagrams`);
- if ((conf2 == null ? void 0 : conf2.startOnLoad) !== void 0) {
- log$1.debug("Start On Load: " + (conf2 == null ? void 0 : conf2.startOnLoad));
- mermaidAPI.updateSiteConfig({ startOnLoad: conf2 == null ? void 0 : conf2.startOnLoad });
+ return new Selection(merges, this._parents);
+ }
+ var init_merge2 = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/merge.js"() {
+ "use strict";
+ init_selection();
+ __name(merge_default, "default");
}
- const idGenerator = new utils.initIdGenerator(conf2.deterministicIds, conf2.deterministicIDSeed);
- let txt;
- const errors = [];
- for (const element of Array.from(nodesToProcess)) {
- log$1.info("Rendering diagram: " + element.id);
- /*! Check if previously processed */
- if (element.getAttribute("data-processed")) {
- continue;
- }
- element.setAttribute("data-processed", "true");
- const id2 = `mermaid-${idGenerator.next()}`;
- txt = element.innerHTML;
- txt = dedent(utils.entityDecode(txt)).trim().replace(/
/gi, "
");
- const init2 = utils.detectInit(txt);
- if (init2) {
- log$1.debug("Detected early reinit: ", init2);
- }
- try {
- const { svg: svg2, bindFunctions: bindFunctions2 } = await render$2(id2, txt, element);
- element.innerHTML = svg2;
- if (postRenderCallback) {
- await postRenderCallback(id2);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/order.js
+ function order_default() {
+ for (var groups = this._groups, j2 = -1, m2 = groups.length; ++j2 < m2; ) {
+ for (var group2 = groups[j2], i2 = group2.length - 1, next3 = group2[i2], node2; --i2 >= 0; ) {
+ if (node2 = group2[i2]) {
+ if (next3 && node2.compareDocumentPosition(next3) ^ 4) next3.parentNode.insertBefore(node2, next3);
+ next3 = node2;
}
- if (bindFunctions2) {
- bindFunctions2(element);
+ }
+ }
+ return this;
+ }
+ var init_order = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/order.js"() {
+ "use strict";
+ __name(order_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js
+ function sort_default(compare) {
+ if (!compare) compare = ascending2;
+ function compareNode(a2, b2) {
+ return a2 && b2 ? compare(a2.__data__, b2.__data__) : !a2 - !b2;
+ }
+ __name(compareNode, "compareNode");
+ for (var groups = this._groups, m2 = groups.length, sortgroups = new Array(m2), j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, sortgroup = sortgroups[j2] = new Array(n2), node2, i2 = 0; i2 < n2; ++i2) {
+ if (node2 = group2[i2]) {
+ sortgroup[i2] = node2;
}
- } catch (error) {
- handleError(error, errors, mermaid.parseError);
}
+ sortgroup.sort(compareNode);
}
- if (errors.length > 0) {
- throw errors[0];
+ return new Selection(sortgroups, this._parents).order();
+ }
+ function ascending2(a2, b2) {
+ return a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
+ }
+ var init_sort = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js"() {
+ "use strict";
+ init_selection();
+ __name(sort_default, "default");
+ __name(ascending2, "ascending");
}
- };
- const initialize = function(config2) {
- mermaidAPI.initialize(config2);
- };
- const init = async function(config2, nodes2, callback) {
- log$1.warn("mermaid.init is deprecated. Please use run instead.");
- if (config2) {
- initialize(config2);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/call.js
+ function call_default() {
+ var callback = arguments[0];
+ arguments[0] = this;
+ callback.apply(null, arguments);
+ return this;
+ }
+ var init_call = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/call.js"() {
+ "use strict";
+ __name(call_default, "default");
}
- const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" };
- if (typeof nodes2 === "string") {
- runOptions.querySelector = nodes2;
- } else if (nodes2) {
- if (nodes2 instanceof HTMLElement) {
- runOptions.nodes = [nodes2];
- } else {
- runOptions.nodes = nodes2;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/nodes.js
+ function nodes_default() {
+ return Array.from(this);
+ }
+ var init_nodes = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/nodes.js"() {
+ "use strict";
+ __name(nodes_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js
+ function node_default() {
+ for (var groups = this._groups, j2 = 0, m2 = groups.length; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], i2 = 0, n2 = group2.length; i2 < n2; ++i2) {
+ var node2 = group2[i2];
+ if (node2) return node2;
}
}
- await run$3(runOptions);
- };
- const registerExternalDiagrams = async (diagrams2, {
- lazyLoad = true
- } = {}) => {
- registerLazyLoadedDiagrams(...diagrams2);
- if (lazyLoad === false) {
- await loadRegisteredDiagrams();
+ return null;
+ }
+ var init_node = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js"() {
+ "use strict";
+ __name(node_default, "default");
}
- };
- const contentLoaded = function() {
- if (mermaid.startOnLoad) {
- const { startOnLoad } = mermaidAPI.getConfig();
- if (startOnLoad) {
- mermaid.run().catch((err) => log$1.error("Mermaid failed to initialize", err));
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js
+ function size_default() {
+ let size5 = 0;
+ for (const node2 of this) ++size5;
+ return size5;
+ }
+ var init_size2 = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js"() {
+ "use strict";
+ __name(size_default, "default");
}
- };
- if (typeof document !== "undefined") {
- /*!
- * Wait for document loaded before starting the execution
- */
- window.addEventListener("load", contentLoaded, false);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/empty.js
+ function empty_default() {
+ return !this.node();
}
- const setParseErrorHandler = function(parseErrorHandler) {
- mermaid.parseError = parseErrorHandler;
- };
- const executionQueue = [];
- let executionQueueRunning = false;
- const executeQueue = async () => {
- if (executionQueueRunning) {
- return;
+ var init_empty = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/empty.js"() {
+ "use strict";
+ __name(empty_default, "default");
}
- executionQueueRunning = true;
- while (executionQueue.length > 0) {
- const f2 = executionQueue.shift();
- if (f2) {
- try {
- await f2();
- } catch (e) {
- log$1.error("Error executing queue", e);
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js
+ function each_default(callback) {
+ for (var groups = this._groups, j2 = 0, m2 = groups.length; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], i2 = 0, n2 = group2.length, node2; i2 < n2; ++i2) {
+ if (node2 = group2[i2]) callback.call(node2, node2.__data__, i2, group2);
}
}
- executionQueueRunning = false;
- };
- const parse$1 = async (text2, parseOptions) => {
- return new Promise((resolve, reject) => {
- const performCall = () => new Promise((res, rej) => {
- mermaidAPI.parse(text2, parseOptions).then(
- (r) => {
- res(r);
- resolve(r);
- },
- (e) => {
- var _a;
- log$1.error("Error parsing", e);
- (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
- rej(e);
- reject(e);
- }
- );
- });
- executionQueue.push(performCall);
- executeQueue().catch(reject);
- });
- };
- const render$2 = (id2, text2, container) => {
- return new Promise((resolve, reject) => {
- const performCall = () => new Promise((res, rej) => {
- mermaidAPI.render(id2, text2, container).then(
- (r) => {
- res(r);
- resolve(r);
- },
- (e) => {
- var _a;
- log$1.error("Error parsing", e);
- (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
- rej(e);
- reject(e);
- }
- );
- });
- executionQueue.push(performCall);
- executeQueue().catch(reject);
- });
- };
- const mermaid = {
- startOnLoad: true,
- mermaidAPI,
- parse: parse$1,
- render: render$2,
- init,
- run: run$3,
- registerExternalDiagrams,
- initialize,
- parseError: void 0,
- contentLoaded,
- setParseErrorHandler,
- detectType
- };
- var parser$m = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 6], $V1 = [1, 7], $V2 = [1, 8], $V3 = [1, 9], $V4 = [1, 16], $V5 = [1, 11], $V6 = [1, 12], $V7 = [1, 13], $V8 = [1, 14], $V9 = [1, 15], $Va = [1, 27], $Vb = [1, 33], $Vc = [1, 34], $Vd = [1, 35], $Ve = [1, 36], $Vf = [1, 37], $Vg = [1, 72], $Vh = [1, 73], $Vi = [1, 74], $Vj = [1, 75], $Vk = [1, 76], $Vl = [1, 77], $Vm = [1, 78], $Vn = [1, 38], $Vo = [1, 39], $Vp = [1, 40], $Vq = [1, 41], $Vr = [1, 42], $Vs = [1, 43], $Vt = [1, 44], $Vu = [1, 45], $Vv = [1, 46], $Vw = [1, 47], $Vx = [1, 48], $Vy = [1, 49], $Vz = [1, 50], $VA = [1, 51], $VB = [1, 52], $VC = [1, 53], $VD = [1, 54], $VE = [1, 55], $VF = [1, 56], $VG = [1, 57], $VH = [1, 59], $VI = [1, 60], $VJ = [1, 61], $VK = [1, 62], $VL = [1, 63], $VM = [1, 64], $VN = [1, 65], $VO = [1, 66], $VP = [1, 67], $VQ = [1, 68], $VR = [1, 69], $VS = [24, 52], $VT = [24, 44, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], $VU = [15, 24, 44, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], $VV = [1, 94], $VW = [1, 95], $VX = [1, 96], $VY = [1, 97], $VZ = [15, 24, 52], $V_ = [7, 8, 9, 10, 18, 22, 25, 26, 27, 28], $V$ = [15, 24, 43, 52], $V01 = [15, 24, 43, 52, 86, 87, 89, 90], $V11 = [15, 43], $V21 = [44, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "directive": 6, "direction_tb": 7, "direction_bt": 8, "direction_rl": 9, "direction_lr": 10, "graphConfig": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, "NEWLINE": 15, ":": 16, "argDirective": 17, "open_directive": 18, "type_directive": 19, "arg_directive": 20, "close_directive": 21, "C4_CONTEXT": 22, "statements": 23, "EOF": 24, "C4_CONTAINER": 25, "C4_COMPONENT": 26, "C4_DYNAMIC": 27, "C4_DEPLOYMENT": 28, "otherStatements": 29, "diagramStatements": 30, "otherStatement": 31, "title": 32, "accDescription": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "boundaryStatement": 39, "boundaryStartStatement": 40, "boundaryStopStatement": 41, "boundaryStart": 42, "LBRACE": 43, "ENTERPRISE_BOUNDARY": 44, "attributes": 45, "SYSTEM_BOUNDARY": 46, "BOUNDARY": 47, "CONTAINER_BOUNDARY": 48, "NODE": 49, "NODE_L": 50, "NODE_R": 51, "RBRACE": 52, "diagramStatement": 53, "PERSON": 54, "PERSON_EXT": 55, "SYSTEM": 56, "SYSTEM_DB": 57, "SYSTEM_QUEUE": 58, "SYSTEM_EXT": 59, "SYSTEM_EXT_DB": 60, "SYSTEM_EXT_QUEUE": 61, "CONTAINER": 62, "CONTAINER_DB": 63, "CONTAINER_QUEUE": 64, "CONTAINER_EXT": 65, "CONTAINER_EXT_DB": 66, "CONTAINER_EXT_QUEUE": 67, "COMPONENT": 68, "COMPONENT_DB": 69, "COMPONENT_QUEUE": 70, "COMPONENT_EXT": 71, "COMPONENT_EXT_DB": 72, "COMPONENT_EXT_QUEUE": 73, "REL": 74, "BIREL": 75, "REL_U": 76, "REL_D": 77, "REL_L": 78, "REL_R": 79, "REL_B": 80, "REL_INDEX": 81, "UPDATE_EL_STYLE": 82, "UPDATE_REL_STYLE": 83, "UPDATE_LAYOUT_CONFIG": 84, "attribute": 85, "STR": 86, "STR_KEY": 87, "STR_VALUE": 88, "ATTRIBUTE": 89, "ATTRIBUTE_EMPTY": 90, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 7: "direction_tb", 8: "direction_bt", 9: "direction_rl", 10: "direction_lr", 15: "NEWLINE", 16: ":", 18: "open_directive", 19: "type_directive", 20: "arg_directive", 21: "close_directive", 22: "C4_CONTEXT", 24: "EOF", 25: "C4_CONTAINER", 26: "C4_COMPONENT", 27: "C4_DYNAMIC", 28: "C4_DEPLOYMENT", 32: "title", 33: "accDescription", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 43: "LBRACE", 44: "ENTERPRISE_BOUNDARY", 46: "SYSTEM_BOUNDARY", 47: "BOUNDARY", 48: "CONTAINER_BOUNDARY", 49: "NODE", 50: "NODE_L", 51: "NODE_R", 52: "RBRACE", 54: "PERSON", 55: "PERSON_EXT", 56: "SYSTEM", 57: "SYSTEM_DB", 58: "SYSTEM_QUEUE", 59: "SYSTEM_EXT", 60: "SYSTEM_EXT_DB", 61: "SYSTEM_EXT_QUEUE", 62: "CONTAINER", 63: "CONTAINER_DB", 64: "CONTAINER_QUEUE", 65: "CONTAINER_EXT", 66: "CONTAINER_EXT_DB", 67: "CONTAINER_EXT_QUEUE", 68: "COMPONENT", 69: "COMPONENT_DB", 70: "COMPONENT_QUEUE", 71: "COMPONENT_EXT", 72: "COMPONENT_EXT_DB", 73: "COMPONENT_EXT_QUEUE", 74: "REL", 75: "BIREL", 76: "REL_U", 77: "REL_D", 78: "REL_L", 79: "REL_R", 80: "REL_B", 81: "REL_INDEX", 82: "UPDATE_EL_STYLE", 83: "UPDATE_REL_STYLE", 84: "UPDATE_LAYOUT_CONFIG", 86: "STR", 87: "STR_KEY", 88: "STR_VALUE", 89: "ATTRIBUTE", 90: "ATTRIBUTE_EMPTY" },
- productions_: [0, [3, 1], [3, 1], [3, 2], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [6, 4], [6, 6], [12, 1], [13, 1], [17, 1], [14, 1], [11, 4], [11, 4], [11, 4], [11, 4], [11, 4], [23, 1], [23, 1], [23, 2], [29, 1], [29, 2], [29, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 1], [39, 3], [40, 3], [40, 3], [40, 4], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [41, 1], [30, 1], [30, 2], [30, 3], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 1], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [45, 1], [45, 2], [85, 1], [85, 2], [85, 1], [85, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 4:
- yy.setDirection("TB");
- break;
- case 5:
- yy.setDirection("BT");
- break;
- case 6:
- yy.setDirection("RL");
- break;
- case 7:
- yy.setDirection("LR");
- break;
- case 11:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 12:
- break;
- case 13:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 14:
- yy.parseDirective("}%%", "close_directive", "c4Context");
- break;
- case 15:
- case 16:
- case 17:
- case 18:
- case 19:
- yy.setC4Type($$[$0 - 3]);
- break;
- case 26:
- yy.setTitle($$[$0].substring(6));
- this.$ = $$[$0].substring(6);
- break;
- case 27:
- yy.setAccDescription($$[$0].substring(15));
- this.$ = $$[$0].substring(15);
- break;
- case 28:
- this.$ = $$[$0].trim();
- yy.setTitle(this.$);
- break;
- case 29:
- case 30:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 35:
- case 36:
- $$[$0].splice(2, 0, "ENTERPRISE");
- yy.addPersonOrSystemBoundary(...$$[$0]);
- this.$ = $$[$0];
- break;
- case 37:
- yy.addPersonOrSystemBoundary(...$$[$0]);
- this.$ = $$[$0];
- break;
- case 38:
- $$[$0].splice(2, 0, "CONTAINER");
- yy.addContainerBoundary(...$$[$0]);
- this.$ = $$[$0];
- break;
- case 39:
- yy.addDeploymentNode("node", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 40:
- yy.addDeploymentNode("nodeL", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 41:
- yy.addDeploymentNode("nodeR", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 42:
- yy.popBoundaryParseStack();
- break;
- case 46:
- yy.addPersonOrSystem("person", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 47:
- yy.addPersonOrSystem("external_person", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 48:
- yy.addPersonOrSystem("system", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 49:
- yy.addPersonOrSystem("system_db", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 50:
- yy.addPersonOrSystem("system_queue", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 51:
- yy.addPersonOrSystem("external_system", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 52:
- yy.addPersonOrSystem("external_system_db", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 53:
- yy.addPersonOrSystem("external_system_queue", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 54:
- yy.addContainer("container", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 55:
- yy.addContainer("container_db", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 56:
- yy.addContainer("container_queue", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 57:
- yy.addContainer("external_container", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 58:
- yy.addContainer("external_container_db", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 59:
- yy.addContainer("external_container_queue", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 60:
- yy.addComponent("component", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 61:
- yy.addComponent("component_db", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 62:
- yy.addComponent("component_queue", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 63:
- yy.addComponent("external_component", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 64:
- yy.addComponent("external_component_db", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 65:
- yy.addComponent("external_component_queue", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 67:
- yy.addRel("rel", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 68:
- yy.addRel("birel", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 69:
- yy.addRel("rel_u", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 70:
- yy.addRel("rel_d", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 71:
- yy.addRel("rel_l", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 72:
- yy.addRel("rel_r", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 73:
- yy.addRel("rel_b", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 74:
- $$[$0].splice(0, 1);
- yy.addRel("rel", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 75:
- yy.updateElStyle("update_el_style", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 76:
- yy.updateRelStyle("update_rel_style", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 77:
- yy.updateLayoutConfig("update_layout_config", ...$$[$0]);
- this.$ = $$[$0];
- break;
- case 78:
- this.$ = [$$[$0]];
- break;
- case 79:
- $$[$0].unshift($$[$0 - 1]);
- this.$ = $$[$0];
- break;
- case 80:
- case 82:
- this.$ = $$[$0].trim();
- break;
- case 81:
- let kv = {};
- kv[$$[$0 - 1].trim()] = $$[$0].trim();
- this.$ = kv;
- break;
- case 83:
- this.$ = "";
- break;
- }
- },
- table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 3: 17, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [2, 8] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 1: [2, 7] }, { 13: 18, 19: [1, 19] }, { 15: [1, 20] }, { 15: [1, 21] }, { 15: [1, 22] }, { 15: [1, 23] }, { 15: [1, 24] }, { 19: [2, 11] }, { 1: [2, 3] }, { 14: 25, 16: [1, 26], 21: $Va }, o([16, 21], [2, 12]), { 23: 28, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 79, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 80, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 81, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 82, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 83] }, { 17: 84, 20: [1, 85] }, { 15: [2, 14] }, { 24: [1, 86] }, o($VS, [2, 20], { 53: 32, 39: 58, 40: 70, 42: 71, 30: 87, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VS, [2, 21]), o($VT, [2, 23], { 15: [1, 88] }), o($VS, [2, 43], { 15: [1, 89] }), o($VU, [2, 26]), o($VU, [2, 27]), { 35: [1, 90] }, { 37: [1, 91] }, o($VU, [2, 30]), { 45: 92, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 98, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 99, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 100, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 101, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 102, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 103, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 104, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 105, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 106, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 107, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 108, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 109, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 110, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 111, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 112, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 113, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 114, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 115, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 116, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, o($VZ, [2, 66]), { 45: 117, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 118, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 119, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 120, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 121, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 122, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 123, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 124, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 125, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 126, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 127, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 30: 128, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 130], 43: [1, 129] }, { 45: 131, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 132, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 133, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 134, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 135, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 136, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 137, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 24: [1, 138] }, { 24: [1, 139] }, { 24: [1, 140] }, { 24: [1, 141] }, o($V_, [2, 9]), { 14: 142, 21: $Va }, { 21: [2, 13] }, { 1: [2, 15] }, o($VS, [2, 22]), o($VT, [2, 24], { 31: 31, 29: 143, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf }), o($VS, [2, 44], { 29: 29, 30: 30, 31: 31, 53: 32, 39: 58, 40: 70, 42: 71, 23: 144, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VU, [2, 28]), o($VU, [2, 29]), o($VZ, [2, 46]), o($V$, [2, 78], { 85: 93, 45: 145, 86: $VV, 87: $VW, 89: $VX, 90: $VY }), o($V01, [2, 80]), { 88: [1, 146] }, o($V01, [2, 82]), o($V01, [2, 83]), o($VZ, [2, 47]), o($VZ, [2, 48]), o($VZ, [2, 49]), o($VZ, [2, 50]), o($VZ, [2, 51]), o($VZ, [2, 52]), o($VZ, [2, 53]), o($VZ, [2, 54]), o($VZ, [2, 55]), o($VZ, [2, 56]), o($VZ, [2, 57]), o($VZ, [2, 58]), o($VZ, [2, 59]), o($VZ, [2, 60]), o($VZ, [2, 61]), o($VZ, [2, 62]), o($VZ, [2, 63]), o($VZ, [2, 64]), o($VZ, [2, 65]), o($VZ, [2, 67]), o($VZ, [2, 68]), o($VZ, [2, 69]), o($VZ, [2, 70]), o($VZ, [2, 71]), o($VZ, [2, 72]), o($VZ, [2, 73]), o($VZ, [2, 74]), o($VZ, [2, 75]), o($VZ, [2, 76]), o($VZ, [2, 77]), { 41: 147, 52: [1, 148] }, { 15: [1, 149] }, { 43: [1, 150] }, o($V11, [2, 35]), o($V11, [2, 36]), o($V11, [2, 37]), o($V11, [2, 38]), o($V11, [2, 39]), o($V11, [2, 40]), o($V11, [2, 41]), { 1: [2, 16] }, { 1: [2, 17] }, { 1: [2, 18] }, { 1: [2, 19] }, { 15: [1, 151] }, o($VT, [2, 25]), o($VS, [2, 45]), o($V$, [2, 79]), o($V01, [2, 81]), o($VZ, [2, 31]), o($VZ, [2, 42]), o($V21, [2, 32]), o($V21, [2, 33], { 15: [1, 152] }), o($V_, [2, 10]), o($V21, [2, 34])],
- defaultActions: { 2: [2, 1], 3: [2, 2], 5: [2, 8], 6: [2, 4], 7: [2, 5], 8: [2, 6], 9: [2, 7], 16: [2, 11], 17: [2, 3], 27: [2, 14], 85: [2, 13], 86: [2, 15], 138: [2, 16], 139: [2, 17], 140: [2, 18], 141: [2, 19] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
- }
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: {},
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 18;
- case 1:
- return 7;
- case 2:
- return 8;
- case 3:
- return 9;
- case 4:
- return 10;
- case 5:
- this.begin("type_directive");
- return 19;
- case 6:
- this.popState();
- this.begin("arg_directive");
- return 16;
- case 7:
- this.popState();
- this.popState();
- return 21;
- case 8:
- return 20;
- case 9:
- return 32;
- case 10:
- return 33;
- case 11:
- this.begin("acc_title");
- return 34;
- case 12:
- this.popState();
- return "acc_title_value";
- case 13:
- this.begin("acc_descr");
- return 36;
- case 14:
- this.popState();
- return "acc_descr_value";
- case 15:
- this.begin("acc_descr_multiline");
- break;
- case 16:
- this.popState();
- break;
- case 17:
- return "acc_descr_multiline_value";
- case 18:
- break;
- case 19:
- c;
- break;
- case 20:
- return 15;
- case 21:
- break;
- case 22:
- return 22;
- case 23:
- return 25;
- case 24:
- return 26;
- case 25:
- return 27;
- case 26:
- return 28;
- case 27:
- this.begin("person_ext");
- return 55;
- case 28:
- this.begin("person");
- return 54;
- case 29:
- this.begin("system_ext_queue");
- return 61;
- case 30:
- this.begin("system_ext_db");
- return 60;
- case 31:
- this.begin("system_ext");
- return 59;
- case 32:
- this.begin("system_queue");
- return 58;
- case 33:
- this.begin("system_db");
- return 57;
- case 34:
- this.begin("system");
- return 56;
- case 35:
- this.begin("boundary");
- return 47;
- case 36:
- this.begin("enterprise_boundary");
- return 44;
- case 37:
- this.begin("system_boundary");
- return 46;
- case 38:
- this.begin("container_ext_queue");
- return 67;
- case 39:
- this.begin("container_ext_db");
- return 66;
- case 40:
- this.begin("container_ext");
- return 65;
- case 41:
- this.begin("container_queue");
- return 64;
- case 42:
- this.begin("container_db");
- return 63;
- case 43:
- this.begin("container");
- return 62;
- case 44:
- this.begin("container_boundary");
- return 48;
- case 45:
- this.begin("component_ext_queue");
- return 73;
- case 46:
- this.begin("component_ext_db");
- return 72;
- case 47:
- this.begin("component_ext");
- return 71;
- case 48:
- this.begin("component_queue");
- return 70;
- case 49:
- this.begin("component_db");
- return 69;
- case 50:
- this.begin("component");
- return 68;
- case 51:
- this.begin("node");
- return 49;
- case 52:
- this.begin("node");
- return 49;
- case 53:
- this.begin("node_l");
- return 50;
- case 54:
- this.begin("node_r");
- return 51;
- case 55:
- this.begin("rel");
- return 74;
- case 56:
- this.begin("birel");
- return 75;
- case 57:
- this.begin("rel_u");
- return 76;
- case 58:
- this.begin("rel_u");
- return 76;
- case 59:
- this.begin("rel_d");
- return 77;
- case 60:
- this.begin("rel_d");
- return 77;
- case 61:
- this.begin("rel_l");
- return 78;
- case 62:
- this.begin("rel_l");
- return 78;
- case 63:
- this.begin("rel_r");
- return 79;
- case 64:
- this.begin("rel_r");
- return 79;
- case 65:
- this.begin("rel_b");
- return 80;
- case 66:
- this.begin("rel_index");
- return 81;
- case 67:
- this.begin("update_el_style");
- return 82;
- case 68:
- this.begin("update_rel_style");
- return 83;
- case 69:
- this.begin("update_layout_config");
- return 84;
- case 70:
- return "EOF_IN_STRUCT";
- case 71:
- this.begin("attribute");
- return "ATTRIBUTE_EMPTY";
- case 72:
- this.begin("attribute");
- break;
- case 73:
- this.popState();
- this.popState();
- break;
- case 74:
- return 90;
- case 75:
- break;
- case 76:
- return 90;
- case 77:
- this.begin("string");
- break;
- case 78:
- this.popState();
- break;
- case 79:
- return "STR";
- case 80:
- this.begin("string_kv");
- break;
- case 81:
- this.begin("string_kv_key");
- return "STR_KEY";
- case 82:
- this.popState();
- this.begin("string_kv_value");
- break;
- case 83:
- return "STR_VALUE";
- case 84:
- this.popState();
- this.popState();
- break;
- case 85:
- return "STR";
- case 86:
- return "LBRACE";
- case 87:
- return "RBRACE";
- case 88:
- return "SPACE";
- case 89:
- return "EOL";
- case 90:
- return 24;
- }
- },
- rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/],
- conditions: { "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [7, 8], "inclusive": false }, "type_directive": { "rules": [6, 7], "inclusive": false }, "open_directive": { "rules": [5], "inclusive": false }, "string_kv_value": { "rules": [83, 84], "inclusive": false }, "string_kv_key": { "rules": [82], "inclusive": false }, "string_kv": { "rules": [81], "inclusive": false }, "string": { "rules": [78, 79], "inclusive": false }, "attribute": { "rules": [73, 74, 75, 76, 77, 80, 85], "inclusive": false }, "update_layout_config": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_rel_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_el_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_b": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_d": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_u": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "node": { "rules": [70, 71, 72, 73], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext_queue": { "rules": [], "inclusive": false }, "container_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container": { "rules": [70, 71, 72, 73], "inclusive": false }, "birel": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "enterprise_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system": { "rules": [70, 71, 72, 73], "inclusive": false }, "person_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "person": { "rules": [70, 71, 72, 73], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 86, 87, 88, 89, 90], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$m.parser = parser$m;
- const c4Parser = parser$m;
- let c4ShapeArray = [];
- let boundaryParseStack = [""];
- let currentBoundaryParse = "global";
- let parentBoundaryParse = "";
- let boundarys = [
- {
- alias: "global",
- label: { text: "global" },
- type: { text: "global" },
- tags: null,
- link: null,
- parentBoundary: ""
+ return this;
+ }
+ var init_each = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js"() {
+ "use strict";
+ __name(each_default, "default");
}
- ];
- let rels = [];
- let title = "";
- let wrapEnabled$1 = false;
- let c4ShapeInRow$1 = 4;
- let c4BoundaryInRow$1 = 2;
- var c4Type;
- const getC4Type = function() {
- return c4Type;
- };
- const setC4Type = function(c4TypeParam) {
- let sanitizedText = sanitizeText$7(c4TypeParam, getConfig$1());
- c4Type = sanitizedText;
- };
- const parseDirective$b = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const addRel = function(type2, from2, to, label, techn, descr, sprite, tags2, link) {
- if (type2 === void 0 || type2 === null || from2 === void 0 || from2 === null || to === void 0 || to === null || label === void 0 || label === null) {
- return;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/attr.js
+ function attrRemove(name) {
+ return function() {
+ this.removeAttribute(name);
+ };
+ }
+ function attrRemoveNS(fullname) {
+ return function() {
+ this.removeAttributeNS(fullname.space, fullname.local);
+ };
+ }
+ function attrConstant(name, value2) {
+ return function() {
+ this.setAttribute(name, value2);
+ };
+ }
+ function attrConstantNS(fullname, value2) {
+ return function() {
+ this.setAttributeNS(fullname.space, fullname.local, value2);
+ };
+ }
+ function attrFunction(name, value2) {
+ return function() {
+ var v3 = value2.apply(this, arguments);
+ if (v3 == null) this.removeAttribute(name);
+ else this.setAttribute(name, v3);
+ };
+ }
+ function attrFunctionNS(fullname, value2) {
+ return function() {
+ var v3 = value2.apply(this, arguments);
+ if (v3 == null) this.removeAttributeNS(fullname.space, fullname.local);
+ else this.setAttributeNS(fullname.space, fullname.local, v3);
+ };
+ }
+ function attr_default(name, value2) {
+ var fullname = namespace_default(name);
+ if (arguments.length < 2) {
+ var node2 = this.node();
+ return fullname.local ? node2.getAttributeNS(fullname.space, fullname.local) : node2.getAttribute(fullname);
}
- let rel = {};
- const old = rels.find((rel2) => rel2.from === from2 && rel2.to === to);
- if (old) {
- rel = old;
- } else {
- rels.push(rel);
- }
- rel.type = type2;
- rel.from = from2;
- rel.to = to;
- rel.label = { text: label };
- if (techn === void 0 || techn === null) {
- rel.techn = { text: "" };
- } else {
- if (typeof techn === "object") {
- let [key, value] = Object.entries(techn)[0];
- rel[key] = { text: value };
- } else {
- rel.techn = { text: techn };
- }
+ return this.each((value2 == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value2 === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value2));
+ }
+ var init_attr = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/attr.js"() {
+ "use strict";
+ init_namespace();
+ __name(attrRemove, "attrRemove");
+ __name(attrRemoveNS, "attrRemoveNS");
+ __name(attrConstant, "attrConstant");
+ __name(attrConstantNS, "attrConstantNS");
+ __name(attrFunction, "attrFunction");
+ __name(attrFunctionNS, "attrFunctionNS");
+ __name(attr_default, "default");
}
- if (descr === void 0 || descr === null) {
- rel.descr = { text: "" };
- } else {
- if (typeof descr === "object") {
- let [key, value] = Object.entries(descr)[0];
- rel[key] = { text: value };
- } else {
- rel.descr = { text: descr };
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/window.js
+ function window_default(node2) {
+ return node2.ownerDocument && node2.ownerDocument.defaultView || node2.document && node2 || node2.defaultView;
+ }
+ var init_window = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/window.js"() {
+ "use strict";
+ __name(window_default, "default");
}
- if (typeof sprite === "object") {
- let [key, value] = Object.entries(sprite)[0];
- rel[key] = value;
- } else {
- rel.sprite = sprite;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/style.js
+ function styleRemove(name) {
+ return function() {
+ this.style.removeProperty(name);
+ };
+ }
+ function styleConstant(name, value2, priority3) {
+ return function() {
+ this.style.setProperty(name, value2, priority3);
+ };
+ }
+ function styleFunction(name, value2, priority3) {
+ return function() {
+ var v3 = value2.apply(this, arguments);
+ if (v3 == null) this.style.removeProperty(name);
+ else this.style.setProperty(name, v3, priority3);
+ };
+ }
+ function style_default(name, value2, priority3) {
+ return arguments.length > 1 ? this.each((value2 == null ? styleRemove : typeof value2 === "function" ? styleFunction : styleConstant)(name, value2, priority3 == null ? "" : priority3)) : styleValue(this.node(), name);
+ }
+ function styleValue(node2, name) {
+ return node2.style.getPropertyValue(name) || window_default(node2).getComputedStyle(node2, null).getPropertyValue(name);
+ }
+ var init_style = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/style.js"() {
+ "use strict";
+ init_window();
+ __name(styleRemove, "styleRemove");
+ __name(styleConstant, "styleConstant");
+ __name(styleFunction, "styleFunction");
+ __name(style_default, "default");
+ __name(styleValue, "styleValue");
}
- if (typeof tags2 === "object") {
- let [key, value] = Object.entries(tags2)[0];
- rel[key] = value;
- } else {
- rel.tags = tags2;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/property.js
+ function propertyRemove(name) {
+ return function() {
+ delete this[name];
+ };
+ }
+ function propertyConstant(name, value2) {
+ return function() {
+ this[name] = value2;
+ };
+ }
+ function propertyFunction(name, value2) {
+ return function() {
+ var v3 = value2.apply(this, arguments);
+ if (v3 == null) delete this[name];
+ else this[name] = v3;
+ };
+ }
+ function property_default(name, value2) {
+ return arguments.length > 1 ? this.each((value2 == null ? propertyRemove : typeof value2 === "function" ? propertyFunction : propertyConstant)(name, value2)) : this.node()[name];
+ }
+ var init_property = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/property.js"() {
+ "use strict";
+ __name(propertyRemove, "propertyRemove");
+ __name(propertyConstant, "propertyConstant");
+ __name(propertyFunction, "propertyFunction");
+ __name(property_default, "default");
}
- if (typeof link === "object") {
- let [key, value] = Object.entries(link)[0];
- rel[key] = value;
- } else {
- rel.link = link;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/classed.js
+ function classArray(string3) {
+ return string3.trim().split(/^|\s+/);
+ }
+ function classList(node2) {
+ return node2.classList || new ClassList(node2);
+ }
+ function ClassList(node2) {
+ this._node = node2;
+ this._names = classArray(node2.getAttribute("class") || "");
+ }
+ function classedAdd(node2, names) {
+ var list2 = classList(node2), i2 = -1, n2 = names.length;
+ while (++i2 < n2) list2.add(names[i2]);
+ }
+ function classedRemove(node2, names) {
+ var list2 = classList(node2), i2 = -1, n2 = names.length;
+ while (++i2 < n2) list2.remove(names[i2]);
+ }
+ function classedTrue(names) {
+ return function() {
+ classedAdd(this, names);
+ };
+ }
+ function classedFalse(names) {
+ return function() {
+ classedRemove(this, names);
+ };
+ }
+ function classedFunction(names, value2) {
+ return function() {
+ (value2.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
+ };
+ }
+ function classed_default(name, value2) {
+ var names = classArray(name + "");
+ if (arguments.length < 2) {
+ var list2 = classList(this.node()), i2 = -1, n2 = names.length;
+ while (++i2 < n2) if (!list2.contains(names[i2])) return false;
+ return true;
}
- rel.wrap = autoWrap$1();
- };
- const addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags2, link) {
- if (alias === null || label === null) {
- return;
+ return this.each((typeof value2 === "function" ? classedFunction : value2 ? classedTrue : classedFalse)(names, value2));
+ }
+ var init_classed = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/classed.js"() {
+ "use strict";
+ __name(classArray, "classArray");
+ __name(classList, "classList");
+ __name(ClassList, "ClassList");
+ ClassList.prototype = {
+ add: /* @__PURE__ */ __name(function(name) {
+ var i2 = this._names.indexOf(name);
+ if (i2 < 0) {
+ this._names.push(name);
+ this._node.setAttribute("class", this._names.join(" "));
+ }
+ }, "add"),
+ remove: /* @__PURE__ */ __name(function(name) {
+ var i2 = this._names.indexOf(name);
+ if (i2 >= 0) {
+ this._names.splice(i2, 1);
+ this._node.setAttribute("class", this._names.join(" "));
+ }
+ }, "remove"),
+ contains: /* @__PURE__ */ __name(function(name) {
+ return this._names.indexOf(name) >= 0;
+ }, "contains")
+ };
+ __name(classedAdd, "classedAdd");
+ __name(classedRemove, "classedRemove");
+ __name(classedTrue, "classedTrue");
+ __name(classedFalse, "classedFalse");
+ __name(classedFunction, "classedFunction");
+ __name(classed_default, "default");
}
- let personOrSystem = {};
- const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);
- if (old && alias === old.alias) {
- personOrSystem = old;
- } else {
- personOrSystem.alias = alias;
- c4ShapeArray.push(personOrSystem);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/text.js
+ function textRemove() {
+ this.textContent = "";
+ }
+ function textConstant(value2) {
+ return function() {
+ this.textContent = value2;
+ };
+ }
+ function textFunction(value2) {
+ return function() {
+ var v3 = value2.apply(this, arguments);
+ this.textContent = v3 == null ? "" : v3;
+ };
+ }
+ function text_default(value2) {
+ return arguments.length ? this.each(value2 == null ? textRemove : (typeof value2 === "function" ? textFunction : textConstant)(value2)) : this.node().textContent;
+ }
+ var init_text = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/text.js"() {
+ "use strict";
+ __name(textRemove, "textRemove");
+ __name(textConstant, "textConstant");
+ __name(textFunction, "textFunction");
+ __name(text_default, "default");
}
- if (label === void 0 || label === null) {
- personOrSystem.label = { text: "" };
- } else {
- personOrSystem.label = { text: label };
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/html.js
+ function htmlRemove() {
+ this.innerHTML = "";
+ }
+ function htmlConstant(value2) {
+ return function() {
+ this.innerHTML = value2;
+ };
+ }
+ function htmlFunction(value2) {
+ return function() {
+ var v3 = value2.apply(this, arguments);
+ this.innerHTML = v3 == null ? "" : v3;
+ };
+ }
+ function html_default(value2) {
+ return arguments.length ? this.each(value2 == null ? htmlRemove : (typeof value2 === "function" ? htmlFunction : htmlConstant)(value2)) : this.node().innerHTML;
+ }
+ var init_html2 = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/html.js"() {
+ "use strict";
+ __name(htmlRemove, "htmlRemove");
+ __name(htmlConstant, "htmlConstant");
+ __name(htmlFunction, "htmlFunction");
+ __name(html_default, "default");
}
- if (descr === void 0 || descr === null) {
- personOrSystem.descr = { text: "" };
- } else {
- if (typeof descr === "object") {
- let [key, value] = Object.entries(descr)[0];
- personOrSystem[key] = { text: value };
- } else {
- personOrSystem.descr = { text: descr };
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/raise.js
+ function raise() {
+ if (this.nextSibling) this.parentNode.appendChild(this);
+ }
+ function raise_default() {
+ return this.each(raise);
+ }
+ var init_raise = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/raise.js"() {
+ "use strict";
+ __name(raise, "raise");
+ __name(raise_default, "default");
}
- if (typeof sprite === "object") {
- let [key, value] = Object.entries(sprite)[0];
- personOrSystem[key] = value;
- } else {
- personOrSystem.sprite = sprite;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/lower.js
+ function lower() {
+ if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
+ }
+ function lower_default() {
+ return this.each(lower);
+ }
+ var init_lower = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/lower.js"() {
+ "use strict";
+ __name(lower, "lower");
+ __name(lower_default, "default");
}
- if (typeof tags2 === "object") {
- let [key, value] = Object.entries(tags2)[0];
- personOrSystem[key] = value;
- } else {
- personOrSystem.tags = tags2;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/append.js
+ function append_default(name) {
+ var create2 = typeof name === "function" ? name : creator_default(name);
+ return this.select(function() {
+ return this.appendChild(create2.apply(this, arguments));
+ });
+ }
+ var init_append = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/append.js"() {
+ "use strict";
+ init_creator();
+ __name(append_default, "default");
}
- if (typeof link === "object") {
- let [key, value] = Object.entries(link)[0];
- personOrSystem[key] = value;
- } else {
- personOrSystem.link = link;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/insert.js
+ function constantNull() {
+ return null;
+ }
+ function insert_default(name, before) {
+ var create2 = typeof name === "function" ? name : creator_default(name), select = before == null ? constantNull : typeof before === "function" ? before : selector_default(before);
+ return this.select(function() {
+ return this.insertBefore(create2.apply(this, arguments), select.apply(this, arguments) || null);
+ });
+ }
+ var init_insert = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/insert.js"() {
+ "use strict";
+ init_creator();
+ init_selector();
+ __name(constantNull, "constantNull");
+ __name(insert_default, "default");
}
- personOrSystem.typeC4Shape = { text: typeC4Shape };
- personOrSystem.parentBoundary = currentBoundaryParse;
- personOrSystem.wrap = autoWrap$1();
- };
- const addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags2, link) {
- if (alias === null || label === null) {
- return;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/remove.js
+ function remove() {
+ var parent4 = this.parentNode;
+ if (parent4) parent4.removeChild(this);
+ }
+ function remove_default() {
+ return this.each(remove);
+ }
+ var init_remove = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/remove.js"() {
+ "use strict";
+ __name(remove, "remove");
+ __name(remove_default, "default");
}
- let container = {};
- const old = c4ShapeArray.find((container2) => container2.alias === alias);
- if (old && alias === old.alias) {
- container = old;
- } else {
- container.alias = alias;
- c4ShapeArray.push(container);
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/clone.js
+ function selection_cloneShallow() {
+ var clone5 = this.cloneNode(false), parent4 = this.parentNode;
+ return parent4 ? parent4.insertBefore(clone5, this.nextSibling) : clone5;
+ }
+ function selection_cloneDeep() {
+ var clone5 = this.cloneNode(true), parent4 = this.parentNode;
+ return parent4 ? parent4.insertBefore(clone5, this.nextSibling) : clone5;
+ }
+ function clone_default(deep) {
+ return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
+ }
+ var init_clone = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/clone.js"() {
+ "use strict";
+ __name(selection_cloneShallow, "selection_cloneShallow");
+ __name(selection_cloneDeep, "selection_cloneDeep");
+ __name(clone_default, "default");
}
- if (label === void 0 || label === null) {
- container.label = { text: "" };
- } else {
- container.label = { text: label };
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/datum.js
+ function datum_default(value2) {
+ return arguments.length ? this.property("__data__", value2) : this.node().__data__;
+ }
+ var init_datum = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/datum.js"() {
+ "use strict";
+ __name(datum_default, "default");
}
- if (techn === void 0 || techn === null) {
- container.techn = { text: "" };
- } else {
- if (typeof techn === "object") {
- let [key, value] = Object.entries(techn)[0];
- container[key] = { text: value };
- } else {
- container.techn = { text: techn };
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js
+ function contextListener(listener) {
+ return function(event3) {
+ listener.call(this, event3, this.__data__);
+ };
+ }
+ function parseTypenames2(typenames) {
+ return typenames.trim().split(/^|\s+/).map(function(t4) {
+ var name = "", i2 = t4.indexOf(".");
+ if (i2 >= 0) name = t4.slice(i2 + 1), t4 = t4.slice(0, i2);
+ return { type: t4, name };
+ });
+ }
+ function onRemove(typename) {
+ return function() {
+ var on3 = this.__on;
+ if (!on3) return;
+ for (var j2 = 0, i2 = -1, m2 = on3.length, o2; j2 < m2; ++j2) {
+ if (o2 = on3[j2], (!typename.type || o2.type === typename.type) && o2.name === typename.name) {
+ this.removeEventListener(o2.type, o2.listener, o2.options);
+ } else {
+ on3[++i2] = o2;
+ }
}
- }
- if (descr === void 0 || descr === null) {
- container.descr = { text: "" };
- } else {
- if (typeof descr === "object") {
- let [key, value] = Object.entries(descr)[0];
- container[key] = { text: value };
- } else {
- container.descr = { text: descr };
+ if (++i2) on3.length = i2;
+ else delete this.__on;
+ };
+ }
+ function onAdd(typename, value2, options3) {
+ return function() {
+ var on3 = this.__on, o2, listener = contextListener(value2);
+ if (on3) for (var j2 = 0, m2 = on3.length; j2 < m2; ++j2) {
+ if ((o2 = on3[j2]).type === typename.type && o2.name === typename.name) {
+ this.removeEventListener(o2.type, o2.listener, o2.options);
+ this.addEventListener(o2.type, o2.listener = listener, o2.options = options3);
+ o2.value = value2;
+ return;
+ }
+ }
+ this.addEventListener(typename.type, listener, options3);
+ o2 = { type: typename.type, name: typename.name, value: value2, listener, options: options3 };
+ if (!on3) this.__on = [o2];
+ else on3.push(o2);
+ };
+ }
+ function on_default(typename, value2, options3) {
+ var typenames = parseTypenames2(typename + ""), i2, n2 = typenames.length, t4;
+ if (arguments.length < 2) {
+ var on3 = this.node().__on;
+ if (on3) for (var j2 = 0, m2 = on3.length, o2; j2 < m2; ++j2) {
+ for (i2 = 0, o2 = on3[j2]; i2 < n2; ++i2) {
+ if ((t4 = typenames[i2]).type === o2.type && t4.name === o2.name) {
+ return o2.value;
+ }
+ }
}
- }
- if (typeof sprite === "object") {
- let [key, value] = Object.entries(sprite)[0];
- container[key] = value;
- } else {
- container.sprite = sprite;
- }
- if (typeof tags2 === "object") {
- let [key, value] = Object.entries(tags2)[0];
- container[key] = value;
- } else {
- container.tags = tags2;
- }
- if (typeof link === "object") {
- let [key, value] = Object.entries(link)[0];
- container[key] = value;
- } else {
- container.link = link;
- }
- container.wrap = autoWrap$1();
- container.typeC4Shape = { text: typeC4Shape };
- container.parentBoundary = currentBoundaryParse;
- };
- const addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags2, link) {
- if (alias === null || label === null) {
return;
}
- let component = {};
- const old = c4ShapeArray.find((component2) => component2.alias === alias);
- if (old && alias === old.alias) {
- component = old;
- } else {
- component.alias = alias;
- c4ShapeArray.push(component);
+ on3 = value2 ? onAdd : onRemove;
+ for (i2 = 0; i2 < n2; ++i2) this.each(on3(typenames[i2], value2, options3));
+ return this;
+ }
+ var init_on = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js"() {
+ "use strict";
+ __name(contextListener, "contextListener");
+ __name(parseTypenames2, "parseTypenames");
+ __name(onRemove, "onRemove");
+ __name(onAdd, "onAdd");
+ __name(on_default, "default");
}
- if (label === void 0 || label === null) {
- component.label = { text: "" };
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/dispatch.js
+ function dispatchEvent(node2, type3, params) {
+ var window3 = window_default(node2), event3 = window3.CustomEvent;
+ if (typeof event3 === "function") {
+ event3 = new event3(type3, params);
} else {
- component.label = { text: label };
+ event3 = window3.document.createEvent("Event");
+ if (params) event3.initEvent(type3, params.bubbles, params.cancelable), event3.detail = params.detail;
+ else event3.initEvent(type3, false, false);
}
- if (techn === void 0 || techn === null) {
- component.techn = { text: "" };
- } else {
- if (typeof techn === "object") {
- let [key, value] = Object.entries(techn)[0];
- component[key] = { text: value };
- } else {
- component.techn = { text: techn };
- }
+ node2.dispatchEvent(event3);
+ }
+ function dispatchConstant(type3, params) {
+ return function() {
+ return dispatchEvent(this, type3, params);
+ };
+ }
+ function dispatchFunction(type3, params) {
+ return function() {
+ return dispatchEvent(this, type3, params.apply(this, arguments));
+ };
+ }
+ function dispatch_default2(type3, params) {
+ return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type3, params));
+ }
+ var init_dispatch2 = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/dispatch.js"() {
+ "use strict";
+ init_window();
+ __name(dispatchEvent, "dispatchEvent");
+ __name(dispatchConstant, "dispatchConstant");
+ __name(dispatchFunction, "dispatchFunction");
+ __name(dispatch_default2, "default");
}
- if (descr === void 0 || descr === null) {
- component.descr = { text: "" };
- } else {
- if (typeof descr === "object") {
- let [key, value] = Object.entries(descr)[0];
- component[key] = { text: value };
- } else {
- component.descr = { text: descr };
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/iterator.js
+ function* iterator_default() {
+ for (var groups = this._groups, j2 = 0, m2 = groups.length; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], i2 = 0, n2 = group2.length, node2; i2 < n2; ++i2) {
+ if (node2 = group2[i2]) yield node2;
}
}
- if (typeof sprite === "object") {
- let [key, value] = Object.entries(sprite)[0];
- component[key] = value;
- } else {
- component.sprite = sprite;
- }
- if (typeof tags2 === "object") {
- let [key, value] = Object.entries(tags2)[0];
- component[key] = value;
- } else {
- component.tags = tags2;
- }
- if (typeof link === "object") {
- let [key, value] = Object.entries(link)[0];
- component[key] = value;
- } else {
- component.link = link;
- }
- component.wrap = autoWrap$1();
- component.typeC4Shape = { text: typeC4Shape };
- component.parentBoundary = currentBoundaryParse;
- };
- const addPersonOrSystemBoundary = function(alias, label, type2, tags2, link) {
- if (alias === null || label === null) {
- return;
- }
- let boundary = {};
- const old = boundarys.find((boundary2) => boundary2.alias === alias);
- if (old && alias === old.alias) {
- boundary = old;
- } else {
- boundary.alias = alias;
- boundarys.push(boundary);
- }
- if (label === void 0 || label === null) {
- boundary.label = { text: "" };
- } else {
- boundary.label = { text: label };
- }
- if (type2 === void 0 || type2 === null) {
- boundary.type = { text: "system" };
- } else {
- if (typeof type2 === "object") {
- let [key, value] = Object.entries(type2)[0];
- boundary[key] = { text: value };
- } else {
- boundary.type = { text: type2 };
- }
+ }
+ var init_iterator = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/iterator.js"() {
+ "use strict";
+ __name(iterator_default, "default");
}
- if (typeof tags2 === "object") {
- let [key, value] = Object.entries(tags2)[0];
- boundary[key] = value;
- } else {
- boundary.tags = tags2;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js
+ function Selection(groups, parents4) {
+ this._groups = groups;
+ this._parents = parents4;
+ }
+ function selection() {
+ return new Selection([[document.documentElement]], root);
+ }
+ function selection_selection() {
+ return this;
+ }
+ var root, selection_default;
+ var init_selection = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js"() {
+ "use strict";
+ init_select();
+ init_selectAll();
+ init_selectChild();
+ init_selectChildren();
+ init_filter();
+ init_data();
+ init_enter();
+ init_exit();
+ init_join();
+ init_merge2();
+ init_order();
+ init_sort();
+ init_call();
+ init_nodes();
+ init_node();
+ init_size2();
+ init_empty();
+ init_each();
+ init_attr();
+ init_style();
+ init_property();
+ init_classed();
+ init_text();
+ init_html2();
+ init_raise();
+ init_lower();
+ init_append();
+ init_insert();
+ init_remove();
+ init_clone();
+ init_datum();
+ init_on();
+ init_dispatch2();
+ init_iterator();
+ root = [null];
+ __name(Selection, "Selection");
+ __name(selection, "selection");
+ __name(selection_selection, "selection_selection");
+ Selection.prototype = selection.prototype = {
+ constructor: Selection,
+ select: select_default,
+ selectAll: selectAll_default,
+ selectChild: selectChild_default,
+ selectChildren: selectChildren_default,
+ filter: filter_default,
+ data: data_default,
+ enter: enter_default,
+ exit: exit_default,
+ join: join_default,
+ merge: merge_default,
+ selection: selection_selection,
+ order: order_default,
+ sort: sort_default,
+ call: call_default,
+ nodes: nodes_default,
+ node: node_default,
+ size: size_default,
+ empty: empty_default,
+ each: each_default,
+ attr: attr_default,
+ style: style_default,
+ property: property_default,
+ classed: classed_default,
+ text: text_default,
+ html: html_default,
+ raise: raise_default,
+ lower: lower_default,
+ append: append_default,
+ insert: insert_default,
+ remove: remove_default,
+ clone: clone_default,
+ datum: datum_default,
+ on: on_default,
+ dispatch: dispatch_default2,
+ [Symbol.iterator]: iterator_default
+ };
+ selection_default = selection;
}
- if (typeof link === "object") {
- let [key, value] = Object.entries(link)[0];
- boundary[key] = value;
- } else {
- boundary.link = link;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js
+ function select_default2(selector) {
+ return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);
+ }
+ var init_select2 = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js"() {
+ "use strict";
+ init_selection();
+ __name(select_default2, "default");
}
- boundary.parentBoundary = currentBoundaryParse;
- boundary.wrap = autoWrap$1();
- parentBoundaryParse = currentBoundaryParse;
- currentBoundaryParse = alias;
- boundaryParseStack.push(parentBoundaryParse);
- };
- const addContainerBoundary = function(alias, label, type2, tags2, link) {
- if (alias === null || label === null) {
- return;
+ });
+
+ // ../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/index.js
+ var init_src5 = __esm({
+ "../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/index.js"() {
+ "use strict";
+ init_matcher();
+ init_namespace();
+ init_select2();
+ init_selection();
+ init_selector();
+ init_selectorAll();
+ init_style();
}
- let boundary = {};
- const old = boundarys.find((boundary2) => boundary2.alias === alias);
- if (old && alias === old.alias) {
- boundary = old;
- } else {
- boundary.alias = alias;
- boundarys.push(boundary);
+ });
+
+ // ../../node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/index.js
+ var init_src6 = __esm({
+ "../../node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/index.js"() {
+ "use strict";
}
- if (label === void 0 || label === null) {
- boundary.label = { text: "" };
- } else {
- boundary.label = { text: label };
+ });
+
+ // ../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js
+ function define_default(constructor, factory, prototype) {
+ constructor.prototype = factory.prototype = prototype;
+ prototype.constructor = constructor;
+ }
+ function extend(parent4, definition) {
+ var prototype = Object.create(parent4.prototype);
+ for (var key in definition) prototype[key] = definition[key];
+ return prototype;
+ }
+ var init_define = __esm({
+ "../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js"() {
+ "use strict";
+ __name(define_default, "default");
+ __name(extend, "extend");
}
- if (type2 === void 0 || type2 === null) {
- boundary.type = { text: "container" };
- } else {
- if (typeof type2 === "object") {
- let [key, value] = Object.entries(type2)[0];
- boundary[key] = { text: value };
- } else {
- boundary.type = { text: type2 };
- }
- }
- if (typeof tags2 === "object") {
- let [key, value] = Object.entries(tags2)[0];
- boundary[key] = value;
+ });
+
+ // ../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js
+ function Color2() {
+ }
+ function color_formatHex() {
+ return this.rgb().formatHex();
+ }
+ function color_formatHex8() {
+ return this.rgb().formatHex8();
+ }
+ function color_formatHsl() {
+ return hslConvert(this).formatHsl();
+ }
+ function color_formatRgb() {
+ return this.rgb().formatRgb();
+ }
+ function color(format3) {
+ var m2, l2;
+ format3 = (format3 + "").trim().toLowerCase();
+ return (m2 = reHex.exec(format3)) ? (l2 = m2[1].length, m2 = parseInt(m2[1], 16), l2 === 6 ? rgbn(m2) : l2 === 3 ? new Rgb(m2 >> 8 & 15 | m2 >> 4 & 240, m2 >> 4 & 15 | m2 & 240, (m2 & 15) << 4 | m2 & 15, 1) : l2 === 8 ? rgba2(m2 >> 24 & 255, m2 >> 16 & 255, m2 >> 8 & 255, (m2 & 255) / 255) : l2 === 4 ? rgba2(m2 >> 12 & 15 | m2 >> 8 & 240, m2 >> 8 & 15 | m2 >> 4 & 240, m2 >> 4 & 15 | m2 & 240, ((m2 & 15) << 4 | m2 & 15) / 255) : null) : (m2 = reRgbInteger.exec(format3)) ? new Rgb(m2[1], m2[2], m2[3], 1) : (m2 = reRgbPercent.exec(format3)) ? new Rgb(m2[1] * 255 / 100, m2[2] * 255 / 100, m2[3] * 255 / 100, 1) : (m2 = reRgbaInteger.exec(format3)) ? rgba2(m2[1], m2[2], m2[3], m2[4]) : (m2 = reRgbaPercent.exec(format3)) ? rgba2(m2[1] * 255 / 100, m2[2] * 255 / 100, m2[3] * 255 / 100, m2[4]) : (m2 = reHslPercent.exec(format3)) ? hsla(m2[1], m2[2] / 100, m2[3] / 100, 1) : (m2 = reHslaPercent.exec(format3)) ? hsla(m2[1], m2[2] / 100, m2[3] / 100, m2[4]) : named.hasOwnProperty(format3) ? rgbn(named[format3]) : format3 === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null;
+ }
+ function rgbn(n2) {
+ return new Rgb(n2 >> 16 & 255, n2 >> 8 & 255, n2 & 255, 1);
+ }
+ function rgba2(r2, g2, b2, a2) {
+ if (a2 <= 0) r2 = g2 = b2 = NaN;
+ return new Rgb(r2, g2, b2, a2);
+ }
+ function rgbConvert(o2) {
+ if (!(o2 instanceof Color2)) o2 = color(o2);
+ if (!o2) return new Rgb();
+ o2 = o2.rgb();
+ return new Rgb(o2.r, o2.g, o2.b, o2.opacity);
+ }
+ function rgb(r2, g2, b2, opacity) {
+ return arguments.length === 1 ? rgbConvert(r2) : new Rgb(r2, g2, b2, opacity == null ? 1 : opacity);
+ }
+ function Rgb(r2, g2, b2, opacity) {
+ this.r = +r2;
+ this.g = +g2;
+ this.b = +b2;
+ this.opacity = +opacity;
+ }
+ function rgb_formatHex() {
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
+ }
+ function rgb_formatHex8() {
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
+ }
+ function rgb_formatRgb() {
+ const a2 = clampa(this.opacity);
+ return `${a2 === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a2 === 1 ? ")" : `, ${a2})`}`;
+ }
+ function clampa(opacity) {
+ return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
+ }
+ function clampi(value2) {
+ return Math.max(0, Math.min(255, Math.round(value2) || 0));
+ }
+ function hex(value2) {
+ value2 = clampi(value2);
+ return (value2 < 16 ? "0" : "") + value2.toString(16);
+ }
+ function hsla(h2, s2, l2, a2) {
+ if (a2 <= 0) h2 = s2 = l2 = NaN;
+ else if (l2 <= 0 || l2 >= 1) h2 = s2 = NaN;
+ else if (s2 <= 0) h2 = NaN;
+ return new Hsl(h2, s2, l2, a2);
+ }
+ function hslConvert(o2) {
+ if (o2 instanceof Hsl) return new Hsl(o2.h, o2.s, o2.l, o2.opacity);
+ if (!(o2 instanceof Color2)) o2 = color(o2);
+ if (!o2) return new Hsl();
+ if (o2 instanceof Hsl) return o2;
+ o2 = o2.rgb();
+ var r2 = o2.r / 255, g2 = o2.g / 255, b2 = o2.b / 255, min9 = Math.min(r2, g2, b2), max10 = Math.max(r2, g2, b2), h2 = NaN, s2 = max10 - min9, l2 = (max10 + min9) / 2;
+ if (s2) {
+ if (r2 === max10) h2 = (g2 - b2) / s2 + (g2 < b2) * 6;
+ else if (g2 === max10) h2 = (b2 - r2) / s2 + 2;
+ else h2 = (r2 - g2) / s2 + 4;
+ s2 /= l2 < 0.5 ? max10 + min9 : 2 - max10 - min9;
+ h2 *= 60;
} else {
- boundary.tags = tags2;
+ s2 = l2 > 0 && l2 < 1 ? 0 : h2;
}
- if (typeof link === "object") {
- let [key, value] = Object.entries(link)[0];
- boundary[key] = value;
- } else {
- boundary.link = link;
+ return new Hsl(h2, s2, l2, o2.opacity);
+ }
+ function hsl(h2, s2, l2, opacity) {
+ return arguments.length === 1 ? hslConvert(h2) : new Hsl(h2, s2, l2, opacity == null ? 1 : opacity);
+ }
+ function Hsl(h2, s2, l2, opacity) {
+ this.h = +h2;
+ this.s = +s2;
+ this.l = +l2;
+ this.opacity = +opacity;
+ }
+ function clamph(value2) {
+ value2 = (value2 || 0) % 360;
+ return value2 < 0 ? value2 + 360 : value2;
+ }
+ function clampt(value2) {
+ return Math.max(0, Math.min(1, value2 || 0));
+ }
+ function hsl2rgb(h2, m1, m2) {
+ return (h2 < 60 ? m1 + (m2 - m1) * h2 / 60 : h2 < 180 ? m2 : h2 < 240 ? m1 + (m2 - m1) * (240 - h2) / 60 : m1) * 255;
+ }
+ var darker, brighter, reI, reN, reP, reHex, reRgbInteger, reRgbPercent, reRgbaInteger, reRgbaPercent, reHslPercent, reHslaPercent, named;
+ var init_color2 = __esm({
+ "../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js"() {
+ "use strict";
+ init_define();
+ __name(Color2, "Color");
+ darker = 0.7;
+ brighter = 1 / darker;
+ reI = "\\s*([+-]?\\d+)\\s*";
+ reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*";
+ reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*";
+ reHex = /^#([0-9a-f]{3,8})$/;
+ reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`);
+ reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`);
+ reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`);
+ reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`);
+ reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`);
+ reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
+ named = {
+ aliceblue: 15792383,
+ antiquewhite: 16444375,
+ aqua: 65535,
+ aquamarine: 8388564,
+ azure: 15794175,
+ beige: 16119260,
+ bisque: 16770244,
+ black: 0,
+ blanchedalmond: 16772045,
+ blue: 255,
+ blueviolet: 9055202,
+ brown: 10824234,
+ burlywood: 14596231,
+ cadetblue: 6266528,
+ chartreuse: 8388352,
+ chocolate: 13789470,
+ coral: 16744272,
+ cornflowerblue: 6591981,
+ cornsilk: 16775388,
+ crimson: 14423100,
+ cyan: 65535,
+ darkblue: 139,
+ darkcyan: 35723,
+ darkgoldenrod: 12092939,
+ darkgray: 11119017,
+ darkgreen: 25600,
+ darkgrey: 11119017,
+ darkkhaki: 12433259,
+ darkmagenta: 9109643,
+ darkolivegreen: 5597999,
+ darkorange: 16747520,
+ darkorchid: 10040012,
+ darkred: 9109504,
+ darksalmon: 15308410,
+ darkseagreen: 9419919,
+ darkslateblue: 4734347,
+ darkslategray: 3100495,
+ darkslategrey: 3100495,
+ darkturquoise: 52945,
+ darkviolet: 9699539,
+ deeppink: 16716947,
+ deepskyblue: 49151,
+ dimgray: 6908265,
+ dimgrey: 6908265,
+ dodgerblue: 2003199,
+ firebrick: 11674146,
+ floralwhite: 16775920,
+ forestgreen: 2263842,
+ fuchsia: 16711935,
+ gainsboro: 14474460,
+ ghostwhite: 16316671,
+ gold: 16766720,
+ goldenrod: 14329120,
+ gray: 8421504,
+ green: 32768,
+ greenyellow: 11403055,
+ grey: 8421504,
+ honeydew: 15794160,
+ hotpink: 16738740,
+ indianred: 13458524,
+ indigo: 4915330,
+ ivory: 16777200,
+ khaki: 15787660,
+ lavender: 15132410,
+ lavenderblush: 16773365,
+ lawngreen: 8190976,
+ lemonchiffon: 16775885,
+ lightblue: 11393254,
+ lightcoral: 15761536,
+ lightcyan: 14745599,
+ lightgoldenrodyellow: 16448210,
+ lightgray: 13882323,
+ lightgreen: 9498256,
+ lightgrey: 13882323,
+ lightpink: 16758465,
+ lightsalmon: 16752762,
+ lightseagreen: 2142890,
+ lightskyblue: 8900346,
+ lightslategray: 7833753,
+ lightslategrey: 7833753,
+ lightsteelblue: 11584734,
+ lightyellow: 16777184,
+ lime: 65280,
+ limegreen: 3329330,
+ linen: 16445670,
+ magenta: 16711935,
+ maroon: 8388608,
+ mediumaquamarine: 6737322,
+ mediumblue: 205,
+ mediumorchid: 12211667,
+ mediumpurple: 9662683,
+ mediumseagreen: 3978097,
+ mediumslateblue: 8087790,
+ mediumspringgreen: 64154,
+ mediumturquoise: 4772300,
+ mediumvioletred: 13047173,
+ midnightblue: 1644912,
+ mintcream: 16121850,
+ mistyrose: 16770273,
+ moccasin: 16770229,
+ navajowhite: 16768685,
+ navy: 128,
+ oldlace: 16643558,
+ olive: 8421376,
+ olivedrab: 7048739,
+ orange: 16753920,
+ orangered: 16729344,
+ orchid: 14315734,
+ palegoldenrod: 15657130,
+ palegreen: 10025880,
+ paleturquoise: 11529966,
+ palevioletred: 14381203,
+ papayawhip: 16773077,
+ peachpuff: 16767673,
+ peru: 13468991,
+ pink: 16761035,
+ plum: 14524637,
+ powderblue: 11591910,
+ purple: 8388736,
+ rebeccapurple: 6697881,
+ red: 16711680,
+ rosybrown: 12357519,
+ royalblue: 4286945,
+ saddlebrown: 9127187,
+ salmon: 16416882,
+ sandybrown: 16032864,
+ seagreen: 3050327,
+ seashell: 16774638,
+ sienna: 10506797,
+ silver: 12632256,
+ skyblue: 8900331,
+ slateblue: 6970061,
+ slategray: 7372944,
+ slategrey: 7372944,
+ snow: 16775930,
+ springgreen: 65407,
+ steelblue: 4620980,
+ tan: 13808780,
+ teal: 32896,
+ thistle: 14204888,
+ tomato: 16737095,
+ turquoise: 4251856,
+ violet: 15631086,
+ wheat: 16113331,
+ white: 16777215,
+ whitesmoke: 16119285,
+ yellow: 16776960,
+ yellowgreen: 10145074
+ };
+ define_default(Color2, color, {
+ copy(channels2) {
+ return Object.assign(new this.constructor(), this, channels2);
+ },
+ displayable() {
+ return this.rgb().displayable();
+ },
+ hex: color_formatHex,
+ // Deprecated! Use color.formatHex.
+ formatHex: color_formatHex,
+ formatHex8: color_formatHex8,
+ formatHsl: color_formatHsl,
+ formatRgb: color_formatRgb,
+ toString: color_formatRgb
+ });
+ __name(color_formatHex, "color_formatHex");
+ __name(color_formatHex8, "color_formatHex8");
+ __name(color_formatHsl, "color_formatHsl");
+ __name(color_formatRgb, "color_formatRgb");
+ __name(color, "color");
+ __name(rgbn, "rgbn");
+ __name(rgba2, "rgba");
+ __name(rgbConvert, "rgbConvert");
+ __name(rgb, "rgb");
+ __name(Rgb, "Rgb");
+ define_default(Rgb, rgb, extend(Color2, {
+ brighter(k2) {
+ k2 = k2 == null ? brighter : Math.pow(brighter, k2);
+ return new Rgb(this.r * k2, this.g * k2, this.b * k2, this.opacity);
+ },
+ darker(k2) {
+ k2 = k2 == null ? darker : Math.pow(darker, k2);
+ return new Rgb(this.r * k2, this.g * k2, this.b * k2, this.opacity);
+ },
+ rgb() {
+ return this;
+ },
+ clamp() {
+ return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
+ },
+ displayable() {
+ return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);
+ },
+ hex: rgb_formatHex,
+ // Deprecated! Use color.formatHex.
+ formatHex: rgb_formatHex,
+ formatHex8: rgb_formatHex8,
+ formatRgb: rgb_formatRgb,
+ toString: rgb_formatRgb
+ }));
+ __name(rgb_formatHex, "rgb_formatHex");
+ __name(rgb_formatHex8, "rgb_formatHex8");
+ __name(rgb_formatRgb, "rgb_formatRgb");
+ __name(clampa, "clampa");
+ __name(clampi, "clampi");
+ __name(hex, "hex");
+ __name(hsla, "hsla");
+ __name(hslConvert, "hslConvert");
+ __name(hsl, "hsl");
+ __name(Hsl, "Hsl");
+ define_default(Hsl, hsl, extend(Color2, {
+ brighter(k2) {
+ k2 = k2 == null ? brighter : Math.pow(brighter, k2);
+ return new Hsl(this.h, this.s, this.l * k2, this.opacity);
+ },
+ darker(k2) {
+ k2 = k2 == null ? darker : Math.pow(darker, k2);
+ return new Hsl(this.h, this.s, this.l * k2, this.opacity);
+ },
+ rgb() {
+ var h2 = this.h % 360 + (this.h < 0) * 360, s2 = isNaN(h2) || isNaN(this.s) ? 0 : this.s, l2 = this.l, m2 = l2 + (l2 < 0.5 ? l2 : 1 - l2) * s2, m1 = 2 * l2 - m2;
+ return new Rgb(
+ hsl2rgb(h2 >= 240 ? h2 - 240 : h2 + 120, m1, m2),
+ hsl2rgb(h2, m1, m2),
+ hsl2rgb(h2 < 120 ? h2 + 240 : h2 - 120, m1, m2),
+ this.opacity
+ );
+ },
+ clamp() {
+ return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
+ },
+ displayable() {
+ return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);
+ },
+ formatHsl() {
+ const a2 = clampa(this.opacity);
+ return `${a2 === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a2 === 1 ? ")" : `, ${a2})`}`;
+ }
+ }));
+ __name(clamph, "clamph");
+ __name(clampt, "clampt");
+ __name(hsl2rgb, "hsl2rgb");
}
- boundary.parentBoundary = currentBoundaryParse;
- boundary.wrap = autoWrap$1();
- parentBoundaryParse = currentBoundaryParse;
- currentBoundaryParse = alias;
- boundaryParseStack.push(parentBoundaryParse);
- };
- const addDeploymentNode = function(nodeType2, alias, label, type2, descr, sprite, tags2, link) {
- if (alias === null || label === null) {
- return;
+ });
+
+ // ../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/math.js
+ var radians, degrees;
+ var init_math = __esm({
+ "../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/math.js"() {
+ "use strict";
+ radians = Math.PI / 180;
+ degrees = 180 / Math.PI;
}
- let boundary = {};
- const old = boundarys.find((boundary2) => boundary2.alias === alias);
- if (old && alias === old.alias) {
- boundary = old;
- } else {
- boundary.alias = alias;
- boundarys.push(boundary);
+ });
+
+ // ../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/lab.js
+ function labConvert(o2) {
+ if (o2 instanceof Lab) return new Lab(o2.l, o2.a, o2.b, o2.opacity);
+ if (o2 instanceof Hcl) return hcl2lab(o2);
+ if (!(o2 instanceof Rgb)) o2 = rgbConvert(o2);
+ var r2 = rgb2lrgb(o2.r), g2 = rgb2lrgb(o2.g), b2 = rgb2lrgb(o2.b), y5 = xyz2lab((0.2225045 * r2 + 0.7168786 * g2 + 0.0606169 * b2) / Yn), x5, z2;
+ if (r2 === g2 && g2 === b2) x5 = z2 = y5;
+ else {
+ x5 = xyz2lab((0.4360747 * r2 + 0.3850649 * g2 + 0.1430804 * b2) / Xn);
+ z2 = xyz2lab((0.0139322 * r2 + 0.0971045 * g2 + 0.7141733 * b2) / Zn);
}
- if (label === void 0 || label === null) {
- boundary.label = { text: "" };
- } else {
- boundary.label = { text: label };
+ return new Lab(116 * y5 - 16, 500 * (x5 - y5), 200 * (y5 - z2), o2.opacity);
+ }
+ function lab(l2, a2, b2, opacity) {
+ return arguments.length === 1 ? labConvert(l2) : new Lab(l2, a2, b2, opacity == null ? 1 : opacity);
+ }
+ function Lab(l2, a2, b2, opacity) {
+ this.l = +l2;
+ this.a = +a2;
+ this.b = +b2;
+ this.opacity = +opacity;
+ }
+ function xyz2lab(t4) {
+ return t4 > t3 ? Math.pow(t4, 1 / 3) : t4 / t2 + t0;
+ }
+ function lab2xyz(t4) {
+ return t4 > t1 ? t4 * t4 * t4 : t2 * (t4 - t0);
+ }
+ function lrgb2rgb(x5) {
+ return 255 * (x5 <= 31308e-7 ? 12.92 * x5 : 1.055 * Math.pow(x5, 1 / 2.4) - 0.055);
+ }
+ function rgb2lrgb(x5) {
+ return (x5 /= 255) <= 0.04045 ? x5 / 12.92 : Math.pow((x5 + 0.055) / 1.055, 2.4);
+ }
+ function hclConvert(o2) {
+ if (o2 instanceof Hcl) return new Hcl(o2.h, o2.c, o2.l, o2.opacity);
+ if (!(o2 instanceof Lab)) o2 = labConvert(o2);
+ if (o2.a === 0 && o2.b === 0) return new Hcl(NaN, 0 < o2.l && o2.l < 100 ? 0 : NaN, o2.l, o2.opacity);
+ var h2 = Math.atan2(o2.b, o2.a) * degrees;
+ return new Hcl(h2 < 0 ? h2 + 360 : h2, Math.sqrt(o2.a * o2.a + o2.b * o2.b), o2.l, o2.opacity);
+ }
+ function hcl(h2, c3, l2, opacity) {
+ return arguments.length === 1 ? hclConvert(h2) : new Hcl(h2, c3, l2, opacity == null ? 1 : opacity);
+ }
+ function Hcl(h2, c3, l2, opacity) {
+ this.h = +h2;
+ this.c = +c3;
+ this.l = +l2;
+ this.opacity = +opacity;
+ }
+ function hcl2lab(o2) {
+ if (isNaN(o2.h)) return new Lab(o2.l, 0, 0, o2.opacity);
+ var h2 = o2.h * radians;
+ return new Lab(o2.l, Math.cos(h2) * o2.c, Math.sin(h2) * o2.c, o2.opacity);
+ }
+ var K, Xn, Yn, Zn, t0, t1, t2, t3;
+ var init_lab = __esm({
+ "../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/lab.js"() {
+ "use strict";
+ init_define();
+ init_color2();
+ init_math();
+ K = 18;
+ Xn = 0.96422;
+ Yn = 1;
+ Zn = 0.82521;
+ t0 = 4 / 29;
+ t1 = 6 / 29;
+ t2 = 3 * t1 * t1;
+ t3 = t1 * t1 * t1;
+ __name(labConvert, "labConvert");
+ __name(lab, "lab");
+ __name(Lab, "Lab");
+ define_default(Lab, lab, extend(Color2, {
+ brighter(k2) {
+ return new Lab(this.l + K * (k2 == null ? 1 : k2), this.a, this.b, this.opacity);
+ },
+ darker(k2) {
+ return new Lab(this.l - K * (k2 == null ? 1 : k2), this.a, this.b, this.opacity);
+ },
+ rgb() {
+ var y5 = (this.l + 16) / 116, x5 = isNaN(this.a) ? y5 : y5 + this.a / 500, z2 = isNaN(this.b) ? y5 : y5 - this.b / 200;
+ x5 = Xn * lab2xyz(x5);
+ y5 = Yn * lab2xyz(y5);
+ z2 = Zn * lab2xyz(z2);
+ return new Rgb(
+ lrgb2rgb(3.1338561 * x5 - 1.6168667 * y5 - 0.4906146 * z2),
+ lrgb2rgb(-0.9787684 * x5 + 1.9161415 * y5 + 0.033454 * z2),
+ lrgb2rgb(0.0719453 * x5 - 0.2289914 * y5 + 1.4052427 * z2),
+ this.opacity
+ );
+ }
+ }));
+ __name(xyz2lab, "xyz2lab");
+ __name(lab2xyz, "lab2xyz");
+ __name(lrgb2rgb, "lrgb2rgb");
+ __name(rgb2lrgb, "rgb2lrgb");
+ __name(hclConvert, "hclConvert");
+ __name(hcl, "hcl");
+ __name(Hcl, "Hcl");
+ __name(hcl2lab, "hcl2lab");
+ define_default(Hcl, hcl, extend(Color2, {
+ brighter(k2) {
+ return new Hcl(this.h, this.c, this.l + K * (k2 == null ? 1 : k2), this.opacity);
+ },
+ darker(k2) {
+ return new Hcl(this.h, this.c, this.l - K * (k2 == null ? 1 : k2), this.opacity);
+ },
+ rgb() {
+ return hcl2lab(this).rgb();
+ }
+ }));
}
- if (type2 === void 0 || type2 === null) {
- boundary.type = { text: "node" };
- } else {
- if (typeof type2 === "object") {
- let [key, value] = Object.entries(type2)[0];
- boundary[key] = { text: value };
- } else {
- boundary.type = { text: type2 };
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/index.js
+ var init_src7 = __esm({
+ "../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/index.js"() {
+ "use strict";
+ init_color2();
+ init_lab();
}
- if (descr === void 0 || descr === null) {
- boundary.descr = { text: "" };
- } else {
- if (typeof descr === "object") {
- let [key, value] = Object.entries(descr)[0];
- boundary[key] = { text: value };
- } else {
- boundary.descr = { text: descr };
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js
+ function basis(t13, v0, v12, v22, v3) {
+ var t22 = t13 * t13, t32 = t22 * t13;
+ return ((1 - 3 * t13 + 3 * t22 - t32) * v0 + (4 - 6 * t22 + 3 * t32) * v12 + (1 + 3 * t13 + 3 * t22 - 3 * t32) * v22 + t32 * v3) / 6;
+ }
+ function basis_default(values2) {
+ var n2 = values2.length - 1;
+ return function(t4) {
+ var i2 = t4 <= 0 ? t4 = 0 : t4 >= 1 ? (t4 = 1, n2 - 1) : Math.floor(t4 * n2), v12 = values2[i2], v22 = values2[i2 + 1], v0 = i2 > 0 ? values2[i2 - 1] : 2 * v12 - v22, v3 = i2 < n2 - 1 ? values2[i2 + 2] : 2 * v22 - v12;
+ return basis((t4 - i2 / n2) * n2, v0, v12, v22, v3);
+ };
+ }
+ var init_basis = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js"() {
+ "use strict";
+ __name(basis, "basis");
+ __name(basis_default, "default");
}
- if (typeof tags2 === "object") {
- let [key, value] = Object.entries(tags2)[0];
- boundary[key] = value;
- } else {
- boundary.tags = tags2;
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js
+ function basisClosed_default(values2) {
+ var n2 = values2.length;
+ return function(t4) {
+ var i2 = Math.floor(((t4 %= 1) < 0 ? ++t4 : t4) * n2), v0 = values2[(i2 + n2 - 1) % n2], v12 = values2[i2 % n2], v22 = values2[(i2 + 1) % n2], v3 = values2[(i2 + 2) % n2];
+ return basis((t4 - i2 / n2) * n2, v0, v12, v22, v3);
+ };
+ }
+ var init_basisClosed = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js"() {
+ "use strict";
+ init_basis();
+ __name(basisClosed_default, "default");
}
- if (typeof link === "object") {
- let [key, value] = Object.entries(link)[0];
- boundary[key] = value;
- } else {
- boundary.link = link;
- }
- boundary.nodeType = nodeType2;
- boundary.parentBoundary = currentBoundaryParse;
- boundary.wrap = autoWrap$1();
- parentBoundaryParse = currentBoundaryParse;
- currentBoundaryParse = alias;
- boundaryParseStack.push(parentBoundaryParse);
- };
- const popBoundaryParseStack = function() {
- currentBoundaryParse = parentBoundaryParse;
- boundaryParseStack.pop();
- parentBoundaryParse = boundaryParseStack.pop();
- boundaryParseStack.push(parentBoundaryParse);
- };
- const updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {
- let old = c4ShapeArray.find((element) => element.alias === elementName);
- if (old === void 0) {
- old = boundarys.find((element) => element.alias === elementName);
- if (old === void 0) {
- return;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js
+ var constant_default2;
+ var init_constant2 = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js"() {
+ "use strict";
+ constant_default2 = /* @__PURE__ */ __name((x5) => () => x5, "default");
}
- if (bgColor !== void 0 && bgColor !== null) {
- if (typeof bgColor === "object") {
- let [key, value] = Object.entries(bgColor)[0];
- old[key] = value;
- } else {
- old.bgColor = bgColor;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js
+ function linear(a2, d2) {
+ return function(t4) {
+ return a2 + t4 * d2;
+ };
+ }
+ function exponential(a2, b2, y5) {
+ return a2 = Math.pow(a2, y5), b2 = Math.pow(b2, y5) - a2, y5 = 1 / y5, function(t4) {
+ return Math.pow(a2 + t4 * b2, y5);
+ };
+ }
+ function hue(a2, b2) {
+ var d2 = b2 - a2;
+ return d2 ? linear(a2, d2 > 180 || d2 < -180 ? d2 - 360 * Math.round(d2 / 360) : d2) : constant_default2(isNaN(a2) ? b2 : a2);
+ }
+ function gamma(y5) {
+ return (y5 = +y5) === 1 ? nogamma : function(a2, b2) {
+ return b2 - a2 ? exponential(a2, b2, y5) : constant_default2(isNaN(a2) ? b2 : a2);
+ };
+ }
+ function nogamma(a2, b2) {
+ var d2 = b2 - a2;
+ return d2 ? linear(a2, d2) : constant_default2(isNaN(a2) ? b2 : a2);
+ }
+ var init_color3 = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js"() {
+ "use strict";
+ init_constant2();
+ __name(linear, "linear");
+ __name(exponential, "exponential");
+ __name(hue, "hue");
+ __name(gamma, "gamma");
+ __name(nogamma, "nogamma");
}
- if (fontColor !== void 0 && fontColor !== null) {
- if (typeof fontColor === "object") {
- let [key, value] = Object.entries(fontColor)[0];
- old[key] = value;
- } else {
- old.fontColor = fontColor;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js
+ function rgbSpline(spline) {
+ return function(colors2) {
+ var n2 = colors2.length, r2 = new Array(n2), g2 = new Array(n2), b2 = new Array(n2), i2, color2;
+ for (i2 = 0; i2 < n2; ++i2) {
+ color2 = rgb(colors2[i2]);
+ r2[i2] = color2.r || 0;
+ g2[i2] = color2.g || 0;
+ b2[i2] = color2.b || 0;
+ }
+ r2 = spline(r2);
+ g2 = spline(g2);
+ b2 = spline(b2);
+ color2.opacity = 1;
+ return function(t4) {
+ color2.r = r2(t4);
+ color2.g = g2(t4);
+ color2.b = b2(t4);
+ return color2 + "";
+ };
+ };
+ }
+ var rgb_default2, rgbBasis, rgbBasisClosed;
+ var init_rgb2 = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js"() {
+ "use strict";
+ init_src7();
+ init_basis();
+ init_basisClosed();
+ init_color3();
+ rgb_default2 = (/* @__PURE__ */ __name(function rgbGamma(y5) {
+ var color2 = gamma(y5);
+ function rgb2(start3, end2) {
+ var r2 = color2((start3 = rgb(start3)).r, (end2 = rgb(end2)).r), g2 = color2(start3.g, end2.g), b2 = color2(start3.b, end2.b), opacity = nogamma(start3.opacity, end2.opacity);
+ return function(t4) {
+ start3.r = r2(t4);
+ start3.g = g2(t4);
+ start3.b = b2(t4);
+ start3.opacity = opacity(t4);
+ return start3 + "";
+ };
+ }
+ __name(rgb2, "rgb");
+ rgb2.gamma = rgbGamma;
+ return rgb2;
+ }, "rgbGamma"))(1);
+ __name(rgbSpline, "rgbSpline");
+ rgbBasis = rgbSpline(basis_default);
+ rgbBasisClosed = rgbSpline(basisClosed_default);
}
- if (borderColor !== void 0 && borderColor !== null) {
- if (typeof borderColor === "object") {
- let [key, value] = Object.entries(borderColor)[0];
- old[key] = value;
- } else {
- old.borderColor = borderColor;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js
+ function numberArray_default(a2, b2) {
+ if (!b2) b2 = [];
+ var n2 = a2 ? Math.min(b2.length, a2.length) : 0, c3 = b2.slice(), i2;
+ return function(t4) {
+ for (i2 = 0; i2 < n2; ++i2) c3[i2] = a2[i2] * (1 - t4) + b2[i2] * t4;
+ return c3;
+ };
+ }
+ function isNumberArray(x5) {
+ return ArrayBuffer.isView(x5) && !(x5 instanceof DataView);
+ }
+ var init_numberArray = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js"() {
+ "use strict";
+ __name(numberArray_default, "default");
+ __name(isNumberArray, "isNumberArray");
}
- if (shadowing !== void 0 && shadowing !== null) {
- if (typeof shadowing === "object") {
- let [key, value] = Object.entries(shadowing)[0];
- old[key] = value;
- } else {
- old.shadowing = shadowing;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js
+ function genericArray(a2, b2) {
+ var nb = b2 ? b2.length : 0, na = a2 ? Math.min(nb, a2.length) : 0, x5 = new Array(na), c3 = new Array(nb), i2;
+ for (i2 = 0; i2 < na; ++i2) x5[i2] = value_default(a2[i2], b2[i2]);
+ for (; i2 < nb; ++i2) c3[i2] = b2[i2];
+ return function(t4) {
+ for (i2 = 0; i2 < na; ++i2) c3[i2] = x5[i2](t4);
+ return c3;
+ };
+ }
+ var init_array2 = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js"() {
+ "use strict";
+ init_value();
+ __name(genericArray, "genericArray");
}
- if (shape !== void 0 && shape !== null) {
- if (typeof shape === "object") {
- let [key, value] = Object.entries(shape)[0];
- old[key] = value;
- } else {
- old.shape = shape;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js
+ function date_default(a2, b2) {
+ var d2 = /* @__PURE__ */ new Date();
+ return a2 = +a2, b2 = +b2, function(t4) {
+ return d2.setTime(a2 * (1 - t4) + b2 * t4), d2;
+ };
+ }
+ var init_date = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js"() {
+ "use strict";
+ __name(date_default, "default");
}
- if (sprite !== void 0 && sprite !== null) {
- if (typeof sprite === "object") {
- let [key, value] = Object.entries(sprite)[0];
- old[key] = value;
- } else {
- old.sprite = sprite;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js
+ function number_default(a2, b2) {
+ return a2 = +a2, b2 = +b2, function(t4) {
+ return a2 * (1 - t4) + b2 * t4;
+ };
+ }
+ var init_number2 = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js"() {
+ "use strict";
+ __name(number_default, "default");
}
- if (techn !== void 0 && techn !== null) {
- if (typeof techn === "object") {
- let [key, value] = Object.entries(techn)[0];
- old[key] = value;
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js
+ function object_default(a2, b2) {
+ var i2 = {}, c3 = {}, k2;
+ if (a2 === null || typeof a2 !== "object") a2 = {};
+ if (b2 === null || typeof b2 !== "object") b2 = {};
+ for (k2 in b2) {
+ if (k2 in a2) {
+ i2[k2] = value_default(a2[k2], b2[k2]);
} else {
- old.techn = techn;
+ c3[k2] = b2[k2];
}
}
- if (legendText !== void 0 && legendText !== null) {
- if (typeof legendText === "object") {
- let [key, value] = Object.entries(legendText)[0];
- old[key] = value;
- } else {
- old.legendText = legendText;
- }
+ return function(t4) {
+ for (k2 in i2) c3[k2] = i2[k2](t4);
+ return c3;
+ };
+ }
+ var init_object = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js"() {
+ "use strict";
+ init_value();
+ __name(object_default, "default");
}
- if (legendSprite !== void 0 && legendSprite !== null) {
- if (typeof legendSprite === "object") {
- let [key, value] = Object.entries(legendSprite)[0];
- old[key] = value;
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js
+ function zero2(b2) {
+ return function() {
+ return b2;
+ };
+ }
+ function one(b2) {
+ return function(t4) {
+ return b2(t4) + "";
+ };
+ }
+ function string_default(a2, b2) {
+ var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i2 = -1, s2 = [], q2 = [];
+ a2 = a2 + "", b2 = b2 + "";
+ while ((am = reA.exec(a2)) && (bm = reB.exec(b2))) {
+ if ((bs = bm.index) > bi) {
+ bs = b2.slice(bi, bs);
+ if (s2[i2]) s2[i2] += bs;
+ else s2[++i2] = bs;
+ }
+ if ((am = am[0]) === (bm = bm[0])) {
+ if (s2[i2]) s2[i2] += bm;
+ else s2[++i2] = bm;
} else {
- old.legendSprite = legendSprite;
+ s2[++i2] = null;
+ q2.push({ i: i2, x: number_default(am, bm) });
}
+ bi = reB.lastIndex;
}
- };
- const updateRelStyle = function(typeC4Shape, from2, to, textColor, lineColor, offsetX, offsetY) {
- const old = rels.find((rel) => rel.from === from2 && rel.to === to);
- if (old === void 0) {
- return;
+ if (bi < b2.length) {
+ bs = b2.slice(bi);
+ if (s2[i2]) s2[i2] += bs;
+ else s2[++i2] = bs;
}
- if (textColor !== void 0 && textColor !== null) {
- if (typeof textColor === "object") {
- let [key, value] = Object.entries(textColor)[0];
- old[key] = value;
- } else {
- old.textColor = textColor;
+ return s2.length < 2 ? q2[0] ? one(q2[0].x) : zero2(b2) : (b2 = q2.length, function(t4) {
+ for (var i3 = 0, o2; i3 < b2; ++i3) s2[(o2 = q2[i3]).i] = o2.x(t4);
+ return s2.join("");
+ });
+ }
+ var reA, reB;
+ var init_string = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js"() {
+ "use strict";
+ init_number2();
+ reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
+ reB = new RegExp(reA.source, "g");
+ __name(zero2, "zero");
+ __name(one, "one");
+ __name(string_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js
+ function value_default(a2, b2) {
+ var t4 = typeof b2, c3;
+ return b2 == null || t4 === "boolean" ? constant_default2(b2) : (t4 === "number" ? number_default : t4 === "string" ? (c3 = color(b2)) ? (b2 = c3, rgb_default2) : string_default : b2 instanceof color ? rgb_default2 : b2 instanceof Date ? date_default : isNumberArray(b2) ? numberArray_default : Array.isArray(b2) ? genericArray : typeof b2.valueOf !== "function" && typeof b2.toString !== "function" || isNaN(b2) ? object_default : number_default)(a2, b2);
+ }
+ var init_value = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js"() {
+ "use strict";
+ init_src7();
+ init_rgb2();
+ init_array2();
+ init_date();
+ init_number2();
+ init_object();
+ init_string();
+ init_constant2();
+ init_numberArray();
+ __name(value_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js
+ function round_default(a2, b2) {
+ return a2 = +a2, b2 = +b2, function(t4) {
+ return Math.round(a2 * (1 - t4) + b2 * t4);
+ };
+ }
+ var init_round = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js"() {
+ "use strict";
+ __name(round_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js
+ function decompose_default(a2, b2, c3, d2, e3, f3) {
+ var scaleX, scaleY, skewX;
+ if (scaleX = Math.sqrt(a2 * a2 + b2 * b2)) a2 /= scaleX, b2 /= scaleX;
+ if (skewX = a2 * c3 + b2 * d2) c3 -= a2 * skewX, d2 -= b2 * skewX;
+ if (scaleY = Math.sqrt(c3 * c3 + d2 * d2)) c3 /= scaleY, d2 /= scaleY, skewX /= scaleY;
+ if (a2 * d2 < b2 * c3) a2 = -a2, b2 = -b2, skewX = -skewX, scaleX = -scaleX;
+ return {
+ translateX: e3,
+ translateY: f3,
+ rotate: Math.atan2(b2, a2) * degrees2,
+ skewX: Math.atan(skewX) * degrees2,
+ scaleX,
+ scaleY
+ };
+ }
+ var degrees2, identity;
+ var init_decompose = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js"() {
+ "use strict";
+ degrees2 = 180 / Math.PI;
+ identity = {
+ translateX: 0,
+ translateY: 0,
+ rotate: 0,
+ skewX: 0,
+ scaleX: 1,
+ scaleY: 1
+ };
+ __name(decompose_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js
+ function parseCss(value2) {
+ const m2 = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value2 + "");
+ return m2.isIdentity ? identity : decompose_default(m2.a, m2.b, m2.c, m2.d, m2.e, m2.f);
+ }
+ function parseSvg(value2) {
+ if (value2 == null) return identity;
+ if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ svgNode.setAttribute("transform", value2);
+ if (!(value2 = svgNode.transform.baseVal.consolidate())) return identity;
+ value2 = value2.matrix;
+ return decompose_default(value2.a, value2.b, value2.c, value2.d, value2.e, value2.f);
+ }
+ var svgNode;
+ var init_parse = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js"() {
+ "use strict";
+ init_decompose();
+ __name(parseCss, "parseCss");
+ __name(parseSvg, "parseSvg");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js
+ function interpolateTransform(parse8, pxComma, pxParen, degParen) {
+ function pop(s2) {
+ return s2.length ? s2.pop() + " " : "";
+ }
+ __name(pop, "pop");
+ function translate(xa, ya, xb, yb, s2, q2) {
+ if (xa !== xb || ya !== yb) {
+ var i2 = s2.push("translate(", null, pxComma, null, pxParen);
+ q2.push({ i: i2 - 4, x: number_default(xa, xb) }, { i: i2 - 2, x: number_default(ya, yb) });
+ } else if (xb || yb) {
+ s2.push("translate(" + xb + pxComma + yb + pxParen);
}
}
- if (lineColor !== void 0 && lineColor !== null) {
- if (typeof lineColor === "object") {
- let [key, value] = Object.entries(lineColor)[0];
- old[key] = value;
- } else {
- old.lineColor = lineColor;
+ __name(translate, "translate");
+ function rotate(a2, b2, s2, q2) {
+ if (a2 !== b2) {
+ if (a2 - b2 > 180) b2 += 360;
+ else if (b2 - a2 > 180) a2 += 360;
+ q2.push({ i: s2.push(pop(s2) + "rotate(", null, degParen) - 2, x: number_default(a2, b2) });
+ } else if (b2) {
+ s2.push(pop(s2) + "rotate(" + b2 + degParen);
}
}
- if (offsetX !== void 0 && offsetX !== null) {
- if (typeof offsetX === "object") {
- let [key, value] = Object.entries(offsetX)[0];
- old[key] = parseInt(value);
- } else {
- old.offsetX = parseInt(offsetX);
+ __name(rotate, "rotate");
+ function skewX(a2, b2, s2, q2) {
+ if (a2 !== b2) {
+ q2.push({ i: s2.push(pop(s2) + "skewX(", null, degParen) - 2, x: number_default(a2, b2) });
+ } else if (b2) {
+ s2.push(pop(s2) + "skewX(" + b2 + degParen);
}
}
- if (offsetY !== void 0 && offsetY !== null) {
- if (typeof offsetY === "object") {
- let [key, value] = Object.entries(offsetY)[0];
- old[key] = parseInt(value);
+ __name(skewX, "skewX");
+ function scale(xa, ya, xb, yb, s2, q2) {
+ if (xa !== xb || ya !== yb) {
+ var i2 = s2.push(pop(s2) + "scale(", null, ",", null, ")");
+ q2.push({ i: i2 - 4, x: number_default(xa, xb) }, { i: i2 - 2, x: number_default(ya, yb) });
+ } else if (xb !== 1 || yb !== 1) {
+ s2.push(pop(s2) + "scale(" + xb + "," + yb + ")");
+ }
+ }
+ __name(scale, "scale");
+ return function(a2, b2) {
+ var s2 = [], q2 = [];
+ a2 = parse8(a2), b2 = parse8(b2);
+ translate(a2.translateX, a2.translateY, b2.translateX, b2.translateY, s2, q2);
+ rotate(a2.rotate, b2.rotate, s2, q2);
+ skewX(a2.skewX, b2.skewX, s2, q2);
+ scale(a2.scaleX, a2.scaleY, b2.scaleX, b2.scaleY, s2, q2);
+ a2 = b2 = null;
+ return function(t4) {
+ var i2 = -1, n2 = q2.length, o2;
+ while (++i2 < n2) s2[(o2 = q2[i2]).i] = o2.x(t4);
+ return s2.join("");
+ };
+ };
+ }
+ var interpolateTransformCss, interpolateTransformSvg;
+ var init_transform = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js"() {
+ "use strict";
+ init_number2();
+ init_parse();
+ __name(interpolateTransform, "interpolateTransform");
+ interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
+ interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/hcl.js
+ function hcl2(hue2) {
+ return function(start3, end2) {
+ var h2 = hue2((start3 = hcl(start3)).h, (end2 = hcl(end2)).h), c3 = nogamma(start3.c, end2.c), l2 = nogamma(start3.l, end2.l), opacity = nogamma(start3.opacity, end2.opacity);
+ return function(t4) {
+ start3.h = h2(t4);
+ start3.c = c3(t4);
+ start3.l = l2(t4);
+ start3.opacity = opacity(t4);
+ return start3 + "";
+ };
+ };
+ }
+ var hcl_default, hclLong;
+ var init_hcl = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/hcl.js"() {
+ "use strict";
+ init_src7();
+ init_color3();
+ __name(hcl2, "hcl");
+ hcl_default = hcl2(hue);
+ hclLong = hcl2(nogamma);
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/index.js
+ var init_src8 = __esm({
+ "../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/index.js"() {
+ "use strict";
+ init_value();
+ init_number2();
+ init_round();
+ init_string();
+ init_transform();
+ init_rgb2();
+ init_hcl();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js
+ function now() {
+ return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
+ }
+ function clearNow() {
+ clockNow = 0;
+ }
+ function Timer() {
+ this._call = this._time = this._next = null;
+ }
+ function timer(callback, delay2, time4) {
+ var t4 = new Timer();
+ t4.restart(callback, delay2, time4);
+ return t4;
+ }
+ function timerFlush() {
+ now();
+ ++frame;
+ var t4 = taskHead, e3;
+ while (t4) {
+ if ((e3 = clockNow - t4._time) >= 0) t4._call.call(void 0, e3);
+ t4 = t4._next;
+ }
+ --frame;
+ }
+ function wake() {
+ clockNow = (clockLast = clock.now()) + clockSkew;
+ frame = timeout = 0;
+ try {
+ timerFlush();
+ } finally {
+ frame = 0;
+ nap();
+ clockNow = 0;
+ }
+ }
+ function poke() {
+ var now4 = clock.now(), delay2 = now4 - clockLast;
+ if (delay2 > pokeDelay) clockSkew -= delay2, clockLast = now4;
+ }
+ function nap() {
+ var t03, t13 = taskHead, t22, time4 = Infinity;
+ while (t13) {
+ if (t13._call) {
+ if (time4 > t13._time) time4 = t13._time;
+ t03 = t13, t13 = t13._next;
} else {
- old.offsetY = parseInt(offsetY);
+ t22 = t13._next, t13._next = null;
+ t13 = t03 ? t03._next = t22 : taskHead = t22;
}
}
- };
- const updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {
- let c4ShapeInRowValue = c4ShapeInRow$1;
- let c4BoundaryInRowValue = c4BoundaryInRow$1;
- if (typeof c4ShapeInRowParam === "object") {
- const value = Object.values(c4ShapeInRowParam)[0];
- c4ShapeInRowValue = parseInt(value);
- } else {
- c4ShapeInRowValue = parseInt(c4ShapeInRowParam);
- }
- if (typeof c4BoundaryInRowParam === "object") {
- const value = Object.values(c4BoundaryInRowParam)[0];
- c4BoundaryInRowValue = parseInt(value);
+ taskTail = t03;
+ sleep(time4);
+ }
+ function sleep(time4) {
+ if (frame) return;
+ if (timeout) timeout = clearTimeout(timeout);
+ var delay2 = time4 - clockNow;
+ if (delay2 > 24) {
+ if (time4 < Infinity) timeout = setTimeout(wake, time4 - clock.now() - clockSkew);
+ if (interval) interval = clearInterval(interval);
} else {
- c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);
+ if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
+ frame = 1, setFrame(wake);
}
- if (c4ShapeInRowValue >= 1) {
- c4ShapeInRow$1 = c4ShapeInRowValue;
+ }
+ var frame, timeout, interval, pokeDelay, taskHead, taskTail, clockLast, clockNow, clockSkew, clock, setFrame;
+ var init_timer = __esm({
+ "../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js"() {
+ "use strict";
+ frame = 0;
+ timeout = 0;
+ interval = 0;
+ pokeDelay = 1e3;
+ clockLast = 0;
+ clockNow = 0;
+ clockSkew = 0;
+ clock = typeof performance === "object" && performance.now ? performance : Date;
+ setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f3) {
+ setTimeout(f3, 17);
+ };
+ __name(now, "now");
+ __name(clearNow, "clearNow");
+ __name(Timer, "Timer");
+ Timer.prototype = timer.prototype = {
+ constructor: Timer,
+ restart: /* @__PURE__ */ __name(function(callback, delay2, time4) {
+ if (typeof callback !== "function") throw new TypeError("callback is not a function");
+ time4 = (time4 == null ? now() : +time4) + (delay2 == null ? 0 : +delay2);
+ if (!this._next && taskTail !== this) {
+ if (taskTail) taskTail._next = this;
+ else taskHead = this;
+ taskTail = this;
+ }
+ this._call = callback;
+ this._time = time4;
+ sleep();
+ }, "restart"),
+ stop: /* @__PURE__ */ __name(function() {
+ if (this._call) {
+ this._call = null;
+ this._time = Infinity;
+ sleep();
+ }
+ }, "stop")
+ };
+ __name(timer, "timer");
+ __name(timerFlush, "timerFlush");
+ __name(wake, "wake");
+ __name(poke, "poke");
+ __name(nap, "nap");
+ __name(sleep, "sleep");
}
- if (c4BoundaryInRowValue >= 1) {
- c4BoundaryInRow$1 = c4BoundaryInRowValue;
+ });
+
+ // ../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js
+ function timeout_default(callback, delay2, time4) {
+ var t4 = new Timer();
+ delay2 = delay2 == null ? 0 : +delay2;
+ t4.restart((elapsed) => {
+ t4.stop();
+ callback(elapsed + delay2);
+ }, delay2, time4);
+ return t4;
+ }
+ var init_timeout = __esm({
+ "../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js"() {
+ "use strict";
+ init_timer();
+ __name(timeout_default, "default");
}
- };
- const getC4ShapeInRow = function() {
- return c4ShapeInRow$1;
- };
- const getC4BoundaryInRow = function() {
- return c4BoundaryInRow$1;
- };
- const getCurrentBoundaryParse = function() {
- return currentBoundaryParse;
- };
- const getParentBoundaryParse = function() {
- return parentBoundaryParse;
- };
- const getC4ShapeArray = function(parentBoundary) {
- if (parentBoundary === void 0 || parentBoundary === null) {
- return c4ShapeArray;
- } else {
- return c4ShapeArray.filter((personOrSystem) => {
- return personOrSystem.parentBoundary === parentBoundary;
- });
+ });
+
+ // ../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/index.js
+ var init_src9 = __esm({
+ "../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/index.js"() {
+ "use strict";
+ init_timer();
+ init_timeout();
}
- };
- const getC4Shape = function(alias) {
- return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);
- };
- const getC4ShapeKeys = function(parentBoundary) {
- return Object.keys(getC4ShapeArray(parentBoundary));
- };
- const getBoundarys = function(parentBoundary) {
- if (parentBoundary === void 0 || parentBoundary === null) {
- return boundarys;
- } else {
- return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js
+ function schedule_default(node2, name, id27, index, group2, timing) {
+ var schedules = node2.__transition;
+ if (!schedules) node2.__transition = {};
+ else if (id27 in schedules) return;
+ create(node2, id27, {
+ name,
+ index,
+ // For context during callback.
+ group: group2,
+ // For context during callback.
+ on: emptyOn,
+ tween: emptyTween,
+ time: timing.time,
+ delay: timing.delay,
+ duration: timing.duration,
+ ease: timing.ease,
+ timer: null,
+ state: CREATED
+ });
+ }
+ function init(node2, id27) {
+ var schedule = get2(node2, id27);
+ if (schedule.state > CREATED) throw new Error("too late; already scheduled");
+ return schedule;
+ }
+ function set2(node2, id27) {
+ var schedule = get2(node2, id27);
+ if (schedule.state > STARTED) throw new Error("too late; already running");
+ return schedule;
+ }
+ function get2(node2, id27) {
+ var schedule = node2.__transition;
+ if (!schedule || !(schedule = schedule[id27])) throw new Error("transition not found");
+ return schedule;
+ }
+ function create(node2, id27, self2) {
+ var schedules = node2.__transition, tween;
+ schedules[id27] = self2;
+ self2.timer = timer(schedule, 0, self2.time);
+ function schedule(elapsed) {
+ self2.state = SCHEDULED;
+ self2.timer.restart(start3, self2.delay, self2.time);
+ if (self2.delay <= elapsed) start3(elapsed - self2.delay);
}
- };
- const getRels = function() {
- return rels;
- };
- const getTitle = function() {
- return title;
- };
- const setWrap$1 = function(wrapSetting) {
- wrapEnabled$1 = wrapSetting;
- };
- const autoWrap$1 = function() {
- return wrapEnabled$1;
- };
- const clear$h = function() {
- c4ShapeArray = [];
- boundarys = [
- {
- alias: "global",
- label: { text: "global" },
- type: { text: "global" },
- tags: null,
- link: null,
- parentBoundary: ""
- }
- ];
- parentBoundaryParse = "";
- currentBoundaryParse = "global";
- boundaryParseStack = [""];
- rels = [];
- boundaryParseStack = [""];
- title = "";
- wrapEnabled$1 = false;
- c4ShapeInRow$1 = 4;
- c4BoundaryInRow$1 = 2;
- };
- const LINETYPE$1 = {
- SOLID: 0,
- DOTTED: 1,
- NOTE: 2,
- SOLID_CROSS: 3,
- DOTTED_CROSS: 4,
- SOLID_OPEN: 5,
- DOTTED_OPEN: 6,
- LOOP_START: 10,
- LOOP_END: 11,
- ALT_START: 12,
- ALT_ELSE: 13,
- ALT_END: 14,
- OPT_START: 15,
- OPT_END: 16,
- ACTIVE_START: 17,
- ACTIVE_END: 18,
- PAR_START: 19,
- PAR_AND: 20,
- PAR_END: 21,
- RECT_START: 22,
- RECT_END: 23,
- SOLID_POINT: 24,
- DOTTED_POINT: 25
- };
- const ARROWTYPE$1 = {
- FILLED: 0,
- OPEN: 1
- };
- const PLACEMENT$1 = {
- LEFTOF: 0,
- RIGHTOF: 1,
- OVER: 2
- };
- const setTitle = function(txt) {
- let sanitizedText = sanitizeText$7(txt, getConfig$1());
- title = sanitizedText;
- };
- const c4Db = {
- addPersonOrSystem,
- addPersonOrSystemBoundary,
- addContainer,
- addContainerBoundary,
- addComponent,
- addDeploymentNode,
- popBoundaryParseStack,
- addRel,
- updateElStyle,
- updateRelStyle,
- updateLayoutConfig,
- autoWrap: autoWrap$1,
- setWrap: setWrap$1,
- getC4ShapeArray,
- getC4Shape,
- getC4ShapeKeys,
- getBoundarys,
- getCurrentBoundaryParse,
- getParentBoundaryParse,
- getRels,
- getTitle,
- getC4Type,
- getC4ShapeInRow,
- getC4BoundaryInRow,
- setAccTitle,
- getAccTitle,
- getAccDescription,
- setAccDescription,
- parseDirective: parseDirective$b,
- getConfig: () => getConfig$1().c4,
- clear: clear$h,
- LINETYPE: LINETYPE$1,
- ARROWTYPE: ARROWTYPE$1,
- PLACEMENT: PLACEMENT$1,
- setTitle,
- setC4Type
- // apply,
- };
- const drawRect$3 = function(elem, rectData) {
- const rectElem = elem.append("rect");
- rectElem.attr("x", rectData.x);
- rectElem.attr("y", rectData.y);
- rectElem.attr("fill", rectData.fill);
- rectElem.attr("stroke", rectData.stroke);
- rectElem.attr("width", rectData.width);
- rectElem.attr("height", rectData.height);
- rectElem.attr("rx", rectData.rx);
- rectElem.attr("ry", rectData.ry);
- if (rectData.attrs !== "undefined" && rectData.attrs !== null) {
- for (let attrKey in rectData.attrs) {
- rectElem.attr(attrKey, rectData.attrs[attrKey]);
- }
- }
- if (rectData.class !== "undefined") {
- rectElem.attr("class", rectData.class);
- }
- return rectElem;
- };
- const drawImage$1 = function(elem, width2, height2, x2, y2, link) {
- const imageElem = elem.append("image");
- imageElem.attr("width", width2);
- imageElem.attr("height", height2);
- imageElem.attr("x", x2);
- imageElem.attr("y", y2);
- let sanitizedLink = link.startsWith("data:image/png;base64") ? link : sanitizeUrl_1(link);
- imageElem.attr("xlink:href", sanitizedLink);
- };
- const drawRels$1 = (elem, rels2, conf2) => {
- const relsElem = elem.append("g");
- let i2 = 0;
- for (let rel of rels2) {
- let textColor = rel.textColor ? rel.textColor : "#444444";
- let strokeColor = rel.lineColor ? rel.lineColor : "#444444";
- let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;
- let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;
- let url = "";
- if (i2 === 0) {
- let line2 = relsElem.append("line");
- line2.attr("x1", rel.startPoint.x);
- line2.attr("y1", rel.startPoint.y);
- line2.attr("x2", rel.endPoint.x);
- line2.attr("y2", rel.endPoint.y);
- line2.attr("stroke-width", "1");
- line2.attr("stroke", strokeColor);
- line2.style("fill", "none");
- if (rel.type !== "rel_b") {
- line2.attr("marker-end", "url(" + url + "#arrowhead)");
- }
- if (rel.type === "birel" || rel.type === "rel_b") {
- line2.attr("marker-start", "url(" + url + "#arrowend)");
+ __name(schedule, "schedule");
+ function start3(elapsed) {
+ var i2, j2, n2, o2;
+ if (self2.state !== SCHEDULED) return stop5();
+ for (i2 in schedules) {
+ o2 = schedules[i2];
+ if (o2.name !== self2.name) continue;
+ if (o2.state === STARTED) return timeout_default(start3);
+ if (o2.state === RUNNING) {
+ o2.state = ENDED;
+ o2.timer.stop();
+ o2.on.call("interrupt", node2, node2.__data__, o2.index, o2.group);
+ delete schedules[i2];
+ } else if (+i2 < id27) {
+ o2.state = ENDED;
+ o2.timer.stop();
+ o2.on.call("cancel", node2, node2.__data__, o2.index, o2.group);
+ delete schedules[i2];
}
- i2 = -1;
- } else {
- let line2 = relsElem.append("path");
- line2.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr(
- "d",
- "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel.startPoint.x).replaceAll("starty", rel.startPoint.y).replaceAll(
- "controlx",
- rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4
- ).replaceAll("controly", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll("stopx", rel.endPoint.x).replaceAll("stopy", rel.endPoint.y)
- );
- if (rel.type !== "rel_b") {
- line2.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ timeout_default(function() {
+ if (self2.state === STARTED) {
+ self2.state = RUNNING;
+ self2.timer.restart(tick, self2.delay, self2.time);
+ tick(elapsed);
}
- if (rel.type === "birel" || rel.type === "rel_b") {
- line2.attr("marker-start", "url(" + url + "#arrowend)");
+ });
+ self2.state = STARTING;
+ self2.on.call("start", node2, node2.__data__, self2.index, self2.group);
+ if (self2.state !== STARTING) return;
+ self2.state = STARTED;
+ tween = new Array(n2 = self2.tween.length);
+ for (i2 = 0, j2 = -1; i2 < n2; ++i2) {
+ if (o2 = self2.tween[i2].value.call(node2, node2.__data__, self2.index, self2.group)) {
+ tween[++j2] = o2;
}
}
- let messageConf = conf2.messageFont();
- _drawTextCandidateFunc$3(conf2)(
- rel.label.text,
- relsElem,
- Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
- Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,
- rel.label.width,
- rel.label.height,
- { fill: textColor },
- messageConf
- );
- if (rel.techn && rel.techn.text !== "") {
- messageConf = conf2.messageFont();
- _drawTextCandidateFunc$3(conf2)(
- "[" + rel.techn.text + "]",
- relsElem,
- Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
- Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,
- Math.max(rel.label.width, rel.techn.width),
- rel.techn.height,
- { fill: textColor, "font-style": "italic" },
- messageConf
- );
+ tween.length = j2 + 1;
+ }
+ __name(start3, "start");
+ function tick(elapsed) {
+ var t4 = elapsed < self2.duration ? self2.ease.call(null, elapsed / self2.duration) : (self2.timer.restart(stop5), self2.state = ENDING, 1), i2 = -1, n2 = tween.length;
+ while (++i2 < n2) {
+ tween[i2].call(node2, t4);
+ }
+ if (self2.state === ENDING) {
+ self2.on.call("end", node2, node2.__data__, self2.index, self2.group);
+ stop5();
}
}
- };
- const drawBoundary$1 = function(elem, boundary, conf2) {
- const boundaryElem = elem.append("g");
- let fillColor = boundary.bgColor ? boundary.bgColor : "none";
- let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444";
- let fontColor = boundary.fontColor ? boundary.fontColor : "black";
- let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" };
- if (boundary.nodeType) {
- attrsValue = { "stroke-width": 1 };
- }
- let rectData = {
- x: boundary.x,
- y: boundary.y,
- fill: fillColor,
- stroke: strokeColor,
- width: boundary.width,
- height: boundary.height,
- rx: 2.5,
- ry: 2.5,
- attrs: attrsValue
- };
- drawRect$3(boundaryElem, rectData);
- let boundaryConf = conf2.boundaryFont();
- boundaryConf.fontWeight = "bold";
- boundaryConf.fontSize = boundaryConf.fontSize + 2;
- boundaryConf.fontColor = fontColor;
- _drawTextCandidateFunc$3(conf2)(
- boundary.label.text,
- boundaryElem,
- boundary.x,
- boundary.y + boundary.label.Y,
- boundary.width,
- boundary.height,
- { fill: "#444444" },
- boundaryConf
- );
- if (boundary.type && boundary.type.text !== "") {
- boundaryConf = conf2.boundaryFont();
- boundaryConf.fontColor = fontColor;
- _drawTextCandidateFunc$3(conf2)(
- boundary.type.text,
- boundaryElem,
- boundary.x,
- boundary.y + boundary.type.Y,
- boundary.width,
- boundary.height,
- { fill: "#444444" },
- boundaryConf
- );
+ __name(tick, "tick");
+ function stop5() {
+ self2.state = ENDED;
+ self2.timer.stop();
+ delete schedules[id27];
+ for (var i2 in schedules) return;
+ delete node2.__transition;
}
- if (boundary.descr && boundary.descr.text !== "") {
- boundaryConf = conf2.boundaryFont();
- boundaryConf.fontSize = boundaryConf.fontSize - 2;
- boundaryConf.fontColor = fontColor;
- _drawTextCandidateFunc$3(conf2)(
- boundary.descr.text,
- boundaryElem,
- boundary.x,
- boundary.y + boundary.descr.Y,
- boundary.width,
- boundary.height,
- { fill: "#444444" },
- boundaryConf
- );
+ __name(stop5, "stop");
+ }
+ var emptyOn, emptyTween, CREATED, SCHEDULED, STARTING, STARTED, RUNNING, ENDING, ENDED;
+ var init_schedule = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js"() {
+ "use strict";
+ init_src4();
+ init_src9();
+ emptyOn = dispatch_default("start", "end", "cancel", "interrupt");
+ emptyTween = [];
+ CREATED = 0;
+ SCHEDULED = 1;
+ STARTING = 2;
+ STARTED = 3;
+ RUNNING = 4;
+ ENDING = 5;
+ ENDED = 6;
+ __name(schedule_default, "default");
+ __name(init, "init");
+ __name(set2, "set");
+ __name(get2, "get");
+ __name(create, "create");
}
- };
- const drawC4Shape = function(elem, c4Shape, conf2) {
- var _a;
- let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + "_bg_color"];
- let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + "_border_color"];
- let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF";
- let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
- switch (c4Shape.typeC4Shape.text) {
- case "person":
- personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
- break;
- case "external_person":
- personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";
- break;
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js
+ function interrupt_default(node2, name) {
+ var schedules = node2.__transition, schedule, active, empty3 = true, i2;
+ if (!schedules) return;
+ name = name == null ? null : name + "";
+ for (i2 in schedules) {
+ if ((schedule = schedules[i2]).name !== name) {
+ empty3 = false;
+ continue;
+ }
+ active = schedule.state > STARTING && schedule.state < ENDING;
+ schedule.state = ENDED;
+ schedule.timer.stop();
+ schedule.on.call(active ? "interrupt" : "cancel", node2, node2.__data__, schedule.index, schedule.group);
+ delete schedules[i2];
}
- const c4ShapeElem = elem.append("g");
- c4ShapeElem.attr("class", "person-man");
- const rect2 = getNoteRect$3();
- switch (c4Shape.typeC4Shape.text) {
- case "person":
- case "external_person":
- case "system":
- case "external_system":
- case "container":
- case "external_container":
- case "component":
- case "external_component":
- rect2.x = c4Shape.x;
- rect2.y = c4Shape.y;
- rect2.fill = fillColor;
- rect2.width = c4Shape.width;
- rect2.height = c4Shape.height;
- rect2.stroke = strokeColor;
- rect2.rx = 2.5;
- rect2.ry = 2.5;
- rect2.attrs = { "stroke-width": 0.5 };
- drawRect$3(c4ShapeElem, rect2);
- break;
- case "system_db":
- case "external_system_db":
- case "container_db":
- case "external_container_db":
- case "component_db":
- case "external_component_db":
- c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
- "d",
- "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height)
- );
- c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
- "d",
- "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2)
- );
- break;
- case "system_queue":
- case "external_system_queue":
- case "container_queue":
- case "external_container_queue":
- case "component_queue":
- case "external_component_queue":
- c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
- "d",
- "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2)
- );
- c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
- "d",
- "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2)
- );
- break;
+ if (empty3) delete node2.__transition;
+ }
+ var init_interrupt = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js"() {
+ "use strict";
+ init_schedule();
+ __name(interrupt_default, "default");
}
- let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);
- c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>");
- switch (c4Shape.typeC4Shape.text) {
- case "person":
- case "external_person":
- drawImage$1(
- c4ShapeElem,
- 48,
- 48,
- c4Shape.x + c4Shape.width / 2 - 24,
- c4Shape.y + c4Shape.image.Y,
- personImg
- );
- break;
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js
+ function interrupt_default2(name) {
+ return this.each(function() {
+ interrupt_default(this, name);
+ });
+ }
+ var init_interrupt2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js"() {
+ "use strict";
+ init_interrupt();
+ __name(interrupt_default2, "default");
}
- let textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
- textFontConf.fontWeight = "bold";
- textFontConf.fontSize = textFontConf.fontSize + 2;
- textFontConf.fontColor = fontColor;
- _drawTextCandidateFunc$3(conf2)(
- c4Shape.label.text,
- c4ShapeElem,
- c4Shape.x,
- c4Shape.y + c4Shape.label.Y,
- c4Shape.width,
- c4Shape.height,
- { fill: fontColor },
- textFontConf
- );
- textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
- textFontConf.fontColor = fontColor;
- if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== "") {
- _drawTextCandidateFunc$3(conf2)(
- c4Shape.techn.text,
- c4ShapeElem,
- c4Shape.x,
- c4Shape.y + c4Shape.techn.Y,
- c4Shape.width,
- c4Shape.height,
- { fill: fontColor, "font-style": "italic" },
- textFontConf
- );
- } else if (c4Shape.type && c4Shape.type.text !== "") {
- _drawTextCandidateFunc$3(conf2)(
- c4Shape.type.text,
- c4ShapeElem,
- c4Shape.x,
- c4Shape.y + c4Shape.type.Y,
- c4Shape.width,
- c4Shape.height,
- { fill: fontColor, "font-style": "italic" },
- textFontConf
- );
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js
+ function tweenRemove(id27, name) {
+ var tween0, tween1;
+ return function() {
+ var schedule = set2(this, id27), tween = schedule.tween;
+ if (tween !== tween0) {
+ tween1 = tween0 = tween;
+ for (var i2 = 0, n2 = tween1.length; i2 < n2; ++i2) {
+ if (tween1[i2].name === name) {
+ tween1 = tween1.slice();
+ tween1.splice(i2, 1);
+ break;
+ }
+ }
+ }
+ schedule.tween = tween1;
+ };
+ }
+ function tweenFunction(id27, name, value2) {
+ var tween0, tween1;
+ if (typeof value2 !== "function") throw new Error();
+ return function() {
+ var schedule = set2(this, id27), tween = schedule.tween;
+ if (tween !== tween0) {
+ tween1 = (tween0 = tween).slice();
+ for (var t4 = { name, value: value2 }, i2 = 0, n2 = tween1.length; i2 < n2; ++i2) {
+ if (tween1[i2].name === name) {
+ tween1[i2] = t4;
+ break;
+ }
+ }
+ if (i2 === n2) tween1.push(t4);
+ }
+ schedule.tween = tween1;
+ };
+ }
+ function tween_default(name, value2) {
+ var id27 = this._id;
+ name += "";
+ if (arguments.length < 2) {
+ var tween = get2(this.node(), id27).tween;
+ for (var i2 = 0, n2 = tween.length, t4; i2 < n2; ++i2) {
+ if ((t4 = tween[i2]).name === name) {
+ return t4.value;
+ }
+ }
+ return null;
}
- if (c4Shape.descr && c4Shape.descr.text !== "") {
- textFontConf = conf2.personFont();
- textFontConf.fontColor = fontColor;
- _drawTextCandidateFunc$3(conf2)(
- c4Shape.descr.text,
- c4ShapeElem,
- c4Shape.x,
- c4Shape.y + c4Shape.descr.Y,
- c4Shape.width,
- c4Shape.height,
- { fill: fontColor },
- textFontConf
- );
+ return this.each((value2 == null ? tweenRemove : tweenFunction)(id27, name, value2));
+ }
+ function tweenValue(transition2, name, value2) {
+ var id27 = transition2._id;
+ transition2.each(function() {
+ var schedule = set2(this, id27);
+ (schedule.value || (schedule.value = {}))[name] = value2.apply(this, arguments);
+ });
+ return function(node2) {
+ return get2(node2, id27).value[name];
+ };
+ }
+ var init_tween = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js"() {
+ "use strict";
+ init_schedule();
+ __name(tweenRemove, "tweenRemove");
+ __name(tweenFunction, "tweenFunction");
+ __name(tween_default, "default");
+ __name(tweenValue, "tweenValue");
}
- return c4Shape.height;
- };
- const insertDatabaseIcon$1 = function(elem) {
- elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
- "d",
- "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
- );
- };
- const insertComputerIcon$1 = function(elem) {
- elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
- "d",
- "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
- );
- };
- const insertClockIcon$1 = function(elem) {
- elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
- "d",
- "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
- );
- };
- const insertArrowHead$1 = function(elem) {
- elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
- };
- const insertArrowEnd = function(elem) {
- elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z");
- };
- const insertArrowFilledHead$1 = function(elem) {
- elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
- };
- const insertDynamicNumber = function(elem) {
- elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6);
- };
- const insertArrowCrossHead$1 = function(elem) {
- const defs = elem.append("defs");
- const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4);
- marker.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z");
- marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7");
- };
- const getNoteRect$3 = function() {
- return {
- x: 0,
- y: 0,
- fill: "#EDF2AE",
- stroke: "#666",
- width: 100,
- anchor: "start",
- height: 100,
- rx: 0,
- ry: 0
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js
+ function interpolate_default(a2, b2) {
+ var c3;
+ return (typeof b2 === "number" ? number_default : b2 instanceof color ? rgb_default2 : (c3 = color(b2)) ? (b2 = c3, rgb_default2) : string_default)(a2, b2);
+ }
+ var init_interpolate = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js"() {
+ "use strict";
+ init_src7();
+ init_src8();
+ __name(interpolate_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js
+ function attrRemove2(name) {
+ return function() {
+ this.removeAttribute(name);
};
- };
- const getC4ShapeFont = (cnf, typeC4Shape) => {
- return {
- fontFamily: cnf[typeC4Shape + "FontFamily"],
- fontSize: cnf[typeC4Shape + "FontSize"],
- fontWeight: cnf[typeC4Shape + "FontWeight"]
+ }
+ function attrRemoveNS2(fullname) {
+ return function() {
+ this.removeAttributeNS(fullname.space, fullname.local);
};
- };
- const _drawTextCandidateFunc$3 = function() {
- function byText(content, g, x2, y2, width2, height2, textAttrs) {
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("text-anchor", "middle").text(content);
- _setTextAttrs(text2, textAttrs);
- }
- function byTspan(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const { fontSize, fontFamily, fontWeight } = conf2;
- const lines = content.split(common$1.lineBreakRegex);
- for (let i2 = 0; i2 < lines.length; i2++) {
- const dy = i2 * fontSize - fontSize * (lines.length - 1) / 2;
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily);
- text2.append("tspan").attr("dy", dy).text(lines[i2]).attr("alignment-baseline", "mathematical");
- _setTextAttrs(text2, textAttrs);
- }
- }
- function byFo(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const s = g.append("switch");
- const f2 = s.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2);
- const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
- text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
- byTspan(content, s, x2, y2, width2, height2, textAttrs, conf2);
- _setTextAttrs(text2, textAttrs);
- }
- function _setTextAttrs(toText, fromTextAttrsDict) {
- for (const key in fromTextAttrsDict) {
- if (fromTextAttrsDict.hasOwnProperty(key)) {
- toText.attr(key, fromTextAttrsDict[key]);
- }
- }
- }
- return function(conf2) {
- return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
+ }
+ function attrConstant2(name, interpolate, value1) {
+ var string00, string1 = value1 + "", interpolate0;
+ return function() {
+ var string0 = this.getAttribute(name);
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
};
- }();
- const svgDraw$5 = {
- drawRect: drawRect$3,
- drawBoundary: drawBoundary$1,
- drawC4Shape,
- drawRels: drawRels$1,
- drawImage: drawImage$1,
- insertArrowHead: insertArrowHead$1,
- insertArrowEnd,
- insertArrowFilledHead: insertArrowFilledHead$1,
- insertDynamicNumber,
- insertArrowCrossHead: insertArrowCrossHead$1,
- insertDatabaseIcon: insertDatabaseIcon$1,
- insertComputerIcon: insertComputerIcon$1,
- insertClockIcon: insertClockIcon$1,
- getNoteRect: getNoteRect$3,
- sanitizeUrl: sanitizeUrl_1
- // TODO why is this exported?
- };
- let globalBoundaryMaxX = 0, globalBoundaryMaxY = 0;
- let c4ShapeInRow = 4;
- let c4BoundaryInRow = 2;
- parser$m.yy = c4Db;
- let conf$a = {};
- class Bounds {
- constructor(diagObj) {
- this.name = "";
- this.data = {};
- this.data.startx = void 0;
- this.data.stopx = void 0;
- this.data.starty = void 0;
- this.data.stopy = void 0;
- this.data.widthLimit = void 0;
- this.nextData = {};
- this.nextData.startx = void 0;
- this.nextData.stopx = void 0;
- this.nextData.starty = void 0;
- this.nextData.stopy = void 0;
- this.nextData.cnt = 0;
- setConf$9(diagObj.db.getConfig());
- }
- setData(startx, stopx, starty, stopy) {
- this.nextData.startx = this.data.startx = startx;
- this.nextData.stopx = this.data.stopx = stopx;
- this.nextData.starty = this.data.starty = starty;
- this.nextData.stopy = this.data.stopy = stopy;
- }
- updateVal(obj, key, val, fun) {
- if (obj[key] === void 0) {
- obj[key] = val;
- } else {
- obj[key] = fun(val, obj[key]);
- }
- }
- insert(c4Shape) {
- this.nextData.cnt = this.nextData.cnt + 1;
- let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;
- let _stopx = _startx + c4Shape.width;
- let _starty = this.nextData.starty + c4Shape.margin * 2;
- let _stopy = _starty + c4Shape.height;
- if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {
- _startx = this.nextData.startx + c4Shape.margin + conf$a.nextLinePaddingX;
- _starty = this.nextData.stopy + c4Shape.margin * 2;
- this.nextData.stopx = _stopx = _startx + c4Shape.width;
- this.nextData.starty = this.nextData.stopy;
- this.nextData.stopy = _stopy = _starty + c4Shape.height;
- this.nextData.cnt = 1;
- }
- c4Shape.x = _startx;
- c4Shape.y = _starty;
- this.updateVal(this.data, "startx", _startx, Math.min);
- this.updateVal(this.data, "starty", _starty, Math.min);
- this.updateVal(this.data, "stopx", _stopx, Math.max);
- this.updateVal(this.data, "stopy", _stopy, Math.max);
- this.updateVal(this.nextData, "startx", _startx, Math.min);
- this.updateVal(this.nextData, "starty", _starty, Math.min);
- this.updateVal(this.nextData, "stopx", _stopx, Math.max);
- this.updateVal(this.nextData, "stopy", _stopy, Math.max);
- }
- init(diagObj) {
- this.name = "";
- this.data = {
- startx: void 0,
- stopx: void 0,
- starty: void 0,
- stopy: void 0,
- widthLimit: void 0
- };
- this.nextData = {
- startx: void 0,
- stopx: void 0,
- starty: void 0,
- stopy: void 0,
- cnt: 0
- };
- setConf$9(diagObj.db.getConfig());
- }
- bumpLastMargin(margin) {
- this.data.stopx += margin;
- this.data.stopy += margin;
- }
- }
- const setConf$9 = function(cnf) {
- assignWithDepth$1(conf$a, cnf);
- if (cnf.fontFamily) {
- conf$a.personFontFamily = conf$a.systemFontFamily = conf$a.messageFontFamily = cnf.fontFamily;
- }
- if (cnf.fontSize) {
- conf$a.personFontSize = conf$a.systemFontSize = conf$a.messageFontSize = cnf.fontSize;
- }
- if (cnf.fontWeight) {
- conf$a.personFontWeight = conf$a.systemFontWeight = conf$a.messageFontWeight = cnf.fontWeight;
- }
- };
- const c4ShapeFont = (cnf, typeC4Shape) => {
- return {
- fontFamily: cnf[typeC4Shape + "FontFamily"],
- fontSize: cnf[typeC4Shape + "FontSize"],
- fontWeight: cnf[typeC4Shape + "FontWeight"]
+ }
+ function attrConstantNS2(fullname, interpolate, value1) {
+ var string00, string1 = value1 + "", interpolate0;
+ return function() {
+ var string0 = this.getAttributeNS(fullname.space, fullname.local);
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
};
- };
- const boundaryFont = (cnf) => {
- return {
- fontFamily: cnf.boundaryFontFamily,
- fontSize: cnf.boundaryFontSize,
- fontWeight: cnf.boundaryFontWeight
+ }
+ function attrFunction2(name, interpolate, value2) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0, value1 = value2(this), string1;
+ if (value1 == null) return void this.removeAttribute(name);
+ string0 = this.getAttribute(name);
+ string1 = value1 + "";
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
};
- };
- const messageFont$1 = (cnf) => {
- return {
- fontFamily: cnf.messageFontFamily,
- fontSize: cnf.messageFontSize,
- fontWeight: cnf.messageFontWeight
+ }
+ function attrFunctionNS2(fullname, interpolate, value2) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0, value1 = value2(this), string1;
+ if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
+ string0 = this.getAttributeNS(fullname.space, fullname.local);
+ string1 = value1 + "";
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
};
- };
- function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {
- if (!c4Shape[textType].width) {
- if (c4ShapeTextWrap) {
- c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);
- c4Shape[textType].textLines = c4Shape[textType].text.split(common$1.lineBreakRegex).length;
- c4Shape[textType].width = textLimitWidth;
- c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);
- } else {
- let lines = c4Shape[textType].text.split(common$1.lineBreakRegex);
- c4Shape[textType].textLines = lines.length;
- let lineHeight = 0;
- c4Shape[textType].height = 0;
- c4Shape[textType].width = 0;
- for (const line2 of lines) {
- c4Shape[textType].width = Math.max(
- calculateTextWidth(line2, textConf),
- c4Shape[textType].width
- );
- lineHeight = calculateTextHeight(line2, textConf);
- c4Shape[textType].height = c4Shape[textType].height + lineHeight;
- }
- }
+ }
+ function attr_default2(name, value2) {
+ var fullname = namespace_default(name), i2 = fullname === "transform" ? interpolateTransformSvg : interpolate_default;
+ return this.attrTween(name, typeof value2 === "function" ? (fullname.local ? attrFunctionNS2 : attrFunction2)(fullname, i2, tweenValue(this, "attr." + name, value2)) : value2 == null ? (fullname.local ? attrRemoveNS2 : attrRemove2)(fullname) : (fullname.local ? attrConstantNS2 : attrConstant2)(fullname, i2, value2));
+ }
+ var init_attr2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js"() {
+ "use strict";
+ init_src8();
+ init_src5();
+ init_tween();
+ init_interpolate();
+ __name(attrRemove2, "attrRemove");
+ __name(attrRemoveNS2, "attrRemoveNS");
+ __name(attrConstant2, "attrConstant");
+ __name(attrConstantNS2, "attrConstantNS");
+ __name(attrFunction2, "attrFunction");
+ __name(attrFunctionNS2, "attrFunctionNS");
+ __name(attr_default2, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js
+ function attrInterpolate(name, i2) {
+ return function(t4) {
+ this.setAttribute(name, i2.call(this, t4));
+ };
}
- const drawBoundary = function(diagram2, boundary, bounds2) {
- boundary.x = bounds2.data.startx;
- boundary.y = bounds2.data.starty;
- boundary.width = bounds2.data.stopx - bounds2.data.startx;
- boundary.height = bounds2.data.stopy - bounds2.data.starty;
- boundary.label.y = conf$a.c4ShapeMargin - 35;
- let boundaryTextWrap = boundary.wrap && conf$a.wrap;
- let boundaryLabelConf = boundaryFont(conf$a);
- boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;
- boundaryLabelConf.fontWeight = "bold";
- let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);
- calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);
- svgDraw$5.drawBoundary(diagram2, boundary, conf$a);
- };
- const drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {
- let Y2 = 0;
- for (const c4ShapeKey of c4ShapeKeys) {
- Y2 = 0;
- const c4Shape = c4ShapeArray2[c4ShapeKey];
- let c4ShapeTypeConf = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
- c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;
- c4Shape.typeC4Shape.width = calculateTextWidth(
- "<<" + c4Shape.typeC4Shape.text + ">>",
- c4ShapeTypeConf
- );
- c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;
- c4Shape.typeC4Shape.Y = conf$a.c4ShapePadding;
- Y2 = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;
- c4Shape.image = { width: 0, height: 0, Y: 0 };
- switch (c4Shape.typeC4Shape.text) {
- case "person":
- case "external_person":
- c4Shape.image.width = 48;
- c4Shape.image.height = 48;
- c4Shape.image.Y = Y2;
- Y2 = c4Shape.image.Y + c4Shape.image.height;
- break;
- }
- if (c4Shape.sprite) {
- c4Shape.image.width = 48;
- c4Shape.image.height = 48;
- c4Shape.image.Y = Y2;
- Y2 = c4Shape.image.Y + c4Shape.image.height;
- }
- let c4ShapeTextWrap = c4Shape.wrap && conf$a.wrap;
- let textLimitWidth = conf$a.width - conf$a.c4ShapePadding * 2;
- let c4ShapeLabelConf = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
- c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;
- c4ShapeLabelConf.fontWeight = "bold";
- calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);
- c4Shape["label"].Y = Y2 + 8;
- Y2 = c4Shape["label"].Y + c4Shape["label"].height;
- if (c4Shape.type && c4Shape.type.text !== "") {
- c4Shape.type.text = "[" + c4Shape.type.text + "]";
- let c4ShapeTypeConf2 = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
- calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);
- c4Shape["type"].Y = Y2 + 5;
- Y2 = c4Shape["type"].Y + c4Shape["type"].height;
- } else if (c4Shape.techn && c4Shape.techn.text !== "") {
- c4Shape.techn.text = "[" + c4Shape.techn.text + "]";
- let c4ShapeTechnConf = c4ShapeFont(conf$a, c4Shape.techn.text);
- calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);
- c4Shape["techn"].Y = Y2 + 5;
- Y2 = c4Shape["techn"].Y + c4Shape["techn"].height;
- }
- let rectHeight = Y2;
- let rectWidth = c4Shape.label.width;
- if (c4Shape.descr && c4Shape.descr.text !== "") {
- let c4ShapeDescrConf = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
- calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);
- c4Shape["descr"].Y = Y2 + 20;
- Y2 = c4Shape["descr"].Y + c4Shape["descr"].height;
- rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);
- rectHeight = Y2 - c4Shape["descr"].textLines * 5;
- }
- rectWidth = rectWidth + conf$a.c4ShapePadding;
- c4Shape.width = Math.max(c4Shape.width || conf$a.width, rectWidth, conf$a.width);
- c4Shape.height = Math.max(c4Shape.height || conf$a.height, rectHeight, conf$a.height);
- c4Shape.margin = c4Shape.margin || conf$a.c4ShapeMargin;
- currentBounds.insert(c4Shape);
- svgDraw$5.drawC4Shape(diagram2, c4Shape, conf$a);
- }
- currentBounds.bumpLastMargin(conf$a.c4ShapeMargin);
- };
- let Point$1 = class Point {
- constructor(x2, y2) {
- this.x = x2;
- this.y = y2;
+ function attrInterpolateNS(fullname, i2) {
+ return function(t4) {
+ this.setAttributeNS(fullname.space, fullname.local, i2.call(this, t4));
+ };
+ }
+ function attrTweenNS(fullname, value2) {
+ var t03, i0;
+ function tween() {
+ var i2 = value2.apply(this, arguments);
+ if (i2 !== i0) t03 = (i0 = i2) && attrInterpolateNS(fullname, i2);
+ return t03;
}
- };
- let getIntersectPoint = function(fromNode, endPoint) {
- let x1 = fromNode.x;
- let y1 = fromNode.y;
- let x2 = endPoint.x;
- let y2 = endPoint.y;
- let fromCenterX = x1 + fromNode.width / 2;
- let fromCenterY = y1 + fromNode.height / 2;
- let dx = Math.abs(x1 - x2);
- let dy = Math.abs(y1 - y2);
- let tanDYX = dy / dx;
- let fromDYX = fromNode.height / fromNode.width;
- let returnPoint = null;
- if (y1 == y2 && x1 < x2) {
- returnPoint = new Point$1(x1 + fromNode.width, fromCenterY);
- } else if (y1 == y2 && x1 > x2) {
- returnPoint = new Point$1(x1, fromCenterY);
- } else if (x1 == x2 && y1 < y2) {
- returnPoint = new Point$1(fromCenterX, y1 + fromNode.height);
- } else if (x1 == x2 && y1 > y2) {
- returnPoint = new Point$1(fromCenterX, y1);
- }
- if (x1 > x2 && y1 < y2) {
- if (fromDYX >= tanDYX) {
- returnPoint = new Point$1(x1, fromCenterY + tanDYX * fromNode.width / 2);
- } else {
- returnPoint = new Point$1(
- fromCenterX - dx / dy * fromNode.height / 2,
- y1 + fromNode.height
- );
- }
- } else if (x1 < x2 && y1 < y2) {
- if (fromDYX >= tanDYX) {
- returnPoint = new Point$1(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);
- } else {
- returnPoint = new Point$1(
- fromCenterX + dx / dy * fromNode.height / 2,
- y1 + fromNode.height
- );
- }
- } else if (x1 < x2 && y1 > y2) {
- if (fromDYX >= tanDYX) {
- returnPoint = new Point$1(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);
- } else {
- returnPoint = new Point$1(fromCenterX + fromNode.height / 2 * dx / dy, y1);
- }
- } else if (x1 > x2 && y1 > y2) {
- if (fromDYX >= tanDYX) {
- returnPoint = new Point$1(x1, fromCenterY - fromNode.width / 2 * tanDYX);
- } else {
- returnPoint = new Point$1(fromCenterX - fromNode.height / 2 * dx / dy, y1);
- }
+ __name(tween, "tween");
+ tween._value = value2;
+ return tween;
+ }
+ function attrTween(name, value2) {
+ var t03, i0;
+ function tween() {
+ var i2 = value2.apply(this, arguments);
+ if (i2 !== i0) t03 = (i0 = i2) && attrInterpolate(name, i2);
+ return t03;
}
- return returnPoint;
- };
- let getIntersectPoints = function(fromNode, endNode) {
- let endIntersectPoint = { x: 0, y: 0 };
- endIntersectPoint.x = endNode.x + endNode.width / 2;
- endIntersectPoint.y = endNode.y + endNode.height / 2;
- let startPoint = getIntersectPoint(fromNode, endIntersectPoint);
- endIntersectPoint.x = fromNode.x + fromNode.width / 2;
- endIntersectPoint.y = fromNode.y + fromNode.height / 2;
- let endPoint = getIntersectPoint(endNode, endIntersectPoint);
- return { startPoint, endPoint };
- };
- const drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) {
- let i2 = 0;
- for (let rel of rels2) {
- i2 = i2 + 1;
- let relTextWrap = rel.wrap && conf$a.wrap;
- let relConf = messageFont$1(conf$a);
- let diagramType = diagObj.db.getC4Type();
- if (diagramType === "C4Dynamic") {
- rel.label.text = i2 + ": " + rel.label.text;
- }
- let textLimitWidth = calculateTextWidth(rel.label.text, relConf);
- calcC4ShapeTextWH("label", rel, relTextWrap, relConf, textLimitWidth);
- if (rel.techn && rel.techn.text !== "") {
- textLimitWidth = calculateTextWidth(rel.techn.text, relConf);
- calcC4ShapeTextWH("techn", rel, relTextWrap, relConf, textLimitWidth);
- }
- if (rel.descr && rel.descr.text !== "") {
- textLimitWidth = calculateTextWidth(rel.descr.text, relConf);
- calcC4ShapeTextWH("descr", rel, relTextWrap, relConf, textLimitWidth);
- }
- let fromNode = getC4ShapeObj(rel.from);
- let endNode = getC4ShapeObj(rel.to);
- let points = getIntersectPoints(fromNode, endNode);
- rel.startPoint = points.startPoint;
- rel.endPoint = points.endPoint;
- }
- svgDraw$5.drawRels(diagram2, rels2, conf$a);
- };
- function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {
- let currentBounds = new Bounds(diagObj);
- currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length);
- for (let [i2, currentBoundary] of currentBoundaries.entries()) {
- let Y2 = 0;
- currentBoundary.image = { width: 0, height: 0, Y: 0 };
- if (currentBoundary.sprite) {
- currentBoundary.image.width = 48;
- currentBoundary.image.height = 48;
- currentBoundary.image.Y = Y2;
- Y2 = currentBoundary.image.Y + currentBoundary.image.height;
- }
- let currentBoundaryTextWrap = currentBoundary.wrap && conf$a.wrap;
- let currentBoundaryLabelConf = boundaryFont(conf$a);
- currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;
- currentBoundaryLabelConf.fontWeight = "bold";
- calcC4ShapeTextWH(
- "label",
- currentBoundary,
- currentBoundaryTextWrap,
- currentBoundaryLabelConf,
- currentBounds.data.widthLimit
- );
- currentBoundary["label"].Y = Y2 + 8;
- Y2 = currentBoundary["label"].Y + currentBoundary["label"].height;
- if (currentBoundary.type && currentBoundary.type.text !== "") {
- currentBoundary.type.text = "[" + currentBoundary.type.text + "]";
- let currentBoundaryTypeConf = boundaryFont(conf$a);
- calcC4ShapeTextWH(
- "type",
- currentBoundary,
- currentBoundaryTextWrap,
- currentBoundaryTypeConf,
- currentBounds.data.widthLimit
- );
- currentBoundary["type"].Y = Y2 + 5;
- Y2 = currentBoundary["type"].Y + currentBoundary["type"].height;
- }
- if (currentBoundary.descr && currentBoundary.descr.text !== "") {
- let currentBoundaryDescrConf = boundaryFont(conf$a);
- currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;
- calcC4ShapeTextWH(
- "descr",
- currentBoundary,
- currentBoundaryTextWrap,
- currentBoundaryDescrConf,
- currentBounds.data.widthLimit
- );
- currentBoundary["descr"].Y = Y2 + 20;
- Y2 = currentBoundary["descr"].Y + currentBoundary["descr"].height;
- }
- if (i2 == 0 || i2 % c4BoundaryInRow === 0) {
- let _x = parentBounds.data.startx + conf$a.diagramMarginX;
- let _y = parentBounds.data.stopy + conf$a.diagramMarginY + Y2;
- currentBounds.setData(_x, _x, _y, _y);
- } else {
- let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf$a.diagramMarginX : currentBounds.data.startx;
- let _y = currentBounds.data.starty;
- currentBounds.setData(_x, _x, _y, _y);
- }
- currentBounds.name = currentBoundary.alias;
- let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);
- let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);
- if (currentPersonOrSystemKeys.length > 0) {
- drawC4ShapeArray(
- currentBounds,
- diagram2,
- currentPersonOrSystemArray,
- currentPersonOrSystemKeys
- );
- }
- parentBoundaryAlias = currentBoundary.alias;
- let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);
- if (nextCurrentBoundarys.length > 0) {
- drawInsideBoundary(
- diagram2,
- parentBoundaryAlias,
- currentBounds,
- nextCurrentBoundarys,
- diagObj
- );
- }
- if (currentBoundary.alias !== "global") {
- drawBoundary(diagram2, currentBoundary, currentBounds);
- }
- parentBounds.data.stopy = Math.max(
- currentBounds.data.stopy + conf$a.c4ShapeMargin,
- parentBounds.data.stopy
- );
- parentBounds.data.stopx = Math.max(
- currentBounds.data.stopx + conf$a.c4ShapeMargin,
- parentBounds.data.stopx
- );
- globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);
- globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);
+ __name(tween, "tween");
+ tween._value = value2;
+ return tween;
+ }
+ function attrTween_default(name, value2) {
+ var key = "attr." + name;
+ if (arguments.length < 2) return (key = this.tween(key)) && key._value;
+ if (value2 == null) return this.tween(key, null);
+ if (typeof value2 !== "function") throw new Error();
+ var fullname = namespace_default(name);
+ return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value2));
+ }
+ var init_attrTween = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js"() {
+ "use strict";
+ init_src5();
+ __name(attrInterpolate, "attrInterpolate");
+ __name(attrInterpolateNS, "attrInterpolateNS");
+ __name(attrTweenNS, "attrTweenNS");
+ __name(attrTween, "attrTween");
+ __name(attrTween_default, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js
+ function delayFunction(id27, value2) {
+ return function() {
+ init(this, id27).delay = +value2.apply(this, arguments);
+ };
}
- const draw$h = function(_text, id2, _version, diagObj) {
- conf$a = getConfig$1().c4;
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- let db2 = diagObj.db;
- diagObj.db.setWrap(conf$a.wrap);
- c4ShapeInRow = db2.getC4ShapeInRow();
- c4BoundaryInRow = db2.getC4BoundaryInRow();
- log$1.debug(`C:${JSON.stringify(conf$a, null, 2)}`);
- const diagram2 = securityLevel === "sandbox" ? root2.select(`[id="${id2}"]`) : select(`[id="${id2}"]`);
- svgDraw$5.insertComputerIcon(diagram2);
- svgDraw$5.insertDatabaseIcon(diagram2);
- svgDraw$5.insertClockIcon(diagram2);
- let screenBounds = new Bounds(diagObj);
- screenBounds.setData(
- conf$a.diagramMarginX,
- conf$a.diagramMarginX,
- conf$a.diagramMarginY,
- conf$a.diagramMarginY
- );
- screenBounds.data.widthLimit = screen.availWidth;
- globalBoundaryMaxX = conf$a.diagramMarginX;
- globalBoundaryMaxY = conf$a.diagramMarginY;
- const title2 = diagObj.db.getTitle();
- let currentBoundaries = diagObj.db.getBoundarys("");
- drawInsideBoundary(diagram2, "", screenBounds, currentBoundaries, diagObj);
- svgDraw$5.insertArrowHead(diagram2);
- svgDraw$5.insertArrowEnd(diagram2);
- svgDraw$5.insertArrowCrossHead(diagram2);
- svgDraw$5.insertArrowFilledHead(diagram2);
- drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);
- screenBounds.data.stopx = globalBoundaryMaxX;
- screenBounds.data.stopy = globalBoundaryMaxY;
- const box = screenBounds.data;
- let boxHeight = box.stopy - box.starty;
- let height2 = boxHeight + 2 * conf$a.diagramMarginY;
- let boxWidth = box.stopx - box.startx;
- const width2 = boxWidth + 2 * conf$a.diagramMarginX;
- if (title2) {
- diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf$a.diagramMarginX).attr("y", box.starty + conf$a.diagramMarginY);
- }
- configureSvgSize(diagram2, height2, width2, conf$a.useMaxWidth);
- const extraVertForTitle = title2 ? 60 : 0;
- diagram2.attr(
- "viewBox",
- box.startx - conf$a.diagramMarginX + " -" + (conf$a.diagramMarginY + extraVertForTitle) + " " + width2 + " " + (height2 + extraVertForTitle)
- );
- log$1.debug(`models:`, box);
- };
- const c4Renderer = {
- drawPersonOrSystemArray: drawC4ShapeArray,
- drawBoundary,
- setConf: setConf$9,
- draw: draw$h
- };
- const getStyles$e = (options2) => `.person {
- stroke: ${options2.personBorder};
- fill: ${options2.personBkg};
+ function delayConstant(id27, value2) {
+ return value2 = +value2, function() {
+ init(this, id27).delay = value2;
+ };
}
-`;
- const c4Styles = getStyles$e;
- const diagram$h = {
- parser: c4Parser,
- db: c4Db,
- renderer: c4Renderer,
- styles: c4Styles,
- init: (cnf) => {
- c4Renderer.setConf(cnf.c4);
+ function delay_default(value2) {
+ var id27 = this._id;
+ return arguments.length ? this.each((typeof value2 === "function" ? delayFunction : delayConstant)(id27, value2)) : get2(this.node(), id27).delay;
+ }
+ var init_delay = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js"() {
+ "use strict";
+ init_schedule();
+ __name(delayFunction, "delayFunction");
+ __name(delayConstant, "delayConstant");
+ __name(delay_default, "default");
}
- };
- const c4Diagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$h
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$k = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 9], $V1 = [1, 7], $V2 = [1, 6], $V3 = [1, 8], $V4 = [1, 20, 21, 22, 23, 38, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V5 = [2, 10], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 30], $Vb = [1, 32], $Vc = [1, 33], $Vd = [1, 34], $Ve = [1, 62], $Vf = [1, 48], $Vg = [1, 52], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 38], $Vk = [1, 39], $Vl = [1, 40], $Vm = [1, 56], $Vn = [1, 63], $Vo = [1, 51], $Vp = [1, 53], $Vq = [1, 55], $Vr = [1, 59], $Vs = [1, 60], $Vt = [1, 41], $Vu = [1, 42], $Vv = [1, 43], $Vw = [1, 44], $Vx = [1, 61], $Vy = [1, 50], $Vz = [1, 54], $VA = [1, 57], $VB = [1, 58], $VC = [1, 49], $VD = [1, 66], $VE = [1, 71], $VF = [1, 20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $VG = [1, 75], $VH = [1, 74], $VI = [1, 76], $VJ = [20, 21, 23, 81, 82], $VK = [1, 99], $VL = [1, 104], $VM = [1, 107], $VN = [1, 108], $VO = [1, 101], $VP = [1, 106], $VQ = [1, 109], $VR = [1, 102], $VS = [1, 114], $VT = [1, 113], $VU = [1, 103], $VV = [1, 105], $VW = [1, 110], $VX = [1, 111], $VY = [1, 112], $VZ = [1, 115], $V_ = [20, 21, 22, 23, 81, 82], $V$ = [20, 21, 22, 23, 53, 81, 82], $V01 = [20, 21, 22, 23, 40, 52, 53, 55, 57, 59, 61, 63, 65, 66, 67, 69, 71, 73, 74, 76, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V11 = [20, 21, 23], $V21 = [20, 21, 23, 52, 66, 67, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V31 = [1, 12, 20, 21, 22, 23, 24, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V41 = [52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V51 = [1, 150], $V61 = [1, 158], $V71 = [1, 159], $V81 = [1, 160], $V91 = [1, 161], $Va1 = [1, 145], $Vb1 = [1, 146], $Vc1 = [1, 141], $Vd1 = [1, 142], $Ve1 = [1, 153], $Vf1 = [1, 154], $Vg1 = [1, 155], $Vh1 = [1, 156], $Vi1 = [1, 157], $Vj1 = [1, 162], $Vk1 = [1, 163], $Vl1 = [1, 148], $Vm1 = [1, 151], $Vn1 = [1, 147], $Vo1 = [1, 144], $Vp1 = [20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $Vq1 = [1, 166], $Vr1 = [20, 21, 22, 23, 26, 52, 66, 67, 92, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $Vs1 = [20, 21, 22, 23, 24, 26, 38, 40, 41, 42, 52, 56, 58, 60, 62, 64, 66, 67, 68, 70, 72, 73, 75, 77, 81, 82, 87, 88, 89, 90, 91, 92, 93, 96, 106, 107, 110, 112, 113, 114, 115, 123, 124, 125, 126, 127, 128], $Vt1 = [12, 21, 22, 24], $Vu1 = [22, 107], $Vv1 = [1, 251], $Vw1 = [1, 246], $Vx1 = [1, 247], $Vy1 = [1, 255], $Vz1 = [1, 252], $VA1 = [1, 249], $VB1 = [1, 248], $VC1 = [1, 250], $VD1 = [1, 253], $VE1 = [1, 254], $VF1 = [1, 256], $VG1 = [1, 274], $VH1 = [20, 21, 23, 107], $VI1 = [20, 21, 22, 23, 66, 67, 87, 103, 106, 107, 110, 111, 112, 113, 114];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "directive": 5, "openDirective": 6, "typeDirective": 7, "closeDirective": 8, "separator": 9, ":": 10, "argDirective": 11, "open_directive": 12, "type_directive": 13, "arg_directive": 14, "close_directive": 15, "graphConfig": 16, "document": 17, "line": 18, "statement": 19, "SEMI": 20, "NEWLINE": 21, "SPACE": 22, "EOF": 23, "GRAPH": 24, "NODIR": 25, "DIR": 26, "FirstStmtSeperator": 27, "ending": 28, "endToken": 29, "spaceList": 30, "spaceListNewline": 31, "verticeStatement": 32, "styleStatement": 33, "linkStyleStatement": 34, "classDefStatement": 35, "classStatement": 36, "clickStatement": 37, "subgraph": 38, "text": 39, "SQS": 40, "SQE": 41, "end": 42, "direction": 43, "acc_title": 44, "acc_title_value": 45, "acc_descr": 46, "acc_descr_value": 47, "acc_descr_multiline_value": 48, "link": 49, "node": 50, "vertex": 51, "AMP": 52, "STYLE_SEPARATOR": 53, "idString": 54, "DOUBLECIRCLESTART": 55, "DOUBLECIRCLEEND": 56, "PS": 57, "PE": 58, "(-": 59, "-)": 60, "STADIUMSTART": 61, "STADIUMEND": 62, "SUBROUTINESTART": 63, "SUBROUTINEEND": 64, "VERTEX_WITH_PROPS_START": 65, "ALPHA": 66, "COLON": 67, "PIPE": 68, "CYLINDERSTART": 69, "CYLINDEREND": 70, "DIAMOND_START": 71, "DIAMOND_STOP": 72, "TAGEND": 73, "TRAPSTART": 74, "TRAPEND": 75, "INVTRAPSTART": 76, "INVTRAPEND": 77, "linkStatement": 78, "arrowText": 79, "TESTSTR": 80, "START_LINK": 81, "LINK": 82, "textToken": 83, "STR": 84, "MD_STR": 85, "keywords": 86, "STYLE": 87, "LINKSTYLE": 88, "CLASSDEF": 89, "CLASS": 90, "CLICK": 91, "DOWN": 92, "UP": 93, "textNoTags": 94, "textNoTagsToken": 95, "DEFAULT": 96, "stylesOpt": 97, "alphaNum": 98, "CALLBACKNAME": 99, "CALLBACKARGS": 100, "HREF": 101, "LINK_TARGET": 102, "HEX": 103, "numList": 104, "INTERPOLATE": 105, "NUM": 106, "COMMA": 107, "style": 108, "styleComponent": 109, "MINUS": 110, "UNIT": 111, "BRKT": 112, "DOT": 113, "PCT": 114, "TAGSTART": 115, "alphaNumToken": 116, "idStringToken": 117, "alphaNumStatement": 118, "direction_tb": 119, "direction_bt": 120, "direction_rl": 121, "direction_lr": 122, "PUNCTUATION": 123, "UNICODE_TEXT": 124, "PLUS": 125, "EQUALS": 126, "MULT": 127, "UNDERSCORE": 128, "graphCodeTokens": 129, "ARROW_CROSS": 130, "ARROW_POINT": 131, "ARROW_CIRCLE": 132, "ARROW_OPEN": 133, "QUOTE": 134, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 10: ":", 12: "open_directive", 13: "type_directive", 14: "arg_directive", 15: "close_directive", 20: "SEMI", 21: "NEWLINE", 22: "SPACE", 23: "EOF", 24: "GRAPH", 25: "NODIR", 26: "DIR", 38: "subgraph", 40: "SQS", 41: "SQE", 42: "end", 44: "acc_title", 45: "acc_title_value", 46: "acc_descr", 47: "acc_descr_value", 48: "acc_descr_multiline_value", 52: "AMP", 53: "STYLE_SEPARATOR", 55: "DOUBLECIRCLESTART", 56: "DOUBLECIRCLEEND", 57: "PS", 58: "PE", 59: "(-", 60: "-)", 61: "STADIUMSTART", 62: "STADIUMEND", 63: "SUBROUTINESTART", 64: "SUBROUTINEEND", 65: "VERTEX_WITH_PROPS_START", 66: "ALPHA", 67: "COLON", 68: "PIPE", 69: "CYLINDERSTART", 70: "CYLINDEREND", 71: "DIAMOND_START", 72: "DIAMOND_STOP", 73: "TAGEND", 74: "TRAPSTART", 75: "TRAPEND", 76: "INVTRAPSTART", 77: "INVTRAPEND", 80: "TESTSTR", 81: "START_LINK", 82: "LINK", 84: "STR", 85: "MD_STR", 87: "STYLE", 88: "LINKSTYLE", 89: "CLASSDEF", 90: "CLASS", 91: "CLICK", 92: "DOWN", 93: "UP", 96: "DEFAULT", 99: "CALLBACKNAME", 100: "CALLBACKARGS", 101: "HREF", 102: "LINK_TARGET", 103: "HEX", 105: "INTERPOLATE", 106: "NUM", 107: "COMMA", 110: "MINUS", 111: "UNIT", 112: "BRKT", 113: "DOT", 114: "PCT", 115: "TAGSTART", 119: "direction_tb", 120: "direction_bt", 121: "direction_rl", 122: "direction_lr", 123: "PUNCTUATION", 124: "UNICODE_TEXT", 125: "PLUS", 126: "EQUALS", 127: "MULT", 128: "UNDERSCORE", 130: "ARROW_CROSS", 131: "ARROW_POINT", 132: "ARROW_CIRCLE", 133: "ARROW_OPEN", 134: "QUOTE" },
- productions_: [0, [3, 1], [3, 2], [5, 4], [5, 6], [6, 1], [7, 1], [11, 1], [8, 1], [4, 2], [17, 0], [17, 2], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [16, 2], [16, 2], [16, 2], [16, 3], [28, 2], [28, 1], [29, 1], [29, 1], [29, 1], [27, 1], [27, 1], [27, 2], [31, 2], [31, 2], [31, 1], [31, 1], [30, 2], [30, 1], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 9], [19, 6], [19, 4], [19, 1], [19, 2], [19, 2], [19, 1], [9, 1], [9, 1], [9, 1], [32, 3], [32, 4], [32, 2], [32, 1], [50, 1], [50, 5], [50, 3], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 8], [51, 4], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 4], [51, 4], [51, 1], [49, 2], [49, 3], [49, 3], [49, 1], [49, 3], [78, 1], [79, 3], [39, 1], [39, 2], [39, 1], [39, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [94, 1], [94, 2], [35, 5], [35, 5], [36, 5], [37, 2], [37, 4], [37, 3], [37, 5], [37, 2], [37, 4], [37, 4], [37, 6], [37, 2], [37, 4], [37, 2], [37, 4], [37, 4], [37, 6], [33, 5], [33, 5], [34, 5], [34, 5], [34, 9], [34, 9], [34, 7], [34, 7], [104, 1], [104, 3], [97, 1], [97, 3], [108, 1], [108, 2], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [95, 1], [95, 1], [95, 1], [95, 1], [54, 1], [54, 2], [98, 1], [98, 2], [118, 1], [118, 1], [118, 1], [118, 1], [43, 1], [43, 1], [43, 1], [43, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 5:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 6:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 7:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 8:
- yy.parseDirective("}%%", "close_directive", "flowchart");
- break;
- case 10:
- this.$ = [];
- break;
- case 11:
- if (!Array.isArray($$[$0]) || $$[$0].length > 0) {
- $$[$0 - 1].push($$[$0]);
- }
- this.$ = $$[$0 - 1];
- break;
- case 12:
- case 97:
- case 153:
- case 155:
- case 156:
- this.$ = $$[$0];
- break;
- case 19:
- yy.setDirection("TB");
- this.$ = "TB";
- break;
- case 20:
- yy.setDirection($$[$0 - 1]);
- this.$ = $$[$0 - 1];
- break;
- case 35:
- this.$ = $$[$0 - 1].nodes;
- break;
- case 36:
- case 37:
- case 38:
- case 39:
- case 40:
- this.$ = [];
- break;
- case 41:
- this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);
- break;
- case 42:
- this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);
- break;
- case 43:
- this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);
- break;
- case 45:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 46:
- case 47:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 51:
- yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);
- this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };
- break;
- case 52:
- yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);
- this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };
- break;
- case 53:
- this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };
- break;
- case 54:
- this.$ = { stmt: $$[$0], nodes: $$[$0] };
- break;
- case 55:
- this.$ = [$$[$0]];
- break;
- case 56:
- this.$ = $$[$0 - 4].concat($$[$0]);
- break;
- case 57:
- this.$ = [$$[$0 - 2]];
- yy.setClass($$[$0 - 2], $$[$0]);
- break;
- case 58:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "square");
- break;
- case 59:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle");
- break;
- case 60:
- this.$ = $$[$0 - 5];
- yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle");
- break;
- case 61:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse");
- break;
- case 62:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium");
- break;
- case 63:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine");
- break;
- case 64:
- this.$ = $$[$0 - 7];
- yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));
- break;
- case 65:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder");
- break;
- case 66:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "round");
- break;
- case 67:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond");
- break;
- case 68:
- this.$ = $$[$0 - 5];
- yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon");
- break;
- case 69:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd");
- break;
- case 70:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid");
- break;
- case 71:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid");
- break;
- case 72:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right");
- break;
- case 73:
- this.$ = $$[$0 - 3];
- yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left");
- break;
- case 74:
- this.$ = $$[$0];
- yy.addVertex($$[$0]);
- break;
- case 75:
- $$[$0 - 1].text = $$[$0];
- this.$ = $$[$0 - 1];
- break;
- case 76:
- case 77:
- $$[$0 - 2].text = $$[$0 - 1];
- this.$ = $$[$0 - 2];
- break;
- case 78:
- this.$ = $$[$0];
- break;
- case 79:
- var inf = yy.destructLink($$[$0], $$[$0 - 2]);
- this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] };
- break;
- case 80:
- var inf = yy.destructLink($$[$0]);
- this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length };
- break;
- case 81:
- this.$ = $$[$0 - 1];
- break;
- case 82:
- this.$ = { text: $$[$0], type: "text" };
- break;
- case 83:
- this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
- break;
- case 84:
- this.$ = { text: $$[$0], type: "text" };
- break;
- case 85:
- this.$ = { text: $$[$0], type: "markdown" };
- break;
- case 98:
- case 154:
- this.$ = $$[$0 - 1] + "" + $$[$0];
- break;
- case 99:
- case 100:
- this.$ = $$[$0 - 4];
- yy.addClass($$[$0 - 2], $$[$0]);
- break;
- case 101:
- this.$ = $$[$0 - 4];
- yy.setClass($$[$0 - 2], $$[$0]);
- break;
- case 102:
- case 110:
- this.$ = $$[$0 - 1];
- yy.setClickEvent($$[$0 - 1], $$[$0]);
- break;
- case 103:
- case 111:
- this.$ = $$[$0 - 3];
- yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);
- yy.setTooltip($$[$0 - 3], $$[$0]);
- break;
- case 104:
- this.$ = $$[$0 - 2];
- yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
- break;
- case 105:
- this.$ = $$[$0 - 4];
- yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);
- yy.setTooltip($$[$0 - 4], $$[$0]);
- break;
- case 106:
- case 112:
- this.$ = $$[$0 - 1];
- yy.setLink($$[$0 - 1], $$[$0]);
- break;
- case 107:
- case 113:
- this.$ = $$[$0 - 3];
- yy.setLink($$[$0 - 3], $$[$0 - 2]);
- yy.setTooltip($$[$0 - 3], $$[$0]);
- break;
- case 108:
- case 114:
- this.$ = $$[$0 - 3];
- yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
- break;
- case 109:
- case 115:
- this.$ = $$[$0 - 5];
- yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);
- yy.setTooltip($$[$0 - 5], $$[$0 - 2]);
- break;
- case 116:
- this.$ = $$[$0 - 4];
- yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);
- break;
- case 117:
- case 119:
- this.$ = $$[$0 - 4];
- yy.updateLink($$[$0 - 2], $$[$0]);
- break;
- case 118:
- this.$ = $$[$0 - 4];
- yy.updateLink([$$[$0 - 2]], $$[$0]);
- break;
- case 120:
- this.$ = $$[$0 - 8];
- yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);
- yy.updateLink([$$[$0 - 6]], $$[$0]);
- break;
- case 121:
- this.$ = $$[$0 - 8];
- yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);
- yy.updateLink($$[$0 - 6], $$[$0]);
- break;
- case 122:
- this.$ = $$[$0 - 6];
- yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);
- break;
- case 123:
- this.$ = $$[$0 - 6];
- yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
- break;
- case 124:
- case 126:
- this.$ = [$$[$0]];
- break;
- case 125:
- case 127:
- $$[$0 - 2].push($$[$0]);
- this.$ = $$[$0 - 2];
- break;
- case 129:
- this.$ = $$[$0 - 1] + $$[$0];
- break;
- case 151:
- this.$ = $$[$0];
- break;
- case 152:
- this.$ = $$[$0 - 1] + "" + $$[$0];
- break;
- case 157:
- this.$ = "v";
- break;
- case 158:
- this.$ = "-";
- break;
- case 159:
- this.$ = { stmt: "dir", value: "TB" };
- break;
- case 160:
- this.$ = { stmt: "dir", value: "BT" };
- break;
- case 161:
- this.$ = { stmt: "dir", value: "RL" };
- break;
- case 162:
- this.$ = { stmt: "dir", value: "LR" };
- break;
- }
- },
- table: [{ 3: 1, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, { 1: [3] }, { 1: [2, 1] }, { 3: 10, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, o($V4, $V5, { 17: 11 }), { 7: 12, 13: [1, 13] }, { 16: 14, 21: $V1, 22: $V2, 24: $V3 }, { 16: 15, 21: $V1, 22: $V2, 24: $V3 }, { 25: [1, 16], 26: [1, 17] }, { 13: [2, 5] }, { 1: [2, 2] }, { 1: [2, 9], 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 8: 64, 10: [1, 65], 15: $VD }, o([10, 15], [2, 6]), o($V4, [2, 17]), o($V4, [2, 18]), o($V4, [2, 19]), { 20: [1, 68], 21: [1, 69], 22: $VE, 27: 67, 30: 70 }, o($VF, [2, 11]), o($VF, [2, 12]), o($VF, [2, 13]), o($VF, [2, 14]), o($VF, [2, 15]), o($VF, [2, 16]), { 9: 72, 20: $VG, 21: $VH, 23: $VI, 49: 73, 78: 77, 81: [1, 78], 82: [1, 79] }, { 9: 80, 20: $VG, 21: $VH, 23: $VI }, { 9: 81, 20: $VG, 21: $VH, 23: $VI }, { 9: 82, 20: $VG, 21: $VH, 23: $VI }, { 9: 83, 20: $VG, 21: $VH, 23: $VI }, { 9: 84, 20: $VG, 21: $VH, 23: $VI }, { 9: 86, 20: $VG, 21: $VH, 22: [1, 85], 23: $VI }, o($VF, [2, 44]), { 45: [1, 87] }, { 47: [1, 88] }, o($VF, [2, 47]), o($VJ, [2, 54], { 30: 89, 22: $VE }), { 22: [1, 90] }, { 22: [1, 91] }, { 22: [1, 92] }, { 22: [1, 93] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 84: [1, 97], 92: $VO, 98: 96, 99: [1, 94], 101: [1, 95], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($VF, [2, 159]), o($VF, [2, 160]), o($VF, [2, 161]), o($VF, [2, 162]), o($V_, [2, 55], { 53: [1, 116] }), o($V$, [2, 74], { 117: 129, 40: [1, 117], 52: $Ve, 55: [1, 118], 57: [1, 119], 59: [1, 120], 61: [1, 121], 63: [1, 122], 65: [1, 123], 66: $Vf, 67: $Vg, 69: [1, 124], 71: [1, 125], 73: [1, 126], 74: [1, 127], 76: [1, 128], 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), o($V01, [2, 151]), o($V01, [2, 176]), o($V01, [2, 177]), o($V01, [2, 178]), o($V01, [2, 179]), o($V01, [2, 180]), o($V01, [2, 181]), o($V01, [2, 182]), o($V01, [2, 183]), o($V01, [2, 184]), o($V01, [2, 185]), o($V01, [2, 186]), o($V01, [2, 187]), o($V01, [2, 188]), o($V01, [2, 189]), o($V01, [2, 190]), o($V01, [2, 191]), { 9: 130, 20: $VG, 21: $VH, 23: $VI }, { 11: 131, 14: [1, 132] }, o($V11, [2, 8]), o($V4, [2, 20]), o($V4, [2, 26]), o($V4, [2, 27]), { 21: [1, 133] }, o($V21, [2, 34], { 30: 134, 22: $VE }), o($VF, [2, 35]), { 50: 135, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V31, [2, 48]), o($V31, [2, 49]), o($V31, [2, 50]), o($V41, [2, 78], { 79: 136, 68: [1, 138], 80: [1, 137] }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 139, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o([52, 66, 67, 68, 80, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 80]), o($VF, [2, 36]), o($VF, [2, 37]), o($VF, [2, 38]), o($VF, [2, 39]), o($VF, [2, 40]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 164, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 165 }), o($VF, [2, 45]), o($VF, [2, 46]), o($VJ, [2, 53], { 52: $Vq1 }), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 167, 103: [1, 168], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 96: [1, 169], 104: 170, 106: [1, 171] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 96: [1, 172], 98: 173, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 174, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 102], { 22: [1, 175], 100: [1, 176] }), o($V11, [2, 106], { 22: [1, 177] }), o($V11, [2, 110], { 116: 100, 118: 179, 22: [1, 178], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 112], { 22: [1, 180] }), o($Vr1, [2, 153]), o($Vr1, [2, 155]), o($Vr1, [2, 156]), o($Vr1, [2, 157]), o($Vr1, [2, 158]), o($Vs1, [2, 163]), o($Vs1, [2, 164]), o($Vs1, [2, 165]), o($Vs1, [2, 166]), o($Vs1, [2, 167]), o($Vs1, [2, 168]), o($Vs1, [2, 169]), o($Vs1, [2, 170]), o($Vs1, [2, 171]), o($Vs1, [2, 172]), o($Vs1, [2, 173]), o($Vs1, [2, 174]), o($Vs1, [2, 175]), { 52: $Ve, 54: 181, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 182, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 183, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 185, 42: $V91, 52: $VL, 57: [1, 184], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 186, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 187, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 188, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 66: [1, 189] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 190, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 191, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 71: [1, 192], 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 193, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 194, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 195, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V01, [2, 152]), o($Vt1, [2, 3]), { 8: 196, 15: $VD }, { 15: [2, 7] }, o($V4, [2, 28]), o($V21, [2, 33]), o($VJ, [2, 51], { 30: 197, 22: $VE }), o($V41, [2, 75], { 22: [1, 198] }), { 22: [1, 199] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 200, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 82: [1, 201], 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vs1, [2, 82]), o($Vs1, [2, 84]), o($Vs1, [2, 85]), o($Vs1, [2, 141]), o($Vs1, [2, 142]), o($Vs1, [2, 143]), o($Vs1, [2, 144]), o($Vs1, [2, 145]), o($Vs1, [2, 146]), o($Vs1, [2, 147]), o($Vs1, [2, 148]), o($Vs1, [2, 149]), o($Vs1, [2, 150]), o($Vs1, [2, 86]), o($Vs1, [2, 87]), o($Vs1, [2, 88]), o($Vs1, [2, 89]), o($Vs1, [2, 90]), o($Vs1, [2, 91]), o($Vs1, [2, 92]), o($Vs1, [2, 93]), o($Vs1, [2, 94]), o($Vs1, [2, 95]), o($Vs1, [2, 96]), { 9: 204, 20: $VG, 21: $VH, 22: $V51, 23: $VI, 24: $V61, 26: $V71, 38: $V81, 40: [1, 203], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 205], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $VE, 30: 206 }, { 22: [1, 207], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 208] }, { 22: [1, 209] }, { 22: [1, 210], 107: [1, 211] }, o($Vu1, [2, 124]), { 22: [1, 212] }, { 22: [1, 213], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 214], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 84: [1, 215] }, o($V11, [2, 104], { 22: [1, 216] }), { 84: [1, 217], 102: [1, 218] }, { 84: [1, 219] }, o($Vr1, [2, 154]), { 84: [1, 220], 102: [1, 221] }, o($V_, [2, 57], { 117: 129, 52: $Ve, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 222], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 56: [1, 223], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 224, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 225], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 60: [1, 226], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 62: [1, 227], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 64: [1, 228], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 67: [1, 229] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 70: [1, 230], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 231], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 232, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 233], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 234], 77: [1, 235], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 237], 77: [1, 236], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 9: 238, 20: $VG, 21: $VH, 23: $VI }, o($VJ, [2, 52], { 52: $Vq1 }), o($V41, [2, 77]), o($V41, [2, 76]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 68: [1, 239], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V41, [2, 79]), o($Vs1, [2, 83]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 240, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 241 }), o($VF, [2, 43]), { 51: 242, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 243, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 257, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 258, 103: $Vz1, 105: [1, 259], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 260, 103: $Vz1, 105: [1, 261], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 106: [1, 262] }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 263, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 264, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 265, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 103]), { 84: [1, 266] }, o($V11, [2, 107], { 22: [1, 267] }), o($V11, [2, 108]), o($V11, [2, 111]), o($V11, [2, 113], { 22: [1, 268] }), o($V11, [2, 114]), o($V$, [2, 58]), o($V$, [2, 59]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 269], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 66]), o($V$, [2, 61]), o($V$, [2, 62]), o($V$, [2, 63]), { 66: [1, 270] }, o($V$, [2, 65]), o($V$, [2, 67]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 271], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 69]), o($V$, [2, 70]), o($V$, [2, 72]), o($V$, [2, 71]), o($V$, [2, 73]), o($Vt1, [2, 4]), o([22, 52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 81]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 272], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 273], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V_, [2, 56]), o($V11, [2, 116], { 107: $VG1 }), o($VH1, [2, 126], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($VI1, [2, 128]), o($VI1, [2, 130]), o($VI1, [2, 131]), o($VI1, [2, 132]), o($VI1, [2, 133]), o($VI1, [2, 134]), o($VI1, [2, 135]), o($VI1, [2, 136]), o($VI1, [2, 137]), o($VI1, [2, 138]), o($VI1, [2, 139]), o($VI1, [2, 140]), o($V11, [2, 117], { 107: $VG1 }), o($V11, [2, 118], { 107: $VG1 }), { 22: [1, 276] }, o($V11, [2, 119], { 107: $VG1 }), { 22: [1, 277] }, o($Vu1, [2, 125]), o($V11, [2, 99], { 107: $VG1 }), o($V11, [2, 100], { 107: $VG1 }), o($V11, [2, 101], { 116: 100, 118: 179, 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 105]), { 102: [1, 278] }, { 102: [1, 279] }, { 58: [1, 280] }, { 68: [1, 281] }, { 72: [1, 282] }, { 9: 283, 20: $VG, 21: $VH, 23: $VI }, o($VF, [2, 42]), { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 108: 284, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($VI1, [2, 129]), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 285, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 286, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 109]), o($V11, [2, 115]), o($V$, [2, 60]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 287, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 68]), o($Vp1, $V5, { 17: 288 }), o($VH1, [2, 127], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($V11, [2, 122], { 116: 100, 118: 179, 22: [1, 289], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 123], { 116: 100, 118: 179, 22: [1, 290], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 291], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 292], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 293, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 294, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($V$, [2, 64]), o($VF, [2, 41]), o($V11, [2, 120], { 107: $VG1 }), o($V11, [2, 121], { 107: $VG1 })],
- defaultActions: { 2: [2, 1], 9: [2, 5], 10: [2, 2], 132: [2, 7] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
- }
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js
+ function durationFunction(id27, value2) {
+ return function() {
+ set2(this, id27).duration = +value2.apply(this, arguments);
};
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: {},
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 12;
- case 1:
- this.begin("type_directive");
- return 13;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 10;
- case 3:
- this.popState();
- this.popState();
- return 15;
- case 4:
- return 14;
- case 5:
- this.begin("acc_title");
- return 44;
- case 6:
- this.popState();
- return "acc_title_value";
- case 7:
- this.begin("acc_descr");
- return 46;
- case 8:
- this.popState();
- return "acc_descr_value";
- case 9:
- this.begin("acc_descr_multiline");
- break;
- case 10:
- this.popState();
- break;
- case 11:
- return "acc_descr_multiline_value";
- case 12:
- this.begin("md_string");
- break;
- case 13:
- return "MD_STR";
- case 14:
- this.popState();
- break;
- case 15:
- this.begin("string");
- break;
- case 16:
- this.popState();
- break;
- case 17:
- return "STR";
- case 18:
- return 87;
- case 19:
- return 96;
- case 20:
- return 88;
- case 21:
- return 105;
- case 22:
- return 89;
- case 23:
- return 90;
- case 24:
- this.begin("href");
- break;
- case 25:
- this.popState();
- break;
- case 26:
- return 101;
- case 27:
- this.begin("callbackname");
- break;
- case 28:
- this.popState();
- break;
- case 29:
- this.popState();
- this.begin("callbackargs");
- break;
- case 30:
- return 99;
- case 31:
- this.popState();
- break;
- case 32:
- return 100;
- case 33:
- this.begin("click");
- break;
- case 34:
- this.popState();
- break;
- case 35:
- return 91;
- case 36:
- if (yy.lex.firstGraph()) {
- this.begin("dir");
- }
- return 24;
- case 37:
- if (yy.lex.firstGraph()) {
- this.begin("dir");
- }
- return 24;
- case 38:
- if (yy.lex.firstGraph()) {
- this.begin("dir");
- }
- return 24;
- case 39:
- return 38;
- case 40:
- return 42;
- case 41:
- return 102;
- case 42:
- return 102;
- case 43:
- return 102;
- case 44:
- return 102;
- case 45:
- this.popState();
- return 25;
- case 46:
- this.popState();
- return 26;
- case 47:
- this.popState();
- return 26;
- case 48:
- this.popState();
- return 26;
- case 49:
- this.popState();
- return 26;
- case 50:
- this.popState();
- return 26;
- case 51:
- this.popState();
- return 26;
- case 52:
- this.popState();
- return 26;
- case 53:
- this.popState();
- return 26;
- case 54:
- this.popState();
- return 26;
- case 55:
- this.popState();
- return 26;
- case 56:
- return 119;
- case 57:
- return 120;
- case 58:
- return 121;
- case 59:
- return 122;
- case 60:
- return 106;
- case 61:
- return 112;
- case 62:
- return 53;
- case 63:
- return 67;
- case 64:
- return 52;
- case 65:
- return 20;
- case 66:
- return 107;
- case 67:
- return 127;
- case 68:
- return 82;
- case 69:
- return 82;
- case 70:
- return 82;
- case 71:
- return 82;
- case 72:
- return 81;
- case 73:
- return 81;
- case 74:
- return 81;
- case 75:
- return 59;
- case 76:
- return 60;
- case 77:
- return 61;
- case 78:
- return 62;
- case 79:
- return 63;
- case 80:
- return 64;
- case 81:
- return 65;
- case 82:
- return 69;
- case 83:
- return 70;
- case 84:
- return 55;
- case 85:
- return 56;
- case 86:
- return 110;
- case 87:
- return 113;
- case 88:
- return 128;
- case 89:
- return 125;
- case 90:
- return 114;
- case 91:
- return 126;
- case 92:
- return 126;
- case 93:
- return 115;
- case 94:
- return 73;
- case 95:
- return 93;
- case 96:
- return "SEP";
- case 97:
- return 92;
- case 98:
- return 66;
- case 99:
- return 75;
- case 100:
- return 74;
- case 101:
- return 77;
- case 102:
- return 76;
- case 103:
- return 123;
- case 104:
- return 124;
- case 105:
- return 68;
- case 106:
- return 57;
- case 107:
- return 58;
- case 108:
- return 40;
- case 109:
- return 41;
- case 110:
- return 71;
- case 111:
- return 72;
- case 112:
- return 134;
- case 113:
- return 21;
- case 114:
- return 22;
- case 115:
- return 23;
- }
- },
- rules: [/^(?:%%\{)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:\(-)/, /^(?:-\))/, /^(?:\(\[)/, /^(?:\]\))/, /^(?:\[\[)/, /^(?:\]\])/, /^(?:\[\|)/, /^(?:\[\()/, /^(?:\)\])/, /^(?:\(\(\()/, /^(?:\)\)\))/, /^(?:-)/, /^(?:\.)/, /^(?:[\_])/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:[A-Za-z]+)/, /^(?:\\\])/, /^(?:\[\/)/, /^(?:\/\])/, /^(?:\[\\)/, /^(?:[!"#$%&'*+,-.`?\\_/])/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\()/, /^(?:\))/, /^(?:\[)/, /^(?:\])/, /^(?:\{)/, /^(?:\})/, /^(?:")/, /^(?:(\r?\n)+)/, /^(?:\s)/, /^(?:$)/],
- conditions: { "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [31, 32], "inclusive": false }, "callbackname": { "rules": [28, 29, 30], "inclusive": false }, "href": { "rules": [25, 26], "inclusive": false }, "click": { "rules": [34, 35], "inclusive": false }, "vertex": { "rules": [], "inclusive": false }, "dir": { "rules": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": false }, "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "md_string": { "rules": [13, 14], "inclusive": false }, "string": { "rules": [16, 17], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 15, 18, 19, 20, 21, 22, 23, 24, 27, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$k.parser = parser$k;
- const parser$l = parser$k;
- const MERMAID_DOM_ID_PREFIX$1 = "flowchart-";
- let vertexCounter = 0;
- let config = getConfig$1();
- let vertices = {};
- let edges = [];
- let classes$2 = {};
- let subGraphs = [];
- let subGraphLookup = {};
- let tooltips = {};
- let subCount = 0;
- let firstGraphFlag = true;
- let direction$3;
- let version;
- let funs$1 = [];
- const sanitizeText$4 = (txt) => common$1.sanitizeText(txt, config);
- const parseDirective$a = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const lookUpDomId$1 = function(id2) {
- const veritceKeys = Object.keys(vertices);
- for (const veritceKey of veritceKeys) {
- if (vertices[veritceKey].id === id2) {
- return vertices[veritceKey].domId;
- }
- }
- return id2;
- };
- const addVertex = function(_id, textObj, type2, style, classes2, dir, props = {}) {
- let txt;
- let id2 = _id;
- if (id2 === void 0) {
- return;
+ }
+ function durationConstant(id27, value2) {
+ return value2 = +value2, function() {
+ set2(this, id27).duration = value2;
+ };
+ }
+ function duration_default(value2) {
+ var id27 = this._id;
+ return arguments.length ? this.each((typeof value2 === "function" ? durationFunction : durationConstant)(id27, value2)) : get2(this.node(), id27).duration;
+ }
+ var init_duration = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js"() {
+ "use strict";
+ init_schedule();
+ __name(durationFunction, "durationFunction");
+ __name(durationConstant, "durationConstant");
+ __name(duration_default, "default");
}
- if (id2.trim().length === 0) {
- return;
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js
+ function easeConstant(id27, value2) {
+ if (typeof value2 !== "function") throw new Error();
+ return function() {
+ set2(this, id27).ease = value2;
+ };
+ }
+ function ease_default(value2) {
+ var id27 = this._id;
+ return arguments.length ? this.each(easeConstant(id27, value2)) : get2(this.node(), id27).ease;
+ }
+ var init_ease = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js"() {
+ "use strict";
+ init_schedule();
+ __name(easeConstant, "easeConstant");
+ __name(ease_default, "default");
}
- if (vertices[id2] === void 0) {
- vertices[id2] = {
- id: id2,
- labelType: "text",
- domId: MERMAID_DOM_ID_PREFIX$1 + id2 + "-" + vertexCounter,
- styles: [],
- classes: []
- };
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js
+ function easeVarying(id27, value2) {
+ return function() {
+ var v3 = value2.apply(this, arguments);
+ if (typeof v3 !== "function") throw new Error();
+ set2(this, id27).ease = v3;
+ };
+ }
+ function easeVarying_default(value2) {
+ if (typeof value2 !== "function") throw new Error();
+ return this.each(easeVarying(this._id, value2));
+ }
+ var init_easeVarying = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js"() {
+ "use strict";
+ init_schedule();
+ __name(easeVarying, "easeVarying");
+ __name(easeVarying_default, "default");
}
- vertexCounter++;
- if (textObj !== void 0) {
- config = getConfig$1();
- txt = sanitizeText$4(textObj.text.trim());
- vertices[id2].labelType = textObj.type;
- if (txt[0] === '"' && txt[txt.length - 1] === '"') {
- txt = txt.substring(1, txt.length - 1);
- }
- vertices[id2].text = txt;
- } else {
- if (vertices[id2].text === void 0) {
- vertices[id2].text = _id;
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js
+ function filter_default2(match2) {
+ if (typeof match2 !== "function") match2 = matcher_default(match2);
+ for (var groups = this._groups, m2 = groups.length, subgroups = new Array(m2), j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, subgroup = subgroups[j2] = [], node2, i2 = 0; i2 < n2; ++i2) {
+ if ((node2 = group2[i2]) && match2.call(node2, node2.__data__, i2, group2)) {
+ subgroup.push(node2);
+ }
}
}
- if (type2 !== void 0) {
- vertices[id2].type = type2;
+ return new Transition(subgroups, this._parents, this._name, this._id);
+ }
+ var init_filter2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js"() {
+ "use strict";
+ init_src5();
+ init_transition2();
+ __name(filter_default2, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js
+ function merge_default2(transition2) {
+ if (transition2._id !== this._id) throw new Error();
+ for (var groups0 = this._groups, groups1 = transition2._groups, m0 = groups0.length, m1 = groups1.length, m2 = Math.min(m0, m1), merges = new Array(m0), j2 = 0; j2 < m2; ++j2) {
+ for (var group0 = groups0[j2], group1 = groups1[j2], n2 = group0.length, merge5 = merges[j2] = new Array(n2), node2, i2 = 0; i2 < n2; ++i2) {
+ if (node2 = group0[i2] || group1[i2]) {
+ merge5[i2] = node2;
+ }
+ }
}
- if (style !== void 0 && style !== null) {
- style.forEach(function(s) {
- vertices[id2].styles.push(s);
- });
+ for (; j2 < m0; ++j2) {
+ merges[j2] = groups0[j2];
}
- if (classes2 !== void 0 && classes2 !== null) {
- classes2.forEach(function(s) {
- vertices[id2].classes.push(s);
- });
+ return new Transition(merges, this._parents, this._name, this._id);
+ }
+ var init_merge3 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js"() {
+ "use strict";
+ init_transition2();
+ __name(merge_default2, "default");
}
- if (dir !== void 0) {
- vertices[id2].dir = dir;
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js
+ function start(name) {
+ return (name + "").trim().split(/^|\s+/).every(function(t4) {
+ var i2 = t4.indexOf(".");
+ if (i2 >= 0) t4 = t4.slice(0, i2);
+ return !t4 || t4 === "start";
+ });
+ }
+ function onFunction(id27, name, listener) {
+ var on0, on1, sit = start(name) ? init : set2;
+ return function() {
+ var schedule = sit(this, id27), on3 = schedule.on;
+ if (on3 !== on0) (on1 = (on0 = on3).copy()).on(name, listener);
+ schedule.on = on1;
+ };
+ }
+ function on_default2(name, listener) {
+ var id27 = this._id;
+ return arguments.length < 2 ? get2(this.node(), id27).on.on(name) : this.each(onFunction(id27, name, listener));
+ }
+ var init_on2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js"() {
+ "use strict";
+ init_schedule();
+ __name(start, "start");
+ __name(onFunction, "onFunction");
+ __name(on_default2, "default");
}
- if (vertices[id2].props === void 0) {
- vertices[id2].props = props;
- } else if (props !== void 0) {
- Object.assign(vertices[id2].props, props);
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js
+ function removeFunction(id27) {
+ return function() {
+ var parent4 = this.parentNode;
+ for (var i2 in this.__transition) if (+i2 !== id27) return;
+ if (parent4) parent4.removeChild(this);
+ };
+ }
+ function remove_default2() {
+ return this.on("end.remove", removeFunction(this._id));
+ }
+ var init_remove2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js"() {
+ "use strict";
+ __name(removeFunction, "removeFunction");
+ __name(remove_default2, "default");
}
- };
- const addSingleLink = function(_start, _end, type2) {
- let start2 = _start;
- let end2 = _end;
- const edge = { start: start2, end: end2, type: void 0, text: "", labelType: "text" };
- log$1.info("abc78 Got edge...", edge);
- const linkTextObj = type2.text;
- if (linkTextObj !== void 0) {
- edge.text = sanitizeText$4(linkTextObj.text.trim());
- if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
- edge.text = edge.text.substring(1, edge.text.length - 1);
- }
- edge.labelType = linkTextObj.type;
- }
- if (type2 !== void 0) {
- edge.type = type2.type;
- edge.stroke = type2.stroke;
- edge.length = type2.length;
- }
- edges.push(edge);
- };
- const addLink = function(_start, _end, type2) {
- log$1.info("addLink (abc78)", _start, _end, type2);
- let i2, j;
- for (i2 = 0; i2 < _start.length; i2++) {
- for (j = 0; j < _end.length; j++) {
- addSingleLink(_start[i2], _end[j], type2);
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js
+ function select_default3(select) {
+ var name = this._name, id27 = this._id;
+ if (typeof select !== "function") select = selector_default(select);
+ for (var groups = this._groups, m2 = groups.length, subgroups = new Array(m2), j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, subgroup = subgroups[j2] = new Array(n2), node2, subnode, i2 = 0; i2 < n2; ++i2) {
+ if ((node2 = group2[i2]) && (subnode = select.call(node2, node2.__data__, i2, group2))) {
+ if ("__data__" in node2) subnode.__data__ = node2.__data__;
+ subgroup[i2] = subnode;
+ schedule_default(subgroup[i2], name, id27, i2, subgroup, get2(node2, id27));
+ }
}
}
- };
- const updateLinkInterpolate = function(positions, interp) {
- positions.forEach(function(pos) {
- if (pos === "default") {
- edges.defaultInterpolate = interp;
- } else {
- edges[pos].interpolate = interp;
- }
- });
- };
- const updateLink = function(positions, style) {
- positions.forEach(function(pos) {
- if (pos === "default") {
- edges.defaultStyle = style;
- } else {
- if (utils.isSubstringInArray("fill", style) === -1) {
- style.push("fill:none");
+ return new Transition(subgroups, this._parents, name, id27);
+ }
+ var init_select3 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js"() {
+ "use strict";
+ init_src5();
+ init_transition2();
+ init_schedule();
+ __name(select_default3, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js
+ function selectAll_default2(select) {
+ var name = this._name, id27 = this._id;
+ if (typeof select !== "function") select = selectorAll_default(select);
+ for (var groups = this._groups, m2 = groups.length, subgroups = [], parents4 = [], j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, node2, i2 = 0; i2 < n2; ++i2) {
+ if (node2 = group2[i2]) {
+ for (var children2 = select.call(node2, node2.__data__, i2, group2), child, inherit2 = get2(node2, id27), k2 = 0, l2 = children2.length; k2 < l2; ++k2) {
+ if (child = children2[k2]) {
+ schedule_default(child, name, id27, k2, children2, inherit2);
+ }
+ }
+ subgroups.push(children2);
+ parents4.push(node2);
}
- edges[pos].style = style;
}
- });
- };
- const addClass$1 = function(id2, style) {
- if (classes$2[id2] === void 0) {
- classes$2[id2] = { id: id2, styles: [], textStyles: [] };
- }
- if (style !== void 0 && style !== null) {
- style.forEach(function(s) {
- if (s.match("color")) {
- const newStyle1 = s.replace("fill", "bgFill");
- const newStyle2 = newStyle1.replace("color", "fill");
- classes$2[id2].textStyles.push(newStyle2);
- }
- classes$2[id2].styles.push(s);
- });
}
- };
- const setDirection$3 = function(dir) {
- direction$3 = dir;
- if (direction$3.match(/.*)) {
- direction$3 = "RL";
+ return new Transition(subgroups, parents4, name, id27);
+ }
+ var init_selectAll2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js"() {
+ "use strict";
+ init_src5();
+ init_transition2();
+ init_schedule();
+ __name(selectAll_default2, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js
+ function selection_default2() {
+ return new Selection2(this._groups, this._parents);
+ }
+ var Selection2;
+ var init_selection2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js"() {
+ "use strict";
+ init_src5();
+ Selection2 = selection_default.prototype.constructor;
+ __name(selection_default2, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js
+ function styleNull(name, interpolate) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);
+ };
+ }
+ function styleRemove2(name) {
+ return function() {
+ this.style.removeProperty(name);
+ };
+ }
+ function styleConstant2(name, interpolate, value1) {
+ var string00, string1 = value1 + "", interpolate0;
+ return function() {
+ var string0 = styleValue(this, name);
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
+ };
+ }
+ function styleFunction2(name, interpolate, value2) {
+ var string00, string10, interpolate0;
+ return function() {
+ var string0 = styleValue(this, name), value1 = value2(this), string1 = value1 + "";
+ if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
+ };
+ }
+ function styleMaybeRemove(id27, name) {
+ var on0, on1, listener0, key = "style." + name, event3 = "end." + key, remove3;
+ return function() {
+ var schedule = set2(this, id27), on3 = schedule.on, listener = schedule.value[key] == null ? remove3 || (remove3 = styleRemove2(name)) : void 0;
+ if (on3 !== on0 || listener0 !== listener) (on1 = (on0 = on3).copy()).on(event3, listener0 = listener);
+ schedule.on = on1;
+ };
+ }
+ function style_default2(name, value2, priority3) {
+ var i2 = (name += "") === "transform" ? interpolateTransformCss : interpolate_default;
+ return value2 == null ? this.styleTween(name, styleNull(name, i2)).on("end.style." + name, styleRemove2(name)) : typeof value2 === "function" ? this.styleTween(name, styleFunction2(name, i2, tweenValue(this, "style." + name, value2))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant2(name, i2, value2), priority3).on("end.style." + name, null);
+ }
+ var init_style2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js"() {
+ "use strict";
+ init_src8();
+ init_src5();
+ init_schedule();
+ init_tween();
+ init_interpolate();
+ __name(styleNull, "styleNull");
+ __name(styleRemove2, "styleRemove");
+ __name(styleConstant2, "styleConstant");
+ __name(styleFunction2, "styleFunction");
+ __name(styleMaybeRemove, "styleMaybeRemove");
+ __name(style_default2, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js
+ function styleInterpolate(name, i2, priority3) {
+ return function(t4) {
+ this.style.setProperty(name, i2.call(this, t4), priority3);
+ };
+ }
+ function styleTween(name, value2, priority3) {
+ var t4, i0;
+ function tween() {
+ var i2 = value2.apply(this, arguments);
+ if (i2 !== i0) t4 = (i0 = i2) && styleInterpolate(name, i2, priority3);
+ return t4;
}
- if (direction$3.match(/.*\^/)) {
- direction$3 = "BT";
+ __name(tween, "tween");
+ tween._value = value2;
+ return tween;
+ }
+ function styleTween_default(name, value2, priority3) {
+ var key = "style." + (name += "");
+ if (arguments.length < 2) return (key = this.tween(key)) && key._value;
+ if (value2 == null) return this.tween(key, null);
+ if (typeof value2 !== "function") throw new Error();
+ return this.tween(key, styleTween(name, value2, priority3 == null ? "" : priority3));
+ }
+ var init_styleTween = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js"() {
+ "use strict";
+ __name(styleInterpolate, "styleInterpolate");
+ __name(styleTween, "styleTween");
+ __name(styleTween_default, "default");
}
- if (direction$3.match(/.*>/)) {
- direction$3 = "LR";
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js
+ function textConstant2(value2) {
+ return function() {
+ this.textContent = value2;
+ };
+ }
+ function textFunction2(value2) {
+ return function() {
+ var value1 = value2(this);
+ this.textContent = value1 == null ? "" : value1;
+ };
+ }
+ function text_default2(value2) {
+ return this.tween("text", typeof value2 === "function" ? textFunction2(tweenValue(this, "text", value2)) : textConstant2(value2 == null ? "" : value2 + ""));
+ }
+ var init_text2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js"() {
+ "use strict";
+ init_tween();
+ __name(textConstant2, "textConstant");
+ __name(textFunction2, "textFunction");
+ __name(text_default2, "default");
}
- if (direction$3.match(/.*v/)) {
- direction$3 = "TB";
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js
+ function textInterpolate(i2) {
+ return function(t4) {
+ this.textContent = i2.call(this, t4);
+ };
+ }
+ function textTween(value2) {
+ var t03, i0;
+ function tween() {
+ var i2 = value2.apply(this, arguments);
+ if (i2 !== i0) t03 = (i0 = i2) && textInterpolate(i2);
+ return t03;
}
- if (direction$3 === "TD") {
- direction$3 = "TB";
+ __name(tween, "tween");
+ tween._value = value2;
+ return tween;
+ }
+ function textTween_default(value2) {
+ var key = "text";
+ if (arguments.length < 1) return (key = this.tween(key)) && key._value;
+ if (value2 == null) return this.tween(key, null);
+ if (typeof value2 !== "function") throw new Error();
+ return this.tween(key, textTween(value2));
+ }
+ var init_textTween = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js"() {
+ "use strict";
+ __name(textInterpolate, "textInterpolate");
+ __name(textTween, "textTween");
+ __name(textTween_default, "default");
}
- };
- const setClass$1 = function(ids, className) {
- ids.split(",").forEach(function(_id) {
- let id2 = _id;
- if (vertices[id2] !== void 0) {
- vertices[id2].classes.push(className);
- }
- if (subGraphLookup[id2] !== void 0) {
- subGraphLookup[id2].classes.push(className);
- }
- });
- };
- const setTooltip$1 = function(ids, tooltip) {
- ids.split(",").forEach(function(id2) {
- if (tooltip !== void 0) {
- tooltips[version === "gen-1" ? lookUpDomId$1(id2) : id2] = sanitizeText$4(tooltip);
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js
+ function transition_default() {
+ var name = this._name, id0 = this._id, id1 = newId();
+ for (var groups = this._groups, m2 = groups.length, j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, node2, i2 = 0; i2 < n2; ++i2) {
+ if (node2 = group2[i2]) {
+ var inherit2 = get2(node2, id0);
+ schedule_default(node2, name, id1, i2, group2, {
+ time: inherit2.time + inherit2.delay + inherit2.duration,
+ delay: 0,
+ duration: inherit2.duration,
+ ease: inherit2.ease
+ });
+ }
}
- });
- };
- const setClickFun$1 = function(id2, functionName, functionArgs) {
- let domId = lookUpDomId$1(id2);
- if (getConfig$1().securityLevel !== "loose") {
- return;
}
- if (functionName === void 0) {
- return;
+ return new Transition(groups, this._parents, name, id1);
+ }
+ var init_transition = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js"() {
+ "use strict";
+ init_transition2();
+ init_schedule();
+ __name(transition_default, "default");
}
- let argList = [];
- if (typeof functionArgs === "string") {
- argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
- for (let i2 = 0; i2 < argList.length; i2++) {
- let item = argList[i2].trim();
- if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
- item = item.substr(1, item.length - 2);
- }
- argList[i2] = item;
- }
- }
- if (argList.length === 0) {
- argList.push(id2);
- }
- if (vertices[id2] !== void 0) {
- vertices[id2].haveCallback = true;
- funs$1.push(function() {
- const elem = document.querySelector(`[id="${domId}"]`);
- if (elem !== null) {
- elem.addEventListener(
- "click",
- function() {
- utils.runFunc(functionName, ...argList);
- },
- false
- );
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js
+ function end_default() {
+ var on0, on1, that = this, id27 = that._id, size5 = that.size();
+ return new Promise(function(resolve3, reject3) {
+ var cancel = { value: reject3 }, end2 = { value: /* @__PURE__ */ __name(function() {
+ if (--size5 === 0) resolve3();
+ }, "value") };
+ that.each(function() {
+ var schedule = set2(this, id27), on3 = schedule.on;
+ if (on3 !== on0) {
+ on1 = (on0 = on3).copy();
+ on1._.cancel.push(cancel);
+ on1._.interrupt.push(cancel);
+ on1._.end.push(end2);
}
+ schedule.on = on1;
});
- }
- };
- const setLink$2 = function(ids, linkStr, target) {
- ids.split(",").forEach(function(id2) {
- if (vertices[id2] !== void 0) {
- vertices[id2].link = utils.formatUrl(linkStr, config);
- vertices[id2].linkTarget = target;
- }
- });
- setClass$1(ids, "clickable");
- };
- const getTooltip$1 = function(id2) {
- return tooltips[id2];
- };
- const setClickEvent$2 = function(ids, functionName, functionArgs) {
- ids.split(",").forEach(function(id2) {
- setClickFun$1(id2, functionName, functionArgs);
- });
- setClass$1(ids, "clickable");
- };
- const bindFunctions$2 = function(element) {
- funs$1.forEach(function(fun) {
- fun(element);
+ if (size5 === 0) resolve3();
});
- };
- const getDirection$3 = function() {
- return direction$3.trim();
- };
- const getVertices = function() {
- return vertices;
- };
- const getEdges = function() {
- return edges;
- };
- const getClasses$6 = function() {
- return classes$2;
- };
- const setupToolTips$1 = function(element) {
- let tooltipElem = select(".mermaidTooltip");
- if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
- tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
- }
- const svg2 = select(element).select("svg");
- const nodes2 = svg2.selectAll("g.node");
- nodes2.on("mouseover", function() {
- const el = select(this);
- const title2 = el.attr("title");
- if (title2 === null) {
- return;
+ }
+ var init_end = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js"() {
+ "use strict";
+ init_schedule();
+ __name(end_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js
+ function Transition(groups, parents4, name, id27) {
+ this._groups = groups;
+ this._parents = parents4;
+ this._name = name;
+ this._id = id27;
+ }
+ function transition(name) {
+ return selection_default().transition(name);
+ }
+ function newId() {
+ return ++id;
+ }
+ var id, selection_prototype;
+ var init_transition2 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js"() {
+ "use strict";
+ init_src5();
+ init_attr2();
+ init_attrTween();
+ init_delay();
+ init_duration();
+ init_ease();
+ init_easeVarying();
+ init_filter2();
+ init_merge3();
+ init_on2();
+ init_remove2();
+ init_select3();
+ init_selectAll2();
+ init_selection2();
+ init_style2();
+ init_styleTween();
+ init_text2();
+ init_textTween();
+ init_transition();
+ init_tween();
+ init_end();
+ id = 0;
+ __name(Transition, "Transition");
+ __name(transition, "transition");
+ __name(newId, "newId");
+ selection_prototype = selection_default.prototype;
+ Transition.prototype = transition.prototype = {
+ constructor: Transition,
+ select: select_default3,
+ selectAll: selectAll_default2,
+ selectChild: selection_prototype.selectChild,
+ selectChildren: selection_prototype.selectChildren,
+ filter: filter_default2,
+ merge: merge_default2,
+ selection: selection_default2,
+ transition: transition_default,
+ call: selection_prototype.call,
+ nodes: selection_prototype.nodes,
+ node: selection_prototype.node,
+ size: selection_prototype.size,
+ empty: selection_prototype.empty,
+ each: selection_prototype.each,
+ on: on_default2,
+ attr: attr_default2,
+ attrTween: attrTween_default,
+ style: style_default2,
+ styleTween: styleTween_default,
+ text: text_default2,
+ textTween: textTween_default,
+ remove: remove_default2,
+ tween: tween_default,
+ delay: delay_default,
+ duration: duration_default,
+ ease: ease_default,
+ easeVarying: easeVarying_default,
+ end: end_default,
+ [Symbol.iterator]: selection_prototype[Symbol.iterator]
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js
+ function cubicInOut(t4) {
+ return ((t4 *= 2) <= 1 ? t4 * t4 * t4 : (t4 -= 2) * t4 * t4 + 2) / 2;
+ }
+ var init_cubic = __esm({
+ "../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js"() {
+ "use strict";
+ __name(cubicInOut, "cubicInOut");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/index.js
+ var init_src10 = __esm({
+ "../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/index.js"() {
+ "use strict";
+ init_cubic();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js
+ function inherit(node2, id27) {
+ var timing;
+ while (!(timing = node2.__transition) || !(timing = timing[id27])) {
+ if (!(node2 = node2.parentNode)) {
+ throw new Error(`transition ${id27} not found`);
}
- const rect2 = this.getBoundingClientRect();
- tooltipElem.transition().duration(200).style("opacity", ".9");
- tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect2.left + (rect2.right - rect2.left) / 2 + "px").style("top", window.scrollY + rect2.top - 14 + document.body.scrollTop + "px");
- tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
- el.classed("hover", true);
- }).on("mouseout", function() {
- tooltipElem.transition().duration(500).style("opacity", 0);
- const el = select(this);
- el.classed("hover", false);
- });
- };
- funs$1.push(setupToolTips$1);
- const clear$g = function(ver = "gen-1") {
- vertices = {};
- classes$2 = {};
- edges = [];
- funs$1 = [setupToolTips$1];
- subGraphs = [];
- subGraphLookup = {};
- subCount = 0;
- tooltips = [];
- firstGraphFlag = true;
- version = ver;
- clear$i();
- };
- const setGen = (ver) => {
- version = ver || "gen-2";
- };
- const defaultStyle = function() {
- return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
- };
- const addSubGraph = function(_id, list, _title) {
- let id2 = _id.text.trim();
- let title2 = _title.text;
- if (_id === _title && _title.text.match(/\s/)) {
- id2 = void 0;
- }
- function uniq(a) {
- const prims = { boolean: {}, number: {}, string: {} };
- const objs = [];
- let dir2;
- const nodeList2 = a.filter(function(item) {
- const type2 = typeof item;
- if (item.stmt && item.stmt === "dir") {
- dir2 = item.value;
- return false;
- }
- if (item.trim() === "") {
- return false;
- }
- if (type2 in prims) {
- return prims[type2].hasOwnProperty(item) ? false : prims[type2][item] = true;
- } else {
- return objs.includes(item) ? false : objs.push(item);
+ }
+ return timing;
+ }
+ function transition_default2(name) {
+ var id27, timing;
+ if (name instanceof Transition) {
+ id27 = name._id, name = name._name;
+ } else {
+ id27 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
+ }
+ for (var groups = this._groups, m2 = groups.length, j2 = 0; j2 < m2; ++j2) {
+ for (var group2 = groups[j2], n2 = group2.length, node2, i2 = 0; i2 < n2; ++i2) {
+ if (node2 = group2[i2]) {
+ schedule_default(node2, name, id27, i2, group2, timing || inherit(node2, id27));
}
- });
- return { nodeList: nodeList2, dir: dir2 };
- }
- let nodeList = [];
- const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list));
- nodeList = nl;
- if (version === "gen-1") {
- for (let i2 = 0; i2 < nodeList.length; i2++) {
- nodeList[i2] = lookUpDomId$1(nodeList[i2]);
- }
- }
- id2 = id2 || "subGraph" + subCount;
- title2 = title2 || "";
- title2 = sanitizeText$4(title2);
- subCount = subCount + 1;
- const subGraph = {
- id: id2,
- nodes: nodeList,
- title: title2.trim(),
- classes: [],
- dir,
- labelType: _title.type
- };
- log$1.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir);
- subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
- subGraphs.push(subGraph);
- subGraphLookup[id2] = subGraph;
- return id2;
- };
- const getPosForId = function(id2) {
- for (const [i2, subGraph] of subGraphs.entries()) {
- if (subGraph.id === id2) {
- return i2;
}
}
- return -1;
- };
- let secCount = -1;
- const posCrossRef = [];
- const indexNodes2 = function(id2, pos) {
- const nodes2 = subGraphs[pos].nodes;
- secCount = secCount + 1;
- if (secCount > 2e3) {
- return;
- }
- posCrossRef[secCount] = pos;
- if (subGraphs[pos].id === id2) {
- return {
- result: true,
- count: 0
+ return new Transition(groups, this._parents, name, id27);
+ }
+ var defaultTiming;
+ var init_transition3 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js"() {
+ "use strict";
+ init_transition2();
+ init_schedule();
+ init_src10();
+ init_src9();
+ defaultTiming = {
+ time: null,
+ // Set on use.
+ delay: 0,
+ duration: 250,
+ ease: cubicInOut
};
+ __name(inherit, "inherit");
+ __name(transition_default2, "default");
}
- let count = 0;
- let posCount = 1;
- while (count < nodes2.length) {
- const childPos = getPosForId(nodes2[count]);
- if (childPos >= 0) {
- const res = indexNodes2(id2, childPos);
- if (res.result) {
- return {
- result: true,
- count: posCount + res.count
- };
- } else {
- posCount = posCount + res.count;
- }
- }
- count = count + 1;
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js
+ var init_selection3 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js"() {
+ "use strict";
+ init_src5();
+ init_interrupt2();
+ init_transition3();
+ selection_default.prototype.interrupt = interrupt_default2;
+ selection_default.prototype.transition = transition_default2;
}
- return {
- result: false,
- count: posCount
- };
- };
- const getDepthFirstPos = function(pos) {
- return posCrossRef[pos];
- };
- const indexNodes = function() {
- secCount = -1;
- if (subGraphs.length > 0) {
- indexNodes2("none", subGraphs.length - 1);
+ });
+
+ // ../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/index.js
+ var init_src11 = __esm({
+ "../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/index.js"() {
+ "use strict";
+ init_selection3();
}
- };
- const getSubGraphs = function() {
- return subGraphs;
- };
- const firstGraph = () => {
- if (firstGraphFlag) {
- firstGraphFlag = false;
- return true;
+ });
+
+ // ../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/constant.js
+ var init_constant3 = __esm({
+ "../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/constant.js"() {
+ "use strict";
}
- return false;
- };
- const destructStartLink = (_str) => {
- let str2 = _str.trim();
- let type2 = "arrow_open";
- switch (str2[0]) {
- case "<":
- type2 = "arrow_point";
- str2 = str2.slice(1);
- break;
- case "x":
- type2 = "arrow_cross";
- str2 = str2.slice(1);
- break;
- case "o":
- type2 = "arrow_circle";
- str2 = str2.slice(1);
- break;
+ });
+
+ // ../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/event.js
+ var init_event = __esm({
+ "../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/event.js"() {
+ "use strict";
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/noevent.js
+ var init_noevent = __esm({
+ "../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/noevent.js"() {
+ "use strict";
}
- let stroke = "normal";
- if (str2.includes("=")) {
- stroke = "thick";
+ });
+
+ // ../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/brush.js
+ function number1(e3) {
+ return [+e3[0], +e3[1]];
+ }
+ function number22(e3) {
+ return [number1(e3[0]), number1(e3[1])];
+ }
+ function type(t4) {
+ return { type: t4 };
+ }
+ var abs, max2, min2, X, Y, XY;
+ var init_brush = __esm({
+ "../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/brush.js"() {
+ "use strict";
+ init_src11();
+ init_constant3();
+ init_event();
+ init_noevent();
+ ({ abs, max: max2, min: min2 } = Math);
+ __name(number1, "number1");
+ __name(number22, "number2");
+ X = {
+ name: "x",
+ handles: ["w", "e"].map(type),
+ input: /* @__PURE__ */ __name(function(x5, e3) {
+ return x5 == null ? null : [[+x5[0], e3[0][1]], [+x5[1], e3[1][1]]];
+ }, "input"),
+ output: /* @__PURE__ */ __name(function(xy) {
+ return xy && [xy[0][0], xy[1][0]];
+ }, "output")
+ };
+ Y = {
+ name: "y",
+ handles: ["n", "s"].map(type),
+ input: /* @__PURE__ */ __name(function(y5, e3) {
+ return y5 == null ? null : [[e3[0][0], +y5[0]], [e3[1][0], +y5[1]]];
+ }, "input"),
+ output: /* @__PURE__ */ __name(function(xy) {
+ return xy && [xy[0][1], xy[1][1]];
+ }, "output")
+ };
+ XY = {
+ name: "xy",
+ handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type),
+ input: /* @__PURE__ */ __name(function(xy) {
+ return xy == null ? null : number22(xy);
+ }, "input"),
+ output: /* @__PURE__ */ __name(function(xy) {
+ return xy;
+ }, "output")
+ };
+ __name(type, "type");
}
- if (str2.includes(".")) {
- stroke = "dotted";
+ });
+
+ // ../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/index.js
+ var init_src12 = __esm({
+ "../../node_modules/.pnpm/d3-brush@3.0.0/node_modules/d3-brush/src/index.js"() {
+ "use strict";
+ init_brush();
}
- return { type: type2, stroke };
- };
- const countChar = (char2, str2) => {
- const length2 = str2.length;
- let count = 0;
- for (let i2 = 0; i2 < length2; ++i2) {
- if (str2[i2] === char2) {
- ++count;
+ });
+
+ // ../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js
+ function append(strings) {
+ this._ += strings[0];
+ for (let i2 = 1, n2 = strings.length; i2 < n2; ++i2) {
+ this._ += arguments[i2] + strings[i2];
+ }
+ }
+ function appendRound(digits) {
+ let d2 = Math.floor(digits);
+ if (!(d2 >= 0)) throw new Error(`invalid digits: ${digits}`);
+ if (d2 > 15) return append;
+ const k2 = 10 ** d2;
+ return function(strings) {
+ this._ += strings[0];
+ for (let i2 = 1, n2 = strings.length; i2 < n2; ++i2) {
+ this._ += Math.round(arguments[i2] * k2) / k2 + strings[i2];
}
- }
- return count;
- };
- const destructEndLink = (_str) => {
- const str2 = _str.trim();
- let line2 = str2.slice(0, -1);
- let type2 = "arrow_open";
- switch (str2.slice(-1)) {
- case "x":
- type2 = "arrow_cross";
- if (str2[0] === "x") {
- type2 = "double_" + type2;
- line2 = line2.slice(1);
+ };
+ }
+ function path2() {
+ return new Path();
+ }
+ var pi, tau, epsilon2, tauEpsilon, Path;
+ var init_path = __esm({
+ "../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js"() {
+ "use strict";
+ pi = Math.PI;
+ tau = 2 * pi;
+ epsilon2 = 1e-6;
+ tauEpsilon = tau - epsilon2;
+ __name(append, "append");
+ __name(appendRound, "appendRound");
+ Path = class {
+ static {
+ __name(this, "Path");
+ }
+ constructor(digits) {
+ this._x0 = this._y0 = // start of current subpath
+ this._x1 = this._y1 = null;
+ this._ = "";
+ this._append = digits == null ? append : appendRound(digits);
+ }
+ moveTo(x5, y5) {
+ this._append`M${this._x0 = this._x1 = +x5},${this._y0 = this._y1 = +y5}`;
+ }
+ closePath() {
+ if (this._x1 !== null) {
+ this._x1 = this._x0, this._y1 = this._y0;
+ this._append`Z`;
+ }
+ }
+ lineTo(x5, y5) {
+ this._append`L${this._x1 = +x5},${this._y1 = +y5}`;
+ }
+ quadraticCurveTo(x1, y1, x5, y5) {
+ this._append`Q${+x1},${+y1},${this._x1 = +x5},${this._y1 = +y5}`;
+ }
+ bezierCurveTo(x1, y1, x22, y22, x5, y5) {
+ this._append`C${+x1},${+y1},${+x22},${+y22},${this._x1 = +x5},${this._y1 = +y5}`;
+ }
+ arcTo(x1, y1, x22, y22, r2) {
+ x1 = +x1, y1 = +y1, x22 = +x22, y22 = +y22, r2 = +r2;
+ if (r2 < 0) throw new Error(`negative radius: ${r2}`);
+ let x0 = this._x1, y0 = this._y1, x21 = x22 - x1, y21 = y22 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;
+ if (this._x1 === null) {
+ this._append`M${this._x1 = x1},${this._y1 = y1}`;
+ } else if (!(l01_2 > epsilon2)) ;
+ else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon2) || !r2) {
+ this._append`L${this._x1 = x1},${this._y1 = y1}`;
+ } else {
+ let x20 = x22 - x0, y20 = y22 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l2 = r2 * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l2 / l01, t21 = l2 / l21;
+ if (Math.abs(t01 - 1) > epsilon2) {
+ this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
+ }
+ this._append`A${r2},${r2},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
+ }
}
- break;
- case ">":
- type2 = "arrow_point";
- if (str2[0] === "<") {
- type2 = "double_" + type2;
- line2 = line2.slice(1);
+ arc(x5, y5, r2, a0, a1, ccw) {
+ x5 = +x5, y5 = +y5, r2 = +r2, ccw = !!ccw;
+ if (r2 < 0) throw new Error(`negative radius: ${r2}`);
+ let dx = r2 * Math.cos(a0), dy = r2 * Math.sin(a0), x0 = x5 + dx, y0 = y5 + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;
+ if (this._x1 === null) {
+ this._append`M${x0},${y0}`;
+ } else if (Math.abs(this._x1 - x0) > epsilon2 || Math.abs(this._y1 - y0) > epsilon2) {
+ this._append`L${x0},${y0}`;
+ }
+ if (!r2) return;
+ if (da < 0) da = da % tau + tau;
+ if (da > tauEpsilon) {
+ this._append`A${r2},${r2},0,1,${cw},${x5 - dx},${y5 - dy}A${r2},${r2},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;
+ } else if (da > epsilon2) {
+ this._append`A${r2},${r2},0,${+(da >= pi)},${cw},${this._x1 = x5 + r2 * Math.cos(a1)},${this._y1 = y5 + r2 * Math.sin(a1)}`;
+ }
}
- break;
- case "o":
- type2 = "arrow_circle";
- if (str2[0] === "o") {
- type2 = "double_" + type2;
- line2 = line2.slice(1);
+ rect(x5, y5, w3, h2) {
+ this._append`M${this._x0 = this._x1 = +x5},${this._y0 = this._y1 = +y5}h${w3 = +w3}v${+h2}h${-w3}Z`;
}
- break;
- }
- let stroke = "normal";
- let length2 = line2.length - 1;
- if (line2[0] === "=") {
- stroke = "thick";
+ toString() {
+ return this._;
+ }
+ };
+ __name(path2, "path");
+ path2.prototype = Path.prototype;
}
- if (line2[0] === "~") {
- stroke = "invisible";
+ });
+
+ // ../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/index.js
+ var init_src13 = __esm({
+ "../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/index.js"() {
+ "use strict";
+ init_path();
}
- let dots = countChar(".", line2);
- if (dots) {
- stroke = "dotted";
- length2 = dots;
+ });
+
+ // ../../node_modules/.pnpm/d3-chord@3.0.1/node_modules/d3-chord/src/index.js
+ var init_src14 = __esm({
+ "../../node_modules/.pnpm/d3-chord@3.0.1/node_modules/d3-chord/src/index.js"() {
+ "use strict";
}
- return { type: type2, stroke, length: length2 };
- };
- const destructLink = (_str, _startStr) => {
- const info2 = destructEndLink(_str);
- let startInfo;
- if (_startStr) {
- startInfo = destructStartLink(_startStr);
- if (startInfo.stroke !== info2.stroke) {
- return { type: "INVALID", stroke: "INVALID" };
- }
- if (startInfo.type === "arrow_open") {
- startInfo.type = info2.type;
- } else {
- if (startInfo.type !== info2.type) {
- return { type: "INVALID", stroke: "INVALID" };
- }
- startInfo.type = "double_" + startInfo.type;
- }
- if (startInfo.type === "double_arrow") {
- startInfo.type = "double_arrow_point";
- }
- startInfo.length = info2.length;
- return startInfo;
+ });
+
+ // ../../node_modules/.pnpm/d3-contour@4.0.2/node_modules/d3-contour/src/index.js
+ var init_src15 = __esm({
+ "../../node_modules/.pnpm/d3-contour@4.0.2/node_modules/d3-contour/src/index.js"() {
+ "use strict";
}
- return info2;
- };
- const exists = (allSgs, _id) => {
- let res = false;
- allSgs.forEach((sg) => {
- const pos = sg.nodes.indexOf(_id);
- if (pos >= 0) {
- res = true;
- }
- });
- return res;
- };
- const makeUniq = (sg, allSubgraphs) => {
- const res = [];
- sg.nodes.forEach((_id, pos) => {
- if (!exists(allSubgraphs, _id)) {
- res.push(sg.nodes[pos]);
- }
- });
- return { nodes: res };
- };
- const lex = {
- firstGraph
- };
- const flowDb = {
- parseDirective: parseDirective$a,
- defaultConfig: () => defaultConfig.flowchart,
- setAccTitle,
- getAccTitle,
- getAccDescription,
- setAccDescription,
- addVertex,
- lookUpDomId: lookUpDomId$1,
- addLink,
- updateLinkInterpolate,
- updateLink,
- addClass: addClass$1,
- setDirection: setDirection$3,
- setClass: setClass$1,
- setTooltip: setTooltip$1,
- getTooltip: getTooltip$1,
- setClickEvent: setClickEvent$2,
- setLink: setLink$2,
- bindFunctions: bindFunctions$2,
- getDirection: getDirection$3,
- getVertices,
- getEdges,
- getClasses: getClasses$6,
- clear: clear$g,
- setGen,
- defaultStyle,
- addSubGraph,
- getDepthFirstPos,
- indexNodes,
- getSubGraphs,
- destructLink,
- lex,
- exists,
- makeUniq,
- setDiagramTitle,
- getDiagramTitle
- };
- const db$8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- addClass: addClass$1,
- addLink,
- addSingleLink,
- addSubGraph,
- addVertex,
- bindFunctions: bindFunctions$2,
- clear: clear$g,
- default: flowDb,
- defaultStyle,
- destructLink,
- firstGraph,
- getClasses: getClasses$6,
- getDepthFirstPos,
- getDirection: getDirection$3,
- getEdges,
- getSubGraphs,
- getTooltip: getTooltip$1,
- getVertices,
- indexNodes,
- lex,
- lookUpDomId: lookUpDomId$1,
- parseDirective: parseDirective$a,
- setClass: setClass$1,
- setClickEvent: setClickEvent$2,
- setDirection: setDirection$3,
- setGen,
- setLink: setLink$2,
- updateLink,
- updateLinkInterpolate
- }, Symbol.toStringTag, { value: "Module" }));
- var symbolTag$3 = "[object Symbol]";
- function isSymbol(value) {
- return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
- }
- function arrayMap(array2, iteratee) {
- var index = -1, length2 = array2 == null ? 0 : array2.length, result = Array(length2);
- while (++index < length2) {
- result[index] = iteratee(array2[index], index, array2);
+ });
+
+ // ../../node_modules/.pnpm/d3-delaunay@6.0.4/node_modules/d3-delaunay/src/index.js
+ var init_src16 = __esm({
+ "../../node_modules/.pnpm/d3-delaunay@6.0.4/node_modules/d3-delaunay/src/index.js"() {
+ "use strict";
}
- return result;
- }
- var INFINITY$3 = 1 / 0;
- var symbolProto$2 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
- function baseToString(value) {
- if (typeof value == "string") {
- return value;
+ });
+
+ // ../../node_modules/.pnpm/d3-dsv@3.0.1/node_modules/d3-dsv/src/index.js
+ var init_src17 = __esm({
+ "../../node_modules/.pnpm/d3-dsv@3.0.1/node_modules/d3-dsv/src/index.js"() {
+ "use strict";
}
- if (isArray$1(value)) {
- return arrayMap(value, baseToString) + "";
+ });
+
+ // ../../node_modules/.pnpm/d3-fetch@3.0.1/node_modules/d3-fetch/src/index.js
+ var init_src18 = __esm({
+ "../../node_modules/.pnpm/d3-fetch@3.0.1/node_modules/d3-fetch/src/index.js"() {
+ "use strict";
}
- if (isSymbol(value)) {
- return symbolToString ? symbolToString.call(value) : "";
+ });
+
+ // ../../node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/index.js
+ var init_src19 = __esm({
+ "../../node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/index.js"() {
+ "use strict";
}
- var result = value + "";
- return result == "0" && 1 / value == -INFINITY$3 ? "-0" : result;
- }
- var reWhitespace = /\s/;
- function trimmedEndIndex(string) {
- var index = string.length;
- while (index-- && reWhitespace.test(string.charAt(index))) {
+ });
+
+ // ../../node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/index.js
+ var init_src20 = __esm({
+ "../../node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/index.js"() {
+ "use strict";
}
- return index;
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatDecimal.js
+ function formatDecimal_default(x5) {
+ return Math.abs(x5 = Math.round(x5)) >= 1e21 ? x5.toLocaleString("en").replace(/,/g, "") : x5.toString(10);
}
- var reTrimStart = /^\s+/;
- function baseTrim(string) {
- return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
+ function formatDecimalParts(x5, p3) {
+ if ((i2 = (x5 = p3 ? x5.toExponential(p3 - 1) : x5.toExponential()).indexOf("e")) < 0) return null;
+ var i2, coefficient = x5.slice(0, i2);
+ return [
+ coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
+ +x5.slice(i2 + 1)
+ ];
}
- 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(value)) {
- return NAN;
+ var init_formatDecimal = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatDecimal.js"() {
+ "use strict";
+ __name(formatDecimal_default, "default");
+ __name(formatDecimalParts, "formatDecimalParts");
}
- if (isObject(value)) {
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
- value = isObject(other) ? other + "" : other;
- }
- if (typeof value != "string") {
- return value === 0 ? value : +value;
- }
- value = baseTrim(value);
- var isBinary2 = reIsBinary.test(value);
- return isBinary2 || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/exponent.js
+ function exponent_default(x5) {
+ return x5 = formatDecimalParts(Math.abs(x5)), x5 ? x5[1] : NaN;
}
- var INFINITY$2 = 1 / 0, MAX_INTEGER = 17976931348623157e292;
- function toFinite(value) {
- if (!value) {
- return value === 0 ? value : 0;
+ var init_exponent = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/exponent.js"() {
+ "use strict";
+ init_formatDecimal();
+ __name(exponent_default, "default");
}
- value = toNumber(value);
- if (value === INFINITY$2 || value === -INFINITY$2) {
- var sign2 = value < 0 ? -1 : 1;
- return sign2 * MAX_INTEGER;
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatGroup.js
+ function formatGroup_default(grouping, thousands) {
+ return function(value2, width3) {
+ var i2 = value2.length, t4 = [], j2 = 0, g2 = grouping[0], length2 = 0;
+ while (i2 > 0 && g2 > 0) {
+ if (length2 + g2 + 1 > width3) g2 = Math.max(1, width3 - length2);
+ t4.push(value2.substring(i2 -= g2, i2 + g2));
+ if ((length2 += g2 + 1) > width3) break;
+ g2 = grouping[j2 = (j2 + 1) % grouping.length];
+ }
+ return t4.reverse().join(thousands);
+ };
+ }
+ var init_formatGroup = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatGroup.js"() {
+ "use strict";
+ __name(formatGroup_default, "default");
}
- return value === value ? value : 0;
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatNumerals.js
+ function formatNumerals_default(numerals) {
+ return function(value2) {
+ return value2.replace(/[0-9]/g, function(i2) {
+ return numerals[+i2];
+ });
+ };
}
- function toInteger(value) {
- var result = toFinite(value), remainder = result % 1;
- return result === result ? remainder ? result - remainder : result : 0;
+ var init_formatNumerals = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatNumerals.js"() {
+ "use strict";
+ __name(formatNumerals_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatSpecifier.js
+ function formatSpecifier(specifier) {
+ if (!(match2 = re.exec(specifier))) throw new Error("invalid format: " + specifier);
+ var match2;
+ return new FormatSpecifier({
+ fill: match2[1],
+ align: match2[2],
+ sign: match2[3],
+ symbol: match2[4],
+ zero: match2[5],
+ width: match2[6],
+ comma: match2[7],
+ precision: match2[8] && match2[8].slice(1),
+ trim: match2[9],
+ type: match2[10]
+ });
}
- function identity(value) {
- return value;
+ function FormatSpecifier(specifier) {
+ this.fill = specifier.fill === void 0 ? " " : specifier.fill + "";
+ this.align = specifier.align === void 0 ? ">" : specifier.align + "";
+ this.sign = specifier.sign === void 0 ? "-" : specifier.sign + "";
+ this.symbol = specifier.symbol === void 0 ? "" : specifier.symbol + "";
+ this.zero = !!specifier.zero;
+ this.width = specifier.width === void 0 ? void 0 : +specifier.width;
+ this.comma = !!specifier.comma;
+ this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision;
+ this.trim = !!specifier.trim;
+ this.type = specifier.type === void 0 ? "" : specifier.type + "";
}
- var objectCreate = Object.create;
- var baseCreate = function() {
- function object2() {
+ var re;
+ var init_formatSpecifier = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatSpecifier.js"() {
+ "use strict";
+ re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
+ __name(formatSpecifier, "formatSpecifier");
+ formatSpecifier.prototype = FormatSpecifier.prototype;
+ __name(FormatSpecifier, "FormatSpecifier");
+ FormatSpecifier.prototype.toString = function() {
+ return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
+ };
}
- return function(proto2) {
- if (!isObject(proto2)) {
- return {};
- }
- if (objectCreate) {
- return objectCreate(proto2);
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTrim.js
+ function formatTrim_default(s2) {
+ out: for (var n2 = s2.length, i2 = 1, i0 = -1, i1; i2 < n2; ++i2) {
+ switch (s2[i2]) {
+ case ".":
+ i0 = i1 = i2;
+ break;
+ case "0":
+ if (i0 === 0) i0 = i2;
+ i1 = i2;
+ break;
+ default:
+ if (!+s2[i2]) break out;
+ if (i0 > 0) i0 = 0;
+ break;
}
- object2.prototype = proto2;
- var result = new object2();
- object2.prototype = void 0;
- return result;
- };
- }();
- const baseCreate$1 = baseCreate;
- function apply$1(func, thisArg, args) {
- switch (args.length) {
- case 0:
- return func.call(thisArg);
- case 1:
- return func.call(thisArg, args[0]);
- case 2:
- return func.call(thisArg, args[0], args[1]);
- case 3:
- return func.call(thisArg, args[0], args[1], args[2]);
}
- return func.apply(thisArg, args);
+ return i0 > 0 ? s2.slice(0, i0) + s2.slice(i1 + 1) : s2;
}
- function noop() {
+ var init_formatTrim = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTrim.js"() {
+ "use strict";
+ __name(formatTrim_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatPrefixAuto.js
+ function formatPrefixAuto_default(x5, p3) {
+ var d2 = formatDecimalParts(x5, p3);
+ if (!d2) return x5 + "";
+ var coefficient = d2[0], exponent = d2[1], i2 = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, n2 = coefficient.length;
+ return i2 === n2 ? coefficient : i2 > n2 ? coefficient + new Array(i2 - n2 + 1).join("0") : i2 > 0 ? coefficient.slice(0, i2) + "." + coefficient.slice(i2) : "0." + new Array(1 - i2).join("0") + formatDecimalParts(x5, Math.max(0, p3 + i2 - 1))[0];
}
- function copyArray(source, array2) {
- var index = -1, length2 = source.length;
- array2 || (array2 = Array(length2));
- while (++index < length2) {
- array2[index] = source[index];
+ var prefixExponent;
+ var init_formatPrefixAuto = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatPrefixAuto.js"() {
+ "use strict";
+ init_formatDecimal();
+ __name(formatPrefixAuto_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatRounded.js
+ function formatRounded_default(x5, p3) {
+ var d2 = formatDecimalParts(x5, p3);
+ if (!d2) return x5 + "";
+ var coefficient = d2[0], exponent = d2[1];
+ return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join("0");
+ }
+ var init_formatRounded = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatRounded.js"() {
+ "use strict";
+ init_formatDecimal();
+ __name(formatRounded_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTypes.js
+ var formatTypes_default;
+ var init_formatTypes = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTypes.js"() {
+ "use strict";
+ init_formatDecimal();
+ init_formatPrefixAuto();
+ init_formatRounded();
+ formatTypes_default = {
+ "%": /* @__PURE__ */ __name((x5, p3) => (x5 * 100).toFixed(p3), "%"),
+ "b": /* @__PURE__ */ __name((x5) => Math.round(x5).toString(2), "b"),
+ "c": /* @__PURE__ */ __name((x5) => x5 + "", "c"),
+ "d": formatDecimal_default,
+ "e": /* @__PURE__ */ __name((x5, p3) => x5.toExponential(p3), "e"),
+ "f": /* @__PURE__ */ __name((x5, p3) => x5.toFixed(p3), "f"),
+ "g": /* @__PURE__ */ __name((x5, p3) => x5.toPrecision(p3), "g"),
+ "o": /* @__PURE__ */ __name((x5) => Math.round(x5).toString(8), "o"),
+ "p": /* @__PURE__ */ __name((x5, p3) => formatRounded_default(x5 * 100, p3), "p"),
+ "r": formatRounded_default,
+ "s": formatPrefixAuto_default,
+ "X": /* @__PURE__ */ __name((x5) => Math.round(x5).toString(16).toUpperCase(), "X"),
+ "x": /* @__PURE__ */ __name((x5) => Math.round(x5).toString(16), "x")
+ };
}
- return array2;
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/identity.js
+ function identity_default2(x5) {
+ return x5;
}
- var HOT_COUNT = 800, HOT_SPAN = 16;
- var nativeNow = Date.now;
- function shortOut(func) {
- var count = 0, lastCalled = 0;
- return function() {
- var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
- lastCalled = stamp;
- if (remaining > 0) {
- if (++count >= HOT_COUNT) {
- return arguments[0];
+ var init_identity2 = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/identity.js"() {
+ "use strict";
+ __name(identity_default2, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js
+ function locale_default(locale3) {
+ var group2 = locale3.grouping === void 0 || locale3.thousands === void 0 ? identity_default2 : formatGroup_default(map.call(locale3.grouping, Number), locale3.thousands + ""), currencyPrefix = locale3.currency === void 0 ? "" : locale3.currency[0] + "", currencySuffix = locale3.currency === void 0 ? "" : locale3.currency[1] + "", decimal = locale3.decimal === void 0 ? "." : locale3.decimal + "", numerals = locale3.numerals === void 0 ? identity_default2 : formatNumerals_default(map.call(locale3.numerals, String)), percent = locale3.percent === void 0 ? "%" : locale3.percent + "", minus = locale3.minus === void 0 ? "\u2212" : locale3.minus + "", nan = locale3.nan === void 0 ? "NaN" : locale3.nan + "";
+ function newFormat(specifier) {
+ specifier = formatSpecifier(specifier);
+ var fill = specifier.fill, align = specifier.align, sign2 = specifier.sign, symbol = specifier.symbol, zero3 = specifier.zero, width3 = specifier.width, comma = specifier.comma, precision = specifier.precision, trim2 = specifier.trim, type3 = specifier.type;
+ if (type3 === "n") comma = true, type3 = "g";
+ else if (!formatTypes_default[type3]) precision === void 0 && (precision = 12), trim2 = true, type3 = "g";
+ if (zero3 || fill === "0" && align === "=") zero3 = true, fill = "0", align = "=";
+ var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type3) ? "0" + type3.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type3) ? percent : "";
+ var formatType = formatTypes_default[type3], maybeSuffix = /[defgprs%]/.test(type3);
+ precision = precision === void 0 ? 6 : /[gprs]/.test(type3) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));
+ function format3(value2) {
+ var valuePrefix = prefix, valueSuffix = suffix, i2, n2, c3;
+ if (type3 === "c") {
+ valueSuffix = formatType(value2) + valueSuffix;
+ value2 = "";
+ } else {
+ value2 = +value2;
+ var valueNegative = value2 < 0 || 1 / value2 < 0;
+ value2 = isNaN(value2) ? nan : formatType(Math.abs(value2), precision);
+ if (trim2) value2 = formatTrim_default(value2);
+ if (valueNegative && +value2 === 0 && sign2 !== "+") valueNegative = false;
+ valuePrefix = (valueNegative ? sign2 === "(" ? sign2 : minus : sign2 === "-" || sign2 === "(" ? "" : sign2) + valuePrefix;
+ valueSuffix = (type3 === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign2 === "(" ? ")" : "");
+ if (maybeSuffix) {
+ i2 = -1, n2 = value2.length;
+ while (++i2 < n2) {
+ if (c3 = value2.charCodeAt(i2), 48 > c3 || c3 > 57) {
+ valueSuffix = (c3 === 46 ? decimal + value2.slice(i2 + 1) : value2.slice(i2)) + valueSuffix;
+ value2 = value2.slice(0, i2);
+ break;
+ }
+ }
+ }
}
- } else {
- count = 0;
- }
- return func.apply(void 0, arguments);
- };
- }
- function constant(value) {
- return function() {
- return value;
- };
- }
- var defineProperty = function() {
- try {
- var func = getNative(Object, "defineProperty");
- func({}, "", {});
- return func;
- } catch (e) {
- }
- }();
- const defineProperty$1 = defineProperty;
- var baseSetToString = !defineProperty$1 ? identity : function(func, string) {
- return defineProperty$1(func, "toString", {
- "configurable": true,
- "enumerable": false,
- "value": constant(string),
- "writable": true
- });
- };
- const baseSetToString$1 = baseSetToString;
- var setToString = shortOut(baseSetToString$1);
- const setToString$1 = setToString;
- function arrayEach(array2, iteratee) {
- var index = -1, length2 = array2 == null ? 0 : array2.length;
- while (++index < length2) {
- if (iteratee(array2[index], index, array2) === false) {
- break;
+ if (comma && !zero3) value2 = group2(value2, Infinity);
+ var length2 = valuePrefix.length + value2.length + valueSuffix.length, padding3 = length2 < width3 ? new Array(width3 - length2 + 1).join(fill) : "";
+ if (comma && zero3) value2 = group2(padding3 + value2, padding3.length ? width3 - valueSuffix.length : Infinity), padding3 = "";
+ switch (align) {
+ case "<":
+ value2 = valuePrefix + value2 + valueSuffix + padding3;
+ break;
+ case "=":
+ value2 = valuePrefix + padding3 + value2 + valueSuffix;
+ break;
+ case "^":
+ value2 = padding3.slice(0, length2 = padding3.length >> 1) + valuePrefix + value2 + valueSuffix + padding3.slice(length2);
+ break;
+ default:
+ value2 = padding3 + valuePrefix + value2 + valueSuffix;
+ break;
+ }
+ return numerals(value2);
}
+ __name(format3, "format");
+ format3.toString = function() {
+ return specifier + "";
+ };
+ return format3;
}
- return array2;
- }
- function baseFindIndex(array2, predicate, fromIndex, fromRight) {
- var length2 = array2.length, index = fromIndex + (fromRight ? 1 : -1);
- while (fromRight ? index-- : ++index < length2) {
- if (predicate(array2[index], index, array2)) {
- return index;
- }
+ __name(newFormat, "newFormat");
+ function formatPrefix2(specifier, value2) {
+ var f3 = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), e3 = Math.max(-8, Math.min(8, Math.floor(exponent_default(value2) / 3))) * 3, k2 = Math.pow(10, -e3), prefix = prefixes[8 + e3 / 3];
+ return function(value3) {
+ return f3(k2 * value3) + prefix;
+ };
}
- return -1;
- }
- function baseIsNaN(value) {
- return value !== value;
+ __name(formatPrefix2, "formatPrefix");
+ return {
+ format: newFormat,
+ formatPrefix: formatPrefix2
+ };
}
- function strictIndexOf(array2, value, fromIndex) {
- var index = fromIndex - 1, length2 = array2.length;
- while (++index < length2) {
- if (array2[index] === value) {
- return index;
- }
+ var map, prefixes;
+ var init_locale = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js"() {
+ "use strict";
+ init_exponent();
+ init_formatGroup();
+ init_formatNumerals();
+ init_formatSpecifier();
+ init_formatTrim();
+ init_formatTypes();
+ init_formatPrefixAuto();
+ init_identity2();
+ map = Array.prototype.map;
+ prefixes = ["y", "z", "a", "f", "p", "n", "\xB5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
+ __name(locale_default, "default");
}
- return -1;
- }
- function baseIndexOf(array2, value, fromIndex) {
- return value === value ? strictIndexOf(array2, value, fromIndex) : baseFindIndex(array2, baseIsNaN, fromIndex);
- }
- function arrayIncludes(array2, value) {
- var length2 = array2 == null ? 0 : array2.length;
- return !!length2 && baseIndexOf(array2, value, 0) > -1;
- }
- var MAX_SAFE_INTEGER = 9007199254740991;
- var reIsUint = /^(?:0|[1-9]\d*)$/;
- function isIndex(value, length2) {
- var type2 = typeof value;
- length2 = length2 == null ? MAX_SAFE_INTEGER : length2;
- return !!length2 && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length2);
- }
- function baseAssignValue(object2, key, value) {
- if (key == "__proto__" && defineProperty$1) {
- defineProperty$1(object2, key, {
- "configurable": true,
- "enumerable": true,
- "value": value,
- "writable": true
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js
+ function defaultLocale(definition) {
+ locale = locale_default(definition);
+ format2 = locale.format;
+ formatPrefix = locale.formatPrefix;
+ return locale;
+ }
+ var locale, format2, formatPrefix;
+ var init_defaultLocale = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js"() {
+ "use strict";
+ init_locale();
+ defaultLocale({
+ thousands: ",",
+ grouping: [3],
+ currency: ["$", ""]
});
- } else {
- object2[key] = value;
+ __name(defaultLocale, "defaultLocale");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionFixed.js
+ function precisionFixed_default(step3) {
+ return Math.max(0, -exponent_default(Math.abs(step3)));
}
- var objectProto$9 = Object.prototype;
- var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
- function assignValue(object2, key, value) {
- var objValue = object2[key];
- if (!(hasOwnProperty$8.call(object2, key) && eq(objValue, value)) || value === void 0 && !(key in object2)) {
- baseAssignValue(object2, key, value);
+ var init_precisionFixed = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionFixed.js"() {
+ "use strict";
+ init_exponent();
+ __name(precisionFixed_default, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionPrefix.js
+ function precisionPrefix_default(step3, value2) {
+ return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent_default(value2) / 3))) * 3 - exponent_default(Math.abs(step3)));
}
- function copyObject(source, props, object2, customizer) {
- var isNew = !object2;
- object2 || (object2 = {});
- var index = -1, length2 = props.length;
- while (++index < length2) {
- var key = props[index];
- var newValue = customizer ? customizer(object2[key], source[key], key, object2, source) : void 0;
- if (newValue === void 0) {
- newValue = source[key];
- }
- if (isNew) {
- baseAssignValue(object2, key, newValue);
- } else {
- assignValue(object2, key, newValue);
- }
+ var init_precisionPrefix = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionPrefix.js"() {
+ "use strict";
+ init_exponent();
+ __name(precisionPrefix_default, "default");
}
- return object2;
- }
- var nativeMax$2 = Math.max;
- function overRest(func, start2, transform) {
- start2 = nativeMax$2(start2 === void 0 ? func.length - 1 : start2, 0);
- return function() {
- var args = arguments, index = -1, length2 = nativeMax$2(args.length - start2, 0), array2 = Array(length2);
- while (++index < length2) {
- array2[index] = args[start2 + index];
- }
- index = -1;
- var otherArgs = Array(start2 + 1);
- while (++index < start2) {
- otherArgs[index] = args[index];
- }
- otherArgs[start2] = transform(array2);
- return apply$1(func, this, otherArgs);
- };
- }
- function baseRest(func, start2) {
- return setToString$1(overRest(func, start2, identity), func + "");
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionRound.js
+ function precisionRound_default(step3, max10) {
+ step3 = Math.abs(step3), max10 = Math.abs(max10) - step3;
+ return Math.max(0, exponent_default(max10) - exponent_default(step3)) + 1;
}
- function isIterateeCall(value, index, object2) {
- if (!isObject(object2)) {
- return false;
+ var init_precisionRound = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionRound.js"() {
+ "use strict";
+ init_exponent();
+ __name(precisionRound_default, "default");
}
- var type2 = typeof index;
- if (type2 == "number" ? isArrayLike(object2) && isIndex(index, object2.length) : type2 == "string" && index in object2) {
- return eq(object2[index], value);
+ });
+
+ // ../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/index.js
+ var init_src21 = __esm({
+ "../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/index.js"() {
+ "use strict";
+ init_defaultLocale();
+ init_formatSpecifier();
+ init_precisionFixed();
+ init_precisionPrefix();
+ init_precisionRound();
}
- return false;
- }
- function createAssigner(assigner) {
- return baseRest(function(object2, sources) {
- var index = -1, length2 = sources.length, customizer = length2 > 1 ? sources[length2 - 1] : void 0, guard = length2 > 2 ? sources[2] : void 0;
- customizer = assigner.length > 3 && typeof customizer == "function" ? (length2--, customizer) : void 0;
- if (guard && isIterateeCall(sources[0], sources[1], guard)) {
- customizer = length2 < 3 ? void 0 : customizer;
- length2 = 1;
- }
- object2 = Object(object2);
- while (++index < length2) {
- var source = sources[index];
- if (source) {
- assigner(object2, source, index, customizer);
- }
- }
- return object2;
- });
- }
- function baseTimes(n, iteratee) {
- var index = -1, result = Array(n);
- while (++index < n) {
- result[index] = iteratee(index);
+ });
+
+ // ../../node_modules/.pnpm/d3-geo@3.1.1/node_modules/d3-geo/src/index.js
+ var init_src22 = __esm({
+ "../../node_modules/.pnpm/d3-geo@3.1.1/node_modules/d3-geo/src/index.js"() {
+ "use strict";
}
- return result;
- }
- var objectProto$8 = Object.prototype;
- var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
- function arrayLikeKeys(value, inherited) {
- var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length2 = result.length;
- for (var key in value) {
- if ((inherited || hasOwnProperty$7.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
- (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
- isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
- isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
- isIndex(key, length2)))) {
- result.push(key);
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/index.js
+ var init_src23 = __esm({
+ "../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/index.js"() {
+ "use strict";
}
- return result;
- }
- function keys$1(object2) {
- return isArrayLike(object2) ? arrayLikeKeys(object2) : baseKeys(object2);
- }
- function nativeKeysIn(object2) {
- var result = [];
- if (object2 != null) {
- for (var key in Object(object2)) {
- result.push(key);
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-polygon@3.0.1/node_modules/d3-polygon/src/index.js
+ var init_src24 = __esm({
+ "../../node_modules/.pnpm/d3-polygon@3.0.1/node_modules/d3-polygon/src/index.js"() {
+ "use strict";
}
- return result;
- }
- var objectProto$7 = Object.prototype;
- var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
- function baseKeysIn(object2) {
- if (!isObject(object2)) {
- return nativeKeysIn(object2);
+ });
+
+ // ../../node_modules/.pnpm/d3-random@3.0.1/node_modules/d3-random/src/index.js
+ var init_src25 = __esm({
+ "../../node_modules/.pnpm/d3-random@3.0.1/node_modules/d3-random/src/index.js"() {
+ "use strict";
}
- var isProto = isPrototype(object2), result = [];
- for (var key in object2) {
- if (!(key == "constructor" && (isProto || !hasOwnProperty$6.call(object2, key)))) {
- result.push(key);
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js
+ function initRange(domain, range3) {
+ switch (arguments.length) {
+ case 0:
+ break;
+ case 1:
+ this.range(domain);
+ break;
+ default:
+ this.range(range3).domain(domain);
+ break;
}
- return result;
- }
- function keysIn(object2) {
- return isArrayLike(object2) ? arrayLikeKeys(object2, true) : baseKeysIn(object2);
+ return this;
}
- var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
- function isKey(value, object2) {
- if (isArray$1(value)) {
- return false;
+ var init_init = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js"() {
+ "use strict";
+ __name(initRange, "initRange");
}
- var type2 = typeof value;
- if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol(value)) {
- return true;
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js
+ function ordinal() {
+ var index = new InternMap(), domain = [], range3 = [], unknown = implicit;
+ function scale(d2) {
+ let i2 = index.get(d2);
+ if (i2 === void 0) {
+ if (unknown !== implicit) return unknown;
+ index.set(d2, i2 = domain.push(d2) - 1);
+ }
+ return range3[i2 % range3.length];
}
- return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object2 != null && value in Object(object2);
- }
- var MAX_MEMOIZE_SIZE = 500;
- function memoizeCapped(func) {
- var result = memoize(func, function(key) {
- if (cache.size === MAX_MEMOIZE_SIZE) {
- cache.clear();
+ __name(scale, "scale");
+ scale.domain = function(_2) {
+ if (!arguments.length) return domain.slice();
+ domain = [], index = new InternMap();
+ for (const value2 of _2) {
+ if (index.has(value2)) continue;
+ index.set(value2, domain.push(value2) - 1);
}
- return key;
- });
- var cache = result.cache;
- return result;
+ return scale;
+ };
+ scale.range = function(_2) {
+ return arguments.length ? (range3 = Array.from(_2), scale) : range3.slice();
+ };
+ scale.unknown = function(_2) {
+ return arguments.length ? (unknown = _2, scale) : unknown;
+ };
+ scale.copy = function() {
+ return ordinal(domain, range3).unknown(unknown);
+ };
+ initRange.apply(scale, arguments);
+ return scale;
}
- var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
- var reEscapeChar = /\\(\\)?/g;
- var stringToPath = memoizeCapped(function(string) {
- var result = [];
- if (string.charCodeAt(0) === 46) {
- result.push("");
+ var implicit;
+ var init_ordinal = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js"() {
+ "use strict";
+ init_src2();
+ init_init();
+ implicit = Symbol("implicit");
+ __name(ordinal, "ordinal");
}
- string.replace(rePropName, function(match, number2, quote, subString) {
- result.push(quote ? subString.replace(reEscapeChar, "$1") : number2 || match);
- });
- return result;
});
- const stringToPath$1 = stringToPath;
- function toString(value) {
- return value == null ? "" : baseToString(value);
- }
- function castPath(value, object2) {
- if (isArray$1(value)) {
- return value;
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js
+ function band() {
+ var scale = ordinal().unknown(void 0), domain = scale.domain, ordinalRange = scale.range, r0 = 0, r1 = 1, step3, bandwidth, round = false, paddingInner = 0, paddingOuter = 0, align = 0.5;
+ delete scale.unknown;
+ function rescale() {
+ var n2 = domain().length, reverse2 = r1 < r0, start3 = reverse2 ? r1 : r0, stop5 = reverse2 ? r0 : r1;
+ step3 = (stop5 - start3) / Math.max(1, n2 - paddingInner + paddingOuter * 2);
+ if (round) step3 = Math.floor(step3);
+ start3 += (stop5 - start3 - step3 * (n2 - paddingInner)) * align;
+ bandwidth = step3 * (1 - paddingInner);
+ if (round) start3 = Math.round(start3), bandwidth = Math.round(bandwidth);
+ var values2 = range(n2).map(function(i2) {
+ return start3 + step3 * i2;
+ });
+ return ordinalRange(reverse2 ? values2.reverse() : values2);
}
- return isKey(value, object2) ? [value] : stringToPath$1(toString(value));
+ __name(rescale, "rescale");
+ scale.domain = function(_2) {
+ return arguments.length ? (domain(_2), rescale()) : domain();
+ };
+ scale.range = function(_2) {
+ return arguments.length ? ([r0, r1] = _2, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
+ };
+ scale.rangeRound = function(_2) {
+ return [r0, r1] = _2, r0 = +r0, r1 = +r1, round = true, rescale();
+ };
+ scale.bandwidth = function() {
+ return bandwidth;
+ };
+ scale.step = function() {
+ return step3;
+ };
+ scale.round = function(_2) {
+ return arguments.length ? (round = !!_2, rescale()) : round;
+ };
+ scale.padding = function(_2) {
+ return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_2), rescale()) : paddingInner;
+ };
+ scale.paddingInner = function(_2) {
+ return arguments.length ? (paddingInner = Math.min(1, _2), rescale()) : paddingInner;
+ };
+ scale.paddingOuter = function(_2) {
+ return arguments.length ? (paddingOuter = +_2, rescale()) : paddingOuter;
+ };
+ scale.align = function(_2) {
+ return arguments.length ? (align = Math.max(0, Math.min(1, _2)), rescale()) : align;
+ };
+ scale.copy = function() {
+ return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);
+ };
+ return initRange.apply(rescale(), arguments);
}
- var INFINITY$1 = 1 / 0;
- function toKey(value) {
- if (typeof value == "string" || isSymbol(value)) {
- return value;
+ var init_band = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js"() {
+ "use strict";
+ init_src2();
+ init_init();
+ init_ordinal();
+ __name(band, "band");
}
- var result = value + "";
- return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js
+ function constants(x5) {
+ return function() {
+ return x5;
+ };
}
- function baseGet(object2, path2) {
- path2 = castPath(path2, object2);
- var index = 0, length2 = path2.length;
- while (object2 != null && index < length2) {
- object2 = object2[toKey(path2[index++])];
+ var init_constant4 = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js"() {
+ "use strict";
+ __name(constants, "constants");
}
- return index && index == length2 ? object2 : void 0;
- }
- function get$1(object2, path2, defaultValue) {
- var result = object2 == null ? void 0 : baseGet(object2, path2);
- return result === void 0 ? defaultValue : result;
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js
+ function number3(x5) {
+ return +x5;
}
- function arrayPush(array2, values2) {
- var index = -1, length2 = values2.length, offset = array2.length;
- while (++index < length2) {
- array2[offset + index] = values2[index];
+ var init_number3 = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js"() {
+ "use strict";
+ __name(number3, "number");
}
- return array2;
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js
+ function identity2(x5) {
+ return x5;
}
- var spreadableSymbol = Symbol$2 ? Symbol$2.isConcatSpreadable : void 0;
- function isFlattenable(value) {
- return isArray$1(value) || isArguments$1(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
+ function normalize(a2, b2) {
+ return (b2 -= a2 = +a2) ? function(x5) {
+ return (x5 - a2) / b2;
+ } : constants(isNaN(b2) ? NaN : 0.5);
}
- function baseFlatten(array2, depth, predicate, isStrict, result) {
- var index = -1, length2 = array2.length;
- predicate || (predicate = isFlattenable);
- result || (result = []);
- while (++index < length2) {
- var value = array2[index];
- if (depth > 0 && predicate(value)) {
- if (depth > 1) {
- baseFlatten(value, depth - 1, predicate, isStrict, result);
- } else {
- arrayPush(result, value);
- }
- } else if (!isStrict) {
- result[result.length] = value;
- }
- }
- return result;
+ function clamper(a2, b2) {
+ var t4;
+ if (a2 > b2) t4 = a2, a2 = b2, b2 = t4;
+ return function(x5) {
+ return Math.max(a2, Math.min(b2, x5));
+ };
}
- function flatten(array2) {
- var length2 = array2 == null ? 0 : array2.length;
- return length2 ? baseFlatten(array2, 1) : [];
+ function bimap(domain, range3, interpolate) {
+ var d0 = domain[0], d1 = domain[1], r0 = range3[0], r1 = range3[1];
+ if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);
+ else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
+ return function(x5) {
+ return r0(d0(x5));
+ };
}
- function flatRest(func) {
- return setToString$1(overRest(func, void 0, flatten), func + "");
- }
- var getPrototype = overArg(Object.getPrototypeOf, Object);
- const getPrototype$1 = getPrototype;
- var objectTag$2 = "[object Object]";
- var funcProto = Function.prototype, objectProto$6 = Object.prototype;
- var funcToString = funcProto.toString;
- var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
- var objectCtorString = funcToString.call(Object);
- function isPlainObject(value) {
- if (!isObjectLike(value) || baseGetTag(value) != objectTag$2) {
- return false;
+ function polymap(domain, range3, interpolate) {
+ var j2 = Math.min(domain.length, range3.length) - 1, d2 = new Array(j2), r2 = new Array(j2), i2 = -1;
+ if (domain[j2] < domain[0]) {
+ domain = domain.slice().reverse();
+ range3 = range3.slice().reverse();
}
- var proto2 = getPrototype$1(value);
- if (proto2 === null) {
- return true;
+ while (++i2 < j2) {
+ d2[i2] = normalize(domain[i2], domain[i2 + 1]);
+ r2[i2] = interpolate(range3[i2], range3[i2 + 1]);
}
- var Ctor = hasOwnProperty$5.call(proto2, "constructor") && proto2.constructor;
- return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
+ return function(x5) {
+ var i3 = bisect_default(domain, x5, 1, j2) - 1;
+ return r2[i3](d2[i3](x5));
+ };
}
- function arrayReduce(array2, iteratee, accumulator, initAccum) {
- var index = -1, length2 = array2 == null ? 0 : array2.length;
- if (initAccum && length2) {
- accumulator = array2[++index];
+ function copy(source, target) {
+ return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
+ }
+ function transformer() {
+ var domain = unit, range3 = unit, interpolate = value_default, transform8, untransform, unknown, clamp = identity2, piecewise, output2, input;
+ function rescale() {
+ var n2 = Math.min(domain.length, range3.length);
+ if (clamp !== identity2) clamp = clamper(domain[0], domain[n2 - 1]);
+ piecewise = n2 > 2 ? polymap : bimap;
+ output2 = input = null;
+ return scale;
}
- while (++index < length2) {
- accumulator = iteratee(accumulator, array2[index], index, array2);
+ __name(rescale, "rescale");
+ function scale(x5) {
+ return x5 == null || isNaN(x5 = +x5) ? unknown : (output2 || (output2 = piecewise(domain.map(transform8), range3, interpolate)))(transform8(clamp(x5)));
}
- return accumulator;
- }
- function stackClear() {
- this.__data__ = new ListCache();
- this.size = 0;
- }
- function stackDelete(key) {
- var data = this.__data__, result = data["delete"](key);
- this.size = data.size;
- return result;
- }
- function stackGet(key) {
- return this.__data__.get(key);
- }
- function stackHas(key) {
- return this.__data__.has(key);
+ __name(scale, "scale");
+ scale.invert = function(y5) {
+ return clamp(untransform((input || (input = piecewise(range3, domain.map(transform8), number_default)))(y5)));
+ };
+ scale.domain = function(_2) {
+ return arguments.length ? (domain = Array.from(_2, number3), rescale()) : domain.slice();
+ };
+ scale.range = function(_2) {
+ return arguments.length ? (range3 = Array.from(_2), rescale()) : range3.slice();
+ };
+ scale.rangeRound = function(_2) {
+ return range3 = Array.from(_2), interpolate = round_default, rescale();
+ };
+ scale.clamp = function(_2) {
+ return arguments.length ? (clamp = _2 ? true : identity2, rescale()) : clamp !== identity2;
+ };
+ scale.interpolate = function(_2) {
+ return arguments.length ? (interpolate = _2, rescale()) : interpolate;
+ };
+ scale.unknown = function(_2) {
+ return arguments.length ? (unknown = _2, scale) : unknown;
+ };
+ return function(t4, u2) {
+ transform8 = t4, untransform = u2;
+ return rescale();
+ };
}
- var LARGE_ARRAY_SIZE$1 = 200;
- function stackSet(key, value) {
- var data = this.__data__;
- if (data instanceof ListCache) {
- var pairs2 = data.__data__;
- if (!Map$2 || pairs2.length < LARGE_ARRAY_SIZE$1 - 1) {
- pairs2.push([key, value]);
- this.size = ++data.size;
- return this;
- }
- data = this.__data__ = new MapCache(pairs2);
+ function continuous() {
+ return transformer()(identity2, identity2);
+ }
+ var unit;
+ var init_continuous = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js"() {
+ "use strict";
+ init_src2();
+ init_src8();
+ init_constant4();
+ init_number3();
+ unit = [0, 1];
+ __name(identity2, "identity");
+ __name(normalize, "normalize");
+ __name(clamper, "clamper");
+ __name(bimap, "bimap");
+ __name(polymap, "polymap");
+ __name(copy, "copy");
+ __name(transformer, "transformer");
+ __name(continuous, "continuous");
}
- data.set(key, value);
- this.size = data.size;
- return this;
- }
- function Stack(entries2) {
- var data = this.__data__ = new ListCache(entries2);
- this.size = data.size;
- }
- Stack.prototype.clear = stackClear;
- Stack.prototype["delete"] = stackDelete;
- Stack.prototype.get = stackGet;
- Stack.prototype.has = stackHas;
- Stack.prototype.set = stackSet;
- function baseAssign(object2, source) {
- return object2 && copyObject(source, keys$1(source), object2);
- }
- function baseAssignIn(object2, source) {
- return object2 && copyObject(source, keysIn(source), object2);
- }
- var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
- var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
- var moduleExports = freeModule && freeModule.exports === freeExports;
- var Buffer = moduleExports ? root$1.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0;
- function cloneBuffer(buffer, isDeep) {
- if (isDeep) {
- return buffer.slice();
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js
+ function tickFormat(start3, stop5, count, specifier) {
+ var step3 = tickStep(start3, stop5, count), precision;
+ specifier = formatSpecifier(specifier == null ? ",f" : specifier);
+ switch (specifier.type) {
+ case "s": {
+ var value2 = Math.max(Math.abs(start3), Math.abs(stop5));
+ if (specifier.precision == null && !isNaN(precision = precisionPrefix_default(step3, value2))) specifier.precision = precision;
+ return formatPrefix(specifier, value2);
+ }
+ case "":
+ case "e":
+ case "g":
+ case "p":
+ case "r": {
+ if (specifier.precision == null && !isNaN(precision = precisionRound_default(step3, Math.max(Math.abs(start3), Math.abs(stop5))))) specifier.precision = precision - (specifier.type === "e");
+ break;
+ }
+ case "f":
+ case "%": {
+ if (specifier.precision == null && !isNaN(precision = precisionFixed_default(step3))) specifier.precision = precision - (specifier.type === "%") * 2;
+ break;
+ }
}
- var length2 = buffer.length, result = allocUnsafe ? allocUnsafe(length2) : new buffer.constructor(length2);
- buffer.copy(result);
- return result;
+ return format2(specifier);
}
- function arrayFilter(array2, predicate) {
- var index = -1, length2 = array2 == null ? 0 : array2.length, resIndex = 0, result = [];
- while (++index < length2) {
- var value = array2[index];
- if (predicate(value, index, array2)) {
- result[resIndex++] = value;
- }
+ var init_tickFormat = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js"() {
+ "use strict";
+ init_src2();
+ init_src21();
+ __name(tickFormat, "tickFormat");
}
- return result;
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js
+ function linearish(scale) {
+ var domain = scale.domain;
+ scale.ticks = function(count) {
+ var d2 = domain();
+ return ticks(d2[0], d2[d2.length - 1], count == null ? 10 : count);
+ };
+ scale.tickFormat = function(count, specifier) {
+ var d2 = domain();
+ return tickFormat(d2[0], d2[d2.length - 1], count == null ? 10 : count, specifier);
+ };
+ scale.nice = function(count) {
+ if (count == null) count = 10;
+ var d2 = domain();
+ var i0 = 0;
+ var i1 = d2.length - 1;
+ var start3 = d2[i0];
+ var stop5 = d2[i1];
+ var prestep;
+ var step3;
+ var maxIter = 10;
+ if (stop5 < start3) {
+ step3 = start3, start3 = stop5, stop5 = step3;
+ step3 = i0, i0 = i1, i1 = step3;
+ }
+ while (maxIter-- > 0) {
+ step3 = tickIncrement(start3, stop5, count);
+ if (step3 === prestep) {
+ d2[i0] = start3;
+ d2[i1] = stop5;
+ return domain(d2);
+ } else if (step3 > 0) {
+ start3 = Math.floor(start3 / step3) * step3;
+ stop5 = Math.ceil(stop5 / step3) * step3;
+ } else if (step3 < 0) {
+ start3 = Math.ceil(start3 * step3) / step3;
+ stop5 = Math.floor(stop5 * step3) / step3;
+ } else {
+ break;
+ }
+ prestep = step3;
+ }
+ return scale;
+ };
+ return scale;
}
- function stubArray() {
- return [];
+ function linear2() {
+ var scale = continuous();
+ scale.copy = function() {
+ return copy(scale, linear2());
+ };
+ initRange.apply(scale, arguments);
+ return linearish(scale);
}
- var objectProto$5 = Object.prototype;
- var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
- var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
- var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object2) {
- if (object2 == null) {
- return [];
+ var init_linear = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js"() {
+ "use strict";
+ init_src2();
+ init_continuous();
+ init_init();
+ init_tickFormat();
+ __name(linearish, "linearish");
+ __name(linear2, "linear");
}
- object2 = Object(object2);
- return arrayFilter(nativeGetSymbols$1(object2), function(symbol) {
- return propertyIsEnumerable.call(object2, symbol);
- });
- };
- const getSymbols$1 = getSymbols;
- function copySymbols(source, object2) {
- return copyObject(source, getSymbols$1(source), object2);
- }
- var nativeGetSymbols = Object.getOwnPropertySymbols;
- var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object2) {
- var result = [];
- while (object2) {
- arrayPush(result, getSymbols$1(object2));
- object2 = getPrototype$1(object2);
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js
+ function nice(domain, interval2) {
+ domain = domain.slice();
+ var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], t4;
+ if (x1 < x0) {
+ t4 = i0, i0 = i1, i1 = t4;
+ t4 = x0, x0 = x1, x1 = t4;
}
- return result;
- };
- const getSymbolsIn$1 = getSymbolsIn;
- function copySymbolsIn(source, object2) {
- return copyObject(source, getSymbolsIn$1(source), object2);
- }
- function baseGetAllKeys(object2, keysFunc, symbolsFunc) {
- var result = keysFunc(object2);
- return isArray$1(object2) ? result : arrayPush(result, symbolsFunc(object2));
- }
- function getAllKeys(object2) {
- return baseGetAllKeys(object2, keys$1, getSymbols$1);
- }
- function getAllKeysIn(object2) {
- return baseGetAllKeys(object2, keysIn, getSymbolsIn$1);
+ domain[i0] = interval2.floor(x0);
+ domain[i1] = interval2.ceil(x1);
+ return domain;
}
- var objectProto$4 = Object.prototype;
- var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
- function initCloneArray(array2) {
- var length2 = array2.length, result = new array2.constructor(length2);
- if (length2 && typeof array2[0] == "string" && hasOwnProperty$4.call(array2, "index")) {
- result.index = array2.index;
- result.input = array2.input;
+ var init_nice = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js"() {
+ "use strict";
+ __name(nice, "nice");
}
- return result;
- }
- var Uint8Array$1 = root$1.Uint8Array;
- const Uint8Array$2 = Uint8Array$1;
- function cloneArrayBuffer(arrayBuffer) {
- var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
- new Uint8Array$2(result).set(new Uint8Array$2(arrayBuffer));
- return result;
- }
- function cloneDataView(dataView, isDeep) {
- var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
- return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
- }
- var reFlags = /\w*$/;
- function cloneRegExp(regexp) {
- var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
- result.lastIndex = regexp.lastIndex;
- return result;
- }
- var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
- function cloneSymbol(symbol) {
- return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {};
- }
- function cloneTypedArray(typedArray, isDeep) {
- var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
- return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js
+ function timeInterval(floori, offseti, count, field) {
+ function interval2(date2) {
+ return floori(date2 = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+date2)), date2;
+ }
+ __name(interval2, "interval");
+ interval2.floor = (date2) => {
+ return floori(date2 = /* @__PURE__ */ new Date(+date2)), date2;
+ };
+ interval2.ceil = (date2) => {
+ return floori(date2 = new Date(date2 - 1)), offseti(date2, 1), floori(date2), date2;
+ };
+ interval2.round = (date2) => {
+ const d0 = interval2(date2), d1 = interval2.ceil(date2);
+ return date2 - d0 < d1 - date2 ? d0 : d1;
+ };
+ interval2.offset = (date2, step3) => {
+ return offseti(date2 = /* @__PURE__ */ new Date(+date2), step3 == null ? 1 : Math.floor(step3)), date2;
+ };
+ interval2.range = (start3, stop5, step3) => {
+ const range3 = [];
+ start3 = interval2.ceil(start3);
+ step3 = step3 == null ? 1 : Math.floor(step3);
+ if (!(start3 < stop5) || !(step3 > 0)) return range3;
+ let previous;
+ do
+ range3.push(previous = /* @__PURE__ */ new Date(+start3)), offseti(start3, step3), floori(start3);
+ while (previous < start3 && start3 < stop5);
+ return range3;
+ };
+ interval2.filter = (test) => {
+ return timeInterval((date2) => {
+ if (date2 >= date2) while (floori(date2), !test(date2)) date2.setTime(date2 - 1);
+ }, (date2, step3) => {
+ if (date2 >= date2) {
+ if (step3 < 0) while (++step3 <= 0) {
+ while (offseti(date2, -1), !test(date2)) {
+ }
+ }
+ else while (--step3 >= 0) {
+ while (offseti(date2, 1), !test(date2)) {
+ }
+ }
+ }
+ });
+ };
+ if (count) {
+ interval2.count = (start3, end2) => {
+ t02.setTime(+start3), t12.setTime(+end2);
+ floori(t02), floori(t12);
+ return Math.floor(count(t02, t12));
+ };
+ interval2.every = (step3) => {
+ step3 = Math.floor(step3);
+ return !isFinite(step3) || !(step3 > 0) ? null : !(step3 > 1) ? interval2 : interval2.filter(field ? (d2) => field(d2) % step3 === 0 : (d2) => interval2.count(0, d2) % step3 === 0);
+ };
+ }
+ return interval2;
}
- var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]";
- var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
- function initCloneByTag(object2, tag, isDeep) {
- var Ctor = object2.constructor;
- switch (tag) {
- case arrayBufferTag$2:
- return cloneArrayBuffer(object2);
- case boolTag$2:
- case dateTag$2:
- return new Ctor(+object2);
- case dataViewTag$2:
- return cloneDataView(object2, isDeep);
- case float32Tag$1:
- case float64Tag$1:
- case int8Tag$1:
- case int16Tag$1:
- case int32Tag$1:
- case uint8Tag$1:
- case uint8ClampedTag$1:
- case uint16Tag$1:
- case uint32Tag$1:
- return cloneTypedArray(object2, isDeep);
- case mapTag$3:
- return new Ctor();
- case numberTag$2:
- case stringTag$2:
- return new Ctor(object2);
- case regexpTag$2:
- return cloneRegExp(object2);
- case setTag$3:
- return new Ctor();
- case symbolTag$2:
- return cloneSymbol(object2);
- }
- }
- function initCloneObject(object2) {
- return typeof object2.constructor == "function" && !isPrototype(object2) ? baseCreate$1(getPrototype$1(object2)) : {};
- }
- var mapTag$2 = "[object Map]";
- function baseIsMap(value) {
- return isObjectLike(value) && getTag$1(value) == mapTag$2;
- }
- var nodeIsMap = nodeUtil$1 && nodeUtil$1.isMap;
- var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
- const isMap$1 = isMap;
- var setTag$2 = "[object Set]";
- function baseIsSet(value) {
- return isObjectLike(value) && getTag$1(value) == setTag$2;
- }
- var nodeIsSet = nodeUtil$1 && nodeUtil$1.isSet;
- var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
- const isSet$1 = isSet;
- var CLONE_DEEP_FLAG$1 = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$2 = 4;
- var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]";
- var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
- var cloneableTags = {};
- cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
- cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
- function baseClone(value, bitmask, customizer, key, object2, stack) {
- var result, isDeep = bitmask & CLONE_DEEP_FLAG$1, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG$2;
- if (customizer) {
- result = object2 ? customizer(value, key, object2, stack) : customizer(value);
+ var t02, t12;
+ var init_interval = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js"() {
+ "use strict";
+ t02 = /* @__PURE__ */ new Date();
+ t12 = /* @__PURE__ */ new Date();
+ __name(timeInterval, "timeInterval");
}
- if (result !== void 0) {
- return result;
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js
+ var millisecond, milliseconds;
+ var init_millisecond = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js"() {
+ "use strict";
+ init_interval();
+ millisecond = timeInterval(() => {
+ }, (date2, step3) => {
+ date2.setTime(+date2 + step3);
+ }, (start3, end2) => {
+ return end2 - start3;
+ });
+ millisecond.every = (k2) => {
+ k2 = Math.floor(k2);
+ if (!isFinite(k2) || !(k2 > 0)) return null;
+ if (!(k2 > 1)) return millisecond;
+ return timeInterval((date2) => {
+ date2.setTime(Math.floor(date2 / k2) * k2);
+ }, (date2, step3) => {
+ date2.setTime(+date2 + step3 * k2);
+ }, (start3, end2) => {
+ return (end2 - start3) / k2;
+ });
+ };
+ milliseconds = millisecond.range;
}
- if (!isObject(value)) {
- return value;
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js
+ var durationSecond, durationMinute, durationHour, durationDay, durationWeek, durationMonth, durationYear;
+ var init_duration2 = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js"() {
+ "use strict";
+ durationSecond = 1e3;
+ durationMinute = durationSecond * 60;
+ durationHour = durationMinute * 60;
+ durationDay = durationHour * 24;
+ durationWeek = durationDay * 7;
+ durationMonth = durationDay * 30;
+ durationYear = durationDay * 365;
}
- var isArr = isArray$1(value);
- if (isArr) {
- result = initCloneArray(value);
- if (!isDeep) {
- return copyArray(value, result);
- }
- } else {
- var tag = getTag$1(value), isFunc = tag == funcTag || tag == genTag;
- if (isBuffer$1(value)) {
- return cloneBuffer(value, isDeep);
- }
- if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object2) {
- result = isFlat || isFunc ? {} : initCloneObject(value);
- if (!isDeep) {
- return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
- }
- } else {
- if (!cloneableTags[tag]) {
- return object2 ? value : {};
- }
- result = initCloneByTag(value, tag, isDeep);
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js
+ var second, seconds;
+ var init_second = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js"() {
+ "use strict";
+ init_interval();
+ init_duration2();
+ second = timeInterval((date2) => {
+ date2.setTime(date2 - date2.getMilliseconds());
+ }, (date2, step3) => {
+ date2.setTime(+date2 + step3 * durationSecond);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationSecond;
+ }, (date2) => {
+ return date2.getUTCSeconds();
+ });
+ seconds = second.range;
}
- stack || (stack = new Stack());
- var stacked = stack.get(value);
- if (stacked) {
- return stacked;
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js
+ var timeMinute, timeMinutes, utcMinute, utcMinutes;
+ var init_minute = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js"() {
+ "use strict";
+ init_interval();
+ init_duration2();
+ timeMinute = timeInterval((date2) => {
+ date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond);
+ }, (date2, step3) => {
+ date2.setTime(+date2 + step3 * durationMinute);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationMinute;
+ }, (date2) => {
+ return date2.getMinutes();
+ });
+ timeMinutes = timeMinute.range;
+ utcMinute = timeInterval((date2) => {
+ date2.setUTCSeconds(0, 0);
+ }, (date2, step3) => {
+ date2.setTime(+date2 + step3 * durationMinute);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationMinute;
+ }, (date2) => {
+ return date2.getUTCMinutes();
+ });
+ utcMinutes = utcMinute.range;
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js
+ var timeHour, timeHours, utcHour, utcHours;
+ var init_hour = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js"() {
+ "use strict";
+ init_interval();
+ init_duration2();
+ timeHour = timeInterval((date2) => {
+ date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond - date2.getMinutes() * durationMinute);
+ }, (date2, step3) => {
+ date2.setTime(+date2 + step3 * durationHour);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationHour;
+ }, (date2) => {
+ return date2.getHours();
+ });
+ timeHours = timeHour.range;
+ utcHour = timeInterval((date2) => {
+ date2.setUTCMinutes(0, 0, 0);
+ }, (date2, step3) => {
+ date2.setTime(+date2 + step3 * durationHour);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationHour;
+ }, (date2) => {
+ return date2.getUTCHours();
+ });
+ utcHours = utcHour.range;
}
- stack.set(value, result);
- if (isSet$1(value)) {
- value.forEach(function(subValue) {
- result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js
+ var timeDay, timeDays, utcDay, utcDays, unixDay, unixDays;
+ var init_day = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js"() {
+ "use strict";
+ init_interval();
+ init_duration2();
+ timeDay = timeInterval(
+ (date2) => date2.setHours(0, 0, 0, 0),
+ (date2, step3) => date2.setDate(date2.getDate() + step3),
+ (start3, end2) => (end2 - start3 - (end2.getTimezoneOffset() - start3.getTimezoneOffset()) * durationMinute) / durationDay,
+ (date2) => date2.getDate() - 1
+ );
+ timeDays = timeDay.range;
+ utcDay = timeInterval((date2) => {
+ date2.setUTCHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setUTCDate(date2.getUTCDate() + step3);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationDay;
+ }, (date2) => {
+ return date2.getUTCDate() - 1;
});
- } else if (isMap$1(value)) {
- value.forEach(function(subValue, key2) {
- result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
+ utcDays = utcDay.range;
+ unixDay = timeInterval((date2) => {
+ date2.setUTCHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setUTCDate(date2.getUTCDate() + step3);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationDay;
+ }, (date2) => {
+ return Math.floor(date2 / durationDay);
});
+ unixDays = unixDay.range;
}
- var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys$1;
- var props = isArr ? void 0 : keysFunc(value);
- arrayEach(props || value, function(subValue, key2) {
- if (props) {
- key2 = subValue;
- subValue = value[key2];
- }
- assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js
+ function timeWeekday(i2) {
+ return timeInterval((date2) => {
+ date2.setDate(date2.getDate() - (date2.getDay() + 7 - i2) % 7);
+ date2.setHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setDate(date2.getDate() + step3 * 7);
+ }, (start3, end2) => {
+ return (end2 - start3 - (end2.getTimezoneOffset() - start3.getTimezoneOffset()) * durationMinute) / durationWeek;
});
- return result;
- }
- var CLONE_SYMBOLS_FLAG$1 = 4;
- function clone$1(value) {
- return baseClone(value, CLONE_SYMBOLS_FLAG$1);
- }
- var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
- function cloneDeep(value) {
- return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
}
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
- function setCacheAdd(value) {
- this.__data__.set(value, HASH_UNDEFINED);
- return this;
- }
- function setCacheHas(value) {
- return this.__data__.has(value);
+ function utcWeekday(i2) {
+ return timeInterval((date2) => {
+ date2.setUTCDate(date2.getUTCDate() - (date2.getUTCDay() + 7 - i2) % 7);
+ date2.setUTCHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setUTCDate(date2.getUTCDate() + step3 * 7);
+ }, (start3, end2) => {
+ return (end2 - start3) / durationWeek;
+ });
}
- function SetCache(values2) {
- var index = -1, length2 = values2 == null ? 0 : values2.length;
- this.__data__ = new MapCache();
- while (++index < length2) {
- this.add(values2[index]);
+ var timeSunday, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSundays, timeMondays, timeTuesdays, timeWednesdays, timeThursdays, timeFridays, timeSaturdays, utcSunday, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSundays, utcMondays, utcTuesdays, utcWednesdays, utcThursdays, utcFridays, utcSaturdays;
+ var init_week = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js"() {
+ "use strict";
+ init_interval();
+ init_duration2();
+ __name(timeWeekday, "timeWeekday");
+ timeSunday = timeWeekday(0);
+ timeMonday = timeWeekday(1);
+ timeTuesday = timeWeekday(2);
+ timeWednesday = timeWeekday(3);
+ timeThursday = timeWeekday(4);
+ timeFriday = timeWeekday(5);
+ timeSaturday = timeWeekday(6);
+ timeSundays = timeSunday.range;
+ timeMondays = timeMonday.range;
+ timeTuesdays = timeTuesday.range;
+ timeWednesdays = timeWednesday.range;
+ timeThursdays = timeThursday.range;
+ timeFridays = timeFriday.range;
+ timeSaturdays = timeSaturday.range;
+ __name(utcWeekday, "utcWeekday");
+ utcSunday = utcWeekday(0);
+ utcMonday = utcWeekday(1);
+ utcTuesday = utcWeekday(2);
+ utcWednesday = utcWeekday(3);
+ utcThursday = utcWeekday(4);
+ utcFriday = utcWeekday(5);
+ utcSaturday = utcWeekday(6);
+ utcSundays = utcSunday.range;
+ utcMondays = utcMonday.range;
+ utcTuesdays = utcTuesday.range;
+ utcWednesdays = utcWednesday.range;
+ utcThursdays = utcThursday.range;
+ utcFridays = utcFriday.range;
+ utcSaturdays = utcSaturday.range;
}
- }
- SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
- SetCache.prototype.has = setCacheHas;
- function arraySome(array2, predicate) {
- var index = -1, length2 = array2 == null ? 0 : array2.length;
- while (++index < length2) {
- if (predicate(array2[index], index, array2)) {
- return true;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js
+ var timeMonth, timeMonths, utcMonth, utcMonths;
+ var init_month = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js"() {
+ "use strict";
+ init_interval();
+ timeMonth = timeInterval((date2) => {
+ date2.setDate(1);
+ date2.setHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setMonth(date2.getMonth() + step3);
+ }, (start3, end2) => {
+ return end2.getMonth() - start3.getMonth() + (end2.getFullYear() - start3.getFullYear()) * 12;
+ }, (date2) => {
+ return date2.getMonth();
+ });
+ timeMonths = timeMonth.range;
+ utcMonth = timeInterval((date2) => {
+ date2.setUTCDate(1);
+ date2.setUTCHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setUTCMonth(date2.getUTCMonth() + step3);
+ }, (start3, end2) => {
+ return end2.getUTCMonth() - start3.getUTCMonth() + (end2.getUTCFullYear() - start3.getUTCFullYear()) * 12;
+ }, (date2) => {
+ return date2.getUTCMonth();
+ });
+ utcMonths = utcMonth.range;
}
- return false;
- }
- function cacheHas(cache, key) {
- return cache.has(key);
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js
+ var timeYear, timeYears, utcYear, utcYears;
+ var init_year = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js"() {
+ "use strict";
+ init_interval();
+ timeYear = timeInterval((date2) => {
+ date2.setMonth(0, 1);
+ date2.setHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setFullYear(date2.getFullYear() + step3);
+ }, (start3, end2) => {
+ return end2.getFullYear() - start3.getFullYear();
+ }, (date2) => {
+ return date2.getFullYear();
+ });
+ timeYear.every = (k2) => {
+ return !isFinite(k2 = Math.floor(k2)) || !(k2 > 0) ? null : timeInterval((date2) => {
+ date2.setFullYear(Math.floor(date2.getFullYear() / k2) * k2);
+ date2.setMonth(0, 1);
+ date2.setHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setFullYear(date2.getFullYear() + step3 * k2);
+ });
+ };
+ timeYears = timeYear.range;
+ utcYear = timeInterval((date2) => {
+ date2.setUTCMonth(0, 1);
+ date2.setUTCHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setUTCFullYear(date2.getUTCFullYear() + step3);
+ }, (start3, end2) => {
+ return end2.getUTCFullYear() - start3.getUTCFullYear();
+ }, (date2) => {
+ return date2.getUTCFullYear();
+ });
+ utcYear.every = (k2) => {
+ return !isFinite(k2 = Math.floor(k2)) || !(k2 > 0) ? null : timeInterval((date2) => {
+ date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / k2) * k2);
+ date2.setUTCMonth(0, 1);
+ date2.setUTCHours(0, 0, 0, 0);
+ }, (date2, step3) => {
+ date2.setUTCFullYear(date2.getUTCFullYear() + step3 * k2);
+ });
+ };
+ utcYears = utcYear.range;
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js
+ function ticker(year, month, week, day, hour, minute) {
+ const tickIntervals = [
+ [second, 1, durationSecond],
+ [second, 5, 5 * durationSecond],
+ [second, 15, 15 * durationSecond],
+ [second, 30, 30 * durationSecond],
+ [minute, 1, durationMinute],
+ [minute, 5, 5 * durationMinute],
+ [minute, 15, 15 * durationMinute],
+ [minute, 30, 30 * durationMinute],
+ [hour, 1, durationHour],
+ [hour, 3, 3 * durationHour],
+ [hour, 6, 6 * durationHour],
+ [hour, 12, 12 * durationHour],
+ [day, 1, durationDay],
+ [day, 2, 2 * durationDay],
+ [week, 1, durationWeek],
+ [month, 1, durationMonth],
+ [month, 3, 3 * durationMonth],
+ [year, 1, durationYear]
+ ];
+ function ticks2(start3, stop5, count) {
+ const reverse2 = stop5 < start3;
+ if (reverse2) [start3, stop5] = [stop5, start3];
+ const interval2 = count && typeof count.range === "function" ? count : tickInterval2(start3, stop5, count);
+ const ticks3 = interval2 ? interval2.range(start3, +stop5 + 1) : [];
+ return reverse2 ? ticks3.reverse() : ticks3;
+ }
+ __name(ticks2, "ticks");
+ function tickInterval2(start3, stop5, count) {
+ const target = Math.abs(stop5 - start3) / count;
+ const i2 = bisector(([, , step4]) => step4).right(tickIntervals, target);
+ if (i2 === tickIntervals.length) return year.every(tickStep(start3 / durationYear, stop5 / durationYear, count));
+ if (i2 === 0) return millisecond.every(Math.max(tickStep(start3, stop5, count), 1));
+ const [t4, step3] = tickIntervals[target / tickIntervals[i2 - 1][2] < tickIntervals[i2][2] / target ? i2 - 1 : i2];
+ return t4.every(step3);
+ }
+ __name(tickInterval2, "tickInterval");
+ return [ticks2, tickInterval2];
}
- var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;
- function equalArrays(array2, other, bitmask, customizer, equalFunc, stack) {
- var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array2.length, othLength = other.length;
- if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
- return false;
+ var utcTicks, utcTickInterval, timeTicks, timeTickInterval;
+ var init_ticks2 = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js"() {
+ "use strict";
+ init_src2();
+ init_duration2();
+ init_millisecond();
+ init_second();
+ init_minute();
+ init_hour();
+ init_day();
+ init_week();
+ init_month();
+ init_year();
+ __name(ticker, "ticker");
+ [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);
+ [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);
}
- var arrStacked = stack.get(array2);
- var othStacked = stack.get(other);
- if (arrStacked && othStacked) {
- return arrStacked == other && othStacked == array2;
+ });
+
+ // ../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/index.js
+ var init_src26 = __esm({
+ "../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/index.js"() {
+ "use strict";
+ init_millisecond();
+ init_second();
+ init_minute();
+ init_hour();
+ init_day();
+ init_week();
+ init_month();
+ init_year();
+ init_ticks2();
}
- var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;
- stack.set(array2, other);
- stack.set(other, array2);
- while (++index < arrLength) {
- var arrValue = array2[index], othValue = other[index];
- if (customizer) {
- var compared = isPartial ? customizer(othValue, arrValue, index, other, array2, stack) : customizer(arrValue, othValue, index, array2, other, stack);
- }
- if (compared !== void 0) {
- if (compared) {
- continue;
- }
- result = false;
- break;
- }
- if (seen) {
- if (!arraySome(other, function(othValue2, othIndex) {
- if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
- return seen.push(othIndex);
- }
- })) {
- result = false;
- break;
- }
- } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
- result = false;
- break;
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js
+ function localDate(d2) {
+ if (0 <= d2.y && d2.y < 100) {
+ var date2 = new Date(-1, d2.m, d2.d, d2.H, d2.M, d2.S, d2.L);
+ date2.setFullYear(d2.y);
+ return date2;
}
- stack["delete"](array2);
- stack["delete"](other);
- return result;
+ return new Date(d2.y, d2.m, d2.d, d2.H, d2.M, d2.S, d2.L);
}
- function mapToArray(map2) {
- var index = -1, result = Array(map2.size);
- map2.forEach(function(value, key) {
- result[++index] = [key, value];
- });
- return result;
+ function utcDate(d2) {
+ if (0 <= d2.y && d2.y < 100) {
+ var date2 = new Date(Date.UTC(-1, d2.m, d2.d, d2.H, d2.M, d2.S, d2.L));
+ date2.setUTCFullYear(d2.y);
+ return date2;
+ }
+ return new Date(Date.UTC(d2.y, d2.m, d2.d, d2.H, d2.M, d2.S, d2.L));
}
- function setToArray(set2) {
- var index = -1, result = Array(set2.size);
- set2.forEach(function(value) {
- result[++index] = value;
- });
- return result;
+ function newDate(y5, m2, d2) {
+ return { y: y5, m: m2, d: d2, H: 0, M: 0, S: 0, L: 0 };
}
- var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;
- var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
- var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]";
- var symbolProto = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
- function equalByTag(object2, other, tag, bitmask, customizer, equalFunc, stack) {
- switch (tag) {
- case dataViewTag:
- if (object2.byteLength != other.byteLength || object2.byteOffset != other.byteOffset) {
- return false;
- }
- object2 = object2.buffer;
- other = other.buffer;
- case arrayBufferTag:
- if (object2.byteLength != other.byteLength || !equalFunc(new Uint8Array$2(object2), new Uint8Array$2(other))) {
- return false;
- }
- return true;
- case boolTag:
- case dateTag:
- case numberTag:
- return eq(+object2, +other);
- case errorTag:
- return object2.name == other.name && object2.message == other.message;
- case regexpTag:
- case stringTag:
- return object2 == other + "";
- case mapTag:
- var convert = mapToArray;
- case setTag:
- var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;
- convert || (convert = setToArray);
- if (object2.size != other.size && !isPartial) {
- return false;
- }
- var stacked = stack.get(object2);
- if (stacked) {
- return stacked == other;
- }
- bitmask |= COMPARE_UNORDERED_FLAG$2;
- stack.set(object2, other);
- var result = equalArrays(convert(object2), convert(other), bitmask, customizer, equalFunc, stack);
- stack["delete"](object2);
- return result;
- case symbolTag:
- if (symbolValueOf) {
- return symbolValueOf.call(object2) == symbolValueOf.call(other);
+ function formatLocale(locale3) {
+ var locale_dateTime = locale3.dateTime, locale_date = locale3.date, locale_time = locale3.time, locale_periods = locale3.periods, locale_weekdays = locale3.days, locale_shortWeekdays = locale3.shortDays, locale_months = locale3.months, locale_shortMonths = locale3.shortMonths;
+ var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths);
+ var formats = {
+ "a": formatShortWeekday,
+ "A": formatWeekday,
+ "b": formatShortMonth,
+ "B": formatMonth,
+ "c": null,
+ "d": formatDayOfMonth,
+ "e": formatDayOfMonth,
+ "f": formatMicroseconds,
+ "g": formatYearISO,
+ "G": formatFullYearISO,
+ "H": formatHour24,
+ "I": formatHour12,
+ "j": formatDayOfYear,
+ "L": formatMilliseconds,
+ "m": formatMonthNumber,
+ "M": formatMinutes,
+ "p": formatPeriod,
+ "q": formatQuarter,
+ "Q": formatUnixTimestamp,
+ "s": formatUnixTimestampSeconds,
+ "S": formatSeconds,
+ "u": formatWeekdayNumberMonday,
+ "U": formatWeekNumberSunday,
+ "V": formatWeekNumberISO,
+ "w": formatWeekdayNumberSunday,
+ "W": formatWeekNumberMonday,
+ "x": null,
+ "X": null,
+ "y": formatYear,
+ "Y": formatFullYear,
+ "Z": formatZone,
+ "%": formatLiteralPercent
+ };
+ var utcFormats = {
+ "a": formatUTCShortWeekday,
+ "A": formatUTCWeekday,
+ "b": formatUTCShortMonth,
+ "B": formatUTCMonth,
+ "c": null,
+ "d": formatUTCDayOfMonth,
+ "e": formatUTCDayOfMonth,
+ "f": formatUTCMicroseconds,
+ "g": formatUTCYearISO,
+ "G": formatUTCFullYearISO,
+ "H": formatUTCHour24,
+ "I": formatUTCHour12,
+ "j": formatUTCDayOfYear,
+ "L": formatUTCMilliseconds,
+ "m": formatUTCMonthNumber,
+ "M": formatUTCMinutes,
+ "p": formatUTCPeriod,
+ "q": formatUTCQuarter,
+ "Q": formatUnixTimestamp,
+ "s": formatUnixTimestampSeconds,
+ "S": formatUTCSeconds,
+ "u": formatUTCWeekdayNumberMonday,
+ "U": formatUTCWeekNumberSunday,
+ "V": formatUTCWeekNumberISO,
+ "w": formatUTCWeekdayNumberSunday,
+ "W": formatUTCWeekNumberMonday,
+ "x": null,
+ "X": null,
+ "y": formatUTCYear,
+ "Y": formatUTCFullYear,
+ "Z": formatUTCZone,
+ "%": formatLiteralPercent
+ };
+ var parses = {
+ "a": parseShortWeekday,
+ "A": parseWeekday,
+ "b": parseShortMonth,
+ "B": parseMonth,
+ "c": parseLocaleDateTime,
+ "d": parseDayOfMonth,
+ "e": parseDayOfMonth,
+ "f": parseMicroseconds,
+ "g": parseYear,
+ "G": parseFullYear,
+ "H": parseHour24,
+ "I": parseHour24,
+ "j": parseDayOfYear,
+ "L": parseMilliseconds,
+ "m": parseMonthNumber,
+ "M": parseMinutes,
+ "p": parsePeriod,
+ "q": parseQuarter,
+ "Q": parseUnixTimestamp,
+ "s": parseUnixTimestampSeconds,
+ "S": parseSeconds,
+ "u": parseWeekdayNumberMonday,
+ "U": parseWeekNumberSunday,
+ "V": parseWeekNumberISO,
+ "w": parseWeekdayNumberSunday,
+ "W": parseWeekNumberMonday,
+ "x": parseLocaleDate,
+ "X": parseLocaleTime,
+ "y": parseYear,
+ "Y": parseFullYear,
+ "Z": parseZone,
+ "%": parseLiteralPercent
+ };
+ formats.x = newFormat(locale_date, formats);
+ formats.X = newFormat(locale_time, formats);
+ formats.c = newFormat(locale_dateTime, formats);
+ utcFormats.x = newFormat(locale_date, utcFormats);
+ utcFormats.X = newFormat(locale_time, utcFormats);
+ utcFormats.c = newFormat(locale_dateTime, utcFormats);
+ function newFormat(specifier, formats2) {
+ return function(date2) {
+ var string3 = [], i2 = -1, j2 = 0, n2 = specifier.length, c3, pad3, format3;
+ if (!(date2 instanceof Date)) date2 = /* @__PURE__ */ new Date(+date2);
+ while (++i2 < n2) {
+ if (specifier.charCodeAt(i2) === 37) {
+ string3.push(specifier.slice(j2, i2));
+ if ((pad3 = pads[c3 = specifier.charAt(++i2)]) != null) c3 = specifier.charAt(++i2);
+ else pad3 = c3 === "e" ? " " : "0";
+ if (format3 = formats2[c3]) c3 = format3(date2, pad3);
+ string3.push(c3);
+ j2 = i2 + 1;
+ }
+ }
+ string3.push(specifier.slice(j2, i2));
+ return string3.join("");
+ };
+ }
+ __name(newFormat, "newFormat");
+ function newParse(specifier, Z2) {
+ return function(string3) {
+ var d2 = newDate(1900, void 0, 1), i2 = parseSpecifier(d2, specifier, string3 += "", 0), week, day;
+ if (i2 != string3.length) return null;
+ if ("Q" in d2) return new Date(d2.Q);
+ if ("s" in d2) return new Date(d2.s * 1e3 + ("L" in d2 ? d2.L : 0));
+ if (Z2 && !("Z" in d2)) d2.Z = 0;
+ if ("p" in d2) d2.H = d2.H % 12 + d2.p * 12;
+ if (d2.m === void 0) d2.m = "q" in d2 ? d2.q : 0;
+ if ("V" in d2) {
+ if (d2.V < 1 || d2.V > 53) return null;
+ if (!("w" in d2)) d2.w = 1;
+ if ("Z" in d2) {
+ week = utcDate(newDate(d2.y, 0, 1)), day = week.getUTCDay();
+ week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
+ week = utcDay.offset(week, (d2.V - 1) * 7);
+ d2.y = week.getUTCFullYear();
+ d2.m = week.getUTCMonth();
+ d2.d = week.getUTCDate() + (d2.w + 6) % 7;
+ } else {
+ week = localDate(newDate(d2.y, 0, 1)), day = week.getDay();
+ week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);
+ week = timeDay.offset(week, (d2.V - 1) * 7);
+ d2.y = week.getFullYear();
+ d2.m = week.getMonth();
+ d2.d = week.getDate() + (d2.w + 6) % 7;
+ }
+ } else if ("W" in d2 || "U" in d2) {
+ if (!("w" in d2)) d2.w = "u" in d2 ? d2.u % 7 : "W" in d2 ? 1 : 0;
+ day = "Z" in d2 ? utcDate(newDate(d2.y, 0, 1)).getUTCDay() : localDate(newDate(d2.y, 0, 1)).getDay();
+ d2.m = 0;
+ d2.d = "W" in d2 ? (d2.w + 6) % 7 + d2.W * 7 - (day + 5) % 7 : d2.w + d2.U * 7 - (day + 6) % 7;
+ }
+ if ("Z" in d2) {
+ d2.H += d2.Z / 100 | 0;
+ d2.M += d2.Z % 100;
+ return utcDate(d2);
+ }
+ return localDate(d2);
+ };
+ }
+ __name(newParse, "newParse");
+ function parseSpecifier(d2, specifier, string3, j2) {
+ var i2 = 0, n2 = specifier.length, m2 = string3.length, c3, parse8;
+ while (i2 < n2) {
+ if (j2 >= m2) return -1;
+ c3 = specifier.charCodeAt(i2++);
+ if (c3 === 37) {
+ c3 = specifier.charAt(i2++);
+ parse8 = parses[c3 in pads ? specifier.charAt(i2++) : c3];
+ if (!parse8 || (j2 = parse8(d2, string3, j2)) < 0) return -1;
+ } else if (c3 != string3.charCodeAt(j2++)) {
+ return -1;
}
+ }
+ return j2;
}
- return false;
- }
- var COMPARE_PARTIAL_FLAG$3 = 1;
- var objectProto$3 = Object.prototype;
- var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
- function equalObjects(object2, other, bitmask, customizer, equalFunc, stack) {
- var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object2), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
- if (objLength != othLength && !isPartial) {
- return false;
+ __name(parseSpecifier, "parseSpecifier");
+ function parsePeriod(d2, string3, i2) {
+ var n2 = periodRe.exec(string3.slice(i2));
+ return n2 ? (d2.p = periodLookup.get(n2[0].toLowerCase()), i2 + n2[0].length) : -1;
}
- var index = objLength;
- while (index--) {
- var key = objProps[index];
- if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
- return false;
- }
+ __name(parsePeriod, "parsePeriod");
+ function parseShortWeekday(d2, string3, i2) {
+ var n2 = shortWeekdayRe.exec(string3.slice(i2));
+ return n2 ? (d2.w = shortWeekdayLookup.get(n2[0].toLowerCase()), i2 + n2[0].length) : -1;
}
- var objStacked = stack.get(object2);
- var othStacked = stack.get(other);
- if (objStacked && othStacked) {
- return objStacked == other && othStacked == object2;
+ __name(parseShortWeekday, "parseShortWeekday");
+ function parseWeekday(d2, string3, i2) {
+ var n2 = weekdayRe.exec(string3.slice(i2));
+ return n2 ? (d2.w = weekdayLookup.get(n2[0].toLowerCase()), i2 + n2[0].length) : -1;
}
- var result = true;
- stack.set(object2, other);
- stack.set(other, object2);
- var skipCtor = isPartial;
- while (++index < objLength) {
- key = objProps[index];
- var objValue = object2[key], othValue = other[key];
- if (customizer) {
- var compared = isPartial ? customizer(othValue, objValue, key, other, object2, stack) : customizer(objValue, othValue, key, object2, other, stack);
- }
- if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
- result = false;
- break;
- }
- skipCtor || (skipCtor = key == "constructor");
+ __name(parseWeekday, "parseWeekday");
+ function parseShortMonth(d2, string3, i2) {
+ var n2 = shortMonthRe.exec(string3.slice(i2));
+ return n2 ? (d2.m = shortMonthLookup.get(n2[0].toLowerCase()), i2 + n2[0].length) : -1;
}
- if (result && !skipCtor) {
- var objCtor = object2.constructor, othCtor = other.constructor;
- if (objCtor != othCtor && ("constructor" in object2 && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
- result = false;
- }
+ __name(parseShortMonth, "parseShortMonth");
+ function parseMonth(d2, string3, i2) {
+ var n2 = monthRe.exec(string3.slice(i2));
+ return n2 ? (d2.m = monthLookup.get(n2[0].toLowerCase()), i2 + n2[0].length) : -1;
}
- stack["delete"](object2);
- stack["delete"](other);
- return result;
- }
- var COMPARE_PARTIAL_FLAG$2 = 1;
- var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
- var objectProto$2 = Object.prototype;
- var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
- function baseIsEqualDeep(object2, other, bitmask, customizer, equalFunc, stack) {
- var objIsArr = isArray$1(object2), othIsArr = isArray$1(other), objTag = objIsArr ? arrayTag : getTag$1(object2), othTag = othIsArr ? arrayTag : getTag$1(other);
- objTag = objTag == argsTag ? objectTag : objTag;
- othTag = othTag == argsTag ? objectTag : othTag;
- var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
- if (isSameTag && isBuffer$1(object2)) {
- if (!isBuffer$1(other)) {
- return false;
- }
- objIsArr = true;
- objIsObj = false;
+ __name(parseMonth, "parseMonth");
+ function parseLocaleDateTime(d2, string3, i2) {
+ return parseSpecifier(d2, locale_dateTime, string3, i2);
}
- if (isSameTag && !objIsObj) {
- stack || (stack = new Stack());
- return objIsArr || isTypedArray$1(object2) ? equalArrays(object2, other, bitmask, customizer, equalFunc, stack) : equalByTag(object2, other, objTag, bitmask, customizer, equalFunc, stack);
+ __name(parseLocaleDateTime, "parseLocaleDateTime");
+ function parseLocaleDate(d2, string3, i2) {
+ return parseSpecifier(d2, locale_date, string3, i2);
}
- if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
- var objIsWrapped = objIsObj && hasOwnProperty$2.call(object2, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$2.call(other, "__wrapped__");
- if (objIsWrapped || othIsWrapped) {
- var objUnwrapped = objIsWrapped ? object2.value() : object2, othUnwrapped = othIsWrapped ? other.value() : other;
- stack || (stack = new Stack());
- return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
- }
+ __name(parseLocaleDate, "parseLocaleDate");
+ function parseLocaleTime(d2, string3, i2) {
+ return parseSpecifier(d2, locale_time, string3, i2);
}
- if (!isSameTag) {
- return false;
+ __name(parseLocaleTime, "parseLocaleTime");
+ function formatShortWeekday(d2) {
+ return locale_shortWeekdays[d2.getDay()];
}
- stack || (stack = new Stack());
- return equalObjects(object2, other, bitmask, customizer, equalFunc, stack);
- }
- function baseIsEqual(value, other, bitmask, customizer, stack) {
- if (value === other) {
- return true;
+ __name(formatShortWeekday, "formatShortWeekday");
+ function formatWeekday(d2) {
+ return locale_weekdays[d2.getDay()];
}
- if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
- return value !== value && other !== other;
+ __name(formatWeekday, "formatWeekday");
+ function formatShortMonth(d2) {
+ return locale_shortMonths[d2.getMonth()];
}
- return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
- }
- var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;
- function baseIsMatch(object2, source, matchData, customizer) {
- var index = matchData.length, length2 = index, noCustomizer = !customizer;
- if (object2 == null) {
- return !length2;
+ __name(formatShortMonth, "formatShortMonth");
+ function formatMonth(d2) {
+ return locale_months[d2.getMonth()];
}
- object2 = Object(object2);
- while (index--) {
- var data = matchData[index];
- if (noCustomizer && data[2] ? data[1] !== object2[data[0]] : !(data[0] in object2)) {
- return false;
- }
+ __name(formatMonth, "formatMonth");
+ function formatPeriod(d2) {
+ return locale_periods[+(d2.getHours() >= 12)];
}
- while (++index < length2) {
- data = matchData[index];
- var key = data[0], objValue = object2[key], srcValue = data[1];
- if (noCustomizer && data[2]) {
- if (objValue === void 0 && !(key in object2)) {
- return false;
- }
- } else {
- var stack = new Stack();
- if (customizer) {
- var result = customizer(objValue, srcValue, key, object2, source, stack);
- }
- if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {
- return false;
- }
- }
+ __name(formatPeriod, "formatPeriod");
+ function formatQuarter(d2) {
+ return 1 + ~~(d2.getMonth() / 3);
}
- return true;
+ __name(formatQuarter, "formatQuarter");
+ function formatUTCShortWeekday(d2) {
+ return locale_shortWeekdays[d2.getUTCDay()];
+ }
+ __name(formatUTCShortWeekday, "formatUTCShortWeekday");
+ function formatUTCWeekday(d2) {
+ return locale_weekdays[d2.getUTCDay()];
+ }
+ __name(formatUTCWeekday, "formatUTCWeekday");
+ function formatUTCShortMonth(d2) {
+ return locale_shortMonths[d2.getUTCMonth()];
+ }
+ __name(formatUTCShortMonth, "formatUTCShortMonth");
+ function formatUTCMonth(d2) {
+ return locale_months[d2.getUTCMonth()];
+ }
+ __name(formatUTCMonth, "formatUTCMonth");
+ function formatUTCPeriod(d2) {
+ return locale_periods[+(d2.getUTCHours() >= 12)];
+ }
+ __name(formatUTCPeriod, "formatUTCPeriod");
+ function formatUTCQuarter(d2) {
+ return 1 + ~~(d2.getUTCMonth() / 3);
+ }
+ __name(formatUTCQuarter, "formatUTCQuarter");
+ return {
+ format: /* @__PURE__ */ __name(function(specifier) {
+ var f3 = newFormat(specifier += "", formats);
+ f3.toString = function() {
+ return specifier;
+ };
+ return f3;
+ }, "format"),
+ parse: /* @__PURE__ */ __name(function(specifier) {
+ var p3 = newParse(specifier += "", false);
+ p3.toString = function() {
+ return specifier;
+ };
+ return p3;
+ }, "parse"),
+ utcFormat: /* @__PURE__ */ __name(function(specifier) {
+ var f3 = newFormat(specifier += "", utcFormats);
+ f3.toString = function() {
+ return specifier;
+ };
+ return f3;
+ }, "utcFormat"),
+ utcParse: /* @__PURE__ */ __name(function(specifier) {
+ var p3 = newParse(specifier += "", true);
+ p3.toString = function() {
+ return specifier;
+ };
+ return p3;
+ }, "utcParse")
+ };
}
- function isStrictComparable(value) {
- return value === value && !isObject(value);
+ function pad2(value2, fill, width3) {
+ var sign2 = value2 < 0 ? "-" : "", string3 = (sign2 ? -value2 : value2) + "", length2 = string3.length;
+ return sign2 + (length2 < width3 ? new Array(width3 - length2 + 1).join(fill) + string3 : string3);
}
- function getMatchData(object2) {
- var result = keys$1(object2), length2 = result.length;
- while (length2--) {
- var key = result[length2], value = object2[key];
- result[length2] = [key, value, isStrictComparable(value)];
- }
- return result;
+ function requote(s2) {
+ return s2.replace(requoteRe, "\\$&");
}
- function matchesStrictComparable(key, srcValue) {
- return function(object2) {
- if (object2 == null) {
- return false;
- }
- return object2[key] === srcValue && (srcValue !== void 0 || key in Object(object2));
- };
+ function formatRe(names) {
+ return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
}
- function baseMatches(source) {
- var matchData = getMatchData(source);
- if (matchData.length == 1 && matchData[0][2]) {
- return matchesStrictComparable(matchData[0][0], matchData[0][1]);
- }
- return function(object2) {
- return object2 === source || baseIsMatch(object2, source, matchData);
- };
+ function formatLookup(names) {
+ return new Map(names.map((name, i2) => [name.toLowerCase(), i2]));
}
- function baseHasIn(object2, key) {
- return object2 != null && key in Object(object2);
+ function parseWeekdayNumberSunday(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 1));
+ return n2 ? (d2.w = +n2[0], i2 + n2[0].length) : -1;
}
- function hasPath(object2, path2, hasFunc) {
- path2 = castPath(path2, object2);
- var index = -1, length2 = path2.length, result = false;
- while (++index < length2) {
- var key = toKey(path2[index]);
- if (!(result = object2 != null && hasFunc(object2, key))) {
- break;
- }
- object2 = object2[key];
- }
- if (result || ++index != length2) {
- return result;
- }
- length2 = object2 == null ? 0 : object2.length;
- return !!length2 && isLength(length2) && isIndex(key, length2) && (isArray$1(object2) || isArguments$1(object2));
+ function parseWeekdayNumberMonday(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 1));
+ return n2 ? (d2.u = +n2[0], i2 + n2[0].length) : -1;
}
- function hasIn(object2, path2) {
- return object2 != null && hasPath(object2, path2, baseHasIn);
+ function parseWeekNumberSunday(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.U = +n2[0], i2 + n2[0].length) : -1;
}
- var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
- function baseMatchesProperty(path2, srcValue) {
- if (isKey(path2) && isStrictComparable(srcValue)) {
- return matchesStrictComparable(toKey(path2), srcValue);
- }
- return function(object2) {
- var objValue = get$1(object2, path2);
- return objValue === void 0 && objValue === srcValue ? hasIn(object2, path2) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
- };
+ function parseWeekNumberISO(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.V = +n2[0], i2 + n2[0].length) : -1;
}
- function baseProperty(key) {
- return function(object2) {
- return object2 == null ? void 0 : object2[key];
- };
+ function parseWeekNumberMonday(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.W = +n2[0], i2 + n2[0].length) : -1;
}
- function basePropertyDeep(path2) {
- return function(object2) {
- return baseGet(object2, path2);
- };
+ function parseFullYear(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 4));
+ return n2 ? (d2.y = +n2[0], i2 + n2[0].length) : -1;
}
- function property(path2) {
- return isKey(path2) ? baseProperty(toKey(path2)) : basePropertyDeep(path2);
+ function parseYear(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.y = +n2[0] + (+n2[0] > 68 ? 1900 : 2e3), i2 + n2[0].length) : -1;
}
- function baseIteratee(value) {
- if (typeof value == "function") {
- return value;
- }
- if (value == null) {
- return identity;
- }
- if (typeof value == "object") {
- return isArray$1(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
- }
- return property(value);
+ function parseZone(d2, string3, i2) {
+ var n2 = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string3.slice(i2, i2 + 6));
+ return n2 ? (d2.Z = n2[1] ? 0 : -(n2[2] + (n2[3] || "00")), i2 + n2[0].length) : -1;
}
- function createBaseFor(fromRight) {
- return function(object2, iteratee, keysFunc) {
- var index = -1, iterable = Object(object2), props = keysFunc(object2), length2 = props.length;
- while (length2--) {
- var key = props[fromRight ? length2 : ++index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
- }
- }
- return object2;
- };
+ function parseQuarter(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 1));
+ return n2 ? (d2.q = n2[0] * 3 - 3, i2 + n2[0].length) : -1;
}
- var baseFor = createBaseFor();
- const baseFor$1 = baseFor;
- function baseForOwn(object2, iteratee) {
- return object2 && baseFor$1(object2, iteratee, keys$1);
+ function parseMonthNumber(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.m = n2[0] - 1, i2 + n2[0].length) : -1;
}
- function createBaseEach(eachFunc, fromRight) {
- return function(collection, iteratee) {
- if (collection == null) {
- return collection;
- }
- if (!isArrayLike(collection)) {
- return eachFunc(collection, iteratee);
- }
- var length2 = collection.length, index = fromRight ? length2 : -1, iterable = Object(collection);
- while (fromRight ? index-- : ++index < length2) {
- if (iteratee(iterable[index], index, iterable) === false) {
- break;
- }
- }
- return collection;
- };
+ function parseDayOfMonth(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.d = +n2[0], i2 + n2[0].length) : -1;
}
- var baseEach = createBaseEach(baseForOwn);
- const baseEach$1 = baseEach;
- var now = function() {
- return root$1.Date.now();
- };
- const now$1 = now;
- var objectProto$1 = Object.prototype;
- var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
- var defaults = baseRest(function(object2, sources) {
- object2 = Object(object2);
- var index = -1;
- var length2 = sources.length;
- var guard = length2 > 2 ? sources[2] : void 0;
- if (guard && isIterateeCall(sources[0], sources[1], guard)) {
- length2 = 1;
- }
- while (++index < length2) {
- var source = sources[index];
- var props = keysIn(source);
- var propsIndex = -1;
- var propsLength = props.length;
- while (++propsIndex < propsLength) {
- var key = props[propsIndex];
- var value = object2[key];
- if (value === void 0 || eq(value, objectProto$1[key]) && !hasOwnProperty$1.call(object2, key)) {
- object2[key] = source[key];
- }
- }
- }
- return object2;
- });
- const defaults$1 = defaults;
- function assignMergeValue(object2, key, value) {
- if (value !== void 0 && !eq(object2[key], value) || value === void 0 && !(key in object2)) {
- baseAssignValue(object2, key, value);
- }
+ function parseDayOfYear(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 3));
+ return n2 ? (d2.m = 0, d2.d = +n2[0], i2 + n2[0].length) : -1;
}
- function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
+ function parseHour24(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.H = +n2[0], i2 + n2[0].length) : -1;
}
- function safeGet(object2, key) {
- if (key === "constructor" && typeof object2[key] === "function") {
- return;
- }
- if (key == "__proto__") {
- return;
- }
- return object2[key];
+ function parseMinutes(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.M = +n2[0], i2 + n2[0].length) : -1;
}
- function toPlainObject(value) {
- return copyObject(value, keysIn(value));
+ function parseSeconds(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 2));
+ return n2 ? (d2.S = +n2[0], i2 + n2[0].length) : -1;
}
- function baseMergeDeep(object2, source, key, srcIndex, mergeFunc, customizer, stack) {
- var objValue = safeGet(object2, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
- if (stacked) {
- assignMergeValue(object2, key, stacked);
- return;
- }
- var newValue = customizer ? customizer(objValue, srcValue, key + "", object2, source, stack) : void 0;
- var isCommon = newValue === void 0;
- if (isCommon) {
- var isArr = isArray$1(srcValue), isBuff = !isArr && isBuffer$1(srcValue), isTyped = !isArr && !isBuff && isTypedArray$1(srcValue);
- newValue = srcValue;
- if (isArr || isBuff || isTyped) {
- if (isArray$1(objValue)) {
- newValue = objValue;
- } else if (isArrayLikeObject(objValue)) {
- newValue = copyArray(objValue);
- } else if (isBuff) {
- isCommon = false;
- newValue = cloneBuffer(srcValue, true);
- } else if (isTyped) {
- isCommon = false;
- newValue = cloneTypedArray(srcValue, true);
- } else {
- newValue = [];
- }
- } else if (isPlainObject(srcValue) || isArguments$1(srcValue)) {
- newValue = objValue;
- if (isArguments$1(objValue)) {
- newValue = toPlainObject(objValue);
- } else if (!isObject(objValue) || isFunction(objValue)) {
- newValue = initCloneObject(srcValue);
- }
- } else {
- isCommon = false;
- }
- }
- if (isCommon) {
- stack.set(srcValue, newValue);
- mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
- stack["delete"](srcValue);
- }
- assignMergeValue(object2, key, newValue);
+ function parseMilliseconds(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 3));
+ return n2 ? (d2.L = +n2[0], i2 + n2[0].length) : -1;
}
- function baseMerge(object2, source, srcIndex, customizer, stack) {
- if (object2 === source) {
- return;
- }
- baseFor$1(source, function(srcValue, key) {
- stack || (stack = new Stack());
- if (isObject(srcValue)) {
- baseMergeDeep(object2, source, key, srcIndex, baseMerge, customizer, stack);
- } else {
- var newValue = customizer ? customizer(safeGet(object2, key), srcValue, key + "", object2, source, stack) : void 0;
- if (newValue === void 0) {
- newValue = srcValue;
- }
- assignMergeValue(object2, key, newValue);
- }
- }, keysIn);
+ function parseMicroseconds(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2, i2 + 6));
+ return n2 ? (d2.L = Math.floor(n2[0] / 1e3), i2 + n2[0].length) : -1;
}
- function arrayIncludesWith(array2, value, comparator) {
- var index = -1, length2 = array2 == null ? 0 : array2.length;
- while (++index < length2) {
- if (comparator(value, array2[index])) {
- return true;
- }
- }
- return false;
+ function parseLiteralPercent(d2, string3, i2) {
+ var n2 = percentRe.exec(string3.slice(i2, i2 + 1));
+ return n2 ? i2 + n2[0].length : -1;
}
- function last(array2) {
- var length2 = array2 == null ? 0 : array2.length;
- return length2 ? array2[length2 - 1] : void 0;
+ function parseUnixTimestamp(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2));
+ return n2 ? (d2.Q = +n2[0], i2 + n2[0].length) : -1;
}
- function castFunction(value) {
- return typeof value == "function" ? value : identity;
+ function parseUnixTimestampSeconds(d2, string3, i2) {
+ var n2 = numberRe.exec(string3.slice(i2));
+ return n2 ? (d2.s = +n2[0], i2 + n2[0].length) : -1;
}
- function forEach(collection, iteratee) {
- var func = isArray$1(collection) ? arrayEach : baseEach$1;
- return func(collection, castFunction(iteratee));
+ function formatDayOfMonth(d2, p3) {
+ return pad2(d2.getDate(), p3, 2);
}
- function baseFilter(collection, predicate) {
- var result = [];
- baseEach$1(collection, function(value, index, collection2) {
- if (predicate(value, index, collection2)) {
- result.push(value);
- }
- });
- return result;
+ function formatHour24(d2, p3) {
+ return pad2(d2.getHours(), p3, 2);
}
- function filter(collection, predicate) {
- var func = isArray$1(collection) ? arrayFilter : baseFilter;
- return func(collection, baseIteratee(predicate));
+ function formatHour12(d2, p3) {
+ return pad2(d2.getHours() % 12 || 12, p3, 2);
}
- function createFind(findIndexFunc) {
- return function(collection, predicate, fromIndex) {
- var iterable = Object(collection);
- if (!isArrayLike(collection)) {
- var iteratee = baseIteratee(predicate);
- collection = keys$1(collection);
- predicate = function(key) {
- return iteratee(iterable[key], key, iterable);
- };
- }
- var index = findIndexFunc(collection, predicate, fromIndex);
- return index > -1 ? iterable[iteratee ? collection[index] : index] : void 0;
- };
+ function formatDayOfYear(d2, p3) {
+ return pad2(1 + timeDay.count(timeYear(d2), d2), p3, 3);
}
- var nativeMax$1 = Math.max;
- function findIndex(array2, predicate, fromIndex) {
- var length2 = array2 == null ? 0 : array2.length;
- if (!length2) {
- return -1;
- }
- var index = fromIndex == null ? 0 : toInteger(fromIndex);
- if (index < 0) {
- index = nativeMax$1(length2 + index, 0);
- }
- return baseFindIndex(array2, baseIteratee(predicate), index);
+ function formatMilliseconds(d2, p3) {
+ return pad2(d2.getMilliseconds(), p3, 3);
}
- var find = createFind(findIndex);
- const find$1 = find;
- function baseMap(collection, iteratee) {
- var index = -1, result = isArrayLike(collection) ? Array(collection.length) : [];
- baseEach$1(collection, function(value, key, collection2) {
- result[++index] = iteratee(value, key, collection2);
- });
- return result;
+ function formatMicroseconds(d2, p3) {
+ return formatMilliseconds(d2, p3) + "000";
}
- function map(collection, iteratee) {
- var func = isArray$1(collection) ? arrayMap : baseMap;
- return func(collection, baseIteratee(iteratee));
+ function formatMonthNumber(d2, p3) {
+ return pad2(d2.getMonth() + 1, p3, 2);
}
- function forIn(object2, iteratee) {
- return object2 == null ? object2 : baseFor$1(object2, castFunction(iteratee), keysIn);
+ function formatMinutes(d2, p3) {
+ return pad2(d2.getMinutes(), p3, 2);
}
- function forOwn(object2, iteratee) {
- return object2 && baseForOwn(object2, castFunction(iteratee));
+ function formatSeconds(d2, p3) {
+ return pad2(d2.getSeconds(), p3, 2);
}
- function baseGt(value, other) {
- return value > other;
+ function formatWeekdayNumberMonday(d2) {
+ var day = d2.getDay();
+ return day === 0 ? 7 : day;
}
- var objectProto = Object.prototype;
- var hasOwnProperty = objectProto.hasOwnProperty;
- function baseHas(object2, key) {
- return object2 != null && hasOwnProperty.call(object2, key);
+ function formatWeekNumberSunday(d2, p3) {
+ return pad2(timeSunday.count(timeYear(d2) - 1, d2), p3, 2);
}
- function has(object2, path2) {
- return object2 != null && hasPath(object2, path2, baseHas);
+ function dISO(d2) {
+ var day = d2.getDay();
+ return day >= 4 || day === 0 ? timeThursday(d2) : timeThursday.ceil(d2);
}
- function baseValues(object2, props) {
- return arrayMap(props, function(key) {
- return object2[key];
- });
+ function formatWeekNumberISO(d2, p3) {
+ d2 = dISO(d2);
+ return pad2(timeThursday.count(timeYear(d2), d2) + (timeYear(d2).getDay() === 4), p3, 2);
}
- function values(object2) {
- return object2 == null ? [] : baseValues(object2, keys$1(object2));
+ function formatWeekdayNumberSunday(d2) {
+ return d2.getDay();
}
- function isUndefined(value) {
- return value === void 0;
+ function formatWeekNumberMonday(d2, p3) {
+ return pad2(timeMonday.count(timeYear(d2) - 1, d2), p3, 2);
}
- function baseLt(value, other) {
- return value < other;
+ function formatYear(d2, p3) {
+ return pad2(d2.getFullYear() % 100, p3, 2);
}
- function mapValues(object2, iteratee) {
- var result = {};
- iteratee = baseIteratee(iteratee);
- baseForOwn(object2, function(value, key, object3) {
- baseAssignValue(result, key, iteratee(value, key, object3));
- });
- return result;
+ function formatYearISO(d2, p3) {
+ d2 = dISO(d2);
+ return pad2(d2.getFullYear() % 100, p3, 2);
}
- function baseExtremum(array2, iteratee, comparator) {
- var index = -1, length2 = array2.length;
- while (++index < length2) {
- var value = array2[index], current = iteratee(value);
- if (current != null && (computed === void 0 ? current === current && !isSymbol(current) : comparator(current, computed))) {
- var computed = current, result = value;
- }
- }
- return result;
+ function formatFullYear(d2, p3) {
+ return pad2(d2.getFullYear() % 1e4, p3, 4);
}
- function max(array2) {
- return array2 && array2.length ? baseExtremum(array2, identity, baseGt) : void 0;
+ function formatFullYearISO(d2, p3) {
+ var day = d2.getDay();
+ d2 = day >= 4 || day === 0 ? timeThursday(d2) : timeThursday.ceil(d2);
+ return pad2(d2.getFullYear() % 1e4, p3, 4);
}
- var merge$1 = createAssigner(function(object2, source, srcIndex) {
- baseMerge(object2, source, srcIndex);
- });
- const merge$2 = merge$1;
- function min(array2) {
- return array2 && array2.length ? baseExtremum(array2, identity, baseLt) : void 0;
+ function formatZone(d2) {
+ var z2 = d2.getTimezoneOffset();
+ return (z2 > 0 ? "-" : (z2 *= -1, "+")) + pad2(z2 / 60 | 0, "0", 2) + pad2(z2 % 60, "0", 2);
}
- function minBy(array2, iteratee) {
- return array2 && array2.length ? baseExtremum(array2, baseIteratee(iteratee), baseLt) : void 0;
+ function formatUTCDayOfMonth(d2, p3) {
+ return pad2(d2.getUTCDate(), p3, 2);
}
- function baseSet(object2, path2, value, customizer) {
- if (!isObject(object2)) {
- return object2;
- }
- path2 = castPath(path2, object2);
- var index = -1, length2 = path2.length, lastIndex = length2 - 1, nested = object2;
- while (nested != null && ++index < length2) {
- var key = toKey(path2[index]), newValue = value;
- if (key === "__proto__" || key === "constructor" || key === "prototype") {
- return object2;
- }
- if (index != lastIndex) {
- var objValue = nested[key];
- newValue = customizer ? customizer(objValue, key, nested) : void 0;
- if (newValue === void 0) {
- newValue = isObject(objValue) ? objValue : isIndex(path2[index + 1]) ? [] : {};
- }
- }
- assignValue(nested, key, newValue);
- nested = nested[key];
- }
- return object2;
+ function formatUTCHour24(d2, p3) {
+ return pad2(d2.getUTCHours(), p3, 2);
}
- function basePickBy(object2, paths, predicate) {
- var index = -1, length2 = paths.length, result = {};
- while (++index < length2) {
- var path2 = paths[index], value = baseGet(object2, path2);
- if (predicate(value, path2)) {
- baseSet(result, castPath(path2, object2), value);
- }
- }
- return result;
+ function formatUTCHour12(d2, p3) {
+ return pad2(d2.getUTCHours() % 12 || 12, p3, 2);
}
- function baseSortBy(array2, comparer) {
- var length2 = array2.length;
- array2.sort(comparer);
- while (length2--) {
- array2[length2] = array2[length2].value;
- }
- return array2;
+ function formatUTCDayOfYear(d2, p3) {
+ return pad2(1 + utcDay.count(utcYear(d2), d2), p3, 3);
}
- function compareAscending(value, other) {
- if (value !== other) {
- var valIsDefined = value !== void 0, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);
- var othIsDefined = other !== void 0, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);
- if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
- return 1;
- }
- if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
- return -1;
- }
- }
- return 0;
+ function formatUTCMilliseconds(d2, p3) {
+ return pad2(d2.getUTCMilliseconds(), p3, 3);
}
- function compareMultiple(object2, other, orders) {
- var index = -1, objCriteria = object2.criteria, othCriteria = other.criteria, length2 = objCriteria.length, ordersLength = orders.length;
- while (++index < length2) {
- var result = compareAscending(objCriteria[index], othCriteria[index]);
- if (result) {
- if (index >= ordersLength) {
- return result;
- }
- var order2 = orders[index];
- return result * (order2 == "desc" ? -1 : 1);
- }
- }
- return object2.index - other.index;
+ function formatUTCMicroseconds(d2, p3) {
+ return formatUTCMilliseconds(d2, p3) + "000";
}
- function baseOrderBy(collection, iteratees, orders) {
- if (iteratees.length) {
- iteratees = arrayMap(iteratees, function(iteratee) {
- if (isArray$1(iteratee)) {
- return function(value) {
- return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
- };
- }
- return iteratee;
- });
- } else {
- iteratees = [identity];
- }
- var index = -1;
- iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
- var result = baseMap(collection, function(value, key, collection2) {
- var criteria = arrayMap(iteratees, function(iteratee) {
- return iteratee(value);
- });
- return { "criteria": criteria, "index": ++index, "value": value };
- });
- return baseSortBy(result, function(object2, other) {
- return compareMultiple(object2, other, orders);
- });
+ function formatUTCMonthNumber(d2, p3) {
+ return pad2(d2.getUTCMonth() + 1, p3, 2);
}
- function basePick(object2, paths) {
- return basePickBy(object2, paths, function(value, path2) {
- return hasIn(object2, path2);
- });
+ function formatUTCMinutes(d2, p3) {
+ return pad2(d2.getUTCMinutes(), p3, 2);
}
- var pick = flatRest(function(object2, paths) {
- return object2 == null ? {} : basePick(object2, paths);
- });
- const pick$1 = pick;
- var nativeCeil = Math.ceil, nativeMax = Math.max;
- function baseRange(start2, end2, step, fromRight) {
- var index = -1, length2 = nativeMax(nativeCeil((end2 - start2) / (step || 1)), 0), result = Array(length2);
- while (length2--) {
- result[fromRight ? length2 : ++index] = start2;
- start2 += step;
- }
- return result;
+ function formatUTCSeconds(d2, p3) {
+ return pad2(d2.getUTCSeconds(), p3, 2);
}
- function createRange(fromRight) {
- return function(start2, end2, step) {
- if (step && typeof step != "number" && isIterateeCall(start2, end2, step)) {
- end2 = step = void 0;
- }
- start2 = toFinite(start2);
- if (end2 === void 0) {
- end2 = start2;
- start2 = 0;
- } else {
- end2 = toFinite(end2);
- }
- step = step === void 0 ? start2 < end2 ? 1 : -1 : toFinite(step);
- return baseRange(start2, end2, step, fromRight);
- };
+ function formatUTCWeekdayNumberMonday(d2) {
+ var dow = d2.getUTCDay();
+ return dow === 0 ? 7 : dow;
}
- var range = createRange();
- const range$1 = range;
- function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
- eachFunc(collection, function(value, index, collection2) {
- accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);
- });
- return accumulator;
+ function formatUTCWeekNumberSunday(d2, p3) {
+ return pad2(utcSunday.count(utcYear(d2) - 1, d2), p3, 2);
}
- function reduce(collection, iteratee, accumulator) {
- var func = isArray$1(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;
- return func(collection, baseIteratee(iteratee), accumulator, initAccum, baseEach$1);
+ function UTCdISO(d2) {
+ var day = d2.getUTCDay();
+ return day >= 4 || day === 0 ? utcThursday(d2) : utcThursday.ceil(d2);
}
- var sortBy = baseRest(function(collection, iteratees) {
- if (collection == null) {
- return [];
+ function formatUTCWeekNumberISO(d2, p3) {
+ d2 = UTCdISO(d2);
+ return pad2(utcThursday.count(utcYear(d2), d2) + (utcYear(d2).getUTCDay() === 4), p3, 2);
+ }
+ function formatUTCWeekdayNumberSunday(d2) {
+ return d2.getUTCDay();
+ }
+ function formatUTCWeekNumberMonday(d2, p3) {
+ return pad2(utcMonday.count(utcYear(d2) - 1, d2), p3, 2);
+ }
+ function formatUTCYear(d2, p3) {
+ return pad2(d2.getUTCFullYear() % 100, p3, 2);
+ }
+ function formatUTCYearISO(d2, p3) {
+ d2 = UTCdISO(d2);
+ return pad2(d2.getUTCFullYear() % 100, p3, 2);
+ }
+ function formatUTCFullYear(d2, p3) {
+ return pad2(d2.getUTCFullYear() % 1e4, p3, 4);
+ }
+ function formatUTCFullYearISO(d2, p3) {
+ var day = d2.getUTCDay();
+ d2 = day >= 4 || day === 0 ? utcThursday(d2) : utcThursday.ceil(d2);
+ return pad2(d2.getUTCFullYear() % 1e4, p3, 4);
+ }
+ function formatUTCZone() {
+ return "+0000";
+ }
+ function formatLiteralPercent() {
+ return "%";
+ }
+ function formatUnixTimestamp(d2) {
+ return +d2;
+ }
+ function formatUnixTimestampSeconds(d2) {
+ return Math.floor(+d2 / 1e3);
+ }
+ var pads, numberRe, percentRe, requoteRe;
+ var init_locale2 = __esm({
+ "../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js"() {
+ "use strict";
+ init_src26();
+ __name(localDate, "localDate");
+ __name(utcDate, "utcDate");
+ __name(newDate, "newDate");
+ __name(formatLocale, "formatLocale");
+ pads = { "-": "", "_": " ", "0": "0" };
+ numberRe = /^\s*\d+/;
+ percentRe = /^%/;
+ requoteRe = /[\\^$*+?|[\]().{}]/g;
+ __name(pad2, "pad");
+ __name(requote, "requote");
+ __name(formatRe, "formatRe");
+ __name(formatLookup, "formatLookup");
+ __name(parseWeekdayNumberSunday, "parseWeekdayNumberSunday");
+ __name(parseWeekdayNumberMonday, "parseWeekdayNumberMonday");
+ __name(parseWeekNumberSunday, "parseWeekNumberSunday");
+ __name(parseWeekNumberISO, "parseWeekNumberISO");
+ __name(parseWeekNumberMonday, "parseWeekNumberMonday");
+ __name(parseFullYear, "parseFullYear");
+ __name(parseYear, "parseYear");
+ __name(parseZone, "parseZone");
+ __name(parseQuarter, "parseQuarter");
+ __name(parseMonthNumber, "parseMonthNumber");
+ __name(parseDayOfMonth, "parseDayOfMonth");
+ __name(parseDayOfYear, "parseDayOfYear");
+ __name(parseHour24, "parseHour24");
+ __name(parseMinutes, "parseMinutes");
+ __name(parseSeconds, "parseSeconds");
+ __name(parseMilliseconds, "parseMilliseconds");
+ __name(parseMicroseconds, "parseMicroseconds");
+ __name(parseLiteralPercent, "parseLiteralPercent");
+ __name(parseUnixTimestamp, "parseUnixTimestamp");
+ __name(parseUnixTimestampSeconds, "parseUnixTimestampSeconds");
+ __name(formatDayOfMonth, "formatDayOfMonth");
+ __name(formatHour24, "formatHour24");
+ __name(formatHour12, "formatHour12");
+ __name(formatDayOfYear, "formatDayOfYear");
+ __name(formatMilliseconds, "formatMilliseconds");
+ __name(formatMicroseconds, "formatMicroseconds");
+ __name(formatMonthNumber, "formatMonthNumber");
+ __name(formatMinutes, "formatMinutes");
+ __name(formatSeconds, "formatSeconds");
+ __name(formatWeekdayNumberMonday, "formatWeekdayNumberMonday");
+ __name(formatWeekNumberSunday, "formatWeekNumberSunday");
+ __name(dISO, "dISO");
+ __name(formatWeekNumberISO, "formatWeekNumberISO");
+ __name(formatWeekdayNumberSunday, "formatWeekdayNumberSunday");
+ __name(formatWeekNumberMonday, "formatWeekNumberMonday");
+ __name(formatYear, "formatYear");
+ __name(formatYearISO, "formatYearISO");
+ __name(formatFullYear, "formatFullYear");
+ __name(formatFullYearISO, "formatFullYearISO");
+ __name(formatZone, "formatZone");
+ __name(formatUTCDayOfMonth, "formatUTCDayOfMonth");
+ __name(formatUTCHour24, "formatUTCHour24");
+ __name(formatUTCHour12, "formatUTCHour12");
+ __name(formatUTCDayOfYear, "formatUTCDayOfYear");
+ __name(formatUTCMilliseconds, "formatUTCMilliseconds");
+ __name(formatUTCMicroseconds, "formatUTCMicroseconds");
+ __name(formatUTCMonthNumber, "formatUTCMonthNumber");
+ __name(formatUTCMinutes, "formatUTCMinutes");
+ __name(formatUTCSeconds, "formatUTCSeconds");
+ __name(formatUTCWeekdayNumberMonday, "formatUTCWeekdayNumberMonday");
+ __name(formatUTCWeekNumberSunday, "formatUTCWeekNumberSunday");
+ __name(UTCdISO, "UTCdISO");
+ __name(formatUTCWeekNumberISO, "formatUTCWeekNumberISO");
+ __name(formatUTCWeekdayNumberSunday, "formatUTCWeekdayNumberSunday");
+ __name(formatUTCWeekNumberMonday, "formatUTCWeekNumberMonday");
+ __name(formatUTCYear, "formatUTCYear");
+ __name(formatUTCYearISO, "formatUTCYearISO");
+ __name(formatUTCFullYear, "formatUTCFullYear");
+ __name(formatUTCFullYearISO, "formatUTCFullYearISO");
+ __name(formatUTCZone, "formatUTCZone");
+ __name(formatLiteralPercent, "formatLiteralPercent");
+ __name(formatUnixTimestamp, "formatUnixTimestamp");
+ __name(formatUnixTimestampSeconds, "formatUnixTimestampSeconds");
}
- var length2 = iteratees.length;
- if (length2 > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
- iteratees = [];
- } else if (length2 > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
- iteratees = [iteratees[0]];
+ });
+
+ // ../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js
+ function defaultLocale2(definition) {
+ locale2 = formatLocale(definition);
+ timeFormat = locale2.format;
+ timeParse = locale2.parse;
+ utcFormat = locale2.utcFormat;
+ utcParse = locale2.utcParse;
+ return locale2;
+ }
+ var locale2, timeFormat, timeParse, utcFormat, utcParse;
+ var init_defaultLocale2 = __esm({
+ "../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js"() {
+ "use strict";
+ init_locale2();
+ defaultLocale2({
+ dateTime: "%x, %X",
+ date: "%-m/%-d/%Y",
+ time: "%-I:%M:%S %p",
+ periods: ["AM", "PM"],
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
+ });
+ __name(defaultLocale2, "defaultLocale");
}
- return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
});
- const sortBy$1 = sortBy;
- var INFINITY = 1 / 0;
- var createSet = !(Set$2 && 1 / setToArray(new Set$2([, -0]))[1] == INFINITY) ? noop : function(values2) {
- return new Set$2(values2);
- };
- const createSet$1 = createSet;
- var LARGE_ARRAY_SIZE = 200;
- function baseUniq(array2, iteratee, comparator) {
- var index = -1, includes2 = arrayIncludes, length2 = array2.length, isCommon = true, result = [], seen = result;
- if (comparator) {
- isCommon = false;
- includes2 = arrayIncludesWith;
- } else if (length2 >= LARGE_ARRAY_SIZE) {
- var set2 = iteratee ? null : createSet$1(array2);
- if (set2) {
- return setToArray(set2);
- }
- isCommon = false;
- includes2 = cacheHas;
- seen = new SetCache();
- } else {
- seen = iteratee ? [] : result;
+
+ // ../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/index.js
+ var init_src27 = __esm({
+ "../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/index.js"() {
+ "use strict";
+ init_defaultLocale2();
}
- outer:
- while (++index < length2) {
- var value = array2[index], computed = iteratee ? iteratee(value) : value;
- value = comparator || value !== 0 ? value : 0;
- if (isCommon && computed === computed) {
- var seenIndex = seen.length;
- while (seenIndex--) {
- if (seen[seenIndex] === computed) {
- continue outer;
- }
- }
- if (iteratee) {
- seen.push(computed);
- }
- result.push(value);
- } else if (!includes2(seen, computed, comparator)) {
- if (seen !== result) {
- seen.push(computed);
- }
- result.push(value);
- }
- }
- return result;
- }
- var union = baseRest(function(arrays) {
- return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
});
- const union$1 = union;
- var idCounter = 0;
- function uniqueId(prefix) {
- var id2 = ++idCounter;
- return toString(prefix) + id2;
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js
+ function date(t4) {
+ return new Date(t4);
}
- function baseZipObject(props, values2, assignFunc) {
- var index = -1, length2 = props.length, valsLength = values2.length, result = {};
- while (++index < length2) {
- var value = index < valsLength ? values2[index] : void 0;
- assignFunc(result, props[index], value);
- }
- return result;
+ function number4(t4) {
+ return t4 instanceof Date ? +t4 : +/* @__PURE__ */ new Date(+t4);
}
- function zipObject(props, values2) {
- return baseZipObject(props || [], values2 || [], assignValue);
- }
- var DEFAULT_EDGE_NAME = "\0";
- var GRAPH_NODE = "\0";
- var EDGE_KEY_DELIM = "";
- class Graph {
- constructor(opts = {}) {
- this._isDirected = has(opts, "directed") ? opts.directed : true;
- this._isMultigraph = has(opts, "multigraph") ? opts.multigraph : false;
- this._isCompound = has(opts, "compound") ? opts.compound : false;
- this._label = void 0;
- this._defaultNodeLabelFn = constant(void 0);
- this._defaultEdgeLabelFn = constant(void 0);
- this._nodes = {};
- if (this._isCompound) {
- this._parent = {};
- this._children = {};
- this._children[GRAPH_NODE] = {};
- }
- this._in = {};
- this._preds = {};
- this._out = {};
- this._sucs = {};
- this._edgeObjs = {};
- this._edgeLabels = {};
- }
- /* === Graph functions ========= */
- isDirected() {
- return this._isDirected;
- }
- isMultigraph() {
- return this._isMultigraph;
- }
- isCompound() {
- return this._isCompound;
- }
- setGraph(label) {
- this._label = label;
- return this;
+ function calendar(ticks2, tickInterval2, year, month, week, day, hour, minute, second2, format3) {
+ var scale = continuous(), invert2 = scale.invert, domain = scale.domain;
+ var formatMillisecond = format3(".%L"), formatSecond = format3(":%S"), formatMinute = format3("%I:%M"), formatHour = format3("%I %p"), formatDay = format3("%a %d"), formatWeek = format3("%b %d"), formatMonth = format3("%B"), formatYear2 = format3("%Y");
+ function tickFormat2(date2) {
+ return (second2(date2) < date2 ? formatMillisecond : minute(date2) < date2 ? formatSecond : hour(date2) < date2 ? formatMinute : day(date2) < date2 ? formatHour : month(date2) < date2 ? week(date2) < date2 ? formatDay : formatWeek : year(date2) < date2 ? formatMonth : formatYear2)(date2);
}
- graph() {
- return this._label;
+ __name(tickFormat2, "tickFormat");
+ scale.invert = function(y5) {
+ return new Date(invert2(y5));
+ };
+ scale.domain = function(_2) {
+ return arguments.length ? domain(Array.from(_2, number4)) : domain().map(date);
+ };
+ scale.ticks = function(interval2) {
+ var d2 = domain();
+ return ticks2(d2[0], d2[d2.length - 1], interval2 == null ? 10 : interval2);
+ };
+ scale.tickFormat = function(count, specifier) {
+ return specifier == null ? tickFormat2 : format3(specifier);
+ };
+ scale.nice = function(interval2) {
+ var d2 = domain();
+ if (!interval2 || typeof interval2.range !== "function") interval2 = tickInterval2(d2[0], d2[d2.length - 1], interval2 == null ? 10 : interval2);
+ return interval2 ? domain(nice(d2, interval2)) : scale;
+ };
+ scale.copy = function() {
+ return copy(scale, calendar(ticks2, tickInterval2, year, month, week, day, hour, minute, second2, format3));
+ };
+ return scale;
+ }
+ function time() {
+ return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute, second, timeFormat).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments);
+ }
+ var init_time = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js"() {
+ "use strict";
+ init_src26();
+ init_src27();
+ init_continuous();
+ init_init();
+ init_nice();
+ __name(date, "date");
+ __name(number4, "number");
+ __name(calendar, "calendar");
+ __name(time, "time");
}
- /* === Node functions ========== */
- setDefaultNodeLabel(newDefault) {
- if (!isFunction(newDefault)) {
- newDefault = constant(newDefault);
- }
- this._defaultNodeLabelFn = newDefault;
- return this;
+ });
+
+ // ../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/index.js
+ var init_src28 = __esm({
+ "../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/index.js"() {
+ "use strict";
+ init_band();
+ init_linear();
+ init_ordinal();
+ init_time();
}
- nodeCount() {
- return this._nodeCount;
+ });
+
+ // ../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/colors.js
+ function colors_default(specifier) {
+ var n2 = specifier.length / 6 | 0, colors2 = new Array(n2), i2 = 0;
+ while (i2 < n2) colors2[i2] = "#" + specifier.slice(i2 * 6, ++i2 * 6);
+ return colors2;
+ }
+ var init_colors = __esm({
+ "../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/colors.js"() {
+ "use strict";
+ __name(colors_default, "default");
}
- nodes() {
- return keys$1(this._nodes);
+ });
+
+ // ../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js
+ var Tableau10_default;
+ var init_Tableau10 = __esm({
+ "../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js"() {
+ "use strict";
+ init_colors();
+ Tableau10_default = colors_default("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");
}
- sources() {
- var self2 = this;
- return filter(this.nodes(), function(v) {
- return isEmpty(self2._in[v]);
- });
+ });
+
+ // ../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/index.js
+ var init_src29 = __esm({
+ "../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/index.js"() {
+ "use strict";
+ init_Tableau10();
}
- sinks() {
- var self2 = this;
- return filter(this.nodes(), function(v) {
- return isEmpty(self2._out[v]);
- });
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js
+ function constant_default4(x5) {
+ return /* @__PURE__ */ __name(function constant3() {
+ return x5;
+ }, "constant");
+ }
+ var init_constant5 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js"() {
+ "use strict";
+ __name(constant_default4, "default");
}
- setNodes(vs, value) {
- var args = arguments;
- var self2 = this;
- forEach(vs, function(v) {
- if (args.length > 1) {
- self2.setNode(v, value);
- } else {
- self2.setNode(v);
- }
- });
- return this;
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/math.js
+ function acos(x5) {
+ return x5 > 1 ? 0 : x5 < -1 ? pi2 : Math.acos(x5);
+ }
+ function asin(x5) {
+ return x5 >= 1 ? halfPi : x5 <= -1 ? -halfPi : Math.asin(x5);
+ }
+ var abs2, atan2, cos, max3, min3, sin, sqrt, epsilon3, pi2, halfPi, tau2;
+ var init_math2 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/math.js"() {
+ "use strict";
+ abs2 = Math.abs;
+ atan2 = Math.atan2;
+ cos = Math.cos;
+ max3 = Math.max;
+ min3 = Math.min;
+ sin = Math.sin;
+ sqrt = Math.sqrt;
+ epsilon3 = 1e-12;
+ pi2 = Math.PI;
+ halfPi = pi2 / 2;
+ tau2 = 2 * pi2;
+ __name(acos, "acos");
+ __name(asin, "asin");
}
- setNode(v, value) {
- if (has(this._nodes, v)) {
- if (arguments.length > 1) {
- this._nodes[v] = value;
- }
- return this;
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js
+ function withPath(shape) {
+ let digits = 3;
+ shape.digits = function(_2) {
+ if (!arguments.length) return digits;
+ if (_2 == null) {
+ digits = null;
+ } else {
+ const d2 = Math.floor(_2);
+ if (!(d2 >= 0)) throw new RangeError(`invalid digits: ${_2}`);
+ digits = d2;
}
- this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
- if (this._isCompound) {
- this._parent[v] = GRAPH_NODE;
- this._children[v] = {};
- this._children[GRAPH_NODE][v] = true;
- }
- this._in[v] = {};
- this._preds[v] = {};
- this._out[v] = {};
- this._sucs[v] = {};
- ++this._nodeCount;
- return this;
- }
- node(v) {
- return this._nodes[v];
- }
- hasNode(v) {
- return has(this._nodes, v);
+ return shape;
+ };
+ return () => new Path(digits);
+ }
+ var init_path2 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js"() {
+ "use strict";
+ init_src13();
+ __name(withPath, "withPath");
}
- removeNode(v) {
- var self2 = this;
- if (has(this._nodes, v)) {
- var removeEdge = function(e) {
- self2.removeEdge(self2._edgeObjs[e]);
- };
- delete this._nodes[v];
- if (this._isCompound) {
- this._removeFromParentsChildList(v);
- delete this._parent[v];
- forEach(this.children(v), function(child) {
- self2.setParent(child);
- });
- delete this._children[v];
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/arc.js
+ function arcInnerRadius(d2) {
+ return d2.innerRadius;
+ }
+ function arcOuterRadius(d2) {
+ return d2.outerRadius;
+ }
+ function arcStartAngle(d2) {
+ return d2.startAngle;
+ }
+ function arcEndAngle(d2) {
+ return d2.endAngle;
+ }
+ function arcPadAngle(d2) {
+ return d2 && d2.padAngle;
+ }
+ function intersect(x0, y0, x1, y1, x22, y22, x32, y32) {
+ var x10 = x1 - x0, y10 = y1 - y0, x322 = x32 - x22, y322 = y32 - y22, t4 = y322 * x10 - x322 * y10;
+ if (t4 * t4 < epsilon3) return;
+ t4 = (x322 * (y0 - y22) - y322 * (x0 - x22)) / t4;
+ return [x0 + t4 * x10, y0 + t4 * y10];
+ }
+ function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
+ var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r2 = r1 - rc, D3 = x11 * y10 - x10 * y11, d3 = (dy < 0 ? -1 : 1) * sqrt(max3(0, r2 * r2 * d2 - D3 * D3)), cx0 = (D3 * dy - dx * d3) / d2, cy0 = (-D3 * dx - dy * d3) / d2, cx1 = (D3 * dy + dx * d3) / d2, cy1 = (-D3 * dx + dy * d3) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;
+ if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
+ return {
+ cx: cx0,
+ cy: cy0,
+ x01: -ox,
+ y01: -oy,
+ x11: cx0 * (r1 / r2 - 1),
+ y11: cy0 * (r1 / r2 - 1)
+ };
+ }
+ function arc_default() {
+ var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant_default4(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null, path4 = withPath(arc);
+ function arc() {
+ var buffer, r2, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs2(a1 - a0), cw = a1 > a0;
+ if (!context) context = buffer = path4();
+ if (r1 < r0) r2 = r1, r1 = r0, r0 = r2;
+ if (!(r1 > epsilon3)) context.moveTo(0, 0);
+ else if (da > tau2 - epsilon3) {
+ context.moveTo(r1 * cos(a0), r1 * sin(a0));
+ context.arc(0, 0, r1, a0, a1, !cw);
+ if (r0 > epsilon3) {
+ context.moveTo(r0 * cos(a1), r0 * sin(a1));
+ context.arc(0, 0, r0, a1, a0, cw);
}
- forEach(keys$1(this._in[v]), removeEdge);
- delete this._in[v];
- delete this._preds[v];
- forEach(keys$1(this._out[v]), removeEdge);
- delete this._out[v];
- delete this._sucs[v];
- --this._nodeCount;
- }
- return this;
- }
- setParent(v, parent) {
- if (!this._isCompound) {
- throw new Error("Cannot set parent in a non-compound graph");
- }
- if (isUndefined(parent)) {
- parent = GRAPH_NODE;
} else {
- parent += "";
- for (var ancestor = parent; !isUndefined(ancestor); ancestor = this.parent(ancestor)) {
- if (ancestor === v) {
- throw new Error("Setting " + parent + " as parent of " + v + " would create a cycle");
+ var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon3 && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min3(abs2(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t03, t13;
+ if (rp > epsilon3) {
+ var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));
+ if ((da0 -= p0 * 2) > epsilon3) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;
+ else da0 = 0, a00 = a10 = (a0 + a1) / 2;
+ if ((da1 -= p1 * 2) > epsilon3) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;
+ else da1 = 0, a01 = a11 = (a0 + a1) / 2;
+ }
+ var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);
+ if (rc > epsilon3) {
+ var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;
+ if (da < pi2) {
+ if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {
+ var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
+ rc0 = min3(rc, (r0 - lc) / (kc - 1));
+ rc1 = min3(rc, (r1 - lc) / (kc + 1));
+ } else {
+ rc0 = rc1 = 0;
+ }
}
}
- this.setNode(parent);
+ if (!(da1 > epsilon3)) context.moveTo(x01, y01);
+ else if (rc1 > epsilon3) {
+ t03 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
+ t13 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
+ context.moveTo(t03.cx + t03.x01, t03.cy + t03.y01);
+ if (rc1 < rc) context.arc(t03.cx, t03.cy, rc1, atan2(t03.y01, t03.x01), atan2(t13.y01, t13.x01), !cw);
+ else {
+ context.arc(t03.cx, t03.cy, rc1, atan2(t03.y01, t03.x01), atan2(t03.y11, t03.x11), !cw);
+ context.arc(0, 0, r1, atan2(t03.cy + t03.y11, t03.cx + t03.x11), atan2(t13.cy + t13.y11, t13.cx + t13.x11), !cw);
+ context.arc(t13.cx, t13.cy, rc1, atan2(t13.y11, t13.x11), atan2(t13.y01, t13.x01), !cw);
+ }
+ } else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
+ if (!(r0 > epsilon3) || !(da0 > epsilon3)) context.lineTo(x10, y10);
+ else if (rc0 > epsilon3) {
+ t03 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
+ t13 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
+ context.lineTo(t03.cx + t03.x01, t03.cy + t03.y01);
+ if (rc0 < rc) context.arc(t03.cx, t03.cy, rc0, atan2(t03.y01, t03.x01), atan2(t13.y01, t13.x01), !cw);
+ else {
+ context.arc(t03.cx, t03.cy, rc0, atan2(t03.y01, t03.x01), atan2(t03.y11, t03.x11), !cw);
+ context.arc(0, 0, r0, atan2(t03.cy + t03.y11, t03.cx + t03.x11), atan2(t13.cy + t13.y11, t13.cx + t13.x11), cw);
+ context.arc(t13.cx, t13.cy, rc0, atan2(t13.y11, t13.x11), atan2(t13.y01, t13.x01), !cw);
+ }
+ } else context.arc(0, 0, r0, a10, a00, cw);
}
- this.setNode(v);
- this._removeFromParentsChildList(v);
- this._parent[v] = parent;
- this._children[parent][v] = true;
- return this;
+ context.closePath();
+ if (buffer) return context = null, buffer + "" || null;
}
- _removeFromParentsChildList(v) {
- delete this._children[this._parent[v]][v];
+ __name(arc, "arc");
+ arc.centroid = function() {
+ var r2 = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a2 = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi2 / 2;
+ return [cos(a2) * r2, sin(a2) * r2];
+ };
+ arc.innerRadius = function(_2) {
+ return arguments.length ? (innerRadius = typeof _2 === "function" ? _2 : constant_default4(+_2), arc) : innerRadius;
+ };
+ arc.outerRadius = function(_2) {
+ return arguments.length ? (outerRadius = typeof _2 === "function" ? _2 : constant_default4(+_2), arc) : outerRadius;
+ };
+ arc.cornerRadius = function(_2) {
+ return arguments.length ? (cornerRadius = typeof _2 === "function" ? _2 : constant_default4(+_2), arc) : cornerRadius;
+ };
+ arc.padRadius = function(_2) {
+ return arguments.length ? (padRadius = _2 == null ? null : typeof _2 === "function" ? _2 : constant_default4(+_2), arc) : padRadius;
+ };
+ arc.startAngle = function(_2) {
+ return arguments.length ? (startAngle = typeof _2 === "function" ? _2 : constant_default4(+_2), arc) : startAngle;
+ };
+ arc.endAngle = function(_2) {
+ return arguments.length ? (endAngle = typeof _2 === "function" ? _2 : constant_default4(+_2), arc) : endAngle;
+ };
+ arc.padAngle = function(_2) {
+ return arguments.length ? (padAngle = typeof _2 === "function" ? _2 : constant_default4(+_2), arc) : padAngle;
+ };
+ arc.context = function(_2) {
+ return arguments.length ? (context = _2 == null ? null : _2, arc) : context;
+ };
+ return arc;
+ }
+ var init_arc = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/arc.js"() {
+ "use strict";
+ init_constant5();
+ init_math2();
+ init_path2();
+ __name(arcInnerRadius, "arcInnerRadius");
+ __name(arcOuterRadius, "arcOuterRadius");
+ __name(arcStartAngle, "arcStartAngle");
+ __name(arcEndAngle, "arcEndAngle");
+ __name(arcPadAngle, "arcPadAngle");
+ __name(intersect, "intersect");
+ __name(cornerTangents, "cornerTangents");
+ __name(arc_default, "default");
}
- parent(v) {
- if (this._isCompound) {
- var parent = this._parent[v];
- if (parent !== GRAPH_NODE) {
- return parent;
- }
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js
+ function array_default(x5) {
+ return typeof x5 === "object" && "length" in x5 ? x5 : Array.from(x5);
+ }
+ var slice;
+ var init_array3 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js"() {
+ "use strict";
+ slice = Array.prototype.slice;
+ __name(array_default, "default");
}
- children(v) {
- if (isUndefined(v)) {
- v = GRAPH_NODE;
- }
- if (this._isCompound) {
- var children2 = this._children[v];
- if (children2) {
- return keys$1(children2);
- }
- } else if (v === GRAPH_NODE) {
- return this.nodes();
- } else if (this.hasNode(v)) {
- return [];
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js
+ function Linear(context) {
+ this._context = context;
+ }
+ function linear_default(context) {
+ return new Linear(context);
+ }
+ var init_linear2 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js"() {
+ "use strict";
+ __name(Linear, "Linear");
+ Linear.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x5, y5) : this._context.moveTo(x5, y5);
+ break;
+ case 1:
+ this._point = 2;
+ default:
+ this._context.lineTo(x5, y5);
+ break;
+ }
+ }, "point")
+ };
+ __name(linear_default, "default");
}
- predecessors(v) {
- var predsV = this._preds[v];
- if (predsV) {
- return keys$1(predsV);
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js
+ function x(p3) {
+ return p3[0];
+ }
+ function y(p3) {
+ return p3[1];
+ }
+ var init_point = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js"() {
+ "use strict";
+ __name(x, "x");
+ __name(y, "y");
}
- successors(v) {
- var sucsV = this._sucs[v];
- if (sucsV) {
- return keys$1(sucsV);
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js
+ function line_default(x5, y5) {
+ var defined = constant_default4(true), context = null, curve = linear_default, output2 = null, path4 = withPath(line2);
+ x5 = typeof x5 === "function" ? x5 : x5 === void 0 ? x : constant_default4(x5);
+ y5 = typeof y5 === "function" ? y5 : y5 === void 0 ? y : constant_default4(y5);
+ function line2(data5) {
+ var i2, n2 = (data5 = array_default(data5)).length, d2, defined0 = false, buffer;
+ if (context == null) output2 = curve(buffer = path4());
+ for (i2 = 0; i2 <= n2; ++i2) {
+ if (!(i2 < n2 && defined(d2 = data5[i2], i2, data5)) === defined0) {
+ if (defined0 = !defined0) output2.lineStart();
+ else output2.lineEnd();
+ }
+ if (defined0) output2.point(+x5(d2, i2, data5), +y5(d2, i2, data5));
+ }
+ if (buffer) return output2 = null, buffer + "" || null;
+ }
+ __name(line2, "line");
+ line2.x = function(_2) {
+ return arguments.length ? (x5 = typeof _2 === "function" ? _2 : constant_default4(+_2), line2) : x5;
+ };
+ line2.y = function(_2) {
+ return arguments.length ? (y5 = typeof _2 === "function" ? _2 : constant_default4(+_2), line2) : y5;
+ };
+ line2.defined = function(_2) {
+ return arguments.length ? (defined = typeof _2 === "function" ? _2 : constant_default4(!!_2), line2) : defined;
+ };
+ line2.curve = function(_2) {
+ return arguments.length ? (curve = _2, context != null && (output2 = curve(context)), line2) : curve;
+ };
+ line2.context = function(_2) {
+ return arguments.length ? (_2 == null ? context = output2 = null : output2 = curve(context = _2), line2) : context;
+ };
+ return line2;
+ }
+ var init_line = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js"() {
+ "use strict";
+ init_array3();
+ init_constant5();
+ init_linear2();
+ init_path2();
+ init_point();
+ __name(line_default, "default");
}
- neighbors(v) {
- var preds = this.predecessors(v);
- if (preds) {
- return union$1(preds, this.successors(v));
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/descending.js
+ function descending_default(a2, b2) {
+ return b2 < a2 ? -1 : b2 > a2 ? 1 : b2 >= a2 ? 0 : NaN;
+ }
+ var init_descending2 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/descending.js"() {
+ "use strict";
+ __name(descending_default, "default");
}
- isLeaf(v) {
- var neighbors;
- if (this.isDirected()) {
- neighbors = this.successors(v);
- } else {
- neighbors = this.neighbors(v);
- }
- return neighbors.length === 0;
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/identity.js
+ function identity_default3(d2) {
+ return d2;
+ }
+ var init_identity3 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/identity.js"() {
+ "use strict";
+ __name(identity_default3, "default");
}
- filterNodes(filter2) {
- var copy2 = new this.constructor({
- directed: this._isDirected,
- multigraph: this._isMultigraph,
- compound: this._isCompound
- });
- copy2.setGraph(this.graph());
- var self2 = this;
- forEach(this._nodes, function(value, v) {
- if (filter2(v)) {
- copy2.setNode(v, value);
- }
- });
- forEach(this._edgeObjs, function(e) {
- if (copy2.hasNode(e.v) && copy2.hasNode(e.w)) {
- copy2.setEdge(e, self2.edge(e));
- }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/pie.js
+ function pie_default() {
+ var value2 = identity_default3, sortValues = descending_default, sort3 = null, startAngle = constant_default4(0), endAngle = constant_default4(tau2), padAngle = constant_default4(0);
+ function pie2(data5) {
+ var i2, n2 = (data5 = array_default(data5)).length, j2, k2, sum2 = 0, index = new Array(n2), arcs = new Array(n2), a0 = +startAngle.apply(this, arguments), da = Math.min(tau2, Math.max(-tau2, endAngle.apply(this, arguments) - a0)), a1, p3 = Math.min(Math.abs(da) / n2, padAngle.apply(this, arguments)), pa = p3 * (da < 0 ? -1 : 1), v3;
+ for (i2 = 0; i2 < n2; ++i2) {
+ if ((v3 = arcs[index[i2] = i2] = +value2(data5[i2], i2, data5)) > 0) {
+ sum2 += v3;
+ }
+ }
+ if (sortValues != null) index.sort(function(i3, j3) {
+ return sortValues(arcs[i3], arcs[j3]);
});
- var parents2 = {};
- function findParent(v) {
- var parent = self2.parent(v);
- if (parent === void 0 || copy2.hasNode(parent)) {
- parents2[v] = parent;
- return parent;
- } else if (parent in parents2) {
- return parents2[parent];
- } else {
- return findParent(parent);
- }
- }
- if (this._isCompound) {
- forEach(copy2.nodes(), function(v) {
- copy2.setParent(v, findParent(v));
- });
- }
- return copy2;
- }
- /* === Edge functions ========== */
- setDefaultEdgeLabel(newDefault) {
- if (!isFunction(newDefault)) {
- newDefault = constant(newDefault);
- }
- this._defaultEdgeLabelFn = newDefault;
- return this;
- }
- edgeCount() {
- return this._edgeCount;
- }
- edges() {
- return values(this._edgeObjs);
- }
- setPath(vs, value) {
- var self2 = this;
- var args = arguments;
- reduce(vs, function(v, w2) {
- if (args.length > 1) {
- self2.setEdge(v, w2, value);
- } else {
- self2.setEdge(v, w2);
- }
- return w2;
+ else if (sort3 != null) index.sort(function(i3, j3) {
+ return sort3(data5[i3], data5[j3]);
});
- return this;
- }
- /*
- * setEdge(v, w, [value, [name]])
- * setEdge({ v, w, [name] }, [value])
- */
- setEdge() {
- var v, w2, name2, value;
- var valueSpecified = false;
- var arg0 = arguments[0];
- if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
- v = arg0.v;
- w2 = arg0.w;
- name2 = arg0.name;
- if (arguments.length === 2) {
- value = arguments[1];
- valueSpecified = true;
- }
- } else {
- v = arg0;
- w2 = arguments[1];
- name2 = arguments[3];
- if (arguments.length > 2) {
- value = arguments[2];
- valueSpecified = true;
- }
- }
- v = "" + v;
- w2 = "" + w2;
- if (!isUndefined(name2)) {
- name2 = "" + name2;
- }
- var e = edgeArgsToId(this._isDirected, v, w2, name2);
- if (has(this._edgeLabels, e)) {
- if (valueSpecified) {
- this._edgeLabels[e] = value;
- }
- return this;
- }
- if (!isUndefined(name2) && !this._isMultigraph) {
- throw new Error("Cannot set a named edge when isMultigraph = false");
- }
- this.setNode(v);
- this.setNode(w2);
- this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w2, name2);
- var edgeObj = edgeArgsToObj(this._isDirected, v, w2, name2);
- v = edgeObj.v;
- w2 = edgeObj.w;
- Object.freeze(edgeObj);
- this._edgeObjs[e] = edgeObj;
- incrementOrInitEntry(this._preds[w2], v);
- incrementOrInitEntry(this._sucs[v], w2);
- this._in[w2][e] = edgeObj;
- this._out[v][e] = edgeObj;
- this._edgeCount++;
- return this;
- }
- edge(v, w2, name2) {
- var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w2, name2);
- return this._edgeLabels[e];
- }
- hasEdge(v, w2, name2) {
- var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w2, name2);
- return has(this._edgeLabels, e);
- }
- removeEdge(v, w2, name2) {
- var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w2, name2);
- var edge = this._edgeObjs[e];
- if (edge) {
- v = edge.v;
- w2 = edge.w;
- delete this._edgeLabels[e];
- delete this._edgeObjs[e];
- decrementOrRemoveEntry(this._preds[w2], v);
- decrementOrRemoveEntry(this._sucs[v], w2);
- delete this._in[w2][e];
- delete this._out[v][e];
- this._edgeCount--;
+ for (i2 = 0, k2 = sum2 ? (da - n2 * pa) / sum2 : 0; i2 < n2; ++i2, a0 = a1) {
+ j2 = index[i2], v3 = arcs[j2], a1 = a0 + (v3 > 0 ? v3 * k2 : 0) + pa, arcs[j2] = {
+ data: data5[j2],
+ index: i2,
+ value: v3,
+ startAngle: a0,
+ endAngle: a1,
+ padAngle: p3
+ };
}
- return this;
+ return arcs;
}
- inEdges(v, u2) {
- var inV = this._in[v];
- if (inV) {
- var edges2 = values(inV);
- if (!u2) {
- return edges2;
- }
- return filter(edges2, function(edge) {
- return edge.v === u2;
- });
- }
+ __name(pie2, "pie");
+ pie2.value = function(_2) {
+ return arguments.length ? (value2 = typeof _2 === "function" ? _2 : constant_default4(+_2), pie2) : value2;
+ };
+ pie2.sortValues = function(_2) {
+ return arguments.length ? (sortValues = _2, sort3 = null, pie2) : sortValues;
+ };
+ pie2.sort = function(_2) {
+ return arguments.length ? (sort3 = _2, sortValues = null, pie2) : sort3;
+ };
+ pie2.startAngle = function(_2) {
+ return arguments.length ? (startAngle = typeof _2 === "function" ? _2 : constant_default4(+_2), pie2) : startAngle;
+ };
+ pie2.endAngle = function(_2) {
+ return arguments.length ? (endAngle = typeof _2 === "function" ? _2 : constant_default4(+_2), pie2) : endAngle;
+ };
+ pie2.padAngle = function(_2) {
+ return arguments.length ? (padAngle = typeof _2 === "function" ? _2 : constant_default4(+_2), pie2) : padAngle;
+ };
+ return pie2;
+ }
+ var init_pie = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/pie.js"() {
+ "use strict";
+ init_array3();
+ init_constant5();
+ init_descending2();
+ init_identity3();
+ init_math2();
+ __name(pie_default, "default");
}
- outEdges(v, w2) {
- var outV = this._out[v];
- if (outV) {
- var edges2 = values(outV);
- if (!w2) {
- return edges2;
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js
+ function bumpX(context) {
+ return new Bump(context, true);
+ }
+ function bumpY(context) {
+ return new Bump(context, false);
+ }
+ var Bump;
+ var init_bump = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js"() {
+ "use strict";
+ Bump = class {
+ static {
+ __name(this, "Bump");
+ }
+ constructor(context, x5) {
+ this._context = context;
+ this._x = x5;
+ }
+ areaStart() {
+ this._line = 0;
+ }
+ areaEnd() {
+ this._line = NaN;
+ }
+ lineStart() {
+ this._point = 0;
+ }
+ lineEnd() {
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
+ this._line = 1 - this._line;
+ }
+ point(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0: {
+ this._point = 1;
+ if (this._line) this._context.lineTo(x5, y5);
+ else this._context.moveTo(x5, y5);
+ break;
+ }
+ case 1:
+ this._point = 2;
+ default: {
+ if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x5) / 2, this._y0, this._x0, y5, x5, y5);
+ else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y5) / 2, x5, this._y0, x5, y5);
+ break;
+ }
+ }
+ this._x0 = x5, this._y0 = y5;
}
- return filter(edges2, function(edge) {
- return edge.w === w2;
- });
- }
- }
- nodeEdges(v, w2) {
- var inEdges = this.inEdges(v, w2);
- if (inEdges) {
- return inEdges.concat(this.outEdges(v, w2));
- }
+ };
+ __name(bumpX, "bumpX");
+ __name(bumpY, "bumpY");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js
+ function noop_default() {
}
- Graph.prototype._nodeCount = 0;
- Graph.prototype._edgeCount = 0;
- function incrementOrInitEntry(map2, k) {
- if (map2[k]) {
- map2[k]++;
- } else {
- map2[k] = 1;
+ var init_noop = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js"() {
+ "use strict";
+ __name(noop_default, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js
+ function point2(that, x5, y5) {
+ that._context.bezierCurveTo(
+ (2 * that._x0 + that._x1) / 3,
+ (2 * that._y0 + that._y1) / 3,
+ (that._x0 + 2 * that._x1) / 3,
+ (that._y0 + 2 * that._y1) / 3,
+ (that._x0 + 4 * that._x1 + x5) / 6,
+ (that._y0 + 4 * that._y1 + y5) / 6
+ );
}
- function decrementOrRemoveEntry(map2, k) {
- if (!--map2[k]) {
- delete map2[k];
- }
+ function Basis(context) {
+ this._context = context;
}
- function edgeArgsToId(isDirected, v_, w_, name2) {
- var v = "" + v_;
- var w2 = "" + w_;
- if (!isDirected && v > w2) {
- var tmp = v;
- v = w2;
- w2 = tmp;
- }
- return v + EDGE_KEY_DELIM + w2 + EDGE_KEY_DELIM + (isUndefined(name2) ? DEFAULT_EDGE_NAME : name2);
+ function basis_default2(context) {
+ return new Basis(context);
}
- function edgeArgsToObj(isDirected, v_, w_, name2) {
- var v = "" + v_;
- var w2 = "" + w_;
- if (!isDirected && v > w2) {
- var tmp = v;
- v = w2;
- w2 = tmp;
- }
- var edgeObj = { v, w: w2 };
- if (name2) {
- edgeObj.name = name2;
+ var init_basis2 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js"() {
+ "use strict";
+ __name(point2, "point");
+ __name(Basis, "Basis");
+ Basis.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._y0 = this._y1 = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ switch (this._point) {
+ case 3:
+ point2(this, this._x1, this._y1);
+ case 2:
+ this._context.lineTo(this._x1, this._y1);
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x5, y5) : this._context.moveTo(x5, y5);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
+ default:
+ point2(this, x5, y5);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x5;
+ this._y0 = this._y1, this._y1 = y5;
+ }, "point")
+ };
+ __name(basis_default2, "default");
}
- return edgeObj;
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js
+ function BasisClosed(context) {
+ this._context = context;
}
- function edgeObjToId(isDirected, edgeObj) {
- return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
+ function basisClosed_default2(context) {
+ return new BasisClosed(context);
}
- class List {
- constructor() {
- var sentinel = {};
- sentinel._next = sentinel._prev = sentinel;
- this._sentinel = sentinel;
- }
- dequeue() {
- var sentinel = this._sentinel;
- var entry = sentinel._prev;
- if (entry !== sentinel) {
- unlink(entry);
- return entry;
- }
- }
- enqueue(entry) {
- var sentinel = this._sentinel;
- if (entry._prev && entry._next) {
- unlink(entry);
- }
- entry._next = sentinel._next;
- sentinel._next._prev = entry;
- sentinel._next = entry;
- entry._prev = sentinel;
- }
- toString() {
- var strs = [];
- var sentinel = this._sentinel;
- var curr = sentinel._prev;
- while (curr !== sentinel) {
- strs.push(JSON.stringify(curr, filterOutLinks));
- curr = curr._prev;
- }
- return "[" + strs.join(", ") + "]";
+ var init_basisClosed2 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js"() {
+ "use strict";
+ init_noop();
+ init_basis2();
+ __name(BasisClosed, "BasisClosed");
+ BasisClosed.prototype = {
+ areaStart: noop_default,
+ areaEnd: noop_default,
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ switch (this._point) {
+ case 1: {
+ this._context.moveTo(this._x2, this._y2);
+ this._context.closePath();
+ break;
+ }
+ case 2: {
+ this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
+ this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
+ this._context.closePath();
+ break;
+ }
+ case 3: {
+ this.point(this._x2, this._y2);
+ this.point(this._x3, this._y3);
+ this.point(this._x4, this._y4);
+ break;
+ }
+ }
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._x2 = x5, this._y2 = y5;
+ break;
+ case 1:
+ this._point = 2;
+ this._x3 = x5, this._y3 = y5;
+ break;
+ case 2:
+ this._point = 3;
+ this._x4 = x5, this._y4 = y5;
+ this._context.moveTo((this._x0 + 4 * this._x1 + x5) / 6, (this._y0 + 4 * this._y1 + y5) / 6);
+ break;
+ default:
+ point2(this, x5, y5);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x5;
+ this._y0 = this._y1, this._y1 = y5;
+ }, "point")
+ };
+ __name(basisClosed_default2, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js
+ function BasisOpen(context) {
+ this._context = context;
}
- function unlink(entry) {
- entry._prev._next = entry._next;
- entry._next._prev = entry._prev;
- delete entry._next;
- delete entry._prev;
+ function basisOpen_default(context) {
+ return new BasisOpen(context);
}
- function filterOutLinks(k, v) {
- if (k !== "_next" && k !== "_prev") {
- return v;
+ var init_basisOpen = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js"() {
+ "use strict";
+ init_basis2();
+ __name(BasisOpen, "BasisOpen");
+ BasisOpen.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._y0 = this._y1 = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ var x0 = (this._x0 + 4 * this._x1 + x5) / 6, y0 = (this._y0 + 4 * this._y1 + y5) / 6;
+ this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ point2(this, x5, y5);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x5;
+ this._y0 = this._y1, this._y1 = y5;
+ }, "point")
+ };
+ __name(basisOpen_default, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bundle.js
+ function Bundle(context, beta) {
+ this._basis = new Basis(context);
+ this._beta = beta;
}
- var DEFAULT_WEIGHT_FN = constant(1);
- function greedyFAS(g, weightFn) {
- if (g.nodeCount() <= 1) {
- return [];
+ var bundle_default;
+ var init_bundle = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bundle.js"() {
+ "use strict";
+ init_basis2();
+ __name(Bundle, "Bundle");
+ Bundle.prototype = {
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x = [];
+ this._y = [];
+ this._basis.lineStart();
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ var x5 = this._x, y5 = this._y, j2 = x5.length - 1;
+ if (j2 > 0) {
+ var x0 = x5[0], y0 = y5[0], dx = x5[j2] - x0, dy = y5[j2] - y0, i2 = -1, t4;
+ while (++i2 <= j2) {
+ t4 = i2 / j2;
+ this._basis.point(
+ this._beta * x5[i2] + (1 - this._beta) * (x0 + t4 * dx),
+ this._beta * y5[i2] + (1 - this._beta) * (y0 + t4 * dy)
+ );
+ }
+ }
+ this._x = this._y = null;
+ this._basis.lineEnd();
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ this._x.push(+x5);
+ this._y.push(+y5);
+ }, "point")
+ };
+ bundle_default = (/* @__PURE__ */ __name(function custom(beta) {
+ function bundle(context) {
+ return beta === 1 ? new Basis(context) : new Bundle(context, beta);
+ }
+ __name(bundle, "bundle");
+ bundle.beta = function(beta2) {
+ return custom(+beta2);
+ };
+ return bundle;
+ }, "custom"))(0.85);
}
- var state2 = buildState(g, weightFn || DEFAULT_WEIGHT_FN);
- var results = doGreedyFAS(state2.graph, state2.buckets, state2.zeroIdx);
- return flatten(
- map(results, function(e) {
- return g.outEdges(e.v, e.w);
- })
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinal.js
+ function point3(that, x5, y5) {
+ that._context.bezierCurveTo(
+ that._x1 + that._k * (that._x2 - that._x0),
+ that._y1 + that._k * (that._y2 - that._y0),
+ that._x2 + that._k * (that._x1 - x5),
+ that._y2 + that._k * (that._y1 - y5),
+ that._x2,
+ that._y2
);
}
- function doGreedyFAS(g, buckets, zeroIdx) {
- var results = [];
- var sources = buckets[buckets.length - 1];
- var sinks = buckets[0];
- var entry;
- while (g.nodeCount()) {
- while (entry = sinks.dequeue()) {
- removeNode(g, buckets, zeroIdx, entry);
- }
- while (entry = sources.dequeue()) {
- removeNode(g, buckets, zeroIdx, entry);
- }
- if (g.nodeCount()) {
- for (var i2 = buckets.length - 2; i2 > 0; --i2) {
- entry = buckets[i2].dequeue();
- if (entry) {
- results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));
- break;
+ function Cardinal(context, tension) {
+ this._context = context;
+ this._k = (1 - tension) / 6;
+ }
+ var cardinal_default;
+ var init_cardinal = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinal.js"() {
+ "use strict";
+ __name(point3, "point");
+ __name(Cardinal, "Cardinal");
+ Cardinal.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ switch (this._point) {
+ case 2:
+ this._context.lineTo(this._x2, this._y2);
+ break;
+ case 3:
+ point3(this, this._x1, this._y1);
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x5, y5) : this._context.moveTo(x5, y5);
+ break;
+ case 1:
+ this._point = 2;
+ this._x1 = x5, this._y1 = y5;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ point3(this, x5, y5);
+ break;
}
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x5;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y5;
+ }, "point")
+ };
+ cardinal_default = (/* @__PURE__ */ __name(function custom2(tension) {
+ function cardinal(context) {
+ return new Cardinal(context, tension);
}
- }
+ __name(cardinal, "cardinal");
+ cardinal.tension = function(tension2) {
+ return custom2(+tension2);
+ };
+ return cardinal;
+ }, "custom"))(0);
}
- return results;
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalClosed.js
+ function CardinalClosed(context, tension) {
+ this._context = context;
+ this._k = (1 - tension) / 6;
}
- function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
- var results = collectPredecessors ? [] : void 0;
- forEach(g.inEdges(entry.v), function(edge) {
- var weight = g.edge(edge);
- var uEntry = g.node(edge.v);
- if (collectPredecessors) {
- results.push({ v: edge.v, w: edge.w });
- }
- uEntry.out -= weight;
- assignBucket(buckets, zeroIdx, uEntry);
- });
- forEach(g.outEdges(entry.v), function(edge) {
- var weight = g.edge(edge);
- var w2 = edge.w;
- var wEntry = g.node(w2);
- wEntry["in"] -= weight;
- assignBucket(buckets, zeroIdx, wEntry);
- });
- g.removeNode(entry.v);
- return results;
- }
- function buildState(g, weightFn) {
- var fasGraph = new Graph();
- var maxIn = 0;
- var maxOut = 0;
- forEach(g.nodes(), function(v) {
- fasGraph.setNode(v, { v, in: 0, out: 0 });
- });
- forEach(g.edges(), function(e) {
- var prevWeight = fasGraph.edge(e.v, e.w) || 0;
- var weight = weightFn(e);
- var edgeWeight = prevWeight + weight;
- fasGraph.setEdge(e.v, e.w, edgeWeight);
- maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);
- maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
- });
- var buckets = range$1(maxOut + maxIn + 3).map(function() {
- return new List();
- });
- var zeroIdx = maxIn + 1;
- forEach(fasGraph.nodes(), function(v) {
- assignBucket(buckets, zeroIdx, fasGraph.node(v));
- });
- return { graph: fasGraph, buckets, zeroIdx };
- }
- function assignBucket(buckets, zeroIdx, entry) {
- if (!entry.out) {
- buckets[0].enqueue(entry);
- } else if (!entry["in"]) {
- buckets[buckets.length - 1].enqueue(entry);
- } else {
- buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
- }
- }
- function run$2(g) {
- var fas = g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g);
- forEach(fas, function(e) {
- var label = g.edge(e);
- g.removeEdge(e);
- label.forwardName = e.name;
- label.reversed = true;
- g.setEdge(e.w, e.v, label, uniqueId("rev"));
- });
- function weightFn(g2) {
- return function(e) {
- return g2.edge(e).weight;
+ var cardinalClosed_default;
+ var init_cardinalClosed = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalClosed.js"() {
+ "use strict";
+ init_noop();
+ init_cardinal();
+ __name(CardinalClosed, "CardinalClosed");
+ CardinalClosed.prototype = {
+ areaStart: noop_default,
+ areaEnd: noop_default,
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ switch (this._point) {
+ case 1: {
+ this._context.moveTo(this._x3, this._y3);
+ this._context.closePath();
+ break;
+ }
+ case 2: {
+ this._context.lineTo(this._x3, this._y3);
+ this._context.closePath();
+ break;
+ }
+ case 3: {
+ this.point(this._x3, this._y3);
+ this.point(this._x4, this._y4);
+ this.point(this._x5, this._y5);
+ break;
+ }
+ }
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._x3 = x5, this._y3 = y5;
+ break;
+ case 1:
+ this._point = 2;
+ this._context.moveTo(this._x4 = x5, this._y4 = y5);
+ break;
+ case 2:
+ this._point = 3;
+ this._x5 = x5, this._y5 = y5;
+ break;
+ default:
+ point3(this, x5, y5);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x5;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y5;
+ }, "point")
};
+ cardinalClosed_default = (/* @__PURE__ */ __name(function custom3(tension) {
+ function cardinal(context) {
+ return new CardinalClosed(context, tension);
+ }
+ __name(cardinal, "cardinal");
+ cardinal.tension = function(tension2) {
+ return custom3(+tension2);
+ };
+ return cardinal;
+ }, "custom"))(0);
}
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalOpen.js
+ function CardinalOpen(context, tension) {
+ this._context = context;
+ this._k = (1 - tension) / 6;
}
- function dfsFAS(g) {
- var fas = [];
- var stack = {};
- var visited = {};
- function dfs2(v) {
- if (has(visited, v)) {
- return;
- }
- visited[v] = true;
- stack[v] = true;
- forEach(g.outEdges(v), function(e) {
- if (has(stack, e.w)) {
- fas.push(e);
- } else {
- dfs2(e.w);
+ var cardinalOpen_default;
+ var init_cardinalOpen = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalOpen.js"() {
+ "use strict";
+ init_cardinal();
+ __name(CardinalOpen, "CardinalOpen");
+ CardinalOpen.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ point3(this, x5, y5);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x5;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y5;
+ }, "point")
+ };
+ cardinalOpen_default = (/* @__PURE__ */ __name(function custom4(tension) {
+ function cardinal(context) {
+ return new CardinalOpen(context, tension);
}
- });
- delete stack[v];
+ __name(cardinal, "cardinal");
+ cardinal.tension = function(tension2) {
+ return custom4(+tension2);
+ };
+ return cardinal;
+ }, "custom"))(0);
}
- forEach(g.nodes(), dfs2);
- return fas;
- }
- function undo$2(g) {
- forEach(g.edges(), function(e) {
- var label = g.edge(e);
- if (label.reversed) {
- g.removeEdge(e);
- var forwardName = label.forwardName;
- delete label.reversed;
- delete label.forwardName;
- g.setEdge(e.w, e.v, label, forwardName);
- }
- });
- }
- function addDummyNode(g, type2, attrs, name2) {
- var v;
- do {
- v = uniqueId(name2);
- } while (g.hasNode(v));
- attrs.dummy = type2;
- g.setNode(v, attrs);
- return v;
- }
- function simplify(g) {
- var simplified = new Graph().setGraph(g.graph());
- forEach(g.nodes(), function(v) {
- simplified.setNode(v, g.node(v));
- });
- forEach(g.edges(), function(e) {
- var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };
- var label = g.edge(e);
- simplified.setEdge(e.v, e.w, {
- weight: simpleLabel.weight + label.weight,
- minlen: Math.max(simpleLabel.minlen, label.minlen)
- });
- });
- return simplified;
- }
- function asNonCompoundGraph(g) {
- var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());
- forEach(g.nodes(), function(v) {
- if (!g.children(v).length) {
- simplified.setNode(v, g.node(v));
- }
- });
- forEach(g.edges(), function(e) {
- simplified.setEdge(e, g.edge(e));
- });
- return simplified;
- }
- function intersectRect$3(rect2, point2) {
- var x2 = rect2.x;
- var y2 = rect2.y;
- var dx = point2.x - x2;
- var dy = point2.y - y2;
- var w2 = rect2.width / 2;
- var h = rect2.height / 2;
- if (!dx && !dy) {
- throw new Error("Not possible to find intersection inside of the rectangle");
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRom.js
+ function point4(that, x5, y5) {
+ var x1 = that._x1, y1 = that._y1, x22 = that._x2, y22 = that._y2;
+ if (that._l01_a > epsilon3) {
+ var a2 = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n2 = 3 * that._l01_a * (that._l01_a + that._l12_a);
+ x1 = (x1 * a2 - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n2;
+ y1 = (y1 * a2 - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n2;
}
- var sx, sy;
- if (Math.abs(dy) * w2 > Math.abs(dx) * h) {
- if (dy < 0) {
- h = -h;
- }
- sx = h * dx / dy;
- sy = h;
- } else {
- if (dx < 0) {
- w2 = -w2;
- }
- sx = w2;
- sy = w2 * dy / dx;
+ if (that._l23_a > epsilon3) {
+ var b2 = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m2 = 3 * that._l23_a * (that._l23_a + that._l12_a);
+ x22 = (x22 * b2 + that._x1 * that._l23_2a - x5 * that._l12_2a) / m2;
+ y22 = (y22 * b2 + that._y1 * that._l23_2a - y5 * that._l12_2a) / m2;
}
- return { x: x2 + sx, y: y2 + sy };
- }
- function buildLayerMatrix(g) {
- var layering = map(range$1(maxRank(g) + 1), function() {
- return [];
- });
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v);
- var rank2 = node2.rank;
- if (!isUndefined(rank2)) {
- layering[rank2][node2.order] = v;
- }
- });
- return layering;
- }
- function normalizeRanks(g) {
- var min$12 = min(
- map(g.nodes(), function(v) {
- return g.node(v).rank;
- })
- );
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v);
- if (has(node2, "rank")) {
- node2.rank -= min$12;
- }
- });
+ that._context.bezierCurveTo(x1, y1, x22, y22, that._x2, that._y2);
}
- function removeEmptyRanks(g) {
- var offset = min(
- map(g.nodes(), function(v) {
- return g.node(v).rank;
- })
- );
- var layers = [];
- forEach(g.nodes(), function(v) {
- var rank2 = g.node(v).rank - offset;
- if (!layers[rank2]) {
- layers[rank2] = [];
- }
- layers[rank2].push(v);
- });
- var delta = 0;
- var nodeRankFactor = g.graph().nodeRankFactor;
- forEach(layers, function(vs, i2) {
- if (isUndefined(vs) && i2 % nodeRankFactor !== 0) {
- --delta;
- } else if (delta) {
- forEach(vs, function(v) {
- g.node(v).rank += delta;
- });
- }
- });
+ function CatmullRom(context, alpha) {
+ this._context = context;
+ this._alpha = alpha;
}
- function addBorderNode$1(g, prefix, rank2, order2) {
- var node2 = {
- width: 0,
- height: 0
- };
- if (arguments.length >= 4) {
- node2.rank = rank2;
- node2.order = order2;
+ var catmullRom_default;
+ var init_catmullRom = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRom.js"() {
+ "use strict";
+ init_math2();
+ init_cardinal();
+ __name(point4, "point");
+ __name(CatmullRom, "CatmullRom");
+ CatmullRom.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
+ this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ switch (this._point) {
+ case 2:
+ this._context.lineTo(this._x2, this._y2);
+ break;
+ case 3:
+ this.point(this._x2, this._y2);
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ if (this._point) {
+ var x23 = this._x2 - x5, y23 = this._y2 - y5;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x5, y5) : this._context.moveTo(x5, y5);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ point4(this, x5, y5);
+ break;
+ }
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a;
+ this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x5;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y5;
+ }, "point")
+ };
+ catmullRom_default = (/* @__PURE__ */ __name(function custom5(alpha) {
+ function catmullRom(context) {
+ return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
+ }
+ __name(catmullRom, "catmullRom");
+ catmullRom.alpha = function(alpha2) {
+ return custom5(+alpha2);
+ };
+ return catmullRom;
+ }, "custom"))(0.5);
}
- return addDummyNode(g, "border", node2, prefix);
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomClosed.js
+ function CatmullRomClosed(context, alpha) {
+ this._context = context;
+ this._alpha = alpha;
}
- function maxRank(g) {
- return max(
- map(g.nodes(), function(v) {
- var rank2 = g.node(v).rank;
- if (!isUndefined(rank2)) {
- return rank2;
+ var catmullRomClosed_default;
+ var init_catmullRomClosed = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomClosed.js"() {
+ "use strict";
+ init_cardinalClosed();
+ init_noop();
+ init_catmullRom();
+ __name(CatmullRomClosed, "CatmullRomClosed");
+ CatmullRomClosed.prototype = {
+ areaStart: noop_default,
+ areaEnd: noop_default,
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
+ this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ switch (this._point) {
+ case 1: {
+ this._context.moveTo(this._x3, this._y3);
+ this._context.closePath();
+ break;
+ }
+ case 2: {
+ this._context.lineTo(this._x3, this._y3);
+ this._context.closePath();
+ break;
+ }
+ case 3: {
+ this.point(this._x3, this._y3);
+ this.point(this._x4, this._y4);
+ this.point(this._x5, this._y5);
+ break;
+ }
+ }
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ if (this._point) {
+ var x23 = this._x2 - x5, y23 = this._y2 - y5;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._x3 = x5, this._y3 = y5;
+ break;
+ case 1:
+ this._point = 2;
+ this._context.moveTo(this._x4 = x5, this._y4 = y5);
+ break;
+ case 2:
+ this._point = 3;
+ this._x5 = x5, this._y5 = y5;
+ break;
+ default:
+ point4(this, x5, y5);
+ break;
+ }
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a;
+ this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x5;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y5;
+ }, "point")
+ };
+ catmullRomClosed_default = (/* @__PURE__ */ __name(function custom6(alpha) {
+ function catmullRom(context) {
+ return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
}
- })
- );
- }
- function partition(collection, fn) {
- var result = { lhs: [], rhs: [] };
- forEach(collection, function(value) {
- if (fn(value)) {
- result.lhs.push(value);
- } else {
- result.rhs.push(value);
- }
- });
- return result;
- }
- function time(name2, fn) {
- var start2 = now$1();
- try {
- return fn();
- } finally {
- console.log(name2 + " time: " + (now$1() - start2) + "ms");
+ __name(catmullRom, "catmullRom");
+ catmullRom.alpha = function(alpha2) {
+ return custom6(+alpha2);
+ };
+ return catmullRom;
+ }, "custom"))(0.5);
}
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomOpen.js
+ function CatmullRomOpen(context, alpha) {
+ this._context = context;
+ this._alpha = alpha;
}
- function notime(name2, fn) {
- return fn();
- }
- function addBorderSegments(g) {
- function dfs2(v) {
- var children2 = g.children(v);
- var node2 = g.node(v);
- if (children2.length) {
- forEach(children2, dfs2);
- }
- if (has(node2, "minRank")) {
- node2.borderLeft = [];
- node2.borderRight = [];
- for (var rank2 = node2.minRank, maxRank2 = node2.maxRank + 1; rank2 < maxRank2; ++rank2) {
- addBorderNode(g, "borderLeft", "_bl", v, node2, rank2);
- addBorderNode(g, "borderRight", "_br", v, node2, rank2);
+ var catmullRomOpen_default;
+ var init_catmullRomOpen = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomOpen.js"() {
+ "use strict";
+ init_cardinalOpen();
+ init_catmullRom();
+ __name(CatmullRomOpen, "CatmullRomOpen");
+ CatmullRomOpen.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
+ this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ if (this._point) {
+ var x23 = this._x2 - x5, y23 = this._y2 - y5;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ point4(this, x5, y5);
+ break;
+ }
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a;
+ this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = x5;
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y5;
+ }, "point")
+ };
+ catmullRomOpen_default = (/* @__PURE__ */ __name(function custom7(alpha) {
+ function catmullRom(context) {
+ return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
}
- }
+ __name(catmullRom, "catmullRom");
+ catmullRom.alpha = function(alpha2) {
+ return custom7(+alpha2);
+ };
+ return catmullRom;
+ }, "custom"))(0.5);
}
- forEach(g.children(), dfs2);
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js
+ function LinearClosed(context) {
+ this._context = context;
}
- function addBorderNode(g, prop, prefix, sg, sgNode, rank2) {
- var label = { width: 0, height: 0, rank: rank2, borderType: prop };
- var prev2 = sgNode[prop][rank2 - 1];
- var curr = addDummyNode(g, "border", label, prefix);
- sgNode[prop][rank2] = curr;
- g.setParent(curr, sg);
- if (prev2) {
- g.setEdge(prev2, curr, { weight: 1 });
- }
+ function linearClosed_default(context) {
+ return new LinearClosed(context);
}
- function adjust(g) {
- var rankDir = g.graph().rankdir.toLowerCase();
- if (rankDir === "lr" || rankDir === "rl") {
- swapWidthHeight(g);
+ var init_linearClosed = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js"() {
+ "use strict";
+ init_noop();
+ __name(LinearClosed, "LinearClosed");
+ LinearClosed.prototype = {
+ areaStart: noop_default,
+ areaEnd: noop_default,
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ if (this._point) this._context.closePath();
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ if (this._point) this._context.lineTo(x5, y5);
+ else this._point = 1, this._context.moveTo(x5, y5);
+ }, "point")
+ };
+ __name(linearClosed_default, "default");
}
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js
+ function sign(x5) {
+ return x5 < 0 ? -1 : 1;
}
- function undo$1(g) {
- var rankDir = g.graph().rankdir.toLowerCase();
- if (rankDir === "bt" || rankDir === "rl") {
- reverseY(g);
- }
- if (rankDir === "lr" || rankDir === "rl") {
- swapXY(g);
- swapWidthHeight(g);
- }
+ function slope3(that, x22, y22) {
+ var h0 = that._x1 - that._x0, h1 = x22 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y22 - that._y1) / (h1 || h0 < 0 && -0), p3 = (s0 * h1 + s1 * h0) / (h0 + h1);
+ return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p3)) || 0;
}
- function swapWidthHeight(g) {
- forEach(g.nodes(), function(v) {
- swapWidthHeightOne(g.node(v));
- });
- forEach(g.edges(), function(e) {
- swapWidthHeightOne(g.edge(e));
- });
+ function slope2(that, t4) {
+ var h2 = that._x1 - that._x0;
+ return h2 ? (3 * (that._y1 - that._y0) / h2 - t4) / 2 : t4;
}
- function swapWidthHeightOne(attrs) {
- var w2 = attrs.width;
- attrs.width = attrs.height;
- attrs.height = w2;
+ function point5(that, t03, t13) {
+ var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3;
+ that._context.bezierCurveTo(x0 + dx, y0 + dx * t03, x1 - dx, y1 - dx * t13, x1, y1);
}
- function reverseY(g) {
- forEach(g.nodes(), function(v) {
- reverseYOne(g.node(v));
- });
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- forEach(edge.points, reverseYOne);
- if (has(edge, "y")) {
- reverseYOne(edge);
- }
- });
+ function MonotoneX(context) {
+ this._context = context;
}
- function reverseYOne(attrs) {
- attrs.y = -attrs.y;
+ function MonotoneY(context) {
+ this._context = new ReflectContext(context);
}
- function swapXY(g) {
- forEach(g.nodes(), function(v) {
- swapXYOne(g.node(v));
- });
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- forEach(edge.points, swapXYOne);
- if (has(edge, "x")) {
- swapXYOne(edge);
- }
- });
+ function ReflectContext(context) {
+ this._context = context;
}
- function swapXYOne(attrs) {
- var x2 = attrs.x;
- attrs.x = attrs.y;
- attrs.y = x2;
+ function monotoneX(context) {
+ return new MonotoneX(context);
}
- function run$1(g) {
- g.graph().dummyChains = [];
- forEach(g.edges(), function(edge) {
- normalizeEdge(g, edge);
- });
+ function monotoneY(context) {
+ return new MonotoneY(context);
}
- function normalizeEdge(g, e) {
- var v = e.v;
- var vRank = g.node(v).rank;
- var w2 = e.w;
- var wRank = g.node(w2).rank;
- var name2 = e.name;
- var edgeLabel = g.edge(e);
- var labelRank = edgeLabel.labelRank;
- if (wRank === vRank + 1)
- return;
- g.removeEdge(e);
- var dummy, attrs, i2;
- for (i2 = 0, ++vRank; vRank < wRank; ++i2, ++vRank) {
- edgeLabel.points = [];
- attrs = {
- width: 0,
- height: 0,
- edgeLabel,
- edgeObj: e,
- rank: vRank
+ var init_monotone = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js"() {
+ "use strict";
+ __name(sign, "sign");
+ __name(slope3, "slope3");
+ __name(slope2, "slope2");
+ __name(point5, "point");
+ __name(MonotoneX, "MonotoneX");
+ MonotoneX.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ switch (this._point) {
+ case 2:
+ this._context.lineTo(this._x1, this._y1);
+ break;
+ case 3:
+ point5(this, this._t0, slope2(this, this._t0));
+ break;
+ }
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
+ this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ var t13 = NaN;
+ x5 = +x5, y5 = +y5;
+ if (x5 === this._x1 && y5 === this._y1) return;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x5, y5) : this._context.moveTo(x5, y5);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ point5(this, slope2(this, t13 = slope3(this, x5, y5)), t13);
+ break;
+ default:
+ point5(this, this._t0, t13 = slope3(this, x5, y5));
+ break;
+ }
+ this._x0 = this._x1, this._x1 = x5;
+ this._y0 = this._y1, this._y1 = y5;
+ this._t0 = t13;
+ }, "point")
+ };
+ __name(MonotoneY, "MonotoneY");
+ (MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x5, y5) {
+ MonotoneX.prototype.point.call(this, y5, x5);
+ };
+ __name(ReflectContext, "ReflectContext");
+ ReflectContext.prototype = {
+ moveTo: /* @__PURE__ */ __name(function(x5, y5) {
+ this._context.moveTo(y5, x5);
+ }, "moveTo"),
+ closePath: /* @__PURE__ */ __name(function() {
+ this._context.closePath();
+ }, "closePath"),
+ lineTo: /* @__PURE__ */ __name(function(x5, y5) {
+ this._context.lineTo(y5, x5);
+ }, "lineTo"),
+ bezierCurveTo: /* @__PURE__ */ __name(function(x1, y1, x22, y22, x5, y5) {
+ this._context.bezierCurveTo(y1, x1, y22, x22, y5, x5);
+ }, "bezierCurveTo")
};
- dummy = addDummyNode(g, "edge", attrs, "_d");
- if (vRank === labelRank) {
- attrs.width = edgeLabel.width;
- attrs.height = edgeLabel.height;
- attrs.dummy = "edge-label";
- attrs.labelpos = edgeLabel.labelpos;
- }
- g.setEdge(v, dummy, { weight: edgeLabel.weight }, name2);
- if (i2 === 0) {
- g.graph().dummyChains.push(dummy);
- }
- v = dummy;
- }
- g.setEdge(v, w2, { weight: edgeLabel.weight }, name2);
- }
- function undo(g) {
- forEach(g.graph().dummyChains, function(v) {
- var node2 = g.node(v);
- var origLabel = node2.edgeLabel;
- var w2;
- g.setEdge(node2.edgeObj, origLabel);
- while (node2.dummy) {
- w2 = g.successors(v)[0];
- g.removeNode(v);
- origLabel.points.push({ x: node2.x, y: node2.y });
- if (node2.dummy === "edge-label") {
- origLabel.x = node2.x;
- origLabel.y = node2.y;
- origLabel.width = node2.width;
- origLabel.height = node2.height;
- }
- v = w2;
- node2 = g.node(v);
- }
- });
- }
- function longestPath(g) {
- var visited = {};
- function dfs2(v) {
- var label = g.node(v);
- if (has(visited, v)) {
- return label.rank;
- }
- visited[v] = true;
- var rank2 = min(
- map(g.outEdges(v), function(e) {
- return dfs2(e.w) - g.edge(e).minlen;
- })
- );
- if (rank2 === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
- rank2 === void 0 || // return value of _.map([]) for Lodash 4
- rank2 === null) {
- rank2 = 0;
- }
- return label.rank = rank2;
+ __name(monotoneX, "monotoneX");
+ __name(monotoneY, "monotoneY");
}
- forEach(g.sources(), dfs2);
- }
- function slack(g, e) {
- return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js
+ function Natural(context) {
+ this._context = context;
}
- function feasibleTree(g) {
- var t4 = new Graph({ directed: false });
- var start2 = g.nodes()[0];
- var size2 = g.nodeCount();
- t4.setNode(start2, {});
- var edge, delta;
- while (tightTree(t4, g) < size2) {
- edge = findMinSlackEdge(t4, g);
- delta = t4.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);
- shiftRanks(t4, g, delta);
- }
- return t4;
+ function controlPoints(x5) {
+ var i2, n2 = x5.length - 1, m2, a2 = new Array(n2), b2 = new Array(n2), r2 = new Array(n2);
+ a2[0] = 0, b2[0] = 2, r2[0] = x5[0] + 2 * x5[1];
+ for (i2 = 1; i2 < n2 - 1; ++i2) a2[i2] = 1, b2[i2] = 4, r2[i2] = 4 * x5[i2] + 2 * x5[i2 + 1];
+ a2[n2 - 1] = 2, b2[n2 - 1] = 7, r2[n2 - 1] = 8 * x5[n2 - 1] + x5[n2];
+ for (i2 = 1; i2 < n2; ++i2) m2 = a2[i2] / b2[i2 - 1], b2[i2] -= m2, r2[i2] -= m2 * r2[i2 - 1];
+ a2[n2 - 1] = r2[n2 - 1] / b2[n2 - 1];
+ for (i2 = n2 - 2; i2 >= 0; --i2) a2[i2] = (r2[i2] - a2[i2 + 1]) / b2[i2];
+ b2[n2 - 1] = (x5[n2] + a2[n2 - 1]) / 2;
+ for (i2 = 0; i2 < n2 - 1; ++i2) b2[i2] = 2 * x5[i2 + 1] - a2[i2 + 1];
+ return [a2, b2];
+ }
+ function natural_default(context) {
+ return new Natural(context);
}
- function tightTree(t4, g) {
- function dfs2(v) {
- forEach(g.nodeEdges(v), function(e) {
- var edgeV = e.v, w2 = v === edgeV ? e.w : edgeV;
- if (!t4.hasNode(w2) && !slack(g, e)) {
- t4.setNode(w2, {});
- t4.setEdge(v, w2, {});
- dfs2(w2);
- }
- });
+ var init_natural = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js"() {
+ "use strict";
+ __name(Natural, "Natural");
+ Natural.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x = [];
+ this._y = [];
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ var x5 = this._x, y5 = this._y, n2 = x5.length;
+ if (n2) {
+ this._line ? this._context.lineTo(x5[0], y5[0]) : this._context.moveTo(x5[0], y5[0]);
+ if (n2 === 2) {
+ this._context.lineTo(x5[1], y5[1]);
+ } else {
+ var px = controlPoints(x5), py = controlPoints(y5);
+ for (var i0 = 0, i1 = 1; i1 < n2; ++i0, ++i1) {
+ this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x5[i1], y5[i1]);
+ }
+ }
+ }
+ if (this._line || this._line !== 0 && n2 === 1) this._context.closePath();
+ this._line = 1 - this._line;
+ this._x = this._y = null;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ this._x.push(+x5);
+ this._y.push(+y5);
+ }, "point")
+ };
+ __name(controlPoints, "controlPoints");
+ __name(natural_default, "default");
}
- forEach(t4.nodes(), dfs2);
- return t4.nodeCount();
- }
- function findMinSlackEdge(t4, g) {
- return minBy(g.edges(), function(e) {
- if (t4.hasNode(e.v) !== t4.hasNode(e.w)) {
- return slack(g, e);
- }
- });
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js
+ function Step(context, t4) {
+ this._context = context;
+ this._t = t4;
}
- function shiftRanks(t4, g, delta) {
- forEach(t4.nodes(), function(v) {
- g.node(v).rank += delta;
- });
+ function step_default(context) {
+ return new Step(context, 0.5);
}
- function CycleException() {
+ function stepBefore(context) {
+ return new Step(context, 0);
}
- CycleException.prototype = new Error();
- function dfs$1(g, vs, order2) {
- if (!isArray$1(vs)) {
- vs = [vs];
- }
- var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
- var acc = [];
- var visited = {};
- forEach(vs, function(v) {
- if (!g.hasNode(v)) {
- throw new Error("Graph does not have node: " + v);
- }
- doDfs(g, v, order2 === "post", visited, navigation, acc);
- });
- return acc;
+ function stepAfter(context) {
+ return new Step(context, 1);
}
- function doDfs(g, v, postorder2, visited, navigation, acc) {
- if (!has(visited, v)) {
- visited[v] = true;
- if (!postorder2) {
- acc.push(v);
- }
- forEach(navigation(v), function(w2) {
- doDfs(g, w2, postorder2, visited, navigation, acc);
- });
- if (postorder2) {
- acc.push(v);
- }
+ var init_step = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js"() {
+ "use strict";
+ __name(Step, "Step");
+ Step.prototype = {
+ areaStart: /* @__PURE__ */ __name(function() {
+ this._line = 0;
+ }, "areaStart"),
+ areaEnd: /* @__PURE__ */ __name(function() {
+ this._line = NaN;
+ }, "areaEnd"),
+ lineStart: /* @__PURE__ */ __name(function() {
+ this._x = this._y = NaN;
+ this._point = 0;
+ }, "lineStart"),
+ lineEnd: /* @__PURE__ */ __name(function() {
+ if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
+ if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
+ }, "lineEnd"),
+ point: /* @__PURE__ */ __name(function(x5, y5) {
+ x5 = +x5, y5 = +y5;
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ this._line ? this._context.lineTo(x5, y5) : this._context.moveTo(x5, y5);
+ break;
+ case 1:
+ this._point = 2;
+ default: {
+ if (this._t <= 0) {
+ this._context.lineTo(this._x, y5);
+ this._context.lineTo(x5, y5);
+ } else {
+ var x1 = this._x * (1 - this._t) + x5 * this._t;
+ this._context.lineTo(x1, this._y);
+ this._context.lineTo(x1, y5);
+ }
+ break;
+ }
+ }
+ this._x = x5, this._y = y5;
+ }, "point")
+ };
+ __name(step_default, "default");
+ __name(stepBefore, "stepBefore");
+ __name(stepAfter, "stepAfter");
}
- }
- function postorder$1(g, vs) {
- return dfs$1(g, vs, "post");
- }
- function preorder(g, vs) {
- return dfs$1(g, vs, "pre");
- }
- networkSimplex.initLowLimValues = initLowLimValues;
- networkSimplex.initCutValues = initCutValues;
- networkSimplex.calcCutValue = calcCutValue;
- networkSimplex.leaveEdge = leaveEdge;
- networkSimplex.enterEdge = enterEdge;
- networkSimplex.exchangeEdges = exchangeEdges;
- function networkSimplex(g) {
- g = simplify(g);
- longestPath(g);
- var t4 = feasibleTree(g);
- initLowLimValues(t4);
- initCutValues(t4, g);
- var e, f2;
- while (e = leaveEdge(t4)) {
- f2 = enterEdge(t4, g, e);
- exchangeEdges(t4, g, e, f2);
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/index.js
+ var init_src30 = __esm({
+ "../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/index.js"() {
+ "use strict";
+ init_arc();
+ init_line();
+ init_pie();
+ init_basisClosed2();
+ init_basisOpen();
+ init_basis2();
+ init_bump();
+ init_bundle();
+ init_cardinalClosed();
+ init_cardinalOpen();
+ init_cardinal();
+ init_catmullRomClosed();
+ init_catmullRomOpen();
+ init_catmullRom();
+ init_linearClosed();
+ init_linear2();
+ init_monotone();
+ init_natural();
+ init_step();
}
- }
- function initCutValues(t4, g) {
- var vs = postorder$1(t4, t4.nodes());
- vs = vs.slice(0, vs.length - 1);
- forEach(vs, function(v) {
- assignCutValue(t4, g, v);
- });
- }
- function assignCutValue(t4, g, child) {
- var childLab = t4.node(child);
- var parent = childLab.parent;
- t4.edge(child, parent).cutvalue = calcCutValue(t4, g, child);
- }
- function calcCutValue(t4, g, child) {
- var childLab = t4.node(child);
- var parent = childLab.parent;
- var childIsTail = true;
- var graphEdge = g.edge(child, parent);
- var cutValue = 0;
- if (!graphEdge) {
- childIsTail = false;
- graphEdge = g.edge(parent, child);
+ });
+
+ // ../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/constant.js
+ var init_constant6 = __esm({
+ "../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/constant.js"() {
+ "use strict";
}
- cutValue = graphEdge.weight;
- forEach(g.nodeEdges(child), function(e) {
- var isOutEdge = e.v === child, other = isOutEdge ? e.w : e.v;
- if (other !== parent) {
- var pointsToHead = isOutEdge === childIsTail, otherWeight = g.edge(e).weight;
- cutValue += pointsToHead ? otherWeight : -otherWeight;
- if (isTreeEdge(t4, child, other)) {
- var otherCutValue = t4.edge(child, other).cutvalue;
- cutValue += pointsToHead ? -otherCutValue : otherCutValue;
- }
- }
- });
- return cutValue;
- }
- function initLowLimValues(tree, root2) {
- if (arguments.length < 2) {
- root2 = tree.nodes()[0];
+ });
+
+ // ../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/event.js
+ var init_event2 = __esm({
+ "../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/event.js"() {
+ "use strict";
}
- dfsAssignLowLim(tree, {}, 1, root2);
- }
- function dfsAssignLowLim(tree, visited, nextLim, v, parent) {
- var low = nextLim;
- var label = tree.node(v);
- visited[v] = true;
- forEach(tree.neighbors(v), function(w2) {
- if (!has(visited, w2)) {
- nextLim = dfsAssignLowLim(tree, visited, nextLim, w2, v);
- }
- });
- label.low = low;
- label.lim = nextLim++;
- if (parent) {
- label.parent = parent;
- } else {
- delete label.parent;
+ });
+
+ // ../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js
+ function Transform(k2, x5, y5) {
+ this.k = k2;
+ this.x = x5;
+ this.y = y5;
+ }
+ function transform(node2) {
+ while (!node2.__zoom) if (!(node2 = node2.parentNode)) return identity3;
+ return node2.__zoom;
+ }
+ var identity3;
+ var init_transform2 = __esm({
+ "../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js"() {
+ "use strict";
+ __name(Transform, "Transform");
+ Transform.prototype = {
+ constructor: Transform,
+ scale: /* @__PURE__ */ __name(function(k2) {
+ return k2 === 1 ? this : new Transform(this.k * k2, this.x, this.y);
+ }, "scale"),
+ translate: /* @__PURE__ */ __name(function(x5, y5) {
+ return x5 === 0 & y5 === 0 ? this : new Transform(this.k, this.x + this.k * x5, this.y + this.k * y5);
+ }, "translate"),
+ apply: /* @__PURE__ */ __name(function(point8) {
+ return [point8[0] * this.k + this.x, point8[1] * this.k + this.y];
+ }, "apply"),
+ applyX: /* @__PURE__ */ __name(function(x5) {
+ return x5 * this.k + this.x;
+ }, "applyX"),
+ applyY: /* @__PURE__ */ __name(function(y5) {
+ return y5 * this.k + this.y;
+ }, "applyY"),
+ invert: /* @__PURE__ */ __name(function(location) {
+ return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
+ }, "invert"),
+ invertX: /* @__PURE__ */ __name(function(x5) {
+ return (x5 - this.x) / this.k;
+ }, "invertX"),
+ invertY: /* @__PURE__ */ __name(function(y5) {
+ return (y5 - this.y) / this.k;
+ }, "invertY"),
+ rescaleX: /* @__PURE__ */ __name(function(x5) {
+ return x5.copy().domain(x5.range().map(this.invertX, this).map(x5.invert, x5));
+ }, "rescaleX"),
+ rescaleY: /* @__PURE__ */ __name(function(y5) {
+ return y5.copy().domain(y5.range().map(this.invertY, this).map(y5.invert, y5));
+ }, "rescaleY"),
+ toString: /* @__PURE__ */ __name(function() {
+ return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
+ }, "toString")
+ };
+ identity3 = new Transform(1, 0, 0);
+ transform.prototype = Transform.prototype;
+ __name(transform, "transform");
}
- return nextLim;
- }
- function leaveEdge(tree) {
- return find$1(tree.edges(), function(e) {
- return tree.edge(e).cutvalue < 0;
- });
- }
- function enterEdge(t4, g, edge) {
- var v = edge.v;
- var w2 = edge.w;
- if (!g.hasEdge(v, w2)) {
- v = edge.w;
- w2 = edge.v;
+ });
+
+ // ../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/noevent.js
+ var init_noevent2 = __esm({
+ "../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/noevent.js"() {
+ "use strict";
}
- var vLabel = t4.node(v);
- var wLabel = t4.node(w2);
- var tailLabel = vLabel;
- var flip = false;
- if (vLabel.lim > wLabel.lim) {
- tailLabel = wLabel;
- flip = true;
+ });
+
+ // ../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/zoom.js
+ var init_zoom = __esm({
+ "../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/zoom.js"() {
+ "use strict";
+ init_src11();
+ init_constant6();
+ init_event2();
+ init_transform2();
+ init_noevent2();
}
- var candidates = filter(g.edges(), function(edge2) {
- return flip === isDescendant$1(t4, t4.node(edge2.v), tailLabel) && flip !== isDescendant$1(t4, t4.node(edge2.w), tailLabel);
- });
- return minBy(candidates, function(edge2) {
- return slack(g, edge2);
- });
- }
- function exchangeEdges(t4, g, e, f2) {
- var v = e.v;
- var w2 = e.w;
- t4.removeEdge(v, w2);
- t4.setEdge(f2.v, f2.w, {});
- initLowLimValues(t4);
- initCutValues(t4, g);
- updateRanks(t4, g);
- }
- function updateRanks(t4, g) {
- var root2 = find$1(t4.nodes(), function(v) {
- return !g.node(v).parent;
- });
- var vs = preorder(t4, root2);
- vs = vs.slice(1);
- forEach(vs, function(v) {
- var parent = t4.node(v).parent, edge = g.edge(v, parent), flipped = false;
- if (!edge) {
- edge = g.edge(parent, v);
- flipped = true;
- }
- g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);
- });
- }
- function isTreeEdge(tree, u2, v) {
- return tree.hasEdge(u2, v);
- }
- function isDescendant$1(tree, vLabel, rootLabel) {
- return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
- }
- function rank(g) {
- switch (g.graph().ranker) {
- case "network-simplex":
- networkSimplexRanker(g);
- break;
- case "tight-tree":
- tightTreeRanker(g);
- break;
- case "longest-path":
- longestPathRanker(g);
- break;
- default:
- networkSimplexRanker(g);
+ });
+
+ // ../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/index.js
+ var init_src31 = __esm({
+ "../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/index.js"() {
+ "use strict";
+ init_zoom();
+ init_transform2();
}
- }
- var longestPathRanker = longestPath;
- function tightTreeRanker(g) {
- longestPath(g);
- feasibleTree(g);
- }
- function networkSimplexRanker(g) {
- networkSimplex(g);
- }
- function run(g) {
- var root2 = addDummyNode(g, "root", {}, "_root");
- var depths = treeDepths(g);
- var height2 = max(values(depths)) - 1;
- var nodeSep = 2 * height2 + 1;
- g.graph().nestingRoot = root2;
- forEach(g.edges(), function(e) {
- g.edge(e).minlen *= nodeSep;
- });
- var weight = sumWeights(g) + 1;
- forEach(g.children(), function(child) {
- dfs(g, root2, nodeSep, weight, height2, depths, child);
- });
- g.graph().nodeRankFactor = nodeSep;
- }
- function dfs(g, root2, nodeSep, weight, height2, depths, v) {
- var children2 = g.children(v);
- if (!children2.length) {
- if (v !== root2) {
- g.setEdge(root2, v, { weight: 0, minlen: nodeSep });
- }
- return;
+ });
+
+ // ../../node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js
+ var init_src32 = __esm({
+ "../../node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js"() {
+ "use strict";
+ init_src2();
+ init_src3();
+ init_src12();
+ init_src14();
+ init_src7();
+ init_src15();
+ init_src16();
+ init_src4();
+ init_src6();
+ init_src17();
+ init_src10();
+ init_src18();
+ init_src20();
+ init_src21();
+ init_src22();
+ init_src23();
+ init_src8();
+ init_src13();
+ init_src24();
+ init_src19();
+ init_src25();
+ init_src28();
+ init_src29();
+ init_src5();
+ init_src30();
+ init_src26();
+ init_src27();
+ init_src9();
+ init_src11();
+ init_src31();
}
- var top2 = addBorderNode$1(g, "_bt");
- var bottom2 = addBorderNode$1(g, "_bb");
- var label = g.node(v);
- g.setParent(top2, v);
- label.borderTop = top2;
- g.setParent(bottom2, v);
- label.borderBottom = bottom2;
- forEach(children2, function(child) {
- dfs(g, root2, nodeSep, weight, height2, depths, child);
- var childNode = g.node(child);
- var childTop = childNode.borderTop ? childNode.borderTop : child;
- var childBottom = childNode.borderBottom ? childNode.borderBottom : child;
- var thisWeight = childNode.borderTop ? weight : 2 * weight;
- var minlen = childTop !== childBottom ? 1 : height2 - depths[v] + 1;
- g.setEdge(top2, childTop, {
- weight: thisWeight,
- minlen,
- nestingEdge: true
- });
- g.setEdge(childBottom, bottom2, {
- weight: thisWeight,
- minlen,
- nestingEdge: true
- });
- });
- if (!g.parent(v)) {
- g.setEdge(root2, top2, { weight: 0, minlen: height2 + depths[v] });
+ });
+
+ // ../../node_modules/.pnpm/@braintree+sanitize-url@7.1.0/node_modules/@braintree/sanitize-url/dist/constants.js
+ var require_constants = __commonJS({
+ "../../node_modules/.pnpm/@braintree+sanitize-url@7.1.0/node_modules/@braintree/sanitize-url/dist/constants.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.BLANK_URL = exports2.relativeFirstCharacters = exports2.whitespaceEscapeCharsRegex = exports2.urlSchemeRegex = exports2.ctrlCharactersRegex = exports2.htmlCtrlEntityRegex = exports2.htmlEntitiesRegex = exports2.invalidProtocolRegex = void 0;
+ exports2.invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
+ exports2.htmlEntitiesRegex = /(\w+)(^\w|;)?/g;
+ exports2.htmlCtrlEntityRegex = /&(newline|tab);/gi;
+ exports2.ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
+ exports2.urlSchemeRegex = /^.+(:|:)/gim;
+ exports2.whitespaceEscapeCharsRegex = /(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;
+ exports2.relativeFirstCharacters = [".", "/"];
+ exports2.BLANK_URL = "about:blank";
}
- }
- function treeDepths(g) {
- var depths = {};
- function dfs2(v, depth) {
- var children2 = g.children(v);
- if (children2 && children2.length) {
- forEach(children2, function(child) {
- dfs2(child, depth + 1);
+ });
+
+ // ../../node_modules/.pnpm/@braintree+sanitize-url@7.1.0/node_modules/@braintree/sanitize-url/dist/index.js
+ var require_dist = __commonJS({
+ "../../node_modules/.pnpm/@braintree+sanitize-url@7.1.0/node_modules/@braintree/sanitize-url/dist/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.sanitizeUrl = void 0;
+ var constants_1 = require_constants();
+ function isRelativeUrlWithoutProtocol(url) {
+ return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;
+ }
+ __name(isRelativeUrlWithoutProtocol, "isRelativeUrlWithoutProtocol");
+ function decodeHtmlCharacters(str2) {
+ var removedNullByte = str2.replace(constants_1.ctrlCharactersRegex, "");
+ return removedNullByte.replace(constants_1.htmlEntitiesRegex, function(match2, dec) {
+ return String.fromCharCode(dec);
});
}
- depths[v] = depth;
- }
- forEach(g.children(), function(v) {
- dfs2(v, 1);
- });
- return depths;
- }
- function sumWeights(g) {
- return reduce(
- g.edges(),
- function(acc, e) {
- return acc + g.edge(e).weight;
- },
- 0
- );
- }
- function cleanup(g) {
- var graphLabel = g.graph();
- g.removeNode(graphLabel.nestingRoot);
- delete graphLabel.nestingRoot;
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- if (edge.nestingEdge) {
- g.removeEdge(e);
+ __name(decodeHtmlCharacters, "decodeHtmlCharacters");
+ function isValidUrl(url) {
+ return URL.canParse(url);
}
- });
- }
- function addSubgraphConstraints(g, cg, vs) {
- var prev2 = {}, rootPrev;
- forEach(vs, function(v) {
- var child = g.parent(v), parent, prevChild;
- while (child) {
- parent = g.parent(child);
- if (parent) {
- prevChild = prev2[parent];
- prev2[parent] = child;
- } else {
- prevChild = rootPrev;
- rootPrev = child;
- }
- if (prevChild && prevChild !== child) {
- cg.setEdge(prevChild, child);
- return;
+ __name(isValidUrl, "isValidUrl");
+ function decodeURI(uri) {
+ try {
+ return decodeURIComponent(uri);
+ } catch (e3) {
+ return uri;
}
- child = parent;
}
- });
- }
- function buildLayerGraph(g, rank2, relationship) {
- var root2 = createRootNode(g), result = new Graph({ compound: true }).setGraph({ root: root2 }).setDefaultNodeLabel(function(v) {
- return g.node(v);
- });
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v), parent = g.parent(v);
- if (node2.rank === rank2 || node2.minRank <= rank2 && rank2 <= node2.maxRank) {
- result.setNode(v);
- result.setParent(v, parent || root2);
- forEach(g[relationship](v), function(e) {
- var u2 = e.v === v ? e.w : e.v, edge = result.edge(u2, v), weight = !isUndefined(edge) ? edge.weight : 0;
- result.setEdge(u2, v, { weight: g.edge(e).weight + weight });
- });
- if (has(node2, "minRank")) {
- result.setNode(v, {
- borderLeft: node2.borderLeft[rank2],
- borderRight: node2.borderRight[rank2]
- });
+ __name(decodeURI, "decodeURI");
+ function sanitizeUrl6(url) {
+ if (!url) {
+ return constants_1.BLANK_URL;
+ }
+ var charsToDecode;
+ var decodedUrl = decodeURI(url.trim());
+ do {
+ decodedUrl = decodeHtmlCharacters(decodedUrl).replace(constants_1.htmlCtrlEntityRegex, "").replace(constants_1.ctrlCharactersRegex, "").replace(constants_1.whitespaceEscapeCharsRegex, "").trim();
+ decodedUrl = decodeURI(decodedUrl);
+ charsToDecode = decodedUrl.match(constants_1.ctrlCharactersRegex) || decodedUrl.match(constants_1.htmlEntitiesRegex) || decodedUrl.match(constants_1.htmlCtrlEntityRegex) || decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);
+ } while (charsToDecode && charsToDecode.length > 0);
+ var sanitizedUrl = decodedUrl;
+ if (!sanitizedUrl) {
+ return constants_1.BLANK_URL;
}
+ if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
+ return sanitizedUrl;
+ }
+ var trimmedUrl = sanitizedUrl.trimStart();
+ var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);
+ if (!urlSchemeParseResults) {
+ return sanitizedUrl;
+ }
+ var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();
+ if (constants_1.invalidProtocolRegex.test(urlScheme)) {
+ return constants_1.BLANK_URL;
+ }
+ var backSanitized = trimmedUrl.replace(/\\/g, "/");
+ if (urlScheme === "mailto:" || urlScheme.includes("://")) {
+ return backSanitized;
+ }
+ if (urlScheme === "http:" || urlScheme === "https:") {
+ if (!isValidUrl(backSanitized)) {
+ return constants_1.BLANK_URL;
+ }
+ var url_1 = new URL(backSanitized);
+ url_1.protocol = url_1.protocol.toLowerCase();
+ url_1.hostname = url_1.hostname.toLowerCase();
+ return url_1.toString();
+ }
+ return backSanitized;
}
- });
- return result;
- }
- function createRootNode(g) {
- var v;
- while (g.hasNode(v = uniqueId("_root")))
- ;
- return v;
- }
- function crossCount(g, layering) {
- var cc = 0;
- for (var i2 = 1; i2 < layering.length; ++i2) {
- cc += twoLayerCrossCount(g, layering[i2 - 1], layering[i2]);
+ __name(sanitizeUrl6, "sanitizeUrl");
+ exports2.sanitizeUrl = sanitizeUrl6;
}
- return cc;
- }
- function twoLayerCrossCount(g, northLayer, southLayer) {
- var southPos = zipObject(
- southLayer,
- map(southLayer, function(v, i2) {
- return i2;
- })
- );
- var southEntries = flatten(
- map(northLayer, function(v) {
- return sortBy$1(
- map(g.outEdges(v), function(e) {
- return { pos: southPos[e.w], weight: g.edge(e).weight };
- }),
- "pos"
- );
- })
- );
- var firstIndex = 1;
- while (firstIndex < southLayer.length)
- firstIndex <<= 1;
- var treeSize = 2 * firstIndex - 1;
- firstIndex -= 1;
- var tree = map(new Array(treeSize), function() {
- return 0;
- });
- var cc = 0;
- forEach(
- // @ts-expect-error
- southEntries.forEach(function(entry) {
- var index = entry.pos + firstIndex;
- tree[index] += entry.weight;
- var weightSum = 0;
- while (index > 0) {
- if (index % 2) {
- weightSum += tree[index + 1];
+ });
+
+ // src/diagrams/common/svgDrawCommon.ts
+ var import_sanitize_url, drawRect, drawBackgroundRect, drawText, drawImage, drawEmbeddedImage, getNoteRect, getTextObj;
+ var init_svgDrawCommon = __esm({
+ "src/diagrams/common/svgDrawCommon.ts"() {
+ "use strict";
+ import_sanitize_url = __toESM(require_dist(), 1);
+ init_common();
+ drawRect = /* @__PURE__ */ __name((element3, rectData) => {
+ const rectElement = element3.append("rect");
+ rectElement.attr("x", rectData.x);
+ rectElement.attr("y", rectData.y);
+ rectElement.attr("fill", rectData.fill);
+ rectElement.attr("stroke", rectData.stroke);
+ rectElement.attr("width", rectData.width);
+ rectElement.attr("height", rectData.height);
+ if (rectData.name) {
+ rectElement.attr("name", rectData.name);
+ }
+ if (rectData.rx) {
+ rectElement.attr("rx", rectData.rx);
+ }
+ if (rectData.ry) {
+ rectElement.attr("ry", rectData.ry);
+ }
+ if (rectData.attrs !== void 0) {
+ for (const attrKey in rectData.attrs) {
+ rectElement.attr(attrKey, rectData.attrs[attrKey]);
+ }
+ }
+ if (rectData.class) {
+ rectElement.attr("class", rectData.class);
+ }
+ return rectElement;
+ }, "drawRect");
+ drawBackgroundRect = /* @__PURE__ */ __name((element3, bounds4) => {
+ const rectData = {
+ x: bounds4.startx,
+ y: bounds4.starty,
+ width: bounds4.stopx - bounds4.startx,
+ height: bounds4.stopy - bounds4.starty,
+ fill: bounds4.fill,
+ stroke: bounds4.stroke,
+ class: "rect"
+ };
+ const rectElement = drawRect(element3, rectData);
+ rectElement.lower();
+ }, "drawBackgroundRect");
+ drawText = /* @__PURE__ */ __name((element3, textData) => {
+ const nText = textData.text.replace(lineBreakRegex, " ");
+ const textElem = element3.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.attr("class", "legend");
+ textElem.style("text-anchor", textData.anchor);
+ if (textData.class) {
+ textElem.attr("class", textData.class);
+ }
+ const tspan = textElem.append("tspan");
+ tspan.attr("x", textData.x + textData.textMargin * 2);
+ tspan.text(nText);
+ return textElem;
+ }, "drawText");
+ drawImage = /* @__PURE__ */ __name((elem, x5, y5, link3) => {
+ const imageElement = elem.append("image");
+ imageElement.attr("x", x5);
+ imageElement.attr("y", y5);
+ const sanitizedLink = (0, import_sanitize_url.sanitizeUrl)(link3);
+ imageElement.attr("xlink:href", sanitizedLink);
+ }, "drawImage");
+ drawEmbeddedImage = /* @__PURE__ */ __name((element3, x5, y5, link3) => {
+ const imageElement = element3.append("use");
+ imageElement.attr("x", x5);
+ imageElement.attr("y", y5);
+ const sanitizedLink = (0, import_sanitize_url.sanitizeUrl)(link3);
+ imageElement.attr("xlink:href", `#${sanitizedLink}`);
+ }, "drawEmbeddedImage");
+ getNoteRect = /* @__PURE__ */ __name(() => {
+ const noteRectData = {
+ x: 0,
+ y: 0,
+ width: 100,
+ height: 100,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ anchor: "start",
+ rx: 0,
+ ry: 0
+ };
+ return noteRectData;
+ }, "getNoteRect");
+ getTextObj = /* @__PURE__ */ __name(() => {
+ const testObject = {
+ x: 0,
+ y: 0,
+ width: 100,
+ height: 100,
+ "text-anchor": "start",
+ style: "#666",
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ tspan: true
+ };
+ return testObject;
+ }, "getTextObj");
+ }
+ });
+
+ // src/diagrams/c4/svgDraw.js
+ var import_sanitize_url2, drawRect2, drawImage2, drawRels, drawBoundary, drawC4Shape, insertDatabaseIcon, insertComputerIcon, insertClockIcon, insertArrowHead, insertArrowEnd, insertArrowFilledHead, insertDynamicNumber, insertArrowCrossHead, getC4ShapeFont, _drawTextCandidateFunc, svgDraw_default;
+ var init_svgDraw = __esm({
+ "src/diagrams/c4/svgDraw.js"() {
+ "use strict";
+ init_common();
+ init_svgDrawCommon();
+ import_sanitize_url2 = __toESM(require_dist(), 1);
+ drawRect2 = /* @__PURE__ */ __name(function(elem, rectData) {
+ return drawRect(elem, rectData);
+ }, "drawRect");
+ drawImage2 = /* @__PURE__ */ __name(function(elem, width3, height2, x5, y5, link3) {
+ const imageElem = elem.append("image");
+ imageElem.attr("width", width3);
+ imageElem.attr("height", height2);
+ imageElem.attr("x", x5);
+ imageElem.attr("y", y5);
+ let sanitizedLink = link3.startsWith("data:image/png;base64") ? link3 : (0, import_sanitize_url2.sanitizeUrl)(link3);
+ imageElem.attr("xlink:href", sanitizedLink);
+ }, "drawImage");
+ drawRels = /* @__PURE__ */ __name((elem, rels2, conf8) => {
+ const relsElem = elem.append("g");
+ let i2 = 0;
+ for (let rel2 of rels2) {
+ let textColor = rel2.textColor ? rel2.textColor : "#444444";
+ let strokeColor = rel2.lineColor ? rel2.lineColor : "#444444";
+ let offsetX = rel2.offsetX ? parseInt(rel2.offsetX) : 0;
+ let offsetY = rel2.offsetY ? parseInt(rel2.offsetY) : 0;
+ let url = "";
+ if (i2 === 0) {
+ let line2 = relsElem.append("line");
+ line2.attr("x1", rel2.startPoint.x);
+ line2.attr("y1", rel2.startPoint.y);
+ line2.attr("x2", rel2.endPoint.x);
+ line2.attr("y2", rel2.endPoint.y);
+ line2.attr("stroke-width", "1");
+ line2.attr("stroke", strokeColor);
+ line2.style("fill", "none");
+ if (rel2.type !== "rel_b") {
+ line2.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (rel2.type === "birel" || rel2.type === "rel_b") {
+ line2.attr("marker-start", "url(" + url + "#arrowend)");
+ }
+ i2 = -1;
+ } else {
+ let line2 = relsElem.append("path");
+ line2.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel2.startPoint.x).replaceAll("starty", rel2.startPoint.y).replaceAll(
+ "controlx",
+ rel2.startPoint.x + (rel2.endPoint.x - rel2.startPoint.x) / 2 - (rel2.endPoint.x - rel2.startPoint.x) / 4
+ ).replaceAll("controly", rel2.startPoint.y + (rel2.endPoint.y - rel2.startPoint.y) / 2).replaceAll("stopx", rel2.endPoint.x).replaceAll("stopy", rel2.endPoint.y)
+ );
+ if (rel2.type !== "rel_b") {
+ line2.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (rel2.type === "birel" || rel2.type === "rel_b") {
+ line2.attr("marker-start", "url(" + url + "#arrowend)");
+ }
+ }
+ let messageConf = conf8.messageFont();
+ _drawTextCandidateFunc(conf8)(
+ rel2.label.text,
+ relsElem,
+ Math.min(rel2.startPoint.x, rel2.endPoint.x) + Math.abs(rel2.endPoint.x - rel2.startPoint.x) / 2 + offsetX,
+ Math.min(rel2.startPoint.y, rel2.endPoint.y) + Math.abs(rel2.endPoint.y - rel2.startPoint.y) / 2 + offsetY,
+ rel2.label.width,
+ rel2.label.height,
+ { fill: textColor },
+ messageConf
+ );
+ if (rel2.techn && rel2.techn.text !== "") {
+ messageConf = conf8.messageFont();
+ _drawTextCandidateFunc(conf8)(
+ "[" + rel2.techn.text + "]",
+ relsElem,
+ Math.min(rel2.startPoint.x, rel2.endPoint.x) + Math.abs(rel2.endPoint.x - rel2.startPoint.x) / 2 + offsetX,
+ Math.min(rel2.startPoint.y, rel2.endPoint.y) + Math.abs(rel2.endPoint.y - rel2.startPoint.y) / 2 + conf8.messageFontSize + 5 + offsetY,
+ Math.max(rel2.label.width, rel2.techn.width),
+ rel2.techn.height,
+ { fill: textColor, "font-style": "italic" },
+ messageConf
+ );
}
- index = index - 1 >> 1;
- tree[index] += entry.weight;
}
- cc += entry.weight * weightSum;
- })
- );
- return cc;
- }
- function initOrder(g) {
- var visited = {};
- var simpleNodes = filter(g.nodes(), function(v) {
- return !g.children(v).length;
- });
- var maxRank2 = max(
- map(simpleNodes, function(v) {
- return g.node(v).rank;
- })
- );
- var layers = map(range$1(maxRank2 + 1), function() {
- return [];
- });
- function dfs2(v) {
- if (has(visited, v))
- return;
- visited[v] = true;
- var node2 = g.node(v);
- layers[node2.rank].push(v);
- forEach(g.successors(v), dfs2);
- }
- var orderedVs = sortBy$1(simpleNodes, function(v) {
- return g.node(v).rank;
- });
- forEach(orderedVs, dfs2);
- return layers;
- }
- function barycenter(g, movable) {
- return map(movable, function(v) {
- var inV = g.inEdges(v);
- if (!inV.length) {
- return { v };
- } else {
- var result = reduce(
- inV,
- function(acc, e) {
- var edge = g.edge(e), nodeU = g.node(e.v);
- return {
- sum: acc.sum + edge.weight * nodeU.order,
- weight: acc.weight + edge.weight
- };
- },
- { sum: 0, weight: 0 }
+ }, "drawRels");
+ drawBoundary = /* @__PURE__ */ __name(function(elem, boundary, conf8) {
+ const boundaryElem = elem.append("g");
+ let fillColor = boundary.bgColor ? boundary.bgColor : "none";
+ let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444";
+ let fontColor = boundary.fontColor ? boundary.fontColor : "black";
+ let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" };
+ if (boundary.nodeType) {
+ attrsValue = { "stroke-width": 1 };
+ }
+ let rectData = {
+ x: boundary.x,
+ y: boundary.y,
+ fill: fillColor,
+ stroke: strokeColor,
+ width: boundary.width,
+ height: boundary.height,
+ rx: 2.5,
+ ry: 2.5,
+ attrs: attrsValue
+ };
+ drawRect2(boundaryElem, rectData);
+ let boundaryConf = conf8.boundaryFont();
+ boundaryConf.fontWeight = "bold";
+ boundaryConf.fontSize = boundaryConf.fontSize + 2;
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf8)(
+ boundary.label.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.label.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ if (boundary.type && boundary.type.text !== "") {
+ boundaryConf = conf8.boundaryFont();
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf8)(
+ boundary.type.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.type.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ }
+ if (boundary.descr && boundary.descr.text !== "") {
+ boundaryConf = conf8.boundaryFont();
+ boundaryConf.fontSize = boundaryConf.fontSize - 2;
+ boundaryConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf8)(
+ boundary.descr.text,
+ boundaryElem,
+ boundary.x,
+ boundary.y + boundary.descr.Y,
+ boundary.width,
+ boundary.height,
+ { fill: "#444444" },
+ boundaryConf
+ );
+ }
+ }, "drawBoundary");
+ drawC4Shape = /* @__PURE__ */ __name(function(elem, c4Shape, conf8) {
+ let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf8[c4Shape.typeC4Shape.text + "_bg_color"];
+ let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf8[c4Shape.typeC4Shape.text + "_border_color"];
+ let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF";
+ let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
+ break;
+ case "external_person":
+ personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";
+ break;
+ }
+ const c4ShapeElem = elem.append("g");
+ c4ShapeElem.attr("class", "person-man");
+ const rect4 = getNoteRect();
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ case "system":
+ case "external_system":
+ case "container":
+ case "external_container":
+ case "component":
+ case "external_component":
+ rect4.x = c4Shape.x;
+ rect4.y = c4Shape.y;
+ rect4.fill = fillColor;
+ rect4.width = c4Shape.width;
+ rect4.height = c4Shape.height;
+ rect4.stroke = strokeColor;
+ rect4.rx = 2.5;
+ rect4.ry = 2.5;
+ rect4.attrs = { "stroke-width": 0.5 };
+ drawRect2(c4ShapeElem, rect4);
+ break;
+ case "system_db":
+ case "external_system_db":
+ case "container_db":
+ case "external_container_db":
+ case "component_db":
+ case "external_component_db":
+ c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height)
+ );
+ c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2)
+ );
+ break;
+ case "system_queue":
+ case "external_system_queue":
+ case "container_queue":
+ case "external_container_queue":
+ case "component_queue":
+ case "external_component_queue":
+ c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2)
+ );
+ c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
+ "d",
+ "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2)
+ );
+ break;
+ }
+ let c4ShapeFontConf = getC4ShapeFont(conf8, c4Shape.typeC4Shape.text);
+ c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>");
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ drawImage2(
+ c4ShapeElem,
+ 48,
+ 48,
+ c4Shape.x + c4Shape.width / 2 - 24,
+ c4Shape.y + c4Shape.image.Y,
+ personImg
+ );
+ break;
+ }
+ let textFontConf = conf8[c4Shape.typeC4Shape.text + "Font"]();
+ textFontConf.fontWeight = "bold";
+ textFontConf.fontSize = textFontConf.fontSize + 2;
+ textFontConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf8)(
+ c4Shape.label.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.label.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor },
+ textFontConf
);
+ textFontConf = conf8[c4Shape.typeC4Shape.text + "Font"]();
+ textFontConf.fontColor = fontColor;
+ if (c4Shape.techn && c4Shape.techn?.text !== "") {
+ _drawTextCandidateFunc(conf8)(
+ c4Shape.techn.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.techn.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor, "font-style": "italic" },
+ textFontConf
+ );
+ } else if (c4Shape.type && c4Shape.type.text !== "") {
+ _drawTextCandidateFunc(conf8)(
+ c4Shape.type.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.type.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor, "font-style": "italic" },
+ textFontConf
+ );
+ }
+ if (c4Shape.descr && c4Shape.descr.text !== "") {
+ textFontConf = conf8.personFont();
+ textFontConf.fontColor = fontColor;
+ _drawTextCandidateFunc(conf8)(
+ c4Shape.descr.text,
+ c4ShapeElem,
+ c4Shape.x,
+ c4Shape.y + c4Shape.descr.Y,
+ c4Shape.width,
+ c4Shape.height,
+ { fill: fontColor },
+ textFontConf
+ );
+ }
+ return c4Shape.height;
+ }, "drawC4Shape");
+ insertDatabaseIcon = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+ }, "insertDatabaseIcon");
+ insertComputerIcon = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+ }, "insertComputerIcon");
+ insertClockIcon = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+ }, "insertClockIcon");
+ insertArrowHead = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
+ }, "insertArrowHead");
+ insertArrowEnd = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z");
+ }, "insertArrowEnd");
+ insertArrowFilledHead = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
+ }, "insertArrowFilledHead");
+ insertDynamicNumber = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6);
+ }, "insertDynamicNumber");
+ insertArrowCrossHead = /* @__PURE__ */ __name(function(elem) {
+ const defs2 = elem.append("defs");
+ const marker = defs2.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4);
+ marker.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z");
+ marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7");
+ }, "insertArrowCrossHead");
+ getC4ShapeFont = /* @__PURE__ */ __name((cnf, typeC4Shape) => {
return {
- v,
- barycenter: result.sum / result.weight,
- weight: result.weight
+ fontFamily: cnf[typeC4Shape + "FontFamily"],
+ fontSize: cnf[typeC4Shape + "FontSize"],
+ fontWeight: cnf[typeC4Shape + "FontWeight"]
+ };
+ }, "getC4ShapeFont");
+ _drawTextCandidateFunc = /* @__PURE__ */ function() {
+ function byText(content, g2, x5, y5, width3, height2, textAttrs) {
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5 + height2 / 2 + 5).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byText, "byText");
+ function byTspan(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const { fontSize, fontFamily, fontWeight } = conf8;
+ const lines = content.split(common_default.lineBreakRegex);
+ for (let i2 = 0; i2 < lines.length; i2++) {
+ const dy = i2 * fontSize - fontSize * (lines.length - 1) / 2;
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily);
+ text2.append("tspan").attr("dy", dy).text(lines[i2]).attr("alignment-baseline", "mathematical");
+ _setTextAttrs(text2, textAttrs);
+ }
+ }
+ __name(byTspan, "byTspan");
+ function byFo(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const s2 = g2.append("switch");
+ const f3 = s2.append("foreignObject").attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2);
+ const text2 = f3.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s2, x5, y5, width3, height2, textAttrs, conf8);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byFo, "byFo");
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ __name(_setTextAttrs, "_setTextAttrs");
+ return function(conf8) {
+ return conf8.textPlacement === "fo" ? byFo : conf8.textPlacement === "old" ? byText : byTspan;
};
+ }();
+ svgDraw_default = {
+ drawRect: drawRect2,
+ drawBoundary,
+ drawC4Shape,
+ drawRels,
+ drawImage: drawImage2,
+ insertArrowHead,
+ insertArrowEnd,
+ insertArrowFilledHead,
+ insertDynamicNumber,
+ insertArrowCrossHead,
+ insertDatabaseIcon,
+ insertComputerIcon,
+ insertClockIcon
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js
+ var freeGlobal, freeGlobal_default;
+ var init_freeGlobal = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js"() {
+ "use strict";
+ freeGlobal = typeof global == "object" && global && global.Object === Object && global;
+ freeGlobal_default = freeGlobal;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js
+ var freeSelf, root2, root_default;
+ var init_root = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js"() {
+ "use strict";
+ init_freeGlobal();
+ freeSelf = typeof self == "object" && self && self.Object === Object && self;
+ root2 = freeGlobal_default || freeSelf || Function("return this")();
+ root_default = root2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js
+ var Symbol2, Symbol_default;
+ var init_Symbol = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js"() {
+ "use strict";
+ init_root();
+ Symbol2 = root_default.Symbol;
+ Symbol_default = Symbol2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js
+ function getRawTag(value2) {
+ var isOwn = hasOwnProperty.call(value2, symToStringTag), tag2 = value2[symToStringTag];
+ try {
+ value2[symToStringTag] = void 0;
+ var unmasked = true;
+ } catch (e3) {
+ }
+ var result = nativeObjectToString.call(value2);
+ if (unmasked) {
+ if (isOwn) {
+ value2[symToStringTag] = tag2;
+ } else {
+ delete value2[symToStringTag];
}
- });
+ }
+ return result;
}
- function resolveConflicts(entries2, cg) {
- var mappedEntries = {};
- forEach(entries2, function(entry, i2) {
- var tmp = mappedEntries[entry.v] = {
- indegree: 0,
- in: [],
- out: [],
- vs: [entry.v],
- i: i2
- };
- if (!isUndefined(entry.barycenter)) {
- tmp.barycenter = entry.barycenter;
- tmp.weight = entry.weight;
+ var objectProto, hasOwnProperty, nativeObjectToString, symToStringTag, getRawTag_default;
+ var init_getRawTag = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js"() {
+ "use strict";
+ init_Symbol();
+ objectProto = Object.prototype;
+ hasOwnProperty = objectProto.hasOwnProperty;
+ nativeObjectToString = objectProto.toString;
+ symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
+ __name(getRawTag, "getRawTag");
+ getRawTag_default = getRawTag;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js
+ function objectToString(value2) {
+ return nativeObjectToString2.call(value2);
+ }
+ var objectProto2, nativeObjectToString2, objectToString_default;
+ var init_objectToString = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js"() {
+ "use strict";
+ objectProto2 = Object.prototype;
+ nativeObjectToString2 = objectProto2.toString;
+ __name(objectToString, "objectToString");
+ objectToString_default = objectToString;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js
+ function baseGetTag(value2) {
+ if (value2 == null) {
+ return value2 === void 0 ? undefinedTag : nullTag;
+ }
+ return symToStringTag2 && symToStringTag2 in Object(value2) ? getRawTag_default(value2) : objectToString_default(value2);
+ }
+ var nullTag, undefinedTag, symToStringTag2, baseGetTag_default;
+ var init_baseGetTag = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js"() {
+ "use strict";
+ init_Symbol();
+ init_getRawTag();
+ init_objectToString();
+ nullTag = "[object Null]";
+ undefinedTag = "[object Undefined]";
+ symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0;
+ __name(baseGetTag, "baseGetTag");
+ baseGetTag_default = baseGetTag;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js
+ function isObject(value2) {
+ var type3 = typeof value2;
+ return value2 != null && (type3 == "object" || type3 == "function");
+ }
+ var isObject_default;
+ var init_isObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js"() {
+ "use strict";
+ __name(isObject, "isObject");
+ isObject_default = isObject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js
+ function isFunction(value2) {
+ if (!isObject_default(value2)) {
+ return false;
+ }
+ var tag2 = baseGetTag_default(value2);
+ return tag2 == funcTag || tag2 == genTag || tag2 == asyncTag || tag2 == proxyTag;
+ }
+ var asyncTag, funcTag, genTag, proxyTag, isFunction_default;
+ var init_isFunction = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js"() {
+ "use strict";
+ init_baseGetTag();
+ init_isObject();
+ asyncTag = "[object AsyncFunction]";
+ funcTag = "[object Function]";
+ genTag = "[object GeneratorFunction]";
+ proxyTag = "[object Proxy]";
+ __name(isFunction, "isFunction");
+ isFunction_default = isFunction;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js
+ var coreJsData, coreJsData_default;
+ var init_coreJsData = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js"() {
+ "use strict";
+ init_root();
+ coreJsData = root_default["__core-js_shared__"];
+ coreJsData_default = coreJsData;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js
+ function isMasked(func) {
+ return !!maskSrcKey && maskSrcKey in func;
+ }
+ var maskSrcKey, isMasked_default;
+ var init_isMasked = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js"() {
+ "use strict";
+ init_coreJsData();
+ maskSrcKey = function() {
+ var uid = /[^.]+$/.exec(coreJsData_default && coreJsData_default.keys && coreJsData_default.keys.IE_PROTO || "");
+ return uid ? "Symbol(src)_1." + uid : "";
+ }();
+ __name(isMasked, "isMasked");
+ isMasked_default = isMasked;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js
+ function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString.call(func);
+ } catch (e3) {
}
- });
- forEach(cg.edges(), function(e) {
- var entryV = mappedEntries[e.v];
- var entryW = mappedEntries[e.w];
- if (!isUndefined(entryV) && !isUndefined(entryW)) {
- entryW.indegree++;
- entryV.out.push(mappedEntries[e.w]);
+ try {
+ return func + "";
+ } catch (e3) {
}
- });
- var sourceSet = filter(mappedEntries, function(entry) {
- return !entry.indegree;
- });
- return doResolveConflicts(sourceSet);
+ }
+ return "";
}
- function doResolveConflicts(sourceSet) {
- var entries2 = [];
- function handleIn(vEntry) {
- return function(uEntry) {
- if (uEntry.merged) {
- return;
- }
- if (isUndefined(uEntry.barycenter) || isUndefined(vEntry.barycenter) || uEntry.barycenter >= vEntry.barycenter) {
- mergeEntries(vEntry, uEntry);
- }
- };
+ var funcProto, funcToString, toSource_default;
+ var init_toSource = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js"() {
+ "use strict";
+ funcProto = Function.prototype;
+ funcToString = funcProto.toString;
+ __name(toSource, "toSource");
+ toSource_default = toSource;
}
- function handleOut(vEntry) {
- return function(wEntry) {
- wEntry["in"].push(vEntry);
- if (--wEntry.indegree === 0) {
- sourceSet.push(wEntry);
- }
- };
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js
+ function baseIsNative(value2) {
+ if (!isObject_default(value2) || isMasked_default(value2)) {
+ return false;
}
- while (sourceSet.length) {
- var entry = sourceSet.pop();
- entries2.push(entry);
- forEach(entry["in"].reverse(), handleIn(entry));
- forEach(entry.out, handleOut(entry));
+ var pattern = isFunction_default(value2) ? reIsNative : reIsHostCtor;
+ return pattern.test(toSource_default(value2));
+ }
+ var reRegExpChar, reIsHostCtor, funcProto2, objectProto3, funcToString2, hasOwnProperty2, reIsNative, baseIsNative_default;
+ var init_baseIsNative = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js"() {
+ "use strict";
+ init_isFunction();
+ init_isMasked();
+ init_isObject();
+ init_toSource();
+ reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+ reIsHostCtor = /^\[object .+?Constructor\]$/;
+ funcProto2 = Function.prototype;
+ objectProto3 = Object.prototype;
+ funcToString2 = funcProto2.toString;
+ hasOwnProperty2 = objectProto3.hasOwnProperty;
+ reIsNative = RegExp(
+ "^" + funcToString2.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
+ );
+ __name(baseIsNative, "baseIsNative");
+ baseIsNative_default = baseIsNative;
}
- return map(
- filter(entries2, function(entry2) {
- return !entry2.merged;
- }),
- function(entry2) {
- return pick$1(entry2, ["vs", "i", "barycenter", "weight"]);
- }
- );
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js
+ function getValue(object3, key) {
+ return object3 == null ? void 0 : object3[key];
}
- function mergeEntries(target, source) {
- var sum = 0;
- var weight = 0;
- if (target.weight) {
- sum += target.barycenter * target.weight;
- weight += target.weight;
+ var getValue_default;
+ var init_getValue = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js"() {
+ "use strict";
+ __name(getValue, "getValue");
+ getValue_default = getValue;
}
- if (source.weight) {
- sum += source.barycenter * source.weight;
- weight += source.weight;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js
+ function getNative(object3, key) {
+ var value2 = getValue_default(object3, key);
+ return baseIsNative_default(value2) ? value2 : void 0;
+ }
+ var getNative_default;
+ var init_getNative = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js"() {
+ "use strict";
+ init_baseIsNative();
+ init_getValue();
+ __name(getNative, "getNative");
+ getNative_default = getNative;
}
- target.vs = source.vs.concat(target.vs);
- target.barycenter = sum / weight;
- target.weight = weight;
- target.i = Math.min(source.i, target.i);
- source.merged = true;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js
+ var nativeCreate, nativeCreate_default;
+ var init_nativeCreate = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js"() {
+ "use strict";
+ init_getNative();
+ nativeCreate = getNative_default(Object, "create");
+ nativeCreate_default = nativeCreate;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js
+ function hashClear() {
+ this.__data__ = nativeCreate_default ? nativeCreate_default(null) : {};
+ this.size = 0;
}
- function sort(entries2, biasRight) {
- var parts = partition(entries2, function(entry) {
- return has(entry, "barycenter");
- });
- var sortable = parts.lhs, unsortable = sortBy$1(parts.rhs, function(entry) {
- return -entry.i;
- }), vs = [], sum = 0, weight = 0, vsIndex = 0;
- sortable.sort(compareWithBias(!!biasRight));
- vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
- forEach(sortable, function(entry) {
- vsIndex += entry.vs.length;
- vs.push(entry.vs);
- sum += entry.barycenter * entry.weight;
- weight += entry.weight;
- vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
- });
- var result = { vs: flatten(vs) };
- if (weight) {
- result.barycenter = sum / weight;
- result.weight = weight;
+ var hashClear_default;
+ var init_hashClear = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js"() {
+ "use strict";
+ init_nativeCreate();
+ __name(hashClear, "hashClear");
+ hashClear_default = hashClear;
}
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js
+ function hashDelete(key) {
+ var result = this.has(key) && delete this.__data__[key];
+ this.size -= result ? 1 : 0;
return result;
}
- function consumeUnsortable(vs, unsortable, index) {
- var last$1;
- while (unsortable.length && (last$1 = last(unsortable)).i <= index) {
- unsortable.pop();
- vs.push(last$1.vs);
- index++;
+ var hashDelete_default;
+ var init_hashDelete = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js"() {
+ "use strict";
+ __name(hashDelete, "hashDelete");
+ hashDelete_default = hashDelete;
}
- return index;
- }
- function compareWithBias(bias) {
- return function(entryV, entryW) {
- if (entryV.barycenter < entryW.barycenter) {
- return -1;
- } else if (entryV.barycenter > entryW.barycenter) {
- return 1;
- }
- return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
- };
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js
+ function hashGet(key) {
+ var data5 = this.__data__;
+ if (nativeCreate_default) {
+ var result = data5[key];
+ return result === HASH_UNDEFINED ? void 0 : result;
+ }
+ return hasOwnProperty3.call(data5, key) ? data5[key] : void 0;
+ }
+ var HASH_UNDEFINED, objectProto4, hasOwnProperty3, hashGet_default;
+ var init_hashGet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js"() {
+ "use strict";
+ init_nativeCreate();
+ HASH_UNDEFINED = "__lodash_hash_undefined__";
+ objectProto4 = Object.prototype;
+ hasOwnProperty3 = objectProto4.hasOwnProperty;
+ __name(hashGet, "hashGet");
+ hashGet_default = hashGet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js
+ function hashHas(key) {
+ var data5 = this.__data__;
+ return nativeCreate_default ? data5[key] !== void 0 : hasOwnProperty4.call(data5, key);
+ }
+ var objectProto5, hasOwnProperty4, hashHas_default;
+ var init_hashHas = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js"() {
+ "use strict";
+ init_nativeCreate();
+ objectProto5 = Object.prototype;
+ hasOwnProperty4 = objectProto5.hasOwnProperty;
+ __name(hashHas, "hashHas");
+ hashHas_default = hashHas;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js
+ function hashSet(key, value2) {
+ var data5 = this.__data__;
+ this.size += this.has(key) ? 0 : 1;
+ data5[key] = nativeCreate_default && value2 === void 0 ? HASH_UNDEFINED2 : value2;
+ return this;
}
- function sortSubgraph(g, v, cg, biasRight) {
- var movable = g.children(v);
- var node2 = g.node(v);
- var bl = node2 ? node2.borderLeft : void 0;
- var br = node2 ? node2.borderRight : void 0;
- var subgraphs = {};
- if (bl) {
- movable = filter(movable, function(w2) {
- return w2 !== bl && w2 !== br;
- });
+ var HASH_UNDEFINED2, hashSet_default;
+ var init_hashSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js"() {
+ "use strict";
+ init_nativeCreate();
+ HASH_UNDEFINED2 = "__lodash_hash_undefined__";
+ __name(hashSet, "hashSet");
+ hashSet_default = hashSet;
}
- var barycenters = barycenter(g, movable);
- forEach(barycenters, function(entry) {
- if (g.children(entry.v).length) {
- var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);
- subgraphs[entry.v] = subgraphResult;
- if (has(subgraphResult, "barycenter")) {
- mergeBarycenters(entry, subgraphResult);
- }
- }
- });
- var entries2 = resolveConflicts(barycenters, cg);
- expandSubgraphs(entries2, subgraphs);
- var result = sort(entries2, biasRight);
- if (bl) {
- result.vs = flatten([bl, result.vs, br]);
- if (g.predecessors(bl).length) {
- var blPred = g.node(g.predecessors(bl)[0]), brPred = g.node(g.predecessors(br)[0]);
- if (!has(result, "barycenter")) {
- result.barycenter = 0;
- result.weight = 0;
- }
- result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);
- result.weight += 2;
- }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js
+ function Hash(entries) {
+ var index = -1, length2 = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length2) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
}
- return result;
}
- function expandSubgraphs(entries2, subgraphs) {
- forEach(entries2, function(entry) {
- entry.vs = flatten(
- entry.vs.map(function(v) {
- if (subgraphs[v]) {
- return subgraphs[v].vs;
- }
- return v;
- })
- );
- });
+ var Hash_default;
+ var init_Hash = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js"() {
+ "use strict";
+ init_hashClear();
+ init_hashDelete();
+ init_hashGet();
+ init_hashHas();
+ init_hashSet();
+ __name(Hash, "Hash");
+ Hash.prototype.clear = hashClear_default;
+ Hash.prototype["delete"] = hashDelete_default;
+ Hash.prototype.get = hashGet_default;
+ Hash.prototype.has = hashHas_default;
+ Hash.prototype.set = hashSet_default;
+ Hash_default = Hash;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js
+ function listCacheClear() {
+ this.__data__ = [];
+ this.size = 0;
}
- function mergeBarycenters(target, other) {
- if (!isUndefined(target.barycenter)) {
- target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight);
- target.weight += other.weight;
- } else {
- target.barycenter = other.barycenter;
- target.weight = other.weight;
+ var listCacheClear_default;
+ var init_listCacheClear = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js"() {
+ "use strict";
+ __name(listCacheClear, "listCacheClear");
+ listCacheClear_default = listCacheClear;
}
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js
+ function eq(value2, other) {
+ return value2 === other || value2 !== value2 && other !== other;
}
- function order(g) {
- var maxRank$1 = maxRank(g), downLayerGraphs = buildLayerGraphs(g, range$1(1, maxRank$1 + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g, range$1(maxRank$1 - 1, -1, -1), "outEdges");
- var layering = initOrder(g);
- assignOrder(g, layering);
- var bestCC = Number.POSITIVE_INFINITY, best;
- for (var i2 = 0, lastBest = 0; lastBest < 4; ++i2, ++lastBest) {
- sweepLayerGraphs(i2 % 2 ? downLayerGraphs : upLayerGraphs, i2 % 4 >= 2);
- layering = buildLayerMatrix(g);
- var cc = crossCount(g, layering);
- if (cc < bestCC) {
- lastBest = 0;
- best = cloneDeep(layering);
- bestCC = cc;
+ var eq_default;
+ var init_eq = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js"() {
+ "use strict";
+ __name(eq, "eq");
+ eq_default = eq;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js
+ function assocIndexOf(array4, key) {
+ var length2 = array4.length;
+ while (length2--) {
+ if (eq_default(array4[length2][0], key)) {
+ return length2;
}
}
- assignOrder(g, best);
+ return -1;
}
- function buildLayerGraphs(g, ranks, relationship) {
- return map(ranks, function(rank2) {
- return buildLayerGraph(g, rank2, relationship);
- });
+ var assocIndexOf_default;
+ var init_assocIndexOf = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js"() {
+ "use strict";
+ init_eq();
+ __name(assocIndexOf, "assocIndexOf");
+ assocIndexOf_default = assocIndexOf;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js
+ function listCacheDelete(key) {
+ var data5 = this.__data__, index = assocIndexOf_default(data5, key);
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data5.length - 1;
+ if (index == lastIndex) {
+ data5.pop();
+ } else {
+ splice.call(data5, index, 1);
+ }
+ --this.size;
+ return true;
}
- function sweepLayerGraphs(layerGraphs, biasRight) {
- var cg = new Graph();
- forEach(layerGraphs, function(lg) {
- var root2 = lg.graph().root;
- var sorted = sortSubgraph(lg, root2, cg, biasRight);
- forEach(sorted.vs, function(v, i2) {
- lg.node(v).order = i2;
- });
- addSubgraphConstraints(lg, cg, sorted.vs);
- });
+ var arrayProto, splice, listCacheDelete_default;
+ var init_listCacheDelete = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js"() {
+ "use strict";
+ init_assocIndexOf();
+ arrayProto = Array.prototype;
+ splice = arrayProto.splice;
+ __name(listCacheDelete, "listCacheDelete");
+ listCacheDelete_default = listCacheDelete;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js
+ function listCacheGet(key) {
+ var data5 = this.__data__, index = assocIndexOf_default(data5, key);
+ return index < 0 ? void 0 : data5[index][1];
}
- function assignOrder(g, layering) {
- forEach(layering, function(layer) {
- forEach(layer, function(v, i2) {
- g.node(v).order = i2;
- });
- });
+ var listCacheGet_default;
+ var init_listCacheGet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js"() {
+ "use strict";
+ init_assocIndexOf();
+ __name(listCacheGet, "listCacheGet");
+ listCacheGet_default = listCacheGet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js
+ function listCacheHas(key) {
+ return assocIndexOf_default(this.__data__, key) > -1;
}
- function parentDummyChains(g) {
- var postorderNums = postorder(g);
- forEach(g.graph().dummyChains, function(v) {
- var node2 = g.node(v);
- var edgeObj = node2.edgeObj;
- var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);
- var path2 = pathData.path;
- var lca = pathData.lca;
- var pathIdx = 0;
- var pathV = path2[pathIdx];
- var ascending2 = true;
- while (v !== edgeObj.w) {
- node2 = g.node(v);
- if (ascending2) {
- while ((pathV = path2[pathIdx]) !== lca && g.node(pathV).maxRank < node2.rank) {
- pathIdx++;
- }
- if (pathV === lca) {
- ascending2 = false;
- }
- }
- if (!ascending2) {
- while (pathIdx < path2.length - 1 && g.node(pathV = path2[pathIdx + 1]).minRank <= node2.rank) {
- pathIdx++;
- }
- pathV = path2[pathIdx];
- }
- g.setParent(v, pathV);
- v = g.successors(v)[0];
- }
- });
+ var listCacheHas_default;
+ var init_listCacheHas = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js"() {
+ "use strict";
+ init_assocIndexOf();
+ __name(listCacheHas, "listCacheHas");
+ listCacheHas_default = listCacheHas;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js
+ function listCacheSet(key, value2) {
+ var data5 = this.__data__, index = assocIndexOf_default(data5, key);
+ if (index < 0) {
+ ++this.size;
+ data5.push([key, value2]);
+ } else {
+ data5[index][1] = value2;
+ }
+ return this;
}
- function findPath(g, postorderNums, v, w2) {
- var vPath = [];
- var wPath = [];
- var low = Math.min(postorderNums[v].low, postorderNums[w2].low);
- var lim = Math.max(postorderNums[v].lim, postorderNums[w2].lim);
- var parent;
- var lca;
- parent = v;
- do {
- parent = g.parent(parent);
- vPath.push(parent);
- } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));
- lca = parent;
- parent = w2;
- while ((parent = g.parent(parent)) !== lca) {
- wPath.push(parent);
+ var listCacheSet_default;
+ var init_listCacheSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js"() {
+ "use strict";
+ init_assocIndexOf();
+ __name(listCacheSet, "listCacheSet");
+ listCacheSet_default = listCacheSet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js
+ function ListCache(entries) {
+ var index = -1, length2 = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length2) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
}
- return { path: vPath.concat(wPath.reverse()), lca };
}
- function postorder(g) {
- var result = {};
- var lim = 0;
- function dfs2(v) {
- var low = lim;
- forEach(g.children(v), dfs2);
- result[v] = { low, lim: lim++ };
+ var ListCache_default;
+ var init_ListCache = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js"() {
+ "use strict";
+ init_listCacheClear();
+ init_listCacheDelete();
+ init_listCacheGet();
+ init_listCacheHas();
+ init_listCacheSet();
+ __name(ListCache, "ListCache");
+ ListCache.prototype.clear = listCacheClear_default;
+ ListCache.prototype["delete"] = listCacheDelete_default;
+ ListCache.prototype.get = listCacheGet_default;
+ ListCache.prototype.has = listCacheHas_default;
+ ListCache.prototype.set = listCacheSet_default;
+ ListCache_default = ListCache;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js
+ var Map2, Map_default;
+ var init_Map = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js"() {
+ "use strict";
+ init_getNative();
+ init_root();
+ Map2 = getNative_default(root_default, "Map");
+ Map_default = Map2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js
+ function mapCacheClear() {
+ this.size = 0;
+ this.__data__ = {
+ "hash": new Hash_default(),
+ "map": new (Map_default || ListCache_default)(),
+ "string": new Hash_default()
+ };
+ }
+ var mapCacheClear_default;
+ var init_mapCacheClear = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js"() {
+ "use strict";
+ init_Hash();
+ init_ListCache();
+ init_Map();
+ __name(mapCacheClear, "mapCacheClear");
+ mapCacheClear_default = mapCacheClear;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js
+ function isKeyable(value2) {
+ var type3 = typeof value2;
+ return type3 == "string" || type3 == "number" || type3 == "symbol" || type3 == "boolean" ? value2 !== "__proto__" : value2 === null;
+ }
+ var isKeyable_default;
+ var init_isKeyable = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js"() {
+ "use strict";
+ __name(isKeyable, "isKeyable");
+ isKeyable_default = isKeyable;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js
+ function getMapData(map5, key) {
+ var data5 = map5.__data__;
+ return isKeyable_default(key) ? data5[typeof key == "string" ? "string" : "hash"] : data5.map;
+ }
+ var getMapData_default;
+ var init_getMapData = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js"() {
+ "use strict";
+ init_isKeyable();
+ __name(getMapData, "getMapData");
+ getMapData_default = getMapData;
}
- forEach(g.children(), dfs2);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js
+ function mapCacheDelete(key) {
+ var result = getMapData_default(this, key)["delete"](key);
+ this.size -= result ? 1 : 0;
return result;
}
- function findType1Conflicts(g, layering) {
- var conflicts = {};
- function visitLayer(prevLayer, layer) {
- var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = last(layer);
- forEach(layer, function(v, i2) {
- var w2 = findOtherInnerSegmentNode(g, v), k1 = w2 ? g.node(w2).order : prevLayerLength;
- if (w2 || v === lastNode) {
- forEach(layer.slice(scanPos, i2 + 1), function(scanNode) {
- forEach(g.predecessors(scanNode), function(u2) {
- var uLabel = g.node(u2), uPos = uLabel.order;
- if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {
- addConflict(conflicts, u2, scanNode);
- }
- });
- });
- scanPos = i2 + 1;
- k0 = k1;
- }
- });
- return layer;
+ var mapCacheDelete_default;
+ var init_mapCacheDelete = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js"() {
+ "use strict";
+ init_getMapData();
+ __name(mapCacheDelete, "mapCacheDelete");
+ mapCacheDelete_default = mapCacheDelete;
}
- reduce(layering, visitLayer);
- return conflicts;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js
+ function mapCacheGet(key) {
+ return getMapData_default(this, key).get(key);
}
- function findType2Conflicts(g, layering) {
- var conflicts = {};
- function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
- var v;
- forEach(range$1(southPos, southEnd), function(i2) {
- v = south[i2];
- if (g.node(v).dummy) {
- forEach(g.predecessors(v), function(u2) {
- var uNode = g.node(u2);
- if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {
- addConflict(conflicts, u2, v);
- }
- });
- }
- });
+ var mapCacheGet_default;
+ var init_mapCacheGet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js"() {
+ "use strict";
+ init_getMapData();
+ __name(mapCacheGet, "mapCacheGet");
+ mapCacheGet_default = mapCacheGet;
}
- function visitLayer(north, south) {
- var prevNorthPos = -1, nextNorthPos, southPos = 0;
- forEach(south, function(v, southLookahead) {
- if (g.node(v).dummy === "border") {
- var predecessors = g.predecessors(v);
- if (predecessors.length) {
- nextNorthPos = g.node(predecessors[0]).order;
- scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);
- southPos = southLookahead;
- prevNorthPos = nextNorthPos;
- }
- }
- scan(south, southPos, south.length, nextNorthPos, north.length);
- });
- return south;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js
+ function mapCacheHas(key) {
+ return getMapData_default(this, key).has(key);
+ }
+ var mapCacheHas_default;
+ var init_mapCacheHas = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js"() {
+ "use strict";
+ init_getMapData();
+ __name(mapCacheHas, "mapCacheHas");
+ mapCacheHas_default = mapCacheHas;
}
- reduce(layering, visitLayer);
- return conflicts;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js
+ function mapCacheSet(key, value2) {
+ var data5 = getMapData_default(this, key), size5 = data5.size;
+ data5.set(key, value2);
+ this.size += data5.size == size5 ? 0 : 1;
+ return this;
}
- function findOtherInnerSegmentNode(g, v) {
- if (g.node(v).dummy) {
- return find$1(g.predecessors(v), function(u2) {
- return g.node(u2).dummy;
- });
+ var mapCacheSet_default;
+ var init_mapCacheSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js"() {
+ "use strict";
+ init_getMapData();
+ __name(mapCacheSet, "mapCacheSet");
+ mapCacheSet_default = mapCacheSet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js
+ function MapCache(entries) {
+ var index = -1, length2 = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length2) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
}
}
- function addConflict(conflicts, v, w2) {
- if (v > w2) {
- var tmp = v;
- v = w2;
- w2 = tmp;
+ var MapCache_default;
+ var init_MapCache = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js"() {
+ "use strict";
+ init_mapCacheClear();
+ init_mapCacheDelete();
+ init_mapCacheGet();
+ init_mapCacheHas();
+ init_mapCacheSet();
+ __name(MapCache, "MapCache");
+ MapCache.prototype.clear = mapCacheClear_default;
+ MapCache.prototype["delete"] = mapCacheDelete_default;
+ MapCache.prototype.get = mapCacheGet_default;
+ MapCache.prototype.has = mapCacheHas_default;
+ MapCache.prototype.set = mapCacheSet_default;
+ MapCache_default = MapCache;
}
- var conflictsV = conflicts[v];
- if (!conflictsV) {
- conflicts[v] = conflictsV = {};
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js
+ function memoize(func, resolver3) {
+ if (typeof func != "function" || resolver3 != null && typeof resolver3 != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT);
}
- conflictsV[w2] = true;
+ var memoized = /* @__PURE__ */ __name(function() {
+ var args = arguments, key = resolver3 ? resolver3.apply(this, args) : args[0], cache3 = memoized.cache;
+ if (cache3.has(key)) {
+ return cache3.get(key);
+ }
+ var result = func.apply(this, args);
+ memoized.cache = cache3.set(key, result) || cache3;
+ return result;
+ }, "memoized");
+ memoized.cache = new (memoize.Cache || MapCache_default)();
+ return memoized;
}
- function hasConflict(conflicts, v, w2) {
- if (v > w2) {
- var tmp = v;
- v = w2;
- w2 = tmp;
+ var FUNC_ERROR_TEXT, memoize_default;
+ var init_memoize = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js"() {
+ "use strict";
+ init_MapCache();
+ FUNC_ERROR_TEXT = "Expected a function";
+ __name(memoize, "memoize");
+ memoize.Cache = MapCache_default;
+ memoize_default = memoize;
}
- return has(conflicts[v], w2);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js
+ function stackClear() {
+ this.__data__ = new ListCache_default();
+ this.size = 0;
}
- function verticalAlignment(g, layering, conflicts, neighborFn) {
- var root2 = {}, align = {}, pos = {};
- forEach(layering, function(layer) {
- forEach(layer, function(v, order2) {
- root2[v] = v;
- align[v] = v;
- pos[v] = order2;
- });
- });
- forEach(layering, function(layer) {
- var prevIdx = -1;
- forEach(layer, function(v) {
- var ws = neighborFn(v);
- if (ws.length) {
- ws = sortBy$1(ws, function(w3) {
- return pos[w3];
- });
- var mp = (ws.length - 1) / 2;
- for (var i2 = Math.floor(mp), il = Math.ceil(mp); i2 <= il; ++i2) {
- var w2 = ws[i2];
- if (align[v] === v && prevIdx < pos[w2] && !hasConflict(conflicts, v, w2)) {
- align[w2] = v;
- align[v] = root2[v] = root2[w2];
- prevIdx = pos[w2];
- }
- }
- }
- });
- });
- return { root: root2, align };
+ var stackClear_default;
+ var init_stackClear = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js"() {
+ "use strict";
+ init_ListCache();
+ __name(stackClear, "stackClear");
+ stackClear_default = stackClear;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js
+ function stackDelete(key) {
+ var data5 = this.__data__, result = data5["delete"](key);
+ this.size = data5.size;
+ return result;
}
- function horizontalCompaction(g, layering, root2, align, reverseSep) {
- var xs = {}, blockG = buildBlockGraph(g, layering, root2, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight";
- function iterate(setXsFunc, nextNodesFunc) {
- var stack = blockG.nodes();
- var elem = stack.pop();
- var visited = {};
- while (elem) {
- if (visited[elem]) {
- setXsFunc(elem);
- } else {
- visited[elem] = true;
- stack.push(elem);
- stack = stack.concat(nextNodesFunc(elem));
- }
- elem = stack.pop();
- }
+ var stackDelete_default;
+ var init_stackDelete = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js"() {
+ "use strict";
+ __name(stackDelete, "stackDelete");
+ stackDelete_default = stackDelete;
}
- function pass1(elem) {
- xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {
- return Math.max(acc, xs[e.v] + blockG.edge(e));
- }, 0);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js
+ function stackGet(key) {
+ return this.__data__.get(key);
+ }
+ var stackGet_default;
+ var init_stackGet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js"() {
+ "use strict";
+ __name(stackGet, "stackGet");
+ stackGet_default = stackGet;
}
- function pass2(elem) {
- var min2 = blockG.outEdges(elem).reduce(function(acc, e) {
- return Math.min(acc, xs[e.w] - blockG.edge(e));
- }, Number.POSITIVE_INFINITY);
- var node2 = g.node(elem);
- if (min2 !== Number.POSITIVE_INFINITY && node2.borderType !== borderType) {
- xs[elem] = Math.max(xs[elem], min2);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js
+ function stackHas(key) {
+ return this.__data__.has(key);
+ }
+ var stackHas_default;
+ var init_stackHas = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js"() {
+ "use strict";
+ __name(stackHas, "stackHas");
+ stackHas_default = stackHas;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js
+ function stackSet(key, value2) {
+ var data5 = this.__data__;
+ if (data5 instanceof ListCache_default) {
+ var pairs2 = data5.__data__;
+ if (!Map_default || pairs2.length < LARGE_ARRAY_SIZE - 1) {
+ pairs2.push([key, value2]);
+ this.size = ++data5.size;
+ return this;
}
+ data5 = this.__data__ = new MapCache_default(pairs2);
}
- iterate(pass1, blockG.predecessors.bind(blockG));
- iterate(pass2, blockG.successors.bind(blockG));
- forEach(align, function(v) {
- xs[v] = xs[root2[v]];
- });
- return xs;
- }
- function buildBlockGraph(g, layering, root2, reverseSep) {
- var blockGraph = new Graph(), graphLabel = g.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);
- forEach(layering, function(layer) {
- var u2;
- forEach(layer, function(v) {
- var vRoot = root2[v];
- blockGraph.setNode(vRoot);
- if (u2) {
- var uRoot = root2[u2], prevMax = blockGraph.edge(uRoot, vRoot);
- blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u2), prevMax || 0));
- }
- u2 = v;
- });
- });
- return blockGraph;
- }
- function findSmallestWidthAlignment(g, xss) {
- return minBy(values(xss), function(xs) {
- var max2 = Number.NEGATIVE_INFINITY;
- var min2 = Number.POSITIVE_INFINITY;
- forIn(xs, function(x2, v) {
- var halfWidth = width$1(g, v) / 2;
- max2 = Math.max(x2 + halfWidth, max2);
- min2 = Math.min(x2 - halfWidth, min2);
- });
- return max2 - min2;
- });
+ data5.set(key, value2);
+ this.size = data5.size;
+ return this;
}
- function alignCoordinates(xss, alignTo) {
- var alignToVals = values(alignTo), alignToMin = min(alignToVals), alignToMax = max(alignToVals);
- forEach(["u", "d"], function(vert) {
- forEach(["l", "r"], function(horiz) {
- var alignment = vert + horiz, xs = xss[alignment], delta;
- if (xs === alignTo)
- return;
- var xsVals = values(xs);
- delta = horiz === "l" ? alignToMin - min(xsVals) : alignToMax - max(xsVals);
- if (delta) {
- xss[alignment] = mapValues(xs, function(x2) {
- return x2 + delta;
- });
+ var LARGE_ARRAY_SIZE, stackSet_default;
+ var init_stackSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js"() {
+ "use strict";
+ init_ListCache();
+ init_Map();
+ init_MapCache();
+ LARGE_ARRAY_SIZE = 200;
+ __name(stackSet, "stackSet");
+ stackSet_default = stackSet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js
+ function Stack(entries) {
+ var data5 = this.__data__ = new ListCache_default(entries);
+ this.size = data5.size;
+ }
+ var Stack_default;
+ var init_Stack = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js"() {
+ "use strict";
+ init_ListCache();
+ init_stackClear();
+ init_stackDelete();
+ init_stackGet();
+ init_stackHas();
+ init_stackSet();
+ __name(Stack, "Stack");
+ Stack.prototype.clear = stackClear_default;
+ Stack.prototype["delete"] = stackDelete_default;
+ Stack.prototype.get = stackGet_default;
+ Stack.prototype.has = stackHas_default;
+ Stack.prototype.set = stackSet_default;
+ Stack_default = Stack;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js
+ var defineProperty, defineProperty_default;
+ var init_defineProperty = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js"() {
+ "use strict";
+ init_getNative();
+ defineProperty = function() {
+ try {
+ var func = getNative_default(Object, "defineProperty");
+ func({}, "", {});
+ return func;
+ } catch (e3) {
}
+ }();
+ defineProperty_default = defineProperty;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js
+ function baseAssignValue(object3, key, value2) {
+ if (key == "__proto__" && defineProperty_default) {
+ defineProperty_default(object3, key, {
+ "configurable": true,
+ "enumerable": true,
+ "value": value2,
+ "writable": true
});
- });
- }
- function balance(xss, align) {
- return mapValues(xss.ul, function(ignore, v) {
- if (align) {
- return xss[align.toLowerCase()][v];
- } else {
- var xs = sortBy$1(map(xss, v));
- return (xs[1] + xs[2]) / 2;
- }
- });
+ } else {
+ object3[key] = value2;
+ }
}
- function positionX(g) {
- var layering = buildLayerMatrix(g);
- var conflicts = merge$2(findType1Conflicts(g, layering), findType2Conflicts(g, layering));
- var xss = {};
- var adjustedLayering;
- forEach(["u", "d"], function(vert) {
- adjustedLayering = vert === "u" ? layering : values(layering).reverse();
- forEach(["l", "r"], function(horiz) {
- if (horiz === "r") {
- adjustedLayering = map(adjustedLayering, function(inner) {
- return values(inner).reverse();
- });
- }
- var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g);
- var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
- var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === "r");
- if (horiz === "r") {
- xs = mapValues(xs, function(x2) {
- return -x2;
- });
- }
- xss[vert + horiz] = xs;
- });
- });
- var smallestWidth = findSmallestWidthAlignment(g, xss);
- alignCoordinates(xss, smallestWidth);
- return balance(xss, g.graph().align);
+ var baseAssignValue_default;
+ var init_baseAssignValue = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js"() {
+ "use strict";
+ init_defineProperty();
+ __name(baseAssignValue, "baseAssignValue");
+ baseAssignValue_default = baseAssignValue;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js
+ function assignMergeValue(object3, key, value2) {
+ if (value2 !== void 0 && !eq_default(object3[key], value2) || value2 === void 0 && !(key in object3)) {
+ baseAssignValue_default(object3, key, value2);
+ }
}
- function sep(nodeSep, edgeSep, reverseSep) {
- return function(g, v, w2) {
- var vLabel = g.node(v);
- var wLabel = g.node(w2);
- var sum = 0;
- var delta;
- sum += vLabel.width / 2;
- if (has(vLabel, "labelpos")) {
- switch (vLabel.labelpos.toLowerCase()) {
- case "l":
- delta = -vLabel.width / 2;
- break;
- case "r":
- delta = vLabel.width / 2;
- break;
- }
- }
- if (delta) {
- sum += reverseSep ? delta : -delta;
- }
- delta = 0;
- sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;
- sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;
- sum += wLabel.width / 2;
- if (has(wLabel, "labelpos")) {
- switch (wLabel.labelpos.toLowerCase()) {
- case "l":
- delta = wLabel.width / 2;
- break;
- case "r":
- delta = -wLabel.width / 2;
- break;
+ var assignMergeValue_default;
+ var init_assignMergeValue = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js"() {
+ "use strict";
+ init_baseAssignValue();
+ init_eq();
+ __name(assignMergeValue, "assignMergeValue");
+ assignMergeValue_default = assignMergeValue;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js
+ function createBaseFor(fromRight) {
+ return function(object3, iteratee, keysFunc) {
+ var index = -1, iterable = Object(object3), props = keysFunc(object3), length2 = props.length;
+ while (length2--) {
+ var key = props[fromRight ? length2 : ++index];
+ if (iteratee(iterable[key], key, iterable) === false) {
+ break;
}
}
- if (delta) {
- sum += reverseSep ? delta : -delta;
- }
- delta = 0;
- return sum;
+ return object3;
};
}
- function width$1(g, v) {
- return g.node(v).width;
- }
- function position(g) {
- g = asNonCompoundGraph(g);
- positionY(g);
- forOwn(positionX(g), function(x2, v) {
- g.node(v).x = x2;
- });
- }
- function positionY(g) {
- var layering = buildLayerMatrix(g);
- var rankSep = g.graph().ranksep;
- var prevY = 0;
- forEach(layering, function(layer) {
- var maxHeight = max(
- map(layer, function(v) {
- return g.node(v).height;
- })
- );
- forEach(layer, function(v) {
- g.node(v).y = prevY + maxHeight / 2;
- });
- prevY += maxHeight + rankSep;
- });
- }
- function layout(g, opts) {
- var time$12 = opts && opts.debugTiming ? time : notime;
- time$12("layout", function() {
- var layoutGraph = time$12(" buildLayoutGraph", function() {
- return buildLayoutGraph(g);
- });
- time$12(" runLayout", function() {
- runLayout(layoutGraph, time$12);
- });
- time$12(" updateInputGraph", function() {
- updateInputGraph(g, layoutGraph);
- });
- });
- }
- function runLayout(g, time2) {
- time2(" makeSpaceForEdgeLabels", function() {
- makeSpaceForEdgeLabels(g);
- });
- time2(" removeSelfEdges", function() {
- removeSelfEdges(g);
- });
- time2(" acyclic", function() {
- run$2(g);
- });
- time2(" nestingGraph.run", function() {
- run(g);
- });
- time2(" rank", function() {
- rank(asNonCompoundGraph(g));
- });
- time2(" injectEdgeLabelProxies", function() {
- injectEdgeLabelProxies(g);
- });
- time2(" removeEmptyRanks", function() {
- removeEmptyRanks(g);
- });
- time2(" nestingGraph.cleanup", function() {
- cleanup(g);
- });
- time2(" normalizeRanks", function() {
- normalizeRanks(g);
- });
- time2(" assignRankMinMax", function() {
- assignRankMinMax(g);
- });
- time2(" removeEdgeLabelProxies", function() {
- removeEdgeLabelProxies(g);
- });
- time2(" normalize.run", function() {
- run$1(g);
- });
- time2(" parentDummyChains", function() {
- parentDummyChains(g);
- });
- time2(" addBorderSegments", function() {
- addBorderSegments(g);
- });
- time2(" order", function() {
- order(g);
- });
- time2(" insertSelfEdges", function() {
- insertSelfEdges(g);
- });
- time2(" adjustCoordinateSystem", function() {
- adjust(g);
- });
- time2(" position", function() {
- position(g);
- });
- time2(" positionSelfEdges", function() {
- positionSelfEdges(g);
- });
- time2(" removeBorderNodes", function() {
- removeBorderNodes(g);
- });
- time2(" normalize.undo", function() {
- undo(g);
- });
- time2(" fixupEdgeLabelCoords", function() {
- fixupEdgeLabelCoords(g);
- });
- time2(" undoCoordinateSystem", function() {
- undo$1(g);
- });
- time2(" translateGraph", function() {
- translateGraph(g);
- });
- time2(" assignNodeIntersects", function() {
- assignNodeIntersects(g);
- });
- time2(" reversePoints", function() {
- reversePointsForReversedEdges(g);
- });
- time2(" acyclic.undo", function() {
- undo$2(g);
- });
- }
- function updateInputGraph(inputGraph, layoutGraph) {
- forEach(inputGraph.nodes(), function(v) {
- var inputLabel = inputGraph.node(v);
- var layoutLabel = layoutGraph.node(v);
- if (inputLabel) {
- inputLabel.x = layoutLabel.x;
- inputLabel.y = layoutLabel.y;
- if (layoutGraph.children(v).length) {
- inputLabel.width = layoutLabel.width;
- inputLabel.height = layoutLabel.height;
- }
- }
- });
- forEach(inputGraph.edges(), function(e) {
- var inputLabel = inputGraph.edge(e);
- var layoutLabel = layoutGraph.edge(e);
- inputLabel.points = layoutLabel.points;
- if (has(layoutLabel, "x")) {
- inputLabel.x = layoutLabel.x;
- inputLabel.y = layoutLabel.y;
- }
- });
- inputGraph.graph().width = layoutGraph.graph().width;
- inputGraph.graph().height = layoutGraph.graph().height;
- }
- var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
- var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
- var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
- var nodeNumAttrs = ["width", "height"];
- var nodeDefaults = { width: 0, height: 0 };
- var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
- var edgeDefaults = {
- minlen: 1,
- weight: 1,
- width: 0,
- height: 0,
- labeloffset: 10,
- labelpos: "r"
- };
- var edgeAttrs = ["labelpos"];
- function buildLayoutGraph(inputGraph) {
- var g = new Graph({ multigraph: true, compound: true });
- var graph = canonicalize(inputGraph.graph());
- g.setGraph(
- merge$2({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), pick$1(graph, graphAttrs))
- );
- forEach(inputGraph.nodes(), function(v) {
- var node2 = canonicalize(inputGraph.node(v));
- g.setNode(v, defaults$1(selectNumberAttrs(node2, nodeNumAttrs), nodeDefaults));
- g.setParent(v, inputGraph.parent(v));
- });
- forEach(inputGraph.edges(), function(e) {
- var edge = canonicalize(inputGraph.edge(e));
- g.setEdge(
- e,
- merge$2({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), pick$1(edge, edgeAttrs))
- );
- });
- return g;
- }
- function makeSpaceForEdgeLabels(g) {
- var graph = g.graph();
- graph.ranksep /= 2;
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- edge.minlen *= 2;
- if (edge.labelpos.toLowerCase() !== "c") {
- if (graph.rankdir === "TB" || graph.rankdir === "BT") {
- edge.width += edge.labeloffset;
- } else {
- edge.height += edge.labeloffset;
- }
- }
- });
- }
- function injectEdgeLabelProxies(g) {
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- if (edge.width && edge.height) {
- var v = g.node(e.v);
- var w2 = g.node(e.w);
- var label = { rank: (w2.rank - v.rank) / 2 + v.rank, e };
- addDummyNode(g, "edge-proxy", label, "_ep");
- }
- });
- }
- function assignRankMinMax(g) {
- var maxRank2 = 0;
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v);
- if (node2.borderTop) {
- node2.minRank = g.node(node2.borderTop).rank;
- node2.maxRank = g.node(node2.borderBottom).rank;
- maxRank2 = max(maxRank2, node2.maxRank);
- }
- });
- g.graph().maxRank = maxRank2;
- }
- function removeEdgeLabelProxies(g) {
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v);
- if (node2.dummy === "edge-proxy") {
- g.edge(node2.e).labelRank = node2.rank;
- g.removeNode(v);
- }
- });
- }
- function translateGraph(g) {
- var minX = Number.POSITIVE_INFINITY;
- var maxX = 0;
- var minY = Number.POSITIVE_INFINITY;
- var maxY = 0;
- var graphLabel = g.graph();
- var marginX = graphLabel.marginx || 0;
- var marginY = graphLabel.marginy || 0;
- function getExtremes(attrs) {
- var x2 = attrs.x;
- var y2 = attrs.y;
- var w2 = attrs.width;
- var h = attrs.height;
- minX = Math.min(minX, x2 - w2 / 2);
- maxX = Math.max(maxX, x2 + w2 / 2);
- minY = Math.min(minY, y2 - h / 2);
- maxY = Math.max(maxY, y2 + h / 2);
- }
- forEach(g.nodes(), function(v) {
- getExtremes(g.node(v));
- });
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- if (has(edge, "x")) {
- getExtremes(edge);
- }
- });
- minX -= marginX;
- minY -= marginY;
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v);
- node2.x -= minX;
- node2.y -= minY;
- });
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- forEach(edge.points, function(p) {
- p.x -= minX;
- p.y -= minY;
- });
- if (has(edge, "x")) {
- edge.x -= minX;
- }
- if (has(edge, "y")) {
- edge.y -= minY;
- }
- });
- graphLabel.width = maxX - minX + marginX;
- graphLabel.height = maxY - minY + marginY;
- }
- function assignNodeIntersects(g) {
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- var nodeV = g.node(e.v);
- var nodeW = g.node(e.w);
- var p1, p2;
- if (!edge.points) {
- edge.points = [];
- p1 = nodeW;
- p2 = nodeV;
- } else {
- p1 = edge.points[0];
- p2 = edge.points[edge.points.length - 1];
- }
- edge.points.unshift(intersectRect$3(nodeV, p1));
- edge.points.push(intersectRect$3(nodeW, p2));
- });
- }
- function fixupEdgeLabelCoords(g) {
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- if (has(edge, "x")) {
- if (edge.labelpos === "l" || edge.labelpos === "r") {
- edge.width -= edge.labeloffset;
- }
- switch (edge.labelpos) {
- case "l":
- edge.x -= edge.width / 2 + edge.labeloffset;
- break;
- case "r":
- edge.x += edge.width / 2 + edge.labeloffset;
- break;
- }
- }
- });
- }
- function reversePointsForReversedEdges(g) {
- forEach(g.edges(), function(e) {
- var edge = g.edge(e);
- if (edge.reversed) {
- edge.points.reverse();
- }
- });
- }
- function removeBorderNodes(g) {
- forEach(g.nodes(), function(v) {
- if (g.children(v).length) {
- var node2 = g.node(v);
- var t4 = g.node(node2.borderTop);
- var b = g.node(node2.borderBottom);
- var l = g.node(last(node2.borderLeft));
- var r = g.node(last(node2.borderRight));
- node2.width = Math.abs(r.x - l.x);
- node2.height = Math.abs(b.y - t4.y);
- node2.x = l.x + node2.width / 2;
- node2.y = t4.y + node2.height / 2;
- }
- });
- forEach(g.nodes(), function(v) {
- if (g.node(v).dummy === "border") {
- g.removeNode(v);
- }
- });
- }
- function removeSelfEdges(g) {
- forEach(g.edges(), function(e) {
- if (e.v === e.w) {
- var node2 = g.node(e.v);
- if (!node2.selfEdges) {
- node2.selfEdges = [];
- }
- node2.selfEdges.push({ e, label: g.edge(e) });
- g.removeEdge(e);
- }
- });
- }
- function insertSelfEdges(g) {
- var layers = buildLayerMatrix(g);
- forEach(layers, function(layer) {
- var orderShift = 0;
- forEach(layer, function(v, i2) {
- var node2 = g.node(v);
- node2.order = i2 + orderShift;
- forEach(node2.selfEdges, function(selfEdge) {
- addDummyNode(
- g,
- "selfedge",
- {
- width: selfEdge.label.width,
- height: selfEdge.label.height,
- rank: node2.rank,
- order: i2 + ++orderShift,
- e: selfEdge.e,
- label: selfEdge.label
- },
- "_se"
- );
- });
- delete node2.selfEdges;
- });
- });
- }
- function positionSelfEdges(g) {
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v);
- if (node2.dummy === "selfedge") {
- var selfNode = g.node(node2.e.v);
- var x2 = selfNode.x + selfNode.width / 2;
- var y2 = selfNode.y;
- var dx = node2.x - x2;
- var dy = selfNode.height / 2;
- g.setEdge(node2.e, node2.label);
- g.removeNode(v);
- node2.label.points = [
- { x: x2 + 2 * dx / 3, y: y2 - dy },
- { x: x2 + 5 * dx / 6, y: y2 - dy },
- { x: x2 + dx, y: y2 },
- { x: x2 + 5 * dx / 6, y: y2 + dy },
- { x: x2 + 2 * dx / 3, y: y2 + dy }
- ];
- node2.label.x = node2.x;
- node2.label.y = node2.y;
- }
- });
- }
- function selectNumberAttrs(obj, attrs) {
- return mapValues(pick$1(obj, attrs), Number);
- }
- function canonicalize(attrs) {
- var newAttrs = {};
- forEach(attrs, function(v, k) {
- newAttrs[k.toLowerCase()] = v;
- });
- return newAttrs;
- }
- function isSubgraph(g, v) {
- return !!g.children(v).length;
- }
- function edgeToId(e) {
- return escapeId(e.v) + ":" + escapeId(e.w) + ":" + escapeId(e.name);
- }
- var ID_DELIM = /:/g;
- function escapeId(str2) {
- return str2 ? String(str2).replace(ID_DELIM, "\\:") : "";
- }
- function applyStyle$2(dom, styleFn) {
- if (styleFn) {
- dom.attr("style", styleFn);
+ var createBaseFor_default;
+ var init_createBaseFor = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js"() {
+ "use strict";
+ __name(createBaseFor, "createBaseFor");
+ createBaseFor_default = createBaseFor;
}
- }
- function applyClass(dom, classFn, otherClasses) {
- if (classFn) {
- dom.attr("class", classFn).attr("class", otherClasses + " " + dom.attr("class"));
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js
+ var baseFor, baseFor_default;
+ var init_baseFor = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js"() {
+ "use strict";
+ init_createBaseFor();
+ baseFor = createBaseFor_default();
+ baseFor_default = baseFor;
}
- }
- function applyTransition(selection2, g) {
- var graph = g.graph();
- if (isPlainObject(graph)) {
- var transition = graph.transition;
- if (isFunction(transition)) {
- return transition(selection2);
- }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js
+ function cloneBuffer(buffer, isDeep) {
+ if (isDeep) {
+ return buffer.slice();
}
- return selection2;
- }
- var arrows = {
- normal,
- vee,
- undirected
- };
- function setArrows(value) {
- arrows = value;
+ var length2 = buffer.length, result = allocUnsafe ? allocUnsafe(length2) : new buffer.constructor(length2);
+ buffer.copy(result);
+ return result;
}
- function normal(parent, id2, edge, type2) {
- var marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
- var path2 = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0");
- applyStyle$2(path2, edge[type2 + "Style"]);
- if (edge[type2 + "Class"]) {
- path2.attr("class", edge[type2 + "Class"]);
+ var freeExports, freeModule, moduleExports, Buffer2, allocUnsafe, cloneBuffer_default;
+ var init_cloneBuffer = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js"() {
+ "use strict";
+ init_root();
+ freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
+ freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
+ moduleExports = freeModule && freeModule.exports === freeExports;
+ Buffer2 = moduleExports ? root_default.Buffer : void 0;
+ allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0;
+ __name(cloneBuffer, "cloneBuffer");
+ cloneBuffer_default = cloneBuffer;
}
- }
- function vee(parent, id2, edge, type2) {
- var marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
- var path2 = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width", 1).style("stroke-dasharray", "1,0");
- applyStyle$2(path2, edge[type2 + "Style"]);
- if (edge[type2 + "Class"]) {
- path2.attr("class", edge[type2 + "Class"]);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js
+ var Uint8Array2, Uint8Array_default;
+ var init_Uint8Array = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js"() {
+ "use strict";
+ init_root();
+ Uint8Array2 = root_default.Uint8Array;
+ Uint8Array_default = Uint8Array2;
}
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js
+ function cloneArrayBuffer(arrayBuffer) {
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+ new Uint8Array_default(result).set(new Uint8Array_default(arrayBuffer));
+ return result;
}
- function undirected(parent, id2, edge, type2) {
- var marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
- var path2 = marker.append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0");
- applyStyle$2(path2, edge[type2 + "Style"]);
- if (edge[type2 + "Class"]) {
- path2.attr("class", edge[type2 + "Class"]);
+ var cloneArrayBuffer_default;
+ var init_cloneArrayBuffer = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js"() {
+ "use strict";
+ init_Uint8Array();
+ __name(cloneArrayBuffer, "cloneArrayBuffer");
+ cloneArrayBuffer_default = cloneArrayBuffer;
}
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js
+ function cloneTypedArray(typedArray, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}
- function addHtmlLabel$1(root2, node2) {
- var fo = root2.append("foreignObject").attr("width", "100000");
- var div = fo.append("xhtml:div");
- div.attr("xmlns", "http://www.w3.org/1999/xhtml");
- var label = node2.label;
- switch (typeof label) {
- case "function":
- div.insert(label);
- break;
- case "object":
- div.insert(function() {
- return label;
- });
- break;
- default:
- div.html(label);
+ var cloneTypedArray_default;
+ var init_cloneTypedArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js"() {
+ "use strict";
+ init_cloneArrayBuffer();
+ __name(cloneTypedArray, "cloneTypedArray");
+ cloneTypedArray_default = cloneTypedArray;
}
- applyStyle$2(div, node2.labelStyle);
- div.style("display", "inline-block");
- div.style("white-space", "nowrap");
- var client = div.node().getBoundingClientRect();
- fo.attr("width", client.width).attr("height", client.height);
- return fo;
- }
- function addSVGLabel(root2, node2) {
- var domNode = root2;
- domNode.node().appendChild(node2.label);
- applyStyle$2(domNode, node2.labelStyle);
- return domNode;
- }
- function addTextLabel(root2, node2) {
- var domNode = root2.append("text");
- var lines = processEscapeSequences(node2.label).split("\n");
- for (var i2 = 0; i2 < lines.length; i2++) {
- domNode.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(lines[i2]);
- }
- applyStyle$2(domNode, node2.labelStyle);
- return domNode;
- }
- function processEscapeSequences(text2) {
- var newText = "";
- var escaped = false;
- var ch;
- for (var i2 = 0; i2 < text2.length; ++i2) {
- ch = text2[i2];
- if (escaped) {
- switch (ch) {
- case "n":
- newText += "\n";
- break;
- default:
- newText += ch;
- }
- escaped = false;
- } else if (ch === "\\") {
- escaped = true;
- } else {
- newText += ch;
- }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js
+ function copyArray(source, array4) {
+ var index = -1, length2 = source.length;
+ array4 || (array4 = Array(length2));
+ while (++index < length2) {
+ array4[index] = source[index];
}
- return newText;
+ return array4;
}
- function addLabel(root2, node2, location2) {
- var label = node2.label;
- var labelSvg = root2.append("g");
- if (node2.labelType === "svg") {
- addSVGLabel(labelSvg, node2);
- } else if (typeof label !== "string" || node2.labelType === "html") {
- addHtmlLabel$1(labelSvg, node2);
- } else {
- addTextLabel(labelSvg, node2);
+ var copyArray_default;
+ var init_copyArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js"() {
+ "use strict";
+ __name(copyArray, "copyArray");
+ copyArray_default = copyArray;
}
- var labelBBox = labelSvg.node().getBBox();
- var y2;
- switch (location2) {
- case "top":
- y2 = -node2.height / 2;
- break;
- case "bottom":
- y2 = node2.height / 2 - labelBBox.height;
- break;
- default:
- y2 = -labelBBox.height / 2;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js
+ var objectCreate, baseCreate, baseCreate_default;
+ var init_baseCreate = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js"() {
+ "use strict";
+ init_isObject();
+ objectCreate = Object.create;
+ baseCreate = /* @__PURE__ */ function() {
+ function object3() {
+ }
+ __name(object3, "object");
+ return function(proto) {
+ if (!isObject_default(proto)) {
+ return {};
+ }
+ if (objectCreate) {
+ return objectCreate(proto);
+ }
+ object3.prototype = proto;
+ var result = new object3();
+ object3.prototype = void 0;
+ return result;
+ };
+ }();
+ baseCreate_default = baseCreate;
}
- labelSvg.attr("transform", "translate(" + -labelBBox.width / 2 + "," + y2 + ")");
- return labelSvg;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js
+ function overArg(func, transform8) {
+ return function(arg) {
+ return func(transform8(arg));
+ };
}
- var createClusters = function(selection2, g) {
- var clusters = g.nodes().filter(function(v) {
- return isSubgraph(g, v);
- });
- var svgClusters = selection2.selectAll("g.cluster").data(clusters, function(v) {
- return v;
- });
- applyTransition(svgClusters.exit(), g).style("opacity", 0).remove();
- var enterSelection = svgClusters.enter().append("g").attr("class", "cluster").attr("id", function(v) {
- var node2 = g.node(v);
- return node2.id;
- }).style("opacity", 0).each(function(v) {
- var node2 = g.node(v);
- var thisGroup = select(this);
- select(this).append("rect");
- var labelGroup = thisGroup.append("g").attr("class", "label");
- addLabel(labelGroup, node2, node2.clusterLabelPos);
- });
- svgClusters = svgClusters.merge(enterSelection);
- svgClusters = applyTransition(svgClusters, g).style("opacity", 1);
- svgClusters.selectAll("rect").each(function(c2) {
- var node2 = g.node(c2);
- var domCluster = select(this);
- applyStyle$2(domCluster, node2.style);
- });
- return svgClusters;
- };
- function setCreateClusters(value) {
- createClusters = value;
- }
- let createEdgeLabels = function(selection2, g) {
- var svgEdgeLabels = selection2.selectAll("g.edgeLabel").data(g.edges(), function(e) {
- return edgeToId(e);
- }).classed("update", true);
- svgEdgeLabels.exit().remove();
- svgEdgeLabels.enter().append("g").classed("edgeLabel", true).style("opacity", 0);
- svgEdgeLabels = selection2.selectAll("g.edgeLabel");
- svgEdgeLabels.each(function(e) {
- var root2 = select(this);
- root2.select(".label").remove();
- var edge = g.edge(e);
- var label = addLabel(root2, g.edge(e), 0).classed("label", true);
- var bbox = label.node().getBBox();
- if (edge.labelId) {
- label.attr("id", edge.labelId);
- }
- if (!has(edge, "width")) {
- edge.width = bbox.width;
- }
- if (!has(edge, "height")) {
- edge.height = bbox.height;
- }
- });
- var exitSelection;
- if (svgEdgeLabels.exit) {
- exitSelection = svgEdgeLabels.exit();
- } else {
- exitSelection = svgEdgeLabels.selectAll(null);
+ var overArg_default;
+ var init_overArg = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js"() {
+ "use strict";
+ __name(overArg, "overArg");
+ overArg_default = overArg;
}
- applyTransition(exitSelection, g).style("opacity", 0).remove();
- return svgEdgeLabels;
- };
- function setCreateEdgeLabels(value) {
- createEdgeLabels = value;
- }
- function intersectNode$1(node2, point2) {
- return node2.intersect(point2);
- }
- var createEdgePaths = function(selection2, g, arrows2) {
- var previousPaths = selection2.selectAll("g.edgePath").data(g.edges(), function(e) {
- return edgeToId(e);
- }).classed("update", true);
- var newPaths = enter(previousPaths, g);
- exit(previousPaths, g);
- var svgPaths = previousPaths.merge !== void 0 ? previousPaths.merge(newPaths) : previousPaths;
- applyTransition(svgPaths, g).style("opacity", 1);
- svgPaths.each(function(e) {
- var domEdge = select(this);
- var edge = g.edge(e);
- edge.elem = this;
- if (edge.id) {
- domEdge.attr("id", edge.id);
- }
- applyClass(
- domEdge,
- edge["class"],
- (domEdge.classed("update") ? "update " : "") + "edgePath"
- );
- });
- svgPaths.selectAll("path.path").each(function(e) {
- var edge = g.edge(e);
- edge.arrowheadId = uniqueId("arrowhead");
- var domEdge = select(this).attr("marker-end", function() {
- return "url(" + makeFragmentRef(location.href, edge.arrowheadId) + ")";
- }).style("fill", "none");
- applyTransition(domEdge, g).attr("d", function(e3) {
- return calcPoints(g, e3);
- });
- applyStyle$2(domEdge, edge.style);
- });
- svgPaths.selectAll("defs *").remove();
- svgPaths.selectAll("defs").each(function(e) {
- var edge = g.edge(e);
- var arrowhead = arrows2[edge.arrowhead];
- arrowhead(select(this), edge.arrowheadId, edge, "arrowhead");
- });
- return svgPaths;
- };
- function setCreateEdgePaths(value) {
- createEdgePaths = value;
- }
- function makeFragmentRef(url, fragmentId) {
- var baseUrl = url.split("#")[0];
- return baseUrl + "#" + fragmentId;
- }
- function calcPoints(g, e) {
- var edge = g.edge(e);
- var tail = g.node(e.v);
- var head2 = g.node(e.w);
- var points = edge.points.slice(1, edge.points.length - 1);
- points.unshift(intersectNode$1(tail, points[0]));
- points.push(intersectNode$1(head2, points[points.length - 1]));
- return createLine(edge, points);
- }
- function createLine(edge, points) {
- var line2 = (line$1 || svg$2.line)().x(function(d) {
- return d.x;
- }).y(function(d) {
- return d.y;
- });
- (line2.curve || line2.interpolate)(edge.curve);
- return line2(points);
- }
- function getCoords(elem) {
- var bbox = elem.getBBox();
- var matrix = elem.ownerSVGElement.getScreenCTM().inverse().multiply(elem.getScreenCTM()).translate(bbox.width / 2, bbox.height / 2);
- return { x: matrix.e, y: matrix.f };
- }
- function enter(svgPaths, g) {
- var svgPathsEnter = svgPaths.enter().append("g").attr("class", "edgePath").style("opacity", 0);
- svgPathsEnter.append("path").attr("class", "path").attr("d", function(e) {
- var edge = g.edge(e);
- var sourceElem = g.node(e.v).elem;
- var points = range$1(edge.points.length).map(function() {
- return getCoords(sourceElem);
- });
- return createLine(edge, points);
- });
- svgPathsEnter.append("defs");
- return svgPathsEnter;
- }
- function exit(svgPaths, g) {
- var svgPathExit = svgPaths.exit();
- applyTransition(svgPathExit, g).style("opacity", 0).remove();
- }
- var createNodes = function(selection2, g, shapes2) {
- var simpleNodes = g.nodes().filter(function(v) {
- return !isSubgraph(g, v);
- });
- var svgNodes = selection2.selectAll("g.node").data(simpleNodes, function(v) {
- return v;
- }).classed("update", true);
- svgNodes.exit().remove();
- svgNodes.enter().append("g").attr("class", "node").style("opacity", 0);
- svgNodes = selection2.selectAll("g.node");
- svgNodes.each(function(v) {
- var node2 = g.node(v);
- var thisGroup = select(this);
- applyClass(
- thisGroup,
- node2["class"],
- (thisGroup.classed("update") ? "update " : "") + "node"
- );
- thisGroup.select("g.label").remove();
- var labelGroup = thisGroup.append("g").attr("class", "label");
- var labelDom = addLabel(labelGroup, node2);
- var shape = shapes2[node2.shape];
- var bbox = pick$1(labelDom.node().getBBox(), "width", "height");
- node2.elem = this;
- if (node2.id) {
- thisGroup.attr("id", node2.id);
- }
- if (node2.labelId) {
- labelGroup.attr("id", node2.labelId);
- }
- if (has(node2, "width")) {
- bbox.width = node2.width;
- }
- if (has(node2, "height")) {
- bbox.height = node2.height;
- }
- bbox.width += node2.paddingLeft + node2.paddingRight;
- bbox.height += node2.paddingTop + node2.paddingBottom;
- labelGroup.attr(
- "transform",
- "translate(" + (node2.paddingLeft - node2.paddingRight) / 2 + "," + (node2.paddingTop - node2.paddingBottom) / 2 + ")"
- );
- var root2 = select(this);
- root2.select(".label-container").remove();
- var shapeSvg = shape(root2, bbox, node2).classed("label-container", true);
- applyStyle$2(shapeSvg, node2.style);
- var shapeBBox = shapeSvg.node().getBBox();
- node2.width = shapeBBox.width;
- node2.height = shapeBBox.height;
- });
- var exitSelection;
- if (svgNodes.exit) {
- exitSelection = svgNodes.exit();
- } else {
- exitSelection = svgNodes.selectAll(null);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js
+ var getPrototype, getPrototype_default;
+ var init_getPrototype = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js"() {
+ "use strict";
+ init_overArg();
+ getPrototype = overArg_default(Object.getPrototypeOf, Object);
+ getPrototype_default = getPrototype;
}
- applyTransition(exitSelection, g).style("opacity", 0).remove();
- return svgNodes;
- };
- function setCreateNodes(value) {
- createNodes = value;
- }
- function positionClusters(selection2, g) {
- var created = selection2.filter(function() {
- return !select(this).classed("update");
- });
- function translate(v) {
- var node2 = g.node(v);
- return "translate(" + node2.x + "," + node2.y + ")";
- }
- created.attr("transform", translate);
- applyTransition(selection2, g).style("opacity", 1).attr("transform", translate);
- applyTransition(created.selectAll("rect"), g).attr("width", function(v) {
- return g.node(v).width;
- }).attr("height", function(v) {
- return g.node(v).height;
- }).attr("x", function(v) {
- var node2 = g.node(v);
- return -node2.width / 2;
- }).attr("y", function(v) {
- var node2 = g.node(v);
- return -node2.height / 2;
- });
- }
- function positionEdgeLabels(selection2, g) {
- var created = selection2.filter(function() {
- return !select(this).classed("update");
- });
- function translate(e) {
- var edge = g.edge(e);
- return has(edge, "x") ? "translate(" + edge.x + "," + edge.y + ")" : "";
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js
+ function isPrototype(value2) {
+ var Ctor = value2 && value2.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto6;
+ return value2 === proto;
+ }
+ var objectProto6, isPrototype_default;
+ var init_isPrototype = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js"() {
+ "use strict";
+ objectProto6 = Object.prototype;
+ __name(isPrototype, "isPrototype");
+ isPrototype_default = isPrototype;
}
- created.attr("transform", translate);
- applyTransition(selection2, g).style("opacity", 1).attr("transform", translate);
- }
- function positionNodes$1(selection2, g) {
- var created = selection2.filter(function() {
- return !select(this).classed("update");
- });
- function translate(v) {
- var node2 = g.node(v);
- return "translate(" + node2.x + "," + node2.y + ")";
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js
+ function initCloneObject(object3) {
+ return typeof object3.constructor == "function" && !isPrototype_default(object3) ? baseCreate_default(getPrototype_default(object3)) : {};
+ }
+ var initCloneObject_default;
+ var init_initCloneObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js"() {
+ "use strict";
+ init_baseCreate();
+ init_getPrototype();
+ init_isPrototype();
+ __name(initCloneObject, "initCloneObject");
+ initCloneObject_default = initCloneObject;
}
- created.attr("transform", translate);
- applyTransition(selection2, g).style("opacity", 1).attr("transform", translate);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js
+ function isObjectLike(value2) {
+ return value2 != null && typeof value2 == "object";
}
- function intersectEllipse$1(node2, rx, ry, point2) {
- var cx = node2.x;
- var cy = node2.y;
- var px = cx - point2.x;
- var py = cy - point2.y;
- var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
- var dx = Math.abs(rx * ry * px / det);
- if (point2.x < cx) {
- dx = -dx;
+ var isObjectLike_default;
+ var init_isObjectLike = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js"() {
+ "use strict";
+ __name(isObjectLike, "isObjectLike");
+ isObjectLike_default = isObjectLike;
}
- var dy = Math.abs(rx * ry * py / det);
- if (point2.y < cy) {
- dy = -dy;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js
+ function baseIsArguments(value2) {
+ return isObjectLike_default(value2) && baseGetTag_default(value2) == argsTag;
+ }
+ var argsTag, baseIsArguments_default;
+ var init_baseIsArguments = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js"() {
+ "use strict";
+ init_baseGetTag();
+ init_isObjectLike();
+ argsTag = "[object Arguments]";
+ __name(baseIsArguments, "baseIsArguments");
+ baseIsArguments_default = baseIsArguments;
}
- return { x: cx + dx, y: cy + dy };
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js
+ var objectProto7, hasOwnProperty5, propertyIsEnumerable, isArguments, isArguments_default;
+ var init_isArguments = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js"() {
+ "use strict";
+ init_baseIsArguments();
+ init_isObjectLike();
+ objectProto7 = Object.prototype;
+ hasOwnProperty5 = objectProto7.hasOwnProperty;
+ propertyIsEnumerable = objectProto7.propertyIsEnumerable;
+ isArguments = baseIsArguments_default(/* @__PURE__ */ function() {
+ return arguments;
+ }()) ? baseIsArguments_default : function(value2) {
+ return isObjectLike_default(value2) && hasOwnProperty5.call(value2, "callee") && !propertyIsEnumerable.call(value2, "callee");
+ };
+ isArguments_default = isArguments;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js
+ var isArray, isArray_default;
+ var init_isArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js"() {
+ "use strict";
+ isArray = Array.isArray;
+ isArray_default = isArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js
+ function isLength(value2) {
+ return typeof value2 == "number" && value2 > -1 && value2 % 1 == 0 && value2 <= MAX_SAFE_INTEGER;
+ }
+ var MAX_SAFE_INTEGER, isLength_default;
+ var init_isLength = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js"() {
+ "use strict";
+ MAX_SAFE_INTEGER = 9007199254740991;
+ __name(isLength, "isLength");
+ isLength_default = isLength;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js
+ function isArrayLike(value2) {
+ return value2 != null && isLength_default(value2.length) && !isFunction_default(value2);
+ }
+ var isArrayLike_default;
+ var init_isArrayLike = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js"() {
+ "use strict";
+ init_isFunction();
+ init_isLength();
+ __name(isArrayLike, "isArrayLike");
+ isArrayLike_default = isArrayLike;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js
+ function isArrayLikeObject(value2) {
+ return isObjectLike_default(value2) && isArrayLike_default(value2);
+ }
+ var isArrayLikeObject_default;
+ var init_isArrayLikeObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js"() {
+ "use strict";
+ init_isArrayLike();
+ init_isObjectLike();
+ __name(isArrayLikeObject, "isArrayLikeObject");
+ isArrayLikeObject_default = isArrayLikeObject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js
+ function stubFalse() {
+ return false;
}
- function intersectCircle$1(node2, rx, point2) {
- return intersectEllipse$1(node2, rx, rx, point2);
+ var stubFalse_default;
+ var init_stubFalse = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js"() {
+ "use strict";
+ __name(stubFalse, "stubFalse");
+ stubFalse_default = stubFalse;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js
+ var freeExports2, freeModule2, moduleExports2, Buffer3, nativeIsBuffer, isBuffer, isBuffer_default;
+ var init_isBuffer = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js"() {
+ "use strict";
+ init_root();
+ init_stubFalse();
+ freeExports2 = typeof exports == "object" && exports && !exports.nodeType && exports;
+ freeModule2 = freeExports2 && typeof module == "object" && module && !module.nodeType && module;
+ moduleExports2 = freeModule2 && freeModule2.exports === freeExports2;
+ Buffer3 = moduleExports2 ? root_default.Buffer : void 0;
+ nativeIsBuffer = Buffer3 ? Buffer3.isBuffer : void 0;
+ isBuffer = nativeIsBuffer || stubFalse_default;
+ isBuffer_default = isBuffer;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js
+ function isPlainObject(value2) {
+ if (!isObjectLike_default(value2) || baseGetTag_default(value2) != objectTag) {
+ return false;
+ }
+ var proto = getPrototype_default(value2);
+ if (proto === null) {
+ return true;
+ }
+ var Ctor = hasOwnProperty6.call(proto, "constructor") && proto.constructor;
+ return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString3.call(Ctor) == objectCtorString;
+ }
+ var objectTag, funcProto3, objectProto8, funcToString3, hasOwnProperty6, objectCtorString, isPlainObject_default;
+ var init_isPlainObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js"() {
+ "use strict";
+ init_baseGetTag();
+ init_getPrototype();
+ init_isObjectLike();
+ objectTag = "[object Object]";
+ funcProto3 = Function.prototype;
+ objectProto8 = Object.prototype;
+ funcToString3 = funcProto3.toString;
+ hasOwnProperty6 = objectProto8.hasOwnProperty;
+ objectCtorString = funcToString3.call(Object);
+ __name(isPlainObject, "isPlainObject");
+ isPlainObject_default = isPlainObject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js
+ function baseIsTypedArray(value2) {
+ return isObjectLike_default(value2) && isLength_default(value2.length) && !!typedArrayTags[baseGetTag_default(value2)];
+ }
+ var argsTag2, arrayTag, boolTag, dateTag, errorTag, funcTag2, mapTag, numberTag, objectTag2, regexpTag, setTag, stringTag, weakMapTag, arrayBufferTag, dataViewTag, float32Tag, float64Tag, int8Tag, int16Tag, int32Tag, uint8Tag, uint8ClampedTag, uint16Tag, uint32Tag, typedArrayTags, baseIsTypedArray_default;
+ var init_baseIsTypedArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js"() {
+ "use strict";
+ init_baseGetTag();
+ init_isLength();
+ init_isObjectLike();
+ argsTag2 = "[object Arguments]";
+ arrayTag = "[object Array]";
+ boolTag = "[object Boolean]";
+ dateTag = "[object Date]";
+ errorTag = "[object Error]";
+ funcTag2 = "[object Function]";
+ mapTag = "[object Map]";
+ numberTag = "[object Number]";
+ objectTag2 = "[object Object]";
+ regexpTag = "[object RegExp]";
+ setTag = "[object Set]";
+ stringTag = "[object String]";
+ weakMapTag = "[object WeakMap]";
+ arrayBufferTag = "[object ArrayBuffer]";
+ dataViewTag = "[object DataView]";
+ float32Tag = "[object Float32Array]";
+ float64Tag = "[object Float64Array]";
+ int8Tag = "[object Int8Array]";
+ int16Tag = "[object Int16Array]";
+ int32Tag = "[object Int32Array]";
+ uint8Tag = "[object Uint8Array]";
+ uint8ClampedTag = "[object Uint8ClampedArray]";
+ uint16Tag = "[object Uint16Array]";
+ uint32Tag = "[object Uint32Array]";
+ typedArrayTags = {};
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
+ typedArrayTags[argsTag2] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag2] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag2] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
+ __name(baseIsTypedArray, "baseIsTypedArray");
+ baseIsTypedArray_default = baseIsTypedArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js
+ function baseUnary(func) {
+ return function(value2) {
+ return func(value2);
+ };
}
- function intersectLine$1(p1, p2, q1, q2) {
- var a1, a2, b1, b2, c1, c2;
- var r1, r2, r3, r4;
- var denom, offset, num;
- var x2, y2;
- a1 = p2.y - p1.y;
- b1 = p1.x - p2.x;
- c1 = p2.x * p1.y - p1.x * p2.y;
- r3 = a1 * q1.x + b1 * q1.y + c1;
- r4 = a1 * q2.x + b1 * q2.y + c1;
- if (r3 !== 0 && r4 !== 0 && sameSign$1(r3, r4)) {
- return;
+ var baseUnary_default;
+ var init_baseUnary = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js"() {
+ "use strict";
+ __name(baseUnary, "baseUnary");
+ baseUnary_default = baseUnary;
}
- a2 = q2.y - q1.y;
- b2 = q1.x - q2.x;
- c2 = q2.x * q1.y - q1.x * q2.y;
- r1 = a2 * p1.x + b2 * p1.y + c2;
- r2 = a2 * p2.x + b2 * p2.y + c2;
- if (r1 !== 0 && r2 !== 0 && sameSign$1(r1, r2)) {
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js
+ var freeExports3, freeModule3, moduleExports3, freeProcess, nodeUtil, nodeUtil_default;
+ var init_nodeUtil = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js"() {
+ "use strict";
+ init_freeGlobal();
+ freeExports3 = typeof exports == "object" && exports && !exports.nodeType && exports;
+ freeModule3 = freeExports3 && typeof module == "object" && module && !module.nodeType && module;
+ moduleExports3 = freeModule3 && freeModule3.exports === freeExports3;
+ freeProcess = moduleExports3 && freeGlobal_default.process;
+ nodeUtil = function() {
+ try {
+ var types = freeModule3 && freeModule3.require && freeModule3.require("util").types;
+ if (types) {
+ return types;
+ }
+ return freeProcess && freeProcess.binding && freeProcess.binding("util");
+ } catch (e3) {
+ }
+ }();
+ nodeUtil_default = nodeUtil;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js
+ var nodeIsTypedArray, isTypedArray, isTypedArray_default;
+ var init_isTypedArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js"() {
+ "use strict";
+ init_baseIsTypedArray();
+ init_baseUnary();
+ init_nodeUtil();
+ nodeIsTypedArray = nodeUtil_default && nodeUtil_default.isTypedArray;
+ isTypedArray = nodeIsTypedArray ? baseUnary_default(nodeIsTypedArray) : baseIsTypedArray_default;
+ isTypedArray_default = isTypedArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js
+ function safeGet(object3, key) {
+ if (key === "constructor" && typeof object3[key] === "function") {
return;
}
- denom = a1 * b2 - a2 * b1;
- if (denom === 0) {
+ if (key == "__proto__") {
return;
}
- offset = Math.abs(denom / 2);
- num = b1 * c2 - b2 * c1;
- x2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
- num = a2 * c1 - a1 * c2;
- y2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
- return { x: x2, y: y2 };
+ return object3[key];
}
- function sameSign$1(r1, r2) {
- return r1 * r2 > 0;
- }
- function intersectPolygon$1(node2, polyPoints, point2) {
- var x1 = node2.x;
- var y1 = node2.y;
- var intersections = [];
- var minX = Number.POSITIVE_INFINITY;
- var minY = Number.POSITIVE_INFINITY;
- polyPoints.forEach(function(entry) {
- minX = Math.min(minX, entry.x);
- minY = Math.min(minY, entry.y);
- });
- var left2 = x1 - node2.width / 2 - minX;
- var top2 = y1 - node2.height / 2 - minY;
- for (var i2 = 0; i2 < polyPoints.length; i2++) {
- var p1 = polyPoints[i2];
- var p2 = polyPoints[i2 < polyPoints.length - 1 ? i2 + 1 : 0];
- var intersect2 = intersectLine$1(
- node2,
- point2,
- { x: left2 + p1.x, y: top2 + p1.y },
- { x: left2 + p2.x, y: top2 + p2.y }
- );
- if (intersect2) {
- intersections.push(intersect2);
- }
- }
- if (!intersections.length) {
- console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", node2);
- return node2;
+ var safeGet_default;
+ var init_safeGet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js"() {
+ "use strict";
+ __name(safeGet, "safeGet");
+ safeGet_default = safeGet;
}
- if (intersections.length > 1) {
- intersections.sort(function(p, q) {
- var pdx = p.x - point2.x;
- var pdy = p.y - point2.y;
- var distp = Math.sqrt(pdx * pdx + pdy * pdy);
- var qdx = q.x - point2.x;
- var qdy = q.y - point2.y;
- var distq = Math.sqrt(qdx * qdx + qdy * qdy);
- return distp < distq ? -1 : distp === distq ? 0 : 1;
- });
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js
+ function assignValue(object3, key, value2) {
+ var objValue = object3[key];
+ if (!(hasOwnProperty7.call(object3, key) && eq_default(objValue, value2)) || value2 === void 0 && !(key in object3)) {
+ baseAssignValue_default(object3, key, value2);
+ }
+ }
+ var objectProto9, hasOwnProperty7, assignValue_default;
+ var init_assignValue = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js"() {
+ "use strict";
+ init_baseAssignValue();
+ init_eq();
+ objectProto9 = Object.prototype;
+ hasOwnProperty7 = objectProto9.hasOwnProperty;
+ __name(assignValue, "assignValue");
+ assignValue_default = assignValue;
}
- return intersections[0];
- }
- function intersectRect$2(node2, point2) {
- var x2 = node2.x;
- var y2 = node2.y;
- var dx = point2.x - x2;
- var dy = point2.y - y2;
- var w2 = node2.width / 2;
- var h = node2.height / 2;
- var sx, sy;
- if (Math.abs(dy) * w2 > Math.abs(dx) * h) {
- if (dy < 0) {
- h = -h;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js
+ function copyObject(source, props, object3, customizer) {
+ var isNew = !object3;
+ object3 || (object3 = {});
+ var index = -1, length2 = props.length;
+ while (++index < length2) {
+ var key = props[index];
+ var newValue = customizer ? customizer(object3[key], source[key], key, object3, source) : void 0;
+ if (newValue === void 0) {
+ newValue = source[key];
}
- sx = dy === 0 ? 0 : h * dx / dy;
- sy = h;
- } else {
- if (dx < 0) {
- w2 = -w2;
+ if (isNew) {
+ baseAssignValue_default(object3, key, newValue);
+ } else {
+ assignValue_default(object3, key, newValue);
}
- sx = w2;
- sy = dx === 0 ? 0 : w2 * dy / dx;
}
- return { x: x2 + sx, y: y2 + sy };
+ return object3;
}
- var shapes$2 = {
- rect: rect$2,
- ellipse,
- circle: circle$2,
- diamond
- };
- function setShapes(value) {
- shapes$2 = value;
+ var copyObject_default;
+ var init_copyObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js"() {
+ "use strict";
+ init_assignValue();
+ init_baseAssignValue();
+ __name(copyObject, "copyObject");
+ copyObject_default = copyObject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js
+ function baseTimes(n2, iteratee) {
+ var index = -1, result = Array(n2);
+ while (++index < n2) {
+ result[index] = iteratee(index);
+ }
+ return result;
}
- function rect$2(parent, bbox, node2) {
- var shapeSvg = parent.insert("rect", ":first-child").attr("rx", node2.rx).attr("ry", node2.ry).attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("width", bbox.width).attr("height", bbox.height);
- node2.intersect = function(point2) {
- return intersectRect$2(node2, point2);
- };
- return shapeSvg;
- }
- function ellipse(parent, bbox, node2) {
- var rx = bbox.width / 2;
- var ry = bbox.height / 2;
- var shapeSvg = parent.insert("ellipse", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("rx", rx).attr("ry", ry);
- node2.intersect = function(point2) {
- return intersectEllipse$1(node2, rx, ry, point2);
- };
- return shapeSvg;
- }
- function circle$2(parent, bbox, node2) {
- var r = Math.max(bbox.width, bbox.height) / 2;
- var shapeSvg = parent.insert("circle", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("r", r);
- node2.intersect = function(point2) {
- return intersectCircle$1(node2, r, point2);
- };
- return shapeSvg;
- }
- function diamond(parent, bbox, node2) {
- var w2 = bbox.width * Math.SQRT2 / 2;
- var h = bbox.height * Math.SQRT2 / 2;
- var points = [
- { x: 0, y: -h },
- { x: -w2, y: 0 },
- { x: 0, y: h },
- { x: w2, y: 0 }
- ];
- var shapeSvg = parent.insert("polygon", ":first-child").attr(
- "points",
- points.map(function(p) {
- return p.x + "," + p.y;
- }).join(" ")
- );
- node2.intersect = function(p) {
- return intersectPolygon$1(node2, points, p);
- };
- return shapeSvg;
- }
- function render$1() {
- var fn = function(svg2, g) {
- preProcessGraph(g);
- var outputGroup = createOrSelectGroup(svg2, "output");
- var clustersGroup = createOrSelectGroup(outputGroup, "clusters");
- var edgePathsGroup = createOrSelectGroup(outputGroup, "edgePaths");
- var edgeLabels2 = createEdgeLabels(createOrSelectGroup(outputGroup, "edgeLabels"), g);
- var nodes2 = createNodes(createOrSelectGroup(outputGroup, "nodes"), g, shapes$2);
- layout(g);
- positionNodes$1(nodes2, g);
- positionEdgeLabels(edgeLabels2, g);
- createEdgePaths(edgePathsGroup, g, arrows);
- var clusters = createClusters(clustersGroup, g);
- positionClusters(clusters, g);
- postProcessGraph(g);
- };
- fn.createNodes = function(value) {
- if (!arguments.length)
- return createNodes;
- setCreateNodes(value);
- return fn;
- };
- fn.createClusters = function(value) {
- if (!arguments.length)
- return createClusters;
- setCreateClusters(value);
- return fn;
- };
- fn.createEdgeLabels = function(value) {
- if (!arguments.length)
- return createEdgeLabels;
- setCreateEdgeLabels(value);
- return fn;
- };
- fn.createEdgePaths = function(value) {
- if (!arguments.length)
- return createEdgePaths;
- setCreateEdgePaths(value);
- return fn;
- };
- fn.shapes = function(value) {
- if (!arguments.length)
- return shapes$2;
- setShapes(value);
- return fn;
- };
- fn.arrows = function(value) {
- if (!arguments.length)
- return arrows;
- setArrows(value);
- return fn;
- };
- return fn;
- }
- var NODE_DEFAULT_ATTRS = {
- paddingLeft: 10,
- paddingRight: 10,
- paddingTop: 10,
- paddingBottom: 10,
- rx: 0,
- ry: 0,
- shape: "rect"
- };
- var EDGE_DEFAULT_ATTRS = {
- arrowhead: "normal",
- curve: curveLinear
- };
- function preProcessGraph(g) {
- g.nodes().forEach(function(v) {
- var node2 = g.node(v);
- if (!has(node2, "label") && !g.children(v).length) {
- node2.label = v;
- }
- if (has(node2, "paddingX")) {
- defaults$1(node2, {
- paddingLeft: node2.paddingX,
- paddingRight: node2.paddingX
- });
- }
- if (has(node2, "paddingY")) {
- defaults$1(node2, {
- paddingTop: node2.paddingY,
- paddingBottom: node2.paddingY
- });
- }
- if (has(node2, "padding")) {
- defaults$1(node2, {
- paddingLeft: node2.padding,
- paddingRight: node2.padding,
- paddingTop: node2.padding,
- paddingBottom: node2.padding
- });
- }
- defaults$1(node2, NODE_DEFAULT_ATTRS);
- forEach(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(k) {
- node2[k] = Number(node2[k]);
- });
- if (has(node2, "width")) {
- node2._prevWidth = node2.width;
- }
- if (has(node2, "height")) {
- node2._prevHeight = node2.height;
- }
- });
- g.edges().forEach(function(e) {
- var edge = g.edge(e);
- if (!has(edge, "label")) {
- edge.label = "";
+ var baseTimes_default;
+ var init_baseTimes = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js"() {
+ "use strict";
+ __name(baseTimes, "baseTimes");
+ baseTimes_default = baseTimes;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js
+ function isIndex(value2, length2) {
+ var type3 = typeof value2;
+ length2 = length2 == null ? MAX_SAFE_INTEGER2 : length2;
+ return !!length2 && (type3 == "number" || type3 != "symbol" && reIsUint.test(value2)) && (value2 > -1 && value2 % 1 == 0 && value2 < length2);
+ }
+ var MAX_SAFE_INTEGER2, reIsUint, isIndex_default;
+ var init_isIndex = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js"() {
+ "use strict";
+ MAX_SAFE_INTEGER2 = 9007199254740991;
+ reIsUint = /^(?:0|[1-9]\d*)$/;
+ __name(isIndex, "isIndex");
+ isIndex_default = isIndex;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js
+ function arrayLikeKeys(value2, inherited) {
+ var isArr = isArray_default(value2), isArg = !isArr && isArguments_default(value2), isBuff = !isArr && !isArg && isBuffer_default(value2), isType2 = !isArr && !isArg && !isBuff && isTypedArray_default(value2), skipIndexes = isArr || isArg || isBuff || isType2, result = skipIndexes ? baseTimes_default(value2.length, String) : [], length2 = result.length;
+ for (var key in value2) {
+ if ((inherited || hasOwnProperty8.call(value2, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
+ (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
+ isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
+ isType2 && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
+ isIndex_default(key, length2)))) {
+ result.push(key);
}
- defaults$1(edge, EDGE_DEFAULT_ATTRS);
- });
+ }
+ return result;
}
- function postProcessGraph(g) {
- forEach(g.nodes(), function(v) {
- var node2 = g.node(v);
- if (has(node2, "_prevWidth")) {
- node2.width = node2._prevWidth;
- } else {
- delete node2.width;
- }
- if (has(node2, "_prevHeight")) {
- node2.height = node2._prevHeight;
- } else {
- delete node2.height;
+ var objectProto10, hasOwnProperty8, arrayLikeKeys_default;
+ var init_arrayLikeKeys = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js"() {
+ "use strict";
+ init_baseTimes();
+ init_isArguments();
+ init_isArray();
+ init_isBuffer();
+ init_isIndex();
+ init_isTypedArray();
+ objectProto10 = Object.prototype;
+ hasOwnProperty8 = objectProto10.hasOwnProperty;
+ __name(arrayLikeKeys, "arrayLikeKeys");
+ arrayLikeKeys_default = arrayLikeKeys;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js
+ function nativeKeysIn(object3) {
+ var result = [];
+ if (object3 != null) {
+ for (var key in Object(object3)) {
+ result.push(key);
}
- delete node2._prevWidth;
- delete node2._prevHeight;
- });
+ }
+ return result;
}
- function createOrSelectGroup(root2, name2) {
- var selection2 = root2.select("g." + name2);
- if (selection2.empty()) {
- selection2 = root2.append("g").attr("class", name2);
- }
- return selection2;
- }
- function question$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const s = (w2 + h) * 0.9;
- const points = [
- { x: s / 2, y: 0 },
- { x: s, y: -s / 2 },
- { x: s / 2, y: -s },
- { x: 0, y: -s / 2 }
- ];
- const shapeSvg = insertPolygonShape$2(parent, s, s, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function hexagon$1(parent, bbox, node2) {
- const f2 = 4;
- const h = bbox.height;
- const m = h / f2;
- const w2 = bbox.width + 2 * m;
- const points = [
- { x: m, y: 0 },
- { x: w2 - m, y: 0 },
- { x: w2, y: -h / 2 },
- { x: w2 - m, y: -h },
- { x: m, y: -h },
- { x: 0, y: -h / 2 }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function rect_left_inv_arrow$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const points = [
- { x: -h / 2, y: 0 },
- { x: w2, y: 0 },
- { x: w2, y: -h },
- { x: -h / 2, y: -h },
- { x: 0, y: -h / 2 }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function lean_right$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const points = [
- { x: -2 * h / 6, y: 0 },
- { x: w2 - h / 6, y: 0 },
- { x: w2 + 2 * h / 6, y: -h },
- { x: h / 6, y: -h }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function lean_left$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const points = [
- { x: 2 * h / 6, y: 0 },
- { x: w2 + h / 6, y: 0 },
- { x: w2 - 2 * h / 6, y: -h },
- { x: -h / 6, y: -h }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function trapezoid$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const points = [
- { x: -2 * h / 6, y: 0 },
- { x: w2 + 2 * h / 6, y: 0 },
- { x: w2 - h / 6, y: -h },
- { x: h / 6, y: -h }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function inv_trapezoid$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const points = [
- { x: h / 6, y: 0 },
- { x: w2 - h / 6, y: 0 },
- { x: w2 + 2 * h / 6, y: -h },
- { x: -2 * h / 6, y: -h }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function rect_right_inv_arrow$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const points = [
- { x: 0, y: 0 },
- { x: w2 + h / 2, y: 0 },
- { x: w2, y: -h / 2 },
- { x: w2 + h / 2, y: -h },
- { x: 0, y: -h }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function stadium$1(parent, bbox, node2) {
- const h = bbox.height;
- const w2 = bbox.width + h / 4;
- const shapeSvg = parent.insert("rect", ":first-child").attr("rx", h / 2).attr("ry", h / 2).attr("x", -w2 / 2).attr("y", -h / 2).attr("width", w2).attr("height", h);
- node2.intersect = function(point2) {
- return intersectRect$2(node2, point2);
- };
- return shapeSvg;
- }
- function subroutine$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const h = bbox.height;
- const points = [
- { x: 0, y: 0 },
- { x: w2, y: 0 },
- { x: w2, y: -h },
- { x: 0, y: -h },
- { x: 0, y: 0 },
- { x: -8, y: 0 },
- { x: w2 + 8, y: 0 },
- { x: w2 + 8, y: -h },
- { x: -8, y: -h },
- { x: -8, y: 0 }
- ];
- const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
- node2.intersect = function(point2) {
- return intersectPolygon$1(node2, points, point2);
- };
- return shapeSvg;
- }
- function cylinder$1(parent, bbox, node2) {
- const w2 = bbox.width;
- const rx = w2 / 2;
- const ry = rx / (2.5 + w2 / 50);
- const h = bbox.height + ry;
- const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 a " + rx + "," + ry + " 0,0,0 " + -w2 + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 l 0," + -h;
- const shapeSvg = parent.attr("label-offset-y", ry).insert("path", ":first-child").attr("d", shape).attr("transform", "translate(" + -w2 / 2 + "," + -(h / 2 + ry) + ")");
- node2.intersect = function(point2) {
- const pos = intersectRect$2(node2, point2);
- const x2 = pos.x - node2.x;
- if (rx != 0 && (Math.abs(x2) < node2.width / 2 || Math.abs(x2) == node2.width / 2 && Math.abs(pos.y - node2.y) > node2.height / 2 - ry)) {
- let y2 = ry * ry * (1 - x2 * x2 / (rx * rx));
- if (y2 != 0) {
- y2 = Math.sqrt(y2);
- }
- y2 = ry - y2;
- if (point2.y - node2.y > 0) {
- y2 = -y2;
- }
- pos.y += y2;
- }
- return pos;
- };
- return shapeSvg;
- }
- function addToRender(render2) {
- render2.shapes().question = question$1;
- render2.shapes().hexagon = hexagon$1;
- render2.shapes().stadium = stadium$1;
- render2.shapes().subroutine = subroutine$1;
- render2.shapes().cylinder = cylinder$1;
- render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow$1;
- render2.shapes().lean_right = lean_right$1;
- render2.shapes().lean_left = lean_left$1;
- render2.shapes().trapezoid = trapezoid$1;
- render2.shapes().inv_trapezoid = inv_trapezoid$1;
- render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow$1;
- }
- function addToRenderV2(addShape) {
- addShape({ question: question$1 });
- addShape({ hexagon: hexagon$1 });
- addShape({ stadium: stadium$1 });
- addShape({ subroutine: subroutine$1 });
- addShape({ cylinder: cylinder$1 });
- addShape({ rect_left_inv_arrow: rect_left_inv_arrow$1 });
- addShape({ lean_right: lean_right$1 });
- addShape({ lean_left: lean_left$1 });
- addShape({ trapezoid: trapezoid$1 });
- addShape({ inv_trapezoid: inv_trapezoid$1 });
- addShape({ rect_right_inv_arrow: rect_right_inv_arrow$1 });
- }
- function insertPolygonShape$2(parent, w2, h, points) {
- return parent.insert("polygon", ":first-child").attr(
- "points",
- points.map(function(d) {
- return d.x + "," + d.y;
- }).join(" ")
- ).attr("transform", "translate(" + -w2 / 2 + "," + h / 2 + ")");
+ var nativeKeysIn_default;
+ var init_nativeKeysIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js"() {
+ "use strict";
+ __name(nativeKeysIn, "nativeKeysIn");
+ nativeKeysIn_default = nativeKeysIn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js
+ function baseKeysIn(object3) {
+ if (!isObject_default(object3)) {
+ return nativeKeysIn_default(object3);
+ }
+ var isProto = isPrototype_default(object3), result = [];
+ for (var key in object3) {
+ if (!(key == "constructor" && (isProto || !hasOwnProperty9.call(object3, key)))) {
+ result.push(key);
+ }
+ }
+ return result;
}
- const flowChartShapes = {
- addToRender,
- addToRenderV2
- };
- const conf$9 = {};
- const setConf$8 = function(cnf) {
- const keys2 = Object.keys(cnf);
- for (const key of keys2) {
- conf$9[key] = cnf[key];
+ var objectProto11, hasOwnProperty9, baseKeysIn_default;
+ var init_baseKeysIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js"() {
+ "use strict";
+ init_isObject();
+ init_isPrototype();
+ init_nativeKeysIn();
+ objectProto11 = Object.prototype;
+ hasOwnProperty9 = objectProto11.hasOwnProperty;
+ __name(baseKeysIn, "baseKeysIn");
+ baseKeysIn_default = baseKeysIn;
}
- };
- const addVertices$2 = function(vert, g, svgId, root2, _doc, diagObj) {
- const svg2 = !root2 ? select(`[id="${svgId}"]`) : root2.select(`[id="${svgId}"]`);
- const doc = !_doc ? document : _doc;
- const keys2 = Object.keys(vert);
- keys2.forEach(function(id2) {
- const vertex = vert[id2];
- let classStr = "default";
- if (vertex.classes.length > 0) {
- classStr = vertex.classes.join(" ");
- }
- const styles2 = getStylesFromArray(vertex.styles);
- let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
- let vertexNode;
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const node2 = {
- label: vertexText.replace(
- /fa[blrs]?:fa-[\w-]+/g,
- (s) => ``
- )
- };
- vertexNode = addHtmlLabel$1(svg2, node2).node();
- vertexNode.parentNode.removeChild(vertexNode);
- } else {
- const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
- svgLabel.setAttribute("style", styles2.labelStyle.replace("color:", "fill:"));
- const rows = vertexText.split(common$1.lineBreakRegex);
- for (const row of rows) {
- const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
- tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
- tspan.setAttribute("dy", "1em");
- tspan.setAttribute("x", "1");
- tspan.textContent = row;
- svgLabel.appendChild(tspan);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js
+ function keysIn(object3) {
+ return isArrayLike_default(object3) ? arrayLikeKeys_default(object3, true) : baseKeysIn_default(object3);
+ }
+ var keysIn_default;
+ var init_keysIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js"() {
+ "use strict";
+ init_arrayLikeKeys();
+ init_baseKeysIn();
+ init_isArrayLike();
+ __name(keysIn, "keysIn");
+ keysIn_default = keysIn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js
+ function toPlainObject(value2) {
+ return copyObject_default(value2, keysIn_default(value2));
+ }
+ var toPlainObject_default;
+ var init_toPlainObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js"() {
+ "use strict";
+ init_copyObject();
+ init_keysIn();
+ __name(toPlainObject, "toPlainObject");
+ toPlainObject_default = toPlainObject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js
+ function baseMergeDeep(object3, source, key, srcIndex, mergeFunc, customizer, stack) {
+ var objValue = safeGet_default(object3, key), srcValue = safeGet_default(source, key), stacked = stack.get(srcValue);
+ if (stacked) {
+ assignMergeValue_default(object3, key, stacked);
+ return;
+ }
+ var newValue = customizer ? customizer(objValue, srcValue, key + "", object3, source, stack) : void 0;
+ var isCommon2 = newValue === void 0;
+ if (isCommon2) {
+ var isArr = isArray_default(srcValue), isBuff = !isArr && isBuffer_default(srcValue), isTyped = !isArr && !isBuff && isTypedArray_default(srcValue);
+ newValue = srcValue;
+ if (isArr || isBuff || isTyped) {
+ if (isArray_default(objValue)) {
+ newValue = objValue;
+ } else if (isArrayLikeObject_default(objValue)) {
+ newValue = copyArray_default(objValue);
+ } else if (isBuff) {
+ isCommon2 = false;
+ newValue = cloneBuffer_default(srcValue, true);
+ } else if (isTyped) {
+ isCommon2 = false;
+ newValue = cloneTypedArray_default(srcValue, true);
+ } else {
+ newValue = [];
}
- vertexNode = svgLabel;
- }
- let radious = 0;
- let _shape = "";
- switch (vertex.type) {
- case "round":
- radious = 5;
- _shape = "rect";
- break;
- case "square":
- _shape = "rect";
- break;
- case "diamond":
- _shape = "question";
- break;
- case "hexagon":
- _shape = "hexagon";
- break;
- case "odd":
- _shape = "rect_left_inv_arrow";
- break;
- case "lean_right":
- _shape = "lean_right";
- break;
- case "lean_left":
- _shape = "lean_left";
- break;
- case "trapezoid":
- _shape = "trapezoid";
- break;
- case "inv_trapezoid":
- _shape = "inv_trapezoid";
- break;
- case "odd_right":
- _shape = "rect_left_inv_arrow";
- break;
- case "circle":
- _shape = "circle";
- break;
- case "ellipse":
- _shape = "ellipse";
- break;
- case "stadium":
- _shape = "stadium";
- break;
- case "subroutine":
- _shape = "subroutine";
- break;
- case "cylinder":
- _shape = "cylinder";
- break;
- case "group":
- _shape = "rect";
- break;
- default:
- _shape = "rect";
- }
- log$1.warn("Adding node", vertex.id, vertex.domId);
- g.setNode(diagObj.db.lookUpDomId(vertex.id), {
- labelType: "svg",
- labelStyle: styles2.labelStyle,
- shape: _shape,
- label: vertexNode,
- rx: radious,
- ry: radious,
- class: classStr,
- style: styles2.style,
- id: diagObj.db.lookUpDomId(vertex.id)
- });
- });
- };
- const addEdges$2 = function(edges2, g, diagObj) {
- let cnt2 = 0;
- let defaultStyle2;
- let defaultLabelStyle;
- if (edges2.defaultStyle !== void 0) {
- const defaultStyles = getStylesFromArray(edges2.defaultStyle);
- defaultStyle2 = defaultStyles.style;
- defaultLabelStyle = defaultStyles.labelStyle;
- }
- edges2.forEach(function(edge) {
- cnt2++;
- var linkId = "L-" + edge.start + "-" + edge.end;
- var linkNameStart = "LS-" + edge.start;
- var linkNameEnd = "LE-" + edge.end;
- const edgeData = {};
- if (edge.type === "arrow_open") {
- edgeData.arrowhead = "none";
- } else {
- edgeData.arrowhead = "normal";
- }
- let style = "";
- let labelStyle = "";
- if (edge.style !== void 0) {
- const styles2 = getStylesFromArray(edge.style);
- style = styles2.style;
- labelStyle = styles2.labelStyle;
- } else {
- switch (edge.stroke) {
- case "normal":
- style = "fill:none";
- if (defaultStyle2 !== void 0) {
- style = defaultStyle2;
- }
- if (defaultLabelStyle !== void 0) {
- labelStyle = defaultLabelStyle;
- }
- break;
- case "dotted":
- style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
- break;
- case "thick":
- style = " stroke-width: 3.5px;fill:none";
- break;
+ } else if (isPlainObject_default(srcValue) || isArguments_default(srcValue)) {
+ newValue = objValue;
+ if (isArguments_default(objValue)) {
+ newValue = toPlainObject_default(objValue);
+ } else if (!isObject_default(objValue) || isFunction_default(objValue)) {
+ newValue = initCloneObject_default(srcValue);
}
- }
- edgeData.style = style;
- edgeData.labelStyle = labelStyle;
- if (edge.interpolate !== void 0) {
- edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
- } else if (edges2.defaultInterpolate !== void 0) {
- edgeData.curve = interpolateToCurve(edges2.defaultInterpolate, curveLinear);
} else {
- edgeData.curve = interpolateToCurve(conf$9.curve, curveLinear);
+ isCommon2 = false;
}
- if (edge.text === void 0) {
- if (edge.style !== void 0) {
- edgeData.arrowheadStyle = "fill: #333";
- }
+ }
+ if (isCommon2) {
+ stack.set(srcValue, newValue);
+ mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
+ stack["delete"](srcValue);
+ }
+ assignMergeValue_default(object3, key, newValue);
+ }
+ var baseMergeDeep_default;
+ var init_baseMergeDeep = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js"() {
+ "use strict";
+ init_assignMergeValue();
+ init_cloneBuffer();
+ init_cloneTypedArray();
+ init_copyArray();
+ init_initCloneObject();
+ init_isArguments();
+ init_isArray();
+ init_isArrayLikeObject();
+ init_isBuffer();
+ init_isFunction();
+ init_isObject();
+ init_isPlainObject();
+ init_isTypedArray();
+ init_safeGet();
+ init_toPlainObject();
+ __name(baseMergeDeep, "baseMergeDeep");
+ baseMergeDeep_default = baseMergeDeep;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js
+ function baseMerge(object3, source, srcIndex, customizer, stack) {
+ if (object3 === source) {
+ return;
+ }
+ baseFor_default(source, function(srcValue, key) {
+ stack || (stack = new Stack_default());
+ if (isObject_default(srcValue)) {
+ baseMergeDeep_default(object3, source, key, srcIndex, baseMerge, customizer, stack);
} else {
- edgeData.arrowheadStyle = "fill: #333";
- edgeData.labelpos = "c";
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- edgeData.labelType = "html";
- edgeData.label = `${edge.text.replace(
- /fa[blrs]?:fa-[\w-]+/g,
- (s) => ``
- )}`;
- } else {
- edgeData.labelType = "text";
- edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
- if (edge.style === void 0) {
- edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
- }
- edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
+ var newValue = customizer ? customizer(safeGet_default(object3, key), srcValue, key + "", object3, source, stack) : void 0;
+ if (newValue === void 0) {
+ newValue = srcValue;
}
+ assignMergeValue_default(object3, key, newValue);
}
- edgeData.id = linkId;
- edgeData.class = linkNameStart + " " + linkNameEnd;
- edgeData.minlen = edge.length || 1;
- g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt2);
- });
- };
- const getClasses$5 = function(text2, diagObj) {
- log$1.info("Extracting classes");
- diagObj.db.clear();
- try {
- diagObj.parse(text2);
- return diagObj.db.getClasses();
- } catch (e) {
- log$1.error(e);
- return {};
+ }, keysIn_default);
+ }
+ var baseMerge_default;
+ var init_baseMerge = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js"() {
+ "use strict";
+ init_Stack();
+ init_assignMergeValue();
+ init_baseFor();
+ init_baseMergeDeep();
+ init_isObject();
+ init_keysIn();
+ init_safeGet();
+ __name(baseMerge, "baseMerge");
+ baseMerge_default = baseMerge;
}
- };
- const draw$g = function(text2, id2, _version, diagObj) {
- log$1.info("Drawing flowchart");
- diagObj.db.clear();
- const { securityLevel, flowchart: conf2 } = getConfig$1();
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- try {
- diagObj.parser.parse(text2);
- } catch (err) {
- log$1.debug("Parsing failed");
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js
+ function identity4(value2) {
+ return value2;
+ }
+ var identity_default4;
+ var init_identity4 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js"() {
+ "use strict";
+ __name(identity4, "identity");
+ identity_default4 = identity4;
}
- let dir = diagObj.db.getDirection();
- if (dir === void 0) {
- dir = "TD";
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js
+ function apply(func, thisArg, args) {
+ switch (args.length) {
+ case 0:
+ return func.call(thisArg);
+ case 1:
+ return func.call(thisArg, args[0]);
+ case 2:
+ return func.call(thisArg, args[0], args[1]);
+ case 3:
+ return func.call(thisArg, args[0], args[1], args[2]);
}
- const nodeSpacing = conf2.nodeSpacing || 50;
- const rankSpacing = conf2.rankSpacing || 50;
- const g = new Graph({
- multigraph: true,
- compound: true
- }).setGraph({
- rankdir: dir,
- nodesep: nodeSpacing,
- ranksep: rankSpacing,
- marginx: 8,
- marginy: 8
- }).setDefaultEdgeLabel(function() {
- return {};
- });
- let subG;
- const subGraphs2 = diagObj.db.getSubGraphs();
- for (let i3 = subGraphs2.length - 1; i3 >= 0; i3--) {
- subG = subGraphs2[i3];
- diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes);
- }
- const vert = diagObj.db.getVertices();
- log$1.warn("Get vertices", vert);
- const edges2 = diagObj.db.getEdges();
- let i2 = 0;
- for (i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
- subG = subGraphs2[i2];
- selectAll("cluster").append("text");
- for (let j = 0; j < subG.nodes.length; j++) {
- log$1.warn(
- "Setting subgraph",
- subG.nodes[j],
- diagObj.db.lookUpDomId(subG.nodes[j]),
- diagObj.db.lookUpDomId(subG.id)
- );
- g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));
- }
+ return func.apply(thisArg, args);
+ }
+ var apply_default;
+ var init_apply = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js"() {
+ "use strict";
+ __name(apply, "apply");
+ apply_default = apply;
}
- addVertices$2(vert, g, id2, root2, doc, diagObj);
- addEdges$2(edges2, g, diagObj);
- const render2 = new render$1();
- flowChartShapes.addToRender(render2);
- render2.arrows().none = function normal2(parent, id3, edge, type2) {
- const marker = parent.append("marker").attr("id", id3).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
- const path2 = marker.append("path").attr("d", "M 0 0 L 0 0 L 0 0 z");
- applyStyle$2(path2, edge[type2 + "Style"]);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js
+ function overRest(func, start3, transform8) {
+ start3 = nativeMax(start3 === void 0 ? func.length - 1 : start3, 0);
+ return function() {
+ var args = arguments, index = -1, length2 = nativeMax(args.length - start3, 0), array4 = Array(length2);
+ while (++index < length2) {
+ array4[index] = args[start3 + index];
+ }
+ index = -1;
+ var otherArgs = Array(start3 + 1);
+ while (++index < start3) {
+ otherArgs[index] = args[index];
+ }
+ otherArgs[start3] = transform8(array4);
+ return apply_default(func, this, otherArgs);
};
- render2.arrows().normal = function normal2(parent, id3) {
- const marker = parent.append("marker").attr("id", id3).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
- marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowheadPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ }
+ var nativeMax, overRest_default;
+ var init_overRest = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js"() {
+ "use strict";
+ init_apply();
+ nativeMax = Math.max;
+ __name(overRest, "overRest");
+ overRest_default = overRest;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js
+ function constant(value2) {
+ return function() {
+ return value2;
};
- const svg2 = root2.select(`[id="${id2}"]`);
- const element = root2.select("#" + id2 + " g");
- render2(element, g);
- element.selectAll("g.node").attr("title", function() {
- return diagObj.db.getTooltip(this.id);
- });
- diagObj.db.indexNodes("subGraph" + i2);
- for (i2 = 0; i2 < subGraphs2.length; i2++) {
- subG = subGraphs2[i2];
- if (subG.title !== "undefined") {
- const clusterRects = doc.querySelectorAll(
- "#" + id2 + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect'
- );
- const clusterEl = doc.querySelectorAll(
- "#" + id2 + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]'
- );
- const xPos = clusterRects[0].x.baseVal.value;
- const yPos = clusterRects[0].y.baseVal.value;
- const _width = clusterRects[0].width.baseVal.value;
- const cluster = select(clusterEl[0]);
- const te = cluster.select(".label");
- te.attr("transform", `translate(${xPos + _width / 2}, ${yPos + 14})`);
- te.attr("id", id2 + "Text");
- for (let j = 0; j < subG.classes.length; j++) {
- clusterEl[0].classList.add(subG.classes[j]);
- }
- }
- }
- if (!conf2.htmlLabels) {
- const labels = doc.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
- for (const label of labels) {
- const dim = label.getBBox();
- const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
- rect2.setAttribute("rx", 0);
- rect2.setAttribute("ry", 0);
- rect2.setAttribute("width", dim.width);
- rect2.setAttribute("height", dim.height);
- label.insertBefore(rect2, label.firstChild);
- }
- }
- setupGraphViewbox$1(g, svg2, conf2.diagramPadding, conf2.useMaxWidth);
- const keys2 = Object.keys(vert);
- keys2.forEach(function(key) {
- const vertex = vert[key];
- if (vertex.link) {
- const node2 = root2.select("#" + id2 + ' [id="' + diagObj.db.lookUpDomId(key) + '"]');
- if (node2) {
- const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
- link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
- link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
- link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
- if (securityLevel === "sandbox") {
- link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
- } else if (vertex.linkTarget) {
- link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
- }
- const linkNode = node2.insert(function() {
- return link;
- }, ":first-child");
- const shape = node2.select(".label-container");
- if (shape) {
- linkNode.append(function() {
- return shape.node();
- });
- }
- const label = node2.select(".label");
- if (label) {
- linkNode.append(function() {
- return label.node();
- });
- }
+ }
+ var constant_default6;
+ var init_constant7 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js"() {
+ "use strict";
+ __name(constant, "constant");
+ constant_default6 = constant;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js
+ var baseSetToString, baseSetToString_default;
+ var init_baseSetToString = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js"() {
+ "use strict";
+ init_constant7();
+ init_defineProperty();
+ init_identity4();
+ baseSetToString = !defineProperty_default ? identity_default4 : function(func, string3) {
+ return defineProperty_default(func, "toString", {
+ "configurable": true,
+ "enumerable": false,
+ "value": constant_default6(string3),
+ "writable": true
+ });
+ };
+ baseSetToString_default = baseSetToString;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js
+ function shortOut(func) {
+ var count = 0, lastCalled = 0;
+ return function() {
+ var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
+ lastCalled = stamp;
+ if (remaining > 0) {
+ if (++count >= HOT_COUNT) {
+ return arguments[0];
}
+ } else {
+ count = 0;
}
- });
- };
- const flowRenderer = {
- setConf: setConf$8,
- addVertices: addVertices$2,
- addEdges: addEdges$2,
- getClasses: getClasses$5,
- draw: draw$g
- };
- function write(g) {
- var json2 = {
- options: {
- directed: g.isDirected(),
- multigraph: g.isMultigraph(),
- compound: g.isCompound()
- },
- nodes: writeNodes(g),
- edges: writeEdges(g)
+ return func.apply(void 0, arguments);
};
- if (!isUndefined(g.graph())) {
- json2.value = clone$1(g.graph());
+ }
+ var HOT_COUNT, HOT_SPAN, nativeNow, shortOut_default;
+ var init_shortOut = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js"() {
+ "use strict";
+ HOT_COUNT = 800;
+ HOT_SPAN = 16;
+ nativeNow = Date.now;
+ __name(shortOut, "shortOut");
+ shortOut_default = shortOut;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js
+ var setToString, setToString_default;
+ var init_setToString = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js"() {
+ "use strict";
+ init_baseSetToString();
+ init_shortOut();
+ setToString = shortOut_default(baseSetToString_default);
+ setToString_default = setToString;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js
+ function baseRest(func, start3) {
+ return setToString_default(overRest_default(func, start3, identity_default4), func + "");
+ }
+ var baseRest_default;
+ var init_baseRest = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js"() {
+ "use strict";
+ init_identity4();
+ init_overRest();
+ init_setToString();
+ __name(baseRest, "baseRest");
+ baseRest_default = baseRest;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js
+ function isIterateeCall(value2, index, object3) {
+ if (!isObject_default(object3)) {
+ return false;
}
- return json2;
+ var type3 = typeof index;
+ if (type3 == "number" ? isArrayLike_default(object3) && isIndex_default(index, object3.length) : type3 == "string" && index in object3) {
+ return eq_default(object3[index], value2);
+ }
+ return false;
}
- function writeNodes(g) {
- return map(g.nodes(), function(v) {
- var nodeValue = g.node(v);
- var parent = g.parent(v);
- var node2 = { v };
- if (!isUndefined(nodeValue)) {
- node2.value = nodeValue;
+ var isIterateeCall_default;
+ var init_isIterateeCall = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js"() {
+ "use strict";
+ init_eq();
+ init_isArrayLike();
+ init_isIndex();
+ init_isObject();
+ __name(isIterateeCall, "isIterateeCall");
+ isIterateeCall_default = isIterateeCall;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js
+ function createAssigner(assigner) {
+ return baseRest_default(function(object3, sources) {
+ var index = -1, length2 = sources.length, customizer = length2 > 1 ? sources[length2 - 1] : void 0, guard = length2 > 2 ? sources[2] : void 0;
+ customizer = assigner.length > 3 && typeof customizer == "function" ? (length2--, customizer) : void 0;
+ if (guard && isIterateeCall_default(sources[0], sources[1], guard)) {
+ customizer = length2 < 3 ? void 0 : customizer;
+ length2 = 1;
}
- if (!isUndefined(parent)) {
- node2.parent = parent;
+ object3 = Object(object3);
+ while (++index < length2) {
+ var source = sources[index];
+ if (source) {
+ assigner(object3, source, index, customizer);
+ }
}
- return node2;
+ return object3;
});
}
- function writeEdges(g) {
- return map(g.edges(), function(e) {
- var edgeValue = g.edge(e);
- var edge = { v: e.v, w: e.w };
- if (!isUndefined(e.name)) {
- edge.name = e.name;
- }
- if (!isUndefined(edgeValue)) {
- edge.value = edgeValue;
- }
- return edge;
- });
+ var createAssigner_default;
+ var init_createAssigner = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js"() {
+ "use strict";
+ init_baseRest();
+ init_isIterateeCall();
+ __name(createAssigner, "createAssigner");
+ createAssigner_default = createAssigner;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js
+ var merge, merge_default3;
+ var init_merge4 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js"() {
+ "use strict";
+ init_baseMerge();
+ init_createAssigner();
+ merge = createAssigner_default(function(object3, source, srcIndex) {
+ baseMerge_default(object3, source, srcIndex);
+ });
+ merge_default3 = merge;
+ }
+ });
+
+ // src/utils.ts
+ function interpolateToCurve(interpolate, defaultCurve) {
+ if (!interpolate) {
+ return defaultCurve;
+ }
+ const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;
+ return d3CurveTypes[curveName] ?? defaultCurve;
}
- const insertMarkers$3 = (elem, markerArray, type2, id2) => {
- markerArray.forEach((markerName) => {
- markers$1[markerName](elem, type2, id2);
- });
- };
- const extension = (elem, type2, id2) => {
- log$1.trace("Making markers for ", id2);
- elem.append("defs").append("marker").attr("id", type2 + "-extensionStart").attr("class", "marker extension " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
- elem.append("defs").append("marker").attr("id", type2 + "-extensionEnd").attr("class", "marker extension " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
- };
- const composition = (elem, type2) => {
- elem.append("defs").append("marker").attr("id", type2 + "-compositionStart").attr("class", "marker composition " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", type2 + "-compositionEnd").attr("class", "marker composition " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- };
- const aggregation = (elem, type2) => {
- elem.append("defs").append("marker").attr("id", type2 + "-aggregationStart").attr("class", "marker aggregation " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", type2 + "-aggregationEnd").attr("class", "marker aggregation " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- };
- const dependency = (elem, type2) => {
- elem.append("defs").append("marker").attr("id", type2 + "-dependencyStart").attr("class", "marker dependency " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", type2 + "-dependencyEnd").attr("class", "marker dependency " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
- };
- const lollipop = (elem, type2) => {
- elem.append("defs").append("marker").attr("id", type2 + "-lollipopStart").attr("class", "marker lollipop " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "white").attr("cx", 6).attr("cy", 7).attr("r", 6);
- };
- const point = (elem, type2) => {
- elem.append("marker").attr("id", type2 + "-pointEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 10).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
- elem.append("marker").attr("id", type2 + "-pointStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 0).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
- };
- const circle$1 = (elem, type2) => {
- elem.append("marker").attr("id", type2 + "-circleEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
- elem.append("marker").attr("id", type2 + "-circleStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
- };
- const cross = (elem, type2) => {
- elem.append("marker").attr("id", type2 + "-crossEnd").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
- elem.append("marker").attr("id", type2 + "-crossStart").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
- };
- const barb = (elem, type2) => {
- elem.append("defs").append("marker").attr("id", type2 + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
- };
- const markers$1 = {
- extension,
- composition,
- aggregation,
- dependency,
- lollipop,
- point,
- circle: circle$1,
- cross,
- barb
- };
- const insertMarkers$4 = insertMarkers$3;
- function applyStyle$1(dom, styleFn) {
- if (styleFn) {
- dom.attr("style", styleFn);
+ function formatUrl(linkStr, config6) {
+ const url = linkStr.trim();
+ if (!url) {
+ return void 0;
+ }
+ if (config6.securityLevel !== "loose") {
+ return (0, import_sanitize_url3.sanitizeUrl)(url);
+ }
+ return url;
+ }
+ function distance(p1, p22) {
+ if (!p1 || !p22) {
+ return 0;
}
+ return Math.sqrt(Math.pow(p22.x - p1.x, 2) + Math.pow(p22.y - p1.y, 2));
}
- function addHtmlLabel(node2) {
- const fo = select(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"));
- const div = fo.append("xhtml:div");
- const label = node2.label;
- const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
- div.html(
- '" + label + ""
- );
- applyStyle$1(div, node2.labelStyle);
- div.style("display", "inline-block");
- div.style("white-space", "nowrap");
- div.attr("xmlns", "http://www.w3.org/1999/xhtml");
- return fo.node();
+ function traverseEdge(points) {
+ let prevPoint;
+ let totalDistance = 0;
+ points.forEach((point8) => {
+ totalDistance += distance(point8, prevPoint);
+ prevPoint = point8;
+ });
+ const remainingDistance = totalDistance / 2;
+ return calculatePoint(points, remainingDistance);
+ }
+ function calcLabelPosition(points) {
+ if (points.length === 1) {
+ return points[0];
+ }
+ return traverseEdge(points);
}
- const createLabel = (_vertexText, style, isTitle, isNode) => {
- let vertexText = _vertexText || "";
- if (typeof vertexText === "object") {
- vertexText = vertexText[0];
- }
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- vertexText = vertexText.replace(/\\n|\n/g, "
");
- log$1.info("vertexText" + vertexText);
- const node2 = {
- isNode,
- label: decodeEntities(vertexText).replace(
- /fa[blrs]?:fa-[\w-]+/g,
- (s) => ``
- ),
- labelStyle: style.replace("fill:", "color:")
- };
- let vertexNode = addHtmlLabel(node2);
- return vertexNode;
+ function calcTerminalLabelPosition(terminalMarkerSize, position5, _points) {
+ const points = structuredClone(_points);
+ log.info("our points", points);
+ if (position5 !== "start_left" && position5 !== "start_right") {
+ points.reverse();
+ }
+ const distanceToCardinalityPoint = 25 + terminalMarkerSize;
+ const center4 = calculatePoint(points, distanceToCardinalityPoint);
+ const d2 = 10 + terminalMarkerSize * 0.5;
+ const angle2 = Math.atan2(points[0].y - center4.y, points[0].x - center4.x);
+ const cardinalityPosition = { x: 0, y: 0 };
+ if (position5 === "start_left") {
+ cardinalityPosition.x = Math.sin(angle2 + Math.PI) * d2 + (points[0].x + center4.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle2 + Math.PI) * d2 + (points[0].y + center4.y) / 2;
+ } else if (position5 === "end_right") {
+ cardinalityPosition.x = Math.sin(angle2 - Math.PI) * d2 + (points[0].x + center4.x) / 2 - 5;
+ cardinalityPosition.y = -Math.cos(angle2 - Math.PI) * d2 + (points[0].y + center4.y) / 2 - 5;
+ } else if (position5 === "end_left") {
+ cardinalityPosition.x = Math.sin(angle2) * d2 + (points[0].x + center4.x) / 2 - 5;
+ cardinalityPosition.y = -Math.cos(angle2) * d2 + (points[0].y + center4.y) / 2 - 5;
} else {
- const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
- svgLabel.setAttribute("style", style.replace("color:", "fill:"));
- let rows = [];
- if (typeof vertexText === "string") {
- rows = vertexText.split(/\\n|\n|
/gi);
- } else if (Array.isArray(vertexText)) {
- rows = vertexText;
- } else {
- rows = [];
- }
- for (const row of rows) {
- const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
- tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
- tspan.setAttribute("dy", "1em");
- tspan.setAttribute("x", "0");
- if (isTitle) {
- tspan.setAttribute("class", "title-row");
+ cardinalityPosition.x = Math.sin(angle2) * d2 + (points[0].x + center4.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle2) * d2 + (points[0].y + center4.y) / 2;
+ }
+ return cardinalityPosition;
+ }
+ function getStylesFromArray(arr) {
+ let style3 = "";
+ let labelStyle = "";
+ for (const element3 of arr) {
+ if (element3 !== void 0) {
+ if (element3.startsWith("color:") || element3.startsWith("text-align:")) {
+ labelStyle = labelStyle + element3 + ";";
} else {
- tspan.setAttribute("class", "row");
+ style3 = style3 + element3 + ";";
}
- tspan.textContent = row.trim();
- svgLabel.appendChild(tspan);
}
- return svgLabel;
}
- };
- const createLabel$1 = createLabel;
- var CR_NEWLINE_R = /\r\n?/g;
- var TAB_R = /\t/g;
- var FORMFEED_R = /\f/g;
- var preprocess = function preprocess2(source) {
- return source.replace(CR_NEWLINE_R, "\n").replace(FORMFEED_R, "").replace(TAB_R, " ");
- };
- var populateInitialState = function populateInitialState2(givenState, defaultState) {
- var state2 = givenState || {};
- if (defaultState != null) {
- for (var prop in defaultState) {
- if (Object.prototype.hasOwnProperty.call(defaultState, prop)) {
- state2[prop] = defaultState[prop];
- }
- }
+ return { style: style3, labelStyle };
+ }
+ function makeRandomHex(length2) {
+ let result = "";
+ const characters2 = "0123456789abcdef";
+ const charactersLength = characters2.length;
+ for (let i2 = 0; i2 < length2; i2++) {
+ result += characters2.charAt(Math.floor(Math.random() * charactersLength));
}
- return state2;
- };
- var parserFor = function parserFor2(rules, defaultState) {
- var ruleList = Object.keys(rules).filter(function(type2) {
- var rule = rules[type2];
- if (rule == null || rule.match == null) {
- return false;
- }
- var order2 = rule.order;
- if ((typeof order2 !== "number" || !isFinite(order2)) && typeof console !== "undefined") {
- console.warn("simple-markdown: Invalid order for rule `" + type2 + "`: " + String(order2));
- }
- return true;
- });
- ruleList.sort(function(typeA, typeB) {
- var ruleA = rules[typeA];
- var ruleB = rules[typeB];
- var orderA = ruleA.order;
- var orderB = ruleB.order;
- if (orderA !== orderB) {
- return orderA - orderB;
- }
- var secondaryOrderA = ruleA.quality ? 0 : 1;
- var secondaryOrderB = ruleB.quality ? 0 : 1;
- if (secondaryOrderA !== secondaryOrderB) {
- return secondaryOrderA - secondaryOrderB;
- } else if (typeA < typeB) {
- return -1;
- } else if (typeA > typeB) {
- return 1;
- } else {
- return 0;
- }
- });
- var latestState;
- var nestedParse = function nestedParse2(source, state2) {
- var result = [];
- state2 = state2 || latestState;
- latestState = state2;
- while (source) {
- var ruleType = null;
- var rule = null;
- var capture = null;
- var quality = NaN;
- var i2 = 0;
- var currRuleType = ruleList[0];
- var currRule = rules[currRuleType];
- do {
- var currOrder2 = currRule.order;
- var prevCaptureStr = state2.prevCapture == null ? "" : state2.prevCapture[0];
- var currCapture = currRule.match(source, state2, prevCaptureStr);
- if (currCapture) {
- var currQuality = currRule.quality ? currRule.quality(currCapture, state2, prevCaptureStr) : 0;
- if (!(currQuality <= quality)) {
- ruleType = currRuleType;
- rule = currRule;
- capture = currCapture;
- quality = currQuality;
- }
- }
- i2++;
- currRuleType = ruleList[i2];
- currRule = rules[currRuleType];
- } while (
- // keep looping while we're still within the ruleList
- currRule && // if we don't have a match yet, continue
- (!capture || // or if we have a match, but the next rule is
- // at the same order, and has a quality measurement
- // functions, then this rule must have a quality
- // measurement function (since they are sorted before
- // those without), and we need to check if there is
- // a better quality match
- currRule.order === currOrder2 && currRule.quality)
- );
- if (rule == null || capture == null) {
- throw new Error("Could not find a matching rule for the below content. The rule with highest `order` should always match content provided to it. Check the definition of `match` for '" + ruleList[ruleList.length - 1] + "'. It seems to not match the following source:\n" + source);
+ return result;
+ }
+ function calculateTextHeight(text2, config6) {
+ return calculateTextDimensions(text2, config6).height;
+ }
+ function calculateTextWidth(text2, config6) {
+ return calculateTextDimensions(text2, config6).width;
+ }
+ function isDetailedError(error3) {
+ return "str" in error3;
+ }
+ function cleanAndMerge(defaultData, data5) {
+ return merge_default3({}, defaultData, data5);
+ }
+ var import_sanitize_url3, ZERO_WIDTH_SPACE, d3CurveTypes, directiveWithoutOpen, detectInit, detectDirective, removeDirectives, isSubstringInArray, runFunc, roundNumber, calculatePoint, calcCardinalityPosition, cnt, generateId, random, getTextObj2, drawSimpleText, wrapLabel, breakString, calculateTextDimensions, InitIDGenerator, decoder, entityDecode, insertTitle, parseFontSize, utils_default2, encodeEntities, decodeEntities, getEdgeId;
+ var init_utils2 = __esm({
+ "src/utils.ts"() {
+ "use strict";
+ import_sanitize_url3 = __toESM(require_dist(), 1);
+ init_src32();
+ init_common();
+ init_sanitizeDirective();
+ init_logger();
+ init_detectType();
+ init_assignWithDepth();
+ init_memoize();
+ init_merge4();
+ init_regexes();
+ ZERO_WIDTH_SPACE = "\u200B";
+ d3CurveTypes = {
+ curveBasis: basis_default2,
+ curveBasisClosed: basisClosed_default2,
+ curveBasisOpen: basisOpen_default,
+ curveBumpX: bumpX,
+ curveBumpY: bumpY,
+ curveBundle: bundle_default,
+ curveCardinalClosed: cardinalClosed_default,
+ curveCardinalOpen: cardinalOpen_default,
+ curveCardinal: cardinal_default,
+ curveCatmullRomClosed: catmullRomClosed_default,
+ curveCatmullRomOpen: catmullRomOpen_default,
+ curveCatmullRom: catmullRom_default,
+ curveLinear: linear_default,
+ curveLinearClosed: linearClosed_default,
+ curveMonotoneX: monotoneX,
+ curveMonotoneY: monotoneY,
+ curveNatural: natural_default,
+ curveStep: step_default,
+ curveStepAfter: stepAfter,
+ curveStepBefore: stepBefore
+ };
+ directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
+ detectInit = /* @__PURE__ */ __name(function(text2, config6) {
+ const inits = detectDirective(text2, /(?:init\b)|(?:initialize\b)/);
+ let results = {};
+ if (Array.isArray(inits)) {
+ const args = inits.map((init3) => init3.args);
+ sanitizeDirective(args);
+ results = assignWithDepth_default(results, [...args]);
+ } else {
+ results = inits.args;
}
- if (capture.index) {
- throw new Error("`match` must return a capture starting at index 0 (the current parse index). Did you forget a ^ at the start of the RegExp?");
+ if (!results) {
+ return;
}
- var parsed = rule.parse(capture, nestedParse2, state2);
- if (Array.isArray(parsed)) {
- Array.prototype.push.apply(result, parsed);
- } else {
- if (parsed == null || typeof parsed !== "object") {
- throw new Error(`parse() function returned invalid parse result: '${parsed}'`);
- }
- if (parsed.type == null) {
- parsed.type = ruleType;
+ let type3 = detectType(text2, config6);
+ const prop = "config";
+ if (results[prop] !== void 0) {
+ if (type3 === "flowchart-v2") {
+ type3 = "flowchart";
}
- result.push(parsed);
+ results[type3] = results[prop];
+ delete results[prop];
}
- state2.prevCapture = capture;
- source = source.substring(state2.prevCapture[0].length);
- }
- return result;
- };
- var outerParse = function outerParse2(source, state2) {
- latestState = populateInitialState(state2, defaultState);
- if (!latestState.inline && !latestState.disableAutoBlockNewlines) {
- source = source + "\n\n";
- }
- latestState.prevCapture = null;
- return nestedParse(preprocess(source), latestState);
- };
- return outerParse;
- };
- var inlineRegex = function inlineRegex2(regex) {
- var match = function match5(source, state2, prevCapture) {
- if (state2.inline) {
- return regex.exec(source);
- } else {
- return null;
- }
- };
- match.regex = regex;
- return match;
- };
- var blockRegex = function blockRegex2(regex) {
- var match = function match5(source, state2) {
- if (state2.inline) {
- return null;
- } else {
- return regex.exec(source);
- }
- };
- match.regex = regex;
- return match;
- };
- var anyScopeRegex = function anyScopeRegex2(regex) {
- var match = function match5(source, state2) {
- return regex.exec(source);
- };
- match.regex = regex;
- return match;
- };
- var TYPE_SYMBOL = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 60103;
- var reactElement = function reactElement2(type2, key, props) {
- var element = {
- $$typeof: TYPE_SYMBOL,
- type: type2,
- key: key == null ? void 0 : key,
- ref: null,
- props,
- _owner: null
- };
- return element;
- };
- var htmlTag = function htmlTag2(tagName, content, attributes, isClosed) {
- attributes = attributes || {};
- isClosed = typeof isClosed !== "undefined" ? isClosed : true;
- var attributeString = "";
- for (var attr in attributes) {
- var attribute = attributes[attr];
- if (Object.prototype.hasOwnProperty.call(attributes, attr) && attribute) {
- attributeString += " " + sanitizeText$3(attr) + '="' + sanitizeText$3(attribute) + '"';
- }
- }
- var unclosedTag = "<" + tagName + attributeString + ">";
- if (isClosed) {
- return unclosedTag + content + "" + tagName + ">";
- } else {
- return unclosedTag;
- }
- };
- var EMPTY_PROPS = {};
- var sanitizeUrl = function sanitizeUrl2(url) {
- if (url == null) {
- return null;
- }
- try {
- var prot = new URL(url, "https://localhost").protocol;
- if (prot.indexOf("javascript:") === 0 || prot.indexOf("vbscript:") === 0 || prot.indexOf("data:") === 0) {
- return null;
- }
- } catch (e) {
- return null;
- }
- return url;
- };
- var SANITIZE_TEXT_R = /[<>&"']/g;
- var SANITIZE_TEXT_CODES = {
- "<": "<",
- ">": ">",
- "&": "&",
- '"': """,
- "'": "'",
- "/": "/",
- "`": "`"
- };
- var sanitizeText$3 = function sanitizeText2(text2) {
- return String(text2).replace(SANITIZE_TEXT_R, function(chr) {
- return SANITIZE_TEXT_CODES[chr];
- });
- };
- var UNESCAPE_URL_R = /\\([^0-9A-Za-z\s])/g;
- var unescapeUrl = function unescapeUrl2(rawUrlString) {
- return rawUrlString.replace(UNESCAPE_URL_R, "$1");
- };
- var parseInline = function parseInline2(parse2, content, state2) {
- var isCurrentlyInline = state2.inline || false;
- state2.inline = true;
- var result = parse2(content, state2);
- state2.inline = isCurrentlyInline;
- return result;
- };
- var parseBlock = function parseBlock2(parse2, content, state2) {
- var isCurrentlyInline = state2.inline || false;
- state2.inline = false;
- var result = parse2(content + "\n\n", state2);
- state2.inline = isCurrentlyInline;
- return result;
- };
- var parseCaptureInline = function parseCaptureInline2(capture, parse2, state2) {
- return {
- content: parseInline(parse2, capture[1], state2)
- };
- };
- var ignoreCapture = function ignoreCapture2() {
- return {};
- };
- var LIST_BULLET = "(?:[*+-]|\\d+\\.)";
- var LIST_ITEM_PREFIX = "( *)(" + LIST_BULLET + ") +";
- var LIST_ITEM_PREFIX_R = new RegExp("^" + LIST_ITEM_PREFIX);
- var LIST_ITEM_R = new RegExp(LIST_ITEM_PREFIX + "[^\\n]*(?:\\n(?!\\1" + LIST_BULLET + " )[^\\n]*)*(\n|$)", "gm");
- var BLOCK_END_R = /\n{2,}$/;
- var INLINE_CODE_ESCAPE_BACKTICKS_R = /^ (?= *`)|(` *) $/g;
- var LIST_BLOCK_END_R = BLOCK_END_R;
- var LIST_ITEM_END_R = / *\n+$/;
- var LIST_R = new RegExp("^( *)(" + LIST_BULLET + ") [\\s\\S]+?(?:\n{2,}(?! )(?!\\1" + LIST_BULLET + " )\\n*|\\s*\n*$)");
- var LIST_LOOKBEHIND_R = /(?:^|\n)( *)$/;
- var TABLES = function() {
- var TABLE_ROW_SEPARATOR_TRIM = /^ *\| *| *\| *$/g;
- var TABLE_CELL_END_TRIM = / *$/;
- var TABLE_RIGHT_ALIGN = /^ *-+: *$/;
- var TABLE_CENTER_ALIGN = /^ *:-+: *$/;
- var TABLE_LEFT_ALIGN = /^ *:-+ *$/;
- var parseTableAlignCapture = function parseTableAlignCapture2(alignCapture) {
- if (TABLE_RIGHT_ALIGN.test(alignCapture)) {
- return "right";
- } else if (TABLE_CENTER_ALIGN.test(alignCapture)) {
- return "center";
- } else if (TABLE_LEFT_ALIGN.test(alignCapture)) {
- return "left";
- } else {
- return null;
- }
- };
- var parseTableAlign = function parseTableAlign2(source, parse2, state2, trimEndSeparators) {
- if (trimEndSeparators) {
- source = source.replace(TABLE_ROW_SEPARATOR_TRIM, "");
- }
- var alignText = source.trim().split("|");
- return alignText.map(parseTableAlignCapture);
- };
- var parseTableRow = function parseTableRow2(source, parse2, state2, trimEndSeparators) {
- var prevInTable = state2.inTable;
- state2.inTable = true;
- var tableRow = parse2(source.trim(), state2);
- state2.inTable = prevInTable;
- var cells = [[]];
- tableRow.forEach(function(node2, i2) {
- if (node2.type === "tableSeparator") {
- if (!trimEndSeparators || i2 !== 0 && i2 !== tableRow.length - 1) {
- cells.push([]);
+ return results;
+ }, "detectInit");
+ detectDirective = /* @__PURE__ */ __name(function(text2, type3 = null) {
+ try {
+ const commentWithoutDirectives = new RegExp(
+ `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*
+`,
+ "ig"
+ );
+ text2 = text2.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"');
+ log.debug(
+ `Detecting diagram directive${type3 !== null ? " type:" + type3 : ""} based on the text:${text2}`
+ );
+ let match2;
+ const result = [];
+ while ((match2 = directiveRegex.exec(text2)) !== null) {
+ if (match2.index === directiveRegex.lastIndex) {
+ directiveRegex.lastIndex++;
+ }
+ if (match2 && !type3 || type3 && match2[1]?.match(type3) || type3 && match2[2]?.match(type3)) {
+ const type4 = match2[1] ? match2[1] : match2[2];
+ const args = match2[3] ? match2[3].trim() : match2[4] ? JSON.parse(match2[4].trim()) : null;
+ result.push({ type: type4, args });
+ }
}
- } else {
- if (node2.type === "text" && (tableRow[i2 + 1] == null || tableRow[i2 + 1].type === "tableSeparator")) {
- node2.content = node2.content.replace(TABLE_CELL_END_TRIM, "");
+ if (result.length === 0) {
+ return { type: text2, args: null };
}
- cells[cells.length - 1].push(node2);
+ return result.length === 1 ? result[0] : result;
+ } catch (error3) {
+ log.error(
+ `ERROR: ${error3.message} - Unable to parse directive type: '${type3}' based on the text: '${text2}'`
+ );
+ return { type: void 0, args: null };
}
- });
- return cells;
- };
- var parseTableCells = function parseTableCells2(source, parse2, state2, trimEndSeparators) {
- var rowsText = source.trim().split("\n");
- return rowsText.map(function(rowText) {
- return parseTableRow(rowText, parse2, state2, trimEndSeparators);
- });
- };
- var parseTable = function parseTable2(trimEndSeparators) {
- return function(capture, parse2, state2) {
- state2.inline = true;
- var header = parseTableRow(capture[1], parse2, state2, trimEndSeparators);
- var align = parseTableAlign(capture[2], parse2, state2, trimEndSeparators);
- var cells = parseTableCells(capture[3], parse2, state2, trimEndSeparators);
- state2.inline = false;
- return {
- type: "table",
- header,
- align,
- cells
- };
- };
- };
- return {
- parseTable: parseTable(true),
- parseNpTable: parseTable(false),
- TABLE_REGEX: /^ *(\|.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/,
- NPTABLE_REGEX: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/
- };
- }();
- var LINK_INSIDE = "(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*";
- var LINK_HREF_AND_TITLE = `\\s*((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['"]([\\s\\S]*?)['"])?\\s*`;
- var AUTOLINK_MAILTO_CHECK_R = /mailto:/i;
- var parseRef = function parseRef2(capture, state2, refNode) {
- var ref = (capture[2] || capture[1]).replace(/\s+/g, " ").toLowerCase();
- if (state2._defs && state2._defs[ref]) {
- var def = state2._defs[ref];
- refNode.target = def.target;
- refNode.title = def.title;
- }
- state2._refs = state2._refs || {};
- state2._refs[ref] = state2._refs[ref] || [];
- state2._refs[ref].push(refNode);
- return refNode;
- };
- var currOrder = 0;
- var defaultRules = {
- Array: {
- react: function(arr, output, state2) {
- var oldKey = state2.key;
- var result = [];
- for (var i2 = 0, key = 0; i2 < arr.length; i2++, key++) {
- state2.key = "" + i2;
- var node2 = arr[i2];
- if (node2.type === "text") {
- node2 = {
- type: "text",
- content: node2.content
- };
- for (; i2 + 1 < arr.length && arr[i2 + 1].type === "text"; i2++) {
- node2.content += arr[i2 + 1].content;
- }
+ }, "detectDirective");
+ removeDirectives = /* @__PURE__ */ __name(function(text2) {
+ return text2.replace(directiveRegex, "");
+ }, "removeDirectives");
+ isSubstringInArray = /* @__PURE__ */ __name(function(str2, arr) {
+ for (const [i2, element3] of arr.entries()) {
+ if (element3.match(str2)) {
+ return i2;
}
- result.push(output(node2, state2));
}
- state2.key = oldKey;
- return result;
- },
- html: function(arr, output, state2) {
- var result = "";
- for (var i2 = 0; i2 < arr.length; i2++) {
- var node2 = arr[i2];
- if (node2.type === "text") {
- node2 = {
- type: "text",
- content: node2.content
- };
- for (; i2 + 1 < arr.length && arr[i2 + 1].type === "text"; i2++) {
- node2.content += arr[i2 + 1].content;
- }
+ return -1;
+ }, "isSubstringInArray");
+ __name(interpolateToCurve, "interpolateToCurve");
+ __name(formatUrl, "formatUrl");
+ runFunc = /* @__PURE__ */ __name((functionName, ...params) => {
+ const arrPaths = functionName.split(".");
+ const len = arrPaths.length - 1;
+ const fnName = arrPaths[len];
+ let obj = window;
+ for (let i2 = 0; i2 < len; i2++) {
+ obj = obj[arrPaths[i2]];
+ if (!obj) {
+ log.error(`Function name: ${functionName} not found in window`);
+ return;
}
- result += output(node2, state2);
}
- return result;
- }
- },
- heading: {
- order: currOrder++,
- match: blockRegex(/^ *(#{1,6})([^\n]+?)#* *(?:\n *)+\n/),
- parse: function(capture, parse2, state2) {
+ obj[fnName](...params);
+ }, "runFunc");
+ __name(distance, "distance");
+ __name(traverseEdge, "traverseEdge");
+ __name(calcLabelPosition, "calcLabelPosition");
+ roundNumber = /* @__PURE__ */ __name((num, precision = 2) => {
+ const factor = Math.pow(10, precision);
+ return Math.round(num * factor) / factor;
+ }, "roundNumber");
+ calculatePoint = /* @__PURE__ */ __name((points, distanceToTraverse) => {
+ let prevPoint = void 0;
+ let remainingDistance = distanceToTraverse;
+ for (const point8 of points) {
+ if (prevPoint) {
+ const vectorDistance = distance(point8, prevPoint);
+ if (vectorDistance < remainingDistance) {
+ remainingDistance -= vectorDistance;
+ } else {
+ const distanceRatio = remainingDistance / vectorDistance;
+ if (distanceRatio <= 0) {
+ return prevPoint;
+ }
+ if (distanceRatio >= 1) {
+ return { x: point8.x, y: point8.y };
+ }
+ if (distanceRatio > 0 && distanceRatio < 1) {
+ return {
+ x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point8.x, 5),
+ y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point8.y, 5)
+ };
+ }
+ }
+ }
+ prevPoint = point8;
+ }
+ throw new Error("Could not find a suitable point for the given distance");
+ }, "calculatePoint");
+ calcCardinalityPosition = /* @__PURE__ */ __name((isRelationTypePresent, points, initialPosition) => {
+ log.info(`our points ${JSON.stringify(points)}`);
+ if (points[0] !== initialPosition) {
+ points = points.reverse();
+ }
+ const distanceToCardinalityPoint = 25;
+ const center4 = calculatePoint(points, distanceToCardinalityPoint);
+ const d2 = isRelationTypePresent ? 10 : 5;
+ const angle2 = Math.atan2(points[0].y - center4.y, points[0].x - center4.x);
+ const cardinalityPosition = { x: 0, y: 0 };
+ cardinalityPosition.x = Math.sin(angle2) * d2 + (points[0].x + center4.x) / 2;
+ cardinalityPosition.y = -Math.cos(angle2) * d2 + (points[0].y + center4.y) / 2;
+ return cardinalityPosition;
+ }, "calcCardinalityPosition");
+ __name(calcTerminalLabelPosition, "calcTerminalLabelPosition");
+ __name(getStylesFromArray, "getStylesFromArray");
+ cnt = 0;
+ generateId = /* @__PURE__ */ __name(() => {
+ cnt++;
+ return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt;
+ }, "generateId");
+ __name(makeRandomHex, "makeRandomHex");
+ random = /* @__PURE__ */ __name((options3) => {
+ return makeRandomHex(options3.length);
+ }, "random");
+ getTextObj2 = /* @__PURE__ */ __name(function() {
return {
- level: capture[1].length,
- content: parseInline(parse2, capture[2].trim(), state2)
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: "start",
+ style: "#666",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ valign: void 0,
+ text: ""
};
- },
- react: function(node2, output, state2) {
- return reactElement("h" + node2.level, state2.key, {
- children: output(node2.content, state2)
+ }, "getTextObj");
+ drawSimpleText = /* @__PURE__ */ __name(function(elem, textData) {
+ const nText = textData.text.replace(common_default.lineBreakRegex, " ");
+ const [, _fontSizePx] = parseFontSize(textData.fontSize);
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.style("text-anchor", textData.anchor);
+ textElem.style("font-family", textData.fontFamily);
+ textElem.style("font-size", _fontSizePx);
+ textElem.style("font-weight", textData.fontWeight);
+ textElem.attr("fill", textData.fill);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.attr("fill", textData.fill);
+ span.text(nText);
+ return textElem;
+ }, "drawSimpleText");
+ wrapLabel = memoize_default(
+ (label, maxWidth, config6) => {
+ if (!label) {
+ return label;
+ }
+ config6 = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" },
+ config6
+ );
+ if (common_default.lineBreakRegex.test(label)) {
+ return label;
+ }
+ const words = label.split(" ").filter(Boolean);
+ const completedLines = [];
+ let nextLine = "";
+ words.forEach((word, index) => {
+ const wordLength = calculateTextWidth(`${word} `, config6);
+ const nextLineLength = calculateTextWidth(nextLine, config6);
+ if (wordLength > maxWidth) {
+ const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config6);
+ completedLines.push(nextLine, ...hyphenatedStrings);
+ nextLine = remainingWord;
+ } else if (nextLineLength + wordLength >= maxWidth) {
+ completedLines.push(nextLine);
+ nextLine = word;
+ } else {
+ nextLine = [nextLine, word].filter(Boolean).join(" ");
+ }
+ const currentWord = index + 1;
+ const isLastWord = currentWord === words.length;
+ if (isLastWord) {
+ completedLines.push(nextLine);
+ }
+ });
+ return completedLines.filter((line2) => line2 !== "").join(config6.joinWith);
+ },
+ (label, maxWidth, config6) => `${label}${maxWidth}${config6.fontSize}${config6.fontWeight}${config6.fontFamily}${config6.joinWith}`
+ );
+ breakString = memoize_default(
+ (word, maxWidth, hyphenCharacter = "-", config6) => {
+ config6 = Object.assign(
+ { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
+ config6
+ );
+ const characters2 = [...word];
+ const lines = [];
+ let currentLine = "";
+ characters2.forEach((character2, index) => {
+ const nextLine = `${currentLine}${character2}`;
+ const lineWidth = calculateTextWidth(nextLine, config6);
+ if (lineWidth >= maxWidth) {
+ const currentCharacter = index + 1;
+ const isLastLine = characters2.length === currentCharacter;
+ const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;
+ lines.push(isLastLine ? nextLine : hyphenatedNextLine);
+ currentLine = "";
+ } else {
+ currentLine = nextLine;
+ }
+ });
+ return { hyphenatedStrings: lines, remainingWord: currentLine };
+ },
+ (word, maxWidth, hyphenCharacter = "-", config6) => `${word}${maxWidth}${hyphenCharacter}${config6.fontSize}${config6.fontWeight}${config6.fontFamily}`
+ );
+ __name(calculateTextHeight, "calculateTextHeight");
+ __name(calculateTextWidth, "calculateTextWidth");
+ calculateTextDimensions = memoize_default(
+ (text2, config6) => {
+ const { fontSize = 12, fontFamily = "Arial", fontWeight = 400 } = config6;
+ if (!text2) {
+ return { width: 0, height: 0 };
+ }
+ const [, _fontSizePx] = parseFontSize(fontSize);
+ const fontFamilies = ["sans-serif", fontFamily];
+ const lines = text2.split(common_default.lineBreakRegex);
+ const dims = [];
+ const body = select_default2("body");
+ if (!body.remove) {
+ return { width: 0, height: 0, lineHeight: 0 };
+ }
+ const g2 = body.append("svg");
+ for (const fontFamily2 of fontFamilies) {
+ let cHeight = 0;
+ const dim = { width: 0, height: 0, lineHeight: 0 };
+ for (const line2 of lines) {
+ const textObj = getTextObj2();
+ textObj.text = line2 || ZERO_WIDTH_SPACE;
+ const textElem = drawSimpleText(g2, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2);
+ const bBox = (textElem._groups || textElem)[0][0].getBBox();
+ if (bBox.width === 0 && bBox.height === 0) {
+ throw new Error("svg element not in render tree");
+ }
+ dim.width = Math.round(Math.max(dim.width, bBox.width));
+ cHeight = Math.round(bBox.height);
+ dim.height += cHeight;
+ dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight));
+ }
+ dims.push(dim);
+ }
+ g2.remove();
+ const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;
+ return dims[index];
+ },
+ (text2, config6) => `${text2}${config6.fontSize}${config6.fontWeight}${config6.fontFamily}`
+ );
+ InitIDGenerator = class {
+ constructor(deterministic = false, seed) {
+ this.count = 0;
+ this.count = seed ? seed.length : 0;
+ this.next = deterministic ? () => this.count++ : () => Date.now();
+ }
+ static {
+ __name(this, "InitIDGenerator");
+ }
+ };
+ entityDecode = /* @__PURE__ */ __name(function(html2) {
+ decoder = decoder || document.createElement("div");
+ html2 = escape(html2).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";");
+ decoder.innerHTML = html2;
+ return unescape(decoder.textContent);
+ }, "entityDecode");
+ __name(isDetailedError, "isDetailedError");
+ insertTitle = /* @__PURE__ */ __name((parent4, cssClass, titleTopMargin, title2) => {
+ if (!title2) {
+ return;
+ }
+ const bounds4 = parent4.node()?.getBBox();
+ if (!bounds4) {
+ return;
+ }
+ parent4.append("text").text(title2).attr("x", bounds4.x + bounds4.width / 2).attr("y", -titleTopMargin).attr("class", cssClass);
+ }, "insertTitle");
+ parseFontSize = /* @__PURE__ */ __name((fontSize) => {
+ if (typeof fontSize === "number") {
+ return [fontSize, fontSize + "px"];
+ }
+ const fontSizeNumber = parseInt(fontSize ?? "", 10);
+ if (Number.isNaN(fontSizeNumber)) {
+ return [void 0, void 0];
+ } else if (fontSize === String(fontSizeNumber)) {
+ return [fontSizeNumber, fontSize + "px"];
+ } else {
+ return [fontSizeNumber, fontSize];
+ }
+ }, "parseFontSize");
+ __name(cleanAndMerge, "cleanAndMerge");
+ utils_default2 = {
+ assignWithDepth: assignWithDepth_default,
+ wrapLabel,
+ calculateTextHeight,
+ calculateTextWidth,
+ calculateTextDimensions,
+ cleanAndMerge,
+ detectInit,
+ detectDirective,
+ isSubstringInArray,
+ interpolateToCurve,
+ calcLabelPosition,
+ calcCardinalityPosition,
+ calcTerminalLabelPosition,
+ formatUrl,
+ getStylesFromArray,
+ generateId,
+ random,
+ runFunc,
+ entityDecode,
+ insertTitle,
+ parseFontSize,
+ InitIDGenerator
+ };
+ encodeEntities = /* @__PURE__ */ __name(function(text2) {
+ let txt = text2;
+ txt = txt.replace(/style.*:\S*#.*;/g, function(s2) {
+ return s2.substring(0, s2.length - 1);
});
- },
- html: function(node2, output, state2) {
- return htmlTag("h" + node2.level, output(node2.content, state2));
- }
- },
- nptable: {
- order: currOrder++,
- match: blockRegex(TABLES.NPTABLE_REGEX),
- parse: TABLES.parseNpTable,
- react: null,
- html: null
- },
- lheading: {
- order: currOrder++,
- match: blockRegex(/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/),
- parse: function(capture, parse2, state2) {
- return {
- type: "heading",
- level: capture[2] === "=" ? 1 : 2,
- content: parseInline(parse2, capture[1], state2)
- };
- },
- react: null,
- html: null
- },
- hr: {
- order: currOrder++,
- match: blockRegex(/^( *[-*_]){3,} *(?:\n *)+\n/),
- parse: ignoreCapture,
- react: function(node2, output, state2) {
- return reactElement("hr", state2.key, EMPTY_PROPS);
- },
- html: function(node2, output, state2) {
- return "
";
- }
- },
- codeBlock: {
- order: currOrder++,
- match: blockRegex(/^(?: [^\n]+\n*)+(?:\n *)+\n/),
- parse: function(capture, parse2, state2) {
- var content = capture[0].replace(/^ /gm, "").replace(/\n+$/, "");
- return {
- lang: void 0,
- content
- };
- },
- react: function(node2, output, state2) {
- var className = node2.lang ? "markdown-code-" + node2.lang : void 0;
- return reactElement("pre", state2.key, {
- children: reactElement("code", null, {
- className,
- children: node2.content
- })
+ txt = txt.replace(/classDef.*:\S*#.*;/g, function(s2) {
+ return s2.substring(0, s2.length - 1);
});
- },
- html: function(node2, output, state2) {
- var className = node2.lang ? "markdown-code-" + node2.lang : void 0;
- var codeBlock = htmlTag("code", sanitizeText$3(node2.content), {
- class: className
+ txt = txt.replace(/#\w+;/g, function(s2) {
+ const innerTxt = s2.substring(1, s2.length - 1);
+ const isInt = /^\+?\d+$/.test(innerTxt);
+ if (isInt) {
+ return "\uFB02\xB0\xB0" + innerTxt + "\xB6\xDF";
+ } else {
+ return "\uFB02\xB0" + innerTxt + "\xB6\xDF";
+ }
});
- return htmlTag("pre", codeBlock);
- }
- },
- fence: {
- order: currOrder++,
- match: blockRegex(/^ *(`{3,}|~{3,}) *(?:(\S+) *)?\n([\s\S]+?)\n?\1 *(?:\n *)+\n/),
- parse: function(capture, parse2, state2) {
- return {
- type: "codeBlock",
- lang: capture[2] || void 0,
- content: capture[3]
- };
- },
- react: null,
- html: null
- },
- blockQuote: {
- order: currOrder++,
- match: blockRegex(/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/),
- parse: function(capture, parse2, state2) {
- var content = capture[0].replace(/^ *> ?/gm, "");
- return {
- content: parse2(content, state2)
- };
- },
- react: function(node2, output, state2) {
- return reactElement("blockquote", state2.key, {
- children: output(node2.content, state2)
- });
- },
- html: function(node2, output, state2) {
- return htmlTag("blockquote", output(node2.content, state2));
- }
- },
- list: {
- order: currOrder++,
- match: function(source, state2) {
- var prevCaptureStr = state2.prevCapture == null ? "" : state2.prevCapture[0];
- var isStartOfLineCapture = LIST_LOOKBEHIND_R.exec(prevCaptureStr);
- var isListBlock = state2._list || !state2.inline;
- if (isStartOfLineCapture && isListBlock) {
- source = isStartOfLineCapture[1] + source;
- return LIST_R.exec(source);
- } else {
- return null;
+ return txt;
+ }, "encodeEntities");
+ decodeEntities = /* @__PURE__ */ __name(function(text2) {
+ return text2.replace(/fl°°/g, "").replace(/fl°/g, "&").replace(/¶ß/g, ";");
+ }, "decodeEntities");
+ getEdgeId = /* @__PURE__ */ __name((from2, to, {
+ counter: counter2 = 0,
+ prefix,
+ suffix
+ }) => {
+ return `${prefix ? `${prefix}_` : ""}${from2}_${to}_${counter2}${suffix ? `_${suffix}` : ""}`;
+ }, "getEdgeId");
+ }
+ });
+
+ // src/diagrams/c4/c4Renderer.js
+ function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {
+ if (!c4Shape[textType].width) {
+ if (c4ShapeTextWrap) {
+ c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);
+ c4Shape[textType].textLines = c4Shape[textType].text.split(common_default.lineBreakRegex).length;
+ c4Shape[textType].width = textLimitWidth;
+ c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);
+ } else {
+ let lines = c4Shape[textType].text.split(common_default.lineBreakRegex);
+ c4Shape[textType].textLines = lines.length;
+ let lineHeight = 0;
+ c4Shape[textType].height = 0;
+ c4Shape[textType].width = 0;
+ for (const line2 of lines) {
+ c4Shape[textType].width = Math.max(
+ calculateTextWidth(line2, textConf),
+ c4Shape[textType].width
+ );
+ lineHeight = calculateTextHeight(line2, textConf);
+ c4Shape[textType].height = c4Shape[textType].height + lineHeight;
}
- },
- parse: function(capture, parse2, state2) {
- var bullet = capture[2];
- var ordered = bullet.length > 1;
- var start2 = ordered ? +bullet : void 0;
- var items = capture[0].replace(LIST_BLOCK_END_R, "\n").match(LIST_ITEM_R);
- var lastItemWasAParagraph = false;
- var itemContent = items.map(function(item, i2) {
- var prefixCapture = LIST_ITEM_PREFIX_R.exec(item);
- var space = prefixCapture ? prefixCapture[0].length : 0;
- var spaceRegex = new RegExp("^ {1," + space + "}", "gm");
- var content = item.replace(spaceRegex, "").replace(LIST_ITEM_PREFIX_R, "");
- var isLastItem = i2 === items.length - 1;
- var containsBlocks = content.indexOf("\n\n") !== -1;
- var thisItemIsAParagraph = containsBlocks || isLastItem && lastItemWasAParagraph;
- lastItemWasAParagraph = thisItemIsAParagraph;
- var oldStateInline = state2.inline;
- var oldStateList = state2._list;
- state2._list = true;
- var adjustedContent;
- if (thisItemIsAParagraph) {
- state2.inline = false;
- adjustedContent = content.replace(LIST_ITEM_END_R, "\n\n");
+ }
+ }
+ }
+ function drawInsideBoundary(diagram24, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {
+ let currentBounds = new Bounds(diagObj);
+ currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow2, currentBoundaries.length);
+ for (let [i2, currentBoundary] of currentBoundaries.entries()) {
+ let Y3 = 0;
+ currentBoundary.image = { width: 0, height: 0, Y: 0 };
+ if (currentBoundary.sprite) {
+ currentBoundary.image.width = 48;
+ currentBoundary.image.height = 48;
+ currentBoundary.image.Y = Y3;
+ Y3 = currentBoundary.image.Y + currentBoundary.image.height;
+ }
+ let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;
+ let currentBoundaryLabelConf = boundaryFont(conf);
+ currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;
+ currentBoundaryLabelConf.fontWeight = "bold";
+ calcC4ShapeTextWH(
+ "label",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryLabelConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary.label.Y = Y3 + 8;
+ Y3 = currentBoundary.label.Y + currentBoundary.label.height;
+ if (currentBoundary.type && currentBoundary.type.text !== "") {
+ currentBoundary.type.text = "[" + currentBoundary.type.text + "]";
+ let currentBoundaryTypeConf = boundaryFont(conf);
+ calcC4ShapeTextWH(
+ "type",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryTypeConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary.type.Y = Y3 + 5;
+ Y3 = currentBoundary.type.Y + currentBoundary.type.height;
+ }
+ if (currentBoundary.descr && currentBoundary.descr.text !== "") {
+ let currentBoundaryDescrConf = boundaryFont(conf);
+ currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;
+ calcC4ShapeTextWH(
+ "descr",
+ currentBoundary,
+ currentBoundaryTextWrap,
+ currentBoundaryDescrConf,
+ currentBounds.data.widthLimit
+ );
+ currentBoundary.descr.Y = Y3 + 20;
+ Y3 = currentBoundary.descr.Y + currentBoundary.descr.height;
+ }
+ if (i2 == 0 || i2 % c4BoundaryInRow2 === 0) {
+ let _x = parentBounds.data.startx + conf.diagramMarginX;
+ let _y = parentBounds.data.stopy + conf.diagramMarginY + Y3;
+ currentBounds.setData(_x, _x, _y, _y);
+ } else {
+ let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;
+ let _y = currentBounds.data.starty;
+ currentBounds.setData(_x, _x, _y, _y);
+ }
+ currentBounds.name = currentBoundary.alias;
+ let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);
+ let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);
+ if (currentPersonOrSystemKeys.length > 0) {
+ drawC4ShapeArray(
+ currentBounds,
+ diagram24,
+ currentPersonOrSystemArray,
+ currentPersonOrSystemKeys
+ );
+ }
+ parentBoundaryAlias = currentBoundary.alias;
+ let nextCurrentBoundaries = diagObj.db.getBoundarys(parentBoundaryAlias);
+ if (nextCurrentBoundaries.length > 0) {
+ drawInsideBoundary(
+ diagram24,
+ parentBoundaryAlias,
+ currentBounds,
+ nextCurrentBoundaries,
+ diagObj
+ );
+ }
+ if (currentBoundary.alias !== "global") {
+ drawBoundary2(diagram24, currentBoundary, currentBounds);
+ }
+ parentBounds.data.stopy = Math.max(
+ currentBounds.data.stopy + conf.c4ShapeMargin,
+ parentBounds.data.stopy
+ );
+ parentBounds.data.stopx = Math.max(
+ currentBounds.data.stopx + conf.c4ShapeMargin,
+ parentBounds.data.stopx
+ );
+ globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);
+ globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);
+ }
+ }
+ var globalBoundaryMaxX, globalBoundaryMaxY, c4ShapeInRow2, c4BoundaryInRow2, conf, Bounds, setConf, c4ShapeFont, boundaryFont, messageFont, drawBoundary2, drawC4ShapeArray, Point2, getIntersectPoint, getIntersectPoints, drawRels2, draw, c4Renderer_default;
+ var init_c4Renderer = __esm({
+ "src/diagrams/c4/c4Renderer.js"() {
+ "use strict";
+ init_src32();
+ init_svgDraw();
+ init_logger();
+ init_c4Diagram();
+ init_common();
+ init_c4Db();
+ init_diagramAPI();
+ init_assignWithDepth();
+ init_utils2();
+ init_setupGraphViewbox();
+ globalBoundaryMaxX = 0;
+ globalBoundaryMaxY = 0;
+ c4ShapeInRow2 = 4;
+ c4BoundaryInRow2 = 2;
+ parser.yy = c4Db_default;
+ conf = {};
+ Bounds = class {
+ static {
+ __name(this, "Bounds");
+ }
+ constructor(diagObj) {
+ this.name = "";
+ this.data = {};
+ this.data.startx = void 0;
+ this.data.stopx = void 0;
+ this.data.starty = void 0;
+ this.data.stopy = void 0;
+ this.data.widthLimit = void 0;
+ this.nextData = {};
+ this.nextData.startx = void 0;
+ this.nextData.stopx = void 0;
+ this.nextData.starty = void 0;
+ this.nextData.stopy = void 0;
+ this.nextData.cnt = 0;
+ setConf(diagObj.db.getConfig());
+ }
+ setData(startx, stopx, starty, stopy) {
+ this.nextData.startx = this.data.startx = startx;
+ this.nextData.stopx = this.data.stopx = stopx;
+ this.nextData.starty = this.data.starty = starty;
+ this.nextData.stopy = this.data.stopy = stopy;
+ }
+ updateVal(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
} else {
- state2.inline = true;
- adjustedContent = content.replace(LIST_ITEM_END_R, "");
- }
- var result = parse2(adjustedContent, state2);
- state2.inline = oldStateInline;
- state2._list = oldStateList;
- return result;
- });
+ obj[key] = fun(val, obj[key]);
+ }
+ }
+ insert(c4Shape) {
+ this.nextData.cnt = this.nextData.cnt + 1;
+ let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;
+ let _stopx = _startx + c4Shape.width;
+ let _starty = this.nextData.starty + c4Shape.margin * 2;
+ let _stopy = _starty + c4Shape.height;
+ if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow2) {
+ _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;
+ _starty = this.nextData.stopy + c4Shape.margin * 2;
+ this.nextData.stopx = _stopx = _startx + c4Shape.width;
+ this.nextData.starty = this.nextData.stopy;
+ this.nextData.stopy = _stopy = _starty + c4Shape.height;
+ this.nextData.cnt = 1;
+ }
+ c4Shape.x = _startx;
+ c4Shape.y = _starty;
+ this.updateVal(this.data, "startx", _startx, Math.min);
+ this.updateVal(this.data, "starty", _starty, Math.min);
+ this.updateVal(this.data, "stopx", _stopx, Math.max);
+ this.updateVal(this.data, "stopy", _stopy, Math.max);
+ this.updateVal(this.nextData, "startx", _startx, Math.min);
+ this.updateVal(this.nextData, "starty", _starty, Math.min);
+ this.updateVal(this.nextData, "stopx", _stopx, Math.max);
+ this.updateVal(this.nextData, "stopy", _stopy, Math.max);
+ }
+ init(diagObj) {
+ this.name = "";
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ widthLimit: void 0
+ };
+ this.nextData = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0,
+ cnt: 0
+ };
+ setConf(diagObj.db.getConfig());
+ }
+ bumpLastMargin(margin) {
+ this.data.stopx += margin;
+ this.data.stopy += margin;
+ }
+ };
+ setConf = /* @__PURE__ */ __name(function(cnf) {
+ assignWithDepth_default(conf, cnf);
+ if (cnf.fontFamily) {
+ conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;
+ }
+ if (cnf.fontSize) {
+ conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;
+ }
+ if (cnf.fontWeight) {
+ conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;
+ }
+ }, "setConf");
+ c4ShapeFont = /* @__PURE__ */ __name((cnf, typeC4Shape) => {
return {
- ordered,
- start: start2,
- items: itemContent
- };
- },
- react: function(node2, output, state2) {
- var ListWrapper = node2.ordered ? "ol" : "ul";
- return reactElement(ListWrapper, state2.key, {
- start: node2.start,
- children: node2.items.map(function(item, i2) {
- return reactElement("li", "" + i2, {
- children: output(item, state2)
- });
- })
- });
- },
- html: function(node2, output, state2) {
- var listItems = node2.items.map(function(item) {
- return htmlTag("li", output(item, state2));
- }).join("");
- var listTag = node2.ordered ? "ol" : "ul";
- var attributes = {
- start: node2.start
+ fontFamily: cnf[typeC4Shape + "FontFamily"],
+ fontSize: cnf[typeC4Shape + "FontSize"],
+ fontWeight: cnf[typeC4Shape + "FontWeight"]
};
- return htmlTag(listTag, listItems, attributes);
- }
- },
- def: {
- order: currOrder++,
- // TODO(aria): This will match without a blank line before the next
- // block element, which is inconsistent with most of the rest of
- // simple-markdown.
- match: blockRegex(/^ *\[([^\]]+)\]: *([^\s>]*)>?(?: +["(]([^\n]+)[")])? *\n(?: *\n)*/),
- parse: function(capture, parse2, state2) {
- var def = capture[1].replace(/\s+/g, " ").toLowerCase();
- var target = capture[2];
- var title2 = capture[3];
- if (state2._refs && state2._refs[def]) {
- state2._refs[def].forEach(function(refNode) {
- refNode.target = target;
- refNode.title = title2;
- });
- }
- state2._defs = state2._defs || {};
- state2._defs[def] = {
- target,
- title: title2
+ }, "c4ShapeFont");
+ boundaryFont = /* @__PURE__ */ __name((cnf) => {
+ return {
+ fontFamily: cnf.boundaryFontFamily,
+ fontSize: cnf.boundaryFontSize,
+ fontWeight: cnf.boundaryFontWeight
};
+ }, "boundaryFont");
+ messageFont = /* @__PURE__ */ __name((cnf) => {
return {
- def,
- target,
- title: title2
+ fontFamily: cnf.messageFontFamily,
+ fontSize: cnf.messageFontSize,
+ fontWeight: cnf.messageFontWeight
};
- },
- react: function() {
- return null;
- },
- html: function() {
- return "";
- }
- },
- table: {
- order: currOrder++,
- match: blockRegex(TABLES.TABLE_REGEX),
- parse: TABLES.parseTable,
- react: function(node2, output, state2) {
- var getStyle = function getStyle2(colIndex) {
- return node2.align[colIndex] == null ? {} : {
- textAlign: node2.align[colIndex]
+ }, "messageFont");
+ __name(calcC4ShapeTextWH, "calcC4ShapeTextWH");
+ drawBoundary2 = /* @__PURE__ */ __name(function(diagram24, boundary, bounds4) {
+ boundary.x = bounds4.data.startx;
+ boundary.y = bounds4.data.starty;
+ boundary.width = bounds4.data.stopx - bounds4.data.startx;
+ boundary.height = bounds4.data.stopy - bounds4.data.starty;
+ boundary.label.y = conf.c4ShapeMargin - 35;
+ let boundaryTextWrap = boundary.wrap && conf.wrap;
+ let boundaryLabelConf = boundaryFont(conf);
+ boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;
+ boundaryLabelConf.fontWeight = "bold";
+ let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);
+ calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);
+ svgDraw_default.drawBoundary(diagram24, boundary, conf);
+ }, "drawBoundary");
+ drawC4ShapeArray = /* @__PURE__ */ __name(function(currentBounds, diagram24, c4ShapeArray2, c4ShapeKeys) {
+ let Y3 = 0;
+ for (const c4ShapeKey of c4ShapeKeys) {
+ Y3 = 0;
+ const c4Shape = c4ShapeArray2[c4ShapeKey];
+ let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;
+ c4Shape.typeC4Shape.width = calculateTextWidth(
+ "\xAB" + c4Shape.typeC4Shape.text + "\xBB",
+ c4ShapeTypeConf
+ );
+ c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;
+ c4Shape.typeC4Shape.Y = conf.c4ShapePadding;
+ Y3 = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;
+ c4Shape.image = { width: 0, height: 0, Y: 0 };
+ switch (c4Shape.typeC4Shape.text) {
+ case "person":
+ case "external_person":
+ c4Shape.image.width = 48;
+ c4Shape.image.height = 48;
+ c4Shape.image.Y = Y3;
+ Y3 = c4Shape.image.Y + c4Shape.image.height;
+ break;
+ }
+ if (c4Shape.sprite) {
+ c4Shape.image.width = 48;
+ c4Shape.image.height = 48;
+ c4Shape.image.Y = Y3;
+ Y3 = c4Shape.image.Y + c4Shape.image.height;
+ }
+ let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;
+ let textLimitWidth = conf.width - conf.c4ShapePadding * 2;
+ let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;
+ c4ShapeLabelConf.fontWeight = "bold";
+ calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);
+ c4Shape.label.Y = Y3 + 8;
+ Y3 = c4Shape.label.Y + c4Shape.label.height;
+ if (c4Shape.type && c4Shape.type.text !== "") {
+ c4Shape.type.text = "[" + c4Shape.type.text + "]";
+ let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);
+ c4Shape.type.Y = Y3 + 5;
+ Y3 = c4Shape.type.Y + c4Shape.type.height;
+ } else if (c4Shape.techn && c4Shape.techn.text !== "") {
+ c4Shape.techn.text = "[" + c4Shape.techn.text + "]";
+ let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);
+ calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);
+ c4Shape.techn.Y = Y3 + 5;
+ Y3 = c4Shape.techn.Y + c4Shape.techn.height;
+ }
+ let rectHeight = Y3;
+ let rectWidth = c4Shape.label.width;
+ if (c4Shape.descr && c4Shape.descr.text !== "") {
+ let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
+ calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);
+ c4Shape.descr.Y = Y3 + 20;
+ Y3 = c4Shape.descr.Y + c4Shape.descr.height;
+ rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);
+ rectHeight = Y3 - c4Shape.descr.textLines * 5;
+ }
+ rectWidth = rectWidth + conf.c4ShapePadding;
+ c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);
+ c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);
+ c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;
+ currentBounds.insert(c4Shape);
+ svgDraw_default.drawC4Shape(diagram24, c4Shape, conf);
+ }
+ currentBounds.bumpLastMargin(conf.c4ShapeMargin);
+ }, "drawC4ShapeArray");
+ Point2 = class {
+ static {
+ __name(this, "Point");
+ }
+ constructor(x5, y5) {
+ this.x = x5;
+ this.y = y5;
+ }
+ };
+ getIntersectPoint = /* @__PURE__ */ __name(function(fromNode, endPoint) {
+ let x1 = fromNode.x;
+ let y1 = fromNode.y;
+ let x22 = endPoint.x;
+ let y22 = endPoint.y;
+ let fromCenterX = x1 + fromNode.width / 2;
+ let fromCenterY = y1 + fromNode.height / 2;
+ let dx = Math.abs(x1 - x22);
+ let dy = Math.abs(y1 - y22);
+ let tanDYX = dy / dx;
+ let fromDYX = fromNode.height / fromNode.width;
+ let returnPoint = null;
+ if (y1 == y22 && x1 < x22) {
+ returnPoint = new Point2(x1 + fromNode.width, fromCenterY);
+ } else if (y1 == y22 && x1 > x22) {
+ returnPoint = new Point2(x1, fromCenterY);
+ } else if (x1 == x22 && y1 < y22) {
+ returnPoint = new Point2(fromCenterX, y1 + fromNode.height);
+ } else if (x1 == x22 && y1 > y22) {
+ returnPoint = new Point2(fromCenterX, y1);
+ }
+ if (x1 > x22 && y1 < y22) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point2(x1, fromCenterY + tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point2(
+ fromCenterX - dx / dy * fromNode.height / 2,
+ y1 + fromNode.height
+ );
+ }
+ } else if (x1 < x22 && y1 < y22) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point2(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point2(
+ fromCenterX + dx / dy * fromNode.height / 2,
+ y1 + fromNode.height
+ );
+ }
+ } else if (x1 < x22 && y1 > y22) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point2(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);
+ } else {
+ returnPoint = new Point2(fromCenterX + fromNode.height / 2 * dx / dy, y1);
+ }
+ } else if (x1 > x22 && y1 > y22) {
+ if (fromDYX >= tanDYX) {
+ returnPoint = new Point2(x1, fromCenterY - fromNode.width / 2 * tanDYX);
+ } else {
+ returnPoint = new Point2(fromCenterX - fromNode.height / 2 * dx / dy, y1);
+ }
+ }
+ return returnPoint;
+ }, "getIntersectPoint");
+ getIntersectPoints = /* @__PURE__ */ __name(function(fromNode, endNode) {
+ let endIntersectPoint = { x: 0, y: 0 };
+ endIntersectPoint.x = endNode.x + endNode.width / 2;
+ endIntersectPoint.y = endNode.y + endNode.height / 2;
+ let startPoint = getIntersectPoint(fromNode, endIntersectPoint);
+ endIntersectPoint.x = fromNode.x + fromNode.width / 2;
+ endIntersectPoint.y = fromNode.y + fromNode.height / 2;
+ let endPoint = getIntersectPoint(endNode, endIntersectPoint);
+ return { startPoint, endPoint };
+ }, "getIntersectPoints");
+ drawRels2 = /* @__PURE__ */ __name(function(diagram24, rels2, getC4ShapeObj, diagObj) {
+ let i2 = 0;
+ for (let rel2 of rels2) {
+ i2 = i2 + 1;
+ let relTextWrap = rel2.wrap && conf.wrap;
+ let relConf = messageFont(conf);
+ let diagramType = diagObj.db.getC4Type();
+ if (diagramType === "C4Dynamic") {
+ rel2.label.text = i2 + ": " + rel2.label.text;
+ }
+ let textLimitWidth = calculateTextWidth(rel2.label.text, relConf);
+ calcC4ShapeTextWH("label", rel2, relTextWrap, relConf, textLimitWidth);
+ if (rel2.techn && rel2.techn.text !== "") {
+ textLimitWidth = calculateTextWidth(rel2.techn.text, relConf);
+ calcC4ShapeTextWH("techn", rel2, relTextWrap, relConf, textLimitWidth);
+ }
+ if (rel2.descr && rel2.descr.text !== "") {
+ textLimitWidth = calculateTextWidth(rel2.descr.text, relConf);
+ calcC4ShapeTextWH("descr", rel2, relTextWrap, relConf, textLimitWidth);
+ }
+ let fromNode = getC4ShapeObj(rel2.from);
+ let endNode = getC4ShapeObj(rel2.to);
+ let points = getIntersectPoints(fromNode, endNode);
+ rel2.startPoint = points.startPoint;
+ rel2.endPoint = points.endPoint;
+ }
+ svgDraw_default.drawRels(diagram24, rels2, conf);
+ }, "drawRels");
+ __name(drawInsideBoundary, "drawInsideBoundary");
+ draw = /* @__PURE__ */ __name(function(_text, id27, _version, diagObj) {
+ conf = getConfig2().c4;
+ const securityLevel = getConfig2().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ let db8 = diagObj.db;
+ diagObj.db.setWrap(conf.wrap);
+ c4ShapeInRow2 = db8.getC4ShapeInRow();
+ c4BoundaryInRow2 = db8.getC4BoundaryInRow();
+ log.debug(`C:${JSON.stringify(conf, null, 2)}`);
+ const diagram24 = securityLevel === "sandbox" ? root4.select(`[id="${id27}"]`) : select_default2(`[id="${id27}"]`);
+ svgDraw_default.insertComputerIcon(diagram24);
+ svgDraw_default.insertDatabaseIcon(diagram24);
+ svgDraw_default.insertClockIcon(diagram24);
+ let screenBounds = new Bounds(diagObj);
+ screenBounds.setData(
+ conf.diagramMarginX,
+ conf.diagramMarginX,
+ conf.diagramMarginY,
+ conf.diagramMarginY
+ );
+ screenBounds.data.widthLimit = screen.availWidth;
+ globalBoundaryMaxX = conf.diagramMarginX;
+ globalBoundaryMaxY = conf.diagramMarginY;
+ const title2 = diagObj.db.getTitle();
+ let currentBoundaries = diagObj.db.getBoundarys("");
+ drawInsideBoundary(diagram24, "", screenBounds, currentBoundaries, diagObj);
+ svgDraw_default.insertArrowHead(diagram24);
+ svgDraw_default.insertArrowEnd(diagram24);
+ svgDraw_default.insertArrowCrossHead(diagram24);
+ svgDraw_default.insertArrowFilledHead(diagram24);
+ drawRels2(diagram24, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);
+ screenBounds.data.stopx = globalBoundaryMaxX;
+ screenBounds.data.stopy = globalBoundaryMaxY;
+ const box = screenBounds.data;
+ let boxHeight = box.stopy - box.starty;
+ let height2 = boxHeight + 2 * conf.diagramMarginY;
+ let boxWidth = box.stopx - box.startx;
+ const width3 = boxWidth + 2 * conf.diagramMarginX;
+ if (title2) {
+ diagram24.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr("y", box.starty + conf.diagramMarginY);
+ }
+ configureSvgSize(diagram24, height2, width3, conf.useMaxWidth);
+ const extraVertForTitle = title2 ? 60 : 0;
+ diagram24.attr(
+ "viewBox",
+ box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width3 + " " + (height2 + extraVertForTitle)
+ );
+ log.debug(`models:`, box);
+ }, "draw");
+ c4Renderer_default = {
+ drawPersonOrSystemArray: drawC4ShapeArray,
+ drawBoundary: drawBoundary2,
+ setConf,
+ draw
+ };
+ }
+ });
+
+ // src/diagrams/c4/styles.js
+ var getStyles2, styles_default2;
+ var init_styles2 = __esm({
+ "src/diagrams/c4/styles.js"() {
+ "use strict";
+ getStyles2 = /* @__PURE__ */ __name((options3) => `.person {
+ stroke: ${options3.personBorder};
+ fill: ${options3.personBkg};
+ }
+`, "getStyles");
+ styles_default2 = getStyles2;
+ }
+ });
+
+ // src/diagrams/c4/c4Diagram.ts
+ var c4Diagram_exports = {};
+ __export(c4Diagram_exports, {
+ diagram: () => diagram
+ });
+ var diagram;
+ var init_c4Diagram2 = __esm({
+ "src/diagrams/c4/c4Diagram.ts"() {
+ "use strict";
+ init_c4Diagram();
+ init_c4Db();
+ init_c4Renderer();
+ init_styles2();
+ diagram = {
+ parser: c4Diagram_default,
+ db: c4Db_default,
+ renderer: c4Renderer_default,
+ styles: styles_default2,
+ init: /* @__PURE__ */ __name(({ c4, wrap: wrap3 }) => {
+ c4Renderer_default.setConf(c4);
+ c4Db_default.setWrap(wrap3);
+ }, "init")
+ };
+ }
+ });
+
+ // src/diagrams/flowchart/flowDb.ts
+ function getCompiledStyles(classDefs) {
+ let compiledStyles = [];
+ for (const customClass of classDefs) {
+ const cssClass = classes.get(customClass);
+ if (cssClass?.styles) {
+ compiledStyles = [...compiledStyles, ...cssClass.styles ?? []].map((s2) => s2.trim());
+ }
+ if (cssClass?.textStyles) {
+ compiledStyles = [...compiledStyles, ...cssClass.textStyles ?? []].map((s2) => s2.trim());
+ }
+ }
+ return compiledStyles;
+ }
+ var MERMAID_DOM_ID_PREFIX, vertexCounter, config2, vertices, edges, classes, subGraphs, subGraphLookup, tooltips, subCount, firstGraphFlag, direction, version, funs, sanitizeText4, lookUpDomId, addVertex, addSingleLink, addLink, updateLinkInterpolate, updateLink, addClass, setDirection, setClass, setTooltip, setClickFun, setLink, getTooltip, setClickEvent, bindFunctions, getDirection, getVertices, getEdges, getClasses, setupToolTips, clear3, setGen, defaultStyle, addSubGraph, getPosForId, secCount, posCrossRef, indexNodes2, getDepthFirstPos, indexNodes, getSubGraphs, firstGraph, destructStartLink, countChar, destructEndLink, destructLink, exists, makeUniq, lex, getTypeFromVertex, findNode, destructEdgeType, addNodeFromVertex, getData, flowDb_default;
+ var init_flowDb = __esm({
+ "src/diagrams/flowchart/flowDb.ts"() {
+ "use strict";
+ init_src32();
+ init_utils2();
+ init_diagramAPI();
+ init_common();
+ init_logger();
+ init_commonDb();
+ MERMAID_DOM_ID_PREFIX = "flowchart-";
+ vertexCounter = 0;
+ config2 = getConfig2();
+ vertices = /* @__PURE__ */ new Map();
+ edges = [];
+ classes = /* @__PURE__ */ new Map();
+ subGraphs = [];
+ subGraphLookup = /* @__PURE__ */ new Map();
+ tooltips = /* @__PURE__ */ new Map();
+ subCount = 0;
+ firstGraphFlag = true;
+ funs = [];
+ sanitizeText4 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, config2), "sanitizeText");
+ lookUpDomId = /* @__PURE__ */ __name(function(id27) {
+ for (const vertex of vertices.values()) {
+ if (vertex.id === id27) {
+ return vertex.domId;
+ }
+ }
+ return id27;
+ }, "lookUpDomId");
+ addVertex = /* @__PURE__ */ __name(function(id27, textObj, type3, style3, classes6, dir2, props = {}) {
+ if (!id27 || id27.trim().length === 0) {
+ return;
+ }
+ let txt;
+ let vertex = vertices.get(id27);
+ if (vertex === void 0) {
+ vertex = {
+ id: id27,
+ labelType: "text",
+ domId: MERMAID_DOM_ID_PREFIX + id27 + "-" + vertexCounter,
+ styles: [],
+ classes: []
};
- };
- var headers = node2.header.map(function(content, i2) {
- return reactElement("th", "" + i2, {
- style: getStyle(i2),
- scope: "col",
- children: output(content, state2)
+ vertices.set(id27, vertex);
+ }
+ vertexCounter++;
+ if (textObj !== void 0) {
+ config2 = getConfig2();
+ txt = sanitizeText4(textObj.text.trim());
+ vertex.labelType = textObj.type;
+ if (txt.startsWith('"') && txt.endsWith('"')) {
+ txt = txt.substring(1, txt.length - 1);
+ }
+ vertex.text = txt;
+ } else {
+ if (vertex.text === void 0) {
+ vertex.text = id27;
+ }
+ }
+ if (type3 !== void 0) {
+ vertex.type = type3;
+ }
+ if (style3 !== void 0 && style3 !== null) {
+ style3.forEach(function(s2) {
+ vertex.styles.push(s2);
});
- });
- var rows = node2.cells.map(function(row, r) {
- return reactElement("tr", "" + r, {
- children: row.map(function(content, c2) {
- return reactElement("td", "" + c2, {
- style: getStyle(c2),
- children: output(content, state2)
- });
- })
+ }
+ if (classes6 !== void 0 && classes6 !== null) {
+ classes6.forEach(function(s2) {
+ vertex.classes.push(s2);
});
+ }
+ if (dir2 !== void 0) {
+ vertex.dir = dir2;
+ }
+ if (vertex.props === void 0) {
+ vertex.props = props;
+ } else if (props !== void 0) {
+ Object.assign(vertex.props, props);
+ }
+ }, "addVertex");
+ addSingleLink = /* @__PURE__ */ __name(function(_start, _end, type3) {
+ const start3 = _start;
+ const end2 = _end;
+ const edge = { start: start3, end: end2, type: void 0, text: "", labelType: "text" };
+ log.info("abc78 Got edge...", edge);
+ const linkTextObj = type3.text;
+ if (linkTextObj !== void 0) {
+ edge.text = sanitizeText4(linkTextObj.text.trim());
+ if (edge.text.startsWith('"') && edge.text.endsWith('"')) {
+ edge.text = edge.text.substring(1, edge.text.length - 1);
+ }
+ edge.labelType = linkTextObj.type;
+ }
+ if (type3 !== void 0) {
+ edge.type = type3.type;
+ edge.stroke = type3.stroke;
+ edge.length = type3.length > 10 ? 10 : type3.length;
+ }
+ if (edges.length < (config2.maxEdges ?? 500)) {
+ log.info("Pushing edge...");
+ edges.push(edge);
+ } else {
+ throw new Error(
+ `Edge limit exceeded. ${edges.length} edges found, but the limit is ${config2.maxEdges}.
+
+Initialize mermaid with maxEdges set to a higher number to allow more edges.
+You cannot set this config via configuration inside the diagram as it is a secure config.
+You have to call mermaid.initialize.`
+ );
+ }
+ }, "addSingleLink");
+ addLink = /* @__PURE__ */ __name(function(_start, _end, type3) {
+ log.info("addLink", _start, _end, type3);
+ for (const start3 of _start) {
+ for (const end2 of _end) {
+ addSingleLink(start3, end2, type3);
+ }
+ }
+ }, "addLink");
+ updateLinkInterpolate = /* @__PURE__ */ __name(function(positions2, interpolate) {
+ positions2.forEach(function(pos) {
+ if (pos === "default") {
+ edges.defaultInterpolate = interpolate;
+ } else {
+ edges[pos].interpolate = interpolate;
+ }
});
- return reactElement("table", state2.key, {
- children: [reactElement("thead", "thead", {
- children: reactElement("tr", null, {
- children: headers
- })
- }), reactElement("tbody", "tbody", {
- children: rows
- })]
+ }, "updateLinkInterpolate");
+ updateLink = /* @__PURE__ */ __name(function(positions2, style3) {
+ positions2.forEach(function(pos) {
+ if (typeof pos === "number" && pos >= edges.length) {
+ throw new Error(
+ `The index ${pos} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${edges.length - 1}. (Help: Ensure that the index is within the range of existing edges.)`
+ );
+ }
+ if (pos === "default") {
+ edges.defaultStyle = style3;
+ } else {
+ edges[pos].style = style3;
+ if ((edges[pos]?.style?.length ?? 0) > 0 && !edges[pos]?.style?.some((s2) => s2?.startsWith("fill"))) {
+ edges[pos]?.style?.push("fill:none");
+ }
+ }
});
- },
- html: function(node2, output, state2) {
- var getStyle = function getStyle2(colIndex) {
- return node2.align[colIndex] == null ? "" : "text-align:" + node2.align[colIndex] + ";";
- };
- var headers = node2.header.map(function(content, i2) {
- return htmlTag("th", output(content, state2), {
- style: getStyle(i2),
- scope: "col"
- });
- }).join("");
- var rows = node2.cells.map(function(row) {
- var cols = row.map(function(content, c2) {
- return htmlTag("td", output(content, state2), {
- style: getStyle(c2)
+ }, "updateLink");
+ addClass = /* @__PURE__ */ __name(function(ids, style3) {
+ ids.split(",").forEach(function(id27) {
+ let classNode = classes.get(id27);
+ if (classNode === void 0) {
+ classNode = { id: id27, styles: [], textStyles: [] };
+ classes.set(id27, classNode);
+ }
+ if (style3 !== void 0 && style3 !== null) {
+ style3.forEach(function(s2) {
+ if (/color/.exec(s2)) {
+ const newStyle = s2.replace("fill", "bgFill");
+ classNode.textStyles.push(newStyle);
+ }
+ classNode.styles.push(s2);
});
- }).join("");
- return htmlTag("tr", cols);
- }).join("");
- var thead = htmlTag("thead", htmlTag("tr", headers));
- var tbody = htmlTag("tbody", rows);
- return htmlTag("table", thead + tbody);
- }
- },
- newline: {
- order: currOrder++,
- match: blockRegex(/^(?:\n *)*\n/),
- parse: ignoreCapture,
- react: function(node2, output, state2) {
- return "\n";
- },
- html: function(node2, output, state2) {
- return "\n";
- }
- },
- paragraph: {
- order: currOrder++,
- match: blockRegex(/^((?:[^\n]|\n(?! *\n))+)(?:\n *)+\n/),
- parse: parseCaptureInline,
- react: function(node2, output, state2) {
- return reactElement("div", state2.key, {
- className: "paragraph",
- children: output(node2.content, state2)
+ }
});
- },
- html: function(node2, output, state2) {
- var attributes = {
- class: "paragraph"
- };
- return htmlTag("div", output(node2.content, state2), attributes);
- }
- },
- escape: {
- order: currOrder++,
- // We don't allow escaping numbers, letters, or spaces here so that
- // backslashes used in plain text still get rendered. But allowing
- // escaping anything else provides a very flexible escape mechanism,
- // regardless of how this grammar is extended.
- match: inlineRegex(/^\\([^0-9A-Za-z\s])/),
- parse: function(capture, parse2, state2) {
- return {
- type: "text",
- content: capture[1]
- };
- },
- react: null,
- html: null
- },
- tableSeparator: {
- order: currOrder++,
- match: function(source, state2) {
- if (!state2.inTable) {
- return null;
+ }, "addClass");
+ setDirection = /* @__PURE__ */ __name(function(dir2) {
+ direction = dir2;
+ if (/.*]+:\/[^ >]+)>/),
- parse: function(capture, parse2, state2) {
- return {
- type: "link",
- content: [{
- type: "text",
- content: capture[1]
- }],
- target: capture[1]
- };
- },
- react: null,
- html: null
- },
- mailto: {
- order: currOrder++,
- match: inlineRegex(/^<([^ >]+@[^ >]+)>/),
- parse: function(capture, parse2, state2) {
- var address = capture[1];
- var target = capture[1];
- if (!AUTOLINK_MAILTO_CHECK_R.test(target)) {
- target = "mailto:" + target;
+ if (/.*\^/.exec(direction)) {
+ direction = "BT";
}
- return {
- type: "link",
- content: [{
- type: "text",
- content: address
- }],
- target
- };
- },
- react: null,
- html: null
- },
- url: {
- order: currOrder++,
- match: inlineRegex(/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/),
- parse: function(capture, parse2, state2) {
- return {
- type: "link",
- content: [{
- type: "text",
- content: capture[1]
- }],
- target: capture[1],
- title: void 0
- };
- },
- react: null,
- html: null
- },
- link: {
- order: currOrder++,
- match: inlineRegex(new RegExp("^\\[(" + LINK_INSIDE + ")\\]\\(" + LINK_HREF_AND_TITLE + "\\)")),
- parse: function(capture, parse2, state2) {
- var link = {
- content: parse2(capture[1], state2),
- target: unescapeUrl(capture[2]),
- title: capture[3]
- };
- return link;
- },
- react: function(node2, output, state2) {
- return reactElement("a", state2.key, {
- href: sanitizeUrl(node2.target),
- title: node2.title,
- children: output(node2.content, state2)
+ if (/.*>/.exec(direction)) {
+ direction = "LR";
+ }
+ if (/.*v/.exec(direction)) {
+ direction = "TB";
+ }
+ if (direction === "TD") {
+ direction = "TB";
+ }
+ }, "setDirection");
+ setClass = /* @__PURE__ */ __name(function(ids, className) {
+ for (const id27 of ids.split(",")) {
+ const vertex = vertices.get(id27);
+ if (vertex) {
+ vertex.classes.push(className);
+ }
+ const subGraph = subGraphLookup.get(id27);
+ if (subGraph) {
+ subGraph.classes.push(className);
+ }
+ }
+ }, "setClass");
+ setTooltip = /* @__PURE__ */ __name(function(ids, tooltip) {
+ if (tooltip === void 0) {
+ return;
+ }
+ tooltip = sanitizeText4(tooltip);
+ for (const id27 of ids.split(",")) {
+ tooltips.set(version === "gen-1" ? lookUpDomId(id27) : id27, tooltip);
+ }
+ }, "setTooltip");
+ setClickFun = /* @__PURE__ */ __name(function(id27, functionName, functionArgs) {
+ const domId = lookUpDomId(id27);
+ if (getConfig2().securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i2 = 0; i2 < argList.length; i2++) {
+ let item = argList[i2].trim();
+ if (item.startsWith('"') && item.endsWith('"')) {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i2] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(id27);
+ }
+ const vertex = vertices.get(id27);
+ if (vertex) {
+ vertex.haveCallback = true;
+ funs.push(function() {
+ const elem = document.querySelector(`[id="${domId}"]`);
+ if (elem !== null) {
+ elem.addEventListener(
+ "click",
+ function() {
+ utils_default2.runFunc(functionName, ...argList);
+ },
+ false
+ );
+ }
+ });
+ }
+ }, "setClickFun");
+ setLink = /* @__PURE__ */ __name(function(ids, linkStr, target) {
+ ids.split(",").forEach(function(id27) {
+ const vertex = vertices.get(id27);
+ if (vertex !== void 0) {
+ vertex.link = utils_default2.formatUrl(linkStr, config2);
+ vertex.linkTarget = target;
+ }
});
- },
- html: function(node2, output, state2) {
- var attributes = {
- href: sanitizeUrl(node2.target),
- title: node2.title
- };
- return htmlTag("a", output(node2.content, state2), attributes);
- }
- },
- image: {
- order: currOrder++,
- match: inlineRegex(new RegExp("^!\\[(" + LINK_INSIDE + ")\\]\\(" + LINK_HREF_AND_TITLE + "\\)")),
- parse: function(capture, parse2, state2) {
- var image = {
- alt: capture[1],
- target: unescapeUrl(capture[2]),
- title: capture[3]
- };
- return image;
- },
- react: function(node2, output, state2) {
- return reactElement("img", state2.key, {
- src: sanitizeUrl(node2.target),
- alt: node2.alt,
- title: node2.title
+ setClass(ids, "clickable");
+ }, "setLink");
+ getTooltip = /* @__PURE__ */ __name(function(id27) {
+ return tooltips.get(id27);
+ }, "getTooltip");
+ setClickEvent = /* @__PURE__ */ __name(function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id27) {
+ setClickFun(id27, functionName, functionArgs);
});
- },
- html: function(node2, output, state2) {
- var attributes = {
- src: sanitizeUrl(node2.target),
- alt: node2.alt,
- title: node2.title
- };
- return htmlTag("img", "", attributes, false);
- }
- },
- reflink: {
- order: currOrder++,
- match: inlineRegex(new RegExp(
- // The first [part] of the link
- "^\\[(" + LINK_INSIDE + ")\\]\\s*\\[([^\\]]*)\\]"
- )),
- parse: function(capture, parse2, state2) {
- return parseRef(capture, state2, {
- type: "link",
- content: parse2(capture[1], state2)
+ setClass(ids, "clickable");
+ }, "setClickEvent");
+ bindFunctions = /* @__PURE__ */ __name(function(element3) {
+ funs.forEach(function(fun) {
+ fun(element3);
});
- },
- react: null,
- html: null
- },
- refimage: {
- order: currOrder++,
- match: inlineRegex(new RegExp(
- // The first [part] of the link
- "^!\\[(" + LINK_INSIDE + ")\\]\\s*\\[([^\\]]*)\\]"
- )),
- parse: function(capture, parse2, state2) {
- return parseRef(capture, state2, {
- type: "image",
- alt: capture[1]
+ }, "bindFunctions");
+ getDirection = /* @__PURE__ */ __name(function() {
+ return direction.trim();
+ }, "getDirection");
+ getVertices = /* @__PURE__ */ __name(function() {
+ return vertices;
+ }, "getVertices");
+ getEdges = /* @__PURE__ */ __name(function() {
+ return edges;
+ }, "getEdges");
+ getClasses = /* @__PURE__ */ __name(function() {
+ return classes;
+ }, "getClasses");
+ setupToolTips = /* @__PURE__ */ __name(function(element3) {
+ let tooltipElem = select_default2(".mermaidTooltip");
+ if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
+ tooltipElem = select_default2("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
+ }
+ const svg = select_default2(element3).select("svg");
+ const nodes6 = svg.selectAll("g.node");
+ nodes6.on("mouseover", function() {
+ const el = select_default2(this);
+ const title2 = el.attr("title");
+ if (title2 === null) {
+ return;
+ }
+ const rect4 = this?.getBoundingClientRect();
+ tooltipElem.transition().duration(200).style("opacity", ".9");
+ tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect4.left + (rect4.right - rect4.left) / 2 + "px").style("top", window.scrollY + rect4.bottom + "px");
+ tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
+ el.classed("hover", true);
+ }).on("mouseout", function() {
+ tooltipElem.transition().duration(500).style("opacity", 0);
+ const el = select_default2(this);
+ el.classed("hover", false);
});
- },
- react: null,
- html: null
- },
- em: {
- order: currOrder,
- match: inlineRegex(new RegExp(
- // only match _s surrounding words.
- "^\\b_((?:__|\\\\[\\s\\S]|[^\\\\_])+?)_\\b|^\\*(?=\\S)((?:\\*\\*|\\\\[\\s\\S]|\\s+(?:\\\\[\\s\\S]|[^\\s\\*\\\\]|\\*\\*)|[^\\s\\*\\\\])+?)\\*(?!\\*)"
- )),
- quality: function(capture) {
- return capture[0].length + 0.2;
- },
- parse: function(capture, parse2, state2) {
+ }, "setupToolTips");
+ funs.push(setupToolTips);
+ clear3 = /* @__PURE__ */ __name(function(ver = "gen-1") {
+ vertices = /* @__PURE__ */ new Map();
+ classes = /* @__PURE__ */ new Map();
+ edges = [];
+ funs = [setupToolTips];
+ subGraphs = [];
+ subGraphLookup = /* @__PURE__ */ new Map();
+ subCount = 0;
+ tooltips = /* @__PURE__ */ new Map();
+ firstGraphFlag = true;
+ version = ver;
+ config2 = getConfig2();
+ clear();
+ }, "clear");
+ setGen = /* @__PURE__ */ __name((ver) => {
+ version = ver || "gen-2";
+ }, "setGen");
+ defaultStyle = /* @__PURE__ */ __name(function() {
+ return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
+ }, "defaultStyle");
+ addSubGraph = /* @__PURE__ */ __name(function(_id, list2, _title) {
+ let id27 = _id.text.trim();
+ let title2 = _title.text;
+ if (_id === _title && /\s/.exec(_title.text)) {
+ id27 = void 0;
+ }
+ function uniq2(a2) {
+ const prims = { boolean: {}, number: {}, string: {} };
+ const objs = [];
+ let dir3;
+ const nodeList2 = a2.filter(function(item) {
+ const type3 = typeof item;
+ if (item.stmt && item.stmt === "dir") {
+ dir3 = item.value;
+ return false;
+ }
+ if (item.trim() === "") {
+ return false;
+ }
+ if (type3 in prims) {
+ return prims[type3].hasOwnProperty(item) ? false : prims[type3][item] = true;
+ } else {
+ return objs.includes(item) ? false : objs.push(item);
+ }
+ });
+ return { nodeList: nodeList2, dir: dir3 };
+ }
+ __name(uniq2, "uniq");
+ const { nodeList, dir: dir2 } = uniq2(list2.flat());
+ if (version === "gen-1") {
+ for (let i2 = 0; i2 < nodeList.length; i2++) {
+ nodeList[i2] = lookUpDomId(nodeList[i2]);
+ }
+ }
+ id27 = id27 ?? "subGraph" + subCount;
+ title2 = title2 || "";
+ title2 = sanitizeText4(title2);
+ subCount = subCount + 1;
+ const subGraph = {
+ id: id27,
+ nodes: nodeList,
+ title: title2.trim(),
+ classes: [],
+ dir: dir2,
+ labelType: _title.type
+ };
+ log.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir);
+ subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
+ subGraphs.push(subGraph);
+ subGraphLookup.set(id27, subGraph);
+ return id27;
+ }, "addSubGraph");
+ getPosForId = /* @__PURE__ */ __name(function(id27) {
+ for (const [i2, subGraph] of subGraphs.entries()) {
+ if (subGraph.id === id27) {
+ return i2;
+ }
+ }
+ return -1;
+ }, "getPosForId");
+ secCount = -1;
+ posCrossRef = [];
+ indexNodes2 = /* @__PURE__ */ __name(function(id27, pos) {
+ const nodes6 = subGraphs[pos].nodes;
+ secCount = secCount + 1;
+ if (secCount > 2e3) {
+ return {
+ result: false,
+ count: 0
+ };
+ }
+ posCrossRef[secCount] = pos;
+ if (subGraphs[pos].id === id27) {
+ return {
+ result: true,
+ count: 0
+ };
+ }
+ let count = 0;
+ let posCount = 1;
+ while (count < nodes6.length) {
+ const childPos = getPosForId(nodes6[count]);
+ if (childPos >= 0) {
+ const res = indexNodes2(id27, childPos);
+ if (res.result) {
+ return {
+ result: true,
+ count: posCount + res.count
+ };
+ } else {
+ posCount = posCount + res.count;
+ }
+ }
+ count = count + 1;
+ }
return {
- content: parse2(capture[2] || capture[1], state2)
+ result: false,
+ count: posCount
};
- },
- react: function(node2, output, state2) {
- return reactElement("em", state2.key, {
- children: output(node2.content, state2)
- });
- },
- html: function(node2, output, state2) {
- return htmlTag("em", output(node2.content, state2));
- }
- },
- strong: {
- order: currOrder,
- match: inlineRegex(/^\*\*((?:\\[\s\S]|[^\\])+?)\*\*(?!\*)/),
- quality: function(capture) {
- return capture[0].length + 0.1;
- },
- parse: parseCaptureInline,
- react: function(node2, output, state2) {
- return reactElement("strong", state2.key, {
- children: output(node2.content, state2)
- });
- },
- html: function(node2, output, state2) {
- return htmlTag("strong", output(node2.content, state2));
- }
- },
- u: {
- order: currOrder++,
- match: inlineRegex(/^__((?:\\[\s\S]|[^\\])+?)__(?!_)/),
- quality: function(capture) {
- return capture[0].length;
- },
- parse: parseCaptureInline,
- react: function(node2, output, state2) {
- return reactElement("u", state2.key, {
- children: output(node2.content, state2)
+ }, "indexNodes2");
+ getDepthFirstPos = /* @__PURE__ */ __name(function(pos) {
+ return posCrossRef[pos];
+ }, "getDepthFirstPos");
+ indexNodes = /* @__PURE__ */ __name(function() {
+ secCount = -1;
+ if (subGraphs.length > 0) {
+ indexNodes2("none", subGraphs.length - 1);
+ }
+ }, "indexNodes");
+ getSubGraphs = /* @__PURE__ */ __name(function() {
+ return subGraphs;
+ }, "getSubGraphs");
+ firstGraph = /* @__PURE__ */ __name(() => {
+ if (firstGraphFlag) {
+ firstGraphFlag = false;
+ return true;
+ }
+ return false;
+ }, "firstGraph");
+ destructStartLink = /* @__PURE__ */ __name((_str) => {
+ let str2 = _str.trim();
+ let type3 = "arrow_open";
+ switch (str2[0]) {
+ case "<":
+ type3 = "arrow_point";
+ str2 = str2.slice(1);
+ break;
+ case "x":
+ type3 = "arrow_cross";
+ str2 = str2.slice(1);
+ break;
+ case "o":
+ type3 = "arrow_circle";
+ str2 = str2.slice(1);
+ break;
+ }
+ let stroke = "normal";
+ if (str2.includes("=")) {
+ stroke = "thick";
+ }
+ if (str2.includes(".")) {
+ stroke = "dotted";
+ }
+ return { type: type3, stroke };
+ }, "destructStartLink");
+ countChar = /* @__PURE__ */ __name((char2, str2) => {
+ const length2 = str2.length;
+ let count = 0;
+ for (let i2 = 0; i2 < length2; ++i2) {
+ if (str2[i2] === char2) {
+ ++count;
+ }
+ }
+ return count;
+ }, "countChar");
+ destructEndLink = /* @__PURE__ */ __name((_str) => {
+ const str2 = _str.trim();
+ let line2 = str2.slice(0, -1);
+ let type3 = "arrow_open";
+ switch (str2.slice(-1)) {
+ case "x":
+ type3 = "arrow_cross";
+ if (str2.startsWith("x")) {
+ type3 = "double_" + type3;
+ line2 = line2.slice(1);
+ }
+ break;
+ case ">":
+ type3 = "arrow_point";
+ if (str2.startsWith("<")) {
+ type3 = "double_" + type3;
+ line2 = line2.slice(1);
+ }
+ break;
+ case "o":
+ type3 = "arrow_circle";
+ if (str2.startsWith("o")) {
+ type3 = "double_" + type3;
+ line2 = line2.slice(1);
+ }
+ break;
+ }
+ let stroke = "normal";
+ let length2 = line2.length - 1;
+ if (line2.startsWith("=")) {
+ stroke = "thick";
+ }
+ if (line2.startsWith("~")) {
+ stroke = "invisible";
+ }
+ const dots = countChar(".", line2);
+ if (dots) {
+ stroke = "dotted";
+ length2 = dots;
+ }
+ return { type: type3, stroke, length: length2 };
+ }, "destructEndLink");
+ destructLink = /* @__PURE__ */ __name((_str, _startStr) => {
+ const info2 = destructEndLink(_str);
+ let startInfo;
+ if (_startStr) {
+ startInfo = destructStartLink(_startStr);
+ if (startInfo.stroke !== info2.stroke) {
+ return { type: "INVALID", stroke: "INVALID" };
+ }
+ if (startInfo.type === "arrow_open") {
+ startInfo.type = info2.type;
+ } else {
+ if (startInfo.type !== info2.type) {
+ return { type: "INVALID", stroke: "INVALID" };
+ }
+ startInfo.type = "double_" + startInfo.type;
+ }
+ if (startInfo.type === "double_arrow") {
+ startInfo.type = "double_arrow_point";
+ }
+ startInfo.length = info2.length;
+ return startInfo;
+ }
+ return info2;
+ }, "destructLink");
+ exists = /* @__PURE__ */ __name((allSgs, _id) => {
+ for (const sg of allSgs) {
+ if (sg.nodes.includes(_id)) {
+ return true;
+ }
+ }
+ return false;
+ }, "exists");
+ makeUniq = /* @__PURE__ */ __name((sg, allSubgraphs) => {
+ const res = [];
+ sg.nodes.forEach((_id, pos) => {
+ if (!exists(allSubgraphs, _id)) {
+ res.push(sg.nodes[pos]);
+ }
});
- },
- html: function(node2, output, state2) {
- return htmlTag("u", output(node2.content, state2));
- }
- },
- del: {
- order: currOrder++,
- match: inlineRegex(/^~~(?=\S)((?:\\[\s\S]|~(?!~)|[^\s~\\]|\s(?!~~))+?)~~/),
- parse: parseCaptureInline,
- react: function(node2, output, state2) {
- return reactElement("del", state2.key, {
- children: output(node2.content, state2)
+ return { nodes: res };
+ }, "makeUniq");
+ lex = {
+ firstGraph
+ };
+ getTypeFromVertex = /* @__PURE__ */ __name((vertex) => {
+ if (vertex.type === "square") {
+ return "squareRect";
+ }
+ if (vertex.type === "round") {
+ return "roundedRect";
+ }
+ return vertex.type ?? "squareRect";
+ }, "getTypeFromVertex");
+ findNode = /* @__PURE__ */ __name((nodes6, id27) => nodes6.find((node2) => node2.id === id27), "findNode");
+ destructEdgeType = /* @__PURE__ */ __name((type3) => {
+ let arrowTypeStart = "none";
+ let arrowTypeEnd = "arrow_point";
+ switch (type3) {
+ case "arrow_point":
+ case "arrow_circle":
+ case "arrow_cross":
+ arrowTypeEnd = type3;
+ break;
+ case "double_arrow_point":
+ case "double_arrow_circle":
+ case "double_arrow_cross":
+ arrowTypeStart = type3.replace("double_", "");
+ arrowTypeEnd = arrowTypeStart;
+ break;
+ }
+ return { arrowTypeStart, arrowTypeEnd };
+ }, "destructEdgeType");
+ addNodeFromVertex = /* @__PURE__ */ __name((vertex, nodes6, parentDB, subGraphDB, config6, look) => {
+ const parentId = parentDB.get(vertex.id);
+ const isGroup2 = subGraphDB.get(vertex.id) ?? false;
+ const node2 = findNode(nodes6, vertex.id);
+ if (node2) {
+ node2.cssStyles = vertex.styles;
+ node2.cssCompiledStyles = getCompiledStyles(vertex.classes);
+ node2.cssClasses = vertex.classes.join(" ");
+ } else {
+ nodes6.push({
+ id: vertex.id,
+ label: vertex.text,
+ labelStyle: "",
+ parentId,
+ padding: config6.flowchart?.padding || 8,
+ cssStyles: vertex.styles,
+ cssCompiledStyles: getCompiledStyles(["default", "node", ...vertex.classes]),
+ cssClasses: "default " + vertex.classes.join(" "),
+ shape: getTypeFromVertex(vertex),
+ dir: vertex.dir,
+ domId: vertex.domId,
+ isGroup: isGroup2,
+ look,
+ link: vertex.link,
+ linkTarget: vertex.linkTarget,
+ tooltip: getTooltip(vertex.id)
+ });
+ }
+ }, "addNodeFromVertex");
+ __name(getCompiledStyles, "getCompiledStyles");
+ getData = /* @__PURE__ */ __name(() => {
+ const config6 = getConfig2();
+ const nodes6 = [];
+ const edges5 = [];
+ const subGraphs2 = getSubGraphs();
+ const parentDB = /* @__PURE__ */ new Map();
+ const subGraphDB = /* @__PURE__ */ new Map();
+ for (let i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
+ const subGraph = subGraphs2[i2];
+ if (subGraph.nodes.length > 0) {
+ subGraphDB.set(subGraph.id, true);
+ }
+ for (const id27 of subGraph.nodes) {
+ parentDB.set(id27, subGraph.id);
+ }
+ }
+ for (let i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
+ const subGraph = subGraphs2[i2];
+ nodes6.push({
+ id: subGraph.id,
+ label: subGraph.title,
+ labelStyle: "",
+ parentId: parentDB.get(subGraph.id),
+ padding: 8,
+ cssCompiledStyles: getCompiledStyles(subGraph.classes),
+ cssClasses: subGraph.classes.join(" "),
+ shape: "rect",
+ dir: subGraph.dir,
+ isGroup: true,
+ look: config6.look
+ });
+ }
+ const n2 = getVertices();
+ n2.forEach((vertex) => {
+ addNodeFromVertex(vertex, nodes6, parentDB, subGraphDB, config6, config6.look || "classic");
});
- },
- html: function(node2, output, state2) {
- return htmlTag("del", output(node2.content, state2));
- }
- },
- inlineCode: {
- order: currOrder++,
- match: inlineRegex(/^(`+)([\s\S]*?[^`])\1(?!`)/),
- parse: function(capture, parse2, state2) {
- return {
- content: capture[2].replace(INLINE_CODE_ESCAPE_BACKTICKS_R, "$1")
- };
- },
- react: function(node2, output, state2) {
- return reactElement("code", state2.key, {
- children: node2.content
+ const e3 = getEdges();
+ e3.forEach((rawEdge, index) => {
+ const { arrowTypeStart, arrowTypeEnd } = destructEdgeType(rawEdge.type);
+ const styles3 = [...e3.defaultStyle ?? []];
+ if (rawEdge.style) {
+ styles3.push(...rawEdge.style);
+ }
+ const edge = {
+ id: getEdgeId(rawEdge.start, rawEdge.end, { counter: index, prefix: "L" }),
+ start: rawEdge.start,
+ end: rawEdge.end,
+ type: rawEdge.type ?? "normal",
+ label: rawEdge.text,
+ labelpos: "c",
+ thickness: rawEdge.stroke,
+ minlen: rawEdge.length,
+ classes: rawEdge?.stroke === "invisible" ? "" : "edge-thickness-normal edge-pattern-solid flowchart-link",
+ arrowTypeStart: rawEdge?.stroke === "invisible" ? "none" : arrowTypeStart,
+ arrowTypeEnd: rawEdge?.stroke === "invisible" ? "none" : arrowTypeEnd,
+ arrowheadStyle: "fill: #333",
+ labelStyle: styles3,
+ style: styles3,
+ pattern: rawEdge.stroke,
+ look: config6.look
+ };
+ edges5.push(edge);
});
- },
- html: function(node2, output, state2) {
- return htmlTag("code", sanitizeText$3(node2.content));
- }
- },
- br: {
- order: currOrder++,
- match: anyScopeRegex(/^ {2,}\n/),
- parse: ignoreCapture,
- react: function(node2, output, state2) {
- return reactElement("br", state2.key, EMPTY_PROPS);
- },
- html: function(node2, output, state2) {
- return "
";
- }
- },
- text: {
- order: currOrder++,
- // Here we look for anything followed by non-symbols,
- // double newlines, or double-space-newlines
- // We break on any symbol characters so that this grammar
- // is easy to extend without needing to modify this regex
- match: anyScopeRegex(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]|\n\n| {2,}\n|\w+:\S|$)/),
- parse: function(capture, parse2, state2) {
- return {
- content: capture[0]
- };
- },
- react: function(node2, output, state2) {
- return node2.content;
- },
- html: function(node2, output, state2) {
- return sanitizeText$3(node2.content);
- }
- }
- };
- var ruleOutput = function ruleOutput2(rules, property2) {
- if (!property2 && typeof console !== "undefined") {
- console.warn("simple-markdown ruleOutput should take 'react' or 'html' as the second argument.");
+ return { nodes: nodes6, edges: edges5, other: {}, config: config6 };
+ }, "getData");
+ flowDb_default = {
+ defaultConfig: /* @__PURE__ */ __name(() => defaultConfig2.flowchart, "defaultConfig"),
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ getData,
+ setAccDescription,
+ addVertex,
+ lookUpDomId,
+ addLink,
+ updateLinkInterpolate,
+ updateLink,
+ addClass,
+ setDirection,
+ setClass,
+ setTooltip,
+ getTooltip,
+ setClickEvent,
+ setLink,
+ bindFunctions,
+ getDirection,
+ getVertices,
+ getEdges,
+ getClasses,
+ clear: clear3,
+ setGen,
+ defaultStyle,
+ addSubGraph,
+ getDepthFirstPos,
+ indexNodes,
+ getSubGraphs,
+ destructLink,
+ lex,
+ exists,
+ makeUniq,
+ setDiagramTitle,
+ getDiagramTitle
+ };
}
- var nestedRuleOutput = function nestedRuleOutput2(ast, outputFunc, state2) {
- return rules[ast.type][property2](ast, outputFunc, state2);
- };
- return nestedRuleOutput;
- };
- var reactFor = function reactFor2(outputFunc) {
- var nestedOutput = function nestedOutput2(ast, state2) {
- state2 = state2 || {};
- if (Array.isArray(ast)) {
- var oldKey = state2.key;
- var result = [];
- var lastResult = null;
- for (var i2 = 0; i2 < ast.length; i2++) {
- state2.key = "" + i2;
- var nodeOut = nestedOutput2(ast[i2], state2);
- if (typeof nodeOut === "string" && typeof lastResult === "string") {
- lastResult = lastResult + nodeOut;
- result[result.length - 1] = lastResult;
- } else {
- result.push(nodeOut);
- lastResult = nodeOut;
+ });
+
+ // src/dagre-wrapper/blockArrowHelper.ts
+ var expandAndDeduplicateDirections, getArrowPoints;
+ var init_blockArrowHelper = __esm({
+ "src/dagre-wrapper/blockArrowHelper.ts"() {
+ "use strict";
+ expandAndDeduplicateDirections = /* @__PURE__ */ __name((directions) => {
+ const uniqueDirections = /* @__PURE__ */ new Set();
+ for (const direction4 of directions) {
+ switch (direction4) {
+ case "x":
+ uniqueDirections.add("right");
+ uniqueDirections.add("left");
+ break;
+ case "y":
+ uniqueDirections.add("up");
+ uniqueDirections.add("down");
+ break;
+ default:
+ uniqueDirections.add(direction4);
+ break;
}
}
- state2.key = oldKey;
- return result;
- } else {
- return outputFunc(ast, nestedOutput2, state2);
- }
- };
- return nestedOutput;
- };
- var htmlFor = function htmlFor2(outputFunc) {
- var nestedOutput = function nestedOutput2(ast, state2) {
- state2 = state2 || {};
- if (Array.isArray(ast)) {
- return ast.map(function(node2) {
- return nestedOutput2(node2, state2);
- }).join("");
- } else {
- return outputFunc(ast, nestedOutput2, state2);
- }
+ return uniqueDirections;
+ }, "expandAndDeduplicateDirections");
+ getArrowPoints = /* @__PURE__ */ __name((duplicatedDirections, bbox, node2) => {
+ const directions = expandAndDeduplicateDirections(duplicatedDirections);
+ const f3 = 2;
+ const height2 = bbox.height + 2 * node2.padding;
+ const midpoint3 = height2 / f3;
+ const width3 = bbox.width + 2 * midpoint3 + node2.padding;
+ const padding3 = node2.padding / 2;
+ if (directions.has("right") && directions.has("left") && directions.has("up") && directions.has("down")) {
+ return [
+ // Bottom
+ { x: 0, y: 0 },
+ { x: midpoint3, y: 0 },
+ { x: width3 / 2, y: 2 * padding3 },
+ { x: width3 - midpoint3, y: 0 },
+ { x: width3, y: 0 },
+ // Right
+ { x: width3, y: -height2 / 3 },
+ { x: width3 + 2 * padding3, y: -height2 / 2 },
+ { x: width3, y: -2 * height2 / 3 },
+ { x: width3, y: -height2 },
+ // Top
+ { x: width3 - midpoint3, y: -height2 },
+ { x: width3 / 2, y: -height2 - 2 * padding3 },
+ { x: midpoint3, y: -height2 },
+ // Left
+ { x: 0, y: -height2 },
+ { x: 0, y: -2 * height2 / 3 },
+ { x: -2 * padding3, y: -height2 / 2 },
+ { x: 0, y: -height2 / 3 }
+ ];
+ }
+ if (directions.has("right") && directions.has("left") && directions.has("up")) {
+ return [
+ { x: midpoint3, y: 0 },
+ { x: width3 - midpoint3, y: 0 },
+ { x: width3, y: -height2 / 2 },
+ { x: width3 - midpoint3, y: -height2 },
+ { x: midpoint3, y: -height2 },
+ { x: 0, y: -height2 / 2 }
+ ];
+ }
+ if (directions.has("right") && directions.has("left") && directions.has("down")) {
+ return [
+ { x: 0, y: 0 },
+ { x: midpoint3, y: -height2 },
+ { x: width3 - midpoint3, y: -height2 },
+ { x: width3, y: 0 }
+ ];
+ }
+ if (directions.has("right") && directions.has("up") && directions.has("down")) {
+ return [
+ { x: 0, y: 0 },
+ { x: width3, y: -midpoint3 },
+ { x: width3, y: -height2 + midpoint3 },
+ { x: 0, y: -height2 }
+ ];
+ }
+ if (directions.has("left") && directions.has("up") && directions.has("down")) {
+ return [
+ { x: width3, y: 0 },
+ { x: 0, y: -midpoint3 },
+ { x: 0, y: -height2 + midpoint3 },
+ { x: width3, y: -height2 }
+ ];
+ }
+ if (directions.has("right") && directions.has("left")) {
+ return [
+ { x: midpoint3, y: 0 },
+ { x: midpoint3, y: -padding3 },
+ { x: width3 - midpoint3, y: -padding3 },
+ { x: width3 - midpoint3, y: 0 },
+ { x: width3, y: -height2 / 2 },
+ { x: width3 - midpoint3, y: -height2 },
+ { x: width3 - midpoint3, y: -height2 + padding3 },
+ { x: midpoint3, y: -height2 + padding3 },
+ { x: midpoint3, y: -height2 },
+ { x: 0, y: -height2 / 2 }
+ ];
+ }
+ if (directions.has("up") && directions.has("down")) {
+ return [
+ // Bottom center
+ { x: width3 / 2, y: 0 },
+ // Left pont of bottom arrow
+ { x: 0, y: -padding3 },
+ { x: midpoint3, y: -padding3 },
+ // Left top over vertical section
+ { x: midpoint3, y: -height2 + padding3 },
+ { x: 0, y: -height2 + padding3 },
+ // Top of arrow
+ { x: width3 / 2, y: -height2 },
+ { x: width3, y: -height2 + padding3 },
+ // Top of right vertical bar
+ { x: width3 - midpoint3, y: -height2 + padding3 },
+ { x: width3 - midpoint3, y: -padding3 },
+ { x: width3, y: -padding3 }
+ ];
+ }
+ if (directions.has("right") && directions.has("up")) {
+ return [
+ { x: 0, y: 0 },
+ { x: width3, y: -midpoint3 },
+ { x: 0, y: -height2 }
+ ];
+ }
+ if (directions.has("right") && directions.has("down")) {
+ return [
+ { x: 0, y: 0 },
+ { x: width3, y: 0 },
+ { x: 0, y: -height2 }
+ ];
+ }
+ if (directions.has("left") && directions.has("up")) {
+ return [
+ { x: width3, y: 0 },
+ { x: 0, y: -midpoint3 },
+ { x: width3, y: -height2 }
+ ];
+ }
+ if (directions.has("left") && directions.has("down")) {
+ return [
+ { x: width3, y: 0 },
+ { x: 0, y: 0 },
+ { x: width3, y: -height2 }
+ ];
+ }
+ if (directions.has("right")) {
+ return [
+ { x: midpoint3, y: -padding3 },
+ { x: midpoint3, y: -padding3 },
+ { x: width3 - midpoint3, y: -padding3 },
+ { x: width3 - midpoint3, y: 0 },
+ { x: width3, y: -height2 / 2 },
+ { x: width3 - midpoint3, y: -height2 },
+ { x: width3 - midpoint3, y: -height2 + padding3 },
+ // top left corner of arrow
+ { x: midpoint3, y: -height2 + padding3 },
+ { x: midpoint3, y: -height2 + padding3 }
+ ];
+ }
+ if (directions.has("left")) {
+ return [
+ { x: midpoint3, y: 0 },
+ { x: midpoint3, y: -padding3 },
+ // Two points, the right corners
+ { x: width3 - midpoint3, y: -padding3 },
+ { x: width3 - midpoint3, y: -height2 + padding3 },
+ { x: midpoint3, y: -height2 + padding3 },
+ { x: midpoint3, y: -height2 },
+ { x: 0, y: -height2 / 2 }
+ ];
+ }
+ if (directions.has("up")) {
+ return [
+ // Bottom center
+ { x: midpoint3, y: -padding3 },
+ // Left top over vertical section
+ { x: midpoint3, y: -height2 + padding3 },
+ { x: 0, y: -height2 + padding3 },
+ // Top of arrow
+ { x: width3 / 2, y: -height2 },
+ { x: width3, y: -height2 + padding3 },
+ // Top of right vertical bar
+ { x: width3 - midpoint3, y: -height2 + padding3 },
+ { x: width3 - midpoint3, y: -padding3 }
+ ];
+ }
+ if (directions.has("down")) {
+ return [
+ // Bottom center
+ { x: width3 / 2, y: 0 },
+ // Left pont of bottom arrow
+ { x: 0, y: -padding3 },
+ { x: midpoint3, y: -padding3 },
+ // Left top over vertical section
+ { x: midpoint3, y: -height2 + padding3 },
+ { x: width3 - midpoint3, y: -height2 + padding3 },
+ { x: width3 - midpoint3, y: -padding3 },
+ { x: width3, y: -padding3 }
+ ];
+ }
+ return [{ x: 0, y: 0 }];
+ }, "getArrowPoints");
+ }
+ });
+
+ // ../../node_modules/.pnpm/marked@13.0.3/node_modules/marked/lib/marked.esm.js
+ function _getDefaults() {
+ return {
+ async: false,
+ breaks: false,
+ extensions: null,
+ gfm: true,
+ hooks: null,
+ pedantic: false,
+ renderer: null,
+ silent: false,
+ tokenizer: null,
+ walkTokens: null
};
- return nestedOutput;
- };
- var outputFor = function outputFor2(rules, property2, defaultState = {}) {
- if (!property2) {
- throw new Error("simple-markdown: outputFor: `property` must be defined. if you just upgraded, you probably need to replace `outputFor` with `reactFor`");
- }
- var latestState;
- var arrayRule = rules.Array || defaultRules.Array;
- var arrayRuleCheck = arrayRule[property2];
- if (!arrayRuleCheck) {
- throw new Error("simple-markdown: outputFor: to join nodes of type `" + // @ts-expect-error [FEI-5003] - TS2469 - The '+' operator cannot be applied to type 'symbol'.
- property2 + "` you must provide an `Array:` joiner rule with that type, Please see the docs for details on specifying an Array rule.");
- }
- var arrayRuleOutput = arrayRuleCheck;
- var nestedOutput = function nestedOutput2(ast, state2) {
- state2 = state2 || latestState;
- latestState = state2;
- if (Array.isArray(ast)) {
- return arrayRuleOutput(ast, nestedOutput2, state2);
- } else {
- return rules[ast.type][property2](ast, nestedOutput2, state2);
+ }
+ function changeDefaults(newDefaults) {
+ _defaults = newDefaults;
+ }
+ function escape$1(html2, encode) {
+ if (encode) {
+ if (escapeTest.test(html2)) {
+ return html2.replace(escapeReplace, getEscapeReplacement);
}
- };
- var outerOutput = function outerOutput2(ast, state2) {
- latestState = populateInitialState(state2, defaultState);
- return nestedOutput(ast, latestState);
- };
- return outerOutput;
- };
- var defaultRawParse = parserFor(defaultRules);
- var defaultBlockParse = function defaultBlockParse2(source, state2) {
- state2 = state2 || {};
- state2.inline = false;
- return defaultRawParse(source, state2);
- };
- var defaultInlineParse = function defaultInlineParse2(source, state2) {
- state2 = state2 || {};
- state2.inline = true;
- return defaultRawParse(source, state2);
- };
- var defaultImplicitParse = function defaultImplicitParse2(source, state2) {
- var isBlock = BLOCK_END_R.test(source);
- state2 = state2 || {};
- state2.inline = !isBlock;
- return defaultRawParse(source, state2);
- };
- var defaultReactOutput = outputFor(defaultRules, "react");
- var defaultHtmlOutput = outputFor(defaultRules, "html");
- var markdownToReact = function markdownToReact2(source, state2) {
- return defaultReactOutput(defaultBlockParse(source, state2), state2);
- };
- var markdownToHtml = function markdownToHtml2(source, state2) {
- return defaultHtmlOutput(defaultBlockParse(source, state2), state2);
- };
- var ReactMarkdown = function ReactMarkdown2(props) {
- var divProps = {};
- for (var prop in props) {
- if (prop !== "source" && Object.prototype.hasOwnProperty.call(props, prop)) {
- divProps[prop] = props[prop];
+ } else {
+ if (escapeTestNoEncode.test(html2)) {
+ return html2.replace(escapeReplaceNoEncode, getEscapeReplacement);
}
}
- divProps.children = markdownToReact(props.source);
- return reactElement("div", null, divProps);
- };
- var SimpleMarkdown = {
- defaultRules,
- parserFor,
- outputFor,
- inlineRegex,
- blockRegex,
- anyScopeRegex,
- parseInline,
- parseBlock,
- // default wrappers:
- markdownToReact,
- markdownToHtml,
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'FC' is not assignable to type '(props: { [key: string]: any; source: string; }) => ReactElement'.
- ReactMarkdown,
- defaultBlockParse,
- defaultInlineParse,
- defaultImplicitParse,
- defaultReactOutput,
- defaultHtmlOutput,
- preprocess,
- sanitizeText: sanitizeText$3,
- sanitizeUrl,
- unescapeUrl,
- htmlTag,
- reactElement,
- // deprecated:
- defaultRawParse,
- ruleOutput,
- reactFor,
- htmlFor,
- defaultParse: function(...args) {
- if (typeof console !== "undefined") {
- console.warn("defaultParse is deprecated, please use `defaultImplicitParse`");
- }
- return defaultImplicitParse.apply(null, args);
- },
- defaultOutput: function(...args) {
- if (typeof console !== "undefined") {
- console.warn("defaultOutput is deprecated, please use `defaultReactOutput`");
+ return html2;
+ }
+ function unescape2(html2) {
+ return html2.replace(unescapeTest, (_2, n2) => {
+ n2 = n2.toLowerCase();
+ if (n2 === "colon")
+ return ":";
+ if (n2.charAt(0) === "#") {
+ return n2.charAt(1) === "x" ? String.fromCharCode(parseInt(n2.substring(2), 16)) : String.fromCharCode(+n2.substring(1));
}
- return defaultReactOutput.apply(null, args);
+ return "";
+ });
+ }
+ function edit(regex2, opt) {
+ let source = typeof regex2 === "string" ? regex2 : regex2.source;
+ opt = opt || "";
+ const obj = {
+ replace: /* @__PURE__ */ __name((name, val) => {
+ let valSource = typeof val === "string" ? val : val.source;
+ valSource = valSource.replace(caret, "$1");
+ source = source.replace(name, valSource);
+ return obj;
+ }, "replace"),
+ getRegex: /* @__PURE__ */ __name(() => {
+ return new RegExp(source, opt);
+ }, "getRegex")
+ };
+ return obj;
+ }
+ function cleanUrl(href) {
+ try {
+ href = encodeURI(href).replace(/%25/g, "%");
+ } catch {
+ return null;
}
- };
- function preprocessMarkdown(markdown) {
- const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, "\n");
- const withoutExtraSpaces = withoutMultipleNewlines.replace(/^\s+/gm, "");
- return withoutExtraSpaces;
+ return href;
}
- function markdownToLines(markdown) {
- const preprocessedMarkdown = preprocessMarkdown(markdown);
- const mdParse = SimpleMarkdown.defaultBlockParse;
- const syntaxTree = mdParse(preprocessedMarkdown);
- let lines = [[]];
- let currentLine = 0;
- function processNode(node2, parentType) {
- if (node2.type === "text") {
- const textLines = node2.content.split("\n");
- textLines.forEach((textLine, index) => {
- if (index !== 0) {
- currentLine++;
- lines.push([]);
- }
- textLine.split(" ").forEach((word) => {
- if (word) {
- lines[currentLine].push({ content: word, type: parentType || "normal" });
- }
- });
- });
- } else if (node2.type === "strong" || node2.type === "em") {
- node2.content.forEach((contentNode) => {
- processNode(contentNode, node2.type);
- });
+ function splitCells(tableRow, count) {
+ const row = tableRow.replace(/\|/g, (match2, offset, str2) => {
+ let escaped = false;
+ let curr = offset;
+ while (--curr >= 0 && str2[curr] === "\\")
+ escaped = !escaped;
+ if (escaped) {
+ return "|";
+ } else {
+ return " |";
}
+ }), cells = row.split(/ \|/);
+ let i2 = 0;
+ if (!cells[0].trim()) {
+ cells.shift();
}
- syntaxTree.forEach((treeNode) => {
- if (treeNode.type === "paragraph") {
- treeNode.content.forEach((contentNode) => {
- processNode(contentNode);
- });
- }
- });
- return lines;
- }
- function markdownToHTML(markdown) {
- const mdParse = SimpleMarkdown.defaultBlockParse;
- const syntaxTree = mdParse(markdown);
- function output(node2) {
- if (node2.type === "text") {
- return node2.content.replace(/\n/g, "
");
- } else if (node2.type === "strong") {
- return `${node2.content.map(output).join("")}`;
- } else if (node2.type === "em") {
- return `${node2.content.map(output).join("")}`;
- } else if (node2.type === "paragraph") {
- return `${node2.content.map(output).join("")}
`;
+ if (cells.length > 0 && !cells[cells.length - 1].trim()) {
+ cells.pop();
+ }
+ if (count) {
+ if (cells.length > count) {
+ cells.splice(count);
} else {
- return "";
+ while (cells.length < count)
+ cells.push("");
}
}
- return syntaxTree.map(output).join("");
- }
- function applyStyle(dom, styleFn) {
- if (styleFn) {
- dom.attr("style", styleFn);
+ for (; i2 < cells.length; i2++) {
+ cells[i2] = cells[i2].trim().replace(/\\\|/g, "|");
}
+ return cells;
}
- function addHtmlSpan(element, node2, width2, classes2) {
- const fo = element.append("foreignObject");
- const div = fo.append("xhtml:div");
- const label = node2.label;
- const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
- div.html(
- `" + label + ""
- );
- applyStyle(div, node2.labelStyle);
- div.style("display", "table-cell");
- div.style("white-space", "nowrap");
- div.style("max-width", width2 + "px");
- div.attr("xmlns", "http://www.w3.org/1999/xhtml");
- let bbox = div.node().getBoundingClientRect();
- if (bbox.width === width2) {
- div.style("display", "table");
- div.style("white-space", "break-spaces");
- div.style("width", width2 + "px");
- bbox = div.node().getBoundingClientRect();
+ function rtrim(str2, c3, invert2) {
+ const l2 = str2.length;
+ if (l2 === 0) {
+ return "";
}
- fo.style("width", bbox.width);
- fo.style("height", bbox.height);
- return fo.node();
- }
- function createTspan(textElement, lineIndex, lineHeight) {
- return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
- }
- function createFormattedText(width2, g, structuredText, addBackground = false) {
- const lineHeight = 1.1;
- const labelGroup = g.append("g");
- let bkg = labelGroup.insert("rect").attr("class", "background");
- const textElement = labelGroup.append("text").attr("y", "-10.1");
- let lineIndex = -1;
- structuredText.forEach((line2) => {
- lineIndex++;
- let tspan = createTspan(textElement, lineIndex, lineHeight);
- let words = [...line2].reverse();
- let currentWord;
- let wrappedLine = [];
- while (words.length) {
- currentWord = words.pop();
- wrappedLine.push(currentWord);
- updateTextContentAndStyles(tspan, wrappedLine);
- if (tspan.node().getComputedTextLength() > width2) {
- wrappedLine.pop();
- words.push(currentWord);
- updateTextContentAndStyles(tspan, wrappedLine);
- wrappedLine = [];
- lineIndex++;
- tspan = createTspan(textElement, lineIndex, lineHeight);
- }
+ let suffLen = 0;
+ while (suffLen < l2) {
+ const currChar = str2.charAt(l2 - suffLen - 1);
+ if (currChar === c3 && !invert2) {
+ suffLen++;
+ } else if (currChar !== c3 && invert2) {
+ suffLen++;
+ } else {
+ break;
}
- });
- if (addBackground) {
- const bbox = textElement.node().getBBox();
- const padding2 = 2;
- bkg.attr("x", -padding2).attr("y", -padding2).attr("width", bbox.width + 2 * padding2).attr("height", bbox.height + 2 * padding2);
- return labelGroup.node();
- } else {
- return textElement.node();
}
+ return str2.slice(0, l2 - suffLen);
}
- function updateTextContentAndStyles(tspan, wrappedLine) {
- tspan.text("");
- wrappedLine.forEach((word, index) => {
- const innerTspan = tspan.append("tspan").attr("font-style", word.type === "em" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal");
- if (index === 0) {
- innerTspan.text(word.content);
- } else {
- innerTspan.text(" " + word.content);
+ function findClosingBracket(str2, b2) {
+ if (str2.indexOf(b2[1]) === -1) {
+ return -1;
+ }
+ let level = 0;
+ for (let i2 = 0; i2 < str2.length; i2++) {
+ if (str2[i2] === "\\") {
+ i2++;
+ } else if (str2[i2] === b2[0]) {
+ level++;
+ } else if (str2[i2] === b2[1]) {
+ level--;
+ if (level < 0) {
+ return i2;
+ }
}
- });
- }
- const createText = (el, text2 = "", {
- style = "",
- isTitle = false,
- classes: classes2 = "",
- useHtmlLabels = true,
- isNode = true,
- width: width2,
- addSvgBackground = false
- } = {}) => {
- log$1.info("createText", text2, style, isTitle, classes2, useHtmlLabels, isNode, addSvgBackground);
- if (useHtmlLabels) {
- const htmlText = markdownToHTML(text2);
- const node2 = {
- isNode,
- label: decodeEntities(htmlText).replace(
- /fa[blrs]?:fa-[\w-]+/g,
- (s) => ``
- ),
- labelStyle: style.replace("fill:", "color:")
- };
- let vertexNode = addHtmlSpan(el, node2, width2, classes2);
- return vertexNode;
- } else {
- const structuredText = markdownToLines(text2);
- const special = ['"', "'", ".", ",", ":", ";", "!", "?", "(", ")", "[", "]", "{", "}"];
- let lastWord;
- structuredText.forEach((line2) => {
- line2.forEach((word) => {
- if (special.includes(word.content) && lastWord) {
- lastWord.content += word.content;
- word.content = "";
- }
- lastWord = word;
- });
- });
- const svgLabel = createFormattedText(width2, el, structuredText, addSvgBackground);
- return svgLabel;
}
- };
- const labelHelper = async (parent, node2, _classes, isNode) => {
- let classes2;
- const useHtmlLabels = node2.useHtmlLabels || evaluate(getConfig$1().flowchart.htmlLabels);
- if (!_classes) {
- classes2 = "node default";
- } else {
- classes2 = _classes;
+ return -1;
+ }
+ function outputLink(cap, link3, raw, lexer2) {
+ const href = link3.href;
+ const title2 = link3.title ? escape$1(link3.title) : null;
+ const text2 = cap[1].replace(/\\([\[\]])/g, "$1");
+ if (cap[0].charAt(0) !== "!") {
+ lexer2.state.inLink = true;
+ const token2 = {
+ type: "link",
+ raw,
+ href,
+ title: title2,
+ text: text2,
+ tokens: lexer2.inlineTokens(text2)
+ };
+ lexer2.state.inLink = false;
+ return token2;
}
- const shapeSvg = parent.insert("g").attr("class", classes2).attr("id", node2.domId || node2.id);
- const label = shapeSvg.insert("g").attr("class", "label").attr("style", node2.labelStyle);
- let labelText;
- if (node2.labelText === void 0) {
- labelText = "";
- } else {
- labelText = typeof node2.labelText === "string" ? node2.labelText : node2.labelText[0];
- }
- const textNode = label.node();
- let text2;
- if (node2.labelType === "markdown") {
- text2 = createText(label, sanitizeText$7(decodeEntities(labelText), getConfig$1()), {
- useHtmlLabels,
- width: node2.width || getConfig$1().flowchart.wrappingWidth,
- classes: "markdown-node-label"
- });
- } else {
- text2 = textNode.appendChild(
- createLabel$1(
- sanitizeText$7(decodeEntities(labelText), getConfig$1()),
- node2.labelStyle,
- false,
- isNode
- )
- );
+ return {
+ type: "image",
+ raw,
+ href,
+ title: title2,
+ text: escape$1(text2)
+ };
+ }
+ function indentCodeCompensation(raw, text2) {
+ const matchIndentToCode = raw.match(/^(\s+)(?:```)/);
+ if (matchIndentToCode === null) {
+ return text2;
}
- let bbox = text2.getBBox();
- const halfPadding = node2.padding / 2;
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = text2.children[0];
- const dv = select(text2);
- const images = div.getElementsByTagName("img");
- if (images) {
- const noImgText = labelText.replace(/]*>/g, "").trim() === "";
- await Promise.all(
- [...images].map(
- (img) => new Promise(
- (res) => img.addEventListener("load", function() {
- img.style.display = "flex";
- img.style.flexDirection = "column";
- if (noImgText) {
- const bodyFontSize = getConfig$1().fontSize ? getConfig$1().fontSize : window.getComputedStyle(document.body).fontSize;
- const enlargingFactor = 5;
- img.style.width = parseInt(bodyFontSize, 10) * enlargingFactor + "px";
- } else {
- img.style.width = "100%";
- }
- res(img);
- })
- )
- )
- );
+ const indentToCode = matchIndentToCode[1];
+ return text2.split("\n").map((node2) => {
+ const matchIndentInNode = node2.match(/^\s+/);
+ if (matchIndentInNode === null) {
+ return node2;
}
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- if (useHtmlLabels) {
- label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
- } else {
- label.attr("transform", "translate(0, " + -bbox.height / 2 + ")");
- }
- if (node2.centerLabel) {
- label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
- }
- label.insert("rect", ":first-child");
- return { shapeSvg, bbox, halfPadding, label };
- };
- const updateNodeBounds = (node2, element) => {
- const bbox = element.node().getBBox();
- node2.width = bbox.width;
- node2.height = bbox.height;
- };
- function insertPolygonShape$1(parent, w2, h, points) {
- return parent.insert("polygon", ":first-child").attr(
- "points",
- points.map(function(d) {
- return d.x + "," + d.y;
- }).join(" ")
- ).attr("class", "label-container").attr("transform", "translate(" + -w2 / 2 + "," + h / 2 + ")");
- }
- let clusterDb = {};
- let descendants = {};
- let parents = {};
- const clear$f = () => {
- descendants = {};
- parents = {};
- clusterDb = {};
- };
- const isDescendant = (id2, ancenstorId) => {
- log$1.trace("In isDecendant", ancenstorId, " ", id2, " = ", descendants[ancenstorId].includes(id2));
- if (descendants[ancenstorId].includes(id2)) {
- return true;
- }
- return false;
- };
- const edgeInCluster = (edge, clusterId) => {
- log$1.info("Decendants of ", clusterId, " is ", descendants[clusterId]);
- log$1.info("Edge is ", edge);
- if (edge.v === clusterId) {
- return false;
- }
- if (edge.w === clusterId) {
- return false;
- }
- if (!descendants[clusterId]) {
- log$1.debug("Tilt, ", clusterId, ",not in decendants");
- return false;
- }
- return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);
- };
- const copy = (clusterId, graph, newGraph, rootId) => {
- log$1.warn(
- "Copying children of ",
- clusterId,
- "root",
- rootId,
- "data",
- graph.node(clusterId),
- rootId
- );
- const nodes2 = graph.children(clusterId) || [];
- if (clusterId !== rootId) {
- nodes2.push(clusterId);
- }
- log$1.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes2);
- nodes2.forEach((node2) => {
- if (graph.children(node2).length > 0) {
- copy(node2, graph, newGraph, rootId);
- } else {
- const data = graph.node(node2);
- log$1.info("cp ", node2, " to ", rootId, " with parent ", clusterId);
- newGraph.setNode(node2, data);
- if (rootId !== graph.parent(node2)) {
- log$1.warn("Setting parent", node2, graph.parent(node2));
- newGraph.setParent(node2, graph.parent(node2));
- }
- if (clusterId !== rootId && node2 !== clusterId) {
- log$1.debug("Setting parent", node2, clusterId);
- newGraph.setParent(node2, clusterId);
- } else {
- log$1.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
- log$1.debug(
- "Not Setting parent for node=",
- node2,
- "cluster!==rootId",
- clusterId !== rootId,
- "node!==clusterId",
- node2 !== clusterId
- );
+ const [indentInNode] = matchIndentInNode;
+ if (indentInNode.length >= indentToCode.length) {
+ return node2.slice(indentToCode.length);
+ }
+ return node2;
+ }).join("\n");
+ }
+ function marked(src, opt) {
+ return markedInstance.parse(src, opt);
+ }
+ var _defaults, escapeTest, escapeReplace, escapeTestNoEncode, escapeReplaceNoEncode, escapeReplacements, getEscapeReplacement, unescapeTest, caret, noopTest, _Tokenizer, newline, blockCode, fences, hr, heading, bullet, lheading, _paragraph, blockText, _blockLabel, def, list, _tag, _comment, html, paragraph, blockquote, blockNormal, gfmTable, blockGfm, blockPedantic, escape3, inlineCode, br, inlineText, _punctuation, punctuation, blockSkip, emStrongLDelim, emStrongRDelimAst, emStrongRDelimUnd, anyPunctuation, autolink, _inlineComment, tag, _inlineLabel, link, reflink, nolink, reflinkSearch, inlineNormal, inlinePedantic, inlineGfm, inlineBreaks, block, inline, _Lexer, _Renderer, _TextRenderer, _Parser, _Hooks, Marked, markedInstance, options, setOptions, use, walkTokens, parseInline, parser2, lexer;
+ var init_marked_esm = __esm({
+ "../../node_modules/.pnpm/marked@13.0.3/node_modules/marked/lib/marked.esm.js"() {
+ "use strict";
+ __name(_getDefaults, "_getDefaults");
+ _defaults = _getDefaults();
+ __name(changeDefaults, "changeDefaults");
+ escapeTest = /[&<>"']/;
+ escapeReplace = new RegExp(escapeTest.source, "g");
+ escapeTestNoEncode = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/;
+ escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, "g");
+ escapeReplacements = {
+ "&": "&",
+ "<": "<",
+ ">": ">",
+ '"': """,
+ "'": "'"
+ };
+ getEscapeReplacement = /* @__PURE__ */ __name((ch) => escapeReplacements[ch], "getEscapeReplacement");
+ __name(escape$1, "escape$1");
+ unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
+ __name(unescape2, "unescape");
+ caret = /(^|[^\[])\^/g;
+ __name(edit, "edit");
+ __name(cleanUrl, "cleanUrl");
+ noopTest = { exec: /* @__PURE__ */ __name(() => null, "exec") };
+ __name(splitCells, "splitCells");
+ __name(rtrim, "rtrim");
+ __name(findClosingBracket, "findClosingBracket");
+ __name(outputLink, "outputLink");
+ __name(indentCodeCompensation, "indentCodeCompensation");
+ _Tokenizer = class {
+ static {
+ __name(this, "_Tokenizer");
+ }
+ options;
+ rules;
+ // set by the lexer
+ lexer;
+ // set by the lexer
+ constructor(options3) {
+ this.options = options3 || _defaults;
+ }
+ space(src) {
+ const cap = this.rules.block.newline.exec(src);
+ if (cap && cap[0].length > 0) {
+ return {
+ type: "space",
+ raw: cap[0]
+ };
+ }
}
- const edges2 = graph.edges(node2);
- log$1.debug("Copying Edges", edges2);
- edges2.forEach((edge) => {
- log$1.info("Edge", edge);
- const data2 = graph.edge(edge.v, edge.w, edge.name);
- log$1.info("Edge data", data2, rootId);
- try {
- if (edgeInCluster(edge, rootId)) {
- log$1.info("Copying as ", edge.v, edge.w, data2, edge.name);
- newGraph.setEdge(edge.v, edge.w, data2, edge.name);
- log$1.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
- } else {
- log$1.info(
- "Skipping copy of edge ",
- edge.v,
- "-->",
- edge.w,
- " rootId: ",
- rootId,
- " clusterId:",
- clusterId
- );
+ code(src) {
+ const cap = this.rules.block.code.exec(src);
+ if (cap) {
+ const text2 = cap[0].replace(/^ {1,4}/gm, "");
+ return {
+ type: "code",
+ raw: cap[0],
+ codeBlockStyle: "indented",
+ text: !this.options.pedantic ? rtrim(text2, "\n") : text2
+ };
+ }
+ }
+ fences(src) {
+ const cap = this.rules.block.fences.exec(src);
+ if (cap) {
+ const raw = cap[0];
+ const text2 = indentCodeCompensation(raw, cap[3] || "");
+ return {
+ type: "code",
+ raw,
+ lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : cap[2],
+ text: text2
+ };
+ }
+ }
+ heading(src) {
+ const cap = this.rules.block.heading.exec(src);
+ if (cap) {
+ let text2 = cap[2].trim();
+ if (/#$/.test(text2)) {
+ const trimmed = rtrim(text2, "#");
+ if (this.options.pedantic) {
+ text2 = trimmed.trim();
+ } else if (!trimmed || / $/.test(trimmed)) {
+ text2 = trimmed.trim();
+ }
}
- } catch (e) {
- log$1.error(e);
+ return {
+ type: "heading",
+ raw: cap[0],
+ depth: cap[1].length,
+ text: text2,
+ tokens: this.lexer.inline(text2)
+ };
}
- });
- }
- log$1.debug("Removing node", node2);
- graph.removeNode(node2);
- });
- };
- const extractDescendants = (id2, graph) => {
- const children2 = graph.children(id2);
- let res = [...children2];
- for (const child of children2) {
- parents[child] = id2;
- res = [...res, ...extractDescendants(child, graph)];
- }
- return res;
- };
- const findNonClusterChild = (id2, graph) => {
- log$1.trace("Searching", id2);
- const children2 = graph.children(id2);
- log$1.trace("Searching children of id ", id2, children2);
- if (children2.length < 1) {
- log$1.trace("This is a valid node", id2);
- return id2;
- }
- for (const child of children2) {
- const _id = findNonClusterChild(child, graph);
- if (_id) {
- log$1.trace("Found replacement for", id2, " => ", _id);
- return _id;
- }
- }
- };
- const getAnchorId = (id2) => {
- if (!clusterDb[id2]) {
- return id2;
- }
- if (!clusterDb[id2].externalConnections) {
- return id2;
- }
- if (clusterDb[id2]) {
- return clusterDb[id2].id;
- }
- return id2;
- };
- const adjustClustersAndEdges = (graph, depth) => {
- if (!graph || depth > 10) {
- log$1.debug("Opting out, no graph ");
- return;
- } else {
- log$1.debug("Opting in, graph ");
- }
- graph.nodes().forEach(function(id2) {
- const children2 = graph.children(id2);
- if (children2.length > 0) {
- log$1.warn(
- "Cluster identified",
- id2,
- " Replacement id in edges: ",
- findNonClusterChild(id2, graph)
- );
- descendants[id2] = extractDescendants(id2, graph);
- clusterDb[id2] = { id: findNonClusterChild(id2, graph), clusterData: graph.node(id2) };
- }
- });
- graph.nodes().forEach(function(id2) {
- const children2 = graph.children(id2);
- const edges2 = graph.edges();
- if (children2.length > 0) {
- log$1.debug("Cluster identified", id2, descendants);
- edges2.forEach((edge) => {
- if (edge.v !== id2 && edge.w !== id2) {
- const d1 = isDescendant(edge.v, id2);
- const d2 = isDescendant(edge.w, id2);
- if (d1 ^ d2) {
- log$1.warn("Edge: ", edge, " leaves cluster ", id2);
- log$1.warn("Decendants of XXX ", id2, ": ", descendants[id2]);
- clusterDb[id2].externalConnections = true;
+ }
+ hr(src) {
+ const cap = this.rules.block.hr.exec(src);
+ if (cap) {
+ return {
+ type: "hr",
+ raw: rtrim(cap[0], "\n")
+ };
+ }
+ }
+ blockquote(src) {
+ const cap = this.rules.block.blockquote.exec(src);
+ if (cap) {
+ let lines = rtrim(cap[0], "\n").split("\n");
+ let raw = "";
+ let text2 = "";
+ const tokens2 = [];
+ while (lines.length > 0) {
+ let inBlockquote = false;
+ const currentLines = [];
+ let i2;
+ for (i2 = 0; i2 < lines.length; i2++) {
+ if (/^ {0,3}>/.test(lines[i2])) {
+ currentLines.push(lines[i2]);
+ inBlockquote = true;
+ } else if (!inBlockquote) {
+ currentLines.push(lines[i2]);
+ } else {
+ break;
+ }
+ }
+ lines = lines.slice(i2);
+ const currentRaw = currentLines.join("\n");
+ const currentText = currentRaw.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g, "\n $1").replace(/^ {0,3}>[ \t]?/gm, "");
+ raw = raw ? `${raw}
+${currentRaw}` : currentRaw;
+ text2 = text2 ? `${text2}
+${currentText}` : currentText;
+ const top2 = this.lexer.state.top;
+ this.lexer.state.top = true;
+ this.lexer.blockTokens(currentText, tokens2, true);
+ this.lexer.state.top = top2;
+ if (lines.length === 0) {
+ break;
+ }
+ const lastToken = tokens2[tokens2.length - 1];
+ if (lastToken?.type === "code") {
+ break;
+ } else if (lastToken?.type === "blockquote") {
+ const oldToken = lastToken;
+ const newText = oldToken.raw + "\n" + lines.join("\n");
+ const newToken = this.blockquote(newText);
+ tokens2[tokens2.length - 1] = newToken;
+ raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;
+ text2 = text2.substring(0, text2.length - oldToken.text.length) + newToken.text;
+ break;
+ } else if (lastToken?.type === "list") {
+ const oldToken = lastToken;
+ const newText = oldToken.raw + "\n" + lines.join("\n");
+ const newToken = this.list(newText);
+ tokens2[tokens2.length - 1] = newToken;
+ raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;
+ text2 = text2.substring(0, text2.length - oldToken.raw.length) + newToken.raw;
+ lines = newText.substring(tokens2[tokens2.length - 1].raw.length).split("\n");
+ continue;
+ }
+ }
+ return {
+ type: "blockquote",
+ raw,
+ tokens: tokens2,
+ text: text2
+ };
+ }
+ }
+ list(src) {
+ let cap = this.rules.block.list.exec(src);
+ if (cap) {
+ let bull = cap[1].trim();
+ const isordered = bull.length > 1;
+ const list2 = {
+ type: "list",
+ raw: "",
+ ordered: isordered,
+ start: isordered ? +bull.slice(0, -1) : "",
+ loose: false,
+ items: []
+ };
+ bull = isordered ? `\\d{1,9}\\${bull.slice(-1)}` : `\\${bull}`;
+ if (this.options.pedantic) {
+ bull = isordered ? bull : "[*+-]";
+ }
+ const itemRegex = new RegExp(`^( {0,3}${bull})((?:[ ][^\\n]*)?(?:\\n|$))`);
+ let endsWithBlankLine = false;
+ while (src) {
+ let endEarly = false;
+ let raw = "";
+ let itemContents = "";
+ if (!(cap = itemRegex.exec(src))) {
+ break;
+ }
+ if (this.rules.block.hr.test(src)) {
+ break;
+ }
+ raw = cap[0];
+ src = src.substring(raw.length);
+ let line2 = cap[2].split("\n", 1)[0].replace(/^\t+/, (t4) => " ".repeat(3 * t4.length));
+ let nextLine = src.split("\n", 1)[0];
+ let blankLine = !line2.trim();
+ let indent = 0;
+ if (this.options.pedantic) {
+ indent = 2;
+ itemContents = line2.trimStart();
+ } else if (blankLine) {
+ indent = cap[1].length + 1;
+ } else {
+ indent = cap[2].search(/[^ ]/);
+ indent = indent > 4 ? 1 : indent;
+ itemContents = line2.slice(indent);
+ indent += cap[1].length;
+ }
+ if (blankLine && /^ *$/.test(nextLine)) {
+ raw += nextLine + "\n";
+ src = src.substring(nextLine.length + 1);
+ endEarly = true;
+ }
+ if (!endEarly) {
+ const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`);
+ const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`);
+ const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\`\`\`|~~~)`);
+ const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);
+ while (src) {
+ const rawLine = src.split("\n", 1)[0];
+ nextLine = rawLine;
+ if (this.options.pedantic) {
+ nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, " ");
+ }
+ if (fencesBeginRegex.test(nextLine)) {
+ break;
+ }
+ if (headingBeginRegex.test(nextLine)) {
+ break;
+ }
+ if (nextBulletRegex.test(nextLine)) {
+ break;
+ }
+ if (hrRegex.test(src)) {
+ break;
+ }
+ if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) {
+ itemContents += "\n" + nextLine.slice(indent);
+ } else {
+ if (blankLine) {
+ break;
+ }
+ if (line2.search(/[^ ]/) >= 4) {
+ break;
+ }
+ if (fencesBeginRegex.test(line2)) {
+ break;
+ }
+ if (headingBeginRegex.test(line2)) {
+ break;
+ }
+ if (hrRegex.test(line2)) {
+ break;
+ }
+ itemContents += "\n" + nextLine;
+ }
+ if (!blankLine && !nextLine.trim()) {
+ blankLine = true;
+ }
+ raw += rawLine + "\n";
+ src = src.substring(rawLine.length + 1);
+ line2 = nextLine.slice(indent);
+ }
+ }
+ if (!list2.loose) {
+ if (endsWithBlankLine) {
+ list2.loose = true;
+ } else if (/\n *\n *$/.test(raw)) {
+ endsWithBlankLine = true;
+ }
+ }
+ let istask = null;
+ let ischecked;
+ if (this.options.gfm) {
+ istask = /^\[[ xX]\] /.exec(itemContents);
+ if (istask) {
+ ischecked = istask[0] !== "[ ] ";
+ itemContents = itemContents.replace(/^\[[ xX]\] +/, "");
+ }
+ }
+ list2.items.push({
+ type: "list_item",
+ raw,
+ task: !!istask,
+ checked: ischecked,
+ loose: false,
+ text: itemContents,
+ tokens: []
+ });
+ list2.raw += raw;
+ }
+ list2.items[list2.items.length - 1].raw = list2.items[list2.items.length - 1].raw.trimEnd();
+ list2.items[list2.items.length - 1].text = list2.items[list2.items.length - 1].text.trimEnd();
+ list2.raw = list2.raw.trimEnd();
+ for (let i2 = 0; i2 < list2.items.length; i2++) {
+ this.lexer.state.top = false;
+ list2.items[i2].tokens = this.lexer.blockTokens(list2.items[i2].text, []);
+ if (!list2.loose) {
+ const spacers = list2.items[i2].tokens.filter((t4) => t4.type === "space");
+ const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t4) => /\n.*\n/.test(t4.raw));
+ list2.loose = hasMultipleLineBreaks;
+ }
+ }
+ if (list2.loose) {
+ for (let i2 = 0; i2 < list2.items.length; i2++) {
+ list2.items[i2].loose = true;
+ }
}
+ return list2;
}
- });
- } else {
- log$1.debug("Not a cluster ", id2, descendants);
- }
- });
- graph.edges().forEach(function(e) {
- const edge = graph.edge(e);
- log$1.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
- log$1.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
- let v = e.v;
- let w2 = e.w;
- log$1.warn(
- "Fix XXX",
- clusterDb,
- "ids:",
- e.v,
- e.w,
- "Translating: ",
- clusterDb[e.v],
- " --- ",
- clusterDb[e.w]
- );
- if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {
- log$1.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name);
- log$1.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
- v = getAnchorId(e.v);
- w2 = getAnchorId(e.w);
- graph.removeEdge(e.v, e.w, e.name);
- const specialId = e.w + "---" + e.v;
- graph.setNode(specialId, {
- domId: specialId,
- id: specialId,
- labelStyle: "",
- labelText: edge.label,
- padding: 0,
- shape: "labelRect",
- style: ""
- });
- const edge1 = JSON.parse(JSON.stringify(edge));
- const edge2 = JSON.parse(JSON.stringify(edge));
- edge1.label = "";
- edge1.arrowTypeEnd = "none";
- edge2.label = "";
- edge1.fromCluster = e.v;
- edge2.toCluster = e.v;
- graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special");
- graph.setEdge(specialId, w2, edge2, e.name + "-cyclic-special");
- } else if (clusterDb[e.v] || clusterDb[e.w]) {
- log$1.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
- v = getAnchorId(e.v);
- w2 = getAnchorId(e.w);
- graph.removeEdge(e.v, e.w, e.name);
- if (v !== e.v) {
- edge.fromCluster = e.v;
- }
- if (w2 !== e.w) {
- edge.toCluster = e.w;
- }
- log$1.warn("Fix Replacing with XXX", v, w2, e.name);
- graph.setEdge(v, w2, edge, e.name);
- }
- });
- log$1.warn("Adjusted Graph", write(graph));
- extractor(graph, 0);
- log$1.trace(clusterDb);
- };
- const extractor = (graph, depth) => {
- log$1.warn("extractor - ", depth, write(graph), graph.children("D"));
- if (depth > 10) {
- log$1.error("Bailing out");
- return;
- }
- let nodes2 = graph.nodes();
- let hasChildren = false;
- for (const node2 of nodes2) {
- const children2 = graph.children(node2);
- hasChildren = hasChildren || children2.length > 0;
- }
- if (!hasChildren) {
- log$1.debug("Done, no node has children", graph.nodes());
- return;
- }
- log$1.debug("Nodes = ", nodes2, depth);
- for (const node2 of nodes2) {
- log$1.debug(
- "Extracting node",
- node2,
- clusterDb,
- clusterDb[node2] && !clusterDb[node2].externalConnections,
- !graph.parent(node2),
- graph.node(node2),
- graph.children("D"),
- " Depth ",
- depth
- );
- if (!clusterDb[node2]) {
- log$1.debug("Not a cluster", node2, depth);
- } else if (!clusterDb[node2].externalConnections && // !graph.parent(node) &&
- graph.children(node2) && graph.children(node2).length > 0) {
- log$1.warn(
- "Cluster without external connections, without a parent and with children",
- node2,
- depth
- );
- const graphSettings = graph.graph();
- let dir = graphSettings.rankdir === "TB" ? "LR" : "TB";
- if (clusterDb[node2] && clusterDb[node2].clusterData && clusterDb[node2].clusterData.dir) {
- dir = clusterDb[node2].clusterData.dir;
- log$1.warn("Fixing dir", clusterDb[node2].clusterData.dir, dir);
}
- const clusterGraph = new Graph({
- multigraph: true,
- compound: true
- }).setGraph({
- rankdir: dir,
- // Todo: set proper spacing
- nodesep: 50,
- ranksep: 50,
- marginx: 8,
- marginy: 8
- }).setDefaultEdgeLabel(function() {
- return {};
- });
- log$1.warn("Old graph before copy", write(graph));
- copy(node2, graph, clusterGraph, node2);
- graph.setNode(node2, {
- clusterNode: true,
- id: node2,
- clusterData: clusterDb[node2].clusterData,
- labelText: clusterDb[node2].labelText,
- graph: clusterGraph
- });
- log$1.warn("New graph after copy node: (", node2, ")", write(clusterGraph));
- log$1.debug("Old graph after copy", write(graph));
- } else {
- log$1.warn(
- "Cluster ** ",
- node2,
- " **not meeting the criteria !externalConnections:",
- !clusterDb[node2].externalConnections,
- " no parent: ",
- !graph.parent(node2),
- " children ",
- graph.children(node2) && graph.children(node2).length > 0,
- graph.children("D"),
- depth
- );
- log$1.debug(clusterDb);
- }
- }
- nodes2 = graph.nodes();
- log$1.warn("New list of nodes", nodes2);
- for (const node2 of nodes2) {
- const data = graph.node(node2);
- log$1.warn(" Now next level", node2, data);
- if (data.clusterNode) {
- extractor(data.graph, depth + 1);
- }
- }
- };
- const sorter = (graph, nodes2) => {
- if (nodes2.length === 0) {
- return [];
- }
- let result = Object.assign(nodes2);
- nodes2.forEach((node2) => {
- const children2 = graph.children(node2);
- const sorted = sorter(graph, children2);
- result = [...result, ...sorted];
- });
- return result;
- };
- const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());
- function intersectNode(node2, point2) {
- return node2.intersect(point2);
- }
- function intersectEllipse(node2, rx, ry, point2) {
- var cx = node2.x;
- var cy = node2.y;
- var px = cx - point2.x;
- var py = cy - point2.y;
- var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
- var dx = Math.abs(rx * ry * px / det);
- if (point2.x < cx) {
- dx = -dx;
- }
- var dy = Math.abs(rx * ry * py / det);
- if (point2.y < cy) {
- dy = -dy;
- }
- return { x: cx + dx, y: cy + dy };
- }
- function intersectCircle(node2, rx, point2) {
- return intersectEllipse(node2, rx, rx, point2);
- }
- function intersectLine(p1, p2, q1, q2) {
- var a1, a2, b1, b2, c1, c2;
- var r1, r2, r3, r4;
- var denom, offset, num;
- var x2, y2;
- a1 = p2.y - p1.y;
- b1 = p1.x - p2.x;
- c1 = p2.x * p1.y - p1.x * p2.y;
- r3 = a1 * q1.x + b1 * q1.y + c1;
- r4 = a1 * q2.x + b1 * q2.y + c1;
- if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
- return;
- }
- a2 = q2.y - q1.y;
- b2 = q1.x - q2.x;
- c2 = q2.x * q1.y - q1.x * q2.y;
- r1 = a2 * p1.x + b2 * p1.y + c2;
- r2 = a2 * p2.x + b2 * p2.y + c2;
- if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
- return;
- }
- denom = a1 * b2 - a2 * b1;
- if (denom === 0) {
- return;
- }
- offset = Math.abs(denom / 2);
- num = b1 * c2 - b2 * c1;
- x2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
- num = a2 * c1 - a1 * c2;
- y2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
- return { x: x2, y: y2 };
- }
- function sameSign(r1, r2) {
- return r1 * r2 > 0;
- }
- function intersectPolygon(node2, polyPoints, point2) {
- var x1 = node2.x;
- var y1 = node2.y;
- var intersections = [];
- var minX = Number.POSITIVE_INFINITY;
- var minY = Number.POSITIVE_INFINITY;
- if (typeof polyPoints.forEach === "function") {
- polyPoints.forEach(function(entry) {
- minX = Math.min(minX, entry.x);
- minY = Math.min(minY, entry.y);
- });
- } else {
- minX = Math.min(minX, polyPoints.x);
- minY = Math.min(minY, polyPoints.y);
- }
- var left2 = x1 - node2.width / 2 - minX;
- var top2 = y1 - node2.height / 2 - minY;
- for (var i2 = 0; i2 < polyPoints.length; i2++) {
- var p1 = polyPoints[i2];
- var p2 = polyPoints[i2 < polyPoints.length - 1 ? i2 + 1 : 0];
- var intersect2 = intersectLine(
- node2,
- point2,
- { x: left2 + p1.x, y: top2 + p1.y },
- { x: left2 + p2.x, y: top2 + p2.y }
- );
- if (intersect2) {
- intersections.push(intersect2);
- }
- }
- if (!intersections.length) {
- return node2;
- }
- if (intersections.length > 1) {
- intersections.sort(function(p, q) {
- var pdx = p.x - point2.x;
- var pdy = p.y - point2.y;
- var distp = Math.sqrt(pdx * pdx + pdy * pdy);
- var qdx = q.x - point2.x;
- var qdy = q.y - point2.y;
- var distq = Math.sqrt(qdx * qdx + qdy * qdy);
- return distp < distq ? -1 : distp === distq ? 0 : 1;
- });
- }
- return intersections[0];
- }
- const intersectRect = (node2, point2) => {
- var x2 = node2.x;
- var y2 = node2.y;
- var dx = point2.x - x2;
- var dy = point2.y - y2;
- var w2 = node2.width / 2;
- var h = node2.height / 2;
- var sx, sy;
- if (Math.abs(dy) * w2 > Math.abs(dx) * h) {
- if (dy < 0) {
- h = -h;
- }
- sx = dy === 0 ? 0 : h * dx / dy;
- sy = h;
- } else {
- if (dx < 0) {
- w2 = -w2;
- }
- sx = w2;
- sy = dx === 0 ? 0 : w2 * dy / dx;
- }
- return { x: x2 + sx, y: y2 + sy };
- };
- const intersectRect$1 = intersectRect;
- const intersect = {
- node: intersectNode,
- circle: intersectCircle,
- ellipse: intersectEllipse,
- polygon: intersectPolygon,
- rect: intersectRect$1
- };
- const note = async (parent, node2) => {
- const useHtmlLabels = node2.useHtmlLabels || getConfig$1().flowchart.htmlLabels;
- if (!useHtmlLabels) {
- node2.centerLabel = true;
- }
- const { shapeSvg, bbox, halfPadding } = await labelHelper(
- parent,
- node2,
- "node " + node2.classes,
- true
- );
- log$1.info("Classes = ", node2.classes);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- rect2.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
- updateNodeBounds(node2, rect2);
- node2.intersect = function(point2) {
- return intersect.rect(node2, point2);
- };
- return shapeSvg;
- };
- const note$1 = note;
- let edgeCount$1 = 0;
- const drawEdge$2 = function(elem, path2, relation, conf2, diagObj) {
- const getRelationType = function(type2) {
- switch (type2) {
- case diagObj.db.relationType.AGGREGATION:
- return "aggregation";
- case diagObj.db.relationType.EXTENSION:
- return "extension";
- case diagObj.db.relationType.COMPOSITION:
- return "composition";
- case diagObj.db.relationType.DEPENDENCY:
- return "dependency";
- case diagObj.db.relationType.LOLLIPOP:
- return "lollipop";
- }
- };
- path2.points = path2.points.filter((p) => !Number.isNaN(p.y));
- const lineData = path2.points;
- const lineFunction = line$1().x(function(d) {
- return d.x;
- }).y(function(d) {
- return d.y;
- }).curve(curveBasis);
- const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount$1).attr("class", "relation");
- let url = "";
- if (conf2.arrowMarkerAbsolute) {
- url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
- url = url.replace(/\(/g, "\\(");
- url = url.replace(/\)/g, "\\)");
- }
- if (relation.relation.lineType == 1) {
- svgPath.attr("class", "relation dashed-line");
- }
- if (relation.relation.lineType == 10) {
- svgPath.attr("class", "relation dotted-line");
- }
- if (relation.relation.type1 !== "none") {
- svgPath.attr(
- "marker-start",
- "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)"
- );
- }
- if (relation.relation.type2 !== "none") {
- svgPath.attr(
- "marker-end",
- "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)"
- );
- }
- let x2, y2;
- const l = path2.points.length;
- let labelPosition = utils.calcLabelPosition(path2.points);
- x2 = labelPosition.x;
- y2 = labelPosition.y;
- let p1_card_x, p1_card_y;
- let p2_card_x, p2_card_y;
- if (l % 2 !== 0 && l > 1) {
- let cardinality_1_point = utils.calcCardinalityPosition(
- relation.relation.type1 !== "none",
- path2.points,
- path2.points[0]
- );
- let cardinality_2_point = utils.calcCardinalityPosition(
- relation.relation.type2 !== "none",
- path2.points,
- path2.points[l - 1]
- );
- log$1.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point));
- log$1.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point));
- p1_card_x = cardinality_1_point.x;
- p1_card_y = cardinality_1_point.y;
- p2_card_x = cardinality_2_point.x;
- p2_card_y = cardinality_2_point.y;
- }
- if (relation.title !== void 0) {
- const g = elem.append("g").attr("class", "classLabel");
- const label = g.append("text").attr("class", "label").attr("x", x2).attr("y", y2).attr("fill", "red").attr("text-anchor", "middle").text(relation.title);
- window.label = label;
- const bounds2 = label.node().getBBox();
- g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds2.x - conf2.padding / 2).attr("y", bounds2.y - conf2.padding / 2).attr("width", bounds2.width + conf2.padding).attr("height", bounds2.height + conf2.padding);
- }
- log$1.info("Rendering relation " + JSON.stringify(relation));
- if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") {
- const g = elem.append("g").attr("class", "cardinality");
- g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1);
- }
- if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") {
- const g = elem.append("g").attr("class", "cardinality");
- g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2);
- }
- edgeCount$1++;
- };
- const drawClass = function(elem, classDef, conf2, diagObj) {
- log$1.debug("Rendering class ", classDef, conf2);
- const id2 = classDef.id;
- const classInfo = {
- id: id2,
- label: classDef.id,
- width: 0,
- height: 0
- };
- const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id2)).attr("class", "classGroup");
- let title2;
- if (classDef.link) {
- title2 = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf2.textHeight + conf2.padding).attr("x", 0);
- } else {
- title2 = g.append("text").attr("y", conf2.textHeight + conf2.padding).attr("x", 0);
- }
- let isFirst = true;
- classDef.annotations.forEach(function(member) {
- const titleText2 = title2.append("tspan").text("«" + member + "»");
- if (!isFirst) {
- titleText2.attr("dy", conf2.textHeight);
- }
- isFirst = false;
- });
- let classTitleString = getClassTitleString(classDef);
- const classTitle = title2.append("tspan").text(classTitleString).attr("class", "title");
- if (!isFirst) {
- classTitle.attr("dy", conf2.textHeight);
- }
- const titleHeight = title2.node().getBBox().height;
- const membersLine = g.append("line").attr("x1", 0).attr("y1", conf2.padding + titleHeight + conf2.dividerMargin / 2).attr("y2", conf2.padding + titleHeight + conf2.dividerMargin / 2);
- const members = g.append("text").attr("x", conf2.padding).attr("y", titleHeight + conf2.dividerMargin + conf2.textHeight).attr("fill", "white").attr("class", "classText");
- isFirst = true;
- classDef.members.forEach(function(member) {
- addTspan(members, member, isFirst, conf2);
- isFirst = false;
- });
- const membersBox = members.node().getBBox();
- const methodsLine = g.append("line").attr("x1", 0).attr("y1", conf2.padding + titleHeight + conf2.dividerMargin + membersBox.height).attr("y2", conf2.padding + titleHeight + conf2.dividerMargin + membersBox.height);
- const methods = g.append("text").attr("x", conf2.padding).attr("y", titleHeight + 2 * conf2.dividerMargin + membersBox.height + conf2.textHeight).attr("fill", "white").attr("class", "classText");
- isFirst = true;
- classDef.methods.forEach(function(method) {
- addTspan(methods, method, isFirst, conf2);
- isFirst = false;
- });
- const classBox = g.node().getBBox();
- var cssClassStr = " ";
- if (classDef.cssClasses.length > 0) {
- cssClassStr = cssClassStr + classDef.cssClasses.join(" ");
- }
- const rect2 = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf2.padding).attr("height", classBox.height + conf2.padding + 0.5 * conf2.dividerMargin).attr("class", cssClassStr);
- const rectWidth = rect2.node().getBBox().width;
- title2.node().childNodes.forEach(function(x2) {
- x2.setAttribute("x", (rectWidth - x2.getBBox().width) / 2);
- });
- if (classDef.tooltip) {
- title2.insert("title").text(classDef.tooltip);
- }
- membersLine.attr("x2", rectWidth);
- methodsLine.attr("x2", rectWidth);
- classInfo.width = rectWidth;
- classInfo.height = classBox.height + conf2.padding + 0.5 * conf2.dividerMargin;
- return classInfo;
- };
- const getClassTitleString = function(classDef) {
- let classTitleString = classDef.id;
- if (classDef.type) {
- classTitleString += "<" + classDef.type + ">";
- }
- return classTitleString;
- };
- const drawNote$2 = function(elem, note2, conf2, diagObj) {
- log$1.debug("Rendering note ", note2, conf2);
- const id2 = note2.id;
- const noteInfo = {
- id: id2,
- text: note2.text,
- width: 0,
- height: 0
- };
- const g = elem.append("g").attr("id", id2).attr("class", "classGroup");
- let text2 = g.append("text").attr("y", conf2.textHeight + conf2.padding).attr("x", 0);
- const lines = JSON.parse(`"${note2.text}"`).split("\n");
- lines.forEach(function(line2) {
- log$1.debug(`Adding line: ${line2}`);
- text2.append("tspan").text(line2).attr("class", "title").attr("dy", conf2.textHeight);
- });
- const noteBox = g.node().getBBox();
- const rect2 = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf2.padding).attr(
- "height",
- noteBox.height + lines.length * conf2.textHeight + conf2.padding + 0.5 * conf2.dividerMargin
- );
- const rectWidth = rect2.node().getBBox().width;
- text2.node().childNodes.forEach(function(x2) {
- x2.setAttribute("x", (rectWidth - x2.getBBox().width) / 2);
- });
- noteInfo.width = rectWidth;
- noteInfo.height = noteBox.height + lines.length * conf2.textHeight + conf2.padding + 0.5 * conf2.dividerMargin;
- return noteInfo;
- };
- const parseMember = function(text2) {
- const fieldRegEx = /^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/;
- const methodRegEx = /^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/;
- let fieldMatch = text2.match(fieldRegEx);
- let methodMatch = text2.match(methodRegEx);
- if (fieldMatch && !methodMatch) {
- return buildFieldDisplay(fieldMatch);
- } else if (methodMatch) {
- return buildMethodDisplay(methodMatch);
- } else {
- return buildLegacyDisplay(text2);
- }
- };
- const buildFieldDisplay = function(parsedText) {
- let cssStyle = "";
- let displayText = "";
- try {
- let visibility = parsedText[1] ? parsedText[1].trim() : "";
- let fieldType = parsedText[2] ? parsedText[2].trim() : "";
- let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : "";
- let fieldName = parsedText[4] ? parsedText[4].trim() : "";
- let classifier = parsedText[5] ? parsedText[5].trim() : "";
- displayText = visibility + fieldType + genericType + " " + fieldName;
- cssStyle = parseClassifier(classifier);
- } catch (err) {
- displayText = parsedText;
- }
- return {
- displayText,
- cssStyle
- };
- };
- const buildMethodDisplay = function(parsedText) {
- let cssStyle = "";
- let displayText = "";
- try {
- let visibility = parsedText[1] ? parsedText[1].trim() : "";
- let methodName = parsedText[2] ? parsedText[2].trim() : "";
- let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : "";
- let classifier = parsedText[4] ? parsedText[4].trim() : "";
- let returnType = parsedText[5] ? " : " + parseGenericTypes(parsedText[5]).trim() : "";
- displayText = visibility + methodName + "(" + parameters + ")" + returnType;
- cssStyle = parseClassifier(classifier);
- } catch (err) {
- displayText = parsedText;
- }
- return {
- displayText,
- cssStyle
- };
- };
- const buildLegacyDisplay = function(text2) {
- let displayText = "";
- let cssStyle = "";
- let returnType = "";
- let visibility = "";
- let firstChar = text2.substring(0, 1);
- let lastChar = text2.substring(text2.length - 1, text2.length);
- if (firstChar.match(/[#+~-]/)) {
- visibility = firstChar;
- }
- let noClassifierRe = /[\s\w)~]/;
- if (!lastChar.match(noClassifierRe)) {
- cssStyle = parseClassifier(lastChar);
- }
- let startIndex = visibility === "" ? 0 : 1;
- let endIndex = cssStyle === "" ? text2.length : text2.length - 1;
- text2 = text2.substring(startIndex, endIndex);
- let methodStart = text2.indexOf("(");
- let methodEnd = text2.indexOf(")");
- if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text2.length) {
- let methodName = text2.substring(0, methodStart).trim();
- const parameters = text2.substring(methodStart + 1, methodEnd);
- displayText = visibility + methodName + "(" + parseGenericTypes(parameters.trim()) + ")";
- if (methodEnd < text2.length) {
- let potentialClassifier = text2.substring(methodEnd + 1, methodEnd + 2);
- if (cssStyle === "" && !potentialClassifier.match(noClassifierRe)) {
- cssStyle = parseClassifier(potentialClassifier);
- returnType = text2.substring(methodEnd + 2).trim();
- } else {
- returnType = text2.substring(methodEnd + 1).trim();
+ html(src) {
+ const cap = this.rules.block.html.exec(src);
+ if (cap) {
+ const token2 = {
+ type: "html",
+ block: true,
+ raw: cap[0],
+ pre: cap[1] === "pre" || cap[1] === "script" || cap[1] === "style",
+ text: cap[0]
+ };
+ return token2;
+ }
}
- if (returnType !== "") {
- if (returnType.charAt(0) === ":") {
- returnType = returnType.substring(1).trim();
+ def(src) {
+ const cap = this.rules.block.def.exec(src);
+ if (cap) {
+ const tag2 = cap[1].toLowerCase().replace(/\s+/g, " ");
+ const href = cap[2] ? cap[2].replace(/^<(.*)>$/, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "";
+ const title2 = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : cap[3];
+ return {
+ type: "def",
+ tag: tag2,
+ raw: cap[0],
+ href,
+ title: title2
+ };
}
- returnType = " : " + parseGenericTypes(returnType);
- displayText += returnType;
}
- }
- } else {
- displayText = parseGenericTypes(text2);
- }
- return {
- displayText,
- cssStyle
- };
- };
- const addTspan = function(textEl, txt, isFirst, conf2) {
- let member = parseMember(txt);
- const tSpan = textEl.append("tspan").attr("x", conf2.padding).text(member.displayText);
- if (member.cssStyle !== "") {
- tSpan.attr("style", member.cssStyle);
- }
- if (!isFirst) {
- tSpan.attr("dy", conf2.textHeight);
- }
- };
- const parseClassifier = function(classifier) {
- switch (classifier) {
- case "*":
- return "font-style:italic;";
- case "$":
- return "text-decoration:underline;";
- default:
- return "";
- }
- };
- const svgDraw$4 = {
- getClassTitleString,
- drawClass,
- drawEdge: drawEdge$2,
- drawNote: drawNote$2,
- parseMember
- };
- const question = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const s = w2 + h;
- const points = [
- { x: s / 2, y: 0 },
- { x: s, y: -s / 2 },
- { x: s / 2, y: -s },
- { x: 0, y: -s / 2 }
- ];
- log$1.info("Question main (Circle)");
- const questionElem = insertPolygonShape$1(shapeSvg, s, s, points);
- questionElem.attr("style", node2.style);
- updateNodeBounds(node2, questionElem);
- node2.intersect = function(point2) {
- log$1.warn("Intersect called");
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const choice = (parent, node2) => {
- const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
- const s = 28;
- const points = [
- { x: 0, y: s / 2 },
- { x: s / 2, y: 0 },
- { x: 0, y: -s / 2 },
- { x: -s / 2, y: 0 }
- ];
- const choice2 = shapeSvg.insert("polygon", ":first-child").attr(
- "points",
- points.map(function(d) {
- return d.x + "," + d.y;
- }).join(" ")
- );
- choice2.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28);
- node2.width = 28;
- node2.height = 28;
- node2.intersect = function(point2) {
- return intersect.circle(node2, 14, point2);
- };
- return shapeSvg;
- };
- const hexagon = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const f2 = 4;
- const h = bbox.height + node2.padding;
- const m = h / f2;
- const w2 = bbox.width + 2 * m + node2.padding;
- const points = [
- { x: m, y: 0 },
- { x: w2 - m, y: 0 },
- { x: w2, y: -h / 2 },
- { x: w2 - m, y: -h },
- { x: m, y: -h },
- { x: 0, y: -h / 2 }
- ];
- const hex2 = insertPolygonShape$1(shapeSvg, w2, h, points);
- hex2.attr("style", node2.style);
- updateNodeBounds(node2, hex2);
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const rect_left_inv_arrow = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const points = [
- { x: -h / 2, y: 0 },
- { x: w2, y: 0 },
- { x: w2, y: -h },
- { x: -h / 2, y: -h },
- { x: 0, y: -h / 2 }
- ];
- const el = insertPolygonShape$1(shapeSvg, w2, h, points);
- el.attr("style", node2.style);
- node2.width = w2 + h;
- node2.height = h;
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const lean_right = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const points = [
- { x: -2 * h / 6, y: 0 },
- { x: w2 - h / 6, y: 0 },
- { x: w2 + 2 * h / 6, y: -h },
- { x: h / 6, y: -h }
- ];
- const el = insertPolygonShape$1(shapeSvg, w2, h, points);
- el.attr("style", node2.style);
- updateNodeBounds(node2, el);
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const lean_left = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const points = [
- { x: 2 * h / 6, y: 0 },
- { x: w2 + h / 6, y: 0 },
- { x: w2 - 2 * h / 6, y: -h },
- { x: -h / 6, y: -h }
- ];
- const el = insertPolygonShape$1(shapeSvg, w2, h, points);
- el.attr("style", node2.style);
- updateNodeBounds(node2, el);
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const trapezoid = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const points = [
- { x: -2 * h / 6, y: 0 },
- { x: w2 + 2 * h / 6, y: 0 },
- { x: w2 - h / 6, y: -h },
- { x: h / 6, y: -h }
- ];
- const el = insertPolygonShape$1(shapeSvg, w2, h, points);
- el.attr("style", node2.style);
- updateNodeBounds(node2, el);
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const inv_trapezoid = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const points = [
- { x: h / 6, y: 0 },
- { x: w2 - h / 6, y: 0 },
- { x: w2 + 2 * h / 6, y: -h },
- { x: -2 * h / 6, y: -h }
- ];
- const el = insertPolygonShape$1(shapeSvg, w2, h, points);
- el.attr("style", node2.style);
- updateNodeBounds(node2, el);
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const rect_right_inv_arrow = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const points = [
- { x: 0, y: 0 },
- { x: w2 + h / 2, y: 0 },
- { x: w2, y: -h / 2 },
- { x: w2 + h / 2, y: -h },
- { x: 0, y: -h }
- ];
- const el = insertPolygonShape$1(shapeSvg, w2, h, points);
- el.attr("style", node2.style);
- updateNodeBounds(node2, el);
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const cylinder = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const rx = w2 / 2;
- const ry = rx / (2.5 + w2 / 50);
- const h = bbox.height + ry + node2.padding;
- const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 a " + rx + "," + ry + " 0,0,0 " + -w2 + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 l 0," + -h;
- const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node2.style).attr("d", shape).attr("transform", "translate(" + -w2 / 2 + "," + -(h / 2 + ry) + ")");
- updateNodeBounds(node2, el);
- node2.intersect = function(point2) {
- const pos = intersect.rect(node2, point2);
- const x2 = pos.x - node2.x;
- if (rx != 0 && (Math.abs(x2) < node2.width / 2 || Math.abs(x2) == node2.width / 2 && Math.abs(pos.y - node2.y) > node2.height / 2 - ry)) {
- let y2 = ry * ry * (1 - x2 * x2 / (rx * rx));
- if (y2 != 0) {
- y2 = Math.sqrt(y2);
- }
- y2 = ry - y2;
- if (point2.y - node2.y > 0) {
- y2 = -y2;
- }
- pos.y += y2;
- }
- return pos;
- };
- return shapeSvg;
- };
- const rect$1 = async (parent, node2) => {
- const { shapeSvg, bbox, halfPadding } = await labelHelper(
- parent,
- node2,
- "node " + node2.classes,
- true
- );
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const totalWidth = bbox.width + node2.padding;
- const totalHeight = bbox.height + node2.padding;
- rect2.attr("class", "basic label-container").attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", totalWidth).attr("height", totalHeight);
- if (node2.props) {
- const propKeys = new Set(Object.keys(node2.props));
- if (node2.props.borders) {
- applyNodePropertyBorders(rect2, node2.props.borders, totalWidth, totalHeight);
- propKeys.delete("borders");
- }
- propKeys.forEach((propKey) => {
- log$1.warn(`Unknown node property ${propKey}`);
- });
- }
- updateNodeBounds(node2, rect2);
- node2.intersect = function(point2) {
- return intersect.rect(node2, point2);
- };
- return shapeSvg;
- };
- const labelRect = async (parent, node2) => {
- const { shapeSvg } = await labelHelper(parent, node2, "label", true);
- log$1.trace("Classes = ", node2.classes);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const totalWidth = 0;
- const totalHeight = 0;
- rect2.attr("width", totalWidth).attr("height", totalHeight);
- shapeSvg.attr("class", "label edgeLabel");
- if (node2.props) {
- const propKeys = new Set(Object.keys(node2.props));
- if (node2.props.borders) {
- applyNodePropertyBorders(rect2, node2.props.borders, totalWidth, totalHeight);
- propKeys.delete("borders");
- }
- propKeys.forEach((propKey) => {
- log$1.warn(`Unknown node property ${propKey}`);
- });
- }
- updateNodeBounds(node2, rect2);
- node2.intersect = function(point2) {
- return intersect.rect(node2, point2);
- };
- return shapeSvg;
- };
- function applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {
- const strokeDashArray = [];
- const addBorder = (length2) => {
- strokeDashArray.push(length2, 0);
- };
- const skipBorder = (length2) => {
- strokeDashArray.push(0, length2);
- };
- if (borders.includes("t")) {
- log$1.debug("add top border");
- addBorder(totalWidth);
- } else {
- skipBorder(totalWidth);
- }
- if (borders.includes("r")) {
- log$1.debug("add right border");
- addBorder(totalHeight);
- } else {
- skipBorder(totalHeight);
- }
- if (borders.includes("b")) {
- log$1.debug("add bottom border");
- addBorder(totalWidth);
- } else {
- skipBorder(totalWidth);
- }
- if (borders.includes("l")) {
- log$1.debug("add left border");
- addBorder(totalHeight);
- } else {
- skipBorder(totalHeight);
- }
- rect2.attr("stroke-dasharray", strokeDashArray.join(" "));
- }
- const rectWithTitle = (parent, node2) => {
- let classes2;
- if (!node2.classes) {
- classes2 = "node default";
- } else {
- classes2 = "node " + node2.classes;
- }
- const shapeSvg = parent.insert("g").attr("class", classes2).attr("id", node2.domId || node2.id);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const innerLine = shapeSvg.insert("line");
- const label = shapeSvg.insert("g").attr("class", "label");
- const text2 = node2.labelText.flat ? node2.labelText.flat() : node2.labelText;
- let title2 = "";
- if (typeof text2 === "object") {
- title2 = text2[0];
- } else {
- title2 = text2;
- }
- log$1.info("Label text abc79", title2, text2, typeof text2 === "object");
- const text3 = label.node().appendChild(createLabel$1(title2, node2.labelStyle, true, true));
- let bbox = { width: 0, height: 0 };
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = text3.children[0];
- const dv = select(text3);
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- log$1.info("Text 2", text2);
- const textRows = text2.slice(1, text2.length);
- let titleBox = text3.getBBox();
- const descr = label.node().appendChild(
- createLabel$1(textRows.join ? textRows.join("
") : textRows, node2.labelStyle, true, true)
- );
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = descr.children[0];
- const dv = select(descr);
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- const halfPadding = node2.padding / 2;
- select(descr).attr(
- "transform",
- "translate( " + // (titleBox.width - bbox.width) / 2 +
- (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")"
- );
- select(text3).attr(
- "transform",
- "translate( " + // (titleBox.width - bbox.width) / 2 +
- (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", 0)"
- );
- bbox = label.node().getBBox();
- label.attr(
- "transform",
- "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")"
- );
- rect2.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
- innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
- updateNodeBounds(node2, rect2);
- node2.intersect = function(point2) {
- return intersect.rect(node2, point2);
- };
- return shapeSvg;
- };
- const stadium = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const h = bbox.height + node2.padding;
- const w2 = bbox.width + h / 4 + node2.padding;
- const rect2 = shapeSvg.insert("rect", ":first-child").attr("style", node2.style).attr("rx", h / 2).attr("ry", h / 2).attr("x", -w2 / 2).attr("y", -h / 2).attr("width", w2).attr("height", h);
- updateNodeBounds(node2, rect2);
- node2.intersect = function(point2) {
- return intersect.rect(node2, point2);
- };
- return shapeSvg;
- };
- const circle = async (parent, node2) => {
- const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node2, void 0, true);
- const circle2 = shapeSvg.insert("circle", ":first-child");
- circle2.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
- log$1.info("Circle main");
- updateNodeBounds(node2, circle2);
- node2.intersect = function(point2) {
- log$1.info("Circle intersect", node2, bbox.width / 2 + halfPadding, point2);
- return intersect.circle(node2, bbox.width / 2 + halfPadding, point2);
- };
- return shapeSvg;
- };
- const doublecircle = async (parent, node2) => {
- const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node2, void 0, true);
- const gap = 5;
- const circleGroup = shapeSvg.insert("g", ":first-child");
- const outerCircle = circleGroup.insert("circle");
- const innerCircle = circleGroup.insert("circle");
- outerCircle.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node2.padding + gap * 2).attr("height", bbox.height + node2.padding + gap * 2);
- innerCircle.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
- log$1.info("DoubleCircle main");
- updateNodeBounds(node2, outerCircle);
- node2.intersect = function(point2) {
- log$1.info("DoubleCircle intersect", node2, bbox.width / 2 + halfPadding + gap, point2);
- return intersect.circle(node2, bbox.width / 2 + halfPadding + gap, point2);
- };
- return shapeSvg;
- };
- const subroutine = async (parent, node2) => {
- const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
- const w2 = bbox.width + node2.padding;
- const h = bbox.height + node2.padding;
- const points = [
- { x: 0, y: 0 },
- { x: w2, y: 0 },
- { x: w2, y: -h },
- { x: 0, y: -h },
- { x: 0, y: 0 },
- { x: -8, y: 0 },
- { x: w2 + 8, y: 0 },
- { x: w2 + 8, y: -h },
- { x: -8, y: -h },
- { x: -8, y: 0 }
- ];
- const el = insertPolygonShape$1(shapeSvg, w2, h, points);
- el.attr("style", node2.style);
- updateNodeBounds(node2, el);
- node2.intersect = function(point2) {
- return intersect.polygon(node2, points, point2);
- };
- return shapeSvg;
- };
- const start = (parent, node2) => {
- const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
- const circle2 = shapeSvg.insert("circle", ":first-child");
- circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
- updateNodeBounds(node2, circle2);
- node2.intersect = function(point2) {
- return intersect.circle(node2, 7, point2);
- };
- return shapeSvg;
- };
- const forkJoin = (parent, node2, dir) => {
- const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
- let width2 = 70;
- let height2 = 10;
- if (dir === "LR") {
- width2 = 10;
- height2 = 70;
- }
- const shape = shapeSvg.append("rect").attr("x", -1 * width2 / 2).attr("y", -1 * height2 / 2).attr("width", width2).attr("height", height2).attr("class", "fork-join");
- updateNodeBounds(node2, shape);
- node2.height = node2.height + node2.padding / 2;
- node2.width = node2.width + node2.padding / 2;
- node2.intersect = function(point2) {
- return intersect.rect(node2, point2);
- };
- return shapeSvg;
- };
- const end = (parent, node2) => {
- const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
- const innerCircle = shapeSvg.insert("circle", ":first-child");
- const circle2 = shapeSvg.insert("circle", ":first-child");
- circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
- innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10);
- updateNodeBounds(node2, circle2);
- node2.intersect = function(point2) {
- return intersect.circle(node2, 7, point2);
- };
- return shapeSvg;
- };
- const class_box = (parent, node2) => {
- const halfPadding = node2.padding / 2;
- const rowPadding = 4;
- const lineHeight = 8;
- let classes2;
- if (!node2.classes) {
- classes2 = "node default";
- } else {
- classes2 = "node " + node2.classes;
- }
- const shapeSvg = parent.insert("g").attr("class", classes2).attr("id", node2.domId || node2.id);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const topLine = shapeSvg.insert("line");
- const bottomLine = shapeSvg.insert("line");
- let maxWidth = 0;
- let maxHeight = rowPadding;
- const labelContainer = shapeSvg.insert("g").attr("class", "label");
- let verticalPos = 0;
- const hasInterface = node2.classData.annotations && node2.classData.annotations[0];
- const interfaceLabelText = node2.classData.annotations[0] ? "«" + node2.classData.annotations[0] + "»" : "";
- const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node2.labelStyle, true, true));
- let interfaceBBox = interfaceLabel.getBBox();
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = interfaceLabel.children[0];
- const dv = select(interfaceLabel);
- interfaceBBox = div.getBoundingClientRect();
- dv.attr("width", interfaceBBox.width);
- dv.attr("height", interfaceBBox.height);
- }
- if (node2.classData.annotations[0]) {
- maxHeight += interfaceBBox.height + rowPadding;
- maxWidth += interfaceBBox.width;
- }
- let classTitleString = node2.classData.label;
- if (node2.classData.type !== void 0 && node2.classData.type !== "") {
- if (getConfig$1().flowchart.htmlLabels) {
- classTitleString += "<" + node2.classData.type + ">";
- } else {
- classTitleString += "<" + node2.classData.type + ">";
- }
- }
- const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node2.labelStyle, true, true));
- select(classTitleLabel).attr("class", "classTitle");
- let classTitleBBox = classTitleLabel.getBBox();
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = classTitleLabel.children[0];
- const dv = select(classTitleLabel);
- classTitleBBox = div.getBoundingClientRect();
- dv.attr("width", classTitleBBox.width);
- dv.attr("height", classTitleBBox.height);
- }
- maxHeight += classTitleBBox.height + rowPadding;
- if (classTitleBBox.width > maxWidth) {
- maxWidth = classTitleBBox.width;
- }
- const classAttributes = [];
- node2.classData.members.forEach((str2) => {
- const parsedInfo = parseMember(str2);
- let parsedText = parsedInfo.displayText;
- if (getConfig$1().flowchart.htmlLabels) {
- parsedText = parsedText.replace(//g, ">");
- }
- const lbl = labelContainer.node().appendChild(
- createLabel$1(
- parsedText,
- parsedInfo.cssStyle ? parsedInfo.cssStyle : node2.labelStyle,
- true,
- true
- )
- );
- let bbox = lbl.getBBox();
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = lbl.children[0];
- const dv = select(lbl);
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- if (bbox.width > maxWidth) {
- maxWidth = bbox.width;
- }
- maxHeight += bbox.height + rowPadding;
- classAttributes.push(lbl);
- });
- maxHeight += lineHeight;
- const classMethods = [];
- node2.classData.methods.forEach((str2) => {
- const parsedInfo = parseMember(str2);
- let displayText = parsedInfo.displayText;
- if (getConfig$1().flowchart.htmlLabels) {
- displayText = displayText.replace(//g, ">");
- }
- const lbl = labelContainer.node().appendChild(
- createLabel$1(
- displayText,
- parsedInfo.cssStyle ? parsedInfo.cssStyle : node2.labelStyle,
- true,
- true
- )
- );
- let bbox = lbl.getBBox();
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = lbl.children[0];
- const dv = select(lbl);
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- if (bbox.width > maxWidth) {
- maxWidth = bbox.width;
- }
- maxHeight += bbox.height + rowPadding;
- classMethods.push(lbl);
- });
- maxHeight += lineHeight;
- if (hasInterface) {
- let diffX2 = (maxWidth - interfaceBBox.width) / 2;
- select(interfaceLabel).attr(
- "transform",
- "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")"
- );
- verticalPos = interfaceBBox.height + rowPadding;
- }
- let diffX = (maxWidth - classTitleBBox.width) / 2;
- select(classTitleLabel).attr(
- "transform",
- "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
- );
- verticalPos += classTitleBBox.height + rowPadding;
- topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
- verticalPos += lineHeight;
- classAttributes.forEach((lbl) => {
- select(lbl).attr(
- "transform",
- "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")"
- );
- verticalPos += classTitleBBox.height + rowPadding;
- });
- verticalPos += lineHeight;
- bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
- verticalPos += lineHeight;
- classMethods.forEach((lbl) => {
- select(lbl).attr(
- "transform",
- "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
- );
- verticalPos += classTitleBBox.height + rowPadding;
- });
- rect2.attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node2.padding).attr("height", maxHeight + node2.padding);
- updateNodeBounds(node2, rect2);
- node2.intersect = function(point2) {
- return intersect.rect(node2, point2);
- };
- return shapeSvg;
- };
- const shapes$1 = {
- rhombus: question,
- question,
- rect: rect$1,
- labelRect,
- rectWithTitle,
- choice,
- circle,
- doublecircle,
- stadium,
- hexagon,
- rect_left_inv_arrow,
- lean_right,
- lean_left,
- trapezoid,
- inv_trapezoid,
- rect_right_inv_arrow,
- cylinder,
- start,
- end,
- note: note$1,
- subroutine,
- fork: forkJoin,
- join: forkJoin,
- class_box
- };
- let nodeElems = {};
- const insertNode = async (elem, node2, dir) => {
- let newEl;
- let el;
- if (node2.link) {
- let target;
- if (getConfig$1().securityLevel === "sandbox") {
- target = "_top";
- } else if (node2.linkTarget) {
- target = node2.linkTarget || "_blank";
- }
- newEl = elem.insert("svg:a").attr("xlink:href", node2.link).attr("target", target);
- el = await shapes$1[node2.shape](newEl, node2, dir);
- } else {
- el = await shapes$1[node2.shape](elem, node2, dir);
- newEl = el;
- }
- if (node2.tooltip) {
- el.attr("title", node2.tooltip);
- }
- if (node2.class) {
- el.attr("class", "node default " + node2.class);
- }
- nodeElems[node2.id] = newEl;
- if (node2.haveCallback) {
- nodeElems[node2.id].attr("class", nodeElems[node2.id].attr("class") + " clickable");
- }
- return newEl;
- };
- const setNodeElem = (elem, node2) => {
- nodeElems[node2.id] = elem;
- };
- const clear$e = () => {
- nodeElems = {};
- };
- const positionNode$1 = (node2) => {
- const el = nodeElems[node2.id];
- log$1.trace(
- "Transforming node",
- node2.diff,
- node2,
- "translate(" + (node2.x - node2.width / 2 - 5) + ", " + node2.width / 2 + ")"
- );
- const padding2 = 8;
- const diff = node2.diff || 0;
- if (node2.clusterNode) {
- el.attr(
- "transform",
- "translate(" + (node2.x + diff - node2.width / 2) + ", " + (node2.y - node2.height / 2 - padding2) + ")"
- );
- } else {
- el.attr("transform", "translate(" + node2.x + ", " + node2.y + ")");
- }
- return diff;
- };
- const rect = (parent, node2) => {
- log$1.info("Creating subgraph rect for ", node2.id, node2);
- const shapeSvg = parent.insert("g").attr("class", "cluster" + (node2.class ? " " + node2.class : "")).attr("id", node2.id);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const useHtmlLabels = evaluate(getConfig$1().flowchart.htmlLabels);
- const label = shapeSvg.insert("g").attr("class", "cluster-label");
- const text2 = node2.labelType === "markdown" ? createText(label, node2.labelText, { style: node2.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel$1(node2.labelText, node2.labelStyle, void 0, true));
- let bbox = text2.getBBox();
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = text2.children[0];
- const dv = select(text2);
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- const padding2 = 0 * node2.padding;
- const halfPadding = padding2 / 2;
- const width2 = node2.width <= bbox.width + padding2 ? bbox.width + padding2 : node2.width;
- if (node2.width <= bbox.width + padding2) {
- node2.diff = (bbox.width - node2.width) / 2 - node2.padding / 2;
- } else {
- node2.diff = -node2.padding / 2;
- }
- log$1.trace("Data ", node2, JSON.stringify(node2));
- rect2.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", node2.x - width2 / 2).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", width2).attr("height", node2.height + padding2);
- if (useHtmlLabels) {
- label.attr(
- "transform",
- // This puts the labal on top of the box instead of inside it
- "translate(" + (node2.x - bbox.width / 2) + ", " + (node2.y - node2.height / 2) + ")"
- );
- } else {
- label.attr(
- "transform",
- // This puts the labal on top of the box instead of inside it
- "translate(" + node2.x + ", " + (node2.y - node2.height / 2) + ")"
- );
- }
- const rectBox = rect2.node().getBBox();
- node2.width = rectBox.width;
- node2.height = rectBox.height;
- node2.intersect = function(point2) {
- return intersectRect$1(node2, point2);
- };
- return shapeSvg;
- };
- const noteGroup = (parent, node2) => {
- const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node2.id);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const padding2 = 0 * node2.padding;
- const halfPadding = padding2 / 2;
- rect2.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", node2.x - node2.width / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", node2.width + padding2).attr("height", node2.height + padding2).attr("fill", "none");
- const rectBox = rect2.node().getBBox();
- node2.width = rectBox.width;
- node2.height = rectBox.height;
- node2.intersect = function(point2) {
- return intersectRect$1(node2, point2);
- };
- return shapeSvg;
- };
- const roundedWithTitle = (parent, node2) => {
- const shapeSvg = parent.insert("g").attr("class", node2.classes).attr("id", node2.id);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const label = shapeSvg.insert("g").attr("class", "cluster-label");
- const innerRect = shapeSvg.append("rect");
- const text2 = label.node().appendChild(createLabel$1(node2.labelText, node2.labelStyle, void 0, true));
- let bbox = text2.getBBox();
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const div = text2.children[0];
- const dv = select(text2);
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- bbox = text2.getBBox();
- const padding2 = 0 * node2.padding;
- const halfPadding = padding2 / 2;
- const width2 = node2.width <= bbox.width + node2.padding ? bbox.width + node2.padding : node2.width;
- if (node2.width <= bbox.width + node2.padding) {
- node2.diff = (bbox.width + node2.padding * 0 - node2.width) / 2;
- } else {
- node2.diff = -node2.padding / 2;
- }
- rect2.attr("class", "outer").attr("x", node2.x - width2 / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", width2 + padding2).attr("height", node2.height + padding2);
- innerRect.attr("class", "inner").attr("x", node2.x - width2 / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding + bbox.height - 1).attr("width", width2 + padding2).attr("height", node2.height + padding2 - bbox.height - 3);
- label.attr(
- "transform",
- "translate(" + (node2.x - bbox.width / 2) + ", " + (node2.y - node2.height / 2 - node2.padding / 3 + (evaluate(getConfig$1().flowchart.htmlLabels) ? 5 : 3)) + ")"
- );
- const rectBox = rect2.node().getBBox();
- node2.height = rectBox.height;
- node2.intersect = function(point2) {
- return intersectRect$1(node2, point2);
- };
- return shapeSvg;
- };
- const divider = (parent, node2) => {
- const shapeSvg = parent.insert("g").attr("class", node2.classes).attr("id", node2.id);
- const rect2 = shapeSvg.insert("rect", ":first-child");
- const padding2 = 0 * node2.padding;
- const halfPadding = padding2 / 2;
- rect2.attr("class", "divider").attr("x", node2.x - node2.width / 2 - halfPadding).attr("y", node2.y - node2.height / 2).attr("width", node2.width + padding2).attr("height", node2.height + padding2);
- const rectBox = rect2.node().getBBox();
- node2.width = rectBox.width;
- node2.height = rectBox.height;
- node2.diff = -node2.padding / 2;
- node2.intersect = function(point2) {
- return intersectRect$1(node2, point2);
- };
- return shapeSvg;
- };
- const shapes = { rect, roundedWithTitle, noteGroup, divider };
- let clusterElems = {};
- const insertCluster = (elem, node2) => {
- log$1.trace("Inserting cluster");
- const shape = node2.shape || "rect";
- clusterElems[node2.id] = shapes[shape](elem, node2);
- };
- const clear$d = () => {
- clusterElems = {};
- };
- let edgeLabels = {};
- let terminalLabels = {};
- const clear$c = () => {
- edgeLabels = {};
- terminalLabels = {};
- };
- const insertEdgeLabel = (elem, edge) => {
- const useHtmlLabels = evaluate(getConfig$1().flowchart.htmlLabels);
- const labelElement = edge.labelType === "markdown" ? createText(elem, edge.label, {
- style: edge.labelStyle,
- useHtmlLabels,
- addSvgBackground: true
- }) : createLabel$1(edge.label, edge.labelStyle);
- log$1.info("abc82", edge, edge.labelType);
- const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
- const label = edgeLabel.insert("g").attr("class", "label");
- label.node().appendChild(labelElement);
- let bbox = labelElement.getBBox();
- if (useHtmlLabels) {
- const div = labelElement.children[0];
- const dv = select(labelElement);
- bbox = div.getBoundingClientRect();
- dv.attr("width", bbox.width);
- dv.attr("height", bbox.height);
- }
- label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
- edgeLabels[edge.id] = edgeLabel;
- edge.width = bbox.width;
- edge.height = bbox.height;
- let fo;
- if (edge.startLabelLeft) {
- const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);
- const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
- const inner = startEdgeLabelLeft.insert("g").attr("class", "inner");
- fo = inner.node().appendChild(startLabelElement);
- const slBox = startLabelElement.getBBox();
- inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
- if (!terminalLabels[edge.id]) {
- terminalLabels[edge.id] = {};
- }
- terminalLabels[edge.id].startLeft = startEdgeLabelLeft;
- setTerminalWidth(fo, edge.startLabelLeft);
- }
- if (edge.startLabelRight) {
- const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);
- const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
- const inner = startEdgeLabelRight.insert("g").attr("class", "inner");
- fo = startEdgeLabelRight.node().appendChild(startLabelElement);
- inner.node().appendChild(startLabelElement);
- const slBox = startLabelElement.getBBox();
- inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
- if (!terminalLabels[edge.id]) {
- terminalLabels[edge.id] = {};
- }
- terminalLabels[edge.id].startRight = startEdgeLabelRight;
- setTerminalWidth(fo, edge.startLabelRight);
- }
- if (edge.endLabelLeft) {
- const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);
- const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
- const inner = endEdgeLabelLeft.insert("g").attr("class", "inner");
- fo = inner.node().appendChild(endLabelElement);
- const slBox = endLabelElement.getBBox();
- inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
- endEdgeLabelLeft.node().appendChild(endLabelElement);
- if (!terminalLabels[edge.id]) {
- terminalLabels[edge.id] = {};
- }
- terminalLabels[edge.id].endLeft = endEdgeLabelLeft;
- setTerminalWidth(fo, edge.endLabelLeft);
- }
- if (edge.endLabelRight) {
- const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);
- const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
- const inner = endEdgeLabelRight.insert("g").attr("class", "inner");
- fo = inner.node().appendChild(endLabelElement);
- const slBox = endLabelElement.getBBox();
- inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
- endEdgeLabelRight.node().appendChild(endLabelElement);
- if (!terminalLabels[edge.id]) {
- terminalLabels[edge.id] = {};
- }
- terminalLabels[edge.id].endRight = endEdgeLabelRight;
- setTerminalWidth(fo, edge.endLabelRight);
- }
- return labelElement;
- };
- function setTerminalWidth(fo, value) {
- if (getConfig$1().flowchart.htmlLabels && fo) {
- fo.style.width = value.length * 9 + "px";
- fo.style.height = "12px";
- }
- }
- const positionEdgeLabel = (edge, paths) => {
- log$1.info("Moving label abc78 ", edge.id, edge.label, edgeLabels[edge.id]);
- let path2 = paths.updatedPath ? paths.updatedPath : paths.originalPath;
- if (edge.label) {
- const el = edgeLabels[edge.id];
- let x2 = edge.x;
- let y2 = edge.y;
- if (path2) {
- const pos = utils.calcLabelPosition(path2);
- log$1.info(
- "Moving label " + edge.label + " from (",
- x2,
- ",",
- y2,
- ") to (",
- pos.x,
- ",",
- pos.y,
- ") abc78"
- );
- if (paths.updatedPath) {
- x2 = pos.x;
- y2 = pos.y;
- }
- }
- el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
- }
- if (edge.startLabelLeft) {
- const el = terminalLabels[edge.id].startLeft;
- let x2 = edge.x;
- let y2 = edge.y;
- if (path2) {
- const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path2);
- x2 = pos.x;
- y2 = pos.y;
- }
- el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
- }
- if (edge.startLabelRight) {
- const el = terminalLabels[edge.id].startRight;
- let x2 = edge.x;
- let y2 = edge.y;
- if (path2) {
- const pos = utils.calcTerminalLabelPosition(
- edge.arrowTypeStart ? 10 : 0,
- "start_right",
- path2
- );
- x2 = pos.x;
- y2 = pos.y;
- }
- el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
- }
- if (edge.endLabelLeft) {
- const el = terminalLabels[edge.id].endLeft;
- let x2 = edge.x;
- let y2 = edge.y;
- if (path2) {
- const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path2);
- x2 = pos.x;
- y2 = pos.y;
- }
- el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
- }
- if (edge.endLabelRight) {
- const el = terminalLabels[edge.id].endRight;
- let x2 = edge.x;
- let y2 = edge.y;
- if (path2) {
- const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path2);
- x2 = pos.x;
- y2 = pos.y;
- }
- el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
- }
- };
- const outsideNode = (node2, point2) => {
- const x2 = node2.x;
- const y2 = node2.y;
- const dx = Math.abs(point2.x - x2);
- const dy = Math.abs(point2.y - y2);
- const w2 = node2.width / 2;
- const h = node2.height / 2;
- if (dx >= w2 || dy >= h) {
- return true;
- }
- return false;
- };
- const intersection = (node2, outsidePoint, insidePoint) => {
- log$1.warn(`intersection calc abc89:
- outsidePoint: ${JSON.stringify(outsidePoint)}
- insidePoint : ${JSON.stringify(insidePoint)}
- node : x:${node2.x} y:${node2.y} w:${node2.width} h:${node2.height}`);
- const x2 = node2.x;
- const y2 = node2.y;
- const dx = Math.abs(x2 - insidePoint.x);
- const w2 = node2.width / 2;
- let r = insidePoint.x < outsidePoint.x ? w2 - dx : w2 + dx;
- const h = node2.height / 2;
- const Q2 = Math.abs(outsidePoint.y - insidePoint.y);
- const R = Math.abs(outsidePoint.x - insidePoint.x);
- if (Math.abs(y2 - outsidePoint.y) * w2 > Math.abs(x2 - outsidePoint.x) * h) {
- let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y2 : y2 - h - outsidePoint.y;
- r = R * q / Q2;
- const res = {
- x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,
- y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q2 - q : insidePoint.y - Q2 + q
- };
- if (r === 0) {
- res.x = outsidePoint.x;
- res.y = outsidePoint.y;
- }
- if (R === 0) {
- res.x = outsidePoint.x;
- }
- if (Q2 === 0) {
- res.y = outsidePoint.y;
- }
- log$1.warn(`abc89 topp/bott calc, Q ${Q2}, q ${q}, R ${R}, r ${r}`, res);
- return res;
- } else {
- if (insidePoint.x < outsidePoint.x) {
- r = outsidePoint.x - w2 - x2;
- } else {
- r = x2 - w2 - outsidePoint.x;
- }
- let q = Q2 * r / R;
- let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;
- let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;
- log$1.warn(`sides calc abc89, Q ${Q2}, q ${q}, R ${R}, r ${r}`, { _x, _y });
- if (r === 0) {
- _x = outsidePoint.x;
- _y = outsidePoint.y;
- }
- if (R === 0) {
- _x = outsidePoint.x;
- }
- if (Q2 === 0) {
- _y = outsidePoint.y;
- }
- return { x: _x, y: _y };
- }
- };
- const cutPathAtIntersect = (_points, boundryNode) => {
- log$1.warn("abc88 cutPathAtIntersect", _points, boundryNode);
- let points = [];
- let lastPointOutside = _points[0];
- let isInside = false;
- _points.forEach((point2) => {
- log$1.info("abc88 checking point", point2, boundryNode);
- if (!outsideNode(boundryNode, point2) && !isInside) {
- const inter = intersection(boundryNode, lastPointOutside, point2);
- log$1.warn("abc88 inside", point2, lastPointOutside, inter);
- log$1.warn("abc88 intersection", inter);
- let pointPresent = false;
- points.forEach((p) => {
- pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
- });
- if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {
- points.push(inter);
- } else {
- log$1.warn("abc88 no intersect", inter, points);
+ table(src) {
+ const cap = this.rules.block.table.exec(src);
+ if (!cap) {
+ return;
+ }
+ if (!/[:|]/.test(cap[2])) {
+ return;
+ }
+ const headers = splitCells(cap[1]);
+ const aligns = cap[2].replace(/^\||\| *$/g, "").split("|");
+ const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\n[ \t]*$/, "").split("\n") : [];
+ const item = {
+ type: "table",
+ raw: cap[0],
+ header: [],
+ align: [],
+ rows: []
+ };
+ if (headers.length !== aligns.length) {
+ return;
+ }
+ for (const align of aligns) {
+ if (/^ *-+: *$/.test(align)) {
+ item.align.push("right");
+ } else if (/^ *:-+: *$/.test(align)) {
+ item.align.push("center");
+ } else if (/^ *:-+ *$/.test(align)) {
+ item.align.push("left");
+ } else {
+ item.align.push(null);
+ }
+ }
+ for (let i2 = 0; i2 < headers.length; i2++) {
+ item.header.push({
+ text: headers[i2],
+ tokens: this.lexer.inline(headers[i2]),
+ header: true,
+ align: item.align[i2]
+ });
+ }
+ for (const row of rows) {
+ item.rows.push(splitCells(row, item.header.length).map((cell, i2) => {
+ return {
+ text: cell,
+ tokens: this.lexer.inline(cell),
+ header: false,
+ align: item.align[i2]
+ };
+ }));
+ }
+ return item;
}
- isInside = true;
- } else {
- log$1.warn("abc88 outside", point2, lastPointOutside);
- lastPointOutside = point2;
- if (!isInside) {
- points.push(point2);
+ lheading(src) {
+ const cap = this.rules.block.lheading.exec(src);
+ if (cap) {
+ return {
+ type: "heading",
+ raw: cap[0],
+ depth: cap[2].charAt(0) === "=" ? 1 : 2,
+ text: cap[1],
+ tokens: this.lexer.inline(cap[1])
+ };
+ }
}
- }
- });
- log$1.warn("abc88 returning points", points);
- return points;
- };
- const insertEdge$1 = function(elem, e, edge, clusterDb2, diagramType, graph) {
- let points = edge.points;
- let pointsHasChanged = false;
- const tail = graph.node(e.v);
- var head2 = graph.node(e.w);
- log$1.info("abc88 InsertEdge: ", edge);
- if (head2.intersect && tail.intersect) {
- points = points.slice(1, edge.points.length - 1);
- points.unshift(tail.intersect(points[0]));
- log$1.info(
- "Last point",
- points[points.length - 1],
- head2,
- head2.intersect(points[points.length - 1])
- );
- points.push(head2.intersect(points[points.length - 1]));
- }
- if (edge.toCluster) {
- log$1.info("to cluster abc88", clusterDb2[edge.toCluster]);
- points = cutPathAtIntersect(edge.points, clusterDb2[edge.toCluster].node);
- pointsHasChanged = true;
- }
- if (edge.fromCluster) {
- log$1.info("from cluster abc88", clusterDb2[edge.fromCluster]);
- points = cutPathAtIntersect(points.reverse(), clusterDb2[edge.fromCluster].node).reverse();
- pointsHasChanged = true;
- }
- const lineData = points.filter((p) => !Number.isNaN(p.y));
- let curve;
- if (diagramType === "graph" || diagramType === "flowchart") {
- curve = edge.curve || curveBasis;
- } else {
- curve = curveBasis;
- }
- const lineFunction = line$1().x(function(d) {
- return d.x;
- }).y(function(d) {
- return d.y;
- }).curve(curve);
- let strokeClasses;
- switch (edge.thickness) {
- case "normal":
- strokeClasses = "edge-thickness-normal";
- break;
- case "thick":
- strokeClasses = "edge-thickness-thick";
- break;
- case "invisible":
- strokeClasses = "edge-thickness-thick";
- break;
- default:
- strokeClasses = "";
- }
- switch (edge.pattern) {
- case "solid":
- strokeClasses += " edge-pattern-solid";
- break;
- case "dotted":
- strokeClasses += " edge-pattern-dotted";
- break;
- case "dashed":
- strokeClasses += " edge-pattern-dashed";
- break;
- }
- const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style);
- let url = "";
- if (getConfig$1().flowchart.arrowMarkerAbsolute || getConfig$1().state.arrowMarkerAbsolute) {
- url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
- url = url.replace(/\(/g, "\\(");
- url = url.replace(/\)/g, "\\)");
- }
- log$1.info("arrowTypeStart", edge.arrowTypeStart);
- log$1.info("arrowTypeEnd", edge.arrowTypeEnd);
- switch (edge.arrowTypeStart) {
- case "arrow_cross":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
- break;
- case "arrow_point":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
- break;
- case "arrow_barb":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
- break;
- case "arrow_circle":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
- break;
- case "aggregation":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
- break;
- case "extension":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
- break;
- case "composition":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
- break;
- case "dependency":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
- break;
- case "lollipop":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
- break;
- }
- switch (edge.arrowTypeEnd) {
- case "arrow_cross":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
- break;
- case "arrow_point":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
- break;
- case "arrow_barb":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
- break;
- case "arrow_circle":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
- break;
- case "aggregation":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
- break;
- case "extension":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
- break;
- case "composition":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
- break;
- case "dependency":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
- break;
- case "lollipop":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
- break;
- }
- let paths = {};
- if (pointsHasChanged) {
- paths.updatedPath = points;
- }
- paths.originalPath = edge.points;
- return paths;
- };
- const recursiveRender = async (_elem, graph, diagramtype, parentCluster) => {
- log$1.info("Graph in recursive render: XXX", write(graph), parentCluster);
- const dir = graph.graph().rankdir;
- log$1.trace("Dir in recursive render - dir:", dir);
- const elem = _elem.insert("g").attr("class", "root");
- if (!graph.nodes()) {
- log$1.info("No nodes found for", graph);
- } else {
- log$1.info("Recursive render XXX", graph.nodes());
- }
- if (graph.edges().length > 0) {
- log$1.trace("Recursive edges", graph.edge(graph.edges()[0]));
- }
- const clusters = elem.insert("g").attr("class", "clusters");
- const edgePaths = elem.insert("g").attr("class", "edgePaths");
- const edgeLabels2 = elem.insert("g").attr("class", "edgeLabels");
- const nodes2 = elem.insert("g").attr("class", "nodes");
- await Promise.all(
- graph.nodes().map(async function(v) {
- const node2 = graph.node(v);
- if (parentCluster !== void 0) {
- const data = JSON.parse(JSON.stringify(parentCluster.clusterData));
- log$1.info("Setting data for cluster XXX (", v, ") ", data, parentCluster);
- graph.setNode(parentCluster.id, data);
- if (!graph.parent(v)) {
- log$1.trace("Setting parent", v, parentCluster.id);
- graph.setParent(v, parentCluster.id, data);
- }
- }
- log$1.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v)));
- if (node2 && node2.clusterNode) {
- log$1.info("Cluster identified", v, node2.width, graph.node(v));
- const o = await recursiveRender(nodes2, node2.graph, diagramtype, graph.node(v));
- const newEl = o.elem;
- updateNodeBounds(node2, newEl);
- node2.diff = o.diff || 0;
- log$1.info("Node bounds (abc123)", v, node2, node2.width, node2.x, node2.y);
- setNodeElem(newEl, node2);
- log$1.warn("Recursive render complete ", newEl, node2);
- } else {
- if (graph.children(v).length > 0) {
- log$1.info("Cluster - the non recursive path XXX", v, node2.id, node2, graph);
- log$1.info(findNonClusterChild(node2.id, graph));
- clusterDb[node2.id] = { id: findNonClusterChild(node2.id, graph), node: node2 };
- } else {
- log$1.info("Node - the non recursive path", v, node2.id, node2);
- await insertNode(nodes2, graph.node(v), dir);
- }
- }
- })
- );
- graph.edges().forEach(function(e) {
- const edge = graph.edge(e.v, e.w, e.name);
- log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
- log$1.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e)));
- log$1.info("Fix", clusterDb, "ids:", e.v, e.w, "Translateing: ", clusterDb[e.v], clusterDb[e.w]);
- insertEdgeLabel(edgeLabels2, edge);
- });
- graph.edges().forEach(function(e) {
- log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
- });
- log$1.info("#############################################");
- log$1.info("### Layout ###");
- log$1.info("#############################################");
- log$1.info(graph);
- layout(graph);
- log$1.info("Graph after layout:", write(graph));
- let diff = 0;
- sortNodesByHierarchy(graph).forEach(function(v) {
- const node2 = graph.node(v);
- log$1.info("Position " + v + ": " + JSON.stringify(graph.node(v)));
- log$1.info(
- "Position " + v + ": (" + node2.x,
- "," + node2.y,
- ") width: ",
- node2.width,
- " height: ",
- node2.height
- );
- if (node2 && node2.clusterNode) {
- positionNode$1(node2);
- } else {
- if (graph.children(v).length > 0) {
- insertCluster(clusters, node2);
- clusterDb[node2.id].node = node2;
- } else {
- positionNode$1(node2);
- }
- }
- });
- graph.edges().forEach(function(e) {
- const edge = graph.edge(e);
- log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge);
- const paths = insertEdge$1(edgePaths, e, edge, clusterDb, diagramtype, graph);
- positionEdgeLabel(edge, paths);
- });
- graph.nodes().forEach(function(v) {
- const n = graph.node(v);
- log$1.info(v, n.type, n.diff);
- if (n.type === "group") {
- diff = n.diff;
- }
- });
- return { elem, diff };
- };
- const render = async (elem, graph, markers2, diagramtype, id2) => {
- insertMarkers$4(elem, markers2, diagramtype, id2);
- clear$e();
- clear$c();
- clear$d();
- clear$f();
- log$1.warn("Graph at first:", write(graph));
- adjustClustersAndEdges(graph);
- log$1.warn("Graph after:", write(graph));
- await recursiveRender(elem, graph, diagramtype);
- };
- const conf$8 = {};
- const setConf$7 = function(cnf) {
- const keys2 = Object.keys(cnf);
- for (const key of keys2) {
- conf$8[key] = cnf[key];
- }
- };
- const addVertices$1 = function(vert, g, svgId, root2, doc, diagObj) {
- const svg2 = root2.select(`[id="${svgId}"]`);
- const keys2 = Object.keys(vert);
- keys2.forEach(function(id2) {
- const vertex = vert[id2];
- let classStr = "default";
- if (vertex.classes.length > 0) {
- classStr = vertex.classes.join(" ");
- }
- classStr = classStr + " flowchart-label";
- const styles2 = getStylesFromArray(vertex.styles);
- let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
- let vertexNode;
- log$1.info("vertex", vertex, vertex.labelType);
- if (vertex.labelType === "markdown") {
- log$1.info("vertex", vertex, vertex.labelType);
- } else {
- if (evaluate(getConfig$1().flowchart.htmlLabels)) {
- const node2 = {
- label: vertexText.replace(
- /fa[blrs]?:fa-[\w-]+/g,
- (s) => ``
- )
- };
- vertexNode = addHtmlLabel$1(svg2, node2).node();
- vertexNode.parentNode.removeChild(vertexNode);
- } else {
- const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
- svgLabel.setAttribute("style", styles2.labelStyle.replace("color:", "fill:"));
- const rows = vertexText.split(common$1.lineBreakRegex);
- for (const row of rows) {
- const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
- tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
- tspan.setAttribute("dy", "1em");
- tspan.setAttribute("x", "1");
- tspan.textContent = row;
- svgLabel.appendChild(tspan);
+ paragraph(src) {
+ const cap = this.rules.block.paragraph.exec(src);
+ if (cap) {
+ const text2 = cap[1].charAt(cap[1].length - 1) === "\n" ? cap[1].slice(0, -1) : cap[1];
+ return {
+ type: "paragraph",
+ raw: cap[0],
+ text: text2,
+ tokens: this.lexer.inline(text2)
+ };
}
- vertexNode = svgLabel;
}
- }
- let radious = 0;
- let _shape = "";
- switch (vertex.type) {
- case "round":
- radious = 5;
- _shape = "rect";
- break;
- case "square":
- _shape = "rect";
- break;
- case "diamond":
- _shape = "question";
- break;
- case "hexagon":
- _shape = "hexagon";
- break;
- case "odd":
- _shape = "rect_left_inv_arrow";
- break;
- case "lean_right":
- _shape = "lean_right";
- break;
- case "lean_left":
- _shape = "lean_left";
- break;
- case "trapezoid":
- _shape = "trapezoid";
- break;
- case "inv_trapezoid":
- _shape = "inv_trapezoid";
- break;
- case "odd_right":
- _shape = "rect_left_inv_arrow";
- break;
- case "circle":
- _shape = "circle";
- break;
- case "ellipse":
- _shape = "ellipse";
- break;
- case "stadium":
- _shape = "stadium";
- break;
- case "subroutine":
- _shape = "subroutine";
- break;
- case "cylinder":
- _shape = "cylinder";
- break;
- case "group":
- _shape = "rect";
- break;
- case "doublecircle":
- _shape = "doublecircle";
- break;
- default:
- _shape = "rect";
- }
- g.setNode(vertex.id, {
- labelStyle: styles2.labelStyle,
- shape: _shape,
- labelText: vertexText,
- labelType: vertex.labelType,
- rx: radious,
- ry: radious,
- class: classStr,
- style: styles2.style,
- id: vertex.id,
- link: vertex.link,
- linkTarget: vertex.linkTarget,
- tooltip: diagObj.db.getTooltip(vertex.id) || "",
- domId: diagObj.db.lookUpDomId(vertex.id),
- haveCallback: vertex.haveCallback,
- width: vertex.type === "group" ? 500 : void 0,
- dir: vertex.dir,
- type: vertex.type,
- props: vertex.props,
- padding: getConfig$1().flowchart.padding
- });
- log$1.info("setNode", {
- labelStyle: styles2.labelStyle,
- labelType: vertex.labelType,
- shape: _shape,
- labelText: vertexText,
- rx: radious,
- ry: radious,
- class: classStr,
- style: styles2.style,
- id: vertex.id,
- domId: diagObj.db.lookUpDomId(vertex.id),
- width: vertex.type === "group" ? 500 : void 0,
- type: vertex.type,
- dir: vertex.dir,
- props: vertex.props,
- padding: getConfig$1().flowchart.padding
- });
- });
- };
- const addEdges$1 = function(edges2, g, diagObj) {
- log$1.info("abc78 edges = ", edges2);
- let cnt2 = 0;
- let linkIdCnt = {};
- let defaultStyle2;
- let defaultLabelStyle;
- if (edges2.defaultStyle !== void 0) {
- const defaultStyles = getStylesFromArray(edges2.defaultStyle);
- defaultStyle2 = defaultStyles.style;
- defaultLabelStyle = defaultStyles.labelStyle;
- }
- edges2.forEach(function(edge) {
- cnt2++;
- var linkIdBase = "L-" + edge.start + "-" + edge.end;
- if (linkIdCnt[linkIdBase] === void 0) {
- linkIdCnt[linkIdBase] = 0;
- log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
- } else {
- linkIdCnt[linkIdBase]++;
- log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
- }
- let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
- log$1.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
- var linkNameStart = "LS-" + edge.start;
- var linkNameEnd = "LE-" + edge.end;
- const edgeData = { style: "", labelStyle: "" };
- edgeData.minlen = edge.length || 1;
- if (edge.type === "arrow_open") {
- edgeData.arrowhead = "none";
- } else {
- edgeData.arrowhead = "normal";
- }
- edgeData.arrowTypeStart = "arrow_open";
- edgeData.arrowTypeEnd = "arrow_open";
- switch (edge.type) {
- case "double_arrow_cross":
- edgeData.arrowTypeStart = "arrow_cross";
- case "arrow_cross":
- edgeData.arrowTypeEnd = "arrow_cross";
- break;
- case "double_arrow_point":
- edgeData.arrowTypeStart = "arrow_point";
- case "arrow_point":
- edgeData.arrowTypeEnd = "arrow_point";
- break;
- case "double_arrow_circle":
- edgeData.arrowTypeStart = "arrow_circle";
- case "arrow_circle":
- edgeData.arrowTypeEnd = "arrow_circle";
- break;
- }
- let style = "";
- let labelStyle = "";
- switch (edge.stroke) {
- case "normal":
- style = "fill:none;";
- if (defaultStyle2 !== void 0) {
- style = defaultStyle2;
- }
- if (defaultLabelStyle !== void 0) {
- labelStyle = defaultLabelStyle;
+ text(src) {
+ const cap = this.rules.block.text.exec(src);
+ if (cap) {
+ return {
+ type: "text",
+ raw: cap[0],
+ text: cap[0],
+ tokens: this.lexer.inline(cap[0])
+ };
}
- edgeData.thickness = "normal";
- edgeData.pattern = "solid";
- break;
- case "dotted":
- edgeData.thickness = "normal";
- edgeData.pattern = "dotted";
- edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
- break;
- case "thick":
- edgeData.thickness = "thick";
- edgeData.pattern = "solid";
- edgeData.style = "stroke-width: 3.5px;fill:none;";
- break;
- case "invisible":
- edgeData.thickness = "invisible";
- edgeData.pattern = "solid";
- edgeData.style = "stroke-width: 0;fill:none;";
- break;
- }
- if (edge.style !== void 0) {
- const styles2 = getStylesFromArray(edge.style);
- style = styles2.style;
- labelStyle = styles2.labelStyle;
- }
- edgeData.style = edgeData.style += style;
- edgeData.labelStyle = edgeData.labelStyle += labelStyle;
- if (edge.interpolate !== void 0) {
- edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
- } else if (edges2.defaultInterpolate !== void 0) {
- edgeData.curve = interpolateToCurve(edges2.defaultInterpolate, curveLinear);
- } else {
- edgeData.curve = interpolateToCurve(conf$8.curve, curveLinear);
- }
- if (edge.text === void 0) {
- if (edge.style !== void 0) {
- edgeData.arrowheadStyle = "fill: #333";
}
- } else {
- edgeData.arrowheadStyle = "fill: #333";
- edgeData.labelpos = "c";
- }
- edgeData.labelType = edge.labelType;
- edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
- if (edge.style === void 0) {
- edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
- }
- edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
- edgeData.id = linkId;
- edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
- g.setEdge(edge.start, edge.end, edgeData, cnt2);
- });
- };
- const getClasses$4 = function(text2, diagObj) {
- log$1.info("Extracting classes");
- diagObj.db.clear();
- try {
- diagObj.parse(text2);
- return diagObj.db.getClasses();
- } catch (e) {
- return;
- }
- };
- const draw$f = async function(text2, id2, _version, diagObj) {
- log$1.info("Drawing flowchart");
- diagObj.db.clear();
- flowDb.setGen("gen-2");
- diagObj.parser.parse(text2);
- let dir = diagObj.db.getDirection();
- if (dir === void 0) {
- dir = "TD";
- }
- const { securityLevel, flowchart: conf2 } = getConfig$1();
- const nodeSpacing = conf2.nodeSpacing || 50;
- const rankSpacing = conf2.rankSpacing || 50;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- const g = new Graph({
- multigraph: true,
- compound: true
- }).setGraph({
- rankdir: dir,
- nodesep: nodeSpacing,
- ranksep: rankSpacing,
- marginx: 0,
- marginy: 0
- }).setDefaultEdgeLabel(function() {
- return {};
- });
- let subG;
- const subGraphs2 = diagObj.db.getSubGraphs();
- log$1.info("Subgraphs - ", subGraphs2);
- for (let i3 = subGraphs2.length - 1; i3 >= 0; i3--) {
- subG = subGraphs2[i3];
- log$1.info("Subgraph - ", subG);
- diagObj.db.addVertex(
- subG.id,
- { text: subG.title, type: subG.labelType },
- "group",
- void 0,
- subG.classes,
- subG.dir
- );
- }
- const vert = diagObj.db.getVertices();
- const edges2 = diagObj.db.getEdges();
- log$1.info("Edges", edges2);
- let i2 = 0;
- for (i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
- subG = subGraphs2[i2];
- selectAll("cluster").append("text");
- for (let j = 0; j < subG.nodes.length; j++) {
- log$1.info("Setting up subgraphs", subG.nodes[j], subG.id);
- g.setParent(subG.nodes[j], subG.id);
- }
- }
- addVertices$1(vert, g, id2, root2, doc, diagObj);
- addEdges$1(edges2, g);
- const svg2 = root2.select(`[id="${id2}"]`);
- const element = root2.select("#" + id2 + " g");
- await render(element, g, ["point", "circle", "cross"], "flowchart", id2);
- utils.insertTitle(svg2, "flowchartTitleText", conf2.titleTopMargin, diagObj.db.getDiagramTitle());
- setupGraphViewbox$1(g, svg2, conf2.diagramPadding, conf2.useMaxWidth);
- diagObj.db.indexNodes("subGraph" + i2);
- if (!conf2.htmlLabels) {
- const labels = doc.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
- for (const label of labels) {
- const dim = label.getBBox();
- const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
- rect2.setAttribute("rx", 0);
- rect2.setAttribute("ry", 0);
- rect2.setAttribute("width", dim.width);
- rect2.setAttribute("height", dim.height);
- label.insertBefore(rect2, label.firstChild);
- }
- }
- const keys2 = Object.keys(vert);
- keys2.forEach(function(key) {
- const vertex = vert[key];
- if (vertex.link) {
- const node2 = select("#" + id2 + ' [id="' + key + '"]');
- if (node2) {
- const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
- link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
- link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
- link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
- if (securityLevel === "sandbox") {
- link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
- } else if (vertex.linkTarget) {
- link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
- }
- const linkNode = node2.insert(function() {
- return link;
- }, ":first-child");
- const shape = node2.select(".label-container");
- if (shape) {
- linkNode.append(function() {
- return shape.node();
- });
- }
- const label = node2.select(".label");
- if (label) {
- linkNode.append(function() {
- return label.node();
- });
+ escape(src) {
+ const cap = this.rules.inline.escape.exec(src);
+ if (cap) {
+ return {
+ type: "escape",
+ raw: cap[0],
+ text: escape$1(cap[1])
+ };
}
}
- }
- });
- };
- const flowRendererV2 = {
- setConf: setConf$7,
- addVertices: addVertices$1,
- addEdges: addEdges$1,
- getClasses: getClasses$4,
- draw: draw$f
- };
- const getStyles$d = (options2) => `.label {
- font-family: ${options2.fontFamily};
- color: ${options2.nodeTextColor || options2.textColor};
- }
- .cluster-label text {
- fill: ${options2.titleColor};
- }
- .cluster-label span,p {
- color: ${options2.titleColor};
- }
-
- .label text,span,p {
- fill: ${options2.nodeTextColor || options2.textColor};
- color: ${options2.nodeTextColor || options2.textColor};
- }
-
- .node rect,
- .node circle,
- .node ellipse,
- .node polygon,
- .node path {
- fill: ${options2.mainBkg};
- stroke: ${options2.nodeBorder};
- stroke-width: 1px;
- }
- .flowchart-label text {
- text-anchor: middle;
- }
- // .flowchart-label .text-outer-tspan {
- // text-anchor: middle;
- // }
- // .flowchart-label .text-inner-tspan {
- // text-anchor: start;
- // }
-
- .node .label {
- text-align: center;
- }
- .node.clickable {
- cursor: pointer;
- }
-
- .arrowheadPath {
- fill: ${options2.arrowheadColor};
- }
-
- .edgePath .path {
- stroke: ${options2.lineColor};
- stroke-width: 2.0px;
- }
-
- .flowchart-link {
- stroke: ${options2.lineColor};
- fill: none;
- }
-
- .edgeLabel {
- background-color: ${options2.edgeLabelBackground};
- rect {
- opacity: 0.5;
- background-color: ${options2.edgeLabelBackground};
- fill: ${options2.edgeLabelBackground};
- }
- text-align: center;
- }
-
- .cluster rect {
- fill: ${options2.clusterBkg};
- stroke: ${options2.clusterBorder};
- stroke-width: 1px;
- }
-
- .cluster text {
- fill: ${options2.titleColor};
- }
-
- .cluster span,p {
- color: ${options2.titleColor};
- }
- /* .cluster div {
- color: ${options2.titleColor};
- } */
-
- div.mermaidTooltip {
- position: absolute;
- text-align: center;
- max-width: 200px;
- padding: 2px;
- font-family: ${options2.fontFamily};
- font-size: 12px;
- background: ${options2.tertiaryColor};
- border: 1px solid ${options2.border2};
- border-radius: 2px;
- pointer-events: none;
- z-index: 100;
- }
-
- .flowchartTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${options2.textColor};
- }
-`;
- const flowStyles = getStyles$d;
- const diagram$g = {
- parser: parser$l,
- db: flowDb,
- renderer: flowRendererV2,
- styles: flowStyles,
- init: (cnf) => {
- if (!cnf.flowchart) {
- cnf.flowchart = {};
- }
- cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
- flowRenderer.setConf(cnf.flowchart);
- flowDb.clear();
- flowDb.setGen("gen-1");
- }
- };
- const flowDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$g
- }, Symbol.toStringTag, { value: "Module" }));
- const diagram$f = {
- parser: parser$l,
- db: flowDb,
- renderer: flowRendererV2,
- styles: flowStyles,
- init: (cnf) => {
- if (!cnf.flowchart) {
- cnf.flowchart = {};
- }
- cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
- setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });
- flowRendererV2.setConf(cnf.flowchart);
- flowDb.clear();
- flowDb.setGen("gen-2");
- }
- };
- const flowDiagramV2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$f
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$j = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 23, 25, 27, 29, 30, 31, 51], $V3 = [1, 17], $V4 = [1, 18], $V5 = [1, 19], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 25], $Va = [1, 30], $Vb = [1, 31], $Vc = [1, 32], $Vd = [1, 33], $Ve = [6, 9, 11, 15, 20, 23, 25, 27, 29, 30, 31, 44, 45, 46, 47, 51], $Vf = [1, 45], $Vg = [30, 31, 48, 49], $Vh = [4, 6, 9, 11, 23, 25, 27, 29, 30, 31, 51], $Vi = [44, 45, 46, 47], $Vj = [22, 37], $Vk = [1, 65], $Vl = [1, 64], $Vm = [22, 37, 39, 41];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "entityName": 17, "relSpec": 18, "role": 19, "BLOCK_START": 20, "attributes": 21, "BLOCK_STOP": 22, "title": 23, "title_value": 24, "acc_title": 25, "acc_title_value": 26, "acc_descr": 27, "acc_descr_value": 28, "acc_descr_multiline_value": 29, "ALPHANUM": 30, "ENTITY_NAME": 31, "attribute": 32, "attributeType": 33, "attributeName": 34, "attributeKeyTypeList": 35, "attributeComment": 36, "ATTRIBUTE_WORD": 37, "attributeKeyType": 38, "COMMA": 39, "ATTRIBUTE_KEY": 40, "COMMENT": 41, "cardinality": 42, "relType": 43, "ZERO_OR_ONE": 44, "ZERO_OR_MORE": 45, "ONE_OR_MORE": 46, "ONLY_ONE": 47, "NON_IDENTIFYING": 48, "IDENTIFYING": 49, "WORD": 50, "open_directive": 51, "type_directive": 52, "arg_directive": 53, "close_directive": 54, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 20: "BLOCK_START", 22: "BLOCK_STOP", 23: "title", 24: "title_value", 25: "acc_title", 26: "acc_title_value", 27: "acc_descr", 28: "acc_descr_value", 29: "acc_descr_multiline_value", 30: "ALPHANUM", 31: "ENTITY_NAME", 37: "ATTRIBUTE_WORD", 39: "COMMA", 40: "ATTRIBUTE_KEY", 41: "COMMENT", 44: "ZERO_OR_ONE", 45: "ZERO_OR_MORE", 46: "ONE_OR_MORE", 47: "ONLY_ONE", 48: "NON_IDENTIFYING", 49: "IDENTIFYING", 50: "WORD", 51: "open_directive", 52: "type_directive", 53: "arg_directive", 54: "close_directive" },
- productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 5], [10, 4], [10, 3], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [17, 1], [17, 1], [21, 1], [21, 2], [32, 2], [32, 3], [32, 3], [32, 4], [33, 1], [34, 1], [35, 1], [35, 3], [38, 1], [36, 1], [18, 3], [42, 1], [42, 1], [42, 1], [42, 1], [43, 1], [43, 1], [19, 1], [19, 1], [19, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 1:
- break;
- case 3:
- this.$ = [];
- break;
- case 4:
- $$[$0 - 1].push($$[$0]);
- this.$ = $$[$0 - 1];
- break;
- case 5:
- case 6:
- this.$ = $$[$0];
- break;
- case 7:
- case 8:
- this.$ = [];
- break;
- case 12:
- yy.addEntity($$[$0 - 4]);
- yy.addEntity($$[$0 - 2]);
- yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);
- break;
- case 13:
- yy.addEntity($$[$0 - 3]);
- yy.addAttributes($$[$0 - 3], $$[$0 - 1]);
- break;
- case 14:
- yy.addEntity($$[$0 - 2]);
- break;
- case 15:
- yy.addEntity($$[$0]);
- break;
- case 16:
- case 17:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 18:
- case 19:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 20:
- case 43:
- this.$ = $$[$0];
- break;
- case 21:
- case 41:
- case 42:
- this.$ = $$[$0].replace(/"/g, "");
- break;
- case 22:
- case 30:
- this.$ = [$$[$0]];
- break;
- case 23:
- $$[$0].push($$[$0 - 1]);
- this.$ = $$[$0];
- break;
- case 24:
- this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };
- break;
- case 25:
- this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };
- break;
- case 26:
- this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };
- break;
- case 27:
- this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };
- break;
- case 28:
- case 29:
- case 32:
- this.$ = $$[$0];
- break;
- case 31:
- $$[$0 - 2].push($$[$0]);
- this.$ = $$[$0 - 2];
- break;
- case 33:
- this.$ = $$[$0].replace(/"/g, "");
- break;
- case 34:
- this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };
- break;
- case 35:
- this.$ = yy.Cardinality.ZERO_OR_ONE;
- break;
- case 36:
- this.$ = yy.Cardinality.ZERO_OR_MORE;
- break;
- case 37:
- this.$ = yy.Cardinality.ONE_OR_MORE;
- break;
- case 38:
- this.$ = yy.Cardinality.ONLY_ONE;
- break;
- case 39:
- this.$ = yy.Identification.NON_IDENTIFYING;
- break;
- case 40:
- this.$ = yy.Identification.IDENTIFYING;
- break;
- case 44:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 45:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 46:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 47:
- yy.parseDirective("}%%", "close_directive", "er");
- break;
- }
- },
- table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 51: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 51: $V1 }, { 13: 8, 52: [1, 9] }, { 52: [2, 44] }, { 6: [1, 10], 7: 15, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 51: $V1 }, { 1: [2, 2] }, { 14: 23, 15: [1, 24], 54: $V9 }, o([15, 54], [2, 45]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 15, 10: 26, 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 51: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), o($V2, [2, 15], { 18: 27, 42: 29, 20: [1, 28], 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd }), { 24: [1, 34] }, { 26: [1, 35] }, { 28: [1, 36] }, o($V2, [2, 19]), o($Ve, [2, 20]), o($Ve, [2, 21]), { 11: [1, 37] }, { 16: 38, 53: [1, 39] }, { 11: [2, 47] }, o($V2, [2, 5]), { 17: 40, 30: $V7, 31: $V8 }, { 21: 41, 22: [1, 42], 32: 43, 33: 44, 37: $Vf }, { 43: 46, 48: [1, 47], 49: [1, 48] }, o($Vg, [2, 35]), o($Vg, [2, 36]), o($Vg, [2, 37]), o($Vg, [2, 38]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($Vh, [2, 9]), { 14: 49, 54: $V9 }, { 54: [2, 46] }, { 15: [1, 50] }, { 22: [1, 51] }, o($V2, [2, 14]), { 21: 52, 22: [2, 22], 32: 43, 33: 44, 37: $Vf }, { 34: 53, 37: [1, 54] }, { 37: [2, 28] }, { 42: 55, 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd }, o($Vi, [2, 39]), o($Vi, [2, 40]), { 11: [1, 56] }, { 19: 57, 30: [1, 60], 31: [1, 59], 50: [1, 58] }, o($V2, [2, 13]), { 22: [2, 23] }, o($Vj, [2, 24], { 35: 61, 36: 62, 38: 63, 40: $Vk, 41: $Vl }), o([22, 37, 40, 41], [2, 29]), o([30, 31], [2, 34]), o($Vh, [2, 10]), o($V2, [2, 12]), o($V2, [2, 41]), o($V2, [2, 42]), o($V2, [2, 43]), o($Vj, [2, 25], { 36: 66, 39: [1, 67], 41: $Vl }), o($Vj, [2, 26]), o($Vm, [2, 30]), o($Vj, [2, 33]), o($Vm, [2, 32]), o($Vj, [2, 27]), { 38: 68, 40: $Vk }, o($Vm, [2, 31])],
- defaultActions: { 5: [2, 44], 7: [2, 2], 25: [2, 47], 39: [2, 46], 45: [2, 28], 52: [2, 23] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
+ tag(src) {
+ const cap = this.rules.inline.tag.exec(src);
+ if (cap) {
+ if (!this.lexer.state.inLink && /^/i.test(cap[0])) {
+ this.lexer.state.inLink = false;
+ }
+ if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
+ this.lexer.state.inRawBlock = true;
+ } else if (this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
+ this.lexer.state.inRawBlock = false;
}
- token2 = self2.symbols_[token2] || token2;
+ return {
+ type: "html",
+ raw: cap[0],
+ inLink: this.lexer.state.inLink,
+ inRawBlock: this.lexer.state.inRawBlock,
+ block: false,
+ text: cap[0]
+ };
}
- return token2;
}
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
+ link(src) {
+ const cap = this.rules.inline.link.exec(src);
+ if (cap) {
+ const trimmedUrl = cap[2].trim();
+ if (!this.options.pedantic && /^$/.test(trimmedUrl)) {
+ return;
+ }
+ const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), "\\");
+ if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {
+ return;
+ }
+ } else {
+ const lastParenIndex = findClosingBracket(cap[2], "()");
+ if (lastParenIndex > -1) {
+ const start3 = cap[0].indexOf("!") === 0 ? 5 : 4;
+ const linkLen = start3 + cap[1].length + lastParenIndex;
+ cap[2] = cap[2].substring(0, lastParenIndex);
+ cap[0] = cap[0].substring(0, linkLen).trim();
+ cap[3] = "";
+ }
+ }
+ let href = cap[2];
+ let title2 = "";
+ if (this.options.pedantic) {
+ const link3 = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);
+ if (link3) {
+ href = link3[1];
+ title2 = link3[3];
+ }
+ } else {
+ title2 = cap[3] ? cap[3].slice(1, -1) : "";
}
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
+ href = href.trim();
+ if (/^$/.test(trimmedUrl)) {
+ href = href.slice(1);
+ } else {
+ href = href.slice(1, -1);
}
}
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
+ return outputLink(cap, {
+ href: href ? href.replace(this.rules.inline.anyPunctuation, "$1") : href,
+ title: title2 ? title2.replace(this.rules.inline.anyPunctuation, "$1") : title2
+ }, cap[0], this.lexer);
}
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
+ }
+ reflink(src, links3) {
+ let cap;
+ if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {
+ const linkString = (cap[2] || cap[1]).replace(/\s+/g, " ");
+ const link3 = links3[linkString.toLowerCase()];
+ if (!link3) {
+ const text2 = cap[0].charAt(0);
+ return {
+ type: "text",
+ raw: text2,
+ text: text2
+ };
+ }
+ return outputLink(cap, link3, cap[0], this.lexer);
}
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
+ }
+ emStrong(src, maskedSrc, prevChar = "") {
+ let match2 = this.rules.inline.emStrongLDelim.exec(src);
+ if (!match2)
+ return;
+ if (match2[3] && prevChar.match(/[\p{L}\p{N}]/u))
+ return;
+ const nextChar = match2[1] || match2[2] || "";
+ if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {
+ const lLength = [...match2[0]].length - 1;
+ let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;
+ const endReg = match2[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
+ endReg.lastIndex = 0;
+ maskedSrc = maskedSrc.slice(-1 * src.length + lLength);
+ while ((match2 = endReg.exec(maskedSrc)) != null) {
+ rDelim = match2[1] || match2[2] || match2[3] || match2[4] || match2[5] || match2[6];
+ if (!rDelim)
+ continue;
+ rLength = [...rDelim].length;
+ if (match2[3] || match2[4]) {
+ delimTotal += rLength;
+ continue;
+ } else if (match2[5] || match2[6]) {
+ if (lLength % 3 && !((lLength + rLength) % 3)) {
+ midDelimTotal += rLength;
+ continue;
+ }
}
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
+ delimTotal -= rLength;
+ if (delimTotal > 0)
+ continue;
+ rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);
+ const lastCharLength = [...match2[0]][0].length;
+ const raw = src.slice(0, lLength + match2.index + lastCharLength + rLength);
+ if (Math.min(lLength, rLength) % 2) {
+ const text3 = raw.slice(1, -1);
+ return {
+ type: "em",
+ raw,
+ text: text3,
+ tokens: this.lexer.inlineTokens(text3)
+ };
}
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
+ const text2 = raw.slice(2, -2);
+ return {
+ type: "strong",
+ raw,
+ text: text2,
+ tokens: this.lexer.inlineTokens(text2)
+ };
+ }
}
}
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
+ codespan(src) {
+ const cap = this.rules.inline.code.exec(src);
+ if (cap) {
+ let text2 = cap[2].replace(/\n/g, " ");
+ const hasNonSpaceChars = /[^ ]/.test(text2);
+ const hasSpaceCharsOnBothEnds = /^ /.test(text2) && / $/.test(text2);
+ if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {
+ text2 = text2.substring(1, text2.length - 1);
+ }
+ text2 = escape$1(text2, true);
+ return {
+ type: "codespan",
+ raw: cap[0],
+ text: text2
+ };
}
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
+ }
+ br(src) {
+ const cap = this.rules.inline.br.exec(src);
+ if (cap) {
+ return {
+ type: "br",
+ raw: cap[0]
+ };
}
- if (this.options.ranges) {
- this.yylloc.range[1]++;
+ }
+ del(src) {
+ const cap = this.rules.inline.del.exec(src);
+ if (cap) {
+ return {
+ type: "del",
+ raw: cap[0],
+ text: cap[2],
+ tokens: this.lexer.inlineTokens(cap[2])
+ };
}
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ }
+ autolink(src) {
+ const cap = this.rules.inline.autolink.exec(src);
+ if (cap) {
+ let text2, href;
+ if (cap[2] === "@") {
+ text2 = escape$1(cap[1]);
+ href = "mailto:" + text2;
+ } else {
+ text2 = escape$1(cap[1]);
+ href = text2;
+ }
+ return {
+ type: "link",
+ raw: cap[0],
+ text: text2,
+ href,
+ tokens: [
+ {
+ type: "text",
+ raw: text2,
+ text: text2
+ }
+ ]
+ };
+ }
+ }
+ url(src) {
+ let cap;
+ if (cap = this.rules.inline.url.exec(src)) {
+ let text2, href;
+ if (cap[2] === "@") {
+ text2 = escape$1(cap[0]);
+ href = "mailto:" + text2;
+ } else {
+ let prevCapZero;
+ do {
+ prevCapZero = cap[0];
+ cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? "";
+ } while (prevCapZero !== cap[0]);
+ text2 = escape$1(cap[0]);
+ if (cap[1] === "www.") {
+ href = "http://" + cap[0];
+ } else {
+ href = cap[0];
+ }
+ }
+ return {
+ type: "link",
+ raw: cap[0],
+ text: text2,
+ href,
+ tokens: [
+ {
+ type: "text",
+ raw: text2,
+ text: text2
+ }
+ ]
+ };
+ }
+ }
+ inlineText(src) {
+ const cap = this.rules.inline.text.exec(src);
+ if (cap) {
+ let text2;
+ if (this.lexer.state.inRawBlock) {
+ text2 = cap[0];
+ } else {
+ text2 = escape$1(cap[0]);
+ }
+ return {
+ type: "text",
+ raw: cap[0],
+ text: text2
+ };
+ }
+ }
+ };
+ newline = /^(?: *(?:\n|$))+/;
+ blockCode = /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/;
+ fences = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/;
+ hr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/;
+ heading = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/;
+ bullet = /(?:[*+-]|\d{1,9}[.)])/;
+ lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g, bullet).replace(/blockCode/g, / {4}/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).getRegex();
+ _paragraph = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/;
+ blockText = /^[^\n]+/;
+ _blockLabel = /(?!\s*\])(?:\\.|[^\[\]\\])+/;
+ def = edit(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label", _blockLabel).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex();
+ list = edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, bullet).getRegex();
+ _tag = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";
+ _comment = /|$))/;
+ html = edit("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))", "i").replace("comment", _comment).replace("tag", _tag).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();
+ paragraph = edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex();
+ blockquote = edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", paragraph).getRegex();
+ blockNormal = {
+ blockquote,
+ code: blockCode,
+ def,
+ fences,
+ heading,
+ hr,
+ html,
+ lheading,
+ list,
+ newline,
+ paragraph,
+ table: noopTest,
+ text: blockText
+ };
+ gfmTable = edit("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", " {4}[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex();
+ blockGfm = {
+ ...blockNormal,
+ table: gfmTable,
+ paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", gfmTable).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex()
+ };
+ blockPedantic = {
+ ...blockNormal,
+ html: edit(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", _comment).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
+ def: /^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
+ heading: /^(#{1,6})(.*)(?:\n+|$)/,
+ fences: noopTest,
+ // fences not supported
+ lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
+ paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " *#{1,6} *[^\n]").replace("lheading", lheading).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
+ };
+ escape3 = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/;
+ inlineCode = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/;
+ br = /^( {2,}|\\)\n(?!\s*$)/;
+ inlineText = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g;
+ emStrongLDelim = edit(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/, "u").replace(/punct/g, _punctuation).getRegex();
+ emStrongRDelimAst = edit("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])", "gu").replace(/punct/g, _punctuation).getRegex();
+ emStrongRDelimUnd = edit("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])", "gu").replace(/punct/g, _punctuation).getRegex();
+ anyPunctuation = edit(/\\([punct])/, "gu").replace(/punct/g, _punctuation).getRegex();
+ autolink = edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();
+ _inlineComment = edit(_comment).replace("(?:-->|$)", "-->").getRegex();
+ tag = edit("^comment|^[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment", _inlineComment).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex();
+ _inlineLabel = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
+ link = edit(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label", _inlineLabel).replace("href", /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex();
+ reflink = edit(/^!?\[(label)\]\[(ref)\]/).replace("label", _inlineLabel).replace("ref", _blockLabel).getRegex();
+ nolink = edit(/^!?\[(ref)\](?:\[\])?/).replace("ref", _blockLabel).getRegex();
+ reflinkSearch = edit("reflink|nolink(?!\\()", "g").replace("reflink", reflink).replace("nolink", nolink).getRegex();
+ inlineNormal = {
+ _backpedal: noopTest,
+ // only used for GFM url
+ anyPunctuation,
+ autolink,
+ blockSkip,
+ br,
+ code: inlineCode,
+ del: noopTest,
+ emStrongLDelim,
+ emStrongRDelimAst,
+ emStrongRDelimUnd,
+ escape: escape3,
+ link,
+ nolink,
+ punctuation,
+ reflink,
+ reflinkSearch,
+ tag,
+ text: inlineText,
+ url: noopTest
+ };
+ inlinePedantic = {
+ ...inlineNormal,
+ link: edit(/^!?\[(label)\]\((.*?)\)/).replace("label", _inlineLabel).getRegex(),
+ reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", _inlineLabel).getRegex()
+ };
+ inlineGfm = {
+ ...inlineNormal,
+ escape: edit(escape3).replace("])", "~|])").getRegex(),
+ url: edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
+ _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
+ del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
+ text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\ {
+ return leading + " ".repeat(tabs.length);
});
}
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
+ let token2;
+ let lastToken;
+ let cutSrc;
+ while (src) {
+ if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some((extTokenizer) => {
+ if (token2 = extTokenizer.call({ lexer: this }, src, tokens2)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ return true;
+ }
+ return false;
+ })) {
+ continue;
}
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
+ if (token2 = this.tokenizer.space(src)) {
+ src = src.substring(token2.raw.length);
+ if (token2.raw.length === 1 && tokens2.length > 0) {
+ tokens2[tokens2.length - 1].raw += "\n";
+ } else {
+ tokens2.push(token2);
+ }
+ continue;
}
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
+ if (token2 = this.tokenizer.code(src)) {
+ src = src.substring(token2.raw.length);
+ lastToken = tokens2[tokens2.length - 1];
+ if (lastToken && (lastToken.type === "paragraph" || lastToken.type === "text")) {
+ lastToken.raw += "\n" + token2.raw;
+ lastToken.text += "\n" + token2.text;
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
+ } else {
+ tokens2.push(token2);
+ }
+ continue;
+ }
+ if (token2 = this.tokenizer.fences(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.heading(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.hr(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.blockquote(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.list(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.html(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.def(src)) {
+ src = src.substring(token2.raw.length);
+ lastToken = tokens2[tokens2.length - 1];
+ if (lastToken && (lastToken.type === "paragraph" || lastToken.type === "text")) {
+ lastToken.raw += "\n" + token2.raw;
+ lastToken.text += "\n" + token2.raw;
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
+ } else if (!this.tokens.links[token2.tag]) {
+ this.tokens.links[token2.tag] = {
+ href: token2.href,
+ title: token2.title
+ };
+ }
+ continue;
+ }
+ if (token2 = this.tokenizer.table(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.lheading(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ cutSrc = src;
+ if (this.options.extensions && this.options.extensions.startBlock) {
+ let startIndex = Infinity;
+ const tempSrc = src.slice(1);
+ let tempStart;
+ this.options.extensions.startBlock.forEach((getStartIndex) => {
+ tempStart = getStartIndex.call({ lexer: this }, tempSrc);
+ if (typeof tempStart === "number" && tempStart >= 0) {
+ startIndex = Math.min(startIndex, tempStart);
}
- } else if (!this.options.flex) {
+ });
+ if (startIndex < Infinity && startIndex >= 0) {
+ cutSrc = src.substring(0, startIndex + 1);
+ }
+ }
+ if (this.state.top && (token2 = this.tokenizer.paragraph(cutSrc))) {
+ lastToken = tokens2[tokens2.length - 1];
+ if (lastParagraphClipped && lastToken?.type === "paragraph") {
+ lastToken.raw += "\n" + token2.raw;
+ lastToken.text += "\n" + token2.text;
+ this.inlineQueue.pop();
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
+ } else {
+ tokens2.push(token2);
+ }
+ lastParagraphClipped = cutSrc.length !== src.length;
+ src = src.substring(token2.raw.length);
+ continue;
+ }
+ if (token2 = this.tokenizer.text(src)) {
+ src = src.substring(token2.raw.length);
+ lastToken = tokens2[tokens2.length - 1];
+ if (lastToken && lastToken.type === "text") {
+ lastToken.raw += "\n" + token2.raw;
+ lastToken.text += "\n" + token2.text;
+ this.inlineQueue.pop();
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
+ } else {
+ tokens2.push(token2);
+ }
+ continue;
+ }
+ if (src) {
+ const errMsg = "Infinite loop on byte: " + src.charCodeAt(0);
+ if (this.options.silent) {
+ console.error(errMsg);
break;
+ } else {
+ throw new Error(errMsg);
}
}
}
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
+ this.state.top = true;
+ return tokens2;
+ }
+ inline(src, tokens2 = []) {
+ this.inlineQueue.push({ src, tokens: tokens2 });
+ return tokens2;
+ }
+ /**
+ * Lexing/Compiling
+ */
+ inlineTokens(src, tokens2 = []) {
+ let token2, lastToken, cutSrc;
+ let maskedSrc = src;
+ let match2;
+ let keepPrevChar, prevChar;
+ if (this.tokens.links) {
+ const links3 = Object.keys(this.tokens.links);
+ if (links3.length > 0) {
+ while ((match2 = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {
+ if (links3.includes(match2[0].slice(match2[0].lastIndexOf("[") + 1, -1))) {
+ maskedSrc = maskedSrc.slice(0, match2.index) + "[" + "a".repeat(match2[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);
+ }
+ }
}
- return false;
}
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
+ while ((match2 = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
+ maskedSrc = maskedSrc.slice(0, match2.index) + "[" + "a".repeat(match2[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
}
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
+ while ((match2 = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {
+ maskedSrc = maskedSrc.slice(0, match2.index) + "++" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
}
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
+ while (src) {
+ if (!keepPrevChar) {
+ prevChar = "";
+ }
+ keepPrevChar = false;
+ if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some((extTokenizer) => {
+ if (token2 = extTokenizer.call({ lexer: this }, src, tokens2)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ return true;
+ }
+ return false;
+ })) {
+ continue;
+ }
+ if (token2 = this.tokenizer.escape(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.tag(src)) {
+ src = src.substring(token2.raw.length);
+ lastToken = tokens2[tokens2.length - 1];
+ if (lastToken && token2.type === "text" && lastToken.type === "text") {
+ lastToken.raw += token2.raw;
+ lastToken.text += token2.text;
+ } else {
+ tokens2.push(token2);
+ }
+ continue;
+ }
+ if (token2 = this.tokenizer.link(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.reflink(src, this.tokens.links)) {
+ src = src.substring(token2.raw.length);
+ lastToken = tokens2[tokens2.length - 1];
+ if (lastToken && token2.type === "text" && lastToken.type === "text") {
+ lastToken.raw += token2.raw;
+ lastToken.text += token2.text;
+ } else {
+ tokens2.push(token2);
+ }
+ continue;
+ }
+ if (token2 = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.codespan(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.br(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.del(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (token2 = this.tokenizer.autolink(src)) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ if (!this.state.inLink && (token2 = this.tokenizer.url(src))) {
+ src = src.substring(token2.raw.length);
+ tokens2.push(token2);
+ continue;
+ }
+ cutSrc = src;
+ if (this.options.extensions && this.options.extensions.startInline) {
+ let startIndex = Infinity;
+ const tempSrc = src.slice(1);
+ let tempStart;
+ this.options.extensions.startInline.forEach((getStartIndex) => {
+ tempStart = getStartIndex.call({ lexer: this }, tempSrc);
+ if (typeof tempStart === "number" && tempStart >= 0) {
+ startIndex = Math.min(startIndex, tempStart);
+ }
+ });
+ if (startIndex < Infinity && startIndex >= 0) {
+ cutSrc = src.substring(0, startIndex + 1);
+ }
+ }
+ if (token2 = this.tokenizer.inlineText(cutSrc)) {
+ src = src.substring(token2.raw.length);
+ if (token2.raw.slice(-1) !== "_") {
+ prevChar = token2.raw.slice(-1);
+ }
+ keepPrevChar = true;
+ lastToken = tokens2[tokens2.length - 1];
+ if (lastToken && lastToken.type === "text") {
+ lastToken.raw += token2.raw;
+ lastToken.text += token2.text;
+ } else {
+ tokens2.push(token2);
+ }
+ continue;
+ }
+ if (src) {
+ const errMsg = "Infinite loop on byte: " + src.charCodeAt(0);
+ if (this.options.silent) {
+ console.error(errMsg);
+ break;
+ } else {
+ throw new Error(errMsg);
+ }
+ }
}
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
+ return tokens2;
+ }
+ };
+ _Renderer = class {
+ static {
+ __name(this, "_Renderer");
+ }
+ options;
+ parser;
+ // set by the parser
+ constructor(options3) {
+ this.options = options3 || _defaults;
+ }
+ space(token2) {
+ return "";
+ }
+ code({ text: text2, lang, escaped }) {
+ const langString = (lang || "").match(/^\S*/)?.[0];
+ const code = text2.replace(/\n$/, "") + "\n";
+ if (!langString) {
+ return "" + (escaped ? code : escape$1(code, true)) + "
\n";
}
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
+ return '' + (escaped ? code : escape$1(code, true)) + "
\n";
+ }
+ blockquote({ tokens: tokens2 }) {
+ const body = this.parser.parse(tokens2);
+ return `
+${body}
+`;
+ }
+ html({ text: text2 }) {
+ return text2;
+ }
+ heading({ tokens: tokens2, depth }) {
+ return `${this.parser.parseInline(tokens2)}
+`;
+ }
+ hr(token2) {
+ return "
\n";
+ }
+ list(token2) {
+ const ordered = token2.ordered;
+ const start3 = token2.start;
+ let body = "";
+ for (let j2 = 0; j2 < token2.items.length; j2++) {
+ const item = token2.items[j2];
+ body += this.listitem(item);
+ }
+ const type3 = ordered ? "ol" : "ul";
+ const startAttr = ordered && start3 !== 1 ? ' start="' + start3 + '"' : "";
+ return "<" + type3 + startAttr + ">\n" + body + "" + type3 + ">\n";
+ }
+ listitem(item) {
+ let itemBody = "";
+ if (item.task) {
+ const checkbox = this.checkbox({ checked: !!item.checked });
+ if (item.loose) {
+ if (item.tokens.length > 0 && item.tokens[0].type === "paragraph") {
+ item.tokens[0].text = checkbox + " " + item.tokens[0].text;
+ if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === "text") {
+ item.tokens[0].tokens[0].text = checkbox + " " + item.tokens[0].tokens[0].text;
+ }
+ } else {
+ item.tokens.unshift({
+ type: "text",
+ raw: checkbox + " ",
+ text: checkbox + " "
+ });
+ }
+ } else {
+ itemBody += checkbox + " ";
+ }
}
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("acc_title");
- return 25;
- case 1:
- this.popState();
- return "acc_title_value";
- case 2:
- this.begin("acc_descr");
- return 27;
- case 3:
- this.popState();
- return "acc_descr_value";
- case 4:
- this.begin("acc_descr_multiline");
- break;
- case 5:
- this.popState();
- break;
- case 6:
- return "acc_descr_multiline_value";
- case 7:
- this.begin("open_directive");
- return 51;
- case 8:
- this.begin("type_directive");
- return 52;
- case 9:
- this.popState();
- this.begin("arg_directive");
- return 15;
- case 10:
- this.popState();
- this.popState();
- return 54;
- case 11:
- return 53;
- case 12:
- return 11;
- case 13:
- break;
- case 14:
- return 9;
- case 15:
- return 31;
- case 16:
- return 50;
- case 17:
- return 4;
- case 18:
- this.begin("block");
- return 20;
- case 19:
- return 39;
- case 20:
- break;
- case 21:
- return 40;
- case 22:
- return 37;
- case 23:
- return 37;
- case 24:
- return 41;
- case 25:
- break;
- case 26:
- this.popState();
- return 22;
- case 27:
- return yy_.yytext[0];
- case 28:
- return 44;
- case 29:
- return 46;
- case 30:
- return 46;
- case 31:
- return 46;
- case 32:
- return 44;
- case 33:
- return 44;
- case 34:
- return 45;
- case 35:
- return 45;
- case 36:
- return 45;
- case 37:
- return 45;
- case 38:
- return 45;
- case 39:
- return 46;
- case 40:
- return 45;
- case 41:
- return 46;
- case 42:
- return 47;
- case 43:
- return 47;
- case 44:
- return 47;
- case 45:
- return 47;
- case 46:
- return 44;
- case 47:
- return 45;
- case 48:
- return 46;
- case 49:
- return 48;
- case 50:
- return 49;
- case 51:
- return 49;
- case 52:
- return 48;
- case 53:
- return 48;
- case 54:
- return 48;
- case 55:
- return 30;
- case 56:
- return yy_.yytext[0];
- case 57:
- return 6;
+ itemBody += this.parser.parse(item.tokens, !!item.loose);
+ return `${itemBody}
+`;
+ }
+ checkbox({ checked }) {
+ return "';
+ }
+ paragraph({ tokens: tokens2 }) {
+ return `${this.parser.parseInline(tokens2)}
+`;
+ }
+ table(token2) {
+ let header = "";
+ let cell = "";
+ for (let j2 = 0; j2 < token2.header.length; j2++) {
+ cell += this.tablecell(token2.header[j2]);
+ }
+ header += this.tablerow({ text: cell });
+ let body = "";
+ for (let j2 = 0; j2 < token2.rows.length; j2++) {
+ const row = token2.rows[j2];
+ cell = "";
+ for (let k2 = 0; k2 < row.length; k2++) {
+ cell += this.tablecell(row[k2]);
+ }
+ body += this.tablerow({ text: cell });
+ }
+ if (body)
+ body = `${body}`;
+ return "\n\n" + header + "\n" + body + "
\n";
+ }
+ tablerow({ text: text2 }) {
+ return `
+${text2}
+`;
+ }
+ tablecell(token2) {
+ const content = this.parser.parseInline(token2.tokens);
+ const type3 = token2.header ? "th" : "td";
+ const tag2 = token2.align ? `<${type3} align="${token2.align}">` : `<${type3}>`;
+ return tag2 + content + `${type3}>
+`;
+ }
+ /**
+ * span level renderer
+ */
+ strong({ tokens: tokens2 }) {
+ return `${this.parser.parseInline(tokens2)}`;
+ }
+ em({ tokens: tokens2 }) {
+ return `${this.parser.parseInline(tokens2)}`;
+ }
+ codespan({ text: text2 }) {
+ return `${text2}
`;
+ }
+ br(token2) {
+ return "
";
+ }
+ del({ tokens: tokens2 }) {
+ return `${this.parser.parseInline(tokens2)}`;
+ }
+ link({ href, title: title2, tokens: tokens2 }) {
+ const text2 = this.parser.parseInline(tokens2);
+ const cleanHref = cleanUrl(href);
+ if (cleanHref === null) {
+ return text2;
}
- },
- rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i],
- conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "open_directive": { "rules": [8], "inclusive": false }, "type_directive": { "rules": [9, 10], "inclusive": false }, "arg_directive": { "rules": [10, 11], "inclusive": false }, "block": { "rules": [19, 20, 21, 22, 23, 24, 25, 26, 27], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "inclusive": true } }
+ href = cleanHref;
+ let out = '" + text2 + "";
+ return out;
+ }
+ image({ href, title: title2, text: text2 }) {
+ const cleanHref = cleanUrl(href);
+ if (cleanHref === null) {
+ return text2;
+ }
+ href = cleanHref;
+ let out = `";
+ return out;
+ }
+ text(token2) {
+ return "tokens" in token2 && token2.tokens ? this.parser.parseInline(token2.tokens) : token2.text;
+ }
};
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$j.parser = parser$j;
- const erParser = parser$j;
- let entities = {};
- let relationships = [];
- const Cardinality = {
- ZERO_OR_ONE: "ZERO_OR_ONE",
- ZERO_OR_MORE: "ZERO_OR_MORE",
- ONE_OR_MORE: "ONE_OR_MORE",
- ONLY_ONE: "ONLY_ONE"
- };
- const Identification = {
- NON_IDENTIFYING: "NON_IDENTIFYING",
- IDENTIFYING: "IDENTIFYING"
- };
- const parseDirective$9 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const addEntity = function(name2) {
- if (entities[name2] === void 0) {
- entities[name2] = { attributes: [] };
- log$1.info("Added new entity :", name2);
+ _TextRenderer = class {
+ static {
+ __name(this, "_TextRenderer");
+ }
+ // no need for block level renderers
+ strong({ text: text2 }) {
+ return text2;
+ }
+ em({ text: text2 }) {
+ return text2;
+ }
+ codespan({ text: text2 }) {
+ return text2;
+ }
+ del({ text: text2 }) {
+ return text2;
+ }
+ html({ text: text2 }) {
+ return text2;
+ }
+ text({ text: text2 }) {
+ return text2;
+ }
+ link({ text: text2 }) {
+ return "" + text2;
+ }
+ image({ text: text2 }) {
+ return "" + text2;
+ }
+ br() {
+ return "";
+ }
+ };
+ _Parser = class __Parser {
+ static {
+ __name(this, "_Parser");
+ }
+ options;
+ renderer;
+ textRenderer;
+ constructor(options3) {
+ this.options = options3 || _defaults;
+ this.options.renderer = this.options.renderer || new _Renderer();
+ this.renderer = this.options.renderer;
+ this.renderer.options = this.options;
+ this.renderer.parser = this;
+ this.textRenderer = new _TextRenderer();
+ }
+ /**
+ * Static Parse Method
+ */
+ static parse(tokens2, options3) {
+ const parser22 = new __Parser(options3);
+ return parser22.parse(tokens2);
+ }
+ /**
+ * Static Parse Inline Method
+ */
+ static parseInline(tokens2, options3) {
+ const parser22 = new __Parser(options3);
+ return parser22.parseInline(tokens2);
+ }
+ /**
+ * Parse Loop
+ */
+ parse(tokens2, top2 = true) {
+ let out = "";
+ for (let i2 = 0; i2 < tokens2.length; i2++) {
+ const anyToken = tokens2[i2];
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[anyToken.type]) {
+ const genericToken = anyToken;
+ const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);
+ if (ret !== false || !["space", "hr", "heading", "code", "table", "blockquote", "list", "html", "paragraph", "text"].includes(genericToken.type)) {
+ out += ret || "";
+ continue;
+ }
+ }
+ const token2 = anyToken;
+ switch (token2.type) {
+ case "space": {
+ out += this.renderer.space(token2);
+ continue;
+ }
+ case "hr": {
+ out += this.renderer.hr(token2);
+ continue;
+ }
+ case "heading": {
+ out += this.renderer.heading(token2);
+ continue;
+ }
+ case "code": {
+ out += this.renderer.code(token2);
+ continue;
+ }
+ case "table": {
+ out += this.renderer.table(token2);
+ continue;
+ }
+ case "blockquote": {
+ out += this.renderer.blockquote(token2);
+ continue;
+ }
+ case "list": {
+ out += this.renderer.list(token2);
+ continue;
+ }
+ case "html": {
+ out += this.renderer.html(token2);
+ continue;
+ }
+ case "paragraph": {
+ out += this.renderer.paragraph(token2);
+ continue;
+ }
+ case "text": {
+ let textToken = token2;
+ let body = this.renderer.text(textToken);
+ while (i2 + 1 < tokens2.length && tokens2[i2 + 1].type === "text") {
+ textToken = tokens2[++i2];
+ body += "\n" + this.renderer.text(textToken);
+ }
+ if (top2) {
+ out += this.renderer.paragraph({
+ type: "paragraph",
+ raw: body,
+ text: body,
+ tokens: [{ type: "text", raw: body, text: body }]
+ });
+ } else {
+ out += body;
+ }
+ continue;
+ }
+ default: {
+ const errMsg = 'Token with "' + token2.type + '" type was not found.';
+ if (this.options.silent) {
+ console.error(errMsg);
+ return "";
+ } else {
+ throw new Error(errMsg);
+ }
+ }
+ }
+ }
+ return out;
+ }
+ /**
+ * Parse Inline Tokens
+ */
+ parseInline(tokens2, renderer8) {
+ renderer8 = renderer8 || this.renderer;
+ let out = "";
+ for (let i2 = 0; i2 < tokens2.length; i2++) {
+ const anyToken = tokens2[i2];
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[anyToken.type]) {
+ const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);
+ if (ret !== false || !["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text"].includes(anyToken.type)) {
+ out += ret || "";
+ continue;
+ }
+ }
+ const token2 = anyToken;
+ switch (token2.type) {
+ case "escape": {
+ out += renderer8.text(token2);
+ break;
+ }
+ case "html": {
+ out += renderer8.html(token2);
+ break;
+ }
+ case "link": {
+ out += renderer8.link(token2);
+ break;
+ }
+ case "image": {
+ out += renderer8.image(token2);
+ break;
+ }
+ case "strong": {
+ out += renderer8.strong(token2);
+ break;
+ }
+ case "em": {
+ out += renderer8.em(token2);
+ break;
+ }
+ case "codespan": {
+ out += renderer8.codespan(token2);
+ break;
+ }
+ case "br": {
+ out += renderer8.br(token2);
+ break;
+ }
+ case "del": {
+ out += renderer8.del(token2);
+ break;
+ }
+ case "text": {
+ out += renderer8.text(token2);
+ break;
+ }
+ default: {
+ const errMsg = 'Token with "' + token2.type + '" type was not found.';
+ if (this.options.silent) {
+ console.error(errMsg);
+ return "";
+ } else {
+ throw new Error(errMsg);
+ }
+ }
+ }
+ }
+ return out;
+ }
+ };
+ _Hooks = class {
+ static {
+ __name(this, "_Hooks");
+ }
+ options;
+ constructor(options3) {
+ this.options = options3 || _defaults;
+ }
+ static passThroughHooks = /* @__PURE__ */ new Set([
+ "preprocess",
+ "postprocess",
+ "processAllTokens"
+ ]);
+ /**
+ * Process markdown before marked
+ */
+ preprocess(markdown) {
+ return markdown;
+ }
+ /**
+ * Process HTML after marked is finished
+ */
+ postprocess(html2) {
+ return html2;
+ }
+ /**
+ * Process all tokens before walk tokens
+ */
+ processAllTokens(tokens2) {
+ return tokens2;
+ }
+ };
+ Marked = class {
+ static {
+ __name(this, "Marked");
+ }
+ defaults = _getDefaults();
+ options = this.setOptions;
+ parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);
+ parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);
+ Parser = _Parser;
+ Renderer = _Renderer;
+ TextRenderer = _TextRenderer;
+ Lexer = _Lexer;
+ Tokenizer = _Tokenizer;
+ Hooks = _Hooks;
+ constructor(...args) {
+ this.use(...args);
+ }
+ /**
+ * Run callback for every token
+ */
+ walkTokens(tokens2, callback) {
+ let values2 = [];
+ for (const token2 of tokens2) {
+ values2 = values2.concat(callback.call(this, token2));
+ switch (token2.type) {
+ case "table": {
+ const tableToken = token2;
+ for (const cell of tableToken.header) {
+ values2 = values2.concat(this.walkTokens(cell.tokens, callback));
+ }
+ for (const row of tableToken.rows) {
+ for (const cell of row) {
+ values2 = values2.concat(this.walkTokens(cell.tokens, callback));
+ }
+ }
+ break;
+ }
+ case "list": {
+ const listToken = token2;
+ values2 = values2.concat(this.walkTokens(listToken.items, callback));
+ break;
+ }
+ default: {
+ const genericToken = token2;
+ if (this.defaults.extensions?.childTokens?.[genericToken.type]) {
+ this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {
+ const tokens3 = genericToken[childTokens].flat(Infinity);
+ values2 = values2.concat(this.walkTokens(tokens3, callback));
+ });
+ } else if (genericToken.tokens) {
+ values2 = values2.concat(this.walkTokens(genericToken.tokens, callback));
+ }
+ }
+ }
+ }
+ return values2;
+ }
+ use(...args) {
+ const extensions2 = this.defaults.extensions || { renderers: {}, childTokens: {} };
+ args.forEach((pack) => {
+ const opts = { ...pack };
+ opts.async = this.defaults.async || opts.async || false;
+ if (pack.extensions) {
+ pack.extensions.forEach((ext) => {
+ if (!ext.name) {
+ throw new Error("extension name required");
+ }
+ if ("renderer" in ext) {
+ const prevRenderer = extensions2.renderers[ext.name];
+ if (prevRenderer) {
+ extensions2.renderers[ext.name] = function(...args2) {
+ let ret = ext.renderer.apply(this, args2);
+ if (ret === false) {
+ ret = prevRenderer.apply(this, args2);
+ }
+ return ret;
+ };
+ } else {
+ extensions2.renderers[ext.name] = ext.renderer;
+ }
+ }
+ if ("tokenizer" in ext) {
+ if (!ext.level || ext.level !== "block" && ext.level !== "inline") {
+ throw new Error("extension level must be 'block' or 'inline'");
+ }
+ const extLevel = extensions2[ext.level];
+ if (extLevel) {
+ extLevel.unshift(ext.tokenizer);
+ } else {
+ extensions2[ext.level] = [ext.tokenizer];
+ }
+ if (ext.start) {
+ if (ext.level === "block") {
+ if (extensions2.startBlock) {
+ extensions2.startBlock.push(ext.start);
+ } else {
+ extensions2.startBlock = [ext.start];
+ }
+ } else if (ext.level === "inline") {
+ if (extensions2.startInline) {
+ extensions2.startInline.push(ext.start);
+ } else {
+ extensions2.startInline = [ext.start];
+ }
+ }
+ }
+ }
+ if ("childTokens" in ext && ext.childTokens) {
+ extensions2.childTokens[ext.name] = ext.childTokens;
+ }
+ });
+ opts.extensions = extensions2;
+ }
+ if (pack.renderer) {
+ const renderer8 = this.defaults.renderer || new _Renderer(this.defaults);
+ for (const prop in pack.renderer) {
+ if (!(prop in renderer8)) {
+ throw new Error(`renderer '${prop}' does not exist`);
+ }
+ if (["options", "parser"].includes(prop)) {
+ continue;
+ }
+ const rendererProp = prop;
+ let rendererFunc = pack.renderer[rendererProp];
+ if (!pack.useNewRenderer) {
+ rendererFunc = this.#convertRendererFunction(rendererFunc, rendererProp, renderer8);
+ }
+ const prevRenderer = renderer8[rendererProp];
+ renderer8[rendererProp] = (...args2) => {
+ let ret = rendererFunc.apply(renderer8, args2);
+ if (ret === false) {
+ ret = prevRenderer.apply(renderer8, args2);
+ }
+ return ret || "";
+ };
+ }
+ opts.renderer = renderer8;
+ }
+ if (pack.tokenizer) {
+ const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);
+ for (const prop in pack.tokenizer) {
+ if (!(prop in tokenizer)) {
+ throw new Error(`tokenizer '${prop}' does not exist`);
+ }
+ if (["options", "rules", "lexer"].includes(prop)) {
+ continue;
+ }
+ const tokenizerProp = prop;
+ const tokenizerFunc = pack.tokenizer[tokenizerProp];
+ const prevTokenizer = tokenizer[tokenizerProp];
+ tokenizer[tokenizerProp] = (...args2) => {
+ let ret = tokenizerFunc.apply(tokenizer, args2);
+ if (ret === false) {
+ ret = prevTokenizer.apply(tokenizer, args2);
+ }
+ return ret;
+ };
+ }
+ opts.tokenizer = tokenizer;
+ }
+ if (pack.hooks) {
+ const hooks = this.defaults.hooks || new _Hooks();
+ for (const prop in pack.hooks) {
+ if (!(prop in hooks)) {
+ throw new Error(`hook '${prop}' does not exist`);
+ }
+ if (prop === "options") {
+ continue;
+ }
+ const hooksProp = prop;
+ const hooksFunc = pack.hooks[hooksProp];
+ const prevHook = hooks[hooksProp];
+ if (_Hooks.passThroughHooks.has(prop)) {
+ hooks[hooksProp] = (arg) => {
+ if (this.defaults.async) {
+ return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => {
+ return prevHook.call(hooks, ret2);
+ });
+ }
+ const ret = hooksFunc.call(hooks, arg);
+ return prevHook.call(hooks, ret);
+ };
+ } else {
+ hooks[hooksProp] = (...args2) => {
+ let ret = hooksFunc.apply(hooks, args2);
+ if (ret === false) {
+ ret = prevHook.apply(hooks, args2);
+ }
+ return ret;
+ };
+ }
+ }
+ opts.hooks = hooks;
+ }
+ if (pack.walkTokens) {
+ const walkTokens2 = this.defaults.walkTokens;
+ const packWalktokens = pack.walkTokens;
+ opts.walkTokens = function(token2) {
+ let values2 = [];
+ values2.push(packWalktokens.call(this, token2));
+ if (walkTokens2) {
+ values2 = values2.concat(walkTokens2.call(this, token2));
+ }
+ return values2;
+ };
+ }
+ this.defaults = { ...this.defaults, ...opts };
+ });
+ return this;
+ }
+ // TODO: Remove this in next major release
+ #convertRendererFunction(func, prop, renderer8) {
+ switch (prop) {
+ case "heading":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, renderer8.parser.parseInline(token2.tokens), token2.depth, unescape2(renderer8.parser.parseInline(token2.tokens, renderer8.parser.textRenderer)));
+ };
+ case "code":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, token2.text, token2.lang, !!token2.escaped);
+ };
+ case "table":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ let header = "";
+ let cell = "";
+ for (let j2 = 0; j2 < token2.header.length; j2++) {
+ cell += this.tablecell({
+ text: token2.header[j2].text,
+ tokens: token2.header[j2].tokens,
+ header: true,
+ align: token2.align[j2]
+ });
+ }
+ header += this.tablerow({ text: cell });
+ let body = "";
+ for (let j2 = 0; j2 < token2.rows.length; j2++) {
+ const row = token2.rows[j2];
+ cell = "";
+ for (let k2 = 0; k2 < row.length; k2++) {
+ cell += this.tablecell({
+ text: row[k2].text,
+ tokens: row[k2].tokens,
+ header: false,
+ align: token2.align[k2]
+ });
+ }
+ body += this.tablerow({ text: cell });
+ }
+ return func.call(this, header, body);
+ };
+ case "blockquote":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ const body = this.parser.parse(token2.tokens);
+ return func.call(this, body);
+ };
+ case "list":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ const ordered = token2.ordered;
+ const start3 = token2.start;
+ const loose = token2.loose;
+ let body = "";
+ for (let j2 = 0; j2 < token2.items.length; j2++) {
+ const item = token2.items[j2];
+ const checked = item.checked;
+ const task = item.task;
+ let itemBody = "";
+ if (item.task) {
+ const checkbox = this.checkbox({ checked: !!checked });
+ if (loose) {
+ if (item.tokens.length > 0 && item.tokens[0].type === "paragraph") {
+ item.tokens[0].text = checkbox + " " + item.tokens[0].text;
+ if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === "text") {
+ item.tokens[0].tokens[0].text = checkbox + " " + item.tokens[0].tokens[0].text;
+ }
+ } else {
+ item.tokens.unshift({
+ type: "text",
+ text: checkbox + " "
+ });
+ }
+ } else {
+ itemBody += checkbox + " ";
+ }
+ }
+ itemBody += this.parser.parse(item.tokens, loose);
+ body += this.listitem({
+ type: "list_item",
+ raw: itemBody,
+ text: itemBody,
+ task,
+ checked: !!checked,
+ loose,
+ tokens: item.tokens
+ });
+ }
+ return func.call(this, body, ordered, start3);
+ };
+ case "html":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, token2.text, token2.block);
+ };
+ case "paragraph":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, this.parser.parseInline(token2.tokens));
+ };
+ case "escape":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, token2.text);
+ };
+ case "link":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, token2.href, token2.title, this.parser.parseInline(token2.tokens));
+ };
+ case "image":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, token2.href, token2.title, token2.text);
+ };
+ case "strong":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, this.parser.parseInline(token2.tokens));
+ };
+ case "em":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, this.parser.parseInline(token2.tokens));
+ };
+ case "codespan":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, token2.text);
+ };
+ case "del":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, this.parser.parseInline(token2.tokens));
+ };
+ case "text":
+ return function(token2) {
+ if (!token2.type || token2.type !== prop) {
+ return func.apply(this, arguments);
+ }
+ return func.call(this, token2.text);
+ };
+ }
+ return func;
+ }
+ setOptions(opt) {
+ this.defaults = { ...this.defaults, ...opt };
+ return this;
+ }
+ lexer(src, options3) {
+ return _Lexer.lex(src, options3 ?? this.defaults);
+ }
+ parser(tokens2, options3) {
+ return _Parser.parse(tokens2, options3 ?? this.defaults);
+ }
+ #parseMarkdown(lexer2, parser22) {
+ return (src, options3) => {
+ const origOpt = { ...options3 };
+ const opt = { ...this.defaults, ...origOpt };
+ if (this.defaults.async === true && origOpt.async === false) {
+ if (!opt.silent) {
+ console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.");
+ }
+ opt.async = true;
+ }
+ const throwError2 = this.#onError(!!opt.silent, !!opt.async);
+ if (typeof src === "undefined" || src === null) {
+ return throwError2(new Error("marked(): input parameter is undefined or null"));
+ }
+ if (typeof src !== "string") {
+ return throwError2(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(src) + ", string expected"));
+ }
+ if (opt.hooks) {
+ opt.hooks.options = opt;
+ }
+ if (opt.async) {
+ return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens2) => opt.hooks ? opt.hooks.processAllTokens(tokens2) : tokens2).then((tokens2) => opt.walkTokens ? Promise.all(this.walkTokens(tokens2, opt.walkTokens)).then(() => tokens2) : tokens2).then((tokens2) => parser22(tokens2, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError2);
+ }
+ try {
+ if (opt.hooks) {
+ src = opt.hooks.preprocess(src);
+ }
+ let tokens2 = lexer2(src, opt);
+ if (opt.hooks) {
+ tokens2 = opt.hooks.processAllTokens(tokens2);
+ }
+ if (opt.walkTokens) {
+ this.walkTokens(tokens2, opt.walkTokens);
+ }
+ let html2 = parser22(tokens2, opt);
+ if (opt.hooks) {
+ html2 = opt.hooks.postprocess(html2);
+ }
+ return html2;
+ } catch (e3) {
+ return throwError2(e3);
+ }
+ };
+ }
+ #onError(silent, async) {
+ return (e3) => {
+ e3.message += "\nPlease report this to https://github.com/markedjs/marked.";
+ if (silent) {
+ const msg = "An error occurred:
" + escape$1(e3.message + "", true) + "
";
+ if (async) {
+ return Promise.resolve(msg);
+ }
+ return msg;
+ }
+ if (async) {
+ return Promise.reject(e3);
+ }
+ throw e3;
+ };
+ }
+ };
+ markedInstance = new Marked();
+ __name(marked, "marked");
+ marked.options = marked.setOptions = function(options3) {
+ markedInstance.setOptions(options3);
+ marked.defaults = markedInstance.defaults;
+ changeDefaults(marked.defaults);
+ return marked;
+ };
+ marked.getDefaults = _getDefaults;
+ marked.defaults = _defaults;
+ marked.use = function(...args) {
+ markedInstance.use(...args);
+ marked.defaults = markedInstance.defaults;
+ changeDefaults(marked.defaults);
+ return marked;
+ };
+ marked.walkTokens = function(tokens2, callback) {
+ return markedInstance.walkTokens(tokens2, callback);
+ };
+ marked.parseInline = markedInstance.parseInline;
+ marked.Parser = _Parser;
+ marked.parser = _Parser.parse;
+ marked.Renderer = _Renderer;
+ marked.TextRenderer = _TextRenderer;
+ marked.Lexer = _Lexer;
+ marked.lexer = _Lexer.lex;
+ marked.Tokenizer = _Tokenizer;
+ marked.Hooks = _Hooks;
+ marked.parse = marked;
+ options = marked.options;
+ setOptions = marked.setOptions;
+ use = marked.use;
+ walkTokens = marked.walkTokens;
+ parseInline = marked.parseInline;
+ parser2 = _Parser.parse;
+ lexer = _Lexer.lex;
}
- return entities[name2];
- };
- const getEntities = () => entities;
- const addAttributes = function(entityName, attribs) {
- let entity = addEntity(entityName);
- let i2;
- for (i2 = attribs.length - 1; i2 >= 0; i2--) {
- entity.attributes.push(attribs[i2]);
- log$1.debug("Added attribute ", attribs[i2].attributeName);
+ });
+
+ // src/rendering-util/handle-markdown-text.ts
+ function preprocessMarkdown(markdown, { markdownAutoWrap }) {
+ const withoutBR = markdown.replace(/
/g, "\n");
+ const withoutMultipleNewlines = withoutBR.replace(/\n{2,}/g, "\n");
+ const withoutExtraSpaces = dedent(withoutMultipleNewlines);
+ if (markdownAutoWrap === false) {
+ return withoutExtraSpaces.replace(/ /g, " ");
}
- };
- const addRelationship$1 = function(entA, rolA, entB, rSpec) {
- let rel = {
- entityA: entA,
- roleA: rolA,
- entityB: entB,
- relSpec: rSpec
- };
- relationships.push(rel);
- log$1.debug("Added new relationship :", rel);
- };
- const getRelationships$1 = () => relationships;
- const clear$b = function() {
- entities = {};
- relationships = [];
- clear$i();
- };
- const erDb = {
- Cardinality,
- Identification,
- parseDirective: parseDirective$9,
- getConfig: () => getConfig$1().er,
- addEntity,
- addAttributes,
- getEntities,
- addRelationship: addRelationship$1,
- getRelationships: getRelationships$1,
- clear: clear$b,
- setAccTitle,
- getAccTitle,
- setAccDescription,
- getAccDescription,
- setDiagramTitle,
- getDiagramTitle
- };
- const ERMarkers = {
- ONLY_ONE_START: "ONLY_ONE_START",
- ONLY_ONE_END: "ONLY_ONE_END",
- ZERO_OR_ONE_START: "ZERO_OR_ONE_START",
- ZERO_OR_ONE_END: "ZERO_OR_ONE_END",
- ONE_OR_MORE_START: "ONE_OR_MORE_START",
- ONE_OR_MORE_END: "ONE_OR_MORE_END",
- ZERO_OR_MORE_START: "ZERO_OR_MORE_START",
- ZERO_OR_MORE_END: "ZERO_OR_MORE_END"
- };
- const insertMarkers$2 = function(elem, conf2) {
- let marker;
- elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18");
- elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18");
- marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
- marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6);
- marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18");
- marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
- marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6);
- marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,0 L21,18");
- elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
- elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
- marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
- marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6);
- marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
- marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
- marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6);
- marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
- return;
- };
- const erMarkers = {
- ERMarkers,
- insertMarkers: insertMarkers$2
- };
- const REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
- function validate(uuid) {
- return typeof uuid === "string" && REGEX.test(uuid);
+ return withoutExtraSpaces;
}
- const byteToHex = [];
- for (let i2 = 0; i2 < 256; ++i2) {
- byteToHex.push((i2 + 256).toString(16).slice(1));
+ function markdownToLines(markdown, config6 = {}) {
+ const preprocessedMarkdown = preprocessMarkdown(markdown, config6);
+ const nodes6 = marked.lexer(preprocessedMarkdown);
+ const lines = [[]];
+ let currentLine = 0;
+ function processNode(node2, parentType = "normal") {
+ if (node2.type === "text") {
+ const textLines = node2.text.split("\n");
+ textLines.forEach((textLine, index) => {
+ if (index !== 0) {
+ currentLine++;
+ lines.push([]);
+ }
+ textLine.split(" ").forEach((word) => {
+ if (word) {
+ lines[currentLine].push({ content: word, type: parentType });
+ }
+ });
+ });
+ } else if (node2.type === "strong" || node2.type === "em") {
+ node2.tokens.forEach((contentNode) => {
+ processNode(contentNode, node2.type);
+ });
+ } else if (node2.type === "html") {
+ lines[currentLine].push({ content: node2.text, type: "normal" });
+ }
+ }
+ __name(processNode, "processNode");
+ nodes6.forEach((treeNode) => {
+ if (treeNode.type === "paragraph") {
+ treeNode.tokens?.forEach((contentNode) => {
+ processNode(contentNode);
+ });
+ } else if (treeNode.type === "html") {
+ lines[currentLine].push({ content: treeNode.text, type: "normal" });
+ }
+ });
+ return lines;
}
- function unsafeStringify(arr, offset = 0) {
- return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
+ function markdownToHTML(markdown, { markdownAutoWrap } = {}) {
+ const nodes6 = marked.lexer(markdown);
+ function output2(node2) {
+ if (node2.type === "text") {
+ if (markdownAutoWrap === false) {
+ return node2.text.replace(/\n */g, "
").replace(/ /g, " ");
+ }
+ return node2.text.replace(/\n */g, "
");
+ } else if (node2.type === "strong") {
+ return `${node2.tokens?.map(output2).join("")}`;
+ } else if (node2.type === "em") {
+ return `${node2.tokens?.map(output2).join("")}`;
+ } else if (node2.type === "paragraph") {
+ return `${node2.tokens?.map(output2).join("")}
`;
+ } else if (node2.type === "space") {
+ return "";
+ } else if (node2.type === "html") {
+ return `${node2.text}`;
+ }
+ return `Unsupported markdown: ${node2.type}`;
+ }
+ __name(output2, "output");
+ return nodes6.map(output2).join("");
}
- function parse(uuid) {
- if (!validate(uuid)) {
- throw TypeError("Invalid UUID");
+ var init_handle_markdown_text = __esm({
+ "src/rendering-util/handle-markdown-text.ts"() {
+ "use strict";
+ init_marked_esm();
+ init_esm();
+ __name(preprocessMarkdown, "preprocessMarkdown");
+ __name(markdownToLines, "markdownToLines");
+ __name(markdownToHTML, "markdownToHTML");
}
- let v;
- const arr = new Uint8Array(16);
- arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
- arr[1] = v >>> 16 & 255;
- arr[2] = v >>> 8 & 255;
- arr[3] = v & 255;
- arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
- arr[5] = v & 255;
- arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
- arr[7] = v & 255;
- arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
- arr[9] = v & 255;
- arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255;
- arr[11] = v / 4294967296 & 255;
- arr[12] = v >>> 24 & 255;
- arr[13] = v >>> 16 & 255;
- arr[14] = v >>> 8 & 255;
- arr[15] = v & 255;
- return arr;
+ });
+
+ // src/rendering-util/splitText.ts
+ function splitTextToChars(text2) {
+ if (Intl.Segmenter) {
+ return [...new Intl.Segmenter().segment(text2)].map((s2) => s2.segment);
+ }
+ return [...text2];
+ }
+ function splitWordToFitWidth(checkFit, word) {
+ const characters2 = splitTextToChars(word.content);
+ return splitWordToFitWidthRecursion(checkFit, [], characters2, word.type);
+ }
+ function splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type3) {
+ if (remainingChars.length === 0) {
+ return [
+ { content: usedChars.join(""), type: type3 },
+ { content: "", type: type3 }
+ ];
+ }
+ const [nextChar, ...rest] = remainingChars;
+ const newWord = [...usedChars, nextChar];
+ if (checkFit([{ content: newWord.join(""), type: type3 }])) {
+ return splitWordToFitWidthRecursion(checkFit, newWord, rest, type3);
+ }
+ if (usedChars.length === 0 && nextChar) {
+ usedChars.push(nextChar);
+ remainingChars.shift();
+ }
+ return [
+ { content: usedChars.join(""), type: type3 },
+ { content: remainingChars.join(""), type: type3 }
+ ];
}
- function stringToBytes(str2) {
- str2 = unescape(encodeURIComponent(str2));
- const bytes = [];
- for (let i2 = 0; i2 < str2.length; ++i2) {
- bytes.push(str2.charCodeAt(i2));
+ function splitLineToFitWidth(line2, checkFit) {
+ if (line2.some(({ content }) => content.includes("\n"))) {
+ throw new Error("splitLineToFitWidth does not support newlines in the line");
}
- return bytes;
+ return splitLineToFitWidthRecursion(line2, checkFit);
}
- const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
- const URL$1 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
- function v35(name2, version2, hashfunc) {
- function generateUUID(value, namespace2, buf, offset) {
- var _namespace;
- if (typeof value === "string") {
- value = stringToBytes(value);
- }
- if (typeof namespace2 === "string") {
- namespace2 = parse(namespace2);
- }
- if (((_namespace = namespace2) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
- throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
+ function splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {
+ if (words.length === 0) {
+ if (newLine.length > 0) {
+ lines.push(newLine);
}
- let bytes = new Uint8Array(16 + value.length);
- bytes.set(namespace2);
- bytes.set(value, namespace2.length);
- bytes = hashfunc(bytes);
- bytes[6] = bytes[6] & 15 | version2;
- bytes[8] = bytes[8] & 63 | 128;
- if (buf) {
- offset = offset || 0;
- for (let i2 = 0; i2 < 16; ++i2) {
- buf[offset + i2] = bytes[i2];
- }
- return buf;
+ return lines.length > 0 ? lines : [];
+ }
+ let joiner = "";
+ if (words[0].content === " ") {
+ joiner = " ";
+ words.shift();
+ }
+ const nextWord = words.shift() ?? { content: " ", type: "normal" };
+ const lineWithNextWord = [...newLine];
+ if (joiner !== "") {
+ lineWithNextWord.push({ content: joiner, type: "normal" });
+ }
+ lineWithNextWord.push(nextWord);
+ if (checkFit(lineWithNextWord)) {
+ return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);
+ }
+ if (newLine.length > 0) {
+ lines.push(newLine);
+ words.unshift(nextWord);
+ } else if (nextWord.content) {
+ const [line2, rest] = splitWordToFitWidth(checkFit, nextWord);
+ lines.push([line2]);
+ if (rest.content) {
+ words.unshift(rest);
}
- return unsafeStringify(bytes);
}
- try {
- generateUUID.name = name2;
- } catch (err) {
+ return splitLineToFitWidthRecursion(words, checkFit, lines);
+ }
+ var init_splitText = __esm({
+ "src/rendering-util/splitText.ts"() {
+ "use strict";
+ __name(splitTextToChars, "splitTextToChars");
+ __name(splitWordToFitWidth, "splitWordToFitWidth");
+ __name(splitWordToFitWidthRecursion, "splitWordToFitWidthRecursion");
+ __name(splitLineToFitWidth, "splitLineToFitWidth");
+ __name(splitLineToFitWidthRecursion, "splitLineToFitWidthRecursion");
+ }
+ });
+
+ // src/rendering-util/createText.ts
+ function applyStyle(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
}
- generateUUID.DNS = DNS;
- generateUUID.URL = URL$1;
- return generateUUID;
}
- function f(s, x2, y2, z) {
- switch (s) {
- case 0:
- return x2 & y2 ^ ~x2 & z;
- case 1:
- return x2 ^ y2 ^ z;
- case 2:
- return x2 & y2 ^ x2 & z ^ y2 & z;
- case 3:
- return x2 ^ y2 ^ z;
+ async function addHtmlSpan(element3, node2, width3, classes6, addBackground = false) {
+ const fo = element3.append("foreignObject");
+ const div = fo.append("xhtml:div");
+ let label = node2.label;
+ if (node2.label && hasKatex(node2.label)) {
+ label = await renderKatex(node2.label.replace(common_default.lineBreakRegex, "\n"), getConfig2());
+ }
+ const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
+ const span = div.append("span");
+ span.html(label);
+ applyStyle(span, node2.labelStyle);
+ span.attr("class", `${labelClass} ${classes6}`);
+ applyStyle(div, node2.labelStyle);
+ div.style("display", "table-cell");
+ div.style("white-space", "nowrap");
+ div.style("line-height", "1.5");
+ div.style("max-width", width3 + "px");
+ div.style("text-align", "center");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ if (addBackground) {
+ div.attr("class", "labelBkg");
+ }
+ let bbox = div.node().getBoundingClientRect();
+ if (bbox.width === width3) {
+ div.style("display", "table");
+ div.style("white-space", "break-spaces");
+ div.style("width", width3 + "px");
+ bbox = div.node().getBoundingClientRect();
}
+ return fo.node();
}
- function ROTL(x2, n) {
- return x2 << n | x2 >>> 32 - n;
+ function createTspan(textElement, lineIndex, lineHeight) {
+ return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
}
- function sha1(bytes) {
- const K2 = [1518500249, 1859775393, 2400959708, 3395469782];
- const H2 = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
- if (typeof bytes === "string") {
- const msg = unescape(encodeURIComponent(bytes));
- bytes = [];
- for (let i2 = 0; i2 < msg.length; ++i2) {
- bytes.push(msg.charCodeAt(i2));
- }
- } else if (!Array.isArray(bytes)) {
- bytes = Array.prototype.slice.call(bytes);
- }
- bytes.push(128);
- const l = bytes.length / 4 + 2;
- const N = Math.ceil(l / 16);
- const M2 = new Array(N);
- for (let i2 = 0; i2 < N; ++i2) {
- const arr = new Uint32Array(16);
- for (let j = 0; j < 16; ++j) {
- arr[j] = bytes[i2 * 64 + j * 4] << 24 | bytes[i2 * 64 + j * 4 + 1] << 16 | bytes[i2 * 64 + j * 4 + 2] << 8 | bytes[i2 * 64 + j * 4 + 3];
+ function computeWidthOfText(parentNode, lineHeight, line2) {
+ const testElement = parentNode.append("text");
+ const testSpan = createTspan(testElement, 1, lineHeight);
+ updateTextContentAndStyles(testSpan, line2);
+ const textLength = testSpan.node().getComputedTextLength();
+ testElement.remove();
+ return textLength;
+ }
+ function computeDimensionOfText(parentNode, lineHeight, text2) {
+ const testElement = parentNode.append("text");
+ const testSpan = createTspan(testElement, 1, lineHeight);
+ updateTextContentAndStyles(testSpan, [{ content: text2, type: "normal" }]);
+ const textDimension = testSpan.node()?.getBoundingClientRect();
+ if (textDimension) {
+ testElement.remove();
+ }
+ return textDimension;
+ }
+ function createFormattedText(width3, g2, structuredText, addBackground = false) {
+ const lineHeight = 1.1;
+ const labelGroup = g2.append("g");
+ const bkg = labelGroup.insert("rect").attr("class", "background").attr("style", "stroke: none");
+ const textElement = labelGroup.append("text").attr("y", "-10.1");
+ let lineIndex = 0;
+ for (const line2 of structuredText) {
+ const checkWidth = /* @__PURE__ */ __name((line3) => computeWidthOfText(labelGroup, lineHeight, line3) <= width3, "checkWidth");
+ const linesUnderWidth = checkWidth(line2) ? [line2] : splitLineToFitWidth(line2, checkWidth);
+ for (const preparedLine of linesUnderWidth) {
+ const tspan = createTspan(textElement, lineIndex, lineHeight);
+ updateTextContentAndStyles(tspan, preparedLine);
+ lineIndex++;
}
- M2[i2] = arr;
}
- M2[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
- M2[N - 1][14] = Math.floor(M2[N - 1][14]);
- M2[N - 1][15] = (bytes.length - 1) * 8 & 4294967295;
- for (let i2 = 0; i2 < N; ++i2) {
- const W2 = new Uint32Array(80);
- for (let t4 = 0; t4 < 16; ++t4) {
- W2[t4] = M2[i2][t4];
- }
- for (let t4 = 16; t4 < 80; ++t4) {
- W2[t4] = ROTL(W2[t4 - 3] ^ W2[t4 - 8] ^ W2[t4 - 14] ^ W2[t4 - 16], 1);
- }
- let a = H2[0];
- let b = H2[1];
- let c2 = H2[2];
- let d = H2[3];
- let e = H2[4];
- for (let t4 = 0; t4 < 80; ++t4) {
- const s = Math.floor(t4 / 20);
- const T = ROTL(a, 5) + f(s, b, c2, d) + e + K2[s] + W2[t4] >>> 0;
- e = d;
- d = c2;
- c2 = ROTL(b, 30) >>> 0;
- b = a;
- a = T;
- }
- H2[0] = H2[0] + a >>> 0;
- H2[1] = H2[1] + b >>> 0;
- H2[2] = H2[2] + c2 >>> 0;
- H2[3] = H2[3] + d >>> 0;
- H2[4] = H2[4] + e >>> 0;
+ if (addBackground) {
+ const bbox = textElement.node().getBBox();
+ const padding3 = 2;
+ bkg.attr("x", -padding3).attr("y", -padding3).attr("width", bbox.width + 2 * padding3).attr("height", bbox.height + 2 * padding3);
+ return labelGroup.node();
+ } else {
+ return textElement.node();
}
- return [H2[0] >> 24 & 255, H2[0] >> 16 & 255, H2[0] >> 8 & 255, H2[0] & 255, H2[1] >> 24 & 255, H2[1] >> 16 & 255, H2[1] >> 8 & 255, H2[1] & 255, H2[2] >> 24 & 255, H2[2] >> 16 & 255, H2[2] >> 8 & 255, H2[2] & 255, H2[3] >> 24 & 255, H2[3] >> 16 & 255, H2[3] >> 8 & 255, H2[3] & 255, H2[4] >> 24 & 255, H2[4] >> 16 & 255, H2[4] >> 8 & 255, H2[4] & 255];
}
- const v5 = v35("v5", 80, sha1);
- const uuid5 = v5;
- const BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g;
- let conf$7 = {};
- let entityNameIds = /* @__PURE__ */ new Map();
- const setConf$6 = function(cnf) {
- const keys2 = Object.keys(cnf);
- for (const key of keys2) {
- conf$7[key] = cnf[key];
- }
- };
- const drawAttributes = (groupNode, entityTextNode, attributes) => {
- const heightPadding = conf$7.entityPadding / 3;
- const widthPadding = conf$7.entityPadding / 3;
- const attrFontSize = conf$7.fontSize * 0.85;
- const labelBBox = entityTextNode.node().getBBox();
- const attributeNodes = [];
- let hasKeyType = false;
- let hasComment = false;
- let maxTypeWidth = 0;
- let maxNameWidth = 0;
- let maxKeyWidth = 0;
- let maxCommentWidth = 0;
- let cumulativeHeight = labelBBox.height + heightPadding * 2;
- let attrNum = 1;
- attributes.forEach((item) => {
- if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {
- hasKeyType = true;
- }
- if (item.attributeComment !== void 0) {
- hasComment = true;
+ function updateTextContentAndStyles(tspan, wrappedLine) {
+ tspan.text("");
+ wrappedLine.forEach((word, index) => {
+ const innerTspan = tspan.append("tspan").attr("font-style", word.type === "em" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal");
+ if (index === 0) {
+ innerTspan.text(word.content);
+ } else {
+ innerTspan.text(" " + word.content);
}
});
- attributes.forEach((item) => {
- const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;
- let nodeHeight = 0;
- const attributeType = parseGenericTypes(item.attributeType);
- const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(attributeType);
- const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName);
- const attributeNode = {};
- attributeNode.tn = typeNode;
- attributeNode.nn = nameNode;
- const typeBBox = typeNode.node().getBBox();
- const nameBBox = nameNode.node().getBBox();
- maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);
- maxNameWidth = Math.max(maxNameWidth, nameBBox.width);
- nodeHeight = Math.max(typeBBox.height, nameBBox.height);
- if (hasKeyType) {
- const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : "";
- const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText);
- attributeNode.kn = keyTypeNode;
- const keyTypeBBox = keyTypeNode.node().getBBox();
- maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);
- nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);
- }
- if (hasComment) {
- const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || "");
- attributeNode.cn = commentNode;
- const commentNodeBBox = commentNode.node().getBBox();
- maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);
- nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);
- }
- attributeNode.height = nodeHeight;
- attributeNodes.push(attributeNode);
- cumulativeHeight += nodeHeight + heightPadding * 2;
- attrNum += 1;
- });
- let widthPaddingFactor = 4;
- if (hasKeyType) {
- widthPaddingFactor += 2;
- }
- if (hasComment) {
- widthPaddingFactor += 2;
- }
- const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;
- const bBox = {
- width: Math.max(
- conf$7.minEntityWidth,
- Math.max(
- labelBBox.width + conf$7.entityPadding * 2,
- maxWidth + widthPadding * widthPaddingFactor
- )
- ),
- height: attributes.length > 0 ? cumulativeHeight : Math.max(conf$7.minEntityHeight, labelBBox.height + conf$7.entityPadding * 2)
- };
- if (attributes.length > 0) {
- const spareColumnWidth = Math.max(
- 0,
- (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)
- );
- entityTextNode.attr(
- "transform",
- "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")"
- );
- let heightOffset = labelBBox.height + heightPadding * 2;
- let attribStyle = "attributeBoxOdd";
- attributeNodes.forEach((attributeNode) => {
- const alignY = heightOffset + heightPadding + attributeNode.height / 2;
- attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")");
- const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
- const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width"));
- attributeNode.nn.attr(
- "transform",
- "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")"
+ }
+ function replaceIconSubstring(text2) {
+ return text2.replace(
+ /fa[bklrs]?:fa-[\w-]+/g,
+ // cspell: disable-line
+ (s2) => ``
+ );
+ }
+ var createText;
+ var init_createText = __esm({
+ "src/rendering-util/createText.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ init_src32();
+ init_logger();
+ init_handle_markdown_text();
+ init_utils2();
+ init_splitText();
+ __name(applyStyle, "applyStyle");
+ __name(addHtmlSpan, "addHtmlSpan");
+ __name(createTspan, "createTspan");
+ __name(computeWidthOfText, "computeWidthOfText");
+ __name(computeDimensionOfText, "computeDimensionOfText");
+ __name(createFormattedText, "createFormattedText");
+ __name(updateTextContentAndStyles, "updateTextContentAndStyles");
+ __name(replaceIconSubstring, "replaceIconSubstring");
+ createText = /* @__PURE__ */ __name(async (el, text2 = "", {
+ style: style3 = "",
+ isTitle = false,
+ classes: classes6 = "",
+ useHtmlLabels = true,
+ isNode: isNode2 = true,
+ width: width3 = 200,
+ addSvgBackground = false
+ } = {}, config6) => {
+ log.info(
+ "XYZ createText",
+ text2,
+ style3,
+ isTitle,
+ classes6,
+ useHtmlLabels,
+ isNode2,
+ "addSvgBackground: ",
+ addSvgBackground
);
- const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
- let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width"));
- if (hasKeyType) {
- attributeNode.kn.attr(
- "transform",
- "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
- );
- const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
- keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width"));
- }
- if (hasComment) {
- attributeNode.cn.attr(
- "transform",
- "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
+ if (useHtmlLabels) {
+ const htmlText = markdownToHTML(text2, config6);
+ const decodedReplacedText = replaceIconSubstring(decodeEntities(htmlText));
+ const inputForKatex = text2.replace(/\\\\/g, "\\");
+ const node2 = {
+ isNode: isNode2,
+ label: hasKatex(text2) ? inputForKatex : decodedReplacedText,
+ labelStyle: style3.replace("fill:", "color:")
+ };
+ const vertexNode = await addHtmlSpan(el, node2, width3, classes6, addSvgBackground);
+ return vertexNode;
+ } else {
+ const sanitizeBR = text2.replace(/
/g, "
");
+ const structuredText = markdownToLines(sanitizeBR.replace("
", "
"), config6);
+ const svgLabel = createFormattedText(
+ width3,
+ el,
+ structuredText,
+ text2 ? addSvgBackground : false
);
- groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ if (isNode2) {
+ if (/stroke:/.exec(style3)) {
+ style3 = style3.replace("stroke:", "lineColor:");
+ }
+ const nodeLabelTextStyle = style3.replace(/stroke:[^;]+;?/g, "").replace(/stroke-width:[^;]+;?/g, "").replace(/fill:[^;]+;?/g, "").replace(/color:/g, "fill:");
+ select_default2(svgLabel).attr("style", nodeLabelTextStyle);
+ } else {
+ const edgeLabelRectStyle = style3.replace(/stroke:[^;]+;?/g, "").replace(/stroke-width:[^;]+;?/g, "").replace(/fill:[^;]+;?/g, "").replace(/background:/g, "fill:");
+ select_default2(svgLabel).select("rect").attr("style", edgeLabelRectStyle.replace(/background:/g, "fill:"));
+ const edgeLabelTextStyle = style3.replace(/stroke:[^;]+;?/g, "").replace(/stroke-width:[^;]+;?/g, "").replace(/fill:[^;]+;?/g, "").replace(/color:/g, "fill:");
+ select_default2(svgLabel).select("text").attr("style", edgeLabelTextStyle);
+ }
+ return svgLabel;
}
- heightOffset += attributeNode.height + heightPadding * 2;
- attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd";
- });
- } else {
- bBox.height = Math.max(conf$7.minEntityHeight, cumulativeHeight);
- entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")");
- }
- return bBox;
- };
- const drawEntities = function(svgNode2, entities2, graph) {
- const keys2 = Object.keys(entities2);
- let firstOne;
- keys2.forEach(function(entityName) {
- const entityId = generateId(entityName, "entity");
- entityNameIds.set(entityName, entityId);
- const groupNode = svgNode2.append("g").attr("id", entityId);
- firstOne = firstOne === void 0 ? entityId : firstOne;
- const textId = "text-" + entityId;
- const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig$1().fontFamily).style("font-size", conf$7.fontSize + "px").text(entityName);
- const { width: entityWidth, height: entityHeight } = drawAttributes(
- groupNode,
- textNode,
- entities2[entityName].attributes
- );
- const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight);
- const rectBBox = rectNode.node().getBBox();
- graph.setNode(entityId, {
- width: rectBBox.width,
- height: rectBBox.height,
- shape: "rect",
- id: entityId
- });
- });
- return firstOne;
- };
- const adjustEntities$1 = function(svgNode2, graph) {
- graph.nodes().forEach(function(v) {
- if (v !== void 0 && graph.node(v) !== void 0) {
- svgNode2.select("#" + v).attr(
- "transform",
- "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
- );
- }
- });
- };
- const getEdgeName = function(rel) {
- return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, "");
- };
- const addRelationships$1 = function(relationships2, g) {
- relationships2.forEach(function(r) {
- g.setEdge(
- entityNameIds.get(r.entityA),
- entityNameIds.get(r.entityB),
- { relationship: r },
- getEdgeName(r)
- );
- });
- return relationships2;
- };
- let relCnt$1 = 0;
- const drawRelationshipFromLayout$1 = function(svg2, rel, g, insert, diagObj) {
- relCnt$1++;
- const edge = g.edge(
- entityNameIds.get(rel.entityA),
- entityNameIds.get(rel.entityB),
- getEdgeName(rel)
- );
- const lineFunction = line$1().x(function(d) {
- return d.x;
- }).y(function(d) {
- return d.y;
- }).curve(curveBasis);
- const svgPath = svg2.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf$7.stroke).style("fill", "none");
- if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {
- svgPath.attr("stroke-dasharray", "8,8");
- }
- let url = "";
- if (conf$7.arrowMarkerAbsolute) {
- url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
- url = url.replace(/\(/g, "\\(");
- url = url.replace(/\)/g, "\\)");
- }
- switch (rel.relSpec.cardA) {
- case diagObj.db.Cardinality.ZERO_OR_ONE:
- svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_END + ")");
- break;
- case diagObj.db.Cardinality.ZERO_OR_MORE:
- svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_END + ")");
- break;
- case diagObj.db.Cardinality.ONE_OR_MORE:
- svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_END + ")");
- break;
- case diagObj.db.Cardinality.ONLY_ONE:
- svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_END + ")");
- break;
+ }, "createText");
}
- switch (rel.relSpec.cardB) {
- case diagObj.db.Cardinality.ZERO_OR_ONE:
- svgPath.attr(
- "marker-start",
- "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_START + ")"
- );
- break;
- case diagObj.db.Cardinality.ZERO_OR_MORE:
- svgPath.attr(
- "marker-start",
- "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_START + ")"
- );
- break;
- case diagObj.db.Cardinality.ONE_OR_MORE:
- svgPath.attr(
- "marker-start",
- "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_START + ")"
- );
- break;
- case diagObj.db.Cardinality.ONLY_ONE:
- svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_START + ")");
- break;
+ });
+
+ // src/dagre-wrapper/createLabel.js
+ function applyStyle2(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
}
- const len = svgPath.node().getTotalLength();
- const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
- const labelId = "rel" + relCnt$1;
- const labelNode = svg2.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig$1().fontFamily).style("font-size", conf$7.fontSize + "px").text(rel.roleA);
- const labelBBox = labelNode.node().getBBox();
- svg2.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height);
- };
- const draw$e = function(text2, id2, _version, diagObj) {
- conf$7 = getConfig$1().er;
- log$1.info("Drawing ER diagram");
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const svg2 = root2.select(`[id='${id2}']`);
- erMarkers.insertMarkers(svg2, conf$7);
- let g;
- g = new Graph({
- multigraph: true,
- directed: true,
- compound: false
- }).setGraph({
- rankdir: conf$7.layoutDirection,
- marginx: 20,
- marginy: 20,
- nodesep: 100,
- edgesep: 100,
- ranksep: 100
- }).setDefaultEdgeLabel(function() {
- return {};
- });
- const firstEntity = drawEntities(svg2, diagObj.db.getEntities(), g);
- const relationships2 = addRelationships$1(diagObj.db.getRelationships(), g);
- layout(g);
- adjustEntities$1(svg2, g);
- relationships2.forEach(function(rel) {
- drawRelationshipFromLayout$1(svg2, rel, g, firstEntity, diagObj);
- });
- const padding2 = conf$7.diagramPadding;
- utils.insertTitle(svg2, "entityTitleText", conf$7.titleTopMargin, diagObj.db.getDiagramTitle());
- const svgBounds = svg2.node().getBBox();
- const width2 = svgBounds.width + padding2 * 2;
- const height2 = svgBounds.height + padding2 * 2;
- configureSvgSize(svg2, height2, width2, conf$7.useMaxWidth);
- svg2.attr("viewBox", `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${width2} ${height2}`);
- };
- const MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c";
- function generateId(str2 = "", prefix = "") {
- const simplifiedStr = str2.replace(BAD_ID_CHARS_REGEXP, "");
- return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${uuid5(
- str2,
- MERMAID_ERDIAGRAM_UUID
- )}`;
- }
- function strWithHyphen(str2 = "") {
- return str2.length > 0 ? `${str2}-` : "";
}
- const erRenderer = {
- setConf: setConf$6,
- draw: draw$e
- };
- const getStyles$c = (options2) => `
- .entityBox {
- fill: ${options2.mainBkg};
- stroke: ${options2.nodeBorder};
- }
-
- .attributeBoxOdd {
- fill: ${options2.attributeBackgroundColorOdd};
- stroke: ${options2.nodeBorder};
+ function addHtmlLabel(node2) {
+ const fo = select_default2(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"));
+ const div = fo.append("xhtml:div");
+ const label = node2.label;
+ const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
+ const span = div.append("span");
+ span.html(label);
+ applyStyle2(span, node2.labelStyle);
+ span.attr("class", labelClass);
+ applyStyle2(div, node2.labelStyle);
+ div.style("display", "inline-block");
+ div.style("white-space", "nowrap");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ return fo.node();
}
+ var createLabel, createLabel_default;
+ var init_createLabel = __esm({
+ "src/dagre-wrapper/createLabel.js"() {
+ "use strict";
+ init_src32();
+ init_logger();
+ init_diagramAPI();
+ init_common();
+ init_utils2();
+ init_createText();
+ __name(applyStyle2, "applyStyle");
+ __name(addHtmlLabel, "addHtmlLabel");
+ createLabel = /* @__PURE__ */ __name((_vertexText, style3, isTitle, isNode2) => {
+ let vertexText = _vertexText || "";
+ if (typeof vertexText === "object") {
+ vertexText = vertexText[0];
+ }
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ vertexText = vertexText.replace(/\\n|\n/g, "
");
+ log.debug("vertexText" + vertexText);
+ const node2 = {
+ isNode: isNode2,
+ label: replaceIconSubstring(decodeEntities(vertexText)),
+ labelStyle: style3.replace("fill:", "color:")
+ };
+ let vertexNode = addHtmlLabel(node2);
+ return vertexNode;
+ } else {
+ const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", style3.replace("color:", "fill:"));
+ let rows = [];
+ if (typeof vertexText === "string") {
+ rows = vertexText.split(/\\n|\n|
/gi);
+ } else if (Array.isArray(vertexText)) {
+ rows = vertexText;
+ } else {
+ rows = [];
+ }
+ for (const row of rows) {
+ const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "0");
+ if (isTitle) {
+ tspan.setAttribute("class", "title-row");
+ } else {
+ tspan.setAttribute("class", "row");
+ }
+ tspan.textContent = row.trim();
+ svgLabel.appendChild(tspan);
+ }
+ return svgLabel;
+ }
+ }, "createLabel");
+ createLabel_default = createLabel;
+ }
+ });
- .attributeBoxEven {
- fill: ${options2.attributeBackgroundColorEven};
- stroke: ${options2.nodeBorder};
+ // src/dagre-wrapper/intersect/intersect-node.js
+ function intersectNode(node2, point8) {
+ return node2.intersect(point8);
}
+ var intersect_node_default;
+ var init_intersect_node = __esm({
+ "src/dagre-wrapper/intersect/intersect-node.js"() {
+ "use strict";
+ __name(intersectNode, "intersectNode");
+ intersect_node_default = intersectNode;
+ }
+ });
- .relationshipLabelBox {
- fill: ${options2.tertiaryColor};
- opacity: 0.7;
- background-color: ${options2.tertiaryColor};
- rect {
- opacity: 0.5;
- }
+ // src/dagre-wrapper/intersect/intersect-ellipse.js
+ function intersectEllipse(node2, rx, ry, point8) {
+ var cx = node2.x;
+ var cy = node2.y;
+ var px = cx - point8.x;
+ var py = cy - point8.y;
+ var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
+ var dx = Math.abs(rx * ry * px / det);
+ if (point8.x < cx) {
+ dx = -dx;
+ }
+ var dy = Math.abs(rx * ry * py / det);
+ if (point8.y < cy) {
+ dy = -dy;
+ }
+ return { x: cx + dx, y: cy + dy };
}
+ var intersect_ellipse_default;
+ var init_intersect_ellipse = __esm({
+ "src/dagre-wrapper/intersect/intersect-ellipse.js"() {
+ "use strict";
+ __name(intersectEllipse, "intersectEllipse");
+ intersect_ellipse_default = intersectEllipse;
+ }
+ });
- .relationshipLine {
- stroke: ${options2.lineColor};
+ // src/dagre-wrapper/intersect/intersect-circle.js
+ function intersectCircle(node2, rx, point8) {
+ return intersect_ellipse_default(node2, rx, rx, point8);
+ }
+ var intersect_circle_default;
+ var init_intersect_circle = __esm({
+ "src/dagre-wrapper/intersect/intersect-circle.js"() {
+ "use strict";
+ init_intersect_ellipse();
+ __name(intersectCircle, "intersectCircle");
+ intersect_circle_default = intersectCircle;
}
+ });
- .entityTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${options2.textColor};
- }
-`;
- const erStyles = getStyles$c;
- const diagram$e = {
- parser: erParser,
- db: erDb,
- renderer: erRenderer,
- styles: erStyles
- };
- const erDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$e
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$i = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 4], $V1 = [1, 7], $V2 = [1, 5], $V3 = [1, 9], $V4 = [1, 6], $V5 = [2, 6], $V6 = [1, 16], $V7 = [6, 8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40, 50, 55], $V8 = [8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $V9 = [8, 13, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $Va = [1, 26], $Vb = [6, 8, 14, 50, 55], $Vc = [8, 14, 55], $Vd = [1, 53], $Ve = [1, 52], $Vf = [8, 14, 30, 33, 35, 38, 55], $Vg = [1, 67], $Vh = [1, 68], $Vi = [1, 69], $Vj = [8, 14, 33, 35, 42, 55];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "GG": 6, "document": 7, "EOF": 8, ":": 9, "DIR": 10, "options": 11, "body": 12, "OPT": 13, "NL": 14, "line": 15, "statement": 16, "commitStatement": 17, "mergeStatement": 18, "cherryPickStatement": 19, "acc_title": 20, "acc_title_value": 21, "acc_descr": 22, "acc_descr_value": 23, "acc_descr_multiline_value": 24, "section": 25, "branchStatement": 26, "CHECKOUT": 27, "ref": 28, "BRANCH": 29, "ORDER": 30, "NUM": 31, "CHERRY_PICK": 32, "COMMIT_ID": 33, "STR": 34, "COMMIT_TAG": 35, "EMPTYSTR": 36, "MERGE": 37, "COMMIT_TYPE": 38, "commitType": 39, "COMMIT": 40, "commit_arg": 41, "COMMIT_MSG": 42, "NORMAL": 43, "REVERSE": 44, "HIGHLIGHT": 45, "openDirective": 46, "typeDirective": 47, "closeDirective": 48, "argDirective": 49, "open_directive": 50, "type_directive": 51, "arg_directive": 52, "close_directive": 53, "ID": 54, ";": 55, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 6: "GG", 8: "EOF", 9: ":", 10: "DIR", 13: "OPT", 14: "NL", 20: "acc_title", 21: "acc_title_value", 22: "acc_descr", 23: "acc_descr_value", 24: "acc_descr_multiline_value", 25: "section", 27: "CHECKOUT", 29: "BRANCH", 30: "ORDER", 31: "NUM", 32: "CHERRY_PICK", 33: "COMMIT_ID", 34: "STR", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 50: "open_directive", 51: "type_directive", 52: "arg_directive", 53: "close_directive", 54: "ID", 55: ";" },
- productions_: [0, [3, 2], [3, 2], [3, 3], [3, 4], [3, 5], [7, 0], [7, 2], [11, 2], [11, 1], [12, 0], [12, 2], [15, 2], [15, 1], [16, 1], [16, 1], [16, 1], [16, 2], [16, 2], [16, 1], [16, 1], [16, 1], [16, 2], [26, 2], [26, 4], [19, 3], [19, 5], [19, 5], [19, 5], [19, 5], [18, 2], [18, 4], [18, 4], [18, 4], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [17, 2], [17, 3], [17, 3], [17, 5], [17, 5], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [5, 3], [5, 5], [46, 1], [47, 1], [49, 1], [48, 1], [28, 1], [28, 1], [4, 1], [4, 1], [4, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 3:
- return $$[$0];
- case 4:
- return $$[$0 - 1];
- case 5:
- yy.setDirection($$[$0 - 3]);
- return $$[$0 - 1];
- case 7:
- yy.setOptions($$[$0 - 1]);
- this.$ = $$[$0];
- break;
- case 8:
- $$[$0 - 1] += $$[$0];
- this.$ = $$[$0 - 1];
- break;
- case 10:
- this.$ = [];
- break;
- case 11:
- $$[$0 - 1].push($$[$0]);
- this.$ = $$[$0 - 1];
- break;
- case 12:
- this.$ = $$[$0 - 1];
- break;
- case 17:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 18:
- case 19:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 20:
- yy.addSection($$[$0].substr(8));
- this.$ = $$[$0].substr(8);
- break;
- case 22:
- yy.checkout($$[$0]);
- break;
- case 23:
- yy.branch($$[$0]);
- break;
- case 24:
- yy.branch($$[$0 - 2], $$[$0]);
- break;
- case 25:
- yy.cherryPick($$[$0], "", void 0);
- break;
- case 26:
- yy.cherryPick($$[$0 - 2], "", $$[$0]);
- break;
- case 27:
- case 29:
- yy.cherryPick($$[$0 - 2], "", "");
- break;
- case 28:
- yy.cherryPick($$[$0], "", $$[$0 - 2]);
- break;
- case 30:
- yy.merge($$[$0], "", "", "");
- break;
- case 31:
- yy.merge($$[$0 - 2], $$[$0], "", "");
- break;
- case 32:
- yy.merge($$[$0 - 2], "", $$[$0], "");
- break;
- case 33:
- yy.merge($$[$0 - 2], "", "", $$[$0]);
- break;
- case 34:
- yy.merge($$[$0 - 4], $$[$0], "", $$[$0 - 2]);
- break;
- case 35:
- yy.merge($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
- break;
- case 36:
- yy.merge($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
- break;
- case 37:
- yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], "");
- break;
- case 38:
- yy.merge($$[$0 - 4], $$[$0 - 2], "", $$[$0]);
- break;
- case 39:
- yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], "");
- break;
- case 40:
- yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
- break;
- case 41:
- yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
- break;
- case 42:
- yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
- break;
- case 43:
- yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
- break;
- case 44:
- yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
- break;
- case 45:
- yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
- break;
- case 46:
- yy.commit($$[$0]);
- break;
- case 47:
- yy.commit("", "", yy.commitType.NORMAL, $$[$0]);
- break;
- case 48:
- yy.commit("", "", $$[$0], "");
- break;
- case 49:
- yy.commit("", "", $$[$0], $$[$0 - 2]);
- break;
- case 50:
- yy.commit("", "", $$[$0 - 2], $$[$0]);
- break;
- case 51:
- yy.commit("", $$[$0], yy.commitType.NORMAL, "");
- break;
- case 52:
- yy.commit("", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
- break;
- case 53:
- yy.commit("", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
- break;
- case 54:
- yy.commit("", $$[$0 - 2], $$[$0], "");
- break;
- case 55:
- yy.commit("", $$[$0], $$[$0 - 2], "");
- break;
- case 56:
- yy.commit("", $$[$0 - 4], $$[$0 - 2], $$[$0]);
- break;
- case 57:
- yy.commit("", $$[$0 - 4], $$[$0], $$[$0 - 2]);
- break;
- case 58:
- yy.commit("", $$[$0 - 2], $$[$0 - 4], $$[$0]);
- break;
- case 59:
- yy.commit("", $$[$0], $$[$0 - 4], $$[$0 - 2]);
- break;
- case 60:
- yy.commit("", $$[$0], $$[$0 - 2], $$[$0 - 4]);
- break;
- case 61:
- yy.commit("", $$[$0 - 2], $$[$0], $$[$0 - 4]);
- break;
- case 62:
- yy.commit($$[$0], "", yy.commitType.NORMAL, "");
- break;
- case 63:
- yy.commit($$[$0], "", yy.commitType.NORMAL, $$[$0 - 2]);
- break;
- case 64:
- yy.commit($$[$0 - 2], "", yy.commitType.NORMAL, $$[$0]);
- break;
- case 65:
- yy.commit($$[$0 - 2], "", $$[$0], "");
- break;
- case 66:
- yy.commit($$[$0], "", $$[$0 - 2], "");
- break;
- case 67:
- yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, "");
- break;
- case 68:
- yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, "");
- break;
- case 69:
- yy.commit($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
- break;
- case 70:
- yy.commit($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
- break;
- case 71:
- yy.commit($$[$0 - 2], "", $$[$0 - 4], $$[$0]);
- break;
- case 72:
- yy.commit($$[$0], "", $$[$0 - 4], $$[$0 - 2]);
- break;
- case 73:
- yy.commit($$[$0], "", $$[$0 - 2], $$[$0 - 4]);
- break;
- case 74:
- yy.commit($$[$0 - 2], "", $$[$0], $$[$0 - 4]);
- break;
- case 75:
- yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], "");
- break;
- case 76:
- yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], "");
- break;
- case 77:
- yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], "");
- break;
- case 78:
- yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], "");
- break;
- case 79:
- yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], "");
- break;
- case 80:
- yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], "");
- break;
- case 81:
- yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
- break;
- case 82:
- yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
- break;
- case 83:
- yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]);
- break;
- case 84:
- yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]);
- break;
- case 85:
- yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]);
- break;
- case 86:
- yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]);
- break;
- case 87:
- yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
- break;
- case 88:
- yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
- break;
- case 89:
- yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
- break;
- case 90:
- yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
- break;
- case 91:
- yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
- break;
- case 92:
- yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
- break;
- case 93:
- yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]);
- break;
- case 94:
- yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]);
- break;
- case 95:
- yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]);
- break;
- case 96:
- yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]);
- break;
- case 97:
- yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]);
- break;
- case 98:
- yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]);
- break;
- case 99:
- yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]);
- break;
- case 100:
- yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]);
- break;
- case 101:
- yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]);
- break;
- case 102:
- yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]);
- break;
- case 103:
- yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]);
- break;
- case 104:
- yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]);
- break;
- case 105:
- yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]);
- break;
- case 106:
- yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]);
- break;
- case 107:
- yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]);
- break;
- case 108:
- yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]);
- break;
- case 109:
- yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]);
- break;
- case 110:
- yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]);
- break;
- case 111:
- this.$ = "";
- break;
- case 112:
- this.$ = $$[$0];
- break;
- case 113:
- this.$ = yy.commitType.NORMAL;
- break;
- case 114:
- this.$ = yy.commitType.REVERSE;
- break;
- case 115:
- this.$ = yy.commitType.HIGHLIGHT;
- break;
- case 118:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 119:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 120:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 121:
- yy.parseDirective("}%%", "close_directive", "gitGraph");
- break;
- }
- },
- table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 7: 12, 8: $V5, 9: [1, 13], 10: [1, 14], 11: 15, 14: $V6 }, o($V7, [2, 124]), o($V7, [2, 125]), o($V7, [2, 126]), { 47: 17, 51: [1, 18] }, { 51: [2, 118] }, { 1: [2, 1] }, { 1: [2, 2] }, { 8: [1, 19] }, { 7: 20, 8: $V5, 11: 15, 14: $V6 }, { 9: [1, 21] }, o($V8, [2, 10], { 12: 22, 13: [1, 23] }), o($V9, [2, 9]), { 9: [1, 25], 48: 24, 53: $Va }, o([9, 53], [2, 119]), { 1: [2, 3] }, { 8: [1, 27] }, { 7: 28, 8: $V5, 11: 15, 14: $V6 }, { 8: [2, 7], 14: [1, 31], 15: 29, 16: 30, 17: 32, 18: 33, 19: 34, 20: [1, 35], 22: [1, 36], 24: [1, 37], 25: [1, 38], 26: 39, 27: [1, 40], 29: [1, 44], 32: [1, 43], 37: [1, 42], 40: [1, 41] }, o($V9, [2, 8]), o($Vb, [2, 116]), { 49: 45, 52: [1, 46] }, o($Vb, [2, 121]), { 1: [2, 4] }, { 8: [1, 47] }, o($V8, [2, 11]), { 4: 48, 8: $V1, 14: $V2, 55: $V4 }, o($V8, [2, 13]), o($Vc, [2, 14]), o($Vc, [2, 15]), o($Vc, [2, 16]), { 21: [1, 49] }, { 23: [1, 50] }, o($Vc, [2, 19]), o($Vc, [2, 20]), o($Vc, [2, 21]), { 28: 51, 34: $Vd, 54: $Ve }, o($Vc, [2, 111], { 41: 54, 33: [1, 57], 34: [1, 59], 35: [1, 55], 38: [1, 56], 42: [1, 58] }), { 28: 60, 34: $Vd, 54: $Ve }, { 33: [1, 61], 35: [1, 62] }, { 28: 63, 34: $Vd, 54: $Ve }, { 48: 64, 53: $Va }, { 53: [2, 120] }, { 1: [2, 5] }, o($V8, [2, 12]), o($Vc, [2, 17]), o($Vc, [2, 18]), o($Vc, [2, 22]), o($Vf, [2, 122]), o($Vf, [2, 123]), o($Vc, [2, 46]), { 34: [1, 65] }, { 39: 66, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 70] }, { 34: [1, 71] }, o($Vc, [2, 112]), o($Vc, [2, 30], { 33: [1, 72], 35: [1, 74], 38: [1, 73] }), { 34: [1, 75] }, { 34: [1, 76], 36: [1, 77] }, o($Vc, [2, 23], { 30: [1, 78] }), o($Vb, [2, 117]), o($Vc, [2, 47], { 33: [1, 80], 38: [1, 79], 42: [1, 81] }), o($Vc, [2, 48], { 33: [1, 83], 35: [1, 82], 42: [1, 84] }), o($Vj, [2, 113]), o($Vj, [2, 114]), o($Vj, [2, 115]), o($Vc, [2, 51], { 35: [1, 85], 38: [1, 86], 42: [1, 87] }), o($Vc, [2, 62], { 33: [1, 90], 35: [1, 88], 38: [1, 89] }), { 34: [1, 91] }, { 39: 92, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 93] }, o($Vc, [2, 25], { 35: [1, 94] }), { 33: [1, 95] }, { 33: [1, 96] }, { 31: [1, 97] }, { 39: 98, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 99] }, { 34: [1, 100] }, { 34: [1, 101] }, { 34: [1, 102] }, { 34: [1, 103] }, { 34: [1, 104] }, { 39: 105, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 106] }, { 34: [1, 107] }, { 39: 108, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 109] }, o($Vc, [2, 31], { 35: [1, 111], 38: [1, 110] }), o($Vc, [2, 32], { 33: [1, 113], 35: [1, 112] }), o($Vc, [2, 33], { 33: [1, 114], 38: [1, 115] }), { 34: [1, 116], 36: [1, 117] }, { 34: [1, 118] }, { 34: [1, 119] }, o($Vc, [2, 24]), o($Vc, [2, 49], { 33: [1, 120], 42: [1, 121] }), o($Vc, [2, 53], { 38: [1, 122], 42: [1, 123] }), o($Vc, [2, 63], { 33: [1, 125], 38: [1, 124] }), o($Vc, [2, 50], { 33: [1, 126], 42: [1, 127] }), o($Vc, [2, 55], { 35: [1, 128], 42: [1, 129] }), o($Vc, [2, 66], { 33: [1, 131], 35: [1, 130] }), o($Vc, [2, 52], { 38: [1, 132], 42: [1, 133] }), o($Vc, [2, 54], { 35: [1, 134], 42: [1, 135] }), o($Vc, [2, 67], { 35: [1, 137], 38: [1, 136] }), o($Vc, [2, 64], { 33: [1, 139], 38: [1, 138] }), o($Vc, [2, 65], { 33: [1, 141], 35: [1, 140] }), o($Vc, [2, 68], { 35: [1, 143], 38: [1, 142] }), { 39: 144, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 145] }, { 34: [1, 146] }, { 34: [1, 147] }, { 34: [1, 148] }, { 39: 149, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 26]), o($Vc, [2, 27]), o($Vc, [2, 28]), o($Vc, [2, 29]), { 34: [1, 150] }, { 34: [1, 151] }, { 39: 152, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 153] }, { 39: 154, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 155] }, { 34: [1, 156] }, { 34: [1, 157] }, { 34: [1, 158] }, { 34: [1, 159] }, { 34: [1, 160] }, { 34: [1, 161] }, { 39: 162, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 163] }, { 34: [1, 164] }, { 34: [1, 165] }, { 39: 166, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 167] }, { 39: 168, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 169] }, { 34: [1, 170] }, { 34: [1, 171] }, { 39: 172, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 173] }, o($Vc, [2, 37], { 35: [1, 174] }), o($Vc, [2, 38], { 38: [1, 175] }), o($Vc, [2, 36], { 33: [1, 176] }), o($Vc, [2, 39], { 35: [1, 177] }), o($Vc, [2, 34], { 38: [1, 178] }), o($Vc, [2, 35], { 33: [1, 179] }), o($Vc, [2, 60], { 42: [1, 180] }), o($Vc, [2, 73], { 33: [1, 181] }), o($Vc, [2, 61], { 42: [1, 182] }), o($Vc, [2, 84], { 38: [1, 183] }), o($Vc, [2, 74], { 33: [1, 184] }), o($Vc, [2, 83], { 38: [1, 185] }), o($Vc, [2, 59], { 42: [1, 186] }), o($Vc, [2, 72], { 33: [1, 187] }), o($Vc, [2, 58], { 42: [1, 188] }), o($Vc, [2, 78], { 35: [1, 189] }), o($Vc, [2, 71], { 33: [1, 190] }), o($Vc, [2, 77], { 35: [1, 191] }), o($Vc, [2, 57], { 42: [1, 192] }), o($Vc, [2, 85], { 38: [1, 193] }), o($Vc, [2, 56], { 42: [1, 194] }), o($Vc, [2, 79], { 35: [1, 195] }), o($Vc, [2, 80], { 35: [1, 196] }), o($Vc, [2, 86], { 38: [1, 197] }), o($Vc, [2, 70], { 33: [1, 198] }), o($Vc, [2, 81], { 38: [1, 199] }), o($Vc, [2, 69], { 33: [1, 200] }), o($Vc, [2, 75], { 35: [1, 201] }), o($Vc, [2, 76], { 35: [1, 202] }), o($Vc, [2, 82], { 38: [1, 203] }), { 34: [1, 204] }, { 39: 205, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 206] }, { 34: [1, 207] }, { 39: 208, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 209] }, { 34: [1, 210] }, { 34: [1, 211] }, { 34: [1, 212] }, { 39: 213, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 214] }, { 39: 215, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 216] }, { 34: [1, 217] }, { 34: [1, 218] }, { 34: [1, 219] }, { 34: [1, 220] }, { 34: [1, 221] }, { 34: [1, 222] }, { 39: 223, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 224] }, { 34: [1, 225] }, { 34: [1, 226] }, { 39: 227, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 228] }, { 39: 229, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 230] }, { 34: [1, 231] }, { 34: [1, 232] }, { 39: 233, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 40]), o($Vc, [2, 42]), o($Vc, [2, 41]), o($Vc, [2, 43]), o($Vc, [2, 45]), o($Vc, [2, 44]), o($Vc, [2, 101]), o($Vc, [2, 102]), o($Vc, [2, 99]), o($Vc, [2, 100]), o($Vc, [2, 104]), o($Vc, [2, 103]), o($Vc, [2, 108]), o($Vc, [2, 107]), o($Vc, [2, 106]), o($Vc, [2, 105]), o($Vc, [2, 110]), o($Vc, [2, 109]), o($Vc, [2, 98]), o($Vc, [2, 97]), o($Vc, [2, 96]), o($Vc, [2, 95]), o($Vc, [2, 93]), o($Vc, [2, 94]), o($Vc, [2, 92]), o($Vc, [2, 91]), o($Vc, [2, 90]), o($Vc, [2, 89]), o($Vc, [2, 87]), o($Vc, [2, 88])],
- defaultActions: { 9: [2, 118], 10: [2, 1], 11: [2, 2], 19: [2, 3], 27: [2, 4], 46: [2, 120], 47: [2, 5] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
- }
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 50;
- case 1:
- this.begin("type_directive");
- return 51;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 9;
- case 3:
- this.popState();
- this.popState();
- return 53;
- case 4:
- return 52;
- case 5:
- this.begin("acc_title");
- return 20;
- case 6:
- this.popState();
- return "acc_title_value";
- case 7:
- this.begin("acc_descr");
- return 22;
- case 8:
- this.popState();
- return "acc_descr_value";
- case 9:
- this.begin("acc_descr_multiline");
- break;
- case 10:
- this.popState();
- break;
- case 11:
- return "acc_descr_multiline_value";
- case 12:
- return 14;
- case 13:
- break;
- case 14:
- break;
- case 15:
- return 6;
- case 16:
- return 40;
- case 17:
- return 33;
- case 18:
- return 38;
- case 19:
- return 42;
- case 20:
- return 43;
- case 21:
- return 44;
- case 22:
- return 45;
- case 23:
- return 35;
- case 24:
- return 29;
- case 25:
- return 30;
- case 26:
- return 37;
- case 27:
- return 32;
- case 28:
- return 27;
- case 29:
- return 10;
- case 30:
- return 10;
- case 31:
- return 9;
- case 32:
- return "CARET";
- case 33:
- this.begin("options");
- break;
- case 34:
- this.popState();
- break;
- case 35:
- return 13;
- case 36:
- return 36;
- case 37:
- this.begin("string");
- break;
- case 38:
- this.popState();
- break;
- case 39:
- return 34;
- case 40:
- return 31;
- case 41:
- return 54;
- case 42:
- return 8;
- }
- },
- rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:BT\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i],
- conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "options": { "rules": [34, 35], "inclusive": false }, "string": { "rules": [38, 39], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 40, 41, 42, 43], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$i.parser = parser$i;
- const gitGraphParser = parser$i;
- let mainBranchName = getConfig$1().gitGraph.mainBranchName;
- let mainBranchOrder = getConfig$1().gitGraph.mainBranchOrder;
- let commits = {};
- let head = null;
- let branchesConfig = {};
- branchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder };
- let branches = {};
- branches[mainBranchName] = head;
- let curBranch = mainBranchName;
- let direction$2 = "LR";
- let seq = 0;
- function getId() {
- return random({ length: 7 });
+ // src/dagre-wrapper/intersect/intersect-line.js
+ function intersectLine(p1, p22, q1, q2) {
+ var a1, a2, b1, b2, c1, c22;
+ var r1, r2, r3, r4;
+ var denom, offset, num;
+ var x5, y5;
+ a1 = p22.y - p1.y;
+ b1 = p1.x - p22.x;
+ c1 = p22.x * p1.y - p1.x * p22.y;
+ r3 = a1 * q1.x + b1 * q1.y + c1;
+ r4 = a1 * q2.x + b1 * q2.y + c1;
+ if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
+ return;
+ }
+ a2 = q2.y - q1.y;
+ b2 = q1.x - q2.x;
+ c22 = q2.x * q1.y - q1.x * q2.y;
+ r1 = a2 * p1.x + b2 * p1.y + c22;
+ r2 = a2 * p22.x + b2 * p22.y + c22;
+ if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
+ return;
+ }
+ denom = a1 * b2 - a2 * b1;
+ if (denom === 0) {
+ return;
+ }
+ offset = Math.abs(denom / 2);
+ num = b1 * c22 - b2 * c1;
+ x5 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ num = a2 * c1 - a1 * c22;
+ y5 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ return { x: x5, y: y5 };
}
- const parseDirective$8 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- function uniqBy(list, fn) {
- const recordMap = /* @__PURE__ */ Object.create(null);
- return list.reduce((out, item) => {
- const key = fn(item);
- if (!recordMap[key]) {
- recordMap[key] = true;
- out.push(item);
- }
- return out;
- }, []);
+ function sameSign(r1, r2) {
+ return r1 * r2 > 0;
}
- const setDirection$2 = function(dir) {
- direction$2 = dir;
- };
- let options = {};
- const setOptions = function(rawOptString) {
- log$1.debug("options str", rawOptString);
- rawOptString = rawOptString && rawOptString.trim();
- rawOptString = rawOptString || "{}";
- try {
- options = JSON.parse(rawOptString);
- } catch (e) {
- log$1.error("error while parsing gitGraph options", e.message);
+ var intersect_line_default;
+ var init_intersect_line = __esm({
+ "src/dagre-wrapper/intersect/intersect-line.js"() {
+ "use strict";
+ __name(intersectLine, "intersectLine");
+ __name(sameSign, "sameSign");
+ intersect_line_default = intersectLine;
}
- };
- const getOptions = function() {
- return options;
- };
- const commit = function(msg, id2, type2, tag) {
- log$1.debug("Entering commit:", msg, id2, type2, tag);
- id2 = common$1.sanitizeText(id2, getConfig$1());
- msg = common$1.sanitizeText(msg, getConfig$1());
- tag = common$1.sanitizeText(tag, getConfig$1());
- const commit2 = {
- id: id2 ? id2 : seq + "-" + getId(),
- message: msg,
- seq: seq++,
- type: type2 ? type2 : commitType$1.NORMAL,
- tag: tag ? tag : "",
- parents: head == null ? [] : [head.id],
- branch: curBranch
- };
- head = commit2;
- commits[commit2.id] = commit2;
- branches[curBranch] = commit2.id;
- log$1.debug("in pushCommit " + commit2.id);
- };
- const branch = function(name2, order2) {
- name2 = common$1.sanitizeText(name2, getConfig$1());
- if (branches[name2] === void 0) {
- branches[name2] = head != null ? head.id : null;
- branchesConfig[name2] = { name: name2, order: order2 ? parseInt(order2, 10) : null };
- checkout(name2);
- log$1.debug("in createBranch");
+ });
+
+ // src/dagre-wrapper/intersect/intersect-polygon.js
+ function intersectPolygon(node2, polyPoints, point8) {
+ var x1 = node2.x;
+ var y1 = node2.y;
+ var intersections = [];
+ var minX = Number.POSITIVE_INFINITY;
+ var minY = Number.POSITIVE_INFINITY;
+ if (typeof polyPoints.forEach === "function") {
+ polyPoints.forEach(function(entry) {
+ minX = Math.min(minX, entry.x);
+ minY = Math.min(minY, entry.y);
+ });
} else {
- let error = new Error(
- 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name2 + '")'
- );
- error.hash = {
- text: "branch " + name2,
- token: "branch " + name2,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ['"checkout ' + name2 + '"']
- };
- throw error;
+ minX = Math.min(minX, polyPoints.x);
+ minY = Math.min(minY, polyPoints.y);
}
- };
- const merge = function(otherBranch, custom_id, override_type, custom_tag) {
- otherBranch = common$1.sanitizeText(otherBranch, getConfig$1());
- custom_id = common$1.sanitizeText(custom_id, getConfig$1());
- const currentCommit = commits[branches[curBranch]];
- const otherCommit = commits[branches[otherBranch]];
- if (curBranch === otherBranch) {
- let error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
- error.hash = {
- text: "merge " + otherBranch,
- token: "merge " + otherBranch,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["branch abc"]
- };
- throw error;
- } else if (currentCommit === void 0 || !currentCommit) {
- let error = new Error(
- 'Incorrect usage of "merge". Current branch (' + curBranch + ")has no commits"
- );
- error.hash = {
- text: "merge " + otherBranch,
- token: "merge " + otherBranch,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["commit"]
- };
- throw error;
- } else if (branches[otherBranch] === void 0) {
- let error = new Error(
- 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist"
- );
- error.hash = {
- text: "merge " + otherBranch,
- token: "merge " + otherBranch,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["branch " + otherBranch]
- };
- throw error;
- } else if (otherCommit === void 0 || !otherCommit) {
- let error = new Error(
- 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits"
- );
- error.hash = {
- text: "merge " + otherBranch,
- token: "merge " + otherBranch,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ['"commit"']
- };
- throw error;
- } else if (currentCommit === otherCommit) {
- let error = new Error('Incorrect usage of "merge". Both branches have same head');
- error.hash = {
- text: "merge " + otherBranch,
- token: "merge " + otherBranch,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["branch abc"]
- };
- throw error;
- } else if (custom_id && commits[custom_id] !== void 0) {
- let error = new Error(
- 'Incorrect usage of "merge". Commit with id:' + custom_id + " already exists, use different custom Id"
- );
- error.hash = {
- text: "merge " + otherBranch + custom_id + override_type + custom_tag,
- token: "merge " + otherBranch + custom_id + override_type + custom_tag,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: [
- "merge " + otherBranch + " " + custom_id + "_UNIQUE " + override_type + " " + custom_tag
- ]
- };
- throw error;
- }
- const commit2 = {
- id: custom_id ? custom_id : seq + "-" + getId(),
- message: "merged branch " + otherBranch + " into " + curBranch,
- seq: seq++,
- parents: [head == null ? null : head.id, branches[otherBranch]],
- branch: curBranch,
- type: commitType$1.MERGE,
- customType: override_type,
- customId: custom_id ? true : false,
- tag: custom_tag ? custom_tag : ""
- };
- head = commit2;
- commits[commit2.id] = commit2;
- branches[curBranch] = commit2.id;
- log$1.debug(branches);
- log$1.debug("in mergeBranch");
- };
- const cherryPick = function(sourceId, targetId, tag) {
- log$1.debug("Entering cherryPick:", sourceId, targetId, tag);
- sourceId = common$1.sanitizeText(sourceId, getConfig$1());
- targetId = common$1.sanitizeText(targetId, getConfig$1());
- tag = common$1.sanitizeText(tag, getConfig$1());
- if (!sourceId || commits[sourceId] === void 0) {
- let error = new Error(
- 'Incorrect usage of "cherryPick". Source commit id should exist and provided'
- );
- error.hash = {
- text: "cherryPick " + sourceId + " " + targetId,
- token: "cherryPick " + sourceId + " " + targetId,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["cherry-pick abc"]
- };
- throw error;
- }
- let sourceCommit = commits[sourceId];
- let sourceCommitBranch = sourceCommit.branch;
- if (sourceCommit.type === commitType$1.MERGE) {
- let error = new Error(
- 'Incorrect usage of "cherryPick". Source commit should not be a merge commit'
+ var left3 = x1 - node2.width / 2 - minX;
+ var top2 = y1 - node2.height / 2 - minY;
+ for (var i2 = 0; i2 < polyPoints.length; i2++) {
+ var p1 = polyPoints[i2];
+ var p22 = polyPoints[i2 < polyPoints.length - 1 ? i2 + 1 : 0];
+ var intersect3 = intersect_line_default(
+ node2,
+ point8,
+ { x: left3 + p1.x, y: top2 + p1.y },
+ { x: left3 + p22.x, y: top2 + p22.y }
);
- error.hash = {
- text: "cherryPick " + sourceId + " " + targetId,
- token: "cherryPick " + sourceId + " " + targetId,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["cherry-pick abc"]
- };
- throw error;
- }
- if (!targetId || commits[targetId] === void 0) {
- if (sourceCommitBranch === curBranch) {
- let error = new Error(
- 'Incorrect usage of "cherryPick". Source commit is already on current branch'
- );
- error.hash = {
- text: "cherryPick " + sourceId + " " + targetId,
- token: "cherryPick " + sourceId + " " + targetId,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["cherry-pick abc"]
- };
- throw error;
+ if (intersect3) {
+ intersections.push(intersect3);
}
- const currentCommit = commits[branches[curBranch]];
- if (currentCommit === void 0 || !currentCommit) {
- let error = new Error(
- 'Incorrect usage of "cherry-pick". Current branch (' + curBranch + ")has no commits"
- );
- error.hash = {
- text: "cherryPick " + sourceId + " " + targetId,
- token: "cherryPick " + sourceId + " " + targetId,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["cherry-pick abc"]
- };
- throw error;
- }
- const commit2 = {
- id: seq + "-" + getId(),
- message: "cherry-picked " + sourceCommit + " into " + curBranch,
- seq: seq++,
- parents: [head == null ? null : head.id, sourceCommit.id],
- branch: curBranch,
- type: commitType$1.CHERRY_PICK,
- tag: tag ?? "cherry-pick:" + sourceCommit.id
- };
- head = commit2;
- commits[commit2.id] = commit2;
- branches[curBranch] = commit2.id;
- log$1.debug(branches);
- log$1.debug("in cherryPick");
}
- };
- const checkout = function(branch2) {
- branch2 = common$1.sanitizeText(branch2, getConfig$1());
- if (branches[branch2] === void 0) {
- let error = new Error(
- 'Trying to checkout branch which is not yet created. (Help try using "branch ' + branch2 + '")'
- );
- error.hash = {
- text: "checkout " + branch2,
- token: "checkout " + branch2,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ['"branch ' + branch2 + '"']
- };
- throw error;
- } else {
- curBranch = branch2;
- const id2 = branches[curBranch];
- head = commits[id2];
+ if (!intersections.length) {
+ return node2;
}
- };
- function upsert(arr, key, newVal) {
- const index = arr.indexOf(key);
- if (index === -1) {
- arr.push(newVal);
- } else {
- arr.splice(index, 1, newVal);
+ if (intersections.length > 1) {
+ intersections.sort(function(p3, q2) {
+ var pdx = p3.x - point8.x;
+ var pdy = p3.y - point8.y;
+ var distp = Math.sqrt(pdx * pdx + pdy * pdy);
+ var qdx = q2.x - point8.x;
+ var qdy = q2.y - point8.y;
+ var distq = Math.sqrt(qdx * qdx + qdy * qdy);
+ return distp < distq ? -1 : distp === distq ? 0 : 1;
+ });
}
+ return intersections[0];
}
- function prettyPrintCommitHistory(commitArr) {
- const commit2 = commitArr.reduce((out, commit3) => {
- if (out.seq > commit3.seq) {
- return out;
- }
- return commit3;
- }, commitArr[0]);
- let line2 = "";
- commitArr.forEach(function(c2) {
- if (c2 === commit2) {
- line2 += " *";
- } else {
- line2 += " |";
- }
- });
- const label = [line2, commit2.id, commit2.seq];
- for (let branch2 in branches) {
- if (branches[branch2] === commit2.id) {
- label.push(branch2);
- }
+ var intersect_polygon_default;
+ var init_intersect_polygon = __esm({
+ "src/dagre-wrapper/intersect/intersect-polygon.js"() {
+ "use strict";
+ init_intersect_line();
+ intersect_polygon_default = intersectPolygon;
+ __name(intersectPolygon, "intersectPolygon");
}
- log$1.debug(label.join(" "));
- if (commit2.parents && commit2.parents.length == 2) {
- const newCommit = commits[commit2.parents[0]];
- upsert(commitArr, commit2, newCommit);
- commitArr.push(commits[commit2.parents[1]]);
- } else if (commit2.parents.length == 0) {
- return;
- } else {
- const nextCommit = commits[commit2.parents];
- upsert(commitArr, commit2, nextCommit);
+ });
+
+ // src/dagre-wrapper/intersect/intersect-rect.js
+ var intersectRect, intersect_rect_default;
+ var init_intersect_rect = __esm({
+ "src/dagre-wrapper/intersect/intersect-rect.js"() {
+ "use strict";
+ intersectRect = /* @__PURE__ */ __name((node2, point8) => {
+ var x5 = node2.x;
+ var y5 = node2.y;
+ var dx = point8.x - x5;
+ var dy = point8.y - y5;
+ var w3 = node2.width / 2;
+ var h2 = node2.height / 2;
+ var sx, sy;
+ if (Math.abs(dy) * w3 > Math.abs(dx) * h2) {
+ if (dy < 0) {
+ h2 = -h2;
+ }
+ sx = dy === 0 ? 0 : h2 * dx / dy;
+ sy = h2;
+ } else {
+ if (dx < 0) {
+ w3 = -w3;
+ }
+ sx = w3;
+ sy = dx === 0 ? 0 : w3 * dy / dx;
+ }
+ return { x: x5 + sx, y: y5 + sy };
+ }, "intersectRect");
+ intersect_rect_default = intersectRect;
}
- commitArr = uniqBy(commitArr, (c2) => c2.id);
- prettyPrintCommitHistory(commitArr);
- }
- const prettyPrint = function() {
- log$1.debug(commits);
- const node2 = getCommitsArray()[0];
- prettyPrintCommitHistory([node2]);
- };
- const clear$a = function() {
- commits = {};
- head = null;
- let mainBranch = getConfig$1().gitGraph.mainBranchName;
- let mainBranchOrder2 = getConfig$1().gitGraph.mainBranchOrder;
- branches = {};
- branches[mainBranch] = null;
- branchesConfig = {};
- branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 };
- curBranch = mainBranch;
- seq = 0;
- clear$i();
- };
- const getBranchesAsObjArray = function() {
- const branchesArray = Object.values(branchesConfig).map((branchConfig, i2) => {
- if (branchConfig.order !== null) {
- return branchConfig;
- }
- return {
- ...branchConfig,
- order: parseFloat(`0.${i2}`, 10)
+ });
+
+ // src/dagre-wrapper/intersect/index.js
+ var intersect_default;
+ var init_intersect = __esm({
+ "src/dagre-wrapper/intersect/index.js"() {
+ "use strict";
+ init_intersect_node();
+ init_intersect_circle();
+ init_intersect_ellipse();
+ init_intersect_polygon();
+ init_intersect_rect();
+ intersect_default = {
+ node: intersect_node_default,
+ circle: intersect_circle_default,
+ ellipse: intersect_ellipse_default,
+ polygon: intersect_polygon_default,
+ rect: intersect_rect_default
};
- }).sort((a, b) => a.order - b.order).map(({ name: name2 }) => ({ name: name2 }));
- return branchesArray;
- };
- const getBranches = function() {
- return branches;
- };
- const getCommits = function() {
- return commits;
- };
- const getCommitsArray = function() {
- const commitArr = Object.keys(commits).map(function(key) {
- return commits[key];
- });
- commitArr.forEach(function(o) {
- log$1.debug(o.id);
- });
- commitArr.sort((a, b) => a.seq - b.seq);
- return commitArr;
- };
- const getCurrentBranch = function() {
- return curBranch;
- };
- const getDirection$2 = function() {
- return direction$2;
- };
- const getHead = function() {
- return head;
- };
- const commitType$1 = {
- NORMAL: 0,
- REVERSE: 1,
- HIGHLIGHT: 2,
- MERGE: 3,
- CHERRY_PICK: 4
- };
- const gitGraphDb = {
- parseDirective: parseDirective$8,
- getConfig: () => getConfig$1().gitGraph,
- setDirection: setDirection$2,
- setOptions,
- getOptions,
- commit,
- branch,
- merge,
- cherryPick,
- checkout,
- //reset,
- prettyPrint,
- clear: clear$a,
- getBranchesAsObjArray,
- getBranches,
- getCommits,
- getCommitsArray,
- getCurrentBranch,
- getDirection: getDirection$2,
- getHead,
- setAccTitle,
- getAccTitle,
- getAccDescription,
- setAccDescription,
- setDiagramTitle,
- getDiagramTitle,
- commitType: commitType$1
- };
- let allCommitsDict = {};
- const commitType = {
- NORMAL: 0,
- REVERSE: 1,
- HIGHLIGHT: 2,
- MERGE: 3,
- CHERRY_PICK: 4
- };
- const THEME_COLOR_LIMIT = 8;
- let branchPos = {};
- let commitPos = {};
- let lanes = [];
- let maxPos = 0;
- const clear$9 = () => {
- branchPos = {};
- commitPos = {};
- allCommitsDict = {};
- maxPos = 0;
- lanes = [];
- };
- const drawText$3 = (txt) => {
- const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
- let rows = [];
- if (typeof txt === "string") {
- rows = txt.split(/\\n|\n|
/gi);
- } else if (Array.isArray(txt)) {
- rows = txt;
- } else {
- rows = [];
- }
- for (const row of rows) {
- const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
- tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
- tspan.setAttribute("dy", "1em");
- tspan.setAttribute("x", "0");
- tspan.setAttribute("class", "row");
- tspan.textContent = row.trim();
- svgLabel.appendChild(tspan);
- }
- return svgLabel;
- };
- const drawCommits = (svg2, commits2, modifyGraph) => {
- const gitGraphConfig = getConfig().gitGraph;
- const gBullets = svg2.append("g").attr("class", "commit-bullets");
- const gLabels = svg2.append("g").attr("class", "commit-labels");
- let pos = 0;
- const keys2 = Object.keys(commits2);
- const sortedKeys = keys2.sort((a, b) => {
- return commits2[a].seq - commits2[b].seq;
- });
- sortedKeys.forEach((key) => {
- const commit2 = commits2[key];
- const y2 = branchPos[commit2.branch].pos;
- const x2 = pos + 10;
- if (modifyGraph) {
- let typeClass;
- let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== "" ? commit2.customType : commit2.type;
- switch (commitSymbolType) {
- case commitType.NORMAL:
- typeClass = "commit-normal";
- break;
- case commitType.REVERSE:
- typeClass = "commit-reverse";
- break;
- case commitType.HIGHLIGHT:
- typeClass = "commit-highlight";
- break;
- case commitType.MERGE:
- typeClass = "commit-merge";
- break;
- case commitType.CHERRY_PICK:
- typeClass = "commit-cherry-pick";
- break;
- default:
- typeClass = "commit-normal";
+ }
+ });
+
+ // src/dagre-wrapper/shapes/util.js
+ function insertPolygonShape(parent4, w3, h2, points) {
+ return parent4.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d2) {
+ return d2.x + "," + d2.y;
+ }).join(" ")
+ ).attr("class", "label-container").attr("transform", "translate(" + -w3 / 2 + "," + h2 / 2 + ")");
+ }
+ var labelHelper, updateNodeBounds;
+ var init_util = __esm({
+ "src/dagre-wrapper/shapes/util.js"() {
+ "use strict";
+ init_createLabel();
+ init_createText();
+ init_diagramAPI();
+ init_src32();
+ init_common();
+ init_utils2();
+ labelHelper = /* @__PURE__ */ __name(async (parent4, node2, _classes, isNode2) => {
+ const config6 = getConfig2();
+ let classes6;
+ const useHtmlLabels = node2.useHtmlLabels || evaluate(config6.flowchart.htmlLabels);
+ if (!_classes) {
+ classes6 = "node default";
+ } else {
+ classes6 = _classes;
}
- if (commitSymbolType === commitType.HIGHLIGHT) {
- const circle2 = gBullets.append("rect");
- circle2.attr("x", x2 - 10);
- circle2.attr("y", y2 - 10);
- circle2.attr("height", 20);
- circle2.attr("width", 20);
- circle2.attr(
- "class",
- `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer`
- );
- gBullets.append("rect").attr("x", x2 - 6).attr("y", y2 - 6).attr("height", 12).attr("width", 12).attr(
- "class",
- `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner`
+ const shapeSvg = parent4.insert("g").attr("class", classes6).attr("id", node2.domId || node2.id);
+ const label = shapeSvg.insert("g").attr("class", "label").attr("style", node2.labelStyle);
+ let labelText;
+ if (node2.labelText === void 0) {
+ labelText = "";
+ } else {
+ labelText = typeof node2.labelText === "string" ? node2.labelText : node2.labelText[0];
+ }
+ const textNode = label.node();
+ let text2;
+ if (node2.labelType === "markdown") {
+ text2 = createText(
+ label,
+ sanitizeText(decodeEntities(labelText), config6),
+ {
+ useHtmlLabels,
+ width: node2.width || config6.flowchart.wrappingWidth,
+ classes: "markdown-node-label"
+ },
+ config6
);
- } else if (commitSymbolType === commitType.CHERRY_PICK) {
- gBullets.append("circle").attr("cx", x2).attr("cy", y2).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`);
- gBullets.append("circle").attr("cx", x2 - 3).attr("cy", y2 + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
- gBullets.append("circle").attr("cx", x2 + 3).attr("cy", y2 + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
- gBullets.append("line").attr("x1", x2 + 3).attr("y1", y2 + 1).attr("x2", x2).attr("y2", y2 - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
- gBullets.append("line").attr("x1", x2 - 3).attr("y1", y2 + 1).attr("x2", x2).attr("y2", y2 - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
} else {
- const circle2 = gBullets.append("circle");
- circle2.attr("cx", x2);
- circle2.attr("cy", y2);
- circle2.attr("r", commit2.type === commitType.MERGE ? 9 : 10);
- circle2.attr(
- "class",
- `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
+ text2 = textNode.appendChild(
+ createLabel_default(sanitizeText(decodeEntities(labelText), config6), node2.labelStyle, false, isNode2)
);
- if (commitSymbolType === commitType.MERGE) {
- const circle22 = gBullets.append("circle");
- circle22.attr("cx", x2);
- circle22.attr("cy", y2);
- circle22.attr("r", 6);
- circle22.attr(
- "class",
- `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
- );
- }
- if (commitSymbolType === commitType.REVERSE) {
- const cross2 = gBullets.append("path");
- cross2.attr("d", `M ${x2 - 5},${y2 - 5}L${x2 + 5},${y2 + 5}M${x2 - 5},${y2 + 5}L${x2 + 5},${y2 - 5}`).attr(
- "class",
- `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
- );
- }
}
- }
- commitPos[commit2.id] = { x: pos + 10, y: y2 };
- if (modifyGraph) {
- const px = 4;
- const py = 2;
- if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) {
- const wrapper2 = gLabels.append("g");
- const labelBkg = wrapper2.insert("rect").attr("class", "commit-label-bkg");
- const text2 = wrapper2.append("text").attr("x", pos).attr("y", y2 + 25).attr("class", "commit-label").text(commit2.id);
- let bbox = text2.node().getBBox();
- labelBkg.attr("x", pos + 10 - bbox.width / 2 - py).attr("y", y2 + 13.5).attr("width", bbox.width + 2 * py).attr("height", bbox.height + 2 * py);
- text2.attr("x", pos + 10 - bbox.width / 2);
- if (gitGraphConfig.rotateCommitLabel) {
- let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;
- let r_y = 10 + bbox.width / 25 * 8.5;
- wrapper2.attr(
- "transform",
- "translate(" + r_x + ", " + r_y + ") rotate(-45, " + pos + ", " + y2 + ")"
+ let bbox = text2.getBBox();
+ const halfPadding = node2.padding / 2;
+ if (evaluate(config6.flowchart.htmlLabels)) {
+ const div = text2.children[0];
+ const dv = select_default2(text2);
+ const images = div.getElementsByTagName("img");
+ if (images) {
+ const noImgText = labelText.replace(/]*>/g, "").trim() === "";
+ await Promise.all(
+ [...images].map(
+ (img) => new Promise((res) => {
+ function setupImage() {
+ img.style.display = "flex";
+ img.style.flexDirection = "column";
+ if (noImgText) {
+ const bodyFontSize = config6.fontSize ? config6.fontSize : window.getComputedStyle(document.body).fontSize;
+ const enlargingFactor = 5;
+ const width3 = parseInt(bodyFontSize, 10) * enlargingFactor + "px";
+ img.style.minWidth = width3;
+ img.style.maxWidth = width3;
+ } else {
+ img.style.width = "100%";
+ }
+ res(img);
+ }
+ __name(setupImage, "setupImage");
+ setTimeout(() => {
+ if (img.complete) {
+ setupImage();
+ }
+ });
+ img.addEventListener("error", setupImage);
+ img.addEventListener("load", setupImage);
+ })
+ )
);
}
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
}
- if (commit2.tag) {
- const rect2 = gLabels.insert("polygon");
- const hole = gLabels.append("circle");
- const tag = gLabels.append("text").attr("y", y2 - 16).attr("class", "tag-label").text(commit2.tag);
- let tagBbox = tag.node().getBBox();
- tag.attr("x", pos + 10 - tagBbox.width / 2);
- const h2 = tagBbox.height / 2;
- const ly = y2 - 19.2;
- rect2.attr("class", "tag-label-bkg").attr(
- "points",
- `
- ${pos - tagBbox.width / 2 - px / 2},${ly + py}
- ${pos - tagBbox.width / 2 - px / 2},${ly - py}
- ${pos + 10 - tagBbox.width / 2 - px},${ly - h2 - py}
- ${pos + 10 + tagBbox.width / 2 + px},${ly - h2 - py}
- ${pos + 10 + tagBbox.width / 2 + px},${ly + h2 + py}
- ${pos + 10 - tagBbox.width / 2 - px},${ly + h2 + py}`
- );
- hole.attr("cx", pos - tagBbox.width / 2 + px / 2).attr("cy", ly).attr("r", 1.5).attr("class", "tag-hole");
+ if (useHtmlLabels) {
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ } else {
+ label.attr("transform", "translate(0, " + -bbox.height / 2 + ")");
}
- }
- pos += 50;
- if (pos > maxPos) {
- maxPos = pos;
- }
- });
- };
- const hasOverlappingCommits = (commit1, commit2, allCommits) => {
- const keys2 = Object.keys(allCommits);
- const overlappingComits = keys2.filter((key) => {
- return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq;
- });
- return overlappingComits.length > 0;
- };
- const findLane = (y1, y2, depth = 0) => {
- const candidate = y1 + Math.abs(y1 - y2) / 2;
- if (depth > 5) {
- return candidate;
- }
- let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);
- if (ok) {
- lanes.push(candidate);
- return candidate;
- }
- const diff = Math.abs(y1 - y2);
- return findLane(y1, y2 - diff / 5, depth + 1);
- };
- const drawArrow = (svg2, commit1, commit2, allCommits) => {
- const p1 = commitPos[commit1.id];
- const p2 = commitPos[commit2.id];
- const overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits);
- let arc = "";
- let arc2 = "";
- let radius = 0;
- let offset = 0;
- let colorClassNum = branchPos[commit2.branch].index;
- let lineDef;
- if (overlappingCommits) {
- arc = "A 10 10, 0, 0, 0,";
- arc2 = "A 10 10, 0, 0, 1,";
- radius = 10;
- offset = 10;
- colorClassNum = branchPos[commit2.branch].index;
- const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);
- if (p1.y < p2.y) {
- lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;
- } else {
- lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;
- }
- } else {
- if (p1.y < p2.y) {
- arc = "A 20 20, 0, 0, 0,";
- radius = 20;
- offset = 20;
- colorClassNum = branchPos[commit2.branch].index;
- lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
- }
- if (p1.y > p2.y) {
- arc = "A 20 20, 0, 0, 0,";
- radius = 20;
- offset = 20;
- colorClassNum = branchPos[commit1.branch].index;
- lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;
- }
- if (p1.y === p2.y) {
- colorClassNum = branchPos[commit1.branch].index;
- lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
- }
- }
- svg2.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT);
- };
- const drawArrows = (svg2, commits2) => {
- const gArrows = svg2.append("g").attr("class", "commit-arrows");
- Object.keys(commits2).forEach((key) => {
- const commit2 = commits2[key];
- if (commit2.parents && commit2.parents.length > 0) {
- commit2.parents.forEach((parent) => {
- drawArrow(gArrows, commits2[parent], commit2, commits2);
- });
- }
- });
- };
- const drawBranches = (svg2, branches2) => {
- const gitGraphConfig = getConfig().gitGraph;
- const g = svg2.append("g");
- branches2.forEach((branch2, index) => {
- const adjustIndexForTheme = index % THEME_COLOR_LIMIT;
- const pos = branchPos[branch2.name].pos;
- const line2 = g.append("line");
- line2.attr("x1", 0);
- line2.attr("y1", pos);
- line2.attr("x2", maxPos);
- line2.attr("y2", pos);
- line2.attr("class", "branch branch" + adjustIndexForTheme);
- lanes.push(pos);
- let name2 = branch2.name;
- const labelElement = drawText$3(name2);
- const bkg = g.insert("rect");
- const branchLabel = g.insert("g").attr("class", "branchLabel");
- const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme);
- label.node().appendChild(labelElement);
- let bbox = labelElement.getBBox();
- bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4);
- label.attr(
- "transform",
- "translate(" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")"
- );
- bkg.attr("transform", "translate(-19, " + (pos - bbox.height / 2) + ")");
- });
- };
- const draw$d = function(txt, id2, ver, diagObj) {
- clear$9();
- const conf2 = getConfig();
- const gitGraphConfig = conf2.gitGraph;
- log$1.debug("in gitgraph renderer", txt + "\n", "id:", id2, ver);
- allCommitsDict = diagObj.db.getCommits();
- const branches2 = diagObj.db.getBranchesAsObjArray();
- let pos = 0;
- branches2.forEach((branch2, index) => {
- branchPos[branch2.name] = { pos, index };
- pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0);
- });
- const diagram2 = select(`[id="${id2}"]`);
- drawCommits(diagram2, allCommitsDict, false);
- if (gitGraphConfig.showBranches) {
- drawBranches(diagram2, branches2);
- }
- drawArrows(diagram2, allCommitsDict);
- drawCommits(diagram2, allCommitsDict, true);
- utils.insertTitle(
- diagram2,
- "gitTitleText",
- gitGraphConfig.titleTopMargin,
- diagObj.db.getDiagramTitle()
- );
- setupGraphViewbox(
- void 0,
- diagram2,
- gitGraphConfig.diagramPadding,
- gitGraphConfig.useMaxWidth ?? conf2.useMaxWidth
- );
- };
- const gitGraphRenderer = {
- draw: draw$d
- };
- const getStyles$b = (options2) => `
- .commit-id,
- .commit-msg,
- .branch-label {
- fill: lightgrey;
- color: lightgrey;
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
- }
- ${[0, 1, 2, 3, 4, 5, 6, 7].map(
- (i2) => `
- .branch-label${i2} { fill: ${options2["gitBranchLabel" + i2]}; }
- .commit${i2} { stroke: ${options2["git" + i2]}; fill: ${options2["git" + i2]}; }
- .commit-highlight${i2} { stroke: ${options2["gitInv" + i2]}; fill: ${options2["gitInv" + i2]}; }
- .label${i2} { fill: ${options2["git" + i2]}; }
- .arrow${i2} { stroke: ${options2["git" + i2]}; }
- `
- ).join("\n")}
-
- .branch {
- stroke-width: 1;
- stroke: ${options2.lineColor};
- stroke-dasharray: 2;
- }
- .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};}
- .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; }
- .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};}
- .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; }
- .tag-hole { fill: ${options2.textColor}; }
+ if (node2.centerLabel) {
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ }
+ label.insert("rect", ":first-child");
+ return { shapeSvg, bbox, halfPadding, label };
+ }, "labelHelper");
+ updateNodeBounds = /* @__PURE__ */ __name((node2, element3) => {
+ const bbox = element3.node().getBBox();
+ node2.width = bbox.width;
+ node2.height = bbox.height;
+ }, "updateNodeBounds");
+ __name(insertPolygonShape, "insertPolygonShape");
+ }
+ });
- .commit-merge {
- stroke: ${options2.primaryColor};
- fill: ${options2.primaryColor};
- }
- .commit-reverse {
- stroke: ${options2.primaryColor};
- fill: ${options2.primaryColor};
- stroke-width: 3;
- }
- .commit-highlight-outer {
- }
- .commit-highlight-inner {
- stroke: ${options2.primaryColor};
- fill: ${options2.primaryColor};
- }
+ // src/dagre-wrapper/shapes/note.js
+ var note, note_default;
+ var init_note = __esm({
+ "src/dagre-wrapper/shapes/note.js"() {
+ "use strict";
+ init_util();
+ init_logger();
+ init_diagramAPI();
+ init_intersect();
+ note = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const useHtmlLabels = node2.useHtmlLabels || getConfig2().flowchart.htmlLabels;
+ if (!useHtmlLabels) {
+ node2.centerLabel = true;
+ }
+ const { shapeSvg, bbox, halfPadding } = await labelHelper(
+ parent4,
+ node2,
+ "node " + node2.classes,
+ true
+ );
+ log.info("Classes = ", node2.classes);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ rect4.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
+ updateNodeBounds(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "note");
+ note_default = note;
+ }
+ });
- .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
- .gitTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${options2.textColor};
- }
-`;
- const gitGraphStyles = getStyles$b;
- const diagram$d = {
- parser: gitGraphParser,
- db: gitGraphDb,
- renderer: gitGraphRenderer,
- styles: gitGraphStyles
- };
- const gitGraphDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$d
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$h = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 21], $Va = [1, 22], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 25], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 29], $Vh = [1, 31], $Vi = [1, 34], $Vj = [5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "directive": 4, "gantt": 5, "document": 6, "EOF": 7, "line": 8, "SPACE": 9, "statement": 10, "NL": 11, "dateFormat": 12, "inclusiveEndDates": 13, "topAxis": 14, "axisFormat": 15, "tickInterval": 16, "excludes": 17, "includes": 18, "todayMarker": 19, "title": 20, "acc_title": 21, "acc_title_value": 22, "acc_descr": 23, "acc_descr_value": 24, "acc_descr_multiline_value": 25, "section": 26, "clickStatement": 27, "taskTxt": 28, "taskData": 29, "openDirective": 30, "typeDirective": 31, "closeDirective": 32, ":": 33, "argDirective": 34, "click": 35, "callbackname": 36, "callbackargs": 37, "href": 38, "clickStatementDebug": 39, "open_directive": 40, "type_directive": 41, "arg_directive": 42, "close_directive": 43, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 5: "gantt", 7: "EOF", 9: "SPACE", 11: "NL", 12: "dateFormat", 13: "inclusiveEndDates", 14: "topAxis", 15: "axisFormat", 16: "tickInterval", 17: "excludes", 18: "includes", 19: "todayMarker", 20: "title", 21: "acc_title", 22: "acc_title_value", 23: "acc_descr", 24: "acc_descr_value", 25: "acc_descr_multiline_value", 26: "section", 28: "taskTxt", 29: "taskData", 33: ":", 35: "click", 36: "callbackname", 37: "callbackargs", 38: "href", 40: "open_directive", 41: "type_directive", 42: "arg_directive", 43: "close_directive" },
- productions_: [0, [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [8, 1], [8, 1], [8, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 2], [10, 1], [4, 4], [4, 6], [27, 2], [27, 3], [27, 3], [27, 4], [27, 3], [27, 4], [27, 2], [39, 2], [39, 3], [39, 3], [39, 4], [39, 3], [39, 4], [39, 2], [30, 1], [31, 1], [34, 1], [32, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 2:
- return $$[$0 - 1];
- case 3:
- this.$ = [];
- break;
- case 4:
- $$[$0 - 1].push($$[$0]);
- this.$ = $$[$0 - 1];
- break;
- case 5:
- case 6:
- this.$ = $$[$0];
- break;
- case 7:
- case 8:
- this.$ = [];
- break;
- case 9:
- yy.setDateFormat($$[$0].substr(11));
- this.$ = $$[$0].substr(11);
- break;
- case 10:
- yy.enableInclusiveEndDates();
- this.$ = $$[$0].substr(18);
- break;
- case 11:
- yy.TopAxis();
- this.$ = $$[$0].substr(8);
- break;
- case 12:
- yy.setAxisFormat($$[$0].substr(11));
- this.$ = $$[$0].substr(11);
- break;
- case 13:
- yy.setTickInterval($$[$0].substr(13));
- this.$ = $$[$0].substr(13);
- break;
- case 14:
- yy.setExcludes($$[$0].substr(9));
- this.$ = $$[$0].substr(9);
- break;
- case 15:
- yy.setIncludes($$[$0].substr(9));
- this.$ = $$[$0].substr(9);
- break;
- case 16:
- yy.setTodayMarker($$[$0].substr(12));
- this.$ = $$[$0].substr(12);
- break;
- case 17:
- yy.setDiagramTitle($$[$0].substr(6));
- this.$ = $$[$0].substr(6);
- break;
- case 18:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 19:
- case 20:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 21:
- yy.addSection($$[$0].substr(8));
- this.$ = $$[$0].substr(8);
- break;
- case 23:
- yy.addTask($$[$0 - 1], $$[$0]);
- this.$ = "task";
- break;
- case 27:
- this.$ = $$[$0 - 1];
- yy.setClickEvent($$[$0 - 1], $$[$0], null);
- break;
- case 28:
- this.$ = $$[$0 - 2];
- yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
- break;
- case 29:
- this.$ = $$[$0 - 2];
- yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);
- yy.setLink($$[$0 - 2], $$[$0]);
- break;
- case 30:
- this.$ = $$[$0 - 3];
- yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
- yy.setLink($$[$0 - 3], $$[$0]);
- break;
- case 31:
- this.$ = $$[$0 - 2];
- yy.setClickEvent($$[$0 - 2], $$[$0], null);
- yy.setLink($$[$0 - 2], $$[$0 - 1]);
- break;
- case 32:
- this.$ = $$[$0 - 3];
- yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);
- yy.setLink($$[$0 - 3], $$[$0 - 2]);
- break;
- case 33:
- this.$ = $$[$0 - 1];
- yy.setLink($$[$0 - 1], $$[$0]);
- break;
- case 34:
- case 40:
- this.$ = $$[$0 - 1] + " " + $$[$0];
- break;
- case 35:
- case 36:
- case 38:
- this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
- break;
- case 37:
- case 39:
- this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
- break;
- case 41:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 42:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 43:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 44:
- yy.parseDirective("}%%", "close_directive", "gantt");
- break;
- }
- },
- table: [{ 3: 1, 4: 2, 5: $V0, 30: 4, 40: $V1 }, { 1: [3] }, { 3: 6, 4: 2, 5: $V0, 30: 4, 40: $V1 }, o($V2, [2, 3], { 6: 7 }), { 31: 8, 41: [1, 9] }, { 41: [2, 41] }, { 1: [2, 1] }, { 4: 30, 7: [1, 10], 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, { 32: 32, 33: [1, 33], 43: $Vi }, o([33, 43], [2, 42]), o($V2, [2, 8], { 1: [2, 2] }), o($V2, [2, 4]), { 4: 30, 10: 35, 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 9]), o($V2, [2, 10]), o($V2, [2, 11]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), { 22: [1, 36] }, { 24: [1, 37] }, o($V2, [2, 20]), o($V2, [2, 21]), o($V2, [2, 22]), { 29: [1, 38] }, o($V2, [2, 24]), { 36: [1, 39], 38: [1, 40] }, { 11: [1, 41] }, { 34: 42, 42: [1, 43] }, { 11: [2, 44] }, o($V2, [2, 5]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 23]), o($V2, [2, 27], { 37: [1, 44], 38: [1, 45] }), o($V2, [2, 33], { 36: [1, 46] }), o($Vj, [2, 25]), { 32: 47, 43: $Vi }, { 43: [2, 43] }, o($V2, [2, 28], { 38: [1, 48] }), o($V2, [2, 29]), o($V2, [2, 31], { 37: [1, 49] }), { 11: [1, 50] }, o($V2, [2, 30]), o($V2, [2, 32]), o($Vj, [2, 26])],
- defaultActions: { 5: [2, 41], 6: [2, 1], 34: [2, 44], 43: [2, 43] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
+ // src/dagre-wrapper/nodes.js
+ function applyNodePropertyBorders(rect4, borders, totalWidth, totalHeight) {
+ const strokeDashArray = [];
+ const addBorder = /* @__PURE__ */ __name((length2) => {
+ strokeDashArray.push(length2, 0);
+ }, "addBorder");
+ const skipBorder = /* @__PURE__ */ __name((length2) => {
+ strokeDashArray.push(0, length2);
+ }, "skipBorder");
+ if (borders.includes("t")) {
+ log.debug("add top border");
+ addBorder(totalWidth);
+ } else {
+ skipBorder(totalWidth);
+ }
+ if (borders.includes("r")) {
+ log.debug("add right border");
+ addBorder(totalHeight);
+ } else {
+ skipBorder(totalHeight);
+ }
+ if (borders.includes("b")) {
+ log.debug("add bottom border");
+ addBorder(totalWidth);
+ } else {
+ skipBorder(totalWidth);
+ }
+ if (borders.includes("l")) {
+ log.debug("add left border");
+ addBorder(totalHeight);
+ } else {
+ skipBorder(totalHeight);
+ }
+ rect4.attr("stroke-dasharray", strokeDashArray.join(" "));
+ }
+ var formatClass, getClassesFromNode, question, choice, hexagon, block_arrow, rect_left_inv_arrow, lean_right, lean_left, trapezoid, inv_trapezoid, rect_right_inv_arrow, cylinder, rect, composite, labelRect, rectWithTitle, stadium, circle, doublecircle, subroutine, start2, forkJoin, end, class_box, shapes, nodeElems, insertNode, setNodeElem, clear4, positionNode;
+ var init_nodes2 = __esm({
+ "src/dagre-wrapper/nodes.js"() {
+ "use strict";
+ init_src32();
+ init_diagramAPI();
+ init_common();
+ init_logger();
+ init_blockArrowHelper();
+ init_createLabel();
+ init_intersect();
+ init_note();
+ init_util();
+ formatClass = /* @__PURE__ */ __name((str2) => {
+ if (str2) {
+ return " " + str2;
}
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
+ return "";
+ }, "formatClass");
+ getClassesFromNode = /* @__PURE__ */ __name((node2, otherClasses) => {
+ return `${otherClasses ? otherClasses : "node default"}${formatClass(node2.classes)} ${formatClass(
+ node2.class
+ )}`;
+ }, "getClassesFromNode");
+ question = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const s2 = w3 + h2;
+ const points = [
+ { x: s2 / 2, y: 0 },
+ { x: s2, y: -s2 / 2 },
+ { x: s2 / 2, y: -s2 },
+ { x: 0, y: -s2 / 2 }
+ ];
+ log.info("Question main (Circle)");
+ const questionElem = insertPolygonShape(shapeSvg, s2, s2, points);
+ questionElem.attr("style", node2.style);
+ updateNodeBounds(node2, questionElem);
+ node2.intersect = function(point8) {
+ log.warn("Intersect called");
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "question");
+ choice = /* @__PURE__ */ __name((parent4, node2) => {
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ const s2 = 28;
+ const points = [
+ { x: 0, y: s2 / 2 },
+ { x: s2 / 2, y: 0 },
+ { x: 0, y: -s2 / 2 },
+ { x: -s2 / 2, y: 0 }
+ ];
+ const choice3 = shapeSvg.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d2) {
+ return d2.x + "," + d2.y;
+ }).join(" ")
+ );
+ choice3.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28);
+ node2.width = 28;
+ node2.height = 28;
+ node2.intersect = function(point8) {
+ return intersect_default.circle(node2, 14, point8);
+ };
+ return shapeSvg;
+ }, "choice");
+ hexagon = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const f3 = 4;
+ const h2 = bbox.height + node2.padding;
+ const m2 = h2 / f3;
+ const w3 = bbox.width + 2 * m2 + node2.padding;
+ const points = [
+ { x: m2, y: 0 },
+ { x: w3 - m2, y: 0 },
+ { x: w3, y: -h2 / 2 },
+ { x: w3 - m2, y: -h2 },
+ { x: m2, y: -h2 },
+ { x: 0, y: -h2 / 2 }
+ ];
+ const hex2 = insertPolygonShape(shapeSvg, w3, h2, points);
+ hex2.attr("style", node2.style);
+ updateNodeBounds(node2, hex2);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "hexagon");
+ block_arrow = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(parent4, node2, void 0, true);
+ const f3 = 2;
+ const h2 = bbox.height + 2 * node2.padding;
+ const m2 = h2 / f3;
+ const w3 = bbox.width + 2 * m2 + node2.padding;
+ const points = getArrowPoints(node2.directions, bbox, node2);
+ const blockArrow = insertPolygonShape(shapeSvg, w3, h2, points);
+ blockArrow.attr("style", node2.style);
+ updateNodeBounds(node2, blockArrow);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "block_arrow");
+ rect_left_inv_arrow = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: -h2 / 2, y: 0 },
+ { x: w3, y: 0 },
+ { x: w3, y: -h2 },
+ { x: -h2 / 2, y: -h2 },
+ { x: 0, y: -h2 / 2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w3, h2, points);
+ el.attr("style", node2.style);
+ node2.width = w3 + h2;
+ node2.height = h2;
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "rect_left_inv_arrow");
+ lean_right = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(parent4, node2, getClassesFromNode(node2), true);
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: -2 * h2 / 6, y: 0 },
+ { x: w3 - h2 / 6, y: 0 },
+ { x: w3 + 2 * h2 / 6, y: -h2 },
+ { x: h2 / 6, y: -h2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w3, h2, points);
+ el.attr("style", node2.style);
+ updateNodeBounds(node2, el);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "lean_right");
+ lean_left = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: 2 * h2 / 6, y: 0 },
+ { x: w3 + h2 / 6, y: 0 },
+ { x: w3 - 2 * h2 / 6, y: -h2 },
+ { x: -h2 / 6, y: -h2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w3, h2, points);
+ el.attr("style", node2.style);
+ updateNodeBounds(node2, el);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "lean_left");
+ trapezoid = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: -2 * h2 / 6, y: 0 },
+ { x: w3 + 2 * h2 / 6, y: 0 },
+ { x: w3 - h2 / 6, y: -h2 },
+ { x: h2 / 6, y: -h2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w3, h2, points);
+ el.attr("style", node2.style);
+ updateNodeBounds(node2, el);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "trapezoid");
+ inv_trapezoid = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: h2 / 6, y: 0 },
+ { x: w3 - h2 / 6, y: 0 },
+ { x: w3 + 2 * h2 / 6, y: -h2 },
+ { x: -2 * h2 / 6, y: -h2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w3, h2, points);
+ el.attr("style", node2.style);
+ updateNodeBounds(node2, el);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "inv_trapezoid");
+ rect_right_inv_arrow = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w3 + h2 / 2, y: 0 },
+ { x: w3, y: -h2 / 2 },
+ { x: w3 + h2 / 2, y: -h2 },
+ { x: 0, y: -h2 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w3, h2, points);
+ el.attr("style", node2.style);
+ updateNodeBounds(node2, el);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "rect_right_inv_arrow");
+ cylinder = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const rx = w3 / 2;
+ const ry = rx / (2.5 + w3 / 50);
+ const h2 = bbox.height + ry + node2.padding;
+ const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w3 + " 0 a " + rx + "," + ry + " 0,0,0 " + -w3 + " 0 l 0," + h2 + " a " + rx + "," + ry + " 0,0,0 " + w3 + " 0 l 0," + -h2;
+ const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node2.style).attr("d", shape).attr("transform", "translate(" + -w3 / 2 + "," + -(h2 / 2 + ry) + ")");
+ updateNodeBounds(node2, el);
+ node2.intersect = function(point8) {
+ const pos = intersect_default.rect(node2, point8);
+ const x5 = pos.x - node2.x;
+ if (rx != 0 && (Math.abs(x5) < node2.width / 2 || Math.abs(x5) == node2.width / 2 && Math.abs(pos.y - node2.y) > node2.height / 2 - ry)) {
+ let y5 = ry * ry * (1 - x5 * x5 / (rx * rx));
+ if (y5 != 0) {
+ y5 = Math.sqrt(y5);
+ }
+ y5 = ry - y5;
+ if (point8.y - node2.y > 0) {
+ y5 = -y5;
+ }
+ pos.y += y5;
}
- return token2;
+ return pos;
+ };
+ return shapeSvg;
+ }, "cylinder");
+ rect = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox, halfPadding } = await labelHelper(
+ parent4,
+ node2,
+ "node " + node2.classes + " " + node2.class,
+ true
+ );
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = node2.positioned ? node2.width : bbox.width + node2.padding;
+ const totalHeight = node2.positioned ? node2.height : bbox.height + node2.padding;
+ const x5 = node2.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;
+ const y5 = node2.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;
+ rect4.attr("class", "basic label-container").attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", x5).attr("y", y5).attr("width", totalWidth).attr("height", totalHeight);
+ if (node2.props) {
+ const propKeys = new Set(Object.keys(node2.props));
+ if (node2.props.borders) {
+ applyNodePropertyBorders(rect4, node2.props.borders, totalWidth, totalHeight);
+ propKeys.delete("borders");
+ }
+ propKeys.forEach((propKey) => {
+ log.warn(`Unknown node property ${propKey}`);
+ });
}
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
+ updateNodeBounds(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "rect");
+ composite = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox, halfPadding } = await labelHelper(
+ parent4,
+ node2,
+ "node " + node2.classes,
+ true
+ );
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = node2.positioned ? node2.width : bbox.width + node2.padding;
+ const totalHeight = node2.positioned ? node2.height : bbox.height + node2.padding;
+ const x5 = node2.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;
+ const y5 = node2.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;
+ rect4.attr("class", "basic cluster composite label-container").attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", x5).attr("y", y5).attr("width", totalWidth).attr("height", totalHeight);
+ if (node2.props) {
+ const propKeys = new Set(Object.keys(node2.props));
+ if (node2.props.borders) {
+ applyNodePropertyBorders(rect4, node2.props.borders, totalWidth, totalHeight);
+ propKeys.delete("borders");
+ }
+ propKeys.forEach((propKey) => {
+ log.warn(`Unknown node property ${propKey}`);
+ });
}
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 40;
- case 1:
- this.begin("type_directive");
- return 41;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 33;
- case 3:
- this.popState();
- this.popState();
- return 43;
- case 4:
- return 42;
- case 5:
- this.begin("acc_title");
- return 21;
- case 6:
- this.popState();
- return "acc_title_value";
- case 7:
- this.begin("acc_descr");
- return 23;
- case 8:
- this.popState();
- return "acc_descr_value";
- case 9:
- this.begin("acc_descr_multiline");
- break;
- case 10:
- this.popState();
- break;
- case 11:
- return "acc_descr_multiline_value";
- case 12:
- break;
- case 13:
- break;
- case 14:
- break;
- case 15:
- return 11;
- case 16:
- break;
- case 17:
- break;
- case 18:
- break;
- case 19:
- this.begin("href");
- break;
- case 20:
- this.popState();
- break;
- case 21:
- return 38;
- case 22:
- this.begin("callbackname");
- break;
- case 23:
- this.popState();
- break;
- case 24:
- this.popState();
- this.begin("callbackargs");
- break;
- case 25:
- return 36;
- case 26:
- this.popState();
- break;
- case 27:
- return 37;
- case 28:
- this.begin("click");
- break;
- case 29:
- this.popState();
- break;
- case 30:
- return 35;
- case 31:
- return 5;
- case 32:
- return 12;
- case 33:
- return 13;
- case 34:
- return 14;
- case 35:
- return 15;
- case 36:
- return 16;
- case 37:
- return 18;
- case 38:
- return 17;
- case 39:
- return 19;
- case 40:
- return "date";
- case 41:
- return 20;
- case 42:
- return "accDescription";
- case 43:
- return 26;
- case 44:
- return 28;
- case 45:
- return 29;
- case 46:
- return 33;
- case 47:
- return 7;
- case 48:
- return "INVALID";
- }
- },
- rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
- conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [26, 27], "inclusive": false }, "callbackname": { "rules": [23, 24, 25], "inclusive": false }, "href": { "rules": [20, 21], "inclusive": false }, "click": { "rules": [29, 30], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$h.parser = parser$h;
- const ganttParser = parser$h;
- var isoWeekPrettyUnit = "isoweek";
- const dayjsIsoWeek = function(o, c2, d) {
- var getYearFirstThursday = function getYearFirstThursday2(year2, isUtc) {
- var yearFirstDay = (isUtc ? d.utc : d)().year(year2).startOf(Y);
- var addDiffDays = 4 - yearFirstDay.isoWeekday();
- if (yearFirstDay.isoWeekday() > 4) {
- addDiffDays += 7;
- }
- return yearFirstDay.add(addDiffDays, D);
- };
- var getCurrentWeekThursday = function getCurrentWeekThursday2(ins) {
- return ins.add(4 - ins.isoWeekday(), D);
- };
- var proto2 = c2.prototype;
- proto2.isoWeekYear = function() {
- var nowWeekThursday = getCurrentWeekThursday(this);
- return nowWeekThursday.year();
- };
- proto2.isoWeek = function(week) {
- if (!this.$utils().u(week)) {
- return this.add((week - this.isoWeek()) * 7, D);
- }
- var nowWeekThursday = getCurrentWeekThursday(this);
- var diffWeekThursday = getYearFirstThursday(this.isoWeekYear(), this.$u);
- return nowWeekThursday.diff(diffWeekThursday, W) + 1;
- };
- proto2.isoWeekday = function(week) {
- if (!this.$utils().u(week)) {
- return this.day(this.day() % 7 ? week : week - 7);
- }
- return this.day() || 7;
- };
- var oldStartOf = proto2.startOf;
- proto2.startOf = function(units, startOf) {
- var utils2 = this.$utils();
- var isStartOf = !utils2.u(startOf) ? startOf : true;
- var unit2 = utils2.p(units);
- if (unit2 === isoWeekPrettyUnit) {
- return isStartOf ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day");
- }
- return oldStartOf.bind(this)(units, startOf);
- };
- };
- var t = function t4(format2) {
- return format2.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(_2, a, b) {
- return a || b.slice(1);
- });
- };
- var englishFormats = {
- LTS: "h:mm:ss A",
- LT: "h:mm A",
- L: "MM/DD/YYYY",
- LL: "MMMM D, YYYY",
- LLL: "MMMM D, YYYY h:mm A",
- LLLL: "dddd, MMMM D, YYYY h:mm A"
- };
- var u = function u2(formatStr, formats) {
- return formatStr.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(_2, a, b) {
- var B = b && b.toUpperCase();
- return a || formats[b] || englishFormats[b] || t(formats[B]);
- });
- };
- var formattingTokens = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g;
- var match1 = /\d/;
- var match2 = /\d\d/;
- var match3 = /\d{3}/;
- var match4 = /\d{4}/;
- var match1to2 = /\d\d?/;
- var matchSigned = /[+-]?\d+/;
- var matchOffset = /[+-]\d\d:?(\d\d)?|Z/;
- var matchWord = /\d*[^-_:/,()\s\d]+/;
- var locale = {};
- var parseTwoDigitYear = function parseTwoDigitYear2(input) {
- input = +input;
- return input + (input > 68 ? 1900 : 2e3);
- };
- function offsetFromString(string) {
- if (!string)
- return 0;
- if (string === "Z")
- return 0;
- var parts = string.match(/([+-]|\d\d)/g);
- var minutes = +(parts[1] * 60) + (+parts[2] || 0);
- return minutes === 0 ? 0 : parts[0] === "+" ? -minutes : minutes;
- }
- var addInput = function addInput2(property2) {
- return function(input) {
- this[property2] = +input;
- };
- };
- var zoneExpressions = [matchOffset, function(input) {
- var zone = this.zone || (this.zone = {});
- zone.offset = offsetFromString(input);
- }];
- var getLocalePart = function getLocalePart2(name2) {
- var part = locale[name2];
- return part && (part.indexOf ? part : part.s.concat(part.f));
- };
- var meridiemMatch = function meridiemMatch2(input, isLowerCase) {
- var isAfternoon;
- var _locale = locale, meridiem = _locale.meridiem;
- if (!meridiem) {
- isAfternoon = input === (isLowerCase ? "pm" : "PM");
- } else {
- for (var i2 = 1; i2 <= 24; i2 += 1) {
- if (input.indexOf(meridiem(i2, 0, isLowerCase)) > -1) {
- isAfternoon = i2 > 12;
- break;
+ updateNodeBounds(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "composite");
+ labelRect = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg } = await labelHelper(parent4, node2, "label", true);
+ log.trace("Classes = ", node2.class);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = 0;
+ const totalHeight = 0;
+ rect4.attr("width", totalWidth).attr("height", totalHeight);
+ shapeSvg.attr("class", "label edgeLabel");
+ if (node2.props) {
+ const propKeys = new Set(Object.keys(node2.props));
+ if (node2.props.borders) {
+ applyNodePropertyBorders(rect4, node2.props.borders, totalWidth, totalHeight);
+ propKeys.delete("borders");
+ }
+ propKeys.forEach((propKey) => {
+ log.warn(`Unknown node property ${propKey}`);
+ });
}
- }
- }
- return isAfternoon;
- };
- var expressions = {
- A: [matchWord, function(input) {
- this.afternoon = meridiemMatch(input, false);
- }],
- a: [matchWord, function(input) {
- this.afternoon = meridiemMatch(input, true);
- }],
- S: [match1, function(input) {
- this.milliseconds = +input * 100;
- }],
- SS: [match2, function(input) {
- this.milliseconds = +input * 10;
- }],
- SSS: [match3, function(input) {
- this.milliseconds = +input;
- }],
- s: [match1to2, addInput("seconds")],
- ss: [match1to2, addInput("seconds")],
- m: [match1to2, addInput("minutes")],
- mm: [match1to2, addInput("minutes")],
- H: [match1to2, addInput("hours")],
- h: [match1to2, addInput("hours")],
- HH: [match1to2, addInput("hours")],
- hh: [match1to2, addInput("hours")],
- D: [match1to2, addInput("day")],
- DD: [match2, addInput("day")],
- Do: [matchWord, function(input) {
- var _locale2 = locale, ordinal2 = _locale2.ordinal;
- var _input$match = input.match(/\d+/);
- this.day = _input$match[0];
- if (!ordinal2)
- return;
- for (var i2 = 1; i2 <= 31; i2 += 1) {
- if (ordinal2(i2).replace(/\[|\]/g, "") === input) {
- this.day = i2;
- }
- }
- }],
- M: [match1to2, addInput("month")],
- MM: [match2, addInput("month")],
- MMM: [matchWord, function(input) {
- var months = getLocalePart("months");
- var monthsShort = getLocalePart("monthsShort");
- var matchIndex = (monthsShort || months.map(function(_2) {
- return _2.slice(0, 3);
- })).indexOf(input) + 1;
- if (matchIndex < 1) {
- throw new Error();
- }
- this.month = matchIndex % 12 || matchIndex;
- }],
- MMMM: [matchWord, function(input) {
- var months = getLocalePart("months");
- var matchIndex = months.indexOf(input) + 1;
- if (matchIndex < 1) {
- throw new Error();
- }
- this.month = matchIndex % 12 || matchIndex;
- }],
- Y: [matchSigned, addInput("year")],
- YY: [match2, function(input) {
- this.year = parseTwoDigitYear(input);
- }],
- YYYY: [match4, addInput("year")],
- Z: zoneExpressions,
- ZZ: zoneExpressions
- };
- function correctHours(time2) {
- var afternoon = time2.afternoon;
- if (afternoon !== void 0) {
- var hours = time2.hours;
- if (afternoon) {
- if (hours < 12) {
- time2.hours += 12;
- }
- } else if (hours === 12) {
- time2.hours = 0;
- }
- delete time2.afternoon;
- }
- }
- function makeParser(format2) {
- format2 = u(format2, locale && locale.formats);
- var array2 = format2.match(formattingTokens);
- var length2 = array2.length;
- for (var i2 = 0; i2 < length2; i2 += 1) {
- var token2 = array2[i2];
- var parseTo = expressions[token2];
- var regex = parseTo && parseTo[0];
- var parser2 = parseTo && parseTo[1];
- if (parser2) {
- array2[i2] = {
- regex,
- parser: parser2
+ updateNodeBounds(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
};
- } else {
- array2[i2] = token2.replace(/^\[|\]$/g, "");
- }
- }
- return function(input) {
- var time2 = {};
- for (var _i = 0, start2 = 0; _i < length2; _i += 1) {
- var _token = array2[_i];
- if (typeof _token === "string") {
- start2 += _token.length;
+ return shapeSvg;
+ }, "labelRect");
+ __name(applyNodePropertyBorders, "applyNodePropertyBorders");
+ rectWithTitle = /* @__PURE__ */ __name((parent4, node2) => {
+ let classes6;
+ if (!node2.classes) {
+ classes6 = "node default";
} else {
- var _regex = _token.regex, _parser = _token.parser;
- var part = input.slice(start2);
- var match = _regex.exec(part);
- var value = match[0];
- _parser.call(time2, value);
- input = input.replace(value, "");
- }
- }
- correctHours(time2);
- return time2;
- };
- }
- var parseFormattedInput = function parseFormattedInput2(input, format2, utc) {
- try {
- if (["x", "X"].indexOf(format2) > -1)
- return new Date((format2 === "X" ? 1e3 : 1) * input);
- var parser2 = makeParser(format2);
- var _parser2 = parser2(input), year2 = _parser2.year, month2 = _parser2.month, day2 = _parser2.day, hours = _parser2.hours, minutes = _parser2.minutes, seconds = _parser2.seconds, milliseconds = _parser2.milliseconds, zone = _parser2.zone;
- var now2 = /* @__PURE__ */ new Date();
- var d = day2 || (!year2 && !month2 ? now2.getDate() : 1);
- var y2 = year2 || now2.getFullYear();
- var M2 = 0;
- if (!(year2 && !month2)) {
- M2 = month2 > 0 ? month2 - 1 : now2.getMonth();
- }
- var h = hours || 0;
- var m = minutes || 0;
- var s = seconds || 0;
- var ms = milliseconds || 0;
- if (zone) {
- return new Date(Date.UTC(y2, M2, d, h, m, s, ms + zone.offset * 60 * 1e3));
- }
- if (utc) {
- return new Date(Date.UTC(y2, M2, d, h, m, s, ms));
- }
- return new Date(y2, M2, d, h, m, s, ms);
- } catch (e) {
- return /* @__PURE__ */ new Date("");
- }
- };
- const dayjsCustomParseFormat = function(o, C, d) {
- d.p.customParseFormat = true;
- if (o && o.parseTwoDigitYear) {
- parseTwoDigitYear = o.parseTwoDigitYear;
- }
- var proto2 = C.prototype;
- var oldParse = proto2.parse;
- proto2.parse = function(cfg) {
- var date2 = cfg.date, utc = cfg.utc, args = cfg.args;
- this.$u = utc;
- var format2 = args[1];
- if (typeof format2 === "string") {
- var isStrictWithoutLocale = args[2] === true;
- var isStrictWithLocale = args[3] === true;
- var isStrict = isStrictWithoutLocale || isStrictWithLocale;
- var pl = args[2];
- if (isStrictWithLocale) {
- pl = args[2];
- }
- locale = this.$locale();
- if (!isStrictWithoutLocale && pl) {
- locale = d.Ls[pl];
- }
- this.$d = parseFormattedInput(date2, format2, utc);
- this.init();
- if (pl && pl !== true)
- this.$L = this.locale(pl).$L;
- if (isStrict && date2 != this.format(format2)) {
- this.$d = /* @__PURE__ */ new Date("");
- }
- locale = {};
- } else if (format2 instanceof Array) {
- var len = format2.length;
- for (var i2 = 1; i2 <= len; i2 += 1) {
- args[1] = format2[i2 - 1];
- var result = d.apply(this, args);
- if (result.isValid()) {
- this.$d = result.$d;
- this.$L = result.$L;
- this.init();
- break;
- }
- if (i2 === len)
- this.$d = /* @__PURE__ */ new Date("");
+ classes6 = "node " + node2.classes;
+ }
+ const shapeSvg = parent4.insert("g").attr("class", classes6).attr("id", node2.domId || node2.id);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const innerLine = shapeSvg.insert("line");
+ const label = shapeSvg.insert("g").attr("class", "label");
+ const text2 = node2.labelText.flat ? node2.labelText.flat() : node2.labelText;
+ let title2 = "";
+ if (typeof text2 === "object") {
+ title2 = text2[0];
+ } else {
+ title2 = text2;
+ }
+ log.info("Label text abc79", title2, text2, typeof text2 === "object");
+ const text3 = label.node().appendChild(createLabel_default(title2, node2.labelStyle, true, true));
+ let bbox = { width: 0, height: 0 };
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ const div = text3.children[0];
+ const dv = select_default2(text3);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ log.info("Text 2", text2);
+ const textRows = text2.slice(1, text2.length);
+ let titleBox = text3.getBBox();
+ const descr = label.node().appendChild(
+ createLabel_default(textRows.join ? textRows.join("
") : textRows, node2.labelStyle, true, true)
+ );
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ const div = descr.children[0];
+ const dv = select_default2(descr);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const halfPadding = node2.padding / 2;
+ select_default2(descr).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")"
+ );
+ select_default2(text3).attr(
+ "transform",
+ "translate( " + // (titleBox.width - bbox.width) / 2 +
+ (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", 0)"
+ );
+ bbox = label.node().getBBox();
+ label.attr(
+ "transform",
+ "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")"
+ );
+ rect4.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
+ innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
+ updateNodeBounds(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "rectWithTitle");
+ stadium = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const h2 = bbox.height + node2.padding;
+ const w3 = bbox.width + h2 / 4 + node2.padding;
+ const rect4 = shapeSvg.insert("rect", ":first-child").attr("style", node2.style).attr("rx", h2 / 2).attr("ry", h2 / 2).attr("x", -w3 / 2).attr("y", -h2 / 2).attr("width", w3).attr("height", h2);
+ updateNodeBounds(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "stadium");
+ circle = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox, halfPadding } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const circle6 = shapeSvg.insert("circle", ":first-child");
+ circle6.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
+ log.info("Circle main");
+ updateNodeBounds(node2, circle6);
+ node2.intersect = function(point8) {
+ log.info("Circle intersect", node2, bbox.width / 2 + halfPadding, point8);
+ return intersect_default.circle(node2, bbox.width / 2 + halfPadding, point8);
+ };
+ return shapeSvg;
+ }, "circle");
+ doublecircle = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox, halfPadding } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const gap = 5;
+ const circleGroup = shapeSvg.insert("g", ":first-child");
+ const outerCircle = circleGroup.insert("circle");
+ const innerCircle = circleGroup.insert("circle");
+ circleGroup.attr("class", node2.class);
+ outerCircle.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node2.padding + gap * 2).attr("height", bbox.height + node2.padding + gap * 2);
+ innerCircle.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
+ log.info("DoubleCircle main");
+ updateNodeBounds(node2, outerCircle);
+ node2.intersect = function(point8) {
+ log.info("DoubleCircle intersect", node2, bbox.width / 2 + halfPadding + gap, point8);
+ return intersect_default.circle(node2, bbox.width / 2 + halfPadding + gap, point8);
+ };
+ return shapeSvg;
+ }, "doublecircle");
+ subroutine = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg, bbox } = await labelHelper(
+ parent4,
+ node2,
+ getClassesFromNode(node2, void 0),
+ true
+ );
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w3, y: 0 },
+ { x: w3, y: -h2 },
+ { x: 0, y: -h2 },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: w3 + 8, y: 0 },
+ { x: w3 + 8, y: -h2 },
+ { x: -8, y: -h2 },
+ { x: -8, y: 0 }
+ ];
+ const el = insertPolygonShape(shapeSvg, w3, h2, points);
+ el.attr("style", node2.style);
+ updateNodeBounds(node2, el);
+ node2.intersect = function(point8) {
+ return intersect_default.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "subroutine");
+ start2 = /* @__PURE__ */ __name((parent4, node2) => {
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ const circle6 = shapeSvg.insert("circle", ":first-child");
+ circle6.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ updateNodeBounds(node2, circle6);
+ node2.intersect = function(point8) {
+ return intersect_default.circle(node2, 7, point8);
+ };
+ return shapeSvg;
+ }, "start");
+ forkJoin = /* @__PURE__ */ __name((parent4, node2, dir2) => {
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ let width3 = 70;
+ let height2 = 10;
+ if (dir2 === "LR") {
+ width3 = 10;
+ height2 = 70;
+ }
+ const shape = shapeSvg.append("rect").attr("x", -1 * width3 / 2).attr("y", -1 * height2 / 2).attr("width", width3).attr("height", height2).attr("class", "fork-join");
+ updateNodeBounds(node2, shape);
+ node2.height = node2.height + node2.padding / 2;
+ node2.width = node2.width + node2.padding / 2;
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "forkJoin");
+ end = /* @__PURE__ */ __name((parent4, node2) => {
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ const innerCircle = shapeSvg.insert("circle", ":first-child");
+ const circle6 = shapeSvg.insert("circle", ":first-child");
+ circle6.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10);
+ updateNodeBounds(node2, circle6);
+ node2.intersect = function(point8) {
+ return intersect_default.circle(node2, 7, point8);
+ };
+ return shapeSvg;
+ }, "end");
+ class_box = /* @__PURE__ */ __name((parent4, node2) => {
+ const halfPadding = node2.padding / 2;
+ const rowPadding = 4;
+ const lineHeight = 8;
+ let classes6;
+ if (!node2.classes) {
+ classes6 = "node default";
+ } else {
+ classes6 = "node " + node2.classes;
+ }
+ const shapeSvg = parent4.insert("g").attr("class", classes6).attr("id", node2.domId || node2.id);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const topLine = shapeSvg.insert("line");
+ const bottomLine = shapeSvg.insert("line");
+ let maxWidth = 0;
+ let maxHeight = rowPadding;
+ const labelContainer = shapeSvg.insert("g").attr("class", "label");
+ let verticalPos = 0;
+ const hasInterface = node2.classData.annotations?.[0];
+ const interfaceLabelText = node2.classData.annotations[0] ? "\xAB" + node2.classData.annotations[0] + "\xBB" : "";
+ const interfaceLabel = labelContainer.node().appendChild(createLabel_default(interfaceLabelText, node2.labelStyle, true, true));
+ let interfaceBBox = interfaceLabel.getBBox();
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ const div = interfaceLabel.children[0];
+ const dv = select_default2(interfaceLabel);
+ interfaceBBox = div.getBoundingClientRect();
+ dv.attr("width", interfaceBBox.width);
+ dv.attr("height", interfaceBBox.height);
+ }
+ if (node2.classData.annotations[0]) {
+ maxHeight += interfaceBBox.height + rowPadding;
+ maxWidth += interfaceBBox.width;
+ }
+ let classTitleString = node2.classData.label;
+ if (node2.classData.type !== void 0 && node2.classData.type !== "") {
+ if (getConfig2().flowchart.htmlLabels) {
+ classTitleString += "<" + node2.classData.type + ">";
+ } else {
+ classTitleString += "<" + node2.classData.type + ">";
+ }
+ }
+ const classTitleLabel = labelContainer.node().appendChild(createLabel_default(classTitleString, node2.labelStyle, true, true));
+ select_default2(classTitleLabel).attr("class", "classTitle");
+ let classTitleBBox = classTitleLabel.getBBox();
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ const div = classTitleLabel.children[0];
+ const dv = select_default2(classTitleLabel);
+ classTitleBBox = div.getBoundingClientRect();
+ dv.attr("width", classTitleBBox.width);
+ dv.attr("height", classTitleBBox.height);
+ }
+ maxHeight += classTitleBBox.height + rowPadding;
+ if (classTitleBBox.width > maxWidth) {
+ maxWidth = classTitleBBox.width;
+ }
+ const classAttributes = [];
+ node2.classData.members.forEach((member) => {
+ const parsedInfo = member.getDisplayDetails();
+ let parsedText = parsedInfo.displayText;
+ if (getConfig2().flowchart.htmlLabels) {
+ parsedText = parsedText.replace(//g, ">");
+ }
+ const lbl = labelContainer.node().appendChild(
+ createLabel_default(
+ parsedText,
+ parsedInfo.cssStyle ? parsedInfo.cssStyle : node2.labelStyle,
+ true,
+ true
+ )
+ );
+ let bbox = lbl.getBBox();
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ const div = lbl.children[0];
+ const dv = select_default2(lbl);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ if (bbox.width > maxWidth) {
+ maxWidth = bbox.width;
+ }
+ maxHeight += bbox.height + rowPadding;
+ classAttributes.push(lbl);
+ });
+ maxHeight += lineHeight;
+ const classMethods = [];
+ node2.classData.methods.forEach((member) => {
+ const parsedInfo = member.getDisplayDetails();
+ let displayText = parsedInfo.displayText;
+ if (getConfig2().flowchart.htmlLabels) {
+ displayText = displayText.replace(//g, ">");
+ }
+ const lbl = labelContainer.node().appendChild(
+ createLabel_default(
+ displayText,
+ parsedInfo.cssStyle ? parsedInfo.cssStyle : node2.labelStyle,
+ true,
+ true
+ )
+ );
+ let bbox = lbl.getBBox();
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ const div = lbl.children[0];
+ const dv = select_default2(lbl);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ if (bbox.width > maxWidth) {
+ maxWidth = bbox.width;
+ }
+ maxHeight += bbox.height + rowPadding;
+ classMethods.push(lbl);
+ });
+ maxHeight += lineHeight;
+ if (hasInterface) {
+ let diffX2 = (maxWidth - interfaceBBox.width) / 2;
+ select_default2(interfaceLabel).attr(
+ "transform",
+ "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")"
+ );
+ verticalPos = interfaceBBox.height + rowPadding;
}
- } else {
- oldParse.call(this, cfg);
- }
- };
- };
- const dayjsAdvancedFormat = function(o, c2) {
- var proto2 = c2.prototype;
- var oldFormat = proto2.format;
- proto2.format = function(formatStr) {
- var _this = this;
- var locale2 = this.$locale();
- if (!this.isValid()) {
- return oldFormat.bind(this)(formatStr);
- }
- var utils2 = this.$utils();
- var str2 = formatStr || FORMAT_DEFAULT;
- var result = str2.replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(match) {
- switch (match) {
- case "Q":
- return Math.ceil((_this.$M + 1) / 3);
- case "Do":
- return locale2.ordinal(_this.$D);
- case "gggg":
- return _this.weekYear();
- case "GGGG":
- return _this.isoWeekYear();
- case "wo":
- return locale2.ordinal(_this.week(), "W");
- case "w":
- case "ww":
- return utils2.s(_this.week(), match === "w" ? 1 : 2, "0");
- case "W":
- case "WW":
- return utils2.s(_this.isoWeek(), match === "W" ? 1 : 2, "0");
- case "k":
- case "kk":
- return utils2.s(String(_this.$H === 0 ? 24 : _this.$H), match === "k" ? 1 : 2, "0");
- case "X":
- return Math.floor(_this.$d.getTime() / 1e3);
- case "x":
- return _this.$d.getTime();
- case "z":
- return "[" + _this.offsetName() + "]";
- case "zzz":
- return "[" + _this.offsetName("long") + "]";
- default:
- return match;
+ let diffX = (maxWidth - classTitleBBox.width) / 2;
+ select_default2(classTitleLabel).attr(
+ "transform",
+ "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
+ );
+ verticalPos += classTitleBBox.height + rowPadding;
+ topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
+ verticalPos += lineHeight;
+ classAttributes.forEach((lbl) => {
+ select_default2(lbl).attr(
+ "transform",
+ "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")"
+ );
+ const memberBBox = lbl?.getBBox();
+ verticalPos += (memberBBox?.height ?? 0) + rowPadding;
+ });
+ verticalPos += lineHeight;
+ bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
+ verticalPos += lineHeight;
+ classMethods.forEach((lbl) => {
+ select_default2(lbl).attr(
+ "transform",
+ "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
+ );
+ const memberBBox = lbl?.getBBox();
+ verticalPos += (memberBBox?.height ?? 0) + rowPadding;
+ });
+ rect4.attr("style", node2.style).attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node2.padding).attr("height", maxHeight + node2.padding);
+ updateNodeBounds(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "class_box");
+ shapes = {
+ rhombus: question,
+ composite,
+ question,
+ rect,
+ labelRect,
+ rectWithTitle,
+ choice,
+ circle,
+ doublecircle,
+ stadium,
+ hexagon,
+ block_arrow,
+ rect_left_inv_arrow,
+ lean_right,
+ lean_left,
+ trapezoid,
+ inv_trapezoid,
+ rect_right_inv_arrow,
+ cylinder,
+ start: start2,
+ end,
+ note: note_default,
+ subroutine,
+ fork: forkJoin,
+ join: forkJoin,
+ class_box
+ };
+ nodeElems = {};
+ insertNode = /* @__PURE__ */ __name(async (elem, node2, dir2) => {
+ let newEl;
+ let el;
+ if (node2.link) {
+ let target;
+ if (getConfig2().securityLevel === "sandbox") {
+ target = "_top";
+ } else if (node2.linkTarget) {
+ target = node2.linkTarget || "_blank";
+ }
+ newEl = elem.insert("svg:a").attr("xlink:href", node2.link).attr("target", target);
+ el = await shapes[node2.shape](newEl, node2, dir2);
+ } else {
+ el = await shapes[node2.shape](elem, node2, dir2);
+ newEl = el;
+ }
+ if (node2.tooltip) {
+ el.attr("title", node2.tooltip);
+ }
+ if (node2.class) {
+ el.attr("class", "node default " + node2.class);
+ }
+ nodeElems[node2.id] = newEl;
+ if (node2.haveCallback) {
+ nodeElems[node2.id].attr("class", nodeElems[node2.id].attr("class") + " clickable");
+ }
+ return newEl;
+ }, "insertNode");
+ setNodeElem = /* @__PURE__ */ __name((elem, node2) => {
+ nodeElems[node2.id] = elem;
+ }, "setNodeElem");
+ clear4 = /* @__PURE__ */ __name(() => {
+ nodeElems = {};
+ }, "clear");
+ positionNode = /* @__PURE__ */ __name((node2) => {
+ const el = nodeElems[node2.id];
+ log.trace(
+ "Transforming node",
+ node2.diff,
+ node2,
+ "translate(" + (node2.x - node2.width / 2 - 5) + ", " + node2.width / 2 + ")"
+ );
+ const padding3 = 8;
+ const diff2 = node2.diff || 0;
+ if (node2.clusterNode) {
+ el.attr(
+ "transform",
+ "translate(" + (node2.x + diff2 - node2.width / 2) + ", " + (node2.y - node2.height / 2 - padding3) + ")"
+ );
+ } else {
+ el.attr("transform", "translate(" + node2.x + ", " + node2.y + ")");
}
- });
- return oldFormat.bind(this)(result);
- };
- };
- dayjs.extend(dayjsIsoWeek);
- dayjs.extend(dayjsCustomParseFormat);
- dayjs.extend(dayjsAdvancedFormat);
- let dateFormat = "";
- let axisFormat = "";
- let tickInterval = void 0;
- let todayMarker = "";
- let includes = [];
- let excludes = [];
- let links = {};
- let sections$3 = [];
- let tasks$2 = [];
- let currentSection$2 = "";
- let displayMode = "";
- const tags = ["active", "done", "crit", "milestone"];
- let funs = [];
- let inclusiveEndDates = false;
- let topAxis = false;
- let lastOrder = 0;
- const parseDirective$7 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const clear$8 = function() {
- sections$3 = [];
- tasks$2 = [];
- currentSection$2 = "";
- funs = [];
- taskCnt = 0;
- lastTask = void 0;
- lastTaskID = void 0;
- rawTasks$2 = [];
- dateFormat = "";
- axisFormat = "";
- displayMode = "";
- tickInterval = void 0;
- todayMarker = "";
- includes = [];
- excludes = [];
- inclusiveEndDates = false;
- topAxis = false;
- lastOrder = 0;
- links = {};
- clear$i();
- };
- const setAxisFormat = function(txt) {
- axisFormat = txt;
- };
- const getAxisFormat = function() {
- return axisFormat;
- };
- const setTickInterval = function(txt) {
- tickInterval = txt;
- };
- const getTickInterval = function() {
- return tickInterval;
- };
- const setTodayMarker = function(txt) {
- todayMarker = txt;
- };
- const getTodayMarker = function() {
- return todayMarker;
- };
- const setDateFormat = function(txt) {
- dateFormat = txt;
- };
- const enableInclusiveEndDates = function() {
- inclusiveEndDates = true;
- };
- const endDatesAreInclusive = function() {
- return inclusiveEndDates;
- };
- const enableTopAxis = function() {
- topAxis = true;
- };
- const topAxisEnabled = function() {
- return topAxis;
- };
- const setDisplayMode = function(txt) {
- displayMode = txt;
- };
- const getDisplayMode = function() {
- return displayMode;
- };
- const getDateFormat = function() {
- return dateFormat;
- };
- const setIncludes = function(txt) {
- includes = txt.toLowerCase().split(/[\s,]+/);
- };
- const getIncludes = function() {
- return includes;
- };
- const setExcludes = function(txt) {
- excludes = txt.toLowerCase().split(/[\s,]+/);
- };
- const getExcludes = function() {
- return excludes;
- };
- const getLinks = function() {
- return links;
- };
- const addSection$3 = function(txt) {
- currentSection$2 = txt;
- sections$3.push(txt);
- };
- const getSections$3 = function() {
- return sections$3;
- };
- const getTasks$2 = function() {
- let allItemsProcessed = compileTasks$2();
- const maxDepth = 10;
- let iterationCount = 0;
- while (!allItemsProcessed && iterationCount < maxDepth) {
- allItemsProcessed = compileTasks$2();
- iterationCount++;
- }
- tasks$2 = rawTasks$2;
- return tasks$2;
- };
- const isInvalidDate = function(date2, dateFormat2, excludes2, includes2) {
- if (includes2.includes(date2.format(dateFormat2.trim()))) {
- return false;
- }
- if (date2.isoWeekday() >= 6 && excludes2.includes("weekends")) {
- return true;
- }
- if (excludes2.includes(date2.format("dddd").toLowerCase())) {
- return true;
- }
- return excludes2.includes(date2.format(dateFormat2.trim()));
- };
- const checkTaskDates = function(task, dateFormat2, excludes2, includes2) {
- if (!excludes2.length || task.manualEndTime) {
- return;
+ return diff2;
+ }, "positionNode");
}
- let startTime;
- if (task.startTime instanceof Date) {
- startTime = dayjs(task.startTime);
- } else {
- startTime = dayjs(task.startTime, dateFormat2, true);
+ });
+
+ // src/rendering-util/insertElementsForSize.js
+ var getDiagramElement;
+ var init_insertElementsForSize = __esm({
+ "src/rendering-util/insertElementsForSize.js"() {
+ "use strict";
+ init_src32();
+ init_nodes2();
+ getDiagramElement = /* @__PURE__ */ __name((id27, securityLevel) => {
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = root4.select(`[id="${id27}"]`);
+ return svg;
+ }, "getDiagramElement");
}
- startTime = startTime.add(1, "d");
- let originalEndTime;
- if (task.endTime instanceof Date) {
- originalEndTime = dayjs(task.endTime);
- } else {
- originalEndTime = dayjs(task.endTime, dateFormat2, true);
- }
- const [fixedEndTime, renderEndTime] = fixTaskDates(
- startTime,
- originalEndTime,
- dateFormat2,
- excludes2,
- includes2
- );
- task.endTime = fixedEndTime.toDate();
- task.renderEndTime = renderEndTime;
- };
- const fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {
- let invalid = false;
- let renderEndTime = null;
- while (startTime <= endTime) {
- if (!invalid) {
- renderEndTime = endTime.toDate();
- }
- invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);
- if (invalid) {
- endTime = endTime.add(1, "d");
- }
- startTime = startTime.add(1, "d");
+ });
+
+ // src/utils/subGraphTitleMargins.ts
+ var getSubGraphTitleMargins;
+ var init_subGraphTitleMargins = __esm({
+ "src/utils/subGraphTitleMargins.ts"() {
+ "use strict";
+ getSubGraphTitleMargins = /* @__PURE__ */ __name(({
+ flowchart
+ }) => {
+ const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;
+ const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;
+ const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;
+ return {
+ subGraphTitleTopMargin,
+ subGraphTitleBottomMargin,
+ subGraphTitleTotalMargin
+ };
+ }, "getSubGraphTitleMargins");
}
- return [endTime, renderEndTime];
- };
- const getStartDate = function(prevTime, dateFormat2, str2) {
- str2 = str2.trim();
- const re2 = /^after\s+([\d\w- ]+)/;
- const afterStatement = re2.exec(str2.trim());
- if (afterStatement !== null) {
- let latestEndingTask = null;
- afterStatement[1].split(" ").forEach(function(id2) {
- let task = findTaskById(id2);
- if (task !== void 0) {
- if (!latestEndingTask) {
- latestEndingTask = task;
- } else {
- if (task.endTime > latestEndingTask.endTime) {
- latestEndingTask = task;
- }
- }
+ });
+
+ // ../../node_modules/.pnpm/roughjs@4.6.6/node_modules/roughjs/bundled/rough.esm.js
+ function t(t4, e3, s2) {
+ if (t4 && t4.length) {
+ const [n2, o2] = e3, a2 = Math.PI / 180 * s2, h2 = Math.cos(a2), r2 = Math.sin(a2);
+ for (const e4 of t4) {
+ const [t5, s3] = e4;
+ e4[0] = (t5 - n2) * h2 - (s3 - o2) * r2 + n2, e4[1] = (t5 - n2) * r2 + (s3 - o2) * h2 + o2;
+ }
+ }
+ }
+ function e(t4, e3) {
+ return t4[0] === e3[0] && t4[1] === e3[1];
+ }
+ function s(s2, n2, o2, a2 = 1) {
+ const h2 = o2, r2 = Math.max(n2, 0.1), i2 = s2[0] && s2[0][0] && "number" == typeof s2[0][0] ? [s2] : s2, c3 = [0, 0];
+ if (h2) for (const e3 of i2) t(e3, c3, h2);
+ const l2 = function(t4, s3, n3) {
+ const o3 = [];
+ for (const s4 of t4) {
+ const t5 = [...s4];
+ e(t5[0], t5[t5.length - 1]) || t5.push([t5[0][0], t5[0][1]]), t5.length > 2 && o3.push(t5);
+ }
+ const a3 = [];
+ s3 = Math.max(s3, 0.1);
+ const h3 = [];
+ for (const t5 of o3) for (let e3 = 0; e3 < t5.length - 1; e3++) {
+ const s4 = t5[e3], n4 = t5[e3 + 1];
+ if (s4[1] !== n4[1]) {
+ const t6 = Math.min(s4[1], n4[1]);
+ h3.push({ ymin: t6, ymax: Math.max(s4[1], n4[1]), x: t6 === s4[1] ? s4[0] : n4[0], islope: (n4[0] - s4[0]) / (n4[1] - s4[1]) });
+ }
+ }
+ if (h3.sort((t5, e3) => t5.ymin < e3.ymin ? -1 : t5.ymin > e3.ymin ? 1 : t5.x < e3.x ? -1 : t5.x > e3.x ? 1 : t5.ymax === e3.ymax ? 0 : (t5.ymax - e3.ymax) / Math.abs(t5.ymax - e3.ymax)), !h3.length) return a3;
+ let r3 = [], i3 = h3[0].ymin, c4 = 0;
+ for (; r3.length || h3.length; ) {
+ if (h3.length) {
+ let t5 = -1;
+ for (let e3 = 0; e3 < h3.length && !(h3[e3].ymin > i3); e3++) t5 = e3;
+ h3.splice(0, t5 + 1).forEach((t6) => {
+ r3.push({ s: i3, edge: t6 });
+ });
}
- });
- if (!latestEndingTask) {
- const dt = /* @__PURE__ */ new Date();
- dt.setHours(0, 0, 0, 0);
- return dt;
- } else {
- return latestEndingTask.endTime;
- }
- }
- let mDate = dayjs(str2, dateFormat2.trim(), true);
- if (mDate.isValid()) {
- return mDate.toDate();
- } else {
- log$1.debug("Invalid date:" + str2);
- log$1.debug("With date format:" + dateFormat2.trim());
- const d = new Date(str2);
- if (d === void 0 || isNaN(d.getTime())) {
- throw new Error("Invalid date:" + str2);
+ if (r3 = r3.filter((t5) => !(t5.edge.ymax <= i3)), r3.sort((t5, e3) => t5.edge.x === e3.edge.x ? 0 : (t5.edge.x - e3.edge.x) / Math.abs(t5.edge.x - e3.edge.x)), (1 !== n3 || c4 % s3 == 0) && r3.length > 1) for (let t5 = 0; t5 < r3.length; t5 += 2) {
+ const e3 = t5 + 1;
+ if (e3 >= r3.length) break;
+ const s4 = r3[t5].edge, n4 = r3[e3].edge;
+ a3.push([[Math.round(s4.x), i3], [Math.round(n4.x), i3]]);
+ }
+ i3 += n3, r3.forEach((t5) => {
+ t5.edge.x = t5.edge.x + n3 * t5.edge.islope;
+ }), c4++;
+ }
+ return a3;
+ }(i2, r2, a2);
+ if (h2) {
+ for (const e3 of i2) t(e3, c3, -h2);
+ !function(e3, s3, n3) {
+ const o3 = [];
+ e3.forEach((t4) => o3.push(...t4)), t(o3, s3, n3);
+ }(l2, c3, -h2);
+ }
+ return l2;
+ }
+ function n(t4, e3) {
+ var n2;
+ const o2 = e3.hachureAngle + 90;
+ let a2 = e3.hachureGap;
+ a2 < 0 && (a2 = 4 * e3.strokeWidth), a2 = Math.round(Math.max(a2, 0.1));
+ let h2 = 1;
+ return e3.roughness >= 1 && ((null === (n2 = e3.randomizer) || void 0 === n2 ? void 0 : n2.next()) || Math.random()) > 0.7 && (h2 = a2), s(t4, a2, o2, h2 || 1);
+ }
+ function a(t4) {
+ const e3 = t4[0], s2 = t4[1];
+ return Math.sqrt(Math.pow(e3[0] - s2[0], 2) + Math.pow(e3[1] - s2[1], 2));
+ }
+ function k(t4, e3) {
+ return t4.type === e3;
+ }
+ function b(t4) {
+ const e3 = [], s2 = function(t5) {
+ const e4 = new Array();
+ for (; "" !== t5; ) if (t5.match(/^([ \t\r\n,]+)/)) t5 = t5.substr(RegExp.$1.length);
+ else if (t5.match(/^([aAcChHlLmMqQsStTvVzZ])/)) e4[e4.length] = { type: f, text: RegExp.$1 }, t5 = t5.substr(RegExp.$1.length);
+ else {
+ if (!t5.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)) return [];
+ e4[e4.length] = { type: d, text: `${parseFloat(RegExp.$1)}` }, t5 = t5.substr(RegExp.$1.length);
+ }
+ return e4[e4.length] = { type: g, text: "" }, e4;
+ }(t4);
+ let n2 = "BOD", o2 = 0, a2 = s2[o2];
+ for (; !k(a2, g); ) {
+ let h2 = 0;
+ const r2 = [];
+ if ("BOD" === n2) {
+ if ("M" !== a2.text && "m" !== a2.text) return b("M0,0" + t4);
+ o2++, h2 = M[a2.text], n2 = a2.text;
+ } else k(a2, d) ? h2 = M[n2] : (o2++, h2 = M[a2.text], n2 = a2.text);
+ if (!(o2 + h2 < s2.length)) throw new Error("Path data ended short");
+ for (let t5 = o2; t5 < o2 + h2; t5++) {
+ const e4 = s2[t5];
+ if (!k(e4, d)) throw new Error("Param not a number: " + n2 + "," + e4.text);
+ r2[r2.length] = +e4.text;
+ }
+ if ("number" != typeof M[n2]) throw new Error("Bad segment: " + n2);
+ {
+ const t5 = { key: n2, data: r2 };
+ e3.push(t5), o2 += h2, a2 = s2[o2], "M" === n2 && (n2 = "L"), "m" === n2 && (n2 = "l");
}
- return d;
- }
- };
- const parseDuration = function(str2) {
- const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str2.trim());
- if (statement !== null) {
- return [Number.parseFloat(statement[1]), statement[2]];
}
- return [NaN, "ms"];
- };
- const getEndDate = function(prevTime, dateFormat2, str2, inclusive = false) {
- str2 = str2.trim();
- let mDate = dayjs(str2, dateFormat2.trim(), true);
- if (mDate.isValid()) {
- if (inclusive) {
- mDate = mDate.add(1, "d");
+ return e3;
+ }
+ function y2(t4) {
+ let e3 = 0, s2 = 0, n2 = 0, o2 = 0;
+ const a2 = [];
+ for (const { key: h2, data: r2 } of t4) switch (h2) {
+ case "M":
+ a2.push({ key: "M", data: [...r2] }), [e3, s2] = r2, [n2, o2] = r2;
+ break;
+ case "m":
+ e3 += r2[0], s2 += r2[1], a2.push({ key: "M", data: [e3, s2] }), n2 = e3, o2 = s2;
+ break;
+ case "L":
+ a2.push({ key: "L", data: [...r2] }), [e3, s2] = r2;
+ break;
+ case "l":
+ e3 += r2[0], s2 += r2[1], a2.push({ key: "L", data: [e3, s2] });
+ break;
+ case "C":
+ a2.push({ key: "C", data: [...r2] }), e3 = r2[4], s2 = r2[5];
+ break;
+ case "c": {
+ const t5 = r2.map((t6, n3) => n3 % 2 ? t6 + s2 : t6 + e3);
+ a2.push({ key: "C", data: t5 }), e3 = t5[4], s2 = t5[5];
+ break;
}
- return mDate.toDate();
- }
- let endTime = dayjs(prevTime);
- const [durationValue, durationUnit] = parseDuration(str2);
- if (!Number.isNaN(durationValue)) {
- const newEndTime = endTime.add(durationValue, durationUnit);
- if (newEndTime.isValid()) {
- endTime = newEndTime;
+ case "Q":
+ a2.push({ key: "Q", data: [...r2] }), e3 = r2[2], s2 = r2[3];
+ break;
+ case "q": {
+ const t5 = r2.map((t6, n3) => n3 % 2 ? t6 + s2 : t6 + e3);
+ a2.push({ key: "Q", data: t5 }), e3 = t5[2], s2 = t5[3];
+ break;
}
- }
- return endTime.toDate();
- };
- let taskCnt = 0;
- const parseId = function(idStr) {
- if (idStr === void 0) {
- taskCnt = taskCnt + 1;
- return "task" + taskCnt;
- }
- return idStr;
- };
- const compileData = function(prevTask, dataStr) {
- let ds;
- if (dataStr.substr(0, 1) === ":") {
- ds = dataStr.substr(1, dataStr.length);
- } else {
- ds = dataStr;
- }
- const data = ds.split(",");
- const task = {};
- getTaskTags(data, task, tags);
- for (let i2 = 0; i2 < data.length; i2++) {
- data[i2] = data[i2].trim();
- }
- let endTimeData = "";
- switch (data.length) {
- case 1:
- task.id = parseId();
- task.startTime = prevTask.endTime;
- endTimeData = data[0];
+ case "A":
+ a2.push({ key: "A", data: [...r2] }), e3 = r2[5], s2 = r2[6];
break;
- case 2:
- task.id = parseId();
- task.startTime = getStartDate(void 0, dateFormat, data[0]);
- endTimeData = data[1];
+ case "a":
+ e3 += r2[5], s2 += r2[6], a2.push({ key: "A", data: [r2[0], r2[1], r2[2], r2[3], r2[4], e3, s2] });
break;
- case 3:
- task.id = parseId(data[0]);
- task.startTime = getStartDate(void 0, dateFormat, data[1]);
- endTimeData = data[2];
+ case "H":
+ a2.push({ key: "H", data: [...r2] }), e3 = r2[0];
break;
- }
- if (endTimeData) {
- task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
- task.manualEndTime = dayjs(endTimeData, "YYYY-MM-DD", true).isValid();
- checkTaskDates(task, dateFormat, excludes, includes);
- }
- return task;
- };
- const parseData = function(prevTaskId, dataStr) {
- let ds;
- if (dataStr.substr(0, 1) === ":") {
- ds = dataStr.substr(1, dataStr.length);
- } else {
- ds = dataStr;
- }
- const data = ds.split(",");
- const task = {};
- getTaskTags(data, task, tags);
- for (let i2 = 0; i2 < data.length; i2++) {
- data[i2] = data[i2].trim();
- }
- switch (data.length) {
- case 1:
- task.id = parseId();
- task.startTime = {
- type: "prevTaskEnd",
- id: prevTaskId
- };
- task.endTime = {
- data: data[0]
- };
+ case "h":
+ e3 += r2[0], a2.push({ key: "H", data: [e3] });
break;
- case 2:
- task.id = parseId();
- task.startTime = {
- type: "getStartDate",
- startData: data[0]
- };
- task.endTime = {
- data: data[1]
- };
+ case "V":
+ a2.push({ key: "V", data: [...r2] }), s2 = r2[0];
break;
- case 3:
- task.id = parseId(data[0]);
- task.startTime = {
- type: "getStartDate",
- startData: data[1]
- };
- task.endTime = {
- data: data[2]
- };
+ case "v":
+ s2 += r2[0], a2.push({ key: "V", data: [s2] });
break;
- }
- return task;
- };
- let lastTask;
- let lastTaskID;
- let rawTasks$2 = [];
- const taskDb = {};
- const addTask$2 = function(descr, data) {
- const rawTask = {
- section: currentSection$2,
- type: currentSection$2,
- processed: false,
- manualEndTime: false,
- renderEndTime: null,
- raw: { data },
- task: descr,
- classes: []
- };
- const taskInfo = parseData(lastTaskID, data);
- rawTask.raw.startTime = taskInfo.startTime;
- rawTask.raw.endTime = taskInfo.endTime;
- rawTask.id = taskInfo.id;
- rawTask.prevTaskId = lastTaskID;
- rawTask.active = taskInfo.active;
- rawTask.done = taskInfo.done;
- rawTask.crit = taskInfo.crit;
- rawTask.milestone = taskInfo.milestone;
- rawTask.order = lastOrder;
- lastOrder++;
- const pos = rawTasks$2.push(rawTask);
- lastTaskID = rawTask.id;
- taskDb[rawTask.id] = pos - 1;
- };
- const findTaskById = function(id2) {
- const pos = taskDb[id2];
- return rawTasks$2[pos];
- };
- const addTaskOrg$2 = function(descr, data) {
- const newTask = {
- section: currentSection$2,
- type: currentSection$2,
- description: descr,
- task: descr,
- classes: []
- };
- const taskInfo = compileData(lastTask, data);
- newTask.startTime = taskInfo.startTime;
- newTask.endTime = taskInfo.endTime;
- newTask.id = taskInfo.id;
- newTask.active = taskInfo.active;
- newTask.done = taskInfo.done;
- newTask.crit = taskInfo.crit;
- newTask.milestone = taskInfo.milestone;
- lastTask = newTask;
- tasks$2.push(newTask);
- };
- const compileTasks$2 = function() {
- const compileTask = function(pos) {
- const task = rawTasks$2[pos];
- let startTime = "";
- switch (rawTasks$2[pos].raw.startTime.type) {
- case "prevTaskEnd": {
- const prevTask = findTaskById(task.prevTaskId);
- task.startTime = prevTask.endTime;
+ case "S":
+ a2.push({ key: "S", data: [...r2] }), e3 = r2[2], s2 = r2[3];
+ break;
+ case "s": {
+ const t5 = r2.map((t6, n3) => n3 % 2 ? t6 + s2 : t6 + e3);
+ a2.push({ key: "S", data: t5 }), e3 = t5[2], s2 = t5[3];
+ break;
+ }
+ case "T":
+ a2.push({ key: "T", data: [...r2] }), e3 = r2[0], s2 = r2[1];
+ break;
+ case "t":
+ e3 += r2[0], s2 += r2[1], a2.push({ key: "T", data: [e3, s2] });
+ break;
+ case "Z":
+ case "z":
+ a2.push({ key: "Z", data: [] }), e3 = n2, s2 = o2;
+ }
+ return a2;
+ }
+ function m(t4) {
+ const e3 = [];
+ let s2 = "", n2 = 0, o2 = 0, a2 = 0, h2 = 0, r2 = 0, i2 = 0;
+ for (const { key: c3, data: l2 } of t4) {
+ switch (c3) {
+ case "M":
+ e3.push({ key: "M", data: [...l2] }), [n2, o2] = l2, [a2, h2] = l2;
+ break;
+ case "C":
+ e3.push({ key: "C", data: [...l2] }), n2 = l2[4], o2 = l2[5], r2 = l2[2], i2 = l2[3];
+ break;
+ case "L":
+ e3.push({ key: "L", data: [...l2] }), [n2, o2] = l2;
+ break;
+ case "H":
+ n2 = l2[0], e3.push({ key: "L", data: [n2, o2] });
+ break;
+ case "V":
+ o2 = l2[0], e3.push({ key: "L", data: [n2, o2] });
+ break;
+ case "S": {
+ let t5 = 0, a3 = 0;
+ "C" === s2 || "S" === s2 ? (t5 = n2 + (n2 - r2), a3 = o2 + (o2 - i2)) : (t5 = n2, a3 = o2), e3.push({ key: "C", data: [t5, a3, ...l2] }), r2 = l2[0], i2 = l2[1], n2 = l2[2], o2 = l2[3];
+ break;
+ }
+ case "T": {
+ const [t5, a3] = l2;
+ let h3 = 0, c4 = 0;
+ "Q" === s2 || "T" === s2 ? (h3 = n2 + (n2 - r2), c4 = o2 + (o2 - i2)) : (h3 = n2, c4 = o2);
+ const u2 = n2 + 2 * (h3 - n2) / 3, p3 = o2 + 2 * (c4 - o2) / 3, f3 = t5 + 2 * (h3 - t5) / 3, d2 = a3 + 2 * (c4 - a3) / 3;
+ e3.push({ key: "C", data: [u2, p3, f3, d2, t5, a3] }), r2 = h3, i2 = c4, n2 = t5, o2 = a3;
break;
}
- case "getStartDate":
- startTime = getStartDate(void 0, dateFormat, rawTasks$2[pos].raw.startTime.startData);
- if (startTime) {
- rawTasks$2[pos].startTime = startTime;
+ case "Q": {
+ const [t5, s3, a3, h3] = l2, c4 = n2 + 2 * (t5 - n2) / 3, u2 = o2 + 2 * (s3 - o2) / 3, p3 = a3 + 2 * (t5 - a3) / 3, f3 = h3 + 2 * (s3 - h3) / 3;
+ e3.push({ key: "C", data: [c4, u2, p3, f3, a3, h3] }), r2 = t5, i2 = s3, n2 = a3, o2 = h3;
+ break;
+ }
+ case "A": {
+ const t5 = Math.abs(l2[0]), s3 = Math.abs(l2[1]), a3 = l2[2], h3 = l2[3], r3 = l2[4], i3 = l2[5], c4 = l2[6];
+ if (0 === t5 || 0 === s3) e3.push({ key: "C", data: [n2, o2, i3, c4, i3, c4] }), n2 = i3, o2 = c4;
+ else if (n2 !== i3 || o2 !== c4) {
+ x2(n2, o2, i3, c4, t5, s3, a3, h3, r3).forEach(function(t6) {
+ e3.push({ key: "C", data: t6 });
+ }), n2 = i3, o2 = c4;
}
break;
- }
- if (rawTasks$2[pos].startTime) {
- rawTasks$2[pos].endTime = getEndDate(
- rawTasks$2[pos].startTime,
- dateFormat,
- rawTasks$2[pos].raw.endTime.data,
- inclusiveEndDates
- );
- if (rawTasks$2[pos].endTime) {
- rawTasks$2[pos].processed = true;
- rawTasks$2[pos].manualEndTime = dayjs(
- rawTasks$2[pos].raw.endTime.data,
- "YYYY-MM-DD",
- true
- ).isValid();
- checkTaskDates(rawTasks$2[pos], dateFormat, excludes, includes);
}
+ case "Z":
+ e3.push({ key: "Z", data: [] }), n2 = a2, o2 = h2;
}
- return rawTasks$2[pos].processed;
- };
- let allProcessed = true;
- for (const [i2, rawTask] of rawTasks$2.entries()) {
- compileTask(i2);
- allProcessed = allProcessed && rawTask.processed;
+ s2 = c3;
}
- return allProcessed;
- };
- const setLink$1 = function(ids, _linkStr) {
- let linkStr = _linkStr;
- if (getConfig$1().securityLevel !== "loose") {
- linkStr = sanitizeUrl_1(_linkStr);
- }
- ids.split(",").forEach(function(id2) {
- let rawTask = findTaskById(id2);
- if (rawTask !== void 0) {
- pushFun(id2, () => {
- window.open(linkStr, "_self");
- });
- links[id2] = linkStr;
- }
- });
- setClass(ids, "clickable");
- };
- const setClass = function(ids, className) {
- ids.split(",").forEach(function(id2) {
- let rawTask = findTaskById(id2);
- if (rawTask !== void 0) {
- rawTask.classes.push(className);
+ return e3;
+ }
+ function w(t4, e3, s2) {
+ return [t4 * Math.cos(s2) - e3 * Math.sin(s2), t4 * Math.sin(s2) + e3 * Math.cos(s2)];
+ }
+ function x2(t4, e3, s2, n2, o2, a2, h2, r2, i2, c3) {
+ const l2 = (u2 = h2, Math.PI * u2 / 180);
+ var u2;
+ let p3 = [], f3 = 0, d2 = 0, g2 = 0, M2 = 0;
+ if (c3) [f3, d2, g2, M2] = c3;
+ else {
+ [t4, e3] = w(t4, e3, -l2), [s2, n2] = w(s2, n2, -l2);
+ const h3 = (t4 - s2) / 2, c4 = (e3 - n2) / 2;
+ let u3 = h3 * h3 / (o2 * o2) + c4 * c4 / (a2 * a2);
+ u3 > 1 && (u3 = Math.sqrt(u3), o2 *= u3, a2 *= u3);
+ const p4 = o2 * o2, k3 = a2 * a2, b3 = p4 * k3 - p4 * c4 * c4 - k3 * h3 * h3, y6 = p4 * c4 * c4 + k3 * h3 * h3, m3 = (r2 === i2 ? -1 : 1) * Math.sqrt(Math.abs(b3 / y6));
+ g2 = m3 * o2 * c4 / a2 + (t4 + s2) / 2, M2 = m3 * -a2 * h3 / o2 + (e3 + n2) / 2, f3 = Math.asin(parseFloat(((e3 - M2) / a2).toFixed(9))), d2 = Math.asin(parseFloat(((n2 - M2) / a2).toFixed(9))), t4 < g2 && (f3 = Math.PI - f3), s2 < g2 && (d2 = Math.PI - d2), f3 < 0 && (f3 = 2 * Math.PI + f3), d2 < 0 && (d2 = 2 * Math.PI + d2), i2 && f3 > d2 && (f3 -= 2 * Math.PI), !i2 && d2 > f3 && (d2 -= 2 * Math.PI);
+ }
+ let k2 = d2 - f3;
+ if (Math.abs(k2) > 120 * Math.PI / 180) {
+ const t5 = d2, e4 = s2, r3 = n2;
+ d2 = i2 && d2 > f3 ? f3 + 120 * Math.PI / 180 * 1 : f3 + 120 * Math.PI / 180 * -1, p3 = x2(s2 = g2 + o2 * Math.cos(d2), n2 = M2 + a2 * Math.sin(d2), e4, r3, o2, a2, h2, 0, i2, [d2, t5, g2, M2]);
+ }
+ k2 = d2 - f3;
+ const b2 = Math.cos(f3), y5 = Math.sin(f3), m2 = Math.cos(d2), P2 = Math.sin(d2), v3 = Math.tan(k2 / 4), S3 = 4 / 3 * o2 * v3, O2 = 4 / 3 * a2 * v3, L2 = [t4, e3], T3 = [t4 + S3 * y5, e3 - O2 * b2], D3 = [s2 + S3 * P2, n2 - O2 * m2], A2 = [s2, n2];
+ if (T3[0] = 2 * L2[0] - T3[0], T3[1] = 2 * L2[1] - T3[1], c3) return [T3, D3, A2].concat(p3);
+ {
+ p3 = [T3, D3, A2].concat(p3);
+ const t5 = [];
+ for (let e4 = 0; e4 < p3.length; e4 += 3) {
+ const s3 = w(p3[e4][0], p3[e4][1], l2), n3 = w(p3[e4 + 1][0], p3[e4 + 1][1], l2), o3 = w(p3[e4 + 2][0], p3[e4 + 2][1], l2);
+ t5.push([s3[0], s3[1], n3[0], n3[1], o3[0], o3[1]]);
+ }
+ return t5;
+ }
+ }
+ function v(t4, e3, s2, n2, o2) {
+ return { type: "path", ops: $(t4, e3, s2, n2, o2) };
+ }
+ function S2(t4, e3, s2) {
+ const n2 = (t4 || []).length;
+ if (n2 > 2) {
+ const o2 = [];
+ for (let e4 = 0; e4 < n2 - 1; e4++) o2.push(...$(t4[e4][0], t4[e4][1], t4[e4 + 1][0], t4[e4 + 1][1], s2));
+ return e3 && o2.push(...$(t4[n2 - 1][0], t4[n2 - 1][1], t4[0][0], t4[0][1], s2)), { type: "path", ops: o2 };
+ }
+ return 2 === n2 ? v(t4[0][0], t4[0][1], t4[1][0], t4[1][1], s2) : { type: "path", ops: [] };
+ }
+ function O(t4, e3, s2, n2, o2) {
+ return function(t5, e4) {
+ return S2(t5, true, e4);
+ }([[t4, e3], [t4 + s2, e3], [t4 + s2, e3 + n2], [t4, e3 + n2]], o2);
+ }
+ function L(t4, e3) {
+ if (t4.length) {
+ const s2 = "number" == typeof t4[0][0] ? [t4] : t4, n2 = j(s2[0], 1 * (1 + 0.2 * e3.roughness), e3), o2 = e3.disableMultiStroke ? [] : j(s2[0], 1.5 * (1 + 0.22 * e3.roughness), z(e3));
+ for (let t5 = 1; t5 < s2.length; t5++) {
+ const a2 = s2[t5];
+ if (a2.length) {
+ const t6 = j(a2, 1 * (1 + 0.2 * e3.roughness), e3), s3 = e3.disableMultiStroke ? [] : j(a2, 1.5 * (1 + 0.22 * e3.roughness), z(e3));
+ for (const e4 of t6) "move" !== e4.op && n2.push(e4);
+ for (const t7 of s3) "move" !== t7.op && o2.push(t7);
+ }
+ }
+ return { type: "path", ops: n2.concat(o2) };
+ }
+ return { type: "path", ops: [] };
+ }
+ function T2(t4, e3, s2) {
+ const n2 = Math.sqrt(2 * Math.PI * Math.sqrt((Math.pow(t4 / 2, 2) + Math.pow(e3 / 2, 2)) / 2)), o2 = Math.ceil(Math.max(s2.curveStepCount, s2.curveStepCount / Math.sqrt(200) * n2)), a2 = 2 * Math.PI / o2;
+ let h2 = Math.abs(t4 / 2), r2 = Math.abs(e3 / 2);
+ const i2 = 1 - s2.curveFitting;
+ return h2 += G(h2 * i2, s2), r2 += G(r2 * i2, s2), { increment: a2, rx: h2, ry: r2 };
+ }
+ function D2(t4, e3, s2, n2) {
+ const [o2, a2] = F(n2.increment, t4, e3, n2.rx, n2.ry, 1, n2.increment * E(0.1, E(0.4, 1, s2), s2), s2);
+ let h2 = q(o2, null, s2);
+ if (!s2.disableMultiStroke && 0 !== s2.roughness) {
+ const [o3] = F(n2.increment, t4, e3, n2.rx, n2.ry, 1.5, 0, s2), a3 = q(o3, null, s2);
+ h2 = h2.concat(a3);
+ }
+ return { estimatedPoints: a2, opset: { type: "path", ops: h2 } };
+ }
+ function A(t4, e3, s2, n2, o2, a2, h2, r2, i2) {
+ const c3 = t4, l2 = e3;
+ let u2 = Math.abs(s2 / 2), p3 = Math.abs(n2 / 2);
+ u2 += G(0.01 * u2, i2), p3 += G(0.01 * p3, i2);
+ let f3 = o2, d2 = a2;
+ for (; f3 < 0; ) f3 += 2 * Math.PI, d2 += 2 * Math.PI;
+ d2 - f3 > 2 * Math.PI && (f3 = 0, d2 = 2 * Math.PI);
+ const g2 = 2 * Math.PI / i2.curveStepCount, M2 = Math.min(g2 / 2, (d2 - f3) / 2), k2 = V(M2, c3, l2, u2, p3, f3, d2, 1, i2);
+ if (!i2.disableMultiStroke) {
+ const t5 = V(M2, c3, l2, u2, p3, f3, d2, 1.5, i2);
+ k2.push(...t5);
+ }
+ return h2 && (r2 ? k2.push(...$(c3, l2, c3 + u2 * Math.cos(f3), l2 + p3 * Math.sin(f3), i2), ...$(c3, l2, c3 + u2 * Math.cos(d2), l2 + p3 * Math.sin(d2), i2)) : k2.push({ op: "lineTo", data: [c3, l2] }, { op: "lineTo", data: [c3 + u2 * Math.cos(f3), l2 + p3 * Math.sin(f3)] })), { type: "path", ops: k2 };
+ }
+ function _(t4, e3) {
+ const s2 = m(y2(b(t4))), n2 = [];
+ let o2 = [0, 0], a2 = [0, 0];
+ for (const { key: t5, data: h2 } of s2) switch (t5) {
+ case "M":
+ a2 = [h2[0], h2[1]], o2 = [h2[0], h2[1]];
+ break;
+ case "L":
+ n2.push(...$(a2[0], a2[1], h2[0], h2[1], e3)), a2 = [h2[0], h2[1]];
+ break;
+ case "C": {
+ const [t6, s3, o3, r2, i2, c3] = h2;
+ n2.push(...Z(t6, s3, o3, r2, i2, c3, a2, e3)), a2 = [i2, c3];
+ break;
}
- });
- };
- const setClickFun = function(id2, functionName, functionArgs) {
- if (getConfig$1().securityLevel !== "loose") {
- return;
- }
- if (functionName === void 0) {
- return;
+ case "Z":
+ n2.push(...$(a2[0], a2[1], o2[0], o2[1], e3)), a2 = [o2[0], o2[1]];
}
- let argList = [];
- if (typeof functionArgs === "string") {
- argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
- for (let i2 = 0; i2 < argList.length; i2++) {
- let item = argList[i2].trim();
- if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
- item = item.substr(1, item.length - 2);
- }
- argList[i2] = item;
+ return { type: "path", ops: n2 };
+ }
+ function I(t4, e3) {
+ const s2 = [];
+ for (const n2 of t4) if (n2.length) {
+ const t5 = e3.maxRandomnessOffset || 0, o2 = n2.length;
+ if (o2 > 2) {
+ s2.push({ op: "move", data: [n2[0][0] + G(t5, e3), n2[0][1] + G(t5, e3)] });
+ for (let a2 = 1; a2 < o2; a2++) s2.push({ op: "lineTo", data: [n2[a2][0] + G(t5, e3), n2[a2][1] + G(t5, e3)] });
}
}
- if (argList.length === 0) {
- argList.push(id2);
+ return { type: "fillPath", ops: s2 };
+ }
+ function C(t4, e3) {
+ return function(t5, e4) {
+ let s2 = t5.fillStyle || "hachure";
+ if (!u[s2]) switch (s2) {
+ case "zigzag":
+ u[s2] || (u[s2] = new h(e4));
+ break;
+ case "cross-hatch":
+ u[s2] || (u[s2] = new r(e4));
+ break;
+ case "dots":
+ u[s2] || (u[s2] = new i(e4));
+ break;
+ case "dashed":
+ u[s2] || (u[s2] = new c2(e4));
+ break;
+ case "zigzag-line":
+ u[s2] || (u[s2] = new l(e4));
+ break;
+ default:
+ s2 = "hachure", u[s2] || (u[s2] = new o(e4));
+ }
+ return u[s2];
+ }(e3, P).fillPolygons(t4, e3);
+ }
+ function z(t4) {
+ const e3 = Object.assign({}, t4);
+ return e3.randomizer = void 0, t4.seed && (e3.seed = t4.seed + 1), e3;
+ }
+ function W(t4) {
+ return t4.randomizer || (t4.randomizer = new p(t4.seed || 0)), t4.randomizer.next();
+ }
+ function E(t4, e3, s2, n2 = 1) {
+ return s2.roughness * n2 * (W(s2) * (e3 - t4) + t4);
+ }
+ function G(t4, e3, s2 = 1) {
+ return E(-t4, t4, e3, s2);
+ }
+ function $(t4, e3, s2, n2, o2, a2 = false) {
+ const h2 = a2 ? o2.disableMultiStrokeFill : o2.disableMultiStroke, r2 = R(t4, e3, s2, n2, o2, true, false);
+ if (h2) return r2;
+ const i2 = R(t4, e3, s2, n2, o2, true, true);
+ return r2.concat(i2);
+ }
+ function R(t4, e3, s2, n2, o2, a2, h2) {
+ const r2 = Math.pow(t4 - s2, 2) + Math.pow(e3 - n2, 2), i2 = Math.sqrt(r2);
+ let c3 = 1;
+ c3 = i2 < 200 ? 1 : i2 > 500 ? 0.4 : -16668e-7 * i2 + 1.233334;
+ let l2 = o2.maxRandomnessOffset || 0;
+ l2 * l2 * 100 > r2 && (l2 = i2 / 10);
+ const u2 = l2 / 2, p3 = 0.2 + 0.2 * W(o2);
+ let f3 = o2.bowing * o2.maxRandomnessOffset * (n2 - e3) / 200, d2 = o2.bowing * o2.maxRandomnessOffset * (t4 - s2) / 200;
+ f3 = G(f3, o2, c3), d2 = G(d2, o2, c3);
+ const g2 = [], M2 = /* @__PURE__ */ __name(() => G(u2, o2, c3), "M"), k2 = /* @__PURE__ */ __name(() => G(l2, o2, c3), "k"), b2 = o2.preserveVertices;
+ return a2 && (h2 ? g2.push({ op: "move", data: [t4 + (b2 ? 0 : M2()), e3 + (b2 ? 0 : M2())] }) : g2.push({ op: "move", data: [t4 + (b2 ? 0 : G(l2, o2, c3)), e3 + (b2 ? 0 : G(l2, o2, c3))] })), h2 ? g2.push({ op: "bcurveTo", data: [f3 + t4 + (s2 - t4) * p3 + M2(), d2 + e3 + (n2 - e3) * p3 + M2(), f3 + t4 + 2 * (s2 - t4) * p3 + M2(), d2 + e3 + 2 * (n2 - e3) * p3 + M2(), s2 + (b2 ? 0 : M2()), n2 + (b2 ? 0 : M2())] }) : g2.push({ op: "bcurveTo", data: [f3 + t4 + (s2 - t4) * p3 + k2(), d2 + e3 + (n2 - e3) * p3 + k2(), f3 + t4 + 2 * (s2 - t4) * p3 + k2(), d2 + e3 + 2 * (n2 - e3) * p3 + k2(), s2 + (b2 ? 0 : k2()), n2 + (b2 ? 0 : k2())] }), g2;
+ }
+ function j(t4, e3, s2) {
+ if (!t4.length) return [];
+ const n2 = [];
+ n2.push([t4[0][0] + G(e3, s2), t4[0][1] + G(e3, s2)]), n2.push([t4[0][0] + G(e3, s2), t4[0][1] + G(e3, s2)]);
+ for (let o2 = 1; o2 < t4.length; o2++) n2.push([t4[o2][0] + G(e3, s2), t4[o2][1] + G(e3, s2)]), o2 === t4.length - 1 && n2.push([t4[o2][0] + G(e3, s2), t4[o2][1] + G(e3, s2)]);
+ return q(n2, null, s2);
+ }
+ function q(t4, e3, s2) {
+ const n2 = t4.length, o2 = [];
+ if (n2 > 3) {
+ const a2 = [], h2 = 1 - s2.curveTightness;
+ o2.push({ op: "move", data: [t4[1][0], t4[1][1]] });
+ for (let e4 = 1; e4 + 2 < n2; e4++) {
+ const s3 = t4[e4];
+ a2[0] = [s3[0], s3[1]], a2[1] = [s3[0] + (h2 * t4[e4 + 1][0] - h2 * t4[e4 - 1][0]) / 6, s3[1] + (h2 * t4[e4 + 1][1] - h2 * t4[e4 - 1][1]) / 6], a2[2] = [t4[e4 + 1][0] + (h2 * t4[e4][0] - h2 * t4[e4 + 2][0]) / 6, t4[e4 + 1][1] + (h2 * t4[e4][1] - h2 * t4[e4 + 2][1]) / 6], a2[3] = [t4[e4 + 1][0], t4[e4 + 1][1]], o2.push({ op: "bcurveTo", data: [a2[1][0], a2[1][1], a2[2][0], a2[2][1], a2[3][0], a2[3][1]] });
+ }
+ if (e3 && 2 === e3.length) {
+ const t5 = s2.maxRandomnessOffset;
+ o2.push({ op: "lineTo", data: [e3[0] + G(t5, s2), e3[1] + G(t5, s2)] });
+ }
+ } else 3 === n2 ? (o2.push({ op: "move", data: [t4[1][0], t4[1][1]] }), o2.push({ op: "bcurveTo", data: [t4[1][0], t4[1][1], t4[2][0], t4[2][1], t4[2][0], t4[2][1]] })) : 2 === n2 && o2.push(...R(t4[0][0], t4[0][1], t4[1][0], t4[1][1], s2, true, true));
+ return o2;
+ }
+ function F(t4, e3, s2, n2, o2, a2, h2, r2) {
+ const i2 = [], c3 = [];
+ if (0 === r2.roughness) {
+ t4 /= 4, c3.push([e3 + n2 * Math.cos(-t4), s2 + o2 * Math.sin(-t4)]);
+ for (let a3 = 0; a3 <= 2 * Math.PI; a3 += t4) {
+ const t5 = [e3 + n2 * Math.cos(a3), s2 + o2 * Math.sin(a3)];
+ i2.push(t5), c3.push(t5);
+ }
+ c3.push([e3 + n2 * Math.cos(0), s2 + o2 * Math.sin(0)]), c3.push([e3 + n2 * Math.cos(t4), s2 + o2 * Math.sin(t4)]);
+ } else {
+ const l2 = G(0.5, r2) - Math.PI / 2;
+ c3.push([G(a2, r2) + e3 + 0.9 * n2 * Math.cos(l2 - t4), G(a2, r2) + s2 + 0.9 * o2 * Math.sin(l2 - t4)]);
+ const u2 = 2 * Math.PI + l2 - 0.01;
+ for (let h3 = l2; h3 < u2; h3 += t4) {
+ const t5 = [G(a2, r2) + e3 + n2 * Math.cos(h3), G(a2, r2) + s2 + o2 * Math.sin(h3)];
+ i2.push(t5), c3.push(t5);
+ }
+ c3.push([G(a2, r2) + e3 + n2 * Math.cos(l2 + 2 * Math.PI + 0.5 * h2), G(a2, r2) + s2 + o2 * Math.sin(l2 + 2 * Math.PI + 0.5 * h2)]), c3.push([G(a2, r2) + e3 + 0.98 * n2 * Math.cos(l2 + h2), G(a2, r2) + s2 + 0.98 * o2 * Math.sin(l2 + h2)]), c3.push([G(a2, r2) + e3 + 0.9 * n2 * Math.cos(l2 + 0.5 * h2), G(a2, r2) + s2 + 0.9 * o2 * Math.sin(l2 + 0.5 * h2)]);
+ }
+ return [c3, i2];
+ }
+ function V(t4, e3, s2, n2, o2, a2, h2, r2, i2) {
+ const c3 = a2 + G(0.1, i2), l2 = [];
+ l2.push([G(r2, i2) + e3 + 0.9 * n2 * Math.cos(c3 - t4), G(r2, i2) + s2 + 0.9 * o2 * Math.sin(c3 - t4)]);
+ for (let a3 = c3; a3 <= h2; a3 += t4) l2.push([G(r2, i2) + e3 + n2 * Math.cos(a3), G(r2, i2) + s2 + o2 * Math.sin(a3)]);
+ return l2.push([e3 + n2 * Math.cos(h2), s2 + o2 * Math.sin(h2)]), l2.push([e3 + n2 * Math.cos(h2), s2 + o2 * Math.sin(h2)]), q(l2, null, i2);
+ }
+ function Z(t4, e3, s2, n2, o2, a2, h2, r2) {
+ const i2 = [], c3 = [r2.maxRandomnessOffset || 1, (r2.maxRandomnessOffset || 1) + 0.3];
+ let l2 = [0, 0];
+ const u2 = r2.disableMultiStroke ? 1 : 2, p3 = r2.preserveVertices;
+ for (let f3 = 0; f3 < u2; f3++) 0 === f3 ? i2.push({ op: "move", data: [h2[0], h2[1]] }) : i2.push({ op: "move", data: [h2[0] + (p3 ? 0 : G(c3[0], r2)), h2[1] + (p3 ? 0 : G(c3[0], r2))] }), l2 = p3 ? [o2, a2] : [o2 + G(c3[f3], r2), a2 + G(c3[f3], r2)], i2.push({ op: "bcurveTo", data: [t4 + G(c3[f3], r2), e3 + G(c3[f3], r2), s2 + G(c3[f3], r2), n2 + G(c3[f3], r2), l2[0], l2[1]] });
+ return i2;
+ }
+ function Q(t4) {
+ return [...t4];
+ }
+ function H(t4, e3 = 0) {
+ const s2 = t4.length;
+ if (s2 < 3) throw new Error("A curve must have at least three points.");
+ const n2 = [];
+ if (3 === s2) n2.push(Q(t4[0]), Q(t4[1]), Q(t4[2]), Q(t4[2]));
+ else {
+ const s3 = [];
+ s3.push(t4[0], t4[0]);
+ for (let e4 = 1; e4 < t4.length; e4++) s3.push(t4[e4]), e4 === t4.length - 1 && s3.push(t4[e4]);
+ const o2 = [], a2 = 1 - e3;
+ n2.push(Q(s3[0]));
+ for (let t5 = 1; t5 + 2 < s3.length; t5++) {
+ const e4 = s3[t5];
+ o2[0] = [e4[0], e4[1]], o2[1] = [e4[0] + (a2 * s3[t5 + 1][0] - a2 * s3[t5 - 1][0]) / 6, e4[1] + (a2 * s3[t5 + 1][1] - a2 * s3[t5 - 1][1]) / 6], o2[2] = [s3[t5 + 1][0] + (a2 * s3[t5][0] - a2 * s3[t5 + 2][0]) / 6, s3[t5 + 1][1] + (a2 * s3[t5][1] - a2 * s3[t5 + 2][1]) / 6], o2[3] = [s3[t5 + 1][0], s3[t5 + 1][1]], n2.push(o2[1], o2[2], o2[3]);
+ }
+ }
+ return n2;
+ }
+ function N(t4, e3) {
+ return Math.pow(t4[0] - e3[0], 2) + Math.pow(t4[1] - e3[1], 2);
+ }
+ function B(t4, e3, s2) {
+ const n2 = N(e3, s2);
+ if (0 === n2) return N(t4, e3);
+ let o2 = ((t4[0] - e3[0]) * (s2[0] - e3[0]) + (t4[1] - e3[1]) * (s2[1] - e3[1])) / n2;
+ return o2 = Math.max(0, Math.min(1, o2)), N(t4, J(e3, s2, o2));
+ }
+ function J(t4, e3, s2) {
+ return [t4[0] + (e3[0] - t4[0]) * s2, t4[1] + (e3[1] - t4[1]) * s2];
+ }
+ function K2(t4, e3, s2, n2) {
+ const o2 = n2 || [];
+ if (function(t5, e4) {
+ const s3 = t5[e4 + 0], n3 = t5[e4 + 1], o3 = t5[e4 + 2], a3 = t5[e4 + 3];
+ let h3 = 3 * n3[0] - 2 * s3[0] - a3[0];
+ h3 *= h3;
+ let r2 = 3 * n3[1] - 2 * s3[1] - a3[1];
+ r2 *= r2;
+ let i2 = 3 * o3[0] - 2 * a3[0] - s3[0];
+ i2 *= i2;
+ let c3 = 3 * o3[1] - 2 * a3[1] - s3[1];
+ return c3 *= c3, h3 < i2 && (h3 = i2), r2 < c3 && (r2 = c3), h3 + r2;
+ }(t4, e3) < s2) {
+ const s3 = t4[e3 + 0];
+ if (o2.length) {
+ (a2 = o2[o2.length - 1], h2 = s3, Math.sqrt(N(a2, h2))) > 1 && o2.push(s3);
+ } else o2.push(s3);
+ o2.push(t4[e3 + 3]);
+ } else {
+ const n3 = 0.5, a3 = t4[e3 + 0], h3 = t4[e3 + 1], r2 = t4[e3 + 2], i2 = t4[e3 + 3], c3 = J(a3, h3, n3), l2 = J(h3, r2, n3), u2 = J(r2, i2, n3), p3 = J(c3, l2, n3), f3 = J(l2, u2, n3), d2 = J(p3, f3, n3);
+ K2([a3, c3, p3, d2], 0, s2, o2), K2([d2, f3, u2, i2], 0, s2, o2);
}
- let rawTask = findTaskById(id2);
- if (rawTask !== void 0) {
- pushFun(id2, () => {
- utils.runFunc(functionName, ...argList);
- });
+ var a2, h2;
+ return o2;
+ }
+ function U(t4, e3) {
+ return X2(t4, 0, t4.length, e3);
+ }
+ function X2(t4, e3, s2, n2, o2) {
+ const a2 = o2 || [], h2 = t4[e3], r2 = t4[s2 - 1];
+ let i2 = 0, c3 = 1;
+ for (let n3 = e3 + 1; n3 < s2 - 1; ++n3) {
+ const e4 = B(t4[n3], h2, r2);
+ e4 > i2 && (i2 = e4, c3 = n3);
}
- };
- const pushFun = function(id2, callbackFunction) {
- funs.push(
- function() {
- const elem = document.querySelector(`[id="${id2}"]`);
- if (elem !== null) {
- elem.addEventListener("click", function() {
- callbackFunction();
- });
+ return Math.sqrt(i2) > n2 ? (X2(t4, e3, c3 + 1, n2, a2), X2(t4, c3, s2, n2, a2)) : (a2.length || a2.push(h2), a2.push(r2)), a2;
+ }
+ function Y2(t4, e3 = 0.15, s2) {
+ const n2 = [], o2 = (t4.length - 1) / 3;
+ for (let s3 = 0; s3 < o2; s3++) {
+ K2(t4, 3 * s3, e3, n2);
+ }
+ return s2 && s2 > 0 ? X2(n2, 0, n2.length, s2) : n2;
+ }
+ var o, h, r, i, c2, l, u, p, f, d, g, M, P, tt, et, st, nt, ot, at;
+ var init_rough_esm = __esm({
+ "../../node_modules/.pnpm/roughjs@4.6.6/node_modules/roughjs/bundled/rough.esm.js"() {
+ "use strict";
+ __name(t, "t");
+ __name(e, "e");
+ __name(s, "s");
+ __name(n, "n");
+ o = class {
+ static {
+ __name(this, "o");
}
- },
- function() {
- const elem = document.querySelector(`[id="${id2}-text"]`);
- if (elem !== null) {
- elem.addEventListener("click", function() {
- callbackFunction();
- });
+ constructor(t4) {
+ this.helper = t4;
}
- }
- );
- };
- const setClickEvent$1 = function(ids, functionName, functionArgs) {
- ids.split(",").forEach(function(id2) {
- setClickFun(id2, functionName, functionArgs);
- });
- setClass(ids, "clickable");
- };
- const bindFunctions$1 = function(element) {
- funs.forEach(function(fun) {
- fun(element);
- });
- };
- const ganttDb = {
- parseDirective: parseDirective$7,
- getConfig: () => getConfig$1().gantt,
- clear: clear$8,
- setDateFormat,
- getDateFormat,
- enableInclusiveEndDates,
- endDatesAreInclusive,
- enableTopAxis,
- topAxisEnabled,
- setAxisFormat,
- getAxisFormat,
- setTickInterval,
- getTickInterval,
- setTodayMarker,
- getTodayMarker,
- setAccTitle,
- getAccTitle,
- setDiagramTitle,
- getDiagramTitle,
- setDisplayMode,
- getDisplayMode,
- setAccDescription,
- getAccDescription,
- addSection: addSection$3,
- getSections: getSections$3,
- getTasks: getTasks$2,
- addTask: addTask$2,
- findTaskById,
- addTaskOrg: addTaskOrg$2,
- setIncludes,
- getIncludes,
- setExcludes,
- getExcludes,
- setClickEvent: setClickEvent$1,
- setLink: setLink$1,
- getLinks,
- bindFunctions: bindFunctions$1,
- parseDuration,
- isInvalidDate
- };
- function getTaskTags(data, task, tags2) {
- let matchFound = true;
- while (matchFound) {
- matchFound = false;
- tags2.forEach(function(t4) {
- const pattern = "^\\s*" + t4 + "\\s*$";
- const regex = new RegExp(pattern);
- if (data[0].match(regex)) {
- task[t4] = true;
- data.shift(1);
- matchFound = true;
+ fillPolygons(t4, e3) {
+ return this._fillPolygons(t4, e3);
}
- });
- }
- }
- const setConf$5 = function() {
- log$1.debug("Something is calling, setConf, remove the call");
- };
- const getMaxIntersections = (tasks2, orderOffset) => {
- let timeline2 = [...tasks2].map(() => -Infinity);
- let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);
- let maxIntersections = 0;
- for (const element of sorted) {
- for (let j = 0; j < timeline2.length; j++) {
- if (element.startTime >= timeline2[j]) {
- timeline2[j] = element.endTime;
- element.order = j + orderOffset;
- if (j > maxIntersections) {
- maxIntersections = j;
- }
- break;
+ _fillPolygons(t4, e3) {
+ const s2 = n(t4, e3);
+ return { type: "fillSketch", ops: this.renderLines(s2, e3) };
+ }
+ renderLines(t4, e3) {
+ const s2 = [];
+ for (const n2 of t4) s2.push(...this.helper.doubleLineOps(n2[0][0], n2[0][1], n2[1][0], n2[1][1], e3));
+ return s2;
+ }
+ };
+ __name(a, "a");
+ h = class extends o {
+ static {
+ __name(this, "h");
}
- }
- }
- return maxIntersections;
- };
- let w;
- const draw$c = function(text2, id2, version2, diagObj) {
- const conf2 = getConfig$1().gantt;
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- const elem = doc.getElementById(id2);
- w = elem.parentElement.offsetWidth;
- if (w === void 0) {
- w = 1200;
- }
- if (conf2.useWidth !== void 0) {
- w = conf2.useWidth;
- }
- const taskArray = diagObj.db.getTasks();
- let categories = [];
- for (const element of taskArray) {
- categories.push(element.type);
- }
- categories = checkUnique(categories);
- const categoryHeights = {};
- let h = 2 * conf2.topPadding;
- if (diagObj.db.getDisplayMode() === "compact" || conf2.displayMode === "compact") {
- const categoryElements = {};
- for (const element of taskArray) {
- if (categoryElements[element.section] === void 0) {
- categoryElements[element.section] = [element];
- } else {
- categoryElements[element.section].push(element);
+ fillPolygons(t4, e3) {
+ let s2 = e3.hachureGap;
+ s2 < 0 && (s2 = 4 * e3.strokeWidth), s2 = Math.max(s2, 0.1);
+ const o2 = n(t4, Object.assign({}, e3, { hachureGap: s2 })), h2 = Math.PI / 180 * e3.hachureAngle, r2 = [], i2 = 0.5 * s2 * Math.cos(h2), c3 = 0.5 * s2 * Math.sin(h2);
+ for (const [t5, e4] of o2) a([t5, e4]) && r2.push([[t5[0] - i2, t5[1] + c3], [...e4]], [[t5[0] + i2, t5[1] - c3], [...e4]]);
+ return { type: "fillSketch", ops: this.renderLines(r2, e3) };
}
- }
- let intersections = 0;
- for (const category of Object.keys(categoryElements)) {
- const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;
- intersections += categoryHeight;
- h += categoryHeight * (conf2.barHeight + conf2.barGap);
- categoryHeights[category] = categoryHeight;
- }
- } else {
- h += taskArray.length * (conf2.barHeight + conf2.barGap);
- for (const category of categories) {
- categoryHeights[category] = taskArray.filter((task) => task.type === category).length;
- }
- }
- elem.setAttribute("viewBox", "0 0 " + w + " " + h);
- const svg2 = root2.select(`[id="${id2}"]`);
- const timeScale = time$1().domain([
- min$2(taskArray, function(d) {
- return d.startTime;
- }),
- max$2(taskArray, function(d) {
- return d.endTime;
- })
- ]).rangeRound([0, w - conf2.leftPadding - conf2.rightPadding]);
- function taskCompare(a, b) {
- const taskA = a.startTime;
- const taskB = b.startTime;
- let result = 0;
- if (taskA > taskB) {
- result = 1;
- } else if (taskA < taskB) {
- result = -1;
- }
- return result;
- }
- taskArray.sort(taskCompare);
- makeGant(taskArray, w, h);
- configureSvgSize(svg2, h, w, conf2.useMaxWidth);
- svg2.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf2.titleTopMargin).attr("class", "titleText");
- function makeGant(tasks2, pageWidth, pageHeight) {
- const barHeight = conf2.barHeight;
- const gap = barHeight + conf2.barGap;
- const topPadding = conf2.topPadding;
- const leftPadding = conf2.leftPadding;
- const colorScale = linear().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(interpolateHcl);
- drawExcludeDays(
- gap,
- topPadding,
- leftPadding,
- pageWidth,
- pageHeight,
- tasks2,
- diagObj.db.getExcludes(),
- diagObj.db.getIncludes()
- );
- makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
- drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);
- vertLabels(gap, topPadding);
- drawToday(leftPadding, topPadding, pageWidth, pageHeight);
- }
- function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {
- const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];
- const uniqueTasks = uniqueTaskOrderIds.map((id3) => theArray.find((item) => item.order === id3));
- svg2.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i2) {
- i2 = d.order;
- return i2 * theGap + theTopPad - 2;
- }).attr("width", function() {
- return w2 - conf2.rightPadding / 2;
- }).attr("height", theGap).attr("class", function(d) {
- for (const [i2, category] of categories.entries()) {
- if (d.type === category) {
- return "section section" + i2 % conf2.numberSectionStyles;
- }
- }
- return "section section0";
- });
- const rectangles = svg2.append("g").selectAll("rect").data(theArray).enter();
- const links2 = diagObj.db.getLinks();
- rectangles.append("rect").attr("id", function(d) {
- return d.id;
- }).attr("rx", 3).attr("ry", 3).attr("x", function(d) {
- if (d.milestone) {
- return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
- }
- return timeScale(d.startTime) + theSidePad;
- }).attr("y", function(d, i2) {
- i2 = d.order;
- return i2 * theGap + theTopPad;
- }).attr("width", function(d) {
- if (d.milestone) {
- return theBarHeight;
- }
- return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
- }).attr("height", theBarHeight).attr("transform-origin", function(d, i2) {
- i2 = d.order;
- return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i2 * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px";
- }).attr("class", function(d) {
- const res = "task";
- let classStr = "";
- if (d.classes.length > 0) {
- classStr = d.classes.join(" ");
- }
- let secNum = 0;
- for (const [i2, category] of categories.entries()) {
- if (d.type === category) {
- secNum = i2 % conf2.numberSectionStyles;
- }
- }
- let taskClass = "";
- if (d.active) {
- if (d.crit) {
- taskClass += " activeCrit";
+ };
+ r = class extends o {
+ static {
+ __name(this, "r");
+ }
+ fillPolygons(t4, e3) {
+ const s2 = this._fillPolygons(t4, e3), n2 = Object.assign({}, e3, { hachureAngle: e3.hachureAngle + 90 }), o2 = this._fillPolygons(t4, n2);
+ return s2.ops = s2.ops.concat(o2.ops), s2;
+ }
+ };
+ i = class {
+ static {
+ __name(this, "i");
+ }
+ constructor(t4) {
+ this.helper = t4;
+ }
+ fillPolygons(t4, e3) {
+ const s2 = n(t4, e3 = Object.assign({}, e3, { hachureAngle: 0 }));
+ return this.dotsOnLines(s2, e3);
+ }
+ dotsOnLines(t4, e3) {
+ const s2 = [];
+ let n2 = e3.hachureGap;
+ n2 < 0 && (n2 = 4 * e3.strokeWidth), n2 = Math.max(n2, 0.1);
+ let o2 = e3.fillWeight;
+ o2 < 0 && (o2 = e3.strokeWidth / 2);
+ const h2 = n2 / 4;
+ for (const r2 of t4) {
+ const t5 = a(r2), i2 = t5 / n2, c3 = Math.ceil(i2) - 1, l2 = t5 - c3 * n2, u2 = (r2[0][0] + r2[1][0]) / 2 - n2 / 4, p3 = Math.min(r2[0][1], r2[1][1]);
+ for (let t6 = 0; t6 < c3; t6++) {
+ const a2 = p3 + l2 + t6 * n2, r3 = u2 - h2 + 2 * Math.random() * h2, i3 = a2 - h2 + 2 * Math.random() * h2, c4 = this.helper.ellipse(r3, i3, o2, o2, e3);
+ s2.push(...c4.ops);
+ }
+ }
+ return { type: "fillSketch", ops: s2 };
+ }
+ };
+ c2 = class {
+ static {
+ __name(this, "c");
+ }
+ constructor(t4) {
+ this.helper = t4;
+ }
+ fillPolygons(t4, e3) {
+ const s2 = n(t4, e3);
+ return { type: "fillSketch", ops: this.dashedLine(s2, e3) };
+ }
+ dashedLine(t4, e3) {
+ const s2 = e3.dashOffset < 0 ? e3.hachureGap < 0 ? 4 * e3.strokeWidth : e3.hachureGap : e3.dashOffset, n2 = e3.dashGap < 0 ? e3.hachureGap < 0 ? 4 * e3.strokeWidth : e3.hachureGap : e3.dashGap, o2 = [];
+ return t4.forEach((t5) => {
+ const h2 = a(t5), r2 = Math.floor(h2 / (s2 + n2)), i2 = (h2 + n2 - r2 * (s2 + n2)) / 2;
+ let c3 = t5[0], l2 = t5[1];
+ c3[0] > l2[0] && (c3 = t5[1], l2 = t5[0]);
+ const u2 = Math.atan((l2[1] - c3[1]) / (l2[0] - c3[0]));
+ for (let t6 = 0; t6 < r2; t6++) {
+ const a2 = t6 * (s2 + n2), h3 = a2 + s2, r3 = [c3[0] + a2 * Math.cos(u2) + i2 * Math.cos(u2), c3[1] + a2 * Math.sin(u2) + i2 * Math.sin(u2)], l3 = [c3[0] + h3 * Math.cos(u2) + i2 * Math.cos(u2), c3[1] + h3 * Math.sin(u2) + i2 * Math.sin(u2)];
+ o2.push(...this.helper.doubleLineOps(r3[0], r3[1], l3[0], l3[1], e3));
+ }
+ }), o2;
+ }
+ };
+ l = class {
+ static {
+ __name(this, "l");
+ }
+ constructor(t4) {
+ this.helper = t4;
+ }
+ fillPolygons(t4, e3) {
+ const s2 = e3.hachureGap < 0 ? 4 * e3.strokeWidth : e3.hachureGap, o2 = e3.zigzagOffset < 0 ? s2 : e3.zigzagOffset, a2 = n(t4, e3 = Object.assign({}, e3, { hachureGap: s2 + o2 }));
+ return { type: "fillSketch", ops: this.zigzagLines(a2, o2, e3) };
+ }
+ zigzagLines(t4, e3, s2) {
+ const n2 = [];
+ return t4.forEach((t5) => {
+ const o2 = a(t5), h2 = Math.round(o2 / (2 * e3));
+ let r2 = t5[0], i2 = t5[1];
+ r2[0] > i2[0] && (r2 = t5[1], i2 = t5[0]);
+ const c3 = Math.atan((i2[1] - r2[1]) / (i2[0] - r2[0]));
+ for (let t6 = 0; t6 < h2; t6++) {
+ const o3 = 2 * t6 * e3, a2 = 2 * (t6 + 1) * e3, h3 = Math.sqrt(2 * Math.pow(e3, 2)), i3 = [r2[0] + o3 * Math.cos(c3), r2[1] + o3 * Math.sin(c3)], l2 = [r2[0] + a2 * Math.cos(c3), r2[1] + a2 * Math.sin(c3)], u2 = [i3[0] + h3 * Math.cos(c3 + Math.PI / 4), i3[1] + h3 * Math.sin(c3 + Math.PI / 4)];
+ n2.push(...this.helper.doubleLineOps(i3[0], i3[1], u2[0], u2[1], s2), ...this.helper.doubleLineOps(u2[0], u2[1], l2[0], l2[1], s2));
+ }
+ }), n2;
+ }
+ };
+ u = {};
+ p = class {
+ static {
+ __name(this, "p");
+ }
+ constructor(t4) {
+ this.seed = t4;
+ }
+ next() {
+ return this.seed ? (2 ** 31 - 1 & (this.seed = Math.imul(48271, this.seed))) / 2 ** 31 : Math.random();
+ }
+ };
+ f = 0;
+ d = 1;
+ g = 2;
+ M = { A: 7, a: 7, C: 6, c: 6, H: 1, h: 1, L: 2, l: 2, M: 2, m: 2, Q: 4, q: 4, S: 4, s: 4, T: 2, t: 2, V: 1, v: 1, Z: 0, z: 0 };
+ __name(k, "k");
+ __name(b, "b");
+ __name(y2, "y");
+ __name(m, "m");
+ __name(w, "w");
+ __name(x2, "x");
+ P = { randOffset: /* @__PURE__ */ __name(function(t4, e3) {
+ return G(t4, e3);
+ }, "randOffset"), randOffsetWithRange: /* @__PURE__ */ __name(function(t4, e3, s2) {
+ return E(t4, e3, s2);
+ }, "randOffsetWithRange"), ellipse: /* @__PURE__ */ __name(function(t4, e3, s2, n2, o2) {
+ const a2 = T2(s2, n2, o2);
+ return D2(t4, e3, o2, a2).opset;
+ }, "ellipse"), doubleLineOps: /* @__PURE__ */ __name(function(t4, e3, s2, n2, o2) {
+ return $(t4, e3, s2, n2, o2, true);
+ }, "doubleLineOps") };
+ __name(v, "v");
+ __name(S2, "S");
+ __name(O, "O");
+ __name(L, "L");
+ __name(T2, "T");
+ __name(D2, "D");
+ __name(A, "A");
+ __name(_, "_");
+ __name(I, "I");
+ __name(C, "C");
+ __name(z, "z");
+ __name(W, "W");
+ __name(E, "E");
+ __name(G, "G");
+ __name($, "$");
+ __name(R, "R");
+ __name(j, "j");
+ __name(q, "q");
+ __name(F, "F");
+ __name(V, "V");
+ __name(Z, "Z");
+ __name(Q, "Q");
+ __name(H, "H");
+ __name(N, "N");
+ __name(B, "B");
+ __name(J, "J");
+ __name(K2, "K");
+ __name(U, "U");
+ __name(X2, "X");
+ __name(Y2, "Y");
+ tt = "none";
+ et = class {
+ static {
+ __name(this, "et");
+ }
+ constructor(t4) {
+ this.defaultOptions = { maxRandomnessOffset: 2, roughness: 1, bowing: 1, stroke: "#000", strokeWidth: 1, curveTightness: 0, curveFitting: 0.95, curveStepCount: 9, fillStyle: "hachure", fillWeight: -1, hachureAngle: -41, hachureGap: -1, dashOffset: -1, dashGap: -1, zigzagOffset: -1, seed: 0, disableMultiStroke: false, disableMultiStrokeFill: false, preserveVertices: false, fillShapeRoughnessGain: 0.8 }, this.config = t4 || {}, this.config.options && (this.defaultOptions = this._o(this.config.options));
+ }
+ static newSeed() {
+ return Math.floor(Math.random() * 2 ** 31);
+ }
+ _o(t4) {
+ return t4 ? Object.assign({}, this.defaultOptions, t4) : this.defaultOptions;
+ }
+ _d(t4, e3, s2) {
+ return { shape: t4, sets: e3 || [], options: s2 || this.defaultOptions };
+ }
+ line(t4, e3, s2, n2, o2) {
+ const a2 = this._o(o2);
+ return this._d("line", [v(t4, e3, s2, n2, a2)], a2);
+ }
+ rectangle(t4, e3, s2, n2, o2) {
+ const a2 = this._o(o2), h2 = [], r2 = O(t4, e3, s2, n2, a2);
+ if (a2.fill) {
+ const o3 = [[t4, e3], [t4 + s2, e3], [t4 + s2, e3 + n2], [t4, e3 + n2]];
+ "solid" === a2.fillStyle ? h2.push(I([o3], a2)) : h2.push(C([o3], a2));
+ }
+ return a2.stroke !== tt && h2.push(r2), this._d("rectangle", h2, a2);
+ }
+ ellipse(t4, e3, s2, n2, o2) {
+ const a2 = this._o(o2), h2 = [], r2 = T2(s2, n2, a2), i2 = D2(t4, e3, a2, r2);
+ if (a2.fill) if ("solid" === a2.fillStyle) {
+ const s3 = D2(t4, e3, a2, r2).opset;
+ s3.type = "fillPath", h2.push(s3);
+ } else h2.push(C([i2.estimatedPoints], a2));
+ return a2.stroke !== tt && h2.push(i2.opset), this._d("ellipse", h2, a2);
+ }
+ circle(t4, e3, s2, n2) {
+ const o2 = this.ellipse(t4, e3, s2, s2, n2);
+ return o2.shape = "circle", o2;
+ }
+ linearPath(t4, e3) {
+ const s2 = this._o(e3);
+ return this._d("linearPath", [S2(t4, false, s2)], s2);
+ }
+ arc(t4, e3, s2, n2, o2, a2, h2 = false, r2) {
+ const i2 = this._o(r2), c3 = [], l2 = A(t4, e3, s2, n2, o2, a2, h2, true, i2);
+ if (h2 && i2.fill) if ("solid" === i2.fillStyle) {
+ const h3 = Object.assign({}, i2);
+ h3.disableMultiStroke = true;
+ const r3 = A(t4, e3, s2, n2, o2, a2, true, false, h3);
+ r3.type = "fillPath", c3.push(r3);
+ } else c3.push(function(t5, e4, s3, n3, o3, a3, h3) {
+ const r3 = t5, i3 = e4;
+ let c4 = Math.abs(s3 / 2), l3 = Math.abs(n3 / 2);
+ c4 += G(0.01 * c4, h3), l3 += G(0.01 * l3, h3);
+ let u2 = o3, p3 = a3;
+ for (; u2 < 0; ) u2 += 2 * Math.PI, p3 += 2 * Math.PI;
+ p3 - u2 > 2 * Math.PI && (u2 = 0, p3 = 2 * Math.PI);
+ const f3 = (p3 - u2) / h3.curveStepCount, d2 = [];
+ for (let t6 = u2; t6 <= p3; t6 += f3) d2.push([r3 + c4 * Math.cos(t6), i3 + l3 * Math.sin(t6)]);
+ return d2.push([r3 + c4 * Math.cos(p3), i3 + l3 * Math.sin(p3)]), d2.push([r3, i3]), C([d2], h3);
+ }(t4, e3, s2, n2, o2, a2, i2));
+ return i2.stroke !== tt && c3.push(l2), this._d("arc", c3, i2);
+ }
+ curve(t4, e3) {
+ const s2 = this._o(e3), n2 = [], o2 = L(t4, s2);
+ if (s2.fill && s2.fill !== tt) if ("solid" === s2.fillStyle) {
+ const e4 = L(t4, Object.assign(Object.assign({}, s2), { disableMultiStroke: true, roughness: s2.roughness ? s2.roughness + s2.fillShapeRoughnessGain : 0 }));
+ n2.push({ type: "fillPath", ops: this._mergedShape(e4.ops) });
} else {
- taskClass = " active";
+ const e4 = [], o3 = t4;
+ if (o3.length) {
+ const t5 = "number" == typeof o3[0][0] ? [o3] : o3;
+ for (const n3 of t5) n3.length < 3 ? e4.push(...n3) : 3 === n3.length ? e4.push(...Y2(H([n3[0], n3[0], n3[1], n3[2]]), 10, (1 + s2.roughness) / 2)) : e4.push(...Y2(H(n3), 10, (1 + s2.roughness) / 2));
+ }
+ e4.length && n2.push(C([e4], s2));
+ }
+ return s2.stroke !== tt && n2.push(o2), this._d("curve", n2, s2);
+ }
+ polygon(t4, e3) {
+ const s2 = this._o(e3), n2 = [], o2 = S2(t4, true, s2);
+ return s2.fill && ("solid" === s2.fillStyle ? n2.push(I([t4], s2)) : n2.push(C([t4], s2))), s2.stroke !== tt && n2.push(o2), this._d("polygon", n2, s2);
+ }
+ path(t4, e3) {
+ const s2 = this._o(e3), n2 = [];
+ if (!t4) return this._d("path", n2, s2);
+ t4 = (t4 || "").replace(/\n/g, " ").replace(/(-\s)/g, "-").replace("/(ss)/g", " ");
+ const o2 = s2.fill && "transparent" !== s2.fill && s2.fill !== tt, a2 = s2.stroke !== tt, h2 = !!(s2.simplification && s2.simplification < 1), r2 = function(t5, e4, s3) {
+ const n3 = m(y2(b(t5))), o3 = [];
+ let a3 = [], h3 = [0, 0], r3 = [];
+ const i3 = /* @__PURE__ */ __name(() => {
+ r3.length >= 4 && a3.push(...Y2(r3, e4)), r3 = [];
+ }, "i"), c3 = /* @__PURE__ */ __name(() => {
+ i3(), a3.length && (o3.push(a3), a3 = []);
+ }, "c");
+ for (const { key: t6, data: e6 } of n3) switch (t6) {
+ case "M":
+ c3(), h3 = [e6[0], e6[1]], a3.push(h3);
+ break;
+ case "L":
+ i3(), a3.push([e6[0], e6[1]]);
+ break;
+ case "C":
+ if (!r3.length) {
+ const t7 = a3.length ? a3[a3.length - 1] : h3;
+ r3.push([t7[0], t7[1]]);
+ }
+ r3.push([e6[0], e6[1]]), r3.push([e6[2], e6[3]]), r3.push([e6[4], e6[5]]);
+ break;
+ case "Z":
+ i3(), a3.push([h3[0], h3[1]]);
+ }
+ if (c3(), !s3) return o3;
+ const l2 = [];
+ for (const t6 of o3) {
+ const e6 = U(t6, s3);
+ e6.length && l2.push(e6);
+ }
+ return l2;
+ }(t4, 1, h2 ? 4 - 4 * (s2.simplification || 1) : (1 + s2.roughness) / 2), i2 = _(t4, s2);
+ if (o2) if ("solid" === s2.fillStyle) if (1 === r2.length) {
+ const e4 = _(t4, Object.assign(Object.assign({}, s2), { disableMultiStroke: true, roughness: s2.roughness ? s2.roughness + s2.fillShapeRoughnessGain : 0 }));
+ n2.push({ type: "fillPath", ops: this._mergedShape(e4.ops) });
+ } else n2.push(I(r2, s2));
+ else n2.push(C(r2, s2));
+ return a2 && (h2 ? r2.forEach((t5) => {
+ n2.push(S2(t5, false, s2));
+ }) : n2.push(i2)), this._d("path", n2, s2);
+ }
+ opsToPath(t4, e3) {
+ let s2 = "";
+ for (const n2 of t4.ops) {
+ const t5 = "number" == typeof e3 && e3 >= 0 ? n2.data.map((t6) => +t6.toFixed(e3)) : n2.data;
+ switch (n2.op) {
+ case "move":
+ s2 += `M${t5[0]} ${t5[1]} `;
+ break;
+ case "bcurveTo":
+ s2 += `C${t5[0]} ${t5[1]}, ${t5[2]} ${t5[3]}, ${t5[4]} ${t5[5]} `;
+ break;
+ case "lineTo":
+ s2 += `L${t5[0]} ${t5[1]} `;
+ }
}
- } else if (d.done) {
- if (d.crit) {
- taskClass = " doneCrit";
- } else {
- taskClass = " done";
+ return s2.trim();
+ }
+ toPaths(t4) {
+ const e3 = t4.sets || [], s2 = t4.options || this.defaultOptions, n2 = [];
+ for (const t5 of e3) {
+ let e4 = null;
+ switch (t5.type) {
+ case "path":
+ e4 = { d: this.opsToPath(t5), stroke: s2.stroke, strokeWidth: s2.strokeWidth, fill: tt };
+ break;
+ case "fillPath":
+ e4 = { d: this.opsToPath(t5), stroke: tt, strokeWidth: 0, fill: s2.fill || tt };
+ break;
+ case "fillSketch":
+ e4 = this.fillSketch(t5, s2);
+ }
+ e4 && n2.push(e4);
}
- } else {
- if (d.crit) {
- taskClass += " crit";
+ return n2;
+ }
+ fillSketch(t4, e3) {
+ let s2 = e3.fillWeight;
+ return s2 < 0 && (s2 = e3.strokeWidth / 2), { d: this.opsToPath(t4), stroke: e3.fill || tt, strokeWidth: s2, fill: tt };
+ }
+ _mergedShape(t4) {
+ return t4.filter((t5, e3) => 0 === e3 || "move" !== t5.op);
+ }
+ };
+ st = class {
+ static {
+ __name(this, "st");
+ }
+ constructor(t4, e3) {
+ this.canvas = t4, this.ctx = this.canvas.getContext("2d"), this.gen = new et(e3);
+ }
+ draw(t4) {
+ const e3 = t4.sets || [], s2 = t4.options || this.getDefaultOptions(), n2 = this.ctx, o2 = t4.options.fixedDecimalPlaceDigits;
+ for (const a2 of e3) switch (a2.type) {
+ case "path":
+ n2.save(), n2.strokeStyle = "none" === s2.stroke ? "transparent" : s2.stroke, n2.lineWidth = s2.strokeWidth, s2.strokeLineDash && n2.setLineDash(s2.strokeLineDash), s2.strokeLineDashOffset && (n2.lineDashOffset = s2.strokeLineDashOffset), this._drawToContext(n2, a2, o2), n2.restore();
+ break;
+ case "fillPath": {
+ n2.save(), n2.fillStyle = s2.fill || "";
+ const e4 = "curve" === t4.shape || "polygon" === t4.shape || "path" === t4.shape ? "evenodd" : "nonzero";
+ this._drawToContext(n2, a2, o2, e4), n2.restore();
+ break;
+ }
+ case "fillSketch":
+ this.fillSketch(n2, a2, s2);
+ }
+ }
+ fillSketch(t4, e3, s2) {
+ let n2 = s2.fillWeight;
+ n2 < 0 && (n2 = s2.strokeWidth / 2), t4.save(), s2.fillLineDash && t4.setLineDash(s2.fillLineDash), s2.fillLineDashOffset && (t4.lineDashOffset = s2.fillLineDashOffset), t4.strokeStyle = s2.fill || "", t4.lineWidth = n2, this._drawToContext(t4, e3, s2.fixedDecimalPlaceDigits), t4.restore();
+ }
+ _drawToContext(t4, e3, s2, n2 = "nonzero") {
+ t4.beginPath();
+ for (const n3 of e3.ops) {
+ const e4 = "number" == typeof s2 && s2 >= 0 ? n3.data.map((t5) => +t5.toFixed(s2)) : n3.data;
+ switch (n3.op) {
+ case "move":
+ t4.moveTo(e4[0], e4[1]);
+ break;
+ case "bcurveTo":
+ t4.bezierCurveTo(e4[0], e4[1], e4[2], e4[3], e4[4], e4[5]);
+ break;
+ case "lineTo":
+ t4.lineTo(e4[0], e4[1]);
+ }
}
+ "fillPath" === e3.type ? t4.fill(n2) : t4.stroke();
}
- if (taskClass.length === 0) {
- taskClass = " task";
+ get generator() {
+ return this.gen;
}
- if (d.milestone) {
- taskClass = " milestone " + taskClass;
+ getDefaultOptions() {
+ return this.gen.defaultOptions;
}
- taskClass += secNum;
- taskClass += " " + classStr;
- return res + taskClass;
- });
- rectangles.append("text").attr("id", function(d) {
- return d.id + "-text";
- }).text(function(d) {
- return d.task;
- }).attr("font-size", conf2.fontSize).attr("x", function(d) {
- let startX = timeScale(d.startTime);
- let endX = timeScale(d.renderEndTime || d.endTime);
- if (d.milestone) {
- startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
- }
- if (d.milestone) {
- endX = startX + theBarHeight;
- }
- const textWidth = this.getBBox().width;
- if (textWidth > endX - startX) {
- if (endX + textWidth + 1.5 * conf2.leftPadding > w2) {
- return startX + theSidePad - 5;
- } else {
- return endX + theSidePad + 5;
+ line(t4, e3, s2, n2, o2) {
+ const a2 = this.gen.line(t4, e3, s2, n2, o2);
+ return this.draw(a2), a2;
+ }
+ rectangle(t4, e3, s2, n2, o2) {
+ const a2 = this.gen.rectangle(t4, e3, s2, n2, o2);
+ return this.draw(a2), a2;
+ }
+ ellipse(t4, e3, s2, n2, o2) {
+ const a2 = this.gen.ellipse(t4, e3, s2, n2, o2);
+ return this.draw(a2), a2;
+ }
+ circle(t4, e3, s2, n2) {
+ const o2 = this.gen.circle(t4, e3, s2, n2);
+ return this.draw(o2), o2;
+ }
+ linearPath(t4, e3) {
+ const s2 = this.gen.linearPath(t4, e3);
+ return this.draw(s2), s2;
+ }
+ polygon(t4, e3) {
+ const s2 = this.gen.polygon(t4, e3);
+ return this.draw(s2), s2;
+ }
+ arc(t4, e3, s2, n2, o2, a2, h2 = false, r2) {
+ const i2 = this.gen.arc(t4, e3, s2, n2, o2, a2, h2, r2);
+ return this.draw(i2), i2;
+ }
+ curve(t4, e3) {
+ const s2 = this.gen.curve(t4, e3);
+ return this.draw(s2), s2;
+ }
+ path(t4, e3) {
+ const s2 = this.gen.path(t4, e3);
+ return this.draw(s2), s2;
+ }
+ };
+ nt = "http://www.w3.org/2000/svg";
+ ot = class {
+ static {
+ __name(this, "ot");
+ }
+ constructor(t4, e3) {
+ this.svg = t4, this.gen = new et(e3);
+ }
+ draw(t4) {
+ const e3 = t4.sets || [], s2 = t4.options || this.getDefaultOptions(), n2 = this.svg.ownerDocument || window.document, o2 = n2.createElementNS(nt, "g"), a2 = t4.options.fixedDecimalPlaceDigits;
+ for (const h2 of e3) {
+ let e4 = null;
+ switch (h2.type) {
+ case "path":
+ e4 = n2.createElementNS(nt, "path"), e4.setAttribute("d", this.opsToPath(h2, a2)), e4.setAttribute("stroke", s2.stroke), e4.setAttribute("stroke-width", s2.strokeWidth + ""), e4.setAttribute("fill", "none"), s2.strokeLineDash && e4.setAttribute("stroke-dasharray", s2.strokeLineDash.join(" ").trim()), s2.strokeLineDashOffset && e4.setAttribute("stroke-dashoffset", `${s2.strokeLineDashOffset}`);
+ break;
+ case "fillPath":
+ e4 = n2.createElementNS(nt, "path"), e4.setAttribute("d", this.opsToPath(h2, a2)), e4.setAttribute("stroke", "none"), e4.setAttribute("stroke-width", "0"), e4.setAttribute("fill", s2.fill || ""), "curve" !== t4.shape && "polygon" !== t4.shape || e4.setAttribute("fill-rule", "evenodd");
+ break;
+ case "fillSketch":
+ e4 = this.fillSketch(n2, h2, s2);
+ }
+ e4 && o2.appendChild(e4);
}
+ return o2;
+ }
+ fillSketch(t4, e3, s2) {
+ let n2 = s2.fillWeight;
+ n2 < 0 && (n2 = s2.strokeWidth / 2);
+ const o2 = t4.createElementNS(nt, "path");
+ return o2.setAttribute("d", this.opsToPath(e3, s2.fixedDecimalPlaceDigits)), o2.setAttribute("stroke", s2.fill || ""), o2.setAttribute("stroke-width", n2 + ""), o2.setAttribute("fill", "none"), s2.fillLineDash && o2.setAttribute("stroke-dasharray", s2.fillLineDash.join(" ").trim()), s2.fillLineDashOffset && o2.setAttribute("stroke-dashoffset", `${s2.fillLineDashOffset}`), o2;
+ }
+ get generator() {
+ return this.gen;
+ }
+ getDefaultOptions() {
+ return this.gen.defaultOptions;
+ }
+ opsToPath(t4, e3) {
+ return this.gen.opsToPath(t4, e3);
+ }
+ line(t4, e3, s2, n2, o2) {
+ const a2 = this.gen.line(t4, e3, s2, n2, o2);
+ return this.draw(a2);
+ }
+ rectangle(t4, e3, s2, n2, o2) {
+ const a2 = this.gen.rectangle(t4, e3, s2, n2, o2);
+ return this.draw(a2);
+ }
+ ellipse(t4, e3, s2, n2, o2) {
+ const a2 = this.gen.ellipse(t4, e3, s2, n2, o2);
+ return this.draw(a2);
+ }
+ circle(t4, e3, s2, n2) {
+ const o2 = this.gen.circle(t4, e3, s2, n2);
+ return this.draw(o2);
+ }
+ linearPath(t4, e3) {
+ const s2 = this.gen.linearPath(t4, e3);
+ return this.draw(s2);
+ }
+ polygon(t4, e3) {
+ const s2 = this.gen.polygon(t4, e3);
+ return this.draw(s2);
+ }
+ arc(t4, e3, s2, n2, o2, a2, h2 = false, r2) {
+ const i2 = this.gen.arc(t4, e3, s2, n2, o2, a2, h2, r2);
+ return this.draw(i2);
+ }
+ curve(t4, e3) {
+ const s2 = this.gen.curve(t4, e3);
+ return this.draw(s2);
+ }
+ path(t4, e3) {
+ const s2 = this.gen.path(t4, e3);
+ return this.draw(s2);
+ }
+ };
+ at = { canvas: /* @__PURE__ */ __name((t4, e3) => new st(t4, e3), "canvas"), svg: /* @__PURE__ */ __name((t4, e3) => new ot(t4, e3), "svg"), generator: /* @__PURE__ */ __name((t4) => new et(t4), "generator"), newSeed: /* @__PURE__ */ __name(() => et.newSeed(), "newSeed") };
+ }
+ });
+
+ // src/rendering-util/rendering-elements/intersect/intersect-rect.js
+ var intersectRect2, intersect_rect_default2;
+ var init_intersect_rect2 = __esm({
+ "src/rendering-util/rendering-elements/intersect/intersect-rect.js"() {
+ "use strict";
+ intersectRect2 = /* @__PURE__ */ __name((node2, point8) => {
+ var x5 = node2.x;
+ var y5 = node2.y;
+ var dx = point8.x - x5;
+ var dy = point8.y - y5;
+ var w3 = node2.width / 2;
+ var h2 = node2.height / 2;
+ var sx, sy;
+ if (Math.abs(dy) * w3 > Math.abs(dx) * h2) {
+ if (dy < 0) {
+ h2 = -h2;
+ }
+ sx = dy === 0 ? 0 : h2 * dx / dy;
+ sy = h2;
} else {
- return (endX - startX) / 2 + startX + theSidePad;
- }
- }).attr("y", function(d, i2) {
- i2 = d.order;
- return i2 * theGap + conf2.barHeight / 2 + (conf2.fontSize / 2 - 2) + theTopPad;
- }).attr("text-height", theBarHeight).attr("class", function(d) {
- const startX = timeScale(d.startTime);
- let endX = timeScale(d.endTime);
- if (d.milestone) {
- endX = startX + theBarHeight;
- }
- const textWidth = this.getBBox().width;
- let classStr = "";
- if (d.classes.length > 0) {
- classStr = d.classes.join(" ");
- }
- let secNum = 0;
- for (const [i2, category] of categories.entries()) {
- if (d.type === category) {
- secNum = i2 % conf2.numberSectionStyles;
- }
- }
- let taskType = "";
- if (d.active) {
- if (d.crit) {
- taskType = "activeCritText" + secNum;
- } else {
- taskType = "activeText" + secNum;
+ if (dx < 0) {
+ w3 = -w3;
}
+ sx = w3;
+ sy = dx === 0 ? 0 : w3 * dy / dx;
}
- if (d.done) {
- if (d.crit) {
- taskType = taskType + " doneCritText" + secNum;
+ return { x: x5 + sx, y: y5 + sy };
+ }, "intersectRect");
+ intersect_rect_default2 = intersectRect2;
+ }
+ });
+
+ // src/rendering-util/rendering-elements/createLabel.js
+ function applyStyle3(dom, styleFn) {
+ if (styleFn) {
+ dom.attr("style", styleFn);
+ }
+ }
+ async function addHtmlLabel2(node2) {
+ const fo = select_default2(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"));
+ const div = fo.append("xhtml:div");
+ let label = node2.label;
+ if (node2.label && hasKatex(node2.label)) {
+ label = await renderKatex(node2.label.replace(common_default.lineBreakRegex, "\n"), getConfig2());
+ }
+ const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
+ div.html(
+ '" + label + ""
+ );
+ applyStyle3(div, node2.labelStyle);
+ div.style("display", "inline-block");
+ div.style("padding-right", "1px");
+ div.style("white-space", "nowrap");
+ div.attr("xmlns", "http://www.w3.org/1999/xhtml");
+ return fo.node();
+ }
+ var createLabel2, createLabel_default2;
+ var init_createLabel2 = __esm({
+ "src/rendering-util/rendering-elements/createLabel.js"() {
+ "use strict";
+ init_src32();
+ init_logger();
+ init_diagramAPI();
+ init_common();
+ init_utils2();
+ __name(applyStyle3, "applyStyle");
+ __name(addHtmlLabel2, "addHtmlLabel");
+ createLabel2 = /* @__PURE__ */ __name(async (_vertexText, style3, isTitle, isNode2) => {
+ let vertexText = _vertexText || "";
+ if (typeof vertexText === "object") {
+ vertexText = vertexText[0];
+ }
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ vertexText = vertexText.replace(/\\n|\n/g, "
");
+ log.info("vertexText" + vertexText);
+ const node2 = {
+ isNode: isNode2,
+ label: decodeEntities(vertexText).replace(
+ /fa[blrs]?:fa-[\w-]+/g,
+ (s2) => ``
+ ),
+ labelStyle: style3 ? style3.replace("fill:", "color:") : style3
+ };
+ let vertexNode = await addHtmlLabel2(node2);
+ return vertexNode;
+ } else {
+ const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("style", style3.replace("color:", "fill:"));
+ let rows = [];
+ if (typeof vertexText === "string") {
+ rows = vertexText.split(/\\n|\n|
/gi);
+ } else if (Array.isArray(vertexText)) {
+ rows = vertexText;
} else {
- taskType = taskType + " doneText" + secNum;
+ rows = [];
}
- } else {
- if (d.crit) {
- taskType = taskType + " critText" + secNum;
+ for (const row of rows) {
+ const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "0");
+ if (isTitle) {
+ tspan.setAttribute("class", "title-row");
+ } else {
+ tspan.setAttribute("class", "row");
+ }
+ tspan.textContent = row.trim();
+ svgLabel.appendChild(tspan);
}
+ return svgLabel;
}
- if (d.milestone) {
- taskType += " milestoneText";
- }
- if (textWidth > endX - startX) {
- if (endX + textWidth + 1.5 * conf2.leftPadding > w2) {
- return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType;
+ }, "createLabel");
+ createLabel_default2 = createLabel2;
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/roundedRectPath.ts
+ var createRoundedRectPathD;
+ var init_roundedRectPath = __esm({
+ "src/rendering-util/rendering-elements/shapes/roundedRectPath.ts"() {
+ "use strict";
+ createRoundedRectPathD = /* @__PURE__ */ __name((x5, y5, totalWidth, totalHeight, radius2) => [
+ "M",
+ x5 + radius2,
+ y5,
+ // Move to the first point
+ "H",
+ x5 + totalWidth - radius2,
+ // Draw horizontal line to the beginning of the right corner
+ "A",
+ radius2,
+ radius2,
+ 0,
+ 0,
+ 1,
+ x5 + totalWidth,
+ y5 + radius2,
+ // Draw arc to the right top corner
+ "V",
+ y5 + totalHeight - radius2,
+ // Draw vertical line down to the beginning of the right bottom corner
+ "A",
+ radius2,
+ radius2,
+ 0,
+ 0,
+ 1,
+ x5 + totalWidth - radius2,
+ y5 + totalHeight,
+ // Draw arc to the right bottom corner
+ "H",
+ x5 + radius2,
+ // Draw horizontal line to the beginning of the left bottom corner
+ "A",
+ radius2,
+ radius2,
+ 0,
+ 0,
+ 1,
+ x5,
+ y5 + totalHeight - radius2,
+ // Draw arc to the left bottom corner
+ "V",
+ y5 + radius2,
+ // Draw vertical line up to the beginning of the left top corner
+ "A",
+ radius2,
+ radius2,
+ 0,
+ 0,
+ 1,
+ x5 + radius2,
+ y5,
+ // Draw arc to the left top corner
+ "Z"
+ // Close the path
+ ].join(" "), "createRoundedRectPathD");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts
+ var solidStateFill, compileStyles, styles2Map, styles2String, userNodeOverrides;
+ var init_handDrawnShapeStyles = __esm({
+ "src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts"() {
+ "use strict";
+ init_diagramAPI();
+ solidStateFill = /* @__PURE__ */ __name((color2) => {
+ const { handDrawnSeed } = getConfig2();
+ return {
+ fill: color2,
+ hachureAngle: 120,
+ // angle of hachure,
+ hachureGap: 4,
+ fillWeight: 2,
+ roughness: 0.7,
+ stroke: color2,
+ seed: handDrawnSeed
+ };
+ }, "solidStateFill");
+ compileStyles = /* @__PURE__ */ __name((node2) => {
+ const stylesMap = styles2Map([...node2.cssCompiledStyles || [], ...node2.cssStyles || []]);
+ return { stylesMap, stylesArray: [...stylesMap] };
+ }, "compileStyles");
+ styles2Map = /* @__PURE__ */ __name((styles3) => {
+ const styleMap2 = /* @__PURE__ */ new Map();
+ styles3.forEach((style3) => {
+ const [key, value2] = style3.split(":");
+ styleMap2.set(key.trim(), value2?.trim());
+ });
+ return styleMap2;
+ }, "styles2Map");
+ styles2String = /* @__PURE__ */ __name((node2) => {
+ const { stylesArray } = compileStyles(node2);
+ const labelStyles = [];
+ const nodeStyles = [];
+ const borderStyles = [];
+ const backgroundStyles = [];
+ stylesArray.forEach((style3) => {
+ const key = style3[0];
+ if (key === "color" || key === "font-size" || key === "font-family" || key === "font-weight" || key === "font-style" || key === "text-decoration" || key === "text-align" || key === "text-transform" || key === "line-height" || key === "letter-spacing" || key === "word-spacing" || key === "text-shadow" || key === "text-overflow" || key === "white-space" || key === "word-wrap" || key === "word-break" || key === "overflow-wrap" || key === "hyphens") {
+ labelStyles.push(style3.join(":") + " !important");
} else {
- return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth;
+ nodeStyles.push(style3.join(":") + " !important");
+ if (key.includes("stroke")) {
+ borderStyles.push(style3.join(":") + " !important");
+ }
+ if (key === "fill") {
+ backgroundStyles.push(style3.join(":") + " !important");
+ }
}
+ });
+ return {
+ labelStyles: labelStyles.join(";"),
+ nodeStyles: nodeStyles.join(";"),
+ stylesArray,
+ borderStyles,
+ backgroundStyles
+ };
+ }, "styles2String");
+ userNodeOverrides = /* @__PURE__ */ __name((node2, options3) => {
+ const { themeVariables, handDrawnSeed } = getConfig2();
+ const { nodeBorder, mainBkg } = themeVariables;
+ const { stylesMap } = compileStyles(node2);
+ const result = Object.assign(
+ {
+ roughness: 0.7,
+ fill: stylesMap.get("fill") || mainBkg,
+ fillStyle: "hachure",
+ // solid fill
+ fillWeight: 4,
+ stroke: stylesMap.get("stroke") || nodeBorder,
+ seed: handDrawnSeed,
+ strokeWidth: 1.3
+ },
+ options3
+ );
+ return result;
+ }, "userNodeOverrides");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/clusters.js
+ var rect2, noteGroup, roundedWithTitle, divider, squareRect, shapes2, clusterElems, insertCluster, clear5;
+ var init_clusters = __esm({
+ "src/rendering-util/rendering-elements/clusters.js"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ init_logger();
+ init_subGraphTitleMargins();
+ init_src32();
+ init_rough_esm();
+ init_createText();
+ init_intersect_rect2();
+ init_createLabel2();
+ init_roundedRectPath();
+ init_handDrawnShapeStyles();
+ rect2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ log.info("Creating subgraph rect for ", node2.id, node2);
+ const siteConfig2 = getConfig2();
+ const { themeVariables, handDrawnSeed } = siteConfig2;
+ const { clusterBkg, clusterBorder } = themeVariables;
+ const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node2);
+ const shapeSvg = parent4.insert("g").attr("class", "cluster " + node2.cssClasses).attr("id", node2.id).attr("data-look", node2.look);
+ const useHtmlLabels = evaluate(siteConfig2.flowchart.htmlLabels);
+ const labelEl = shapeSvg.insert("g").attr("class", "cluster-label ");
+ const text2 = await createText(labelEl, node2.label, {
+ style: node2.labelStyle,
+ useHtmlLabels,
+ isNode: true
+ });
+ let bbox = text2.getBBox();
+ if (evaluate(siteConfig2.flowchart.htmlLabels)) {
+ const div = text2.children[0];
+ const dv = select_default2(text2);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const width3 = node2.width <= bbox.width + node2.padding ? bbox.width + node2.padding : node2.width;
+ if (node2.width <= bbox.width + node2.padding) {
+ node2.diff = (width3 - node2.width) / 2 - node2.padding;
+ } else {
+ node2.diff = -node2.padding;
+ }
+ const height2 = node2.height;
+ const x5 = node2.x - width3 / 2;
+ const y5 = node2.y - height2 / 2;
+ log.trace("Data ", node2, JSON.stringify(node2));
+ let rect4;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {
+ roughness: 0.7,
+ fill: clusterBkg,
+ // fill: 'red',
+ stroke: clusterBorder,
+ fillWeight: 3,
+ seed: handDrawnSeed
+ });
+ const roughNode = rc.path(createRoundedRectPathD(x5, y5, width3, height2, 0), options3);
+ rect4 = shapeSvg.insert(() => {
+ log.debug("Rough node insert CXC", roughNode);
+ return roughNode;
+ }, ":first-child");
+ rect4.select("path:nth-child(2)").attr("style", borderStyles.join(";"));
+ rect4.select("path").attr("style", backgroundStyles.join(";").replace("fill", "stroke"));
} else {
- return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth;
+ rect4 = shapeSvg.insert("rect", ":first-child");
+ rect4.attr("style", nodeStyles).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2);
}
- });
- const securityLevel2 = getConfig$1().securityLevel;
- if (securityLevel2 === "sandbox") {
- let sandboxElement2;
- sandboxElement2 = select("#i" + id2);
- const doc2 = sandboxElement2.nodes()[0].contentDocument;
- rectangles.filter(function(d) {
- return links2[d.id] !== void 0;
- }).each(function(o) {
- var taskRect = doc2.querySelector("#" + o.id);
- var taskText = doc2.querySelector("#" + o.id + "-text");
- const oldParent = taskRect.parentNode;
- var Link = doc2.createElement("a");
- Link.setAttribute("xlink:href", links2[o.id]);
- Link.setAttribute("target", "_top");
- oldParent.appendChild(Link);
- Link.appendChild(taskRect);
- Link.appendChild(taskText);
+ const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig2);
+ labelEl.attr(
+ "transform",
+ // This puts the label on top of the box instead of inside it
+ `translate(${node2.x - bbox.width / 2}, ${node2.y - node2.height / 2 + subGraphTitleTopMargin})`
+ );
+ if (labelStyles) {
+ const span = labelEl.select("span");
+ if (span) {
+ span.attr("style", labelStyles);
+ }
+ }
+ const rectBox = rect4.node().getBBox();
+ node2.offsetX = 0;
+ node2.width = rectBox.width;
+ node2.height = rectBox.height;
+ node2.offsetY = bbox.height - node2.padding / 2;
+ node2.intersect = function(point8) {
+ return intersect_rect_default2(node2, point8);
+ };
+ return { cluster: shapeSvg, labelBBox: bbox };
+ }, "rect");
+ noteGroup = /* @__PURE__ */ __name((parent4, node2) => {
+ const shapeSvg = parent4.insert("g").attr("class", "note-cluster").attr("id", node2.id);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const padding3 = 0 * node2.padding;
+ const halfPadding = padding3 / 2;
+ rect4.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", node2.x - node2.width / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", node2.width + padding3).attr("height", node2.height + padding3).attr("fill", "none");
+ const rectBox = rect4.node().getBBox();
+ node2.width = rectBox.width;
+ node2.height = rectBox.height;
+ node2.intersect = function(point8) {
+ return intersect_rect_default2(node2, point8);
+ };
+ return { cluster: shapeSvg, labelBBox: { width: 0, height: 0 } };
+ }, "noteGroup");
+ roundedWithTitle = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const siteConfig2 = getConfig2();
+ const { themeVariables, handDrawnSeed } = siteConfig2;
+ const { altBackground, compositeBackground, compositeTitleBackground, nodeBorder } = themeVariables;
+ const shapeSvg = parent4.insert("g").attr("class", node2.cssClasses).attr("id", node2.id).attr("data-id", node2.id).attr("data-look", node2.look);
+ const outerRectG = shapeSvg.insert("g", ":first-child");
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
+ let innerRect = shapeSvg.append("rect");
+ const text2 = label.node().appendChild(await createLabel_default2(node2.label, node2.labelStyle, void 0, true));
+ let bbox = text2.getBBox();
+ if (evaluate(siteConfig2.flowchart.htmlLabels)) {
+ const div = text2.children[0];
+ const dv = select_default2(text2);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const padding3 = 0 * node2.padding;
+ const halfPadding = padding3 / 2;
+ const width3 = (node2.width <= bbox.width + node2.padding ? bbox.width + node2.padding : node2.width) + padding3;
+ if (node2.width <= bbox.width + node2.padding) {
+ node2.diff = (width3 - node2.width) / 2 - node2.padding;
+ } else {
+ node2.diff = -node2.padding;
+ }
+ const height2 = node2.height + padding3;
+ const innerHeight = node2.height + padding3 - bbox.height - 6;
+ const x5 = node2.x - width3 / 2;
+ const y5 = node2.y - height2 / 2;
+ node2.width = width3;
+ const innerY = node2.y - node2.height / 2 - halfPadding + bbox.height + 2;
+ let rect4;
+ if (node2.look === "handDrawn") {
+ const isAlt = node2.cssClasses.includes("statediagram-cluster-alt");
+ const rc = at.svg(shapeSvg);
+ const roughOuterNode = node2.rx || node2.ry ? rc.path(createRoundedRectPathD(x5, y5, width3, height2, 10), {
+ roughness: 0.7,
+ fill: compositeTitleBackground,
+ fillStyle: "solid",
+ stroke: nodeBorder,
+ seed: handDrawnSeed
+ }) : rc.rectangle(x5, y5, width3, height2, { seed: handDrawnSeed });
+ rect4 = shapeSvg.insert(() => roughOuterNode, ":first-child");
+ const roughInnerNode = rc.rectangle(x5, innerY, width3, innerHeight, {
+ fill: isAlt ? altBackground : compositeBackground,
+ fillStyle: isAlt ? "hachure" : "solid",
+ stroke: nodeBorder,
+ seed: handDrawnSeed
+ });
+ rect4 = shapeSvg.insert(() => roughOuterNode, ":first-child");
+ innerRect = shapeSvg.insert(() => roughInnerNode);
+ } else {
+ rect4 = outerRectG.insert("rect", ":first-child");
+ const outerRectClass = "outer";
+ rect4.attr("class", outerRectClass).attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2).attr("data-look", node2.look);
+ innerRect.attr("class", "inner").attr("x", x5).attr("y", innerY).attr("width", width3).attr("height", innerHeight);
+ }
+ label.attr(
+ "transform",
+ `translate(${node2.x - bbox.width / 2}, ${y5 + 1 - (evaluate(siteConfig2.flowchart.htmlLabels) ? 0 : 3)})`
+ );
+ const rectBox = rect4.node().getBBox();
+ node2.height = rectBox.height;
+ node2.offsetX = 0;
+ node2.offsetY = bbox.height - node2.padding / 2;
+ node2.labelBBox = bbox;
+ node2.intersect = function(point8) {
+ return intersect_rect_default2(node2, point8);
+ };
+ return { cluster: shapeSvg, labelBBox: bbox };
+ }, "roundedWithTitle");
+ divider = /* @__PURE__ */ __name((parent4, node2) => {
+ const siteConfig2 = getConfig2();
+ const { themeVariables, handDrawnSeed } = siteConfig2;
+ const { nodeBorder } = themeVariables;
+ const shapeSvg = parent4.insert("g").attr("class", node2.cssClasses).attr("id", node2.id).attr("data-look", node2.look);
+ const outerRectG = shapeSvg.insert("g", ":first-child");
+ const padding3 = 0 * node2.padding;
+ const width3 = node2.width + padding3;
+ node2.diff = -node2.padding;
+ const height2 = node2.height + padding3;
+ const x5 = node2.x - width3 / 2;
+ const y5 = node2.y - height2 / 2;
+ node2.width = width3;
+ let rect4;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const roughOuterNode = rc.rectangle(x5, y5, width3, height2, {
+ fill: "lightgrey",
+ roughness: 0.5,
+ strokeLineDash: [5],
+ stroke: nodeBorder,
+ seed: handDrawnSeed
+ });
+ rect4 = shapeSvg.insert(() => roughOuterNode, ":first-child");
+ } else {
+ rect4 = outerRectG.insert("rect", ":first-child");
+ const outerRectClass = "divider";
+ rect4.attr("class", outerRectClass).attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2).attr("data-look", node2.look);
+ }
+ const rectBox = rect4.node().getBBox();
+ node2.height = rectBox.height;
+ node2.offsetX = 0;
+ node2.offsetY = 0;
+ node2.intersect = function(point8) {
+ return intersect_rect_default2(node2, point8);
+ };
+ return { cluster: shapeSvg, labelBBox: {} };
+ }, "divider");
+ squareRect = rect2;
+ shapes2 = {
+ rect: rect2,
+ squareRect,
+ roundedWithTitle,
+ noteGroup,
+ divider
+ };
+ clusterElems = /* @__PURE__ */ new Map();
+ insertCluster = /* @__PURE__ */ __name(async (elem, node2) => {
+ const shape = node2.shape || "rect";
+ const cluster = await shapes2[shape](elem, node2);
+ clusterElems.set(node2.id, cluster);
+ return cluster;
+ }, "insertCluster");
+ clear5 = /* @__PURE__ */ __name(() => {
+ clusterElems = /* @__PURE__ */ new Map();
+ }, "clear");
+ }
+ });
+
+ // src/utils/lineWithOffset.ts
+ function calculateDeltaAndAngle(point1, point22) {
+ if (point1 === void 0 || point22 === void 0) {
+ return { angle: 0, deltaX: 0, deltaY: 0 };
+ }
+ point1 = pointTransformer(point1);
+ point22 = pointTransformer(point22);
+ const [x1, y1] = [point1.x, point1.y];
+ const [x22, y22] = [point22.x, point22.y];
+ const deltaX = x22 - x1;
+ const deltaY = y22 - y1;
+ return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY };
+ }
+ var markerOffsets, pointTransformer, getLineFunctionsWithOffset;
+ var init_lineWithOffset = __esm({
+ "src/utils/lineWithOffset.ts"() {
+ "use strict";
+ markerOffsets = {
+ aggregation: 18,
+ extension: 18,
+ composition: 18,
+ dependency: 6,
+ lollipop: 13.5,
+ arrow_point: 4
+ };
+ __name(calculateDeltaAndAngle, "calculateDeltaAndAngle");
+ pointTransformer = /* @__PURE__ */ __name((data5) => {
+ if (Array.isArray(data5)) {
+ return { x: data5[0], y: data5[1] };
+ }
+ return data5;
+ }, "pointTransformer");
+ getLineFunctionsWithOffset = /* @__PURE__ */ __name((edge) => {
+ return {
+ x: /* @__PURE__ */ __name(function(d2, i2, data5) {
+ let offset = 0;
+ if (i2 === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {
+ const { angle: angle2, deltaX } = calculateDeltaAndAngle(data5[0], data5[1]);
+ offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle2) * (deltaX >= 0 ? 1 : -1);
+ } else if (i2 === data5.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {
+ const { angle: angle2, deltaX } = calculateDeltaAndAngle(
+ data5[data5.length - 1],
+ data5[data5.length - 2]
+ );
+ offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle2) * (deltaX >= 0 ? 1 : -1);
+ }
+ return pointTransformer(d2).x + offset;
+ }, "x"),
+ y: /* @__PURE__ */ __name(function(d2, i2, data5) {
+ let offset = 0;
+ if (i2 === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {
+ const { angle: angle2, deltaY } = calculateDeltaAndAngle(data5[0], data5[1]);
+ offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle2)) * (deltaY >= 0 ? 1 : -1);
+ } else if (i2 === data5.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {
+ const { angle: angle2, deltaY } = calculateDeltaAndAngle(
+ data5[data5.length - 1],
+ data5[data5.length - 2]
+ );
+ offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle2)) * (deltaY >= 0 ? 1 : -1);
+ }
+ return pointTransformer(d2).y + offset;
+ }, "y")
+ };
+ }, "getLineFunctionsWithOffset");
+ if (void 0) {
+ const { it, expect, describe } = void 0;
+ describe("calculateDeltaAndAngle", () => {
+ it("should calculate the angle and deltas between two points", () => {
+ expect(calculateDeltaAndAngle([0, 0], [0, 1])).toStrictEqual({
+ angle: 1.5707963267948966,
+ deltaX: 0,
+ deltaY: 1
+ });
+ expect(calculateDeltaAndAngle([1, 0], [0, -1])).toStrictEqual({
+ angle: 0.7853981633974483,
+ deltaX: -1,
+ deltaY: -1
+ });
+ expect(calculateDeltaAndAngle({ x: 1, y: 0 }, [0, -1])).toStrictEqual({
+ angle: 0.7853981633974483,
+ deltaX: -1,
+ deltaY: -1
+ });
+ expect(calculateDeltaAndAngle({ x: 1, y: 0 }, { x: 1, y: 0 })).toStrictEqual({
+ angle: NaN,
+ deltaX: 0,
+ deltaY: 0
+ });
+ });
+ it("should calculate the angle and deltas if one point in undefined", () => {
+ expect(calculateDeltaAndAngle(void 0, [0, 1])).toStrictEqual({
+ angle: 0,
+ deltaX: 0,
+ deltaY: 0
+ });
+ expect(calculateDeltaAndAngle([0, 1], void 0)).toStrictEqual({
+ angle: 0,
+ deltaX: 0,
+ deltaY: 0
+ });
+ });
});
}
}
- function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {
- const minTime = tasks2.reduce(
- (min2, { startTime }) => min2 ? Math.min(min2, startTime) : startTime,
- 0
- );
- const maxTime = tasks2.reduce((max2, { endTime }) => max2 ? Math.max(max2, endTime) : endTime, 0);
- const dateFormat2 = diagObj.db.getDateFormat();
- if (!minTime || !maxTime) {
- return;
- }
- const excludeRanges = [];
- let range2 = null;
- let d = dayjs(minTime);
- while (d.valueOf() <= maxTime) {
- if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {
- if (!range2) {
- range2 = {
- start: d,
- end: d
- };
- } else {
- range2.end = d;
+ });
+
+ // src/rendering-util/rendering-elements/edgeMarker.ts
+ var addEdgeMarkers, arrowTypesMap, addEdgeMarker;
+ var init_edgeMarker = __esm({
+ "src/rendering-util/rendering-elements/edgeMarker.ts"() {
+ "use strict";
+ init_logger();
+ addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id27, diagramType) => {
+ if (edge.arrowTypeStart) {
+ addEdgeMarker(svgPath, "start", edge.arrowTypeStart, url, id27, diagramType);
+ }
+ if (edge.arrowTypeEnd) {
+ addEdgeMarker(svgPath, "end", edge.arrowTypeEnd, url, id27, diagramType);
+ }
+ }, "addEdgeMarkers");
+ arrowTypesMap = {
+ arrow_cross: "cross",
+ arrow_point: "point",
+ arrow_barb: "barb",
+ arrow_circle: "circle",
+ aggregation: "aggregation",
+ extension: "extension",
+ composition: "composition",
+ dependency: "dependency",
+ lollipop: "lollipop"
+ };
+ addEdgeMarker = /* @__PURE__ */ __name((svgPath, position5, arrowType, url, id27, diagramType) => {
+ const endMarkerType = arrowTypesMap[arrowType];
+ if (!endMarkerType) {
+ log.warn(`Unknown arrow type: ${arrowType}`);
+ return;
+ }
+ const suffix = position5 === "start" ? "Start" : "End";
+ svgPath.attr(`marker-${position5}`, `url(${url}#${id27}_${diagramType}-${endMarkerType}${suffix})`);
+ }, "addEdgeMarker");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/edges.js
+ function setTerminalWidth(fo, value2) {
+ if (getConfig2().flowchart.htmlLabels && fo) {
+ fo.style.width = value2.length * 9 + "px";
+ fo.style.height = "12px";
+ }
+ }
+ function extractCornerPoints(points) {
+ const cornerPoints = [];
+ const cornerPointPositions = [];
+ for (let i2 = 1; i2 < points.length - 1; i2++) {
+ const prev2 = points[i2 - 1];
+ const curr = points[i2];
+ const next3 = points[i2 + 1];
+ if (prev2.x === curr.x && curr.y === next3.y && Math.abs(curr.x - next3.x) > 5 && Math.abs(curr.y - prev2.y) > 5) {
+ cornerPoints.push(curr);
+ cornerPointPositions.push(i2);
+ } else if (prev2.y === curr.y && curr.x === next3.x && Math.abs(curr.x - prev2.x) > 5 && Math.abs(curr.y - next3.y) > 5) {
+ cornerPoints.push(curr);
+ cornerPointPositions.push(i2);
+ }
+ }
+ return { cornerPoints, cornerPointPositions };
+ }
+ var edgeLabels, terminalLabels, clear6, getLabelStyles, insertEdgeLabel, positionEdgeLabel, outsideNode, intersection, cutPathAtIntersect, findAdjacentPoint, fixCorners, insertEdge;
+ var init_edges = __esm({
+ "src/rendering-util/rendering-elements/edges.js"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ init_logger();
+ init_createText();
+ init_utils2();
+ init_lineWithOffset();
+ init_subGraphTitleMargins();
+ init_src32();
+ init_rough_esm();
+ init_createLabel2();
+ init_edgeMarker();
+ edgeLabels = /* @__PURE__ */ new Map();
+ terminalLabels = /* @__PURE__ */ new Map();
+ clear6 = /* @__PURE__ */ __name(() => {
+ edgeLabels.clear();
+ terminalLabels.clear();
+ }, "clear");
+ getLabelStyles = /* @__PURE__ */ __name((styleArray) => {
+ let styles3 = styleArray ? styleArray.reduce((acc, style3) => acc + ";" + style3, "") : "";
+ return styles3;
+ }, "getLabelStyles");
+ insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {
+ let useHtmlLabels = evaluate(getConfig2().flowchart.htmlLabels);
+ const labelElement = await createText(elem, edge.label, {
+ style: getLabelStyles(edge.labelStyle),
+ useHtmlLabels,
+ addSvgBackground: true,
+ isNode: false
+ });
+ log.info("abc82", edge, edge.labelType);
+ const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
+ const label = edgeLabel.insert("g").attr("class", "label");
+ label.node().appendChild(labelElement);
+ let bbox = labelElement.getBBox();
+ if (useHtmlLabels) {
+ const div = labelElement.children[0];
+ const dv = select_default2(labelElement);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ edgeLabels.set(edge.id, edgeLabel);
+ edge.width = bbox.width;
+ edge.height = bbox.height;
+ let fo;
+ if (edge.startLabelLeft) {
+ const startLabelElement = await createLabel_default2(
+ edge.startLabelLeft,
+ getLabelStyles(edge.labelStyle)
+ );
+ const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = startEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner2.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels.get(edge.id)) {
+ terminalLabels.set(edge.id, {});
+ }
+ terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;
+ setTerminalWidth(fo, edge.startLabelLeft);
+ }
+ if (edge.startLabelRight) {
+ const startLabelElement = await createLabel_default2(
+ edge.startLabelRight,
+ getLabelStyles(edge.labelStyle)
+ );
+ const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = startEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = startEdgeLabelRight.node().appendChild(startLabelElement);
+ inner2.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels.get(edge.id)) {
+ terminalLabels.set(edge.id, {});
+ }
+ terminalLabels.get(edge.id).startRight = startEdgeLabelRight;
+ setTerminalWidth(fo, edge.startLabelRight);
+ }
+ if (edge.endLabelLeft) {
+ const endLabelElement = await createLabel_default2(edge.endLabelLeft, getLabelStyles(edge.labelStyle));
+ const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = endEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner2.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelLeft.node().appendChild(endLabelElement);
+ if (!terminalLabels.get(edge.id)) {
+ terminalLabels.set(edge.id, {});
+ }
+ terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;
+ setTerminalWidth(fo, edge.endLabelLeft);
+ }
+ if (edge.endLabelRight) {
+ const endLabelElement = await createLabel_default2(edge.endLabelRight, getLabelStyles(edge.labelStyle));
+ const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = endEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = inner2.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelRight.node().appendChild(endLabelElement);
+ if (!terminalLabels.get(edge.id)) {
+ terminalLabels.set(edge.id, {});
+ }
+ terminalLabels.get(edge.id).endRight = endEdgeLabelRight;
+ setTerminalWidth(fo, edge.endLabelRight);
+ }
+ return labelElement;
+ }, "insertEdgeLabel");
+ __name(setTerminalWidth, "setTerminalWidth");
+ positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {
+ log.debug("Moving label abc88 ", edge.id, edge.label, edgeLabels.get(edge.id), paths);
+ let path4 = paths.updatedPath ? paths.updatedPath : paths.originalPath;
+ const siteConfig2 = getConfig2();
+ const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig2);
+ if (edge.label) {
+ const el = edgeLabels.get(edge.id);
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcLabelPosition(path4);
+ log.debug(
+ "Moving label " + edge.label + " from (",
+ x5,
+ ",",
+ y5,
+ ") to (",
+ pos.x,
+ ",",
+ pos.y,
+ ") abc88"
+ );
+ if (paths.updatedPath) {
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ }
+ el.attr("transform", `translate(${x5}, ${y5 + subGraphTitleTotalMargin / 2})`);
+ }
+ if (edge.startLabelLeft) {
+ const el = terminalLabels.get(edge.id).startLeft;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path4);
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ if (edge.startLabelRight) {
+ const el = terminalLabels.get(edge.id).startRight;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(
+ edge.arrowTypeStart ? 10 : 0,
+ "start_right",
+ path4
+ );
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ if (edge.endLabelLeft) {
+ const el = terminalLabels.get(edge.id).endLeft;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path4);
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ if (edge.endLabelRight) {
+ const el = terminalLabels.get(edge.id).endRight;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path4);
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ }, "positionEdgeLabel");
+ outsideNode = /* @__PURE__ */ __name((node2, point8) => {
+ const x5 = node2.x;
+ const y5 = node2.y;
+ const dx = Math.abs(point8.x - x5);
+ const dy = Math.abs(point8.y - y5);
+ const w3 = node2.width / 2;
+ const h2 = node2.height / 2;
+ return dx >= w3 || dy >= h2;
+ }, "outsideNode");
+ intersection = /* @__PURE__ */ __name((node2, outsidePoint, insidePoint) => {
+ log.debug(`intersection calc abc89:
+ outsidePoint: ${JSON.stringify(outsidePoint)}
+ insidePoint : ${JSON.stringify(insidePoint)}
+ node : x:${node2.x} y:${node2.y} w:${node2.width} h:${node2.height}`);
+ const x5 = node2.x;
+ const y5 = node2.y;
+ const dx = Math.abs(x5 - insidePoint.x);
+ const w3 = node2.width / 2;
+ let r2 = insidePoint.x < outsidePoint.x ? w3 - dx : w3 + dx;
+ const h2 = node2.height / 2;
+ const Q2 = Math.abs(outsidePoint.y - insidePoint.y);
+ const R2 = Math.abs(outsidePoint.x - insidePoint.x);
+ if (Math.abs(y5 - outsidePoint.y) * w3 > Math.abs(x5 - outsidePoint.x) * h2) {
+ let q2 = insidePoint.y < outsidePoint.y ? outsidePoint.y - h2 - y5 : y5 - h2 - outsidePoint.y;
+ r2 = R2 * q2 / Q2;
+ const res = {
+ x: insidePoint.x < outsidePoint.x ? insidePoint.x + r2 : insidePoint.x - R2 + r2,
+ y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q2 - q2 : insidePoint.y - Q2 + q2
+ };
+ if (r2 === 0) {
+ res.x = outsidePoint.x;
+ res.y = outsidePoint.y;
+ }
+ if (R2 === 0) {
+ res.x = outsidePoint.x;
}
+ if (Q2 === 0) {
+ res.y = outsidePoint.y;
+ }
+ log.debug(`abc89 top/bottom calc, Q ${Q2}, q ${q2}, R ${R2}, r ${r2}`, res);
+ return res;
} else {
- if (range2) {
- excludeRanges.push(range2);
- range2 = null;
- }
- }
- d = d.add(1, "d");
- }
- const rectangles = svg2.append("g").selectAll("rect").data(excludeRanges).enter();
- rectangles.append("rect").attr("id", function(d2) {
- return "exclude-" + d2.start.format("YYYY-MM-DD");
- }).attr("x", function(d2) {
- return timeScale(d2.start) + theSidePad;
- }).attr("y", conf2.gridLineStartPadding).attr("width", function(d2) {
- const renderEnd = d2.end.add(1, "day");
- return timeScale(renderEnd) - timeScale(d2.start);
- }).attr("height", h2 - theTopPad - conf2.gridLineStartPadding).attr("transform-origin", function(d2, i2) {
- return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i2 * theGap + 0.5 * h2).toString() + "px";
- }).attr("class", "exclude-range");
- }
- function makeGrid(theSidePad, theTopPad, w2, h2) {
- let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf2.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf2.axisFormat || "%Y-%m-%d"));
- const reTickInterval = /^([1-9]\d*)(minute|hour|day|week|month)$/;
- const resultTickInterval = reTickInterval.exec(
- diagObj.db.getTickInterval() || conf2.tickInterval
- );
- if (resultTickInterval !== null) {
- const every = resultTickInterval[1];
- const interval2 = resultTickInterval[2];
- switch (interval2) {
- case "minute":
- bottomXAxis.ticks(timeMinute.every(every));
+ if (insidePoint.x < outsidePoint.x) {
+ r2 = outsidePoint.x - w3 - x5;
+ } else {
+ r2 = x5 - w3 - outsidePoint.x;
+ }
+ let q2 = Q2 * r2 / R2;
+ let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R2 - r2 : insidePoint.x - R2 + r2;
+ let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q2 : insidePoint.y - q2;
+ log.debug(`sides calc abc89, Q ${Q2}, q ${q2}, R ${R2}, r ${r2}`, { _x, _y });
+ if (r2 === 0) {
+ _x = outsidePoint.x;
+ _y = outsidePoint.y;
+ }
+ if (R2 === 0) {
+ _x = outsidePoint.x;
+ }
+ if (Q2 === 0) {
+ _y = outsidePoint.y;
+ }
+ return { x: _x, y: _y };
+ }
+ }, "intersection");
+ cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {
+ log.warn("abc88 cutPathAtIntersect", _points, boundaryNode);
+ let points = [];
+ let lastPointOutside = _points[0];
+ let isInside = false;
+ _points.forEach((point8) => {
+ log.info("abc88 checking point", point8, boundaryNode);
+ if (!outsideNode(boundaryNode, point8) && !isInside) {
+ const inter = intersection(boundaryNode, lastPointOutside, point8);
+ log.debug("abc88 inside", point8, lastPointOutside, inter);
+ log.debug("abc88 intersection", inter, boundaryNode);
+ let pointPresent = false;
+ points.forEach((p3) => {
+ pointPresent = pointPresent || p3.x === inter.x && p3.y === inter.y;
+ });
+ if (!points.some((e3) => e3.x === inter.x && e3.y === inter.y)) {
+ points.push(inter);
+ } else {
+ log.warn("abc88 no intersect", inter, points);
+ }
+ isInside = true;
+ } else {
+ log.warn("abc88 outside", point8, lastPointOutside);
+ lastPointOutside = point8;
+ if (!isInside) {
+ points.push(point8);
+ }
+ }
+ });
+ log.debug("returning points", points);
+ return points;
+ }, "cutPathAtIntersect");
+ __name(extractCornerPoints, "extractCornerPoints");
+ findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance2) {
+ const xDiff = pointB.x - pointA.x;
+ const yDiff = pointB.y - pointA.y;
+ const length2 = Math.sqrt(xDiff * xDiff + yDiff * yDiff);
+ const ratio = distance2 / length2;
+ return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };
+ }, "findAdjacentPoint");
+ fixCorners = /* @__PURE__ */ __name(function(lineData) {
+ const { cornerPointPositions } = extractCornerPoints(lineData);
+ const newLineData = [];
+ for (let i2 = 0; i2 < lineData.length; i2++) {
+ if (cornerPointPositions.includes(i2)) {
+ const prevPoint = lineData[i2 - 1];
+ const nextPoint = lineData[i2 + 1];
+ const cornerPoint = lineData[i2];
+ const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);
+ const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);
+ const xDiff = newNextPoint.x - newPrevPoint.x;
+ const yDiff = newNextPoint.y - newPrevPoint.y;
+ newLineData.push(newPrevPoint);
+ const a2 = Math.sqrt(2) * 2;
+ let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };
+ if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {
+ log.debug(
+ "Corner point fixing",
+ Math.abs(nextPoint.x - prevPoint.x),
+ Math.abs(nextPoint.y - prevPoint.y)
+ );
+ const r2 = 5;
+ if (cornerPoint.x === newPrevPoint.x) {
+ newCornerPoint = {
+ x: xDiff < 0 ? newPrevPoint.x - r2 + a2 : newPrevPoint.x + r2 - a2,
+ y: yDiff < 0 ? newPrevPoint.y - a2 : newPrevPoint.y + a2
+ };
+ } else {
+ newCornerPoint = {
+ x: xDiff < 0 ? newPrevPoint.x - a2 : newPrevPoint.x + a2,
+ y: yDiff < 0 ? newPrevPoint.y - r2 + a2 : newPrevPoint.y + r2 - a2
+ };
+ }
+ } else {
+ log.debug(
+ "Corner point skipping fixing",
+ Math.abs(nextPoint.x - prevPoint.x),
+ Math.abs(nextPoint.y - prevPoint.y)
+ );
+ }
+ newLineData.push(newCornerPoint, newNextPoint);
+ } else {
+ newLineData.push(lineData[i2]);
+ }
+ }
+ return newLineData;
+ }, "fixCorners");
+ insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb3, diagramType, startNode, endNode, id27) {
+ const { handDrawnSeed } = getConfig2();
+ let points = edge.points;
+ let pointsHasChanged = false;
+ const tail = startNode;
+ var head2 = endNode;
+ if (head2.intersect && tail.intersect) {
+ points = points.slice(1, edge.points.length - 1);
+ points.unshift(tail.intersect(points[0]));
+ log.debug(
+ "Last point APA12",
+ edge.start,
+ "-->",
+ edge.end,
+ points[points.length - 1],
+ head2,
+ head2.intersect(points[points.length - 1])
+ );
+ points.push(head2.intersect(points[points.length - 1]));
+ }
+ if (edge.toCluster) {
+ log.info("to cluster abc88", clusterDb3.get(edge.toCluster));
+ points = cutPathAtIntersect(edge.points, clusterDb3.get(edge.toCluster).node);
+ pointsHasChanged = true;
+ }
+ if (edge.fromCluster) {
+ log.debug(
+ "from cluster abc88",
+ clusterDb3.get(edge.fromCluster),
+ JSON.stringify(points, null, 2)
+ );
+ points = cutPathAtIntersect(points.reverse(), clusterDb3.get(edge.fromCluster).node).reverse();
+ pointsHasChanged = true;
+ }
+ let lineData = points.filter((p3) => !Number.isNaN(p3.y));
+ lineData = fixCorners(lineData);
+ let lastPoint2 = lineData[lineData.length - 1];
+ if (lineData.length > 1) {
+ lastPoint2 = lineData[lineData.length - 1];
+ const secondLastPoint = lineData[lineData.length - 2];
+ const diffX = (lastPoint2.x - secondLastPoint.x) / 2;
+ const diffY = (lastPoint2.y - secondLastPoint.y) / 2;
+ const midPoint = { x: secondLastPoint.x + diffX, y: secondLastPoint.y + diffY };
+ lineData.splice(-1, 0, midPoint);
+ }
+ let curve = basis_default2;
+ if (edge.curve) {
+ curve = edge.curve;
+ }
+ const { x: x5, y: y5 } = getLineFunctionsWithOffset(edge);
+ const lineFunction = line_default().x(x5).y(y5).curve(curve);
+ let strokeClasses;
+ switch (edge.thickness) {
+ case "normal":
+ strokeClasses = "edge-thickness-normal";
break;
- case "hour":
- bottomXAxis.ticks(timeHour.every(every));
+ case "thick":
+ strokeClasses = "edge-thickness-thick";
break;
- case "day":
- bottomXAxis.ticks(timeDay.every(every));
+ case "invisible":
+ strokeClasses = "edge-thickness-invisible";
break;
- case "week":
- bottomXAxis.ticks(sunday.every(every));
+ default:
+ strokeClasses = "edge-thickness-normal";
+ }
+ switch (edge.pattern) {
+ case "solid":
+ strokeClasses += " edge-pattern-solid";
+ break;
+ case "dotted":
+ strokeClasses += " edge-pattern-dotted";
break;
- case "month":
- bottomXAxis.ticks(timeMonth.every(every));
+ case "dashed":
+ strokeClasses += " edge-pattern-dashed";
break;
+ default:
+ strokeClasses += " edge-pattern-solid";
+ }
+ let svgPath;
+ let linePath = lineFunction(lineData);
+ const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];
+ if (edge.look === "handDrawn") {
+ const rc = at.svg(elem);
+ Object.assign([], lineData);
+ const svgPathNode = rc.path(linePath, {
+ roughness: 0.3,
+ seed: handDrawnSeed
+ });
+ strokeClasses += " transition";
+ svgPath = select_default2(svgPathNode).select("path").attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edgeStyles ? edgeStyles.reduce((acc, style3) => acc + ";" + style3, "") : "");
+ let d2 = svgPath.attr("d");
+ svgPath.attr("d", d2);
+ elem.node().appendChild(svgPath.node());
+ } else {
+ svgPath = elem.append("path").attr("d", linePath).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edgeStyles ? edgeStyles.reduce((acc, style3) => acc + ";" + style3, "") : "");
}
- }
- svg2.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em");
- if (diagObj.db.topAxisEnabled() || conf2.topAxis) {
- let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf2.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf2.axisFormat || "%Y-%m-%d"));
- if (resultTickInterval !== null) {
- const every = resultTickInterval[1];
- const interval2 = resultTickInterval[2];
- switch (interval2) {
- case "minute":
- topXAxis.ticks(timeMinute.every(every));
- break;
- case "hour":
- topXAxis.ticks(timeHour.every(every));
- break;
- case "day":
- topXAxis.ticks(timeDay.every(every));
- break;
- case "week":
- topXAxis.ticks(sunday.every(every));
- break;
- case "month":
- topXAxis.ticks(timeMonth.every(every));
- break;
- }
+ let url = "";
+ if (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}
- svg2.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
- }
- }
- function vertLabels(theGap, theTopPad) {
- let prevGap = 0;
- const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);
- svg2.append("g").selectAll("text").data(numOccurances).enter().append(function(d) {
- const rows = d[0].split(common$1.lineBreakRegex);
- const dy = -(rows.length - 1) / 2;
- const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
- svgLabel.setAttribute("dy", dy + "em");
- for (const [j, row] of rows.entries()) {
- const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
- tspan.setAttribute("alignment-baseline", "central");
- tspan.setAttribute("x", "10");
- if (j > 0) {
- tspan.setAttribute("dy", "1em");
- }
- tspan.textContent = row;
- svgLabel.appendChild(tspan);
+ log.info("arrowTypeStart", edge.arrowTypeStart);
+ log.info("arrowTypeEnd", edge.arrowTypeEnd);
+ addEdgeMarkers(svgPath, edge, url, id27, diagramType);
+ let paths = {};
+ if (pointsHasChanged) {
+ paths.updatedPath = points;
}
- return svgLabel;
- }).attr("x", 10).attr("y", function(d, i2) {
- if (i2 > 0) {
- for (let j = 0; j < i2; j++) {
- prevGap += numOccurances[i2 - 1][1];
- return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
- }
+ paths.originalPath = edge.points;
+ return paths;
+ }, "insertEdge");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/markers.js
+ var insertMarkers, extension, composition, aggregation, dependency, lollipop, point6, circle2, cross, barb, markers, markers_default;
+ var init_markers = __esm({
+ "src/rendering-util/rendering-elements/markers.js"() {
+ "use strict";
+ init_logger();
+ insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type3, id27) => {
+ markerArray.forEach((markerName) => {
+ markers[markerName](elem, type3, id27);
+ });
+ }, "insertMarkers");
+ extension = /* @__PURE__ */ __name((elem, type3, id27) => {
+ log.trace("Making markers for ", id27);
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-extensionStart").attr("class", "marker extension " + type3).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-extensionEnd").attr("class", "marker extension " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
+ }, "extension");
+ composition = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-compositionStart").attr("class", "marker composition " + type3).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-compositionEnd").attr("class", "marker composition " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ }, "composition");
+ aggregation = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-aggregationStart").attr("class", "marker aggregation " + type3).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-aggregationEnd").attr("class", "marker aggregation " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ }, "aggregation");
+ dependency = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-dependencyStart").attr("class", "marker dependency " + type3).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-dependencyEnd").attr("class", "marker dependency " + type3).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
+ }, "dependency");
+ lollipop = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-lollipopStart").attr("class", "marker lollipop " + type3).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-lollipopEnd").attr("class", "marker lollipop " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
+ }, "lollipop");
+ point6 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-pointEnd").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", 5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-pointStart").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ }, "point");
+ circle2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-circleEnd").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-circleStart").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ }, "circle");
+ cross = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-crossEnd").attr("class", "marker cross " + type3).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-crossStart").attr("class", "marker cross " + type3).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+ }, "cross");
+ barb = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "userSpaceOnUse").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
+ }, "barb");
+ markers = {
+ extension,
+ composition,
+ aggregation,
+ dependency,
+ lollipop,
+ point: point6,
+ circle: circle2,
+ cross,
+ barb
+ };
+ markers_default = insertMarkers;
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/util.js
+ var labelHelper2, updateNodeBounds2, getNodeClasses;
+ var init_util2 = __esm({
+ "src/rendering-util/rendering-elements/shapes/util.js"() {
+ "use strict";
+ init_createText();
+ init_diagramAPI();
+ init_src32();
+ init_common();
+ init_utils2();
+ labelHelper2 = /* @__PURE__ */ __name(async (parent4, node2, _classes) => {
+ let cssClasses;
+ const useHtmlLabels = node2.useHtmlLabels || evaluate(getConfig2().flowchart.htmlLabels);
+ if (!_classes) {
+ cssClasses = "node default";
} else {
- return d[1] * theGap / 2 + theTopPad;
+ cssClasses = _classes;
}
- }).attr("font-size", conf2.sectionFontSize).attr("class", function(d) {
- for (const [i2, category] of categories.entries()) {
- if (d[0] === category) {
- return "sectionTitle sectionTitle" + i2 % conf2.numberSectionStyles;
+ const shapeSvg = parent4.insert("g").attr("class", cssClasses).attr("id", node2.domId || node2.id);
+ const labelEl = shapeSvg.insert("g").attr("class", "label").attr("style", node2.labelStyle);
+ let label;
+ if (node2.label === void 0) {
+ label = "";
+ } else {
+ label = typeof node2.label === "string" ? node2.label : node2.label[0];
+ }
+ let text2;
+ text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {
+ useHtmlLabels,
+ width: node2.width || getConfig2().flowchart.wrappingWidth,
+ cssClasses: "markdown-node-label",
+ style: node2.labelStyle
+ });
+ let bbox = text2.getBBox();
+ const halfPadding = node2.padding / 2;
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
+ const div = text2.children[0];
+ const dv = select_default2(text2);
+ const images = div.getElementsByTagName("img");
+ if (images) {
+ const noImgText = label.replace(/]*>/g, "").trim() === "";
+ await Promise.all(
+ [...images].map(
+ (img) => new Promise((res) => {
+ function setupImage() {
+ img.style.display = "flex";
+ img.style.flexDirection = "column";
+ if (noImgText) {
+ const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;
+ const enlargingFactor = 5;
+ const width3 = parseInt(bodyFontSize, 10) * enlargingFactor + "px";
+ img.style.minWidth = width3;
+ img.style.maxWidth = width3;
+ } else {
+ img.style.width = "100%";
+ }
+ res(img);
+ }
+ __name(setupImage, "setupImage");
+ setTimeout(() => {
+ if (img.complete) {
+ setupImage();
+ }
+ });
+ img.addEventListener("error", setupImage);
+ img.addEventListener("load", setupImage);
+ })
+ )
+ );
}
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
}
- return "sectionTitle";
- });
- }
- function drawToday(theSidePad, theTopPad, w2, h2) {
- const todayMarker2 = diagObj.db.getTodayMarker();
- if (todayMarker2 === "off") {
- return;
- }
- const todayG = svg2.append("g").attr("class", "today");
- const today = /* @__PURE__ */ new Date();
- const todayLine = todayG.append("line");
- todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf2.titleTopMargin).attr("y2", h2 - conf2.titleTopMargin).attr("class", "today");
- if (todayMarker2 !== "") {
- todayLine.attr("style", todayMarker2.replace(/,/g, ";"));
- }
- }
- function checkUnique(arr) {
- const hash = {};
- const result = [];
- for (let i2 = 0, l = arr.length; i2 < l; ++i2) {
- if (!Object.prototype.hasOwnProperty.call(hash, arr[i2])) {
- hash[arr[i2]] = true;
- result.push(arr[i2]);
+ if (useHtmlLabels) {
+ labelEl.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ } else {
+ labelEl.attr("transform", "translate(0, " + -bbox.height / 2 + ")");
}
- }
- return result;
+ if (node2.centerLabel) {
+ labelEl.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ }
+ labelEl.insert("rect", ":first-child");
+ return { shapeSvg, bbox, halfPadding, label: labelEl };
+ }, "labelHelper");
+ updateNodeBounds2 = /* @__PURE__ */ __name((node2, element3) => {
+ const bbox = element3.node().getBBox();
+ node2.width = bbox.width;
+ node2.height = bbox.height;
+ }, "updateNodeBounds");
+ getNodeClasses = /* @__PURE__ */ __name((node2, extra) => (node2.look === "handDrawn" ? "rough-node" : "node") + " " + node2.cssClasses + " " + (extra || ""), "getNodeClasses");
}
- };
- const ganttRenderer = {
- setConf: setConf$5,
- draw: draw$c
- };
- const getStyles$a = (options2) => `
- .mermaid-main-font {
- font-family: "trebuchet ms", verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
- }
- .exclude-range {
- fill: ${options2.excludeBkgColor};
- }
-
- .section {
- stroke: none;
- opacity: 0.2;
- }
-
- .section0 {
- fill: ${options2.sectionBkgColor};
- }
+ });
- .section2 {
- fill: ${options2.sectionBkgColor2};
+ // src/rendering-util/rendering-elements/intersect/intersect-node.js
+ function intersectNode2(node2, point8) {
+ return node2.intersect(point8);
}
+ var intersect_node_default2;
+ var init_intersect_node2 = __esm({
+ "src/rendering-util/rendering-elements/intersect/intersect-node.js"() {
+ "use strict";
+ __name(intersectNode2, "intersectNode");
+ intersect_node_default2 = intersectNode2;
+ }
+ });
- .section1,
- .section3 {
- fill: ${options2.altSectionBkgColor};
- opacity: 0.2;
+ // src/rendering-util/rendering-elements/intersect/intersect-ellipse.js
+ function intersectEllipse2(node2, rx, ry, point8) {
+ var cx = node2.x;
+ var cy = node2.y;
+ var px = cx - point8.x;
+ var py = cy - point8.y;
+ var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
+ var dx = Math.abs(rx * ry * px / det);
+ if (point8.x < cx) {
+ dx = -dx;
+ }
+ var dy = Math.abs(rx * ry * py / det);
+ if (point8.y < cy) {
+ dy = -dy;
+ }
+ return { x: cx + dx, y: cy + dy };
}
+ var intersect_ellipse_default2;
+ var init_intersect_ellipse2 = __esm({
+ "src/rendering-util/rendering-elements/intersect/intersect-ellipse.js"() {
+ "use strict";
+ __name(intersectEllipse2, "intersectEllipse");
+ intersect_ellipse_default2 = intersectEllipse2;
+ }
+ });
- .sectionTitle0 {
- fill: ${options2.titleColor};
- }
+ // src/rendering-util/rendering-elements/intersect/intersect-circle.js
+ function intersectCircle2(node2, rx, point8) {
+ return intersect_ellipse_default2(node2, rx, rx, point8);
+ }
+ var intersect_circle_default2;
+ var init_intersect_circle2 = __esm({
+ "src/rendering-util/rendering-elements/intersect/intersect-circle.js"() {
+ "use strict";
+ init_intersect_ellipse2();
+ __name(intersectCircle2, "intersectCircle");
+ intersect_circle_default2 = intersectCircle2;
+ }
+ });
- .sectionTitle1 {
- fill: ${options2.titleColor};
+ // src/rendering-util/rendering-elements/intersect/intersect-line.js
+ function intersectLine2(p1, p22, q1, q2) {
+ var a1, a2, b1, b2, c1, c22;
+ var r1, r2, r3, r4;
+ var denom, offset, num;
+ var x5, y5;
+ a1 = p22.y - p1.y;
+ b1 = p1.x - p22.x;
+ c1 = p22.x * p1.y - p1.x * p22.y;
+ r3 = a1 * q1.x + b1 * q1.y + c1;
+ r4 = a1 * q2.x + b1 * q2.y + c1;
+ if (r3 !== 0 && r4 !== 0 && sameSign2(r3, r4)) {
+ return;
+ }
+ a2 = q2.y - q1.y;
+ b2 = q1.x - q2.x;
+ c22 = q2.x * q1.y - q1.x * q2.y;
+ r1 = a2 * p1.x + b2 * p1.y + c22;
+ r2 = a2 * p22.x + b2 * p22.y + c22;
+ if (r1 !== 0 && r2 !== 0 && sameSign2(r1, r2)) {
+ return;
+ }
+ denom = a1 * b2 - a2 * b1;
+ if (denom === 0) {
+ return;
+ }
+ offset = Math.abs(denom / 2);
+ num = b1 * c22 - b2 * c1;
+ x5 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ num = a2 * c1 - a1 * c22;
+ y5 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
+ return { x: x5, y: y5 };
}
-
- .sectionTitle2 {
- fill: ${options2.titleColor};
+ function sameSign2(r1, r2) {
+ return r1 * r2 > 0;
}
+ var intersect_line_default2;
+ var init_intersect_line2 = __esm({
+ "src/rendering-util/rendering-elements/intersect/intersect-line.js"() {
+ "use strict";
+ __name(intersectLine2, "intersectLine");
+ __name(sameSign2, "sameSign");
+ intersect_line_default2 = intersectLine2;
+ }
+ });
- .sectionTitle3 {
- fill: ${options2.titleColor};
+ // src/rendering-util/rendering-elements/intersect/intersect-polygon.js
+ function intersectPolygon2(node2, polyPoints, point8) {
+ let x1 = node2.x;
+ let y1 = node2.y;
+ let intersections = [];
+ let minX = Number.POSITIVE_INFINITY;
+ let minY = Number.POSITIVE_INFINITY;
+ if (typeof polyPoints.forEach === "function") {
+ polyPoints.forEach(function(entry) {
+ minX = Math.min(minX, entry.x);
+ minY = Math.min(minY, entry.y);
+ });
+ } else {
+ minX = Math.min(minX, polyPoints.x);
+ minY = Math.min(minY, polyPoints.y);
+ }
+ let left3 = x1 - node2.width / 2 - minX;
+ let top2 = y1 - node2.height / 2 - minY;
+ for (let i2 = 0; i2 < polyPoints.length; i2++) {
+ let p1 = polyPoints[i2];
+ let p22 = polyPoints[i2 < polyPoints.length - 1 ? i2 + 1 : 0];
+ let intersect3 = intersect_line_default2(
+ node2,
+ point8,
+ { x: left3 + p1.x, y: top2 + p1.y },
+ { x: left3 + p22.x, y: top2 + p22.y }
+ );
+ if (intersect3) {
+ intersections.push(intersect3);
+ }
+ }
+ if (!intersections.length) {
+ return node2;
+ }
+ if (intersections.length > 1) {
+ intersections.sort(function(p3, q2) {
+ let pdx = p3.x - point8.x;
+ let pdy = p3.y - point8.y;
+ let distp = Math.sqrt(pdx * pdx + pdy * pdy);
+ let qdx = q2.x - point8.x;
+ let qdy = q2.y - point8.y;
+ let distq = Math.sqrt(qdx * qdx + qdy * qdy);
+ return distp < distq ? -1 : distp === distq ? 0 : 1;
+ });
+ }
+ return intersections[0];
}
+ var intersect_polygon_default2;
+ var init_intersect_polygon2 = __esm({
+ "src/rendering-util/rendering-elements/intersect/intersect-polygon.js"() {
+ "use strict";
+ init_intersect_line2();
+ __name(intersectPolygon2, "intersectPolygon");
+ intersect_polygon_default2 = intersectPolygon2;
+ }
+ });
- .sectionTitle {
- text-anchor: start;
- // font-size: ${options2.ganttFontSize};
- // text-height: 14px;
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
+ // src/rendering-util/rendering-elements/intersect/index.js
+ var intersect_default2;
+ var init_intersect2 = __esm({
+ "src/rendering-util/rendering-elements/intersect/index.js"() {
+ "use strict";
+ init_intersect_node2();
+ init_intersect_circle2();
+ init_intersect_ellipse2();
+ init_intersect_polygon2();
+ init_intersect_rect2();
+ intersect_default2 = {
+ node: intersect_node_default2,
+ circle: intersect_circle_default2,
+ ellipse: intersect_ellipse_default2,
+ polygon: intersect_polygon_default2,
+ rect: intersect_rect_default2
+ };
+ }
+ });
- }
+ // src/rendering-util/rendering-elements/shapes/drawRect.ts
+ var drawRect3;
+ var init_drawRect = __esm({
+ "src/rendering-util/rendering-elements/shapes/drawRect.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_roundedRectPath();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ drawRect3 = /* @__PURE__ */ __name(async (parent4, node2, options3) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const totalWidth = Math.max(bbox.width + options3.labelPaddingX * 2, node2?.width || 0);
+ const totalHeight = Math.max(bbox.height + options3.labelPaddingY * 2, node2?.height || 0);
+ const x5 = -totalWidth / 2;
+ const y5 = -totalHeight / 2;
+ let rect4;
+ let { rx, ry } = node2;
+ const { cssStyles } = node2;
+ if (options3?.rx && options3.ry) {
+ rx = options3.rx;
+ ry = options3.ry;
+ }
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options4 = userNodeOverrides(node2, {});
+ const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x5, y5, totalWidth, totalHeight, rx || 0), options4) : rc.rectangle(x5, y5, totalWidth, totalHeight, options4);
+ rect4 = shapeSvg.insert(() => roughNode, ":first-child");
+ rect4.attr("class", "basic label-container").attr("style", cssStyles);
+ } else {
+ rect4 = shapeSvg.insert("rect", ":first-child");
+ rect4.attr("class", "basic label-container").attr("style", nodeStyles).attr("rx", rx).attr("data-id", "abc").attr("data-et", "node").attr("ry", ry).attr("x", x5).attr("y", y5).attr("width", totalWidth).attr("height", totalHeight);
+ }
+ updateNodeBounds2(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default2.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "drawRect");
+ }
+ });
+ // src/rendering-util/rendering-elements/shapes/state.ts
+ var state;
+ var init_state = __esm({
+ "src/rendering-util/rendering-elements/shapes/state.ts"() {
+ "use strict";
+ init_drawRect();
+ state = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const options3 = {
+ rx: 5,
+ ry: 5,
+ classes: "flowchart-node"
+ };
+ return drawRect3(parent4, node2, options3);
+ }, "state");
+ }
+ });
- /* Grid and axis */
+ // src/rendering-util/rendering-elements/shapes/roundedRect.ts
+ var roundedRect;
+ var init_roundedRect = __esm({
+ "src/rendering-util/rendering-elements/shapes/roundedRect.ts"() {
+ "use strict";
+ init_drawRect();
+ roundedRect = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const options3 = {
+ rx: 5,
+ ry: 5,
+ classes: "",
+ labelPaddingX: (node2?.padding || 0) * 1,
+ labelPaddingY: (node2?.padding || 0) * 1
+ };
+ return drawRect3(parent4, node2, options3);
+ }, "roundedRect");
+ }
+ });
- .grid .tick {
- stroke: ${options2.gridColor};
- opacity: 0.8;
- shape-rendering: crispEdges;
- text {
- font-family: ${options2.fontFamily};
- fill: ${options2.textColor};
+ // src/rendering-util/rendering-elements/shapes/squareRect.ts
+ var squareRect2;
+ var init_squareRect = __esm({
+ "src/rendering-util/rendering-elements/shapes/squareRect.ts"() {
+ "use strict";
+ init_drawRect();
+ squareRect2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const options3 = {
+ rx: 0,
+ ry: 0,
+ classes: "",
+ labelPaddingX: (node2?.padding || 0) * 2,
+ labelPaddingY: (node2?.padding || 0) * 1
+ };
+ return drawRect3(parent4, node2, options3);
+ }, "squareRect");
}
- }
+ });
- .grid path {
- stroke-width: 0;
- }
+ // src/rendering-util/rendering-elements/shapes/stateStart.ts
+ var stateStart;
+ var init_stateStart = __esm({
+ "src/rendering-util/rendering-elements/shapes/stateStart.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_rough_esm();
+ init_handDrawnShapeStyles();
+ init_diagramAPI();
+ stateStart = /* @__PURE__ */ __name((parent4, node2) => {
+ const { themeVariables } = getConfig2();
+ const { lineColor } = themeVariables;
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ let circle6;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const roughNode = rc.circle(0, 0, 14, solidStateFill(lineColor));
+ circle6 = shapeSvg.insert(() => roughNode);
+ } else {
+ circle6 = shapeSvg.insert("circle", ":first-child");
+ }
+ circle6.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ updateNodeBounds2(node2, circle6);
+ node2.intersect = function(point8) {
+ return intersect_default2.circle(node2, 7, point8);
+ };
+ return shapeSvg;
+ }, "stateStart");
+ }
+ });
+ // src/rendering-util/rendering-elements/shapes/stateEnd.ts
+ var stateEnd;
+ var init_stateEnd = __esm({
+ "src/rendering-util/rendering-elements/shapes/stateEnd.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_rough_esm();
+ init_handDrawnShapeStyles();
+ init_diagramAPI();
+ stateEnd = /* @__PURE__ */ __name((parent4, node2) => {
+ const { themeVariables } = getConfig2();
+ const { lineColor } = themeVariables;
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ let circle6;
+ let innerCircle;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const roughNode = rc.circle(0, 0, 14, { ...solidStateFill(lineColor), roughness: 0.5 });
+ const roughInnerNode = rc.circle(0, 0, 5, { ...solidStateFill(lineColor), fillStyle: "solid" });
+ circle6 = shapeSvg.insert(() => roughNode);
+ innerCircle = shapeSvg.insert(() => roughInnerNode);
+ } else {
+ innerCircle = shapeSvg.insert("circle", ":first-child");
+ circle6 = shapeSvg.insert("circle", ":first-child");
+ circle6.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
+ innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10);
+ }
+ updateNodeBounds2(node2, circle6);
+ node2.intersect = function(point8) {
+ return intersect_default2.circle(node2, 7, point8);
+ };
+ return shapeSvg;
+ }, "stateEnd");
+ }
+ });
- /* Today line */
+ // src/rendering-util/rendering-elements/shapes/forkJoin.ts
+ var forkJoin2;
+ var init_forkJoin = __esm({
+ "src/rendering-util/rendering-elements/shapes/forkJoin.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_rough_esm();
+ init_handDrawnShapeStyles();
+ init_diagramAPI();
+ forkJoin2 = /* @__PURE__ */ __name((parent4, node2, dir2) => {
+ const { themeVariables } = getConfig2();
+ const { lineColor } = themeVariables;
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ let width3 = 70;
+ let height2 = 10;
+ if (dir2 === "LR") {
+ width3 = 10;
+ height2 = 70;
+ }
+ const x5 = -1 * width3 / 2;
+ const y5 = -1 * height2 / 2;
+ let shape;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const roughNode = rc.rectangle(x5, y5, width3, height2, solidStateFill(lineColor));
+ shape = shapeSvg.insert(() => roughNode);
+ } else {
+ shape = shapeSvg.append("rect").attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2).attr("class", "fork-join");
+ }
+ updateNodeBounds2(node2, shape);
+ let nodeHeight = 0;
+ let nodeWidth = 0;
+ let nodePadding = 10;
+ if (node2.height) {
+ nodeHeight = node2.height;
+ }
+ if (node2.width) {
+ nodeWidth = node2.width;
+ }
+ if (node2.padding) {
+ nodePadding = node2.padding;
+ }
+ node2.height = nodeHeight + nodePadding / 2;
+ node2.width = nodeWidth + nodePadding / 2;
+ node2.intersect = function(point8) {
+ return intersect_default2.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "forkJoin");
+ }
+ });
- .today {
- fill: none;
- stroke: ${options2.todayLineColor};
- stroke-width: 2px;
- }
+ // src/rendering-util/rendering-elements/shapes/choice.ts
+ var choice2;
+ var init_choice = __esm({
+ "src/rendering-util/rendering-elements/shapes/choice.ts"() {
+ "use strict";
+ init_intersect2();
+ init_rough_esm();
+ init_handDrawnShapeStyles();
+ init_diagramAPI();
+ choice2 = /* @__PURE__ */ __name((parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { themeVariables } = getConfig2();
+ const { lineColor } = themeVariables;
+ const shapeSvg = parent4.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
+ const s2 = 28;
+ const points = [
+ { x: 0, y: s2 / 2 },
+ { x: s2 / 2, y: 0 },
+ { x: 0, y: -s2 / 2 },
+ { x: -s2 / 2, y: 0 }
+ ];
+ let choice3;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const pointArr = points.map(function(d2) {
+ return [d2.x, d2.y];
+ });
+ const roughNode = rc.polygon(pointArr, solidStateFill(lineColor));
+ choice3 = shapeSvg.insert(() => roughNode);
+ } else {
+ choice3 = shapeSvg.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d2) {
+ return d2.x + "," + d2.y;
+ }).join(" ")
+ );
+ }
+ choice3.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28).attr("style", nodeStyles);
+ node2.width = 28;
+ node2.height = 28;
+ node2.intersect = function(point8) {
+ return intersect_default2.circle(node2, 14, point8);
+ };
+ return shapeSvg;
+ }, "choice");
+ }
+ });
+ // src/rendering-util/rendering-elements/shapes/note.ts
+ var note2;
+ var init_note2 = __esm({
+ "src/rendering-util/rendering-elements/shapes/note.ts"() {
+ "use strict";
+ init_logger();
+ init_util2();
+ init_intersect2();
+ init_diagramAPI();
+ init_rough_esm();
+ note2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { themeVariables, handDrawnSeed } = getConfig2();
+ const { noteBorderColor, noteBkgColor } = themeVariables;
+ const useHtmlLabels = node2.useHtmlLabels;
+ if (!useHtmlLabels) {
+ node2.centerLabel = true;
+ }
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, "node " + node2.cssClasses);
+ log.info("Classes = ", node2.cssClasses);
+ const { cssStyles } = node2;
+ let rect4;
+ const totalWidth = bbox.width + node2.padding;
+ const totalHeight = bbox.height + node2.padding;
+ const x5 = -totalWidth / 2;
+ const y5 = -totalHeight / 2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const roughNode = rc.rectangle(x5, y5, totalWidth, totalHeight, {
+ roughness: 0.7,
+ fill: noteBkgColor,
+ fillWeight: 3,
+ seed: handDrawnSeed,
+ // fillStyle: 'solid', // solid fill'
+ stroke: noteBorderColor
+ });
+ rect4 = shapeSvg.insert(() => roughNode, ":first-child");
+ rect4.attr("class", "basic label-container").attr("style", cssStyles);
+ } else {
+ rect4 = shapeSvg.insert("rect", ":first-child");
+ rect4.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", x5).attr("y", y5).attr("width", totalWidth).attr("height", totalHeight);
+ }
+ updateNodeBounds2(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default2.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "note");
+ }
+ });
- /* Task styling */
+ // src/rendering-util/rendering-elements/shapes/stadium.ts
+ var stadium2;
+ var init_stadium = __esm({
+ "src/rendering-util/rendering-elements/shapes/stadium.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_roundedRectPath();
+ stadium2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const h2 = bbox.height + node2.padding;
+ const w3 = bbox.width + h2 / 4 + node2.padding;
+ let rect4;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createRoundedRectPathD(-w3 / 2, -h2 / 2, w3, h2, h2 / 2);
+ const roughNode = rc.path(pathData, options3);
+ rect4 = shapeSvg.insert(() => roughNode, ":first-child");
+ rect4.attr("class", "basic label-container").attr("style", cssStyles);
+ } else {
+ rect4 = shapeSvg.insert("rect", ":first-child");
+ rect4.attr("class", "basic label-container").attr("style", nodeStyles).attr("rx", h2 / 2).attr("ry", h2 / 2).attr("x", -w3 / 2).attr("y", -h2 / 2).attr("width", w3).attr("height", h2);
+ }
+ updateNodeBounds2(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default2.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "stadium");
+ }
+ });
- /* Default task */
+ // src/rendering-util/rendering-elements/shapes/rectWithTitle.ts
+ var rectWithTitle2;
+ var init_rectWithTitle = __esm({
+ "src/rendering-util/rendering-elements/shapes/rectWithTitle.ts"() {
+ "use strict";
+ init_src32();
+ init_common();
+ init_util2();
+ init_createLabel2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_diagramAPI();
+ init_roundedRectPath();
+ init_logger();
+ rectWithTitle2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ let classes6;
+ if (!node2.cssClasses) {
+ classes6 = "node default";
+ } else {
+ classes6 = "node " + node2.cssClasses;
+ }
+ const shapeSvg = parent4.insert("g").attr("class", classes6).attr("id", node2.domId || node2.id);
+ const g2 = shapeSvg.insert("g");
+ const label = shapeSvg.insert("g").attr("class", "label").attr("style", nodeStyles);
+ const description = node2.description;
+ const title2 = node2.label;
+ const text2 = label.node().appendChild(await createLabel_default2(title2, node2.labelStyle, true, true));
+ let bbox = { width: 0, height: 0 };
+ if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {
+ const div2 = text2.children[0];
+ const dv2 = select_default2(text2);
+ bbox = div2.getBoundingClientRect();
+ dv2.attr("width", bbox.width);
+ dv2.attr("height", bbox.height);
+ }
+ log.info("Text 2", description);
+ const textRows = description || [];
+ const titleBox = text2.getBBox();
+ const descr = label.node().appendChild(
+ await createLabel_default2(
+ textRows.join ? textRows.join("
") : textRows,
+ node2.labelStyle,
+ true,
+ true
+ )
+ );
+ const div = descr.children[0];
+ const dv = select_default2(descr);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ const halfPadding = (node2.padding || 0) / 2;
+ select_default2(descr).attr(
+ "transform",
+ "translate( " + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")"
+ );
+ select_default2(text2).attr(
+ "transform",
+ "translate( " + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", 0)"
+ );
+ bbox = label.node().getBBox();
+ label.attr(
+ "transform",
+ "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")"
+ );
+ const totalWidth = bbox.width + (node2.padding || 0);
+ const totalHeight = bbox.height + (node2.padding || 0);
+ const x5 = -bbox.width / 2 - halfPadding;
+ const y5 = -bbox.height / 2 - halfPadding;
+ let rect4;
+ let innerLine;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const roughNode = rc.path(
+ createRoundedRectPathD(x5, y5, totalWidth, totalHeight, node2.rx || 0),
+ options3
+ );
+ const roughLine = rc.line(
+ -bbox.width / 2 - halfPadding,
+ -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,
+ bbox.width / 2 + halfPadding,
+ -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,
+ options3
+ );
+ innerLine = shapeSvg.insert(() => {
+ log.debug("Rough node insert CXC", roughNode);
+ return roughLine;
+ }, ":first-child");
+ rect4 = shapeSvg.insert(() => {
+ log.debug("Rough node insert CXC", roughNode);
+ return roughNode;
+ }, ":first-child");
+ } else {
+ rect4 = g2.insert("rect", ":first-child");
+ innerLine = g2.insert("line");
+ rect4.attr("class", "outer title-state").attr("style", nodeStyles).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + (node2.padding || 0)).attr("height", bbox.height + (node2.padding || 0));
+ innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
+ }
+ updateNodeBounds2(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default2.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "rectWithTitle");
+ }
+ });
- .task {
- stroke-width: 2;
+ // src/rendering-util/rendering-elements/shapes/insertPolygonShape.ts
+ function insertPolygonShape2(parent4, w3, h2, points) {
+ return parent4.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d2) {
+ return d2.x + "," + d2.y;
+ }).join(" ")
+ ).attr("class", "label-container").attr("transform", "translate(" + -w3 / 2 + "," + h2 / 2 + ")");
}
+ var init_insertPolygonShape = __esm({
+ "src/rendering-util/rendering-elements/shapes/insertPolygonShape.ts"() {
+ "use strict";
+ __name(insertPolygonShape2, "insertPolygonShape");
+ }
+ });
- .taskText {
- text-anchor: middle;
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
- }
+ // src/rendering-util/rendering-elements/shapes/subroutine.ts
+ var subroutine2;
+ var init_subroutine = __esm({
+ "src/rendering-util/rendering-elements/shapes/subroutine.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ subroutine2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const halfPadding = (node2?.padding || 0) / 2;
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const x5 = -bbox.width / 2 - halfPadding;
+ const y5 = -bbox.height / 2 - halfPadding;
+ const points = [
+ { x: 0, y: 0 },
+ { x: w3, y: 0 },
+ { x: w3, y: -h2 },
+ { x: 0, y: -h2 },
+ { x: 0, y: 0 },
+ { x: -8, y: 0 },
+ { x: w3 + 8, y: 0 },
+ { x: w3 + 8, y: -h2 },
+ { x: -8, y: -h2 },
+ { x: -8, y: 0 }
+ ];
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const roughNode = rc.rectangle(x5 - 8, y5, w3 + 16, h2, options3);
+ const l1 = rc.line(x5, y5, x5, y5 + h2, options3);
+ const l2 = rc.line(x5 + w3, y5, x5 + w3, y5 + h2, options3);
+ shapeSvg.insert(() => l1, ":first-child");
+ shapeSvg.insert(() => l2, ":first-child");
+ const rect4 = shapeSvg.insert(() => roughNode, ":first-child");
+ const { cssStyles } = node2;
+ rect4.attr("class", "basic label-container").attr("style", cssStyles);
+ updateNodeBounds2(node2, rect4);
+ } else {
+ const el = insertPolygonShape2(shapeSvg, w3, h2, points);
+ if (nodeStyles) {
+ el.attr("style", nodeStyles);
+ }
+ updateNodeBounds2(node2, el);
+ }
+ node2.intersect = function(point8) {
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "subroutine");
+ }
+ });
- // .taskText:not([font-size]) {
- // font-size: ${options2.ganttFontSize};
- // }
+ // src/rendering-util/rendering-elements/shapes/cylinder.ts
+ var createCylinderPathD, createOuterCylinderPathD, createInnerCylinderPathD, cylinder2;
+ var init_cylinder = __esm({
+ "src/rendering-util/rendering-elements/shapes/cylinder.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ createCylinderPathD = /* @__PURE__ */ __name((x5, y5, width3, height2, rx, ry) => {
+ return [
+ `M${x5},${y5 + ry}`,
+ `a${rx},${ry} 0,0,0 ${width3},0`,
+ `a${rx},${ry} 0,0,0 ${-width3},0`,
+ `l0,${height2}`,
+ `a${rx},${ry} 0,0,0 ${width3},0`,
+ `l0,${-height2}`
+ ].join(" ");
+ }, "createCylinderPathD");
+ createOuterCylinderPathD = /* @__PURE__ */ __name((x5, y5, width3, height2, rx, ry) => {
+ return [
+ `M${x5},${y5 + ry}`,
+ `M${x5 + width3},${y5 + ry}`,
+ `a${rx},${ry} 0,0,0 ${-width3},0`,
+ `l0,${height2}`,
+ `a${rx},${ry} 0,0,0 ${width3},0`,
+ `l0,${-height2}`
+ ].join(" ");
+ }, "createOuterCylinderPathD");
+ createInnerCylinderPathD = /* @__PURE__ */ __name((x5, y5, width3, height2, rx, ry) => {
+ return [`M${x5 - width3 / 2},${-height2 / 2}`, `a${rx},${ry} 0,0,0 ${width3},0`].join(" ");
+ }, "createInnerCylinderPathD");
+ cylinder2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const w3 = bbox.width + node2.padding;
+ const rx = w3 / 2;
+ const ry = rx / (2.5 + w3 / 50);
+ const h2 = bbox.height + ry + node2.padding;
+ let cylinder3;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const outerPathData = createOuterCylinderPathD(0, 0, w3, h2, rx, ry);
+ const innerPathData = createInnerCylinderPathD(0, ry, w3, h2, rx, ry);
+ const outerNode = rc.path(outerPathData, userNodeOverrides(node2, {}));
+ const innerLine = rc.path(innerPathData, userNodeOverrides(node2, { fill: "none" }));
+ cylinder3 = shapeSvg.insert(() => innerLine, ":first-child");
+ cylinder3 = shapeSvg.insert(() => outerNode, ":first-child");
+ cylinder3.attr("class", "basic label-container");
+ if (cssStyles) {
+ cylinder3.attr("style", cssStyles);
+ }
+ } else {
+ const pathData = createCylinderPathD(0, 0, w3, h2, rx, ry);
+ cylinder3 = shapeSvg.insert("path", ":first-child").attr("d", pathData).attr("class", "basic label-container").attr("style", cssStyles).attr("style", nodeStyles);
+ }
+ cylinder3.attr("label-offset-y", ry);
+ cylinder3.attr("transform", `translate(${-w3 / 2}, ${-(h2 / 2 + ry)})`);
+ updateNodeBounds2(node2, cylinder3);
+ node2.intersect = function(point8) {
+ const pos = intersect_default2.rect(node2, point8);
+ const x5 = pos.x - (node2.x ?? 0);
+ if (rx != 0 && (Math.abs(x5) < (node2.width ?? 0) / 2 || Math.abs(x5) == (node2.width ?? 0) / 2 && Math.abs(pos.y - (node2.y ?? 0)) > (node2.height ?? 0) / 2 - ry)) {
+ let y5 = ry * ry * (1 - x5 * x5 / (rx * rx));
+ if (y5 > 0) {
+ y5 = Math.sqrt(y5);
+ }
+ y5 = ry - y5;
+ if (point8.y - (node2.y ?? 0) > 0) {
+ y5 = -y5;
+ }
+ pos.y += y5;
+ }
+ return pos;
+ };
+ return shapeSvg;
+ }, "cylinder");
+ }
+ });
- .taskTextOutsideRight {
- fill: ${options2.taskTextDarkColor};
- text-anchor: start;
- // font-size: ${options2.ganttFontSize};
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
+ // src/rendering-util/rendering-elements/shapes/circle.ts
+ var circle3;
+ var init_circle = __esm({
+ "src/rendering-util/rendering-elements/shapes/circle.ts"() {
+ "use strict";
+ init_logger();
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ circle3 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox, halfPadding } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const radius2 = bbox.width / 2 + halfPadding;
+ let circleElem;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const roughNode = rc.circle(0, 0, radius2 * 2, options3);
+ circleElem = shapeSvg.insert(() => roughNode, ":first-child");
+ circleElem.attr("class", "basic label-container").attr("style", cssStyles);
+ } else {
+ circleElem = shapeSvg.insert("circle", ":first-child").attr("class", "basic label-container").attr("style", nodeStyles).attr("r", radius2).attr("cx", 0).attr("cy", 0);
+ }
+ updateNodeBounds2(node2, circleElem);
+ node2.intersect = function(point8) {
+ log.info("Circle intersect", node2, radius2, point8);
+ return intersect_default2.circle(node2, radius2, point8);
+ };
+ return shapeSvg;
+ }, "circle");
+ }
+ });
- }
+ // src/rendering-util/rendering-elements/shapes/doubleCircle.ts
+ var doublecircle2;
+ var init_doubleCircle = __esm({
+ "src/rendering-util/rendering-elements/shapes/doubleCircle.ts"() {
+ "use strict";
+ init_logger();
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ doublecircle2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox, halfPadding } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const gap = 5;
+ const outerRadius = bbox.width / 2 + halfPadding + gap;
+ const innerRadius = bbox.width / 2 + halfPadding;
+ let circleGroup;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const outerOptions = userNodeOverrides(node2, { roughness: 0.2, strokeWidth: 2.5 });
+ const innerOptions = userNodeOverrides(node2, { roughness: 0.2, strokeWidth: 1.5 });
+ const outerRoughNode = rc.circle(0, 0, outerRadius * 2, outerOptions);
+ const innerRoughNode = rc.circle(0, 0, innerRadius * 2, innerOptions);
+ circleGroup = shapeSvg.insert("g", ":first-child");
+ circleGroup.attr("class", node2.cssClasses).attr("style", cssStyles);
+ circleGroup.node()?.appendChild(outerRoughNode);
+ circleGroup.node()?.appendChild(innerRoughNode);
+ } else {
+ circleGroup = shapeSvg.insert("g", ":first-child");
+ const outerCircle = circleGroup.insert("circle", ":first-child");
+ const innerCircle = circleGroup.insert("circle");
+ circleGroup.attr("class", "basic label-container").attr("style", nodeStyles);
+ outerCircle.attr("class", "outer-circle").attr("style", nodeStyles).attr("r", outerRadius).attr("cx", 0).attr("cy", 0);
+ innerCircle.attr("class", "inner-circle").attr("style", nodeStyles).attr("r", innerRadius).attr("cx", 0).attr("cy", 0);
+ }
+ updateNodeBounds2(node2, circleGroup);
+ node2.intersect = function(point8) {
+ log.info("DoubleCircle intersect", node2, outerRadius, point8);
+ return intersect_default2.circle(node2, outerRadius, point8);
+ };
+ return shapeSvg;
+ }, "doublecircle");
+ }
+ });
- .taskTextOutsideLeft {
- fill: ${options2.taskTextDarkColor};
- text-anchor: end;
- // font-size: ${options2.ganttFontSize};
- }
+ // src/rendering-util/rendering-elements/shapes/rectLeftInvArrow.ts
+ var createPolygonPathD, rect_left_inv_arrow2;
+ var init_rectLeftInvArrow = __esm({
+ "src/rendering-util/rendering-elements/shapes/rectLeftInvArrow.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ createPolygonPathD = /* @__PURE__ */ __name((x5, y5, width3, height2) => {
+ return [
+ `M${x5 - height2 / 2},${y5}`,
+ `L${x5 + width3},${y5}`,
+ `L${x5 + width3},${y5 - height2}`,
+ `L${x5 - height2 / 2},${y5 - height2}`,
+ `L${x5},${y5 - height2 / 2}`,
+ "Z"
+ ].join(" ");
+ }, "createPolygonPathD");
+ rect_left_inv_arrow2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: -h2 / 2, y: 0 },
+ { x: w3, y: 0 },
+ { x: w3, y: -h2 },
+ { x: -h2 / 2, y: -h2 },
+ { x: 0, y: -h2 / 2 }
+ ];
+ let polygon2;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createPolygonPathD(0, 0, w3, h2);
+ const roughNode = rc.path(pathData, options3);
+ polygon2 = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-w3 / 2}, ${h2 / 2})`);
+ if (cssStyles) {
+ polygon2.attr("style", cssStyles);
+ }
+ } else {
+ polygon2 = insertPolygonShape2(shapeSvg, w3, h2, points);
+ }
+ if (nodeStyles) {
+ polygon2.attr("style", nodeStyles);
+ }
+ node2.width = w3 + h2;
+ node2.height = h2;
+ updateNodeBounds2(node2, polygon2);
+ node2.intersect = function(point8) {
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "rect_left_inv_arrow");
+ }
+ });
- /* Special case clickable */
- .task.clickable {
- cursor: pointer;
+ // src/rendering-util/rendering-elements/shapes/question.ts
+ var createDecisionBoxPathD, question2;
+ var init_question = __esm({
+ "src/rendering-util/rendering-elements/shapes/question.ts"() {
+ "use strict";
+ init_logger();
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ createDecisionBoxPathD = /* @__PURE__ */ __name((x5, y5, size5) => {
+ return [
+ `M${x5 + size5 / 2},${y5}`,
+ `L${x5 + size5},${y5 - size5 / 2}`,
+ `L${x5 + size5 / 2},${y5 - size5}`,
+ `L${x5},${y5 - size5 / 2}`,
+ "Z"
+ ].join(" ");
+ }, "createDecisionBoxPathD");
+ question2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const s2 = w3 + h2;
+ const points = [
+ { x: s2 / 2, y: 0 },
+ { x: s2, y: -s2 / 2 },
+ { x: s2 / 2, y: -s2 },
+ { x: 0, y: -s2 / 2 }
+ ];
+ let polygon2;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createDecisionBoxPathD(0, 0, s2);
+ const roughNode = rc.path(pathData, options3);
+ polygon2 = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-s2 / 2}, ${s2 / 2})`);
+ if (cssStyles) {
+ polygon2.attr("style", cssStyles);
+ }
+ } else {
+ polygon2 = insertPolygonShape2(shapeSvg, s2, s2, points);
+ }
+ if (nodeStyles) {
+ polygon2.attr("style", nodeStyles);
+ }
+ updateNodeBounds2(node2, polygon2);
+ node2.intersect = function(point8) {
+ log.debug(
+ "APA12 Intersect called SPLIT\npoint:",
+ point8,
+ "\nnode:\n",
+ node2,
+ "\nres:",
+ intersect_default2.polygon(node2, points, point8)
+ );
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "question");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/hexagon.ts
+ var createHexagonPathD, hexagon2;
+ var init_hexagon = __esm({
+ "src/rendering-util/rendering-elements/shapes/hexagon.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ createHexagonPathD = /* @__PURE__ */ __name((x5, y5, width3, height2, m2) => {
+ return [
+ `M${x5 + m2},${y5}`,
+ `L${x5 + width3 - m2},${y5}`,
+ `L${x5 + width3},${y5 - height2 / 2}`,
+ `L${x5 + width3 - m2},${y5 - height2}`,
+ `L${x5 + m2},${y5 - height2}`,
+ `L${x5},${y5 - height2 / 2}`,
+ "Z"
+ ].join(" ");
+ }, "createHexagonPathD");
+ hexagon2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const f3 = 4;
+ const h2 = bbox.height + node2.padding;
+ const m2 = h2 / f3;
+ const w3 = bbox.width + 2 * m2 + node2.padding;
+ const points = [
+ { x: m2, y: 0 },
+ { x: w3 - m2, y: 0 },
+ { x: w3, y: -h2 / 2 },
+ { x: w3 - m2, y: -h2 },
+ { x: m2, y: -h2 },
+ { x: 0, y: -h2 / 2 }
+ ];
+ let polygon2;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createHexagonPathD(0, 0, w3, h2, m2);
+ const roughNode = rc.path(pathData, options3);
+ polygon2 = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-w3 / 2}, ${h2 / 2})`);
+ if (cssStyles) {
+ polygon2.attr("style", cssStyles);
+ }
+ } else {
+ polygon2 = insertPolygonShape2(shapeSvg, w3, h2, points);
+ }
+ if (nodeStyles) {
+ polygon2.attr("style", nodeStyles);
+ }
+ node2.width = w3;
+ node2.height = h2;
+ updateNodeBounds2(node2, polygon2);
+ node2.intersect = function(point8) {
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "hexagon");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/leanRight.ts
+ var createLeanRightPathD, lean_right2;
+ var init_leanRight = __esm({
+ "src/rendering-util/rendering-elements/shapes/leanRight.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ createLeanRightPathD = /* @__PURE__ */ __name((x5, y5, width3, height2) => {
+ return [
+ `M${x5 - 2 * height2 / 6},${y5}`,
+ `L${x5 + width3 - height2 / 6},${y5}`,
+ `L${x5 + width3 + 2 * height2 / 6},${y5 - height2}`,
+ `L${x5 + height2 / 6},${y5 - height2}`,
+ "Z"
+ ].join(" ");
+ }, "createLeanRightPathD");
+ lean_right2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: -2 * h2 / 6, y: 0 },
+ { x: w3 - h2 / 6, y: 0 },
+ { x: w3 + 2 * h2 / 6, y: -h2 },
+ { x: h2 / 6, y: -h2 }
+ ];
+ let polygon2;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createLeanRightPathD(0, 0, w3, h2);
+ const roughNode = rc.path(pathData, options3);
+ polygon2 = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-w3 / 2}, ${h2 / 2})`);
+ if (cssStyles) {
+ polygon2.attr("style", cssStyles);
+ }
+ } else {
+ polygon2 = insertPolygonShape2(shapeSvg, w3, h2, points);
+ }
+ if (nodeStyles) {
+ polygon2.attr("style", nodeStyles);
+ }
+ node2.width = w3;
+ node2.height = h2;
+ updateNodeBounds2(node2, polygon2);
+ node2.intersect = function(point8) {
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "lean_right");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/leanLeft.ts
+ var createLeanLeftPathD, lean_left2;
+ var init_leanLeft = __esm({
+ "src/rendering-util/rendering-elements/shapes/leanLeft.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ createLeanLeftPathD = /* @__PURE__ */ __name((x5, y5, width3, height2) => {
+ return [
+ `M${x5 + 2 * height2 / 6},${y5}`,
+ `L${x5 + width3 + height2 / 6},${y5}`,
+ `L${x5 + width3 - 2 * height2 / 6},${y5 - height2}`,
+ `L${x5 - height2 / 6},${y5 - height2}`,
+ "Z"
+ ].join(" ");
+ }, "createLeanLeftPathD");
+ lean_left2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: 2 * h2 / 6, y: 0 },
+ { x: w3 + h2 / 6, y: 0 },
+ { x: w3 - 2 * h2 / 6, y: -h2 },
+ { x: -h2 / 6, y: -h2 }
+ ];
+ let polygon2;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createLeanLeftPathD(0, 0, w3, h2);
+ const roughNode = rc.path(pathData, options3);
+ polygon2 = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-w3 / 2}, ${h2 / 2})`);
+ if (cssStyles) {
+ polygon2.attr("style", cssStyles);
+ }
+ } else {
+ polygon2 = insertPolygonShape2(shapeSvg, w3, h2, points);
+ }
+ if (nodeStyles) {
+ polygon2.attr("style", nodeStyles);
+ }
+ node2.width = w3;
+ node2.height = h2;
+ updateNodeBounds2(node2, polygon2);
+ node2.intersect = function(point8) {
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "lean_left");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/trapezoid.ts
+ var createTrapezoidPathD, trapezoid2;
+ var init_trapezoid = __esm({
+ "src/rendering-util/rendering-elements/shapes/trapezoid.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ createTrapezoidPathD = /* @__PURE__ */ __name((x5, y5, width3, height2) => {
+ return [
+ `M${x5 - 2 * height2 / 6},${y5}`,
+ `L${x5 + width3 + 2 * height2 / 6},${y5}`,
+ `L${x5 + width3 - height2 / 6},${y5 - height2}`,
+ `L${x5 + height2 / 6},${y5 - height2}`,
+ "Z"
+ ].join(" ");
+ }, "createTrapezoidPathD");
+ trapezoid2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: -2 * h2 / 6, y: 0 },
+ { x: w3 + 2 * h2 / 6, y: 0 },
+ { x: w3 - h2 / 6, y: -h2 },
+ { x: h2 / 6, y: -h2 }
+ ];
+ let polygon2;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createTrapezoidPathD(0, 0, w3, h2);
+ const roughNode = rc.path(pathData, options3);
+ polygon2 = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-w3 / 2}, ${h2 / 2})`);
+ if (cssStyles) {
+ polygon2.attr("style", cssStyles);
+ }
+ } else {
+ polygon2 = insertPolygonShape2(shapeSvg, w3, h2, points);
+ }
+ if (nodeStyles) {
+ polygon2.attr("style", nodeStyles);
+ }
+ node2.width = w3;
+ node2.height = h2;
+ updateNodeBounds2(node2, polygon2);
+ node2.intersect = function(point8) {
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "trapezoid");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/invertedTrapezoid.ts
+ var createInvertedTrapezoidPathD, inv_trapezoid2;
+ var init_invertedTrapezoid = __esm({
+ "src/rendering-util/rendering-elements/shapes/invertedTrapezoid.ts"() {
+ "use strict";
+ init_util2();
+ init_intersect2();
+ init_handDrawnShapeStyles();
+ init_rough_esm();
+ init_insertPolygonShape();
+ createInvertedTrapezoidPathD = /* @__PURE__ */ __name((x5, y5, width3, height2) => {
+ return [
+ `M${x5 + height2 / 6},${y5}`,
+ `L${x5 + width3 - height2 / 6},${y5}`,
+ `L${x5 + width3 + 2 * height2 / 6},${y5 - height2}`,
+ `L${x5 - 2 * height2 / 6},${y5 - height2}`,
+ "Z"
+ ].join(" ");
+ }, "createInvertedTrapezoidPathD");
+ inv_trapezoid2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { labelStyles, nodeStyles } = styles2String(node2);
+ node2.labelStyle = labelStyles;
+ const { shapeSvg, bbox } = await labelHelper2(parent4, node2, getNodeClasses(node2));
+ const w3 = bbox.width + node2.padding;
+ const h2 = bbox.height + node2.padding;
+ const points = [
+ { x: h2 / 6, y: 0 },
+ { x: w3 - h2 / 6, y: 0 },
+ { x: w3 + 2 * h2 / 6, y: -h2 },
+ { x: -2 * h2 / 6, y: -h2 }
+ ];
+ let polygon2;
+ const { cssStyles } = node2;
+ if (node2.look === "handDrawn") {
+ const rc = at.svg(shapeSvg);
+ const options3 = userNodeOverrides(node2, {});
+ const pathData = createInvertedTrapezoidPathD(0, 0, w3, h2);
+ const roughNode = rc.path(pathData, options3);
+ polygon2 = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-w3 / 2}, ${h2 / 2})`);
+ if (cssStyles) {
+ polygon2.attr("style", cssStyles);
+ }
+ } else {
+ polygon2 = insertPolygonShape2(shapeSvg, w3, h2, points);
+ }
+ if (nodeStyles) {
+ polygon2.attr("style", nodeStyles);
+ }
+ node2.width = w3;
+ node2.height = h2;
+ updateNodeBounds2(node2, polygon2);
+ node2.intersect = function(point8) {
+ return intersect_default2.polygon(node2, points, point8);
+ };
+ return shapeSvg;
+ }, "inv_trapezoid");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/shapes/labelRect.ts
+ var labelRect2;
+ var init_labelRect = __esm({
+ "src/rendering-util/rendering-elements/shapes/labelRect.ts"() {
+ "use strict";
+ init_drawRect();
+ init_util2();
+ init_intersect2();
+ labelRect2 = /* @__PURE__ */ __name(async (parent4, node2) => {
+ const { shapeSvg } = await labelHelper2(parent4, node2, "label");
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const totalWidth = 0.1;
+ const totalHeight = 0.1;
+ rect4.attr("width", totalWidth).attr("height", totalHeight);
+ shapeSvg.attr("class", "label edgeLabel");
+ updateNodeBounds2(node2, rect4);
+ node2.intersect = function(point8) {
+ return intersect_default2.rect(node2, point8);
+ };
+ return shapeSvg;
+ }, "labelRect");
+ }
+ });
+
+ // src/rendering-util/rendering-elements/nodes.js
+ var shapes3, nodeElems2, insertNode2, setNodeElem2, clear7, positionNode2;
+ var init_nodes3 = __esm({
+ "src/rendering-util/rendering-elements/nodes.js"() {
+ "use strict";
+ init_logger();
+ init_state();
+ init_roundedRect();
+ init_squareRect();
+ init_stateStart();
+ init_stateEnd();
+ init_forkJoin();
+ init_choice();
+ init_note2();
+ init_stadium();
+ init_rectWithTitle();
+ init_diagramAPI();
+ init_subroutine();
+ init_cylinder();
+ init_circle();
+ init_doubleCircle();
+ init_rectLeftInvArrow();
+ init_question();
+ init_hexagon();
+ init_leanRight();
+ init_leanLeft();
+ init_trapezoid();
+ init_invertedTrapezoid();
+ init_labelRect();
+ shapes3 = {
+ state,
+ stateStart,
+ stateEnd,
+ fork: forkJoin2,
+ join: forkJoin2,
+ choice: choice2,
+ note: note2,
+ roundedRect,
+ rectWithTitle: rectWithTitle2,
+ squareRect: squareRect2,
+ stadium: stadium2,
+ subroutine: subroutine2,
+ cylinder: cylinder2,
+ circle: circle3,
+ doublecircle: doublecircle2,
+ odd: rect_left_inv_arrow2,
+ diamond: question2,
+ hexagon: hexagon2,
+ lean_right: lean_right2,
+ lean_left: lean_left2,
+ trapezoid: trapezoid2,
+ inv_trapezoid: inv_trapezoid2,
+ labelRect: labelRect2
+ };
+ nodeElems2 = /* @__PURE__ */ new Map();
+ insertNode2 = /* @__PURE__ */ __name(async (elem, node2, dir2) => {
+ let newEl;
+ let el;
+ if (node2.shape === "rect") {
+ if (node2.rx && node2.ry) {
+ node2.shape = "roundedRect";
+ } else {
+ node2.shape = "squareRect";
+ }
+ }
+ if (node2.link) {
+ let target;
+ if (getConfig2().securityLevel === "sandbox") {
+ target = "_top";
+ } else if (node2.linkTarget) {
+ target = node2.linkTarget || "_blank";
+ }
+ newEl = elem.insert("svg:a").attr("xlink:href", node2.link).attr("target", target);
+ el = await shapes3[node2.shape](newEl, node2, dir2);
+ } else {
+ el = await shapes3[node2.shape](elem, node2, dir2);
+ newEl = el;
+ }
+ if (node2.tooltip) {
+ el.attr("title", node2.tooltip);
+ }
+ nodeElems2.set(node2.id, newEl);
+ if (node2.haveCallback) {
+ nodeElems2.get(node2.id).attr("class", nodeElems2.get(node2.id).attr("class") + " clickable");
+ }
+ return newEl;
+ }, "insertNode");
+ setNodeElem2 = /* @__PURE__ */ __name((elem, node2) => {
+ nodeElems2.set(node2.id, elem);
+ }, "setNodeElem");
+ clear7 = /* @__PURE__ */ __name(() => {
+ nodeElems2.clear();
+ }, "clear");
+ positionNode2 = /* @__PURE__ */ __name((node2) => {
+ const el = nodeElems2.get(node2.id);
+ log.trace(
+ "Transforming node",
+ node2.diff,
+ node2,
+ "translate(" + (node2.x - node2.width / 2 - 5) + ", " + node2.width / 2 + ")"
+ );
+ const padding3 = 8;
+ const diff2 = node2.diff || 0;
+ if (node2.clusterNode) {
+ el.attr(
+ "transform",
+ "translate(" + (node2.x + diff2 - node2.width / 2) + ", " + (node2.y - node2.height / 2 - padding3) + ")"
+ );
+ } else {
+ el.attr("transform", "translate(" + node2.x + ", " + node2.y + ")");
+ }
+ return diff2;
+ }, "positionNode");
+ }
+ });
+
+ // src/internals.ts
+ var internalHelpers;
+ var init_internals = __esm({
+ "src/internals.ts"() {
+ "use strict";
+ init_config();
+ init_common();
+ init_logger();
+ init_clusters();
+ init_edges();
+ init_markers();
+ init_nodes3();
+ init_util2();
+ init_utils2();
+ internalHelpers = {
+ common: common_default,
+ getConfig,
+ insertCluster,
+ insertEdge,
+ insertEdgeLabel,
+ insertMarkers: markers_default,
+ insertNode: insertNode2,
+ interpolateToCurve,
+ labelHelper: labelHelper2,
+ log,
+ positionEdgeLabel
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js
+ function isSymbol(value2) {
+ return typeof value2 == "symbol" || isObjectLike_default(value2) && baseGetTag_default(value2) == symbolTag;
+ }
+ var symbolTag, isSymbol_default;
+ var init_isSymbol = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js"() {
+ "use strict";
+ init_baseGetTag();
+ init_isObjectLike();
+ symbolTag = "[object Symbol]";
+ __name(isSymbol, "isSymbol");
+ isSymbol_default = isSymbol;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js
+ function arrayMap(array4, iteratee) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length, result = Array(length2);
+ while (++index < length2) {
+ result[index] = iteratee(array4[index], index, array4);
+ }
+ return result;
}
- .taskText.clickable {
- cursor: pointer;
- fill: ${options2.taskTextClickableColor} !important;
- font-weight: bold;
+ var arrayMap_default;
+ var init_arrayMap = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js"() {
+ "use strict";
+ __name(arrayMap, "arrayMap");
+ arrayMap_default = arrayMap;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js
+ function baseToString(value2) {
+ if (typeof value2 == "string") {
+ return value2;
+ }
+ if (isArray_default(value2)) {
+ return arrayMap_default(value2, baseToString) + "";
+ }
+ if (isSymbol_default(value2)) {
+ return symbolToString ? symbolToString.call(value2) : "";
+ }
+ var result = value2 + "";
+ return result == "0" && 1 / value2 == -INFINITY ? "-0" : result;
+ }
+ var INFINITY, symbolProto, symbolToString, baseToString_default;
+ var init_baseToString = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js"() {
+ "use strict";
+ init_Symbol();
+ init_arrayMap();
+ init_isArray();
+ init_isSymbol();
+ INFINITY = 1 / 0;
+ symbolProto = Symbol_default ? Symbol_default.prototype : void 0;
+ symbolToString = symbolProto ? symbolProto.toString : void 0;
+ __name(baseToString, "baseToString");
+ baseToString_default = baseToString;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js
+ function trimmedEndIndex(string3) {
+ var index = string3.length;
+ while (index-- && reWhitespace.test(string3.charAt(index))) {
+ }
+ return index;
}
+ var reWhitespace, trimmedEndIndex_default;
+ var init_trimmedEndIndex = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js"() {
+ "use strict";
+ reWhitespace = /\s/;
+ __name(trimmedEndIndex, "trimmedEndIndex");
+ trimmedEndIndex_default = trimmedEndIndex;
+ }
+ });
- .taskTextOutsideLeft.clickable {
- cursor: pointer;
- fill: ${options2.taskTextClickableColor} !important;
- font-weight: bold;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js
+ function baseTrim(string3) {
+ return string3 ? string3.slice(0, trimmedEndIndex_default(string3) + 1).replace(reTrimStart, "") : string3;
+ }
+ var reTrimStart, baseTrim_default;
+ var init_baseTrim = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js"() {
+ "use strict";
+ init_trimmedEndIndex();
+ reTrimStart = /^\s+/;
+ __name(baseTrim, "baseTrim");
+ baseTrim_default = baseTrim;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js
+ function toNumber(value2) {
+ if (typeof value2 == "number") {
+ return value2;
+ }
+ if (isSymbol_default(value2)) {
+ return NAN;
+ }
+ if (isObject_default(value2)) {
+ var other = typeof value2.valueOf == "function" ? value2.valueOf() : value2;
+ value2 = isObject_default(other) ? other + "" : other;
+ }
+ if (typeof value2 != "string") {
+ return value2 === 0 ? value2 : +value2;
+ }
+ value2 = baseTrim_default(value2);
+ var isBinary2 = reIsBinary.test(value2);
+ return isBinary2 || reIsOctal.test(value2) ? freeParseInt(value2.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value2) ? NAN : +value2;
+ }
+ var NAN, reIsBadHex, reIsBinary, reIsOctal, freeParseInt, toNumber_default;
+ var init_toNumber = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js"() {
+ "use strict";
+ init_baseTrim();
+ init_isObject();
+ init_isSymbol();
+ NAN = 0 / 0;
+ reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+ reIsBinary = /^0b[01]+$/i;
+ reIsOctal = /^0o[0-7]+$/i;
+ freeParseInt = parseInt;
+ __name(toNumber, "toNumber");
+ toNumber_default = toNumber;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toFinite.js
+ function toFinite(value2) {
+ if (!value2) {
+ return value2 === 0 ? value2 : 0;
+ }
+ value2 = toNumber_default(value2);
+ if (value2 === INFINITY2 || value2 === -INFINITY2) {
+ var sign2 = value2 < 0 ? -1 : 1;
+ return sign2 * MAX_INTEGER;
+ }
+ return value2 === value2 ? value2 : 0;
}
+ var INFINITY2, MAX_INTEGER, toFinite_default;
+ var init_toFinite = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toFinite.js"() {
+ "use strict";
+ init_toNumber();
+ INFINITY2 = 1 / 0;
+ MAX_INTEGER = 17976931348623157e292;
+ __name(toFinite, "toFinite");
+ toFinite_default = toFinite;
+ }
+ });
- .taskTextOutsideRight.clickable {
- cursor: pointer;
- fill: ${options2.taskTextClickableColor} !important;
- font-weight: bold;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toInteger.js
+ function toInteger(value2) {
+ var result = toFinite_default(value2), remainder = result % 1;
+ return result === result ? remainder ? result - remainder : result : 0;
}
+ var toInteger_default;
+ var init_toInteger = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toInteger.js"() {
+ "use strict";
+ init_toFinite();
+ __name(toInteger, "toInteger");
+ toInteger_default = toInteger;
+ }
+ });
- /* Specific task settings for the sections*/
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js
+ var WeakMap, WeakMap_default;
+ var init_WeakMap = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js"() {
+ "use strict";
+ init_getNative();
+ init_root();
+ WeakMap = getNative_default(root_default, "WeakMap");
+ WeakMap_default = WeakMap;
+ }
+ });
- .taskText0,
- .taskText1,
- .taskText2,
- .taskText3 {
- fill: ${options2.taskTextColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.js
+ function noop2() {
}
+ var noop_default2;
+ var init_noop2 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.js"() {
+ "use strict";
+ __name(noop2, "noop");
+ noop_default2 = noop2;
+ }
+ });
- .task0,
- .task1,
- .task2,
- .task3 {
- fill: ${options2.taskBkgColor};
- stroke: ${options2.taskBorderColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js
+ function arrayEach(array4, iteratee) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length;
+ while (++index < length2) {
+ if (iteratee(array4[index], index, array4) === false) {
+ break;
+ }
+ }
+ return array4;
}
+ var arrayEach_default;
+ var init_arrayEach = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js"() {
+ "use strict";
+ __name(arrayEach, "arrayEach");
+ arrayEach_default = arrayEach;
+ }
+ });
- .taskTextOutside0,
- .taskTextOutside2
- {
- fill: ${options2.taskTextOutsideColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFindIndex.js
+ function baseFindIndex(array4, predicate, fromIndex, fromRight) {
+ var length2 = array4.length, index = fromIndex + (fromRight ? 1 : -1);
+ while (fromRight ? index-- : ++index < length2) {
+ if (predicate(array4[index], index, array4)) {
+ return index;
+ }
+ }
+ return -1;
}
+ var baseFindIndex_default;
+ var init_baseFindIndex = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFindIndex.js"() {
+ "use strict";
+ __name(baseFindIndex, "baseFindIndex");
+ baseFindIndex_default = baseFindIndex;
+ }
+ });
- .taskTextOutside1,
- .taskTextOutside3 {
- fill: ${options2.taskTextOutsideColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNaN.js
+ function baseIsNaN(value2) {
+ return value2 !== value2;
}
+ var baseIsNaN_default;
+ var init_baseIsNaN = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNaN.js"() {
+ "use strict";
+ __name(baseIsNaN, "baseIsNaN");
+ baseIsNaN_default = baseIsNaN;
+ }
+ });
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_strictIndexOf.js
+ function strictIndexOf(array4, value2, fromIndex) {
+ var index = fromIndex - 1, length2 = array4.length;
+ while (++index < length2) {
+ if (array4[index] === value2) {
+ return index;
+ }
+ }
+ return -1;
+ }
+ var strictIndexOf_default;
+ var init_strictIndexOf = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_strictIndexOf.js"() {
+ "use strict";
+ __name(strictIndexOf, "strictIndexOf");
+ strictIndexOf_default = strictIndexOf;
+ }
+ });
- /* Active task */
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIndexOf.js
+ function baseIndexOf(array4, value2, fromIndex) {
+ return value2 === value2 ? strictIndexOf_default(array4, value2, fromIndex) : baseFindIndex_default(array4, baseIsNaN_default, fromIndex);
+ }
+ var baseIndexOf_default;
+ var init_baseIndexOf = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIndexOf.js"() {
+ "use strict";
+ init_baseFindIndex();
+ init_baseIsNaN();
+ init_strictIndexOf();
+ __name(baseIndexOf, "baseIndexOf");
+ baseIndexOf_default = baseIndexOf;
+ }
+ });
- .active0,
- .active1,
- .active2,
- .active3 {
- fill: ${options2.activeTaskBkgColor};
- stroke: ${options2.activeTaskBorderColor};
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludes.js
+ function arrayIncludes(array4, value2) {
+ var length2 = array4 == null ? 0 : array4.length;
+ return !!length2 && baseIndexOf_default(array4, value2, 0) > -1;
+ }
+ var arrayIncludes_default;
+ var init_arrayIncludes = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludes.js"() {
+ "use strict";
+ init_baseIndexOf();
+ __name(arrayIncludes, "arrayIncludes");
+ arrayIncludes_default = arrayIncludes;
+ }
+ });
- .activeText0,
- .activeText1,
- .activeText2,
- .activeText3 {
- fill: ${options2.taskTextDarkColor} !important;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js
+ var nativeKeys, nativeKeys_default;
+ var init_nativeKeys = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js"() {
+ "use strict";
+ init_overArg();
+ nativeKeys = overArg_default(Object.keys, Object);
+ nativeKeys_default = nativeKeys;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js
+ function baseKeys(object3) {
+ if (!isPrototype_default(object3)) {
+ return nativeKeys_default(object3);
+ }
+ var result = [];
+ for (var key in Object(object3)) {
+ if (hasOwnProperty10.call(object3, key) && key != "constructor") {
+ result.push(key);
+ }
+ }
+ return result;
}
+ var objectProto12, hasOwnProperty10, baseKeys_default;
+ var init_baseKeys = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js"() {
+ "use strict";
+ init_isPrototype();
+ init_nativeKeys();
+ objectProto12 = Object.prototype;
+ hasOwnProperty10 = objectProto12.hasOwnProperty;
+ __name(baseKeys, "baseKeys");
+ baseKeys_default = baseKeys;
+ }
+ });
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js
+ function keys(object3) {
+ return isArrayLike_default(object3) ? arrayLikeKeys_default(object3) : baseKeys_default(object3);
+ }
+ var keys_default;
+ var init_keys = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js"() {
+ "use strict";
+ init_arrayLikeKeys();
+ init_baseKeys();
+ init_isArrayLike();
+ __name(keys, "keys");
+ keys_default = keys;
+ }
+ });
- /* Completed task */
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/assign.js
+ var objectProto13, hasOwnProperty11, assign, assign_default;
+ var init_assign = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/assign.js"() {
+ "use strict";
+ init_assignValue();
+ init_copyObject();
+ init_createAssigner();
+ init_isArrayLike();
+ init_isPrototype();
+ init_keys();
+ objectProto13 = Object.prototype;
+ hasOwnProperty11 = objectProto13.hasOwnProperty;
+ assign = createAssigner_default(function(object3, source) {
+ if (isPrototype_default(source) || isArrayLike_default(source)) {
+ copyObject_default(source, keys_default(source), object3);
+ return;
+ }
+ for (var key in source) {
+ if (hasOwnProperty11.call(source, key)) {
+ assignValue_default(object3, key, source[key]);
+ }
+ }
+ });
+ assign_default = assign;
+ }
+ });
- .done0,
- .done1,
- .done2,
- .done3 {
- stroke: ${options2.doneTaskBorderColor};
- fill: ${options2.doneTaskBkgColor};
- stroke-width: 2;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js
+ function isKey(value2, object3) {
+ if (isArray_default(value2)) {
+ return false;
+ }
+ var type3 = typeof value2;
+ if (type3 == "number" || type3 == "symbol" || type3 == "boolean" || value2 == null || isSymbol_default(value2)) {
+ return true;
+ }
+ return reIsPlainProp.test(value2) || !reIsDeepProp.test(value2) || object3 != null && value2 in Object(object3);
}
+ var reIsDeepProp, reIsPlainProp, isKey_default;
+ var init_isKey = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js"() {
+ "use strict";
+ init_isArray();
+ init_isSymbol();
+ reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
+ reIsPlainProp = /^\w*$/;
+ __name(isKey, "isKey");
+ isKey_default = isKey;
+ }
+ });
- .doneText0,
- .doneText1,
- .doneText2,
- .doneText3 {
- fill: ${options2.taskTextDarkColor} !important;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js
+ function memoizeCapped(func) {
+ var result = memoize_default(func, function(key) {
+ if (cache3.size === MAX_MEMOIZE_SIZE) {
+ cache3.clear();
+ }
+ return key;
+ });
+ var cache3 = result.cache;
+ return result;
}
+ var MAX_MEMOIZE_SIZE, memoizeCapped_default;
+ var init_memoizeCapped = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js"() {
+ "use strict";
+ init_memoize();
+ MAX_MEMOIZE_SIZE = 500;
+ __name(memoizeCapped, "memoizeCapped");
+ memoizeCapped_default = memoizeCapped;
+ }
+ });
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js
+ var rePropName, reEscapeChar, stringToPath, stringToPath_default;
+ var init_stringToPath = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js"() {
+ "use strict";
+ init_memoizeCapped();
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
+ reEscapeChar = /\\(\\)?/g;
+ stringToPath = memoizeCapped_default(function(string3) {
+ var result = [];
+ if (string3.charCodeAt(0) === 46) {
+ result.push("");
+ }
+ string3.replace(rePropName, function(match2, number7, quote, subString) {
+ result.push(quote ? subString.replace(reEscapeChar, "$1") : number7 || match2);
+ });
+ return result;
+ });
+ stringToPath_default = stringToPath;
+ }
+ });
- /* Tasks on the critical line */
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js
+ function toString(value2) {
+ return value2 == null ? "" : baseToString_default(value2);
+ }
+ var toString_default;
+ var init_toString = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js"() {
+ "use strict";
+ init_baseToString();
+ __name(toString, "toString");
+ toString_default = toString;
+ }
+ });
- .crit0,
- .crit1,
- .crit2,
- .crit3 {
- stroke: ${options2.critBorderColor};
- fill: ${options2.critBkgColor};
- stroke-width: 2;
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js
+ function castPath(value2, object3) {
+ if (isArray_default(value2)) {
+ return value2;
+ }
+ return isKey_default(value2, object3) ? [value2] : stringToPath_default(toString_default(value2));
+ }
+ var castPath_default;
+ var init_castPath = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js"() {
+ "use strict";
+ init_isArray();
+ init_isKey();
+ init_stringToPath();
+ init_toString();
+ __name(castPath, "castPath");
+ castPath_default = castPath;
+ }
+ });
- .activeCrit0,
- .activeCrit1,
- .activeCrit2,
- .activeCrit3 {
- stroke: ${options2.critBorderColor};
- fill: ${options2.activeTaskBkgColor};
- stroke-width: 2;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js
+ function toKey(value2) {
+ if (typeof value2 == "string" || isSymbol_default(value2)) {
+ return value2;
+ }
+ var result = value2 + "";
+ return result == "0" && 1 / value2 == -INFINITY3 ? "-0" : result;
+ }
+ var INFINITY3, toKey_default;
+ var init_toKey = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js"() {
+ "use strict";
+ init_isSymbol();
+ INFINITY3 = 1 / 0;
+ __name(toKey, "toKey");
+ toKey_default = toKey;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js
+ function baseGet(object3, path4) {
+ path4 = castPath_default(path4, object3);
+ var index = 0, length2 = path4.length;
+ while (object3 != null && index < length2) {
+ object3 = object3[toKey_default(path4[index++])];
+ }
+ return index && index == length2 ? object3 : void 0;
+ }
+ var baseGet_default;
+ var init_baseGet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js"() {
+ "use strict";
+ init_castPath();
+ init_toKey();
+ __name(baseGet, "baseGet");
+ baseGet_default = baseGet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js
+ function get3(object3, path4, defaultValue) {
+ var result = object3 == null ? void 0 : baseGet_default(object3, path4);
+ return result === void 0 ? defaultValue : result;
}
+ var get_default;
+ var init_get = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js"() {
+ "use strict";
+ init_baseGet();
+ __name(get3, "get");
+ get_default = get3;
+ }
+ });
- .doneCrit0,
- .doneCrit1,
- .doneCrit2,
- .doneCrit3 {
- stroke: ${options2.critBorderColor};
- fill: ${options2.doneTaskBkgColor};
- stroke-width: 2;
- cursor: pointer;
- shape-rendering: crispEdges;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js
+ function arrayPush(array4, values2) {
+ var index = -1, length2 = values2.length, offset = array4.length;
+ while (++index < length2) {
+ array4[offset + index] = values2[index];
+ }
+ return array4;
}
+ var arrayPush_default;
+ var init_arrayPush = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js"() {
+ "use strict";
+ __name(arrayPush, "arrayPush");
+ arrayPush_default = arrayPush;
+ }
+ });
- .milestone {
- transform: rotate(45deg) scale(0.8,0.8);
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js
+ function isFlattenable(value2) {
+ return isArray_default(value2) || isArguments_default(value2) || !!(spreadableSymbol && value2 && value2[spreadableSymbol]);
+ }
+ var spreadableSymbol, isFlattenable_default;
+ var init_isFlattenable = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js"() {
+ "use strict";
+ init_Symbol();
+ init_isArguments();
+ init_isArray();
+ spreadableSymbol = Symbol_default ? Symbol_default.isConcatSpreadable : void 0;
+ __name(isFlattenable, "isFlattenable");
+ isFlattenable_default = isFlattenable;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js
+ function baseFlatten(array4, depth, predicate, isStrict, result) {
+ var index = -1, length2 = array4.length;
+ predicate || (predicate = isFlattenable_default);
+ result || (result = []);
+ while (++index < length2) {
+ var value2 = array4[index];
+ if (depth > 0 && predicate(value2)) {
+ if (depth > 1) {
+ baseFlatten(value2, depth - 1, predicate, isStrict, result);
+ } else {
+ arrayPush_default(result, value2);
+ }
+ } else if (!isStrict) {
+ result[result.length] = value2;
+ }
+ }
+ return result;
}
+ var baseFlatten_default;
+ var init_baseFlatten = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js"() {
+ "use strict";
+ init_arrayPush();
+ init_isFlattenable();
+ __name(baseFlatten, "baseFlatten");
+ baseFlatten_default = baseFlatten;
+ }
+ });
- .milestoneText {
- font-style: italic;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatten.js
+ function flatten(array4) {
+ var length2 = array4 == null ? 0 : array4.length;
+ return length2 ? baseFlatten_default(array4, 1) : [];
+ }
+ var flatten_default;
+ var init_flatten = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatten.js"() {
+ "use strict";
+ init_baseFlatten();
+ __name(flatten, "flatten");
+ flatten_default = flatten;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js
+ function flatRest(func) {
+ return setToString_default(overRest_default(func, void 0, flatten_default), func + "");
+ }
+ var flatRest_default;
+ var init_flatRest = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js"() {
+ "use strict";
+ init_flatten();
+ init_overRest();
+ init_setToString();
+ __name(flatRest, "flatRest");
+ flatRest_default = flatRest;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js
+ function baseSlice(array4, start3, end2) {
+ var index = -1, length2 = array4.length;
+ if (start3 < 0) {
+ start3 = -start3 > length2 ? 0 : length2 + start3;
+ }
+ end2 = end2 > length2 ? length2 : end2;
+ if (end2 < 0) {
+ end2 += length2;
+ }
+ length2 = start3 > end2 ? 0 : end2 - start3 >>> 0;
+ start3 >>>= 0;
+ var result = Array(length2);
+ while (++index < length2) {
+ result[index] = array4[index + start3];
+ }
+ return result;
}
- .doneCritText0,
- .doneCritText1,
- .doneCritText2,
- .doneCritText3 {
- fill: ${options2.taskTextDarkColor} !important;
+ var baseSlice_default;
+ var init_baseSlice = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js"() {
+ "use strict";
+ __name(baseSlice, "baseSlice");
+ baseSlice_default = baseSlice;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicode.js
+ function hasUnicode(string3) {
+ return reHasUnicode.test(string3);
+ }
+ var rsAstralRange, rsComboMarksRange, reComboHalfMarksRange, rsComboSymbolsRange, rsComboRange, rsVarRange, rsZWJ, reHasUnicode, hasUnicode_default;
+ var init_hasUnicode = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicode.js"() {
+ "use strict";
+ rsAstralRange = "\\ud800-\\udfff";
+ rsComboMarksRange = "\\u0300-\\u036f";
+ reComboHalfMarksRange = "\\ufe20-\\ufe2f";
+ rsComboSymbolsRange = "\\u20d0-\\u20ff";
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
+ rsVarRange = "\\ufe0e\\ufe0f";
+ rsZWJ = "\\u200d";
+ reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
+ __name(hasUnicode, "hasUnicode");
+ hasUnicode_default = hasUnicode;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayReduce.js
+ function arrayReduce(array4, iteratee, accumulator, initAccum) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length;
+ if (initAccum && length2) {
+ accumulator = array4[++index];
+ }
+ while (++index < length2) {
+ accumulator = iteratee(accumulator, array4[index], index, array4);
+ }
+ return accumulator;
}
+ var arrayReduce_default;
+ var init_arrayReduce = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayReduce.js"() {
+ "use strict";
+ __name(arrayReduce, "arrayReduce");
+ arrayReduce_default = arrayReduce;
+ }
+ });
- .activeCritText0,
- .activeCritText1,
- .activeCritText2,
- .activeCritText3 {
- fill: ${options2.taskTextDarkColor} !important;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js
+ function baseAssign(object3, source) {
+ return object3 && copyObject_default(source, keys_default(source), object3);
+ }
+ var baseAssign_default;
+ var init_baseAssign = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js"() {
+ "use strict";
+ init_copyObject();
+ init_keys();
+ __name(baseAssign, "baseAssign");
+ baseAssign_default = baseAssign;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js
+ function baseAssignIn(object3, source) {
+ return object3 && copyObject_default(source, keysIn_default(source), object3);
+ }
+ var baseAssignIn_default;
+ var init_baseAssignIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js"() {
+ "use strict";
+ init_copyObject();
+ init_keysIn();
+ __name(baseAssignIn, "baseAssignIn");
+ baseAssignIn_default = baseAssignIn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js
+ function arrayFilter(array4, predicate) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length, resIndex = 0, result = [];
+ while (++index < length2) {
+ var value2 = array4[index];
+ if (predicate(value2, index, array4)) {
+ result[resIndex++] = value2;
+ }
+ }
+ return result;
}
+ var arrayFilter_default;
+ var init_arrayFilter = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js"() {
+ "use strict";
+ __name(arrayFilter, "arrayFilter");
+ arrayFilter_default = arrayFilter;
+ }
+ });
- .titleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${options2.textColor} ;
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js
+ function stubArray() {
+ return [];
}
-`;
- const ganttStyles = getStyles$a;
- const diagram$c = {
- parser: ganttParser,
- db: ganttDb,
- renderer: ganttRenderer,
- styles: ganttStyles
- };
- const ganttDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$c
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$f = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [6, 9, 10];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "info": 4, "document": 5, "EOF": 6, "line": 7, "statement": 8, "NL": 9, "showInfo": 10, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" },
- productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- $$.length - 1;
- switch (yystate) {
- case 1:
- return yy;
- case 4:
- break;
- case 6:
- yy.setInfo(true);
- break;
- }
- },
- table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],
- defaultActions: { 4: [2, 1] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
+ var stubArray_default;
+ var init_stubArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js"() {
+ "use strict";
+ __name(stubArray, "stubArray");
+ stubArray_default = stubArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js
+ var objectProto14, propertyIsEnumerable2, nativeGetSymbols, getSymbols, getSymbols_default;
+ var init_getSymbols = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js"() {
+ "use strict";
+ init_arrayFilter();
+ init_stubArray();
+ objectProto14 = Object.prototype;
+ propertyIsEnumerable2 = objectProto14.propertyIsEnumerable;
+ nativeGetSymbols = Object.getOwnPropertySymbols;
+ getSymbols = !nativeGetSymbols ? stubArray_default : function(object3) {
+ if (object3 == null) {
+ return [];
}
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
+ object3 = Object(object3);
+ return arrayFilter_default(nativeGetSymbols(object3), function(symbol) {
+ return propertyIsEnumerable2.call(object3, symbol);
+ });
+ };
+ getSymbols_default = getSymbols;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js
+ function copySymbols(source, object3) {
+ return copyObject_default(source, getSymbols_default(source), object3);
+ }
+ var copySymbols_default;
+ var init_copySymbols = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js"() {
+ "use strict";
+ init_copyObject();
+ init_getSymbols();
+ __name(copySymbols, "copySymbols");
+ copySymbols_default = copySymbols;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js
+ var nativeGetSymbols2, getSymbolsIn, getSymbolsIn_default;
+ var init_getSymbolsIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js"() {
+ "use strict";
+ init_arrayPush();
+ init_getPrototype();
+ init_getSymbols();
+ init_stubArray();
+ nativeGetSymbols2 = Object.getOwnPropertySymbols;
+ getSymbolsIn = !nativeGetSymbols2 ? stubArray_default : function(object3) {
+ var result = [];
+ while (object3) {
+ arrayPush_default(result, getSymbols_default(object3));
+ object3 = getPrototype_default(object3);
}
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
+ return result;
+ };
+ getSymbolsIn_default = getSymbolsIn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js
+ function copySymbolsIn(source, object3) {
+ return copyObject_default(source, getSymbolsIn_default(source), object3);
+ }
+ var copySymbolsIn_default;
+ var init_copySymbolsIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js"() {
+ "use strict";
+ init_copyObject();
+ init_getSymbolsIn();
+ __name(copySymbolsIn, "copySymbolsIn");
+ copySymbolsIn_default = copySymbolsIn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js
+ function baseGetAllKeys(object3, keysFunc, symbolsFunc) {
+ var result = keysFunc(object3);
+ return isArray_default(object3) ? result : arrayPush_default(result, symbolsFunc(object3));
+ }
+ var baseGetAllKeys_default;
+ var init_baseGetAllKeys = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js"() {
+ "use strict";
+ init_arrayPush();
+ init_isArray();
+ __name(baseGetAllKeys, "baseGetAllKeys");
+ baseGetAllKeys_default = baseGetAllKeys;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js
+ function getAllKeys(object3) {
+ return baseGetAllKeys_default(object3, keys_default, getSymbols_default);
+ }
+ var getAllKeys_default;
+ var init_getAllKeys = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js"() {
+ "use strict";
+ init_baseGetAllKeys();
+ init_getSymbols();
+ init_keys();
+ __name(getAllKeys, "getAllKeys");
+ getAllKeys_default = getAllKeys;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js
+ function getAllKeysIn(object3) {
+ return baseGetAllKeys_default(object3, keysIn_default, getSymbolsIn_default);
+ }
+ var getAllKeysIn_default;
+ var init_getAllKeysIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js"() {
+ "use strict";
+ init_baseGetAllKeys();
+ init_getSymbolsIn();
+ init_keysIn();
+ __name(getAllKeysIn, "getAllKeysIn");
+ getAllKeysIn_default = getAllKeysIn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js
+ var DataView2, DataView_default;
+ var init_DataView = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js"() {
+ "use strict";
+ init_getNative();
+ init_root();
+ DataView2 = getNative_default(root_default, "DataView");
+ DataView_default = DataView2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js
+ var Promise2, Promise_default;
+ var init_Promise = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js"() {
+ "use strict";
+ init_getNative();
+ init_root();
+ Promise2 = getNative_default(root_default, "Promise");
+ Promise_default = Promise2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js
+ var Set2, Set_default;
+ var init_Set = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js"() {
+ "use strict";
+ init_getNative();
+ init_root();
+ Set2 = getNative_default(root_default, "Set");
+ Set_default = Set2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js
+ var mapTag2, objectTag3, promiseTag, setTag2, weakMapTag2, dataViewTag2, dataViewCtorString, mapCtorString, promiseCtorString, setCtorString, weakMapCtorString, getTag, getTag_default;
+ var init_getTag = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js"() {
+ "use strict";
+ init_DataView();
+ init_Map();
+ init_Promise();
+ init_Set();
+ init_WeakMap();
+ init_baseGetTag();
+ init_toSource();
+ mapTag2 = "[object Map]";
+ objectTag3 = "[object Object]";
+ promiseTag = "[object Promise]";
+ setTag2 = "[object Set]";
+ weakMapTag2 = "[object WeakMap]";
+ dataViewTag2 = "[object DataView]";
+ dataViewCtorString = toSource_default(DataView_default);
+ mapCtorString = toSource_default(Map_default);
+ promiseCtorString = toSource_default(Promise_default);
+ setCtorString = toSource_default(Set_default);
+ weakMapCtorString = toSource_default(WeakMap_default);
+ getTag = baseGetTag_default;
+ if (DataView_default && getTag(new DataView_default(new ArrayBuffer(1))) != dataViewTag2 || Map_default && getTag(new Map_default()) != mapTag2 || Promise_default && getTag(Promise_default.resolve()) != promiseTag || Set_default && getTag(new Set_default()) != setTag2 || WeakMap_default && getTag(new WeakMap_default()) != weakMapTag2) {
+ getTag = /* @__PURE__ */ __name(function(value2) {
+ var result = baseGetTag_default(value2), Ctor = result == objectTag3 ? value2.constructor : void 0, ctorString = Ctor ? toSource_default(Ctor) : "";
+ if (ctorString) {
+ switch (ctorString) {
+ case dataViewCtorString:
+ return dataViewTag2;
+ case mapCtorString:
+ return mapTag2;
+ case promiseCtorString:
+ return promiseTag;
+ case setCtorString:
+ return setTag2;
+ case weakMapCtorString:
+ return weakMapTag2;
}
- token2 = self2.symbols_[token2] || token2;
}
- return token2;
+ return result;
+ }, "getTag");
+ }
+ getTag_default = getTag;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js
+ function initCloneArray(array4) {
+ var length2 = array4.length, result = new array4.constructor(length2);
+ if (length2 && typeof array4[0] == "string" && hasOwnProperty12.call(array4, "index")) {
+ result.index = array4.index;
+ result.input = array4.input;
+ }
+ return result;
+ }
+ var objectProto15, hasOwnProperty12, initCloneArray_default;
+ var init_initCloneArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js"() {
+ "use strict";
+ objectProto15 = Object.prototype;
+ hasOwnProperty12 = objectProto15.hasOwnProperty;
+ __name(initCloneArray, "initCloneArray");
+ initCloneArray_default = initCloneArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js
+ function cloneDataView(dataView, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer_default(dataView.buffer) : dataView.buffer;
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
+ }
+ var cloneDataView_default;
+ var init_cloneDataView = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js"() {
+ "use strict";
+ init_cloneArrayBuffer();
+ __name(cloneDataView, "cloneDataView");
+ cloneDataView_default = cloneDataView;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js
+ function cloneRegExp(regexp) {
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
+ result.lastIndex = regexp.lastIndex;
+ return result;
+ }
+ var reFlags, cloneRegExp_default;
+ var init_cloneRegExp = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js"() {
+ "use strict";
+ reFlags = /\w*$/;
+ __name(cloneRegExp, "cloneRegExp");
+ cloneRegExp_default = cloneRegExp;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js
+ function cloneSymbol(symbol) {
+ return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
+ }
+ var symbolProto2, symbolValueOf, cloneSymbol_default;
+ var init_cloneSymbol = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js"() {
+ "use strict";
+ init_Symbol();
+ symbolProto2 = Symbol_default ? Symbol_default.prototype : void 0;
+ symbolValueOf = symbolProto2 ? symbolProto2.valueOf : void 0;
+ __name(cloneSymbol, "cloneSymbol");
+ cloneSymbol_default = cloneSymbol;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js
+ function initCloneByTag(object3, tag2, isDeep) {
+ var Ctor = object3.constructor;
+ switch (tag2) {
+ case arrayBufferTag2:
+ return cloneArrayBuffer_default(object3);
+ case boolTag2:
+ case dateTag2:
+ return new Ctor(+object3);
+ case dataViewTag3:
+ return cloneDataView_default(object3, isDeep);
+ case float32Tag2:
+ case float64Tag2:
+ case int8Tag2:
+ case int16Tag2:
+ case int32Tag2:
+ case uint8Tag2:
+ case uint8ClampedTag2:
+ case uint16Tag2:
+ case uint32Tag2:
+ return cloneTypedArray_default(object3, isDeep);
+ case mapTag3:
+ return new Ctor();
+ case numberTag2:
+ case stringTag2:
+ return new Ctor(object3);
+ case regexpTag2:
+ return cloneRegExp_default(object3);
+ case setTag3:
+ return new Ctor();
+ case symbolTag2:
+ return cloneSymbol_default(object3);
+ }
+ }
+ var boolTag2, dateTag2, mapTag3, numberTag2, regexpTag2, setTag3, stringTag2, symbolTag2, arrayBufferTag2, dataViewTag3, float32Tag2, float64Tag2, int8Tag2, int16Tag2, int32Tag2, uint8Tag2, uint8ClampedTag2, uint16Tag2, uint32Tag2, initCloneByTag_default;
+ var init_initCloneByTag = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js"() {
+ "use strict";
+ init_cloneArrayBuffer();
+ init_cloneDataView();
+ init_cloneRegExp();
+ init_cloneSymbol();
+ init_cloneTypedArray();
+ boolTag2 = "[object Boolean]";
+ dateTag2 = "[object Date]";
+ mapTag3 = "[object Map]";
+ numberTag2 = "[object Number]";
+ regexpTag2 = "[object RegExp]";
+ setTag3 = "[object Set]";
+ stringTag2 = "[object String]";
+ symbolTag2 = "[object Symbol]";
+ arrayBufferTag2 = "[object ArrayBuffer]";
+ dataViewTag3 = "[object DataView]";
+ float32Tag2 = "[object Float32Array]";
+ float64Tag2 = "[object Float64Array]";
+ int8Tag2 = "[object Int8Array]";
+ int16Tag2 = "[object Int16Array]";
+ int32Tag2 = "[object Int32Array]";
+ uint8Tag2 = "[object Uint8Array]";
+ uint8ClampedTag2 = "[object Uint8ClampedArray]";
+ uint16Tag2 = "[object Uint16Array]";
+ uint32Tag2 = "[object Uint32Array]";
+ __name(initCloneByTag, "initCloneByTag");
+ initCloneByTag_default = initCloneByTag;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js
+ function baseIsMap(value2) {
+ return isObjectLike_default(value2) && getTag_default(value2) == mapTag4;
+ }
+ var mapTag4, baseIsMap_default;
+ var init_baseIsMap = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js"() {
+ "use strict";
+ init_getTag();
+ init_isObjectLike();
+ mapTag4 = "[object Map]";
+ __name(baseIsMap, "baseIsMap");
+ baseIsMap_default = baseIsMap;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js
+ var nodeIsMap, isMap, isMap_default;
+ var init_isMap = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js"() {
+ "use strict";
+ init_baseIsMap();
+ init_baseUnary();
+ init_nodeUtil();
+ nodeIsMap = nodeUtil_default && nodeUtil_default.isMap;
+ isMap = nodeIsMap ? baseUnary_default(nodeIsMap) : baseIsMap_default;
+ isMap_default = isMap;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js
+ function baseIsSet(value2) {
+ return isObjectLike_default(value2) && getTag_default(value2) == setTag4;
+ }
+ var setTag4, baseIsSet_default;
+ var init_baseIsSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js"() {
+ "use strict";
+ init_getTag();
+ init_isObjectLike();
+ setTag4 = "[object Set]";
+ __name(baseIsSet, "baseIsSet");
+ baseIsSet_default = baseIsSet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js
+ var nodeIsSet, isSet, isSet_default;
+ var init_isSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js"() {
+ "use strict";
+ init_baseIsSet();
+ init_baseUnary();
+ init_nodeUtil();
+ nodeIsSet = nodeUtil_default && nodeUtil_default.isSet;
+ isSet = nodeIsSet ? baseUnary_default(nodeIsSet) : baseIsSet_default;
+ isSet_default = isSet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js
+ function baseClone(value2, bitmask, customizer, key, object3, stack) {
+ var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;
+ if (customizer) {
+ result = object3 ? customizer(value2, key, object3, stack) : customizer(value2);
+ }
+ if (result !== void 0) {
+ return result;
+ }
+ if (!isObject_default(value2)) {
+ return value2;
+ }
+ var isArr = isArray_default(value2);
+ if (isArr) {
+ result = initCloneArray_default(value2);
+ if (!isDeep) {
+ return copyArray_default(value2, result);
+ }
+ } else {
+ var tag2 = getTag_default(value2), isFunc = tag2 == funcTag3 || tag2 == genTag2;
+ if (isBuffer_default(value2)) {
+ return cloneBuffer_default(value2, isDeep);
+ }
+ if (tag2 == objectTag4 || tag2 == argsTag3 || isFunc && !object3) {
+ result = isFlat || isFunc ? {} : initCloneObject_default(value2);
+ if (!isDeep) {
+ return isFlat ? copySymbolsIn_default(value2, baseAssignIn_default(result, value2)) : copySymbols_default(value2, baseAssign_default(result, value2));
}
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
+ } else {
+ if (!cloneableTags[tag2]) {
+ return object3 ? value2 : {};
}
- return true;
+ result = initCloneByTag_default(value2, tag2, isDeep);
}
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- return 4;
- case 1:
- return 9;
- case 2:
- return "space";
- case 3:
- return 10;
- case 4:
- return 6;
- case 5:
- return "TXT";
- }
- },
- rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i],
- conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$f.parser = parser$f;
- const parser$g = parser$f;
- var message = "";
- var info = false;
- const setMessage = (txt) => {
- log$1.debug("Setting message to: " + txt);
- message = txt;
- };
- const getMessage = () => {
- return message;
- };
- const setInfo = (inf) => {
- info = inf;
- };
- const getInfo = () => {
- return info;
- };
- const db$7 = {
- setMessage,
- getMessage,
- setInfo,
- getInfo,
- clear: clear$i
- // parseError
- };
- const getStyles$9 = () => ``;
- const styles$8 = getStyles$9;
- const draw$b = (text2, id2, version2) => {
- try {
- log$1.debug("Rendering info diagram\n" + text2);
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const svg2 = root2.select("#" + id2);
- const g = svg2.append("g");
- g.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", "32px").style("text-anchor", "middle").text("v " + version2);
- svg2.attr("height", 100);
- svg2.attr("width", 400);
- } catch (e) {
- log$1.error("Error while rendering info diagram");
- log$1.error(e.message);
- }
- };
- const renderer$a = {
- draw: draw$b
- };
- const diagram$b = {
- parser: parser$g,
- db: db$7,
- renderer: renderer$a,
- styles: styles$8
- };
- const infoDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$b
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$d = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 4], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 9], $V5 = [1, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V6 = [2, 5], $V7 = [1, 6, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V8 = [26, 27, 28], $V9 = [2, 8], $Va = [1, 18], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 28], $Vh = [6, 26, 27, 28, 29];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "PIE": 6, "document": 7, "showData": 8, "line": 9, "statement": 10, "txt": 11, "value": 12, "title": 13, "title_value": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "openDirective": 21, "typeDirective": 22, "closeDirective": 23, ":": 24, "argDirective": 25, "NEWLINE": 26, ";": 27, "EOF": 28, "open_directive": 29, "type_directive": 30, "arg_directive": 31, "close_directive": 32, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 6: "PIE", 8: "showData", 11: "txt", 12: "value", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 24: ":", 26: "NEWLINE", 27: ";", 28: "EOF", 29: "open_directive", 30: "type_directive", 31: "arg_directive", 32: "close_directive" },
- productions_: [0, [3, 2], [3, 2], [3, 2], [3, 3], [7, 0], [7, 2], [9, 2], [10, 0], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [5, 3], [5, 5], [4, 1], [4, 1], [4, 1], [21, 1], [22, 1], [25, 1], [23, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 4:
- yy.setShowData(true);
- break;
- case 7:
- this.$ = $$[$0 - 1];
- break;
- case 9:
- yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0]));
- break;
- case 10:
- this.$ = $$[$0].trim();
- yy.setDiagramTitle(this.$);
- break;
- case 11:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 12:
- case 13:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 14:
- yy.addSection($$[$0].substr(8));
- this.$ = $$[$0].substr(8);
- break;
- case 21:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 22:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 23:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 24:
- yy.parseDirective("}%%", "close_directive", "pie");
- break;
- }
- },
- table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, o($V5, $V6, { 7: 12, 8: [1, 13] }), o($V7, [2, 18]), o($V7, [2, 19]), o($V7, [2, 20]), { 22: 14, 30: [1, 15] }, { 30: [2, 21] }, { 1: [2, 1] }, { 1: [2, 2] }, o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 3], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($V5, $V6, { 7: 25 }), { 23: 26, 24: [1, 27], 32: $Vg }, o([24, 32], [2, 22]), o($V5, [2, 6]), { 4: 29, 26: $V1, 27: $V2, 28: $V3 }, { 12: [1, 30] }, { 14: [1, 31] }, { 16: [1, 32] }, { 18: [1, 33] }, o($V8, [2, 13]), o($V8, [2, 14]), o($V8, [2, 15]), o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 4], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($Vh, [2, 16]), { 25: 34, 31: [1, 35] }, o($Vh, [2, 24]), o($V5, [2, 7]), o($V8, [2, 9]), o($V8, [2, 10]), o($V8, [2, 11]), o($V8, [2, 12]), { 23: 36, 32: $Vg }, { 32: [2, 23] }, o($Vh, [2, 17])],
- defaultActions: { 9: [2, 21], 10: [2, 1], 11: [2, 2], 35: [2, 23] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
- }
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 29;
- case 1:
- this.begin("type_directive");
- return 30;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 24;
- case 3:
- this.popState();
- this.popState();
- return 32;
- case 4:
- return 31;
- case 5:
- break;
- case 6:
- break;
- case 7:
- return 26;
- case 8:
- break;
- case 9:
- break;
- case 10:
- this.begin("title");
- return 13;
- case 11:
- this.popState();
- return "title_value";
- case 12:
- this.begin("acc_title");
- return 15;
- case 13:
- this.popState();
- return "acc_title_value";
- case 14:
- this.begin("acc_descr");
- return 17;
- case 15:
- this.popState();
- return "acc_descr_value";
- case 16:
- this.begin("acc_descr_multiline");
- break;
- case 17:
- this.popState();
- break;
- case 18:
- return "acc_descr_multiline_value";
- case 19:
- this.begin("string");
- break;
- case 20:
- this.popState();
- break;
- case 21:
- return "txt";
- case 22:
- return 6;
- case 23:
- return 8;
- case 24:
- return "value";
- case 25:
- return 28;
- }
- },
- rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i],
- conditions: { "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "title": { "rules": [11], "inclusive": false }, "string": { "rules": [20, 21], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 12, 14, 16, 19, 22, 23, 24, 25], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$d.parser = parser$d;
- const parser$e = parser$d;
- let sections$2 = {};
- let showData = false;
- const parseDirective$6 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const addSection$2 = function(id2, value) {
- id2 = common$1.sanitizeText(id2, getConfig$1());
- if (sections$2[id2] === void 0) {
- sections$2[id2] = value;
- log$1.debug("Added new section :", id2);
}
- };
- const getSections$2 = () => sections$2;
- const setShowData = function(toggle) {
- showData = toggle;
- };
- const getShowData = function() {
- return showData;
- };
- const cleanupValue = function(value) {
- if (value.substring(0, 1) === ":") {
- value = value.substring(1).trim();
- return Number(value.trim());
- } else {
- return Number(value.trim());
+ stack || (stack = new Stack_default());
+ var stacked = stack.get(value2);
+ if (stacked) {
+ return stacked;
}
- };
- const clear$7 = function() {
- sections$2 = {};
- showData = false;
- clear$i();
- };
- const db$6 = {
- parseDirective: parseDirective$6,
- getConfig: () => getConfig$1().pie,
- addSection: addSection$2,
- getSections: getSections$2,
- cleanupValue,
- clear: clear$7,
- setAccTitle,
- getAccTitle,
- setDiagramTitle,
- getDiagramTitle,
- setShowData,
- getShowData,
- getAccDescription,
- setAccDescription
- };
- const getStyles$8 = (options2) => `
- .pieCircle{
- stroke: ${options2.pieStrokeColor};
- stroke-width : ${options2.pieStrokeWidth};
- opacity : ${options2.pieOpacity};
- }
- .pieOuterCircle{
- stroke: ${options2.pieOuterStrokeColor};
- stroke-width: ${options2.pieOuterStrokeWidth};
- fill: none;
- }
- .pieTitleText {
- text-anchor: middle;
- font-size: ${options2.pieTitleTextSize};
- fill: ${options2.pieTitleTextColor};
- font-family: ${options2.fontFamily};
- }
- .slice {
- font-family: ${options2.fontFamily};
- fill: ${options2.pieSectionTextColor};
- font-size:${options2.pieSectionTextSize};
- // fill: white;
- }
- .legend text {
- fill: ${options2.pieLegendTextColor};
- font-family: ${options2.fontFamily};
- font-size: ${options2.pieLegendTextSize};
- }
-`;
- const styles$7 = getStyles$8;
- let conf$6 = getConfig$1();
- let width;
- const height = 450;
- const draw$a = (txt, id2, _version, diagObj) => {
- var _a;
- try {
- conf$6 = getConfig$1();
- log$1.debug("Rendering info diagram\n" + txt);
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- diagObj.db.clear();
- diagObj.parser.parse(txt);
- log$1.debug("Parsed info diagram");
- const elem = doc.getElementById(id2);
- width = elem.parentElement.offsetWidth;
- if (width === void 0) {
- width = 1200;
- }
- if (conf$6.useWidth !== void 0) {
- width = conf$6.useWidth;
- }
- if (conf$6.pie.useWidth !== void 0) {
- width = conf$6.pie.useWidth;
- }
- const diagram2 = root2.select("#" + id2);
- configureSvgSize(diagram2, height, width, conf$6.pie.useMaxWidth);
- elem.setAttribute("viewBox", "0 0 " + width + " " + height);
- var margin = 40;
- var legendRectSize = 18;
- var legendSpacing = 4;
- var radius = Math.min(width, height) / 2 - margin;
- var svg2 = diagram2.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
- var data = diagObj.db.getSections();
- var sum = 0;
- Object.keys(data).forEach(function(key) {
- sum += data[key];
- });
- const themeVariables = conf$6.themeVariables;
- var myGeneratedColors = [
- themeVariables.pie1,
- themeVariables.pie2,
- themeVariables.pie3,
- themeVariables.pie4,
- themeVariables.pie5,
- themeVariables.pie6,
- themeVariables.pie7,
- themeVariables.pie8,
- themeVariables.pie9,
- themeVariables.pie10,
- themeVariables.pie11,
- themeVariables.pie12
- ];
- const textPosition = ((_a = conf$6.pie) == null ? void 0 : _a.textPosition) ?? 0.75;
- let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);
- outerStrokeWidth ?? (outerStrokeWidth = 2);
- var color2 = ordinal().range(myGeneratedColors);
- var pieData = Object.entries(data).map(function(el, idx) {
- return {
- order: idx,
- name: el[0],
- value: el[1]
- };
- });
- var pie2 = d3pie().value(function(d) {
- return d.value;
- }).sort(function(a, b) {
- return a.order - b.order;
+ stack.set(value2, result);
+ if (isSet_default(value2)) {
+ value2.forEach(function(subValue) {
+ result.add(baseClone(subValue, bitmask, customizer, subValue, value2, stack));
});
- var dataReady = pie2(pieData);
- var arcGenerator = d3arc().innerRadius(0).outerRadius(radius);
- var labelArcGenerator = d3arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);
- svg2.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius + outerStrokeWidth / 2).attr("class", "pieOuterCircle");
- svg2.selectAll("mySlices").data(dataReady).enter().append("path").attr("d", arcGenerator).attr("fill", function(d) {
- return color2(d.data.name);
- }).attr("class", "pieCircle");
- svg2.selectAll("mySlices").data(dataReady).enter().append("text").text(function(d) {
- return (d.data.value / sum * 100).toFixed(0) + "%";
- }).attr("transform", function(d) {
- return "translate(" + labelArcGenerator.centroid(d) + ")";
- }).style("text-anchor", "middle").attr("class", "slice");
- svg2.append("text").text(diagObj.db.getDiagramTitle()).attr("x", 0).attr("y", -(height - 50) / 2).attr("class", "pieTitleText");
- var legend = svg2.selectAll(".legend").data(color2.domain()).enter().append("g").attr("class", "legend").attr("transform", function(d, i2) {
- const height2 = legendRectSize + legendSpacing;
- const offset = height2 * color2.domain().length / 2;
- const horizontal = 12 * legendRectSize;
- const vertical = i2 * height2 - offset;
- return "translate(" + horizontal + "," + vertical + ")";
- });
- legend.append("rect").attr("width", legendRectSize).attr("height", legendRectSize).style("fill", color2).style("stroke", color2);
- legend.data(dataReady).append("text").attr("x", legendRectSize + legendSpacing).attr("y", legendRectSize - legendSpacing).text(function(d) {
- if (diagObj.db.getShowData() || conf$6.showData || conf$6.pie.showData) {
- return d.data.name + " [" + d.data.value + "]";
- } else {
- return d.data.name;
- }
+ } else if (isMap_default(value2)) {
+ value2.forEach(function(subValue, key2) {
+ result.set(key2, baseClone(subValue, bitmask, customizer, key2, value2, stack));
});
- } catch (e) {
- log$1.error("Error while rendering info diagram");
- log$1.error(e);
}
- };
- const renderer$9 = {
- draw: draw$a
- };
- const diagram$a = {
- parser: parser$e,
- db: db$6,
- renderer: renderer$9,
- styles: styles$7
- };
- const pieDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$a
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$b = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 8], $V5 = [5, 6, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72], $V6 = [1, 22], $V7 = [2, 13], $V8 = [1, 26], $V9 = [1, 27], $Va = [1, 28], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 24], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 36], $Vi = [71, 72], $Vj = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 60, 62, 71, 72], $Vk = [1, 56], $Vl = [1, 57], $Vm = [1, 58], $Vn = [1, 59], $Vo = [1, 60], $Vp = [1, 61], $Vq = [1, 62], $Vr = [62, 63], $Vs = [1, 74], $Vt = [1, 70], $Vu = [1, 71], $Vv = [1, 72], $Vw = [1, 73], $Vx = [1, 75], $Vy = [1, 79], $Vz = [1, 80], $VA = [1, 77], $VB = [1, 78], $VC = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "openDirective": 9, "typeDirective": 10, "closeDirective": 11, ":": 12, "argDirective": 13, "acc_title": 14, "acc_title_value": 15, "acc_descr": 16, "acc_descr_value": 17, "acc_descr_multiline_value": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "requirementDef": 23, "elementDef": 24, "relationshipDef": 25, "requirementType": 26, "requirementName": 27, "STRUCT_START": 28, "requirementBody": 29, "ID": 30, "COLONSEP": 31, "id": 32, "TEXT": 33, "text": 34, "RISK": 35, "riskLevel": 36, "VERIFYMTHD": 37, "verifyType": 38, "STRUCT_STOP": 39, "REQUIREMENT": 40, "FUNCTIONAL_REQUIREMENT": 41, "INTERFACE_REQUIREMENT": 42, "PERFORMANCE_REQUIREMENT": 43, "PHYSICAL_REQUIREMENT": 44, "DESIGN_CONSTRAINT": 45, "LOW_RISK": 46, "MED_RISK": 47, "HIGH_RISK": 48, "VERIFY_ANALYSIS": 49, "VERIFY_DEMONSTRATION": 50, "VERIFY_INSPECTION": 51, "VERIFY_TEST": 52, "ELEMENT": 53, "elementName": 54, "elementBody": 55, "TYPE": 56, "type": 57, "DOCREF": 58, "ref": 59, "END_ARROW_L": 60, "relationship": 61, "LINE": 62, "END_ARROW_R": 63, "CONTAINS": 64, "COPIES": 65, "DERIVES": 66, "SATISFIES": 67, "VERIFIES": 68, "REFINES": 69, "TRACES": 70, "unqString": 71, "qString": 72, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 12: ":", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 28: "STRUCT_START", 30: "ID", 31: "COLONSEP", 33: "TEXT", 35: "RISK", 37: "VERIFYMTHD", 39: "STRUCT_STOP", 40: "REQUIREMENT", 41: "FUNCTIONAL_REQUIREMENT", 42: "INTERFACE_REQUIREMENT", 43: "PERFORMANCE_REQUIREMENT", 44: "PHYSICAL_REQUIREMENT", 45: "DESIGN_CONSTRAINT", 46: "LOW_RISK", 47: "MED_RISK", 48: "HIGH_RISK", 49: "VERIFY_ANALYSIS", 50: "VERIFY_DEMONSTRATION", 51: "VERIFY_INSPECTION", 52: "VERIFY_TEST", 53: "ELEMENT", 56: "TYPE", 58: "DOCREF", 60: "END_ARROW_L", 62: "LINE", 63: "END_ARROW_R", 64: "CONTAINS", 65: "COPIES", 66: "DERIVES", 67: "SATISFIES", 68: "VERIFIES", 69: "REFINES", 70: "TRACES", 71: "unqString", 72: "qString" },
- productions_: [0, [3, 3], [3, 2], [3, 4], [4, 3], [4, 5], [4, 2], [4, 2], [4, 1], [9, 1], [10, 1], [13, 1], [11, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [23, 5], [29, 5], [29, 5], [29, 5], [29, 5], [29, 2], [29, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [36, 1], [36, 1], [36, 1], [38, 1], [38, 1], [38, 1], [38, 1], [24, 5], [55, 5], [55, 5], [55, 2], [55, 1], [25, 5], [25, 5], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [27, 1], [27, 1], [32, 1], [32, 1], [34, 1], [34, 1], [54, 1], [54, 1], [57, 1], [57, 1], [59, 1], [59, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 6:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 7:
- case 8:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 9:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 10:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 11:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 12:
- yy.parseDirective("}%%", "close_directive", "pie");
- break;
- case 13:
- this.$ = [];
- break;
- case 19:
- yy.addRequirement($$[$0 - 3], $$[$0 - 4]);
- break;
- case 20:
- yy.setNewReqId($$[$0 - 2]);
- break;
- case 21:
- yy.setNewReqText($$[$0 - 2]);
- break;
- case 22:
- yy.setNewReqRisk($$[$0 - 2]);
- break;
- case 23:
- yy.setNewReqVerifyMethod($$[$0 - 2]);
- break;
- case 26:
- this.$ = yy.RequirementType.REQUIREMENT;
- break;
- case 27:
- this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;
- break;
- case 28:
- this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;
- break;
- case 29:
- this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;
- break;
- case 30:
- this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;
- break;
- case 31:
- this.$ = yy.RequirementType.DESIGN_CONSTRAINT;
- break;
- case 32:
- this.$ = yy.RiskLevel.LOW_RISK;
- break;
- case 33:
- this.$ = yy.RiskLevel.MED_RISK;
- break;
- case 34:
- this.$ = yy.RiskLevel.HIGH_RISK;
- break;
- case 35:
- this.$ = yy.VerifyType.VERIFY_ANALYSIS;
- break;
- case 36:
- this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;
- break;
- case 37:
- this.$ = yy.VerifyType.VERIFY_INSPECTION;
- break;
- case 38:
- this.$ = yy.VerifyType.VERIFY_TEST;
- break;
- case 39:
- yy.addElement($$[$0 - 3]);
- break;
- case 40:
- yy.setNewElementType($$[$0 - 2]);
- break;
- case 41:
- yy.setNewElementDocRef($$[$0 - 2]);
- break;
- case 44:
- yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);
- break;
- case 45:
- yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);
- break;
- case 46:
- this.$ = yy.Relationships.CONTAINS;
- break;
- case 47:
- this.$ = yy.Relationships.COPIES;
- break;
- case 48:
- this.$ = yy.Relationships.DERIVES;
- break;
- case 49:
- this.$ = yy.Relationships.SATISFIES;
- break;
- case 50:
- this.$ = yy.Relationships.VERIFIES;
- break;
- case 51:
- this.$ = yy.Relationships.REFINES;
- break;
- case 52:
- this.$ = yy.Relationships.TRACES;
- break;
- }
- },
- table: [{ 3: 1, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: [1, 9], 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 5: [1, 11] }, { 10: 12, 20: [1, 13] }, { 15: [1, 14] }, { 17: [1, 15] }, o($V5, [2, 8]), { 20: [2, 9] }, { 3: 16, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [2, 2] }, { 4: 21, 5: $V6, 7: 17, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 11: 34, 12: [1, 35], 22: $Vh }, o([12, 22], [2, 10]), o($V5, [2, 6]), o($V5, [2, 7]), { 1: [2, 1] }, { 8: [1, 37] }, { 4: 21, 5: $V6, 7: 38, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 39, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 40, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 41, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 42, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 27: 43, 71: [1, 44], 72: [1, 45] }, { 54: 46, 71: [1, 47], 72: [1, 48] }, { 60: [1, 49], 62: [1, 50] }, o($Vi, [2, 26]), o($Vi, [2, 27]), o($Vi, [2, 28]), o($Vi, [2, 29]), o($Vi, [2, 30]), o($Vi, [2, 31]), o($Vj, [2, 55]), o($Vj, [2, 56]), o($V5, [2, 4]), { 13: 51, 21: [1, 52] }, o($V5, [2, 12]), { 1: [2, 3] }, { 8: [2, 14] }, { 8: [2, 15] }, { 8: [2, 16] }, { 8: [2, 17] }, { 8: [2, 18] }, { 28: [1, 53] }, { 28: [2, 53] }, { 28: [2, 54] }, { 28: [1, 54] }, { 28: [2, 59] }, { 28: [2, 60] }, { 61: 55, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 61: 63, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 11: 64, 22: $Vh }, { 22: [2, 11] }, { 5: [1, 65] }, { 5: [1, 66] }, { 62: [1, 67] }, o($Vr, [2, 46]), o($Vr, [2, 47]), o($Vr, [2, 48]), o($Vr, [2, 49]), o($Vr, [2, 50]), o($Vr, [2, 51]), o($Vr, [2, 52]), { 63: [1, 68] }, o($V5, [2, 5]), { 5: $Vs, 29: 69, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 76, 56: $VA, 58: $VB }, { 32: 81, 71: $Vf, 72: $Vg }, { 32: 82, 71: $Vf, 72: $Vg }, o($VC, [2, 19]), { 31: [1, 83] }, { 31: [1, 84] }, { 31: [1, 85] }, { 31: [1, 86] }, { 5: $Vs, 29: 87, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, o($VC, [2, 25]), o($VC, [2, 39]), { 31: [1, 88] }, { 31: [1, 89] }, { 5: $Vy, 39: $Vz, 55: 90, 56: $VA, 58: $VB }, o($VC, [2, 43]), o($VC, [2, 44]), o($VC, [2, 45]), { 32: 91, 71: $Vf, 72: $Vg }, { 34: 92, 71: [1, 93], 72: [1, 94] }, { 36: 95, 46: [1, 96], 47: [1, 97], 48: [1, 98] }, { 38: 99, 49: [1, 100], 50: [1, 101], 51: [1, 102], 52: [1, 103] }, o($VC, [2, 24]), { 57: 104, 71: [1, 105], 72: [1, 106] }, { 59: 107, 71: [1, 108], 72: [1, 109] }, o($VC, [2, 42]), { 5: [1, 110] }, { 5: [1, 111] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [1, 112] }, { 5: [2, 32] }, { 5: [2, 33] }, { 5: [2, 34] }, { 5: [1, 113] }, { 5: [2, 35] }, { 5: [2, 36] }, { 5: [2, 37] }, { 5: [2, 38] }, { 5: [1, 114] }, { 5: [2, 61] }, { 5: [2, 62] }, { 5: [1, 115] }, { 5: [2, 63] }, { 5: [2, 64] }, { 5: $Vs, 29: 116, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 117, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 118, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 119, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 120, 56: $VA, 58: $VB }, { 5: $Vy, 39: $Vz, 55: 121, 56: $VA, 58: $VB }, o($VC, [2, 20]), o($VC, [2, 21]), o($VC, [2, 22]), o($VC, [2, 23]), o($VC, [2, 40]), o($VC, [2, 41])],
- defaultActions: { 8: [2, 9], 10: [2, 2], 16: [2, 1], 37: [2, 3], 38: [2, 14], 39: [2, 15], 40: [2, 16], 41: [2, 17], 42: [2, 18], 44: [2, 53], 45: [2, 54], 47: [2, 59], 48: [2, 60], 52: [2, 11], 93: [2, 57], 94: [2, 58], 96: [2, 32], 97: [2, 33], 98: [2, 34], 100: [2, 35], 101: [2, 36], 102: [2, 37], 103: [2, 38], 105: [2, 61], 106: [2, 62], 108: [2, 63], 109: [2, 64] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
- }
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
+ var keysFunc = isFull ? isFlat ? getAllKeysIn_default : getAllKeys_default : isFlat ? keysIn_default : keys_default;
+ var props = isArr ? void 0 : keysFunc(value2);
+ arrayEach_default(props || value2, function(subValue, key2) {
+ if (props) {
+ key2 = subValue;
+ subValue = value2[key2];
}
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 19;
- case 1:
- this.begin("type_directive");
- return 20;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 12;
- case 3:
- this.popState();
- this.popState();
- return 22;
- case 4:
- return 21;
- case 5:
- return "title";
- case 6:
- this.begin("acc_title");
- return 14;
- case 7:
- this.popState();
- return "acc_title_value";
- case 8:
- this.begin("acc_descr");
- return 16;
- case 9:
- this.popState();
- return "acc_descr_value";
- case 10:
- this.begin("acc_descr_multiline");
- break;
- case 11:
- this.popState();
- break;
- case 12:
- return "acc_descr_multiline_value";
- case 13:
- return 5;
- case 14:
- break;
- case 15:
- break;
- case 16:
- break;
- case 17:
- return 8;
- case 18:
- return 6;
- case 19:
- return 28;
- case 20:
- return 39;
- case 21:
- return 31;
- case 22:
- return 30;
- case 23:
- return 33;
- case 24:
- return 35;
- case 25:
- return 37;
- case 26:
- return 40;
- case 27:
- return 41;
- case 28:
- return 42;
- case 29:
- return 43;
- case 30:
- return 44;
- case 31:
- return 45;
- case 32:
- return 46;
- case 33:
- return 47;
- case 34:
- return 48;
- case 35:
- return 49;
- case 36:
- return 50;
- case 37:
- return 51;
- case 38:
- return 52;
- case 39:
- return 53;
- case 40:
- return 64;
- case 41:
- return 65;
- case 42:
- return 66;
- case 43:
- return 67;
- case 44:
- return 68;
- case 45:
- return 69;
- case 46:
- return 70;
- case 47:
- return 56;
- case 48:
- return 58;
- case 49:
- return 60;
- case 50:
- return 63;
- case 51:
- return 62;
- case 52:
- this.begin("string");
- break;
- case 53:
- this.popState();
- break;
- case 54:
- return "qString";
- case 55:
- yy_.yytext = yy_.yytext.trim();
- return 71;
- }
- },
- rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i],
- conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [53, 54], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 55], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$b.parser = parser$b;
- const parser$c = parser$b;
- let relations$1 = [];
- let latestRequirement = {};
- let requirements = {};
- let latestElement = {};
- let elements$1 = {};
- const RequirementType = {
- REQUIREMENT: "Requirement",
- FUNCTIONAL_REQUIREMENT: "Functional Requirement",
- INTERFACE_REQUIREMENT: "Interface Requirement",
- PERFORMANCE_REQUIREMENT: "Performance Requirement",
- PHYSICAL_REQUIREMENT: "Physical Requirement",
- DESIGN_CONSTRAINT: "Design Constraint"
- };
- const RiskLevel = {
- LOW_RISK: "Low",
- MED_RISK: "Medium",
- HIGH_RISK: "High"
- };
- const VerifyType = {
- VERIFY_ANALYSIS: "Analysis",
- VERIFY_DEMONSTRATION: "Demonstration",
- VERIFY_INSPECTION: "Inspection",
- VERIFY_TEST: "Test"
- };
- const Relationships = {
- CONTAINS: "contains",
- COPIES: "copies",
- DERIVES: "derives",
- SATISFIES: "satisfies",
- VERIFIES: "verifies",
- REFINES: "refines",
- TRACES: "traces"
- };
- const parseDirective$5 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const addRequirement = (name2, type2) => {
- if (requirements[name2] === void 0) {
- requirements[name2] = {
- name: name2,
- type: type2,
- id: latestRequirement.id,
- text: latestRequirement.text,
- risk: latestRequirement.risk,
- verifyMethod: latestRequirement.verifyMethod
- };
- }
- latestRequirement = {};
- return requirements[name2];
- };
- const getRequirements = () => requirements;
- const setNewReqId = (id2) => {
- if (latestRequirement !== void 0) {
- latestRequirement.id = id2;
- }
- };
- const setNewReqText = (text2) => {
- if (latestRequirement !== void 0) {
- latestRequirement.text = text2;
- }
- };
- const setNewReqRisk = (risk) => {
- if (latestRequirement !== void 0) {
- latestRequirement.risk = risk;
+ assignValue_default(result, key2, baseClone(subValue, bitmask, customizer, key2, value2, stack));
+ });
+ return result;
+ }
+ var CLONE_DEEP_FLAG, CLONE_FLAT_FLAG, CLONE_SYMBOLS_FLAG, argsTag3, arrayTag2, boolTag3, dateTag3, errorTag2, funcTag3, genTag2, mapTag5, numberTag3, objectTag4, regexpTag3, setTag5, stringTag3, symbolTag3, weakMapTag3, arrayBufferTag3, dataViewTag4, float32Tag3, float64Tag3, int8Tag3, int16Tag3, int32Tag3, uint8Tag3, uint8ClampedTag3, uint16Tag3, uint32Tag3, cloneableTags, baseClone_default;
+ var init_baseClone = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js"() {
+ "use strict";
+ init_Stack();
+ init_arrayEach();
+ init_assignValue();
+ init_baseAssign();
+ init_baseAssignIn();
+ init_cloneBuffer();
+ init_copyArray();
+ init_copySymbols();
+ init_copySymbolsIn();
+ init_getAllKeys();
+ init_getAllKeysIn();
+ init_getTag();
+ init_initCloneArray();
+ init_initCloneByTag();
+ init_initCloneObject();
+ init_isArray();
+ init_isBuffer();
+ init_isMap();
+ init_isObject();
+ init_isSet();
+ init_keys();
+ init_keysIn();
+ CLONE_DEEP_FLAG = 1;
+ CLONE_FLAT_FLAG = 2;
+ CLONE_SYMBOLS_FLAG = 4;
+ argsTag3 = "[object Arguments]";
+ arrayTag2 = "[object Array]";
+ boolTag3 = "[object Boolean]";
+ dateTag3 = "[object Date]";
+ errorTag2 = "[object Error]";
+ funcTag3 = "[object Function]";
+ genTag2 = "[object GeneratorFunction]";
+ mapTag5 = "[object Map]";
+ numberTag3 = "[object Number]";
+ objectTag4 = "[object Object]";
+ regexpTag3 = "[object RegExp]";
+ setTag5 = "[object Set]";
+ stringTag3 = "[object String]";
+ symbolTag3 = "[object Symbol]";
+ weakMapTag3 = "[object WeakMap]";
+ arrayBufferTag3 = "[object ArrayBuffer]";
+ dataViewTag4 = "[object DataView]";
+ float32Tag3 = "[object Float32Array]";
+ float64Tag3 = "[object Float64Array]";
+ int8Tag3 = "[object Int8Array]";
+ int16Tag3 = "[object Int16Array]";
+ int32Tag3 = "[object Int32Array]";
+ uint8Tag3 = "[object Uint8Array]";
+ uint8ClampedTag3 = "[object Uint8ClampedArray]";
+ uint16Tag3 = "[object Uint16Array]";
+ uint32Tag3 = "[object Uint32Array]";
+ cloneableTags = {};
+ cloneableTags[argsTag3] = cloneableTags[arrayTag2] = cloneableTags[arrayBufferTag3] = cloneableTags[dataViewTag4] = cloneableTags[boolTag3] = cloneableTags[dateTag3] = cloneableTags[float32Tag3] = cloneableTags[float64Tag3] = cloneableTags[int8Tag3] = cloneableTags[int16Tag3] = cloneableTags[int32Tag3] = cloneableTags[mapTag5] = cloneableTags[numberTag3] = cloneableTags[objectTag4] = cloneableTags[regexpTag3] = cloneableTags[setTag5] = cloneableTags[stringTag3] = cloneableTags[symbolTag3] = cloneableTags[uint8Tag3] = cloneableTags[uint8ClampedTag3] = cloneableTags[uint16Tag3] = cloneableTags[uint32Tag3] = true;
+ cloneableTags[errorTag2] = cloneableTags[funcTag3] = cloneableTags[weakMapTag3] = false;
+ __name(baseClone, "baseClone");
+ baseClone_default = baseClone;
}
- };
- const setNewReqVerifyMethod = (verifyMethod) => {
- if (latestRequirement !== void 0) {
- latestRequirement.verifyMethod = verifyMethod;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/clone.js
+ function clone(value2) {
+ return baseClone_default(value2, CLONE_SYMBOLS_FLAG2);
+ }
+ var CLONE_SYMBOLS_FLAG2, clone_default2;
+ var init_clone2 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/clone.js"() {
+ "use strict";
+ init_baseClone();
+ CLONE_SYMBOLS_FLAG2 = 4;
+ __name(clone, "clone");
+ clone_default2 = clone;
}
- };
- const addElement = (name2) => {
- if (elements$1[name2] === void 0) {
- elements$1[name2] = {
- name: name2,
- type: latestElement.type,
- docRef: latestElement.docRef
- };
- log$1.info("Added new requirement: ", name2);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js
+ function cloneDeep(value2) {
+ return baseClone_default(value2, CLONE_DEEP_FLAG2 | CLONE_SYMBOLS_FLAG3);
+ }
+ var CLONE_DEEP_FLAG2, CLONE_SYMBOLS_FLAG3, cloneDeep_default;
+ var init_cloneDeep = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js"() {
+ "use strict";
+ init_baseClone();
+ CLONE_DEEP_FLAG2 = 1;
+ CLONE_SYMBOLS_FLAG3 = 4;
+ __name(cloneDeep, "cloneDeep");
+ cloneDeep_default = cloneDeep;
}
- latestElement = {};
- return elements$1[name2];
- };
- const getElements = () => elements$1;
- const setNewElementType = (type2) => {
- if (latestElement !== void 0) {
- latestElement.type = type2;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/compact.js
+ function compact(array4) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length, resIndex = 0, result = [];
+ while (++index < length2) {
+ var value2 = array4[index];
+ if (value2) {
+ result[resIndex++] = value2;
+ }
}
- };
- const setNewElementDocRef = (docRef) => {
- if (latestElement !== void 0) {
- latestElement.docRef = docRef;
+ return result;
+ }
+ var compact_default;
+ var init_compact = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/compact.js"() {
+ "use strict";
+ __name(compact, "compact");
+ compact_default = compact;
}
- };
- const addRelationship = (type2, src, dst) => {
- relations$1.push({
- type: type2,
- src,
- dst
- });
- };
- const getRelationships = () => relations$1;
- const clear$6 = () => {
- relations$1 = [];
- latestRequirement = {};
- requirements = {};
- latestElement = {};
- elements$1 = {};
- clear$i();
- };
- const db$5 = {
- RequirementType,
- RiskLevel,
- VerifyType,
- Relationships,
- parseDirective: parseDirective$5,
- getConfig: () => getConfig$1().req,
- addRequirement,
- getRequirements,
- setNewReqId,
- setNewReqText,
- setNewReqRisk,
- setNewReqVerifyMethod,
- setAccTitle,
- getAccTitle,
- setAccDescription,
- getAccDescription,
- addElement,
- getElements,
- setNewElementType,
- setNewElementDocRef,
- addRelationship,
- getRelationships,
- clear: clear$6
- };
- const getStyles$7 = (options2) => `
+ });
- marker {
- fill: ${options2.relationColor};
- stroke: ${options2.relationColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js
+ function setCacheAdd(value2) {
+ this.__data__.set(value2, HASH_UNDEFINED3);
+ return this;
}
+ var HASH_UNDEFINED3, setCacheAdd_default;
+ var init_setCacheAdd = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js"() {
+ "use strict";
+ HASH_UNDEFINED3 = "__lodash_hash_undefined__";
+ __name(setCacheAdd, "setCacheAdd");
+ setCacheAdd_default = setCacheAdd;
+ }
+ });
- marker.cross {
- stroke: ${options2.lineColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js
+ function setCacheHas(value2) {
+ return this.__data__.has(value2);
}
+ var setCacheHas_default;
+ var init_setCacheHas = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js"() {
+ "use strict";
+ __name(setCacheHas, "setCacheHas");
+ setCacheHas_default = setCacheHas;
+ }
+ });
- svg {
- font-family: ${options2.fontFamily};
- font-size: ${options2.fontSize};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js
+ function SetCache(values2) {
+ var index = -1, length2 = values2 == null ? 0 : values2.length;
+ this.__data__ = new MapCache_default();
+ while (++index < length2) {
+ this.add(values2[index]);
+ }
}
+ var SetCache_default;
+ var init_SetCache = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js"() {
+ "use strict";
+ init_MapCache();
+ init_setCacheAdd();
+ init_setCacheHas();
+ __name(SetCache, "SetCache");
+ SetCache.prototype.add = SetCache.prototype.push = setCacheAdd_default;
+ SetCache.prototype.has = setCacheHas_default;
+ SetCache_default = SetCache;
+ }
+ });
- .reqBox {
- fill: ${options2.requirementBackground};
- fill-opacity: 1.0;
- stroke: ${options2.requirementBorderColor};
- stroke-width: ${options2.requirementBorderSize};
- }
-
- .reqTitle, .reqLabel{
- fill: ${options2.requirementTextColor};
- }
- .reqLabelBox {
- fill: ${options2.relationLabelBackground};
- fill-opacity: 1.0;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js
+ function arraySome(array4, predicate) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length;
+ while (++index < length2) {
+ if (predicate(array4[index], index, array4)) {
+ return true;
+ }
+ }
+ return false;
}
+ var arraySome_default;
+ var init_arraySome = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js"() {
+ "use strict";
+ __name(arraySome, "arraySome");
+ arraySome_default = arraySome;
+ }
+ });
- .req-title-line {
- stroke: ${options2.requirementBorderColor};
- stroke-width: ${options2.requirementBorderSize};
- }
- .relationshipLine {
- stroke: ${options2.relationColor};
- stroke-width: 1;
- }
- .relationshipLabel {
- fill: ${options2.relationLabelColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js
+ function cacheHas(cache3, key) {
+ return cache3.has(key);
}
+ var cacheHas_default;
+ var init_cacheHas = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js"() {
+ "use strict";
+ __name(cacheHas, "cacheHas");
+ cacheHas_default = cacheHas;
+ }
+ });
-`;
- const styles$6 = getStyles$7;
- const ReqMarkers = {
- CONTAINS: "contains",
- ARROW: "arrow"
- };
- const insertLineEndings = (parentNode, conf2) => {
- let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf2.line_height / 2).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("g");
- containsNode.append("circle").attr("cx", conf2.line_height / 2).attr("cy", conf2.line_height / 2).attr("r", conf2.line_height / 2).attr("fill", "none");
- containsNode.append("line").attr("x1", 0).attr("x2", conf2.line_height).attr("y1", conf2.line_height / 2).attr("y2", conf2.line_height / 2).attr("stroke-width", 1);
- containsNode.append("line").attr("y1", 0).attr("y2", conf2.line_height).attr("x1", conf2.line_height / 2).attr("x2", conf2.line_height / 2).attr("stroke-width", 1);
- parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf2.line_height).attr("refY", 0.5 * conf2.line_height).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("path").attr(
- "d",
- `M0,0
- L${conf2.line_height},${conf2.line_height / 2}
- M${conf2.line_height},${conf2.line_height / 2}
- L0,${conf2.line_height}`
- ).attr("stroke-width", 1);
- };
- const markers = {
- ReqMarkers,
- insertLineEndings
- };
- let conf$5 = {};
- let relCnt = 0;
- const newRectNode = (parentNode, id2) => {
- return parentNode.insert("rect", "#" + id2).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf$5.rect_min_width + "px").attr("height", conf$5.rect_min_height + "px");
- };
- const newTitleNode = (parentNode, id2, txts) => {
- let x2 = conf$5.rect_min_width / 2;
- let title2 = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id2).attr("x", x2).attr("y", conf$5.rect_padding).attr("dominant-baseline", "hanging");
- let i2 = 0;
- txts.forEach((textStr) => {
- if (i2 == 0) {
- title2.append("tspan").attr("text-anchor", "middle").attr("x", conf$5.rect_min_width / 2).attr("dy", 0).text(textStr);
- } else {
- title2.append("tspan").attr("text-anchor", "middle").attr("x", conf$5.rect_min_width / 2).attr("dy", conf$5.line_height * 0.75).text(textStr);
- }
- i2++;
- });
- let yPadding = 1.5 * conf$5.rect_padding;
- let linePadding = i2 * conf$5.line_height * 0.75;
- let totalY = yPadding + linePadding;
- parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf$5.rect_min_width).attr("y1", totalY).attr("y2", totalY);
- return {
- titleNode: title2,
- y: totalY
- };
- };
- const newBodyNode = (parentNode, id2, txts, yStart) => {
- let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id2).attr("x", conf$5.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging");
- let currentRow = 0;
- const charLimit = 30;
- let wrappedTxts = [];
- txts.forEach((textStr) => {
- let currentTextLen = textStr.length;
- while (currentTextLen > charLimit && currentRow < 3) {
- let firstPart = textStr.substring(0, charLimit);
- textStr = textStr.substring(charLimit, textStr.length);
- currentTextLen = textStr.length;
- wrappedTxts[wrappedTxts.length] = firstPart;
- currentRow++;
- }
- if (currentRow == 3) {
- let lastStr = wrappedTxts[wrappedTxts.length - 1];
- wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "...";
- } else {
- wrappedTxts[wrappedTxts.length] = textStr;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js
+ function equalArrays(array4, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array4.length, othLength = other.length;
+ if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
+ return false;
+ }
+ var arrStacked = stack.get(array4);
+ var othStacked = stack.get(other);
+ if (arrStacked && othStacked) {
+ return arrStacked == other && othStacked == array4;
+ }
+ var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache_default() : void 0;
+ stack.set(array4, other);
+ stack.set(other, array4);
+ while (++index < arrLength) {
+ var arrValue = array4[index], othValue = other[index];
+ if (customizer) {
+ var compared = isPartial ? customizer(othValue, arrValue, index, other, array4, stack) : customizer(arrValue, othValue, index, array4, other, stack);
}
- currentRow = 0;
- });
- wrappedTxts.forEach((textStr) => {
- body.append("tspan").attr("x", conf$5.rect_padding).attr("dy", conf$5.line_height).text(textStr);
- });
- return body;
- };
- const addEdgeLabel = (parentNode, svgPath, conf2, txt) => {
- const len = svgPath.node().getTotalLength();
- const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
- const labelId = "rel" + relCnt;
- relCnt++;
- const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt);
- const labelBBox = labelNode.node().getBBox();
- parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%");
- };
- const drawRelationshipFromLayout = function(svg2, rel, g, insert, diagObj) {
- const edge = g.edge(elementString(rel.src), elementString(rel.dst));
- const lineFunction = line$1().x(function(d) {
- return d.x;
- }).y(function(d) {
- return d.y;
- });
- const svgPath = svg2.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none");
- if (rel.type == diagObj.db.Relationships.CONTAINS) {
- svgPath.attr(
- "marker-start",
- "url(" + common$1.getUrl(conf$5.arrowMarkerAbsolute) + "#" + rel.type + "_line_ending)"
- );
- } else {
- svgPath.attr("stroke-dasharray", "10,7");
- svgPath.attr(
- "marker-end",
- "url(" + common$1.getUrl(conf$5.arrowMarkerAbsolute) + "#" + markers.ReqMarkers.ARROW + "_line_ending)"
- );
- }
- addEdgeLabel(svg2, svgPath, conf$5, `<<${rel.type}>>`);
- return;
- };
- const drawReqs = (reqs, graph, svgNode2) => {
- Object.keys(reqs).forEach((reqName) => {
- let req = reqs[reqName];
- reqName = elementString(reqName);
- log$1.info("Added new requirement: ", reqName);
- const groupNode = svgNode2.append("g").attr("id", reqName);
- const textId = "req-" + reqName;
- const rectNode = newRectNode(groupNode, textId);
- let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [
- `<<${req.type}>>`,
- `${req.name}`
- ]);
- newBodyNode(
- groupNode,
- reqName + "_body",
- [
- `Id: ${req.id}`,
- `Text: ${req.text}`,
- `Risk: ${req.risk}`,
- `Verification: ${req.verifyMethod}`
- ],
- titleNodeInfo.y
- );
- const rectBBox = rectNode.node().getBBox();
- graph.setNode(reqName, {
- width: rectBBox.width,
- height: rectBBox.height,
- shape: "rect",
- id: reqName
- });
- });
- };
- const drawElements = (els, graph, svgNode2) => {
- Object.keys(els).forEach((elName) => {
- let el = els[elName];
- const id2 = elementString(elName);
- const groupNode = svgNode2.append("g").attr("id", id2);
- const textId = "element-" + id2;
- const rectNode = newRectNode(groupNode, textId);
- let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<>`, `${elName}`]);
- newBodyNode(
- groupNode,
- textId + "_body",
- [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`],
- titleNodeInfo.y
- );
- const rectBBox = rectNode.node().getBBox();
- graph.setNode(id2, {
- width: rectBBox.width,
- height: rectBBox.height,
- shape: "rect",
- id: id2
- });
- });
- };
- const addRelationships = (relationships2, g) => {
- relationships2.forEach(function(r) {
- let src = elementString(r.src);
- let dst = elementString(r.dst);
- g.setEdge(src, dst, { relationship: r });
- });
- return relationships2;
- };
- const adjustEntities = function(svgNode2, graph) {
- graph.nodes().forEach(function(v) {
- if (v !== void 0 && graph.node(v) !== void 0) {
- svgNode2.select("#" + v);
- svgNode2.select("#" + v).attr(
- "transform",
- "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
- );
+ if (compared !== void 0) {
+ if (compared) {
+ continue;
+ }
+ result = false;
+ break;
}
+ if (seen) {
+ if (!arraySome_default(other, function(othValue2, othIndex) {
+ if (!cacheHas_default(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
+ return seen.push(othIndex);
+ }
+ })) {
+ result = false;
+ break;
+ }
+ } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
+ result = false;
+ break;
+ }
+ }
+ stack["delete"](array4);
+ stack["delete"](other);
+ return result;
+ }
+ var COMPARE_PARTIAL_FLAG, COMPARE_UNORDERED_FLAG, equalArrays_default;
+ var init_equalArrays = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js"() {
+ "use strict";
+ init_SetCache();
+ init_arraySome();
+ init_cacheHas();
+ COMPARE_PARTIAL_FLAG = 1;
+ COMPARE_UNORDERED_FLAG = 2;
+ __name(equalArrays, "equalArrays");
+ equalArrays_default = equalArrays;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js
+ function mapToArray(map5) {
+ var index = -1, result = Array(map5.size);
+ map5.forEach(function(value2, key) {
+ result[++index] = [key, value2];
});
- return;
- };
- const elementString = (str2) => {
- return str2.replace(/\s/g, "").replace(/\./g, "_");
- };
- const draw$9 = (text2, id2, _version, diagObj) => {
- conf$5 = getConfig$1().requirement;
- diagObj.db.clear();
- diagObj.parser.parse(text2);
- const securityLevel = conf$5.securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const svg2 = root2.select(`[id='${id2}']`);
- markers.insertLineEndings(svg2, conf$5);
- const g = new Graph({
- multigraph: false,
- compound: false,
- directed: true
- }).setGraph({
- rankdir: conf$5.layoutDirection,
- marginx: 20,
- marginy: 20,
- nodesep: 100,
- edgesep: 100,
- ranksep: 100
- }).setDefaultEdgeLabel(function() {
- return {};
- });
- let requirements2 = diagObj.db.getRequirements();
- let elements2 = diagObj.db.getElements();
- let relationships2 = diagObj.db.getRelationships();
- drawReqs(requirements2, g, svg2);
- drawElements(elements2, g, svg2);
- addRelationships(relationships2, g);
- layout(g);
- adjustEntities(svg2, g);
- relationships2.forEach(function(rel) {
- drawRelationshipFromLayout(svg2, rel, g, id2, diagObj);
+ return result;
+ }
+ var mapToArray_default;
+ var init_mapToArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js"() {
+ "use strict";
+ __name(mapToArray, "mapToArray");
+ mapToArray_default = mapToArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js
+ function setToArray(set6) {
+ var index = -1, result = Array(set6.size);
+ set6.forEach(function(value2) {
+ result[++index] = value2;
});
- const padding2 = conf$5.rect_padding;
- const svgBounds = svg2.node().getBBox();
- const width2 = svgBounds.width + padding2 * 2;
- const height2 = svgBounds.height + padding2 * 2;
- configureSvgSize(svg2, height2, width2, conf$5.useMaxWidth);
- svg2.attr("viewBox", `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${width2} ${height2}`);
- };
- const renderer$8 = {
- draw: draw$9
- };
- const diagram$9 = {
- parser: parser$c,
- db: db$5,
- renderer: renderer$8,
- styles: styles$6
- };
- const requirementDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$9
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$9 = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 19], $V8 = [1, 21], $V9 = [1, 22], $Va = [1, 23], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 32], $Vf = [1, 33], $Vg = [1, 34], $Vh = [1, 35], $Vi = [1, 36], $Vj = [1, 37], $Vk = [1, 38], $Vl = [1, 39], $Vm = [1, 40], $Vn = [1, 42], $Vo = [1, 43], $Vp = [1, 45], $Vq = [1, 46], $Vr = [1, 47], $Vs = [1, 48], $Vt = [1, 49], $Vu = [1, 50], $Vv = [1, 53], $Vw = [1, 4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], $Vx = [4, 5, 21, 54, 56], $Vy = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], $Vz = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VA = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 52, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VB = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 54, 56, 57, 62, 63, 64, 65, 73, 83], $VC = [71, 72, 73], $VD = [1, 125], $VE = [1, 4, 5, 7, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54, 56, 57, 62, 63, 64, 65, 73, 83];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "box_section": 11, "box_line": 12, "participant_statement": 13, "openDirective": 14, "typeDirective": 15, "closeDirective": 16, ":": 17, "argDirective": 18, "box": 19, "restOfLine": 20, "end": 21, "signal": 22, "autonumber": 23, "NUM": 24, "off": 25, "activate": 26, "actor": 27, "deactivate": 28, "note_statement": 29, "links_statement": 30, "link_statement": 31, "properties_statement": 32, "details_statement": 33, "title": 34, "legacy_title": 35, "acc_title": 36, "acc_title_value": 37, "acc_descr": 38, "acc_descr_value": 39, "acc_descr_multiline_value": 40, "loop": 41, "rect": 42, "opt": 43, "alt": 44, "else_sections": 45, "par": 46, "par_sections": 47, "critical": 48, "option_sections": 49, "break": 50, "option": 51, "and": 52, "else": 53, "participant": 54, "AS": 55, "participant_actor": 56, "note": 57, "placement": 58, "text2": 59, "over": 60, "actor_pair": 61, "links": 62, "link": 63, "properties": 64, "details": 65, "spaceList": 66, ",": 67, "left_of": 68, "right_of": 69, "signaltype": 70, "+": 71, "-": 72, "ACTOR": 73, "SOLID_OPEN_ARROW": 74, "DOTTED_OPEN_ARROW": 75, "SOLID_ARROW": 76, "DOTTED_ARROW": 77, "SOLID_CROSS": 78, "DOTTED_CROSS": 79, "SOLID_POINT": 80, "DOTTED_POINT": 81, "TXT": 82, "open_directive": 83, "type_directive": 84, "arg_directive": 85, "close_directive": 86, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 7: "SD", 17: ":", 19: "box", 20: "restOfLine", 21: "end", 23: "autonumber", 24: "NUM", 25: "off", 26: "activate", 28: "deactivate", 34: "title", 35: "legacy_title", 36: "acc_title", 37: "acc_title_value", 38: "acc_descr", 39: "acc_descr_value", 40: "acc_descr_multiline_value", 41: "loop", 42: "rect", 43: "opt", 44: "alt", 46: "par", 48: "critical", 50: "break", 51: "option", 52: "and", 53: "else", 54: "participant", 55: "AS", 56: "participant_actor", 57: "note", 60: "over", 62: "links", 63: "link", 64: "properties", 65: "details", 67: ",", 68: "left_of", 69: "right_of", 71: "+", 72: "-", 73: "ACTOR", 74: "SOLID_OPEN_ARROW", 75: "DOTTED_OPEN_ARROW", 76: "SOLID_ARROW", 77: "DOTTED_ARROW", 78: "SOLID_CROSS", 79: "DOTTED_CROSS", 80: "SOLID_POINT", 81: "DOTTED_POINT", 82: "TXT", 83: "open_directive", 84: "type_directive", 85: "arg_directive", 86: "close_directive" },
- productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [11, 0], [11, 2], [12, 2], [12, 1], [12, 1], [6, 4], [6, 6], [10, 1], [10, 4], [10, 2], [10, 4], [10, 3], [10, 3], [10, 2], [10, 3], [10, 3], [10, 2], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 1], [49, 1], [49, 4], [47, 1], [47, 4], [45, 1], [45, 4], [13, 5], [13, 3], [13, 5], [13, 3], [29, 4], [29, 4], [30, 3], [31, 3], [32, 3], [33, 3], [66, 2], [66, 1], [61, 3], [61, 1], [58, 1], [58, 1], [22, 5], [22, 5], [22, 4], [27, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [70, 1], [59, 1], [14, 1], [15, 1], [18, 1], [16, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 4:
- yy.apply($$[$0]);
- return $$[$0];
- case 5:
- case 10:
- this.$ = [];
- break;
- case 6:
- case 11:
- $$[$0 - 1].push($$[$0]);
- this.$ = $$[$0 - 1];
- break;
- case 7:
- case 8:
- case 12:
- case 13:
- this.$ = $$[$0];
- break;
- case 9:
- case 14:
- this.$ = [];
- break;
- case 18:
- $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) });
- $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] });
- this.$ = $$[$0 - 1];
- break;
- case 20:
- this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
- break;
- case 21:
- this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
- break;
- case 22:
- this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };
- break;
- case 23:
- this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
- break;
- case 24:
- this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };
- break;
- case 25:
- this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };
- break;
- case 31:
- yy.setDiagramTitle($$[$0].substring(6));
- this.$ = $$[$0].substring(6);
- break;
- case 32:
- yy.setDiagramTitle($$[$0].substring(7));
- this.$ = $$[$0].substring(7);
- break;
- case 33:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 34:
- case 35:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 36:
- $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });
- $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });
- this.$ = $$[$0 - 1];
- break;
- case 37:
- $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });
- $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });
- this.$ = $$[$0 - 1];
- break;
- case 38:
- $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });
- $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });
- this.$ = $$[$0 - 1];
- break;
- case 39:
- $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });
- $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END });
- this.$ = $$[$0 - 1];
- break;
- case 40:
- $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });
- $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END });
- this.$ = $$[$0 - 1];
- break;
- case 41:
- $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });
- $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END });
- this.$ = $$[$0 - 1];
- break;
- case 42:
- $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });
- $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });
- this.$ = $$[$0 - 1];
- break;
- case 45:
- this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);
- break;
- case 47:
- this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);
- break;
- case 49:
- this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);
- break;
- case 50:
- $$[$0 - 3].type = "addParticipant";
- $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
- this.$ = $$[$0 - 3];
- break;
- case 51:
- $$[$0 - 1].type = "addParticipant";
- this.$ = $$[$0 - 1];
- break;
- case 52:
- $$[$0 - 3].type = "addActor";
- $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
- this.$ = $$[$0 - 3];
- break;
- case 53:
- $$[$0 - 1].type = "addActor";
- this.$ = $$[$0 - 1];
- break;
- case 54:
- this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];
- break;
- case 55:
- $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);
- $$[$0 - 2][0] = $$[$0 - 2][0].actor;
- $$[$0 - 2][1] = $$[$0 - 2][1].actor;
- this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];
- break;
- case 56:
- this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }];
- break;
- case 57:
- this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }];
- break;
- case 58:
- this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }];
- break;
- case 59:
- this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }];
- break;
- case 62:
- this.$ = [$$[$0 - 2], $$[$0]];
- break;
- case 63:
- this.$ = $$[$0];
- break;
- case 64:
- this.$ = yy.PLACEMENT.LEFTOF;
- break;
- case 65:
- this.$ = yy.PLACEMENT.RIGHTOF;
- break;
- case 66:
- this.$ = [
- $$[$0 - 4],
- $$[$0 - 1],
- { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
- { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }
- ];
- break;
- case 67:
- this.$ = [
- $$[$0 - 4],
- $$[$0 - 1],
- { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
- { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }
- ];
- break;
- case 68:
- this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];
- break;
- case 69:
- this.$ = { type: "addParticipant", actor: $$[$0] };
- break;
- case 70:
- this.$ = yy.LINETYPE.SOLID_OPEN;
- break;
- case 71:
- this.$ = yy.LINETYPE.DOTTED_OPEN;
- break;
- case 72:
- this.$ = yy.LINETYPE.SOLID;
- break;
- case 73:
- this.$ = yy.LINETYPE.DOTTED;
- break;
- case 74:
- this.$ = yy.LINETYPE.SOLID_CROSS;
- break;
- case 75:
- this.$ = yy.LINETYPE.DOTTED_CROSS;
- break;
- case 76:
- this.$ = yy.LINETYPE.SOLID_POINT;
- break;
- case 77:
- this.$ = yy.LINETYPE.DOTTED_POINT;
- break;
- case 78:
- this.$ = yy.parseMessage($$[$0].trim().substring(1));
- break;
- case 79:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 80:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 81:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 82:
- yy.parseDirective("}%%", "close_directive", "sequence");
- break;
+ return result;
+ }
+ var setToArray_default;
+ var init_setToArray = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js"() {
+ "use strict";
+ __name(setToArray, "setToArray");
+ setToArray_default = setToArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js
+ function equalByTag(object3, other, tag2, bitmask, customizer, equalFunc, stack) {
+ switch (tag2) {
+ case dataViewTag5:
+ if (object3.byteLength != other.byteLength || object3.byteOffset != other.byteOffset) {
+ return false;
}
- },
- table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 83: $V3 }, o([1, 4, 5, 19, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 50, 54, 56, 57, 62, 63, 64, 65, 73, 83], $V4, { 8: 11 }), { 15: 12, 84: [1, 13] }, { 84: [2, 79] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 16: 51, 17: [1, 52], 86: $Vv }, o([17, 86], [2, 80]), o($Vw, [2, 6]), { 6: 41, 10: 54, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, o($Vw, [2, 8]), o($Vw, [2, 9]), o($Vw, [2, 17]), { 20: [1, 55] }, { 5: [1, 56] }, { 5: [1, 59], 24: [1, 57], 25: [1, 58] }, { 27: 60, 73: $Vu }, { 27: 61, 73: $Vu }, { 5: [1, 62] }, { 5: [1, 63] }, { 5: [1, 64] }, { 5: [1, 65] }, { 5: [1, 66] }, o($Vw, [2, 31]), o($Vw, [2, 32]), { 37: [1, 67] }, { 39: [1, 68] }, o($Vw, [2, 35]), { 20: [1, 69] }, { 20: [1, 70] }, { 20: [1, 71] }, { 20: [1, 72] }, { 20: [1, 73] }, { 20: [1, 74] }, { 20: [1, 75] }, o($Vw, [2, 43]), { 27: 76, 73: $Vu }, { 27: 77, 73: $Vu }, { 70: 78, 74: [1, 79], 75: [1, 80], 76: [1, 81], 77: [1, 82], 78: [1, 83], 79: [1, 84], 80: [1, 85], 81: [1, 86] }, { 58: 87, 60: [1, 88], 68: [1, 89], 69: [1, 90] }, { 27: 91, 73: $Vu }, { 27: 92, 73: $Vu }, { 27: 93, 73: $Vu }, { 27: 94, 73: $Vu }, o([5, 55, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82], [2, 69]), { 5: [1, 95] }, { 18: 96, 85: [1, 97] }, { 5: [2, 82] }, o($Vw, [2, 7]), o($Vx, [2, 10], { 11: 98 }), o($Vw, [2, 19]), { 5: [1, 100], 24: [1, 99] }, { 5: [1, 101] }, o($Vw, [2, 23]), { 5: [1, 102] }, { 5: [1, 103] }, o($Vw, [2, 26]), o($Vw, [2, 27]), o($Vw, [2, 28]), o($Vw, [2, 29]), o($Vw, [2, 30]), o($Vw, [2, 33]), o($Vw, [2, 34]), o($Vy, $V4, { 8: 104 }), o($Vy, $V4, { 8: 105 }), o($Vy, $V4, { 8: 106 }), o($Vz, $V4, { 45: 107, 8: 108 }), o($VA, $V4, { 47: 109, 8: 110 }), o($VB, $V4, { 49: 111, 8: 112 }), o($Vy, $V4, { 8: 113 }), { 5: [1, 115], 55: [1, 114] }, { 5: [1, 117], 55: [1, 116] }, { 27: 120, 71: [1, 118], 72: [1, 119], 73: $Vu }, o($VC, [2, 70]), o($VC, [2, 71]), o($VC, [2, 72]), o($VC, [2, 73]), o($VC, [2, 74]), o($VC, [2, 75]), o($VC, [2, 76]), o($VC, [2, 77]), { 27: 121, 73: $Vu }, { 27: 123, 61: 122, 73: $Vu }, { 73: [2, 64] }, { 73: [2, 65] }, { 59: 124, 82: $VD }, { 59: 126, 82: $VD }, { 59: 127, 82: $VD }, { 59: 128, 82: $VD }, o($VE, [2, 15]), { 16: 129, 86: $Vv }, { 86: [2, 81] }, { 4: [1, 132], 5: [1, 134], 12: 131, 13: 133, 21: [1, 130], 54: $Vn, 56: $Vo }, { 5: [1, 135] }, o($Vw, [2, 21]), o($Vw, [2, 22]), o($Vw, [2, 24]), o($Vw, [2, 25]), { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 136], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 137], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 138], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 139] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 48], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 53: [1, 140], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 141] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 46], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 52: [1, 142], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 21: [1, 143] }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 44], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 51: [1, 144], 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 4: $V5, 5: $V6, 6: 41, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 145], 22: 20, 23: $V8, 26: $V9, 27: 44, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 50: $Vm, 54: $Vn, 56: $Vo, 57: $Vp, 62: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 73: $Vu, 83: $V3 }, { 20: [1, 146] }, o($Vw, [2, 51]), { 20: [1, 147] }, o($Vw, [2, 53]), { 27: 148, 73: $Vu }, { 27: 149, 73: $Vu }, { 59: 150, 82: $VD }, { 59: 151, 82: $VD }, { 59: 152, 82: $VD }, { 67: [1, 153], 82: [2, 63] }, { 5: [2, 56] }, { 5: [2, 78] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [2, 59] }, { 5: [1, 154] }, o($Vw, [2, 18]), o($Vx, [2, 11]), { 13: 155, 54: $Vn, 56: $Vo }, o($Vx, [2, 13]), o($Vx, [2, 14]), o($Vw, [2, 20]), o($Vw, [2, 36]), o($Vw, [2, 37]), o($Vw, [2, 38]), o($Vw, [2, 39]), { 20: [1, 156] }, o($Vw, [2, 40]), { 20: [1, 157] }, o($Vw, [2, 41]), { 20: [1, 158] }, o($Vw, [2, 42]), { 5: [1, 159] }, { 5: [1, 160] }, { 59: 161, 82: $VD }, { 59: 162, 82: $VD }, { 5: [2, 68] }, { 5: [2, 54] }, { 5: [2, 55] }, { 27: 163, 73: $Vu }, o($VE, [2, 16]), o($Vx, [2, 12]), o($Vz, $V4, { 8: 108, 45: 164 }), o($VA, $V4, { 8: 110, 47: 165 }), o($VB, $V4, { 8: 112, 49: 166 }), o($Vw, [2, 50]), o($Vw, [2, 52]), { 5: [2, 66] }, { 5: [2, 67] }, { 82: [2, 62] }, { 21: [2, 49] }, { 21: [2, 47] }, { 21: [2, 45] }],
- defaultActions: { 7: [2, 79], 8: [2, 1], 9: [2, 2], 10: [2, 3], 53: [2, 82], 89: [2, 64], 90: [2, 65], 97: [2, 81], 124: [2, 56], 125: [2, 78], 126: [2, 57], 127: [2, 58], 128: [2, 59], 150: [2, 68], 151: [2, 54], 152: [2, 55], 161: [2, 66], 162: [2, 67], 163: [2, 62], 164: [2, 49], 165: [2, 47], 166: [2, 45] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
+ object3 = object3.buffer;
+ other = other.buffer;
+ case arrayBufferTag4:
+ if (object3.byteLength != other.byteLength || !equalFunc(new Uint8Array_default(object3), new Uint8Array_default(other))) {
+ return false;
}
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
+ return true;
+ case boolTag4:
+ case dateTag4:
+ case numberTag4:
+ return eq_default(+object3, +other);
+ case errorTag3:
+ return object3.name == other.name && object3.message == other.message;
+ case regexpTag4:
+ case stringTag4:
+ return object3 == other + "";
+ case mapTag6:
+ var convert = mapToArray_default;
+ case setTag6:
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG2;
+ convert || (convert = setToArray_default);
+ if (object3.size != other.size && !isPartial) {
+ return false;
}
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
+ var stacked = stack.get(object3);
+ if (stacked) {
+ return stacked == other;
}
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
+ bitmask |= COMPARE_UNORDERED_FLAG2;
+ stack.set(object3, other);
+ var result = equalArrays_default(convert(object3), convert(other), bitmask, customizer, equalFunc, stack);
+ stack["delete"](object3);
+ return result;
+ case symbolTag4:
+ if (symbolValueOf2) {
+ return symbolValueOf2.call(object3) == symbolValueOf2.call(other);
}
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 83;
- case 1:
- this.begin("type_directive");
- return 84;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 17;
- case 3:
- this.popState();
- this.popState();
- return 86;
- case 4:
- return 85;
- case 5:
- return 5;
- case 6:
- break;
- case 7:
- break;
- case 8:
- break;
- case 9:
- break;
- case 10:
- break;
- case 11:
- return 24;
- case 12:
- this.begin("LINE");
- return 19;
- case 13:
- this.begin("ID");
- return 54;
- case 14:
- this.begin("ID");
- return 56;
- case 15:
- yy_.yytext = yy_.yytext.trim();
- this.begin("ALIAS");
- return 73;
- case 16:
- this.popState();
- this.popState();
- this.begin("LINE");
- return 55;
- case 17:
- this.popState();
- this.popState();
- return 5;
- case 18:
- this.begin("LINE");
- return 41;
- case 19:
- this.begin("LINE");
- return 42;
- case 20:
- this.begin("LINE");
- return 43;
- case 21:
- this.begin("LINE");
- return 44;
- case 22:
- this.begin("LINE");
- return 53;
- case 23:
- this.begin("LINE");
- return 46;
- case 24:
- this.begin("LINE");
- return 52;
- case 25:
- this.begin("LINE");
- return 48;
- case 26:
- this.begin("LINE");
- return 51;
- case 27:
- this.begin("LINE");
- return 50;
- case 28:
- this.popState();
- return 20;
- case 29:
- return 21;
- case 30:
- return 68;
- case 31:
- return 69;
- case 32:
- return 62;
- case 33:
- return 63;
- case 34:
- return 64;
- case 35:
- return 65;
- case 36:
- return 60;
- case 37:
- return 57;
- case 38:
- this.begin("ID");
- return 26;
- case 39:
- this.begin("ID");
- return 28;
- case 40:
- return 34;
- case 41:
- return 35;
- case 42:
- this.begin("acc_title");
- return 36;
- case 43:
- this.popState();
- return "acc_title_value";
- case 44:
- this.begin("acc_descr");
- return 38;
- case 45:
- this.popState();
- return "acc_descr_value";
- case 46:
- this.begin("acc_descr_multiline");
- break;
- case 47:
- this.popState();
- break;
- case 48:
- return "acc_descr_multiline_value";
- case 49:
- return 7;
- case 50:
- return 23;
- case 51:
- return 25;
- case 52:
- return 67;
- case 53:
- return 5;
- case 54:
- yy_.yytext = yy_.yytext.trim();
- return 73;
- case 55:
- return 76;
- case 56:
- return 77;
- case 57:
- return 74;
- case 58:
- return 75;
- case 59:
- return 78;
- case 60:
- return 79;
- case 61:
- return 80;
- case 62:
- return 81;
- case 63:
- return 82;
- case 64:
- return 71;
- case 65:
- return 72;
- case 66:
- return 5;
- case 67:
- return "INVALID";
- }
- },
- rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:and\b)/i, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],
- conditions: { "acc_descr_multiline": { "rules": [47, 48], "inclusive": false }, "acc_descr": { "rules": [45], "inclusive": false }, "acc_title": { "rules": [43], "inclusive": false }, "open_directive": { "rules": [1, 8], "inclusive": false }, "type_directive": { "rules": [2, 3, 8], "inclusive": false }, "arg_directive": { "rules": [3, 4, 8], "inclusive": false }, "ID": { "rules": [7, 8, 15], "inclusive": false }, "ALIAS": { "rules": [7, 8, 16, 17], "inclusive": false }, "LINE": { "rules": [7, 8, 28], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$9.parser = parser$9;
- const parser$a = parser$9;
- let prevActor = void 0;
- let actors$1 = {};
- let boxes = [];
- let messages = [];
- let sequenceNumbersEnabled = false;
- let wrapEnabled;
- let currentBox = void 0;
- const parseDirective$4 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const addBox = function(data) {
- boxes.push({
- name: data.text,
- wrap: data.wrap === void 0 && autoWrap() || !!data.wrap,
- fill: data.color,
- actorKeys: []
- });
- currentBox = boxes.slice(-1)[0];
- };
- const addActor = function(id2, name2, description2, type2) {
- let assignedBox = currentBox;
- const old = actors$1[id2];
- if (old) {
- if (currentBox && old.box && currentBox !== old.box) {
- throw new Error(
- "A same participant should only be defined in one Box: " + old.name + " can't be in '" + old.box.name + "' and in '" + currentBox.name + "' at the same time."
- );
- }
- assignedBox = old.box ? old.box : currentBox;
- old.box = assignedBox;
- if (old && name2 === old.name && description2 == null) {
- return;
- }
}
- if (description2 == null || description2.text == null) {
- description2 = { text: name2, wrap: null, type: type2 };
+ return false;
+ }
+ var COMPARE_PARTIAL_FLAG2, COMPARE_UNORDERED_FLAG2, boolTag4, dateTag4, errorTag3, mapTag6, numberTag4, regexpTag4, setTag6, stringTag4, symbolTag4, arrayBufferTag4, dataViewTag5, symbolProto3, symbolValueOf2, equalByTag_default;
+ var init_equalByTag = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js"() {
+ "use strict";
+ init_Symbol();
+ init_Uint8Array();
+ init_eq();
+ init_equalArrays();
+ init_mapToArray();
+ init_setToArray();
+ COMPARE_PARTIAL_FLAG2 = 1;
+ COMPARE_UNORDERED_FLAG2 = 2;
+ boolTag4 = "[object Boolean]";
+ dateTag4 = "[object Date]";
+ errorTag3 = "[object Error]";
+ mapTag6 = "[object Map]";
+ numberTag4 = "[object Number]";
+ regexpTag4 = "[object RegExp]";
+ setTag6 = "[object Set]";
+ stringTag4 = "[object String]";
+ symbolTag4 = "[object Symbol]";
+ arrayBufferTag4 = "[object ArrayBuffer]";
+ dataViewTag5 = "[object DataView]";
+ symbolProto3 = Symbol_default ? Symbol_default.prototype : void 0;
+ symbolValueOf2 = symbolProto3 ? symbolProto3.valueOf : void 0;
+ __name(equalByTag, "equalByTag");
+ equalByTag_default = equalByTag;
}
- if (type2 == null || description2.text == null) {
- description2 = { text: name2, wrap: null, type: type2 };
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js
+ function equalObjects(object3, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG3, objProps = getAllKeys_default(object3), objLength = objProps.length, othProps = getAllKeys_default(other), othLength = othProps.length;
+ if (objLength != othLength && !isPartial) {
+ return false;
}
- actors$1[id2] = {
- box: assignedBox,
- name: name2,
- description: description2.text,
- wrap: description2.wrap === void 0 && autoWrap() || !!description2.wrap,
- prevActor,
- links: {},
- properties: {},
- actorCnt: null,
- rectData: null,
- type: type2 || "participant"
- };
- if (prevActor && actors$1[prevActor]) {
- actors$1[prevActor].nextActor = id2;
+ var index = objLength;
+ while (index--) {
+ var key = objProps[index];
+ if (!(isPartial ? key in other : hasOwnProperty13.call(other, key))) {
+ return false;
+ }
}
- if (currentBox) {
- currentBox.actorKeys.push(id2);
+ var objStacked = stack.get(object3);
+ var othStacked = stack.get(other);
+ if (objStacked && othStacked) {
+ return objStacked == other && othStacked == object3;
}
- prevActor = id2;
- };
- const activationCount = (part) => {
- let i2;
- let count = 0;
- for (i2 = 0; i2 < messages.length; i2++) {
- if (messages[i2].type === LINETYPE.ACTIVE_START && messages[i2].from.actor === part) {
- count++;
+ var result = true;
+ stack.set(object3, other);
+ stack.set(other, object3);
+ var skipCtor = isPartial;
+ while (++index < objLength) {
+ key = objProps[index];
+ var objValue = object3[key], othValue = other[key];
+ if (customizer) {
+ var compared = isPartial ? customizer(othValue, objValue, key, other, object3, stack) : customizer(objValue, othValue, key, object3, other, stack);
}
- if (messages[i2].type === LINETYPE.ACTIVE_END && messages[i2].from.actor === part) {
- count--;
+ if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
+ result = false;
+ break;
}
+ skipCtor || (skipCtor = key == "constructor");
}
- return count;
- };
- const addMessage = function(idFrom, idTo, message2, answer) {
- messages.push({
- from: idFrom,
- to: idTo,
- message: message2.text,
- wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap,
- answer
- });
- };
- const addSignal = function(idFrom, idTo, message2 = { text: void 0, wrap: void 0 }, messageType) {
- if (messageType === LINETYPE.ACTIVE_END) {
- const cnt2 = activationCount(idFrom.actor);
- if (cnt2 < 1) {
- let error = new Error("Trying to inactivate an inactive participant (" + idFrom.actor + ")");
- error.hash = {
- text: "->>-",
- token: "->>-",
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ["'ACTIVE_PARTICIPANT'"]
- };
- throw error;
+ if (result && !skipCtor) {
+ var objCtor = object3.constructor, othCtor = other.constructor;
+ if (objCtor != othCtor && ("constructor" in object3 && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
+ result = false;
}
}
- messages.push({
- from: idFrom,
- to: idTo,
- message: message2.text,
- wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap,
- type: messageType
- });
- return true;
- };
- const hasAtLeastOneBox = function() {
- return boxes.length > 0;
- };
- const hasAtLeastOneBoxWithTitle = function() {
- return boxes.some((b) => b.name);
- };
- const getMessages = function() {
- return messages;
- };
- const getBoxes = function() {
- return boxes;
- };
- const getActors$1 = function() {
- return actors$1;
- };
- const getActor = function(id2) {
- return actors$1[id2];
- };
- const getActorKeys = function() {
- return Object.keys(actors$1);
- };
- const enableSequenceNumbers = function() {
- sequenceNumbersEnabled = true;
- };
- const disableSequenceNumbers = function() {
- sequenceNumbersEnabled = false;
- };
- const showSequenceNumbers = () => sequenceNumbersEnabled;
- const setWrap = function(wrapSetting) {
- wrapEnabled = wrapSetting;
- };
- const autoWrap = () => {
- if (wrapEnabled !== void 0) {
- return wrapEnabled;
+ stack["delete"](object3);
+ stack["delete"](other);
+ return result;
+ }
+ var COMPARE_PARTIAL_FLAG3, objectProto16, hasOwnProperty13, equalObjects_default;
+ var init_equalObjects = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js"() {
+ "use strict";
+ init_getAllKeys();
+ COMPARE_PARTIAL_FLAG3 = 1;
+ objectProto16 = Object.prototype;
+ hasOwnProperty13 = objectProto16.hasOwnProperty;
+ __name(equalObjects, "equalObjects");
+ equalObjects_default = equalObjects;
}
- return getConfig$1().sequence.wrap;
- };
- const clear$5 = function() {
- actors$1 = {};
- boxes = [];
- messages = [];
- sequenceNumbersEnabled = false;
- clear$i();
- };
- const parseMessage = function(str2) {
- const _str = str2.trim();
- const message2 = {
- text: _str.replace(/^:?(?:no)?wrap:/, "").trim(),
- wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0
- };
- log$1.debug("parseMessage:", message2);
- return message2;
- };
- const parseBoxData = function(str2) {
- const match = str2.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);
- let color2 = match != null && match[1] ? match[1].trim() : "transparent";
- let title2 = match != null && match[2] ? match[2].trim() : void 0;
- if (window && window.CSS) {
- if (!window.CSS.supports("color", color2)) {
- color2 = "transparent";
- title2 = str2.trim();
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js
+ function baseIsEqualDeep(object3, other, bitmask, customizer, equalFunc, stack) {
+ var objIsArr = isArray_default(object3), othIsArr = isArray_default(other), objTag = objIsArr ? arrayTag3 : getTag_default(object3), othTag = othIsArr ? arrayTag3 : getTag_default(other);
+ objTag = objTag == argsTag4 ? objectTag5 : objTag;
+ othTag = othTag == argsTag4 ? objectTag5 : othTag;
+ var objIsObj = objTag == objectTag5, othIsObj = othTag == objectTag5, isSameTag = objTag == othTag;
+ if (isSameTag && isBuffer_default(object3)) {
+ if (!isBuffer_default(other)) {
+ return false;
}
- } else {
- const style = new Option().style;
- style.color = color2;
- if (style.color !== color2) {
- color2 = "transparent";
- title2 = str2.trim();
+ objIsArr = true;
+ objIsObj = false;
+ }
+ if (isSameTag && !objIsObj) {
+ stack || (stack = new Stack_default());
+ return objIsArr || isTypedArray_default(object3) ? equalArrays_default(object3, other, bitmask, customizer, equalFunc, stack) : equalByTag_default(object3, other, objTag, bitmask, customizer, equalFunc, stack);
+ }
+ if (!(bitmask & COMPARE_PARTIAL_FLAG4)) {
+ var objIsWrapped = objIsObj && hasOwnProperty14.call(object3, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty14.call(other, "__wrapped__");
+ if (objIsWrapped || othIsWrapped) {
+ var objUnwrapped = objIsWrapped ? object3.value() : object3, othUnwrapped = othIsWrapped ? other.value() : other;
+ stack || (stack = new Stack_default());
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
}
}
- const boxData = {
- color: color2,
- text: title2 !== void 0 ? sanitizeText$7(title2.replace(/^:?(?:no)?wrap:/, ""), getConfig$1()) : void 0,
- wrap: title2 !== void 0 ? title2.match(/^:?wrap:/) !== null ? true : title2.match(/^:?nowrap:/) !== null ? false : void 0 : void 0
- };
- return boxData;
- };
- const LINETYPE = {
- SOLID: 0,
- DOTTED: 1,
- NOTE: 2,
- SOLID_CROSS: 3,
- DOTTED_CROSS: 4,
- SOLID_OPEN: 5,
- DOTTED_OPEN: 6,
- LOOP_START: 10,
- LOOP_END: 11,
- ALT_START: 12,
- ALT_ELSE: 13,
- ALT_END: 14,
- OPT_START: 15,
- OPT_END: 16,
- ACTIVE_START: 17,
- ACTIVE_END: 18,
- PAR_START: 19,
- PAR_AND: 20,
- PAR_END: 21,
- RECT_START: 22,
- RECT_END: 23,
- SOLID_POINT: 24,
- DOTTED_POINT: 25,
- AUTONUMBER: 26,
- CRITICAL_START: 27,
- CRITICAL_OPTION: 28,
- CRITICAL_END: 29,
- BREAK_START: 30,
- BREAK_END: 31
- };
- const ARROWTYPE = {
- FILLED: 0,
- OPEN: 1
- };
- const PLACEMENT = {
- LEFTOF: 0,
- RIGHTOF: 1,
- OVER: 2
- };
- const addNote$1 = function(actor, placement, message2) {
- ({
- actor,
- placement,
- message: message2.text,
- wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap
- });
- const actors2 = [].concat(actor, actor);
- messages.push({
- from: actors2[0],
- to: actors2[1],
- message: message2.text,
- wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap,
- type: LINETYPE.NOTE,
- placement
- });
- };
- const addLinks = function(actorId, text2) {
- const actor = getActor(actorId);
- try {
- let sanitizedText = sanitizeText$7(text2.text, getConfig$1());
- sanitizedText = sanitizedText.replace(/&/g, "&");
- sanitizedText = sanitizedText.replace(/=/g, "=");
- const links2 = JSON.parse(sanitizedText);
- insertLinks(actor, links2);
- } catch (e) {
- log$1.error("error while parsing actor link text", e);
+ if (!isSameTag) {
+ return false;
}
- };
- const addALink = function(actorId, text2) {
- const actor = getActor(actorId);
- try {
- const links2 = {};
- let sanitizedText = sanitizeText$7(text2.text, getConfig$1());
- var sep2 = sanitizedText.indexOf("@");
- sanitizedText = sanitizedText.replace(/&/g, "&");
- sanitizedText = sanitizedText.replace(/=/g, "=");
- var label = sanitizedText.slice(0, sep2 - 1).trim();
- var link = sanitizedText.slice(sep2 + 1).trim();
- links2[label] = link;
- insertLinks(actor, links2);
- } catch (e) {
- log$1.error("error while parsing actor link text", e);
+ stack || (stack = new Stack_default());
+ return equalObjects_default(object3, other, bitmask, customizer, equalFunc, stack);
+ }
+ var COMPARE_PARTIAL_FLAG4, argsTag4, arrayTag3, objectTag5, objectProto17, hasOwnProperty14, baseIsEqualDeep_default;
+ var init_baseIsEqualDeep = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js"() {
+ "use strict";
+ init_Stack();
+ init_equalArrays();
+ init_equalByTag();
+ init_equalObjects();
+ init_getTag();
+ init_isArray();
+ init_isBuffer();
+ init_isTypedArray();
+ COMPARE_PARTIAL_FLAG4 = 1;
+ argsTag4 = "[object Arguments]";
+ arrayTag3 = "[object Array]";
+ objectTag5 = "[object Object]";
+ objectProto17 = Object.prototype;
+ hasOwnProperty14 = objectProto17.hasOwnProperty;
+ __name(baseIsEqualDeep, "baseIsEqualDeep");
+ baseIsEqualDeep_default = baseIsEqualDeep;
}
- };
- function insertLinks(actor, links2) {
- if (actor.links == null) {
- actor.links = links2;
- } else {
- for (let key in links2) {
- actor.links[key] = links2[key];
- }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js
+ function baseIsEqual(value2, other, bitmask, customizer, stack) {
+ if (value2 === other) {
+ return true;
+ }
+ if (value2 == null || other == null || !isObjectLike_default(value2) && !isObjectLike_default(other)) {
+ return value2 !== value2 && other !== other;
}
+ return baseIsEqualDeep_default(value2, other, bitmask, customizer, baseIsEqual, stack);
}
- const addProperties = function(actorId, text2) {
- const actor = getActor(actorId);
- try {
- let sanitizedText = sanitizeText$7(text2.text, getConfig$1());
- const properties = JSON.parse(sanitizedText);
- insertProperties(actor, properties);
- } catch (e) {
- log$1.error("error while parsing actor properties text", e);
+ var baseIsEqual_default;
+ var init_baseIsEqual = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js"() {
+ "use strict";
+ init_baseIsEqualDeep();
+ init_isObjectLike();
+ __name(baseIsEqual, "baseIsEqual");
+ baseIsEqual_default = baseIsEqual;
}
- };
- function insertProperties(actor, properties) {
- if (actor.properties == null) {
- actor.properties = properties;
- } else {
- for (let key in properties) {
- actor.properties[key] = properties[key];
- }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js
+ function baseIsMatch(object3, source, matchData, customizer) {
+ var index = matchData.length, length2 = index, noCustomizer = !customizer;
+ if (object3 == null) {
+ return !length2;
}
- }
- function boxEnd() {
- currentBox = void 0;
- }
- const addDetails = function(actorId, text2) {
- const actor = getActor(actorId);
- const elem = document.getElementById(text2.text);
- try {
- const text3 = elem.innerHTML;
- const details = JSON.parse(text3);
- if (details["properties"]) {
- insertProperties(actor, details["properties"]);
- }
- if (details["links"]) {
- insertLinks(actor, details["links"]);
+ object3 = Object(object3);
+ while (index--) {
+ var data5 = matchData[index];
+ if (noCustomizer && data5[2] ? data5[1] !== object3[data5[0]] : !(data5[0] in object3)) {
+ return false;
}
- } catch (e) {
- log$1.error("error while parsing actor details text", e);
- }
- };
- const getActorProperty = function(actor, key) {
- if (actor !== void 0 && actor.properties !== void 0) {
- return actor.properties[key];
}
- return void 0;
- };
- const apply = function(param) {
- if (Array.isArray(param)) {
- param.forEach(function(item) {
- apply(item);
- });
- } else {
- switch (param.type) {
- case "sequenceIndex":
- messages.push({
- from: void 0,
- to: void 0,
- message: {
- start: param.sequenceIndex,
- step: param.sequenceIndexStep,
- visible: param.sequenceVisible
- },
- wrap: false,
- type: param.signalType
- });
- break;
- case "addParticipant":
- addActor(param.actor, param.actor, param.description, "participant");
- break;
- case "addActor":
- addActor(param.actor, param.actor, param.description, "actor");
- break;
- case "activeStart":
- addSignal(param.actor, void 0, void 0, param.signalType);
- break;
- case "activeEnd":
- addSignal(param.actor, void 0, void 0, param.signalType);
- break;
- case "addNote":
- addNote$1(param.actor, param.placement, param.text);
- break;
- case "addLinks":
- addLinks(param.actor, param.text);
- break;
- case "addALink":
- addALink(param.actor, param.text);
- break;
- case "addProperties":
- addProperties(param.actor, param.text);
- break;
- case "addDetails":
- addDetails(param.actor, param.text);
- break;
- case "addMessage":
- addSignal(param.from, param.to, param.msg, param.signalType);
- break;
- case "boxStart":
- addBox(param.boxData);
- break;
- case "boxEnd":
- boxEnd();
- break;
- case "loopStart":
- addSignal(void 0, void 0, param.loopText, param.signalType);
- break;
- case "loopEnd":
- addSignal(void 0, void 0, void 0, param.signalType);
- break;
- case "rectStart":
- addSignal(void 0, void 0, param.color, param.signalType);
- break;
- case "rectEnd":
- addSignal(void 0, void 0, void 0, param.signalType);
- break;
- case "optStart":
- addSignal(void 0, void 0, param.optText, param.signalType);
- break;
- case "optEnd":
- addSignal(void 0, void 0, void 0, param.signalType);
- break;
- case "altStart":
- addSignal(void 0, void 0, param.altText, param.signalType);
- break;
- case "else":
- addSignal(void 0, void 0, param.altText, param.signalType);
- break;
- case "altEnd":
- addSignal(void 0, void 0, void 0, param.signalType);
- break;
- case "setAccTitle":
- setAccTitle(param.text);
- break;
- case "parStart":
- addSignal(void 0, void 0, param.parText, param.signalType);
- break;
- case "and":
- addSignal(void 0, void 0, param.parText, param.signalType);
- break;
- case "parEnd":
- addSignal(void 0, void 0, void 0, param.signalType);
- break;
- case "criticalStart":
- addSignal(void 0, void 0, param.criticalText, param.signalType);
- break;
- case "option":
- addSignal(void 0, void 0, param.optionText, param.signalType);
- break;
- case "criticalEnd":
- addSignal(void 0, void 0, void 0, param.signalType);
- break;
- case "breakStart":
- addSignal(void 0, void 0, param.breakText, param.signalType);
- break;
- case "breakEnd":
- addSignal(void 0, void 0, void 0, param.signalType);
- break;
+ while (++index < length2) {
+ data5 = matchData[index];
+ var key = data5[0], objValue = object3[key], srcValue = data5[1];
+ if (noCustomizer && data5[2]) {
+ if (objValue === void 0 && !(key in object3)) {
+ return false;
+ }
+ } else {
+ var stack = new Stack_default();
+ if (customizer) {
+ var result = customizer(objValue, srcValue, key, object3, source, stack);
+ }
+ if (!(result === void 0 ? baseIsEqual_default(srcValue, objValue, COMPARE_PARTIAL_FLAG5 | COMPARE_UNORDERED_FLAG3, customizer, stack) : result)) {
+ return false;
+ }
}
}
- };
- const db$4 = {
- addActor,
- addMessage,
- addSignal,
- addLinks,
- addDetails,
- addProperties,
- autoWrap,
- setWrap,
- enableSequenceNumbers,
- disableSequenceNumbers,
- showSequenceNumbers,
- getMessages,
- getActors: getActors$1,
- getActor,
- getActorKeys,
- getActorProperty,
- getAccTitle,
- getBoxes,
- getDiagramTitle,
- setDiagramTitle,
- parseDirective: parseDirective$4,
- getConfig: () => getConfig$1().sequence,
- clear: clear$5,
- parseMessage,
- parseBoxData,
- LINETYPE,
- ARROWTYPE,
- PLACEMENT,
- addNote: addNote$1,
- setAccTitle,
- apply,
- setAccDescription,
- getAccDescription,
- hasAtLeastOneBox,
- hasAtLeastOneBoxWithTitle
- };
- const getStyles$6 = (options2) => `.actor {
- stroke: ${options2.actorBorder};
- fill: ${options2.actorBkg};
+ return true;
}
+ var COMPARE_PARTIAL_FLAG5, COMPARE_UNORDERED_FLAG3, baseIsMatch_default;
+ var init_baseIsMatch = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js"() {
+ "use strict";
+ init_Stack();
+ init_baseIsEqual();
+ COMPARE_PARTIAL_FLAG5 = 1;
+ COMPARE_UNORDERED_FLAG3 = 2;
+ __name(baseIsMatch, "baseIsMatch");
+ baseIsMatch_default = baseIsMatch;
+ }
+ });
- text.actor > tspan {
- fill: ${options2.actorTextColor};
- stroke: none;
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js
+ function isStrictComparable(value2) {
+ return value2 === value2 && !isObject_default(value2);
+ }
+ var isStrictComparable_default;
+ var init_isStrictComparable = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js"() {
+ "use strict";
+ init_isObject();
+ __name(isStrictComparable, "isStrictComparable");
+ isStrictComparable_default = isStrictComparable;
+ }
+ });
- .actor-line {
- stroke: ${options2.actorLineColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js
+ function getMatchData(object3) {
+ var result = keys_default(object3), length2 = result.length;
+ while (length2--) {
+ var key = result[length2], value2 = object3[key];
+ result[length2] = [key, value2, isStrictComparable_default(value2)];
+ }
+ return result;
}
+ var getMatchData_default;
+ var init_getMatchData = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js"() {
+ "use strict";
+ init_isStrictComparable();
+ init_keys();
+ __name(getMatchData, "getMatchData");
+ getMatchData_default = getMatchData;
+ }
+ });
- .messageLine0 {
- stroke-width: 1.5;
- stroke-dasharray: none;
- stroke: ${options2.signalColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js
+ function matchesStrictComparable(key, srcValue) {
+ return function(object3) {
+ if (object3 == null) {
+ return false;
+ }
+ return object3[key] === srcValue && (srcValue !== void 0 || key in Object(object3));
+ };
}
+ var matchesStrictComparable_default;
+ var init_matchesStrictComparable = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js"() {
+ "use strict";
+ __name(matchesStrictComparable, "matchesStrictComparable");
+ matchesStrictComparable_default = matchesStrictComparable;
+ }
+ });
- .messageLine1 {
- stroke-width: 1.5;
- stroke-dasharray: 2, 2;
- stroke: ${options2.signalColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js
+ function baseMatches(source) {
+ var matchData = getMatchData_default(source);
+ if (matchData.length == 1 && matchData[0][2]) {
+ return matchesStrictComparable_default(matchData[0][0], matchData[0][1]);
+ }
+ return function(object3) {
+ return object3 === source || baseIsMatch_default(object3, source, matchData);
+ };
}
+ var baseMatches_default;
+ var init_baseMatches = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js"() {
+ "use strict";
+ init_baseIsMatch();
+ init_getMatchData();
+ init_matchesStrictComparable();
+ __name(baseMatches, "baseMatches");
+ baseMatches_default = baseMatches;
+ }
+ });
- #arrowhead path {
- fill: ${options2.signalColor};
- stroke: ${options2.signalColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js
+ function baseHasIn(object3, key) {
+ return object3 != null && key in Object(object3);
}
+ var baseHasIn_default;
+ var init_baseHasIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js"() {
+ "use strict";
+ __name(baseHasIn, "baseHasIn");
+ baseHasIn_default = baseHasIn;
+ }
+ });
- .sequenceNumber {
- fill: ${options2.sequenceNumberColor};
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js
+ function hasPath(object3, path4, hasFunc) {
+ path4 = castPath_default(path4, object3);
+ var index = -1, length2 = path4.length, result = false;
+ while (++index < length2) {
+ var key = toKey_default(path4[index]);
+ if (!(result = object3 != null && hasFunc(object3, key))) {
+ break;
+ }
+ object3 = object3[key];
+ }
+ if (result || ++index != length2) {
+ return result;
+ }
+ length2 = object3 == null ? 0 : object3.length;
+ return !!length2 && isLength_default(length2) && isIndex_default(key, length2) && (isArray_default(object3) || isArguments_default(object3));
+ }
+ var hasPath_default;
+ var init_hasPath = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js"() {
+ "use strict";
+ init_castPath();
+ init_isArguments();
+ init_isArray();
+ init_isIndex();
+ init_isLength();
+ init_toKey();
+ __name(hasPath, "hasPath");
+ hasPath_default = hasPath;
+ }
+ });
- #sequencenumber {
- fill: ${options2.signalColor};
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js
+ function hasIn(object3, path4) {
+ return object3 != null && hasPath_default(object3, path4, baseHasIn_default);
+ }
+ var hasIn_default;
+ var init_hasIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js"() {
+ "use strict";
+ init_baseHasIn();
+ init_hasPath();
+ __name(hasIn, "hasIn");
+ hasIn_default = hasIn;
+ }
+ });
- #crosshead path {
- fill: ${options2.signalColor};
- stroke: ${options2.signalColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js
+ function baseMatchesProperty(path4, srcValue) {
+ if (isKey_default(path4) && isStrictComparable_default(srcValue)) {
+ return matchesStrictComparable_default(toKey_default(path4), srcValue);
+ }
+ return function(object3) {
+ var objValue = get_default(object3, path4);
+ return objValue === void 0 && objValue === srcValue ? hasIn_default(object3, path4) : baseIsEqual_default(srcValue, objValue, COMPARE_PARTIAL_FLAG6 | COMPARE_UNORDERED_FLAG4);
+ };
}
+ var COMPARE_PARTIAL_FLAG6, COMPARE_UNORDERED_FLAG4, baseMatchesProperty_default;
+ var init_baseMatchesProperty = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js"() {
+ "use strict";
+ init_baseIsEqual();
+ init_get();
+ init_hasIn();
+ init_isKey();
+ init_isStrictComparable();
+ init_matchesStrictComparable();
+ init_toKey();
+ COMPARE_PARTIAL_FLAG6 = 1;
+ COMPARE_UNORDERED_FLAG4 = 2;
+ __name(baseMatchesProperty, "baseMatchesProperty");
+ baseMatchesProperty_default = baseMatchesProperty;
+ }
+ });
- .messageText {
- fill: ${options2.signalTextColor};
- stroke: none;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js
+ function baseProperty(key) {
+ return function(object3) {
+ return object3 == null ? void 0 : object3[key];
+ };
}
+ var baseProperty_default;
+ var init_baseProperty = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js"() {
+ "use strict";
+ __name(baseProperty, "baseProperty");
+ baseProperty_default = baseProperty;
+ }
+ });
- .labelBox {
- stroke: ${options2.labelBoxBorderColor};
- fill: ${options2.labelBoxBkgColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js
+ function basePropertyDeep(path4) {
+ return function(object3) {
+ return baseGet_default(object3, path4);
+ };
}
+ var basePropertyDeep_default;
+ var init_basePropertyDeep = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js"() {
+ "use strict";
+ init_baseGet();
+ __name(basePropertyDeep, "basePropertyDeep");
+ basePropertyDeep_default = basePropertyDeep;
+ }
+ });
- .labelText, .labelText > tspan {
- fill: ${options2.labelTextColor};
- stroke: none;
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js
+ function property(path4) {
+ return isKey_default(path4) ? baseProperty_default(toKey_default(path4)) : basePropertyDeep_default(path4);
+ }
+ var property_default2;
+ var init_property2 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js"() {
+ "use strict";
+ init_baseProperty();
+ init_basePropertyDeep();
+ init_isKey();
+ init_toKey();
+ __name(property, "property");
+ property_default2 = property;
+ }
+ });
- .loopText, .loopText > tspan {
- fill: ${options2.loopTextColor};
- stroke: none;
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js
+ function baseIteratee(value2) {
+ if (typeof value2 == "function") {
+ return value2;
+ }
+ if (value2 == null) {
+ return identity_default4;
+ }
+ if (typeof value2 == "object") {
+ return isArray_default(value2) ? baseMatchesProperty_default(value2[0], value2[1]) : baseMatches_default(value2);
+ }
+ return property_default2(value2);
+ }
+ var baseIteratee_default;
+ var init_baseIteratee = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js"() {
+ "use strict";
+ init_baseMatches();
+ init_baseMatchesProperty();
+ init_identity4();
+ init_isArray();
+ init_property2();
+ __name(baseIteratee, "baseIteratee");
+ baseIteratee_default = baseIteratee;
+ }
+ });
- .loopLine {
- stroke-width: 2px;
- stroke-dasharray: 2, 2;
- stroke: ${options2.labelBoxBorderColor};
- fill: ${options2.labelBoxBorderColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayAggregator.js
+ function arrayAggregator(array4, setter, iteratee, accumulator) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length;
+ while (++index < length2) {
+ var value2 = array4[index];
+ setter(accumulator, value2, iteratee(value2), array4);
+ }
+ return accumulator;
}
+ var arrayAggregator_default;
+ var init_arrayAggregator = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayAggregator.js"() {
+ "use strict";
+ __name(arrayAggregator, "arrayAggregator");
+ arrayAggregator_default = arrayAggregator;
+ }
+ });
- .note {
- //stroke: #decc93;
- stroke: ${options2.noteBorderColor};
- fill: ${options2.noteBkgColor};
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseForOwn.js
+ function baseForOwn(object3, iteratee) {
+ return object3 && baseFor_default(object3, iteratee, keys_default);
+ }
+ var baseForOwn_default;
+ var init_baseForOwn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseForOwn.js"() {
+ "use strict";
+ init_baseFor();
+ init_keys();
+ __name(baseForOwn, "baseForOwn");
+ baseForOwn_default = baseForOwn;
+ }
+ });
- .noteText, .noteText > tspan {
- fill: ${options2.noteTextColor};
- stroke: none;
- }
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseEach.js
+ function createBaseEach(eachFunc, fromRight) {
+ return function(collection4, iteratee) {
+ if (collection4 == null) {
+ return collection4;
+ }
+ if (!isArrayLike_default(collection4)) {
+ return eachFunc(collection4, iteratee);
+ }
+ var length2 = collection4.length, index = fromRight ? length2 : -1, iterable = Object(collection4);
+ while (fromRight ? index-- : ++index < length2) {
+ if (iteratee(iterable[index], index, iterable) === false) {
+ break;
+ }
+ }
+ return collection4;
+ };
+ }
+ var createBaseEach_default;
+ var init_createBaseEach = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseEach.js"() {
+ "use strict";
+ init_isArrayLike();
+ __name(createBaseEach, "createBaseEach");
+ createBaseEach_default = createBaseEach;
+ }
+ });
- .activation0 {
- fill: ${options2.activationBkgColor};
- stroke: ${options2.activationBorderColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEach.js
+ var baseEach, baseEach_default;
+ var init_baseEach = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEach.js"() {
+ "use strict";
+ init_baseForOwn();
+ init_createBaseEach();
+ baseEach = createBaseEach_default(baseForOwn_default);
+ baseEach_default = baseEach;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAggregator.js
+ function baseAggregator(collection4, setter, iteratee, accumulator) {
+ baseEach_default(collection4, function(value2, key, collection5) {
+ setter(accumulator, value2, iteratee(value2), collection5);
+ });
+ return accumulator;
}
+ var baseAggregator_default;
+ var init_baseAggregator = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAggregator.js"() {
+ "use strict";
+ init_baseEach();
+ __name(baseAggregator, "baseAggregator");
+ baseAggregator_default = baseAggregator;
+ }
+ });
- .activation1 {
- fill: ${options2.activationBkgColor};
- stroke: ${options2.activationBorderColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAggregator.js
+ function createAggregator(setter, initializer) {
+ return function(collection4, iteratee) {
+ var func = isArray_default(collection4) ? arrayAggregator_default : baseAggregator_default, accumulator = initializer ? initializer() : {};
+ return func(collection4, setter, baseIteratee_default(iteratee, 2), accumulator);
+ };
}
+ var createAggregator_default;
+ var init_createAggregator = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAggregator.js"() {
+ "use strict";
+ init_arrayAggregator();
+ init_baseAggregator();
+ init_baseIteratee();
+ init_isArray();
+ __name(createAggregator, "createAggregator");
+ createAggregator_default = createAggregator;
+ }
+ });
- .activation2 {
- fill: ${options2.activationBkgColor};
- stroke: ${options2.activationBorderColor};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js
+ var now2, now_default;
+ var init_now = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js"() {
+ "use strict";
+ init_root();
+ now2 = /* @__PURE__ */ __name(function() {
+ return root_default.Date.now();
+ }, "now");
+ now_default = now2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/defaults.js
+ var objectProto18, hasOwnProperty15, defaults, defaults_default;
+ var init_defaults3 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/defaults.js"() {
+ "use strict";
+ init_baseRest();
+ init_eq();
+ init_isIterateeCall();
+ init_keysIn();
+ objectProto18 = Object.prototype;
+ hasOwnProperty15 = objectProto18.hasOwnProperty;
+ defaults = baseRest_default(function(object3, sources) {
+ object3 = Object(object3);
+ var index = -1;
+ var length2 = sources.length;
+ var guard = length2 > 2 ? sources[2] : void 0;
+ if (guard && isIterateeCall_default(sources[0], sources[1], guard)) {
+ length2 = 1;
+ }
+ while (++index < length2) {
+ var source = sources[index];
+ var props = keysIn_default(source);
+ var propsIndex = -1;
+ var propsLength = props.length;
+ while (++propsIndex < propsLength) {
+ var key = props[propsIndex];
+ var value2 = object3[key];
+ if (value2 === void 0 || eq_default(value2, objectProto18[key]) && !hasOwnProperty15.call(object3, key)) {
+ object3[key] = source[key];
+ }
+ }
+ }
+ return object3;
+ });
+ defaults_default = defaults;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludesWith.js
+ function arrayIncludesWith(array4, value2, comparator) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length;
+ while (++index < length2) {
+ if (comparator(value2, array4[index])) {
+ return true;
+ }
+ }
+ return false;
}
+ var arrayIncludesWith_default;
+ var init_arrayIncludesWith = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludesWith.js"() {
+ "use strict";
+ __name(arrayIncludesWith, "arrayIncludesWith");
+ arrayIncludesWith_default = arrayIncludesWith;
+ }
+ });
- .actorPopupMenu {
- position: absolute;
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseDifference.js
+ function baseDifference(array4, values2, iteratee, comparator) {
+ var index = -1, includes3 = arrayIncludes_default, isCommon2 = true, length2 = array4.length, result = [], valuesLength = values2.length;
+ if (!length2) {
+ return result;
+ }
+ if (iteratee) {
+ values2 = arrayMap_default(values2, baseUnary_default(iteratee));
+ }
+ if (comparator) {
+ includes3 = arrayIncludesWith_default;
+ isCommon2 = false;
+ } else if (values2.length >= LARGE_ARRAY_SIZE2) {
+ includes3 = cacheHas_default;
+ isCommon2 = false;
+ values2 = new SetCache_default(values2);
+ }
+ outer:
+ while (++index < length2) {
+ var value2 = array4[index], computed = iteratee == null ? value2 : iteratee(value2);
+ value2 = comparator || value2 !== 0 ? value2 : 0;
+ if (isCommon2 && computed === computed) {
+ var valuesIndex = valuesLength;
+ while (valuesIndex--) {
+ if (values2[valuesIndex] === computed) {
+ continue outer;
+ }
+ }
+ result.push(value2);
+ } else if (!includes3(values2, computed, comparator)) {
+ result.push(value2);
+ }
+ }
+ return result;
}
+ var LARGE_ARRAY_SIZE2, baseDifference_default;
+ var init_baseDifference = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseDifference.js"() {
+ "use strict";
+ init_SetCache();
+ init_arrayIncludes();
+ init_arrayIncludesWith();
+ init_arrayMap();
+ init_baseUnary();
+ init_cacheHas();
+ LARGE_ARRAY_SIZE2 = 200;
+ __name(baseDifference, "baseDifference");
+ baseDifference_default = baseDifference;
+ }
+ });
- .actorPopupMenuPanel {
- position: absolute;
- fill: ${options2.actorBkg};
- box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
- filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
-}
- .actor-man line {
- stroke: ${options2.actorBorder};
- fill: ${options2.actorBkg};
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/difference.js
+ var difference, difference_default;
+ var init_difference = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/difference.js"() {
+ "use strict";
+ init_baseDifference();
+ init_baseFlatten();
+ init_baseRest();
+ init_isArrayLikeObject();
+ difference = baseRest_default(function(array4, values2) {
+ return isArrayLikeObject_default(array4) ? baseDifference_default(array4, baseFlatten_default(values2, 1, isArrayLikeObject_default, true)) : [];
+ });
+ difference_default = difference;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/last.js
+ function last(array4) {
+ var length2 = array4 == null ? 0 : array4.length;
+ return length2 ? array4[length2 - 1] : void 0;
+ }
+ var last_default;
+ var init_last = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/last.js"() {
+ "use strict";
+ __name(last, "last");
+ last_default = last;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/drop.js
+ function drop(array4, n2, guard) {
+ var length2 = array4 == null ? 0 : array4.length;
+ if (!length2) {
+ return [];
+ }
+ n2 = guard || n2 === void 0 ? 1 : toInteger_default(n2);
+ return baseSlice_default(array4, n2 < 0 ? 0 : n2, length2);
}
- .actor-man circle, line {
- stroke: ${options2.actorBorder};
- fill: ${options2.actorBkg};
- stroke-width: 2px;
+ var drop_default;
+ var init_drop = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/drop.js"() {
+ "use strict";
+ init_baseSlice();
+ init_toInteger();
+ __name(drop, "drop");
+ drop_default = drop;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/dropRight.js
+ function dropRight(array4, n2, guard) {
+ var length2 = array4 == null ? 0 : array4.length;
+ if (!length2) {
+ return [];
+ }
+ n2 = guard || n2 === void 0 ? 1 : toInteger_default(n2);
+ n2 = length2 - n2;
+ return baseSlice_default(array4, 0, n2 < 0 ? 0 : n2);
}
-`;
- const styles$5 = getStyles$6;
- const drawRect$2 = function(elem, rectData) {
- const rectElem = elem.append("rect");
- rectElem.attr("x", rectData.x);
- rectElem.attr("y", rectData.y);
- rectElem.attr("fill", rectData.fill);
- rectElem.attr("stroke", rectData.stroke);
- rectElem.attr("width", rectData.width);
- rectElem.attr("height", rectData.height);
- rectElem.attr("rx", rectData.rx);
- rectElem.attr("ry", rectData.ry);
- if (rectData.class !== void 0) {
- rectElem.attr("class", rectData.class);
- }
- return rectElem;
- };
- const addPopupInteraction = (id2, actorCnt2) => {
- addFunction(() => {
- const arr = document.querySelectorAll(id2);
- if (arr.length === 0) {
- return;
- }
- arr[0].addEventListener("mouseover", function() {
- popupMenuUpFunc("actor" + actorCnt2 + "_popup");
- });
- arr[0].addEventListener("mouseout", function() {
- popupMenuDownFunc("actor" + actorCnt2 + "_popup");
- });
- });
- };
- const drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) {
- if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {
- return { height: 0, width: 0 };
- }
- const links2 = actor.links;
- const actorCnt2 = actor.actorCnt;
- const rectData = actor.rectData;
- var displayValue = "none";
- if (forceMenus) {
- displayValue = "block !important";
- }
- const g = elem.append("g");
- g.attr("id", "actor" + actorCnt2 + "_popup");
- g.attr("class", "actorPopupMenu");
- g.attr("display", displayValue);
- addPopupInteraction("#actor" + actorCnt2 + "_popup", actorCnt2);
- var actorClass = "";
- if (rectData.class !== void 0) {
- actorClass = " " + rectData.class;
- }
- let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;
- const rectElem = g.append("rect");
- rectElem.attr("class", "actorPopupMenuPanel" + actorClass);
- rectElem.attr("x", rectData.x);
- rectElem.attr("y", rectData.height);
- rectElem.attr("fill", rectData.fill);
- rectElem.attr("stroke", rectData.stroke);
- rectElem.attr("width", menuWidth);
- rectElem.attr("height", rectData.height);
- rectElem.attr("rx", rectData.rx);
- rectElem.attr("ry", rectData.ry);
- if (links2 != null) {
- var linkY = 20;
- for (let key in links2) {
- var linkElem = g.append("a");
- var sanitizedLink = sanitizeUrl_1(links2[key]);
- linkElem.attr("xlink:href", sanitizedLink);
- linkElem.attr("target", "_blank");
- _drawMenuItemTextCandidateFunc(textAttrs)(
- key,
- linkElem,
- rectData.x + 10,
- rectData.height + linkY,
- menuWidth,
- 20,
- { class: "actor" },
- textAttrs
- );
- linkY += 30;
- }
+ var dropRight_default;
+ var init_dropRight = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/dropRight.js"() {
+ "use strict";
+ init_baseSlice();
+ init_toInteger();
+ __name(dropRight, "dropRight");
+ dropRight_default = dropRight;
}
- rectElem.attr("height", linkY);
- return { height: rectData.height + linkY, width: menuWidth };
- };
- const drawImage = function(elem, x2, y2, link) {
- const imageElem = elem.append("image");
- imageElem.attr("x", x2);
- imageElem.attr("y", y2);
- var sanitizedLink = sanitizeUrl_1(link);
- imageElem.attr("xlink:href", sanitizedLink);
- };
- const drawEmbeddedImage = function(elem, x2, y2, link) {
- const imageElem = elem.append("use");
- imageElem.attr("x", x2);
- imageElem.attr("y", y2);
- var sanitizedLink = sanitizeUrl_1(link);
- imageElem.attr("xlink:href", "#" + sanitizedLink);
- };
- const popupMenu = function(popid) {
- return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'block'; }";
- };
- const popdownMenu = function(popid) {
- return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'none'; }";
- };
- const popupMenuUpFunc = function(popupId) {
- var pu = document.getElementById(popupId);
- if (pu != null) {
- pu.style.display = "block";
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castFunction.js
+ function castFunction(value2) {
+ return typeof value2 == "function" ? value2 : identity_default4;
+ }
+ var castFunction_default;
+ var init_castFunction = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castFunction.js"() {
+ "use strict";
+ init_identity4();
+ __name(castFunction, "castFunction");
+ castFunction_default = castFunction;
}
- };
- const popupMenuDownFunc = function(popupId) {
- var pu = document.getElementById(popupId);
- if (pu != null) {
- pu.style.display = "none";
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forEach.js
+ function forEach(collection4, iteratee) {
+ var func = isArray_default(collection4) ? arrayEach_default : baseEach_default;
+ return func(collection4, castFunction_default(iteratee));
+ }
+ var forEach_default;
+ var init_forEach = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forEach.js"() {
+ "use strict";
+ init_arrayEach();
+ init_baseEach();
+ init_castFunction();
+ init_isArray();
+ __name(forEach, "forEach");
+ forEach_default = forEach;
}
- };
- const drawText$2 = function(elem, textData) {
- let prevTextHeight = 0, textHeight = 0;
- const lines = textData.text.split(common$1.lineBreakRegex);
- const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);
- let textElems = [];
- let dy = 0;
- let yfunc = () => textData.y;
- if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
- switch (textData.valign) {
- case "top":
- case "start":
- yfunc = () => Math.round(textData.y + textData.textMargin);
- break;
- case "middle":
- case "center":
- yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
- break;
- case "bottom":
- case "end":
- yfunc = () => Math.round(
- textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin
- );
- break;
- }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/each.js
+ var init_each2 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/each.js"() {
+ "use strict";
+ init_forEach();
}
- if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {
- switch (textData.anchor) {
- case "left":
- case "start":
- textData.x = Math.round(textData.x + textData.textMargin);
- textData.anchor = "start";
- textData.dominantBaseline = "middle";
- textData.alignmentBaseline = "middle";
- break;
- case "middle":
- case "center":
- textData.x = Math.round(textData.x + textData.width / 2);
- textData.anchor = "middle";
- textData.dominantBaseline = "middle";
- textData.alignmentBaseline = "middle";
- break;
- case "right":
- case "end":
- textData.x = Math.round(textData.x + textData.width - textData.textMargin);
- textData.anchor = "end";
- textData.dominantBaseline = "middle";
- textData.alignmentBaseline = "middle";
- break;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEvery.js
+ function arrayEvery(array4, predicate) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length;
+ while (++index < length2) {
+ if (!predicate(array4[index], index, array4)) {
+ return false;
}
}
- for (let [i2, line2] of lines.entries()) {
- if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {
- dy = i2 * _textFontSize;
- }
- const textElem = elem.append("text");
- textElem.attr("x", textData.x);
- textElem.attr("y", yfunc());
- if (textData.anchor !== void 0) {
- textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline);
- }
- if (textData.fontFamily !== void 0) {
- textElem.style("font-family", textData.fontFamily);
- }
- if (_textFontSizePx !== void 0) {
- textElem.style("font-size", _textFontSizePx);
- }
- if (textData.fontWeight !== void 0) {
- textElem.style("font-weight", textData.fontWeight);
- }
- if (textData.fill !== void 0) {
- textElem.attr("fill", textData.fill);
- }
- if (textData.class !== void 0) {
- textElem.attr("class", textData.class);
- }
- if (textData.dy !== void 0) {
- textElem.attr("dy", textData.dy);
- } else if (dy !== 0) {
- textElem.attr("dy", dy);
- }
- if (textData.tspan) {
- const span = textElem.append("tspan");
- span.attr("x", textData.x);
- if (textData.fill !== void 0) {
- span.attr("fill", textData.fill);
- }
- span.text(line2);
- } else {
- textElem.text(line2);
+ return true;
+ }
+ var arrayEvery_default;
+ var init_arrayEvery = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEvery.js"() {
+ "use strict";
+ __name(arrayEvery, "arrayEvery");
+ arrayEvery_default = arrayEvery;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEvery.js
+ function baseEvery(collection4, predicate) {
+ var result = true;
+ baseEach_default(collection4, function(value2, index, collection5) {
+ result = !!predicate(value2, index, collection5);
+ return result;
+ });
+ return result;
+ }
+ var baseEvery_default;
+ var init_baseEvery = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEvery.js"() {
+ "use strict";
+ init_baseEach();
+ __name(baseEvery, "baseEvery");
+ baseEvery_default = baseEvery;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/every.js
+ function every(collection4, predicate, guard) {
+ var func = isArray_default(collection4) ? arrayEvery_default : baseEvery_default;
+ if (guard && isIterateeCall_default(collection4, predicate, guard)) {
+ predicate = void 0;
+ }
+ return func(collection4, baseIteratee_default(predicate, 3));
+ }
+ var every_default;
+ var init_every = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/every.js"() {
+ "use strict";
+ init_arrayEvery();
+ init_baseEvery();
+ init_baseIteratee();
+ init_isArray();
+ init_isIterateeCall();
+ __name(every, "every");
+ every_default = every;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFilter.js
+ function baseFilter(collection4, predicate) {
+ var result = [];
+ baseEach_default(collection4, function(value2, index, collection5) {
+ if (predicate(value2, index, collection5)) {
+ result.push(value2);
}
- if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
- textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
- prevTextHeight = textHeight;
+ });
+ return result;
+ }
+ var baseFilter_default;
+ var init_baseFilter = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFilter.js"() {
+ "use strict";
+ init_baseEach();
+ __name(baseFilter, "baseFilter");
+ baseFilter_default = baseFilter;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/filter.js
+ function filter2(collection4, predicate) {
+ var func = isArray_default(collection4) ? arrayFilter_default : baseFilter_default;
+ return func(collection4, baseIteratee_default(predicate, 3));
+ }
+ var filter_default3;
+ var init_filter3 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/filter.js"() {
+ "use strict";
+ init_arrayFilter();
+ init_baseFilter();
+ init_baseIteratee();
+ init_isArray();
+ __name(filter2, "filter");
+ filter_default3 = filter2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createFind.js
+ function createFind(findIndexFunc) {
+ return function(collection4, predicate, fromIndex) {
+ var iterable = Object(collection4);
+ if (!isArrayLike_default(collection4)) {
+ var iteratee = baseIteratee_default(predicate, 3);
+ collection4 = keys_default(collection4);
+ predicate = /* @__PURE__ */ __name(function(key) {
+ return iteratee(iterable[key], key, iterable);
+ }, "predicate");
}
- textElems.push(textElem);
+ var index = findIndexFunc(collection4, predicate, fromIndex);
+ return index > -1 ? iterable[iteratee ? collection4[index] : index] : void 0;
+ };
+ }
+ var createFind_default;
+ var init_createFind = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createFind.js"() {
+ "use strict";
+ init_baseIteratee();
+ init_isArrayLike();
+ init_keys();
+ __name(createFind, "createFind");
+ createFind_default = createFind;
}
- return textElems;
- };
- const drawLabel$2 = function(elem, txtObject) {
- function genPoints(x2, y2, width2, height2, cut) {
- return x2 + "," + y2 + " " + (x2 + width2) + "," + y2 + " " + (x2 + width2) + "," + (y2 + height2 - cut) + " " + (x2 + width2 - cut * 1.2) + "," + (y2 + height2) + " " + x2 + "," + (y2 + height2);
- }
- const polygon = elem.append("polygon");
- polygon.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
- polygon.attr("class", "labelBox");
- txtObject.y = txtObject.y + txtObject.height / 2;
- drawText$2(elem, txtObject);
- return polygon;
- };
- let actorCnt = -1;
- const fixLifeLineHeights = (diagram2, bounds2) => {
- if (!diagram2.selectAll) {
- return;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/findIndex.js
+ function findIndex(array4, predicate, fromIndex) {
+ var length2 = array4 == null ? 0 : array4.length;
+ if (!length2) {
+ return -1;
}
- diagram2.selectAll(".actor-line").attr("class", "200").attr("y2", bounds2 - 55);
- };
- const drawActorTypeParticipant = function(elem, actor, conf2, isFooter) {
- const center2 = actor.x + actor.width / 2;
- const centerY = actor.y + 5;
- const boxpluslineGroup = elem.append("g");
- var g = boxpluslineGroup;
- if (!isFooter) {
- actorCnt++;
- g.append("line").attr("id", "actor" + actorCnt).attr("x1", center2).attr("y1", centerY).attr("x2", center2).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
- g = boxpluslineGroup.append("g");
- actor.actorCnt = actorCnt;
- if (actor.links != null) {
- g.attr("id", "root-" + actorCnt);
- addPopupInteraction("#root-" + actorCnt, actorCnt);
- }
- }
- const rect2 = getNoteRect$2();
- var cssclass = "actor";
- if (actor.properties != null && actor.properties["class"]) {
- cssclass = actor.properties["class"];
- } else {
- rect2.fill = "#eaeaea";
- }
- rect2.x = actor.x;
- rect2.y = actor.y;
- rect2.width = actor.width;
- rect2.height = actor.height;
- rect2.class = cssclass;
- rect2.rx = 3;
- rect2.ry = 3;
- const rectElem = drawRect$2(g, rect2);
- actor.rectData = rect2;
- if (actor.properties != null && actor.properties["icon"]) {
- const iconSrc = actor.properties["icon"].trim();
- if (iconSrc.charAt(0) === "@") {
- drawEmbeddedImage(g, rect2.x + rect2.width - 20, rect2.y + 10, iconSrc.substr(1));
- } else {
- drawImage(g, rect2.x + rect2.width - 20, rect2.y + 10, iconSrc);
- }
- }
- _drawTextCandidateFunc$2(conf2)(
- actor.description,
- g,
- rect2.x,
- rect2.y,
- rect2.width,
- rect2.height,
- { class: "actor" },
- conf2
- );
- let height2 = actor.height;
- if (rectElem.node) {
- const bounds2 = rectElem.node().getBBox();
- actor.height = bounds2.height;
- height2 = bounds2.height;
+ var index = fromIndex == null ? 0 : toInteger_default(fromIndex);
+ if (index < 0) {
+ index = nativeMax2(length2 + index, 0);
}
- return height2;
- };
- const drawActorTypeActor = function(elem, actor, conf2, isFooter) {
- const center2 = actor.x + actor.width / 2;
- const centerY = actor.y + 80;
- if (!isFooter) {
- actorCnt++;
- elem.append("line").attr("id", "actor" + actorCnt).attr("x1", center2).attr("y1", centerY).attr("x2", center2).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
- }
- const actElem = elem.append("g");
- actElem.attr("class", "actor-man");
- const rect2 = getNoteRect$2();
- rect2.x = actor.x;
- rect2.y = actor.y;
- rect2.fill = "#eaeaea";
- rect2.width = actor.width;
- rect2.height = actor.height;
- rect2.class = "actor";
- rect2.rx = 3;
- rect2.ry = 3;
- actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center2).attr("y1", actor.y + 25).attr("x2", center2).attr("y2", actor.y + 45);
- actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center2 - 18).attr("y1", actor.y + 33).attr("x2", center2 + 18).attr("y2", actor.y + 33);
- actElem.append("line").attr("x1", center2 - 18).attr("y1", actor.y + 60).attr("x2", center2).attr("y2", actor.y + 45);
- actElem.append("line").attr("x1", center2).attr("y1", actor.y + 45).attr("x2", center2 + 16).attr("y2", actor.y + 60);
- const circle2 = actElem.append("circle");
- circle2.attr("cx", actor.x + actor.width / 2);
- circle2.attr("cy", actor.y + 10);
- circle2.attr("r", 15);
- circle2.attr("width", actor.width);
- circle2.attr("height", actor.height);
- const bounds2 = actElem.node().getBBox();
- actor.height = bounds2.height;
- _drawTextCandidateFunc$2(conf2)(
- actor.description,
- actElem,
- rect2.x,
- rect2.y + 35,
- rect2.width,
- rect2.height,
- { class: "actor" },
- conf2
- );
- return actor.height;
- };
- const drawActor = function(elem, actor, conf2, isFooter) {
- switch (actor.type) {
- case "actor":
- return drawActorTypeActor(elem, actor, conf2, isFooter);
- case "participant":
- return drawActorTypeParticipant(elem, actor, conf2, isFooter);
+ return baseFindIndex_default(array4, baseIteratee_default(predicate, 3), index);
+ }
+ var nativeMax2, findIndex_default;
+ var init_findIndex = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/findIndex.js"() {
+ "use strict";
+ init_baseFindIndex();
+ init_baseIteratee();
+ init_toInteger();
+ nativeMax2 = Math.max;
+ __name(findIndex, "findIndex");
+ findIndex_default = findIndex;
}
- };
- const drawBox = function(elem, box, conf2) {
- const boxplustextGroup = elem.append("g");
- const g = boxplustextGroup;
- drawBackgroundRect$2(g, box);
- if (box.name) {
- _drawTextCandidateFunc$2(conf2)(
- box.name,
- g,
- box.x,
- box.y + (box.textMaxHeight || 0) / 2,
- box.width,
- 0,
- { class: "text" },
- conf2
- );
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/find.js
+ var find2, find_default;
+ var init_find = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/find.js"() {
+ "use strict";
+ init_createFind();
+ init_findIndex();
+ find2 = createFind_default(findIndex_default);
+ find_default = find2;
}
- g.lower();
- };
- const anchorElement = function(elem) {
- return elem.append("g");
- };
- const drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) {
- const rect2 = getNoteRect$2();
- const g = bounds2.anchored;
- rect2.x = bounds2.startx;
- rect2.y = bounds2.starty;
- rect2.class = "activation" + actorActivations2 % 3;
- rect2.width = bounds2.stopx - bounds2.startx;
- rect2.height = verticalPos - bounds2.starty;
- drawRect$2(g, rect2);
- };
- const drawLoop = function(elem, loopModel, labelText, conf2) {
- const {
- boxMargin,
- boxTextMargin,
- labelBoxHeight,
- labelBoxWidth,
- messageFontFamily: fontFamily,
- messageFontSize: fontSize,
- messageFontWeight: fontWeight
- } = conf2;
- const g = elem.append("g");
- const drawLoopLine = function(startx, starty, stopx, stopy) {
- return g.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine");
- };
- drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
- drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
- drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
- drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
- if (loopModel.sections !== void 0) {
- loopModel.sections.forEach(function(item) {
- drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(
- "stroke-dasharray",
- "3, 3"
- );
- });
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js
+ function head(array4) {
+ return array4 && array4.length ? array4[0] : void 0;
+ }
+ var head_default;
+ var init_head = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js"() {
+ "use strict";
+ __name(head, "head");
+ head_default = head;
}
- let txt = getTextObj$2();
- txt.text = labelText;
- txt.x = loopModel.startx;
- txt.y = loopModel.starty;
- txt.fontFamily = fontFamily;
- txt.fontSize = fontSize;
- txt.fontWeight = fontWeight;
- txt.anchor = "middle";
- txt.valign = "middle";
- txt.tspan = false;
- txt.width = labelBoxWidth || 50;
- txt.height = labelBoxHeight || 20;
- txt.textMargin = boxTextMargin;
- txt.class = "labelText";
- drawLabel$2(g, txt);
- txt = getTextObj$2();
- txt.text = loopModel.title;
- txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
- txt.y = loopModel.starty + boxMargin + boxTextMargin;
- txt.anchor = "middle";
- txt.valign = "middle";
- txt.textMargin = boxTextMargin;
- txt.class = "loopText";
- txt.fontFamily = fontFamily;
- txt.fontSize = fontSize;
- txt.fontWeight = fontWeight;
- txt.wrap = true;
- let textElem = drawText$2(g, txt);
- if (loopModel.sectionTitles !== void 0) {
- loopModel.sectionTitles.forEach(function(item, idx) {
- if (item.message) {
- txt.text = item.message;
- txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
- txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
- txt.class = "loopText";
- txt.anchor = "middle";
- txt.valign = "middle";
- txt.tspan = false;
- txt.fontFamily = fontFamily;
- txt.fontSize = fontSize;
- txt.fontWeight = fontWeight;
- txt.wrap = loopModel.wrap;
- textElem = drawText$2(g, txt);
- let sectionHeight = Math.round(
- textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
- );
- loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/first.js
+ var init_first = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/first.js"() {
+ "use strict";
+ init_head();
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMap.js
+ function baseMap(collection4, iteratee) {
+ var index = -1, result = isArrayLike_default(collection4) ? Array(collection4.length) : [];
+ baseEach_default(collection4, function(value2, key, collection5) {
+ result[++index] = iteratee(value2, key, collection5);
+ });
+ return result;
+ }
+ var baseMap_default;
+ var init_baseMap = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMap.js"() {
+ "use strict";
+ init_baseEach();
+ init_isArrayLike();
+ __name(baseMap, "baseMap");
+ baseMap_default = baseMap;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/map.js
+ function map2(collection4, iteratee) {
+ var func = isArray_default(collection4) ? arrayMap_default : baseMap_default;
+ return func(collection4, baseIteratee_default(iteratee, 3));
+ }
+ var map_default;
+ var init_map = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/map.js"() {
+ "use strict";
+ init_arrayMap();
+ init_baseIteratee();
+ init_baseMap();
+ init_isArray();
+ __name(map2, "map");
+ map_default = map2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatMap.js
+ function flatMap(collection4, iteratee) {
+ return baseFlatten_default(map_default(collection4, iteratee), 1);
+ }
+ var flatMap_default;
+ var init_flatMap = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatMap.js"() {
+ "use strict";
+ init_baseFlatten();
+ init_map();
+ __name(flatMap, "flatMap");
+ flatMap_default = flatMap;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forIn.js
+ function forIn(object3, iteratee) {
+ return object3 == null ? object3 : baseFor_default(object3, castFunction_default(iteratee), keysIn_default);
+ }
+ var forIn_default;
+ var init_forIn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forIn.js"() {
+ "use strict";
+ init_baseFor();
+ init_castFunction();
+ init_keysIn();
+ __name(forIn, "forIn");
+ forIn_default = forIn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forOwn.js
+ function forOwn(object3, iteratee) {
+ return object3 && baseForOwn_default(object3, castFunction_default(iteratee));
+ }
+ var forOwn_default;
+ var init_forOwn = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/forOwn.js"() {
+ "use strict";
+ init_baseForOwn();
+ init_castFunction();
+ __name(forOwn, "forOwn");
+ forOwn_default = forOwn;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/groupBy.js
+ var objectProto19, hasOwnProperty16, groupBy, groupBy_default;
+ var init_groupBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/groupBy.js"() {
+ "use strict";
+ init_baseAssignValue();
+ init_createAggregator();
+ objectProto19 = Object.prototype;
+ hasOwnProperty16 = objectProto19.hasOwnProperty;
+ groupBy = createAggregator_default(function(result, value2, key) {
+ if (hasOwnProperty16.call(result, key)) {
+ result[key].push(value2);
+ } else {
+ baseAssignValue_default(result, key, [value2]);
}
});
+ groupBy_default = groupBy;
}
- loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
- return g;
- };
- const drawBackgroundRect$2 = function(elem, bounds2) {
- const rectElem = drawRect$2(elem, {
- x: bounds2.startx,
- y: bounds2.starty,
- width: bounds2.stopx - bounds2.startx,
- height: bounds2.stopy - bounds2.starty,
- fill: bounds2.fill,
- stroke: bounds2.stroke,
- class: "rect"
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGt.js
+ function baseGt(value2, other) {
+ return value2 > other;
+ }
+ var baseGt_default;
+ var init_baseGt = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGt.js"() {
+ "use strict";
+ __name(baseGt, "baseGt");
+ baseGt_default = baseGt;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHas.js
+ function baseHas(object3, key) {
+ return object3 != null && hasOwnProperty17.call(object3, key);
+ }
+ var objectProto20, hasOwnProperty17, baseHas_default;
+ var init_baseHas = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHas.js"() {
+ "use strict";
+ objectProto20 = Object.prototype;
+ hasOwnProperty17 = objectProto20.hasOwnProperty;
+ __name(baseHas, "baseHas");
+ baseHas_default = baseHas;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/has.js
+ function has(object3, path4) {
+ return object3 != null && hasPath_default(object3, path4, baseHas_default);
+ }
+ var has_default;
+ var init_has = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/has.js"() {
+ "use strict";
+ init_baseHas();
+ init_hasPath();
+ __name(has, "has");
+ has_default = has;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isString.js
+ function isString(value2) {
+ return typeof value2 == "string" || !isArray_default(value2) && isObjectLike_default(value2) && baseGetTag_default(value2) == stringTag5;
+ }
+ var stringTag5, isString_default;
+ var init_isString = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isString.js"() {
+ "use strict";
+ init_baseGetTag();
+ init_isArray();
+ init_isObjectLike();
+ stringTag5 = "[object String]";
+ __name(isString, "isString");
+ isString_default = isString;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseValues.js
+ function baseValues(object3, props) {
+ return arrayMap_default(props, function(key) {
+ return object3[key];
});
- rectElem.lower();
- };
- const insertDatabaseIcon = function(elem) {
- elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
- "d",
- "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
- );
- };
- const insertComputerIcon = function(elem) {
- elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
- "d",
- "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
- );
- };
- const insertClockIcon = function(elem) {
- elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
- "d",
- "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
- );
- };
- const insertArrowHead = function(elem) {
- elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
- };
- const insertArrowFilledHead = function(elem) {
- elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
- };
- const insertSequenceNumber = function(elem) {
- elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6);
- };
- const insertArrowCrossHead = function(elem) {
- const defs = elem.append("defs");
- const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 5);
- marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7");
- };
- const getTextObj$2 = function() {
- return {
- x: 0,
- y: 0,
- fill: void 0,
- anchor: void 0,
- style: "#666",
- width: void 0,
- height: void 0,
- textMargin: 0,
- rx: 0,
- ry: 0,
- tspan: true,
- valign: void 0
- };
- };
- const getNoteRect$2 = function() {
- return {
- x: 0,
- y: 0,
- fill: "#EDF2AE",
- stroke: "#666",
- width: 100,
- anchor: "start",
- height: 100,
- rx: 0,
- ry: 0
- };
- };
- const _drawTextCandidateFunc$2 = function() {
- function byText(content, g, x2, y2, width2, height2, textAttrs) {
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("text-anchor", "middle").text(content);
- _setTextAttrs(text2, textAttrs);
- }
- function byTspan(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
- const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);
- const lines = content.split(common$1.lineBreakRegex);
- for (let i2 = 0; i2 < lines.length; i2++) {
- const dy = i2 * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
- text2.append("tspan").attr("x", x2 + width2 / 2).attr("dy", dy).text(lines[i2]);
- text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
- _setTextAttrs(text2, textAttrs);
- }
- }
- function byFo(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const s = g.append("switch");
- const f2 = s.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2);
- const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
- text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
- byTspan(content, s, x2, y2, width2, height2, textAttrs, conf2);
- _setTextAttrs(text2, textAttrs);
- }
- function _setTextAttrs(toText, fromTextAttrsDict) {
- for (const key in fromTextAttrsDict) {
- if (fromTextAttrsDict.hasOwnProperty(key)) {
- toText.attr(key, fromTextAttrsDict[key]);
- }
- }
- }
- return function(conf2) {
- return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
- };
- }();
- const _drawMenuItemTextCandidateFunc = function() {
- function byText(content, g, x2, y2, width2, height2, textAttrs) {
- const text2 = g.append("text").attr("x", x2).attr("y", y2).style("text-anchor", "start").text(content);
- _setTextAttrs(text2, textAttrs);
- }
- function byTspan(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
- const lines = content.split(common$1.lineBreakRegex);
- for (let i2 = 0; i2 < lines.length; i2++) {
- const dy = i2 * actorFontSize - actorFontSize * (lines.length - 1) / 2;
- const text2 = g.append("text").attr("x", x2).attr("y", y2).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
- text2.append("tspan").attr("x", x2).attr("dy", dy).text(lines[i2]);
- text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
- _setTextAttrs(text2, textAttrs);
- }
- }
- function byFo(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const s = g.append("switch");
- const f2 = s.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2);
- const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
- text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
- byTspan(content, s, x2, y2, width2, height2, textAttrs, conf2);
- _setTextAttrs(text2, textAttrs);
- }
- function _setTextAttrs(toText, fromTextAttrsDict) {
- for (const key in fromTextAttrsDict) {
- if (fromTextAttrsDict.hasOwnProperty(key)) {
- toText.attr(key, fromTextAttrsDict[key]);
- }
- }
- }
- return function(conf2) {
- return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
- };
- }();
- const svgDraw$3 = {
- drawRect: drawRect$2,
- drawText: drawText$2,
- drawLabel: drawLabel$2,
- drawActor,
- drawBox,
- drawPopup,
- drawImage,
- drawEmbeddedImage,
- anchorElement,
- drawActivation,
- drawLoop,
- drawBackgroundRect: drawBackgroundRect$2,
- insertArrowHead,
- insertArrowFilledHead,
- insertSequenceNumber,
- insertArrowCrossHead,
- insertDatabaseIcon,
- insertComputerIcon,
- insertClockIcon,
- getTextObj: getTextObj$2,
- getNoteRect: getNoteRect$2,
- popupMenu,
- popdownMenu,
- fixLifeLineHeights,
- sanitizeUrl: sanitizeUrl_1
- };
- let conf$4 = {};
- const bounds$1 = {
- data: {
- startx: void 0,
- stopx: void 0,
- starty: void 0,
- stopy: void 0
- },
- verticalPos: 0,
- sequenceItems: [],
- activations: [],
- models: {
- getHeight: function() {
- return Math.max.apply(
- null,
- this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)
- ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));
- },
- clear: function() {
- this.actors = [];
- this.boxes = [];
- this.loops = [];
- this.messages = [];
- this.notes = [];
- },
- addBox: function(boxModel) {
- this.boxes.push(boxModel);
- },
- addActor: function(actorModel) {
- this.actors.push(actorModel);
- },
- addLoop: function(loopModel) {
- this.loops.push(loopModel);
- },
- addMessage: function(msgModel) {
- this.messages.push(msgModel);
- },
- addNote: function(noteModel) {
- this.notes.push(noteModel);
- },
- lastActor: function() {
- return this.actors[this.actors.length - 1];
- },
- lastLoop: function() {
- return this.loops[this.loops.length - 1];
- },
- lastMessage: function() {
- return this.messages[this.messages.length - 1];
- },
- lastNote: function() {
- return this.notes[this.notes.length - 1];
- },
- actors: [],
- boxes: [],
- loops: [],
- messages: [],
- notes: []
- },
- init: function() {
- this.sequenceItems = [];
- this.activations = [];
- this.models.clear();
- this.data = {
- startx: void 0,
- stopx: void 0,
- starty: void 0,
- stopy: void 0
- };
- this.verticalPos = 0;
- setConf$4(getConfig$1());
- },
- updateVal: function(obj, key, val, fun) {
- if (obj[key] === void 0) {
- obj[key] = val;
- } else {
- obj[key] = fun(val, obj[key]);
+ }
+ var baseValues_default;
+ var init_baseValues = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseValues.js"() {
+ "use strict";
+ init_arrayMap();
+ __name(baseValues, "baseValues");
+ baseValues_default = baseValues;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/values.js
+ function values(object3) {
+ return object3 == null ? [] : baseValues_default(object3, keys_default(object3));
+ }
+ var values_default;
+ var init_values = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/values.js"() {
+ "use strict";
+ init_baseValues();
+ init_keys();
+ __name(values, "values");
+ values_default = values;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/includes.js
+ function includes(collection4, value2, fromIndex, guard) {
+ collection4 = isArrayLike_default(collection4) ? collection4 : values_default(collection4);
+ fromIndex = fromIndex && !guard ? toInteger_default(fromIndex) : 0;
+ var length2 = collection4.length;
+ if (fromIndex < 0) {
+ fromIndex = nativeMax3(length2 + fromIndex, 0);
+ }
+ return isString_default(collection4) ? fromIndex <= length2 && collection4.indexOf(value2, fromIndex) > -1 : !!length2 && baseIndexOf_default(collection4, value2, fromIndex) > -1;
+ }
+ var nativeMax3, includes_default;
+ var init_includes = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/includes.js"() {
+ "use strict";
+ init_baseIndexOf();
+ init_isArrayLike();
+ init_isString();
+ init_toInteger();
+ init_values();
+ nativeMax3 = Math.max;
+ __name(includes, "includes");
+ includes_default = includes;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/indexOf.js
+ function indexOf(array4, value2, fromIndex) {
+ var length2 = array4 == null ? 0 : array4.length;
+ if (!length2) {
+ return -1;
+ }
+ var index = fromIndex == null ? 0 : toInteger_default(fromIndex);
+ if (index < 0) {
+ index = nativeMax4(length2 + index, 0);
+ }
+ return baseIndexOf_default(array4, value2, index);
+ }
+ var nativeMax4, indexOf_default;
+ var init_indexOf = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/indexOf.js"() {
+ "use strict";
+ init_baseIndexOf();
+ init_toInteger();
+ nativeMax4 = Math.max;
+ __name(indexOf, "indexOf");
+ indexOf_default = indexOf;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js
+ function isEmpty(value2) {
+ if (value2 == null) {
+ return true;
+ }
+ if (isArrayLike_default(value2) && (isArray_default(value2) || typeof value2 == "string" || typeof value2.splice == "function" || isBuffer_default(value2) || isTypedArray_default(value2) || isArguments_default(value2))) {
+ return !value2.length;
+ }
+ var tag2 = getTag_default(value2);
+ if (tag2 == mapTag7 || tag2 == setTag7) {
+ return !value2.size;
+ }
+ if (isPrototype_default(value2)) {
+ return !baseKeys_default(value2).length;
+ }
+ for (var key in value2) {
+ if (hasOwnProperty18.call(value2, key)) {
+ return false;
}
- },
- updateBounds: function(startx, starty, stopx, stopy) {
- const _self = this;
- let cnt2 = 0;
- function updateFn(type2) {
- return function updateItemBounds(item) {
- cnt2++;
- const n = _self.sequenceItems.length - cnt2 + 1;
- _self.updateVal(item, "starty", starty - n * conf$4.boxMargin, Math.min);
- _self.updateVal(item, "stopy", stopy + n * conf$4.boxMargin, Math.max);
- _self.updateVal(bounds$1.data, "startx", startx - n * conf$4.boxMargin, Math.min);
- _self.updateVal(bounds$1.data, "stopx", stopx + n * conf$4.boxMargin, Math.max);
- if (!(type2 === "activation")) {
- _self.updateVal(item, "startx", startx - n * conf$4.boxMargin, Math.min);
- _self.updateVal(item, "stopx", stopx + n * conf$4.boxMargin, Math.max);
- _self.updateVal(bounds$1.data, "starty", starty - n * conf$4.boxMargin, Math.min);
- _self.updateVal(bounds$1.data, "stopy", stopy + n * conf$4.boxMargin, Math.max);
- }
- };
+ }
+ return true;
+ }
+ var mapTag7, setTag7, objectProto21, hasOwnProperty18, isEmpty_default;
+ var init_isEmpty = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js"() {
+ "use strict";
+ init_baseKeys();
+ init_getTag();
+ init_isArguments();
+ init_isArray();
+ init_isArrayLike();
+ init_isBuffer();
+ init_isPrototype();
+ init_isTypedArray();
+ mapTag7 = "[object Map]";
+ setTag7 = "[object Set]";
+ objectProto21 = Object.prototype;
+ hasOwnProperty18 = objectProto21.hasOwnProperty;
+ __name(isEmpty, "isEmpty");
+ isEmpty_default = isEmpty;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsRegExp.js
+ function baseIsRegExp(value2) {
+ return isObjectLike_default(value2) && baseGetTag_default(value2) == regexpTag5;
+ }
+ var regexpTag5, baseIsRegExp_default;
+ var init_baseIsRegExp = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsRegExp.js"() {
+ "use strict";
+ init_baseGetTag();
+ init_isObjectLike();
+ regexpTag5 = "[object RegExp]";
+ __name(baseIsRegExp, "baseIsRegExp");
+ baseIsRegExp_default = baseIsRegExp;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isRegExp.js
+ var nodeIsRegExp, isRegExp, isRegExp_default;
+ var init_isRegExp = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isRegExp.js"() {
+ "use strict";
+ init_baseIsRegExp();
+ init_baseUnary();
+ init_nodeUtil();
+ nodeIsRegExp = nodeUtil_default && nodeUtil_default.isRegExp;
+ isRegExp = nodeIsRegExp ? baseUnary_default(nodeIsRegExp) : baseIsRegExp_default;
+ isRegExp_default = isRegExp;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.js
+ function isUndefined(value2) {
+ return value2 === void 0;
+ }
+ var isUndefined_default;
+ var init_isUndefined = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.js"() {
+ "use strict";
+ __name(isUndefined, "isUndefined");
+ isUndefined_default = isUndefined;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseLt.js
+ function baseLt(value2, other) {
+ return value2 < other;
+ }
+ var baseLt_default;
+ var init_baseLt = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseLt.js"() {
+ "use strict";
+ __name(baseLt, "baseLt");
+ baseLt_default = baseLt;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mapValues.js
+ function mapValues(object3, iteratee) {
+ var result = {};
+ iteratee = baseIteratee_default(iteratee, 3);
+ baseForOwn_default(object3, function(value2, key, object4) {
+ baseAssignValue_default(result, key, iteratee(value2, key, object4));
+ });
+ return result;
+ }
+ var mapValues_default;
+ var init_mapValues = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mapValues.js"() {
+ "use strict";
+ init_baseAssignValue();
+ init_baseForOwn();
+ init_baseIteratee();
+ __name(mapValues, "mapValues");
+ mapValues_default = mapValues;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseExtremum.js
+ function baseExtremum(array4, iteratee, comparator) {
+ var index = -1, length2 = array4.length;
+ while (++index < length2) {
+ var value2 = array4[index], current = iteratee(value2);
+ if (current != null && (computed === void 0 ? current === current && !isSymbol_default(current) : comparator(current, computed))) {
+ var computed = current, result = value2;
}
- this.sequenceItems.forEach(updateFn());
- this.activations.forEach(updateFn("activation"));
- },
- insert: function(startx, starty, stopx, stopy) {
- const _startx = Math.min(startx, stopx);
- const _stopx = Math.max(startx, stopx);
- const _starty = Math.min(starty, stopy);
- const _stopy = Math.max(starty, stopy);
- this.updateVal(bounds$1.data, "startx", _startx, Math.min);
- this.updateVal(bounds$1.data, "starty", _starty, Math.min);
- this.updateVal(bounds$1.data, "stopx", _stopx, Math.max);
- this.updateVal(bounds$1.data, "stopy", _stopy, Math.max);
- this.updateBounds(_startx, _starty, _stopx, _stopy);
- },
- newActivation: function(message2, diagram2, actors2) {
- const actorRect = actors2[message2.from.actor];
- const stackedSize = actorActivations(message2.from.actor).length || 0;
- const x2 = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf$4.activationWidth / 2;
- this.activations.push({
- startx: x2,
- starty: this.verticalPos + 2,
- stopx: x2 + conf$4.activationWidth,
- stopy: void 0,
- actor: message2.from.actor,
- anchored: svgDraw$3.anchorElement(diagram2)
- });
- },
- endActivation: function(message2) {
- const lastActorActivationIdx = this.activations.map(function(activation) {
- return activation.actor;
- }).lastIndexOf(message2.from.actor);
- return this.activations.splice(lastActorActivationIdx, 1)[0];
- },
- createLoop: function(title2 = { message: void 0, wrap: false, width: void 0 }, fill) {
- return {
- startx: void 0,
- starty: this.verticalPos,
- stopx: void 0,
- stopy: void 0,
- title: title2.message,
- wrap: title2.wrap,
- width: title2.width,
- height: 0,
- fill
- };
- },
- newLoop: function(title2 = { message: void 0, wrap: false, width: void 0 }, fill) {
- this.sequenceItems.push(this.createLoop(title2, fill));
- },
- endLoop: function() {
- return this.sequenceItems.pop();
- },
- addSectionToLoop: function(message2) {
- const loop = this.sequenceItems.pop();
- loop.sections = loop.sections || [];
- loop.sectionTitles = loop.sectionTitles || [];
- loop.sections.push({ y: bounds$1.getVerticalPos(), height: 0 });
- loop.sectionTitles.push(message2);
- this.sequenceItems.push(loop);
- },
- bumpVerticalPos: function(bump) {
- this.verticalPos = this.verticalPos + bump;
- this.data.stopy = this.verticalPos;
- },
- getVerticalPos: function() {
- return this.verticalPos;
- },
- getBounds: function() {
- return { bounds: this.data, models: this.models };
}
- };
- const drawNote$1 = function(elem, noteModel) {
- bounds$1.bumpVerticalPos(conf$4.boxMargin);
- noteModel.height = conf$4.boxMargin;
- noteModel.starty = bounds$1.getVerticalPos();
- const rect2 = svgDraw$3.getNoteRect();
- rect2.x = noteModel.startx;
- rect2.y = noteModel.starty;
- rect2.width = noteModel.width || conf$4.width;
- rect2.class = "note";
- const g = elem.append("g");
- const rectElem = svgDraw$3.drawRect(g, rect2);
- const textObj = svgDraw$3.getTextObj();
- textObj.x = noteModel.startx;
- textObj.y = noteModel.starty;
- textObj.width = rect2.width;
- textObj.dy = "1em";
- textObj.text = noteModel.message;
- textObj.class = "noteText";
- textObj.fontFamily = conf$4.noteFontFamily;
- textObj.fontSize = conf$4.noteFontSize;
- textObj.fontWeight = conf$4.noteFontWeight;
- textObj.anchor = conf$4.noteAlign;
- textObj.textMargin = conf$4.noteMargin;
- textObj.valign = "center";
- const textElem = drawText$2(g, textObj);
- const textHeight = Math.round(
- textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
- );
- rectElem.attr("height", textHeight + 2 * conf$4.noteMargin);
- noteModel.height += textHeight + 2 * conf$4.noteMargin;
- bounds$1.bumpVerticalPos(textHeight + 2 * conf$4.noteMargin);
- noteModel.stopy = noteModel.starty + textHeight + 2 * conf$4.noteMargin;
- noteModel.stopx = noteModel.startx + rect2.width;
- bounds$1.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
- bounds$1.models.addNote(noteModel);
- };
- const messageFont = (cnf) => {
- return {
- fontFamily: cnf.messageFontFamily,
- fontSize: cnf.messageFontSize,
- fontWeight: cnf.messageFontWeight
- };
- };
- const noteFont = (cnf) => {
- return {
- fontFamily: cnf.noteFontFamily,
- fontSize: cnf.noteFontSize,
- fontWeight: cnf.noteFontWeight
- };
- };
- const actorFont = (cnf) => {
- return {
- fontFamily: cnf.actorFontFamily,
- fontSize: cnf.actorFontSize,
- fontWeight: cnf.actorFontWeight
+ return result;
+ }
+ var baseExtremum_default;
+ var init_baseExtremum = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseExtremum.js"() {
+ "use strict";
+ init_isSymbol();
+ __name(baseExtremum, "baseExtremum");
+ baseExtremum_default = baseExtremum;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/max.js
+ function max4(array4) {
+ return array4 && array4.length ? baseExtremum_default(array4, identity_default4, baseGt_default) : void 0;
+ }
+ var max_default;
+ var init_max2 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/max.js"() {
+ "use strict";
+ init_baseExtremum();
+ init_baseGt();
+ init_identity4();
+ __name(max4, "max");
+ max_default = max4;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/min.js
+ function min4(array4) {
+ return array4 && array4.length ? baseExtremum_default(array4, identity_default4, baseLt_default) : void 0;
+ }
+ var min_default;
+ var init_min2 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/min.js"() {
+ "use strict";
+ init_baseExtremum();
+ init_baseLt();
+ init_identity4();
+ __name(min4, "min");
+ min_default = min4;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/minBy.js
+ function minBy(array4, iteratee) {
+ return array4 && array4.length ? baseExtremum_default(array4, baseIteratee_default(iteratee, 2), baseLt_default) : void 0;
+ }
+ var minBy_default;
+ var init_minBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/minBy.js"() {
+ "use strict";
+ init_baseExtremum();
+ init_baseIteratee();
+ init_baseLt();
+ __name(minBy, "minBy");
+ minBy_default = minBy;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/negate.js
+ function negate(predicate) {
+ if (typeof predicate != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT2);
+ }
+ return function() {
+ var args = arguments;
+ switch (args.length) {
+ case 0:
+ return !predicate.call(this);
+ case 1:
+ return !predicate.call(this, args[0]);
+ case 2:
+ return !predicate.call(this, args[0], args[1]);
+ case 3:
+ return !predicate.call(this, args[0], args[1], args[2]);
+ }
+ return !predicate.apply(this, args);
};
- };
- function boundMessage(_diagram, msgModel) {
- bounds$1.bumpVerticalPos(10);
- const { startx, stopx, message: message2 } = msgModel;
- const lines = common$1.splitBreaks(message2).length;
- const textDims = utils.calculateTextDimensions(message2, messageFont(conf$4));
- const lineHeight = textDims.height / lines;
- msgModel.height += lineHeight;
- bounds$1.bumpVerticalPos(lineHeight);
- let lineStartY;
- let totalOffset = textDims.height - 10;
- const textWidth = textDims.width;
- if (startx === stopx) {
- lineStartY = bounds$1.getVerticalPos() + totalOffset;
- if (!conf$4.rightAngles) {
- totalOffset += conf$4.boxMargin;
- lineStartY = bounds$1.getVerticalPos() + totalOffset;
+ }
+ var FUNC_ERROR_TEXT2, negate_default;
+ var init_negate = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/negate.js"() {
+ "use strict";
+ FUNC_ERROR_TEXT2 = "Expected a function";
+ __name(negate, "negate");
+ negate_default = negate;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js
+ function baseSet(object3, path4, value2, customizer) {
+ if (!isObject_default(object3)) {
+ return object3;
+ }
+ path4 = castPath_default(path4, object3);
+ var index = -1, length2 = path4.length, lastIndex = length2 - 1, nested = object3;
+ while (nested != null && ++index < length2) {
+ var key = toKey_default(path4[index]), newValue = value2;
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
+ return object3;
}
- totalOffset += 30;
- const dx = Math.max(textWidth / 2, conf$4.width / 2);
- bounds$1.insert(
- startx - dx,
- bounds$1.getVerticalPos() - 10 + totalOffset,
- stopx + dx,
- bounds$1.getVerticalPos() + 30 + totalOffset
- );
- } else {
- totalOffset += conf$4.boxMargin;
- lineStartY = bounds$1.getVerticalPos() + totalOffset;
- bounds$1.insert(startx, lineStartY - 10, stopx, lineStartY);
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : void 0;
+ if (newValue === void 0) {
+ newValue = isObject_default(objValue) ? objValue : isIndex_default(path4[index + 1]) ? [] : {};
+ }
+ }
+ assignValue_default(nested, key, newValue);
+ nested = nested[key];
}
- bounds$1.bumpVerticalPos(totalOffset);
- msgModel.height += totalOffset;
- msgModel.stopy = msgModel.starty + msgModel.height;
- bounds$1.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
- return lineStartY;
+ return object3;
}
- const drawMessage = function(diagram2, msgModel, lineStartY, diagObj) {
- const { startx, stopx, starty, message: message2, type: type2, sequenceIndex, sequenceVisible } = msgModel;
- const textDims = utils.calculateTextDimensions(message2, messageFont(conf$4));
- const textObj = svgDraw$3.getTextObj();
- textObj.x = startx;
- textObj.y = starty + 10;
- textObj.width = stopx - startx;
- textObj.class = "messageText";
- textObj.dy = "1em";
- textObj.text = message2;
- textObj.fontFamily = conf$4.messageFontFamily;
- textObj.fontSize = conf$4.messageFontSize;
- textObj.fontWeight = conf$4.messageFontWeight;
- textObj.anchor = conf$4.messageAlign;
- textObj.valign = "center";
- textObj.textMargin = conf$4.wrapPadding;
- textObj.tspan = false;
- drawText$2(diagram2, textObj);
- const textWidth = textDims.width;
- let line2;
- if (startx === stopx) {
- if (conf$4.rightAngles) {
- line2 = diagram2.append("path").attr(
- "d",
- `M ${startx},${lineStartY} H ${startx + Math.max(conf$4.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`
- );
- } else {
- line2 = diagram2.append("path").attr(
- "d",
- "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20)
- );
- }
- } else {
- line2 = diagram2.append("line");
- line2.attr("x1", startx);
- line2.attr("y1", lineStartY);
- line2.attr("x2", stopx);
- line2.attr("y2", lineStartY);
- }
- if (type2 === diagObj.db.LINETYPE.DOTTED || type2 === diagObj.db.LINETYPE.DOTTED_CROSS || type2 === diagObj.db.LINETYPE.DOTTED_POINT || type2 === diagObj.db.LINETYPE.DOTTED_OPEN) {
- line2.style("stroke-dasharray", "3, 3");
- line2.attr("class", "messageLine1");
- } else {
- line2.attr("class", "messageLine0");
+ var baseSet_default;
+ var init_baseSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js"() {
+ "use strict";
+ init_assignValue();
+ init_castPath();
+ init_isIndex();
+ init_isObject();
+ init_toKey();
+ __name(baseSet, "baseSet");
+ baseSet_default = baseSet;
}
- let url = "";
- if (conf$4.arrowMarkerAbsolute) {
- url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
- url = url.replace(/\(/g, "\\(");
- url = url.replace(/\)/g, "\\)");
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePickBy.js
+ function basePickBy(object3, paths, predicate) {
+ var index = -1, length2 = paths.length, result = {};
+ while (++index < length2) {
+ var path4 = paths[index], value2 = baseGet_default(object3, path4);
+ if (predicate(value2, path4)) {
+ baseSet_default(result, castPath_default(path4, object3), value2);
+ }
}
- line2.attr("stroke-width", 2);
- line2.attr("stroke", "none");
- line2.style("fill", "none");
- if (type2 === diagObj.db.LINETYPE.SOLID || type2 === diagObj.db.LINETYPE.DOTTED) {
- line2.attr("marker-end", "url(" + url + "#arrowhead)");
+ return result;
+ }
+ var basePickBy_default;
+ var init_basePickBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePickBy.js"() {
+ "use strict";
+ init_baseGet();
+ init_baseSet();
+ init_castPath();
+ __name(basePickBy, "basePickBy");
+ basePickBy_default = basePickBy;
}
- if (type2 === diagObj.db.LINETYPE.SOLID_POINT || type2 === diagObj.db.LINETYPE.DOTTED_POINT) {
- line2.attr("marker-end", "url(" + url + "#filled-head)");
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pickBy.js
+ function pickBy(object3, predicate) {
+ if (object3 == null) {
+ return {};
}
- if (type2 === diagObj.db.LINETYPE.SOLID_CROSS || type2 === diagObj.db.LINETYPE.DOTTED_CROSS) {
- line2.attr("marker-end", "url(" + url + "#crosshead)");
+ var props = arrayMap_default(getAllKeysIn_default(object3), function(prop) {
+ return [prop];
+ });
+ predicate = baseIteratee_default(predicate);
+ return basePickBy_default(object3, props, function(value2, path4) {
+ return predicate(value2, path4[0]);
+ });
+ }
+ var pickBy_default;
+ var init_pickBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pickBy.js"() {
+ "use strict";
+ init_arrayMap();
+ init_baseIteratee();
+ init_basePickBy();
+ init_getAllKeysIn();
+ __name(pickBy, "pickBy");
+ pickBy_default = pickBy;
}
- if (sequenceVisible || conf$4.showSequenceNumbers) {
- line2.attr("marker-start", "url(" + url + "#sequencenumber)");
- diagram2.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSortBy.js
+ function baseSortBy(array4, comparer) {
+ var length2 = array4.length;
+ array4.sort(comparer);
+ while (length2--) {
+ array4[length2] = array4[length2].value;
}
- };
- const drawActors = function(diagram2, actors2, actorKeys, verticalPos, configuration, messages2, isFooter) {
- if (configuration.hideUnusedParticipants === true) {
- const newActors = /* @__PURE__ */ new Set();
- messages2.forEach((message2) => {
- newActors.add(message2.from);
- newActors.add(message2.to);
- });
- actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));
+ return array4;
+ }
+ var baseSortBy_default;
+ var init_baseSortBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSortBy.js"() {
+ "use strict";
+ __name(baseSortBy, "baseSortBy");
+ baseSortBy_default = baseSortBy;
}
- let prevWidth = 0;
- let prevMargin = 0;
- let maxHeight = 0;
- let prevBox = void 0;
- for (const actorKey of actorKeys) {
- const actor = actors2[actorKey];
- const box = actor.box;
- if (prevBox && prevBox != box) {
- if (!isFooter) {
- bounds$1.models.addBox(prevBox);
- }
- prevMargin += conf$4.boxMargin + prevBox.margin;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_compareAscending.js
+ function compareAscending(value2, other) {
+ if (value2 !== other) {
+ var valIsDefined = value2 !== void 0, valIsNull = value2 === null, valIsReflexive = value2 === value2, valIsSymbol = isSymbol_default(value2);
+ var othIsDefined = other !== void 0, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol_default(other);
+ if (!othIsNull && !othIsSymbol && !valIsSymbol && value2 > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
+ return 1;
}
- if (box && box != prevBox) {
- if (!isFooter) {
- box.x = prevWidth + prevMargin;
- box.y = verticalPos;
- }
- prevMargin += box.margin;
- }
- actor.width = actor.width || conf$4.width;
- actor.height = Math.max(actor.height || conf$4.height, conf$4.height);
- actor.margin = actor.margin || conf$4.actorMargin;
- actor.x = prevWidth + prevMargin;
- actor.y = bounds$1.getVerticalPos();
- const height2 = svgDraw$3.drawActor(diagram2, actor, conf$4, isFooter);
- maxHeight = Math.max(maxHeight, height2);
- bounds$1.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
- prevWidth += actor.width + prevMargin;
- if (actor.box) {
- actor.box.width = prevWidth + box.margin - actor.box.x;
- }
- prevMargin = actor.margin;
- prevBox = actor.box;
- bounds$1.models.addActor(actor);
- }
- if (prevBox && !isFooter) {
- bounds$1.models.addBox(prevBox);
- }
- bounds$1.bumpVerticalPos(maxHeight);
- };
- const drawActorsPopup = function(diagram2, actors2, actorKeys, doc) {
- let maxHeight = 0;
- let maxWidth = 0;
- for (const actorKey of actorKeys) {
- const actor = actors2[actorKey];
- const minMenuWidth = getRequiredPopupWidth(actor);
- const menuDimensions = svgDraw$3.drawPopup(
- diagram2,
- actor,
- minMenuWidth,
- conf$4,
- conf$4.forceMenus,
- doc
- );
- if (menuDimensions.height > maxHeight) {
- maxHeight = menuDimensions.height;
+ if (!valIsNull && !valIsSymbol && !othIsSymbol && value2 < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
+ return -1;
}
- if (menuDimensions.width + actor.x > maxWidth) {
- maxWidth = menuDimensions.width + actor.x;
+ }
+ return 0;
+ }
+ var compareAscending_default;
+ var init_compareAscending = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_compareAscending.js"() {
+ "use strict";
+ init_isSymbol();
+ __name(compareAscending, "compareAscending");
+ compareAscending_default = compareAscending;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_compareMultiple.js
+ function compareMultiple(object3, other, orders) {
+ var index = -1, objCriteria = object3.criteria, othCriteria = other.criteria, length2 = objCriteria.length, ordersLength = orders.length;
+ while (++index < length2) {
+ var result = compareAscending_default(objCriteria[index], othCriteria[index]);
+ if (result) {
+ if (index >= ordersLength) {
+ return result;
+ }
+ var order2 = orders[index];
+ return result * (order2 == "desc" ? -1 : 1);
}
}
- return { maxHeight, maxWidth };
- };
- const setConf$4 = function(cnf) {
- assignWithDepth$1(conf$4, cnf);
- if (cnf.fontFamily) {
- conf$4.actorFontFamily = conf$4.noteFontFamily = conf$4.messageFontFamily = cnf.fontFamily;
+ return object3.index - other.index;
+ }
+ var compareMultiple_default;
+ var init_compareMultiple = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_compareMultiple.js"() {
+ "use strict";
+ init_compareAscending();
+ __name(compareMultiple, "compareMultiple");
+ compareMultiple_default = compareMultiple;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseOrderBy.js
+ function baseOrderBy(collection4, iteratees, orders) {
+ if (iteratees.length) {
+ iteratees = arrayMap_default(iteratees, function(iteratee) {
+ if (isArray_default(iteratee)) {
+ return function(value2) {
+ return baseGet_default(value2, iteratee.length === 1 ? iteratee[0] : iteratee);
+ };
+ }
+ return iteratee;
+ });
+ } else {
+ iteratees = [identity_default4];
}
- if (cnf.fontSize) {
- conf$4.actorFontSize = conf$4.noteFontSize = conf$4.messageFontSize = cnf.fontSize;
+ var index = -1;
+ iteratees = arrayMap_default(iteratees, baseUnary_default(baseIteratee_default));
+ var result = baseMap_default(collection4, function(value2, key, collection5) {
+ var criteria = arrayMap_default(iteratees, function(iteratee) {
+ return iteratee(value2);
+ });
+ return { "criteria": criteria, "index": ++index, "value": value2 };
+ });
+ return baseSortBy_default(result, function(object3, other) {
+ return compareMultiple_default(object3, other, orders);
+ });
+ }
+ var baseOrderBy_default;
+ var init_baseOrderBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseOrderBy.js"() {
+ "use strict";
+ init_arrayMap();
+ init_baseGet();
+ init_baseIteratee();
+ init_baseMap();
+ init_baseSortBy();
+ init_baseUnary();
+ init_compareMultiple();
+ init_identity4();
+ init_isArray();
+ __name(baseOrderBy, "baseOrderBy");
+ baseOrderBy_default = baseOrderBy;
}
- if (cnf.fontWeight) {
- conf$4.actorFontWeight = conf$4.noteFontWeight = conf$4.messageFontWeight = cnf.fontWeight;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiSize.js
+ var asciiSize, asciiSize_default;
+ var init_asciiSize = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiSize.js"() {
+ "use strict";
+ init_baseProperty();
+ asciiSize = baseProperty_default("length");
+ asciiSize_default = asciiSize;
}
- };
- const actorActivations = function(actor) {
- return bounds$1.activations.filter(function(activation) {
- return activation.actor === actor;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeSize.js
+ function unicodeSize(string3) {
+ var result = reUnicode.lastIndex = 0;
+ while (reUnicode.test(string3)) {
+ ++result;
+ }
+ return result;
+ }
+ var rsAstralRange2, rsComboMarksRange2, reComboHalfMarksRange2, rsComboSymbolsRange2, rsComboRange2, rsVarRange2, rsAstral, rsCombo, rsFitz, rsModifier, rsNonAstral, rsRegional, rsSurrPair, rsZWJ2, reOptMod, rsOptVar, rsOptJoin, rsSeq, rsSymbol, reUnicode, unicodeSize_default;
+ var init_unicodeSize = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeSize.js"() {
+ "use strict";
+ rsAstralRange2 = "\\ud800-\\udfff";
+ rsComboMarksRange2 = "\\u0300-\\u036f";
+ reComboHalfMarksRange2 = "\\ufe20-\\ufe2f";
+ rsComboSymbolsRange2 = "\\u20d0-\\u20ff";
+ rsComboRange2 = rsComboMarksRange2 + reComboHalfMarksRange2 + rsComboSymbolsRange2;
+ rsVarRange2 = "\\ufe0e\\ufe0f";
+ rsAstral = "[" + rsAstralRange2 + "]";
+ rsCombo = "[" + rsComboRange2 + "]";
+ rsFitz = "\\ud83c[\\udffb-\\udfff]";
+ rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")";
+ rsNonAstral = "[^" + rsAstralRange2 + "]";
+ rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}";
+ rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]";
+ rsZWJ2 = "\\u200d";
+ reOptMod = rsModifier + "?";
+ rsOptVar = "[" + rsVarRange2 + "]?";
+ rsOptJoin = "(?:" + rsZWJ2 + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*";
+ rsSeq = rsOptVar + reOptMod + rsOptJoin;
+ rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
+ reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
+ __name(unicodeSize, "unicodeSize");
+ unicodeSize_default = unicodeSize;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringSize.js
+ function stringSize(string3) {
+ return hasUnicode_default(string3) ? unicodeSize_default(string3) : asciiSize_default(string3);
+ }
+ var stringSize_default;
+ var init_stringSize = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringSize.js"() {
+ "use strict";
+ init_asciiSize();
+ init_hasUnicode();
+ init_unicodeSize();
+ __name(stringSize, "stringSize");
+ stringSize_default = stringSize;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js
+ function basePick(object3, paths) {
+ return basePickBy_default(object3, paths, function(value2, path4) {
+ return hasIn_default(object3, path4);
});
- };
- const activationBounds = function(actor, actors2) {
- const actorObj = actors2[actor];
- const activations = actorActivations(actor);
- const left2 = activations.reduce(function(acc, activation) {
- return Math.min(acc, activation.startx);
- }, actorObj.x + actorObj.width / 2);
- const right2 = activations.reduce(function(acc, activation) {
- return Math.max(acc, activation.stopx);
- }, actorObj.x + actorObj.width / 2);
- return [left2, right2];
- };
- function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
- bounds$1.bumpVerticalPos(preMargin);
- let heightAdjust = postMargin;
- if (msg.id && msg.message && loopWidths[msg.id]) {
- const loopWidth = loopWidths[msg.id].width;
- const textConf = messageFont(conf$4);
- msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf$4.wrapPadding, textConf);
- msg.width = loopWidth;
- msg.wrap = true;
- const textDims = utils.calculateTextDimensions(msg.message, textConf);
- const totalOffset = Math.max(textDims.height, conf$4.labelBoxHeight);
- heightAdjust = postMargin + totalOffset;
- log$1.debug(`${totalOffset} - ${msg.message}`);
+ }
+ var basePick_default;
+ var init_basePick = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js"() {
+ "use strict";
+ init_basePickBy();
+ init_hasIn();
+ __name(basePick, "basePick");
+ basePick_default = basePick;
}
- addLoopFn(msg);
- bounds$1.bumpVerticalPos(heightAdjust);
- }
- const draw$8 = function(_text, id2, _version, diagObj) {
- const { securityLevel, sequence: sequence2 } = getConfig$1();
- conf$4 = sequence2;
- diagObj.db.clear();
- diagObj.parser.parse(_text);
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- bounds$1.init();
- log$1.debug(diagObj.db);
- const diagram2 = securityLevel === "sandbox" ? root2.select(`[id="${id2}"]`) : select(`[id="${id2}"]`);
- const actors2 = diagObj.db.getActors();
- const boxes2 = diagObj.db.getBoxes();
- const actorKeys = diagObj.db.getActorKeys();
- const messages2 = diagObj.db.getMessages();
- const title2 = diagObj.db.getDiagramTitle();
- const hasBoxes = diagObj.db.hasAtLeastOneBox();
- const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();
- const maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors2, messages2, diagObj);
- conf$4.height = calculateActorMargins(actors2, maxMessageWidthPerActor, boxes2);
- svgDraw$3.insertComputerIcon(diagram2);
- svgDraw$3.insertDatabaseIcon(diagram2);
- svgDraw$3.insertClockIcon(diagram2);
- if (hasBoxes) {
- bounds$1.bumpVerticalPos(conf$4.boxMargin);
- if (hasBoxTitles) {
- bounds$1.bumpVerticalPos(boxes2[0].textMaxHeight);
- }
- }
- drawActors(diagram2, actors2, actorKeys, 0, conf$4, messages2, false);
- const loopWidths = calculateLoopBounds(messages2, actors2, maxMessageWidthPerActor, diagObj);
- svgDraw$3.insertArrowHead(diagram2);
- svgDraw$3.insertArrowCrossHead(diagram2);
- svgDraw$3.insertArrowFilledHead(diagram2);
- svgDraw$3.insertSequenceNumber(diagram2);
- function activeEnd(msg, verticalPos) {
- const activationData = bounds$1.endActivation(msg);
- if (activationData.starty + 18 > verticalPos) {
- activationData.starty = verticalPos - 6;
- verticalPos += 12;
- }
- svgDraw$3.drawActivation(
- diagram2,
- activationData,
- verticalPos,
- conf$4,
- actorActivations(msg.from.actor).length
- );
- bounds$1.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
- }
- let sequenceIndex = 1;
- let sequenceIndexStep = 1;
- const messagesToDraw = [];
- messages2.forEach(function(msg) {
- let loopModel, noteModel, msgModel;
- switch (msg.type) {
- case diagObj.db.LINETYPE.NOTE:
- noteModel = msg.noteModel;
- drawNote$1(diagram2, noteModel);
- break;
- case diagObj.db.LINETYPE.ACTIVE_START:
- bounds$1.newActivation(msg, diagram2, actors2);
- break;
- case diagObj.db.LINETYPE.ACTIVE_END:
- activeEnd(msg, bounds$1.getVerticalPos());
- break;
- case diagObj.db.LINETYPE.LOOP_START:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin,
- conf$4.boxMargin + conf$4.boxTextMargin,
- (message2) => bounds$1.newLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.LOOP_END:
- loopModel = bounds$1.endLoop();
- svgDraw$3.drawLoop(diagram2, loopModel, "loop", conf$4);
- bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
- bounds$1.models.addLoop(loopModel);
- break;
- case diagObj.db.LINETYPE.RECT_START:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin,
- conf$4.boxMargin,
- (message2) => bounds$1.newLoop(void 0, message2.message)
- );
- break;
- case diagObj.db.LINETYPE.RECT_END:
- loopModel = bounds$1.endLoop();
- svgDraw$3.drawBackgroundRect(diagram2, loopModel);
- bounds$1.models.addLoop(loopModel);
- bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
- break;
- case diagObj.db.LINETYPE.OPT_START:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin,
- conf$4.boxMargin + conf$4.boxTextMargin,
- (message2) => bounds$1.newLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.OPT_END:
- loopModel = bounds$1.endLoop();
- svgDraw$3.drawLoop(diagram2, loopModel, "opt", conf$4);
- bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
- bounds$1.models.addLoop(loopModel);
- break;
- case diagObj.db.LINETYPE.ALT_START:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin,
- conf$4.boxMargin + conf$4.boxTextMargin,
- (message2) => bounds$1.newLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.ALT_ELSE:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin + conf$4.boxTextMargin,
- conf$4.boxMargin,
- (message2) => bounds$1.addSectionToLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.ALT_END:
- loopModel = bounds$1.endLoop();
- svgDraw$3.drawLoop(diagram2, loopModel, "alt", conf$4);
- bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
- bounds$1.models.addLoop(loopModel);
- break;
- case diagObj.db.LINETYPE.PAR_START:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin,
- conf$4.boxMargin + conf$4.boxTextMargin,
- (message2) => bounds$1.newLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.PAR_AND:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin + conf$4.boxTextMargin,
- conf$4.boxMargin,
- (message2) => bounds$1.addSectionToLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.PAR_END:
- loopModel = bounds$1.endLoop();
- svgDraw$3.drawLoop(diagram2, loopModel, "par", conf$4);
- bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
- bounds$1.models.addLoop(loopModel);
- break;
- case diagObj.db.LINETYPE.AUTONUMBER:
- sequenceIndex = msg.message.start || sequenceIndex;
- sequenceIndexStep = msg.message.step || sequenceIndexStep;
- if (msg.message.visible) {
- diagObj.db.enableSequenceNumbers();
- } else {
- diagObj.db.disableSequenceNumbers();
- }
- break;
- case diagObj.db.LINETYPE.CRITICAL_START:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin,
- conf$4.boxMargin + conf$4.boxTextMargin,
- (message2) => bounds$1.newLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.CRITICAL_OPTION:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin + conf$4.boxTextMargin,
- conf$4.boxMargin,
- (message2) => bounds$1.addSectionToLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.CRITICAL_END:
- loopModel = bounds$1.endLoop();
- svgDraw$3.drawLoop(diagram2, loopModel, "critical", conf$4);
- bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
- bounds$1.models.addLoop(loopModel);
- break;
- case diagObj.db.LINETYPE.BREAK_START:
- adjustLoopHeightForWrap(
- loopWidths,
- msg,
- conf$4.boxMargin,
- conf$4.boxMargin + conf$4.boxTextMargin,
- (message2) => bounds$1.newLoop(message2)
- );
- break;
- case diagObj.db.LINETYPE.BREAK_END:
- loopModel = bounds$1.endLoop();
- svgDraw$3.drawLoop(diagram2, loopModel, "break", conf$4);
- bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
- bounds$1.models.addLoop(loopModel);
- break;
- default:
- try {
- msgModel = msg.msgModel;
- msgModel.starty = bounds$1.getVerticalPos();
- msgModel.sequenceIndex = sequenceIndex;
- msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();
- const lineStartY = boundMessage(diagram2, msgModel);
- messagesToDraw.push({ messageModel: msgModel, lineStartY });
- bounds$1.models.addMessage(msgModel);
- } catch (e) {
- log$1.error("error while drawing message", e);
- }
- }
- if ([
- diagObj.db.LINETYPE.SOLID_OPEN,
- diagObj.db.LINETYPE.DOTTED_OPEN,
- diagObj.db.LINETYPE.SOLID,
- diagObj.db.LINETYPE.DOTTED,
- diagObj.db.LINETYPE.SOLID_CROSS,
- diagObj.db.LINETYPE.DOTTED_CROSS,
- diagObj.db.LINETYPE.SOLID_POINT,
- diagObj.db.LINETYPE.DOTTED_POINT
- ].includes(msg.type)) {
- sequenceIndex = sequenceIndex + sequenceIndexStep;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pick.js
+ var pick, pick_default;
+ var init_pick = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pick.js"() {
+ "use strict";
+ init_basePick();
+ init_flatRest();
+ pick = flatRest_default(function(object3, paths) {
+ return object3 == null ? {} : basePick_default(object3, paths);
+ });
+ pick_default = pick;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRange.js
+ function baseRange(start3, end2, step3, fromRight) {
+ var index = -1, length2 = nativeMax5(nativeCeil((end2 - start3) / (step3 || 1)), 0), result = Array(length2);
+ while (length2--) {
+ result[fromRight ? length2 : ++index] = start3;
+ start3 += step3;
+ }
+ return result;
+ }
+ var nativeCeil, nativeMax5, baseRange_default;
+ var init_baseRange = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRange.js"() {
+ "use strict";
+ nativeCeil = Math.ceil;
+ nativeMax5 = Math.max;
+ __name(baseRange, "baseRange");
+ baseRange_default = baseRange;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createRange.js
+ function createRange(fromRight) {
+ return function(start3, end2, step3) {
+ if (step3 && typeof step3 != "number" && isIterateeCall_default(start3, end2, step3)) {
+ end2 = step3 = void 0;
+ }
+ start3 = toFinite_default(start3);
+ if (end2 === void 0) {
+ end2 = start3;
+ start3 = 0;
+ } else {
+ end2 = toFinite_default(end2);
}
+ step3 = step3 === void 0 ? start3 < end2 ? 1 : -1 : toFinite_default(step3);
+ return baseRange_default(start3, end2, step3, fromRight);
+ };
+ }
+ var createRange_default;
+ var init_createRange = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createRange.js"() {
+ "use strict";
+ init_baseRange();
+ init_isIterateeCall();
+ init_toFinite();
+ __name(createRange, "createRange");
+ createRange_default = createRange;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/range.js
+ var range2, range_default;
+ var init_range2 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/range.js"() {
+ "use strict";
+ init_createRange();
+ range2 = createRange_default();
+ range_default = range2;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseReduce.js
+ function baseReduce(collection4, iteratee, accumulator, initAccum, eachFunc) {
+ eachFunc(collection4, function(value2, index, collection5) {
+ accumulator = initAccum ? (initAccum = false, value2) : iteratee(accumulator, value2, index, collection5);
});
- messagesToDraw.forEach((e) => drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj));
- if (conf$4.mirrorActors) {
- bounds$1.bumpVerticalPos(conf$4.boxMargin * 2);
- drawActors(diagram2, actors2, actorKeys, bounds$1.getVerticalPos(), conf$4, messages2, true);
- bounds$1.bumpVerticalPos(conf$4.boxMargin);
- fixLifeLineHeights(diagram2, bounds$1.getVerticalPos());
- }
- bounds$1.models.boxes.forEach(function(box2) {
- box2.height = bounds$1.getVerticalPos() - box2.y;
- bounds$1.insert(box2.x, box2.y, box2.x + box2.width, box2.height);
- box2.startx = box2.x;
- box2.starty = box2.y;
- box2.stopx = box2.startx + box2.width;
- box2.stopy = box2.starty + box2.height;
- box2.stroke = "rgb(0,0,0, 0.5)";
- svgDraw$3.drawBox(diagram2, box2, conf$4);
+ return accumulator;
+ }
+ var baseReduce_default;
+ var init_baseReduce = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseReduce.js"() {
+ "use strict";
+ __name(baseReduce, "baseReduce");
+ baseReduce_default = baseReduce;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/reduce.js
+ function reduce(collection4, iteratee, accumulator) {
+ var func = isArray_default(collection4) ? arrayReduce_default : baseReduce_default, initAccum = arguments.length < 3;
+ return func(collection4, baseIteratee_default(iteratee, 4), accumulator, initAccum, baseEach_default);
+ }
+ var reduce_default;
+ var init_reduce = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/reduce.js"() {
+ "use strict";
+ init_arrayReduce();
+ init_baseEach();
+ init_baseIteratee();
+ init_baseReduce();
+ init_isArray();
+ __name(reduce, "reduce");
+ reduce_default = reduce;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/reject.js
+ function reject(collection4, predicate) {
+ var func = isArray_default(collection4) ? arrayFilter_default : baseFilter_default;
+ return func(collection4, negate_default(baseIteratee_default(predicate, 3)));
+ }
+ var reject_default;
+ var init_reject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/reject.js"() {
+ "use strict";
+ init_arrayFilter();
+ init_baseFilter();
+ init_baseIteratee();
+ init_isArray();
+ init_negate();
+ __name(reject, "reject");
+ reject_default = reject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/size.js
+ function size(collection4) {
+ if (collection4 == null) {
+ return 0;
+ }
+ if (isArrayLike_default(collection4)) {
+ return isString_default(collection4) ? stringSize_default(collection4) : collection4.length;
+ }
+ var tag2 = getTag_default(collection4);
+ if (tag2 == mapTag8 || tag2 == setTag8) {
+ return collection4.size;
+ }
+ return baseKeys_default(collection4).length;
+ }
+ var mapTag8, setTag8, size_default2;
+ var init_size3 = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/size.js"() {
+ "use strict";
+ init_baseKeys();
+ init_getTag();
+ init_isArrayLike();
+ init_isString();
+ init_stringSize();
+ mapTag8 = "[object Map]";
+ setTag8 = "[object Set]";
+ __name(size, "size");
+ size_default2 = size;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSome.js
+ function baseSome(collection4, predicate) {
+ var result;
+ baseEach_default(collection4, function(value2, index, collection5) {
+ result = predicate(value2, index, collection5);
+ return !result;
});
- if (hasBoxes) {
- bounds$1.bumpVerticalPos(conf$4.boxMargin);
- }
- const requiredBoxSize = drawActorsPopup(diagram2, actors2, actorKeys, doc);
- const { bounds: box } = bounds$1.getBounds();
- log$1.debug("For line height fix Querying: #" + id2 + " .actor-line");
- const actorLines = selectAll("#" + id2 + " .actor-line");
- actorLines.attr("y2", box.stopy);
- let boxHeight = box.stopy - box.starty;
- if (boxHeight < requiredBoxSize.maxHeight) {
- boxHeight = requiredBoxSize.maxHeight;
- }
- let height2 = boxHeight + 2 * conf$4.diagramMarginY;
- if (conf$4.mirrorActors) {
- height2 = height2 - conf$4.boxMargin + conf$4.bottomMarginAdj;
- }
- let boxWidth = box.stopx - box.startx;
- if (boxWidth < requiredBoxSize.maxWidth) {
- boxWidth = requiredBoxSize.maxWidth;
- }
- const width2 = boxWidth + 2 * conf$4.diagramMarginX;
- if (title2) {
- diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 2 * conf$4.diagramMarginX).attr("y", -25);
- }
- configureSvgSize(diagram2, height2, width2, conf$4.useMaxWidth);
- const extraVertForTitle = title2 ? 40 : 0;
- diagram2.attr(
- "viewBox",
- box.startx - conf$4.diagramMarginX + " -" + (conf$4.diagramMarginY + extraVertForTitle) + " " + width2 + " " + (height2 + extraVertForTitle)
- );
- log$1.debug(`models:`, bounds$1.models);
- };
- function getMaxMessageWidthPerActor(actors2, messages2, diagObj) {
- const maxMessageWidthPerActor = {};
- messages2.forEach(function(msg) {
- if (actors2[msg.to] && actors2[msg.from]) {
- const actor = actors2[msg.to];
- if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {
- return;
+ return !!result;
+ }
+ var baseSome_default;
+ var init_baseSome = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSome.js"() {
+ "use strict";
+ init_baseEach();
+ __name(baseSome, "baseSome");
+ baseSome_default = baseSome;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/some.js
+ function some(collection4, predicate, guard) {
+ var func = isArray_default(collection4) ? arraySome_default : baseSome_default;
+ if (guard && isIterateeCall_default(collection4, predicate, guard)) {
+ predicate = void 0;
+ }
+ return func(collection4, baseIteratee_default(predicate, 3));
+ }
+ var some_default;
+ var init_some = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/some.js"() {
+ "use strict";
+ init_arraySome();
+ init_baseIteratee();
+ init_baseSome();
+ init_isArray();
+ init_isIterateeCall();
+ __name(some, "some");
+ some_default = some;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/sortBy.js
+ var sortBy, sortBy_default;
+ var init_sortBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/sortBy.js"() {
+ "use strict";
+ init_baseFlatten();
+ init_baseOrderBy();
+ init_baseRest();
+ init_isIterateeCall();
+ sortBy = baseRest_default(function(collection4, iteratees) {
+ if (collection4 == null) {
+ return [];
}
- if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {
- return;
+ var length2 = iteratees.length;
+ if (length2 > 1 && isIterateeCall_default(collection4, iteratees[0], iteratees[1])) {
+ iteratees = [];
+ } else if (length2 > 2 && isIterateeCall_default(iteratees[0], iteratees[1], iteratees[2])) {
+ iteratees = [iteratees[0]];
}
- const isNote = msg.placement !== void 0;
- const isMessage = !isNote;
- const textFont = isNote ? noteFont(conf$4) : messageFont(conf$4);
- const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf$4.width - 2 * conf$4.wrapPadding, textFont) : msg.message;
- const messageDimensions = utils.calculateTextDimensions(wrappedMessage, textFont);
- const messageWidth = messageDimensions.width + 2 * conf$4.wrapPadding;
- if (isMessage && msg.from === actor.nextActor) {
- maxMessageWidthPerActor[msg.to] = Math.max(
- maxMessageWidthPerActor[msg.to] || 0,
- messageWidth
- );
- } else if (isMessage && msg.from === actor.prevActor) {
- maxMessageWidthPerActor[msg.from] = Math.max(
- maxMessageWidthPerActor[msg.from] || 0,
- messageWidth
- );
- } else if (isMessage && msg.from === msg.to) {
- maxMessageWidthPerActor[msg.from] = Math.max(
- maxMessageWidthPerActor[msg.from] || 0,
- messageWidth / 2
- );
- maxMessageWidthPerActor[msg.to] = Math.max(
- maxMessageWidthPerActor[msg.to] || 0,
- messageWidth / 2
- );
- } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
- maxMessageWidthPerActor[msg.from] = Math.max(
- maxMessageWidthPerActor[msg.from] || 0,
- messageWidth
- );
- } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
- maxMessageWidthPerActor[actor.prevActor] = Math.max(
- maxMessageWidthPerActor[actor.prevActor] || 0,
- messageWidth
- );
- } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {
- if (actor.prevActor) {
- maxMessageWidthPerActor[actor.prevActor] = Math.max(
- maxMessageWidthPerActor[actor.prevActor] || 0,
- messageWidth / 2
- );
+ return baseOrderBy_default(collection4, baseFlatten_default(iteratees, 1), []);
+ });
+ sortBy_default = sortBy;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createSet.js
+ var INFINITY4, createSet, createSet_default;
+ var init_createSet = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createSet.js"() {
+ "use strict";
+ init_Set();
+ init_noop2();
+ init_setToArray();
+ INFINITY4 = 1 / 0;
+ createSet = !(Set_default && 1 / setToArray_default(new Set_default([, -0]))[1] == INFINITY4) ? noop_default2 : function(values2) {
+ return new Set_default(values2);
+ };
+ createSet_default = createSet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUniq.js
+ function baseUniq(array4, iteratee, comparator) {
+ var index = -1, includes3 = arrayIncludes_default, length2 = array4.length, isCommon2 = true, result = [], seen = result;
+ if (comparator) {
+ isCommon2 = false;
+ includes3 = arrayIncludesWith_default;
+ } else if (length2 >= LARGE_ARRAY_SIZE3) {
+ var set6 = iteratee ? null : createSet_default(array4);
+ if (set6) {
+ return setToArray_default(set6);
+ }
+ isCommon2 = false;
+ includes3 = cacheHas_default;
+ seen = new SetCache_default();
+ } else {
+ seen = iteratee ? [] : result;
+ }
+ outer:
+ while (++index < length2) {
+ var value2 = array4[index], computed = iteratee ? iteratee(value2) : value2;
+ value2 = comparator || value2 !== 0 ? value2 : 0;
+ if (isCommon2 && computed === computed) {
+ var seenIndex = seen.length;
+ while (seenIndex--) {
+ if (seen[seenIndex] === computed) {
+ continue outer;
+ }
}
- if (actor.nextActor) {
- maxMessageWidthPerActor[msg.from] = Math.max(
- maxMessageWidthPerActor[msg.from] || 0,
- messageWidth / 2
- );
+ if (iteratee) {
+ seen.push(computed);
+ }
+ result.push(value2);
+ } else if (!includes3(seen, computed, comparator)) {
+ if (seen !== result) {
+ seen.push(computed);
}
+ result.push(value2);
}
}
- });
- log$1.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor);
- return maxMessageWidthPerActor;
+ return result;
}
- const getRequiredPopupWidth = function(actor) {
- let requiredPopupWidth = 0;
- const textFont = actorFont(conf$4);
- for (const key in actor.links) {
- const labelDimensions = utils.calculateTextDimensions(key, textFont);
- const labelWidth = labelDimensions.width + 2 * conf$4.wrapPadding + 2 * conf$4.boxMargin;
- if (requiredPopupWidth < labelWidth) {
- requiredPopupWidth = labelWidth;
- }
+ var LARGE_ARRAY_SIZE3, baseUniq_default;
+ var init_baseUniq = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUniq.js"() {
+ "use strict";
+ init_SetCache();
+ init_arrayIncludes();
+ init_arrayIncludesWith();
+ init_cacheHas();
+ init_createSet();
+ init_setToArray();
+ LARGE_ARRAY_SIZE3 = 200;
+ __name(baseUniq, "baseUniq");
+ baseUniq_default = baseUniq;
}
- return requiredPopupWidth;
- };
- function calculateActorMargins(actors2, actorToMessageWidth, boxes2) {
- let maxHeight = 0;
- Object.keys(actors2).forEach((prop) => {
- const actor = actors2[prop];
- if (actor.wrap) {
- actor.description = utils.wrapLabel(
- actor.description,
- conf$4.width - 2 * conf$4.wrapPadding,
- actorFont(conf$4)
- );
- }
- const actDims = utils.calculateTextDimensions(actor.description, actorFont(conf$4));
- actor.width = actor.wrap ? conf$4.width : Math.max(conf$4.width, actDims.width + 2 * conf$4.wrapPadding);
- actor.height = actor.wrap ? Math.max(actDims.height, conf$4.height) : conf$4.height;
- maxHeight = Math.max(maxHeight, actor.height);
- });
- for (const actorKey in actorToMessageWidth) {
- const actor = actors2[actorKey];
- if (!actor) {
- continue;
- }
- const nextActor = actors2[actor.nextActor];
- if (!nextActor) {
- const messageWidth2 = actorToMessageWidth[actorKey];
- const actorWidth2 = messageWidth2 + conf$4.actorMargin - actor.width / 2;
- actor.margin = Math.max(actorWidth2, conf$4.actorMargin);
- continue;
- }
- const messageWidth = actorToMessageWidth[actorKey];
- const actorWidth = messageWidth + conf$4.actorMargin - actor.width / 2 - nextActor.width / 2;
- actor.margin = Math.max(actorWidth, conf$4.actorMargin);
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/union.js
+ var union, union_default;
+ var init_union = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/union.js"() {
+ "use strict";
+ init_baseFlatten();
+ init_baseRest();
+ init_baseUniq();
+ init_isArrayLikeObject();
+ union = baseRest_default(function(arrays) {
+ return baseUniq_default(baseFlatten_default(arrays, 1, isArrayLikeObject_default, true));
+ });
+ union_default = union;
}
- let maxBoxHeight = 0;
- boxes2.forEach((box) => {
- const textFont = messageFont(conf$4);
- let totalWidth = box.actorKeys.reduce((total, aKey) => {
- return total += actors2[aKey].width + (actors2[aKey].margin || 0);
- }, 0);
- totalWidth -= 2 * conf$4.boxTextMargin;
- if (box.wrap) {
- box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf$4.wrapPadding, textFont);
- }
- const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont);
- maxBoxHeight = Math.max(boxMsgDimensions.height, maxBoxHeight);
- const minWidth = Math.max(totalWidth, boxMsgDimensions.width + 2 * conf$4.wrapPadding);
- box.margin = conf$4.boxTextMargin;
- if (totalWidth < minWidth) {
- const missing = (minWidth - totalWidth) / 2;
- box.margin += missing;
- }
- });
- boxes2.forEach((box) => box.textMaxHeight = maxBoxHeight);
- return Math.max(maxHeight, conf$4.height);
- }
- const buildNoteModel = function(msg, actors2, diagObj) {
- const startx = actors2[msg.from].x;
- const stopx = actors2[msg.to].x;
- const shouldWrap = msg.wrap && msg.message;
- let textDimensions = utils.calculateTextDimensions(
- shouldWrap ? utils.wrapLabel(msg.message, conf$4.width, noteFont(conf$4)) : msg.message,
- noteFont(conf$4)
- );
- const noteModel = {
- width: shouldWrap ? conf$4.width : Math.max(conf$4.width, textDimensions.width + 2 * conf$4.noteMargin),
- height: 0,
- startx: actors2[msg.from].x,
- stopx: 0,
- starty: 0,
- stopy: 0,
- message: msg.message
- };
- if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
- noteModel.width = shouldWrap ? Math.max(conf$4.width, textDimensions.width) : Math.max(
- actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
- textDimensions.width + 2 * conf$4.noteMargin
- );
- noteModel.startx = startx + (actors2[msg.from].width + conf$4.actorMargin) / 2;
- } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
- noteModel.width = shouldWrap ? Math.max(conf$4.width, textDimensions.width + 2 * conf$4.noteMargin) : Math.max(
- actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
- textDimensions.width + 2 * conf$4.noteMargin
- );
- noteModel.startx = startx - noteModel.width + (actors2[msg.from].width - conf$4.actorMargin) / 2;
- } else if (msg.to === msg.from) {
- textDimensions = utils.calculateTextDimensions(
- shouldWrap ? utils.wrapLabel(msg.message, Math.max(conf$4.width, actors2[msg.from].width), noteFont(conf$4)) : msg.message,
- noteFont(conf$4)
- );
- noteModel.width = shouldWrap ? Math.max(conf$4.width, actors2[msg.from].width) : Math.max(actors2[msg.from].width, conf$4.width, textDimensions.width + 2 * conf$4.noteMargin);
- noteModel.startx = startx + (actors2[msg.from].width - noteModel.width) / 2;
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniq.js
+ function uniq(array4) {
+ return array4 && array4.length ? baseUniq_default(array4) : [];
+ }
+ var uniq_default;
+ var init_uniq = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniq.js"() {
+ "use strict";
+ init_baseUniq();
+ __name(uniq, "uniq");
+ uniq_default = uniq;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js
+ function uniqBy(array4, iteratee) {
+ return array4 && array4.length ? baseUniq_default(array4, baseIteratee_default(iteratee, 2)) : [];
+ }
+ var uniqBy_default;
+ var init_uniqBy = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js"() {
+ "use strict";
+ init_baseIteratee();
+ init_baseUniq();
+ __name(uniqBy, "uniqBy");
+ uniqBy_default = uniqBy;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqueId.js
+ function uniqueId(prefix) {
+ var id27 = ++idCounter;
+ return toString_default(prefix) + id27;
+ }
+ var idCounter, uniqueId_default;
+ var init_uniqueId = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqueId.js"() {
+ "use strict";
+ init_toString();
+ idCounter = 0;
+ __name(uniqueId, "uniqueId");
+ uniqueId_default = uniqueId;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseZipObject.js
+ function baseZipObject(props, values2, assignFunc) {
+ var index = -1, length2 = props.length, valsLength = values2.length, result = {};
+ while (++index < length2) {
+ var value2 = index < valsLength ? values2[index] : void 0;
+ assignFunc(result, props[index], value2);
+ }
+ return result;
+ }
+ var baseZipObject_default;
+ var init_baseZipObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseZipObject.js"() {
+ "use strict";
+ __name(baseZipObject, "baseZipObject");
+ baseZipObject_default = baseZipObject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/zipObject.js
+ function zipObject(props, values2) {
+ return baseZipObject_default(props || [], values2 || [], assignValue_default);
+ }
+ var zipObject_default;
+ var init_zipObject = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/zipObject.js"() {
+ "use strict";
+ init_assignValue();
+ init_baseZipObject();
+ __name(zipObject, "zipObject");
+ zipObject_default = zipObject;
+ }
+ });
+
+ // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/lodash.js
+ var init_lodash = __esm({
+ "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/lodash.js"() {
+ "use strict";
+ init_assign();
+ init_clone2();
+ init_cloneDeep();
+ init_compact();
+ init_constant7();
+ init_defaults3();
+ init_difference();
+ init_drop();
+ init_dropRight();
+ init_each2();
+ init_every();
+ init_filter3();
+ init_find();
+ init_first();
+ init_flatMap();
+ init_flatten();
+ init_forEach();
+ init_forIn();
+ init_forOwn();
+ init_groupBy();
+ init_has();
+ init_identity4();
+ init_includes();
+ init_indexOf();
+ init_isArray();
+ init_isEmpty();
+ init_isFunction();
+ init_isObject();
+ init_isRegExp();
+ init_isString();
+ init_isUndefined();
+ init_keys();
+ init_last();
+ init_map();
+ init_mapValues();
+ init_max2();
+ init_merge4();
+ init_min2();
+ init_minBy();
+ init_noop2();
+ init_now();
+ init_pick();
+ init_pickBy();
+ init_range2();
+ init_reduce();
+ init_reject();
+ init_size3();
+ init_some();
+ init_sortBy();
+ init_union();
+ init_uniq();
+ init_uniqueId();
+ init_values();
+ init_zipObject();
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/graph.js
+ function incrementOrInitEntry(map5, k2) {
+ if (map5[k2]) {
+ map5[k2]++;
} else {
- noteModel.width = Math.abs(startx + actors2[msg.from].width / 2 - (stopx + actors2[msg.to].width / 2)) + conf$4.actorMargin;
- noteModel.startx = startx < stopx ? startx + actors2[msg.from].width / 2 - conf$4.actorMargin / 2 : stopx + actors2[msg.to].width / 2 - conf$4.actorMargin / 2;
- }
- if (shouldWrap) {
- noteModel.message = utils.wrapLabel(
- msg.message,
- noteModel.width - 2 * conf$4.wrapPadding,
- noteFont(conf$4)
- );
+ map5[k2] = 1;
}
- log$1.debug(
- `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`
- );
- return noteModel;
- };
- const buildMessageModel = function(msg, actors2, diagObj) {
- let process = false;
- if ([
- diagObj.db.LINETYPE.SOLID_OPEN,
- diagObj.db.LINETYPE.DOTTED_OPEN,
- diagObj.db.LINETYPE.SOLID,
- diagObj.db.LINETYPE.DOTTED,
- diagObj.db.LINETYPE.SOLID_CROSS,
- diagObj.db.LINETYPE.DOTTED_CROSS,
- diagObj.db.LINETYPE.SOLID_POINT,
- diagObj.db.LINETYPE.DOTTED_POINT
- ].includes(msg.type)) {
- process = true;
- }
- if (!process) {
- return {};
+ }
+ function decrementOrRemoveEntry(map5, k2) {
+ if (!--map5[k2]) {
+ delete map5[k2];
}
- const fromBounds = activationBounds(msg.from, actors2);
- const toBounds = activationBounds(msg.to, actors2);
- const fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
- const toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
- const allBounds = [...fromBounds, ...toBounds];
- const boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);
- if (msg.wrap && msg.message) {
- msg.message = utils.wrapLabel(
- msg.message,
- Math.max(boundedWidth + 2 * conf$4.wrapPadding, conf$4.width),
- messageFont(conf$4)
- );
+ }
+ function edgeArgsToId(isDirected, v_, w_, name) {
+ var v3 = "" + v_;
+ var w3 = "" + w_;
+ if (!isDirected && v3 > w3) {
+ var tmp = v3;
+ v3 = w3;
+ w3 = tmp;
}
- const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf$4));
- return {
- width: Math.max(
- msg.wrap ? 0 : msgDims.width + 2 * conf$4.wrapPadding,
- boundedWidth + 2 * conf$4.wrapPadding,
- conf$4.width
- ),
- height: 0,
- startx: fromBounds[fromIdx],
- stopx: toBounds[toIdx],
- starty: 0,
- stopy: 0,
- message: msg.message,
- type: msg.type,
- wrap: msg.wrap,
- fromBounds: Math.min.apply(null, allBounds),
- toBounds: Math.max.apply(null, allBounds)
- };
- };
- const calculateLoopBounds = function(messages2, actors2, _maxWidthPerActor, diagObj) {
- const loops = {};
- const stack = [];
- let current, noteModel, msgModel;
- messages2.forEach(function(msg) {
- msg.id = utils.random({ length: 10 });
- switch (msg.type) {
- case diagObj.db.LINETYPE.LOOP_START:
- case diagObj.db.LINETYPE.ALT_START:
- case diagObj.db.LINETYPE.OPT_START:
- case diagObj.db.LINETYPE.PAR_START:
- case diagObj.db.LINETYPE.CRITICAL_START:
- case diagObj.db.LINETYPE.BREAK_START:
- stack.push({
- id: msg.id,
- msg: msg.message,
- from: Number.MAX_SAFE_INTEGER,
- to: Number.MIN_SAFE_INTEGER,
- width: 0
- });
- break;
- case diagObj.db.LINETYPE.ALT_ELSE:
- case diagObj.db.LINETYPE.PAR_AND:
- case diagObj.db.LINETYPE.CRITICAL_OPTION:
- if (msg.message) {
- current = stack.pop();
- loops[current.id] = current;
- loops[msg.id] = current;
- stack.push(current);
- }
- break;
- case diagObj.db.LINETYPE.LOOP_END:
- case diagObj.db.LINETYPE.ALT_END:
- case diagObj.db.LINETYPE.OPT_END:
- case diagObj.db.LINETYPE.PAR_END:
- case diagObj.db.LINETYPE.CRITICAL_END:
- case diagObj.db.LINETYPE.BREAK_END:
- current = stack.pop();
- loops[current.id] = current;
- break;
- case diagObj.db.LINETYPE.ACTIVE_START:
- {
- const actorRect = actors2[msg.from ? msg.from.actor : msg.to.actor];
- const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;
- const x2 = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf$4.activationWidth / 2;
- const toAdd = {
- startx: x2,
- stopx: x2 + conf$4.activationWidth,
- actor: msg.from.actor,
- enabled: true
- };
- bounds$1.activations.push(toAdd);
- }
- break;
- case diagObj.db.LINETYPE.ACTIVE_END:
- {
- const lastActorActivationIdx = bounds$1.activations.map((a) => a.actor).lastIndexOf(msg.from.actor);
- delete bounds$1.activations.splice(lastActorActivationIdx, 1)[0];
+ return v3 + EDGE_KEY_DELIM + w3 + EDGE_KEY_DELIM + (isUndefined_default(name) ? DEFAULT_EDGE_NAME : name);
+ }
+ function edgeArgsToObj(isDirected, v_, w_, name) {
+ var v3 = "" + v_;
+ var w3 = "" + w_;
+ if (!isDirected && v3 > w3) {
+ var tmp = v3;
+ v3 = w3;
+ w3 = tmp;
+ }
+ var edgeObj = { v: v3, w: w3 };
+ if (name) {
+ edgeObj.name = name;
+ }
+ return edgeObj;
+ }
+ function edgeObjToId(isDirected, edgeObj) {
+ return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
+ }
+ var DEFAULT_EDGE_NAME, GRAPH_NODE, EDGE_KEY_DELIM, Graph;
+ var init_graph = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/graph.js"() {
+ "use strict";
+ init_lodash();
+ DEFAULT_EDGE_NAME = "\0";
+ GRAPH_NODE = "\0";
+ EDGE_KEY_DELIM = "";
+ Graph = class {
+ static {
+ __name(this, "Graph");
+ }
+ constructor(opts = {}) {
+ this._isDirected = has_default(opts, "directed") ? opts.directed : true;
+ this._isMultigraph = has_default(opts, "multigraph") ? opts.multigraph : false;
+ this._isCompound = has_default(opts, "compound") ? opts.compound : false;
+ this._label = void 0;
+ this._defaultNodeLabelFn = constant_default6(void 0);
+ this._defaultEdgeLabelFn = constant_default6(void 0);
+ this._nodes = {};
+ if (this._isCompound) {
+ this._parent = {};
+ this._children = {};
+ this._children[GRAPH_NODE] = {};
+ }
+ this._in = {};
+ this._preds = {};
+ this._out = {};
+ this._sucs = {};
+ this._edgeObjs = {};
+ this._edgeLabels = {};
+ }
+ /* === Graph functions ========= */
+ isDirected() {
+ return this._isDirected;
+ }
+ isMultigraph() {
+ return this._isMultigraph;
+ }
+ isCompound() {
+ return this._isCompound;
+ }
+ setGraph(label) {
+ this._label = label;
+ return this;
+ }
+ graph() {
+ return this._label;
+ }
+ /* === Node functions ========== */
+ setDefaultNodeLabel(newDefault) {
+ if (!isFunction_default(newDefault)) {
+ newDefault = constant_default6(newDefault);
}
- break;
- }
- const isNote = msg.placement !== void 0;
- if (isNote) {
- noteModel = buildNoteModel(msg, actors2, diagObj);
- msg.noteModel = noteModel;
- stack.forEach((stk) => {
- current = stk;
- current.from = Math.min(current.from, noteModel.startx);
- current.to = Math.max(current.to, noteModel.startx + noteModel.width);
- current.width = Math.max(current.width, Math.abs(current.from - current.to)) - conf$4.labelBoxWidth;
- });
- } else {
- msgModel = buildMessageModel(msg, actors2, diagObj);
- msg.msgModel = msgModel;
- if (msgModel.startx && msgModel.stopx && stack.length > 0) {
- stack.forEach((stk) => {
- current = stk;
- if (msgModel.startx === msgModel.stopx) {
- const from2 = actors2[msg.from];
- const to = actors2[msg.to];
- current.from = Math.min(
- from2.x - msgModel.width / 2,
- from2.x - from2.width / 2,
- current.from
- );
- current.to = Math.max(to.x + msgModel.width / 2, to.x + from2.width / 2, current.to);
- current.width = Math.max(current.width, Math.abs(current.to - current.from)) - conf$4.labelBoxWidth;
+ this._defaultNodeLabelFn = newDefault;
+ return this;
+ }
+ nodeCount() {
+ return this._nodeCount;
+ }
+ nodes() {
+ return keys_default(this._nodes);
+ }
+ sources() {
+ var self2 = this;
+ return filter_default3(this.nodes(), function(v3) {
+ return isEmpty_default(self2._in[v3]);
+ });
+ }
+ sinks() {
+ var self2 = this;
+ return filter_default3(this.nodes(), function(v3) {
+ return isEmpty_default(self2._out[v3]);
+ });
+ }
+ setNodes(vs, value2) {
+ var args = arguments;
+ var self2 = this;
+ forEach_default(vs, function(v3) {
+ if (args.length > 1) {
+ self2.setNode(v3, value2);
} else {
- current.from = Math.min(msgModel.startx, current.from);
- current.to = Math.max(msgModel.stopx, current.to);
- current.width = Math.max(current.width, msgModel.width) - conf$4.labelBoxWidth;
+ self2.setNode(v3);
}
});
+ return this;
}
- }
- });
- bounds$1.activations = [];
- log$1.debug("Loop type widths:", loops);
- return loops;
- };
- const renderer$7 = {
- bounds: bounds$1,
- drawActors,
- drawActorsPopup,
- setConf: setConf$4,
- draw: draw$8
- };
- const diagram$8 = {
- parser: parser$a,
- db: db$4,
- renderer: renderer$7,
- styles: styles$5
- };
- const sequenceDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$8
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$7 = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 32], $V1 = [1, 33], $V2 = [1, 34], $V3 = [1, 35], $V4 = [1, 9], $V5 = [1, 8], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 38], $Va = [1, 25], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 26], $Vg = [1, 27], $Vh = [1, 28], $Vi = [1, 29], $Vj = [1, 42], $Vk = [1, 39], $Vl = [1, 40], $Vm = [1, 41], $Vn = [1, 43], $Vo = [1, 16, 24], $Vp = [1, 57], $Vq = [1, 58], $Vr = [1, 59], $Vs = [1, 60], $Vt = [1, 61], $Vu = [1, 62], $Vv = [1, 63], $Vw = [1, 73], $Vx = [1, 16, 24, 27, 28, 35, 48, 49, 63, 64, 65, 66, 67, 68, 69, 74, 76], $Vy = [1, 16, 24, 27, 28, 33, 35, 48, 49, 54, 63, 64, 65, 66, 67, 68, 69, 74, 76, 89, 91, 92, 93, 94], $Vz = [1, 80], $VA = [28, 89, 91, 92, 93, 94], $VB = [28, 68, 69, 89, 91, 92, 93, 94], $VC = [28, 63, 64, 65, 66, 67, 89, 91, 92, 93, 94], $VD = [1, 90], $VE = [1, 16, 24, 48, 49], $VF = [1, 16, 24, 35], $VG = [8, 9, 10, 11, 19, 23, 42, 44, 46, 52, 53, 55, 56, 58, 60, 70, 71, 73, 77, 89, 91, 92, 93, 94];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "directive": 5, "statements": 6, "direction": 7, "direction_tb": 8, "direction_bt": 9, "direction_rl": 10, "direction_lr": 11, "graphConfig": 12, "openDirective": 13, "typeDirective": 14, "closeDirective": 15, "NEWLINE": 16, ":": 17, "argDirective": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "CLASS_DIAGRAM": 23, "EOF": 24, "statement": 25, "classLabel": 26, "SQS": 27, "STR": 28, "SQE": 29, "className": 30, "alphaNumToken": 31, "classLiteralName": 32, "GENERICTYPE": 33, "relationStatement": 34, "LABEL": 35, "classStatement": 36, "methodStatement": 37, "annotationStatement": 38, "clickStatement": 39, "cssClassStatement": 40, "noteStatement": 41, "acc_title": 42, "acc_title_value": 43, "acc_descr": 44, "acc_descr_value": 45, "acc_descr_multiline_value": 46, "classIdentifier": 47, "STYLE_SEPARATOR": 48, "STRUCT_START": 49, "members": 50, "STRUCT_STOP": 51, "CLASS": 52, "ANNOTATION_START": 53, "ANNOTATION_END": 54, "MEMBER": 55, "SEPARATOR": 56, "relation": 57, "NOTE_FOR": 58, "noteText": 59, "NOTE": 60, "relationType": 61, "lineType": 62, "AGGREGATION": 63, "EXTENSION": 64, "COMPOSITION": 65, "DEPENDENCY": 66, "LOLLIPOP": 67, "LINE": 68, "DOTTED_LINE": 69, "CALLBACK": 70, "LINK": 71, "LINK_TARGET": 72, "CLICK": 73, "CALLBACK_NAME": 74, "CALLBACK_ARGS": 75, "HREF": 76, "CSSCLASS": 77, "commentToken": 78, "textToken": 79, "graphCodeTokens": 80, "textNoTagsToken": 81, "TAGSTART": 82, "TAGEND": 83, "==": 84, "--": 85, "PCT": 86, "DEFAULT": 87, "SPACE": 88, "MINUS": 89, "keywords": 90, "UNICODE_TEXT": 91, "NUM": 92, "ALPHA": 93, "BQUOTE_STR": 94, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 8: "direction_tb", 9: "direction_bt", 10: "direction_rl", 11: "direction_lr", 16: "NEWLINE", 17: ":", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 23: "CLASS_DIAGRAM", 24: "EOF", 27: "SQS", 28: "STR", 29: "SQE", 33: "GENERICTYPE", 35: "LABEL", 42: "acc_title", 43: "acc_title_value", 44: "acc_descr", 45: "acc_descr_value", 46: "acc_descr_multiline_value", 48: "STYLE_SEPARATOR", 49: "STRUCT_START", 51: "STRUCT_STOP", 52: "CLASS", 53: "ANNOTATION_START", 54: "ANNOTATION_END", 55: "MEMBER", 56: "SEPARATOR", 58: "NOTE_FOR", 60: "NOTE", 63: "AGGREGATION", 64: "EXTENSION", 65: "COMPOSITION", 66: "DEPENDENCY", 67: "LOLLIPOP", 68: "LINE", 69: "DOTTED_LINE", 70: "CALLBACK", 71: "LINK", 72: "LINK_TARGET", 73: "CLICK", 74: "CALLBACK_NAME", 75: "CALLBACK_ARGS", 76: "HREF", 77: "CSSCLASS", 80: "graphCodeTokens", 82: "TAGSTART", 83: "TAGEND", 84: "==", 85: "--", 86: "PCT", 87: "DEFAULT", 88: "SPACE", 89: "MINUS", 90: "keywords", 91: "UNICODE_TEXT", 92: "NUM", 93: "ALPHA", 94: "BQUOTE_STR" },
- productions_: [0, [3, 1], [3, 2], [3, 1], [7, 1], [7, 1], [7, 1], [7, 1], [4, 1], [5, 4], [5, 6], [13, 1], [14, 1], [18, 1], [15, 1], [12, 4], [6, 1], [6, 2], [6, 3], [26, 3], [30, 1], [30, 1], [30, 2], [30, 2], [30, 2], [25, 1], [25, 2], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 2], [25, 2], [25, 1], [36, 1], [36, 3], [36, 4], [36, 6], [47, 2], [47, 3], [38, 4], [50, 1], [50, 2], [37, 1], [37, 2], [37, 1], [37, 1], [34, 3], [34, 4], [34, 4], [34, 5], [41, 3], [41, 2], [57, 3], [57, 2], [57, 2], [57, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [62, 1], [62, 1], [39, 3], [39, 4], [39, 3], [39, 4], [39, 4], [39, 5], [39, 3], [39, 4], [39, 4], [39, 5], [39, 3], [39, 4], [39, 4], [39, 5], [40, 3], [78, 1], [78, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [81, 1], [81, 1], [81, 1], [81, 1], [31, 1], [31, 1], [31, 1], [31, 1], [32, 1], [59, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 4:
- yy.setDirection("TB");
- break;
- case 5:
- yy.setDirection("BT");
- break;
- case 6:
- yy.setDirection("RL");
- break;
- case 7:
- yy.setDirection("LR");
- break;
- case 11:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 12:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 13:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 14:
- yy.parseDirective("}%%", "close_directive", "class");
- break;
- case 19:
- this.$ = $$[$0 - 1];
- break;
- case 20:
- case 21:
- this.$ = $$[$0];
- break;
- case 22:
- this.$ = $$[$0 - 1] + $$[$0];
- break;
- case 23:
- case 24:
- this.$ = $$[$0 - 1] + "~" + $$[$0] + "~";
- break;
- case 25:
- yy.addRelation($$[$0]);
- break;
- case 26:
- $$[$0 - 1].title = yy.cleanupLabel($$[$0]);
- yy.addRelation($$[$0 - 1]);
- break;
- case 34:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 35:
- case 36:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 38:
- yy.setCssClass($$[$0 - 2], $$[$0]);
- break;
- case 39:
- yy.addMembers($$[$0 - 3], $$[$0 - 1]);
- break;
- case 40:
- yy.setCssClass($$[$0 - 5], $$[$0 - 3]);
- yy.addMembers($$[$0 - 5], $$[$0 - 1]);
- break;
- case 41:
- this.$ = $$[$0];
- yy.addClass($$[$0]);
- break;
- case 42:
- this.$ = $$[$0 - 1];
- yy.addClass($$[$0 - 1]);
- yy.setClassLabel($$[$0 - 1], $$[$0]);
- break;
- case 43:
- yy.addAnnotation($$[$0], $$[$0 - 2]);
- break;
- case 44:
- this.$ = [$$[$0]];
- break;
- case 45:
- $$[$0].push($$[$0 - 1]);
- this.$ = $$[$0];
- break;
- case 46:
- break;
- case 47:
- yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));
- break;
- case 48:
- break;
- case 49:
- break;
- case 50:
- this.$ = { "id1": $$[$0 - 2], "id2": $$[$0], relation: $$[$0 - 1], relationTitle1: "none", relationTitle2: "none" };
- break;
- case 51:
- this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: "none" };
- break;
- case 52:
- this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: "none", relationTitle2: $$[$0 - 1] };
- break;
- case 53:
- this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };
- break;
- case 54:
- yy.addNote($$[$0], $$[$0 - 1]);
- break;
- case 55:
- yy.addNote($$[$0]);
- break;
- case 56:
- this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };
- break;
- case 57:
- this.$ = { type1: "none", type2: $$[$0], lineType: $$[$0 - 1] };
- break;
- case 58:
- this.$ = { type1: $$[$0 - 1], type2: "none", lineType: $$[$0] };
- break;
- case 59:
- this.$ = { type1: "none", type2: "none", lineType: $$[$0] };
- break;
- case 60:
- this.$ = yy.relationType.AGGREGATION;
- break;
- case 61:
- this.$ = yy.relationType.EXTENSION;
- break;
- case 62:
- this.$ = yy.relationType.COMPOSITION;
- break;
- case 63:
- this.$ = yy.relationType.DEPENDENCY;
- break;
- case 64:
- this.$ = yy.relationType.LOLLIPOP;
- break;
- case 65:
- this.$ = yy.lineType.LINE;
- break;
- case 66:
- this.$ = yy.lineType.DOTTED_LINE;
- break;
- case 67:
- case 73:
- this.$ = $$[$0 - 2];
- yy.setClickEvent($$[$0 - 1], $$[$0]);
- break;
- case 68:
- case 74:
- this.$ = $$[$0 - 3];
- yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);
- yy.setTooltip($$[$0 - 2], $$[$0]);
- break;
- case 69:
- case 77:
- this.$ = $$[$0 - 2];
- yy.setLink($$[$0 - 1], $$[$0]);
- break;
- case 70:
- this.$ = $$[$0 - 3];
- yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
- break;
- case 71:
- case 79:
- this.$ = $$[$0 - 3];
- yy.setLink($$[$0 - 2], $$[$0 - 1]);
- yy.setTooltip($$[$0 - 2], $$[$0]);
- break;
- case 72:
- case 80:
- this.$ = $$[$0 - 4];
- yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
- yy.setTooltip($$[$0 - 3], $$[$0 - 1]);
- break;
- case 75:
- this.$ = $$[$0 - 3];
- yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
- break;
- case 76:
- this.$ = $$[$0 - 4];
- yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
- yy.setTooltip($$[$0 - 3], $$[$0]);
- break;
- case 78:
- this.$ = $$[$0 - 3];
- yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
- break;
- case 81:
- yy.setCssClass($$[$0 - 1], $$[$0]);
- break;
+ setNode(v3, value2) {
+ if (has_default(this._nodes, v3)) {
+ if (arguments.length > 1) {
+ this._nodes[v3] = value2;
+ }
+ return this;
+ }
+ this._nodes[v3] = arguments.length > 1 ? value2 : this._defaultNodeLabelFn(v3);
+ if (this._isCompound) {
+ this._parent[v3] = GRAPH_NODE;
+ this._children[v3] = {};
+ this._children[GRAPH_NODE][v3] = true;
+ }
+ this._in[v3] = {};
+ this._preds[v3] = {};
+ this._out[v3] = {};
+ this._sucs[v3] = {};
+ ++this._nodeCount;
+ return this;
}
- },
- table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: 17, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 12: 5, 13: 6, 19: $V4, 23: $V5, 25: 7, 30: 21, 31: 36, 32: 37, 34: 10, 36: 11, 37: 12, 38: 13, 39: 14, 40: 15, 41: 16, 42: $V6, 44: $V7, 46: $V8, 47: 22, 52: $V9, 53: $Va, 55: $Vb, 56: $Vc, 58: $Vd, 60: $Ve, 70: $Vf, 71: $Vg, 73: $Vh, 77: $Vi, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 1: [3] }, { 1: [2, 1] }, { 3: 44, 4: 2, 5: 3, 6: 4, 7: 17, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 12: 5, 13: 6, 19: $V4, 23: $V5, 25: 7, 30: 21, 31: 36, 32: 37, 34: 10, 36: 11, 37: 12, 38: 13, 39: 14, 40: 15, 41: 16, 42: $V6, 44: $V7, 46: $V8, 47: 22, 52: $V9, 53: $Va, 55: $Vb, 56: $Vc, 58: $Vd, 60: $Ve, 70: $Vf, 71: $Vg, 73: $Vh, 77: $Vi, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 1: [2, 3] }, { 1: [2, 8] }, { 14: 45, 20: [1, 46] }, o($Vc, [2, 16], { 16: [1, 47] }), { 16: [1, 48] }, { 20: [2, 11] }, o($Vo, [2, 25], { 35: [1, 49] }), o($Vo, [2, 27]), o($Vo, [2, 28]), o($Vo, [2, 29]), o($Vo, [2, 30]), o($Vo, [2, 31]), o($Vo, [2, 32]), o($Vo, [2, 33]), { 43: [1, 50] }, { 45: [1, 51] }, o($Vo, [2, 36]), o($Vo, [2, 46], { 57: 52, 61: 55, 62: 56, 28: [1, 53], 35: [1, 54], 63: $Vp, 64: $Vq, 65: $Vr, 66: $Vs, 67: $Vt, 68: $Vu, 69: $Vv }), o($Vo, [2, 37], { 48: [1, 64], 49: [1, 65] }), o($Vo, [2, 48]), o($Vo, [2, 49]), { 31: 66, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm }, { 30: 67, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 30: 68, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 30: 69, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 28: [1, 70] }, { 30: 71, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 28: $Vw, 59: 72 }, o($Vo, [2, 4]), o($Vo, [2, 5]), o($Vo, [2, 6]), o($Vo, [2, 7]), o($Vx, [2, 20], { 31: 36, 32: 37, 30: 74, 33: [1, 75], 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }), o($Vx, [2, 21], { 33: [1, 76] }), { 30: 77, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, o($Vy, [2, 95]), o($Vy, [2, 96]), o($Vy, [2, 97]), o($Vy, [2, 98]), o([1, 16, 24, 27, 28, 33, 35, 48, 49, 63, 64, 65, 66, 67, 68, 69, 74, 76], [2, 99]), { 1: [2, 2] }, { 15: 78, 17: [1, 79], 22: $Vz }, o([17, 22], [2, 12]), o($Vc, [2, 17], { 25: 7, 34: 10, 36: 11, 37: 12, 38: 13, 39: 14, 40: 15, 41: 16, 7: 17, 30: 21, 47: 22, 31: 36, 32: 37, 6: 81, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 42: $V6, 44: $V7, 46: $V8, 52: $V9, 53: $Va, 55: $Vb, 56: $Vc, 58: $Vd, 60: $Ve, 70: $Vf, 71: $Vg, 73: $Vh, 77: $Vi, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }), { 6: 82, 7: 17, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 25: 7, 30: 21, 31: 36, 32: 37, 34: 10, 36: 11, 37: 12, 38: 13, 39: 14, 40: 15, 41: 16, 42: $V6, 44: $V7, 46: $V8, 47: 22, 52: $V9, 53: $Va, 55: $Vb, 56: $Vc, 58: $Vd, 60: $Ve, 70: $Vf, 71: $Vg, 73: $Vh, 77: $Vi, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, o($Vo, [2, 26]), o($Vo, [2, 34]), o($Vo, [2, 35]), { 28: [1, 84], 30: 83, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 57: 85, 61: 55, 62: 56, 63: $Vp, 64: $Vq, 65: $Vr, 66: $Vs, 67: $Vt, 68: $Vu, 69: $Vv }, o($Vo, [2, 47]), { 62: 86, 68: $Vu, 69: $Vv }, o($VA, [2, 59], { 61: 87, 63: $Vp, 64: $Vq, 65: $Vr, 66: $Vs, 67: $Vt }), o($VB, [2, 60]), o($VB, [2, 61]), o($VB, [2, 62]), o($VB, [2, 63]), o($VB, [2, 64]), o($VC, [2, 65]), o($VC, [2, 66]), { 31: 88, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm }, { 50: 89, 55: $VD }, { 54: [1, 91] }, { 28: [1, 92] }, { 28: [1, 93] }, { 74: [1, 94], 76: [1, 95] }, { 31: 96, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm }, { 28: $Vw, 59: 97 }, o($Vo, [2, 55]), o($Vo, [2, 100]), o($Vx, [2, 22]), o($Vx, [2, 23]), o($Vx, [2, 24]), o($VE, [2, 41], { 26: 98, 27: [1, 99] }), { 16: [1, 100] }, { 18: 101, 21: [1, 102] }, { 16: [2, 14] }, o($Vc, [2, 18]), { 24: [1, 103] }, o($VF, [2, 50]), { 30: 104, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, { 28: [1, 106], 30: 105, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, o($VA, [2, 58], { 61: 107, 63: $Vp, 64: $Vq, 65: $Vr, 66: $Vs, 67: $Vt }), o($VA, [2, 57]), o($Vo, [2, 38], { 49: [1, 108] }), { 51: [1, 109] }, { 50: 110, 51: [2, 44], 55: $VD }, { 30: 111, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, o($Vo, [2, 67], { 28: [1, 112] }), o($Vo, [2, 69], { 28: [1, 114], 72: [1, 113] }), o($Vo, [2, 73], { 28: [1, 115], 75: [1, 116] }), o($Vo, [2, 77], { 28: [1, 118], 72: [1, 117] }), o($Vo, [2, 81]), o($Vo, [2, 54]), o($VE, [2, 42]), { 28: [1, 119] }, o($VG, [2, 9]), { 15: 120, 22: $Vz }, { 22: [2, 13] }, { 1: [2, 15] }, o($VF, [2, 52]), o($VF, [2, 51]), { 30: 121, 31: 36, 32: 37, 89: $Vj, 91: $Vk, 92: $Vl, 93: $Vm, 94: $Vn }, o($VA, [2, 56]), { 50: 122, 55: $VD }, o($Vo, [2, 39]), { 51: [2, 45] }, o($Vo, [2, 43]), o($Vo, [2, 68]), o($Vo, [2, 70]), o($Vo, [2, 71], { 72: [1, 123] }), o($Vo, [2, 74]), o($Vo, [2, 75], { 28: [1, 124] }), o($Vo, [2, 78]), o($Vo, [2, 79], { 72: [1, 125] }), { 29: [1, 126] }, { 16: [1, 127] }, o($VF, [2, 53]), { 51: [1, 128] }, o($Vo, [2, 72]), o($Vo, [2, 76]), o($Vo, [2, 80]), o($VE, [2, 19]), o($VG, [2, 10]), o($Vo, [2, 40])],
- defaultActions: { 2: [2, 1], 4: [2, 3], 5: [2, 8], 9: [2, 11], 44: [2, 2], 80: [2, 14], 102: [2, 13], 103: [2, 15], 110: [2, 45] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
+ node(v3) {
+ return this._nodes[v3];
}
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
+ hasNode(v3) {
+ return has_default(this._nodes, v3);
}
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
+ removeNode(v3) {
+ var self2 = this;
+ if (has_default(this._nodes, v3)) {
+ var removeEdge = /* @__PURE__ */ __name(function(e3) {
+ self2.removeEdge(self2._edgeObjs[e3]);
+ }, "removeEdge");
+ delete this._nodes[v3];
+ if (this._isCompound) {
+ this._removeFromParentsChildList(v3);
+ delete this._parent[v3];
+ forEach_default(this.children(v3), function(child) {
+ self2.setParent(child);
+ });
+ delete this._children[v3];
}
- token2 = self2.symbols_[token2] || token2;
+ forEach_default(keys_default(this._in[v3]), removeEdge);
+ delete this._in[v3];
+ delete this._preds[v3];
+ forEach_default(keys_default(this._out[v3]), removeEdge);
+ delete this._out[v3];
+ delete this._sucs[v3];
+ --this._nodeCount;
}
- return token2;
+ return this;
}
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
+ setParent(v3, parent4) {
+ if (!this._isCompound) {
+ throw new Error("Cannot set parent in a non-compound graph");
+ }
+ if (isUndefined_default(parent4)) {
+ parent4 = GRAPH_NODE;
} else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
+ parent4 += "";
+ for (var ancestor = parent4; !isUndefined_default(ancestor); ancestor = this.parent(ancestor)) {
+ if (ancestor === v3) {
+ throw new Error("Setting " + parent4 + " as parent of " + v3 + " would create a cycle");
+ }
}
- action = table[state2] && table[state2][symbol];
+ this.setNode(parent4);
}
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
+ this.setNode(v3);
+ this._removeFromParentsChildList(v3);
+ this._parent[v3] = parent4;
+ this._children[parent4][v3] = true;
+ return this;
+ }
+ _removeFromParentsChildList(v3) {
+ delete this._children[this._parent[v3]][v3];
+ }
+ parent(v3) {
+ if (this._isCompound) {
+ var parent4 = this._parent[v3];
+ if (parent4 !== GRAPH_NODE) {
+ return parent4;
}
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
}
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
+ }
+ children(v3) {
+ if (isUndefined_default(v3)) {
+ v3 = GRAPH_NODE;
}
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
+ if (this._isCompound) {
+ var children2 = this._children[v3];
+ if (children2) {
+ return keys_default(children2);
+ }
+ } else if (v3 === GRAPH_NODE) {
+ return this.nodes();
+ } else if (this.hasNode(v3)) {
+ return [];
}
}
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
+ predecessors(v3) {
+ var predsV = this._preds[v3];
+ if (predsV) {
+ return keys_default(predsV);
}
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
+ }
+ successors(v3) {
+ var sucsV = this._sucs[v3];
+ if (sucsV) {
+ return keys_default(sucsV);
}
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
+ }
+ neighbors(v3) {
+ var preds = this.predecessors(v3);
+ if (preds) {
+ return union_default(preds, this.successors(v3));
+ }
+ }
+ isLeaf(v3) {
+ var neighbors;
+ if (this.isDirected()) {
+ neighbors = this.successors(v3);
} else {
- this.yylloc.last_column++;
+ neighbors = this.neighbors(v3);
+ }
+ return neighbors.length === 0;
+ }
+ filterNodes(filter6) {
+ var copy6 = new this.constructor({
+ directed: this._isDirected,
+ multigraph: this._isMultigraph,
+ compound: this._isCompound
+ });
+ copy6.setGraph(this.graph());
+ var self2 = this;
+ forEach_default(this._nodes, function(value2, v3) {
+ if (filter6(v3)) {
+ copy6.setNode(v3, value2);
+ }
+ });
+ forEach_default(this._edgeObjs, function(e3) {
+ if (copy6.hasNode(e3.v) && copy6.hasNode(e3.w)) {
+ copy6.setEdge(e3, self2.edge(e3));
+ }
+ });
+ var parents4 = {};
+ function findParent(v3) {
+ var parent4 = self2.parent(v3);
+ if (parent4 === void 0 || copy6.hasNode(parent4)) {
+ parents4[v3] = parent4;
+ return parent4;
+ } else if (parent4 in parents4) {
+ return parents4[parent4];
+ } else {
+ return findParent(parent4);
+ }
}
- if (this.options.ranges) {
- this.yylloc.range[1]++;
+ __name(findParent, "findParent");
+ if (this._isCompound) {
+ forEach_default(copy6.nodes(), function(v3) {
+ copy6.setParent(v3, findParent(v3));
+ });
}
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ return copy6;
+ }
+ /* === Edge functions ========== */
+ setDefaultEdgeLabel(newDefault) {
+ if (!isFunction_default(newDefault)) {
+ newDefault = constant_default6(newDefault);
}
- this.yyleng = this.yytext.length;
+ this._defaultEdgeLabelFn = newDefault;
return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
+ }
+ edgeCount() {
+ return this._edgeCount;
+ }
+ edges() {
+ return values_default(this._edgeObjs);
+ }
+ setPath(vs, value2) {
+ var self2 = this;
+ var args = arguments;
+ reduce_default(vs, function(v3, w3) {
+ if (args.length > 1) {
+ self2.setEdge(v3, w3, value2);
+ } else {
+ self2.setEdge(v3, w3);
+ }
+ return w3;
+ });
return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
+ }
+ /*
+ * setEdge(v, w, [value, [name]])
+ * setEdge({ v, w, [name] }, [value])
+ */
+ setEdge() {
+ var v3, w3, name, value2;
+ var valueSpecified = false;
+ var arg0 = arguments[0];
+ if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
+ v3 = arg0.v;
+ w3 = arg0.w;
+ name = arg0.name;
+ if (arguments.length === 2) {
+ value2 = arguments[1];
+ valueSpecified = true;
+ }
} else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
+ v3 = arg0;
+ w3 = arguments[1];
+ name = arguments[3];
+ if (arguments.length > 2) {
+ value2 = arguments[2];
+ valueSpecified = true;
}
}
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
+ v3 = "" + v3;
+ w3 = "" + w3;
+ if (!isUndefined_default(name)) {
+ name = "" + name;
}
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
+ var e3 = edgeArgsToId(this._isDirected, v3, w3, name);
+ if (has_default(this._edgeLabels, e3)) {
+ if (valueSpecified) {
+ this._edgeLabels[e3] = value2;
}
- return false;
+ return this;
}
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
+ if (!isUndefined_default(name) && !this._isMultigraph) {
+ throw new Error("Cannot set a named edge when isMultigraph = false");
+ }
+ this.setNode(v3);
+ this.setNode(w3);
+ this._edgeLabels[e3] = valueSpecified ? value2 : this._defaultEdgeLabelFn(v3, w3, name);
+ var edgeObj = edgeArgsToObj(this._isDirected, v3, w3, name);
+ v3 = edgeObj.v;
+ w3 = edgeObj.w;
+ Object.freeze(edgeObj);
+ this._edgeObjs[e3] = edgeObj;
+ incrementOrInitEntry(this._preds[w3], v3);
+ incrementOrInitEntry(this._sucs[v3], w3);
+ this._in[w3][e3] = edgeObj;
+ this._out[v3][e3] = edgeObj;
+ this._edgeCount++;
+ return this;
+ }
+ edge(v3, w3, name) {
+ var e3 = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v3, w3, name);
+ return this._edgeLabels[e3];
+ }
+ hasEdge(v3, w3, name) {
+ var e3 = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v3, w3, name);
+ return has_default(this._edgeLabels, e3);
+ }
+ removeEdge(v3, w3, name) {
+ var e3 = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v3, w3, name);
+ var edge = this._edgeObjs[e3];
+ if (edge) {
+ v3 = edge.v;
+ w3 = edge.w;
+ delete this._edgeLabels[e3];
+ delete this._edgeObjs[e3];
+ decrementOrRemoveEntry(this._preds[w3], v3);
+ decrementOrRemoveEntry(this._sucs[v3], w3);
+ delete this._in[w3][e3];
+ delete this._out[v3][e3];
+ this._edgeCount--;
}
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
+ return this;
+ }
+ inEdges(v3, u2) {
+ var inV = this._in[v3];
+ if (inV) {
+ var edges5 = values_default(inV);
+ if (!u2) {
+ return edges5;
}
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
+ return filter_default3(edges5, function(edge) {
+ return edge.v === u2;
});
}
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
+ }
+ outEdges(v3, w3) {
+ var outV = this._out[v3];
+ if (outV) {
+ var edges5 = values_default(outV);
+ if (!w3) {
+ return edges5;
+ }
+ return filter_default3(edges5, function(edge) {
+ return edge.w === w3;
+ });
}
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
+ }
+ nodeEdges(v3, w3) {
+ var inEdges = this.inEdges(v3, w3);
+ if (inEdges) {
+ return inEdges.concat(this.outEdges(v3, w3));
}
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
+ }
+ };
+ Graph.prototype._nodeCount = 0;
+ Graph.prototype._edgeCount = 0;
+ __name(incrementOrInitEntry, "incrementOrInitEntry");
+ __name(decrementOrRemoveEntry, "decrementOrRemoveEntry");
+ __name(edgeArgsToId, "edgeArgsToId");
+ __name(edgeArgsToObj, "edgeArgsToObj");
+ __name(edgeObjToId, "edgeObjToId");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/index.js
+ var init_graphlib = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/index.js"() {
+ "use strict";
+ init_graph();
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/data/list.js
+ function unlink(entry) {
+ entry._prev._next = entry._next;
+ entry._next._prev = entry._prev;
+ delete entry._next;
+ delete entry._prev;
+ }
+ function filterOutLinks(k2, v3) {
+ if (k2 !== "_next" && k2 !== "_prev") {
+ return v3;
+ }
+ }
+ var List;
+ var init_list = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/data/list.js"() {
+ "use strict";
+ List = class {
+ static {
+ __name(this, "List");
+ }
+ constructor() {
+ var sentinel = {};
+ sentinel._next = sentinel._prev = sentinel;
+ this._sentinel = sentinel;
+ }
+ dequeue() {
+ var sentinel = this._sentinel;
+ var entry = sentinel._prev;
+ if (entry !== sentinel) {
+ unlink(entry);
+ return entry;
}
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
+ }
+ enqueue(entry) {
+ var sentinel = this._sentinel;
+ if (entry._prev && entry._next) {
+ unlink(entry);
}
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: {},
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 19;
- case 1:
- return 8;
- case 2:
- return 9;
- case 3:
- return 10;
- case 4:
- return 11;
- case 5:
- this.begin("type_directive");
- return 20;
- case 6:
- this.popState();
- this.begin("arg_directive");
- return 17;
- case 7:
- this.popState();
- this.popState();
- return 22;
- case 8:
- return 21;
- case 9:
- break;
- case 10:
- break;
- case 11:
- this.begin("acc_title");
- return 42;
- case 12:
- this.popState();
- return "acc_title_value";
- case 13:
- this.begin("acc_descr");
- return 44;
- case 14:
- this.popState();
- return "acc_descr_value";
- case 15:
- this.begin("acc_descr_multiline");
- break;
- case 16:
- this.popState();
- break;
- case 17:
- return "acc_descr_multiline_value";
- case 18:
- return 16;
- case 19:
- break;
- case 20:
- return 23;
- case 21:
- return 23;
- case 22:
- this.begin("struct");
- return 49;
- case 23:
- return "EDGE_STATE";
- case 24:
- return "EOF_IN_STRUCT";
- case 25:
- return "OPEN_IN_STRUCT";
- case 26:
- this.popState();
- return 51;
- case 27:
- break;
- case 28:
- return "MEMBER";
- case 29:
- return 52;
- case 30:
- return 77;
- case 31:
- return 70;
- case 32:
- return 71;
- case 33:
- return 73;
- case 34:
- return 58;
- case 35:
- return 60;
- case 36:
- return 53;
- case 37:
- return 54;
- case 38:
- this.begin("generic");
- break;
- case 39:
- this.popState();
- break;
- case 40:
- return "GENERICTYPE";
- case 41:
- this.begin("string");
- break;
- case 42:
- this.popState();
- break;
- case 43:
- return "STR";
- case 44:
- this.begin("bqstring");
- break;
- case 45:
- this.popState();
- break;
- case 46:
- return "BQUOTE_STR";
- case 47:
- this.begin("href");
- break;
- case 48:
- this.popState();
- break;
- case 49:
- return 76;
- case 50:
- this.begin("callback_name");
- break;
- case 51:
- this.popState();
- break;
- case 52:
- this.popState();
- this.begin("callback_args");
- break;
- case 53:
- return 74;
- case 54:
- this.popState();
- break;
- case 55:
- return 75;
- case 56:
- return 72;
- case 57:
- return 72;
- case 58:
- return 72;
- case 59:
- return 72;
- case 60:
- return 64;
- case 61:
- return 64;
- case 62:
- return 66;
- case 63:
- return 66;
- case 64:
- return 65;
- case 65:
- return 63;
- case 66:
- return 67;
- case 67:
- return 68;
- case 68:
- return 69;
- case 69:
- return 35;
- case 70:
- return 48;
- case 71:
- return 89;
- case 72:
- return "DOT";
- case 73:
- return "PLUS";
- case 74:
- return 86;
- case 75:
- return "EQUALS";
- case 76:
- return "EQUALS";
- case 77:
- return 93;
- case 78:
- return 27;
- case 79:
- return 29;
- case 80:
- return "PUNCTUATION";
- case 81:
- return 92;
- case 82:
- return 91;
- case 83:
- return 88;
- case 84:
- return 24;
+ entry._next = sentinel._next;
+ sentinel._next._prev = entry;
+ sentinel._next = entry;
+ entry._prev = sentinel;
+ }
+ toString() {
+ var strs = [];
+ var sentinel = this._sentinel;
+ var curr = sentinel._prev;
+ while (curr !== sentinel) {
+ strs.push(JSON.stringify(curr, filterOutLinks));
+ curr = curr._prev;
}
- },
- rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:[{])/, /^(?:\[\*\])/, /^(?:$)/, /^(?:[{])/, /^(?:[}])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:class\b)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:[~])/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[`])/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\w+)/, /^(?:\[)/, /^(?:\])/, /^(?:[!"#$%&'*+,-.`?\\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:$)/],
- conditions: { "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "arg_directive": { "rules": [7, 8], "inclusive": false }, "type_directive": { "rules": [6, 7], "inclusive": false }, "open_directive": { "rules": [5], "inclusive": false }, "callback_args": { "rules": [54, 55], "inclusive": false }, "callback_name": { "rules": [51, 52, 53], "inclusive": false }, "href": { "rules": [48, 49], "inclusive": false }, "struct": { "rules": [23, 24, 25, 26, 27, 28], "inclusive": false }, "generic": { "rules": [39, 40], "inclusive": false }, "bqstring": { "rules": [45, 46], "inclusive": false }, "string": { "rules": [42, 43], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 44, 47, 50, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], "inclusive": true } }
+ return "[" + strs.join(", ") + "]";
+ }
};
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$7.parser = parser$7;
- const parser$8 = parser$7;
- const MERMAID_DOM_ID_PREFIX = "classId-";
- let relations = [];
- let classes$1 = {};
- let notes = [];
- let classCounter = 0;
- let functions = [];
- const sanitizeText$2 = (txt) => common$1.sanitizeText(txt, getConfig$1());
- const parseDirective$3 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const splitClassNameAndType = function(id2) {
- let genericType = "";
- let className = id2;
- if (id2.indexOf("~") > 0) {
- const split = id2.split("~");
- className = sanitizeText$2(split[0]);
- genericType = sanitizeText$2(split[1]);
- }
- return { className, type: genericType };
- };
- const setClassLabel = function(id2, label) {
- if (label) {
- label = sanitizeText$2(label);
- }
- const { className } = splitClassNameAndType(id2);
- classes$1[className].label = label;
- };
- const addClass = function(id2) {
- const classId = splitClassNameAndType(id2);
- if (classes$1[classId.className] !== void 0) {
- return;
+ __name(unlink, "unlink");
+ __name(filterOutLinks, "filterOutLinks");
}
- classes$1[classId.className] = {
- id: classId.className,
- type: classId.type,
- label: classId.className,
- cssClasses: [],
- methods: [],
- members: [],
- annotations: [],
- domId: MERMAID_DOM_ID_PREFIX + classId.className + "-" + classCounter
- };
- classCounter++;
- };
- const lookUpDomId = function(id2) {
- if (id2 in classes$1) {
- return classes$1[id2].domId;
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/greedy-fas.js
+ function greedyFAS(g2, weightFn) {
+ if (g2.nodeCount() <= 1) {
+ return [];
}
- throw new Error("Class not found: " + id2);
- };
- const clear$4 = function() {
- relations = [];
- classes$1 = {};
- notes = [];
- functions = [];
- functions.push(setupToolTips);
- clear$i();
- };
- const getClass = function(id2) {
- return classes$1[id2];
- };
- const getClasses$3 = function() {
- return classes$1;
- };
- const getRelations$1 = function() {
- return relations;
- };
- const getNotes = function() {
- return notes;
- };
- const addRelation$1 = function(relation) {
- log$1.debug("Adding relation: " + JSON.stringify(relation));
- addClass(relation.id1);
- addClass(relation.id2);
- relation.id1 = splitClassNameAndType(relation.id1).className;
- relation.id2 = splitClassNameAndType(relation.id2).className;
- relation.relationTitle1 = common$1.sanitizeText(
- relation.relationTitle1.trim(),
- getConfig$1()
- );
- relation.relationTitle2 = common$1.sanitizeText(
- relation.relationTitle2.trim(),
- getConfig$1()
+ var state5 = buildState(g2, weightFn || DEFAULT_WEIGHT_FN);
+ var results = doGreedyFAS(state5.graph, state5.buckets, state5.zeroIdx);
+ return flatten_default(
+ map_default(results, function(e3) {
+ return g2.outEdges(e3.v, e3.w);
+ })
);
- relations.push(relation);
- };
- const addAnnotation = function(className, annotation) {
- const validatedClassName = splitClassNameAndType(className).className;
- classes$1[validatedClassName].annotations.push(annotation);
- };
- const addMember = function(className, member) {
- const validatedClassName = splitClassNameAndType(className).className;
- const theClass = classes$1[validatedClassName];
- if (typeof member === "string") {
- const memberString = member.trim();
- if (memberString.startsWith("<<") && memberString.endsWith(">>")) {
- theClass.annotations.push(sanitizeText$2(memberString.substring(2, memberString.length - 2)));
- } else if (memberString.indexOf(")") > 0) {
- theClass.methods.push(sanitizeText$2(memberString));
- } else if (memberString) {
- theClass.members.push(sanitizeText$2(memberString));
+ }
+ function doGreedyFAS(g2, buckets, zeroIdx) {
+ var results = [];
+ var sources = buckets[buckets.length - 1];
+ var sinks = buckets[0];
+ var entry;
+ while (g2.nodeCount()) {
+ while (entry = sinks.dequeue()) {
+ removeNode(g2, buckets, zeroIdx, entry);
+ }
+ while (entry = sources.dequeue()) {
+ removeNode(g2, buckets, zeroIdx, entry);
+ }
+ if (g2.nodeCount()) {
+ for (var i2 = buckets.length - 2; i2 > 0; --i2) {
+ entry = buckets[i2].dequeue();
+ if (entry) {
+ results = results.concat(removeNode(g2, buckets, zeroIdx, entry, true));
+ break;
+ }
+ }
}
}
- };
- const addMembers = function(className, members) {
- if (Array.isArray(members)) {
- members.reverse();
- members.forEach((member) => addMember(className, member));
+ return results;
+ }
+ function removeNode(g2, buckets, zeroIdx, entry, collectPredecessors) {
+ var results = collectPredecessors ? [] : void 0;
+ forEach_default(g2.inEdges(entry.v), function(edge) {
+ var weight8 = g2.edge(edge);
+ var uEntry = g2.node(edge.v);
+ if (collectPredecessors) {
+ results.push({ v: edge.v, w: edge.w });
+ }
+ uEntry.out -= weight8;
+ assignBucket(buckets, zeroIdx, uEntry);
+ });
+ forEach_default(g2.outEdges(entry.v), function(edge) {
+ var weight8 = g2.edge(edge);
+ var w3 = edge.w;
+ var wEntry = g2.node(w3);
+ wEntry["in"] -= weight8;
+ assignBucket(buckets, zeroIdx, wEntry);
+ });
+ g2.removeNode(entry.v);
+ return results;
+ }
+ function buildState(g2, weightFn) {
+ var fasGraph = new Graph();
+ var maxIn = 0;
+ var maxOut = 0;
+ forEach_default(g2.nodes(), function(v3) {
+ fasGraph.setNode(v3, { v: v3, in: 0, out: 0 });
+ });
+ forEach_default(g2.edges(), function(e3) {
+ var prevWeight = fasGraph.edge(e3.v, e3.w) || 0;
+ var weight8 = weightFn(e3);
+ var edgeWeight = prevWeight + weight8;
+ fasGraph.setEdge(e3.v, e3.w, edgeWeight);
+ maxOut = Math.max(maxOut, fasGraph.node(e3.v).out += weight8);
+ maxIn = Math.max(maxIn, fasGraph.node(e3.w)["in"] += weight8);
+ });
+ var buckets = range_default(maxOut + maxIn + 3).map(function() {
+ return new List();
+ });
+ var zeroIdx = maxIn + 1;
+ forEach_default(fasGraph.nodes(), function(v3) {
+ assignBucket(buckets, zeroIdx, fasGraph.node(v3));
+ });
+ return { graph: fasGraph, buckets, zeroIdx };
+ }
+ function assignBucket(buckets, zeroIdx, entry) {
+ if (!entry.out) {
+ buckets[0].enqueue(entry);
+ } else if (!entry["in"]) {
+ buckets[buckets.length - 1].enqueue(entry);
+ } else {
+ buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
}
- };
- const addNote = function(text2, className) {
- const note2 = {
- id: `note${notes.length}`,
- class: className,
- text: text2
- };
- notes.push(note2);
- };
- const cleanupLabel$1 = function(label) {
- if (label.startsWith(":")) {
- label = label.substring(1);
+ }
+ var DEFAULT_WEIGHT_FN;
+ var init_greedy_fas = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/greedy-fas.js"() {
+ "use strict";
+ init_lodash();
+ init_graphlib();
+ init_list();
+ DEFAULT_WEIGHT_FN = constant_default6(1);
+ __name(greedyFAS, "greedyFAS");
+ __name(doGreedyFAS, "doGreedyFAS");
+ __name(removeNode, "removeNode");
+ __name(buildState, "buildState");
+ __name(assignBucket, "assignBucket");
}
- return sanitizeText$2(label.trim());
- };
- const setCssClass$1 = function(ids, className) {
- ids.split(",").forEach(function(_id) {
- let id2 = _id;
- if (_id[0].match(/\d/)) {
- id2 = MERMAID_DOM_ID_PREFIX + id2;
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/acyclic.js
+ function run(g2) {
+ var fas = g2.graph().acyclicer === "greedy" ? greedyFAS(g2, weightFn(g2)) : dfsFAS(g2);
+ forEach_default(fas, function(e3) {
+ var label = g2.edge(e3);
+ g2.removeEdge(e3);
+ label.forwardName = e3.name;
+ label.reversed = true;
+ g2.setEdge(e3.w, e3.v, label, uniqueId_default("rev"));
+ });
+ function weightFn(g3) {
+ return function(e3) {
+ return g3.edge(e3).weight;
+ };
+ }
+ __name(weightFn, "weightFn");
+ }
+ function dfsFAS(g2) {
+ var fas = [];
+ var stack = {};
+ var visited = {};
+ function dfs3(v3) {
+ if (has_default(visited, v3)) {
+ return;
+ }
+ visited[v3] = true;
+ stack[v3] = true;
+ forEach_default(g2.outEdges(v3), function(e3) {
+ if (has_default(stack, e3.w)) {
+ fas.push(e3);
+ } else {
+ dfs3(e3.w);
+ }
+ });
+ delete stack[v3];
+ }
+ __name(dfs3, "dfs");
+ forEach_default(g2.nodes(), dfs3);
+ return fas;
+ }
+ function undo(g2) {
+ forEach_default(g2.edges(), function(e3) {
+ var label = g2.edge(e3);
+ if (label.reversed) {
+ g2.removeEdge(e3);
+ var forwardName = label.forwardName;
+ delete label.reversed;
+ delete label.forwardName;
+ g2.setEdge(e3.w, e3.v, label, forwardName);
}
- if (classes$1[id2] !== void 0) {
- classes$1[id2].cssClasses.push(className);
+ });
+ }
+ var init_acyclic = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/acyclic.js"() {
+ "use strict";
+ init_lodash();
+ init_greedy_fas();
+ __name(run, "run");
+ __name(dfsFAS, "dfsFAS");
+ __name(undo, "undo");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/util.js
+ function addDummyNode(g2, type3, attrs, name) {
+ var v3;
+ do {
+ v3 = uniqueId_default(name);
+ } while (g2.hasNode(v3));
+ attrs.dummy = type3;
+ g2.setNode(v3, attrs);
+ return v3;
+ }
+ function simplify(g2) {
+ var simplified = new Graph().setGraph(g2.graph());
+ forEach_default(g2.nodes(), function(v3) {
+ simplified.setNode(v3, g2.node(v3));
+ });
+ forEach_default(g2.edges(), function(e3) {
+ var simpleLabel = simplified.edge(e3.v, e3.w) || { weight: 0, minlen: 1 };
+ var label = g2.edge(e3);
+ simplified.setEdge(e3.v, e3.w, {
+ weight: simpleLabel.weight + label.weight,
+ minlen: Math.max(simpleLabel.minlen, label.minlen)
+ });
+ });
+ return simplified;
+ }
+ function asNonCompoundGraph(g2) {
+ var simplified = new Graph({ multigraph: g2.isMultigraph() }).setGraph(g2.graph());
+ forEach_default(g2.nodes(), function(v3) {
+ if (!g2.children(v3).length) {
+ simplified.setNode(v3, g2.node(v3));
}
});
- };
- const setTooltip = function(ids, tooltip) {
- ids.split(",").forEach(function(id2) {
- if (tooltip !== void 0) {
- classes$1[id2].tooltip = sanitizeText$2(tooltip);
+ forEach_default(g2.edges(), function(e3) {
+ simplified.setEdge(e3, g2.edge(e3));
+ });
+ return simplified;
+ }
+ function intersectRect3(rect4, point8) {
+ var x5 = rect4.x;
+ var y5 = rect4.y;
+ var dx = point8.x - x5;
+ var dy = point8.y - y5;
+ var w3 = rect4.width / 2;
+ var h2 = rect4.height / 2;
+ if (!dx && !dy) {
+ throw new Error("Not possible to find intersection inside of the rectangle");
+ }
+ var sx, sy;
+ if (Math.abs(dy) * w3 > Math.abs(dx) * h2) {
+ if (dy < 0) {
+ h2 = -h2;
+ }
+ sx = h2 * dx / dy;
+ sy = h2;
+ } else {
+ if (dx < 0) {
+ w3 = -w3;
}
+ sx = w3;
+ sy = w3 * dy / dx;
+ }
+ return { x: x5 + sx, y: y5 + sy };
+ }
+ function buildLayerMatrix(g2) {
+ var layering = map_default(range_default(maxRank(g2) + 1), function() {
+ return [];
});
- };
- const getTooltip = function(id2) {
- return classes$1[id2].tooltip;
- };
- const setLink = function(ids, linkStr, target) {
- const config2 = getConfig$1();
- ids.split(",").forEach(function(_id) {
- let id2 = _id;
- if (_id[0].match(/\d/)) {
- id2 = MERMAID_DOM_ID_PREFIX + id2;
- }
- if (classes$1[id2] !== void 0) {
- classes$1[id2].link = utils.formatUrl(linkStr, config2);
- if (config2.securityLevel === "sandbox") {
- classes$1[id2].linkTarget = "_top";
- } else if (typeof target === "string") {
- classes$1[id2].linkTarget = sanitizeText$2(target);
- } else {
- classes$1[id2].linkTarget = "_blank";
- }
+ forEach_default(g2.nodes(), function(v3) {
+ var node2 = g2.node(v3);
+ var rank2 = node2.rank;
+ if (!isUndefined_default(rank2)) {
+ layering[rank2][node2.order] = v3;
}
});
- setCssClass$1(ids, "clickable");
- };
- const setClickEvent = function(ids, functionName, functionArgs) {
- ids.split(",").forEach(function(id2) {
- setClickFunc(id2, functionName, functionArgs);
- classes$1[id2].haveCallback = true;
+ return layering;
+ }
+ function normalizeRanks(g2) {
+ var min9 = min_default(
+ map_default(g2.nodes(), function(v3) {
+ return g2.node(v3).rank;
+ })
+ );
+ forEach_default(g2.nodes(), function(v3) {
+ var node2 = g2.node(v3);
+ if (has_default(node2, "rank")) {
+ node2.rank -= min9;
+ }
});
- setCssClass$1(ids, "clickable");
- };
- const setClickFunc = function(domId, functionName, functionArgs) {
- const config2 = getConfig$1();
- if (config2.securityLevel !== "loose") {
- return;
+ }
+ function removeEmptyRanks(g2) {
+ var offset = min_default(
+ map_default(g2.nodes(), function(v3) {
+ return g2.node(v3).rank;
+ })
+ );
+ var layers = [];
+ forEach_default(g2.nodes(), function(v3) {
+ var rank2 = g2.node(v3).rank - offset;
+ if (!layers[rank2]) {
+ layers[rank2] = [];
+ }
+ layers[rank2].push(v3);
+ });
+ var delta = 0;
+ var nodeRankFactor = g2.graph().nodeRankFactor;
+ forEach_default(layers, function(vs, i2) {
+ if (isUndefined_default(vs) && i2 % nodeRankFactor !== 0) {
+ --delta;
+ } else if (delta) {
+ forEach_default(vs, function(v3) {
+ g2.node(v3).rank += delta;
+ });
+ }
+ });
+ }
+ function addBorderNode(g2, prefix, rank2, order2) {
+ var node2 = {
+ width: 0,
+ height: 0
+ };
+ if (arguments.length >= 4) {
+ node2.rank = rank2;
+ node2.order = order2;
}
- if (functionName === void 0) {
- return;
+ return addDummyNode(g2, "border", node2, prefix);
+ }
+ function maxRank(g2) {
+ return max_default(
+ map_default(g2.nodes(), function(v3) {
+ var rank2 = g2.node(v3).rank;
+ if (!isUndefined_default(rank2)) {
+ return rank2;
+ }
+ })
+ );
+ }
+ function partition(collection4, fn3) {
+ var result = { lhs: [], rhs: [] };
+ forEach_default(collection4, function(value2) {
+ if (fn3(value2)) {
+ result.lhs.push(value2);
+ } else {
+ result.rhs.push(value2);
+ }
+ });
+ return result;
+ }
+ function time2(name, fn3) {
+ var start3 = now_default();
+ try {
+ return fn3();
+ } finally {
+ console.log(name + " time: " + (now_default() - start3) + "ms");
+ }
+ }
+ function notime(name, fn3) {
+ return fn3();
+ }
+ var init_util3 = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/util.js"() {
+ "use strict";
+ init_lodash();
+ init_graphlib();
+ __name(addDummyNode, "addDummyNode");
+ __name(simplify, "simplify");
+ __name(asNonCompoundGraph, "asNonCompoundGraph");
+ __name(intersectRect3, "intersectRect");
+ __name(buildLayerMatrix, "buildLayerMatrix");
+ __name(normalizeRanks, "normalizeRanks");
+ __name(removeEmptyRanks, "removeEmptyRanks");
+ __name(addBorderNode, "addBorderNode");
+ __name(maxRank, "maxRank");
+ __name(partition, "partition");
+ __name(time2, "time");
+ __name(notime, "notime");
}
- const id2 = domId;
- if (classes$1[id2] !== void 0) {
- const elemId = lookUpDomId(id2);
- let argList = [];
- if (typeof functionArgs === "string") {
- argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
- for (let i2 = 0; i2 < argList.length; i2++) {
- let item = argList[i2].trim();
- if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
- item = item.substr(1, item.length - 2);
- }
- argList[i2] = item;
- }
- }
- if (argList.length === 0) {
- argList.push(elemId);
- }
- functions.push(function() {
- const elem = document.querySelector(`[id="${elemId}"]`);
- if (elem !== null) {
- elem.addEventListener(
- "click",
- function() {
- utils.runFunc(functionName, ...argList);
- },
- false
- );
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/add-border-segments.js
+ function addBorderSegments(g2) {
+ function dfs3(v3) {
+ var children2 = g2.children(v3);
+ var node2 = g2.node(v3);
+ if (children2.length) {
+ forEach_default(children2, dfs3);
+ }
+ if (has_default(node2, "minRank")) {
+ node2.borderLeft = [];
+ node2.borderRight = [];
+ for (var rank2 = node2.minRank, maxRank2 = node2.maxRank + 1; rank2 < maxRank2; ++rank2) {
+ addBorderNode2(g2, "borderLeft", "_bl", v3, node2, rank2);
+ addBorderNode2(g2, "borderRight", "_br", v3, node2, rank2);
}
- });
+ }
}
- };
- const bindFunctions = function(element) {
- functions.forEach(function(fun) {
- fun(element);
+ __name(dfs3, "dfs");
+ forEach_default(g2.children(), dfs3);
+ }
+ function addBorderNode2(g2, prop, prefix, sg, sgNode, rank2) {
+ var label = { width: 0, height: 0, rank: rank2, borderType: prop };
+ var prev2 = sgNode[prop][rank2 - 1];
+ var curr = addDummyNode(g2, "border", label, prefix);
+ sgNode[prop][rank2] = curr;
+ g2.setParent(curr, sg);
+ if (prev2) {
+ g2.setEdge(prev2, curr, { weight: 1 });
+ }
+ }
+ var init_add_border_segments = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/add-border-segments.js"() {
+ "use strict";
+ init_lodash();
+ init_util3();
+ __name(addBorderSegments, "addBorderSegments");
+ __name(addBorderNode2, "addBorderNode");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/coordinate-system.js
+ function adjust2(g2) {
+ var rankDir = g2.graph().rankdir.toLowerCase();
+ if (rankDir === "lr" || rankDir === "rl") {
+ swapWidthHeight(g2);
+ }
+ }
+ function undo2(g2) {
+ var rankDir = g2.graph().rankdir.toLowerCase();
+ if (rankDir === "bt" || rankDir === "rl") {
+ reverseY(g2);
+ }
+ if (rankDir === "lr" || rankDir === "rl") {
+ swapXY(g2);
+ swapWidthHeight(g2);
+ }
+ }
+ function swapWidthHeight(g2) {
+ forEach_default(g2.nodes(), function(v3) {
+ swapWidthHeightOne(g2.node(v3));
});
- };
- const lineType$1 = {
- LINE: 0,
- DOTTED_LINE: 1
- };
- const relationType$1 = {
- AGGREGATION: 0,
- EXTENSION: 1,
- COMPOSITION: 2,
- DEPENDENCY: 3,
- LOLLIPOP: 4
- };
- const setupToolTips = function(element) {
- let tooltipElem = select(".mermaidTooltip");
- if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
- tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
- }
- const svg2 = select(element).select("svg");
- const nodes2 = svg2.selectAll("g.node");
- nodes2.on("mouseover", function() {
- const el = select(this);
- const title2 = el.attr("title");
- if (title2 === null) {
- return;
+ forEach_default(g2.edges(), function(e3) {
+ swapWidthHeightOne(g2.edge(e3));
+ });
+ }
+ function swapWidthHeightOne(attrs) {
+ var w3 = attrs.width;
+ attrs.width = attrs.height;
+ attrs.height = w3;
+ }
+ function reverseY(g2) {
+ forEach_default(g2.nodes(), function(v3) {
+ reverseYOne(g2.node(v3));
+ });
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ forEach_default(edge.points, reverseYOne);
+ if (has_default(edge, "y")) {
+ reverseYOne(edge);
}
- const rect2 = this.getBoundingClientRect();
- tooltipElem.transition().duration(200).style("opacity", ".9");
- tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect2.left + (rect2.right - rect2.left) / 2 + "px").style("top", window.scrollY + rect2.top - 14 + document.body.scrollTop + "px");
- tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
- el.classed("hover", true);
- }).on("mouseout", function() {
- tooltipElem.transition().duration(500).style("opacity", 0);
- const el = select(this);
- el.classed("hover", false);
});
- };
- functions.push(setupToolTips);
- let direction$1 = "TB";
- const getDirection$1 = () => direction$1;
- const setDirection$1 = (dir) => {
- direction$1 = dir;
- };
- const db$3 = {
- parseDirective: parseDirective$3,
- setAccTitle,
- getAccTitle,
- getAccDescription,
- setAccDescription,
- getConfig: () => getConfig$1().class,
- addClass,
- bindFunctions,
- clear: clear$4,
- getClass,
- getClasses: getClasses$3,
- getNotes,
- addAnnotation,
- addNote,
- getRelations: getRelations$1,
- addRelation: addRelation$1,
- getDirection: getDirection$1,
- setDirection: setDirection$1,
- addMember,
- addMembers,
- cleanupLabel: cleanupLabel$1,
- lineType: lineType$1,
- relationType: relationType$1,
- setClickEvent,
- setCssClass: setCssClass$1,
- setLink,
- getTooltip,
- setTooltip,
- lookUpDomId,
- setDiagramTitle,
- getDiagramTitle,
- setClassLabel
- };
- const getStyles$5 = (options2) => `g.classGroup text {
- fill: ${options2.nodeBorder};
- fill: ${options2.classText};
- stroke: none;
- font-family: ${options2.fontFamily};
- font-size: 10px;
-
- .title {
- font-weight: bolder;
}
-
-}
-
-.nodeLabel, .edgeLabel {
- color: ${options2.classText};
-}
-.edgeLabel .label rect {
- fill: ${options2.mainBkg};
-}
-.label text {
- fill: ${options2.classText};
-}
-.edgeLabel .label span {
- background: ${options2.mainBkg};
-}
-
-.classTitle {
- font-weight: bolder;
-}
-.node rect,
- .node circle,
- .node ellipse,
- .node polygon,
- .node path {
- fill: ${options2.mainBkg};
- stroke: ${options2.nodeBorder};
- stroke-width: 1px;
+ function reverseYOne(attrs) {
+ attrs.y = -attrs.y;
}
+ function swapXY(g2) {
+ forEach_default(g2.nodes(), function(v3) {
+ swapXYOne(g2.node(v3));
+ });
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ forEach_default(edge.points, swapXYOne);
+ if (has_default(edge, "x")) {
+ swapXYOne(edge);
+ }
+ });
+ }
+ function swapXYOne(attrs) {
+ var x5 = attrs.x;
+ attrs.x = attrs.y;
+ attrs.y = x5;
+ }
+ var init_coordinate_system = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/coordinate-system.js"() {
+ "use strict";
+ init_lodash();
+ __name(adjust2, "adjust");
+ __name(undo2, "undo");
+ __name(swapWidthHeight, "swapWidthHeight");
+ __name(swapWidthHeightOne, "swapWidthHeightOne");
+ __name(reverseY, "reverseY");
+ __name(reverseYOne, "reverseYOne");
+ __name(swapXY, "swapXY");
+ __name(swapXYOne, "swapXYOne");
+ }
+ });
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/normalize.js
+ function run2(g2) {
+ g2.graph().dummyChains = [];
+ forEach_default(g2.edges(), function(edge) {
+ normalizeEdge(g2, edge);
+ });
+ }
+ function normalizeEdge(g2, e3) {
+ var v3 = e3.v;
+ var vRank = g2.node(v3).rank;
+ var w3 = e3.w;
+ var wRank = g2.node(w3).rank;
+ var name = e3.name;
+ var edgeLabel = g2.edge(e3);
+ var labelRank = edgeLabel.labelRank;
+ if (wRank === vRank + 1) return;
+ g2.removeEdge(e3);
+ var dummy, attrs, i2;
+ for (i2 = 0, ++vRank; vRank < wRank; ++i2, ++vRank) {
+ edgeLabel.points = [];
+ attrs = {
+ width: 0,
+ height: 0,
+ edgeLabel,
+ edgeObj: e3,
+ rank: vRank
+ };
+ dummy = addDummyNode(g2, "edge", attrs, "_d");
+ if (vRank === labelRank) {
+ attrs.width = edgeLabel.width;
+ attrs.height = edgeLabel.height;
+ attrs.dummy = "edge-label";
+ attrs.labelpos = edgeLabel.labelpos;
+ }
+ g2.setEdge(v3, dummy, { weight: edgeLabel.weight }, name);
+ if (i2 === 0) {
+ g2.graph().dummyChains.push(dummy);
+ }
+ v3 = dummy;
+ }
+ g2.setEdge(v3, w3, { weight: edgeLabel.weight }, name);
+ }
+ function undo3(g2) {
+ forEach_default(g2.graph().dummyChains, function(v3) {
+ var node2 = g2.node(v3);
+ var origLabel = node2.edgeLabel;
+ var w3;
+ g2.setEdge(node2.edgeObj, origLabel);
+ while (node2.dummy) {
+ w3 = g2.successors(v3)[0];
+ g2.removeNode(v3);
+ origLabel.points.push({ x: node2.x, y: node2.y });
+ if (node2.dummy === "edge-label") {
+ origLabel.x = node2.x;
+ origLabel.y = node2.y;
+ origLabel.width = node2.width;
+ origLabel.height = node2.height;
+ }
+ v3 = w3;
+ node2 = g2.node(v3);
+ }
+ });
+ }
+ var init_normalize = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/normalize.js"() {
+ "use strict";
+ init_lodash();
+ init_util3();
+ __name(run2, "run");
+ __name(normalizeEdge, "normalizeEdge");
+ __name(undo3, "undo");
+ }
+ });
-.divider {
- stroke: ${options2.nodeBorder};
- stroke-width: 1;
-}
-
-g.clickable {
- cursor: pointer;
-}
-
-g.classGroup rect {
- fill: ${options2.mainBkg};
- stroke: ${options2.nodeBorder};
-}
-
-g.classGroup line {
- stroke: ${options2.nodeBorder};
- stroke-width: 1;
-}
-
-.classLabel .box {
- stroke: none;
- stroke-width: 0;
- fill: ${options2.mainBkg};
- opacity: 0.5;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/util.js
+ function longestPath(g2) {
+ var visited = {};
+ function dfs3(v3) {
+ var label = g2.node(v3);
+ if (has_default(visited, v3)) {
+ return label.rank;
+ }
+ visited[v3] = true;
+ var rank2 = min_default(
+ map_default(g2.outEdges(v3), function(e3) {
+ return dfs3(e3.w) - g2.edge(e3).minlen;
+ })
+ );
+ if (rank2 === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
+ rank2 === void 0 || // return value of _.map([]) for Lodash 4
+ rank2 === null) {
+ rank2 = 0;
+ }
+ return label.rank = rank2;
+ }
+ __name(dfs3, "dfs");
+ forEach_default(g2.sources(), dfs3);
+ }
+ function slack(g2, e3) {
+ return g2.node(e3.w).rank - g2.node(e3.v).rank - g2.edge(e3).minlen;
+ }
+ var init_util4 = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/util.js"() {
+ "use strict";
+ init_lodash();
+ __name(longestPath, "longestPath");
+ __name(slack, "slack");
+ }
+ });
-.classLabel .label {
- fill: ${options2.nodeBorder};
- font-size: 10px;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js
+ function feasibleTree(g2) {
+ var t4 = new Graph({ directed: false });
+ var start3 = g2.nodes()[0];
+ var size5 = g2.nodeCount();
+ t4.setNode(start3, {});
+ var edge, delta;
+ while (tightTree(t4, g2) < size5) {
+ edge = findMinSlackEdge(t4, g2);
+ delta = t4.hasNode(edge.v) ? slack(g2, edge) : -slack(g2, edge);
+ shiftRanks(t4, g2, delta);
+ }
+ return t4;
+ }
+ function tightTree(t4, g2) {
+ function dfs3(v3) {
+ forEach_default(g2.nodeEdges(v3), function(e3) {
+ var edgeV = e3.v, w3 = v3 === edgeV ? e3.w : edgeV;
+ if (!t4.hasNode(w3) && !slack(g2, e3)) {
+ t4.setNode(w3, {});
+ t4.setEdge(v3, w3, {});
+ dfs3(w3);
+ }
+ });
+ }
+ __name(dfs3, "dfs");
+ forEach_default(t4.nodes(), dfs3);
+ return t4.nodeCount();
+ }
+ function findMinSlackEdge(t4, g2) {
+ return minBy_default(g2.edges(), function(e3) {
+ if (t4.hasNode(e3.v) !== t4.hasNode(e3.w)) {
+ return slack(g2, e3);
+ }
+ });
+ }
+ function shiftRanks(t4, g2, delta) {
+ forEach_default(t4.nodes(), function(v3) {
+ g2.node(v3).rank += delta;
+ });
+ }
+ var init_feasible_tree = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js"() {
+ "use strict";
+ init_lodash();
+ init_graphlib();
+ init_util4();
+ __name(feasibleTree, "feasibleTree");
+ __name(tightTree, "tightTree");
+ __name(findMinSlackEdge, "findMinSlackEdge");
+ __name(shiftRanks, "shiftRanks");
+ }
+ });
-.relation {
- stroke: ${options2.lineColor};
- stroke-width: 1;
- fill: none;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/components.js
+ var init_components = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/components.js"() {
+ "use strict";
+ }
+ });
-.dashed-line{
- stroke-dasharray: 3;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/data/priority-queue.js
+ var init_priority_queue = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/data/priority-queue.js"() {
+ "use strict";
+ }
+ });
-.dotted-line{
- stroke-dasharray: 1 2;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/dijkstra.js
+ var DEFAULT_WEIGHT_FUNC;
+ var init_dijkstra = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/dijkstra.js"() {
+ "use strict";
+ init_lodash();
+ init_priority_queue();
+ DEFAULT_WEIGHT_FUNC = constant_default6(1);
+ }
+ });
-#compositionStart, .composition {
- fill: ${options2.lineColor} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/dijkstra-all.js
+ var init_dijkstra_all = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/dijkstra-all.js"() {
+ "use strict";
+ init_dijkstra();
+ }
+ });
-#compositionEnd, .composition {
- fill: ${options2.lineColor} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/tarjan.js
+ var init_tarjan = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/tarjan.js"() {
+ "use strict";
+ }
+ });
-#dependencyStart, .dependency {
- fill: ${options2.lineColor} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/find-cycles.js
+ var init_find_cycles = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/find-cycles.js"() {
+ "use strict";
+ init_tarjan();
+ }
+ });
-#dependencyStart, .dependency {
- fill: ${options2.lineColor} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/floyd-warshall.js
+ var DEFAULT_WEIGHT_FUNC2;
+ var init_floyd_warshall = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/floyd-warshall.js"() {
+ "use strict";
+ init_lodash();
+ DEFAULT_WEIGHT_FUNC2 = constant_default6(1);
+ }
+ });
-#extensionStart, .extension {
- fill: ${options2.mainBkg} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/topsort.js
+ function topsort(g2) {
+ var visited = {};
+ var stack = {};
+ var results = [];
+ function visit(node2) {
+ if (has_default(stack, node2)) {
+ throw new CycleException();
+ }
+ if (!has_default(visited, node2)) {
+ stack[node2] = true;
+ visited[node2] = true;
+ forEach_default(g2.predecessors(node2), visit);
+ delete stack[node2];
+ results.push(node2);
+ }
+ }
+ __name(visit, "visit");
+ forEach_default(g2.sinks(), visit);
+ if (size_default2(visited) !== g2.nodeCount()) {
+ throw new CycleException();
+ }
+ return results;
+ }
+ function CycleException() {
+ }
+ var init_topsort = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/topsort.js"() {
+ "use strict";
+ init_lodash();
+ topsort.CycleException = CycleException;
+ __name(topsort, "topsort");
+ __name(CycleException, "CycleException");
+ CycleException.prototype = new Error();
+ }
+ });
-#extensionEnd, .extension {
- fill: ${options2.mainBkg} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/is-acyclic.js
+ var init_is_acyclic = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/is-acyclic.js"() {
+ "use strict";
+ init_topsort();
+ }
+ });
-#aggregationStart, .aggregation {
- fill: ${options2.mainBkg} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/dfs.js
+ function dfs(g2, vs, order2) {
+ if (!isArray_default(vs)) {
+ vs = [vs];
+ }
+ var navigation = (g2.isDirected() ? g2.successors : g2.neighbors).bind(g2);
+ var acc = [];
+ var visited = {};
+ forEach_default(vs, function(v3) {
+ if (!g2.hasNode(v3)) {
+ throw new Error("Graph does not have node: " + v3);
+ }
+ doDfs(g2, v3, order2 === "post", visited, navigation, acc);
+ });
+ return acc;
+ }
+ function doDfs(g2, v3, postorder3, visited, navigation, acc) {
+ if (!has_default(visited, v3)) {
+ visited[v3] = true;
+ if (!postorder3) {
+ acc.push(v3);
+ }
+ forEach_default(navigation(v3), function(w3) {
+ doDfs(g2, w3, postorder3, visited, navigation, acc);
+ });
+ if (postorder3) {
+ acc.push(v3);
+ }
+ }
+ }
+ var init_dfs = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/dfs.js"() {
+ "use strict";
+ init_lodash();
+ __name(dfs, "dfs");
+ __name(doDfs, "doDfs");
+ }
+ });
-#aggregationEnd, .aggregation {
- fill: ${options2.mainBkg} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/postorder.js
+ function postorder(g2, vs) {
+ return dfs(g2, vs, "post");
+ }
+ var init_postorder = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/postorder.js"() {
+ "use strict";
+ init_dfs();
+ __name(postorder, "postorder");
+ }
+ });
-#lollipopStart, .lollipop {
- fill: ${options2.mainBkg} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/preorder.js
+ function preorder(g2, vs) {
+ return dfs(g2, vs, "pre");
+ }
+ var init_preorder = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/preorder.js"() {
+ "use strict";
+ init_dfs();
+ __name(preorder, "preorder");
+ }
+ });
-#lollipopEnd, .lollipop {
- fill: ${options2.mainBkg} !important;
- stroke: ${options2.lineColor} !important;
- stroke-width: 1;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/prim.js
+ var init_prim = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/prim.js"() {
+ "use strict";
+ init_priority_queue();
+ init_graph();
+ }
+ });
-.edgeTerminals {
- font-size: 11px;
-}
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/index.js
+ var init_alg = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/alg/index.js"() {
+ "use strict";
+ init_components();
+ init_dijkstra();
+ init_dijkstra_all();
+ init_find_cycles();
+ init_floyd_warshall();
+ init_is_acyclic();
+ init_postorder();
+ init_preorder();
+ init_prim();
+ init_tarjan();
+ init_topsort();
+ }
+ });
-.classTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${options2.textColor};
-}
-`;
- const styles$4 = getStyles$5;
- let idCache$2 = {};
- const padding = 20;
- const getGraphId = function(label) {
- const foundEntry = Object.entries(idCache$2).find((entry) => entry[1].label === label);
- if (foundEntry) {
- return foundEntry[0];
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js
+ function networkSimplex(g2) {
+ g2 = simplify(g2);
+ longestPath(g2);
+ var t4 = feasibleTree(g2);
+ initLowLimValues(t4);
+ initCutValues(t4, g2);
+ var e3, f3;
+ while (e3 = leaveEdge(t4)) {
+ f3 = enterEdge(t4, g2, e3);
+ exchangeEdges(t4, g2, e3, f3);
}
- };
- const insertMarkers$1 = function(elem) {
- elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
- elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
- elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
- elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
- };
- const draw$7 = function(text2, id2, _version, diagObj) {
- const conf2 = getConfig$1().class;
- idCache$2 = {};
- log$1.info("Rendering diagram " + text2);
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const diagram2 = root2.select(`[id='${id2}']`);
- insertMarkers$1(diagram2);
- const g = new Graph({
- multigraph: true
- });
- g.setGraph({
- isMultiGraph: true
- });
- g.setDefaultEdgeLabel(function() {
- return {};
- });
- const classes2 = diagObj.db.getClasses();
- const keys2 = Object.keys(classes2);
- for (const key of keys2) {
- const classDef = classes2[key];
- const node2 = svgDraw$4.drawClass(diagram2, classDef, conf2, diagObj);
- idCache$2[node2.id] = node2;
- g.setNode(node2.id, node2);
- log$1.info("Org height: " + node2.height);
- }
- const relations2 = diagObj.db.getRelations();
- relations2.forEach(function(relation) {
- log$1.info(
- "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
- );
- g.setEdge(
- getGraphId(relation.id1),
- getGraphId(relation.id2),
- {
- relation
- },
- relation.title || "DEFAULT"
- );
+ }
+ function initCutValues(t4, g2) {
+ var vs = postorder(t4, t4.nodes());
+ vs = vs.slice(0, vs.length - 1);
+ forEach_default(vs, function(v3) {
+ assignCutValue(t4, g2, v3);
});
- const notes2 = diagObj.db.getNotes();
- notes2.forEach(function(note2) {
- log$1.debug(`Adding note: ${JSON.stringify(note2)}`);
- const node2 = svgDraw$4.drawNote(diagram2, note2, conf2, diagObj);
- idCache$2[node2.id] = node2;
- g.setNode(node2.id, node2);
- if (note2.class && note2.class in classes2) {
- g.setEdge(
- note2.id,
- getGraphId(note2.class),
- {
- relation: {
- id1: note2.id,
- id2: note2.class,
- relation: {
- type1: "none",
- type2: "none",
- lineType: 10
- }
- }
- },
- "DEFAULT"
- );
+ }
+ function assignCutValue(t4, g2, child) {
+ var childLab = t4.node(child);
+ var parent4 = childLab.parent;
+ t4.edge(child, parent4).cutvalue = calcCutValue(t4, g2, child);
+ }
+ function calcCutValue(t4, g2, child) {
+ var childLab = t4.node(child);
+ var parent4 = childLab.parent;
+ var childIsTail = true;
+ var graphEdge = g2.edge(child, parent4);
+ var cutValue = 0;
+ if (!graphEdge) {
+ childIsTail = false;
+ graphEdge = g2.edge(parent4, child);
+ }
+ cutValue = graphEdge.weight;
+ forEach_default(g2.nodeEdges(child), function(e3) {
+ var isOutEdge = e3.v === child, other = isOutEdge ? e3.w : e3.v;
+ if (other !== parent4) {
+ var pointsToHead = isOutEdge === childIsTail, otherWeight = g2.edge(e3).weight;
+ cutValue += pointsToHead ? otherWeight : -otherWeight;
+ if (isTreeEdge(t4, child, other)) {
+ var otherCutValue = t4.edge(child, other).cutvalue;
+ cutValue += pointsToHead ? -otherCutValue : otherCutValue;
+ }
}
});
- layout(g);
- g.nodes().forEach(function(v) {
- if (v !== void 0 && g.node(v) !== void 0) {
- log$1.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
- root2.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
- "transform",
- "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
- );
+ return cutValue;
+ }
+ function initLowLimValues(tree, root4) {
+ if (arguments.length < 2) {
+ root4 = tree.nodes()[0];
+ }
+ dfsAssignLowLim(tree, {}, 1, root4);
+ }
+ function dfsAssignLowLim(tree, visited, nextLim, v3, parent4) {
+ var low = nextLim;
+ var label = tree.node(v3);
+ visited[v3] = true;
+ forEach_default(tree.neighbors(v3), function(w3) {
+ if (!has_default(visited, w3)) {
+ nextLim = dfsAssignLowLim(tree, visited, nextLim, w3, v3);
}
});
- g.edges().forEach(function(e) {
- if (e !== void 0 && g.edge(e) !== void 0) {
- log$1.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
- svgDraw$4.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf2, diagObj);
- }
+ label.low = low;
+ label.lim = nextLim++;
+ if (parent4) {
+ label.parent = parent4;
+ } else {
+ delete label.parent;
+ }
+ return nextLim;
+ }
+ function leaveEdge(tree) {
+ return find_default(tree.edges(), function(e3) {
+ return tree.edge(e3).cutvalue < 0;
});
- const svgBounds = diagram2.node().getBBox();
- const width2 = svgBounds.width + padding * 2;
- const height2 = svgBounds.height + padding * 2;
- configureSvgSize(diagram2, height2, width2, conf2.useMaxWidth);
- const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width2} ${height2}`;
- log$1.debug(`viewBox ${vBox}`);
- diagram2.attr("viewBox", vBox);
- };
- const renderer$6 = {
- draw: draw$7
- };
- const diagram$7 = {
- parser: parser$8,
- db: db$3,
- renderer: renderer$6,
- styles: styles$4,
- init: (cnf) => {
- if (!cnf.class) {
- cnf.class = {};
- }
- cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
- db$3.clear();
+ }
+ function enterEdge(t4, g2, edge) {
+ var v3 = edge.v;
+ var w3 = edge.w;
+ if (!g2.hasEdge(v3, w3)) {
+ v3 = edge.w;
+ w3 = edge.v;
}
- };
- const classDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$7
- }, Symbol.toStringTag, { value: "Module" }));
- const sanitizeText$1 = (txt) => common$1.sanitizeText(txt, getConfig$1());
- let conf$3 = {
- dividerMargin: 10,
- padding: 5,
- textHeight: 10,
- curve: void 0
- };
- const addClasses = function(classes2, g, _id, diagObj) {
- const keys2 = Object.keys(classes2);
- log$1.info("keys:", keys2);
- log$1.info(classes2);
- keys2.forEach(function(id2) {
- var _a, _b;
- const vertex = classes2[id2];
- let cssClassStr = "";
- if (vertex.cssClasses.length > 0) {
- cssClassStr = cssClassStr + " " + vertex.cssClasses.join(" ");
- }
- const styles2 = { labelStyle: "", style: "" };
- const vertexText = vertex.label ?? vertex.id;
- const radius = 0;
- const shape = "class_box";
- const node2 = {
- labelStyle: styles2.labelStyle,
- shape,
- labelText: sanitizeText$1(vertexText),
- classData: vertex,
- rx: radius,
- ry: radius,
- class: cssClassStr,
- style: styles2.style,
- id: vertex.id,
- domId: vertex.domId,
- tooltip: diagObj.db.getTooltip(vertex.id) || "",
- haveCallback: vertex.haveCallback,
- link: vertex.link,
- width: vertex.type === "group" ? 500 : void 0,
- type: vertex.type,
- // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
- padding: ((_a = getConfig$1().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig$1().class) == null ? void 0 : _b.padding)
- };
- g.setNode(vertex.id, node2);
- log$1.info("setNode", node2);
+ var vLabel = t4.node(v3);
+ var wLabel = t4.node(w3);
+ var tailLabel = vLabel;
+ var flip = false;
+ if (vLabel.lim > wLabel.lim) {
+ tailLabel = wLabel;
+ flip = true;
+ }
+ var candidates = filter_default3(g2.edges(), function(edge2) {
+ return flip === isDescendant(t4, t4.node(edge2.v), tailLabel) && flip !== isDescendant(t4, t4.node(edge2.w), tailLabel);
});
- };
- const addNotes = function(notes2, g, startEdgeId, classes2) {
- log$1.info(notes2);
- notes2.forEach(function(note2, i2) {
- var _a, _b;
- const vertex = note2;
- const cssNoteStr = "";
- const styles2 = { labelStyle: "", style: "" };
- const vertexText = vertex.text;
- const radius = 0;
- const shape = "note";
- const node2 = {
- labelStyle: styles2.labelStyle,
- shape,
- labelText: sanitizeText$1(vertexText),
- noteData: vertex,
- rx: radius,
- ry: radius,
- class: cssNoteStr,
- style: styles2.style,
- id: vertex.id,
- domId: vertex.id,
- tooltip: "",
- type: "note",
- // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
- padding: ((_a = getConfig$1().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig$1().class) == null ? void 0 : _b.padding)
- };
- g.setNode(vertex.id, node2);
- log$1.info("setNode", node2);
- if (!vertex.class || !(vertex.class in classes2)) {
- return;
- }
- const edgeId = startEdgeId + i2;
- const edgeData = {
- id: `edgeNote${edgeId}`,
- //Set relationship style and line type
- classes: "relation",
- pattern: "dotted",
- // Set link type for rendering
- arrowhead: "none",
- //Set edge extra labels
- startLabelRight: "",
- endLabelLeft: "",
- //Set relation arrow types
- arrowTypeStart: "none",
- arrowTypeEnd: "none",
- style: "fill:none",
- labelStyle: "",
- curve: interpolateToCurve(conf$3.curve, curveLinear)
- };
- g.setEdge(vertex.id, vertex.class, edgeData, edgeId);
+ return minBy_default(candidates, function(edge2) {
+ return slack(g2, edge2);
});
- };
- const addRelations = function(relations2, g) {
- const conf2 = getConfig$1().flowchart;
- let cnt2 = 0;
- relations2.forEach(function(edge) {
- var _a;
- cnt2++;
- const edgeData = {
- //Set relationship style and line type
- classes: "relation",
- pattern: edge.relation.lineType == 1 ? "dashed" : "solid",
- id: "id" + cnt2,
- // Set link type for rendering
- arrowhead: edge.type === "arrow_open" ? "none" : "normal",
- //Set edge extra labels
- startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1,
- endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2,
- //Set relation arrow types
- arrowTypeStart: getArrowMarker(edge.relation.type1),
- arrowTypeEnd: getArrowMarker(edge.relation.type2),
- style: "fill:none",
- labelStyle: "",
- curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear)
- };
- log$1.info(edgeData, edge);
- if (edge.style !== void 0) {
- const styles2 = getStylesFromArray(edge.style);
- edgeData.style = styles2.style;
- edgeData.labelStyle = styles2.labelStyle;
- }
- edge.text = edge.title;
- if (edge.text === void 0) {
- if (edge.style !== void 0) {
- edgeData.arrowheadStyle = "fill: #333";
- }
- } else {
- edgeData.arrowheadStyle = "fill: #333";
- edgeData.labelpos = "c";
- if (((_a = getConfig$1().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig$1().htmlLabels) {
- edgeData.labelType = "html";
- edgeData.label = '' + edge.text + "";
- } else {
- edgeData.labelType = "text";
- edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
- if (edge.style === void 0) {
- edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
- }
- edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
- }
- }
- g.setEdge(edge.id1, edge.id2, edgeData, cnt2);
+ }
+ function exchangeEdges(t4, g2, e3, f3) {
+ var v3 = e3.v;
+ var w3 = e3.w;
+ t4.removeEdge(v3, w3);
+ t4.setEdge(f3.v, f3.w, {});
+ initLowLimValues(t4);
+ initCutValues(t4, g2);
+ updateRanks(t4, g2);
+ }
+ function updateRanks(t4, g2) {
+ var root4 = find_default(t4.nodes(), function(v3) {
+ return !g2.node(v3).parent;
});
- };
- const setConf$3 = function(cnf) {
- conf$3 = {
- ...conf$3,
- ...cnf
- };
- };
- const draw$6 = async function(text2, id2, _version, diagObj) {
- log$1.info("Drawing class - ", id2);
- const conf2 = getConfig$1().flowchart ?? getConfig$1().class;
- const securityLevel = getConfig$1().securityLevel;
- log$1.info("config:", conf2);
- const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50;
- const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50;
- const g = new Graph({
- multigraph: true,
- compound: true
- }).setGraph({
- rankdir: diagObj.db.getDirection(),
- nodesep: nodeSpacing,
- ranksep: rankSpacing,
- marginx: 8,
- marginy: 8
- }).setDefaultEdgeLabel(function() {
- return {};
+ var vs = preorder(t4, root4);
+ vs = vs.slice(1);
+ forEach_default(vs, function(v3) {
+ var parent4 = t4.node(v3).parent, edge = g2.edge(v3, parent4), flipped = false;
+ if (!edge) {
+ edge = g2.edge(parent4, v3);
+ flipped = true;
+ }
+ g2.node(v3).rank = g2.node(parent4).rank + (flipped ? edge.minlen : -edge.minlen);
});
- const classes2 = diagObj.db.getClasses();
- const relations2 = diagObj.db.getRelations();
- const notes2 = diagObj.db.getNotes();
- log$1.info(relations2);
- addClasses(classes2, g, id2, diagObj);
- addRelations(relations2, g);
- addNotes(notes2, g, relations2.length + 1, classes2);
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? (
- // @ts-ignore Ignore type error for now
- select(sandboxElement.nodes()[0].contentDocument.body)
- ) : select("body");
- const svg2 = root2.select(`[id="${id2}"]`);
- const element = root2.select("#" + id2 + " g");
- await render(
- element,
- g,
- ["aggregation", "extension", "composition", "dependency", "lollipop"],
- "classDiagram",
- id2
- );
- utils.insertTitle(svg2, "classTitleText", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle());
- setupGraphViewbox$1(g, svg2, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth);
- if (!(conf2 == null ? void 0 : conf2.htmlLabels)) {
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- const labels = doc.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
- for (const label of labels) {
- const dim = label.getBBox();
- const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
- rect2.setAttribute("rx", 0);
- rect2.setAttribute("ry", 0);
- rect2.setAttribute("width", dim.width);
- rect2.setAttribute("height", dim.height);
- label.insertBefore(rect2, label.firstChild);
- }
+ }
+ function isTreeEdge(tree, u2, v3) {
+ return tree.hasEdge(u2, v3);
+ }
+ function isDescendant(tree, vLabel, rootLabel) {
+ return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
+ }
+ var init_network_simplex = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js"() {
+ "use strict";
+ init_lodash();
+ init_alg();
+ init_util3();
+ init_feasible_tree();
+ init_util4();
+ networkSimplex.initLowLimValues = initLowLimValues;
+ networkSimplex.initCutValues = initCutValues;
+ networkSimplex.calcCutValue = calcCutValue;
+ networkSimplex.leaveEdge = leaveEdge;
+ networkSimplex.enterEdge = enterEdge;
+ networkSimplex.exchangeEdges = exchangeEdges;
+ __name(networkSimplex, "networkSimplex");
+ __name(initCutValues, "initCutValues");
+ __name(assignCutValue, "assignCutValue");
+ __name(calcCutValue, "calcCutValue");
+ __name(initLowLimValues, "initLowLimValues");
+ __name(dfsAssignLowLim, "dfsAssignLowLim");
+ __name(leaveEdge, "leaveEdge");
+ __name(enterEdge, "enterEdge");
+ __name(exchangeEdges, "exchangeEdges");
+ __name(updateRanks, "updateRanks");
+ __name(isTreeEdge, "isTreeEdge");
+ __name(isDescendant, "isDescendant");
}
- };
- function getArrowMarker(type2) {
- let marker;
- switch (type2) {
- case 0:
- marker = "aggregation";
- break;
- case 1:
- marker = "extension";
- break;
- case 2:
- marker = "composition";
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/index.js
+ function rank(g2) {
+ switch (g2.graph().ranker) {
+ case "network-simplex":
+ networkSimplexRanker(g2);
break;
- case 3:
- marker = "dependency";
+ case "tight-tree":
+ tightTreeRanker(g2);
break;
- case 4:
- marker = "lollipop";
+ case "longest-path":
+ longestPathRanker(g2);
break;
default:
- marker = "none";
+ networkSimplexRanker(g2);
}
- return marker;
}
- const renderer$5 = {
- setConf: setConf$3,
- draw: draw$6
- };
- const diagram$6 = {
- parser: parser$8,
- db: db$3,
- renderer: renderer$5,
- styles: styles$4,
- init: (cnf) => {
- if (!cnf.class) {
- cnf.class = {};
- }
- cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
- db$3.clear();
+ function tightTreeRanker(g2) {
+ longestPath(g2);
+ feasibleTree(g2);
+ }
+ function networkSimplexRanker(g2) {
+ networkSimplex(g2);
+ }
+ var longestPathRanker;
+ var init_rank = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/rank/index.js"() {
+ "use strict";
+ init_feasible_tree();
+ init_network_simplex();
+ init_util4();
+ __name(rank, "rank");
+ longestPathRanker = longestPath;
+ __name(tightTreeRanker, "tightTreeRanker");
+ __name(networkSimplexRanker, "networkSimplexRanker");
}
- };
- const classDiagramV2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$6
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$5 = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 37], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 32], $Vi = [1, 33], $Vj = [1, 34], $Vk = [1, 35], $Vl = [1, 36], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 38], $Vr = [1, 45], $Vs = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vt = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vu = [1, 4, 5, 7, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vv = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "classDefStatement": 11, "cssClassStatement": 12, "idStatement": 13, "DESCR": 14, "-->": 15, "HIDE_EMPTY": 16, "scale": 17, "WIDTH": 18, "COMPOSIT_STATE": 19, "STRUCT_START": 20, "STRUCT_STOP": 21, "STATE_DESCR": 22, "AS": 23, "ID": 24, "FORK": 25, "JOIN": 26, "CHOICE": 27, "CONCURRENT": 28, "note": 29, "notePosition": 30, "NOTE_TEXT": 31, "direction": 32, "acc_title": 33, "acc_title_value": 34, "acc_descr": 35, "acc_descr_value": 36, "acc_descr_multiline_value": 37, "classDef": 38, "CLASSDEF_ID": 39, "CLASSDEF_STYLEOPTS": 40, "DEFAULT": 41, "class": 42, "CLASSENTITY_IDS": 43, "STYLECLASS": 44, "openDirective": 45, "typeDirective": 46, "closeDirective": 47, ":": 48, "argDirective": 49, "direction_tb": 50, "direction_bt": 51, "direction_rl": 52, "direction_lr": 53, "eol": 54, ";": 55, "EDGE_STATE": 56, "STYLE_SEPARATOR": 57, "left_of": 58, "right_of": 59, "open_directive": 60, "type_directive": 61, "arg_directive": 62, "close_directive": 63, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 4: "SPACE", 5: "NL", 7: "SD", 14: "DESCR", 15: "-->", 16: "HIDE_EMPTY", 17: "scale", 18: "WIDTH", 19: "COMPOSIT_STATE", 20: "STRUCT_START", 21: "STRUCT_STOP", 22: "STATE_DESCR", 23: "AS", 24: "ID", 25: "FORK", 26: "JOIN", 27: "CHOICE", 28: "CONCURRENT", 29: "note", 31: "NOTE_TEXT", 33: "acc_title", 34: "acc_title_value", 35: "acc_descr", 36: "acc_descr_value", 37: "acc_descr_multiline_value", 38: "classDef", 39: "CLASSDEF_ID", 40: "CLASSDEF_STYLEOPTS", 41: "DEFAULT", 42: "class", 43: "CLASSENTITY_IDS", 44: "STYLECLASS", 48: ":", 50: "direction_tb", 51: "direction_bt", 52: "direction_rl", 53: "direction_lr", 55: ";", 56: "EDGE_STATE", 57: "STYLE_SEPARATOR", 58: "left_of", 59: "right_of", 60: "open_directive", 61: "type_directive", 62: "arg_directive", 63: "close_directive" },
- productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 3], [10, 4], [10, 1], [10, 2], [10, 1], [10, 4], [10, 3], [10, 6], [10, 1], [10, 1], [10, 1], [10, 1], [10, 4], [10, 4], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [11, 3], [11, 3], [12, 3], [6, 3], [6, 5], [32, 1], [32, 1], [32, 1], [32, 1], [54, 1], [54, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1], [45, 1], [46, 1], [49, 1], [47, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 4:
- yy.setRootDoc($$[$0]);
- return $$[$0];
- case 5:
- this.$ = [];
- break;
- case 6:
- if ($$[$0] != "nl") {
- $$[$0 - 1].push($$[$0]);
- this.$ = $$[$0 - 1];
- }
- break;
- case 7:
- case 8:
- this.$ = $$[$0];
- break;
- case 9:
- this.$ = "nl";
- break;
- case 12:
- this.$ = $$[$0];
- break;
- case 13:
- const stateStmt = $$[$0 - 1];
- stateStmt.description = yy.trimColon($$[$0]);
- this.$ = stateStmt;
- break;
- case 14:
- this.$ = { stmt: "relation", state1: $$[$0 - 2], state2: $$[$0] };
- break;
- case 15:
- const relDescription = yy.trimColon($$[$0]);
- this.$ = { stmt: "relation", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };
- break;
- case 19:
- this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: "", doc: $$[$0 - 1] };
- break;
- case 20:
- var id2 = $$[$0];
- var description2 = $$[$0 - 2].trim();
- if ($$[$0].match(":")) {
- var parts = $$[$0].split(":");
- id2 = parts[0];
- description2 = [description2, parts[1]];
- }
- this.$ = { stmt: "state", id: id2, type: "default", description: description2 };
- break;
- case 21:
- this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: $$[$0 - 5], doc: $$[$0 - 1] };
- break;
- case 22:
- this.$ = { stmt: "state", id: $$[$0], type: "fork" };
- break;
- case 23:
- this.$ = { stmt: "state", id: $$[$0], type: "join" };
- break;
- case 24:
- this.$ = { stmt: "state", id: $$[$0], type: "choice" };
- break;
- case 25:
- this.$ = { stmt: "state", id: yy.getDividerId(), type: "divider" };
- break;
- case 26:
- this.$ = { stmt: "state", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };
- break;
- case 30:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 31:
- case 32:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 33:
- case 34:
- this.$ = { stmt: "classDef", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };
- break;
- case 35:
- this.$ = { stmt: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };
- break;
- case 38:
- yy.setDirection("TB");
- this.$ = { stmt: "dir", value: "TB" };
- break;
- case 39:
- yy.setDirection("BT");
- this.$ = { stmt: "dir", value: "BT" };
- break;
- case 40:
- yy.setDirection("RL");
- this.$ = { stmt: "dir", value: "RL" };
- break;
- case 41:
- yy.setDirection("LR");
- this.$ = { stmt: "dir", value: "LR" };
- break;
- case 44:
- case 45:
- this.$ = { stmt: "state", id: $$[$0].trim(), type: "default", description: "" };
- break;
- case 46:
- this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
- break;
- case 47:
- this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
- break;
- case 50:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 51:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 52:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 53:
- yy.parseDirective("}%%", "close_directive", "state");
- break;
- }
- },
- table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $V4, { 8: 11 }), { 46: 12, 61: [1, 13] }, { 61: [2, 50] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, { 47: 43, 48: [1, 44], 63: $Vr }, o([48, 63], [2, 51]), o($Vs, [2, 6]), { 6: 30, 10: 46, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 8]), o($Vs, [2, 9]), o($Vs, [2, 10]), o($Vs, [2, 11]), o($Vs, [2, 12], { 14: [1, 47], 15: [1, 48] }), o($Vs, [2, 16]), { 18: [1, 49] }, o($Vs, [2, 18], { 20: [1, 50] }), { 23: [1, 51] }, o($Vs, [2, 22]), o($Vs, [2, 23]), o($Vs, [2, 24]), o($Vs, [2, 25]), { 30: 52, 31: [1, 53], 58: [1, 54], 59: [1, 55] }, o($Vs, [2, 28]), o($Vs, [2, 29]), { 34: [1, 56] }, { 36: [1, 57] }, o($Vs, [2, 32]), { 39: [1, 58], 41: [1, 59] }, { 43: [1, 60] }, o($Vt, [2, 44], { 57: [1, 61] }), o($Vt, [2, 45], { 57: [1, 62] }), o($Vs, [2, 38]), o($Vs, [2, 39]), o($Vs, [2, 40]), o($Vs, [2, 41]), o($Vu, [2, 36]), { 49: 63, 62: [1, 64] }, o($Vu, [2, 53]), o($Vs, [2, 7]), o($Vs, [2, 13]), { 13: 65, 24: $Vb, 56: $Vq }, o($Vs, [2, 17]), o($Vv, $V4, { 8: 66 }), { 24: [1, 67] }, { 24: [1, 68] }, { 23: [1, 69] }, { 24: [2, 48] }, { 24: [2, 49] }, o($Vs, [2, 30]), o($Vs, [2, 31]), { 40: [1, 70] }, { 40: [1, 71] }, { 44: [1, 72] }, { 24: [1, 73] }, { 24: [1, 74] }, { 47: 75, 63: $Vr }, { 63: [2, 52] }, o($Vs, [2, 14], { 14: [1, 76] }), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 77], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 20], { 20: [1, 78] }), { 31: [1, 79] }, { 24: [1, 80] }, o($Vs, [2, 33]), o($Vs, [2, 34]), o($Vs, [2, 35]), o($Vt, [2, 46]), o($Vt, [2, 47]), o($Vu, [2, 37]), o($Vs, [2, 15]), o($Vs, [2, 19]), o($Vv, $V4, { 8: 81 }), o($Vs, [2, 26]), o($Vs, [2, 27]), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 82], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 21])],
- defaultActions: { 7: [2, 50], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 48], 55: [2, 49], 64: [2, 52] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/nesting-graph.js
+ function run3(g2) {
+ var root4 = addDummyNode(g2, "root", {}, "_root");
+ var depths = treeDepths(g2);
+ var height2 = max_default(values_default(depths)) - 1;
+ var nodeSep = 2 * height2 + 1;
+ g2.graph().nestingRoot = root4;
+ forEach_default(g2.edges(), function(e3) {
+ g2.edge(e3).minlen *= nodeSep;
+ });
+ var weight8 = sumWeights(g2) + 1;
+ forEach_default(g2.children(), function(child) {
+ dfs2(g2, root4, nodeSep, weight8, height2, depths, child);
+ });
+ g2.graph().nodeRankFactor = nodeSep;
+ }
+ function dfs2(g2, root4, nodeSep, weight8, height2, depths, v3) {
+ var children2 = g2.children(v3);
+ if (!children2.length) {
+ if (v3 !== root4) {
+ g2.setEdge(root4, v3, { weight: 0, minlen: nodeSep });
+ }
+ return;
+ }
+ var top2 = addBorderNode(g2, "_bt");
+ var bottom2 = addBorderNode(g2, "_bb");
+ var label = g2.node(v3);
+ g2.setParent(top2, v3);
+ label.borderTop = top2;
+ g2.setParent(bottom2, v3);
+ label.borderBottom = bottom2;
+ forEach_default(children2, function(child) {
+ dfs2(g2, root4, nodeSep, weight8, height2, depths, child);
+ var childNode = g2.node(child);
+ var childTop = childNode.borderTop ? childNode.borderTop : child;
+ var childBottom = childNode.borderBottom ? childNode.borderBottom : child;
+ var thisWeight = childNode.borderTop ? weight8 : 2 * weight8;
+ var minlen = childTop !== childBottom ? 1 : height2 - depths[v3] + 1;
+ g2.setEdge(top2, childTop, {
+ weight: thisWeight,
+ minlen,
+ nestingEdge: true
+ });
+ g2.setEdge(childBottom, bottom2, {
+ weight: thisWeight,
+ minlen,
+ nestingEdge: true
+ });
+ });
+ if (!g2.parent(v3)) {
+ g2.setEdge(root4, top2, { weight: 0, minlen: height2 + depths[v3] });
+ }
+ }
+ function treeDepths(g2) {
+ var depths = {};
+ function dfs3(v3, depth) {
+ var children2 = g2.children(v3);
+ if (children2 && children2.length) {
+ forEach_default(children2, function(child) {
+ dfs3(child, depth + 1);
+ });
+ }
+ depths[v3] = depth;
+ }
+ __name(dfs3, "dfs");
+ forEach_default(g2.children(), function(v3) {
+ dfs3(v3, 1);
+ });
+ return depths;
+ }
+ function sumWeights(g2) {
+ return reduce_default(
+ g2.edges(),
+ function(acc, e3) {
+ return acc + g2.edge(e3).weight;
},
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
+ 0
+ );
+ }
+ function cleanup(g2) {
+ var graphLabel = g2.graph();
+ g2.removeNode(graphLabel.nestingRoot);
+ delete graphLabel.nestingRoot;
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ if (edge.nestingEdge) {
+ g2.removeEdge(e3);
+ }
+ });
+ }
+ var init_nesting_graph = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/nesting-graph.js"() {
+ "use strict";
+ init_lodash();
+ init_util3();
+ __name(run3, "run");
+ __name(dfs2, "dfs");
+ __name(treeDepths, "treeDepths");
+ __name(sumWeights, "sumWeights");
+ __name(cleanup, "cleanup");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js
+ function addSubgraphConstraints(g2, cg, vs) {
+ var prev2 = {}, rootPrev;
+ forEach_default(vs, function(v3) {
+ var child = g2.parent(v3), parent4, prevChild;
+ while (child) {
+ parent4 = g2.parent(child);
+ if (parent4) {
+ prevChild = prev2[parent4];
+ prev2[parent4] = child;
} else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
+ prevChild = rootPrev;
+ rootPrev = child;
}
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
+ if (prevChild && prevChild !== child) {
+ cg.setEdge(prevChild, child);
+ return;
}
- return true;
+ child = parent4;
}
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- return 41;
- case 1:
- return 50;
- case 2:
- return 51;
- case 3:
- return 52;
- case 4:
- return 53;
- case 5:
- this.begin("open_directive");
- return 60;
- case 6:
- this.begin("type_directive");
- return 61;
- case 7:
- this.popState();
- this.begin("arg_directive");
- return 48;
- case 8:
- this.popState();
- this.popState();
- return 63;
- case 9:
- return 62;
- case 10:
- break;
- case 11:
- break;
- case 12:
- return 5;
- case 13:
- break;
- case 14:
- break;
- case 15:
- break;
- case 16:
- break;
- case 17:
- this.pushState("SCALE");
- return 17;
- case 18:
- return 18;
- case 19:
- this.popState();
- break;
- case 20:
- this.begin("acc_title");
- return 33;
- case 21:
- this.popState();
- return "acc_title_value";
- case 22:
- this.begin("acc_descr");
- return 35;
- case 23:
- this.popState();
- return "acc_descr_value";
- case 24:
- this.begin("acc_descr_multiline");
- break;
- case 25:
- this.popState();
- break;
- case 26:
- return "acc_descr_multiline_value";
- case 27:
- this.pushState("CLASSDEF");
- return 38;
- case 28:
- this.popState();
- this.pushState("CLASSDEFID");
- return "DEFAULT_CLASSDEF_ID";
- case 29:
- this.popState();
- this.pushState("CLASSDEFID");
- return 39;
- case 30:
- this.popState();
- return 40;
- case 31:
- this.pushState("CLASS");
- return 42;
- case 32:
- this.popState();
- this.pushState("CLASS_STYLE");
- return 43;
- case 33:
- this.popState();
- return 44;
- case 34:
- this.pushState("SCALE");
- return 17;
- case 35:
- return 18;
- case 36:
- this.popState();
- break;
- case 37:
- this.pushState("STATE");
- break;
- case 38:
- this.popState();
- yy_.yytext = yy_.yytext.slice(0, -8).trim();
- return 25;
- case 39:
- this.popState();
- yy_.yytext = yy_.yytext.slice(0, -8).trim();
- return 26;
- case 40:
- this.popState();
- yy_.yytext = yy_.yytext.slice(0, -10).trim();
- return 27;
- case 41:
- this.popState();
- yy_.yytext = yy_.yytext.slice(0, -8).trim();
- return 25;
- case 42:
- this.popState();
- yy_.yytext = yy_.yytext.slice(0, -8).trim();
- return 26;
- case 43:
- this.popState();
- yy_.yytext = yy_.yytext.slice(0, -10).trim();
- return 27;
- case 44:
- return 50;
- case 45:
- return 51;
- case 46:
- return 52;
- case 47:
- return 53;
- case 48:
- this.pushState("STATE_STRING");
- break;
- case 49:
- this.pushState("STATE_ID");
- return "AS";
- case 50:
- this.popState();
- return "ID";
- case 51:
- this.popState();
- break;
- case 52:
- return "STATE_DESCR";
- case 53:
- return 19;
- case 54:
- this.popState();
- break;
- case 55:
- this.popState();
- this.pushState("struct");
- return 20;
- case 56:
- break;
- case 57:
- this.popState();
- return 21;
- case 58:
- break;
- case 59:
- this.begin("NOTE");
- return 29;
- case 60:
- this.popState();
- this.pushState("NOTE_ID");
- return 58;
- case 61:
- this.popState();
- this.pushState("NOTE_ID");
- return 59;
- case 62:
- this.popState();
- this.pushState("FLOATING_NOTE");
- break;
- case 63:
- this.popState();
- this.pushState("FLOATING_NOTE_ID");
- return "AS";
- case 64:
- break;
- case 65:
- return "NOTE_TEXT";
- case 66:
- this.popState();
- return "ID";
- case 67:
- this.popState();
- this.pushState("NOTE_TEXT");
- return 24;
- case 68:
- this.popState();
- yy_.yytext = yy_.yytext.substr(2).trim();
- return 31;
- case 69:
- this.popState();
- yy_.yytext = yy_.yytext.slice(0, -8).trim();
- return 31;
- case 70:
- return 7;
- case 71:
- return 7;
- case 72:
- return 16;
- case 73:
- return 56;
- case 74:
- return 24;
- case 75:
- yy_.yytext = yy_.yytext.trim();
- return 14;
- case 76:
- return 15;
- case 77:
- return 28;
- case 78:
- return 57;
- case 79:
- return 5;
- case 80:
- return "INVALID";
- }
- },
- rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:\})/i, /^(?:[\n])/i, /^(?:note\s+)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:")/i, /^(?:\s*as\s*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n]*)/i, /^(?:\s*[^:\n\s\-]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:[\s\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],
- conditions: { "LINE": { "rules": [14, 15], "inclusive": false }, "close_directive": { "rules": [14, 15], "inclusive": false }, "arg_directive": { "rules": [8, 9, 14, 15], "inclusive": false }, "type_directive": { "rules": [7, 8, 14, 15], "inclusive": false }, "open_directive": { "rules": [6, 14, 15], "inclusive": false }, "struct": { "rules": [14, 15, 27, 31, 37, 44, 45, 46, 47, 56, 57, 58, 59, 73, 74, 75, 76, 77], "inclusive": false }, "FLOATING_NOTE_ID": { "rules": [66], "inclusive": false }, "FLOATING_NOTE": { "rules": [63, 64, 65], "inclusive": false }, "NOTE_TEXT": { "rules": [68, 69], "inclusive": false }, "NOTE_ID": { "rules": [67], "inclusive": false }, "NOTE": { "rules": [60, 61, 62], "inclusive": false }, "CLASS_STYLE": { "rules": [33], "inclusive": false }, "CLASS": { "rules": [32], "inclusive": false }, "CLASSDEFID": { "rules": [30], "inclusive": false }, "CLASSDEF": { "rules": [28, 29], "inclusive": false }, "acc_descr_multiline": { "rules": [25, 26], "inclusive": false }, "acc_descr": { "rules": [23], "inclusive": false }, "acc_title": { "rules": [21], "inclusive": false }, "SCALE": { "rules": [18, 19, 35, 36], "inclusive": false }, "ALIAS": { "rules": [], "inclusive": false }, "STATE_ID": { "rules": [50], "inclusive": false }, "STATE_STRING": { "rules": [51, 52], "inclusive": false }, "FORK_STATE": { "rules": [], "inclusive": false }, "STATE": { "rules": [14, 15, 38, 39, 40, 41, 42, 43, 48, 49, 53, 54, 55], "inclusive": false }, "ID": { "rules": [14, 15], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 27, 31, 34, 37, 55, 59, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$5.parser = parser$5;
- const parser$6 = parser$5;
- const DEFAULT_DIAGRAM_DIRECTION = "LR";
- const DEFAULT_NESTED_DOC_DIR = "TB";
- const STMT_STATE = "state";
- const STMT_RELATION = "relation";
- const STMT_CLASSDEF = "classDef";
- const STMT_APPLYCLASS = "applyClass";
- const DEFAULT_STATE_TYPE = "default";
- const DIVIDER_TYPE = "divider";
- const START_NODE = "[*]";
- const START_TYPE = "start";
- const END_NODE = START_NODE;
- const END_TYPE = "end";
- const COLOR_KEYWORD = "color";
- const FILL_KEYWORD = "fill";
- const BG_FILL = "bgFill";
- const STYLECLASS_SEP = ",";
- function newClassesList() {
- return {};
+ });
}
- let direction = DEFAULT_DIAGRAM_DIRECTION;
- let rootDoc = [];
- let classes = newClassesList();
- const newDoc = () => {
- return {
- relations: [],
- states: {},
- documents: {}
- };
- };
- let documents = {
- root: newDoc()
- };
- let currentDocument = documents.root;
- let startEndCount = 0;
- let dividerCnt = 0;
- const lineType = {
- LINE: 0,
- DOTTED_LINE: 1
- };
- const relationType = {
- AGGREGATION: 0,
- EXTENSION: 1,
- COMPOSITION: 2,
- DEPENDENCY: 3
- };
- const clone = (o) => JSON.parse(JSON.stringify(o));
- const parseDirective$2 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const setRootDoc = (o) => {
- log$1.info("Setting root doc", o);
- rootDoc = o;
- };
- const getRootDoc = () => rootDoc;
- const docTranslator = (parent, node2, first) => {
- if (node2.stmt === STMT_RELATION) {
- docTranslator(parent, node2.state1, true);
- docTranslator(parent, node2.state2, false);
- } else {
- if (node2.stmt === STMT_STATE) {
- if (node2.id === "[*]") {
- node2.id = first ? parent.id + "_start" : parent.id + "_end";
- node2.start = first;
- } else {
- node2.id = node2.id.trim();
+ var init_add_subgraph_constraints = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js"() {
+ "use strict";
+ init_lodash();
+ __name(addSubgraphConstraints, "addSubgraphConstraints");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js
+ function buildLayerGraph(g2, rank2, relationship) {
+ var root4 = createRootNode(g2), result = new Graph({ compound: true }).setGraph({ root: root4 }).setDefaultNodeLabel(function(v3) {
+ return g2.node(v3);
+ });
+ forEach_default(g2.nodes(), function(v3) {
+ var node2 = g2.node(v3), parent4 = g2.parent(v3);
+ if (node2.rank === rank2 || node2.minRank <= rank2 && rank2 <= node2.maxRank) {
+ result.setNode(v3);
+ result.setParent(v3, parent4 || root4);
+ forEach_default(g2[relationship](v3), function(e3) {
+ var u2 = e3.v === v3 ? e3.w : e3.v, edge = result.edge(u2, v3), weight8 = !isUndefined_default(edge) ? edge.weight : 0;
+ result.setEdge(u2, v3, { weight: g2.edge(e3).weight + weight8 });
+ });
+ if (has_default(node2, "minRank")) {
+ result.setNode(v3, {
+ borderLeft: node2.borderLeft[rank2],
+ borderRight: node2.borderRight[rank2]
+ });
}
}
- if (node2.doc) {
- const doc = [];
- let currentDoc = [];
- let i2;
- for (i2 = 0; i2 < node2.doc.length; i2++) {
- if (node2.doc[i2].type === DIVIDER_TYPE) {
- const newNode = clone(node2.doc[i2]);
- newNode.doc = clone(currentDoc);
- doc.push(newNode);
- currentDoc = [];
- } else {
- currentDoc.push(node2.doc[i2]);
+ });
+ return result;
+ }
+ function createRootNode(g2) {
+ var v3;
+ while (g2.hasNode(v3 = uniqueId_default("_root"))) ;
+ return v3;
+ }
+ var init_build_layer_graph = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js"() {
+ "use strict";
+ init_lodash();
+ init_graphlib();
+ __name(buildLayerGraph, "buildLayerGraph");
+ __name(createRootNode, "createRootNode");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/cross-count.js
+ function crossCount(g2, layering) {
+ var cc2 = 0;
+ for (var i2 = 1; i2 < layering.length; ++i2) {
+ cc2 += twoLayerCrossCount(g2, layering[i2 - 1], layering[i2]);
+ }
+ return cc2;
+ }
+ function twoLayerCrossCount(g2, northLayer, southLayer) {
+ var southPos = zipObject_default(
+ southLayer,
+ map_default(southLayer, function(v3, i2) {
+ return i2;
+ })
+ );
+ var southEntries = flatten_default(
+ map_default(northLayer, function(v3) {
+ return sortBy_default(
+ map_default(g2.outEdges(v3), function(e3) {
+ return { pos: southPos[e3.w], weight: g2.edge(e3).weight };
+ }),
+ "pos"
+ );
+ })
+ );
+ var firstIndex = 1;
+ while (firstIndex < southLayer.length) firstIndex <<= 1;
+ var treeSize = 2 * firstIndex - 1;
+ firstIndex -= 1;
+ var tree = map_default(new Array(treeSize), function() {
+ return 0;
+ });
+ var cc2 = 0;
+ forEach_default(
+ // @ts-expect-error
+ southEntries.forEach(function(entry) {
+ var index = entry.pos + firstIndex;
+ tree[index] += entry.weight;
+ var weightSum = 0;
+ while (index > 0) {
+ if (index % 2) {
+ weightSum += tree[index + 1];
}
+ index = index - 1 >> 1;
+ tree[index] += entry.weight;
}
- if (doc.length > 0 && currentDoc.length > 0) {
- const newNode = {
- stmt: STMT_STATE,
- id: generateId$1(),
- type: "divider",
- doc: clone(currentDoc)
- };
- doc.push(clone(newNode));
- node2.doc = doc;
- }
- node2.doc.forEach((docNode) => docTranslator(node2, docNode, true));
- }
+ cc2 += entry.weight * weightSum;
+ })
+ );
+ return cc2;
+ }
+ var init_cross_count = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/cross-count.js"() {
+ "use strict";
+ init_lodash();
+ __name(crossCount, "crossCount");
+ __name(twoLayerCrossCount, "twoLayerCrossCount");
}
- };
- const getRootDocV2 = () => {
- docTranslator({ id: "root" }, { id: "root", doc: rootDoc }, true);
- return { id: "root", doc: rootDoc };
- };
- const extract = (_doc) => {
- let doc;
- if (_doc.doc) {
- doc = _doc.doc;
- } else {
- doc = _doc;
- }
- log$1.info(doc);
- clear$3(true);
- log$1.info("Extract", doc);
- doc.forEach((item) => {
- switch (item.stmt) {
- case STMT_STATE:
- addState(
- item.id.trim(),
- item.type,
- item.doc,
- item.description,
- item.note,
- item.classes,
- item.styles,
- item.textStyles
- );
- break;
- case STMT_RELATION:
- addRelation(item.state1, item.state2, item.description);
- break;
- case STMT_CLASSDEF:
- addStyleClass(item.id.trim(), item.classes);
- break;
- case STMT_APPLYCLASS:
- setCssClass(item.id.trim(), item.styleClass);
- break;
- }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/init-order.js
+ function initOrder(g2) {
+ var visited = {};
+ var simpleNodes = filter_default3(g2.nodes(), function(v3) {
+ return !g2.children(v3).length;
});
- };
- const addState = function(id2, type2 = DEFAULT_STATE_TYPE, doc = null, descr = null, note2 = null, classes2 = null, styles2 = null, textStyles = null) {
- const trimmedId = id2 == null ? void 0 : id2.trim();
- if (currentDocument.states[trimmedId] === void 0) {
- log$1.info("Adding state ", trimmedId, descr);
- currentDocument.states[trimmedId] = {
- id: trimmedId,
- descriptions: [],
- type: type2,
- doc,
- note: note2,
- classes: [],
- styles: [],
- textStyles: []
- };
- } else {
- if (!currentDocument.states[trimmedId].doc) {
- currentDocument.states[trimmedId].doc = doc;
- }
- if (!currentDocument.states[trimmedId].type) {
- currentDocument.states[trimmedId].type = type2;
+ var maxRank2 = max_default(
+ map_default(simpleNodes, function(v3) {
+ return g2.node(v3).rank;
+ })
+ );
+ var layers = map_default(range_default(maxRank2 + 1), function() {
+ return [];
+ });
+ function dfs3(v3) {
+ if (has_default(visited, v3)) return;
+ visited[v3] = true;
+ var node2 = g2.node(v3);
+ layers[node2.rank].push(v3);
+ forEach_default(g2.successors(v3), dfs3);
+ }
+ __name(dfs3, "dfs");
+ var orderedVs = sortBy_default(simpleNodes, function(v3) {
+ return g2.node(v3).rank;
+ });
+ forEach_default(orderedVs, dfs3);
+ return layers;
+ }
+ var init_init_order = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/init-order.js"() {
+ "use strict";
+ init_lodash();
+ __name(initOrder, "initOrder");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/barycenter.js
+ function barycenter(g2, movable) {
+ return map_default(movable, function(v3) {
+ var inV = g2.inEdges(v3);
+ if (!inV.length) {
+ return { v: v3 };
+ } else {
+ var result = reduce_default(
+ inV,
+ function(acc, e3) {
+ var edge = g2.edge(e3), nodeU = g2.node(e3.v);
+ return {
+ sum: acc.sum + edge.weight * nodeU.order,
+ weight: acc.weight + edge.weight
+ };
+ },
+ { sum: 0, weight: 0 }
+ );
+ return {
+ v: v3,
+ barycenter: result.sum / result.weight,
+ weight: result.weight
+ };
}
+ });
+ }
+ var init_barycenter = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/barycenter.js"() {
+ "use strict";
+ init_lodash();
+ __name(barycenter, "barycenter");
}
- if (descr) {
- log$1.info("Setting state description", trimmedId, descr);
- if (typeof descr === "string") {
- addDescription(trimmedId, descr.trim());
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js
+ function resolveConflicts(entries, cg) {
+ var mappedEntries = {};
+ forEach_default(entries, function(entry, i2) {
+ var tmp = mappedEntries[entry.v] = {
+ indegree: 0,
+ in: [],
+ out: [],
+ vs: [entry.v],
+ i: i2
+ };
+ if (!isUndefined_default(entry.barycenter)) {
+ tmp.barycenter = entry.barycenter;
+ tmp.weight = entry.weight;
}
- if (typeof descr === "object") {
- descr.forEach((des) => addDescription(trimmedId, des.trim()));
+ });
+ forEach_default(cg.edges(), function(e3) {
+ var entryV = mappedEntries[e3.v];
+ var entryW = mappedEntries[e3.w];
+ if (!isUndefined_default(entryV) && !isUndefined_default(entryW)) {
+ entryW.indegree++;
+ entryV.out.push(mappedEntries[e3.w]);
}
+ });
+ var sourceSet = filter_default3(mappedEntries, function(entry) {
+ return !entry.indegree;
+ });
+ return doResolveConflicts(sourceSet);
+ }
+ function doResolveConflicts(sourceSet) {
+ var entries = [];
+ function handleIn(vEntry) {
+ return function(uEntry) {
+ if (uEntry.merged) {
+ return;
+ }
+ if (isUndefined_default(uEntry.barycenter) || isUndefined_default(vEntry.barycenter) || uEntry.barycenter >= vEntry.barycenter) {
+ mergeEntries(vEntry, uEntry);
+ }
+ };
}
- if (note2) {
- currentDocument.states[trimmedId].note = note2;
- currentDocument.states[trimmedId].note.text = common$1.sanitizeText(
- currentDocument.states[trimmedId].note.text,
- getConfig$1()
- );
+ __name(handleIn, "handleIn");
+ function handleOut(vEntry) {
+ return function(wEntry) {
+ wEntry["in"].push(vEntry);
+ if (--wEntry.indegree === 0) {
+ sourceSet.push(wEntry);
+ }
+ };
}
- if (classes2) {
- log$1.info("Setting state classes", trimmedId, classes2);
- const classesList = typeof classes2 === "string" ? [classes2] : classes2;
- classesList.forEach((klass) => setCssClass(trimmedId, klass.trim()));
+ __name(handleOut, "handleOut");
+ while (sourceSet.length) {
+ var entry = sourceSet.pop();
+ entries.push(entry);
+ forEach_default(entry["in"].reverse(), handleIn(entry));
+ forEach_default(entry.out, handleOut(entry));
}
- if (styles2) {
- log$1.info("Setting state styles", trimmedId, styles2);
- const stylesList = typeof styles2 === "string" ? [styles2] : styles2;
- stylesList.forEach((style) => setStyle(trimmedId, style.trim()));
+ return map_default(
+ filter_default3(entries, function(entry2) {
+ return !entry2.merged;
+ }),
+ function(entry2) {
+ return pick_default(entry2, ["vs", "i", "barycenter", "weight"]);
+ }
+ );
+ }
+ function mergeEntries(target, source) {
+ var sum2 = 0;
+ var weight8 = 0;
+ if (target.weight) {
+ sum2 += target.barycenter * target.weight;
+ weight8 += target.weight;
}
- if (textStyles) {
- log$1.info("Setting state styles", trimmedId, styles2);
- const textStylesList = typeof textStyles === "string" ? [textStyles] : textStyles;
- textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));
+ if (source.weight) {
+ sum2 += source.barycenter * source.weight;
+ weight8 += source.weight;
}
- };
- const clear$3 = function(saveCommon) {
- documents = {
- root: newDoc()
- };
- currentDocument = documents.root;
- startEndCount = 0;
- classes = newClassesList();
- if (!saveCommon) {
- clear$i();
+ target.vs = source.vs.concat(target.vs);
+ target.barycenter = sum2 / weight8;
+ target.weight = weight8;
+ target.i = Math.min(source.i, target.i);
+ source.merged = true;
+ }
+ var init_resolve_conflicts = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js"() {
+ "use strict";
+ init_lodash();
+ __name(resolveConflicts, "resolveConflicts");
+ __name(doResolveConflicts, "doResolveConflicts");
+ __name(mergeEntries, "mergeEntries");
}
- };
- const getState = function(id2) {
- return currentDocument.states[id2];
- };
- const getStates = function() {
- return currentDocument.states;
- };
- const logDocuments = function() {
- log$1.info("Documents = ", documents);
- };
- const getRelations = function() {
- return currentDocument.relations;
- };
- function startIdIfNeeded(id2 = "") {
- let fixedId = id2;
- if (id2 === START_NODE) {
- startEndCount++;
- fixedId = `${START_TYPE}${startEndCount}`;
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/sort.js
+ function sort(entries, biasRight) {
+ var parts = partition(entries, function(entry) {
+ return has_default(entry, "barycenter");
+ });
+ var sortable = parts.lhs, unsortable = sortBy_default(parts.rhs, function(entry) {
+ return -entry.i;
+ }), vs = [], sum2 = 0, weight8 = 0, vsIndex = 0;
+ sortable.sort(compareWithBias(!!biasRight));
+ vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
+ forEach_default(sortable, function(entry) {
+ vsIndex += entry.vs.length;
+ vs.push(entry.vs);
+ sum2 += entry.barycenter * entry.weight;
+ weight8 += entry.weight;
+ vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
+ });
+ var result = { vs: flatten_default(vs) };
+ if (weight8) {
+ result.barycenter = sum2 / weight8;
+ result.weight = weight8;
}
- return fixedId;
- }
- function startTypeIfNeeded(id2 = "", type2 = DEFAULT_STATE_TYPE) {
- return id2 === START_NODE ? START_TYPE : type2;
+ return result;
}
- function endIdIfNeeded(id2 = "") {
- let fixedId = id2;
- if (id2 === END_NODE) {
- startEndCount++;
- fixedId = `${END_TYPE}${startEndCount}`;
+ function consumeUnsortable(vs, unsortable, index) {
+ var last3;
+ while (unsortable.length && (last3 = last_default(unsortable)).i <= index) {
+ unsortable.pop();
+ vs.push(last3.vs);
+ index++;
}
- return fixedId;
- }
- function endTypeIfNeeded(id2 = "", type2 = DEFAULT_STATE_TYPE) {
- return id2 === END_NODE ? END_TYPE : type2;
+ return index;
}
- function addRelationObjs(item1, item2, relationTitle) {
- let id1 = startIdIfNeeded(item1.id.trim());
- let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);
- let id2 = startIdIfNeeded(item2.id.trim());
- let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);
- addState(
- id1,
- type1,
- item1.doc,
- item1.description,
- item1.note,
- item1.classes,
- item1.styles,
- item1.textStyles
- );
- addState(
- id2,
- type2,
- item2.doc,
- item2.description,
- item2.note,
- item2.classes,
- item2.styles,
- item2.textStyles
- );
- currentDocument.relations.push({
- id1,
- id2,
- relationTitle: common$1.sanitizeText(relationTitle, getConfig$1())
- });
+ function compareWithBias(bias) {
+ return function(entryV, entryW) {
+ if (entryV.barycenter < entryW.barycenter) {
+ return -1;
+ } else if (entryV.barycenter > entryW.barycenter) {
+ return 1;
+ }
+ return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
+ };
}
- const addRelation = function(item1, item2, title2) {
- if (typeof item1 === "object") {
- addRelationObjs(item1, item2, title2);
- } else {
- const id1 = startIdIfNeeded(item1.trim());
- const type1 = startTypeIfNeeded(item1);
- const id2 = endIdIfNeeded(item2.trim());
- const type2 = endTypeIfNeeded(item2);
- addState(id1, type1);
- addState(id2, type2);
- currentDocument.relations.push({
- id1,
- id2,
- title: common$1.sanitizeText(title2, getConfig$1())
- });
- }
- };
- const addDescription = function(id2, descr) {
- const theState = currentDocument.states[id2];
- const _descr = descr.startsWith(":") ? descr.replace(":", "").trim() : descr;
- theState.descriptions.push(common$1.sanitizeText(_descr, getConfig$1()));
- };
- const cleanupLabel = function(label) {
- if (label.substring(0, 1) === ":") {
- return label.substr(2).trim();
- } else {
- return label.trim();
+ var init_sort2 = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/sort.js"() {
+ "use strict";
+ init_lodash();
+ init_util3();
+ __name(sort, "sort");
+ __name(consumeUnsortable, "consumeUnsortable");
+ __name(compareWithBias, "compareWithBias");
}
- };
- const getDividerId = () => {
- dividerCnt++;
- return "divider-id-" + dividerCnt;
- };
- const addStyleClass = function(id2, styleAttributes = "") {
- if (classes[id2] === void 0) {
- classes[id2] = { id: id2, styles: [], textStyles: [] };
- }
- const foundClass = classes[id2];
- if (styleAttributes !== void 0 && styleAttributes !== null) {
- styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {
- const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim();
- if (attrib.match(COLOR_KEYWORD)) {
- const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);
- const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);
- foundClass.textStyles.push(newStyle2);
- }
- foundClass.styles.push(fixedAttrib);
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js
+ function sortSubgraph(g2, v3, cg, biasRight) {
+ var movable = g2.children(v3);
+ var node2 = g2.node(v3);
+ var bl = node2 ? node2.borderLeft : void 0;
+ var br2 = node2 ? node2.borderRight : void 0;
+ var subgraphs = {};
+ if (bl) {
+ movable = filter_default3(movable, function(w3) {
+ return w3 !== bl && w3 !== br2;
});
}
- };
- const getClasses$2 = function() {
- return classes;
- };
- const setCssClass = function(itemIds, cssClassName) {
- itemIds.split(",").forEach(function(id2) {
- let foundState = getState(id2);
- if (foundState === void 0) {
- const trimmedId = id2.trim();
- addState(trimmedId);
- foundState = getState(trimmedId);
- }
- foundState.classes.push(cssClassName);
+ var barycenters = barycenter(g2, movable);
+ forEach_default(barycenters, function(entry) {
+ if (g2.children(entry.v).length) {
+ var subgraphResult = sortSubgraph(g2, entry.v, cg, biasRight);
+ subgraphs[entry.v] = subgraphResult;
+ if (has_default(subgraphResult, "barycenter")) {
+ mergeBarycenters(entry, subgraphResult);
+ }
+ }
});
- };
- const setStyle = function(itemId, styleText) {
- const item = getState(itemId);
- if (item !== void 0) {
- item.textStyles.push(styleText);
- }
- };
- const setTextStyle = function(itemId, cssClassName) {
- const item = getState(itemId);
- if (item !== void 0) {
- item.textStyles.push(cssClassName);
+ var entries = resolveConflicts(barycenters, cg);
+ expandSubgraphs(entries, subgraphs);
+ var result = sort(entries, biasRight);
+ if (bl) {
+ result.vs = flatten_default([bl, result.vs, br2]);
+ if (g2.predecessors(bl).length) {
+ var blPred = g2.node(g2.predecessors(bl)[0]), brPred = g2.node(g2.predecessors(br2)[0]);
+ if (!has_default(result, "barycenter")) {
+ result.barycenter = 0;
+ result.weight = 0;
+ }
+ result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);
+ result.weight += 2;
+ }
}
- };
- const getDirection = () => direction;
- const setDirection = (dir) => {
- direction = dir;
- };
- const trimColon = (str2) => str2 && str2[0] === ":" ? str2.substr(1).trim() : str2.trim();
- const db$2 = {
- parseDirective: parseDirective$2,
- getConfig: () => getConfig$1().state,
- addState,
- clear: clear$3,
- getState,
- getStates,
- getRelations,
- getClasses: getClasses$2,
- getDirection,
- addRelation,
- getDividerId,
- setDirection,
- cleanupLabel,
- lineType,
- relationType,
- logDocuments,
- getRootDoc,
- setRootDoc,
- getRootDocV2,
- extract,
- trimColon,
- getAccTitle,
- setAccTitle,
- getAccDescription,
- setAccDescription,
- addStyleClass,
- setCssClass,
- addDescription,
- setDiagramTitle,
- getDiagramTitle
- };
- const getStyles$4 = (options2) => `
-defs #statediagram-barbEnd {
- fill: ${options2.transitionColor};
- stroke: ${options2.transitionColor};
+ return result;
}
-g.stateGroup text {
- fill: ${options2.nodeBorder};
- stroke: none;
- font-size: 10px;
-}
-g.stateGroup text {
- fill: ${options2.textColor};
- stroke: none;
- font-size: 10px;
-
-}
-g.stateGroup .state-title {
- font-weight: bolder;
- fill: ${options2.stateLabelColor};
-}
-
-g.stateGroup rect {
- fill: ${options2.mainBkg};
- stroke: ${options2.nodeBorder};
-}
-
-g.stateGroup line {
- stroke: ${options2.lineColor};
- stroke-width: 1;
-}
-
-.transition {
- stroke: ${options2.transitionColor};
- stroke-width: 1;
- fill: none;
-}
-
-.stateGroup .composit {
- fill: ${options2.background};
- border-bottom: 1px
-}
-
-.stateGroup .alt-composit {
- fill: #e0e0e0;
- border-bottom: 1px
-}
-
-.state-note {
- stroke: ${options2.noteBorderColor};
- fill: ${options2.noteBkgColor};
-
- text {
- fill: ${options2.noteTextColor};
- stroke: none;
- font-size: 10px;
+ function expandSubgraphs(entries, subgraphs) {
+ forEach_default(entries, function(entry) {
+ entry.vs = flatten_default(
+ entry.vs.map(function(v3) {
+ if (subgraphs[v3]) {
+ return subgraphs[v3].vs;
+ }
+ return v3;
+ })
+ );
+ });
}
-}
-
-.stateLabel .box {
- stroke: none;
- stroke-width: 0;
- fill: ${options2.mainBkg};
- opacity: 0.5;
-}
-
-.edgeLabel .label rect {
- fill: ${options2.labelBackgroundColor};
- opacity: 0.5;
-}
-.edgeLabel .label text {
- fill: ${options2.transitionLabelColor || options2.tertiaryTextColor};
-}
-.label div .edgeLabel {
- color: ${options2.transitionLabelColor || options2.tertiaryTextColor};
-}
-
-.stateLabel text {
- fill: ${options2.stateLabelColor};
- font-size: 10px;
- font-weight: bold;
-}
-
-.node circle.state-start {
- fill: ${options2.specialStateColor};
- stroke: ${options2.specialStateColor};
-}
-
-.node .fork-join {
- fill: ${options2.specialStateColor};
- stroke: ${options2.specialStateColor};
-}
-
-.node circle.state-end {
- fill: ${options2.innerEndBackground};
- stroke: ${options2.background};
- stroke-width: 1.5
-}
-.end-state-inner {
- fill: ${options2.compositeBackground || options2.background};
- // stroke: ${options2.background};
- stroke-width: 1.5
-}
-
-.node rect {
- fill: ${options2.stateBkg || options2.mainBkg};
- stroke: ${options2.stateBorder || options2.nodeBorder};
- stroke-width: 1px;
-}
-.node polygon {
- fill: ${options2.mainBkg};
- stroke: ${options2.stateBorder || options2.nodeBorder};;
- stroke-width: 1px;
-}
-#statediagram-barbEnd {
- fill: ${options2.lineColor};
-}
-
-.statediagram-cluster rect {
- fill: ${options2.compositeTitleBackground};
- stroke: ${options2.stateBorder || options2.nodeBorder};
- stroke-width: 1px;
-}
-
-.cluster-label, .nodeLabel {
- color: ${options2.stateLabelColor};
-}
-
-.statediagram-cluster rect.outer {
- rx: 5px;
- ry: 5px;
-}
-.statediagram-state .divider {
- stroke: ${options2.stateBorder || options2.nodeBorder};
-}
-
-.statediagram-state .title-state {
- rx: 5px;
- ry: 5px;
-}
-.statediagram-cluster.statediagram-cluster .inner {
- fill: ${options2.compositeBackground || options2.background};
-}
-.statediagram-cluster.statediagram-cluster-alt .inner {
- fill: ${options2.altBackground ? options2.altBackground : "#efefef"};
-}
-
-.statediagram-cluster .inner {
- rx:0;
- ry:0;
-}
-
-.statediagram-state rect.basic {
- rx: 5px;
- ry: 5px;
-}
-.statediagram-state rect.divider {
- stroke-dasharray: 10,10;
- fill: ${options2.altBackground ? options2.altBackground : "#efefef"};
-}
-
-.note-edge {
- stroke-dasharray: 5;
-}
-
-.statediagram-note rect {
- fill: ${options2.noteBkgColor};
- stroke: ${options2.noteBorderColor};
- stroke-width: 1px;
- rx: 0;
- ry: 0;
-}
-.statediagram-note rect {
- fill: ${options2.noteBkgColor};
- stroke: ${options2.noteBorderColor};
- stroke-width: 1px;
- rx: 0;
- ry: 0;
-}
-
-.statediagram-note text {
- fill: ${options2.noteTextColor};
-}
-
-.statediagram-note .nodeLabel {
- color: ${options2.noteTextColor};
-}
-.statediagram .edgeLabel {
- color: red; // ${options2.noteTextColor};
-}
-
-#dependencyStart, #dependencyEnd {
- fill: ${options2.lineColor};
- stroke: ${options2.lineColor};
- stroke-width: 1;
-}
+ function mergeBarycenters(target, other) {
+ if (!isUndefined_default(target.barycenter)) {
+ target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight);
+ target.weight += other.weight;
+ } else {
+ target.barycenter = other.barycenter;
+ target.weight = other.weight;
+ }
+ }
+ var init_sort_subgraph = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js"() {
+ "use strict";
+ init_lodash();
+ init_barycenter();
+ init_resolve_conflicts();
+ init_sort2();
+ __name(sortSubgraph, "sortSubgraph");
+ __name(expandSubgraphs, "expandSubgraphs");
+ __name(mergeBarycenters, "mergeBarycenters");
+ }
+ });
-.statediagramTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${options2.textColor};
-}
-`;
- const styles$3 = getStyles$4;
- const idCache = {};
- const set = (key, val) => {
- idCache[key] = val;
- };
- const get = (k) => idCache[k];
- const keys = () => Object.keys(idCache);
- const size = () => keys().length;
- const idCache$1 = {
- get,
- set,
- keys,
- size
- };
- const drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig$1().state.sizeUnit).attr("cx", getConfig$1().state.padding + getConfig$1().state.sizeUnit).attr("cy", getConfig$1().state.padding + getConfig$1().state.sizeUnit);
- const drawDivider = (g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig$1().state.textHeight).attr("class", "divider").attr("x2", getConfig$1().state.textHeight * 2).attr("y1", 0).attr("y2", 0);
- const drawSimpleState = (g, stateDef) => {
- const state2 = g.append("text").attr("x", 2 * getConfig$1().state.padding).attr("y", getConfig$1().state.textHeight + 2 * getConfig$1().state.padding).attr("font-size", getConfig$1().state.fontSize).attr("class", "state-title").text(stateDef.id);
- const classBox = state2.node().getBBox();
- g.insert("rect", ":first-child").attr("x", getConfig$1().state.padding).attr("y", getConfig$1().state.padding).attr("width", classBox.width + 2 * getConfig$1().state.padding).attr("height", classBox.height + 2 * getConfig$1().state.padding).attr("rx", getConfig$1().state.radius);
- return state2;
- };
- const drawDescrState = (g, stateDef) => {
- const addTspan2 = function(textEl, txt, isFirst2) {
- const tSpan = textEl.append("tspan").attr("x", 2 * getConfig$1().state.padding).text(txt);
- if (!isFirst2) {
- tSpan.attr("dy", getConfig$1().state.textHeight);
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/index.js
+ function order(g2) {
+ var maxRank2 = maxRank(g2), downLayerGraphs = buildLayerGraphs(g2, range_default(1, maxRank2 + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g2, range_default(maxRank2 - 1, -1, -1), "outEdges");
+ var layering = initOrder(g2);
+ assignOrder(g2, layering);
+ var bestCC = Number.POSITIVE_INFINITY, best;
+ for (var i2 = 0, lastBest = 0; lastBest < 4; ++i2, ++lastBest) {
+ sweepLayerGraphs(i2 % 2 ? downLayerGraphs : upLayerGraphs, i2 % 4 >= 2);
+ layering = buildLayerMatrix(g2);
+ var cc2 = crossCount(g2, layering);
+ if (cc2 < bestCC) {
+ lastBest = 0;
+ best = cloneDeep_default(layering);
+ bestCC = cc2;
}
- };
- const title2 = g.append("text").attr("x", 2 * getConfig$1().state.padding).attr("y", getConfig$1().state.textHeight + 1.3 * getConfig$1().state.padding).attr("font-size", getConfig$1().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]);
- const titleBox = title2.node().getBBox();
- const titleHeight = titleBox.height;
- const description2 = g.append("text").attr("x", getConfig$1().state.padding).attr(
- "y",
- titleHeight + getConfig$1().state.padding * 0.4 + getConfig$1().state.dividerMargin + getConfig$1().state.textHeight
- ).attr("class", "state-description");
- let isFirst = true;
- let isSecond = true;
- stateDef.descriptions.forEach(function(descr) {
- if (!isFirst) {
- addTspan2(description2, descr, isSecond);
- isSecond = false;
- }
- isFirst = false;
+ }
+ assignOrder(g2, best);
+ }
+ function buildLayerGraphs(g2, ranks, relationship) {
+ return map_default(ranks, function(rank2) {
+ return buildLayerGraph(g2, rank2, relationship);
});
- const descrLine = g.append("line").attr("x1", getConfig$1().state.padding).attr("y1", getConfig$1().state.padding + titleHeight + getConfig$1().state.dividerMargin / 2).attr("y2", getConfig$1().state.padding + titleHeight + getConfig$1().state.dividerMargin / 2).attr("class", "descr-divider");
- const descrBox = description2.node().getBBox();
- const width2 = Math.max(descrBox.width, titleBox.width);
- descrLine.attr("x2", width2 + 3 * getConfig$1().state.padding);
- g.insert("rect", ":first-child").attr("x", getConfig$1().state.padding).attr("y", getConfig$1().state.padding).attr("width", width2 + 2 * getConfig$1().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig$1().state.padding).attr("rx", getConfig$1().state.radius);
- return g;
- };
- const addTitleAndBox = (g, stateDef, altBkg) => {
- const pad2 = getConfig$1().state.padding;
- const dblPad = 2 * getConfig$1().state.padding;
- const orgBox = g.node().getBBox();
- const orgWidth = orgBox.width;
- const orgX = orgBox.x;
- const title2 = g.append("text").attr("x", 0).attr("y", getConfig$1().state.titleShift).attr("font-size", getConfig$1().state.fontSize).attr("class", "state-title").text(stateDef.id);
- const titleBox = title2.node().getBBox();
- const titleWidth = titleBox.width + dblPad;
- let width2 = Math.max(titleWidth, orgWidth);
- if (width2 === orgWidth) {
- width2 = width2 + dblPad;
- }
- let startX;
- const graphBox = g.node().getBBox();
- if (stateDef.doc)
- ;
- startX = orgX - pad2;
- if (titleWidth > orgWidth) {
- startX = (orgWidth - width2) / 2 + pad2;
- }
- if (Math.abs(orgX - graphBox.x) < pad2 && titleWidth > orgWidth) {
- startX = orgX - (titleWidth - orgWidth) / 2;
- }
- const lineY = 1 - getConfig$1().state.textHeight;
- g.insert("rect", ":first-child").attr("x", startX).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width2).attr(
- "height",
- graphBox.height + getConfig$1().state.textHeight + getConfig$1().state.titleShift + 1
- ).attr("rx", "0");
- title2.attr("x", startX + pad2);
- if (titleWidth <= orgWidth) {
- title2.attr("x", orgX + (width2 - dblPad) / 2 - titleWidth / 2 + pad2);
- }
- g.insert("rect", ":first-child").attr("x", startX).attr(
- "y",
- getConfig$1().state.titleShift - getConfig$1().state.textHeight - getConfig$1().state.padding
- ).attr("width", width2).attr("height", getConfig$1().state.textHeight * 3).attr("rx", getConfig$1().state.radius);
- g.insert("rect", ":first-child").attr("x", startX).attr(
- "y",
- getConfig$1().state.titleShift - getConfig$1().state.textHeight - getConfig$1().state.padding
- ).attr("width", width2).attr("height", graphBox.height + 3 + 2 * getConfig$1().state.textHeight).attr("rx", getConfig$1().state.radius);
- return g;
- };
- const drawEndState = (g) => {
- g.append("circle").attr("class", "end-state-outer").attr("r", getConfig$1().state.sizeUnit + getConfig$1().state.miniPadding).attr(
- "cx",
- getConfig$1().state.padding + getConfig$1().state.sizeUnit + getConfig$1().state.miniPadding
- ).attr(
- "cy",
- getConfig$1().state.padding + getConfig$1().state.sizeUnit + getConfig$1().state.miniPadding
- );
- return g.append("circle").attr("class", "end-state-inner").attr("r", getConfig$1().state.sizeUnit).attr("cx", getConfig$1().state.padding + getConfig$1().state.sizeUnit + 2).attr("cy", getConfig$1().state.padding + getConfig$1().state.sizeUnit + 2);
- };
- const drawForkJoinState = (g, stateDef) => {
- let width2 = getConfig$1().state.forkWidth;
- let height2 = getConfig$1().state.forkHeight;
- if (stateDef.parentId) {
- let tmp = width2;
- width2 = height2;
- height2 = tmp;
- }
- return g.append("rect").style("stroke", "black").style("fill", "black").attr("width", width2).attr("height", height2).attr("x", getConfig$1().state.padding).attr("y", getConfig$1().state.padding);
- };
- const _drawLongText = (_text, x2, y2, g) => {
- let textHeight = 0;
- const textElem = g.append("text");
- textElem.style("text-anchor", "start");
- textElem.attr("class", "noteText");
- let text2 = _text.replace(/\r\n/g, "
");
- text2 = text2.replace(/\n/g, "
");
- const lines = text2.split(common$1.lineBreakRegex);
- let tHeight = 1.25 * getConfig$1().state.noteMargin;
- for (const line2 of lines) {
- const txt = line2.trim();
- if (txt.length > 0) {
- const span = textElem.append("tspan");
- span.text(txt);
- if (tHeight === 0) {
- const textBounds = span.node().getBBox();
- tHeight += textBounds.height;
+ }
+ function sweepLayerGraphs(layerGraphs, biasRight) {
+ var cg = new Graph();
+ forEach_default(layerGraphs, function(lg) {
+ var root4 = lg.graph().root;
+ var sorted = sortSubgraph(lg, root4, cg, biasRight);
+ forEach_default(sorted.vs, function(v3, i2) {
+ lg.node(v3).order = i2;
+ });
+ addSubgraphConstraints(lg, cg, sorted.vs);
+ });
+ }
+ function assignOrder(g2, layering) {
+ forEach_default(layering, function(layer) {
+ forEach_default(layer, function(v3, i2) {
+ g2.node(v3).order = i2;
+ });
+ });
+ }
+ var init_order2 = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/order/index.js"() {
+ "use strict";
+ init_lodash();
+ init_graphlib();
+ init_util3();
+ init_add_subgraph_constraints();
+ init_build_layer_graph();
+ init_cross_count();
+ init_init_order();
+ init_sort_subgraph();
+ __name(order, "order");
+ __name(buildLayerGraphs, "buildLayerGraphs");
+ __name(sweepLayerGraphs, "sweepLayerGraphs");
+ __name(assignOrder, "assignOrder");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js
+ function parentDummyChains(g2) {
+ var postorderNums = postorder2(g2);
+ forEach_default(g2.graph().dummyChains, function(v3) {
+ var node2 = g2.node(v3);
+ var edgeObj = node2.edgeObj;
+ var pathData = findPath(g2, postorderNums, edgeObj.v, edgeObj.w);
+ var path4 = pathData.path;
+ var lca = pathData.lca;
+ var pathIdx = 0;
+ var pathV = path4[pathIdx];
+ var ascending5 = true;
+ while (v3 !== edgeObj.w) {
+ node2 = g2.node(v3);
+ if (ascending5) {
+ while ((pathV = path4[pathIdx]) !== lca && g2.node(pathV).maxRank < node2.rank) {
+ pathIdx++;
+ }
+ if (pathV === lca) {
+ ascending5 = false;
+ }
+ }
+ if (!ascending5) {
+ while (pathIdx < path4.length - 1 && g2.node(pathV = path4[pathIdx + 1]).minRank <= node2.rank) {
+ pathIdx++;
+ }
+ pathV = path4[pathIdx];
}
- textHeight += tHeight;
- span.attr("x", x2 + getConfig$1().state.noteMargin);
- span.attr("y", y2 + textHeight + 1.25 * getConfig$1().state.noteMargin);
+ g2.setParent(v3, pathV);
+ v3 = g2.successors(v3)[0];
}
+ });
+ }
+ function findPath(g2, postorderNums, v3, w3) {
+ var vPath = [];
+ var wPath = [];
+ var low = Math.min(postorderNums[v3].low, postorderNums[w3].low);
+ var lim = Math.max(postorderNums[v3].lim, postorderNums[w3].lim);
+ var parent4;
+ var lca;
+ parent4 = v3;
+ do {
+ parent4 = g2.parent(parent4);
+ vPath.push(parent4);
+ } while (parent4 && (postorderNums[parent4].low > low || lim > postorderNums[parent4].lim));
+ lca = parent4;
+ parent4 = w3;
+ while ((parent4 = g2.parent(parent4)) !== lca) {
+ wPath.push(parent4);
}
- return { textWidth: textElem.node().getBBox().width, textHeight };
- };
- const drawNote = (text2, g) => {
- g.attr("class", "state-note");
- const note2 = g.append("rect").attr("x", 0).attr("y", getConfig$1().state.padding);
- const rectElem = g.append("g");
- const { textWidth, textHeight } = _drawLongText(text2, 0, 0, rectElem);
- note2.attr("height", textHeight + 2 * getConfig$1().state.noteMargin);
- note2.attr("width", textWidth + getConfig$1().state.noteMargin * 2);
- return note2;
- };
- const drawState = function(elem, stateDef) {
- const id2 = stateDef.id;
- const stateInfo = {
- id: id2,
- label: stateDef.id,
- width: 0,
- height: 0
- };
- const g = elem.append("g").attr("id", id2).attr("class", "stateGroup");
- if (stateDef.type === "start") {
- drawStartState(g);
+ return { path: vPath.concat(wPath.reverse()), lca };
+ }
+ function postorder2(g2) {
+ var result = {};
+ var lim = 0;
+ function dfs3(v3) {
+ var low = lim;
+ forEach_default(g2.children(v3), dfs3);
+ result[v3] = { low, lim: lim++ };
+ }
+ __name(dfs3, "dfs");
+ forEach_default(g2.children(), dfs3);
+ return result;
+ }
+ var init_parent_dummy_chains = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js"() {
+ "use strict";
+ init_lodash();
+ __name(parentDummyChains, "parentDummyChains");
+ __name(findPath, "findPath");
+ __name(postorder2, "postorder");
}
- if (stateDef.type === "end") {
- drawEndState(g);
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/position/bk.js
+ function findType1Conflicts(g2, layering) {
+ var conflicts = {};
+ function visitLayer(prevLayer, layer) {
+ var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = last_default(layer);
+ forEach_default(layer, function(v3, i2) {
+ var w3 = findOtherInnerSegmentNode(g2, v3), k1 = w3 ? g2.node(w3).order : prevLayerLength;
+ if (w3 || v3 === lastNode) {
+ forEach_default(layer.slice(scanPos, i2 + 1), function(scanNode) {
+ forEach_default(g2.predecessors(scanNode), function(u2) {
+ var uLabel = g2.node(u2), uPos = uLabel.order;
+ if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g2.node(scanNode).dummy)) {
+ addConflict(conflicts, u2, scanNode);
+ }
+ });
+ });
+ scanPos = i2 + 1;
+ k0 = k1;
+ }
+ });
+ return layer;
}
- if (stateDef.type === "fork" || stateDef.type === "join") {
- drawForkJoinState(g, stateDef);
+ __name(visitLayer, "visitLayer");
+ reduce_default(layering, visitLayer);
+ return conflicts;
+ }
+ function findType2Conflicts(g2, layering) {
+ var conflicts = {};
+ function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
+ var v3;
+ forEach_default(range_default(southPos, southEnd), function(i2) {
+ v3 = south[i2];
+ if (g2.node(v3).dummy) {
+ forEach_default(g2.predecessors(v3), function(u2) {
+ var uNode = g2.node(u2);
+ if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {
+ addConflict(conflicts, u2, v3);
+ }
+ });
+ }
+ });
}
- if (stateDef.type === "note") {
- drawNote(stateDef.note.text, g);
+ __name(scan, "scan");
+ function visitLayer(north, south) {
+ var prevNorthPos = -1, nextNorthPos, southPos = 0;
+ forEach_default(south, function(v3, southLookahead) {
+ if (g2.node(v3).dummy === "border") {
+ var predecessors = g2.predecessors(v3);
+ if (predecessors.length) {
+ nextNorthPos = g2.node(predecessors[0]).order;
+ scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);
+ southPos = southLookahead;
+ prevNorthPos = nextNorthPos;
+ }
+ }
+ scan(south, southPos, south.length, nextNorthPos, north.length);
+ });
+ return south;
}
- if (stateDef.type === "divider") {
- drawDivider(g);
+ __name(visitLayer, "visitLayer");
+ reduce_default(layering, visitLayer);
+ return conflicts;
+ }
+ function findOtherInnerSegmentNode(g2, v3) {
+ if (g2.node(v3).dummy) {
+ return find_default(g2.predecessors(v3), function(u2) {
+ return g2.node(u2).dummy;
+ });
}
- if (stateDef.type === "default" && stateDef.descriptions.length === 0) {
- drawSimpleState(g, stateDef);
+ }
+ function addConflict(conflicts, v3, w3) {
+ if (v3 > w3) {
+ var tmp = v3;
+ v3 = w3;
+ w3 = tmp;
}
- if (stateDef.type === "default" && stateDef.descriptions.length > 0) {
- drawDescrState(g, stateDef);
+ var conflictsV = conflicts[v3];
+ if (!conflictsV) {
+ conflicts[v3] = conflictsV = {};
}
- const stateBox = g.node().getBBox();
- stateInfo.width = stateBox.width + 2 * getConfig$1().state.padding;
- stateInfo.height = stateBox.height + 2 * getConfig$1().state.padding;
- idCache$1.set(id2, stateInfo);
- return stateInfo;
- };
- let edgeCount = 0;
- const drawEdge$1 = function(elem, path2, relation) {
- const getRelationType = function(type2) {
- switch (type2) {
- case db$2.relationType.AGGREGATION:
- return "aggregation";
- case db$2.relationType.EXTENSION:
- return "extension";
- case db$2.relationType.COMPOSITION:
- return "composition";
- case db$2.relationType.DEPENDENCY:
- return "dependency";
- }
- };
- path2.points = path2.points.filter((p) => !Number.isNaN(p.y));
- const lineData = path2.points;
- const lineFunction = line$1().x(function(d) {
- return d.x;
- }).y(function(d) {
- return d.y;
- }).curve(curveBasis);
- const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "transition");
- let url = "";
- if (getConfig$1().state.arrowMarkerAbsolute) {
- url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
- url = url.replace(/\(/g, "\\(");
- url = url.replace(/\)/g, "\\)");
- }
- svgPath.attr(
- "marker-end",
- "url(" + url + "#" + getRelationType(db$2.relationType.DEPENDENCY) + "End)"
- );
- if (relation.title !== void 0) {
- const label = elem.append("g").attr("class", "stateLabel");
- const { x: x2, y: y2 } = utils.calcLabelPosition(path2.points);
- const rows = common$1.getRows(relation.title);
- let titleHeight = 0;
- const titleRows = [];
- let maxWidth = 0;
- let minX = 0;
- for (let i2 = 0; i2 <= rows.length; i2++) {
- const title2 = label.append("text").attr("text-anchor", "middle").text(rows[i2]).attr("x", x2).attr("y", y2 + titleHeight);
- const boundstmp = title2.node().getBBox();
- maxWidth = Math.max(maxWidth, boundstmp.width);
- minX = Math.min(minX, boundstmp.x);
- log$1.info(boundstmp.x, x2, y2 + titleHeight);
- if (titleHeight === 0) {
- const titleBox = title2.node().getBBox();
- titleHeight = titleBox.height;
- log$1.info("Title height", titleHeight, y2);
- }
- titleRows.push(title2);
- }
- let boxHeight = titleHeight * rows.length;
- if (rows.length > 1) {
- const heightAdj = (rows.length - 1) * titleHeight * 0.5;
- titleRows.forEach((title2, i2) => title2.attr("y", y2 + i2 * titleHeight - heightAdj));
- boxHeight = titleHeight * rows.length;
- }
- const bounds2 = label.node().getBBox();
- label.insert("rect", ":first-child").attr("class", "box").attr("x", x2 - maxWidth / 2 - getConfig$1().state.padding / 2).attr("y", y2 - boxHeight / 2 - getConfig$1().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig$1().state.padding).attr("height", boxHeight + getConfig$1().state.padding);
- log$1.info(bounds2);
- }
- edgeCount++;
- };
- let conf$2;
- const transformationLog = {};
- const setConf$2 = function() {
- };
- const insertMarkers = function(elem) {
- elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
- };
- const draw$5 = function(text2, id2, _version, diagObj) {
- conf$2 = getConfig$1().state;
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- log$1.debug("Rendering diagram " + text2);
- const diagram2 = root2.select(`[id='${id2}']`);
- insertMarkers(diagram2);
- const graph = new Graph({
- multigraph: true,
- compound: true,
- // acyclicer: 'greedy',
- rankdir: "RL"
- // ranksep: '20'
- });
- graph.setDefaultEdgeLabel(function() {
- return {};
- });
- const rootDoc2 = diagObj.db.getRootDoc();
- renderDoc(rootDoc2, diagram2, void 0, false, root2, doc, diagObj);
- const padding2 = conf$2.padding;
- const bounds2 = diagram2.node().getBBox();
- const width2 = bounds2.width + padding2 * 2;
- const height2 = bounds2.height + padding2 * 2;
- const svgWidth = width2 * 1.75;
- configureSvgSize(diagram2, height2, svgWidth, conf$2.useMaxWidth);
- diagram2.attr(
- "viewBox",
- `${bounds2.x - conf$2.padding} ${bounds2.y - conf$2.padding} ` + width2 + " " + height2
- );
- };
- const getLabelWidth = (text2) => {
- return text2 ? text2.length * conf$2.fontSizeFactor : 1;
- };
- const renderDoc = (doc, diagram2, parentId, altBkg, root2, domDocument, diagObj) => {
- const graph = new Graph({
- compound: true,
- multigraph: true
- });
- let i2;
- let edgeFreeDoc = true;
- for (i2 = 0; i2 < doc.length; i2++) {
- if (doc[i2].stmt === "relation") {
- edgeFreeDoc = false;
- break;
- }
+ conflictsV[w3] = true;
+ }
+ function hasConflict(conflicts, v3, w3) {
+ if (v3 > w3) {
+ var tmp = v3;
+ v3 = w3;
+ w3 = tmp;
}
- if (parentId) {
- graph.setGraph({
- rankdir: "LR",
- multigraph: true,
- compound: true,
- // acyclicer: 'greedy',
- ranker: "tight-tree",
- ranksep: edgeFreeDoc ? 1 : conf$2.edgeLengthFactor,
- nodeSep: edgeFreeDoc ? 1 : 50,
- isMultiGraph: true
- // ranksep: 5,
- // nodesep: 1
- });
- } else {
- graph.setGraph({
- rankdir: "TB",
- multigraph: true,
- compound: true,
- // isCompound: true,
- // acyclicer: 'greedy',
- // ranker: 'longest-path'
- ranksep: edgeFreeDoc ? 1 : conf$2.edgeLengthFactor,
- nodeSep: edgeFreeDoc ? 1 : 50,
- ranker: "tight-tree",
- // ranker: 'network-simplex'
- isMultiGraph: true
+ return has_default(conflicts[v3], w3);
+ }
+ function verticalAlignment(g2, layering, conflicts, neighborFn) {
+ var root4 = {}, align = {}, pos = {};
+ forEach_default(layering, function(layer) {
+ forEach_default(layer, function(v3, order2) {
+ root4[v3] = v3;
+ align[v3] = v3;
+ pos[v3] = order2;
});
- }
- graph.setDefaultEdgeLabel(function() {
- return {};
});
- diagObj.db.extract(doc);
- const states = diagObj.db.getStates();
- const relations2 = diagObj.db.getRelations();
- const keys2 = Object.keys(states);
- for (const key of keys2) {
- const stateDef = states[key];
- if (parentId) {
- stateDef.parentId = parentId;
- }
- let node2;
- if (stateDef.doc) {
- let sub = diagram2.append("g").attr("id", stateDef.id).attr("class", "stateGroup");
- node2 = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root2, domDocument, diagObj);
- {
- sub = addTitleAndBox(sub, stateDef, altBkg);
- let boxBounds = sub.node().getBBox();
- node2.width = boxBounds.width;
- node2.height = boxBounds.height + conf$2.padding / 2;
- transformationLog[stateDef.id] = { y: conf$2.compositTitleSize };
+ forEach_default(layering, function(layer) {
+ var prevIdx = -1;
+ forEach_default(layer, function(v3) {
+ var ws = neighborFn(v3);
+ if (ws.length) {
+ ws = sortBy_default(ws, function(w4) {
+ return pos[w4];
+ });
+ var mp = (ws.length - 1) / 2;
+ for (var i2 = Math.floor(mp), il = Math.ceil(mp); i2 <= il; ++i2) {
+ var w3 = ws[i2];
+ if (align[v3] === v3 && prevIdx < pos[w3] && !hasConflict(conflicts, v3, w3)) {
+ align[w3] = v3;
+ align[v3] = root4[v3] = root4[w3];
+ prevIdx = pos[w3];
+ }
+ }
}
- } else {
- node2 = drawState(diagram2, stateDef);
- }
- if (stateDef.note) {
- const noteDef = {
- descriptions: [],
- id: stateDef.id + "-note",
- note: stateDef.note,
- type: "note"
- };
- const note2 = drawState(diagram2, noteDef);
- if (stateDef.note.position === "left of") {
- graph.setNode(node2.id + "-note", note2);
- graph.setNode(node2.id, node2);
+ });
+ });
+ return { root: root4, align };
+ }
+ function horizontalCompaction(g2, layering, root4, align, reverseSep) {
+ var xs = {}, blockG = buildBlockGraph(g2, layering, root4, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight";
+ function iterate(setXsFunc, nextNodesFunc) {
+ var stack = blockG.nodes();
+ var elem = stack.pop();
+ var visited = {};
+ while (elem) {
+ if (visited[elem]) {
+ setXsFunc(elem);
} else {
- graph.setNode(node2.id, node2);
- graph.setNode(node2.id + "-note", note2);
+ visited[elem] = true;
+ stack.push(elem);
+ stack = stack.concat(nextNodesFunc(elem));
}
- graph.setParent(node2.id, node2.id + "-group");
- graph.setParent(node2.id + "-note", node2.id + "-group");
- } else {
- graph.setNode(node2.id, node2);
+ elem = stack.pop();
}
}
- log$1.debug("Count=", graph.nodeCount(), graph);
- let cnt2 = 0;
- relations2.forEach(function(relation) {
- cnt2++;
- log$1.debug("Setting edge", relation);
- graph.setEdge(
- relation.id1,
- relation.id2,
- {
- relation,
- width: getLabelWidth(relation.title),
- height: conf$2.labelHeight * common$1.getRows(relation.title).length,
- labelpos: "c"
- },
- "id" + cnt2
- );
- });
- layout(graph);
- log$1.debug("Graph after layout", graph.nodes());
- const svgElem = diagram2.node();
- graph.nodes().forEach(function(v) {
- if (v !== void 0 && graph.node(v) !== void 0) {
- log$1.warn("Node " + v + ": " + JSON.stringify(graph.node(v)));
- root2.select("#" + svgElem.id + " #" + v).attr(
- "transform",
- "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + " )"
- );
- root2.select("#" + svgElem.id + " #" + v).attr("data-x-shift", graph.node(v).x - graph.node(v).width / 2);
- const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v + " .divider");
- dividers.forEach((divider2) => {
- const parent = divider2.parentElement;
- let pWidth = 0;
- let pShift = 0;
- if (parent) {
- if (parent.parentElement) {
- pWidth = parent.parentElement.getBBox().width;
- }
- pShift = parseInt(parent.getAttribute("data-x-shift"), 10);
- if (Number.isNaN(pShift)) {
- pShift = 0;
- }
- }
- divider2.setAttribute("x1", 0 - pShift + 8);
- divider2.setAttribute("x2", pWidth - pShift - 8);
- });
- } else {
- log$1.debug("No Node " + v + ": " + JSON.stringify(graph.node(v)));
+ __name(iterate, "iterate");
+ function pass1(elem) {
+ xs[elem] = blockG.inEdges(elem).reduce(function(acc, e3) {
+ return Math.max(acc, xs[e3.v] + blockG.edge(e3));
+ }, 0);
+ }
+ __name(pass1, "pass1");
+ function pass2(elem) {
+ var min9 = blockG.outEdges(elem).reduce(function(acc, e3) {
+ return Math.min(acc, xs[e3.w] - blockG.edge(e3));
+ }, Number.POSITIVE_INFINITY);
+ var node2 = g2.node(elem);
+ if (min9 !== Number.POSITIVE_INFINITY && node2.borderType !== borderType) {
+ xs[elem] = Math.max(xs[elem], min9);
}
+ }
+ __name(pass2, "pass2");
+ iterate(pass1, blockG.predecessors.bind(blockG));
+ iterate(pass2, blockG.successors.bind(blockG));
+ forEach_default(align, function(v3) {
+ xs[v3] = xs[root4[v3]];
});
- let stateBox = svgElem.getBBox();
- graph.edges().forEach(function(e) {
- if (e !== void 0 && graph.edge(e) !== void 0) {
- log$1.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
- drawEdge$1(diagram2, graph.edge(e), graph.edge(e).relation);
- }
+ return xs;
+ }
+ function buildBlockGraph(g2, layering, root4, reverseSep) {
+ var blockGraph = new Graph(), graphLabel = g2.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);
+ forEach_default(layering, function(layer) {
+ var u2;
+ forEach_default(layer, function(v3) {
+ var vRoot = root4[v3];
+ blockGraph.setNode(vRoot);
+ if (u2) {
+ var uRoot = root4[u2], prevMax = blockGraph.edge(uRoot, vRoot);
+ blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g2, v3, u2), prevMax || 0));
+ }
+ u2 = v3;
+ });
});
- stateBox = svgElem.getBBox();
- const stateInfo = {
- id: parentId ? parentId : "root",
- label: parentId ? parentId : "root",
- width: 0,
- height: 0
- };
- stateInfo.width = stateBox.width + 2 * conf$2.padding;
- stateInfo.height = stateBox.height + 2 * conf$2.padding;
- log$1.debug("Doc rendered", stateInfo, graph);
- return stateInfo;
- };
- const renderer$4 = {
- setConf: setConf$2,
- draw: draw$5
- };
- const diagram$5 = {
- parser: parser$6,
- db: db$2,
- renderer: renderer$4,
- styles: styles$3,
- init: (cnf) => {
- if (!cnf.state) {
- cnf.state = {};
- }
- cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
- db$2.clear();
- }
- };
- const stateDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$5
- }, Symbol.toStringTag, { value: "Module" }));
- const SHAPE_STATE = "rect";
- const SHAPE_STATE_WITH_DESC = "rectWithTitle";
- const SHAPE_START = "start";
- const SHAPE_END = "end";
- const SHAPE_DIVIDER = "divider";
- const SHAPE_GROUP = "roundedWithTitle";
- const SHAPE_NOTE = "note";
- const SHAPE_NOTEGROUP = "noteGroup";
- const CSS_DIAGRAM = "statediagram";
- const CSS_STATE = "state";
- const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;
- const CSS_EDGE = "transition";
- const CSS_NOTE = "note";
- const CSS_NOTE_EDGE = "note-edge";
- const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;
- const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;
- const CSS_CLUSTER = "cluster";
- const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;
- const CSS_CLUSTER_ALT = "cluster-alt";
- const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;
- const PARENT = "parent";
- const NOTE = "note";
- const DOMID_STATE = "state";
- const DOMID_TYPE_SPACER = "----";
- const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;
- const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;
- const G_EDGE_STYLE = "fill:none";
- const G_EDGE_ARROWHEADSTYLE = "fill: #333";
- const G_EDGE_LABELPOS = "c";
- const G_EDGE_LABELTYPE = "text";
- const G_EDGE_THICKNESS = "normal";
- let nodeDb$1 = {};
- let graphItemCount = 0;
- const setConf$1 = function(cnf) {
- const keys2 = Object.keys(cnf);
- for (const key of keys2) {
- cnf[key];
- }
- };
- const getClasses$1 = function(text2, diagramObj) {
- log$1.trace("Extracting classes");
- diagramObj.db.clear();
- try {
- diagramObj.parser.parse(text2);
- diagramObj.db.extract(diagramObj.db.getRootDocV2());
- return diagramObj.db.getClasses();
- } catch (e) {
- return e;
- }
- };
- function getClassesFromDbInfo(dbInfoItem) {
- if (dbInfoItem === void 0 || dbInfoItem === null) {
- return "";
- } else {
- if (dbInfoItem.classes) {
- return dbInfoItem.classes.join(" ");
+ return blockGraph;
+ }
+ function findSmallestWidthAlignment(g2, xss) {
+ return minBy_default(values_default(xss), function(xs) {
+ var max10 = Number.NEGATIVE_INFINITY;
+ var min9 = Number.POSITIVE_INFINITY;
+ forIn_default(xs, function(x5, v3) {
+ var halfWidth = width(g2, v3) / 2;
+ max10 = Math.max(x5 + halfWidth, max10);
+ min9 = Math.min(x5 - halfWidth, min9);
+ });
+ return max10 - min9;
+ });
+ }
+ function alignCoordinates(xss, alignTo) {
+ var alignToVals = values_default(alignTo), alignToMin = min_default(alignToVals), alignToMax = max_default(alignToVals);
+ forEach_default(["u", "d"], function(vert) {
+ forEach_default(["l", "r"], function(horiz) {
+ var alignment = vert + horiz, xs = xss[alignment], delta;
+ if (xs === alignTo) return;
+ var xsVals = values_default(xs);
+ delta = horiz === "l" ? alignToMin - min_default(xsVals) : alignToMax - max_default(xsVals);
+ if (delta) {
+ xss[alignment] = mapValues_default(xs, function(x5) {
+ return x5 + delta;
+ });
+ }
+ });
+ });
+ }
+ function balance(xss, align) {
+ return mapValues_default(xss.ul, function(ignore, v3) {
+ if (align) {
+ return xss[align.toLowerCase()][v3];
} else {
- return "";
+ var xs = sortBy_default(map_default(xss, v3));
+ return (xs[1] + xs[2]) / 2;
}
- }
+ });
}
- function stateDomId(itemId = "", counter = 0, type2 = "", typeSpacer = DOMID_TYPE_SPACER) {
- const typeStr = type2 !== null && type2.length > 0 ? `${typeSpacer}${type2}` : "";
- return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;
+ function positionX(g2) {
+ var layering = buildLayerMatrix(g2);
+ var conflicts = merge_default3(findType1Conflicts(g2, layering), findType2Conflicts(g2, layering));
+ var xss = {};
+ var adjustedLayering;
+ forEach_default(["u", "d"], function(vert) {
+ adjustedLayering = vert === "u" ? layering : values_default(layering).reverse();
+ forEach_default(["l", "r"], function(horiz) {
+ if (horiz === "r") {
+ adjustedLayering = map_default(adjustedLayering, function(inner2) {
+ return values_default(inner2).reverse();
+ });
+ }
+ var neighborFn = (vert === "u" ? g2.predecessors : g2.successors).bind(g2);
+ var align = verticalAlignment(g2, adjustedLayering, conflicts, neighborFn);
+ var xs = horizontalCompaction(g2, adjustedLayering, align.root, align.align, horiz === "r");
+ if (horiz === "r") {
+ xs = mapValues_default(xs, function(x5) {
+ return -x5;
+ });
+ }
+ xss[vert + horiz] = xs;
+ });
+ });
+ var smallestWidth = findSmallestWidthAlignment(g2, xss);
+ alignCoordinates(xss, smallestWidth);
+ return balance(xss, g2.graph().align);
}
- const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {
- const itemId = parsedItem.id;
- const classStr = getClassesFromDbInfo(diagramStates[itemId]);
- if (itemId !== "root") {
- let shape = SHAPE_STATE;
- if (parsedItem.start === true) {
- shape = SHAPE_START;
- }
- if (parsedItem.start === false) {
- shape = SHAPE_END;
+ function sep(nodeSep, edgeSep, reverseSep) {
+ return function(g2, v3, w3) {
+ var vLabel = g2.node(v3);
+ var wLabel = g2.node(w3);
+ var sum2 = 0;
+ var delta;
+ sum2 += vLabel.width / 2;
+ if (has_default(vLabel, "labelpos")) {
+ switch (vLabel.labelpos.toLowerCase()) {
+ case "l":
+ delta = -vLabel.width / 2;
+ break;
+ case "r":
+ delta = vLabel.width / 2;
+ break;
+ }
}
- if (parsedItem.type !== DEFAULT_STATE_TYPE) {
- shape = parsedItem.type;
+ if (delta) {
+ sum2 += reverseSep ? delta : -delta;
}
- if (!nodeDb$1[itemId]) {
- nodeDb$1[itemId] = {
- id: itemId,
- shape,
- description: common$1.sanitizeText(itemId, getConfig$1()),
- classes: `${classStr} ${CSS_DIAGRAM_STATE}`
- };
+ delta = 0;
+ sum2 += (vLabel.dummy ? edgeSep : nodeSep) / 2;
+ sum2 += (wLabel.dummy ? edgeSep : nodeSep) / 2;
+ sum2 += wLabel.width / 2;
+ if (has_default(wLabel, "labelpos")) {
+ switch (wLabel.labelpos.toLowerCase()) {
+ case "l":
+ delta = wLabel.width / 2;
+ break;
+ case "r":
+ delta = -wLabel.width / 2;
+ break;
+ }
}
- const newNode = nodeDb$1[itemId];
- if (parsedItem.description) {
- if (Array.isArray(newNode.description)) {
- newNode.shape = SHAPE_STATE_WITH_DESC;
- newNode.description.push(parsedItem.description);
- } else {
- if (newNode.description.length > 0) {
- newNode.shape = SHAPE_STATE_WITH_DESC;
- if (newNode.description === itemId) {
- newNode.description = [parsedItem.description];
- } else {
- newNode.description = [newNode.description, parsedItem.description];
- }
- } else {
- newNode.shape = SHAPE_STATE;
- newNode.description = parsedItem.description;
- }
- }
- newNode.description = common$1.sanitizeTextOrArray(newNode.description, getConfig$1());
- }
- if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {
- newNode.shape = SHAPE_STATE;
- }
- if (!newNode.type && parsedItem.doc) {
- log$1.info("Setting cluster for ", itemId, getDir(parsedItem));
- newNode.type = "group";
- newNode.dir = getDir(parsedItem);
- newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;
- newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : "");
- }
- const nodeData = {
- labelStyle: "",
- shape: newNode.shape,
- labelText: newNode.description,
- // typeof newNode.description === 'object'
- // ? newNode.description[0]
- // : newNode.description,
- classes: newNode.classes,
- style: "",
- //styles.style,
- id: itemId,
- dir: newNode.dir,
- domId: stateDomId(itemId, graphItemCount),
- type: newNode.type,
- padding: 15
- //getConfig().flowchart.padding
- };
- nodeData.centerLabel = true;
- if (parsedItem.note) {
- const noteData = {
- labelStyle: "",
- shape: SHAPE_NOTE,
- labelText: parsedItem.note.text,
- classes: CSS_DIAGRAM_NOTE,
- // useHtmlLabels: false,
- style: "",
- // styles.style,
- id: itemId + NOTE_ID + "-" + graphItemCount,
- domId: stateDomId(itemId, graphItemCount, NOTE),
- type: newNode.type,
- padding: 15
- //getConfig().flowchart.padding
- };
- const groupData = {
- labelStyle: "",
- shape: SHAPE_NOTEGROUP,
- labelText: parsedItem.note.text,
- classes: newNode.classes,
- style: "",
- // styles.style,
- id: itemId + PARENT_ID,
- domId: stateDomId(itemId, graphItemCount, PARENT),
- type: "group",
- padding: 0
- //getConfig().flowchart.padding
- };
- graphItemCount++;
- const parentNodeId = itemId + PARENT_ID;
- g.setNode(parentNodeId, groupData);
- g.setNode(noteData.id, noteData);
- g.setNode(itemId, nodeData);
- g.setParent(itemId, parentNodeId);
- g.setParent(noteData.id, parentNodeId);
- let from2 = itemId;
- let to = noteData.id;
- if (parsedItem.note.position === "left of") {
- from2 = noteData.id;
- to = itemId;
- }
- g.setEdge(from2, to, {
- arrowhead: "none",
- arrowType: "",
- style: G_EDGE_STYLE,
- labelStyle: "",
- classes: CSS_EDGE_NOTE_EDGE,
- arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
- labelpos: G_EDGE_LABELPOS,
- labelType: G_EDGE_LABELTYPE,
- thickness: G_EDGE_THICKNESS
- });
- } else {
- g.setNode(itemId, nodeData);
+ if (delta) {
+ sum2 += reverseSep ? delta : -delta;
}
+ delta = 0;
+ return sum2;
+ };
+ }
+ function width(g2, v3) {
+ return g2.node(v3).width;
+ }
+ var init_bk = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/position/bk.js"() {
+ "use strict";
+ init_lodash();
+ init_graphlib();
+ init_util3();
+ __name(findType1Conflicts, "findType1Conflicts");
+ __name(findType2Conflicts, "findType2Conflicts");
+ __name(findOtherInnerSegmentNode, "findOtherInnerSegmentNode");
+ __name(addConflict, "addConflict");
+ __name(hasConflict, "hasConflict");
+ __name(verticalAlignment, "verticalAlignment");
+ __name(horizontalCompaction, "horizontalCompaction");
+ __name(buildBlockGraph, "buildBlockGraph");
+ __name(findSmallestWidthAlignment, "findSmallestWidthAlignment");
+ __name(alignCoordinates, "alignCoordinates");
+ __name(balance, "balance");
+ __name(positionX, "positionX");
+ __name(sep, "sep");
+ __name(width, "width");
}
- if (parent && parent.id !== "root") {
- log$1.trace("Setting node ", itemId, " to be child of its parent ", parent.id);
- g.setParent(itemId, parent.id);
- }
- if (parsedItem.doc) {
- log$1.trace("Adding nodes children ");
- setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/position/index.js
+ function position(g2) {
+ g2 = asNonCompoundGraph(g2);
+ positionY(g2);
+ forOwn_default(positionX(g2), function(x5, v3) {
+ g2.node(v3).x = x5;
+ });
+ }
+ function positionY(g2) {
+ var layering = buildLayerMatrix(g2);
+ var rankSep = g2.graph().ranksep;
+ var prevY = 0;
+ forEach_default(layering, function(layer) {
+ var maxHeight = max_default(
+ map_default(layer, function(v3) {
+ return g2.node(v3).height;
+ })
+ );
+ forEach_default(layer, function(v3) {
+ g2.node(v3).y = prevY + maxHeight / 2;
+ });
+ prevY += maxHeight + rankSep;
+ });
+ }
+ var init_position = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/position/index.js"() {
+ "use strict";
+ init_lodash();
+ init_util3();
+ init_bk();
+ __name(position, "position");
+ __name(positionY, "positionY");
}
- };
- const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {
- log$1.trace("items", doc);
- doc.forEach((item) => {
- switch (item.stmt) {
- case STMT_STATE:
- setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
- break;
- case DEFAULT_STATE_TYPE:
- setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
- break;
- case STMT_RELATION:
- {
- setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);
- setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);
- const edgeData = {
- id: "edge" + graphItemCount,
- arrowhead: "normal",
- arrowTypeEnd: "arrow_barb",
- style: G_EDGE_STYLE,
- labelStyle: "",
- label: common$1.sanitizeText(item.description, getConfig$1()),
- arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
- labelpos: G_EDGE_LABELPOS,
- labelType: G_EDGE_LABELTYPE,
- thickness: G_EDGE_THICKNESS,
- classes: CSS_EDGE
- };
- g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount);
- graphItemCount++;
- }
- break;
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/layout.js
+ function layout(g2, opts) {
+ var time4 = opts && opts.debugTiming ? time2 : notime;
+ time4("layout", function() {
+ var layoutGraph = time4(" buildLayoutGraph", function() {
+ return buildLayoutGraph(g2);
+ });
+ time4(" runLayout", function() {
+ runLayout(layoutGraph, time4);
+ });
+ time4(" updateInputGraph", function() {
+ updateInputGraph(g2, layoutGraph);
+ });
+ });
+ }
+ function runLayout(g2, time4) {
+ time4(" makeSpaceForEdgeLabels", function() {
+ makeSpaceForEdgeLabels(g2);
+ });
+ time4(" removeSelfEdges", function() {
+ removeSelfEdges(g2);
+ });
+ time4(" acyclic", function() {
+ run(g2);
+ });
+ time4(" nestingGraph.run", function() {
+ run3(g2);
+ });
+ time4(" rank", function() {
+ rank(asNonCompoundGraph(g2));
+ });
+ time4(" injectEdgeLabelProxies", function() {
+ injectEdgeLabelProxies(g2);
+ });
+ time4(" removeEmptyRanks", function() {
+ removeEmptyRanks(g2);
+ });
+ time4(" nestingGraph.cleanup", function() {
+ cleanup(g2);
+ });
+ time4(" normalizeRanks", function() {
+ normalizeRanks(g2);
+ });
+ time4(" assignRankMinMax", function() {
+ assignRankMinMax(g2);
+ });
+ time4(" removeEdgeLabelProxies", function() {
+ removeEdgeLabelProxies(g2);
+ });
+ time4(" normalize.run", function() {
+ run2(g2);
+ });
+ time4(" parentDummyChains", function() {
+ parentDummyChains(g2);
+ });
+ time4(" addBorderSegments", function() {
+ addBorderSegments(g2);
+ });
+ time4(" order", function() {
+ order(g2);
+ });
+ time4(" insertSelfEdges", function() {
+ insertSelfEdges(g2);
+ });
+ time4(" adjustCoordinateSystem", function() {
+ adjust2(g2);
+ });
+ time4(" position", function() {
+ position(g2);
+ });
+ time4(" positionSelfEdges", function() {
+ positionSelfEdges(g2);
+ });
+ time4(" removeBorderNodes", function() {
+ removeBorderNodes(g2);
+ });
+ time4(" normalize.undo", function() {
+ undo3(g2);
+ });
+ time4(" fixupEdgeLabelCoords", function() {
+ fixupEdgeLabelCoords(g2);
+ });
+ time4(" undoCoordinateSystem", function() {
+ undo2(g2);
+ });
+ time4(" translateGraph", function() {
+ translateGraph(g2);
+ });
+ time4(" assignNodeIntersects", function() {
+ assignNodeIntersects(g2);
+ });
+ time4(" reversePoints", function() {
+ reversePointsForReversedEdges(g2);
+ });
+ time4(" acyclic.undo", function() {
+ undo(g2);
+ });
+ }
+ function updateInputGraph(inputGraph, layoutGraph) {
+ forEach_default(inputGraph.nodes(), function(v3) {
+ var inputLabel = inputGraph.node(v3);
+ var layoutLabel = layoutGraph.node(v3);
+ if (inputLabel) {
+ inputLabel.x = layoutLabel.x;
+ inputLabel.y = layoutLabel.y;
+ if (layoutGraph.children(v3).length) {
+ inputLabel.width = layoutLabel.width;
+ inputLabel.height = layoutLabel.height;
+ }
}
});
- };
- const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {
- let dir = defaultDir;
- if (parsedItem.doc) {
- for (let i2 = 0; i2 < parsedItem.doc.length; i2++) {
- const parsedItemDoc = parsedItem.doc[i2];
- if (parsedItemDoc.stmt === "dir") {
- dir = parsedItemDoc.value;
+ forEach_default(inputGraph.edges(), function(e3) {
+ var inputLabel = inputGraph.edge(e3);
+ var layoutLabel = layoutGraph.edge(e3);
+ inputLabel.points = layoutLabel.points;
+ if (has_default(layoutLabel, "x")) {
+ inputLabel.x = layoutLabel.x;
+ inputLabel.y = layoutLabel.y;
+ }
+ });
+ inputGraph.graph().width = layoutGraph.graph().width;
+ inputGraph.graph().height = layoutGraph.graph().height;
+ }
+ function buildLayoutGraph(inputGraph) {
+ var g2 = new Graph({ multigraph: true, compound: true });
+ var graph = canonicalize(inputGraph.graph());
+ g2.setGraph(
+ merge_default3({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), pick_default(graph, graphAttrs))
+ );
+ forEach_default(inputGraph.nodes(), function(v3) {
+ var node2 = canonicalize(inputGraph.node(v3));
+ g2.setNode(v3, defaults_default(selectNumberAttrs(node2, nodeNumAttrs), nodeDefaults));
+ g2.setParent(v3, inputGraph.parent(v3));
+ });
+ forEach_default(inputGraph.edges(), function(e3) {
+ var edge = canonicalize(inputGraph.edge(e3));
+ g2.setEdge(
+ e3,
+ merge_default3({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), pick_default(edge, edgeAttrs))
+ );
+ });
+ return g2;
+ }
+ function makeSpaceForEdgeLabels(g2) {
+ var graph = g2.graph();
+ graph.ranksep /= 2;
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ edge.minlen *= 2;
+ if (edge.labelpos.toLowerCase() !== "c") {
+ if (graph.rankdir === "TB" || graph.rankdir === "BT") {
+ edge.width += edge.labeloffset;
+ } else {
+ edge.height += edge.labeloffset;
}
}
- }
- return dir;
- };
- const draw$4 = async function(text2, id2, _version, diag) {
- log$1.info("Drawing state diagram (v2)", id2);
- nodeDb$1 = {};
- diag.db.getDirection();
- const { securityLevel, state: conf2 } = getConfig$1();
- const nodeSpacing = conf2.nodeSpacing || 50;
- const rankSpacing = conf2.rankSpacing || 50;
- log$1.info(diag.db.getRootDocV2());
- diag.db.extract(diag.db.getRootDocV2());
- log$1.info(diag.db.getRootDocV2());
- const diagramStates = diag.db.getStates();
- const g = new Graph({
- multigraph: true,
- compound: true
- }).setGraph({
- rankdir: getDir(diag.db.getRootDocV2()),
- nodesep: nodeSpacing,
- ranksep: rankSpacing,
- marginx: 8,
- marginy: 8
- }).setDefaultEdgeLabel(function() {
- return {};
});
- setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true);
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const svg2 = root2.select(`[id="${id2}"]`);
- const element = root2.select("#" + id2 + " g");
- await render(element, g, ["barb"], CSS_DIAGRAM, id2);
- const padding2 = 8;
- utils.insertTitle(svg2, "statediagramTitleText", conf2.titleTopMargin, diag.db.getDiagramTitle());
- const bounds2 = svg2.node().getBBox();
- const width2 = bounds2.width + padding2 * 2;
- const height2 = bounds2.height + padding2 * 2;
- svg2.attr("class", CSS_DIAGRAM);
- const svgBounds = svg2.node().getBBox();
- configureSvgSize(svg2, height2, width2, conf2.useMaxWidth);
- const vBox = `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${width2} ${height2}`;
- log$1.debug(`viewBox ${vBox}`);
- svg2.attr("viewBox", vBox);
- const labels = document.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
- for (const label of labels) {
- const dim = label.getBBox();
- const rect2 = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE);
- rect2.setAttribute("rx", 0);
- rect2.setAttribute("ry", 0);
- rect2.setAttribute("width", dim.width);
- rect2.setAttribute("height", dim.height);
- label.insertBefore(rect2, label.firstChild);
- }
- };
- const renderer$3 = {
- setConf: setConf$1,
- getClasses: getClasses$1,
- draw: draw$4
- };
- const diagram$4 = {
- parser: parser$6,
- db: db$2,
- renderer: renderer$3,
- styles: styles$3,
- init: (cnf) => {
- if (!cnf.state) {
- cnf.state = {};
- }
- cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
- db$2.clear();
- }
- };
- const stateDiagramV2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$4
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$3 = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 24, 26], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 24], $Va = [4, 6, 9, 11, 17, 18, 20, 22, 23, 24, 26];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "taskName": 24, "taskData": 25, "open_directive": 26, "type_directive": 27, "arg_directive": 28, "close_directive": 29, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 4: "journey", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 24: "taskName", 25: "taskData", 26: "open_directive", 27: "type_directive", 28: "arg_directive", 29: "close_directive" },
- productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 1:
- return $$[$0 - 1];
- case 3:
- this.$ = [];
- break;
- case 4:
- $$[$0 - 1].push($$[$0]);
- this.$ = $$[$0 - 1];
- break;
- case 5:
- case 6:
- this.$ = $$[$0];
- break;
- case 7:
- case 8:
- this.$ = [];
- break;
- case 11:
- yy.setDiagramTitle($$[$0].substr(6));
- this.$ = $$[$0].substr(6);
- break;
- case 12:
- this.$ = $$[$0].trim();
- yy.setAccTitle(this.$);
- break;
- case 13:
- case 14:
- this.$ = $$[$0].trim();
- yy.setAccDescription(this.$);
- break;
- case 15:
- yy.addSection($$[$0].substr(8));
- this.$ = $$[$0].substr(8);
- break;
- case 16:
- yy.addTask($$[$0 - 1], $$[$0]);
- this.$ = "task";
- break;
- case 18:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 19:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 20:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
+ }
+ function injectEdgeLabelProxies(g2) {
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ if (edge.width && edge.height) {
+ var v3 = g2.node(e3.v);
+ var w3 = g2.node(e3.w);
+ var label = { rank: (w3.rank - v3.rank) / 2 + v3.rank, e: e3 };
+ addDummyNode(g2, "edge-proxy", label, "_ep");
+ }
+ });
+ }
+ function assignRankMinMax(g2) {
+ var maxRank2 = 0;
+ forEach_default(g2.nodes(), function(v3) {
+ var node2 = g2.node(v3);
+ if (node2.borderTop) {
+ node2.minRank = g2.node(node2.borderTop).rank;
+ node2.maxRank = g2.node(node2.borderBottom).rank;
+ maxRank2 = max_default(maxRank2, node2.maxRank);
+ }
+ });
+ g2.graph().maxRank = maxRank2;
+ }
+ function removeEdgeLabelProxies(g2) {
+ forEach_default(g2.nodes(), function(v3) {
+ var node2 = g2.node(v3);
+ if (node2.dummy === "edge-proxy") {
+ g2.edge(node2.e).labelRank = node2.rank;
+ g2.removeNode(v3);
+ }
+ });
+ }
+ function translateGraph(g2) {
+ var minX = Number.POSITIVE_INFINITY;
+ var maxX = 0;
+ var minY = Number.POSITIVE_INFINITY;
+ var maxY = 0;
+ var graphLabel = g2.graph();
+ var marginX = graphLabel.marginx || 0;
+ var marginY = graphLabel.marginy || 0;
+ function getExtremes(attrs) {
+ var x5 = attrs.x;
+ var y5 = attrs.y;
+ var w3 = attrs.width;
+ var h2 = attrs.height;
+ minX = Math.min(minX, x5 - w3 / 2);
+ maxX = Math.max(maxX, x5 + w3 / 2);
+ minY = Math.min(minY, y5 - h2 / 2);
+ maxY = Math.max(maxY, y5 + h2 / 2);
+ }
+ __name(getExtremes, "getExtremes");
+ forEach_default(g2.nodes(), function(v3) {
+ getExtremes(g2.node(v3));
+ });
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ if (has_default(edge, "x")) {
+ getExtremes(edge);
+ }
+ });
+ minX -= marginX;
+ minY -= marginY;
+ forEach_default(g2.nodes(), function(v3) {
+ var node2 = g2.node(v3);
+ node2.x -= minX;
+ node2.y -= minY;
+ });
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ forEach_default(edge.points, function(p3) {
+ p3.x -= minX;
+ p3.y -= minY;
+ });
+ if (has_default(edge, "x")) {
+ edge.x -= minX;
+ }
+ if (has_default(edge, "y")) {
+ edge.y -= minY;
+ }
+ });
+ graphLabel.width = maxX - minX + marginX;
+ graphLabel.height = maxY - minY + marginY;
+ }
+ function assignNodeIntersects(g2) {
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ var nodeV = g2.node(e3.v);
+ var nodeW = g2.node(e3.w);
+ var p1, p22;
+ if (!edge.points) {
+ edge.points = [];
+ p1 = nodeW;
+ p22 = nodeV;
+ } else {
+ p1 = edge.points[0];
+ p22 = edge.points[edge.points.length - 1];
+ }
+ edge.points.unshift(intersectRect3(nodeV, p1));
+ edge.points.push(intersectRect3(nodeW, p22));
+ });
+ }
+ function fixupEdgeLabelCoords(g2) {
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ if (has_default(edge, "x")) {
+ if (edge.labelpos === "l" || edge.labelpos === "r") {
+ edge.width -= edge.labeloffset;
+ }
+ switch (edge.labelpos) {
+ case "l":
+ edge.x -= edge.width / 2 + edge.labeloffset;
break;
- case 21:
- yy.parseDirective("}%%", "close_directive", "journey");
+ case "r":
+ edge.x += edge.width / 2 + edge.labeloffset;
break;
}
- },
- table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 13: 8, 27: [1, 9] }, { 27: [2, 18] }, { 6: [1, 10], 7: 21, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, { 1: [2, 2] }, { 14: 22, 15: [1, 23], 29: $V9 }, o([15, 29], [2, 19]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 21, 10: 25, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 26] }, { 21: [1, 27] }, o($V2, [2, 14]), o($V2, [2, 15]), { 25: [1, 28] }, o($V2, [2, 17]), { 11: [1, 29] }, { 16: 30, 28: [1, 31] }, { 11: [2, 21] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 16]), o($Va, [2, 9]), { 14: 32, 29: $V9 }, { 29: [2, 20] }, { 11: [1, 33] }, o($Va, [2, 10])],
- defaultActions: { 5: [2, 18], 7: [2, 2], 24: [2, 21], 31: [2, 20] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
+ }
+ });
+ }
+ function reversePointsForReversedEdges(g2) {
+ forEach_default(g2.edges(), function(e3) {
+ var edge = g2.edge(e3);
+ if (edge.reversed) {
+ edge.points.reverse();
+ }
+ });
+ }
+ function removeBorderNodes(g2) {
+ forEach_default(g2.nodes(), function(v3) {
+ if (g2.children(v3).length) {
+ var node2 = g2.node(v3);
+ var t4 = g2.node(node2.borderTop);
+ var b2 = g2.node(node2.borderBottom);
+ var l2 = g2.node(last_default(node2.borderLeft));
+ var r2 = g2.node(last_default(node2.borderRight));
+ node2.width = Math.abs(r2.x - l2.x);
+ node2.height = Math.abs(b2.y - t4.y);
+ node2.x = l2.x + node2.width / 2;
+ node2.y = t4.y + node2.height / 2;
+ }
+ });
+ forEach_default(g2.nodes(), function(v3) {
+ if (g2.node(v3).dummy === "border") {
+ g2.removeNode(v3);
+ }
+ });
+ }
+ function removeSelfEdges(g2) {
+ forEach_default(g2.edges(), function(e3) {
+ if (e3.v === e3.w) {
+ var node2 = g2.node(e3.v);
+ if (!node2.selfEdges) {
+ node2.selfEdges = [];
}
+ node2.selfEdges.push({ e: e3, label: g2.edge(e3) });
+ g2.removeEdge(e3);
+ }
+ });
+ }
+ function insertSelfEdges(g2) {
+ var layers = buildLayerMatrix(g2);
+ forEach_default(layers, function(layer) {
+ var orderShift = 0;
+ forEach_default(layer, function(v3, i2) {
+ var node2 = g2.node(v3);
+ node2.order = i2 + orderShift;
+ forEach_default(node2.selfEdges, function(selfEdge) {
+ addDummyNode(
+ g2,
+ "selfedge",
+ {
+ width: selfEdge.label.width,
+ height: selfEdge.label.height,
+ rank: node2.rank,
+ order: i2 + ++orderShift,
+ e: selfEdge.e,
+ label: selfEdge.label
+ },
+ "_se"
+ );
+ });
+ delete node2.selfEdges;
+ });
+ });
+ }
+ function positionSelfEdges(g2) {
+ forEach_default(g2.nodes(), function(v3) {
+ var node2 = g2.node(v3);
+ if (node2.dummy === "selfedge") {
+ var selfNode = g2.node(node2.e.v);
+ var x5 = selfNode.x + selfNode.width / 2;
+ var y5 = selfNode.y;
+ var dx = node2.x - x5;
+ var dy = selfNode.height / 2;
+ g2.setEdge(node2.e, node2.label);
+ g2.removeNode(v3);
+ node2.label.points = [
+ { x: x5 + 2 * dx / 3, y: y5 - dy },
+ { x: x5 + 5 * dx / 6, y: y5 - dy },
+ { x: x5 + dx, y: y5 },
+ { x: x5 + 5 * dx / 6, y: y5 + dy },
+ { x: x5 + 2 * dx / 3, y: y5 + dy }
+ ];
+ node2.label.x = node2.x;
+ node2.label.y = node2.y;
+ }
+ });
+ }
+ function selectNumberAttrs(obj, attrs) {
+ return mapValues_default(pick_default(obj, attrs), Number);
+ }
+ function canonicalize(attrs) {
+ var newAttrs = {};
+ forEach_default(attrs, function(v3, k2) {
+ newAttrs[k2.toLowerCase()] = v3;
+ });
+ return newAttrs;
+ }
+ var graphNumAttrs, graphDefaults, graphAttrs, nodeNumAttrs, nodeDefaults, edgeNumAttrs, edgeDefaults, edgeAttrs;
+ var init_layout = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/layout.js"() {
+ "use strict";
+ init_lodash();
+ init_graphlib();
+ init_add_border_segments();
+ init_coordinate_system();
+ init_acyclic();
+ init_normalize();
+ init_rank();
+ init_nesting_graph();
+ init_order2();
+ init_parent_dummy_chains();
+ init_position();
+ init_util3();
+ __name(layout, "layout");
+ __name(runLayout, "runLayout");
+ __name(updateInputGraph, "updateInputGraph");
+ graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
+ graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
+ graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
+ nodeNumAttrs = ["width", "height"];
+ nodeDefaults = { width: 0, height: 0 };
+ edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
+ edgeDefaults = {
+ minlen: 1,
+ weight: 1,
+ width: 0,
+ height: 0,
+ labeloffset: 10,
+ labelpos: "r"
+ };
+ edgeAttrs = ["labelpos"];
+ __name(buildLayoutGraph, "buildLayoutGraph");
+ __name(makeSpaceForEdgeLabels, "makeSpaceForEdgeLabels");
+ __name(injectEdgeLabelProxies, "injectEdgeLabelProxies");
+ __name(assignRankMinMax, "assignRankMinMax");
+ __name(removeEdgeLabelProxies, "removeEdgeLabelProxies");
+ __name(translateGraph, "translateGraph");
+ __name(assignNodeIntersects, "assignNodeIntersects");
+ __name(fixupEdgeLabelCoords, "fixupEdgeLabelCoords");
+ __name(reversePointsForReversedEdges, "reversePointsForReversedEdges");
+ __name(removeBorderNodes, "removeBorderNodes");
+ __name(removeSelfEdges, "removeSelfEdges");
+ __name(insertSelfEdges, "insertSelfEdges");
+ __name(positionSelfEdges, "positionSelfEdges");
+ __name(selectNumberAttrs, "selectNumberAttrs");
+ __name(canonicalize, "canonicalize");
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/index.js
+ var init_dagre = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/dagre/index.js"() {
+ "use strict";
+ init_acyclic();
+ init_layout();
+ init_normalize();
+ init_rank();
+ }
+ });
+
+ // ../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/json.js
+ function write(g2) {
+ var json3 = {
+ options: {
+ directed: g2.isDirected(),
+ multigraph: g2.isMultigraph(),
+ compound: g2.isCompound()
},
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
+ nodes: writeNodes(g2),
+ edges: writeEdges(g2)
+ };
+ if (!isUndefined_default(g2.graph())) {
+ json3.value = clone_default2(g2.graph());
+ }
+ return json3;
+ }
+ function writeNodes(g2) {
+ return map_default(g2.nodes(), function(v3) {
+ var nodeValue = g2.node(v3);
+ var parent4 = g2.parent(v3);
+ var node2 = { v: v3 };
+ if (!isUndefined_default(nodeValue)) {
+ node2.value = nodeValue;
+ }
+ if (!isUndefined_default(parent4)) {
+ node2.parent = parent4;
+ }
+ return node2;
+ });
+ }
+ function writeEdges(g2) {
+ return map_default(g2.edges(), function(e3) {
+ var edgeValue = g2.edge(e3);
+ var edge = { v: e3.v, w: e3.w };
+ if (!isUndefined_default(e3.name)) {
+ edge.name = e3.name;
+ }
+ if (!isUndefined_default(edgeValue)) {
+ edge.value = edgeValue;
+ }
+ return edge;
+ });
+ }
+ var init_json = __esm({
+ "../../node_modules/.pnpm/dagre-d3-es@7.0.10/node_modules/dagre-d3-es/src/graphlib/json.js"() {
+ "use strict";
+ init_lodash();
+ init_graph();
+ __name(write, "write");
+ __name(writeNodes, "writeNodes");
+ __name(writeEdges, "writeEdges");
+ }
+ });
+
+ // src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js
+ var clusterDb, descendants, parents, clear8, isDescendant2, edgeInCluster, copy2, extractDescendants, findCommonEdges, findNonClusterChild, getAnchorId, adjustClustersAndEdges, extractor, sorter, sortNodesByHierarchy;
+ var init_mermaid_graphlib = __esm({
+ "src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js"() {
+ "use strict";
+ init_logger();
+ init_graphlib();
+ init_json();
+ clusterDb = /* @__PURE__ */ new Map();
+ descendants = /* @__PURE__ */ new Map();
+ parents = /* @__PURE__ */ new Map();
+ clear8 = /* @__PURE__ */ __name(() => {
+ descendants.clear();
+ parents.clear();
+ clusterDb.clear();
+ }, "clear");
+ isDescendant2 = /* @__PURE__ */ __name((id27, ancestorId) => {
+ const ancestorDescendants = descendants.get(ancestorId) || [];
+ log.trace("In isDescendant", ancestorId, " ", id27, " = ", ancestorDescendants.includes(id27));
+ return ancestorDescendants.includes(id27);
+ }, "isDescendant");
+ edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {
+ const clusterDescendants = descendants.get(clusterId) || [];
+ log.info("Descendants of ", clusterId, " is ", clusterDescendants);
+ log.info("Edge is ", edge);
+ if (edge.v === clusterId || edge.w === clusterId) {
+ return false;
}
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
+ if (!clusterDescendants) {
+ log.debug("Tilt, ", clusterId, ",not in descendants");
+ return false;
}
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
+ return clusterDescendants.includes(edge.v) || isDescendant2(edge.v, clusterId) || isDescendant2(edge.w, clusterId) || clusterDescendants.includes(edge.w);
+ }, "edgeInCluster");
+ copy2 = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {
+ log.warn(
+ "Copying children of ",
+ clusterId,
+ "root",
+ rootId,
+ "data",
+ graph.node(clusterId),
+ rootId
+ );
+ const nodes6 = graph.children(clusterId) || [];
+ if (clusterId !== rootId) {
+ nodes6.push(clusterId);
+ }
+ log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes6);
+ nodes6.forEach((node2) => {
+ if (graph.children(node2).length > 0) {
+ copy2(node2, graph, newGraph, rootId);
} else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
+ const data5 = graph.node(node2);
+ log.info("cp ", node2, " to ", rootId, " with parent ", clusterId);
+ newGraph.setNode(node2, data5);
+ if (rootId !== graph.parent(node2)) {
+ log.warn("Setting parent", node2, graph.parent(node2));
+ newGraph.setParent(node2, graph.parent(node2));
+ }
+ if (clusterId !== rootId && node2 !== clusterId) {
+ log.debug("Setting parent", node2, clusterId);
+ newGraph.setParent(node2, clusterId);
+ } else {
+ log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
+ log.debug(
+ "Not Setting parent for node=",
+ node2,
+ "cluster!==rootId",
+ clusterId !== rootId,
+ "node!==clusterId",
+ node2 !== clusterId
+ );
}
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
+ const edges5 = graph.edges(node2);
+ log.debug("Copying Edges", edges5);
+ edges5.forEach((edge) => {
+ log.info("Edge", edge);
+ const data6 = graph.edge(edge.v, edge.w, edge.name);
+ log.info("Edge data", data6, rootId);
+ try {
+ if (edgeInCluster(edge, rootId)) {
+ log.info("Copying as ", edge.v, edge.w, data6, edge.name);
+ newGraph.setEdge(edge.v, edge.w, data6, edge.name);
+ log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
+ } else {
+ log.info(
+ "Skipping copy of edge ",
+ edge.v,
+ "-->",
+ edge.w,
+ " rootId: ",
+ rootId,
+ " clusterId:",
+ clusterId
+ );
+ }
+ } catch (e3) {
+ log.error(e3);
}
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
});
}
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
+ log.debug("Removing node", node2);
+ graph.removeNode(node2);
+ });
+ }, "copy");
+ extractDescendants = /* @__PURE__ */ __name((id27, graph) => {
+ const children2 = graph.children(id27);
+ let res = [...children2];
+ for (const child of children2) {
+ parents.set(child, id27);
+ res = [...res, ...extractDescendants(child, graph)];
}
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
+ return res;
+ }, "extractDescendants");
+ findCommonEdges = /* @__PURE__ */ __name((graph, id1, id27) => {
+ const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);
+ const edges22 = graph.edges().filter((edge) => edge.v === id27 || edge.w === id27);
+ const edges1Prim = edges1.map((edge) => {
+ return { v: edge.v === id1 ? id27 : edge.v, w: edge.w === id1 ? id1 : edge.w };
+ });
+ const edges2Prim = edges22.map((edge) => {
+ return { v: edge.v, w: edge.w };
+ });
+ const result = edges1Prim.filter((edgeIn1) => {
+ return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);
+ });
+ return result;
+ }, "findCommonEdges");
+ findNonClusterChild = /* @__PURE__ */ __name((id27, graph, clusterId) => {
+ const children2 = graph.children(id27);
+ log.trace("Searching children of id ", id27, children2);
+ if (children2.length < 1) {
+ return id27;
+ }
+ let reserve;
+ for (const child of children2) {
+ const _id = findNonClusterChild(child, graph, clusterId);
+ const commonEdges = findCommonEdges(graph, clusterId, _id);
+ if (_id) {
+ if (commonEdges.length > 0) {
+ reserve = _id;
+ } else {
+ return _id;
+ }
}
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
+ }
+ return reserve;
+ }, "findNonClusterChild");
+ getAnchorId = /* @__PURE__ */ __name((id27) => {
+ if (!clusterDb.has(id27)) {
+ return id27;
+ }
+ if (!clusterDb.get(id27).externalConnections) {
+ return id27;
+ }
+ if (clusterDb.has(id27)) {
+ return clusterDb.get(id27).id;
+ }
+ return id27;
+ }, "getAnchorId");
+ adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {
+ if (!graph || depth > 10) {
+ log.debug("Opting out, no graph ");
+ return;
+ } else {
+ log.debug("Opting in, graph ");
+ }
+ graph.nodes().forEach(function(id27) {
+ const children2 = graph.children(id27);
+ if (children2.length > 0) {
+ log.warn(
+ "Cluster identified",
+ id27,
+ " Replacement id in edges: ",
+ findNonClusterChild(id27, graph, id27)
+ );
+ descendants.set(id27, extractDescendants(id27, graph));
+ clusterDb.set(id27, { id: findNonClusterChild(id27, graph, id27), clusterData: graph.node(id27) });
}
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
+ });
+ graph.nodes().forEach(function(id27) {
+ const children2 = graph.children(id27);
+ const edges5 = graph.edges();
+ if (children2.length > 0) {
+ log.debug("Cluster identified", id27, descendants);
+ edges5.forEach((edge) => {
+ const d1 = isDescendant2(edge.v, id27);
+ const d2 = isDescendant2(edge.w, id27);
+ if (d1 ^ d2) {
+ log.warn("Edge: ", edge, " leaves cluster ", id27);
+ log.warn("Descendants of XXX ", id27, ": ", descendants.get(id27));
+ clusterDb.get(id27).externalConnections = true;
+ }
+ });
} else {
- this.yylloc.last_column++;
+ log.debug("Not a cluster ", id27, descendants);
}
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ });
+ for (let id27 of clusterDb.keys()) {
+ const nonClusterChild = clusterDb.get(id27).id;
+ const parent4 = graph.parent(nonClusterChild);
+ if (parent4 !== id27 && clusterDb.has(parent4) && !clusterDb.get(parent4).externalConnections) {
+ clusterDb.get(id27).id = parent4;
+ }
+ }
+ graph.edges().forEach(function(e3) {
+ const edge = graph.edge(e3);
+ log.warn("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(e3));
+ log.warn("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(graph.edge(e3)));
+ let v3 = e3.v;
+ let w3 = e3.w;
+ log.warn(
+ "Fix XXX",
+ clusterDb,
+ "ids:",
+ e3.v,
+ e3.w,
+ "Translating: ",
+ clusterDb.get(e3.v),
+ " --- ",
+ clusterDb.get(e3.w)
+ );
+ if (clusterDb.get(e3.v) || clusterDb.get(e3.w)) {
+ log.warn("Fixing and trying - removing XXX", e3.v, e3.w, e3.name);
+ v3 = getAnchorId(e3.v);
+ w3 = getAnchorId(e3.w);
+ graph.removeEdge(e3.v, e3.w, e3.name);
+ if (v3 !== e3.v) {
+ const parent4 = graph.parent(v3);
+ clusterDb.get(parent4).externalConnections = true;
+ edge.fromCluster = e3.v;
+ }
+ if (w3 !== e3.w) {
+ const parent4 = graph.parent(w3);
+ clusterDb.get(parent4).externalConnections = true;
+ edge.toCluster = e3.w;
+ }
+ log.warn("Fix Replacing with XXX", v3, w3, e3.name);
+ graph.setEdge(v3, w3, edge, e3.name);
}
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
+ });
+ log.warn("Adjusted Graph", write(graph));
+ extractor(graph, 0);
+ log.trace(clusterDb);
+ }, "adjustClustersAndEdges");
+ extractor = /* @__PURE__ */ __name((graph, depth) => {
+ log.warn("extractor - ", depth, write(graph), graph.children("D"));
+ if (depth > 10) {
+ log.error("Bailing out");
+ return;
+ }
+ let nodes6 = graph.nodes();
+ let hasChildren = false;
+ for (const node2 of nodes6) {
+ const children2 = graph.children(node2);
+ hasChildren = hasChildren || children2.length > 0;
+ }
+ if (!hasChildren) {
+ log.debug("Done, no node has children", graph.nodes());
+ return;
+ }
+ log.debug("Nodes = ", nodes6, depth);
+ for (const node2 of nodes6) {
+ log.debug(
+ "Extracting node",
+ node2,
+ clusterDb,
+ clusterDb.has(node2) && !clusterDb.get(node2).externalConnections,
+ !graph.parent(node2),
+ graph.node(node2),
+ graph.children("D"),
+ " Depth ",
+ depth
+ );
+ if (!clusterDb.has(node2)) {
+ log.debug("Not a cluster", node2, depth);
+ } else if (!clusterDb.get(node2).externalConnections && graph.children(node2) && graph.children(node2).length > 0) {
+ log.warn(
+ "Cluster without external connections, without a parent and with children",
+ node2,
+ depth
+ );
+ const graphSettings = graph.graph();
+ let dir2 = graphSettings.rankdir === "TB" ? "LR" : "TB";
+ if (clusterDb.get(node2)?.clusterData?.dir) {
+ dir2 = clusterDb.get(node2).clusterData.dir;
+ log.warn("Fixing dir", clusterDb.get(node2).clusterData.dir, dir2);
+ }
+ const clusterGraph = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir2,
+ nodesep: 50,
+ ranksep: 50,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
});
+ log.warn("Old graph before copy", write(graph));
+ copy2(node2, graph, clusterGraph, node2);
+ graph.setNode(node2, {
+ clusterNode: true,
+ id: node2,
+ clusterData: clusterDb.get(node2).clusterData,
+ label: clusterDb.get(node2).label,
+ graph: clusterGraph
+ });
+ log.warn("New graph after copy node: (", node2, ")", write(clusterGraph));
+ log.debug("Old graph after copy", write(graph));
+ } else {
+ log.warn(
+ "Cluster ** ",
+ node2,
+ " **not meeting the criteria !externalConnections:",
+ !clusterDb.get(node2).externalConnections,
+ " no parent: ",
+ !graph.parent(node2),
+ " children ",
+ graph.children(node2) && graph.children(node2).length > 0,
+ graph.children("D"),
+ depth
+ );
+ log.debug(clusterDb);
}
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
+ }
+ nodes6 = graph.nodes();
+ log.warn("New list of nodes", nodes6);
+ for (const node2 of nodes6) {
+ const data5 = graph.node(node2);
+ log.warn(" Now next level", node2, data5);
+ if (data5?.clusterNode) {
+ extractor(data5.graph, depth + 1);
}
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
+ }
+ }, "extractor");
+ sorter = /* @__PURE__ */ __name((graph, nodes6) => {
+ if (nodes6.length === 0) {
+ return [];
+ }
+ let result = Object.assign([], nodes6);
+ nodes6.forEach((node2) => {
+ const children2 = graph.children(node2);
+ const sorted = sorter(graph, children2);
+ result = [...result, ...sorted];
+ });
+ return result;
+ }, "sorter");
+ sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), "sortNodesByHierarchy");
+ }
+ });
+
+ // src/rendering-util/layout-algorithms/dagre/index.js
+ var dagre_exports = {};
+ __export(dagre_exports, {
+ render: () => render3
+ });
+ var recursiveRender, render3;
+ var init_dagre2 = __esm({
+ "src/rendering-util/layout-algorithms/dagre/index.js"() {
+ "use strict";
+ init_dagre();
+ init_json();
+ init_graphlib();
+ init_markers();
+ init_util2();
+ init_mermaid_graphlib();
+ init_nodes3();
+ init_clusters();
+ init_edges();
+ init_logger();
+ init_subGraphTitleMargins();
+ init_diagramAPI();
+ recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id27, parentCluster, siteConfig2) => {
+ log.warn("Graph in recursive render:XAX", write(graph), parentCluster);
+ const dir2 = graph.graph().rankdir;
+ log.trace("Dir in recursive render - dir:", dir2);
+ const elem = _elem.insert("g").attr("class", "root");
+ if (!graph.nodes()) {
+ log.info("No nodes found for", graph);
+ } else {
+ log.info("Recursive render XXX", graph.nodes());
+ }
+ if (graph.edges().length > 0) {
+ log.info("Recursive edges", graph.edge(graph.edges()[0]));
+ }
+ const clusters = elem.insert("g").attr("class", "clusters");
+ const edgePaths = elem.insert("g").attr("class", "edgePaths");
+ const edgeLabels3 = elem.insert("g").attr("class", "edgeLabels");
+ const nodes6 = elem.insert("g").attr("class", "nodes");
+ await Promise.all(
+ graph.nodes().map(async function(v3) {
+ const node2 = graph.node(v3);
+ if (parentCluster !== void 0) {
+ const data5 = JSON.parse(JSON.stringify(parentCluster.clusterData));
+ log.trace(
+ "Setting data for parent cluster XXX\n Node.id = ",
+ v3,
+ "\n data=",
+ data5.height,
+ "\nParent cluster",
+ parentCluster.height
+ );
+ graph.setNode(parentCluster.id, data5);
+ if (!graph.parent(v3)) {
+ log.trace("Setting parent", v3, parentCluster.id);
+ graph.setParent(v3, parentCluster.id, data5);
+ }
+ }
+ log.info("(Insert) Node XXX" + v3 + ": " + JSON.stringify(graph.node(v3)));
+ if (node2?.clusterNode) {
+ log.info("Cluster identified XBX", v3, node2.width, graph.node(v3));
+ const { ranksep, nodesep } = graph.graph();
+ node2.graph.setGraph({
+ ...node2.graph.graph(),
+ ranksep: ranksep + 25,
+ nodesep
+ });
+ const o2 = await recursiveRender(
+ nodes6,
+ node2.graph,
+ diagramType,
+ id27,
+ graph.node(v3),
+ siteConfig2
+ );
+ const newEl = o2.elem;
+ updateNodeBounds2(node2, newEl);
+ node2.diff = o2.diff || 0;
+ log.info(
+ "New compound node after recursive render XAX",
+ v3,
+ "width",
+ // node,
+ node2.width,
+ "height",
+ node2.height
+ // node.x,
+ // node.y
+ );
+ setNodeElem2(newEl, node2);
+ } else {
+ if (graph.children(v3).length > 0) {
+ log.trace(
+ "Cluster - the non recursive path XBX",
+ v3,
+ node2.id,
+ node2,
+ node2.width,
+ "Graph:",
+ graph
+ );
+ log.trace(findNonClusterChild(node2.id, graph));
+ clusterDb.set(node2.id, { id: findNonClusterChild(node2.id, graph), node: node2 });
+ } else {
+ log.trace("Node - the non recursive path XAX", v3, nodes6, graph.node(v3), dir2);
+ await insertNode2(nodes6, graph.node(v3), dir2);
+ }
}
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
+ })
+ );
+ const processEdges = /* @__PURE__ */ __name(async () => {
+ const edgePromises = graph.edges().map(async function(e3) {
+ const edge = graph.edge(e3.v, e3.w, e3.name);
+ log.info("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(e3));
+ log.info("Edge " + e3.v + " -> " + e3.w + ": ", e3, " ", JSON.stringify(graph.edge(e3)));
+ log.info(
+ "Fix",
+ clusterDb,
+ "ids:",
+ e3.v,
+ e3.w,
+ "Translating: ",
+ clusterDb.get(e3.v),
+ clusterDb.get(e3.w)
+ );
+ await insertEdgeLabel(edgeLabels3, edge);
+ });
+ await Promise.all(edgePromises);
+ }, "processEdges");
+ await processEdges();
+ log.info("Graph before layout:", JSON.stringify(write(graph)));
+ log.info("############################################# XXX");
+ log.info("### Layout ### XXX");
+ log.info("############################################# XXX");
+ layout(graph);
+ log.info("Graph after layout:", JSON.stringify(write(graph)));
+ let diff2 = 0;
+ let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig2);
+ await Promise.all(
+ sortNodesByHierarchy(graph).map(async function(v3) {
+ const node2 = graph.node(v3);
+ log.info(
+ "Position XBX => " + v3 + ": (" + node2.x,
+ "," + node2.y,
+ ") width: ",
+ node2.width,
+ " height: ",
+ node2.height
+ );
+ if (node2?.clusterNode) {
+ node2.y += subGraphTitleTotalMargin;
+ log.info(
+ "A tainted cluster node XBX1",
+ v3,
+ node2.id,
+ node2.width,
+ node2.height,
+ node2.x,
+ node2.y,
+ graph.parent(v3)
+ );
+ clusterDb.get(node2.id).node = node2;
+ positionNode2(node2);
+ } else {
+ if (graph.children(v3).length > 0) {
+ log.info(
+ "A pure cluster node XBX1",
+ v3,
+ node2.id,
+ node2.x,
+ node2.y,
+ node2.width,
+ node2.height,
+ graph.parent(v3)
+ );
+ node2.height += subGraphTitleTotalMargin;
+ graph.node(node2.parentId);
+ const halfPadding = node2?.padding / 2 || 0;
+ const labelHeight = node2?.labelBBox?.height || 0;
+ const offsetY = labelHeight - halfPadding || 0;
+ log.debug("OffsetY", offsetY, "labelHeight", labelHeight, "halfPadding", halfPadding);
+ await insertCluster(clusters, node2);
+ clusterDb.get(node2.id).node = node2;
+ } else {
+ const parent4 = graph.node(node2.parentId);
+ node2.y += subGraphTitleTotalMargin / 2;
+ log.info(
+ "A regular node XBX1 - using the padding",
+ node2.id,
+ "parent",
+ node2.parentId,
+ node2.width,
+ node2.height,
+ node2.x,
+ node2.y,
+ "offsetY",
+ node2.offsetY,
+ "parent",
+ parent4,
+ parent4?.offsetY,
+ node2
+ );
+ positionNode2(node2);
}
}
+ })
+ );
+ graph.edges().forEach(function(e3) {
+ const edge = graph.edge(e3);
+ log.info("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(edge), edge);
+ edge.points.forEach((point8) => point8.y += subGraphTitleTotalMargin / 2);
+ const startNode = graph.node(e3.v);
+ var endNode = graph.node(e3.w);
+ const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id27);
+ positionEdgeLabel(edge, paths);
+ });
+ graph.nodes().forEach(function(v3) {
+ const n2 = graph.node(v3);
+ log.info(v3, n2.type, n2.diff);
+ if (n2.isGroup) {
+ diff2 = n2.diff;
}
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
+ });
+ log.warn("Returning from recursive render XAX", elem, diff2);
+ return { elem, diff: diff2 };
+ }, "recursiveRender");
+ render3 = /* @__PURE__ */ __name(async (data4Layout, svg) => {
+ const graph = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: data4Layout.direction,
+ nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,
+ ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const element3 = svg.select("g");
+ markers_default(element3, data4Layout.markers, data4Layout.type, data4Layout.diagramId);
+ clear7();
+ clear6();
+ clear5();
+ clear8();
+ data4Layout.nodes.forEach((node2) => {
+ graph.setNode(node2.id, { ...node2 });
+ if (node2.parentId) {
+ graph.setParent(node2.id, node2.parentId);
}
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
+ });
+ log.debug("Edges:", data4Layout.edges);
+ data4Layout.edges.forEach((edge) => {
+ if (edge.start === edge.end) {
+ const nodeId = edge.start;
+ const specialId1 = nodeId + "---" + nodeId + "---1";
+ const specialId2 = nodeId + "---" + nodeId + "---2";
+ const node2 = graph.node(nodeId);
+ graph.setNode(specialId1, {
+ domId: specialId1,
+ id: specialId1,
+ parentId: node2.parentId,
+ labelStyle: "",
+ label: "",
+ padding: 0,
+ shape: "labelRect",
+ // shape: 'rect',
+ style: "",
+ width: 10,
+ height: 10
});
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
+ graph.setParent(specialId1, node2.parentId);
+ graph.setNode(specialId2, {
+ domId: specialId2,
+ id: specialId2,
+ parentId: node2.parentId,
+ labelStyle: "",
+ padding: 0,
+ // shape: 'rect',
+ shape: "labelRect",
+ label: "",
+ style: "",
+ width: 10,
+ height: 10
+ });
+ graph.setParent(specialId2, node2.parentId);
+ const edge1 = structuredClone(edge);
+ const edgeMid = structuredClone(edge);
+ const edge2 = structuredClone(edge);
+ edge1.label = "";
+ edge1.arrowTypeEnd = "none";
+ edge1.id = nodeId + "-cyclic-special-1";
+ edgeMid.arrowTypeEnd = "none";
+ edgeMid.id = nodeId + "-cyclic-special-mid";
+ edge2.label = "";
+ if (node2.isGroup) {
+ edge1.fromCluster = nodeId;
+ edge2.toCluster = nodeId;
+ }
+ edge2.id = nodeId + "-cyclic-special-2";
+ graph.setEdge(nodeId, specialId1, edge1, nodeId + "-cyclic-special-0");
+ graph.setEdge(specialId1, specialId2, edgeMid, nodeId + "-cyclic-special-1");
+ graph.setEdge(specialId2, nodeId, edge2, nodeId + "-cyc 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
+ });
+ log.warn("Graph at first:", JSON.stringify(write(graph)));
+ adjustClustersAndEdges(graph);
+ log.warn("Graph after XAX:", JSON.stringify(write(graph)));
+ const siteConfig2 = getConfig2();
+ await recursiveRender(
+ element3,
+ graph,
+ data4Layout.type,
+ data4Layout.diagramId,
+ void 0,
+ siteConfig2
+ );
+ }, "render");
+ }
+ });
+
+ // src/rendering-util/render.ts
+ var layoutAlgorithms, registerLayoutLoaders, registerDefaultLayoutLoaders, render4, getRegisteredLayoutAlgorithm;
+ var init_render = __esm({
+ "src/rendering-util/render.ts"() {
+ "use strict";
+ init_internals();
+ init_logger();
+ layoutAlgorithms = {};
+ registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => {
+ for (const loader26 of loaders) {
+ layoutAlgorithms[loader26.name] = loader26;
+ }
+ }, "registerLayoutLoaders");
+ registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
+ registerLayoutLoaders([
+ {
+ name: "dagre",
+ loader: /* @__PURE__ */ __name(async () => await Promise.resolve().then(() => (init_dagre2(), dagre_exports)), "loader")
+ }
+ ]);
+ }, "registerDefaultLayoutLoaders");
+ registerDefaultLayoutLoaders();
+ render4 = /* @__PURE__ */ __name(async (data4Layout, svg) => {
+ if (!(data4Layout.layoutAlgorithm in layoutAlgorithms)) {
+ throw new Error(`Unknown layout algorithm: ${data4Layout.layoutAlgorithm}`);
+ }
+ const layoutDefinition = layoutAlgorithms[data4Layout.layoutAlgorithm];
+ const layoutRenderer = await layoutDefinition.loader();
+ return layoutRenderer.render(data4Layout, svg, internalHelpers, {
+ algorithm: layoutDefinition.algorithm
+ });
+ }, "render");
+ getRegisteredLayoutAlgorithm = /* @__PURE__ */ __name((algorithm = "", { fallback = "dagre" } = {}) => {
+ if (algorithm in layoutAlgorithms) {
+ return algorithm;
+ }
+ if (fallback in layoutAlgorithms) {
+ log.warn(`Layout algorithm ${algorithm} is not registered. Using ${fallback} as fallback.`);
+ return fallback;
+ }
+ throw new Error(`Both layout algorithms ${algorithm} and ${fallback} are not registered.`);
+ }, "getRegisteredLayoutAlgorithm");
+ }
+ });
+
+ // src/rendering-util/setupViewPortForSVG.ts
+ var setupViewPortForSVG, calculateDimensionsWithPadding, createViewBox;
+ var init_setupViewPortForSVG = __esm({
+ "src/rendering-util/setupViewPortForSVG.ts"() {
+ "use strict";
+ init_setupGraphViewbox();
+ init_logger();
+ setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding3, cssDiagram, useMaxWidth) => {
+ svg.attr("class", cssDiagram);
+ const { width: width3, height: height2, x: x5, y: y5 } = calculateDimensionsWithPadding(svg, padding3);
+ configureSvgSize(svg, height2, width3, useMaxWidth);
+ const viewBox = createViewBox(x5, y5, width3, height2, padding3);
+ svg.attr("viewBox", viewBox);
+ log.debug(`viewBox configured: ${viewBox} with padding: ${padding3}`);
+ }, "setupViewPortForSVG");
+ calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding3) => {
+ const bounds4 = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };
+ return {
+ width: bounds4.width + padding3 * 2,
+ height: bounds4.height + padding3 * 2,
+ x: bounds4.x,
+ y: bounds4.y
+ };
+ }, "calculateDimensionsWithPadding");
+ createViewBox = /* @__PURE__ */ __name((x5, y5, width3, height2, padding3) => {
+ return `${x5 - padding3} ${y5 - padding3} ${width3} ${height2}`;
+ }, "createViewBox");
+ }
+ });
+
+ // src/diagrams/flowchart/flowRenderer-v3-unified.ts
+ var getClasses2, draw2, flowRenderer_v3_unified_default;
+ var init_flowRenderer_v3_unified = __esm({
+ "src/diagrams/flowchart/flowRenderer-v3-unified.ts"() {
+ "use strict";
+ init_src32();
+ init_diagramAPI();
+ init_logger();
+ init_insertElementsForSize();
+ init_render();
+ init_setupViewPortForSVG();
+ init_utils2();
+ init_flowDb();
+ getClasses2 = /* @__PURE__ */ __name(function(text2, diagramObj) {
+ return diagramObj.db.getClasses();
+ }, "getClasses");
+ draw2 = /* @__PURE__ */ __name(async function(text2, id27, _version, diag) {
+ log.info("REF0:");
+ log.info("Drawing state diagram (v2)", id27);
+ const { securityLevel, flowchart: conf8, layout: layout6 } = getConfig2();
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ log.debug("Before getData: ");
+ const data4Layout = diag.db.getData();
+ log.debug("Data: ", data4Layout);
+ const svg = getDiagramElement(id27, securityLevel);
+ const direction4 = getDirection();
+ data4Layout.type = diag.type;
+ data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(layout6);
+ if (data4Layout.layoutAlgorithm === "dagre" && layout6 === "elk") {
+ log.warn(
+ "flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."
+ );
+ }
+ data4Layout.direction = direction4;
+ data4Layout.nodeSpacing = conf8?.nodeSpacing || 50;
+ data4Layout.rankSpacing = conf8?.rankSpacing || 50;
+ data4Layout.markers = ["point", "circle", "cross"];
+ data4Layout.diagramId = id27;
+ log.debug("REF1:", data4Layout);
+ await render4(data4Layout, svg);
+ const padding3 = data4Layout.config.flowchart?.diagramPadding ?? 8;
+ utils_default2.insertTitle(
+ svg,
+ "flowchartTitleText",
+ conf8?.titleTopMargin || 0,
+ diag.db.getDiagramTitle()
+ );
+ setupViewPortForSVG(svg, padding3, "flowchart", conf8?.useMaxWidth || false);
+ for (const vertex of data4Layout.nodes) {
+ const node2 = select_default2(`#${id27} [id="${vertex.id}"]`);
+ if (!node2 || !vertex.link) {
+ continue;
}
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
+ const link3 = doc.createElementNS("http://www.w3.org/2000/svg", "a");
+ link3.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.cssClasses);
+ link3.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
+ if (securityLevel === "sandbox") {
+ link3.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
+ } else if (vertex.linkTarget) {
+ link3.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
}
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
+ const linkNode = node2.insert(function() {
+ return link3;
+ }, ":first-child");
+ const shape = node2.select(".label-container");
+ if (shape) {
+ linkNode.append(function() {
+ return shape.node();
+ });
}
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 26;
- case 1:
- this.begin("type_directive");
- return 27;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 15;
- case 3:
- this.popState();
- this.popState();
- return 29;
- case 4:
- return 28;
- case 5:
- break;
- case 6:
- break;
- case 7:
- return 11;
- case 8:
- break;
- case 9:
- break;
- case 10:
- return 4;
- case 11:
- return 17;
- case 12:
- this.begin("acc_title");
- return 18;
- case 13:
- this.popState();
- return "acc_title_value";
- case 14:
- this.begin("acc_descr");
- return 20;
- case 15:
- this.popState();
- return "acc_descr_value";
- case 16:
- this.begin("acc_descr_multiline");
- break;
- case 17:
- this.popState();
- break;
- case 18:
- return "acc_descr_multiline_value";
- case 19:
- return 23;
- case 20:
- return 24;
- case 21:
- return 25;
- case 22:
- return 15;
- case 23:
- return 6;
- case 24:
- return "INVALID";
+ const label = node2.select(".label");
+ if (label) {
+ linkNode.append(function() {
+ return label.node();
+ });
}
- },
- rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
- conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23, 24], "inclusive": true } }
+ }
+ }, "draw");
+ flowRenderer_v3_unified_default = {
+ getClasses: getClasses2,
+ draw: draw2
};
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$3.parser = parser$3;
- const parser$4 = parser$3;
- let currentSection$1 = "";
- const sections$1 = [];
- const tasks$1 = [];
- const rawTasks$1 = [];
- const parseDirective$1 = function(statement, context, type2) {
- mermaidAPI.parseDirective(this, statement, context, type2);
- };
- const clear$2 = function() {
- sections$1.length = 0;
- tasks$1.length = 0;
- currentSection$1 = "";
- rawTasks$1.length = 0;
- clear$i();
- };
- const addSection$1 = function(txt) {
- currentSection$1 = txt;
- sections$1.push(txt);
- };
- const getSections$1 = function() {
- return sections$1;
- };
- const getTasks$1 = function() {
- let allItemsProcessed = compileTasks$1();
- const maxDepth = 100;
- let iterationCount = 0;
- while (!allItemsProcessed && iterationCount < maxDepth) {
- allItemsProcessed = compileTasks$1();
- iterationCount++;
- }
- tasks$1.push(...rawTasks$1);
- return tasks$1;
- };
- const updateActors = function() {
- const tempActors = [];
- tasks$1.forEach((task) => {
- if (task.people) {
- tempActors.push(...task.people);
- }
- });
- const unique = new Set(tempActors);
- return [...unique].sort();
- };
- const addTask$1 = function(descr, taskData) {
- const pieces = taskData.substr(1).split(":");
- let score = 0;
- let peeps = [];
- if (pieces.length === 1) {
- score = Number(pieces[0]);
- peeps = [];
- } else {
- score = Number(pieces[0]);
- peeps = pieces[1].split(",");
- }
- const peopleList = peeps.map((s) => s.trim());
- const rawTask = {
- section: currentSection$1,
- type: currentSection$1,
- people: peopleList,
- task: descr,
- score
- };
- rawTasks$1.push(rawTask);
- };
- const addTaskOrg$1 = function(descr) {
- const newTask = {
- section: currentSection$1,
- type: currentSection$1,
- description: descr,
- task: descr,
- classes: []
- };
- tasks$1.push(newTask);
- };
- const compileTasks$1 = function() {
- const compileTask = function(pos) {
- return rawTasks$1[pos].processed;
- };
- let allProcessed = true;
- for (const [i2, rawTask] of rawTasks$1.entries()) {
- compileTask(i2);
- allProcessed = allProcessed && rawTask.processed;
- }
- return allProcessed;
- };
- const getActors = function() {
- return updateActors();
- };
- const db$1 = {
- parseDirective: parseDirective$1,
- getConfig: () => getConfig$1().journey,
- clear: clear$2,
- setDiagramTitle,
- getDiagramTitle,
- setAccTitle,
- getAccTitle,
- setAccDescription,
- getAccDescription,
- addSection: addSection$1,
- getSections: getSections$1,
- getTasks: getTasks$1,
- addTask: addTask$1,
- addTaskOrg: addTaskOrg$1,
- getActors
- };
- const getStyles$3 = (options2) => `.label {
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
- color: ${options2.textColor};
- }
- .mouth {
- stroke: #666;
- }
-
- line {
- stroke: ${options2.textColor}
- }
-
- .legend {
- fill: ${options2.textColor};
- }
-
- .label text {
- fill: #333;
- }
- .label {
- color: ${options2.textColor}
- }
-
- .face {
- ${options2.faceColor ? `fill: ${options2.faceColor}` : "fill: #FFF8DC"};
- stroke: #999;
- }
-
- .node rect,
- .node circle,
- .node ellipse,
- .node polygon,
- .node path {
- fill: ${options2.mainBkg};
- stroke: ${options2.nodeBorder};
- stroke-width: 1px;
- }
-
- .node .label {
- text-align: center;
- }
- .node.clickable {
- cursor: pointer;
- }
-
- .arrowheadPath {
- fill: ${options2.arrowheadColor};
- }
-
- .edgePath .path {
- stroke: ${options2.lineColor};
- stroke-width: 1.5px;
- }
-
- .flowchart-link {
- stroke: ${options2.lineColor};
- fill: none;
- }
-
- .edgeLabel {
- background-color: ${options2.edgeLabelBackground};
- rect {
- opacity: 0.5;
}
- text-align: center;
- }
-
- .cluster rect {
- }
-
- .cluster text {
- fill: ${options2.titleColor};
- }
-
- div.mermaidTooltip {
- position: absolute;
- text-align: center;
- max-width: 200px;
- padding: 2px;
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
- font-size: 12px;
- background: ${options2.tertiaryColor};
- border: 1px solid ${options2.border2};
- border-radius: 2px;
- pointer-events: none;
- z-index: 100;
- }
-
- .task-type-0, .section-type-0 {
- ${options2.fillType0 ? `fill: ${options2.fillType0}` : ""};
- }
- .task-type-1, .section-type-1 {
- ${options2.fillType0 ? `fill: ${options2.fillType1}` : ""};
- }
- .task-type-2, .section-type-2 {
- ${options2.fillType0 ? `fill: ${options2.fillType2}` : ""};
- }
- .task-type-3, .section-type-3 {
- ${options2.fillType0 ? `fill: ${options2.fillType3}` : ""};
- }
- .task-type-4, .section-type-4 {
- ${options2.fillType0 ? `fill: ${options2.fillType4}` : ""};
- }
- .task-type-5, .section-type-5 {
- ${options2.fillType0 ? `fill: ${options2.fillType5}` : ""};
- }
- .task-type-6, .section-type-6 {
- ${options2.fillType0 ? `fill: ${options2.fillType6}` : ""};
- }
- .task-type-7, .section-type-7 {
- ${options2.fillType0 ? `fill: ${options2.fillType7}` : ""};
- }
+ });
- .actor-0 {
- ${options2.actor0 ? `fill: ${options2.actor0}` : ""};
- }
- .actor-1 {
- ${options2.actor1 ? `fill: ${options2.actor1}` : ""};
- }
- .actor-2 {
- ${options2.actor2 ? `fill: ${options2.actor2}` : ""};
- }
- .actor-3 {
- ${options2.actor3 ? `fill: ${options2.actor3}` : ""};
- }
- .actor-4 {
- ${options2.actor4 ? `fill: ${options2.actor4}` : ""};
- }
- .actor-5 {
- ${options2.actor5 ? `fill: ${options2.actor5}` : ""};
- }
-`;
- const styles$2 = getStyles$3;
- const drawRect$1 = function(elem, rectData) {
- const rectElem = elem.append("rect");
- rectElem.attr("x", rectData.x);
- rectElem.attr("y", rectData.y);
- rectElem.attr("fill", rectData.fill);
- rectElem.attr("stroke", rectData.stroke);
- rectElem.attr("width", rectData.width);
- rectElem.attr("height", rectData.height);
- rectElem.attr("rx", rectData.rx);
- rectElem.attr("ry", rectData.ry);
- if (rectData.class !== void 0) {
- rectElem.attr("class", rectData.class);
- }
- return rectElem;
- };
- const drawFace$1 = function(element, faceData) {
- const radius = 15;
- const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
- const face = element.append("g");
- face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
- face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
- function smile(face2) {
- const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
- face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
- }
- function sad(face2) {
- const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
- face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
- }
- function ambivalent(face2) {
- face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
- }
- if (faceData.score > 3) {
- smile(face);
- } else if (faceData.score < 3) {
- sad(face);
- } else {
- ambivalent(face);
- }
- return circleElement;
- };
- const drawCircle$1 = function(element, circleData) {
- const circleElement = element.append("circle");
- circleElement.attr("cx", circleData.cx);
- circleElement.attr("cy", circleData.cy);
- circleElement.attr("class", "actor-" + circleData.pos);
- circleElement.attr("fill", circleData.fill);
- circleElement.attr("stroke", circleData.stroke);
- circleElement.attr("r", circleData.r);
- if (circleElement.class !== void 0) {
- circleElement.attr("class", circleElement.class);
- }
- if (circleData.title !== void 0) {
- circleElement.append("title").text(circleData.title);
- }
- return circleElement;
- };
- const drawText$1 = function(elem, textData) {
- const nText = textData.text.replace(/
/gi, " ");
- const textElem = elem.append("text");
- textElem.attr("x", textData.x);
- textElem.attr("y", textData.y);
- textElem.attr("class", "legend");
- textElem.style("text-anchor", textData.anchor);
- if (textData.class !== void 0) {
- textElem.attr("class", textData.class);
- }
- const span = textElem.append("tspan");
- span.attr("x", textData.x + textData.textMargin * 2);
- span.text(nText);
- return textElem;
- };
- const drawLabel$1 = function(elem, txtObject) {
- function genPoints(x2, y2, width2, height2, cut) {
- return x2 + "," + y2 + " " + (x2 + width2) + "," + y2 + " " + (x2 + width2) + "," + (y2 + height2 - cut) + " " + (x2 + width2 - cut * 1.2) + "," + (y2 + height2) + " " + x2 + "," + (y2 + height2);
- }
- const polygon = elem.append("polygon");
- polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
- polygon.attr("class", "labelBox");
- txtObject.y = txtObject.y + txtObject.labelMargin;
- txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
- drawText$1(elem, txtObject);
- };
- const drawSection$1 = function(elem, section, conf2) {
- const g = elem.append("g");
- const rect2 = getNoteRect$1();
- rect2.x = section.x;
- rect2.y = section.y;
- rect2.fill = section.fill;
- rect2.width = conf2.width * section.taskCount + // width of the tasks
- conf2.diagramMarginX * (section.taskCount - 1);
- rect2.height = conf2.height;
- rect2.class = "journey-section section-type-" + section.num;
- rect2.rx = 3;
- rect2.ry = 3;
- drawRect$1(g, rect2);
- _drawTextCandidateFunc$1(conf2)(
- section.text,
- g,
- rect2.x,
- rect2.y,
- rect2.width,
- rect2.height,
- { class: "journey-section section-type-" + section.num },
- conf2,
- section.colour
- );
- };
- let taskCount$1 = -1;
- const drawTask$1 = function(elem, task, conf2) {
- const center2 = task.x + conf2.width / 2;
- const g = elem.append("g");
- taskCount$1++;
- const maxHeight = 300 + 5 * 30;
- g.append("line").attr("id", "task" + taskCount$1).attr("x1", center2).attr("y1", task.y).attr("x2", center2).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
- drawFace$1(g, {
- cx: center2,
- cy: 300 + (5 - task.score) * 30,
- score: task.score
- });
- const rect2 = getNoteRect$1();
- rect2.x = task.x;
- rect2.y = task.y;
- rect2.fill = task.fill;
- rect2.width = conf2.width;
- rect2.height = conf2.height;
- rect2.class = "task task-type-" + task.num;
- rect2.rx = 3;
- rect2.ry = 3;
- drawRect$1(g, rect2);
- let xPos = task.x + 14;
- task.people.forEach((person) => {
- const colour = task.actors[person].color;
- const circle2 = {
- cx: xPos,
- cy: task.y,
- r: 7,
- fill: colour,
- stroke: "#000",
- title: person,
- pos: task.actors[person].position
- };
- drawCircle$1(g, circle2);
- xPos += 10;
- });
- _drawTextCandidateFunc$1(conf2)(
- task.task,
- g,
- rect2.x,
- rect2.y,
- rect2.width,
- rect2.height,
- { class: "task" },
- conf2,
- task.colour
- );
- };
- const drawBackgroundRect$1 = function(elem, bounds2) {
- const rectElem = drawRect$1(elem, {
- x: bounds2.startx,
- y: bounds2.starty,
- width: bounds2.stopx - bounds2.startx,
- height: bounds2.stopy - bounds2.starty,
- fill: bounds2.fill,
- class: "rect"
- });
- rectElem.lower();
- };
- const getTextObj$1 = function() {
- return {
- x: 0,
- y: 0,
- fill: void 0,
- "text-anchor": "start",
- width: 100,
- height: 100,
- textMargin: 0,
- rx: 0,
- ry: 0
- };
- };
- const getNoteRect$1 = function() {
- return {
- x: 0,
- y: 0,
- width: 100,
- anchor: "start",
- height: 100,
- rx: 0,
- ry: 0
- };
- };
- const _drawTextCandidateFunc$1 = function() {
- function byText(content, g, x2, y2, width2, height2, textAttrs, colour) {
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
- _setTextAttrs(text2, textAttrs);
- }
- function byTspan(content, g, x2, y2, width2, height2, textAttrs, conf2, colour) {
- const { taskFontSize, taskFontFamily } = conf2;
- const lines = content.split(/
/gi);
- for (let i2 = 0; i2 < lines.length; i2++) {
- const dy = i2 * taskFontSize - taskFontSize * (lines.length - 1) / 2;
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
- text2.append("tspan").attr("x", x2 + width2 / 2).attr("dy", dy).text(lines[i2]);
- text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
- _setTextAttrs(text2, textAttrs);
- }
- }
- function byFo(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const body = g.append("switch");
- const f2 = body.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2).attr("position", "fixed");
- const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
- text2.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
- byTspan(content, body, x2, y2, width2, height2, textAttrs, conf2);
- _setTextAttrs(text2, textAttrs);
- }
- function _setTextAttrs(toText, fromTextAttrsDict) {
- for (const key in fromTextAttrsDict) {
- if (key in fromTextAttrsDict) {
- toText.attr(key, fromTextAttrsDict[key]);
- }
- }
- }
- return function(conf2) {
- return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
- };
- }();
- const initGraphics$1 = function(graphics) {
- graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
- };
- const svgDraw$2 = {
- drawRect: drawRect$1,
- drawCircle: drawCircle$1,
- drawSection: drawSection$1,
- drawText: drawText$1,
- drawLabel: drawLabel$1,
- drawTask: drawTask$1,
- drawBackgroundRect: drawBackgroundRect$1,
- getTextObj: getTextObj$1,
- getNoteRect: getNoteRect$1,
- initGraphics: initGraphics$1
- };
- const setConf = function(cnf) {
- const keys2 = Object.keys(cnf);
- keys2.forEach(function(key) {
- conf$1[key] = cnf[key];
- });
- };
- const actors = {};
- function drawActorLegend(diagram2) {
- const conf2 = getConfig$1().journey;
- let yPos = 60;
- Object.keys(actors).forEach((person) => {
- const colour = actors[person].color;
- const circleData = {
- cx: 20,
- cy: yPos,
- r: 7,
- fill: colour,
- stroke: "#000",
- pos: actors[person].position
- };
- svgDraw$2.drawCircle(diagram2, circleData);
- const labelData = {
- x: 40,
- y: yPos + 7,
- fill: "#666",
- text: person,
- textMargin: conf2.boxTextMargin | 5
- };
- svgDraw$2.drawText(diagram2, labelData);
- yPos += 20;
- });
- }
- const conf$1 = getConfig$1().journey;
- const LEFT_MARGIN = conf$1.leftMargin;
- const draw$3 = function(text2, id2, version2, diagObj) {
- const conf2 = getConfig$1().journey;
- diagObj.db.clear();
- diagObj.parser.parse(text2 + "\n");
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- bounds.init();
- const diagram2 = root2.select("#" + id2);
- svgDraw$2.initGraphics(diagram2);
- const tasks2 = diagObj.db.getTasks();
- const title2 = diagObj.db.getDiagramTitle();
- const actorNames = diagObj.db.getActors();
- for (const member in actors) {
- delete actors[member];
- }
- let actorPos = 0;
- actorNames.forEach((actorName) => {
- actors[actorName] = {
- color: conf2.actorColours[actorPos % conf2.actorColours.length],
- position: actorPos
- };
- actorPos++;
- });
- drawActorLegend(diagram2);
- bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
- drawTasks$1(diagram2, tasks2, 0);
- const box = bounds.getBounds();
- if (title2) {
- diagram2.append("text").text(title2).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25);
- }
- const height2 = box.stopy - box.starty + 2 * conf2.diagramMarginY;
- const width2 = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;
- configureSvgSize(diagram2, height2, width2, conf2.useMaxWidth);
- diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width2 - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
- const extraVertForTitle = title2 ? 70 : 0;
- diagram2.attr("viewBox", `${box.startx} -25 ${width2} ${height2 + extraVertForTitle}`);
- diagram2.attr("preserveAspectRatio", "xMinYMin meet");
- diagram2.attr("height", height2 + extraVertForTitle + 25);
- };
- const bounds = {
- data: {
- startx: void 0,
- stopx: void 0,
- starty: void 0,
- stopy: void 0
- },
- verticalPos: 0,
- sequenceItems: [],
- init: function() {
- this.sequenceItems = [];
- this.data = {
- startx: void 0,
- stopx: void 0,
- starty: void 0,
- stopy: void 0
- };
- this.verticalPos = 0;
- },
- updateVal: function(obj, key, val, fun) {
- if (obj[key] === void 0) {
- obj[key] = val;
- } else {
- obj[key] = fun(val, obj[key]);
- }
- },
- updateBounds: function(startx, starty, stopx, stopy) {
- const conf2 = getConfig$1().journey;
- const _self = this;
- let cnt2 = 0;
- function updateFn(type2) {
- return function updateItemBounds(item) {
- cnt2++;
- const n = _self.sequenceItems.length - cnt2 + 1;
- _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min);
- _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max);
- _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min);
- _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max);
- if (!(type2 === "activation")) {
- _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min);
- _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max);
- _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min);
- _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max);
- }
- };
- }
- this.sequenceItems.forEach(updateFn());
- },
- insert: function(startx, starty, stopx, stopy) {
- const _startx = Math.min(startx, stopx);
- const _stopx = Math.max(startx, stopx);
- const _starty = Math.min(starty, stopy);
- const _stopy = Math.max(starty, stopy);
- this.updateVal(bounds.data, "startx", _startx, Math.min);
- this.updateVal(bounds.data, "starty", _starty, Math.min);
- this.updateVal(bounds.data, "stopx", _stopx, Math.max);
- this.updateVal(bounds.data, "stopy", _stopy, Math.max);
- this.updateBounds(_startx, _starty, _stopx, _stopy);
- },
- bumpVerticalPos: function(bump) {
- this.verticalPos = this.verticalPos + bump;
- this.data.stopy = this.verticalPos;
- },
- getVerticalPos: function() {
- return this.verticalPos;
- },
- getBounds: function() {
- return this.data;
- }
- };
- const fills = conf$1.sectionFills;
- const textColours = conf$1.sectionColours;
- const drawTasks$1 = function(diagram2, tasks2, verticalPos) {
- const conf2 = getConfig$1().journey;
- let lastSection = "";
- const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;
- const taskPos = verticalPos + sectionVHeight;
- let sectionNumber = 0;
- let fill = "#CCC";
- let colour = "black";
- let num = 0;
- for (const [i2, task] of tasks2.entries()) {
- if (lastSection !== task.section) {
- fill = fills[sectionNumber % fills.length];
- num = sectionNumber % fills.length;
- colour = textColours[sectionNumber % textColours.length];
- let taskInSectionCount = 0;
- const currentSection2 = task.section;
- for (let taskIndex = i2; taskIndex < tasks2.length; taskIndex++) {
- if (tasks2[taskIndex].section == currentSection2) {
- taskInSectionCount = taskInSectionCount + 1;
- } else {
- break;
- }
- }
- const section = {
- x: i2 * conf2.taskMargin + i2 * conf2.width + LEFT_MARGIN,
- y: 50,
- text: task.section,
- fill,
- num,
- colour,
- taskCount: taskInSectionCount
- };
- svgDraw$2.drawSection(diagram2, section, conf2);
- lastSection = task.section;
- sectionNumber++;
- }
- const taskActors = task.people.reduce((acc, actorName) => {
- if (actors[actorName]) {
- acc[actorName] = actors[actorName];
- }
- return acc;
- }, {});
- task.x = i2 * conf2.taskMargin + i2 * conf2.width + LEFT_MARGIN;
- task.y = taskPos;
- task.width = conf2.diagramMarginX;
- task.height = conf2.diagramMarginY;
- task.colour = colour;
- task.fill = fill;
- task.num = num;
- task.actors = taskActors;
- svgDraw$2.drawTask(diagram2, task, conf2);
- bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);
- }
- };
- const renderer$2 = {
- setConf,
- draw: draw$3
- };
- const diagram$3 = {
- parser: parser$4,
- db: db$1,
- renderer: renderer$2,
- styles: styles$2,
- init: (cnf) => {
- renderer$2.setConf(cnf.journey);
- db$1.clear();
- }
- };
- const journeyDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$3
- }, Symbol.toStringTag, { value: "Module" }));
- const findCommonAncestor = (id1, id2, treeData) => {
- const { parentById } = treeData;
- const visited = /* @__PURE__ */ new Set();
- let currentId = id1;
- while (currentId) {
- visited.add(currentId);
- if (currentId === id2) {
- return currentId;
- }
- currentId = parentById[currentId];
- }
- currentId = id2;
- while (currentId) {
- if (visited.has(currentId)) {
- return currentId;
- }
- currentId = parentById[currentId];
- }
- return "root";
- };
- function commonjsRequire(path2) {
- throw new Error('Could not dynamically require "' + path2 + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
- }
- var elk_bundledExports = {};
- var elk_bundled = {
- get exports() {
- return elk_bundledExports;
- },
- set exports(v) {
- elk_bundledExports = v;
- }
- };
- (function(module2, exports2) {
- (function(f2) {
- {
- module2.exports = f2();
- }
- })(function() {
- return function() {
- function r(e, n, t4) {
- function o(i3, f2) {
- if (!n[i3]) {
- if (!e[i3]) {
- var c2 = "function" == typeof commonjsRequire && commonjsRequire;
- if (!f2 && c2)
- return c2(i3, true);
- if (u2)
- return u2(i3, true);
- var a = new Error("Cannot find module '" + i3 + "'");
- throw a.code = "MODULE_NOT_FOUND", a;
- }
- var p = n[i3] = { exports: {} };
- e[i3][0].call(p.exports, function(r2) {
- var n2 = e[i3][1][r2];
- return o(n2 || r2);
- }, p, p.exports, r, e, n, t4);
- }
- return n[i3].exports;
- }
- for (var u2 = "function" == typeof commonjsRequire && commonjsRequire, i2 = 0; i2 < t4.length; i2++)
- o(t4[i2]);
- return o;
- }
- return r;
- }()({ 1: [function(require, module3, exports3) {
- Object.defineProperty(exports3, "__esModule", {
- value: true
- });
- var _createClass = function() {
- function defineProperties(target, props) {
- for (var i2 = 0; i2 < props.length; i2++) {
- var descriptor = props[i2];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
- return function(Constructor, protoProps, staticProps) {
- if (protoProps)
- defineProperties(Constructor.prototype, protoProps);
- if (staticProps)
- defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
- function _classCallCheck(instance2, Constructor) {
- if (!(instance2 instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
- var ELK2 = function() {
- function ELK3() {
- var _this = this;
- var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, _ref$algorithms = _ref.algorithms, algorithms = _ref$algorithms === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : _ref$algorithms, workerFactory = _ref.workerFactory, workerUrl = _ref.workerUrl;
- _classCallCheck(this, ELK3);
- this.defaultLayoutOptions = defaultLayoutOptions;
- this.initialized = false;
- if (typeof workerUrl === "undefined" && typeof workerFactory === "undefined") {
- throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");
- }
- var factory = workerFactory;
- if (typeof workerUrl !== "undefined" && typeof workerFactory === "undefined") {
- factory = function factory2(url) {
- return new Worker(url);
- };
- }
- var worker = factory(workerUrl);
- if (typeof worker.postMessage !== "function") {
- throw new TypeError("Created worker does not provide the required 'postMessage' function.");
- }
- this.worker = new PromisedWorker(worker);
- this.worker.postMessage({
- cmd: "register",
- algorithms
- }).then(function(r) {
- return _this.initialized = true;
- }).catch(console.err);
- }
- _createClass(ELK3, [{
- key: "layout",
- value: function layout2(graph) {
- var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$layoutOptions = _ref2.layoutOptions, layoutOptions = _ref2$layoutOptions === void 0 ? this.defaultLayoutOptions : _ref2$layoutOptions, _ref2$logging = _ref2.logging, logging = _ref2$logging === void 0 ? false : _ref2$logging, _ref2$measureExecutio = _ref2.measureExecutionTime, measureExecutionTime = _ref2$measureExecutio === void 0 ? false : _ref2$measureExecutio;
- if (!graph) {
- return Promise.reject(new Error("Missing mandatory parameter 'graph'."));
- }
- return this.worker.postMessage({
- cmd: "layout",
- graph,
- layoutOptions,
- options: {
- logging,
- measureExecutionTime
+ // src/diagrams/flowchart/parser/flow.jison
+ var parser3, flow_default;
+ var init_flow = __esm({
+ "src/diagrams/flowchart/parser/flow.jison"() {
+ "use strict";
+ parser3 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 4], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 8, 9, 10, 11, 27, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $V4 = [2, 2], $V5 = [1, 13], $V6 = [1, 14], $V7 = [1, 15], $V8 = [1, 16], $V9 = [1, 23], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 49], $Ve = [1, 48], $Vf = [1, 29], $Vg = [1, 30], $Vh = [1, 31], $Vi = [1, 32], $Vj = [1, 33], $Vk = [1, 44], $Vl = [1, 46], $Vm = [1, 42], $Vn = [1, 47], $Vo = [1, 43], $Vp = [1, 50], $Vq = [1, 45], $Vr = [1, 51], $Vs = [1, 52], $Vt = [1, 34], $Vu = [1, 35], $Vv = [1, 36], $Vw = [1, 37], $Vx = [1, 57], $Vy = [1, 8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vz = [1, 61], $VA = [1, 60], $VB = [1, 62], $VC = [8, 9, 11, 73, 75], $VD = [1, 88], $VE = [1, 93], $VF = [1, 92], $VG = [1, 89], $VH = [1, 85], $VI = [1, 91], $VJ = [1, 87], $VK = [1, 94], $VL = [1, 90], $VM = [1, 95], $VN = [1, 86], $VO = [8, 9, 10, 11, 73, 75], $VP = [8, 9, 10, 11, 44, 73, 75], $VQ = [8, 9, 10, 11, 29, 42, 44, 46, 48, 50, 52, 54, 56, 58, 61, 63, 65, 66, 68, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VR = [8, 9, 11, 42, 58, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VS = [42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VT = [1, 121], $VU = [1, 120], $VV = [1, 128], $VW = [1, 142], $VX = [1, 143], $VY = [1, 144], $VZ = [1, 145], $V_ = [1, 130], $V$ = [1, 132], $V01 = [1, 136], $V11 = [1, 137], $V21 = [1, 138], $V31 = [1, 139], $V41 = [1, 140], $V51 = [1, 141], $V61 = [1, 146], $V71 = [1, 147], $V81 = [1, 126], $V91 = [1, 127], $Va1 = [1, 134], $Vb1 = [1, 129], $Vc1 = [1, 133], $Vd1 = [1, 131], $Ve1 = [8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vf1 = [1, 149], $Vg1 = [8, 9, 11], $Vh1 = [8, 9, 10, 11, 14, 42, 58, 86, 102, 103, 106, 108, 111, 112, 113], $Vi1 = [1, 169], $Vj1 = [1, 165], $Vk1 = [1, 166], $Vl1 = [1, 170], $Vm1 = [1, 167], $Vn1 = [1, 168], $Vo1 = [75, 113, 116], $Vp1 = [8, 9, 10, 11, 12, 14, 27, 29, 32, 42, 58, 73, 81, 82, 83, 84, 85, 86, 87, 102, 106, 108, 111, 112, 113], $Vq1 = [10, 103], $Vr1 = [31, 47, 49, 51, 53, 55, 60, 62, 64, 65, 67, 69, 113, 114, 115], $Vs1 = [1, 235], $Vt1 = [1, 233], $Vu1 = [1, 237], $Vv1 = [1, 231], $Vw1 = [1, 232], $Vx1 = [1, 234], $Vy1 = [1, 236], $Vz1 = [1, 238], $VA1 = [1, 255], $VB1 = [8, 9, 11, 103], $VC1 = [8, 9, 10, 11, 58, 81, 102, 103, 106, 107, 108, 109];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "graphConfig": 4, "document": 5, "line": 6, "statement": 7, "SEMI": 8, "NEWLINE": 9, "SPACE": 10, "EOF": 11, "GRAPH": 12, "NODIR": 13, "DIR": 14, "FirstStmtSeparator": 15, "ending": 16, "endToken": 17, "spaceList": 18, "spaceListNewline": 19, "vertexStatement": 20, "separator": 21, "styleStatement": 22, "linkStyleStatement": 23, "classDefStatement": 24, "classStatement": 25, "clickStatement": 26, "subgraph": 27, "textNoTags": 28, "SQS": 29, "text": 30, "SQE": 31, "end": 32, "direction": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "link": 39, "node": 40, "styledVertex": 41, "AMP": 42, "vertex": 43, "STYLE_SEPARATOR": 44, "idString": 45, "DOUBLECIRCLESTART": 46, "DOUBLECIRCLEEND": 47, "PS": 48, "PE": 49, "(-": 50, "-)": 51, "STADIUMSTART": 52, "STADIUMEND": 53, "SUBROUTINESTART": 54, "SUBROUTINEEND": 55, "VERTEX_WITH_PROPS_START": 56, "NODE_STRING[field]": 57, "COLON": 58, "NODE_STRING[value]": 59, "PIPE": 60, "CYLINDERSTART": 61, "CYLINDEREND": 62, "DIAMOND_START": 63, "DIAMOND_STOP": 64, "TAGEND": 65, "TRAPSTART": 66, "TRAPEND": 67, "INVTRAPSTART": 68, "INVTRAPEND": 69, "linkStatement": 70, "arrowText": 71, "TESTSTR": 72, "START_LINK": 73, "edgeText": 74, "LINK": 75, "edgeTextToken": 76, "STR": 77, "MD_STR": 78, "textToken": 79, "keywords": 80, "STYLE": 81, "LINKSTYLE": 82, "CLASSDEF": 83, "CLASS": 84, "CLICK": 85, "DOWN": 86, "UP": 87, "textNoTagsToken": 88, "stylesOpt": 89, "idString[vertex]": 90, "idString[class]": 91, "CALLBACKNAME": 92, "CALLBACKARGS": 93, "HREF": 94, "LINK_TARGET": 95, "STR[link]": 96, "STR[tooltip]": 97, "alphaNum": 98, "DEFAULT": 99, "numList": 100, "INTERPOLATE": 101, "NUM": 102, "COMMA": 103, "style": 104, "styleComponent": 105, "NODE_STRING": 106, "UNIT": 107, "BRKT": 108, "PCT": 109, "idStringToken": 110, "MINUS": 111, "MULT": 112, "UNICODE_TEXT": 113, "TEXT": 114, "TAGSTART": 115, "EDGE_TEXT": 116, "alphaNumToken": 117, "direction_tb": 118, "direction_bt": 119, "direction_rl": 120, "direction_lr": 121, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "NODIR", 14: "DIR", 27: "subgraph", 29: "SQS", 31: "SQE", 32: "end", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 42: "AMP", 44: "STYLE_SEPARATOR", 46: "DOUBLECIRCLESTART", 47: "DOUBLECIRCLEEND", 48: "PS", 49: "PE", 50: "(-", 51: "-)", 52: "STADIUMSTART", 53: "STADIUMEND", 54: "SUBROUTINESTART", 55: "SUBROUTINEEND", 56: "VERTEX_WITH_PROPS_START", 57: "NODE_STRING[field]", 58: "COLON", 59: "NODE_STRING[value]", 60: "PIPE", 61: "CYLINDERSTART", 62: "CYLINDEREND", 63: "DIAMOND_START", 64: "DIAMOND_STOP", 65: "TAGEND", 66: "TRAPSTART", 67: "TRAPEND", 68: "INVTRAPSTART", 69: "INVTRAPEND", 72: "TESTSTR", 73: "START_LINK", 75: "LINK", 77: "STR", 78: "MD_STR", 81: "STYLE", 82: "LINKSTYLE", 83: "CLASSDEF", 84: "CLASS", 85: "CLICK", 86: "DOWN", 87: "UP", 90: "idString[vertex]", 91: "idString[class]", 92: "CALLBACKNAME", 93: "CALLBACKARGS", 94: "HREF", 95: "LINK_TARGET", 96: "STR[link]", 97: "STR[tooltip]", 99: "DEFAULT", 101: "INTERPOLATE", 102: "NUM", 103: "COMMA", 106: "NODE_STRING", 107: "UNIT", 108: "BRKT", 109: "PCT", 111: "MINUS", 112: "MULT", 113: "UNICODE_TEXT", 114: "TEXT", 115: "TAGSTART", 116: "EDGE_TEXT", 118: "direction_tb", 119: "direction_bt", 120: "direction_rl", 121: "direction_lr" },
+ productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 2], [4, 3], [16, 2], [16, 1], [17, 1], [17, 1], [17, 1], [15, 1], [15, 1], [15, 2], [19, 2], [19, 2], [19, 1], [19, 1], [18, 2], [18, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 4], [7, 1], [7, 2], [7, 2], [7, 1], [21, 1], [21, 1], [21, 1], [20, 3], [20, 4], [20, 2], [20, 1], [40, 1], [40, 5], [41, 1], [41, 3], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 8], [43, 4], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 4], [43, 4], [43, 1], [39, 2], [39, 3], [39, 3], [39, 1], [39, 3], [74, 1], [74, 2], [74, 1], [74, 1], [70, 1], [71, 3], [30, 1], [30, 2], [30, 1], [30, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [28, 1], [28, 2], [28, 1], [28, 1], [24, 5], [25, 5], [26, 2], [26, 4], [26, 3], [26, 5], [26, 3], [26, 5], [26, 5], [26, 7], [26, 2], [26, 4], [26, 2], [26, 4], [26, 4], [26, 6], [22, 5], [23, 5], [23, 5], [23, 9], [23, 9], [23, 7], [23, 7], [100, 1], [100, 3], [89, 1], [89, 3], [104, 1], [104, 2], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [79, 1], [79, 1], [79, 1], [79, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [76, 1], [76, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [45, 1], [45, 2], [98, 1], [98, 2], [33, 1], [33, 1], [33, 1], [33, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 2:
+ this.$ = [];
+ break;
+ case 3:
+ if (!Array.isArray($$[$0]) || $$[$0].length > 0) {
+ $$[$0 - 1].push($$[$0]);
}
- });
- }
- }, {
- key: "knownLayoutAlgorithms",
- value: function knownLayoutAlgorithms() {
- return this.worker.postMessage({ cmd: "algorithms" });
+ this.$ = $$[$0 - 1];
+ break;
+ case 4:
+ case 176:
+ this.$ = $$[$0];
+ break;
+ case 11:
+ yy.setDirection("TB");
+ this.$ = "TB";
+ break;
+ case 12:
+ yy.setDirection($$[$0 - 1]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 27:
+ this.$ = $$[$0 - 1].nodes;
+ break;
+ case 28:
+ case 29:
+ case 30:
+ case 31:
+ case 32:
+ this.$ = [];
+ break;
+ case 33:
+ this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);
+ break;
+ case 34:
+ this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);
+ break;
+ case 35:
+ this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);
+ break;
+ case 37:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 38:
+ case 39:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 43:
+ yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);
+ this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };
+ break;
+ case 44:
+ yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);
+ this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };
+ break;
+ case 45:
+ this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };
+ break;
+ case 46:
+ this.$ = { stmt: $$[$0], nodes: $$[$0] };
+ break;
+ case 47:
+ this.$ = [$$[$0]];
+ break;
+ case 48:
+ this.$ = $$[$0 - 4].concat($$[$0]);
+ break;
+ case 49:
+ this.$ = $$[$0];
+ break;
+ case 50:
+ this.$ = $$[$0 - 2];
+ yy.setClass($$[$0 - 2], $$[$0]);
+ break;
+ case 51:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "square");
+ break;
+ case 52:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle");
+ break;
+ case 53:
+ this.$ = $$[$0 - 5];
+ yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle");
+ break;
+ case 54:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse");
+ break;
+ case 55:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium");
+ break;
+ case 56:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine");
+ break;
+ case 57:
+ this.$ = $$[$0 - 7];
+ yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));
+ break;
+ case 58:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder");
+ break;
+ case 59:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "round");
+ break;
+ case 60:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond");
+ break;
+ case 61:
+ this.$ = $$[$0 - 5];
+ yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon");
+ break;
+ case 62:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd");
+ break;
+ case 63:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid");
+ break;
+ case 64:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid");
+ break;
+ case 65:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right");
+ break;
+ case 66:
+ this.$ = $$[$0 - 3];
+ yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left");
+ break;
+ case 67:
+ this.$ = $$[$0];
+ yy.addVertex($$[$0]);
+ break;
+ case 68:
+ $$[$0 - 1].text = $$[$0];
+ this.$ = $$[$0 - 1];
+ break;
+ case 69:
+ case 70:
+ $$[$0 - 2].text = $$[$0 - 1];
+ this.$ = $$[$0 - 2];
+ break;
+ case 71:
+ this.$ = $$[$0];
+ break;
+ case 72:
+ var inf = yy.destructLink($$[$0], $$[$0 - 2]);
+ this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] };
+ break;
+ case 73:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 74:
+ this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
+ break;
+ case 75:
+ this.$ = { text: $$[$0], type: "string" };
+ break;
+ case 76:
+ this.$ = { text: $$[$0], type: "markdown" };
+ break;
+ case 77:
+ var inf = yy.destructLink($$[$0]);
+ this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length };
+ break;
+ case 78:
+ this.$ = $$[$0 - 1];
+ break;
+ case 79:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 80:
+ this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
+ break;
+ case 81:
+ this.$ = { text: $$[$0], type: "string" };
+ break;
+ case 82:
+ case 97:
+ this.$ = { text: $$[$0], type: "markdown" };
+ break;
+ case 94:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 95:
+ this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
+ break;
+ case 96:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 98:
+ this.$ = $$[$0 - 4];
+ yy.addClass($$[$0 - 2], $$[$0]);
+ break;
+ case 99:
+ this.$ = $$[$0 - 4];
+ yy.setClass($$[$0 - 2], $$[$0]);
+ break;
+ case 100:
+ case 108:
+ this.$ = $$[$0 - 1];
+ yy.setClickEvent($$[$0 - 1], $$[$0]);
+ break;
+ case 101:
+ case 109:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 102:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 103:
+ this.$ = $$[$0 - 4];
+ yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 4], $$[$0]);
+ break;
+ case 104:
+ this.$ = $$[$0 - 2];
+ yy.setLink($$[$0 - 2], $$[$0]);
+ break;
+ case 105:
+ this.$ = $$[$0 - 4];
+ yy.setLink($$[$0 - 4], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 4], $$[$0]);
+ break;
+ case 106:
+ this.$ = $$[$0 - 4];
+ yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);
+ break;
+ case 107:
+ this.$ = $$[$0 - 6];
+ yy.setLink($$[$0 - 6], $$[$0 - 4], $$[$0]);
+ yy.setTooltip($$[$0 - 6], $$[$0 - 2]);
+ break;
+ case 110:
+ this.$ = $$[$0 - 1];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 111:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 3], $$[$0 - 2]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 112:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
+ break;
+ case 113:
+ this.$ = $$[$0 - 5];
+ yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);
+ yy.setTooltip($$[$0 - 5], $$[$0 - 2]);
+ break;
+ case 114:
+ this.$ = $$[$0 - 4];
+ yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);
+ break;
+ case 115:
+ this.$ = $$[$0 - 4];
+ yy.updateLink([$$[$0 - 2]], $$[$0]);
+ break;
+ case 116:
+ this.$ = $$[$0 - 4];
+ yy.updateLink($$[$0 - 2], $$[$0]);
+ break;
+ case 117:
+ this.$ = $$[$0 - 8];
+ yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);
+ yy.updateLink([$$[$0 - 6]], $$[$0]);
+ break;
+ case 118:
+ this.$ = $$[$0 - 8];
+ yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);
+ yy.updateLink($$[$0 - 6], $$[$0]);
+ break;
+ case 119:
+ this.$ = $$[$0 - 6];
+ yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);
+ break;
+ case 120:
+ this.$ = $$[$0 - 6];
+ yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
+ break;
+ case 121:
+ case 123:
+ this.$ = [$$[$0]];
+ break;
+ case 122:
+ case 124:
+ $$[$0 - 2].push($$[$0]);
+ this.$ = $$[$0 - 2];
+ break;
+ case 126:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
+ case 174:
+ this.$ = $$[$0];
+ break;
+ case 175:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
+ case 177:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
+ case 178:
+ this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 179:
+ this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 180:
+ this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 181:
+ this.$ = { stmt: "dir", value: "LR" };
+ break;
}
- }, {
- key: "knownLayoutOptions",
- value: function knownLayoutOptions() {
- return this.worker.postMessage({ cmd: "options" });
+ }, "anonymous"),
+ table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o2($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 13: [1, 9], 14: [1, 10] }, { 1: [2, 1], 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o2($V3, [2, 9]), o2($V3, [2, 10]), o2($V3, [2, 11]), { 8: [1, 54], 9: [1, 55], 10: $Vx, 15: 53, 18: 56 }, o2($Vy, [2, 3]), o2($Vy, [2, 4]), o2($Vy, [2, 5]), o2($Vy, [2, 6]), o2($Vy, [2, 7]), o2($Vy, [2, 8]), { 8: $Vz, 9: $VA, 11: $VB, 21: 58, 39: 59, 70: 63, 73: [1, 64], 75: [1, 65] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 66 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 67 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 68 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 69 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 70 }, { 8: $Vz, 9: $VA, 10: [1, 71], 11: $VB, 21: 72 }, o2($Vy, [2, 36]), { 35: [1, 73] }, { 37: [1, 74] }, o2($Vy, [2, 39]), o2($VC, [2, 46], { 18: 75, 10: $Vx }), { 10: [1, 76] }, { 10: [1, 77] }, { 10: [1, 78] }, { 10: [1, 79] }, { 14: $VD, 42: $VE, 58: $VF, 77: [1, 83], 86: $VG, 92: [1, 80], 94: [1, 81], 98: 82, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, o2($Vy, [2, 178]), o2($Vy, [2, 179]), o2($Vy, [2, 180]), o2($Vy, [2, 181]), o2($VO, [2, 47]), o2($VO, [2, 49], { 44: [1, 96] }), o2($VP, [2, 67], { 110: 109, 29: [1, 97], 42: $Vd, 46: [1, 98], 48: [1, 99], 50: [1, 100], 52: [1, 101], 54: [1, 102], 56: [1, 103], 58: $Ve, 61: [1, 104], 63: [1, 105], 65: [1, 106], 66: [1, 107], 68: [1, 108], 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o2($VQ, [2, 174]), o2($VQ, [2, 135]), o2($VQ, [2, 136]), o2($VQ, [2, 137]), o2($VQ, [2, 138]), o2($VQ, [2, 139]), o2($VQ, [2, 140]), o2($VQ, [2, 141]), o2($VQ, [2, 142]), o2($VQ, [2, 143]), o2($VQ, [2, 144]), o2($VQ, [2, 145]), o2($V3, [2, 12]), o2($V3, [2, 18]), o2($V3, [2, 19]), { 9: [1, 110] }, o2($VR, [2, 26], { 18: 111, 10: $Vx }), o2($Vy, [2, 27]), { 40: 112, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o2($Vy, [2, 40]), o2($Vy, [2, 41]), o2($Vy, [2, 42]), o2($VS, [2, 71], { 71: 113, 60: [1, 115], 72: [1, 114] }), { 74: 116, 76: 117, 77: [1, 118], 78: [1, 119], 113: $VT, 116: $VU }, o2([42, 58, 60, 72, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 77]), o2($Vy, [2, 28]), o2($Vy, [2, 29]), o2($Vy, [2, 30]), o2($Vy, [2, 31]), o2($Vy, [2, 32]), { 10: $VV, 12: $VW, 14: $VX, 27: $VY, 28: 122, 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 77: [1, 124], 78: [1, 125], 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 123, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o2($Ve1, $V4, { 5: 148 }), o2($Vy, [2, 37]), o2($Vy, [2, 38]), o2($VC, [2, 45], { 42: $Vf1 }), { 42: $Vd, 45: 150, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 99: [1, 151], 100: 152, 102: [1, 153] }, { 42: $Vd, 45: 154, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 42: $Vd, 45: 155, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o2($Vg1, [2, 100], { 10: [1, 156], 93: [1, 157] }), { 77: [1, 158] }, o2($Vg1, [2, 108], { 117: 160, 10: [1, 159], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o2($Vg1, [2, 110], { 10: [1, 161] }), o2($Vh1, [2, 176]), o2($Vh1, [2, 163]), o2($Vh1, [2, 164]), o2($Vh1, [2, 165]), o2($Vh1, [2, 166]), o2($Vh1, [2, 167]), o2($Vh1, [2, 168]), o2($Vh1, [2, 169]), o2($Vh1, [2, 170]), o2($Vh1, [2, 171]), o2($Vh1, [2, 172]), o2($Vh1, [2, 173]), { 42: $Vd, 45: 162, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 30: 163, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 171, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 173, 48: [1, 172], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 174, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 175, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 176, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 106: [1, 177] }, { 30: 178, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 179, 63: [1, 180], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 181, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 182, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 183, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($VQ, [2, 175]), o2($V3, [2, 20]), o2($VR, [2, 25]), o2($VC, [2, 43], { 18: 184, 10: $Vx }), o2($VS, [2, 68], { 10: [1, 185] }), { 10: [1, 186] }, { 30: 187, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 75: [1, 188], 76: 189, 113: $VT, 116: $VU }, o2($Vo1, [2, 73]), o2($Vo1, [2, 75]), o2($Vo1, [2, 76]), o2($Vo1, [2, 161]), o2($Vo1, [2, 162]), { 8: $Vz, 9: $VA, 10: $VV, 11: $VB, 12: $VW, 14: $VX, 21: 191, 27: $VY, 29: [1, 190], 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 192, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o2($Vp1, [2, 94]), o2($Vp1, [2, 96]), o2($Vp1, [2, 97]), o2($Vp1, [2, 150]), o2($Vp1, [2, 151]), o2($Vp1, [2, 152]), o2($Vp1, [2, 153]), o2($Vp1, [2, 154]), o2($Vp1, [2, 155]), o2($Vp1, [2, 156]), o2($Vp1, [2, 157]), o2($Vp1, [2, 158]), o2($Vp1, [2, 159]), o2($Vp1, [2, 160]), o2($Vp1, [2, 83]), o2($Vp1, [2, 84]), o2($Vp1, [2, 85]), o2($Vp1, [2, 86]), o2($Vp1, [2, 87]), o2($Vp1, [2, 88]), o2($Vp1, [2, 89]), o2($Vp1, [2, 90]), o2($Vp1, [2, 91]), o2($Vp1, [2, 92]), o2($Vp1, [2, 93]), { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 193], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vx, 18: 194 }, { 10: [1, 195], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 196] }, { 10: [1, 197], 103: [1, 198] }, o2($Vq1, [2, 121]), { 10: [1, 199], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 200], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 77: [1, 201] }, o2($Vg1, [2, 102], { 10: [1, 202] }), o2($Vg1, [2, 104], { 10: [1, 203] }), { 77: [1, 204] }, o2($Vh1, [2, 177]), { 77: [1, 205], 95: [1, 206] }, o2($VO, [2, 50], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), { 31: [1, 207], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($Vr1, [2, 79]), o2($Vr1, [2, 81]), o2($Vr1, [2, 82]), o2($Vr1, [2, 146]), o2($Vr1, [2, 147]), o2($Vr1, [2, 148]), o2($Vr1, [2, 149]), { 47: [1, 209], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 210, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 49: [1, 211], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 51: [1, 212], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 53: [1, 213], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 55: [1, 214], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 58: [1, 215] }, { 62: [1, 216], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 64: [1, 217], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 218, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 31: [1, 219], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 220], 69: [1, 221], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 223], 69: [1, 222], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($VC, [2, 44], { 42: $Vf1 }), o2($VS, [2, 70]), o2($VS, [2, 69]), { 60: [1, 224], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($VS, [2, 72]), o2($Vo1, [2, 74]), { 30: 225, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($Ve1, $V4, { 5: 226 }), o2($Vp1, [2, 95]), o2($Vy, [2, 35]), { 41: 227, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 228, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 239, 101: [1, 240], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 241, 101: [1, 242], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 102: [1, 243] }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 244, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 42: $Vd, 45: 245, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o2($Vg1, [2, 101]), { 77: [1, 246] }, { 77: [1, 247], 95: [1, 248] }, o2($Vg1, [2, 109]), o2($Vg1, [2, 111], { 10: [1, 249] }), o2($Vg1, [2, 112]), o2($VP, [2, 51]), o2($Vr1, [2, 80]), o2($VP, [2, 52]), { 49: [1, 250], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($VP, [2, 59]), o2($VP, [2, 54]), o2($VP, [2, 55]), o2($VP, [2, 56]), { 106: [1, 251] }, o2($VP, [2, 58]), o2($VP, [2, 60]), { 64: [1, 252], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($VP, [2, 62]), o2($VP, [2, 63]), o2($VP, [2, 65]), o2($VP, [2, 64]), o2($VP, [2, 66]), o2([10, 42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 78]), { 31: [1, 253], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 254], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o2($VO, [2, 48]), o2($Vg1, [2, 114], { 103: $VA1 }), o2($VB1, [2, 123], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o2($VC1, [2, 125]), o2($VC1, [2, 127]), o2($VC1, [2, 128]), o2($VC1, [2, 129]), o2($VC1, [2, 130]), o2($VC1, [2, 131]), o2($VC1, [2, 132]), o2($VC1, [2, 133]), o2($VC1, [2, 134]), o2($Vg1, [2, 115], { 103: $VA1 }), { 10: [1, 257] }, o2($Vg1, [2, 116], { 103: $VA1 }), { 10: [1, 258] }, o2($Vq1, [2, 122]), o2($Vg1, [2, 98], { 103: $VA1 }), o2($Vg1, [2, 99], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o2($Vg1, [2, 103]), o2($Vg1, [2, 105], { 10: [1, 259] }), o2($Vg1, [2, 106]), { 95: [1, 260] }, { 49: [1, 261] }, { 60: [1, 262] }, { 64: [1, 263] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 264 }, o2($Vy, [2, 34]), { 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 104: 265, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o2($VC1, [2, 126]), { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 266, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 267, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 95: [1, 268] }, o2($Vg1, [2, 113]), o2($VP, [2, 53]), { 30: 269, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o2($VP, [2, 61]), o2($Ve1, $V4, { 5: 270 }), o2($VB1, [2, 124], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o2($Vg1, [2, 119], { 117: 160, 10: [1, 271], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o2($Vg1, [2, 120], { 117: 160, 10: [1, 272], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o2($Vg1, [2, 107]), { 31: [1, 273], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 274], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 275, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 276, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o2($VP, [2, 57]), o2($Vy, [2, 33]), o2($Vg1, [2, 117], { 103: $VA1 }), o2($Vg1, [2, 118], { 103: $VA1 })],
+ defaultActions: {},
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- }, {
- key: "knownLayoutCategories",
- value: function knownLayoutCategories() {
- return this.worker.postMessage({ cmd: "categories" });
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- }, {
- key: "terminateWorker",
- value: function terminateWorker() {
- this.worker.terminate();
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
}
- }]);
- return ELK3;
- }();
- exports3.default = ELK2;
- var PromisedWorker = function() {
- function PromisedWorker2(worker) {
- var _this2 = this;
- _classCallCheck(this, PromisedWorker2);
- if (worker === void 0) {
- throw new Error("Missing mandatory parameter 'worker'.");
- }
- this.resolvers = {};
- this.worker = worker;
- this.worker.onmessage = function(answer) {
- setTimeout(function() {
- _this2.receive(_this2, answer);
- }, 0);
- };
- }
- _createClass(PromisedWorker2, [{
- key: "postMessage",
- value: function postMessage(msg) {
- var id2 = this.id || 0;
- this.id = id2 + 1;
- msg.id = id2;
- var self2 = this;
- return new Promise(function(resolve, reject) {
- self2.resolvers[id2] = function(err, res) {
- if (err) {
- self2.convertGwtStyleError(err);
- reject(err);
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
} else {
- resolve(res);
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
}
- };
- self2.worker.postMessage(msg);
- });
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
}
- }, {
- key: "receive",
- value: function receive(self2, answer) {
- var json2 = answer.data;
- var resolver = self2.resolvers[json2.id];
- if (resolver) {
- delete self2.resolvers[json2.id];
- if (json2.error) {
- resolver(json2.error);
- } else {
- resolver(null, json2.data);
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
}
}
- }
- }, {
- key: "terminate",
- value: function terminate() {
- if (this.worker.terminate) {
- this.worker.terminate();
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- }
- }, {
- key: "convertGwtStyleError",
- value: function convertGwtStyleError(err) {
- if (!err) {
- return;
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
}
- var javaException = err["__java$exception"];
- if (javaException) {
- if (javaException.cause && javaException.cause.backingJsObject) {
- err.cause = javaException.cause.backingJsObject;
- this.convertGwtStyleError(err.cause);
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
}
- delete err["__java$exception"];
+ return false;
}
- }
- }]);
- return PromisedWorker2;
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: {},
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("acc_title");
+ return 34;
+ break;
+ case 1:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 2:
+ this.begin("acc_descr");
+ return 36;
+ break;
+ case 3:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 4:
+ this.begin("acc_descr_multiline");
+ break;
+ case 5:
+ this.popState();
+ break;
+ case 6:
+ return "acc_descr_multiline_value";
+ break;
+ case 7:
+ this.begin("callbackname");
+ break;
+ case 8:
+ this.popState();
+ break;
+ case 9:
+ this.popState();
+ this.begin("callbackargs");
+ break;
+ case 10:
+ return 92;
+ break;
+ case 11:
+ this.popState();
+ break;
+ case 12:
+ return 93;
+ break;
+ case 13:
+ return "MD_STR";
+ break;
+ case 14:
+ this.popState();
+ break;
+ case 15:
+ this.begin("md_string");
+ break;
+ case 16:
+ return "STR";
+ break;
+ case 17:
+ this.popState();
+ break;
+ case 18:
+ this.pushState("string");
+ break;
+ case 19:
+ return 81;
+ break;
+ case 20:
+ return 99;
+ break;
+ case 21:
+ return 82;
+ break;
+ case 22:
+ return 101;
+ break;
+ case 23:
+ return 83;
+ break;
+ case 24:
+ return 84;
+ break;
+ case 25:
+ return 94;
+ break;
+ case 26:
+ this.begin("click");
+ break;
+ case 27:
+ this.popState();
+ break;
+ case 28:
+ return 85;
+ break;
+ case 29:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 12;
+ break;
+ case 30:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 12;
+ break;
+ case 31:
+ if (yy.lex.firstGraph()) {
+ this.begin("dir");
+ }
+ return 12;
+ break;
+ case 32:
+ return 27;
+ break;
+ case 33:
+ return 32;
+ break;
+ case 34:
+ return 95;
+ break;
+ case 35:
+ return 95;
+ break;
+ case 36:
+ return 95;
+ break;
+ case 37:
+ return 95;
+ break;
+ case 38:
+ this.popState();
+ return 13;
+ break;
+ case 39:
+ this.popState();
+ return 14;
+ break;
+ case 40:
+ this.popState();
+ return 14;
+ break;
+ case 41:
+ this.popState();
+ return 14;
+ break;
+ case 42:
+ this.popState();
+ return 14;
+ break;
+ case 43:
+ this.popState();
+ return 14;
+ break;
+ case 44:
+ this.popState();
+ return 14;
+ break;
+ case 45:
+ this.popState();
+ return 14;
+ break;
+ case 46:
+ this.popState();
+ return 14;
+ break;
+ case 47:
+ this.popState();
+ return 14;
+ break;
+ case 48:
+ this.popState();
+ return 14;
+ break;
+ case 49:
+ return 118;
+ break;
+ case 50:
+ return 119;
+ break;
+ case 51:
+ return 120;
+ break;
+ case 52:
+ return 121;
+ break;
+ case 53:
+ return 102;
+ break;
+ case 54:
+ return 108;
+ break;
+ case 55:
+ return 44;
+ break;
+ case 56:
+ return 58;
+ break;
+ case 57:
+ return 42;
+ break;
+ case 58:
+ return 8;
+ break;
+ case 59:
+ return 103;
+ break;
+ case 60:
+ return 112;
+ break;
+ case 61:
+ this.popState();
+ return 75;
+ break;
+ case 62:
+ this.pushState("edgeText");
+ return 73;
+ break;
+ case 63:
+ return 116;
+ break;
+ case 64:
+ this.popState();
+ return 75;
+ break;
+ case 65:
+ this.pushState("thickEdgeText");
+ return 73;
+ break;
+ case 66:
+ return 116;
+ break;
+ case 67:
+ this.popState();
+ return 75;
+ break;
+ case 68:
+ this.pushState("dottedEdgeText");
+ return 73;
+ break;
+ case 69:
+ return 116;
+ break;
+ case 70:
+ return 75;
+ break;
+ case 71:
+ this.popState();
+ return 51;
+ break;
+ case 72:
+ return "TEXT";
+ break;
+ case 73:
+ this.pushState("ellipseText");
+ return 50;
+ break;
+ case 74:
+ this.popState();
+ return 53;
+ break;
+ case 75:
+ this.pushState("text");
+ return 52;
+ break;
+ case 76:
+ this.popState();
+ return 55;
+ break;
+ case 77:
+ this.pushState("text");
+ return 54;
+ break;
+ case 78:
+ return 56;
+ break;
+ case 79:
+ this.pushState("text");
+ return 65;
+ break;
+ case 80:
+ this.popState();
+ return 62;
+ break;
+ case 81:
+ this.pushState("text");
+ return 61;
+ break;
+ case 82:
+ this.popState();
+ return 47;
+ break;
+ case 83:
+ this.pushState("text");
+ return 46;
+ break;
+ case 84:
+ this.popState();
+ return 67;
+ break;
+ case 85:
+ this.popState();
+ return 69;
+ break;
+ case 86:
+ return 114;
+ break;
+ case 87:
+ this.pushState("trapText");
+ return 66;
+ break;
+ case 88:
+ this.pushState("trapText");
+ return 68;
+ break;
+ case 89:
+ return 115;
+ break;
+ case 90:
+ return 65;
+ break;
+ case 91:
+ return 87;
+ break;
+ case 92:
+ return "SEP";
+ break;
+ case 93:
+ return 86;
+ break;
+ case 94:
+ return 112;
+ break;
+ case 95:
+ return 108;
+ break;
+ case 96:
+ return 42;
+ break;
+ case 97:
+ return 106;
+ break;
+ case 98:
+ return 111;
+ break;
+ case 99:
+ return 113;
+ break;
+ case 100:
+ this.popState();
+ return 60;
+ break;
+ case 101:
+ this.pushState("text");
+ return 60;
+ break;
+ case 102:
+ this.popState();
+ return 49;
+ break;
+ case 103:
+ this.pushState("text");
+ return 48;
+ break;
+ case 104:
+ this.popState();
+ return 31;
+ break;
+ case 105:
+ this.pushState("text");
+ return 29;
+ break;
+ case 106:
+ this.popState();
+ return 64;
+ break;
+ case 107:
+ this.pushState("text");
+ return 63;
+ break;
+ case 108:
+ return "TEXT";
+ break;
+ case 109:
+ return "QUOTE";
+ break;
+ case 110:
+ return 9;
+ break;
+ case 111:
+ return 10;
+ break;
+ case 112:
+ return 11;
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["][`])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:["])/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s])/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:[^-]|-(?!-)+)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:[^=]|=(?!))/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:[^\.]|\.(?!))/, /^(?:\s*~~[\~]+\s*)/, /^(?:[-/\)][\)])/, /^(?:[^\(\)\[\]\{\}]|!\)+)/, /^(?:\(-)/, /^(?:\]\))/, /^(?:\(\[)/, /^(?:\]\])/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:>)/, /^(?:\)\])/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\(\(\()/, /^(?:[\\(?=\])][\]])/, /^(?:\/(?=\])\])/, /^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:\*)/, /^(?:#)/, /^(?:&)/, /^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/, /^(?:-)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\|)/, /^(?:\))/, /^(?:\()/, /^(?:\])/, /^(?:\[)/, /^(?:(\}))/, /^(?:\{)/, /^(?:[^\[\]\(\)\{\}\|\"]+)/, /^(?:")/, /^(?:(\r?\n)+)/, /^(?:\s)/, /^(?:$)/],
+ conditions: { "callbackargs": { "rules": [11, 12, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "callbackname": { "rules": [8, 9, 10, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "href": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "click": { "rules": [15, 18, 27, 28, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dottedEdgeText": { "rules": [15, 18, 67, 69, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "thickEdgeText": { "rules": [15, 18, 64, 66, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "edgeText": { "rules": [15, 18, 61, 63, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "trapText": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 84, 85, 86, 87, 88, 101, 103, 105, 107], "inclusive": false }, "ellipseText": { "rules": [15, 18, 70, 71, 72, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "text": { "rules": [15, 18, 70, 73, 74, 75, 76, 77, 80, 81, 82, 83, 87, 88, 100, 101, 102, 103, 104, 105, 106, 107, 108], "inclusive": false }, "vertex": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dir": { "rules": [15, 18, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr_multiline": { "rules": [5, 6, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr": { "rules": [3, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_title": { "rules": [1, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "md_string": { "rules": [13, 14, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "string": { "rules": [15, 16, 17, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 67, 68, 70, 73, 75, 77, 78, 79, 81, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 105, 107, 109, 110, 111, 112], "inclusive": true } }
+ };
+ return lexer3;
}();
- }, {}], 2: [function(require, module3, exports3) {
- (function(global2) {
- (function() {
- var $wnd;
- if (typeof window !== "undefined")
- $wnd = window;
- else if (typeof global2 !== "undefined")
- $wnd = global2;
- else if (typeof self !== "undefined")
- $wnd = self;
- var o;
- function nb() {
- }
- function xb() {
- }
- function Fd() {
- }
- function $g() {
- }
- function _p() {
- }
- function yq() {
- }
- function Sq() {
- }
- function Es() {
- }
- function Jw() {
- }
- function Vw() {
- }
- function VA() {
- }
- function dA() {
- }
- function MA() {
- }
- function PA() {
- }
- function PB() {
- }
- function bx() {
- }
- function cx() {
- }
- function vy() {
- }
- function Nz() {
- }
- function Yz() {
- }
- function Ylb() {
- }
- function Ymb() {
- }
- function xmb() {
- }
- function Fmb() {
- }
- function Qmb() {
- }
- function gcb() {
- }
- function ccb() {
- }
- function jcb() {
- }
- function jtb() {
- }
- function otb() {
- }
- function qtb() {
- }
- function _fb() {
- }
- function bpb() {
- }
- function kpb() {
- }
- function ppb() {
- }
- function Gpb() {
- }
- function drb() {
- }
- function dzb() {
- }
- function fzb() {
- }
- function fxb() {
- }
- function Vxb() {
- }
- function Ovb() {
- }
- function byb() {
- }
- function zyb() {
- }
- function Zyb() {
- }
- function _yb() {
- }
- function hzb() {
- }
- function jzb() {
- }
- function lzb() {
- }
- function nzb() {
- }
- function rzb() {
- }
- function zzb() {
- }
- function Czb() {
- }
- function Ezb() {
- }
- function Gzb() {
- }
- function Izb() {
- }
- function Mzb() {
- }
- function bBb() {
- }
- function NBb() {
- }
- function PBb() {
- }
- function RBb() {
- }
- function iCb() {
- }
- function OCb() {
- }
- function SCb() {
- }
- function GDb() {
- }
- function JDb() {
- }
- function fEb() {
- }
- function xEb() {
- }
- function CEb() {
- }
- function GEb() {
- }
- function yFb() {
- }
- function KGb() {
- }
- function tIb() {
- }
- function vIb() {
- }
- function xIb() {
- }
- function zIb() {
- }
- function OIb() {
- }
- function SIb() {
- }
- function TJb() {
- }
- function VJb() {
- }
- function XJb() {
- }
- function XKb() {
- }
- function fKb() {
- }
- function VKb() {
- }
- function VLb() {
- }
- function jLb() {
- }
- function nLb() {
- }
- function GLb() {
- }
- function KLb() {
- }
- function MLb() {
- }
- function OLb() {
- }
- function RLb() {
- }
- function YLb() {
- }
- function bMb() {
- }
- function gMb() {
- }
- function lMb() {
- }
- function pMb() {
- }
- function wMb() {
- }
- function zMb() {
- }
- function CMb() {
- }
- function FMb() {
- }
- function LMb() {
- }
- function zNb() {
- }
- function PNb() {
- }
- function kOb() {
- }
- function pOb() {
- }
- function tOb() {
- }
- function yOb() {
- }
- function FOb() {
- }
- function GPb() {
- }
- function aQb() {
- }
- function cQb() {
- }
- function eQb() {
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser3.parser = parser3;
+ flow_default = parser3;
+ }
+ });
+
+ // src/diagrams/flowchart/styles.ts
+ var fade, getStyles3, styles_default3;
+ var init_styles3 = __esm({
+ "src/diagrams/flowchart/styles.ts"() {
+ "use strict";
+ init_dist();
+ fade = /* @__PURE__ */ __name((color2, opacity) => {
+ const channel2 = channel_default2;
+ const r2 = channel2(color2, "r");
+ const g2 = channel2(color2, "g");
+ const b2 = channel2(color2, "b");
+ return rgba_default(r2, g2, b2, opacity);
+ }, "fade");
+ getStyles3 = /* @__PURE__ */ __name((options3) => `.label {
+ font-family: ${options3.fontFamily};
+ color: ${options3.nodeTextColor || options3.textColor};
+ }
+ .cluster-label text {
+ fill: ${options3.titleColor};
+ }
+ .cluster-label span {
+ color: ${options3.titleColor};
+ }
+ .cluster-label span p {
+ background-color: transparent;
+ }
+
+ .label text,span {
+ fill: ${options3.nodeTextColor || options3.textColor};
+ color: ${options3.nodeTextColor || options3.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.nodeBorder};
+ stroke-width: 1px;
+ }
+ .rough-node .label text , .node .label text {
+ text-anchor: middle;
+ }
+ // .flowchart-label .text-outer-tspan {
+ // text-anchor: middle;
+ // }
+ // .flowchart-label .text-inner-tspan {
+ // text-anchor: start;
+ // }
+
+ .node .katex path {
+ fill: #000;
+ stroke: #000;
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options3.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options3.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${options3.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options3.edgeLabelBackground};
+ p {
+ background-color: ${options3.edgeLabelBackground};
+ }
+ rect {
+ opacity: 0.5;
+ background-color: ${options3.edgeLabelBackground};
+ fill: ${options3.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ /* For html labels only */
+ .labelBkg {
+ background-color: ${fade(options3.edgeLabelBackground, 0.5)};
+ // background-color:
+ }
+
+ .cluster rect {
+ fill: ${options3.clusterBkg};
+ stroke: ${options3.clusterBorder};
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${options3.titleColor};
+ }
+
+ .cluster span {
+ color: ${options3.titleColor};
+ }
+ /* .cluster div {
+ color: ${options3.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${options3.fontFamily};
+ font-size: 12px;
+ background: ${options3.tertiaryColor};
+ border: 1px solid ${options3.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options3.textColor};
+ }
+`, "getStyles");
+ styles_default3 = getStyles3;
+ }
+ });
+
+ // src/diagrams/flowchart/flowDiagram.ts
+ var flowDiagram_exports = {};
+ __export(flowDiagram_exports, {
+ diagram: () => diagram2
+ });
+ var diagram2;
+ var init_flowDiagram = __esm({
+ "src/diagrams/flowchart/flowDiagram.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_flowDb();
+ init_flowRenderer_v3_unified();
+ init_flow();
+ init_styles3();
+ diagram2 = {
+ parser: flow_default,
+ db: flowDb_default,
+ renderer: flowRenderer_v3_unified_default,
+ styles: styles_default3,
+ init: /* @__PURE__ */ __name((cnf) => {
+ if (!cnf.flowchart) {
+ cnf.flowchart = {};
+ }
+ if (cnf.layout) {
+ setConfig2({ layout: cnf.layout });
+ }
+ cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ setConfig2({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });
+ flowDb_default.clear();
+ flowDb_default.setGen("gen-2");
+ }, "init")
+ };
+ }
+ });
+
+ // src/diagrams/er/parser/erDiagram.jison
+ var parser4, erDiagram_default;
+ var init_erDiagram = __esm({
+ "src/diagrams/er/parser/erDiagram.jison"() {
+ "use strict";
+ parser4 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "entityName": 11, "relSpec": 12, ":": 13, "role": 14, "BLOCK_START": 15, "attributes": 16, "BLOCK_STOP": 17, "SQS": 18, "SQE": 19, "title": 20, "title_value": 21, "acc_title": 22, "acc_title_value": 23, "acc_descr": 24, "acc_descr_value": 25, "acc_descr_multiline_value": 26, "ALPHANUM": 27, "ENTITY_NAME": 28, "attribute": 29, "attributeType": 30, "attributeName": 31, "attributeKeyTypeList": 32, "attributeComment": 33, "ATTRIBUTE_WORD": 34, "attributeKeyType": 35, "COMMA": 36, "ATTRIBUTE_KEY": 37, "COMMENT": 38, "cardinality": 39, "relType": 40, "ZERO_OR_ONE": 41, "ZERO_OR_MORE": 42, "ONE_OR_MORE": 43, "ONLY_ONE": 44, "MD_PARENT": 45, "NON_IDENTIFYING": 46, "IDENTIFYING": 47, "WORD": 48, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 13: ":", 15: "BLOCK_START", 17: "BLOCK_STOP", 18: "SQS", 19: "SQE", 20: "title", 21: "title_value", 22: "acc_title", 23: "acc_title_value", 24: "acc_descr", 25: "acc_descr_value", 26: "acc_descr_multiline_value", 27: "ALPHANUM", 28: "ENTITY_NAME", 34: "ATTRIBUTE_WORD", 36: "COMMA", 37: "ATTRIBUTE_KEY", 38: "COMMENT", 41: "ZERO_OR_ONE", 42: "ZERO_OR_MORE", 43: "ONE_OR_MORE", 44: "ONLY_ONE", 45: "MD_PARENT", 46: "NON_IDENTIFYING", 47: "IDENTIFYING", 48: "WORD" },
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ break;
+ case 2:
+ this.$ = [];
+ break;
+ case 3:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 4:
+ case 5:
+ this.$ = $$[$0];
+ break;
+ case 6:
+ case 7:
+ this.$ = [];
+ break;
+ case 8:
+ yy.addEntity($$[$0 - 4]);
+ yy.addEntity($$[$0 - 2]);
+ yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);
+ break;
+ case 9:
+ yy.addEntity($$[$0 - 3]);
+ yy.addAttributes($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 10:
+ yy.addEntity($$[$0 - 2]);
+ break;
+ case 11:
+ yy.addEntity($$[$0]);
+ break;
+ case 12:
+ yy.addEntity($$[$0 - 6], $$[$0 - 4]);
+ yy.addAttributes($$[$0 - 6], $$[$0 - 1]);
+ break;
+ case 13:
+ yy.addEntity($$[$0 - 5], $$[$0 - 3]);
+ break;
+ case 14:
+ yy.addEntity($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 15:
+ case 16:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 17:
+ case 18:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 19:
+ case 43:
+ this.$ = $$[$0];
+ break;
+ case 20:
+ case 41:
+ case 42:
+ this.$ = $$[$0].replace(/"/g, "");
+ break;
+ case 21:
+ case 29:
+ this.$ = [$$[$0]];
+ break;
+ case 22:
+ $$[$0].push($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 23:
+ this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };
+ break;
+ case 24:
+ this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };
+ break;
+ case 25:
+ this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };
+ break;
+ case 26:
+ this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };
+ break;
+ case 27:
+ case 28:
+ case 31:
+ this.$ = $$[$0];
+ break;
+ case 30:
+ $$[$0 - 2].push($$[$0]);
+ this.$ = $$[$0 - 2];
+ break;
+ case 32:
+ this.$ = $$[$0].replace(/"/g, "");
+ break;
+ case 33:
+ this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };
+ break;
+ case 34:
+ this.$ = yy.Cardinality.ZERO_OR_ONE;
+ break;
+ case 35:
+ this.$ = yy.Cardinality.ZERO_OR_MORE;
+ break;
+ case 36:
+ this.$ = yy.Cardinality.ONE_OR_MORE;
+ break;
+ case 37:
+ this.$ = yy.Cardinality.ONLY_ONE;
+ break;
+ case 38:
+ this.$ = yy.Cardinality.MD_PARENT;
+ break;
+ case 39:
+ this.$ = yy.Identification.NON_IDENTIFYING;
+ break;
+ case 40:
+ this.$ = yy.Identification.IDENTIFYING;
+ break;
}
- function gQb() {
+ }, "anonymous"),
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o2($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o2($V0, [2, 7], { 1: [2, 1] }), o2($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o2($V0, [2, 5]), o2($V0, [2, 6]), o2($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o2($V0, [2, 18]), o2($Vc, [2, 19]), o2($Vc, [2, 20]), o2($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o2($Ve, [2, 34]), o2($Ve, [2, 35]), o2($Ve, [2, 36]), o2($Ve, [2, 37]), o2($Ve, [2, 38]), o2($V0, [2, 15]), o2($V0, [2, 16]), o2($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o2($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o2($Vf, [2, 39]), o2($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o2($V0, [2, 9]), { 17: [2, 22] }, o2($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o2([17, 34, 37, 38], [2, 28]), o2($V0, [2, 14], { 15: [1, 55] }), o2([27, 28], [2, 33]), o2($V0, [2, 8]), o2($V0, [2, 41]), o2($V0, [2, 42]), o2($V0, [2, 43]), o2($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o2($Vg, [2, 25]), o2($Vj, [2, 29]), o2($Vg, [2, 32]), o2($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o2($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o2($V0, [2, 13]), o2($Vj, [2, 30]), o2($V0, [2, 12])],
+ defaultActions: { 34: [2, 27], 41: [2, 22] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function iQb() {
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function CQb() {
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
}
- function MQb() {
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
}
- function OQb() {
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("acc_title");
+ return 22;
+ break;
+ case 1:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 2:
+ this.begin("acc_descr");
+ return 24;
+ break;
+ case 3:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 4:
+ this.begin("acc_descr_multiline");
+ break;
+ case 5:
+ this.popState();
+ break;
+ case 6:
+ return "acc_descr_multiline_value";
+ break;
+ case 7:
+ return 10;
+ break;
+ case 8:
+ break;
+ case 9:
+ return 8;
+ break;
+ case 10:
+ return 28;
+ break;
+ case 11:
+ return 48;
+ break;
+ case 12:
+ return 4;
+ break;
+ case 13:
+ this.begin("block");
+ return 15;
+ break;
+ case 14:
+ return 36;
+ break;
+ case 15:
+ break;
+ case 16:
+ return 37;
+ break;
+ case 17:
+ return 34;
+ break;
+ case 18:
+ return 34;
+ break;
+ case 19:
+ return 38;
+ break;
+ case 20:
+ break;
+ case 21:
+ this.popState();
+ return 17;
+ break;
+ case 22:
+ return yy_.yytext[0];
+ break;
+ case 23:
+ return 18;
+ break;
+ case 24:
+ return 19;
+ break;
+ case 25:
+ return 41;
+ break;
+ case 26:
+ return 43;
+ break;
+ case 27:
+ return 43;
+ break;
+ case 28:
+ return 43;
+ break;
+ case 29:
+ return 41;
+ break;
+ case 30:
+ return 41;
+ break;
+ case 31:
+ return 42;
+ break;
+ case 32:
+ return 42;
+ break;
+ case 33:
+ return 42;
+ break;
+ case 34:
+ return 42;
+ break;
+ case 35:
+ return 42;
+ break;
+ case 36:
+ return 43;
+ break;
+ case 37:
+ return 42;
+ break;
+ case 38:
+ return 43;
+ break;
+ case 39:
+ return 44;
+ break;
+ case 40:
+ return 44;
+ break;
+ case 41:
+ return 44;
+ break;
+ case 42:
+ return 44;
+ break;
+ case 43:
+ return 41;
+ break;
+ case 44:
+ return 42;
+ break;
+ case 45:
+ return 43;
+ break;
+ case 46:
+ return 45;
+ break;
+ case 47:
+ return 46;
+ break;
+ case 48:
+ return 47;
+ break;
+ case 49:
+ return 47;
+ break;
+ case 50:
+ return 46;
+ break;
+ case 51:
+ return 46;
+ break;
+ case 52:
+ return 46;
+ break;
+ case 53:
+ return 27;
+ break;
+ case 54:
+ return yy_.yytext[0];
+ break;
+ case 55:
+ return 6;
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\s*u\b)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i],
+ conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "block": { "rules": [14, 15, 16, 17, 18, 19, 20, 21, 22], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser4.parser = parser4;
+ erDiagram_default = parser4;
+ }
+ });
+
+ // src/diagrams/er/erDb.js
+ var entities, relationships, Cardinality, Identification, addEntity, getEntities, addAttributes, addRelationship, getRelationships, clear9, erDb_default;
+ var init_erDb = __esm({
+ "src/diagrams/er/erDb.js"() {
+ "use strict";
+ init_logger();
+ init_diagramAPI();
+ init_commonDb();
+ entities = /* @__PURE__ */ new Map();
+ relationships = [];
+ Cardinality = {
+ ZERO_OR_ONE: "ZERO_OR_ONE",
+ ZERO_OR_MORE: "ZERO_OR_MORE",
+ ONE_OR_MORE: "ONE_OR_MORE",
+ ONLY_ONE: "ONLY_ONE",
+ MD_PARENT: "MD_PARENT"
+ };
+ Identification = {
+ NON_IDENTIFYING: "NON_IDENTIFYING",
+ IDENTIFYING: "IDENTIFYING"
+ };
+ addEntity = /* @__PURE__ */ __name(function(name, alias = void 0) {
+ if (!entities.has(name)) {
+ entities.set(name, { attributes: [], alias });
+ log.info("Added new entity :", name);
+ } else if (!entities.get(name).alias && alias) {
+ entities.get(name).alias = alias;
+ log.info(`Add alias '${alias}' to entity '${name}'`);
+ }
+ return entities.get(name);
+ }, "addEntity");
+ getEntities = /* @__PURE__ */ __name(() => entities, "getEntities");
+ addAttributes = /* @__PURE__ */ __name(function(entityName, attribs) {
+ let entity = addEntity(entityName);
+ let i2;
+ for (i2 = attribs.length - 1; i2 >= 0; i2--) {
+ entity.attributes.push(attribs[i2]);
+ log.debug("Added attribute ", attribs[i2].attributeName);
+ }
+ }, "addAttributes");
+ addRelationship = /* @__PURE__ */ __name(function(entA, rolA, entB, rSpec) {
+ let rel2 = {
+ entityA: entA,
+ roleA: rolA,
+ entityB: entB,
+ relSpec: rSpec
+ };
+ relationships.push(rel2);
+ log.debug("Added new relationship :", rel2);
+ }, "addRelationship");
+ getRelationships = /* @__PURE__ */ __name(() => relationships, "getRelationships");
+ clear9 = /* @__PURE__ */ __name(function() {
+ entities = /* @__PURE__ */ new Map();
+ relationships = [];
+ clear();
+ }, "clear");
+ erDb_default = {
+ Cardinality,
+ Identification,
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().er, "getConfig"),
+ addEntity,
+ addAttributes,
+ getEntities,
+ addRelationship,
+ getRelationships,
+ clear: clear9,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ setDiagramTitle,
+ getDiagramTitle
+ };
+ }
+ });
+
+ // src/diagrams/er/erMarkers.js
+ var ERMarkers, insertMarkers2, erMarkers_default;
+ var init_erMarkers = __esm({
+ "src/diagrams/er/erMarkers.js"() {
+ "use strict";
+ ERMarkers = {
+ ONLY_ONE_START: "ONLY_ONE_START",
+ ONLY_ONE_END: "ONLY_ONE_END",
+ ZERO_OR_ONE_START: "ZERO_OR_ONE_START",
+ ZERO_OR_ONE_END: "ZERO_OR_ONE_END",
+ ONE_OR_MORE_START: "ONE_OR_MORE_START",
+ ONE_OR_MORE_END: "ONE_OR_MORE_END",
+ ZERO_OR_MORE_START: "ZERO_OR_MORE_START",
+ ZERO_OR_MORE_END: "ZERO_OR_MORE_END",
+ MD_PARENT_END: "MD_PARENT_END",
+ MD_PARENT_START: "MD_PARENT_START"
+ };
+ insertMarkers2 = /* @__PURE__ */ __name(function(elem, conf8) {
+ let marker;
+ elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_START).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_END).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf8.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6);
+ marker.append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M9,0 L9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf8.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6);
+ marker.append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M21,0 L21,18");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
+ elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf8.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6);
+ marker.append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
+ marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
+ marker.append("circle").attr("stroke", conf8.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6);
+ marker.append("path").attr("stroke", conf8.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
+ return;
+ }, "insertMarkers");
+ erMarkers_default = {
+ ERMarkers,
+ insertMarkers: insertMarkers2
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/regex.js
+ var regex_default;
+ var init_regex = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/regex.js"() {
+ "use strict";
+ regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/validate.js
+ function validate(uuid3) {
+ return typeof uuid3 === "string" && regex_default.test(uuid3);
+ }
+ var validate_default;
+ var init_validate = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/validate.js"() {
+ "use strict";
+ init_regex();
+ __name(validate, "validate");
+ validate_default = validate;
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js
+ function unsafeStringify(arr, offset = 0) {
+ return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
+ }
+ var byteToHex;
+ var init_stringify = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js"() {
+ "use strict";
+ byteToHex = [];
+ for (let i2 = 0; i2 < 256; ++i2) {
+ byteToHex.push((i2 + 256).toString(16).slice(1));
+ }
+ __name(unsafeStringify, "unsafeStringify");
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/parse.js
+ function parse(uuid3) {
+ if (!validate_default(uuid3)) {
+ throw TypeError("Invalid UUID");
+ }
+ let v3;
+ const arr = new Uint8Array(16);
+ arr[0] = (v3 = parseInt(uuid3.slice(0, 8), 16)) >>> 24;
+ arr[1] = v3 >>> 16 & 255;
+ arr[2] = v3 >>> 8 & 255;
+ arr[3] = v3 & 255;
+ arr[4] = (v3 = parseInt(uuid3.slice(9, 13), 16)) >>> 8;
+ arr[5] = v3 & 255;
+ arr[6] = (v3 = parseInt(uuid3.slice(14, 18), 16)) >>> 8;
+ arr[7] = v3 & 255;
+ arr[8] = (v3 = parseInt(uuid3.slice(19, 23), 16)) >>> 8;
+ arr[9] = v3 & 255;
+ arr[10] = (v3 = parseInt(uuid3.slice(24, 36), 16)) / 1099511627776 & 255;
+ arr[11] = v3 / 4294967296 & 255;
+ arr[12] = v3 >>> 24 & 255;
+ arr[13] = v3 >>> 16 & 255;
+ arr[14] = v3 >>> 8 & 255;
+ arr[15] = v3 & 255;
+ return arr;
+ }
+ var parse_default;
+ var init_parse2 = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/parse.js"() {
+ "use strict";
+ init_validate();
+ __name(parse, "parse");
+ parse_default = parse;
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v35.js
+ function stringToBytes(str2) {
+ str2 = unescape(encodeURIComponent(str2));
+ const bytes = [];
+ for (let i2 = 0; i2 < str2.length; ++i2) {
+ bytes.push(str2.charCodeAt(i2));
+ }
+ return bytes;
+ }
+ function v35(name, version4, hashfunc) {
+ function generateUUID(value2, namespace, buf, offset) {
+ var _namespace;
+ if (typeof value2 === "string") {
+ value2 = stringToBytes(value2);
+ }
+ if (typeof namespace === "string") {
+ namespace = parse_default(namespace);
+ }
+ if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
+ throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
+ }
+ let bytes = new Uint8Array(16 + value2.length);
+ bytes.set(namespace);
+ bytes.set(value2, namespace.length);
+ bytes = hashfunc(bytes);
+ bytes[6] = bytes[6] & 15 | version4;
+ bytes[8] = bytes[8] & 63 | 128;
+ if (buf) {
+ offset = offset || 0;
+ for (let i2 = 0; i2 < 16; ++i2) {
+ buf[offset + i2] = bytes[i2];
+ }
+ return buf;
+ }
+ return unsafeStringify(bytes);
+ }
+ __name(generateUUID, "generateUUID");
+ try {
+ generateUUID.name = name;
+ } catch (err) {
+ }
+ generateUUID.DNS = DNS;
+ generateUUID.URL = URL2;
+ return generateUUID;
+ }
+ var DNS, URL2;
+ var init_v35 = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v35.js"() {
+ "use strict";
+ init_stringify();
+ init_parse2();
+ __name(stringToBytes, "stringToBytes");
+ DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
+ URL2 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
+ __name(v35, "v35");
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/sha1.js
+ function f2(s2, x5, y5, z2) {
+ switch (s2) {
+ case 0:
+ return x5 & y5 ^ ~x5 & z2;
+ case 1:
+ return x5 ^ y5 ^ z2;
+ case 2:
+ return x5 & y5 ^ x5 & z2 ^ y5 & z2;
+ case 3:
+ return x5 ^ y5 ^ z2;
+ }
+ }
+ function ROTL(x5, n2) {
+ return x5 << n2 | x5 >>> 32 - n2;
+ }
+ function sha1(bytes) {
+ const K4 = [1518500249, 1859775393, 2400959708, 3395469782];
+ const H2 = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
+ if (typeof bytes === "string") {
+ const msg = unescape(encodeURIComponent(bytes));
+ bytes = [];
+ for (let i2 = 0; i2 < msg.length; ++i2) {
+ bytes.push(msg.charCodeAt(i2));
+ }
+ } else if (!Array.isArray(bytes)) {
+ bytes = Array.prototype.slice.call(bytes);
+ }
+ bytes.push(128);
+ const l2 = bytes.length / 4 + 2;
+ const N2 = Math.ceil(l2 / 16);
+ const M2 = new Array(N2);
+ for (let i2 = 0; i2 < N2; ++i2) {
+ const arr = new Uint32Array(16);
+ for (let j2 = 0; j2 < 16; ++j2) {
+ arr[j2] = bytes[i2 * 64 + j2 * 4] << 24 | bytes[i2 * 64 + j2 * 4 + 1] << 16 | bytes[i2 * 64 + j2 * 4 + 2] << 8 | bytes[i2 * 64 + j2 * 4 + 3];
+ }
+ M2[i2] = arr;
+ }
+ M2[N2 - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
+ M2[N2 - 1][14] = Math.floor(M2[N2 - 1][14]);
+ M2[N2 - 1][15] = (bytes.length - 1) * 8 & 4294967295;
+ for (let i2 = 0; i2 < N2; ++i2) {
+ const W2 = new Uint32Array(80);
+ for (let t4 = 0; t4 < 16; ++t4) {
+ W2[t4] = M2[i2][t4];
+ }
+ for (let t4 = 16; t4 < 80; ++t4) {
+ W2[t4] = ROTL(W2[t4 - 3] ^ W2[t4 - 8] ^ W2[t4 - 14] ^ W2[t4 - 16], 1);
+ }
+ let a2 = H2[0];
+ let b2 = H2[1];
+ let c3 = H2[2];
+ let d2 = H2[3];
+ let e3 = H2[4];
+ for (let t4 = 0; t4 < 80; ++t4) {
+ const s2 = Math.floor(t4 / 20);
+ const T3 = ROTL(a2, 5) + f2(s2, b2, c3, d2) + e3 + K4[s2] + W2[t4] >>> 0;
+ e3 = d2;
+ d2 = c3;
+ c3 = ROTL(b2, 30) >>> 0;
+ b2 = a2;
+ a2 = T3;
+ }
+ H2[0] = H2[0] + a2 >>> 0;
+ H2[1] = H2[1] + b2 >>> 0;
+ H2[2] = H2[2] + c3 >>> 0;
+ H2[3] = H2[3] + d2 >>> 0;
+ H2[4] = H2[4] + e3 >>> 0;
+ }
+ return [H2[0] >> 24 & 255, H2[0] >> 16 & 255, H2[0] >> 8 & 255, H2[0] & 255, H2[1] >> 24 & 255, H2[1] >> 16 & 255, H2[1] >> 8 & 255, H2[1] & 255, H2[2] >> 24 & 255, H2[2] >> 16 & 255, H2[2] >> 8 & 255, H2[2] & 255, H2[3] >> 24 & 255, H2[3] >> 16 & 255, H2[3] >> 8 & 255, H2[3] & 255, H2[4] >> 24 & 255, H2[4] >> 16 & 255, H2[4] >> 8 & 255, H2[4] & 255];
+ }
+ var sha1_default;
+ var init_sha1 = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/sha1.js"() {
+ "use strict";
+ __name(f2, "f");
+ __name(ROTL, "ROTL");
+ __name(sha1, "sha1");
+ sha1_default = sha1;
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v5.js
+ var v5, v5_default;
+ var init_v5 = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v5.js"() {
+ "use strict";
+ init_v35();
+ init_sha1();
+ v5 = v35("v5", 80, sha1_default);
+ v5_default = v5;
+ }
+ });
+
+ // ../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/index.js
+ var init_esm_browser = __esm({
+ "../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/index.js"() {
+ "use strict";
+ init_v5();
+ }
+ });
+
+ // src/diagrams/er/erRenderer.js
+ function generateId2(str2 = "", prefix = "") {
+ const simplifiedStr = str2.replace(BAD_ID_CHARS_REGEXP, "");
+ return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5_default(
+ str2,
+ MERMAID_ERDIAGRAM_UUID
+ )}`;
+ }
+ function strWithHyphen(str2 = "") {
+ return str2.length > 0 ? `${str2}-` : "";
+ }
+ var BAD_ID_CHARS_REGEXP, conf2, entityNameIds, setConf2, drawAttributes, drawEntities, adjustEntities, getEdgeName, addRelationships, relCnt, drawRelationshipFromLayout, draw3, MERMAID_ERDIAGRAM_UUID, erRenderer_default;
+ var init_erRenderer = __esm({
+ "src/diagrams/er/erRenderer.js"() {
+ "use strict";
+ init_graphlib();
+ init_src32();
+ init_dagre();
+ init_diagramAPI();
+ init_logger();
+ init_utils2();
+ init_erMarkers();
+ init_setupGraphViewbox();
+ init_common();
+ init_esm_browser();
+ BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g;
+ conf2 = {};
+ entityNameIds = /* @__PURE__ */ new Map();
+ setConf2 = /* @__PURE__ */ __name(function(cnf) {
+ const keys3 = Object.keys(cnf);
+ for (const key of keys3) {
+ conf2[key] = cnf[key];
+ }
+ }, "setConf");
+ drawAttributes = /* @__PURE__ */ __name((groupNode, entityTextNode, attributes) => {
+ const heightPadding = conf2.entityPadding / 3;
+ const widthPadding = conf2.entityPadding / 3;
+ const attrFontSize = conf2.fontSize * 0.85;
+ const labelBBox = entityTextNode.node().getBBox();
+ const attributeNodes = [];
+ let hasKeyType = false;
+ let hasComment = false;
+ let maxTypeWidth = 0;
+ let maxNameWidth = 0;
+ let maxKeyWidth = 0;
+ let maxCommentWidth = 0;
+ let cumulativeHeight = labelBBox.height + heightPadding * 2;
+ let attrNum = 1;
+ attributes.forEach((item) => {
+ if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {
+ hasKeyType = true;
+ }
+ if (item.attributeComment !== void 0) {
+ hasComment = true;
+ }
+ });
+ attributes.forEach((item) => {
+ const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;
+ let nodeHeight = 0;
+ const attributeType = parseGenericTypes(item.attributeType);
+ const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig2().fontFamily).style("font-size", attrFontSize + "px").text(attributeType);
+ const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig2().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName);
+ const attributeNode = {};
+ attributeNode.tn = typeNode;
+ attributeNode.nn = nameNode;
+ const typeBBox = typeNode.node().getBBox();
+ const nameBBox = nameNode.node().getBBox();
+ maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);
+ maxNameWidth = Math.max(maxNameWidth, nameBBox.width);
+ nodeHeight = Math.max(typeBBox.height, nameBBox.height);
+ if (hasKeyType) {
+ const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : "";
+ const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig2().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText);
+ attributeNode.kn = keyTypeNode;
+ const keyTypeBBox = keyTypeNode.node().getBBox();
+ maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);
+ nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);
+ }
+ if (hasComment) {
+ const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig2().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || "");
+ attributeNode.cn = commentNode;
+ const commentNodeBBox = commentNode.node().getBBox();
+ maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);
+ nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);
+ }
+ attributeNode.height = nodeHeight;
+ attributeNodes.push(attributeNode);
+ cumulativeHeight += nodeHeight + heightPadding * 2;
+ attrNum += 1;
+ });
+ let widthPaddingFactor = 4;
+ if (hasKeyType) {
+ widthPaddingFactor += 2;
+ }
+ if (hasComment) {
+ widthPaddingFactor += 2;
+ }
+ const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;
+ const bBox = {
+ width: Math.max(
+ conf2.minEntityWidth,
+ Math.max(
+ labelBBox.width + conf2.entityPadding * 2,
+ maxWidth + widthPadding * widthPaddingFactor
+ )
+ ),
+ height: attributes.length > 0 ? cumulativeHeight : Math.max(conf2.minEntityHeight, labelBBox.height + conf2.entityPadding * 2)
+ };
+ if (attributes.length > 0) {
+ const spareColumnWidth = Math.max(
+ 0,
+ (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)
+ );
+ entityTextNode.attr(
+ "transform",
+ "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")"
+ );
+ let heightOffset = labelBBox.height + heightPadding * 2;
+ let attribStyle = "attributeBoxOdd";
+ attributeNodes.forEach((attributeNode) => {
+ const alignY = heightOffset + heightPadding + attributeNode.height / 2;
+ attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")");
+ const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width"));
+ attributeNode.nn.attr(
+ "transform",
+ "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")"
+ );
+ const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width"));
+ if (hasKeyType) {
+ attributeNode.kn.attr(
+ "transform",
+ "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
+ );
+ const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
+ keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width"));
}
- function ASb() {
+ if (hasComment) {
+ attributeNode.cn.attr(
+ "transform",
+ "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
+ );
+ groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
}
- function fTb() {
- }
- function kTb() {
- }
- function STb() {
- }
- function fUb() {
- }
- function DUb() {
- }
- function VUb() {
- }
- function YUb() {
- }
- function _Ub() {
- }
- function _Wb() {
- }
- function QWb() {
- }
- function XWb() {
- }
- function jVb() {
- }
- function DVb() {
- }
- function VVb() {
- }
- function $Vb() {
- }
- function dXb() {
- }
- function hXb() {
- }
- function lXb() {
- }
- function gYb() {
- }
- function HYb() {
- }
- function SYb() {
- }
- function VYb() {
+ heightOffset += attributeNode.height + heightPadding * 2;
+ attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd";
+ });
+ } else {
+ bBox.height = Math.max(conf2.minEntityHeight, cumulativeHeight);
+ entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")");
+ }
+ return bBox;
+ }, "drawAttributes");
+ drawEntities = /* @__PURE__ */ __name(function(svgNode2, entities2, graph) {
+ const keys3 = [...entities2.keys()];
+ let firstOne;
+ keys3.forEach(function(entityName) {
+ const entityId = generateId2(entityName, "entity");
+ entityNameIds.set(entityName, entityId);
+ const groupNode = svgNode2.append("g").attr("id", entityId);
+ firstOne = firstOne === void 0 ? entityId : firstOne;
+ const textId = "text-" + entityId;
+ const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig2().fontFamily).style("font-size", conf2.fontSize + "px").text(entities2.get(entityName).alias ?? entityName);
+ const { width: entityWidth, height: entityHeight } = drawAttributes(
+ groupNode,
+ textNode,
+ entities2.get(entityName).attributes
+ );
+ const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight);
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(entityId, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id: entityId
+ });
+ });
+ return firstOne;
+ }, "drawEntities");
+ adjustEntities = /* @__PURE__ */ __name(function(svgNode2, graph) {
+ graph.nodes().forEach(function(v3) {
+ if (v3 !== void 0 && graph.node(v3) !== void 0) {
+ svgNode2.select("#" + v3).attr(
+ "transform",
+ "translate(" + (graph.node(v3).x - graph.node(v3).width / 2) + "," + (graph.node(v3).y - graph.node(v3).height / 2) + " )"
+ );
+ }
+ });
+ }, "adjustEntities");
+ getEdgeName = /* @__PURE__ */ __name(function(rel2) {
+ return (rel2.entityA + rel2.roleA + rel2.entityB).replace(/\s/g, "");
+ }, "getEdgeName");
+ addRelationships = /* @__PURE__ */ __name(function(relationships2, g2) {
+ relationships2.forEach(function(r2) {
+ g2.setEdge(
+ entityNameIds.get(r2.entityA),
+ entityNameIds.get(r2.entityB),
+ { relationship: r2 },
+ getEdgeName(r2)
+ );
+ });
+ return relationships2;
+ }, "addRelationships");
+ relCnt = 0;
+ drawRelationshipFromLayout = /* @__PURE__ */ __name(function(svg, rel2, g2, insert, diagObj) {
+ relCnt++;
+ const edge = g2.edge(
+ entityNameIds.get(rel2.entityA),
+ entityNameIds.get(rel2.entityB),
+ getEdgeName(rel2)
+ );
+ const lineFunction = line_default().x(function(d2) {
+ return d2.x;
+ }).y(function(d2) {
+ return d2.y;
+ }).curve(basis_default2);
+ const svgPath = svg.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf2.stroke).style("fill", "none");
+ if (rel2.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {
+ svgPath.attr("stroke-dasharray", "8,8");
+ }
+ let url = "";
+ if (conf2.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ switch (rel2.relSpec.cardA) {
+ case diagObj.db.Cardinality.ZERO_OR_ONE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers_default.ERMarkers.ZERO_OR_ONE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ZERO_OR_MORE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers_default.ERMarkers.ZERO_OR_MORE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ONE_OR_MORE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers_default.ERMarkers.ONE_OR_MORE_END + ")");
+ break;
+ case diagObj.db.Cardinality.ONLY_ONE:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers_default.ERMarkers.ONLY_ONE_END + ")");
+ break;
+ case diagObj.db.Cardinality.MD_PARENT:
+ svgPath.attr("marker-end", "url(" + url + "#" + erMarkers_default.ERMarkers.MD_PARENT_END + ")");
+ break;
+ }
+ switch (rel2.relSpec.cardB) {
+ case diagObj.db.Cardinality.ZERO_OR_ONE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers_default.ERMarkers.ZERO_OR_ONE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ZERO_OR_MORE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers_default.ERMarkers.ZERO_OR_MORE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ONE_OR_MORE:
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + erMarkers_default.ERMarkers.ONE_OR_MORE_START + ")"
+ );
+ break;
+ case diagObj.db.Cardinality.ONLY_ONE:
+ svgPath.attr("marker-start", "url(" + url + "#" + erMarkers_default.ERMarkers.ONLY_ONE_START + ")");
+ break;
+ case diagObj.db.Cardinality.MD_PARENT:
+ svgPath.attr("marker-start", "url(" + url + "#" + erMarkers_default.ERMarkers.MD_PARENT_START + ")");
+ break;
+ }
+ const len = svgPath.node().getTotalLength();
+ const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
+ const labelId = "rel" + relCnt;
+ const labelText = rel2.roleA.split(/
/g);
+ const labelNode = svg.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig2().fontFamily).style("font-size", conf2.fontSize + "px");
+ if (labelText.length == 1) {
+ labelNode.text(rel2.roleA);
+ } else {
+ const firstShift = -(labelText.length - 1) * 0.5;
+ labelText.forEach((txt, i2) => {
+ labelNode.append("tspan").attr("x", labelPoint.x).attr("dy", `${i2 === 0 ? firstShift : 1}em`).text(txt);
+ });
+ }
+ const labelBBox = labelNode.node().getBBox();
+ svg.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height);
+ }, "drawRelationshipFromLayout");
+ draw3 = /* @__PURE__ */ __name(function(text2, id27, _version, diagObj) {
+ conf2 = getConfig2().er;
+ log.info("Drawing ER diagram");
+ const securityLevel = getConfig2().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = root4.select(`[id='${id27}']`);
+ erMarkers_default.insertMarkers(svg, conf2);
+ let g2;
+ g2 = new Graph({
+ multigraph: true,
+ directed: true,
+ compound: false
+ }).setGraph({
+ rankdir: conf2.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g2);
+ const relationships2 = addRelationships(diagObj.db.getRelationships(), g2);
+ layout(g2);
+ adjustEntities(svg, g2);
+ relationships2.forEach(function(rel2) {
+ drawRelationshipFromLayout(svg, rel2, g2, firstEntity, diagObj);
+ });
+ const padding3 = conf2.diagramPadding;
+ utils_default2.insertTitle(svg, "entityTitleText", conf2.titleTopMargin, diagObj.db.getDiagramTitle());
+ const svgBounds = svg.node().getBBox();
+ const width3 = svgBounds.width + padding3 * 2;
+ const height2 = svgBounds.height + padding3 * 2;
+ configureSvgSize(svg, height2, width3, conf2.useMaxWidth);
+ svg.attr("viewBox", `${svgBounds.x - padding3} ${svgBounds.y - padding3} ${width3} ${height2}`);
+ }, "draw");
+ MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c";
+ __name(generateId2, "generateId");
+ __name(strWithHyphen, "strWithHyphen");
+ erRenderer_default = {
+ setConf: setConf2,
+ draw: draw3
+ };
+ }
+ });
+
+ // src/diagrams/er/styles.js
+ var getStyles4, styles_default4;
+ var init_styles4 = __esm({
+ "src/diagrams/er/styles.js"() {
+ "use strict";
+ getStyles4 = /* @__PURE__ */ __name((options3) => `
+ .entityBox {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.nodeBorder};
+ }
+
+ .attributeBoxOdd {
+ fill: ${options3.attributeBackgroundColorOdd};
+ stroke: ${options3.nodeBorder};
+ }
+
+ .attributeBoxEven {
+ fill: ${options3.attributeBackgroundColorEven};
+ stroke: ${options3.nodeBorder};
+ }
+
+ .relationshipLabelBox {
+ fill: ${options3.tertiaryColor};
+ opacity: 0.7;
+ background-color: ${options3.tertiaryColor};
+ rect {
+ opacity: 0.5;
+ }
+ }
+
+ .relationshipLine {
+ stroke: ${options3.lineColor};
+ }
+
+ .entityTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options3.textColor};
+ }
+ #MD_PARENT_START {
+ fill: #f5f5f5 !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+ }
+ #MD_PARENT_END {
+ fill: #f5f5f5 !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+ }
+
+`, "getStyles");
+ styles_default4 = getStyles4;
+ }
+ });
+
+ // src/diagrams/er/erDiagram.ts
+ var erDiagram_exports = {};
+ __export(erDiagram_exports, {
+ diagram: () => diagram3
+ });
+ var diagram3;
+ var init_erDiagram2 = __esm({
+ "src/diagrams/er/erDiagram.ts"() {
+ "use strict";
+ init_erDiagram();
+ init_erDb();
+ init_erRenderer();
+ init_styles4();
+ diagram3 = {
+ parser: erDiagram_default,
+ db: erDb_default,
+ renderer: erRenderer_default,
+ styles: styles_default4
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/syntax-tree.js
+ function isAstNode(obj) {
+ return typeof obj === "object" && obj !== null && typeof obj.$type === "string";
+ }
+ function isReference(obj) {
+ return typeof obj === "object" && obj !== null && typeof obj.$refText === "string";
+ }
+ function isAstNodeDescription(obj) {
+ return typeof obj === "object" && obj !== null && typeof obj.name === "string" && typeof obj.type === "string" && typeof obj.path === "string";
+ }
+ function isLinkingError(obj) {
+ return typeof obj === "object" && obj !== null && isAstNode(obj.container) && isReference(obj.reference) && typeof obj.message === "string";
+ }
+ function isCompositeCstNode(node2) {
+ return typeof node2 === "object" && node2 !== null && Array.isArray(node2.content);
+ }
+ function isLeafCstNode(node2) {
+ return typeof node2 === "object" && node2 !== null && typeof node2.tokenType === "object";
+ }
+ function isRootCstNode(node2) {
+ return isCompositeCstNode(node2) && typeof node2.fullText === "string";
+ }
+ var AbstractAstReflection;
+ var init_syntax_tree = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/syntax-tree.js"() {
+ "use strict";
+ __name(isAstNode, "isAstNode");
+ __name(isReference, "isReference");
+ __name(isAstNodeDescription, "isAstNodeDescription");
+ __name(isLinkingError, "isLinkingError");
+ AbstractAstReflection = class {
+ static {
+ __name(this, "AbstractAstReflection");
+ }
+ constructor() {
+ this.subtypes = {};
+ this.allSubtypes = {};
+ }
+ isInstance(node2, type3) {
+ return isAstNode(node2) && this.isSubtype(node2.$type, type3);
+ }
+ isSubtype(subtype, supertype) {
+ if (subtype === supertype) {
+ return true;
+ }
+ let nested = this.subtypes[subtype];
+ if (!nested) {
+ nested = this.subtypes[subtype] = {};
+ }
+ const existing = nested[supertype];
+ if (existing !== void 0) {
+ return existing;
+ } else {
+ const result = this.computeIsSubtype(subtype, supertype);
+ nested[supertype] = result;
+ return result;
+ }
+ }
+ getAllSubTypes(type3) {
+ const existing = this.allSubtypes[type3];
+ if (existing) {
+ return existing;
+ } else {
+ const allTypes = this.getAllTypes();
+ const types = [];
+ for (const possibleSubType of allTypes) {
+ if (this.isSubtype(possibleSubType, type3)) {
+ types.push(possibleSubType);
+ }
}
- function dZb() {
+ this.allSubtypes[type3] = types;
+ return types;
+ }
+ }
+ };
+ __name(isCompositeCstNode, "isCompositeCstNode");
+ __name(isLeafCstNode, "isLeafCstNode");
+ __name(isRootCstNode, "isRootCstNode");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/stream.js
+ function toString2(item) {
+ if (typeof item === "string") {
+ return item;
+ }
+ if (typeof item === "undefined") {
+ return "undefined";
+ }
+ if (typeof item.toString === "function") {
+ return item.toString();
+ }
+ return Object.prototype.toString.call(item);
+ }
+ function isIterable(obj) {
+ return !!obj && typeof obj[Symbol.iterator] === "function";
+ }
+ function stream(...collections) {
+ if (collections.length === 1) {
+ const collection4 = collections[0];
+ if (collection4 instanceof StreamImpl) {
+ return collection4;
+ }
+ if (isIterable(collection4)) {
+ return new StreamImpl(() => collection4[Symbol.iterator](), (iterator) => iterator.next());
+ }
+ if (typeof collection4.length === "number") {
+ return new StreamImpl(() => ({ index: 0 }), (state5) => {
+ if (state5.index < collection4.length) {
+ return { done: false, value: collection4[state5.index++] };
+ } else {
+ return DONE_RESULT;
+ }
+ });
+ }
+ }
+ if (collections.length > 1) {
+ return new StreamImpl(() => ({ collIndex: 0, arrIndex: 0 }), (state5) => {
+ do {
+ if (state5.iterator) {
+ const next3 = state5.iterator.next();
+ if (!next3.done) {
+ return next3;
}
- function P$b() {
+ state5.iterator = void 0;
+ }
+ if (state5.array) {
+ if (state5.arrIndex < state5.array.length) {
+ return { done: false, value: state5.array[state5.arrIndex++] };
}
- function T$b() {
+ state5.array = void 0;
+ state5.arrIndex = 0;
+ }
+ if (state5.collIndex < collections.length) {
+ const collection4 = collections[state5.collIndex++];
+ if (isIterable(collection4)) {
+ state5.iterator = collection4[Symbol.iterator]();
+ } else if (collection4 && typeof collection4.length === "number") {
+ state5.array = collection4;
}
- function h1b() {
+ }
+ } while (state5.iterator || state5.array || state5.collIndex < collections.length);
+ return DONE_RESULT;
+ });
+ }
+ return EMPTY_STREAM;
+ }
+ var StreamImpl, EMPTY_STREAM, DONE_RESULT, TreeStreamImpl, Reduction;
+ var init_stream = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/stream.js"() {
+ "use strict";
+ StreamImpl = class _StreamImpl {
+ static {
+ __name(this, "StreamImpl");
+ }
+ constructor(startFn, nextFn) {
+ this.startFn = startFn;
+ this.nextFn = nextFn;
+ }
+ iterator() {
+ const iterator = {
+ state: this.startFn(),
+ next: /* @__PURE__ */ __name(() => this.nextFn(iterator.state), "next"),
+ [Symbol.iterator]: () => iterator
+ };
+ return iterator;
+ }
+ [Symbol.iterator]() {
+ return this.iterator();
+ }
+ isEmpty() {
+ const iterator = this.iterator();
+ return Boolean(iterator.next().done);
+ }
+ count() {
+ const iterator = this.iterator();
+ let count = 0;
+ let next3 = iterator.next();
+ while (!next3.done) {
+ count++;
+ next3 = iterator.next();
+ }
+ return count;
+ }
+ toArray() {
+ const result = [];
+ const iterator = this.iterator();
+ let next3;
+ do {
+ next3 = iterator.next();
+ if (next3.value !== void 0) {
+ result.push(next3.value);
}
- function m1b() {
+ } while (!next3.done);
+ return result;
+ }
+ toSet() {
+ return new Set(this);
+ }
+ toMap(keyFn, valueFn) {
+ const entryStream = this.map((element3) => [
+ keyFn ? keyFn(element3) : element3,
+ valueFn ? valueFn(element3) : element3
+ ]);
+ return new Map(entryStream);
+ }
+ toString() {
+ return this.join();
+ }
+ concat(other) {
+ const iterator = other[Symbol.iterator]();
+ return new _StreamImpl(() => ({ first: this.startFn(), firstDone: false }), (state5) => {
+ let result;
+ if (!state5.firstDone) {
+ do {
+ result = this.nextFn(state5.first);
+ if (!result.done) {
+ return result;
+ }
+ } while (!result.done);
+ state5.firstDone = true;
}
- function q1b() {
+ do {
+ result = iterator.next();
+ if (!result.done) {
+ return result;
+ }
+ } while (!result.done);
+ return DONE_RESULT;
+ });
+ }
+ join(separator = ",") {
+ const iterator = this.iterator();
+ let value2 = "";
+ let result;
+ let addSeparator = false;
+ do {
+ result = iterator.next();
+ if (!result.done) {
+ if (addSeparator) {
+ value2 += separator;
+ }
+ value2 += toString2(result.value);
}
- function u1b() {
+ addSeparator = true;
+ } while (!result.done);
+ return value2;
+ }
+ indexOf(searchElement, fromIndex = 0) {
+ const iterator = this.iterator();
+ let index = 0;
+ let next3 = iterator.next();
+ while (!next3.done) {
+ if (index >= fromIndex && next3.value === searchElement) {
+ return index;
}
- function y1b() {
+ next3 = iterator.next();
+ index++;
+ }
+ return -1;
+ }
+ every(predicate) {
+ const iterator = this.iterator();
+ let next3 = iterator.next();
+ while (!next3.done) {
+ if (!predicate(next3.value)) {
+ return false;
}
- function C1b() {
+ next3 = iterator.next();
+ }
+ return true;
+ }
+ some(predicate) {
+ const iterator = this.iterator();
+ let next3 = iterator.next();
+ while (!next3.done) {
+ if (predicate(next3.value)) {
+ return true;
}
- function e2b() {
+ next3 = iterator.next();
+ }
+ return false;
+ }
+ forEach(callbackfn) {
+ const iterator = this.iterator();
+ let index = 0;
+ let next3 = iterator.next();
+ while (!next3.done) {
+ callbackfn(next3.value, index);
+ next3 = iterator.next();
+ index++;
+ }
+ }
+ map(callbackfn) {
+ return new _StreamImpl(this.startFn, (state5) => {
+ const { done, value: value2 } = this.nextFn(state5);
+ if (done) {
+ return DONE_RESULT;
+ } else {
+ return { done: false, value: callbackfn(value2) };
}
- function g2b() {
+ });
+ }
+ filter(predicate) {
+ return new _StreamImpl(this.startFn, (state5) => {
+ let result;
+ do {
+ result = this.nextFn(state5);
+ if (!result.done && predicate(result.value)) {
+ return result;
+ }
+ } while (!result.done);
+ return DONE_RESULT;
+ });
+ }
+ nonNullable() {
+ return this.filter((e3) => e3 !== void 0 && e3 !== null);
+ }
+ reduce(callbackfn, initialValue) {
+ const iterator = this.iterator();
+ let previousValue = initialValue;
+ let next3 = iterator.next();
+ while (!next3.done) {
+ if (previousValue === void 0) {
+ previousValue = next3.value;
+ } else {
+ previousValue = callbackfn(previousValue, next3.value);
}
- function m2b() {
+ next3 = iterator.next();
+ }
+ return previousValue;
+ }
+ reduceRight(callbackfn, initialValue) {
+ return this.recursiveReduce(this.iterator(), callbackfn, initialValue);
+ }
+ recursiveReduce(iterator, callbackfn, initialValue) {
+ const next3 = iterator.next();
+ if (next3.done) {
+ return initialValue;
+ }
+ const previousValue = this.recursiveReduce(iterator, callbackfn, initialValue);
+ if (previousValue === void 0) {
+ return next3.value;
+ }
+ return callbackfn(previousValue, next3.value);
+ }
+ find(predicate) {
+ const iterator = this.iterator();
+ let next3 = iterator.next();
+ while (!next3.done) {
+ if (predicate(next3.value)) {
+ return next3.value;
}
- function q2b() {
+ next3 = iterator.next();
+ }
+ return void 0;
+ }
+ findIndex(predicate) {
+ const iterator = this.iterator();
+ let index = 0;
+ let next3 = iterator.next();
+ while (!next3.done) {
+ if (predicate(next3.value)) {
+ return index;
}
- function u2b() {
+ next3 = iterator.next();
+ index++;
+ }
+ return -1;
+ }
+ includes(searchElement) {
+ const iterator = this.iterator();
+ let next3 = iterator.next();
+ while (!next3.done) {
+ if (next3.value === searchElement) {
+ return true;
}
- function S2b() {
+ next3 = iterator.next();
+ }
+ return false;
+ }
+ flatMap(callbackfn) {
+ return new _StreamImpl(() => ({ this: this.startFn() }), (state5) => {
+ do {
+ if (state5.iterator) {
+ const next3 = state5.iterator.next();
+ if (next3.done) {
+ state5.iterator = void 0;
+ } else {
+ return next3;
+ }
+ }
+ const { done, value: value2 } = this.nextFn(state5.this);
+ if (!done) {
+ const mapped = callbackfn(value2);
+ if (isIterable(mapped)) {
+ state5.iterator = mapped[Symbol.iterator]();
+ } else {
+ return { done: false, value: mapped };
+ }
+ }
+ } while (state5.iterator);
+ return DONE_RESULT;
+ });
+ }
+ flat(depth) {
+ if (depth === void 0) {
+ depth = 1;
+ }
+ if (depth <= 0) {
+ return this;
+ }
+ const stream2 = depth > 1 ? this.flat(depth - 1) : this;
+ return new _StreamImpl(() => ({ this: stream2.startFn() }), (state5) => {
+ do {
+ if (state5.iterator) {
+ const next3 = state5.iterator.next();
+ if (next3.done) {
+ state5.iterator = void 0;
+ } else {
+ return next3;
+ }
+ }
+ const { done, value: value2 } = stream2.nextFn(state5.this);
+ if (!done) {
+ if (isIterable(value2)) {
+ state5.iterator = value2[Symbol.iterator]();
+ } else {
+ return { done: false, value: value2 };
+ }
+ }
+ } while (state5.iterator);
+ return DONE_RESULT;
+ });
+ }
+ head() {
+ const iterator = this.iterator();
+ const result = iterator.next();
+ if (result.done) {
+ return void 0;
+ }
+ return result.value;
+ }
+ tail(skipCount = 1) {
+ return new _StreamImpl(() => {
+ const state5 = this.startFn();
+ for (let i2 = 0; i2 < skipCount; i2++) {
+ const next3 = this.nextFn(state5);
+ if (next3.done) {
+ return state5;
+ }
}
- function U2b() {
+ return state5;
+ }, this.nextFn);
+ }
+ limit(maxSize) {
+ return new _StreamImpl(() => ({ size: 0, state: this.startFn() }), (state5) => {
+ state5.size++;
+ if (state5.size > maxSize) {
+ return DONE_RESULT;
}
- function W2b() {
+ return this.nextFn(state5.state);
+ });
+ }
+ distinct(by) {
+ const set6 = /* @__PURE__ */ new Set();
+ return this.filter((e3) => {
+ const value2 = by ? by(e3) : e3;
+ if (set6.has(value2)) {
+ return false;
+ } else {
+ set6.add(value2);
+ return true;
}
- function _2b() {
+ });
+ }
+ exclude(other, key) {
+ const otherKeySet = /* @__PURE__ */ new Set();
+ for (const item of other) {
+ const value2 = key ? key(item) : item;
+ otherKeySet.add(value2);
+ }
+ return this.filter((e3) => {
+ const ownKey = key ? key(e3) : e3;
+ return !otherKeySet.has(ownKey);
+ });
+ }
+ };
+ __name(toString2, "toString");
+ __name(isIterable, "isIterable");
+ EMPTY_STREAM = new StreamImpl(() => void 0, () => DONE_RESULT);
+ DONE_RESULT = Object.freeze({ done: true, value: void 0 });
+ __name(stream, "stream");
+ TreeStreamImpl = class extends StreamImpl {
+ static {
+ __name(this, "TreeStreamImpl");
+ }
+ constructor(root4, children2, options3) {
+ super(() => ({
+ iterators: (options3 === null || options3 === void 0 ? void 0 : options3.includeRoot) ? [[root4][Symbol.iterator]()] : [children2(root4)[Symbol.iterator]()],
+ pruned: false
+ }), (state5) => {
+ if (state5.pruned) {
+ state5.iterators.pop();
+ state5.pruned = false;
+ }
+ while (state5.iterators.length > 0) {
+ const iterator = state5.iterators[state5.iterators.length - 1];
+ const next3 = iterator.next();
+ if (next3.done) {
+ state5.iterators.pop();
+ } else {
+ state5.iterators.push(children2(next3.value)[Symbol.iterator]());
+ return next3;
+ }
}
- function e3b() {
+ return DONE_RESULT;
+ });
+ }
+ iterator() {
+ const iterator = {
+ state: this.startFn(),
+ next: /* @__PURE__ */ __name(() => this.nextFn(iterator.state), "next"),
+ prune: /* @__PURE__ */ __name(() => {
+ iterator.state.pruned = true;
+ }, "prune"),
+ [Symbol.iterator]: () => iterator
+ };
+ return iterator;
+ }
+ };
+ (function(Reduction2) {
+ function sum2(stream2) {
+ return stream2.reduce((a2, b2) => a2 + b2, 0);
+ }
+ __name(sum2, "sum");
+ Reduction2.sum = sum2;
+ function product(stream2) {
+ return stream2.reduce((a2, b2) => a2 * b2, 0);
+ }
+ __name(product, "product");
+ Reduction2.product = product;
+ function min9(stream2) {
+ return stream2.reduce((a2, b2) => Math.min(a2, b2));
+ }
+ __name(min9, "min");
+ Reduction2.min = min9;
+ function max10(stream2) {
+ return stream2.reduce((a2, b2) => Math.max(a2, b2));
+ }
+ __name(max10, "max");
+ Reduction2.max = max10;
+ })(Reduction || (Reduction = {}));
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/cst-utils.js
+ var cst_utils_exports = {};
+ __export(cst_utils_exports, {
+ DefaultNameRegexp: () => DefaultNameRegexp,
+ RangeComparison: () => RangeComparison,
+ compareRange: () => compareRange,
+ findCommentNode: () => findCommentNode,
+ findDeclarationNodeAtOffset: () => findDeclarationNodeAtOffset,
+ findLeafNodeAtOffset: () => findLeafNodeAtOffset,
+ findLeafNodeBeforeOffset: () => findLeafNodeBeforeOffset,
+ flattenCst: () => flattenCst,
+ getInteriorNodes: () => getInteriorNodes,
+ getNextNode: () => getNextNode,
+ getPreviousNode: () => getPreviousNode,
+ getStartlineNode: () => getStartlineNode,
+ inRange: () => inRange,
+ isChildNode: () => isChildNode,
+ isCommentNode: () => isCommentNode,
+ streamCst: () => streamCst,
+ toDocumentSegment: () => toDocumentSegment,
+ tokenToRange: () => tokenToRange
+ });
+ function streamCst(node2) {
+ return new TreeStreamImpl(node2, (element3) => {
+ if (isCompositeCstNode(element3)) {
+ return element3.content;
+ } else {
+ return [];
+ }
+ }, { includeRoot: true });
+ }
+ function flattenCst(node2) {
+ return streamCst(node2).filter(isLeafCstNode);
+ }
+ function isChildNode(child, parent4) {
+ while (child.container) {
+ child = child.container;
+ if (child === parent4) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function tokenToRange(token2) {
+ return {
+ start: {
+ character: token2.startColumn - 1,
+ line: token2.startLine - 1
+ },
+ end: {
+ character: token2.endColumn,
+ line: token2.endLine - 1
+ }
+ };
+ }
+ function toDocumentSegment(node2) {
+ if (!node2) {
+ return void 0;
+ }
+ const { offset, end: end2, range: range3 } = node2;
+ return {
+ range: range3,
+ offset,
+ end: end2,
+ length: end2 - offset
+ };
+ }
+ function compareRange(range3, to) {
+ if (range3.end.line < to.start.line || range3.end.line === to.start.line && range3.end.character < range3.start.character) {
+ return RangeComparison.Before;
+ } else if (range3.start.line > to.end.line || range3.start.line === to.end.line && range3.start.character > to.end.character) {
+ return RangeComparison.After;
+ }
+ const startInside = range3.start.line > to.start.line || range3.start.line === to.start.line && range3.start.character >= to.start.character;
+ const endInside = range3.end.line < to.end.line || range3.end.line === to.end.line && range3.end.character <= to.end.character;
+ if (startInside && endInside) {
+ return RangeComparison.Inside;
+ } else if (startInside) {
+ return RangeComparison.OverlapBack;
+ } else {
+ return RangeComparison.OverlapFront;
+ }
+ }
+ function inRange(range3, to) {
+ const comparison = compareRange(range3, to);
+ return comparison > RangeComparison.After;
+ }
+ function findDeclarationNodeAtOffset(cstNode, offset, nameRegexp = DefaultNameRegexp) {
+ if (cstNode) {
+ if (offset > 0) {
+ const localOffset = offset - cstNode.offset;
+ const textAtOffset = cstNode.text.charAt(localOffset);
+ if (!nameRegexp.test(textAtOffset)) {
+ offset--;
+ }
+ }
+ return findLeafNodeAtOffset(cstNode, offset);
+ }
+ return void 0;
+ }
+ function findCommentNode(cstNode, commentNames) {
+ if (cstNode) {
+ const previous = getPreviousNode(cstNode, true);
+ if (previous && isCommentNode(previous, commentNames)) {
+ return previous;
+ }
+ if (isRootCstNode(cstNode)) {
+ const endIndex = cstNode.content.findIndex((e3) => !e3.hidden);
+ for (let i2 = endIndex - 1; i2 >= 0; i2--) {
+ const child = cstNode.content[i2];
+ if (isCommentNode(child, commentNames)) {
+ return child;
+ }
+ }
+ }
+ }
+ return void 0;
+ }
+ function isCommentNode(cstNode, commentNames) {
+ return isLeafCstNode(cstNode) && commentNames.includes(cstNode.tokenType.name);
+ }
+ function findLeafNodeAtOffset(node2, offset) {
+ if (isLeafCstNode(node2)) {
+ return node2;
+ } else if (isCompositeCstNode(node2)) {
+ const searchResult = binarySearch(node2, offset, false);
+ if (searchResult) {
+ return findLeafNodeAtOffset(searchResult, offset);
+ }
+ }
+ return void 0;
+ }
+ function findLeafNodeBeforeOffset(node2, offset) {
+ if (isLeafCstNode(node2)) {
+ return node2;
+ } else if (isCompositeCstNode(node2)) {
+ const searchResult = binarySearch(node2, offset, true);
+ if (searchResult) {
+ return findLeafNodeBeforeOffset(searchResult, offset);
+ }
+ }
+ return void 0;
+ }
+ function binarySearch(node2, offset, closest) {
+ let left3 = 0;
+ let right3 = node2.content.length - 1;
+ let closestNode = void 0;
+ while (left3 <= right3) {
+ const middle = Math.floor((left3 + right3) / 2);
+ const middleNode = node2.content[middle];
+ if (middleNode.offset <= offset && middleNode.end > offset) {
+ return middleNode;
+ }
+ if (middleNode.end <= offset) {
+ closestNode = closest ? middleNode : void 0;
+ left3 = middle + 1;
+ } else {
+ right3 = middle - 1;
+ }
+ }
+ return closestNode;
+ }
+ function getPreviousNode(node2, hidden = true) {
+ while (node2.container) {
+ const parent4 = node2.container;
+ let index = parent4.content.indexOf(node2);
+ while (index > 0) {
+ index--;
+ const previous = parent4.content[index];
+ if (hidden || !previous.hidden) {
+ return previous;
+ }
+ }
+ node2 = parent4;
+ }
+ return void 0;
+ }
+ function getNextNode(node2, hidden = true) {
+ while (node2.container) {
+ const parent4 = node2.container;
+ let index = parent4.content.indexOf(node2);
+ const last3 = parent4.content.length - 1;
+ while (index < last3) {
+ index++;
+ const next3 = parent4.content[index];
+ if (hidden || !next3.hidden) {
+ return next3;
+ }
+ }
+ node2 = parent4;
+ }
+ return void 0;
+ }
+ function getStartlineNode(node2) {
+ if (node2.range.start.character === 0) {
+ return node2;
+ }
+ const line2 = node2.range.start.line;
+ let last3 = node2;
+ let index;
+ while (node2.container) {
+ const parent4 = node2.container;
+ const selfIndex = index !== null && index !== void 0 ? index : parent4.content.indexOf(node2);
+ if (selfIndex === 0) {
+ node2 = parent4;
+ index = void 0;
+ } else {
+ index = selfIndex - 1;
+ node2 = parent4.content[index];
+ }
+ if (node2.range.start.line !== line2) {
+ break;
+ }
+ last3 = node2;
+ }
+ return last3;
+ }
+ function getInteriorNodes(start3, end2) {
+ const commonParent = getCommonParent(start3, end2);
+ if (!commonParent) {
+ return [];
+ }
+ return commonParent.parent.content.slice(commonParent.a + 1, commonParent.b);
+ }
+ function getCommonParent(a2, b2) {
+ const aParents = getParentChain(a2);
+ const bParents = getParentChain(b2);
+ let current;
+ for (let i2 = 0; i2 < aParents.length && i2 < bParents.length; i2++) {
+ const aParent = aParents[i2];
+ const bParent = bParents[i2];
+ if (aParent.parent === bParent.parent) {
+ current = {
+ parent: aParent.parent,
+ a: aParent.index,
+ b: bParent.index
+ };
+ } else {
+ break;
+ }
+ }
+ return current;
+ }
+ function getParentChain(node2) {
+ const chain = [];
+ while (node2.container) {
+ const parent4 = node2.container;
+ const index = parent4.content.indexOf(node2);
+ chain.push({
+ parent: parent4,
+ index
+ });
+ node2 = parent4;
+ }
+ return chain.reverse();
+ }
+ var RangeComparison, DefaultNameRegexp;
+ var init_cst_utils = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/cst-utils.js"() {
+ "use strict";
+ init_syntax_tree();
+ init_stream();
+ __name(streamCst, "streamCst");
+ __name(flattenCst, "flattenCst");
+ __name(isChildNode, "isChildNode");
+ __name(tokenToRange, "tokenToRange");
+ __name(toDocumentSegment, "toDocumentSegment");
+ (function(RangeComparison2) {
+ RangeComparison2[RangeComparison2["Before"] = 0] = "Before";
+ RangeComparison2[RangeComparison2["After"] = 1] = "After";
+ RangeComparison2[RangeComparison2["OverlapFront"] = 2] = "OverlapFront";
+ RangeComparison2[RangeComparison2["OverlapBack"] = 3] = "OverlapBack";
+ RangeComparison2[RangeComparison2["Inside"] = 4] = "Inside";
+ })(RangeComparison || (RangeComparison = {}));
+ __name(compareRange, "compareRange");
+ __name(inRange, "inRange");
+ DefaultNameRegexp = /^[\w\p{L}]$/u;
+ __name(findDeclarationNodeAtOffset, "findDeclarationNodeAtOffset");
+ __name(findCommentNode, "findCommentNode");
+ __name(isCommentNode, "isCommentNode");
+ __name(findLeafNodeAtOffset, "findLeafNodeAtOffset");
+ __name(findLeafNodeBeforeOffset, "findLeafNodeBeforeOffset");
+ __name(binarySearch, "binarySearch");
+ __name(getPreviousNode, "getPreviousNode");
+ __name(getNextNode, "getNextNode");
+ __name(getStartlineNode, "getStartlineNode");
+ __name(getInteriorNodes, "getInteriorNodes");
+ __name(getCommonParent, "getCommonParent");
+ __name(getParentChain, "getParentChain");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/errors.js
+ function assertUnreachable(_2) {
+ throw new Error("Error! The input value was not handled.");
+ }
+ var ErrorWithLocation;
+ var init_errors2 = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/errors.js"() {
+ "use strict";
+ ErrorWithLocation = class extends Error {
+ static {
+ __name(this, "ErrorWithLocation");
+ }
+ constructor(node2, message) {
+ super(node2 ? `${message} at ${node2.range.start.line}:${node2.range.start.character}` : message);
+ }
+ };
+ __name(assertUnreachable, "assertUnreachable");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/generated/ast.js
+ var ast_exports = {};
+ __export(ast_exports, {
+ AbstractElement: () => AbstractElement,
+ AbstractRule: () => AbstractRule,
+ AbstractType: () => AbstractType,
+ Action: () => Action,
+ Alternatives: () => Alternatives,
+ ArrayLiteral: () => ArrayLiteral,
+ ArrayType: () => ArrayType,
+ Assignment: () => Assignment,
+ BooleanLiteral: () => BooleanLiteral,
+ CharacterRange: () => CharacterRange,
+ Condition: () => Condition,
+ Conjunction: () => Conjunction,
+ CrossReference: () => CrossReference,
+ Disjunction: () => Disjunction,
+ EndOfFile: () => EndOfFile,
+ Grammar: () => Grammar,
+ GrammarImport: () => GrammarImport,
+ Group: () => Group,
+ InferredType: () => InferredType,
+ Interface: () => Interface,
+ Keyword: () => Keyword2,
+ LangiumGrammarAstReflection: () => LangiumGrammarAstReflection,
+ LangiumGrammarTerminals: () => LangiumGrammarTerminals,
+ NamedArgument: () => NamedArgument,
+ NegatedToken: () => NegatedToken,
+ Negation: () => Negation,
+ NumberLiteral: () => NumberLiteral,
+ Parameter: () => Parameter,
+ ParameterReference: () => ParameterReference,
+ ParserRule: () => ParserRule,
+ ReferenceType: () => ReferenceType,
+ RegexToken: () => RegexToken,
+ ReturnType: () => ReturnType,
+ RuleCall: () => RuleCall,
+ SimpleType: () => SimpleType,
+ StringLiteral: () => StringLiteral,
+ TerminalAlternatives: () => TerminalAlternatives,
+ TerminalGroup: () => TerminalGroup,
+ TerminalRule: () => TerminalRule,
+ TerminalRuleCall: () => TerminalRuleCall,
+ Type: () => Type2,
+ TypeAttribute: () => TypeAttribute,
+ TypeDefinition: () => TypeDefinition,
+ UnionType: () => UnionType,
+ UnorderedGroup: () => UnorderedGroup,
+ UntilToken: () => UntilToken,
+ ValueLiteral: () => ValueLiteral,
+ Wildcard: () => Wildcard,
+ isAbstractElement: () => isAbstractElement,
+ isAbstractRule: () => isAbstractRule,
+ isAbstractType: () => isAbstractType,
+ isAction: () => isAction,
+ isAlternatives: () => isAlternatives,
+ isArrayLiteral: () => isArrayLiteral,
+ isArrayType: () => isArrayType,
+ isAssignment: () => isAssignment,
+ isBooleanLiteral: () => isBooleanLiteral,
+ isCharacterRange: () => isCharacterRange,
+ isCondition: () => isCondition,
+ isConjunction: () => isConjunction,
+ isCrossReference: () => isCrossReference,
+ isDisjunction: () => isDisjunction,
+ isEndOfFile: () => isEndOfFile,
+ isFeatureName: () => isFeatureName,
+ isGrammar: () => isGrammar,
+ isGrammarImport: () => isGrammarImport,
+ isGroup: () => isGroup,
+ isInferredType: () => isInferredType,
+ isInterface: () => isInterface,
+ isKeyword: () => isKeyword,
+ isNamedArgument: () => isNamedArgument,
+ isNegatedToken: () => isNegatedToken,
+ isNegation: () => isNegation,
+ isNumberLiteral: () => isNumberLiteral,
+ isParameter: () => isParameter,
+ isParameterReference: () => isParameterReference,
+ isParserRule: () => isParserRule,
+ isPrimitiveType: () => isPrimitiveType,
+ isReferenceType: () => isReferenceType,
+ isRegexToken: () => isRegexToken,
+ isReturnType: () => isReturnType,
+ isRuleCall: () => isRuleCall,
+ isSimpleType: () => isSimpleType,
+ isStringLiteral: () => isStringLiteral,
+ isTerminalAlternatives: () => isTerminalAlternatives,
+ isTerminalGroup: () => isTerminalGroup,
+ isTerminalRule: () => isTerminalRule,
+ isTerminalRuleCall: () => isTerminalRuleCall,
+ isType: () => isType,
+ isTypeAttribute: () => isTypeAttribute,
+ isTypeDefinition: () => isTypeDefinition,
+ isUnionType: () => isUnionType,
+ isUnorderedGroup: () => isUnorderedGroup,
+ isUntilToken: () => isUntilToken,
+ isValueLiteral: () => isValueLiteral,
+ isWildcard: () => isWildcard,
+ reflection: () => reflection
+ });
+ function isAbstractRule(item) {
+ return reflection.isInstance(item, AbstractRule);
+ }
+ function isAbstractType(item) {
+ return reflection.isInstance(item, AbstractType);
+ }
+ function isCondition(item) {
+ return reflection.isInstance(item, Condition);
+ }
+ function isFeatureName(item) {
+ return isPrimitiveType(item) || item === "current" || item === "entry" || item === "extends" || item === "false" || item === "fragment" || item === "grammar" || item === "hidden" || item === "import" || item === "interface" || item === "returns" || item === "terminal" || item === "true" || item === "type" || item === "infer" || item === "infers" || item === "with" || typeof item === "string" && /\^?[_a-zA-Z][\w_]*/.test(item);
+ }
+ function isPrimitiveType(item) {
+ return item === "string" || item === "number" || item === "boolean" || item === "Date" || item === "bigint";
+ }
+ function isTypeDefinition(item) {
+ return reflection.isInstance(item, TypeDefinition);
+ }
+ function isValueLiteral(item) {
+ return reflection.isInstance(item, ValueLiteral);
+ }
+ function isAbstractElement(item) {
+ return reflection.isInstance(item, AbstractElement);
+ }
+ function isArrayLiteral(item) {
+ return reflection.isInstance(item, ArrayLiteral);
+ }
+ function isArrayType(item) {
+ return reflection.isInstance(item, ArrayType);
+ }
+ function isBooleanLiteral(item) {
+ return reflection.isInstance(item, BooleanLiteral);
+ }
+ function isConjunction(item) {
+ return reflection.isInstance(item, Conjunction);
+ }
+ function isDisjunction(item) {
+ return reflection.isInstance(item, Disjunction);
+ }
+ function isGrammar(item) {
+ return reflection.isInstance(item, Grammar);
+ }
+ function isGrammarImport(item) {
+ return reflection.isInstance(item, GrammarImport);
+ }
+ function isInferredType(item) {
+ return reflection.isInstance(item, InferredType);
+ }
+ function isInterface(item) {
+ return reflection.isInstance(item, Interface);
+ }
+ function isNamedArgument(item) {
+ return reflection.isInstance(item, NamedArgument);
+ }
+ function isNegation(item) {
+ return reflection.isInstance(item, Negation);
+ }
+ function isNumberLiteral(item) {
+ return reflection.isInstance(item, NumberLiteral);
+ }
+ function isParameter(item) {
+ return reflection.isInstance(item, Parameter);
+ }
+ function isParameterReference(item) {
+ return reflection.isInstance(item, ParameterReference);
+ }
+ function isParserRule(item) {
+ return reflection.isInstance(item, ParserRule);
+ }
+ function isReferenceType(item) {
+ return reflection.isInstance(item, ReferenceType);
+ }
+ function isReturnType(item) {
+ return reflection.isInstance(item, ReturnType);
+ }
+ function isSimpleType(item) {
+ return reflection.isInstance(item, SimpleType);
+ }
+ function isStringLiteral(item) {
+ return reflection.isInstance(item, StringLiteral);
+ }
+ function isTerminalRule(item) {
+ return reflection.isInstance(item, TerminalRule);
+ }
+ function isType(item) {
+ return reflection.isInstance(item, Type2);
+ }
+ function isTypeAttribute(item) {
+ return reflection.isInstance(item, TypeAttribute);
+ }
+ function isUnionType(item) {
+ return reflection.isInstance(item, UnionType);
+ }
+ function isAction(item) {
+ return reflection.isInstance(item, Action);
+ }
+ function isAlternatives(item) {
+ return reflection.isInstance(item, Alternatives);
+ }
+ function isAssignment(item) {
+ return reflection.isInstance(item, Assignment);
+ }
+ function isCharacterRange(item) {
+ return reflection.isInstance(item, CharacterRange);
+ }
+ function isCrossReference(item) {
+ return reflection.isInstance(item, CrossReference);
+ }
+ function isEndOfFile(item) {
+ return reflection.isInstance(item, EndOfFile);
+ }
+ function isGroup(item) {
+ return reflection.isInstance(item, Group);
+ }
+ function isKeyword(item) {
+ return reflection.isInstance(item, Keyword2);
+ }
+ function isNegatedToken(item) {
+ return reflection.isInstance(item, NegatedToken);
+ }
+ function isRegexToken(item) {
+ return reflection.isInstance(item, RegexToken);
+ }
+ function isRuleCall(item) {
+ return reflection.isInstance(item, RuleCall);
+ }
+ function isTerminalAlternatives(item) {
+ return reflection.isInstance(item, TerminalAlternatives);
+ }
+ function isTerminalGroup(item) {
+ return reflection.isInstance(item, TerminalGroup);
+ }
+ function isTerminalRuleCall(item) {
+ return reflection.isInstance(item, TerminalRuleCall);
+ }
+ function isUnorderedGroup(item) {
+ return reflection.isInstance(item, UnorderedGroup);
+ }
+ function isUntilToken(item) {
+ return reflection.isInstance(item, UntilToken);
+ }
+ function isWildcard(item) {
+ return reflection.isInstance(item, Wildcard);
+ }
+ var LangiumGrammarTerminals, AbstractRule, AbstractType, Condition, TypeDefinition, ValueLiteral, AbstractElement, ArrayLiteral, ArrayType, BooleanLiteral, Conjunction, Disjunction, Grammar, GrammarImport, InferredType, Interface, NamedArgument, Negation, NumberLiteral, Parameter, ParameterReference, ParserRule, ReferenceType, ReturnType, SimpleType, StringLiteral, TerminalRule, Type2, TypeAttribute, UnionType, Action, Alternatives, Assignment, CharacterRange, CrossReference, EndOfFile, Group, Keyword2, NegatedToken, RegexToken, RuleCall, TerminalAlternatives, TerminalGroup, TerminalRuleCall, UnorderedGroup, UntilToken, Wildcard, LangiumGrammarAstReflection, reflection;
+ var init_ast = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/generated/ast.js"() {
+ "use strict";
+ init_syntax_tree();
+ LangiumGrammarTerminals = {
+ ID: /\^?[_a-zA-Z][\w_]*/,
+ STRING: /"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,
+ NUMBER: /NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,
+ RegexLiteral: /\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,
+ WS: /\s+/,
+ ML_COMMENT: /\/\*[\s\S]*?\*\//,
+ SL_COMMENT: /\/\/[^\n\r]*/
+ };
+ AbstractRule = "AbstractRule";
+ __name(isAbstractRule, "isAbstractRule");
+ AbstractType = "AbstractType";
+ __name(isAbstractType, "isAbstractType");
+ Condition = "Condition";
+ __name(isCondition, "isCondition");
+ __name(isFeatureName, "isFeatureName");
+ __name(isPrimitiveType, "isPrimitiveType");
+ TypeDefinition = "TypeDefinition";
+ __name(isTypeDefinition, "isTypeDefinition");
+ ValueLiteral = "ValueLiteral";
+ __name(isValueLiteral, "isValueLiteral");
+ AbstractElement = "AbstractElement";
+ __name(isAbstractElement, "isAbstractElement");
+ ArrayLiteral = "ArrayLiteral";
+ __name(isArrayLiteral, "isArrayLiteral");
+ ArrayType = "ArrayType";
+ __name(isArrayType, "isArrayType");
+ BooleanLiteral = "BooleanLiteral";
+ __name(isBooleanLiteral, "isBooleanLiteral");
+ Conjunction = "Conjunction";
+ __name(isConjunction, "isConjunction");
+ Disjunction = "Disjunction";
+ __name(isDisjunction, "isDisjunction");
+ Grammar = "Grammar";
+ __name(isGrammar, "isGrammar");
+ GrammarImport = "GrammarImport";
+ __name(isGrammarImport, "isGrammarImport");
+ InferredType = "InferredType";
+ __name(isInferredType, "isInferredType");
+ Interface = "Interface";
+ __name(isInterface, "isInterface");
+ NamedArgument = "NamedArgument";
+ __name(isNamedArgument, "isNamedArgument");
+ Negation = "Negation";
+ __name(isNegation, "isNegation");
+ NumberLiteral = "NumberLiteral";
+ __name(isNumberLiteral, "isNumberLiteral");
+ Parameter = "Parameter";
+ __name(isParameter, "isParameter");
+ ParameterReference = "ParameterReference";
+ __name(isParameterReference, "isParameterReference");
+ ParserRule = "ParserRule";
+ __name(isParserRule, "isParserRule");
+ ReferenceType = "ReferenceType";
+ __name(isReferenceType, "isReferenceType");
+ ReturnType = "ReturnType";
+ __name(isReturnType, "isReturnType");
+ SimpleType = "SimpleType";
+ __name(isSimpleType, "isSimpleType");
+ StringLiteral = "StringLiteral";
+ __name(isStringLiteral, "isStringLiteral");
+ TerminalRule = "TerminalRule";
+ __name(isTerminalRule, "isTerminalRule");
+ Type2 = "Type";
+ __name(isType, "isType");
+ TypeAttribute = "TypeAttribute";
+ __name(isTypeAttribute, "isTypeAttribute");
+ UnionType = "UnionType";
+ __name(isUnionType, "isUnionType");
+ Action = "Action";
+ __name(isAction, "isAction");
+ Alternatives = "Alternatives";
+ __name(isAlternatives, "isAlternatives");
+ Assignment = "Assignment";
+ __name(isAssignment, "isAssignment");
+ CharacterRange = "CharacterRange";
+ __name(isCharacterRange, "isCharacterRange");
+ CrossReference = "CrossReference";
+ __name(isCrossReference, "isCrossReference");
+ EndOfFile = "EndOfFile";
+ __name(isEndOfFile, "isEndOfFile");
+ Group = "Group";
+ __name(isGroup, "isGroup");
+ Keyword2 = "Keyword";
+ __name(isKeyword, "isKeyword");
+ NegatedToken = "NegatedToken";
+ __name(isNegatedToken, "isNegatedToken");
+ RegexToken = "RegexToken";
+ __name(isRegexToken, "isRegexToken");
+ RuleCall = "RuleCall";
+ __name(isRuleCall, "isRuleCall");
+ TerminalAlternatives = "TerminalAlternatives";
+ __name(isTerminalAlternatives, "isTerminalAlternatives");
+ TerminalGroup = "TerminalGroup";
+ __name(isTerminalGroup, "isTerminalGroup");
+ TerminalRuleCall = "TerminalRuleCall";
+ __name(isTerminalRuleCall, "isTerminalRuleCall");
+ UnorderedGroup = "UnorderedGroup";
+ __name(isUnorderedGroup, "isUnorderedGroup");
+ UntilToken = "UntilToken";
+ __name(isUntilToken, "isUntilToken");
+ Wildcard = "Wildcard";
+ __name(isWildcard, "isWildcard");
+ LangiumGrammarAstReflection = class extends AbstractAstReflection {
+ static {
+ __name(this, "LangiumGrammarAstReflection");
+ }
+ getAllTypes() {
+ return ["AbstractElement", "AbstractRule", "AbstractType", "Action", "Alternatives", "ArrayLiteral", "ArrayType", "Assignment", "BooleanLiteral", "CharacterRange", "Condition", "Conjunction", "CrossReference", "Disjunction", "EndOfFile", "Grammar", "GrammarImport", "Group", "InferredType", "Interface", "Keyword", "NamedArgument", "NegatedToken", "Negation", "NumberLiteral", "Parameter", "ParameterReference", "ParserRule", "ReferenceType", "RegexToken", "ReturnType", "RuleCall", "SimpleType", "StringLiteral", "TerminalAlternatives", "TerminalGroup", "TerminalRule", "TerminalRuleCall", "Type", "TypeAttribute", "TypeDefinition", "UnionType", "UnorderedGroup", "UntilToken", "ValueLiteral", "Wildcard"];
+ }
+ computeIsSubtype(subtype, supertype) {
+ switch (subtype) {
+ case Action:
+ case Alternatives:
+ case Assignment:
+ case CharacterRange:
+ case CrossReference:
+ case EndOfFile:
+ case Group:
+ case Keyword2:
+ case NegatedToken:
+ case RegexToken:
+ case RuleCall:
+ case TerminalAlternatives:
+ case TerminalGroup:
+ case TerminalRuleCall:
+ case UnorderedGroup:
+ case UntilToken:
+ case Wildcard: {
+ return this.isSubtype(AbstractElement, supertype);
+ }
+ case ArrayLiteral:
+ case NumberLiteral:
+ case StringLiteral: {
+ return this.isSubtype(ValueLiteral, supertype);
+ }
+ case ArrayType:
+ case ReferenceType:
+ case SimpleType:
+ case UnionType: {
+ return this.isSubtype(TypeDefinition, supertype);
+ }
+ case BooleanLiteral: {
+ return this.isSubtype(Condition, supertype) || this.isSubtype(ValueLiteral, supertype);
+ }
+ case Conjunction:
+ case Disjunction:
+ case Negation:
+ case ParameterReference: {
+ return this.isSubtype(Condition, supertype);
+ }
+ case InferredType:
+ case Interface:
+ case Type2: {
+ return this.isSubtype(AbstractType, supertype);
+ }
+ case ParserRule: {
+ return this.isSubtype(AbstractRule, supertype) || this.isSubtype(AbstractType, supertype);
+ }
+ case TerminalRule: {
+ return this.isSubtype(AbstractRule, supertype);
+ }
+ default: {
+ return false;
}
- function h3b() {
+ }
+ }
+ getReferenceType(refInfo) {
+ const referenceId = `${refInfo.container.$type}:${refInfo.property}`;
+ switch (referenceId) {
+ case "Action:type":
+ case "CrossReference:type":
+ case "Interface:superTypes":
+ case "ParserRule:returnType":
+ case "SimpleType:typeRef": {
+ return AbstractType;
}
- function p3b() {
+ case "Grammar:hiddenTokens":
+ case "ParserRule:hiddenTokens":
+ case "RuleCall:rule": {
+ return AbstractRule;
}
- function t3b() {
+ case "Grammar:usedGrammars": {
+ return Grammar;
}
- function w3b() {
+ case "NamedArgument:parameter":
+ case "ParameterReference:parameter": {
+ return Parameter;
}
- function y3b() {
+ case "TerminalRuleCall:rule": {
+ return TerminalRule;
}
- function A3b() {
+ default: {
+ throw new Error(`${referenceId} is not a valid reference id.`);
}
- function M3b() {
+ }
+ }
+ getTypeMetaData(type3) {
+ switch (type3) {
+ case "AbstractElement": {
+ return {
+ name: "AbstractElement",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" }
+ ]
+ };
}
- function Q3b() {
+ case "ArrayLiteral": {
+ return {
+ name: "ArrayLiteral",
+ properties: [
+ { name: "elements", defaultValue: [] }
+ ]
+ };
}
- function U3b() {
+ case "ArrayType": {
+ return {
+ name: "ArrayType",
+ properties: [
+ { name: "elementType" }
+ ]
+ };
}
- function Y3b() {
+ case "BooleanLiteral": {
+ return {
+ name: "BooleanLiteral",
+ properties: [
+ { name: "true", defaultValue: false }
+ ]
+ };
}
- function l4b() {
+ case "Conjunction": {
+ return {
+ name: "Conjunction",
+ properties: [
+ { name: "left" },
+ { name: "right" }
+ ]
+ };
}
- function q4b() {
+ case "Disjunction": {
+ return {
+ name: "Disjunction",
+ properties: [
+ { name: "left" },
+ { name: "right" }
+ ]
+ };
}
- function s4b() {
+ case "Grammar": {
+ return {
+ name: "Grammar",
+ properties: [
+ { name: "definesHiddenTokens", defaultValue: false },
+ { name: "hiddenTokens", defaultValue: [] },
+ { name: "imports", defaultValue: [] },
+ { name: "interfaces", defaultValue: [] },
+ { name: "isDeclared", defaultValue: false },
+ { name: "name" },
+ { name: "rules", defaultValue: [] },
+ { name: "types", defaultValue: [] },
+ { name: "usedGrammars", defaultValue: [] }
+ ]
+ };
}
- function u4b() {
+ case "GrammarImport": {
+ return {
+ name: "GrammarImport",
+ properties: [
+ { name: "path" }
+ ]
+ };
}
- function w4b() {
+ case "InferredType": {
+ return {
+ name: "InferredType",
+ properties: [
+ { name: "name" }
+ ]
+ };
}
- function y4b() {
+ case "Interface": {
+ return {
+ name: "Interface",
+ properties: [
+ { name: "attributes", defaultValue: [] },
+ { name: "name" },
+ { name: "superTypes", defaultValue: [] }
+ ]
+ };
}
- function L4b() {
+ case "NamedArgument": {
+ return {
+ name: "NamedArgument",
+ properties: [
+ { name: "calledByName", defaultValue: false },
+ { name: "parameter" },
+ { name: "value" }
+ ]
+ };
}
- function N4b() {
+ case "Negation": {
+ return {
+ name: "Negation",
+ properties: [
+ { name: "value" }
+ ]
+ };
}
- function P4b() {
+ case "NumberLiteral": {
+ return {
+ name: "NumberLiteral",
+ properties: [
+ { name: "value" }
+ ]
+ };
}
- function R4b() {
+ case "Parameter": {
+ return {
+ name: "Parameter",
+ properties: [
+ { name: "name" }
+ ]
+ };
}
- function T4b() {
+ case "ParameterReference": {
+ return {
+ name: "ParameterReference",
+ properties: [
+ { name: "parameter" }
+ ]
+ };
}
- function X4b() {
+ case "ParserRule": {
+ return {
+ name: "ParserRule",
+ properties: [
+ { name: "dataType" },
+ { name: "definesHiddenTokens", defaultValue: false },
+ { name: "definition" },
+ { name: "entry", defaultValue: false },
+ { name: "fragment", defaultValue: false },
+ { name: "hiddenTokens", defaultValue: [] },
+ { name: "inferredType" },
+ { name: "name" },
+ { name: "parameters", defaultValue: [] },
+ { name: "returnType" },
+ { name: "wildcard", defaultValue: false }
+ ]
+ };
}
- function I5b() {
+ case "ReferenceType": {
+ return {
+ name: "ReferenceType",
+ properties: [
+ { name: "referenceType" }
+ ]
+ };
}
- function Q5b() {
+ case "ReturnType": {
+ return {
+ name: "ReturnType",
+ properties: [
+ { name: "name" }
+ ]
+ };
}
- function T5b() {
+ case "SimpleType": {
+ return {
+ name: "SimpleType",
+ properties: [
+ { name: "primitiveType" },
+ { name: "stringType" },
+ { name: "typeRef" }
+ ]
+ };
}
- function Z5b() {
+ case "StringLiteral": {
+ return {
+ name: "StringLiteral",
+ properties: [
+ { name: "value" }
+ ]
+ };
}
- function l6b() {
+ case "TerminalRule": {
+ return {
+ name: "TerminalRule",
+ properties: [
+ { name: "definition" },
+ { name: "fragment", defaultValue: false },
+ { name: "hidden", defaultValue: false },
+ { name: "name" },
+ { name: "type" }
+ ]
+ };
}
- function o6b() {
+ case "Type": {
+ return {
+ name: "Type",
+ properties: [
+ { name: "name" },
+ { name: "type" }
+ ]
+ };
}
- function t6b() {
+ case "TypeAttribute": {
+ return {
+ name: "TypeAttribute",
+ properties: [
+ { name: "defaultValue" },
+ { name: "isOptional", defaultValue: false },
+ { name: "name" },
+ { name: "type" }
+ ]
+ };
}
- function z6b() {
+ case "UnionType": {
+ return {
+ name: "UnionType",
+ properties: [
+ { name: "types", defaultValue: [] }
+ ]
+ };
}
- function L6b() {
+ case "Action": {
+ return {
+ name: "Action",
+ properties: [
+ { name: "cardinality" },
+ { name: "feature" },
+ { name: "inferredType" },
+ { name: "lookahead" },
+ { name: "operator" },
+ { name: "type" }
+ ]
+ };
}
- function M6b() {
+ case "Alternatives": {
+ return {
+ name: "Alternatives",
+ properties: [
+ { name: "cardinality" },
+ { name: "elements", defaultValue: [] },
+ { name: "lookahead" }
+ ]
+ };
}
- function P6b() {
+ case "Assignment": {
+ return {
+ name: "Assignment",
+ properties: [
+ { name: "cardinality" },
+ { name: "feature" },
+ { name: "lookahead" },
+ { name: "operator" },
+ { name: "terminal" }
+ ]
+ };
}
- function X6b() {
+ case "CharacterRange": {
+ return {
+ name: "CharacterRange",
+ properties: [
+ { name: "cardinality" },
+ { name: "left" },
+ { name: "lookahead" },
+ { name: "right" }
+ ]
+ };
}
- function $6b() {
+ case "CrossReference": {
+ return {
+ name: "CrossReference",
+ properties: [
+ { name: "cardinality" },
+ { name: "deprecatedSyntax", defaultValue: false },
+ { name: "lookahead" },
+ { name: "terminal" },
+ { name: "type" }
+ ]
+ };
}
- function a7b() {
+ case "EndOfFile": {
+ return {
+ name: "EndOfFile",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" }
+ ]
+ };
}
- function c7b() {
+ case "Group": {
+ return {
+ name: "Group",
+ properties: [
+ { name: "cardinality" },
+ { name: "elements", defaultValue: [] },
+ { name: "guardCondition" },
+ { name: "lookahead" }
+ ]
+ };
}
- function g7b() {
+ case "Keyword": {
+ return {
+ name: "Keyword",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" },
+ { name: "value" }
+ ]
+ };
}
- function j7b() {
+ case "NegatedToken": {
+ return {
+ name: "NegatedToken",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" },
+ { name: "terminal" }
+ ]
+ };
}
- function m7b() {
+ case "RegexToken": {
+ return {
+ name: "RegexToken",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" },
+ { name: "regex" }
+ ]
+ };
}
- function r7b() {
+ case "RuleCall": {
+ return {
+ name: "RuleCall",
+ properties: [
+ { name: "arguments", defaultValue: [] },
+ { name: "cardinality" },
+ { name: "lookahead" },
+ { name: "rule" }
+ ]
+ };
}
- function x7b() {
+ case "TerminalAlternatives": {
+ return {
+ name: "TerminalAlternatives",
+ properties: [
+ { name: "cardinality" },
+ { name: "elements", defaultValue: [] },
+ { name: "lookahead" }
+ ]
+ };
}
- function D7b() {
+ case "TerminalGroup": {
+ return {
+ name: "TerminalGroup",
+ properties: [
+ { name: "cardinality" },
+ { name: "elements", defaultValue: [] },
+ { name: "lookahead" }
+ ]
+ };
}
- function D9b() {
+ case "TerminalRuleCall": {
+ return {
+ name: "TerminalRuleCall",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" },
+ { name: "rule" }
+ ]
+ };
}
- function b9b() {
+ case "UnorderedGroup": {
+ return {
+ name: "UnorderedGroup",
+ properties: [
+ { name: "cardinality" },
+ { name: "elements", defaultValue: [] },
+ { name: "lookahead" }
+ ]
+ };
}
- function h9b() {
+ case "UntilToken": {
+ return {
+ name: "UntilToken",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" },
+ { name: "terminal" }
+ ]
+ };
}
- function j9b() {
+ case "Wildcard": {
+ return {
+ name: "Wildcard",
+ properties: [
+ { name: "cardinality" },
+ { name: "lookahead" }
+ ]
+ };
}
- function l9b() {
+ default: {
+ return {
+ name: type3,
+ properties: []
+ };
}
- function w9b() {
+ }
+ }
+ };
+ reflection = new LangiumGrammarAstReflection();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/ast-utils.js
+ var ast_utils_exports = {};
+ __export(ast_utils_exports, {
+ assignMandatoryProperties: () => assignMandatoryProperties,
+ copyAstNode: () => copyAstNode,
+ findLocalReferences: () => findLocalReferences,
+ findRootNode: () => findRootNode,
+ getContainerOfType: () => getContainerOfType,
+ getDocument: () => getDocument,
+ hasContainerOfType: () => hasContainerOfType,
+ linkContentToContainer: () => linkContentToContainer,
+ streamAllContents: () => streamAllContents,
+ streamAst: () => streamAst,
+ streamContents: () => streamContents,
+ streamReferences: () => streamReferences
+ });
+ function linkContentToContainer(node2) {
+ for (const [name, value2] of Object.entries(node2)) {
+ if (!name.startsWith("$")) {
+ if (Array.isArray(value2)) {
+ value2.forEach((item, index) => {
+ if (isAstNode(item)) {
+ item.$container = node2;
+ item.$containerProperty = name;
+ item.$containerIndex = index;
}
- function F9b() {
+ });
+ } else if (isAstNode(value2)) {
+ value2.$container = node2;
+ value2.$containerProperty = name;
+ }
+ }
+ }
+ }
+ function getContainerOfType(node2, typePredicate) {
+ let item = node2;
+ while (item) {
+ if (typePredicate(item)) {
+ return item;
+ }
+ item = item.$container;
+ }
+ return void 0;
+ }
+ function hasContainerOfType(node2, predicate) {
+ let item = node2;
+ while (item) {
+ if (predicate(item)) {
+ return true;
+ }
+ item = item.$container;
+ }
+ return false;
+ }
+ function getDocument(node2) {
+ const rootNode = findRootNode(node2);
+ const result = rootNode.$document;
+ if (!result) {
+ throw new Error("AST node has no document.");
+ }
+ return result;
+ }
+ function findRootNode(node2) {
+ while (node2.$container) {
+ node2 = node2.$container;
+ }
+ return node2;
+ }
+ function streamContents(node2, options3) {
+ if (!node2) {
+ throw new Error("Node must be an AstNode.");
+ }
+ const range3 = options3 === null || options3 === void 0 ? void 0 : options3.range;
+ return new StreamImpl(() => ({
+ keys: Object.keys(node2),
+ keyIndex: 0,
+ arrayIndex: 0
+ }), (state5) => {
+ while (state5.keyIndex < state5.keys.length) {
+ const property2 = state5.keys[state5.keyIndex];
+ if (!property2.startsWith("$")) {
+ const value2 = node2[property2];
+ if (isAstNode(value2)) {
+ state5.keyIndex++;
+ if (isAstNodeInRange(value2, range3)) {
+ return { done: false, value: value2 };
}
- function hac() {
+ } else if (Array.isArray(value2)) {
+ while (state5.arrayIndex < value2.length) {
+ const index = state5.arrayIndex++;
+ const element3 = value2[index];
+ if (isAstNode(element3) && isAstNodeInRange(element3, range3)) {
+ return { done: false, value: element3 };
+ }
}
- function jac() {
+ state5.arrayIndex = 0;
+ }
+ }
+ state5.keyIndex++;
+ }
+ return DONE_RESULT;
+ });
+ }
+ function streamAllContents(root4, options3) {
+ if (!root4) {
+ throw new Error("Root node must be an AstNode.");
+ }
+ return new TreeStreamImpl(root4, (node2) => streamContents(node2, options3));
+ }
+ function streamAst(root4, options3) {
+ if (!root4) {
+ throw new Error("Root node must be an AstNode.");
+ } else if ((options3 === null || options3 === void 0 ? void 0 : options3.range) && !isAstNodeInRange(root4, options3.range)) {
+ return new TreeStreamImpl(root4, () => []);
+ }
+ return new TreeStreamImpl(root4, (node2) => streamContents(node2, options3), { includeRoot: true });
+ }
+ function isAstNodeInRange(astNode, range3) {
+ var _a;
+ if (!range3) {
+ return true;
+ }
+ const nodeRange = (_a = astNode.$cstNode) === null || _a === void 0 ? void 0 : _a.range;
+ if (!nodeRange) {
+ return false;
+ }
+ return inRange(nodeRange, range3);
+ }
+ function streamReferences(node2) {
+ return new StreamImpl(() => ({
+ keys: Object.keys(node2),
+ keyIndex: 0,
+ arrayIndex: 0
+ }), (state5) => {
+ while (state5.keyIndex < state5.keys.length) {
+ const property2 = state5.keys[state5.keyIndex];
+ if (!property2.startsWith("$")) {
+ const value2 = node2[property2];
+ if (isReference(value2)) {
+ state5.keyIndex++;
+ return { done: false, value: { reference: value2, container: node2, property: property2 } };
+ } else if (Array.isArray(value2)) {
+ while (state5.arrayIndex < value2.length) {
+ const index = state5.arrayIndex++;
+ const element3 = value2[index];
+ if (isReference(element3)) {
+ return { done: false, value: { reference: element3, container: node2, property: property2, index } };
+ }
}
- function pac() {
+ state5.arrayIndex = 0;
+ }
+ }
+ state5.keyIndex++;
+ }
+ return DONE_RESULT;
+ });
+ }
+ function findLocalReferences(targetNode, lookup2 = getDocument(targetNode).parseResult.value) {
+ const refs = [];
+ streamAst(lookup2).forEach((node2) => {
+ streamReferences(node2).forEach((refInfo) => {
+ if (refInfo.reference.ref === targetNode) {
+ refs.push(refInfo.reference);
+ }
+ });
+ });
+ return stream(refs);
+ }
+ function assignMandatoryProperties(reflection3, node2) {
+ const typeMetaData = reflection3.getTypeMetaData(node2.$type);
+ const genericNode = node2;
+ for (const property2 of typeMetaData.properties) {
+ if (property2.defaultValue !== void 0 && genericNode[property2.name] === void 0) {
+ genericNode[property2.name] = copyDefaultValue(property2.defaultValue);
+ }
+ }
+ }
+ function copyDefaultValue(propertyType) {
+ if (Array.isArray(propertyType)) {
+ return [...propertyType.map(copyDefaultValue)];
+ } else {
+ return propertyType;
+ }
+ }
+ function copyAstNode(node2, buildReference) {
+ const copy6 = { $type: node2.$type };
+ for (const [name, value2] of Object.entries(node2)) {
+ if (!name.startsWith("$")) {
+ if (isAstNode(value2)) {
+ copy6[name] = copyAstNode(value2, buildReference);
+ } else if (isReference(value2)) {
+ copy6[name] = buildReference(copy6, name, value2.$refNode, value2.$refText);
+ } else if (Array.isArray(value2)) {
+ const copiedArray = [];
+ for (const element3 of value2) {
+ if (isAstNode(element3)) {
+ copiedArray.push(copyAstNode(element3, buildReference));
+ } else if (isReference(element3)) {
+ copiedArray.push(buildReference(copy6, name, element3.$refNode, element3.$refText));
+ } else {
+ copiedArray.push(element3);
}
- function uac() {
- }
- function Iac() {
- }
- function Kac() {
- }
- function Sac() {
- }
- function obc() {
- }
- function rbc() {
- }
- function vbc() {
- }
- function Fbc() {
- }
- function Jbc() {
- }
- function Xbc() {
- }
- function ccc() {
- }
- function fcc() {
- }
- function lcc() {
- }
- function occ() {
- }
- function tcc() {
- }
- function ycc() {
- }
- function Acc() {
- }
- function Ccc() {
- }
- function Ecc() {
- }
- function Gcc() {
- }
- function Zcc() {
- }
- function _cc() {
- }
- function bdc() {
- }
- function fdc() {
- }
- function jdc() {
- }
- function pdc() {
- }
- function sdc() {
- }
- function ydc() {
- }
- function Adc() {
- }
- function Cdc() {
- }
- function Edc() {
- }
- function Idc() {
- }
- function Ndc() {
- }
- function Qdc() {
- }
- function Sdc() {
- }
- function Udc() {
- }
- function Wdc() {
- }
- function Ydc() {
- }
- function aec() {
- }
- function hec() {
- }
- function jec() {
- }
- function lec() {
- }
- function nec() {
- }
- function uec() {
- }
- function wec() {
- }
- function yec() {
- }
- function Aec() {
- }
- function Fec() {
- }
- function Jec() {
- }
- function Lec() {
- }
- function Nec() {
- }
- function Rec() {
- }
- function Uec() {
- }
- function Zec() {
- }
- function Zfc() {
- }
- function lfc() {
- }
- function tfc() {
- }
- function xfc() {
- }
- function zfc() {
- }
- function Ffc() {
- }
- function Jfc() {
- }
- function Nfc() {
- }
- function Pfc() {
- }
- function Vfc() {
- }
- function _fc() {
- }
- function fgc() {
- }
- function jgc() {
- }
- function lgc() {
- }
- function Bgc() {
- }
- function ehc() {
- }
- function ghc() {
- }
- function ihc() {
- }
- function khc() {
- }
- function mhc() {
- }
- function ohc() {
- }
- function qhc() {
- }
- function yhc() {
- }
- function Ahc() {
- }
- function Ghc() {
- }
- function Ihc() {
- }
- function Khc() {
- }
- function Mhc() {
- }
- function Shc() {
- }
- function Uhc() {
- }
- function Whc() {
- }
- function dic() {
- }
- function dlc() {
- }
- function blc() {
- }
- function flc() {
- }
- function hlc() {
- }
- function jlc() {
- }
- function Glc() {
- }
- function Ilc() {
- }
- function Klc() {
- }
- function Mlc() {
- }
- function Mjc() {
- }
- function Qjc() {
- }
- function Qlc() {
- }
- function Ulc() {
- }
- function Ylc() {
- }
- function Lkc() {
- }
- function Nkc() {
- }
- function Pkc() {
- }
- function Rkc() {
- }
- function Xkc() {
- }
- function _kc() {
- }
- function gmc() {
- }
- function kmc() {
- }
- function zmc() {
- }
- function Fmc() {
- }
- function Wmc() {
- }
- function $mc() {
- }
- function anc() {
- }
- function mnc() {
- }
- function wnc() {
- }
- function Hnc() {
- }
- function Jnc() {
- }
- function Lnc() {
- }
- function Nnc() {
- }
- function Pnc() {
- }
- function Ync() {
- }
- function eoc() {
- }
- function Aoc() {
- }
- function Coc() {
- }
- function Eoc() {
- }
- function Joc() {
- }
- function Loc() {
- }
- function Zoc() {
- }
- function _oc() {
- }
- function bpc() {
- }
- function hpc() {
- }
- function kpc() {
- }
- function ppc() {
- }
- function pFc() {
- }
- function Ryc() {
- }
- function QCc() {
- }
- function PDc() {
- }
- function xGc() {
- }
- function HGc() {
- }
- function JGc() {
- }
- function NGc() {
- }
- function GIc() {
- }
- function iKc() {
- }
- function mKc() {
- }
- function wKc() {
- }
- function yKc() {
- }
- function AKc() {
- }
- function EKc() {
- }
- function KKc() {
- }
- function OKc() {
- }
- function QKc() {
- }
- function SKc() {
- }
- function UKc() {
- }
- function YKc() {
- }
- function aLc() {
- }
- function fLc() {
- }
- function hLc() {
- }
- function nLc() {
- }
- function pLc() {
- }
- function tLc() {
- }
- function vLc() {
- }
- function zLc() {
- }
- function BLc() {
- }
- function DLc() {
- }
- function FLc() {
- }
- function sMc() {
- }
- function JMc() {
- }
- function hNc() {
- }
- function RNc() {
- }
- function ZNc() {
- }
- function _Nc() {
- }
- function bOc() {
- }
- function dOc() {
- }
- function fOc() {
- }
- function hOc() {
- }
- function hRc() {
- }
- function jRc() {
- }
- function KRc() {
- }
- function NRc() {
- }
- function NQc() {
- }
- function LQc() {
- }
- function _Qc() {
- }
- function cPc() {
- }
- function iPc() {
- }
- function kPc() {
- }
- function mPc() {
- }
- function xPc() {
- }
- function zPc() {
- }
- function zSc() {
- }
- function BSc() {
- }
- function GSc() {
- }
- function ISc() {
- }
- function NSc() {
- }
- function TSc() {
- }
- function NTc() {
- }
- function NVc() {
- }
- function oVc() {
- }
- function SVc() {
- }
- function VVc() {
- }
- function XVc() {
- }
- function ZVc() {
- }
- function bWc() {
- }
- function bXc() {
- }
- function CXc() {
- }
- function FXc() {
- }
- function IXc() {
- }
- function MXc() {
- }
- function UXc() {
- }
- function bYc() {
- }
- function fYc() {
- }
- function oYc() {
- }
- function qYc() {
- }
- function uYc() {
- }
- function pZc() {
- }
- function G$c() {
- }
- function h0c() {
- }
- function N0c() {
- }
- function k1c() {
- }
- function I1c() {
- }
- function Q1c() {
- }
- function f2c() {
- }
- function i2c() {
- }
- function k2c() {
- }
- function w2c() {
- }
- function O2c() {
- }
- function S2c() {
- }
- function Z2c() {
- }
- function v3c() {
- }
- function x3c() {
- }
- function R3c() {
- }
- function U3c() {
- }
- function e4c() {
- }
- function w4c() {
- }
- function x4c() {
- }
- function z4c() {
- }
- function B4c() {
- }
- function D4c() {
+ }
+ copy6[name] = copiedArray;
+ } else {
+ copy6[name] = value2;
+ }
+ }
+ }
+ linkContentToContainer(copy6);
+ return copy6;
+ }
+ var init_ast_utils = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/ast-utils.js"() {
+ "use strict";
+ init_syntax_tree();
+ init_stream();
+ init_cst_utils();
+ __name(linkContentToContainer, "linkContentToContainer");
+ __name(getContainerOfType, "getContainerOfType");
+ __name(hasContainerOfType, "hasContainerOfType");
+ __name(getDocument, "getDocument");
+ __name(findRootNode, "findRootNode");
+ __name(streamContents, "streamContents");
+ __name(streamAllContents, "streamAllContents");
+ __name(streamAst, "streamAst");
+ __name(isAstNodeInRange, "isAstNodeInRange");
+ __name(streamReferences, "streamReferences");
+ __name(findLocalReferences, "findLocalReferences");
+ __name(assignMandatoryProperties, "assignMandatoryProperties");
+ __name(copyDefaultValue, "copyDefaultValue");
+ __name(copyAstNode, "copyAstNode");
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/utils.js
+ function cc(char2) {
+ return char2.charCodeAt(0);
+ }
+ function insertToSet(item, set6) {
+ if (Array.isArray(item)) {
+ item.forEach(function(subItem) {
+ set6.push(subItem);
+ });
+ } else {
+ set6.push(item);
+ }
+ }
+ function addFlag(flagObj, flagKey) {
+ if (flagObj[flagKey] === true) {
+ throw "duplicate flag " + flagKey;
+ }
+ const x5 = flagObj[flagKey];
+ flagObj[flagKey] = true;
+ }
+ function ASSERT_EXISTS(obj) {
+ if (obj === void 0) {
+ throw Error("Internal Error - Should never get here!");
+ }
+ return true;
+ }
+ function ASSERT_NEVER_REACH_HERE() {
+ throw Error("Internal Error - Should never get here!");
+ }
+ function isCharacter(obj) {
+ return obj["type"] === "Character";
+ }
+ var init_utils3 = __esm({
+ "../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/utils.js"() {
+ "use strict";
+ __name(cc, "cc");
+ __name(insertToSet, "insertToSet");
+ __name(addFlag, "addFlag");
+ __name(ASSERT_EXISTS, "ASSERT_EXISTS");
+ __name(ASSERT_NEVER_REACH_HERE, "ASSERT_NEVER_REACH_HERE");
+ __name(isCharacter, "isCharacter");
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/character-classes.js
+ var digitsCharCodes, wordCharCodes, whitespaceCodes;
+ var init_character_classes = __esm({
+ "../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/character-classes.js"() {
+ "use strict";
+ init_utils3();
+ digitsCharCodes = [];
+ for (let i2 = cc("0"); i2 <= cc("9"); i2++) {
+ digitsCharCodes.push(i2);
+ }
+ wordCharCodes = [cc("_")].concat(digitsCharCodes);
+ for (let i2 = cc("a"); i2 <= cc("z"); i2++) {
+ wordCharCodes.push(i2);
+ }
+ for (let i2 = cc("A"); i2 <= cc("Z"); i2++) {
+ wordCharCodes.push(i2);
+ }
+ whitespaceCodes = [
+ cc(" "),
+ cc("\f"),
+ cc("\n"),
+ cc("\r"),
+ cc(" "),
+ cc("\v"),
+ cc(" "),
+ cc("\xA0"),
+ cc("\u1680"),
+ cc("\u2000"),
+ cc("\u2001"),
+ cc("\u2002"),
+ cc("\u2003"),
+ cc("\u2004"),
+ cc("\u2005"),
+ cc("\u2006"),
+ cc("\u2007"),
+ cc("\u2008"),
+ cc("\u2009"),
+ cc("\u200A"),
+ cc("\u2028"),
+ cc("\u2029"),
+ cc("\u202F"),
+ cc("\u205F"),
+ cc("\u3000"),
+ cc("\uFEFF")
+ ];
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/regexp-parser.js
+ var hexDigitPattern, decimalPattern, decimalPatternNoZero, RegExpParser;
+ var init_regexp_parser = __esm({
+ "../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/regexp-parser.js"() {
+ "use strict";
+ init_utils3();
+ init_character_classes();
+ hexDigitPattern = /[0-9a-fA-F]/;
+ decimalPattern = /[0-9]/;
+ decimalPatternNoZero = /[1-9]/;
+ RegExpParser = class {
+ static {
+ __name(this, "RegExpParser");
+ }
+ constructor() {
+ this.idx = 0;
+ this.input = "";
+ this.groupIdx = 0;
+ }
+ saveState() {
+ return {
+ idx: this.idx,
+ input: this.input,
+ groupIdx: this.groupIdx
+ };
+ }
+ restoreState(newState2) {
+ this.idx = newState2.idx;
+ this.input = newState2.input;
+ this.groupIdx = newState2.groupIdx;
+ }
+ pattern(input) {
+ this.idx = 0;
+ this.input = input;
+ this.groupIdx = 0;
+ this.consumeChar("/");
+ const value2 = this.disjunction();
+ this.consumeChar("/");
+ const flags = {
+ type: "Flags",
+ loc: { begin: this.idx, end: input.length },
+ global: false,
+ ignoreCase: false,
+ multiLine: false,
+ unicode: false,
+ sticky: false
+ };
+ while (this.isRegExpFlag()) {
+ switch (this.popChar()) {
+ case "g":
+ addFlag(flags, "global");
+ break;
+ case "i":
+ addFlag(flags, "ignoreCase");
+ break;
+ case "m":
+ addFlag(flags, "multiLine");
+ break;
+ case "u":
+ addFlag(flags, "unicode");
+ break;
+ case "y":
+ addFlag(flags, "sticky");
+ break;
}
- function F4c() {
+ }
+ if (this.idx !== this.input.length) {
+ throw Error("Redundant input: " + this.input.substring(this.idx));
+ }
+ return {
+ type: "Pattern",
+ flags,
+ value: value2,
+ loc: this.loc(0)
+ };
+ }
+ disjunction() {
+ const alts = [];
+ const begin = this.idx;
+ alts.push(this.alternative());
+ while (this.peekChar() === "|") {
+ this.consumeChar("|");
+ alts.push(this.alternative());
+ }
+ return { type: "Disjunction", value: alts, loc: this.loc(begin) };
+ }
+ alternative() {
+ const terms = [];
+ const begin = this.idx;
+ while (this.isTerm()) {
+ terms.push(this.term());
+ }
+ return { type: "Alternative", value: terms, loc: this.loc(begin) };
+ }
+ term() {
+ if (this.isAssertion()) {
+ return this.assertion();
+ } else {
+ return this.atom();
+ }
+ }
+ assertion() {
+ const begin = this.idx;
+ switch (this.popChar()) {
+ case "^":
+ return {
+ type: "StartAnchor",
+ loc: this.loc(begin)
+ };
+ case "$":
+ return { type: "EndAnchor", loc: this.loc(begin) };
+ case "\\":
+ switch (this.popChar()) {
+ case "b":
+ return {
+ type: "WordBoundary",
+ loc: this.loc(begin)
+ };
+ case "B":
+ return {
+ type: "NonWordBoundary",
+ loc: this.loc(begin)
+ };
+ }
+ throw Error("Invalid Assertion Escape");
+ case "(":
+ this.consumeChar("?");
+ let type3;
+ switch (this.popChar()) {
+ case "=":
+ type3 = "Lookahead";
+ break;
+ case "!":
+ type3 = "NegativeLookahead";
+ break;
+ }
+ ASSERT_EXISTS(type3);
+ const disjunction = this.disjunction();
+ this.consumeChar(")");
+ return {
+ type: type3,
+ value: disjunction,
+ loc: this.loc(begin)
+ };
+ }
+ return ASSERT_NEVER_REACH_HERE();
+ }
+ quantifier(isBacktracking = false) {
+ let range3 = void 0;
+ const begin = this.idx;
+ switch (this.popChar()) {
+ case "*":
+ range3 = {
+ atLeast: 0,
+ atMost: Infinity
+ };
+ break;
+ case "+":
+ range3 = {
+ atLeast: 1,
+ atMost: Infinity
+ };
+ break;
+ case "?":
+ range3 = {
+ atLeast: 0,
+ atMost: 1
+ };
+ break;
+ case "{":
+ const atLeast = this.integerIncludingZero();
+ switch (this.popChar()) {
+ case "}":
+ range3 = {
+ atLeast,
+ atMost: atLeast
+ };
+ break;
+ case ",":
+ let atMost;
+ if (this.isDigit()) {
+ atMost = this.integerIncludingZero();
+ range3 = {
+ atLeast,
+ atMost
+ };
+ } else {
+ range3 = {
+ atLeast,
+ atMost: Infinity
+ };
+ }
+ this.consumeChar("}");
+ break;
+ }
+ if (isBacktracking === true && range3 === void 0) {
+ return void 0;
+ }
+ ASSERT_EXISTS(range3);
+ break;
+ }
+ if (isBacktracking === true && range3 === void 0) {
+ return void 0;
+ }
+ if (ASSERT_EXISTS(range3)) {
+ if (this.peekChar(0) === "?") {
+ this.consumeChar("?");
+ range3.greedy = false;
+ } else {
+ range3.greedy = true;
}
- function H4c() {
+ range3.type = "Quantifier";
+ range3.loc = this.loc(begin);
+ return range3;
+ }
+ }
+ atom() {
+ let atom2;
+ const begin = this.idx;
+ switch (this.peekChar()) {
+ case ".":
+ atom2 = this.dotAll();
+ break;
+ case "\\":
+ atom2 = this.atomEscape();
+ break;
+ case "[":
+ atom2 = this.characterClass();
+ break;
+ case "(":
+ atom2 = this.group();
+ break;
+ }
+ if (atom2 === void 0 && this.isPatternCharacter()) {
+ atom2 = this.patternCharacter();
+ }
+ if (ASSERT_EXISTS(atom2)) {
+ atom2.loc = this.loc(begin);
+ if (this.isQuantifier()) {
+ atom2.quantifier = this.quantifier();
}
- function J4c() {
+ return atom2;
+ }
+ return ASSERT_NEVER_REACH_HERE();
+ }
+ dotAll() {
+ this.consumeChar(".");
+ return {
+ type: "Set",
+ complement: true,
+ value: [cc("\n"), cc("\r"), cc("\u2028"), cc("\u2029")]
+ };
+ }
+ atomEscape() {
+ this.consumeChar("\\");
+ switch (this.peekChar()) {
+ case "1":
+ case "2":
+ case "3":
+ case "4":
+ case "5":
+ case "6":
+ case "7":
+ case "8":
+ case "9":
+ return this.decimalEscapeAtom();
+ case "d":
+ case "D":
+ case "s":
+ case "S":
+ case "w":
+ case "W":
+ return this.characterClassEscape();
+ case "f":
+ case "n":
+ case "r":
+ case "t":
+ case "v":
+ return this.controlEscapeAtom();
+ case "c":
+ return this.controlLetterEscapeAtom();
+ case "0":
+ return this.nulCharacterAtom();
+ case "x":
+ return this.hexEscapeSequenceAtom();
+ case "u":
+ return this.regExpUnicodeEscapeSequenceAtom();
+ default:
+ return this.identityEscapeAtom();
+ }
+ }
+ decimalEscapeAtom() {
+ const value2 = this.positiveInteger();
+ return { type: "GroupBackReference", value: value2 };
+ }
+ characterClassEscape() {
+ let set6;
+ let complement = false;
+ switch (this.popChar()) {
+ case "d":
+ set6 = digitsCharCodes;
+ break;
+ case "D":
+ set6 = digitsCharCodes;
+ complement = true;
+ break;
+ case "s":
+ set6 = whitespaceCodes;
+ break;
+ case "S":
+ set6 = whitespaceCodes;
+ complement = true;
+ break;
+ case "w":
+ set6 = wordCharCodes;
+ break;
+ case "W":
+ set6 = wordCharCodes;
+ complement = true;
+ break;
+ }
+ if (ASSERT_EXISTS(set6)) {
+ return { type: "Set", value: set6, complement };
+ }
+ return ASSERT_NEVER_REACH_HERE();
+ }
+ controlEscapeAtom() {
+ let escapeCode;
+ switch (this.popChar()) {
+ case "f":
+ escapeCode = cc("\f");
+ break;
+ case "n":
+ escapeCode = cc("\n");
+ break;
+ case "r":
+ escapeCode = cc("\r");
+ break;
+ case "t":
+ escapeCode = cc(" ");
+ break;
+ case "v":
+ escapeCode = cc("\v");
+ break;
+ }
+ if (ASSERT_EXISTS(escapeCode)) {
+ return { type: "Character", value: escapeCode };
+ }
+ return ASSERT_NEVER_REACH_HERE();
+ }
+ controlLetterEscapeAtom() {
+ this.consumeChar("c");
+ const letter = this.popChar();
+ if (/[a-zA-Z]/.test(letter) === false) {
+ throw Error("Invalid ");
+ }
+ const letterCode = letter.toUpperCase().charCodeAt(0) - 64;
+ return { type: "Character", value: letterCode };
+ }
+ nulCharacterAtom() {
+ this.consumeChar("0");
+ return { type: "Character", value: cc("\0") };
+ }
+ hexEscapeSequenceAtom() {
+ this.consumeChar("x");
+ return this.parseHexDigits(2);
+ }
+ regExpUnicodeEscapeSequenceAtom() {
+ this.consumeChar("u");
+ return this.parseHexDigits(4);
+ }
+ identityEscapeAtom() {
+ const escapedChar = this.popChar();
+ return { type: "Character", value: cc(escapedChar) };
+ }
+ classPatternCharacterAtom() {
+ switch (this.peekChar()) {
+ case "\n":
+ case "\r":
+ case "\u2028":
+ case "\u2029":
+ case "\\":
+ case "]":
+ throw Error("TBD");
+ default:
+ const nextChar = this.popChar();
+ return { type: "Character", value: cc(nextChar) };
+ }
+ }
+ characterClass() {
+ const set6 = [];
+ let complement = false;
+ this.consumeChar("[");
+ if (this.peekChar(0) === "^") {
+ this.consumeChar("^");
+ complement = true;
+ }
+ while (this.isClassAtom()) {
+ const from2 = this.classAtom();
+ const isFromSingleChar = from2.type === "Character";
+ if (isCharacter(from2) && this.isRangeDash()) {
+ this.consumeChar("-");
+ const to = this.classAtom();
+ const isToSingleChar = to.type === "Character";
+ if (isCharacter(to)) {
+ if (to.value < from2.value) {
+ throw Error("Range out of order in character class");
+ }
+ set6.push({ from: from2.value, to: to.value });
+ } else {
+ insertToSet(from2.value, set6);
+ set6.push(cc("-"));
+ insertToSet(to.value, set6);
+ }
+ } else {
+ insertToSet(from2.value, set6);
+ }
+ }
+ this.consumeChar("]");
+ return { type: "Set", complement, value: set6 };
+ }
+ classAtom() {
+ switch (this.peekChar()) {
+ case "]":
+ case "\n":
+ case "\r":
+ case "\u2028":
+ case "\u2029":
+ throw Error("TBD");
+ case "\\":
+ return this.classEscape();
+ default:
+ return this.classPatternCharacterAtom();
+ }
+ }
+ classEscape() {
+ this.consumeChar("\\");
+ switch (this.peekChar()) {
+ case "b":
+ this.consumeChar("b");
+ return { type: "Character", value: cc("\b") };
+ case "d":
+ case "D":
+ case "s":
+ case "S":
+ case "w":
+ case "W":
+ return this.characterClassEscape();
+ case "f":
+ case "n":
+ case "r":
+ case "t":
+ case "v":
+ return this.controlEscapeAtom();
+ case "c":
+ return this.controlLetterEscapeAtom();
+ case "0":
+ return this.nulCharacterAtom();
+ case "x":
+ return this.hexEscapeSequenceAtom();
+ case "u":
+ return this.regExpUnicodeEscapeSequenceAtom();
+ default:
+ return this.identityEscapeAtom();
+ }
+ }
+ group() {
+ let capturing = true;
+ this.consumeChar("(");
+ switch (this.peekChar(0)) {
+ case "?":
+ this.consumeChar("?");
+ this.consumeChar(":");
+ capturing = false;
+ break;
+ default:
+ this.groupIdx++;
+ break;
+ }
+ const value2 = this.disjunction();
+ this.consumeChar(")");
+ const groupAst = {
+ type: "Group",
+ capturing,
+ value: value2
+ };
+ if (capturing) {
+ groupAst["idx"] = this.groupIdx;
+ }
+ return groupAst;
+ }
+ positiveInteger() {
+ let number7 = this.popChar();
+ if (decimalPatternNoZero.test(number7) === false) {
+ throw Error("Expecting a positive integer");
+ }
+ while (decimalPattern.test(this.peekChar(0))) {
+ number7 += this.popChar();
+ }
+ return parseInt(number7, 10);
+ }
+ integerIncludingZero() {
+ let number7 = this.popChar();
+ if (decimalPattern.test(number7) === false) {
+ throw Error("Expecting an integer");
+ }
+ while (decimalPattern.test(this.peekChar(0))) {
+ number7 += this.popChar();
+ }
+ return parseInt(number7, 10);
+ }
+ patternCharacter() {
+ const nextChar = this.popChar();
+ switch (nextChar) {
+ case "\n":
+ case "\r":
+ case "\u2028":
+ case "\u2029":
+ case "^":
+ case "$":
+ case "\\":
+ case ".":
+ case "*":
+ case "+":
+ case "?":
+ case "(":
+ case ")":
+ case "[":
+ case "|":
+ throw Error("TBD");
+ default:
+ return { type: "Character", value: cc(nextChar) };
+ }
+ }
+ isRegExpFlag() {
+ switch (this.peekChar(0)) {
+ case "g":
+ case "i":
+ case "m":
+ case "u":
+ case "y":
+ return true;
+ default:
+ return false;
+ }
+ }
+ isRangeDash() {
+ return this.peekChar() === "-" && this.isClassAtom(1);
+ }
+ isDigit() {
+ return decimalPattern.test(this.peekChar(0));
+ }
+ isClassAtom(howMuch = 0) {
+ switch (this.peekChar(howMuch)) {
+ case "]":
+ case "\n":
+ case "\r":
+ case "\u2028":
+ case "\u2029":
+ return false;
+ default:
+ return true;
+ }
+ }
+ isTerm() {
+ return this.isAtom() || this.isAssertion();
+ }
+ isAtom() {
+ if (this.isPatternCharacter()) {
+ return true;
+ }
+ switch (this.peekChar(0)) {
+ case ".":
+ case "\\":
+ case "[":
+ case "(":
+ return true;
+ default:
+ return false;
+ }
+ }
+ isAssertion() {
+ switch (this.peekChar(0)) {
+ case "^":
+ case "$":
+ return true;
+ case "\\":
+ switch (this.peekChar(1)) {
+ case "b":
+ case "B":
+ return true;
+ default:
+ return false;
+ }
+ case "(":
+ return this.peekChar(1) === "?" && (this.peekChar(2) === "=" || this.peekChar(2) === "!");
+ default:
+ return false;
+ }
+ }
+ isQuantifier() {
+ const prevState = this.saveState();
+ try {
+ return this.quantifier(true) !== void 0;
+ } catch (e3) {
+ return false;
+ } finally {
+ this.restoreState(prevState);
+ }
+ }
+ isPatternCharacter() {
+ switch (this.peekChar()) {
+ case "^":
+ case "$":
+ case "\\":
+ case ".":
+ case "*":
+ case "+":
+ case "?":
+ case "(":
+ case ")":
+ case "[":
+ case "|":
+ case "/":
+ case "\n":
+ case "\r":
+ case "\u2028":
+ case "\u2029":
+ return false;
+ default:
+ return true;
+ }
+ }
+ parseHexDigits(howMany) {
+ let hexString = "";
+ for (let i2 = 0; i2 < howMany; i2++) {
+ const hexChar = this.popChar();
+ if (hexDigitPattern.test(hexChar) === false) {
+ throw Error("Expecting a HexDecimal digits");
}
- function L4c() {
+ hexString += hexChar;
+ }
+ const charCode = parseInt(hexString, 16);
+ return { type: "Character", value: charCode };
+ }
+ peekChar(howMuch = 0) {
+ return this.input[this.idx + howMuch];
+ }
+ popChar() {
+ const nextChar = this.peekChar(0);
+ this.consumeChar(void 0);
+ return nextChar;
+ }
+ consumeChar(char2) {
+ if (char2 !== void 0 && this.input[this.idx] !== char2) {
+ throw Error("Expected: '" + char2 + "' but found: '" + this.input[this.idx] + "' at offset: " + this.idx);
+ }
+ if (this.idx >= this.input.length) {
+ throw Error("Unexpected end of input");
+ }
+ this.idx++;
+ }
+ loc(begin) {
+ return { begin, end: this.idx };
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/base-regexp-visitor.js
+ var BaseRegExpVisitor;
+ var init_base_regexp_visitor = __esm({
+ "../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/base-regexp-visitor.js"() {
+ "use strict";
+ BaseRegExpVisitor = class {
+ static {
+ __name(this, "BaseRegExpVisitor");
+ }
+ visitChildren(node2) {
+ for (const key in node2) {
+ const child = node2[key];
+ if (node2.hasOwnProperty(key)) {
+ if (child.type !== void 0) {
+ this.visit(child);
+ } else if (Array.isArray(child)) {
+ child.forEach((subChild) => {
+ this.visit(subChild);
+ }, this);
+ }
+ }
+ }
+ }
+ visit(node2) {
+ switch (node2.type) {
+ case "Pattern":
+ this.visitPattern(node2);
+ break;
+ case "Flags":
+ this.visitFlags(node2);
+ break;
+ case "Disjunction":
+ this.visitDisjunction(node2);
+ break;
+ case "Alternative":
+ this.visitAlternative(node2);
+ break;
+ case "StartAnchor":
+ this.visitStartAnchor(node2);
+ break;
+ case "EndAnchor":
+ this.visitEndAnchor(node2);
+ break;
+ case "WordBoundary":
+ this.visitWordBoundary(node2);
+ break;
+ case "NonWordBoundary":
+ this.visitNonWordBoundary(node2);
+ break;
+ case "Lookahead":
+ this.visitLookahead(node2);
+ break;
+ case "NegativeLookahead":
+ this.visitNegativeLookahead(node2);
+ break;
+ case "Character":
+ this.visitCharacter(node2);
+ break;
+ case "Set":
+ this.visitSet(node2);
+ break;
+ case "Group":
+ this.visitGroup(node2);
+ break;
+ case "GroupBackReference":
+ this.visitGroupBackReference(node2);
+ break;
+ case "Quantifier":
+ this.visitQuantifier(node2);
+ break;
+ }
+ this.visitChildren(node2);
+ }
+ visitPattern(node2) {
+ }
+ visitFlags(node2) {
+ }
+ visitDisjunction(node2) {
+ }
+ visitAlternative(node2) {
+ }
+ // Assertion
+ visitStartAnchor(node2) {
+ }
+ visitEndAnchor(node2) {
+ }
+ visitWordBoundary(node2) {
+ }
+ visitNonWordBoundary(node2) {
+ }
+ visitLookahead(node2) {
+ }
+ visitNegativeLookahead(node2) {
+ }
+ // atoms
+ visitCharacter(node2) {
+ }
+ visitSet(node2) {
+ }
+ visitGroup(node2) {
+ }
+ visitGroupBackReference(node2) {
+ }
+ visitQuantifier(node2) {
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/api.js
+ var init_api = __esm({
+ "../../node_modules/.pnpm/@chevrotain+regexp-to-ast@11.0.3/node_modules/@chevrotain/regexp-to-ast/lib/src/api.js"() {
+ "use strict";
+ init_regexp_parser();
+ init_base_regexp_visitor();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/regexp-utils.js
+ var regexp_utils_exports = {};
+ __export(regexp_utils_exports, {
+ NEWLINE_REGEXP: () => NEWLINE_REGEXP,
+ escapeRegExp: () => escapeRegExp,
+ getCaseInsensitivePattern: () => getCaseInsensitivePattern,
+ getTerminalParts: () => getTerminalParts,
+ isMultilineComment: () => isMultilineComment,
+ isWhitespace: () => isWhitespace,
+ partialMatches: () => partialMatches,
+ partialRegExp: () => partialRegExp
+ });
+ function getTerminalParts(regexp) {
+ try {
+ if (typeof regexp !== "string") {
+ regexp = regexp.source;
+ }
+ regexp = `/${regexp}/`;
+ const pattern = regexpParser.pattern(regexp);
+ const parts = [];
+ for (const alternative of pattern.value.value) {
+ visitor.reset(regexp);
+ visitor.visit(alternative);
+ parts.push({
+ start: visitor.startRegexp,
+ end: visitor.endRegex
+ });
+ }
+ return parts;
+ } catch (_a) {
+ return [];
+ }
+ }
+ function isMultilineComment(regexp) {
+ try {
+ if (typeof regexp === "string") {
+ regexp = new RegExp(regexp);
+ }
+ regexp = regexp.toString();
+ visitor.reset(regexp);
+ visitor.visit(regexpParser.pattern(regexp));
+ return visitor.multiline;
+ } catch (_a) {
+ return false;
+ }
+ }
+ function isWhitespace(value2) {
+ const regexp = typeof value2 === "string" ? new RegExp(value2) : value2;
+ return regexp.test(" ");
+ }
+ function escapeRegExp(value2) {
+ return value2.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+ }
+ function getCaseInsensitivePattern(keyword) {
+ return Array.prototype.map.call(keyword, (letter) => /\w/.test(letter) ? `[${letter.toLowerCase()}${letter.toUpperCase()}]` : escapeRegExp(letter)).join("");
+ }
+ function partialMatches(regex2, input) {
+ const partial = partialRegExp(regex2);
+ const match2 = input.match(partial);
+ return !!match2 && match2[0].length > 0;
+ }
+ function partialRegExp(regex2) {
+ if (typeof regex2 === "string") {
+ regex2 = new RegExp(regex2);
+ }
+ const re2 = regex2, source = regex2.source;
+ let i2 = 0;
+ function process2() {
+ let result = "", tmp;
+ function appendRaw(nbChars) {
+ result += source.substr(i2, nbChars);
+ i2 += nbChars;
+ }
+ __name(appendRaw, "appendRaw");
+ function appendOptional(nbChars) {
+ result += "(?:" + source.substr(i2, nbChars) + "|$)";
+ i2 += nbChars;
+ }
+ __name(appendOptional, "appendOptional");
+ while (i2 < source.length) {
+ switch (source[i2]) {
+ case "\\":
+ switch (source[i2 + 1]) {
+ case "c":
+ appendOptional(3);
+ break;
+ case "x":
+ appendOptional(4);
+ break;
+ case "u":
+ if (re2.unicode) {
+ if (source[i2 + 2] === "{") {
+ appendOptional(source.indexOf("}", i2) - i2 + 1);
+ } else {
+ appendOptional(6);
+ }
+ } else {
+ appendOptional(2);
+ }
+ break;
+ case "p":
+ case "P":
+ if (re2.unicode) {
+ appendOptional(source.indexOf("}", i2) - i2 + 1);
+ } else {
+ appendOptional(2);
+ }
+ break;
+ case "k":
+ appendOptional(source.indexOf(">", i2) - i2 + 1);
+ break;
+ default:
+ appendOptional(2);
+ break;
}
- function N4c() {
+ break;
+ case "[":
+ tmp = /\[(?:\\.|.)*?\]/g;
+ tmp.lastIndex = i2;
+ tmp = tmp.exec(source) || [];
+ appendOptional(tmp[0].length);
+ break;
+ case "|":
+ case "^":
+ case "$":
+ case "*":
+ case "+":
+ case "?":
+ appendRaw(1);
+ break;
+ case "{":
+ tmp = /\{\d+,?\d*\}/g;
+ tmp.lastIndex = i2;
+ tmp = tmp.exec(source);
+ if (tmp) {
+ appendRaw(tmp[0].length);
+ } else {
+ appendOptional(1);
}
- function P4c() {
+ break;
+ case "(":
+ if (source[i2 + 1] === "?") {
+ switch (source[i2 + 2]) {
+ case ":":
+ result += "(?:";
+ i2 += 3;
+ result += process2() + "|$)";
+ break;
+ case "=":
+ result += "(?=";
+ i2 += 3;
+ result += process2() + ")";
+ break;
+ case "!":
+ tmp = i2;
+ i2 += 3;
+ process2();
+ result += source.substr(tmp, i2 - tmp);
+ break;
+ case "<":
+ switch (source[i2 + 3]) {
+ case "=":
+ case "!":
+ tmp = i2;
+ i2 += 4;
+ process2();
+ result += source.substr(tmp, i2 - tmp);
+ break;
+ default:
+ appendRaw(source.indexOf(">", i2) - i2 + 1);
+ result += process2() + "|$)";
+ break;
+ }
+ break;
+ }
+ } else {
+ appendRaw(1);
+ result += process2() + "|$)";
}
- function R4c() {
+ break;
+ case ")":
+ ++i2;
+ return result;
+ default:
+ appendOptional(1);
+ break;
+ }
+ }
+ return result;
+ }
+ __name(process2, "process");
+ return new RegExp(process2(), regex2.flags);
+ }
+ var NEWLINE_REGEXP, regexpParser, TerminalRegExpVisitor, visitor;
+ var init_regexp_utils = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/regexp-utils.js"() {
+ "use strict";
+ init_api();
+ NEWLINE_REGEXP = /\r?\n/gm;
+ regexpParser = new RegExpParser();
+ TerminalRegExpVisitor = class extends BaseRegExpVisitor {
+ static {
+ __name(this, "TerminalRegExpVisitor");
+ }
+ constructor() {
+ super(...arguments);
+ this.isStarting = true;
+ this.endRegexpStack = [];
+ this.multiline = false;
+ }
+ get endRegex() {
+ return this.endRegexpStack.join("");
+ }
+ reset(regex2) {
+ this.multiline = false;
+ this.regex = regex2;
+ this.startRegexp = "";
+ this.isStarting = true;
+ this.endRegexpStack = [];
+ }
+ visitGroup(node2) {
+ if (node2.quantifier) {
+ this.isStarting = false;
+ this.endRegexpStack = [];
+ }
+ }
+ visitCharacter(node2) {
+ const char2 = String.fromCharCode(node2.value);
+ if (!this.multiline && char2 === "\n") {
+ this.multiline = true;
+ }
+ if (node2.quantifier) {
+ this.isStarting = false;
+ this.endRegexpStack = [];
+ } else {
+ const escapedChar = escapeRegExp(char2);
+ this.endRegexpStack.push(escapedChar);
+ if (this.isStarting) {
+ this.startRegexp += escapedChar;
}
- function T4c() {
+ }
+ }
+ visitSet(node2) {
+ if (!this.multiline) {
+ const set6 = this.regex.substring(node2.loc.begin, node2.loc.end);
+ const regex2 = new RegExp(set6);
+ this.multiline = Boolean("\n".match(regex2));
+ }
+ if (node2.quantifier) {
+ this.isStarting = false;
+ this.endRegexpStack = [];
+ } else {
+ const set6 = this.regex.substring(node2.loc.begin, node2.loc.end);
+ this.endRegexpStack.push(set6);
+ if (this.isStarting) {
+ this.startRegexp += set6;
}
- function V4c() {
+ }
+ }
+ visitChildren(node2) {
+ if (node2.type === "Group") {
+ const group2 = node2;
+ if (group2.quantifier) {
+ return;
}
- function X4c() {
- }
- function Z4c() {
- }
- function _4c() {
- }
- function _7c() {
- }
- function b5c() {
- }
- function d5c() {
- }
- function f5c() {
- }
- function h5c() {
- }
- function H5c() {
- }
- function Hfd() {
- }
- function Zfd() {
- }
- function Zed() {
- }
- function ged() {
- }
- function Jed() {
- }
- function Ned() {
- }
- function Red() {
- }
- function Ved() {
- }
- function bbd() {
- }
- function mdd() {
- }
- function _fd() {
- }
- function fgd() {
- }
- function kgd() {
- }
- function Mgd() {
- }
- function Ahd() {
- }
- function Ald() {
- }
- function Tld() {
- }
- function xkd() {
- }
- function rmd() {
- }
- function knd() {
- }
- function Jod() {
- }
- function JCd() {
- }
- function Bpd() {
- }
- function BFd() {
- }
- function oFd() {
- }
- function bqd() {
- }
- function bvd() {
- }
- function jvd() {
- }
- function yud() {
- }
- function Hxd() {
- }
- function EBd() {
- }
- function aDd() {
- }
- function MGd() {
- }
- function vHd() {
- }
- function RHd() {
- }
- function wNd() {
- }
- function zNd() {
- }
- function CNd() {
- }
- function KNd() {
- }
- function XNd() {
- }
- function $Nd() {
- }
- function HPd() {
- }
- function lUd() {
- }
- function XUd() {
- }
- function DWd() {
- }
- function GWd() {
- }
- function JWd() {
- }
- function MWd() {
- }
- function PWd() {
- }
- function SWd() {
- }
- function VWd() {
- }
- function YWd() {
- }
- function _Wd() {
- }
- function xYd() {
- }
- function BYd() {
- }
- function mZd() {
- }
- function EZd() {
- }
- function GZd() {
- }
- function JZd() {
- }
- function MZd() {
- }
- function PZd() {
- }
- function SZd() {
- }
- function VZd() {
- }
- function YZd() {
- }
- function _Zd() {
- }
- function c$d() {
- }
- function f$d() {
+ }
+ super.visitChildren(node2);
+ }
+ };
+ visitor = new TerminalRegExpVisitor();
+ __name(getTerminalParts, "getTerminalParts");
+ __name(isMultilineComment, "isMultilineComment");
+ __name(isWhitespace, "isWhitespace");
+ __name(escapeRegExp, "escapeRegExp");
+ __name(getCaseInsensitivePattern, "getCaseInsensitivePattern");
+ __name(partialMatches, "partialMatches");
+ __name(partialRegExp, "partialRegExp");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/grammar-utils.js
+ var grammar_utils_exports = {};
+ __export(grammar_utils_exports, {
+ findAssignment: () => findAssignment,
+ findNameAssignment: () => findNameAssignment,
+ findNodeForKeyword: () => findNodeForKeyword,
+ findNodeForProperty: () => findNodeForProperty,
+ findNodesForKeyword: () => findNodesForKeyword,
+ findNodesForKeywordInternal: () => findNodesForKeywordInternal,
+ findNodesForProperty: () => findNodesForProperty,
+ getActionAtElement: () => getActionAtElement,
+ getActionType: () => getActionType,
+ getAllReachableRules: () => getAllReachableRules,
+ getCrossReferenceTerminal: () => getCrossReferenceTerminal,
+ getEntryRule: () => getEntryRule,
+ getExplicitRuleType: () => getExplicitRuleType,
+ getHiddenRules: () => getHiddenRules,
+ getRuleType: () => getRuleType,
+ getTypeName: () => getTypeName,
+ isArrayCardinality: () => isArrayCardinality,
+ isArrayOperator: () => isArrayOperator,
+ isCommentTerminal: () => isCommentTerminal,
+ isDataType: () => isDataType,
+ isDataTypeRule: () => isDataTypeRule,
+ isOptionalCardinality: () => isOptionalCardinality,
+ terminalRegex: () => terminalRegex
+ });
+ function getEntryRule(grammar) {
+ return grammar.rules.find((e3) => isParserRule(e3) && e3.entry);
+ }
+ function getHiddenRules(grammar) {
+ return grammar.rules.filter((e3) => isTerminalRule(e3) && e3.hidden);
+ }
+ function getAllReachableRules(grammar, allTerminals) {
+ const ruleNames = /* @__PURE__ */ new Set();
+ const entryRule = getEntryRule(grammar);
+ if (!entryRule) {
+ return new Set(grammar.rules);
+ }
+ const topMostRules = [entryRule].concat(getHiddenRules(grammar));
+ for (const rule of topMostRules) {
+ ruleDfs(rule, ruleNames, allTerminals);
+ }
+ const rules = /* @__PURE__ */ new Set();
+ for (const rule of grammar.rules) {
+ if (ruleNames.has(rule.name) || isTerminalRule(rule) && rule.hidden) {
+ rules.add(rule);
+ }
+ }
+ return rules;
+ }
+ function ruleDfs(rule, visitedSet, allTerminals) {
+ visitedSet.add(rule.name);
+ streamAllContents(rule).forEach((node2) => {
+ if (isRuleCall(node2) || allTerminals && isTerminalRuleCall(node2)) {
+ const refRule = node2.rule.ref;
+ if (refRule && !visitedSet.has(refRule.name)) {
+ ruleDfs(refRule, visitedSet, allTerminals);
+ }
+ }
+ });
+ }
+ function getCrossReferenceTerminal(crossRef) {
+ if (crossRef.terminal) {
+ return crossRef.terminal;
+ } else if (crossRef.type.ref) {
+ const nameAssigment = findNameAssignment(crossRef.type.ref);
+ return nameAssigment === null || nameAssigment === void 0 ? void 0 : nameAssigment.terminal;
+ }
+ return void 0;
+ }
+ function isCommentTerminal(terminalRule) {
+ return terminalRule.hidden && !terminalRegex(terminalRule).test(" ");
+ }
+ function findNodesForProperty(node2, property2) {
+ if (!node2 || !property2) {
+ return [];
+ }
+ return findNodesForPropertyInternal(node2, property2, node2.astNode, true);
+ }
+ function findNodeForProperty(node2, property2, index) {
+ if (!node2 || !property2) {
+ return void 0;
+ }
+ const nodes6 = findNodesForPropertyInternal(node2, property2, node2.astNode, true);
+ if (nodes6.length === 0) {
+ return void 0;
+ }
+ if (index !== void 0) {
+ index = Math.max(0, Math.min(index, nodes6.length - 1));
+ } else {
+ index = 0;
+ }
+ return nodes6[index];
+ }
+ function findNodesForPropertyInternal(node2, property2, element3, first3) {
+ if (!first3) {
+ const nodeFeature = getContainerOfType(node2.grammarSource, isAssignment);
+ if (nodeFeature && nodeFeature.feature === property2) {
+ return [node2];
+ }
+ }
+ if (isCompositeCstNode(node2) && node2.astNode === element3) {
+ return node2.content.flatMap((e3) => findNodesForPropertyInternal(e3, property2, element3, false));
+ }
+ return [];
+ }
+ function findNodesForKeyword(node2, keyword) {
+ if (!node2) {
+ return [];
+ }
+ return findNodesForKeywordInternal(node2, keyword, node2 === null || node2 === void 0 ? void 0 : node2.astNode);
+ }
+ function findNodeForKeyword(node2, keyword, index) {
+ if (!node2) {
+ return void 0;
+ }
+ const nodes6 = findNodesForKeywordInternal(node2, keyword, node2 === null || node2 === void 0 ? void 0 : node2.astNode);
+ if (nodes6.length === 0) {
+ return void 0;
+ }
+ if (index !== void 0) {
+ index = Math.max(0, Math.min(index, nodes6.length - 1));
+ } else {
+ index = 0;
+ }
+ return nodes6[index];
+ }
+ function findNodesForKeywordInternal(node2, keyword, element3) {
+ if (node2.astNode !== element3) {
+ return [];
+ }
+ if (isKeyword(node2.grammarSource) && node2.grammarSource.value === keyword) {
+ return [node2];
+ }
+ const treeIterator = streamCst(node2).iterator();
+ let result;
+ const keywordNodes = [];
+ do {
+ result = treeIterator.next();
+ if (!result.done) {
+ const childNode = result.value;
+ if (childNode.astNode === element3) {
+ if (isKeyword(childNode.grammarSource) && childNode.grammarSource.value === keyword) {
+ keywordNodes.push(childNode);
+ }
+ } else {
+ treeIterator.prune();
+ }
+ }
+ } while (!result.done);
+ return keywordNodes;
+ }
+ function findAssignment(cstNode) {
+ var _a;
+ const astNode = cstNode.astNode;
+ while (astNode === ((_a = cstNode.container) === null || _a === void 0 ? void 0 : _a.astNode)) {
+ const assignment = getContainerOfType(cstNode.grammarSource, isAssignment);
+ if (assignment) {
+ return assignment;
+ }
+ cstNode = cstNode.container;
+ }
+ return void 0;
+ }
+ function findNameAssignment(type3) {
+ let startNode = type3;
+ if (isInferredType(startNode)) {
+ if (isAction(startNode.$container)) {
+ startNode = startNode.$container.$container;
+ } else if (isParserRule(startNode.$container)) {
+ startNode = startNode.$container;
+ } else {
+ assertUnreachable(startNode.$container);
+ }
+ }
+ return findNameAssignmentInternal(type3, startNode, /* @__PURE__ */ new Map());
+ }
+ function findNameAssignmentInternal(type3, startNode, cache3) {
+ var _a;
+ function go(node2, refType) {
+ let childAssignment = void 0;
+ const parentAssignment = getContainerOfType(node2, isAssignment);
+ if (!parentAssignment) {
+ childAssignment = findNameAssignmentInternal(refType, refType, cache3);
+ }
+ cache3.set(type3, childAssignment);
+ return childAssignment;
+ }
+ __name(go, "go");
+ if (cache3.has(type3)) {
+ return cache3.get(type3);
+ }
+ cache3.set(type3, void 0);
+ for (const node2 of streamAllContents(startNode)) {
+ if (isAssignment(node2) && node2.feature.toLowerCase() === "name") {
+ cache3.set(type3, node2);
+ return node2;
+ } else if (isRuleCall(node2) && isParserRule(node2.rule.ref)) {
+ return go(node2, node2.rule.ref);
+ } else if (isSimpleType(node2) && ((_a = node2.typeRef) === null || _a === void 0 ? void 0 : _a.ref)) {
+ return go(node2, node2.typeRef.ref);
+ }
+ }
+ return void 0;
+ }
+ function getActionAtElement(element3) {
+ const parent4 = element3.$container;
+ if (isGroup(parent4)) {
+ const elements3 = parent4.elements;
+ const index = elements3.indexOf(element3);
+ for (let i2 = index - 1; i2 >= 0; i2--) {
+ const item = elements3[i2];
+ if (isAction(item)) {
+ return item;
+ } else {
+ const action = streamAllContents(elements3[i2]).find(isAction);
+ if (action) {
+ return action;
+ }
+ }
+ }
+ }
+ if (isAbstractElement(parent4)) {
+ return getActionAtElement(parent4);
+ } else {
+ return void 0;
+ }
+ }
+ function isOptionalCardinality(cardinality, element3) {
+ return cardinality === "?" || cardinality === "*" || isGroup(element3) && Boolean(element3.guardCondition);
+ }
+ function isArrayCardinality(cardinality) {
+ return cardinality === "*" || cardinality === "+";
+ }
+ function isArrayOperator(operator) {
+ return operator === "+=";
+ }
+ function isDataTypeRule(rule) {
+ return isDataTypeRuleInternal(rule, /* @__PURE__ */ new Set());
+ }
+ function isDataTypeRuleInternal(rule, visited) {
+ if (visited.has(rule)) {
+ return true;
+ } else {
+ visited.add(rule);
+ }
+ for (const node2 of streamAllContents(rule)) {
+ if (isRuleCall(node2)) {
+ if (!node2.rule.ref) {
+ return false;
+ }
+ if (isParserRule(node2.rule.ref) && !isDataTypeRuleInternal(node2.rule.ref, visited)) {
+ return false;
+ }
+ } else if (isAssignment(node2)) {
+ return false;
+ } else if (isAction(node2)) {
+ return false;
+ }
+ }
+ return Boolean(rule.definition);
+ }
+ function isDataType(type3) {
+ return isDataTypeInternal(type3.type, /* @__PURE__ */ new Set());
+ }
+ function isDataTypeInternal(type3, visited) {
+ if (visited.has(type3)) {
+ return true;
+ } else {
+ visited.add(type3);
+ }
+ if (isArrayType(type3)) {
+ return false;
+ } else if (isReferenceType(type3)) {
+ return false;
+ } else if (isUnionType(type3)) {
+ return type3.types.every((e3) => isDataTypeInternal(e3, visited));
+ } else if (isSimpleType(type3)) {
+ if (type3.primitiveType !== void 0) {
+ return true;
+ } else if (type3.stringType !== void 0) {
+ return true;
+ } else if (type3.typeRef !== void 0) {
+ const ref = type3.typeRef.ref;
+ if (isType(ref)) {
+ return isDataTypeInternal(ref.type, visited);
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
+ function getExplicitRuleType(rule) {
+ if (rule.inferredType) {
+ return rule.inferredType.name;
+ } else if (rule.dataType) {
+ return rule.dataType;
+ } else if (rule.returnType) {
+ const refType = rule.returnType.ref;
+ if (refType) {
+ if (isParserRule(refType)) {
+ return refType.name;
+ } else if (isInterface(refType) || isType(refType)) {
+ return refType.name;
+ }
+ }
+ }
+ return void 0;
+ }
+ function getTypeName(type3) {
+ var _a;
+ if (isParserRule(type3)) {
+ return isDataTypeRule(type3) ? type3.name : (_a = getExplicitRuleType(type3)) !== null && _a !== void 0 ? _a : type3.name;
+ } else if (isInterface(type3) || isType(type3) || isReturnType(type3)) {
+ return type3.name;
+ } else if (isAction(type3)) {
+ const actionType = getActionType(type3);
+ if (actionType) {
+ return actionType;
+ }
+ } else if (isInferredType(type3)) {
+ return type3.name;
+ }
+ throw new Error("Cannot get name of Unknown Type");
+ }
+ function getActionType(action) {
+ var _a;
+ if (action.inferredType) {
+ return action.inferredType.name;
+ } else if ((_a = action.type) === null || _a === void 0 ? void 0 : _a.ref) {
+ return getTypeName(action.type.ref);
+ }
+ return void 0;
+ }
+ function getRuleType(rule) {
+ var _a, _b, _c;
+ if (isTerminalRule(rule)) {
+ return (_b = (_a = rule.type) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "string";
+ } else {
+ return isDataTypeRule(rule) ? rule.name : (_c = getExplicitRuleType(rule)) !== null && _c !== void 0 ? _c : rule.name;
+ }
+ }
+ function terminalRegex(terminalRule) {
+ const flags = {
+ s: false,
+ i: false,
+ u: false
+ };
+ const source = abstractElementToRegex(terminalRule.definition, flags);
+ const flagText = Object.entries(flags).filter(([, value2]) => value2).map(([name]) => name).join("");
+ return new RegExp(source, flagText);
+ }
+ function abstractElementToRegex(element3, flags) {
+ if (isTerminalAlternatives(element3)) {
+ return terminalAlternativesToRegex(element3);
+ } else if (isTerminalGroup(element3)) {
+ return terminalGroupToRegex(element3);
+ } else if (isCharacterRange(element3)) {
+ return characterRangeToRegex(element3);
+ } else if (isTerminalRuleCall(element3)) {
+ const rule = element3.rule.ref;
+ if (!rule) {
+ throw new Error("Missing rule reference.");
+ }
+ return withCardinality(abstractElementToRegex(rule.definition), {
+ cardinality: element3.cardinality,
+ lookahead: element3.lookahead
+ });
+ } else if (isNegatedToken(element3)) {
+ return negateTokenToRegex(element3);
+ } else if (isUntilToken(element3)) {
+ return untilTokenToRegex(element3);
+ } else if (isRegexToken(element3)) {
+ const lastSlash = element3.regex.lastIndexOf("/");
+ const source = element3.regex.substring(1, lastSlash);
+ const regexFlags = element3.regex.substring(lastSlash + 1);
+ if (flags) {
+ flags.i = regexFlags.includes("i");
+ flags.s = regexFlags.includes("s");
+ flags.u = regexFlags.includes("u");
+ }
+ return withCardinality(source, {
+ cardinality: element3.cardinality,
+ lookahead: element3.lookahead,
+ wrap: false
+ });
+ } else if (isWildcard(element3)) {
+ return withCardinality(WILDCARD, {
+ cardinality: element3.cardinality,
+ lookahead: element3.lookahead
+ });
+ } else {
+ throw new Error(`Invalid terminal element: ${element3 === null || element3 === void 0 ? void 0 : element3.$type}`);
+ }
+ }
+ function terminalAlternativesToRegex(alternatives) {
+ return withCardinality(alternatives.elements.map((e3) => abstractElementToRegex(e3)).join("|"), {
+ cardinality: alternatives.cardinality,
+ lookahead: alternatives.lookahead
+ });
+ }
+ function terminalGroupToRegex(group2) {
+ return withCardinality(group2.elements.map((e3) => abstractElementToRegex(e3)).join(""), {
+ cardinality: group2.cardinality,
+ lookahead: group2.lookahead
+ });
+ }
+ function untilTokenToRegex(until) {
+ return withCardinality(`${WILDCARD}*?${abstractElementToRegex(until.terminal)}`, {
+ cardinality: until.cardinality,
+ lookahead: until.lookahead
+ });
+ }
+ function negateTokenToRegex(negate2) {
+ return withCardinality(`(?!${abstractElementToRegex(negate2.terminal)})${WILDCARD}*?`, {
+ cardinality: negate2.cardinality,
+ lookahead: negate2.lookahead
+ });
+ }
+ function characterRangeToRegex(range3) {
+ if (range3.right) {
+ return withCardinality(`[${keywordToRegex(range3.left)}-${keywordToRegex(range3.right)}]`, {
+ cardinality: range3.cardinality,
+ lookahead: range3.lookahead,
+ wrap: false
+ });
+ }
+ return withCardinality(keywordToRegex(range3.left), {
+ cardinality: range3.cardinality,
+ lookahead: range3.lookahead,
+ wrap: false
+ });
+ }
+ function keywordToRegex(keyword) {
+ return escapeRegExp(keyword.value);
+ }
+ function withCardinality(regex2, options3) {
+ var _a;
+ if (options3.wrap !== false || options3.lookahead) {
+ regex2 = `(${(_a = options3.lookahead) !== null && _a !== void 0 ? _a : ""}${regex2})`;
+ }
+ if (options3.cardinality) {
+ return `${regex2}${options3.cardinality}`;
+ }
+ return regex2;
+ }
+ var WILDCARD;
+ var init_grammar_utils = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/grammar-utils.js"() {
+ "use strict";
+ init_errors2();
+ init_ast();
+ init_syntax_tree();
+ init_ast_utils();
+ init_cst_utils();
+ init_regexp_utils();
+ __name(getEntryRule, "getEntryRule");
+ __name(getHiddenRules, "getHiddenRules");
+ __name(getAllReachableRules, "getAllReachableRules");
+ __name(ruleDfs, "ruleDfs");
+ __name(getCrossReferenceTerminal, "getCrossReferenceTerminal");
+ __name(isCommentTerminal, "isCommentTerminal");
+ __name(findNodesForProperty, "findNodesForProperty");
+ __name(findNodeForProperty, "findNodeForProperty");
+ __name(findNodesForPropertyInternal, "findNodesForPropertyInternal");
+ __name(findNodesForKeyword, "findNodesForKeyword");
+ __name(findNodeForKeyword, "findNodeForKeyword");
+ __name(findNodesForKeywordInternal, "findNodesForKeywordInternal");
+ __name(findAssignment, "findAssignment");
+ __name(findNameAssignment, "findNameAssignment");
+ __name(findNameAssignmentInternal, "findNameAssignmentInternal");
+ __name(getActionAtElement, "getActionAtElement");
+ __name(isOptionalCardinality, "isOptionalCardinality");
+ __name(isArrayCardinality, "isArrayCardinality");
+ __name(isArrayOperator, "isArrayOperator");
+ __name(isDataTypeRule, "isDataTypeRule");
+ __name(isDataTypeRuleInternal, "isDataTypeRuleInternal");
+ __name(isDataType, "isDataType");
+ __name(isDataTypeInternal, "isDataTypeInternal");
+ __name(getExplicitRuleType, "getExplicitRuleType");
+ __name(getTypeName, "getTypeName");
+ __name(getActionType, "getActionType");
+ __name(getRuleType, "getRuleType");
+ __name(terminalRegex, "terminalRegex");
+ WILDCARD = /[\s\S]/.source;
+ __name(abstractElementToRegex, "abstractElementToRegex");
+ __name(terminalAlternativesToRegex, "terminalAlternativesToRegex");
+ __name(terminalGroupToRegex, "terminalGroupToRegex");
+ __name(untilTokenToRegex, "untilTokenToRegex");
+ __name(negateTokenToRegex, "negateTokenToRegex");
+ __name(characterRangeToRegex, "characterRangeToRegex");
+ __name(keywordToRegex, "keywordToRegex");
+ __name(withCardinality, "withCardinality");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/grammar-config.js
+ function createGrammarConfig(services) {
+ const rules = [];
+ const grammar = services.Grammar;
+ for (const rule of grammar.rules) {
+ if (isTerminalRule(rule) && isCommentTerminal(rule) && isMultilineComment(terminalRegex(rule))) {
+ rules.push(rule.name);
+ }
+ }
+ return {
+ multilineCommentRules: rules,
+ nameRegexp: DefaultNameRegexp
+ };
+ }
+ var init_grammar_config = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/grammar-config.js"() {
+ "use strict";
+ init_cst_utils();
+ init_grammar_utils();
+ init_regexp_utils();
+ init_ast();
+ __name(createGrammarConfig, "createGrammarConfig");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/version.js
+ var init_version = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/version.js"() {
+ "use strict";
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/print.js
+ function PRINT_ERROR(msg) {
+ if (console && console.error) {
+ console.error(`Error: ${msg}`);
+ }
+ }
+ function PRINT_WARNING(msg) {
+ if (console && console.warn) {
+ console.warn(`Warning: ${msg}`);
+ }
+ }
+ var init_print = __esm({
+ "../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/print.js"() {
+ "use strict";
+ __name(PRINT_ERROR, "PRINT_ERROR");
+ __name(PRINT_WARNING, "PRINT_WARNING");
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/timer.js
+ function timer2(func) {
+ const start3 = (/* @__PURE__ */ new Date()).getTime();
+ const val = func();
+ const end2 = (/* @__PURE__ */ new Date()).getTime();
+ const total = end2 - start3;
+ return { time: total, value: val };
+ }
+ var init_timer2 = __esm({
+ "../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/timer.js"() {
+ "use strict";
+ __name(timer2, "timer");
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/to-fast-properties.js
+ function toFastProperties(toBecomeFast) {
+ function FakeConstructor() {
+ }
+ __name(FakeConstructor, "FakeConstructor");
+ FakeConstructor.prototype = toBecomeFast;
+ const fakeInstance = new FakeConstructor();
+ function fakeAccess() {
+ return typeof fakeInstance.bar;
+ }
+ __name(fakeAccess, "fakeAccess");
+ fakeAccess();
+ fakeAccess();
+ if (1)
+ return toBecomeFast;
+ (0, eval)(toBecomeFast);
+ }
+ var init_to_fast_properties = __esm({
+ "../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/to-fast-properties.js"() {
+ "use strict";
+ __name(toFastProperties, "toFastProperties");
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/api.js
+ var init_api2 = __esm({
+ "../../node_modules/.pnpm/@chevrotain+utils@11.0.3/node_modules/@chevrotain/utils/lib/src/api.js"() {
+ "use strict";
+ init_print();
+ init_timer2();
+ init_to_fast_properties();
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/model.js
+ function tokenLabel(tokType) {
+ if (hasTokenLabel(tokType)) {
+ return tokType.LABEL;
+ } else {
+ return tokType.name;
+ }
+ }
+ function hasTokenLabel(obj) {
+ return isString_default(obj.LABEL) && obj.LABEL !== "";
+ }
+ function serializeGrammar(topRules) {
+ return map_default(topRules, serializeProduction);
+ }
+ function serializeProduction(node2) {
+ function convertDefinition(definition) {
+ return map_default(definition, serializeProduction);
+ }
+ __name(convertDefinition, "convertDefinition");
+ if (node2 instanceof NonTerminal) {
+ const serializedNonTerminal = {
+ type: "NonTerminal",
+ name: node2.nonTerminalName,
+ idx: node2.idx
+ };
+ if (isString_default(node2.label)) {
+ serializedNonTerminal.label = node2.label;
+ }
+ return serializedNonTerminal;
+ } else if (node2 instanceof Alternative) {
+ return {
+ type: "Alternative",
+ definition: convertDefinition(node2.definition)
+ };
+ } else if (node2 instanceof Option2) {
+ return {
+ type: "Option",
+ idx: node2.idx,
+ definition: convertDefinition(node2.definition)
+ };
+ } else if (node2 instanceof RepetitionMandatory) {
+ return {
+ type: "RepetitionMandatory",
+ idx: node2.idx,
+ definition: convertDefinition(node2.definition)
+ };
+ } else if (node2 instanceof RepetitionMandatoryWithSeparator) {
+ return {
+ type: "RepetitionMandatoryWithSeparator",
+ idx: node2.idx,
+ separator: serializeProduction(new Terminal({ terminalType: node2.separator })),
+ definition: convertDefinition(node2.definition)
+ };
+ } else if (node2 instanceof RepetitionWithSeparator) {
+ return {
+ type: "RepetitionWithSeparator",
+ idx: node2.idx,
+ separator: serializeProduction(new Terminal({ terminalType: node2.separator })),
+ definition: convertDefinition(node2.definition)
+ };
+ } else if (node2 instanceof Repetition) {
+ return {
+ type: "Repetition",
+ idx: node2.idx,
+ definition: convertDefinition(node2.definition)
+ };
+ } else if (node2 instanceof Alternation) {
+ return {
+ type: "Alternation",
+ idx: node2.idx,
+ definition: convertDefinition(node2.definition)
+ };
+ } else if (node2 instanceof Terminal) {
+ const serializedTerminal = {
+ type: "Terminal",
+ name: node2.terminalType.name,
+ label: tokenLabel(node2.terminalType),
+ idx: node2.idx
+ };
+ if (isString_default(node2.label)) {
+ serializedTerminal.terminalLabel = node2.label;
+ }
+ const pattern = node2.terminalType.PATTERN;
+ if (node2.terminalType.PATTERN) {
+ serializedTerminal.pattern = isRegExp_default(pattern) ? pattern.source : pattern;
+ }
+ return serializedTerminal;
+ } else if (node2 instanceof Rule) {
+ return {
+ type: "Rule",
+ name: node2.name,
+ orgText: node2.orgText,
+ definition: convertDefinition(node2.definition)
+ };
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ var AbstractProduction, NonTerminal, Rule, Alternative, Option2, RepetitionMandatory, RepetitionMandatoryWithSeparator, Repetition, RepetitionWithSeparator, Alternation, Terminal;
+ var init_model = __esm({
+ "../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/model.js"() {
+ "use strict";
+ init_lodash();
+ __name(tokenLabel, "tokenLabel");
+ __name(hasTokenLabel, "hasTokenLabel");
+ AbstractProduction = class {
+ static {
+ __name(this, "AbstractProduction");
+ }
+ get definition() {
+ return this._definition;
+ }
+ set definition(value2) {
+ this._definition = value2;
+ }
+ constructor(_definition) {
+ this._definition = _definition;
+ }
+ accept(visitor2) {
+ visitor2.visit(this);
+ forEach_default(this.definition, (prod) => {
+ prod.accept(visitor2);
+ });
+ }
+ };
+ NonTerminal = class extends AbstractProduction {
+ static {
+ __name(this, "NonTerminal");
+ }
+ constructor(options3) {
+ super([]);
+ this.idx = 1;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ set definition(definition) {
+ }
+ get definition() {
+ if (this.referencedRule !== void 0) {
+ return this.referencedRule.definition;
+ }
+ return [];
+ }
+ accept(visitor2) {
+ visitor2.visit(this);
+ }
+ };
+ Rule = class extends AbstractProduction {
+ static {
+ __name(this, "Rule");
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.orgText = "";
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ Alternative = class extends AbstractProduction {
+ static {
+ __name(this, "Alternative");
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.ignoreAmbiguities = false;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ Option2 = class extends AbstractProduction {
+ static {
+ __name(this, "Option");
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.idx = 1;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ RepetitionMandatory = class extends AbstractProduction {
+ static {
+ __name(this, "RepetitionMandatory");
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.idx = 1;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ RepetitionMandatoryWithSeparator = class extends AbstractProduction {
+ static {
+ __name(this, "RepetitionMandatoryWithSeparator");
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.idx = 1;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ Repetition = class extends AbstractProduction {
+ static {
+ __name(this, "Repetition");
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.idx = 1;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ RepetitionWithSeparator = class extends AbstractProduction {
+ static {
+ __name(this, "RepetitionWithSeparator");
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.idx = 1;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ Alternation = class extends AbstractProduction {
+ static {
+ __name(this, "Alternation");
+ }
+ get definition() {
+ return this._definition;
+ }
+ set definition(value2) {
+ this._definition = value2;
+ }
+ constructor(options3) {
+ super(options3.definition);
+ this.idx = 1;
+ this.ignoreAmbiguities = false;
+ this.hasPredicates = false;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ };
+ Terminal = class {
+ static {
+ __name(this, "Terminal");
+ }
+ constructor(options3) {
+ this.idx = 1;
+ assign_default(this, pickBy_default(options3, (v3) => v3 !== void 0));
+ }
+ accept(visitor2) {
+ visitor2.visit(this);
+ }
+ };
+ __name(serializeGrammar, "serializeGrammar");
+ __name(serializeProduction, "serializeProduction");
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/visitor.js
+ var GAstVisitor;
+ var init_visitor = __esm({
+ "../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/visitor.js"() {
+ "use strict";
+ init_model();
+ GAstVisitor = class {
+ static {
+ __name(this, "GAstVisitor");
+ }
+ visit(node2) {
+ const nodeAny = node2;
+ switch (nodeAny.constructor) {
+ case NonTerminal:
+ return this.visitNonTerminal(nodeAny);
+ case Alternative:
+ return this.visitAlternative(nodeAny);
+ case Option2:
+ return this.visitOption(nodeAny);
+ case RepetitionMandatory:
+ return this.visitRepetitionMandatory(nodeAny);
+ case RepetitionMandatoryWithSeparator:
+ return this.visitRepetitionMandatoryWithSeparator(nodeAny);
+ case RepetitionWithSeparator:
+ return this.visitRepetitionWithSeparator(nodeAny);
+ case Repetition:
+ return this.visitRepetition(nodeAny);
+ case Alternation:
+ return this.visitAlternation(nodeAny);
+ case Terminal:
+ return this.visitTerminal(nodeAny);
+ case Rule:
+ return this.visitRule(nodeAny);
+ default:
+ throw Error("non exhaustive match");
+ }
+ }
+ /* c8 ignore next */
+ visitNonTerminal(node2) {
+ }
+ /* c8 ignore next */
+ visitAlternative(node2) {
+ }
+ /* c8 ignore next */
+ visitOption(node2) {
+ }
+ /* c8 ignore next */
+ visitRepetition(node2) {
+ }
+ /* c8 ignore next */
+ visitRepetitionMandatory(node2) {
+ }
+ /* c8 ignore next 3 */
+ visitRepetitionMandatoryWithSeparator(node2) {
+ }
+ /* c8 ignore next */
+ visitRepetitionWithSeparator(node2) {
+ }
+ /* c8 ignore next */
+ visitAlternation(node2) {
+ }
+ /* c8 ignore next */
+ visitTerminal(node2) {
+ }
+ /* c8 ignore next */
+ visitRule(node2) {
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/helpers.js
+ function isSequenceProd(prod) {
+ return prod instanceof Alternative || prod instanceof Option2 || prod instanceof Repetition || prod instanceof RepetitionMandatory || prod instanceof RepetitionMandatoryWithSeparator || prod instanceof RepetitionWithSeparator || prod instanceof Terminal || prod instanceof Rule;
+ }
+ function isOptionalProd(prod, alreadyVisited = []) {
+ const isDirectlyOptional = prod instanceof Option2 || prod instanceof Repetition || prod instanceof RepetitionWithSeparator;
+ if (isDirectlyOptional) {
+ return true;
+ }
+ if (prod instanceof Alternation) {
+ return some_default(prod.definition, (subProd) => {
+ return isOptionalProd(subProd, alreadyVisited);
+ });
+ } else if (prod instanceof NonTerminal && includes_default(alreadyVisited, prod)) {
+ return false;
+ } else if (prod instanceof AbstractProduction) {
+ if (prod instanceof NonTerminal) {
+ alreadyVisited.push(prod);
+ }
+ return every_default(prod.definition, (subProd) => {
+ return isOptionalProd(subProd, alreadyVisited);
+ });
+ } else {
+ return false;
+ }
+ }
+ function isBranchingProd(prod) {
+ return prod instanceof Alternation;
+ }
+ function getProductionDslName(prod) {
+ if (prod instanceof NonTerminal) {
+ return "SUBRULE";
+ } else if (prod instanceof Option2) {
+ return "OPTION";
+ } else if (prod instanceof Alternation) {
+ return "OR";
+ } else if (prod instanceof RepetitionMandatory) {
+ return "AT_LEAST_ONE";
+ } else if (prod instanceof RepetitionMandatoryWithSeparator) {
+ return "AT_LEAST_ONE_SEP";
+ } else if (prod instanceof RepetitionWithSeparator) {
+ return "MANY_SEP";
+ } else if (prod instanceof Repetition) {
+ return "MANY";
+ } else if (prod instanceof Terminal) {
+ return "CONSUME";
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ var init_helpers = __esm({
+ "../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/helpers.js"() {
+ "use strict";
+ init_lodash();
+ init_model();
+ __name(isSequenceProd, "isSequenceProd");
+ __name(isOptionalProd, "isOptionalProd");
+ __name(isBranchingProd, "isBranchingProd");
+ __name(getProductionDslName, "getProductionDslName");
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/api.js
+ var init_api3 = __esm({
+ "../../node_modules/.pnpm/@chevrotain+gast@11.0.3/node_modules/@chevrotain/gast/lib/src/api.js"() {
+ "use strict";
+ init_model();
+ init_visitor();
+ init_helpers();
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/rest.js
+ function restForRepetitionWithSeparator(repSepProd, currRest, prevRest) {
+ const repSepRest = [
+ new Option2({
+ definition: [
+ new Terminal({ terminalType: repSepProd.separator })
+ ].concat(repSepProd.definition)
+ })
+ ];
+ const fullRepSepRest = repSepRest.concat(currRest, prevRest);
+ return fullRepSepRest;
+ }
+ var RestWalker;
+ var init_rest = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/rest.js"() {
+ "use strict";
+ init_lodash();
+ init_api3();
+ RestWalker = class {
+ static {
+ __name(this, "RestWalker");
+ }
+ walk(prod, prevRest = []) {
+ forEach_default(prod.definition, (subProd, index) => {
+ const currRest = drop_default(prod.definition, index + 1);
+ if (subProd instanceof NonTerminal) {
+ this.walkProdRef(subProd, currRest, prevRest);
+ } else if (subProd instanceof Terminal) {
+ this.walkTerminal(subProd, currRest, prevRest);
+ } else if (subProd instanceof Alternative) {
+ this.walkFlat(subProd, currRest, prevRest);
+ } else if (subProd instanceof Option2) {
+ this.walkOption(subProd, currRest, prevRest);
+ } else if (subProd instanceof RepetitionMandatory) {
+ this.walkAtLeastOne(subProd, currRest, prevRest);
+ } else if (subProd instanceof RepetitionMandatoryWithSeparator) {
+ this.walkAtLeastOneSep(subProd, currRest, prevRest);
+ } else if (subProd instanceof RepetitionWithSeparator) {
+ this.walkManySep(subProd, currRest, prevRest);
+ } else if (subProd instanceof Repetition) {
+ this.walkMany(subProd, currRest, prevRest);
+ } else if (subProd instanceof Alternation) {
+ this.walkOr(subProd, currRest, prevRest);
+ } else {
+ throw Error("non exhaustive match");
}
- function i$d() {
+ });
+ }
+ walkTerminal(terminal, currRest, prevRest) {
+ }
+ walkProdRef(refProd, currRest, prevRest) {
+ }
+ walkFlat(flatProd, currRest, prevRest) {
+ const fullOrRest = currRest.concat(prevRest);
+ this.walk(flatProd, fullOrRest);
+ }
+ walkOption(optionProd, currRest, prevRest) {
+ const fullOrRest = currRest.concat(prevRest);
+ this.walk(optionProd, fullOrRest);
+ }
+ walkAtLeastOne(atLeastOneProd, currRest, prevRest) {
+ const fullAtLeastOneRest = [
+ new Option2({ definition: atLeastOneProd.definition })
+ ].concat(currRest, prevRest);
+ this.walk(atLeastOneProd, fullAtLeastOneRest);
+ }
+ walkAtLeastOneSep(atLeastOneSepProd, currRest, prevRest) {
+ const fullAtLeastOneSepRest = restForRepetitionWithSeparator(atLeastOneSepProd, currRest, prevRest);
+ this.walk(atLeastOneSepProd, fullAtLeastOneSepRest);
+ }
+ walkMany(manyProd, currRest, prevRest) {
+ const fullManyRest = [
+ new Option2({ definition: manyProd.definition })
+ ].concat(currRest, prevRest);
+ this.walk(manyProd, fullManyRest);
+ }
+ walkManySep(manySepProd, currRest, prevRest) {
+ const fullManySepRest = restForRepetitionWithSeparator(manySepProd, currRest, prevRest);
+ this.walk(manySepProd, fullManySepRest);
+ }
+ walkOr(orProd, currRest, prevRest) {
+ const fullOrRest = currRest.concat(prevRest);
+ forEach_default(orProd.definition, (alt) => {
+ const prodWrapper = new Alternative({ definition: [alt] });
+ this.walk(prodWrapper, fullOrRest);
+ });
+ }
+ };
+ __name(restForRepetitionWithSeparator, "restForRepetitionWithSeparator");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/first.js
+ function first(prod) {
+ if (prod instanceof NonTerminal) {
+ return first(prod.referencedRule);
+ } else if (prod instanceof Terminal) {
+ return firstForTerminal(prod);
+ } else if (isSequenceProd(prod)) {
+ return firstForSequence(prod);
+ } else if (isBranchingProd(prod)) {
+ return firstForBranching(prod);
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ function firstForSequence(prod) {
+ let firstSet = [];
+ const seq2 = prod.definition;
+ let nextSubProdIdx = 0;
+ let hasInnerProdsRemaining = seq2.length > nextSubProdIdx;
+ let currSubProd;
+ let isLastInnerProdOptional = true;
+ while (hasInnerProdsRemaining && isLastInnerProdOptional) {
+ currSubProd = seq2[nextSubProdIdx];
+ isLastInnerProdOptional = isOptionalProd(currSubProd);
+ firstSet = firstSet.concat(first(currSubProd));
+ nextSubProdIdx = nextSubProdIdx + 1;
+ hasInnerProdsRemaining = seq2.length > nextSubProdIdx;
+ }
+ return uniq_default(firstSet);
+ }
+ function firstForBranching(prod) {
+ const allAlternativesFirsts = map_default(prod.definition, (innerProd) => {
+ return first(innerProd);
+ });
+ return uniq_default(flatten_default(allAlternativesFirsts));
+ }
+ function firstForTerminal(terminal) {
+ return [terminal.terminalType];
+ }
+ var init_first2 = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/first.js"() {
+ "use strict";
+ init_lodash();
+ init_api3();
+ __name(first, "first");
+ __name(firstForSequence, "firstForSequence");
+ __name(firstForBranching, "firstForBranching");
+ __name(firstForTerminal, "firstForTerminal");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/constants.js
+ var IN;
+ var init_constants2 = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/constants.js"() {
+ "use strict";
+ IN = "_~IN~_";
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/follow.js
+ function computeAllProdsFollows(topProductions) {
+ const reSyncFollows = {};
+ forEach_default(topProductions, (topProd) => {
+ const currRefsFollow = new ResyncFollowsWalker(topProd).startWalking();
+ assign_default(reSyncFollows, currRefsFollow);
+ });
+ return reSyncFollows;
+ }
+ function buildBetweenProdsFollowPrefix(inner2, occurenceInParent) {
+ return inner2.name + occurenceInParent + IN;
+ }
+ var ResyncFollowsWalker;
+ var init_follow = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/follow.js"() {
+ "use strict";
+ init_rest();
+ init_first2();
+ init_lodash();
+ init_constants2();
+ init_api3();
+ ResyncFollowsWalker = class extends RestWalker {
+ static {
+ __name(this, "ResyncFollowsWalker");
+ }
+ constructor(topProd) {
+ super();
+ this.topProd = topProd;
+ this.follows = {};
+ }
+ startWalking() {
+ this.walk(this.topProd);
+ return this.follows;
+ }
+ walkTerminal(terminal, currRest, prevRest) {
+ }
+ walkProdRef(refProd, currRest, prevRest) {
+ const followName = buildBetweenProdsFollowPrefix(refProd.referencedRule, refProd.idx) + this.topProd.name;
+ const fullRest = currRest.concat(prevRest);
+ const restProd = new Alternative({ definition: fullRest });
+ const t_in_topProd_follows = first(restProd);
+ this.follows[followName] = t_in_topProd_follows;
+ }
+ };
+ __name(computeAllProdsFollows, "computeAllProdsFollows");
+ __name(buildBetweenProdsFollowPrefix, "buildBetweenProdsFollowPrefix");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/reg_exp_parser.js
+ function getRegExpAst(regExp) {
+ const regExpStr = regExp.toString();
+ if (regExpAstCache.hasOwnProperty(regExpStr)) {
+ return regExpAstCache[regExpStr];
+ } else {
+ const regExpAst = regExpParser.pattern(regExpStr);
+ regExpAstCache[regExpStr] = regExpAst;
+ return regExpAst;
+ }
+ }
+ function clearRegExpParserCache() {
+ regExpAstCache = {};
+ }
+ var regExpAstCache, regExpParser;
+ var init_reg_exp_parser = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/reg_exp_parser.js"() {
+ "use strict";
+ init_api();
+ regExpAstCache = {};
+ regExpParser = new RegExpParser();
+ __name(getRegExpAst, "getRegExpAst");
+ __name(clearRegExpParserCache, "clearRegExpParserCache");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/reg_exp.js
+ function getOptimizedStartCodesIndices(regExp, ensureOptimizations = false) {
+ try {
+ const ast = getRegExpAst(regExp);
+ const firstChars = firstCharOptimizedIndices(ast.value, {}, ast.flags.ignoreCase);
+ return firstChars;
+ } catch (e3) {
+ if (e3.message === complementErrorMessage) {
+ if (ensureOptimizations) {
+ PRINT_WARNING(`${failedOptimizationPrefixMsg} Unable to optimize: < ${regExp.toString()} >
+ Complement Sets cannot be automatically optimized.
+ This will disable the lexer's first char optimizations.
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);
+ }
+ } else {
+ let msgSuffix = "";
+ if (ensureOptimizations) {
+ msgSuffix = "\n This will disable the lexer's first char optimizations.\n See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.";
+ }
+ PRINT_ERROR(`${failedOptimizationPrefixMsg}
+ Failed parsing: < ${regExp.toString()} >
+ Using the @chevrotain/regexp-to-ast library
+ Please open an issue at: https://github.com/chevrotain/chevrotain/issues` + msgSuffix);
+ }
+ }
+ return [];
+ }
+ function firstCharOptimizedIndices(ast, result, ignoreCase) {
+ switch (ast.type) {
+ case "Disjunction":
+ for (let i2 = 0; i2 < ast.value.length; i2++) {
+ firstCharOptimizedIndices(ast.value[i2], result, ignoreCase);
+ }
+ break;
+ case "Alternative":
+ const terms = ast.value;
+ for (let i2 = 0; i2 < terms.length; i2++) {
+ const term = terms[i2];
+ switch (term.type) {
+ case "EndAnchor":
+ case "GroupBackReference":
+ case "Lookahead":
+ case "NegativeLookahead":
+ case "StartAnchor":
+ case "WordBoundary":
+ case "NonWordBoundary":
+ continue;
+ }
+ const atom2 = term;
+ switch (atom2.type) {
+ case "Character":
+ addOptimizedIdxToResult(atom2.value, result, ignoreCase);
+ break;
+ case "Set":
+ if (atom2.complement === true) {
+ throw Error(complementErrorMessage);
+ }
+ forEach_default(atom2.value, (code) => {
+ if (typeof code === "number") {
+ addOptimizedIdxToResult(code, result, ignoreCase);
+ } else {
+ const range3 = code;
+ if (ignoreCase === true) {
+ for (let rangeCode = range3.from; rangeCode <= range3.to; rangeCode++) {
+ addOptimizedIdxToResult(rangeCode, result, ignoreCase);
+ }
+ } else {
+ for (let rangeCode = range3.from; rangeCode <= range3.to && rangeCode < minOptimizationVal; rangeCode++) {
+ addOptimizedIdxToResult(rangeCode, result, ignoreCase);
+ }
+ if (range3.to >= minOptimizationVal) {
+ const minUnOptVal = range3.from >= minOptimizationVal ? range3.from : minOptimizationVal;
+ const maxUnOptVal = range3.to;
+ const minOptIdx = charCodeToOptimizedIndex(minUnOptVal);
+ const maxOptIdx = charCodeToOptimizedIndex(maxUnOptVal);
+ for (let currOptIdx = minOptIdx; currOptIdx <= maxOptIdx; currOptIdx++) {
+ result[currOptIdx] = currOptIdx;
+ }
+ }
+ }
+ }
+ });
+ break;
+ case "Group":
+ firstCharOptimizedIndices(atom2.value, result, ignoreCase);
+ break;
+ default:
+ throw Error("Non Exhaustive Match");
+ }
+ const isOptionalQuantifier = atom2.quantifier !== void 0 && atom2.quantifier.atLeast === 0;
+ if (
+ // A group may be optional due to empty contents /(?:)/
+ // or if everything inside it is optional /((a)?)/
+ atom2.type === "Group" && isWholeOptional(atom2) === false || // If this term is not a group it may only be optional if it has an optional quantifier
+ atom2.type !== "Group" && isOptionalQuantifier === false
+ ) {
+ break;
+ }
+ }
+ break;
+ default:
+ throw Error("non exhaustive match!");
+ }
+ return values_default(result);
+ }
+ function addOptimizedIdxToResult(code, result, ignoreCase) {
+ const optimizedCharIdx = charCodeToOptimizedIndex(code);
+ result[optimizedCharIdx] = optimizedCharIdx;
+ if (ignoreCase === true) {
+ handleIgnoreCase(code, result);
+ }
+ }
+ function handleIgnoreCase(code, result) {
+ const char2 = String.fromCharCode(code);
+ const upperChar = char2.toUpperCase();
+ if (upperChar !== char2) {
+ const optimizedCharIdx = charCodeToOptimizedIndex(upperChar.charCodeAt(0));
+ result[optimizedCharIdx] = optimizedCharIdx;
+ } else {
+ const lowerChar = char2.toLowerCase();
+ if (lowerChar !== char2) {
+ const optimizedCharIdx = charCodeToOptimizedIndex(lowerChar.charCodeAt(0));
+ result[optimizedCharIdx] = optimizedCharIdx;
+ }
+ }
+ }
+ function findCode(setNode, targetCharCodes) {
+ return find_default(setNode.value, (codeOrRange) => {
+ if (typeof codeOrRange === "number") {
+ return includes_default(targetCharCodes, codeOrRange);
+ } else {
+ const range3 = codeOrRange;
+ return find_default(targetCharCodes, (targetCode) => range3.from <= targetCode && targetCode <= range3.to) !== void 0;
+ }
+ });
+ }
+ function isWholeOptional(ast) {
+ const quantifier = ast.quantifier;
+ if (quantifier && quantifier.atLeast === 0) {
+ return true;
+ }
+ if (!ast.value) {
+ return false;
+ }
+ return isArray_default(ast.value) ? every_default(ast.value, isWholeOptional) : isWholeOptional(ast.value);
+ }
+ function canMatchCharCode(charCodes, pattern) {
+ if (pattern instanceof RegExp) {
+ const ast = getRegExpAst(pattern);
+ const charCodeFinder = new CharCodeFinder(charCodes);
+ charCodeFinder.visit(ast);
+ return charCodeFinder.found;
+ } else {
+ return find_default(pattern, (char2) => {
+ return includes_default(charCodes, char2.charCodeAt(0));
+ }) !== void 0;
+ }
+ }
+ var complementErrorMessage, failedOptimizationPrefixMsg, CharCodeFinder;
+ var init_reg_exp = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/reg_exp.js"() {
+ "use strict";
+ init_api();
+ init_lodash();
+ init_api2();
+ init_reg_exp_parser();
+ init_lexer();
+ complementErrorMessage = "Complement Sets are not supported for first char optimization";
+ failedOptimizationPrefixMsg = 'Unable to use "first char" lexer optimizations:\n';
+ __name(getOptimizedStartCodesIndices, "getOptimizedStartCodesIndices");
+ __name(firstCharOptimizedIndices, "firstCharOptimizedIndices");
+ __name(addOptimizedIdxToResult, "addOptimizedIdxToResult");
+ __name(handleIgnoreCase, "handleIgnoreCase");
+ __name(findCode, "findCode");
+ __name(isWholeOptional, "isWholeOptional");
+ CharCodeFinder = class extends BaseRegExpVisitor {
+ static {
+ __name(this, "CharCodeFinder");
+ }
+ constructor(targetCharCodes) {
+ super();
+ this.targetCharCodes = targetCharCodes;
+ this.found = false;
+ }
+ visitChildren(node2) {
+ if (this.found === true) {
+ return;
+ }
+ switch (node2.type) {
+ case "Lookahead":
+ this.visitLookahead(node2);
+ return;
+ case "NegativeLookahead":
+ this.visitNegativeLookahead(node2);
+ return;
+ }
+ super.visitChildren(node2);
+ }
+ visitCharacter(node2) {
+ if (includes_default(this.targetCharCodes, node2.value)) {
+ this.found = true;
+ }
+ }
+ visitSet(node2) {
+ if (node2.complement) {
+ if (findCode(node2, this.targetCharCodes) === void 0) {
+ this.found = true;
}
- function l$d() {
+ } else {
+ if (findCode(node2, this.targetCharCodes) !== void 0) {
+ this.found = true;
}
- function o$d() {
+ }
+ }
+ };
+ __name(canMatchCharCode, "canMatchCharCode");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer.js
+ function analyzeTokenTypes(tokenTypes, options3) {
+ options3 = defaults_default(options3, {
+ useSticky: SUPPORT_STICKY,
+ debug: false,
+ safeMode: false,
+ positionTracking: "full",
+ lineTerminatorCharacters: ["\r", "\n"],
+ tracer: /* @__PURE__ */ __name((msg, action) => action(), "tracer")
+ });
+ const tracer = options3.tracer;
+ tracer("initCharCodeToOptimizedIndexMap", () => {
+ initCharCodeToOptimizedIndexMap();
+ });
+ let onlyRelevantTypes;
+ tracer("Reject Lexer.NA", () => {
+ onlyRelevantTypes = reject_default(tokenTypes, (currType) => {
+ return currType[PATTERN] === Lexer2.NA;
+ });
+ });
+ let hasCustom = false;
+ let allTransformedPatterns;
+ tracer("Transform Patterns", () => {
+ hasCustom = false;
+ allTransformedPatterns = map_default(onlyRelevantTypes, (currType) => {
+ const currPattern = currType[PATTERN];
+ if (isRegExp_default(currPattern)) {
+ const regExpSource = currPattern.source;
+ if (regExpSource.length === 1 && // only these regExp meta characters which can appear in a length one regExp
+ regExpSource !== "^" && regExpSource !== "$" && regExpSource !== "." && !currPattern.ignoreCase) {
+ return regExpSource;
+ } else if (regExpSource.length === 2 && regExpSource[0] === "\\" && // not a meta character
+ !includes_default([
+ "d",
+ "D",
+ "s",
+ "S",
+ "t",
+ "r",
+ "n",
+ "t",
+ "0",
+ "c",
+ "b",
+ "B",
+ "f",
+ "v",
+ "w",
+ "W"
+ ], regExpSource[1])) {
+ return regExpSource[1];
+ } else {
+ return options3.useSticky ? addStickyFlag(currPattern) : addStartOfInput(currPattern);
+ }
+ } else if (isFunction_default(currPattern)) {
+ hasCustom = true;
+ return { exec: currPattern };
+ } else if (typeof currPattern === "object") {
+ hasCustom = true;
+ return currPattern;
+ } else if (typeof currPattern === "string") {
+ if (currPattern.length === 1) {
+ return currPattern;
+ } else {
+ const escapedRegExpString = currPattern.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
+ const wrappedRegExp = new RegExp(escapedRegExpString);
+ return options3.useSticky ? addStickyFlag(wrappedRegExp) : addStartOfInput(wrappedRegExp);
+ }
+ } else {
+ throw Error("non exhaustive match");
+ }
+ });
+ });
+ let patternIdxToType;
+ let patternIdxToGroup;
+ let patternIdxToLongerAltIdxArr;
+ let patternIdxToPushMode;
+ let patternIdxToPopMode;
+ tracer("misc mapping", () => {
+ patternIdxToType = map_default(onlyRelevantTypes, (currType) => currType.tokenTypeIdx);
+ patternIdxToGroup = map_default(onlyRelevantTypes, (clazz) => {
+ const groupName = clazz.GROUP;
+ if (groupName === Lexer2.SKIPPED) {
+ return void 0;
+ } else if (isString_default(groupName)) {
+ return groupName;
+ } else if (isUndefined_default(groupName)) {
+ return false;
+ } else {
+ throw Error("non exhaustive match");
+ }
+ });
+ patternIdxToLongerAltIdxArr = map_default(onlyRelevantTypes, (clazz) => {
+ const longerAltType = clazz.LONGER_ALT;
+ if (longerAltType) {
+ const longerAltIdxArr = isArray_default(longerAltType) ? map_default(longerAltType, (type3) => indexOf_default(onlyRelevantTypes, type3)) : [indexOf_default(onlyRelevantTypes, longerAltType)];
+ return longerAltIdxArr;
+ }
+ });
+ patternIdxToPushMode = map_default(onlyRelevantTypes, (clazz) => clazz.PUSH_MODE);
+ patternIdxToPopMode = map_default(onlyRelevantTypes, (clazz) => has_default(clazz, "POP_MODE"));
+ });
+ let patternIdxToCanLineTerminator;
+ tracer("Line Terminator Handling", () => {
+ const lineTerminatorCharCodes = getCharCodes(options3.lineTerminatorCharacters);
+ patternIdxToCanLineTerminator = map_default(onlyRelevantTypes, (tokType) => false);
+ if (options3.positionTracking !== "onlyOffset") {
+ patternIdxToCanLineTerminator = map_default(onlyRelevantTypes, (tokType) => {
+ if (has_default(tokType, "LINE_BREAKS")) {
+ return !!tokType.LINE_BREAKS;
+ } else {
+ return checkLineBreaksIssues(tokType, lineTerminatorCharCodes) === false && canMatchCharCode(lineTerminatorCharCodes, tokType.PATTERN);
+ }
+ });
+ }
+ });
+ let patternIdxToIsCustom;
+ let patternIdxToShort;
+ let emptyGroups;
+ let patternIdxToConfig;
+ tracer("Misc Mapping #2", () => {
+ patternIdxToIsCustom = map_default(onlyRelevantTypes, isCustomPattern);
+ patternIdxToShort = map_default(allTransformedPatterns, isShortPattern);
+ emptyGroups = reduce_default(onlyRelevantTypes, (acc, clazz) => {
+ const groupName = clazz.GROUP;
+ if (isString_default(groupName) && !(groupName === Lexer2.SKIPPED)) {
+ acc[groupName] = [];
+ }
+ return acc;
+ }, {});
+ patternIdxToConfig = map_default(allTransformedPatterns, (x5, idx) => {
+ return {
+ pattern: allTransformedPatterns[idx],
+ longerAlt: patternIdxToLongerAltIdxArr[idx],
+ canLineTerminator: patternIdxToCanLineTerminator[idx],
+ isCustom: patternIdxToIsCustom[idx],
+ short: patternIdxToShort[idx],
+ group: patternIdxToGroup[idx],
+ push: patternIdxToPushMode[idx],
+ pop: patternIdxToPopMode[idx],
+ tokenTypeIdx: patternIdxToType[idx],
+ tokenType: onlyRelevantTypes[idx]
+ };
+ });
+ });
+ let canBeOptimized = true;
+ let charCodeToPatternIdxToConfig = [];
+ if (!options3.safeMode) {
+ tracer("First Char Optimization", () => {
+ charCodeToPatternIdxToConfig = reduce_default(onlyRelevantTypes, (result, currTokType, idx) => {
+ if (typeof currTokType.PATTERN === "string") {
+ const charCode = currTokType.PATTERN.charCodeAt(0);
+ const optimizedIdx = charCodeToOptimizedIndex(charCode);
+ addToMapOfArrays(result, optimizedIdx, patternIdxToConfig[idx]);
+ } else if (isArray_default(currTokType.START_CHARS_HINT)) {
+ let lastOptimizedIdx;
+ forEach_default(currTokType.START_CHARS_HINT, (charOrInt) => {
+ const charCode = typeof charOrInt === "string" ? charOrInt.charCodeAt(0) : charOrInt;
+ const currOptimizedIdx = charCodeToOptimizedIndex(charCode);
+ if (lastOptimizedIdx !== currOptimizedIdx) {
+ lastOptimizedIdx = currOptimizedIdx;
+ addToMapOfArrays(result, currOptimizedIdx, patternIdxToConfig[idx]);
+ }
+ });
+ } else if (isRegExp_default(currTokType.PATTERN)) {
+ if (currTokType.PATTERN.unicode) {
+ canBeOptimized = false;
+ if (options3.ensureOptimizations) {
+ PRINT_ERROR(`${failedOptimizationPrefixMsg} Unable to analyze < ${currTokType.PATTERN.toString()} > pattern.
+ The regexp unicode flag is not currently supported by the regexp-to-ast library.
+ This will disable the lexer's first char optimizations.
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);
+ }
+ } else {
+ const optimizedCodes = getOptimizedStartCodesIndices(currTokType.PATTERN, options3.ensureOptimizations);
+ if (isEmpty_default(optimizedCodes)) {
+ canBeOptimized = false;
+ }
+ forEach_default(optimizedCodes, (code) => {
+ addToMapOfArrays(result, code, patternIdxToConfig[idx]);
+ });
}
- function r$d() {
+ } else {
+ if (options3.ensureOptimizations) {
+ PRINT_ERROR(`${failedOptimizationPrefixMsg} TokenType: <${currTokType.name}> is using a custom token pattern without providing parameter.
+ This will disable the lexer's first char optimizations.
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`);
}
- function u$d() {
- }
- function x$d() {
- }
- function A$d() {
- }
- function D$d() {
- }
- function G$d() {
- }
- function J$d() {
- }
- function M$d() {
- }
- function P$d() {
- }
- function S$d() {
- }
- function V$d() {
- }
- function Y$d() {
- }
- function _$d() {
- }
- function c_d() {
- }
- function f_d() {
- }
- function i_d() {
- }
- function l_d() {
- }
- function o_d() {
- }
- function r_d() {
- }
- function u_d() {
- }
- function x_d() {
- }
- function A_d() {
- }
- function D_d() {
- }
- function G_d() {
- }
- function J_d() {
+ canBeOptimized = false;
+ }
+ return result;
+ }, []);
+ });
+ }
+ return {
+ emptyGroups,
+ patternIdxToConfig,
+ charCodeToPatternIdxToConfig,
+ hasCustom,
+ canBeOptimized
+ };
+ }
+ function validatePatterns(tokenTypes, validModesNames) {
+ let errors = [];
+ const missingResult = findMissingPatterns(tokenTypes);
+ errors = errors.concat(missingResult.errors);
+ const invalidResult = findInvalidPatterns(missingResult.valid);
+ const validTokenTypes = invalidResult.valid;
+ errors = errors.concat(invalidResult.errors);
+ errors = errors.concat(validateRegExpPattern(validTokenTypes));
+ errors = errors.concat(findInvalidGroupType(validTokenTypes));
+ errors = errors.concat(findModesThatDoNotExist(validTokenTypes, validModesNames));
+ errors = errors.concat(findUnreachablePatterns(validTokenTypes));
+ return errors;
+ }
+ function validateRegExpPattern(tokenTypes) {
+ let errors = [];
+ const withRegExpPatterns = filter_default3(tokenTypes, (currTokType) => isRegExp_default(currTokType[PATTERN]));
+ errors = errors.concat(findEndOfInputAnchor(withRegExpPatterns));
+ errors = errors.concat(findStartOfInputAnchor(withRegExpPatterns));
+ errors = errors.concat(findUnsupportedFlags(withRegExpPatterns));
+ errors = errors.concat(findDuplicatePatterns(withRegExpPatterns));
+ errors = errors.concat(findEmptyMatchRegExps(withRegExpPatterns));
+ return errors;
+ }
+ function findMissingPatterns(tokenTypes) {
+ const tokenTypesWithMissingPattern = filter_default3(tokenTypes, (currType) => {
+ return !has_default(currType, PATTERN);
+ });
+ const errors = map_default(tokenTypesWithMissingPattern, (currType) => {
+ return {
+ message: "Token Type: ->" + currType.name + "<- missing static 'PATTERN' property",
+ type: LexerDefinitionErrorType.MISSING_PATTERN,
+ tokenTypes: [currType]
+ };
+ });
+ const valid2 = difference_default(tokenTypes, tokenTypesWithMissingPattern);
+ return { errors, valid: valid2 };
+ }
+ function findInvalidPatterns(tokenTypes) {
+ const tokenTypesWithInvalidPattern = filter_default3(tokenTypes, (currType) => {
+ const pattern = currType[PATTERN];
+ return !isRegExp_default(pattern) && !isFunction_default(pattern) && !has_default(pattern, "exec") && !isString_default(pattern);
+ });
+ const errors = map_default(tokenTypesWithInvalidPattern, (currType) => {
+ return {
+ message: "Token Type: ->" + currType.name + "<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",
+ type: LexerDefinitionErrorType.INVALID_PATTERN,
+ tokenTypes: [currType]
+ };
+ });
+ const valid2 = difference_default(tokenTypes, tokenTypesWithInvalidPattern);
+ return { errors, valid: valid2 };
+ }
+ function findEndOfInputAnchor(tokenTypes) {
+ class EndAnchorFinder extends BaseRegExpVisitor {
+ static {
+ __name(this, "EndAnchorFinder");
+ }
+ constructor() {
+ super(...arguments);
+ this.found = false;
+ }
+ visitEndAnchor(node2) {
+ this.found = true;
+ }
+ }
+ const invalidRegex = filter_default3(tokenTypes, (currType) => {
+ const pattern = currType.PATTERN;
+ try {
+ const regexpAst = getRegExpAst(pattern);
+ const endAnchorVisitor = new EndAnchorFinder();
+ endAnchorVisitor.visit(regexpAst);
+ return endAnchorVisitor.found;
+ } catch (e3) {
+ return end_of_input.test(pattern.source);
+ }
+ });
+ const errors = map_default(invalidRegex, (currType) => {
+ return {
+ message: "Unexpected RegExp Anchor Error:\n Token Type: ->" + currType.name + "<- static 'PATTERN' cannot contain end of input anchor '$'\n See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",
+ type: LexerDefinitionErrorType.EOI_ANCHOR_FOUND,
+ tokenTypes: [currType]
+ };
+ });
+ return errors;
+ }
+ function findEmptyMatchRegExps(tokenTypes) {
+ const matchesEmptyString = filter_default3(tokenTypes, (currType) => {
+ const pattern = currType.PATTERN;
+ return pattern.test("");
+ });
+ const errors = map_default(matchesEmptyString, (currType) => {
+ return {
+ message: "Token Type: ->" + currType.name + "<- static 'PATTERN' must not match an empty string",
+ type: LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,
+ tokenTypes: [currType]
+ };
+ });
+ return errors;
+ }
+ function findStartOfInputAnchor(tokenTypes) {
+ class StartAnchorFinder extends BaseRegExpVisitor {
+ static {
+ __name(this, "StartAnchorFinder");
+ }
+ constructor() {
+ super(...arguments);
+ this.found = false;
+ }
+ visitStartAnchor(node2) {
+ this.found = true;
+ }
+ }
+ const invalidRegex = filter_default3(tokenTypes, (currType) => {
+ const pattern = currType.PATTERN;
+ try {
+ const regexpAst = getRegExpAst(pattern);
+ const startAnchorVisitor = new StartAnchorFinder();
+ startAnchorVisitor.visit(regexpAst);
+ return startAnchorVisitor.found;
+ } catch (e3) {
+ return start_of_input.test(pattern.source);
+ }
+ });
+ const errors = map_default(invalidRegex, (currType) => {
+ return {
+ message: "Unexpected RegExp Anchor Error:\n Token Type: ->" + currType.name + "<- static 'PATTERN' cannot contain start of input anchor '^'\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",
+ type: LexerDefinitionErrorType.SOI_ANCHOR_FOUND,
+ tokenTypes: [currType]
+ };
+ });
+ return errors;
+ }
+ function findUnsupportedFlags(tokenTypes) {
+ const invalidFlags = filter_default3(tokenTypes, (currType) => {
+ const pattern = currType[PATTERN];
+ return pattern instanceof RegExp && (pattern.multiline || pattern.global);
+ });
+ const errors = map_default(invalidFlags, (currType) => {
+ return {
+ message: "Token Type: ->" + currType.name + "<- static 'PATTERN' may NOT contain global('g') or multiline('m')",
+ type: LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,
+ tokenTypes: [currType]
+ };
+ });
+ return errors;
+ }
+ function findDuplicatePatterns(tokenTypes) {
+ const found = [];
+ let identicalPatterns = map_default(tokenTypes, (outerType) => {
+ return reduce_default(tokenTypes, (result, innerType) => {
+ if (outerType.PATTERN.source === innerType.PATTERN.source && !includes_default(found, innerType) && innerType.PATTERN !== Lexer2.NA) {
+ found.push(innerType);
+ result.push(innerType);
+ return result;
+ }
+ return result;
+ }, []);
+ });
+ identicalPatterns = compact_default(identicalPatterns);
+ const duplicatePatterns = filter_default3(identicalPatterns, (currIdenticalSet) => {
+ return currIdenticalSet.length > 1;
+ });
+ const errors = map_default(duplicatePatterns, (setOfIdentical) => {
+ const tokenTypeNames = map_default(setOfIdentical, (currType) => {
+ return currType.name;
+ });
+ const dupPatternSrc = head_default(setOfIdentical).PATTERN;
+ return {
+ message: `The same RegExp pattern ->${dupPatternSrc}<-has been used in all of the following Token Types: ${tokenTypeNames.join(", ")} <-`,
+ type: LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,
+ tokenTypes: setOfIdentical
+ };
+ });
+ return errors;
+ }
+ function findInvalidGroupType(tokenTypes) {
+ const invalidTypes = filter_default3(tokenTypes, (clazz) => {
+ if (!has_default(clazz, "GROUP")) {
+ return false;
+ }
+ const group2 = clazz.GROUP;
+ return group2 !== Lexer2.SKIPPED && group2 !== Lexer2.NA && !isString_default(group2);
+ });
+ const errors = map_default(invalidTypes, (currType) => {
+ return {
+ message: "Token Type: ->" + currType.name + "<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",
+ type: LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,
+ tokenTypes: [currType]
+ };
+ });
+ return errors;
+ }
+ function findModesThatDoNotExist(tokenTypes, validModes) {
+ const invalidModes = filter_default3(tokenTypes, (clazz) => {
+ return clazz.PUSH_MODE !== void 0 && !includes_default(validModes, clazz.PUSH_MODE);
+ });
+ const errors = map_default(invalidModes, (tokType) => {
+ const msg = `Token Type: ->${tokType.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${tokType.PUSH_MODE}<-which does not exist`;
+ return {
+ message: msg,
+ type: LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,
+ tokenTypes: [tokType]
+ };
+ });
+ return errors;
+ }
+ function findUnreachablePatterns(tokenTypes) {
+ const errors = [];
+ const canBeTested = reduce_default(tokenTypes, (result, tokType, idx) => {
+ const pattern = tokType.PATTERN;
+ if (pattern === Lexer2.NA) {
+ return result;
+ }
+ if (isString_default(pattern)) {
+ result.push({ str: pattern, idx, tokenType: tokType });
+ } else if (isRegExp_default(pattern) && noMetaChar(pattern)) {
+ result.push({ str: pattern.source, idx, tokenType: tokType });
+ }
+ return result;
+ }, []);
+ forEach_default(tokenTypes, (tokType, testIdx) => {
+ forEach_default(canBeTested, ({ str: str2, idx, tokenType }) => {
+ if (testIdx < idx && testTokenType(str2, tokType.PATTERN)) {
+ const msg = `Token: ->${tokenType.name}<- can never be matched.
+Because it appears AFTER the Token Type ->${tokType.name}<-in the lexer's definition.
+See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;
+ errors.push({
+ message: msg,
+ type: LexerDefinitionErrorType.UNREACHABLE_PATTERN,
+ tokenTypes: [tokType, tokenType]
+ });
+ }
+ });
+ });
+ return errors;
+ }
+ function testTokenType(str2, pattern) {
+ if (isRegExp_default(pattern)) {
+ const regExpArray = pattern.exec(str2);
+ return regExpArray !== null && regExpArray.index === 0;
+ } else if (isFunction_default(pattern)) {
+ return pattern(str2, 0, [], {});
+ } else if (has_default(pattern, "exec")) {
+ return pattern.exec(str2, 0, [], {});
+ } else if (typeof pattern === "string") {
+ return pattern === str2;
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ function noMetaChar(regExp) {
+ const metaChars = [
+ ".",
+ "\\",
+ "[",
+ "]",
+ "|",
+ "^",
+ "$",
+ "(",
+ ")",
+ "?",
+ "*",
+ "+",
+ "{"
+ ];
+ return find_default(metaChars, (char2) => regExp.source.indexOf(char2) !== -1) === void 0;
+ }
+ function addStartOfInput(pattern) {
+ const flags = pattern.ignoreCase ? "i" : "";
+ return new RegExp(`^(?:${pattern.source})`, flags);
+ }
+ function addStickyFlag(pattern) {
+ const flags = pattern.ignoreCase ? "iy" : "y";
+ return new RegExp(`${pattern.source}`, flags);
+ }
+ function performRuntimeChecks(lexerDefinition, trackLines, lineTerminatorCharacters) {
+ const errors = [];
+ if (!has_default(lexerDefinition, DEFAULT_MODE)) {
+ errors.push({
+ message: "A MultiMode Lexer cannot be initialized without a <" + DEFAULT_MODE + "> property in its definition\n",
+ type: LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE
+ });
+ }
+ if (!has_default(lexerDefinition, MODES)) {
+ errors.push({
+ message: "A MultiMode Lexer cannot be initialized without a <" + MODES + "> property in its definition\n",
+ type: LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY
+ });
+ }
+ if (has_default(lexerDefinition, MODES) && has_default(lexerDefinition, DEFAULT_MODE) && !has_default(lexerDefinition.modes, lexerDefinition.defaultMode)) {
+ errors.push({
+ message: `A MultiMode Lexer cannot be initialized with a ${DEFAULT_MODE}: <${lexerDefinition.defaultMode}>which does not exist
+`,
+ type: LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST
+ });
+ }
+ if (has_default(lexerDefinition, MODES)) {
+ forEach_default(lexerDefinition.modes, (currModeValue, currModeName) => {
+ forEach_default(currModeValue, (currTokType, currIdx) => {
+ if (isUndefined_default(currTokType)) {
+ errors.push({
+ message: `A Lexer cannot be initialized using an undefined Token Type. Mode:<${currModeName}> at index: <${currIdx}>
+`,
+ type: LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED
+ });
+ } else if (has_default(currTokType, "LONGER_ALT")) {
+ const longerAlt = isArray_default(currTokType.LONGER_ALT) ? currTokType.LONGER_ALT : [currTokType.LONGER_ALT];
+ forEach_default(longerAlt, (currLongerAlt) => {
+ if (!isUndefined_default(currLongerAlt) && !includes_default(currModeValue, currLongerAlt)) {
+ errors.push({
+ message: `A MultiMode Lexer cannot be initialized with a longer_alt <${currLongerAlt.name}> on token <${currTokType.name}> outside of mode <${currModeName}>
+`,
+ type: LexerDefinitionErrorType.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE
+ });
+ }
+ });
+ }
+ });
+ });
+ }
+ return errors;
+ }
+ function performWarningRuntimeChecks(lexerDefinition, trackLines, lineTerminatorCharacters) {
+ const warnings3 = [];
+ let hasAnyLineBreak = false;
+ const allTokenTypes = compact_default(flatten_default(values_default(lexerDefinition.modes)));
+ const concreteTokenTypes = reject_default(allTokenTypes, (currType) => currType[PATTERN] === Lexer2.NA);
+ const terminatorCharCodes = getCharCodes(lineTerminatorCharacters);
+ if (trackLines) {
+ forEach_default(concreteTokenTypes, (tokType) => {
+ const currIssue = checkLineBreaksIssues(tokType, terminatorCharCodes);
+ if (currIssue !== false) {
+ const message = buildLineBreakIssueMessage(tokType, currIssue);
+ const warningDescriptor = {
+ message,
+ type: currIssue.issue,
+ tokenType: tokType
+ };
+ warnings3.push(warningDescriptor);
+ } else {
+ if (has_default(tokType, "LINE_BREAKS")) {
+ if (tokType.LINE_BREAKS === true) {
+ hasAnyLineBreak = true;
}
- function M_d() {
+ } else {
+ if (canMatchCharCode(terminatorCharCodes, tokType.PATTERN)) {
+ hasAnyLineBreak = true;
}
- function P_d() {
+ }
+ }
+ });
+ }
+ if (trackLines && !hasAnyLineBreak) {
+ warnings3.push({
+ message: "Warning: No LINE_BREAKS Found.\n This Lexer has been defined to track line and column information,\n But none of the Token Types can be identified as matching a line terminator.\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n for details.",
+ type: LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS
+ });
+ }
+ return warnings3;
+ }
+ function cloneEmptyGroups(emptyGroups) {
+ const clonedResult = {};
+ const groupKeys = keys_default(emptyGroups);
+ forEach_default(groupKeys, (currKey) => {
+ const currGroupValue = emptyGroups[currKey];
+ if (isArray_default(currGroupValue)) {
+ clonedResult[currKey] = [];
+ } else {
+ throw Error("non exhaustive match");
+ }
+ });
+ return clonedResult;
+ }
+ function isCustomPattern(tokenType) {
+ const pattern = tokenType.PATTERN;
+ if (isRegExp_default(pattern)) {
+ return false;
+ } else if (isFunction_default(pattern)) {
+ return true;
+ } else if (has_default(pattern, "exec")) {
+ return true;
+ } else if (isString_default(pattern)) {
+ return false;
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ function isShortPattern(pattern) {
+ if (isString_default(pattern) && pattern.length === 1) {
+ return pattern.charCodeAt(0);
+ } else {
+ return false;
+ }
+ }
+ function checkLineBreaksIssues(tokType, lineTerminatorCharCodes) {
+ if (has_default(tokType, "LINE_BREAKS")) {
+ return false;
+ } else {
+ if (isRegExp_default(tokType.PATTERN)) {
+ try {
+ canMatchCharCode(lineTerminatorCharCodes, tokType.PATTERN);
+ } catch (e3) {
+ return {
+ issue: LexerDefinitionErrorType.IDENTIFY_TERMINATOR,
+ errMsg: e3.message
+ };
+ }
+ return false;
+ } else if (isString_default(tokType.PATTERN)) {
+ return false;
+ } else if (isCustomPattern(tokType)) {
+ return { issue: LexerDefinitionErrorType.CUSTOM_LINE_BREAK };
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ }
+ function buildLineBreakIssueMessage(tokType, details) {
+ if (details.issue === LexerDefinitionErrorType.IDENTIFY_TERMINATOR) {
+ return `Warning: unable to identify line terminator usage in pattern.
+ The problem is in the <${tokType.name}> Token Type
+ Root cause: ${details.errMsg}.
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;
+ } else if (details.issue === LexerDefinitionErrorType.CUSTOM_LINE_BREAK) {
+ return `Warning: A Custom Token Pattern should specify the option.
+ The problem is in the <${tokType.name}> Token Type
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ function getCharCodes(charsOrCodes) {
+ const charCodes = map_default(charsOrCodes, (numOrString) => {
+ if (isString_default(numOrString)) {
+ return numOrString.charCodeAt(0);
+ } else {
+ return numOrString;
+ }
+ });
+ return charCodes;
+ }
+ function addToMapOfArrays(map5, key, value2) {
+ if (map5[key] === void 0) {
+ map5[key] = [value2];
+ } else {
+ map5[key].push(value2);
+ }
+ }
+ function charCodeToOptimizedIndex(charCode) {
+ return charCode < minOptimizationVal ? charCode : charCodeToOptimizedIdxMap[charCode];
+ }
+ function initCharCodeToOptimizedIndexMap() {
+ if (isEmpty_default(charCodeToOptimizedIdxMap)) {
+ charCodeToOptimizedIdxMap = new Array(65536);
+ for (let i2 = 0; i2 < 65536; i2++) {
+ charCodeToOptimizedIdxMap[i2] = i2 > 255 ? 255 + ~~(i2 / 255) : i2;
+ }
+ }
+ }
+ var PATTERN, DEFAULT_MODE, MODES, SUPPORT_STICKY, end_of_input, start_of_input, LineTerminatorOptimizedTester, minOptimizationVal, charCodeToOptimizedIdxMap;
+ var init_lexer = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer.js"() {
+ "use strict";
+ init_api();
+ init_lexer_public();
+ init_lodash();
+ init_api2();
+ init_reg_exp();
+ init_reg_exp_parser();
+ PATTERN = "PATTERN";
+ DEFAULT_MODE = "defaultMode";
+ MODES = "modes";
+ SUPPORT_STICKY = typeof new RegExp("(?:)").sticky === "boolean";
+ __name(analyzeTokenTypes, "analyzeTokenTypes");
+ __name(validatePatterns, "validatePatterns");
+ __name(validateRegExpPattern, "validateRegExpPattern");
+ __name(findMissingPatterns, "findMissingPatterns");
+ __name(findInvalidPatterns, "findInvalidPatterns");
+ end_of_input = /[^\\][$]/;
+ __name(findEndOfInputAnchor, "findEndOfInputAnchor");
+ __name(findEmptyMatchRegExps, "findEmptyMatchRegExps");
+ start_of_input = /[^\\[][\^]|^\^/;
+ __name(findStartOfInputAnchor, "findStartOfInputAnchor");
+ __name(findUnsupportedFlags, "findUnsupportedFlags");
+ __name(findDuplicatePatterns, "findDuplicatePatterns");
+ __name(findInvalidGroupType, "findInvalidGroupType");
+ __name(findModesThatDoNotExist, "findModesThatDoNotExist");
+ __name(findUnreachablePatterns, "findUnreachablePatterns");
+ __name(testTokenType, "testTokenType");
+ __name(noMetaChar, "noMetaChar");
+ __name(addStartOfInput, "addStartOfInput");
+ __name(addStickyFlag, "addStickyFlag");
+ __name(performRuntimeChecks, "performRuntimeChecks");
+ __name(performWarningRuntimeChecks, "performWarningRuntimeChecks");
+ __name(cloneEmptyGroups, "cloneEmptyGroups");
+ __name(isCustomPattern, "isCustomPattern");
+ __name(isShortPattern, "isShortPattern");
+ LineTerminatorOptimizedTester = {
+ // implements /\n|\r\n?/g.test
+ test: /* @__PURE__ */ __name(function(text2) {
+ const len = text2.length;
+ for (let i2 = this.lastIndex; i2 < len; i2++) {
+ const c3 = text2.charCodeAt(i2);
+ if (c3 === 10) {
+ this.lastIndex = i2 + 1;
+ return true;
+ } else if (c3 === 13) {
+ if (text2.charCodeAt(i2 + 1) === 10) {
+ this.lastIndex = i2 + 2;
+ } else {
+ this.lastIndex = i2 + 1;
+ }
+ return true;
}
- function S_d() {
+ }
+ return false;
+ }, "test"),
+ lastIndex: 0
+ };
+ __name(checkLineBreaksIssues, "checkLineBreaksIssues");
+ __name(buildLineBreakIssueMessage, "buildLineBreakIssueMessage");
+ __name(getCharCodes, "getCharCodes");
+ __name(addToMapOfArrays, "addToMapOfArrays");
+ minOptimizationVal = 256;
+ charCodeToOptimizedIdxMap = [];
+ __name(charCodeToOptimizedIndex, "charCodeToOptimizedIndex");
+ __name(initCharCodeToOptimizedIndexMap, "initCharCodeToOptimizedIndexMap");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/tokens.js
+ function tokenStructuredMatcher(tokInstance, tokConstructor) {
+ const instanceType = tokInstance.tokenTypeIdx;
+ if (instanceType === tokConstructor.tokenTypeIdx) {
+ return true;
+ } else {
+ return tokConstructor.isParent === true && tokConstructor.categoryMatchesMap[instanceType] === true;
+ }
+ }
+ function tokenStructuredMatcherNoCategories(token2, tokType) {
+ return token2.tokenTypeIdx === tokType.tokenTypeIdx;
+ }
+ function augmentTokenTypes(tokenTypes) {
+ const tokenTypesAndParents = expandCategories(tokenTypes);
+ assignTokenDefaultProps(tokenTypesAndParents);
+ assignCategoriesMapProp(tokenTypesAndParents);
+ assignCategoriesTokensProp(tokenTypesAndParents);
+ forEach_default(tokenTypesAndParents, (tokType) => {
+ tokType.isParent = tokType.categoryMatches.length > 0;
+ });
+ }
+ function expandCategories(tokenTypes) {
+ let result = clone_default2(tokenTypes);
+ let categories = tokenTypes;
+ let searching = true;
+ while (searching) {
+ categories = compact_default(flatten_default(map_default(categories, (currTokType) => currTokType.CATEGORIES)));
+ const newCategories = difference_default(categories, result);
+ result = result.concat(newCategories);
+ if (isEmpty_default(newCategories)) {
+ searching = false;
+ } else {
+ categories = newCategories;
+ }
+ }
+ return result;
+ }
+ function assignTokenDefaultProps(tokenTypes) {
+ forEach_default(tokenTypes, (currTokType) => {
+ if (!hasShortKeyProperty(currTokType)) {
+ tokenIdxToClass[tokenShortNameIdx] = currTokType;
+ currTokType.tokenTypeIdx = tokenShortNameIdx++;
+ }
+ if (hasCategoriesProperty(currTokType) && !isArray_default(currTokType.CATEGORIES)) {
+ currTokType.CATEGORIES = [currTokType.CATEGORIES];
+ }
+ if (!hasCategoriesProperty(currTokType)) {
+ currTokType.CATEGORIES = [];
+ }
+ if (!hasExtendingTokensTypesProperty(currTokType)) {
+ currTokType.categoryMatches = [];
+ }
+ if (!hasExtendingTokensTypesMapProperty(currTokType)) {
+ currTokType.categoryMatchesMap = {};
+ }
+ });
+ }
+ function assignCategoriesTokensProp(tokenTypes) {
+ forEach_default(tokenTypes, (currTokType) => {
+ currTokType.categoryMatches = [];
+ forEach_default(currTokType.categoryMatchesMap, (val, key) => {
+ currTokType.categoryMatches.push(tokenIdxToClass[key].tokenTypeIdx);
+ });
+ });
+ }
+ function assignCategoriesMapProp(tokenTypes) {
+ forEach_default(tokenTypes, (currTokType) => {
+ singleAssignCategoriesToksMap([], currTokType);
+ });
+ }
+ function singleAssignCategoriesToksMap(path4, nextNode) {
+ forEach_default(path4, (pathNode) => {
+ nextNode.categoryMatchesMap[pathNode.tokenTypeIdx] = true;
+ });
+ forEach_default(nextNode.CATEGORIES, (nextCategory) => {
+ const newPath = path4.concat(nextNode);
+ if (!includes_default(newPath, nextCategory)) {
+ singleAssignCategoriesToksMap(newPath, nextCategory);
+ }
+ });
+ }
+ function hasShortKeyProperty(tokType) {
+ return has_default(tokType, "tokenTypeIdx");
+ }
+ function hasCategoriesProperty(tokType) {
+ return has_default(tokType, "CATEGORIES");
+ }
+ function hasExtendingTokensTypesProperty(tokType) {
+ return has_default(tokType, "categoryMatches");
+ }
+ function hasExtendingTokensTypesMapProperty(tokType) {
+ return has_default(tokType, "categoryMatchesMap");
+ }
+ function isTokenType(tokType) {
+ return has_default(tokType, "tokenTypeIdx");
+ }
+ var tokenShortNameIdx, tokenIdxToClass;
+ var init_tokens = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/tokens.js"() {
+ "use strict";
+ init_lodash();
+ __name(tokenStructuredMatcher, "tokenStructuredMatcher");
+ __name(tokenStructuredMatcherNoCategories, "tokenStructuredMatcherNoCategories");
+ tokenShortNameIdx = 1;
+ tokenIdxToClass = {};
+ __name(augmentTokenTypes, "augmentTokenTypes");
+ __name(expandCategories, "expandCategories");
+ __name(assignTokenDefaultProps, "assignTokenDefaultProps");
+ __name(assignCategoriesTokensProp, "assignCategoriesTokensProp");
+ __name(assignCategoriesMapProp, "assignCategoriesMapProp");
+ __name(singleAssignCategoriesToksMap, "singleAssignCategoriesToksMap");
+ __name(hasShortKeyProperty, "hasShortKeyProperty");
+ __name(hasCategoriesProperty, "hasCategoriesProperty");
+ __name(hasExtendingTokensTypesProperty, "hasExtendingTokensTypesProperty");
+ __name(hasExtendingTokensTypesMapProperty, "hasExtendingTokensTypesMapProperty");
+ __name(isTokenType, "isTokenType");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer_errors_public.js
+ var defaultLexerErrorProvider;
+ var init_lexer_errors_public = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer_errors_public.js"() {
+ "use strict";
+ defaultLexerErrorProvider = {
+ buildUnableToPopLexerModeMessage(token2) {
+ return `Unable to pop Lexer Mode after encountering Token ->${token2.image}<- The Mode Stack is empty`;
+ },
+ buildUnexpectedCharactersMessage(fullText, startOffset, length2, line2, column2) {
+ return `unexpected character: ->${fullText.charAt(startOffset)}<- at offset: ${startOffset}, skipped ${length2} characters.`;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer_public.js
+ var LexerDefinitionErrorType, DEFAULT_LEXER_CONFIG, Lexer2;
+ var init_lexer_public = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/lexer_public.js"() {
+ "use strict";
+ init_lexer();
+ init_lodash();
+ init_api2();
+ init_tokens();
+ init_lexer_errors_public();
+ init_reg_exp_parser();
+ (function(LexerDefinitionErrorType2) {
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["MISSING_PATTERN"] = 0] = "MISSING_PATTERN";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["INVALID_PATTERN"] = 1] = "INVALID_PATTERN";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["EOI_ANCHOR_FOUND"] = 2] = "EOI_ANCHOR_FOUND";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["UNSUPPORTED_FLAGS_FOUND"] = 3] = "UNSUPPORTED_FLAGS_FOUND";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["DUPLICATE_PATTERNS_FOUND"] = 4] = "DUPLICATE_PATTERNS_FOUND";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["INVALID_GROUP_TYPE_FOUND"] = 5] = "INVALID_GROUP_TYPE_FOUND";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["PUSH_MODE_DOES_NOT_EXIST"] = 6] = "PUSH_MODE_DOES_NOT_EXIST";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE"] = 7] = "MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY"] = 8] = "MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST"] = 9] = "MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED"] = 10] = "LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["SOI_ANCHOR_FOUND"] = 11] = "SOI_ANCHOR_FOUND";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["EMPTY_MATCH_PATTERN"] = 12] = "EMPTY_MATCH_PATTERN";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["NO_LINE_BREAKS_FLAGS"] = 13] = "NO_LINE_BREAKS_FLAGS";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["UNREACHABLE_PATTERN"] = 14] = "UNREACHABLE_PATTERN";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["IDENTIFY_TERMINATOR"] = 15] = "IDENTIFY_TERMINATOR";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["CUSTOM_LINE_BREAK"] = 16] = "CUSTOM_LINE_BREAK";
+ LexerDefinitionErrorType2[LexerDefinitionErrorType2["MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"] = 17] = "MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";
+ })(LexerDefinitionErrorType || (LexerDefinitionErrorType = {}));
+ DEFAULT_LEXER_CONFIG = {
+ deferDefinitionErrorsHandling: false,
+ positionTracking: "full",
+ lineTerminatorsPattern: /\n|\r\n?/g,
+ lineTerminatorCharacters: ["\n", "\r"],
+ ensureOptimizations: false,
+ safeMode: false,
+ errorMessageProvider: defaultLexerErrorProvider,
+ traceInitPerf: false,
+ skipValidations: false,
+ recoveryEnabled: true
+ };
+ Object.freeze(DEFAULT_LEXER_CONFIG);
+ Lexer2 = class {
+ static {
+ __name(this, "Lexer");
+ }
+ constructor(lexerDefinition, config6 = DEFAULT_LEXER_CONFIG) {
+ this.lexerDefinition = lexerDefinition;
+ this.lexerDefinitionErrors = [];
+ this.lexerDefinitionWarning = [];
+ this.patternIdxToConfig = {};
+ this.charCodeToPatternIdxToConfig = {};
+ this.modes = [];
+ this.emptyGroups = {};
+ this.trackStartLines = true;
+ this.trackEndLines = true;
+ this.hasCustom = false;
+ this.canModeBeOptimized = {};
+ this.TRACE_INIT = (phaseDesc, phaseImpl) => {
+ if (this.traceInitPerf === true) {
+ this.traceInitIndent++;
+ const indent = new Array(this.traceInitIndent + 1).join(" ");
+ if (this.traceInitIndent < this.traceInitMaxIdent) {
+ console.log(`${indent}--> <${phaseDesc}>`);
+ }
+ const { time: time4, value: value2 } = timer2(phaseImpl);
+ const traceMethod = time4 > 10 ? console.warn : console.log;
+ if (this.traceInitIndent < this.traceInitMaxIdent) {
+ traceMethod(`${indent}<-- <${phaseDesc}> time: ${time4}ms`);
+ }
+ this.traceInitIndent--;
+ return value2;
+ } else {
+ return phaseImpl();
}
- function V_d() {
+ };
+ if (typeof config6 === "boolean") {
+ throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");
+ }
+ this.config = assign_default({}, DEFAULT_LEXER_CONFIG, config6);
+ const traceInitVal = this.config.traceInitPerf;
+ if (traceInitVal === true) {
+ this.traceInitMaxIdent = Infinity;
+ this.traceInitPerf = true;
+ } else if (typeof traceInitVal === "number") {
+ this.traceInitMaxIdent = traceInitVal;
+ this.traceInitPerf = true;
+ }
+ this.traceInitIndent = -1;
+ this.TRACE_INIT("Lexer Constructor", () => {
+ let actualDefinition;
+ let hasOnlySingleMode = true;
+ this.TRACE_INIT("Lexer Config handling", () => {
+ if (this.config.lineTerminatorsPattern === DEFAULT_LEXER_CONFIG.lineTerminatorsPattern) {
+ this.config.lineTerminatorsPattern = LineTerminatorOptimizedTester;
+ } else {
+ if (this.config.lineTerminatorCharacters === DEFAULT_LEXER_CONFIG.lineTerminatorCharacters) {
+ throw Error("Error: Missing property on the Lexer config.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");
+ }
+ }
+ if (config6.safeMode && config6.ensureOptimizations) {
+ throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');
+ }
+ this.trackStartLines = /full|onlyStart/i.test(this.config.positionTracking);
+ this.trackEndLines = /full/i.test(this.config.positionTracking);
+ if (isArray_default(lexerDefinition)) {
+ actualDefinition = {
+ modes: { defaultMode: clone_default2(lexerDefinition) },
+ defaultMode: DEFAULT_MODE
+ };
+ } else {
+ hasOnlySingleMode = false;
+ actualDefinition = clone_default2(lexerDefinition);
+ }
+ });
+ if (this.config.skipValidations === false) {
+ this.TRACE_INIT("performRuntimeChecks", () => {
+ this.lexerDefinitionErrors = this.lexerDefinitionErrors.concat(performRuntimeChecks(actualDefinition, this.trackStartLines, this.config.lineTerminatorCharacters));
+ });
+ this.TRACE_INIT("performWarningRuntimeChecks", () => {
+ this.lexerDefinitionWarning = this.lexerDefinitionWarning.concat(performWarningRuntimeChecks(actualDefinition, this.trackStartLines, this.config.lineTerminatorCharacters));
+ });
}
- function Y_d() {
+ actualDefinition.modes = actualDefinition.modes ? actualDefinition.modes : {};
+ forEach_default(actualDefinition.modes, (currModeValue, currModeName) => {
+ actualDefinition.modes[currModeName] = reject_default(currModeValue, (currTokType) => isUndefined_default(currTokType));
+ });
+ const allModeNames = keys_default(actualDefinition.modes);
+ forEach_default(actualDefinition.modes, (currModDef, currModName) => {
+ this.TRACE_INIT(`Mode: <${currModName}> processing`, () => {
+ this.modes.push(currModName);
+ if (this.config.skipValidations === false) {
+ this.TRACE_INIT(`validatePatterns`, () => {
+ this.lexerDefinitionErrors = this.lexerDefinitionErrors.concat(validatePatterns(currModDef, allModeNames));
+ });
+ }
+ if (isEmpty_default(this.lexerDefinitionErrors)) {
+ augmentTokenTypes(currModDef);
+ let currAnalyzeResult;
+ this.TRACE_INIT(`analyzeTokenTypes`, () => {
+ currAnalyzeResult = analyzeTokenTypes(currModDef, {
+ lineTerminatorCharacters: this.config.lineTerminatorCharacters,
+ positionTracking: config6.positionTracking,
+ ensureOptimizations: config6.ensureOptimizations,
+ safeMode: config6.safeMode,
+ tracer: this.TRACE_INIT
+ });
+ });
+ this.patternIdxToConfig[currModName] = currAnalyzeResult.patternIdxToConfig;
+ this.charCodeToPatternIdxToConfig[currModName] = currAnalyzeResult.charCodeToPatternIdxToConfig;
+ this.emptyGroups = assign_default({}, this.emptyGroups, currAnalyzeResult.emptyGroups);
+ this.hasCustom = currAnalyzeResult.hasCustom || this.hasCustom;
+ this.canModeBeOptimized[currModName] = currAnalyzeResult.canBeOptimized;
+ }
+ });
+ });
+ this.defaultMode = actualDefinition.defaultMode;
+ if (!isEmpty_default(this.lexerDefinitionErrors) && !this.config.deferDefinitionErrorsHandling) {
+ const allErrMessages = map_default(this.lexerDefinitionErrors, (error3) => {
+ return error3.message;
+ });
+ const allErrMessagesString = allErrMessages.join("-----------------------\n");
+ throw new Error("Errors detected in definition of Lexer:\n" + allErrMessagesString);
}
- function h5d() {
+ forEach_default(this.lexerDefinitionWarning, (warningDescriptor) => {
+ PRINT_WARNING(warningDescriptor.message);
+ });
+ this.TRACE_INIT("Choosing sub-methods implementations", () => {
+ if (SUPPORT_STICKY) {
+ this.chopInput = identity_default4;
+ this.match = this.matchWithTest;
+ } else {
+ this.updateLastIndex = noop_default2;
+ this.match = this.matchWithExec;
+ }
+ if (hasOnlySingleMode) {
+ this.handleModes = noop_default2;
+ }
+ if (this.trackStartLines === false) {
+ this.computeNewColumn = identity_default4;
+ }
+ if (this.trackEndLines === false) {
+ this.updateTokenEndLineColumnLocation = noop_default2;
+ }
+ if (/full/i.test(this.config.positionTracking)) {
+ this.createTokenInstance = this.createFullToken;
+ } else if (/onlyStart/i.test(this.config.positionTracking)) {
+ this.createTokenInstance = this.createStartOnlyToken;
+ } else if (/onlyOffset/i.test(this.config.positionTracking)) {
+ this.createTokenInstance = this.createOffsetOnlyToken;
+ } else {
+ throw Error(`Invalid config option: "${this.config.positionTracking}"`);
+ }
+ if (this.hasCustom) {
+ this.addToken = this.addTokenUsingPush;
+ this.handlePayload = this.handlePayloadWithCustom;
+ } else {
+ this.addToken = this.addTokenUsingMemberAccess;
+ this.handlePayload = this.handlePayloadNoCustom;
+ }
+ });
+ this.TRACE_INIT("Failed Optimization Warnings", () => {
+ const unOptimizedModes = reduce_default(this.canModeBeOptimized, (cannotBeOptimized, canBeOptimized, modeName) => {
+ if (canBeOptimized === false) {
+ cannotBeOptimized.push(modeName);
+ }
+ return cannotBeOptimized;
+ }, []);
+ if (config6.ensureOptimizations && !isEmpty_default(unOptimizedModes)) {
+ throw Error(`Lexer Modes: < ${unOptimizedModes.join(", ")} > cannot be optimized.
+ Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
+ Or inspect the console log for details on how to resolve these issues.`);
+ }
+ });
+ this.TRACE_INIT("clearRegExpParserCache", () => {
+ clearRegExpParserCache();
+ });
+ this.TRACE_INIT("toFastProperties", () => {
+ toFastProperties(this);
+ });
+ });
+ }
+ tokenize(text2, initialMode = this.defaultMode) {
+ if (!isEmpty_default(this.lexerDefinitionErrors)) {
+ const allErrMessages = map_default(this.lexerDefinitionErrors, (error3) => {
+ return error3.message;
+ });
+ const allErrMessagesString = allErrMessages.join("-----------------------\n");
+ throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n" + allErrMessagesString);
+ }
+ return this.tokenizeInternal(text2, initialMode);
+ }
+ // There is quite a bit of duplication between this and "tokenizeInternalLazy"
+ // This is intentional due to performance considerations.
+ // this method also used quite a bit of `!` none null assertions because it is too optimized
+ // for `tsc` to always understand it is "safe"
+ tokenizeInternal(text2, initialMode) {
+ let i2, j2, k2, matchAltImage, longerAlt, matchedImage, payload, altPayload, imageLength, group2, tokType, newToken, errLength, droppedChar, msg, match2;
+ const orgText = text2;
+ const orgLength = orgText.length;
+ let offset = 0;
+ let matchedTokensIndex = 0;
+ const guessedNumberOfTokens = this.hasCustom ? 0 : Math.floor(text2.length / 10);
+ const matchedTokens = new Array(guessedNumberOfTokens);
+ const errors = [];
+ let line2 = this.trackStartLines ? 1 : void 0;
+ let column2 = this.trackStartLines ? 1 : void 0;
+ const groups = cloneEmptyGroups(this.emptyGroups);
+ const trackLines = this.trackStartLines;
+ const lineTerminatorPattern = this.config.lineTerminatorsPattern;
+ let currModePatternsLength = 0;
+ let patternIdxToConfig = [];
+ let currCharCodeToPatternIdxToConfig = [];
+ const modeStack = [];
+ const emptyArray = [];
+ Object.freeze(emptyArray);
+ let getPossiblePatterns;
+ function getPossiblePatternsSlow() {
+ return patternIdxToConfig;
+ }
+ __name(getPossiblePatternsSlow, "getPossiblePatternsSlow");
+ function getPossiblePatternsOptimized(charCode) {
+ const optimizedCharIdx = charCodeToOptimizedIndex(charCode);
+ const possiblePatterns = currCharCodeToPatternIdxToConfig[optimizedCharIdx];
+ if (possiblePatterns === void 0) {
+ return emptyArray;
+ } else {
+ return possiblePatterns;
+ }
+ }
+ __name(getPossiblePatternsOptimized, "getPossiblePatternsOptimized");
+ const pop_mode = /* @__PURE__ */ __name((popToken) => {
+ if (modeStack.length === 1 && // if we have both a POP_MODE and a PUSH_MODE this is in-fact a "transition"
+ // So no error should occur.
+ popToken.tokenType.PUSH_MODE === void 0) {
+ const msg2 = this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(popToken);
+ errors.push({
+ offset: popToken.startOffset,
+ line: popToken.startLine,
+ column: popToken.startColumn,
+ length: popToken.image.length,
+ message: msg2
+ });
+ } else {
+ modeStack.pop();
+ const newMode = last_default(modeStack);
+ patternIdxToConfig = this.patternIdxToConfig[newMode];
+ currCharCodeToPatternIdxToConfig = this.charCodeToPatternIdxToConfig[newMode];
+ currModePatternsLength = patternIdxToConfig.length;
+ const modeCanBeOptimized = this.canModeBeOptimized[newMode] && this.config.safeMode === false;
+ if (currCharCodeToPatternIdxToConfig && modeCanBeOptimized) {
+ getPossiblePatterns = getPossiblePatternsOptimized;
+ } else {
+ getPossiblePatterns = getPossiblePatternsSlow;
+ }
+ }
+ }, "pop_mode");
+ function push_mode(newMode) {
+ modeStack.push(newMode);
+ currCharCodeToPatternIdxToConfig = this.charCodeToPatternIdxToConfig[newMode];
+ patternIdxToConfig = this.patternIdxToConfig[newMode];
+ currModePatternsLength = patternIdxToConfig.length;
+ currModePatternsLength = patternIdxToConfig.length;
+ const modeCanBeOptimized = this.canModeBeOptimized[newMode] && this.config.safeMode === false;
+ if (currCharCodeToPatternIdxToConfig && modeCanBeOptimized) {
+ getPossiblePatterns = getPossiblePatternsOptimized;
+ } else {
+ getPossiblePatterns = getPossiblePatternsSlow;
+ }
+ }
+ __name(push_mode, "push_mode");
+ push_mode.call(this, initialMode);
+ let currConfig;
+ const recoveryEnabled = this.config.recoveryEnabled;
+ while (offset < orgLength) {
+ matchedImage = null;
+ const nextCharCode = orgText.charCodeAt(offset);
+ const chosenPatternIdxToConfig = getPossiblePatterns(nextCharCode);
+ const chosenPatternsLength = chosenPatternIdxToConfig.length;
+ for (i2 = 0; i2 < chosenPatternsLength; i2++) {
+ currConfig = chosenPatternIdxToConfig[i2];
+ const currPattern = currConfig.pattern;
+ payload = null;
+ const singleCharCode = currConfig.short;
+ if (singleCharCode !== false) {
+ if (nextCharCode === singleCharCode) {
+ matchedImage = currPattern;
+ }
+ } else if (currConfig.isCustom === true) {
+ match2 = currPattern.exec(orgText, offset, matchedTokens, groups);
+ if (match2 !== null) {
+ matchedImage = match2[0];
+ if (match2.payload !== void 0) {
+ payload = match2.payload;
+ }
+ } else {
+ matchedImage = null;
+ }
+ } else {
+ this.updateLastIndex(currPattern, offset);
+ matchedImage = this.match(currPattern, text2, offset);
+ }
+ if (matchedImage !== null) {
+ longerAlt = currConfig.longerAlt;
+ if (longerAlt !== void 0) {
+ const longerAltLength = longerAlt.length;
+ for (k2 = 0; k2 < longerAltLength; k2++) {
+ const longerAltConfig = patternIdxToConfig[longerAlt[k2]];
+ const longerAltPattern = longerAltConfig.pattern;
+ altPayload = null;
+ if (longerAltConfig.isCustom === true) {
+ match2 = longerAltPattern.exec(orgText, offset, matchedTokens, groups);
+ if (match2 !== null) {
+ matchAltImage = match2[0];
+ if (match2.payload !== void 0) {
+ altPayload = match2.payload;
+ }
+ } else {
+ matchAltImage = null;
+ }
+ } else {
+ this.updateLastIndex(longerAltPattern, offset);
+ matchAltImage = this.match(longerAltPattern, text2, offset);
+ }
+ if (matchAltImage && matchAltImage.length > matchedImage.length) {
+ matchedImage = matchAltImage;
+ payload = altPayload;
+ currConfig = longerAltConfig;
+ break;
+ }
+ }
+ }
+ break;
+ }
}
- function U6d() {
+ if (matchedImage !== null) {
+ imageLength = matchedImage.length;
+ group2 = currConfig.group;
+ if (group2 !== void 0) {
+ tokType = currConfig.tokenTypeIdx;
+ newToken = this.createTokenInstance(matchedImage, offset, tokType, currConfig.tokenType, line2, column2, imageLength);
+ this.handlePayload(newToken, payload);
+ if (group2 === false) {
+ matchedTokensIndex = this.addToken(matchedTokens, matchedTokensIndex, newToken);
+ } else {
+ groups[group2].push(newToken);
+ }
+ }
+ text2 = this.chopInput(text2, imageLength);
+ offset = offset + imageLength;
+ column2 = this.computeNewColumn(column2, imageLength);
+ if (trackLines === true && currConfig.canLineTerminator === true) {
+ let numOfLTsInMatch = 0;
+ let foundTerminator;
+ let lastLTEndOffset;
+ lineTerminatorPattern.lastIndex = 0;
+ do {
+ foundTerminator = lineTerminatorPattern.test(matchedImage);
+ if (foundTerminator === true) {
+ lastLTEndOffset = lineTerminatorPattern.lastIndex - 1;
+ numOfLTsInMatch++;
+ }
+ } while (foundTerminator === true);
+ if (numOfLTsInMatch !== 0) {
+ line2 = line2 + numOfLTsInMatch;
+ column2 = imageLength - lastLTEndOffset;
+ this.updateTokenEndLineColumnLocation(newToken, group2, lastLTEndOffset, numOfLTsInMatch, line2, column2, imageLength);
+ }
+ }
+ this.handleModes(currConfig, pop_mode, push_mode, newToken);
+ } else {
+ const errorStartOffset = offset;
+ const errorLine = line2;
+ const errorColumn = column2;
+ let foundResyncPoint = recoveryEnabled === false;
+ while (foundResyncPoint === false && offset < orgLength) {
+ text2 = this.chopInput(text2, 1);
+ offset++;
+ for (j2 = 0; j2 < currModePatternsLength; j2++) {
+ const currConfig2 = patternIdxToConfig[j2];
+ const currPattern = currConfig2.pattern;
+ const singleCharCode = currConfig2.short;
+ if (singleCharCode !== false) {
+ if (orgText.charCodeAt(offset) === singleCharCode) {
+ foundResyncPoint = true;
+ }
+ } else if (currConfig2.isCustom === true) {
+ foundResyncPoint = currPattern.exec(orgText, offset, matchedTokens, groups) !== null;
+ } else {
+ this.updateLastIndex(currPattern, offset);
+ foundResyncPoint = currPattern.exec(text2) !== null;
+ }
+ if (foundResyncPoint === true) {
+ break;
+ }
+ }
+ }
+ errLength = offset - errorStartOffset;
+ column2 = this.computeNewColumn(column2, errLength);
+ msg = this.config.errorMessageProvider.buildUnexpectedCharactersMessage(orgText, errorStartOffset, errLength, errorLine, errorColumn);
+ errors.push({
+ offset: errorStartOffset,
+ line: errorLine,
+ column: errorColumn,
+ length: errLength,
+ message: msg
+ });
+ if (recoveryEnabled === false) {
+ break;
+ }
}
- function U9d() {
+ }
+ if (!this.hasCustom) {
+ matchedTokens.length = matchedTokensIndex;
+ }
+ return {
+ tokens: matchedTokens,
+ groups,
+ errors
+ };
+ }
+ handleModes(config6, pop_mode, push_mode, newToken) {
+ if (config6.pop === true) {
+ const pushMode = config6.push;
+ pop_mode(newToken);
+ if (pushMode !== void 0) {
+ push_mode.call(this, pushMode);
}
- function _8d() {
+ } else if (config6.push !== void 0) {
+ push_mode.call(this, config6.push);
+ }
+ }
+ chopInput(text2, length2) {
+ return text2.substring(length2);
+ }
+ updateLastIndex(regExp, newLastIndex) {
+ regExp.lastIndex = newLastIndex;
+ }
+ // TODO: decrease this under 600 characters? inspect stripping comments option in TSC compiler
+ updateTokenEndLineColumnLocation(newToken, group2, lastLTIdx, numOfLTsInMatch, line2, column2, imageLength) {
+ let lastCharIsLT, fixForEndingInLT;
+ if (group2 !== void 0) {
+ lastCharIsLT = lastLTIdx === imageLength - 1;
+ fixForEndingInLT = lastCharIsLT ? -1 : 0;
+ if (!(numOfLTsInMatch === 1 && lastCharIsLT === true)) {
+ newToken.endLine = line2 + fixForEndingInLT;
+ newToken.endColumn = column2 - 1 + -fixForEndingInLT;
}
- function fae() {
+ }
+ }
+ computeNewColumn(oldColumn, imageLength) {
+ return oldColumn + imageLength;
+ }
+ createOffsetOnlyToken(image, startOffset, tokenTypeIdx, tokenType) {
+ return {
+ image,
+ startOffset,
+ tokenTypeIdx,
+ tokenType
+ };
+ }
+ createStartOnlyToken(image, startOffset, tokenTypeIdx, tokenType, startLine, startColumn) {
+ return {
+ image,
+ startOffset,
+ startLine,
+ startColumn,
+ tokenTypeIdx,
+ tokenType
+ };
+ }
+ createFullToken(image, startOffset, tokenTypeIdx, tokenType, startLine, startColumn, imageLength) {
+ return {
+ image,
+ startOffset,
+ endOffset: startOffset + imageLength - 1,
+ startLine,
+ endLine: startLine,
+ startColumn,
+ endColumn: startColumn + imageLength - 1,
+ tokenTypeIdx,
+ tokenType
+ };
+ }
+ addTokenUsingPush(tokenVector, index, tokenToAdd) {
+ tokenVector.push(tokenToAdd);
+ return index;
+ }
+ addTokenUsingMemberAccess(tokenVector, index, tokenToAdd) {
+ tokenVector[index] = tokenToAdd;
+ index++;
+ return index;
+ }
+ handlePayloadNoCustom(token2, payload) {
+ }
+ handlePayloadWithCustom(token2, payload) {
+ if (payload !== null) {
+ token2.payload = payload;
+ }
+ }
+ matchWithTest(pattern, text2, offset) {
+ const found = pattern.test(text2);
+ if (found === true) {
+ return text2.substring(offset, pattern.lastIndex);
+ }
+ return null;
+ }
+ matchWithExec(pattern, text2) {
+ const regExpArray = pattern.exec(text2);
+ return regExpArray !== null ? regExpArray[0] : null;
+ }
+ };
+ Lexer2.SKIPPED = "This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.";
+ Lexer2.NA = /NOT_APPLICABLE/;
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/tokens_public.js
+ function tokenLabel2(tokType) {
+ if (hasTokenLabel2(tokType)) {
+ return tokType.LABEL;
+ } else {
+ return tokType.name;
+ }
+ }
+ function hasTokenLabel2(obj) {
+ return isString_default(obj.LABEL) && obj.LABEL !== "";
+ }
+ function createToken(config6) {
+ return createTokenInternal(config6);
+ }
+ function createTokenInternal(config6) {
+ const pattern = config6.pattern;
+ const tokenType = {};
+ tokenType.name = config6.name;
+ if (!isUndefined_default(pattern)) {
+ tokenType.PATTERN = pattern;
+ }
+ if (has_default(config6, PARENT)) {
+ throw "The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";
+ }
+ if (has_default(config6, CATEGORIES)) {
+ tokenType.CATEGORIES = config6[CATEGORIES];
+ }
+ augmentTokenTypes([tokenType]);
+ if (has_default(config6, LABEL)) {
+ tokenType.LABEL = config6[LABEL];
+ }
+ if (has_default(config6, GROUP)) {
+ tokenType.GROUP = config6[GROUP];
+ }
+ if (has_default(config6, POP_MODE)) {
+ tokenType.POP_MODE = config6[POP_MODE];
+ }
+ if (has_default(config6, PUSH_MODE)) {
+ tokenType.PUSH_MODE = config6[PUSH_MODE];
+ }
+ if (has_default(config6, LONGER_ALT)) {
+ tokenType.LONGER_ALT = config6[LONGER_ALT];
+ }
+ if (has_default(config6, LINE_BREAKS)) {
+ tokenType.LINE_BREAKS = config6[LINE_BREAKS];
+ }
+ if (has_default(config6, START_CHARS_HINT)) {
+ tokenType.START_CHARS_HINT = config6[START_CHARS_HINT];
+ }
+ return tokenType;
+ }
+ function createTokenInstance(tokType, image, startOffset, endOffset, startLine, endLine, startColumn, endColumn) {
+ return {
+ image,
+ startOffset,
+ endOffset,
+ startLine,
+ endLine,
+ startColumn,
+ endColumn,
+ tokenTypeIdx: tokType.tokenTypeIdx,
+ tokenType: tokType
+ };
+ }
+ function tokenMatcher(token2, tokType) {
+ return tokenStructuredMatcher(token2, tokType);
+ }
+ var PARENT, CATEGORIES, LABEL, GROUP, PUSH_MODE, POP_MODE, LONGER_ALT, LINE_BREAKS, START_CHARS_HINT, EOF;
+ var init_tokens_public = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/scan/tokens_public.js"() {
+ "use strict";
+ init_lodash();
+ init_lexer_public();
+ init_tokens();
+ __name(tokenLabel2, "tokenLabel");
+ __name(hasTokenLabel2, "hasTokenLabel");
+ PARENT = "parent";
+ CATEGORIES = "categories";
+ LABEL = "label";
+ GROUP = "group";
+ PUSH_MODE = "push_mode";
+ POP_MODE = "pop_mode";
+ LONGER_ALT = "longer_alt";
+ LINE_BREAKS = "line_breaks";
+ START_CHARS_HINT = "start_chars_hint";
+ __name(createToken, "createToken");
+ __name(createTokenInternal, "createTokenInternal");
+ EOF = createToken({ name: "EOF", pattern: Lexer2.NA });
+ augmentTokenTypes([EOF]);
+ __name(createTokenInstance, "createTokenInstance");
+ __name(tokenMatcher, "tokenMatcher");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/errors_public.js
+ var defaultParserErrorProvider, defaultGrammarResolverErrorProvider, defaultGrammarValidatorErrorProvider;
+ var init_errors_public = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/errors_public.js"() {
+ "use strict";
+ init_tokens_public();
+ init_lodash();
+ init_api3();
+ defaultParserErrorProvider = {
+ buildMismatchTokenMessage({ expected, actual, previous, ruleName }) {
+ const hasLabel = hasTokenLabel2(expected);
+ const expectedMsg = hasLabel ? `--> ${tokenLabel2(expected)} <--` : `token of type --> ${expected.name} <--`;
+ const msg = `Expecting ${expectedMsg} but found --> '${actual.image}' <--`;
+ return msg;
+ },
+ buildNotAllInputParsedMessage({ firstRedundant, ruleName }) {
+ return "Redundant input, expecting EOF but found: " + firstRedundant.image;
+ },
+ buildNoViableAltMessage({ expectedPathsPerAlt, actual, previous, customUserDescription, ruleName }) {
+ const errPrefix = "Expecting: ";
+ const actualText = head_default(actual).image;
+ const errSuffix = "\nbut found: '" + actualText + "'";
+ if (customUserDescription) {
+ return errPrefix + customUserDescription + errSuffix;
+ } else {
+ const allLookAheadPaths = reduce_default(expectedPathsPerAlt, (result, currAltPaths) => result.concat(currAltPaths), []);
+ const nextValidTokenSequences = map_default(allLookAheadPaths, (currPath) => `[${map_default(currPath, (currTokenType) => tokenLabel2(currTokenType)).join(", ")}]`);
+ const nextValidSequenceItems = map_default(nextValidTokenSequences, (itemMsg, idx) => ` ${idx + 1}. ${itemMsg}`);
+ const calculatedDescription = `one of these possible Token sequences:
+${nextValidSequenceItems.join("\n")}`;
+ return errPrefix + calculatedDescription + errSuffix;
+ }
+ },
+ buildEarlyExitMessage({ expectedIterationPaths, actual, customUserDescription, ruleName }) {
+ const errPrefix = "Expecting: ";
+ const actualText = head_default(actual).image;
+ const errSuffix = "\nbut found: '" + actualText + "'";
+ if (customUserDescription) {
+ return errPrefix + customUserDescription + errSuffix;
+ } else {
+ const nextValidTokenSequences = map_default(expectedIterationPaths, (currPath) => `[${map_default(currPath, (currTokenType) => tokenLabel2(currTokenType)).join(",")}]`);
+ const calculatedDescription = `expecting at least one iteration which starts with one of these possible Token sequences::
+ <${nextValidTokenSequences.join(" ,")}>`;
+ return errPrefix + calculatedDescription + errSuffix;
+ }
+ }
+ };
+ Object.freeze(defaultParserErrorProvider);
+ defaultGrammarResolverErrorProvider = {
+ buildRuleNotFoundError(topLevelRule, undefinedRule) {
+ const msg = "Invalid grammar, reference to a rule which is not defined: ->" + undefinedRule.nonTerminalName + "<-\ninside top level rule: ->" + topLevelRule.name + "<-";
+ return msg;
+ }
+ };
+ defaultGrammarValidatorErrorProvider = {
+ buildDuplicateFoundError(topLevelRule, duplicateProds) {
+ function getExtraProductionArgument2(prod) {
+ if (prod instanceof Terminal) {
+ return prod.terminalType.name;
+ } else if (prod instanceof NonTerminal) {
+ return prod.nonTerminalName;
+ } else {
+ return "";
}
- function hae() {
+ }
+ __name(getExtraProductionArgument2, "getExtraProductionArgument");
+ const topLevelName = topLevelRule.name;
+ const duplicateProd = head_default(duplicateProds);
+ const index = duplicateProd.idx;
+ const dslName = getProductionDslName(duplicateProd);
+ const extraArgument = getExtraProductionArgument2(duplicateProd);
+ const hasExplicitIndex = index > 0;
+ let msg = `->${dslName}${hasExplicitIndex ? index : ""}<- ${extraArgument ? `with argument: ->${extraArgument}<-` : ""}
+ appears more than once (${duplicateProds.length} times) in the top level rule: ->${topLevelName}<-.
+ For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
+ `;
+ msg = msg.replace(/[ \t]+/g, " ");
+ msg = msg.replace(/\s\s+/g, "\n");
+ return msg;
+ },
+ buildNamespaceConflictError(rule) {
+ const errMsg = `Namespace conflict found in grammar.
+The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${rule.name}>.
+To resolve this make sure each Terminal and Non-Terminal names are unique
+This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
+and Non-Terminal names start with a lower case letter.`;
+ return errMsg;
+ },
+ buildAlternationPrefixAmbiguityError(options3) {
+ const pathMsg = map_default(options3.prefixPath, (currTok) => tokenLabel2(currTok)).join(", ");
+ const occurrence = options3.alternation.idx === 0 ? "" : options3.alternation.idx;
+ const errMsg = `Ambiguous alternatives: <${options3.ambiguityIndices.join(" ,")}> due to common lookahead prefix
+in inside <${options3.topLevelRule.name}> Rule,
+<${pathMsg}> may appears as a prefix path in all these alternatives.
+See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
+For Further details.`;
+ return errMsg;
+ },
+ buildAlternationAmbiguityError(options3) {
+ const pathMsg = map_default(options3.prefixPath, (currtok) => tokenLabel2(currtok)).join(", ");
+ const occurrence = options3.alternation.idx === 0 ? "" : options3.alternation.idx;
+ let currMessage = `Ambiguous Alternatives Detected: <${options3.ambiguityIndices.join(" ,")}> in inside <${options3.topLevelRule.name}> Rule,
+<${pathMsg}> may appears as a prefix path in all these alternatives.
+`;
+ currMessage = currMessage + `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
+For Further details.`;
+ return currMessage;
+ },
+ buildEmptyRepetitionError(options3) {
+ let dslName = getProductionDslName(options3.repetition);
+ if (options3.repetition.idx !== 0) {
+ dslName += options3.repetition.idx;
+ }
+ const errMsg = `The repetition <${dslName}> within Rule <${options3.topLevelRule.name}> can never consume any tokens.
+This could lead to an infinite loop.`;
+ return errMsg;
+ },
+ // TODO: remove - `errors_public` from nyc.config.js exclude
+ // once this method is fully removed from this file
+ buildTokenNameError(options3) {
+ return "deprecated";
+ },
+ buildEmptyAlternationError(options3) {
+ const errMsg = `Ambiguous empty alternative: <${options3.emptyChoiceIdx + 1}> in inside <${options3.topLevelRule.name}> Rule.
+Only the last alternative may be an empty alternative.`;
+ return errMsg;
+ },
+ buildTooManyAlternativesError(options3) {
+ const errMsg = `An Alternation cannot have more than 256 alternatives:
+ inside <${options3.topLevelRule.name}> Rule.
+ has ${options3.alternation.definition.length + 1} alternatives.`;
+ return errMsg;
+ },
+ buildLeftRecursionError(options3) {
+ const ruleName = options3.topLevelRule.name;
+ const pathNames = map_default(options3.leftRecursionPath, (currRule) => currRule.name);
+ const leftRecursivePath = `${ruleName} --> ${pathNames.concat([ruleName]).join(" --> ")}`;
+ const errMsg = `Left Recursion found in grammar.
+rule: <${ruleName}> can be invoked from itself (directly or indirectly)
+without consuming any Tokens. The grammar path that causes this is:
+ ${leftRecursivePath}
+ To fix this refactor your grammar to remove the left recursion.
+see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`;
+ return errMsg;
+ },
+ // TODO: remove - `errors_public` from nyc.config.js exclude
+ // once this method is fully removed from this file
+ buildInvalidRuleNameError(options3) {
+ return "deprecated";
+ },
+ buildDuplicateRuleNameError(options3) {
+ let ruleName;
+ if (options3.topLevelRule instanceof Rule) {
+ ruleName = options3.topLevelRule.name;
+ } else {
+ ruleName = options3.topLevelRule;
+ }
+ const errMsg = `Duplicate definition, rule: ->${ruleName}<- is already defined in the grammar: ->${options3.grammarName}<-`;
+ return errMsg;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/resolver.js
+ function resolveGrammar(topLevels, errMsgProvider) {
+ const refResolver = new GastRefResolverVisitor(topLevels, errMsgProvider);
+ refResolver.resolveRefs();
+ return refResolver.errors;
+ }
+ var GastRefResolverVisitor;
+ var init_resolver = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/resolver.js"() {
+ "use strict";
+ init_parser();
+ init_lodash();
+ init_api3();
+ __name(resolveGrammar, "resolveGrammar");
+ GastRefResolverVisitor = class extends GAstVisitor {
+ static {
+ __name(this, "GastRefResolverVisitor");
+ }
+ constructor(nameToTopRule, errMsgProvider) {
+ super();
+ this.nameToTopRule = nameToTopRule;
+ this.errMsgProvider = errMsgProvider;
+ this.errors = [];
+ }
+ resolveRefs() {
+ forEach_default(values_default(this.nameToTopRule), (prod) => {
+ this.currTopLevel = prod;
+ prod.accept(this);
+ });
+ }
+ visitNonTerminal(node2) {
+ const ref = this.nameToTopRule[node2.nonTerminalName];
+ if (!ref) {
+ const msg = this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel, node2);
+ this.errors.push({
+ message: msg,
+ type: ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,
+ ruleName: this.currTopLevel.name,
+ unresolvedRefName: node2.nonTerminalName
+ });
+ } else {
+ node2.referencedRule = ref;
+ }
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/interpreter.js
+ function possiblePathsFrom(targetDef, maxLength, currPath = []) {
+ currPath = clone_default2(currPath);
+ let result = [];
+ let i2 = 0;
+ function remainingPathWith(nextDef) {
+ return nextDef.concat(drop_default(targetDef, i2 + 1));
+ }
+ __name(remainingPathWith, "remainingPathWith");
+ function getAlternativesForProd(definition) {
+ const alternatives = possiblePathsFrom(remainingPathWith(definition), maxLength, currPath);
+ return result.concat(alternatives);
+ }
+ __name(getAlternativesForProd, "getAlternativesForProd");
+ while (currPath.length < maxLength && i2 < targetDef.length) {
+ const prod = targetDef[i2];
+ if (prod instanceof Alternative) {
+ return getAlternativesForProd(prod.definition);
+ } else if (prod instanceof NonTerminal) {
+ return getAlternativesForProd(prod.definition);
+ } else if (prod instanceof Option2) {
+ result = getAlternativesForProd(prod.definition);
+ } else if (prod instanceof RepetitionMandatory) {
+ const newDef = prod.definition.concat([
+ new Repetition({
+ definition: prod.definition
+ })
+ ]);
+ return getAlternativesForProd(newDef);
+ } else if (prod instanceof RepetitionMandatoryWithSeparator) {
+ const newDef = [
+ new Alternative({ definition: prod.definition }),
+ new Repetition({
+ definition: [new Terminal({ terminalType: prod.separator })].concat(prod.definition)
+ })
+ ];
+ return getAlternativesForProd(newDef);
+ } else if (prod instanceof RepetitionWithSeparator) {
+ const newDef = prod.definition.concat([
+ new Repetition({
+ definition: [new Terminal({ terminalType: prod.separator })].concat(prod.definition)
+ })
+ ]);
+ result = getAlternativesForProd(newDef);
+ } else if (prod instanceof Repetition) {
+ const newDef = prod.definition.concat([
+ new Repetition({
+ definition: prod.definition
+ })
+ ]);
+ result = getAlternativesForProd(newDef);
+ } else if (prod instanceof Alternation) {
+ forEach_default(prod.definition, (currAlt) => {
+ if (isEmpty_default(currAlt.definition) === false) {
+ result = getAlternativesForProd(currAlt.definition);
+ }
+ });
+ return result;
+ } else if (prod instanceof Terminal) {
+ currPath.push(prod.terminalType);
+ } else {
+ throw Error("non exhaustive match");
+ }
+ i2++;
+ }
+ result.push({
+ partialPath: currPath,
+ suffixDef: drop_default(targetDef, i2)
+ });
+ return result;
+ }
+ function nextPossibleTokensAfter(initialDef, tokenVector, tokMatcher, maxLookAhead) {
+ const EXIT_NON_TERMINAL = "EXIT_NONE_TERMINAL";
+ const EXIT_NON_TERMINAL_ARR = [EXIT_NON_TERMINAL];
+ const EXIT_ALTERNATIVE = "EXIT_ALTERNATIVE";
+ let foundCompletePath = false;
+ const tokenVectorLength = tokenVector.length;
+ const minimalAlternativesIndex = tokenVectorLength - maxLookAhead - 1;
+ const result = [];
+ const possiblePaths = [];
+ possiblePaths.push({
+ idx: -1,
+ def: initialDef,
+ ruleStack: [],
+ occurrenceStack: []
+ });
+ while (!isEmpty_default(possiblePaths)) {
+ const currPath = possiblePaths.pop();
+ if (currPath === EXIT_ALTERNATIVE) {
+ if (foundCompletePath && last_default(possiblePaths).idx <= minimalAlternativesIndex) {
+ possiblePaths.pop();
+ }
+ continue;
+ }
+ const currDef = currPath.def;
+ const currIdx = currPath.idx;
+ const currRuleStack = currPath.ruleStack;
+ const currOccurrenceStack = currPath.occurrenceStack;
+ if (isEmpty_default(currDef)) {
+ continue;
+ }
+ const prod = currDef[0];
+ if (prod === EXIT_NON_TERMINAL) {
+ const nextPath = {
+ idx: currIdx,
+ def: drop_default(currDef),
+ ruleStack: dropRight_default(currRuleStack),
+ occurrenceStack: dropRight_default(currOccurrenceStack)
+ };
+ possiblePaths.push(nextPath);
+ } else if (prod instanceof Terminal) {
+ if (currIdx < tokenVectorLength - 1) {
+ const nextIdx = currIdx + 1;
+ const actualToken = tokenVector[nextIdx];
+ if (tokMatcher(actualToken, prod.terminalType)) {
+ const nextPath = {
+ idx: nextIdx,
+ def: drop_default(currDef),
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPath);
+ }
+ } else if (currIdx === tokenVectorLength - 1) {
+ result.push({
+ nextTokenType: prod.terminalType,
+ nextTokenOccurrence: prod.idx,
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ });
+ foundCompletePath = true;
+ } else {
+ throw Error("non exhaustive match");
+ }
+ } else if (prod instanceof NonTerminal) {
+ const newRuleStack = clone_default2(currRuleStack);
+ newRuleStack.push(prod.nonTerminalName);
+ const newOccurrenceStack = clone_default2(currOccurrenceStack);
+ newOccurrenceStack.push(prod.idx);
+ const nextPath = {
+ idx: currIdx,
+ def: prod.definition.concat(EXIT_NON_TERMINAL_ARR, drop_default(currDef)),
+ ruleStack: newRuleStack,
+ occurrenceStack: newOccurrenceStack
+ };
+ possiblePaths.push(nextPath);
+ } else if (prod instanceof Option2) {
+ const nextPathWithout = {
+ idx: currIdx,
+ def: drop_default(currDef),
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPathWithout);
+ possiblePaths.push(EXIT_ALTERNATIVE);
+ const nextPathWith = {
+ idx: currIdx,
+ def: prod.definition.concat(drop_default(currDef)),
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPathWith);
+ } else if (prod instanceof RepetitionMandatory) {
+ const secondIteration = new Repetition({
+ definition: prod.definition,
+ idx: prod.idx
+ });
+ const nextDef = prod.definition.concat([secondIteration], drop_default(currDef));
+ const nextPath = {
+ idx: currIdx,
+ def: nextDef,
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPath);
+ } else if (prod instanceof RepetitionMandatoryWithSeparator) {
+ const separatorGast = new Terminal({
+ terminalType: prod.separator
+ });
+ const secondIteration = new Repetition({
+ definition: [separatorGast].concat(prod.definition),
+ idx: prod.idx
+ });
+ const nextDef = prod.definition.concat([secondIteration], drop_default(currDef));
+ const nextPath = {
+ idx: currIdx,
+ def: nextDef,
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPath);
+ } else if (prod instanceof RepetitionWithSeparator) {
+ const nextPathWithout = {
+ idx: currIdx,
+ def: drop_default(currDef),
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPathWithout);
+ possiblePaths.push(EXIT_ALTERNATIVE);
+ const separatorGast = new Terminal({
+ terminalType: prod.separator
+ });
+ const nthRepetition = new Repetition({
+ definition: [separatorGast].concat(prod.definition),
+ idx: prod.idx
+ });
+ const nextDef = prod.definition.concat([nthRepetition], drop_default(currDef));
+ const nextPathWith = {
+ idx: currIdx,
+ def: nextDef,
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPathWith);
+ } else if (prod instanceof Repetition) {
+ const nextPathWithout = {
+ idx: currIdx,
+ def: drop_default(currDef),
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPathWithout);
+ possiblePaths.push(EXIT_ALTERNATIVE);
+ const nthRepetition = new Repetition({
+ definition: prod.definition,
+ idx: prod.idx
+ });
+ const nextDef = prod.definition.concat([nthRepetition], drop_default(currDef));
+ const nextPathWith = {
+ idx: currIdx,
+ def: nextDef,
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(nextPathWith);
+ } else if (prod instanceof Alternation) {
+ for (let i2 = prod.definition.length - 1; i2 >= 0; i2--) {
+ const currAlt = prod.definition[i2];
+ const currAltPath = {
+ idx: currIdx,
+ def: currAlt.definition.concat(drop_default(currDef)),
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ };
+ possiblePaths.push(currAltPath);
+ possiblePaths.push(EXIT_ALTERNATIVE);
+ }
+ } else if (prod instanceof Alternative) {
+ possiblePaths.push({
+ idx: currIdx,
+ def: prod.definition.concat(drop_default(currDef)),
+ ruleStack: currRuleStack,
+ occurrenceStack: currOccurrenceStack
+ });
+ } else if (prod instanceof Rule) {
+ possiblePaths.push(expandTopLevelRule(prod, currIdx, currRuleStack, currOccurrenceStack));
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ return result;
+ }
+ function expandTopLevelRule(topRule, currIdx, currRuleStack, currOccurrenceStack) {
+ const newRuleStack = clone_default2(currRuleStack);
+ newRuleStack.push(topRule.name);
+ const newCurrOccurrenceStack = clone_default2(currOccurrenceStack);
+ newCurrOccurrenceStack.push(1);
+ return {
+ idx: currIdx,
+ def: topRule.definition,
+ ruleStack: newRuleStack,
+ occurrenceStack: newCurrOccurrenceStack
+ };
+ }
+ var AbstractNextPossibleTokensWalker, NextAfterTokenWalker, AbstractNextTerminalAfterProductionWalker, NextTerminalAfterManyWalker, NextTerminalAfterManySepWalker, NextTerminalAfterAtLeastOneWalker, NextTerminalAfterAtLeastOneSepWalker;
+ var init_interpreter = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/interpreter.js"() {
+ "use strict";
+ init_lodash();
+ init_first2();
+ init_rest();
+ init_api3();
+ AbstractNextPossibleTokensWalker = class extends RestWalker {
+ static {
+ __name(this, "AbstractNextPossibleTokensWalker");
+ }
+ constructor(topProd, path4) {
+ super();
+ this.topProd = topProd;
+ this.path = path4;
+ this.possibleTokTypes = [];
+ this.nextProductionName = "";
+ this.nextProductionOccurrence = 0;
+ this.found = false;
+ this.isAtEndOfPath = false;
+ }
+ startWalking() {
+ this.found = false;
+ if (this.path.ruleStack[0] !== this.topProd.name) {
+ throw Error("The path does not start with the walker's top Rule!");
+ }
+ this.ruleStack = clone_default2(this.path.ruleStack).reverse();
+ this.occurrenceStack = clone_default2(this.path.occurrenceStack).reverse();
+ this.ruleStack.pop();
+ this.occurrenceStack.pop();
+ this.updateExpectedNext();
+ this.walk(this.topProd);
+ return this.possibleTokTypes;
+ }
+ walk(prod, prevRest = []) {
+ if (!this.found) {
+ super.walk(prod, prevRest);
+ }
+ }
+ walkProdRef(refProd, currRest, prevRest) {
+ if (refProd.referencedRule.name === this.nextProductionName && refProd.idx === this.nextProductionOccurrence) {
+ const fullRest = currRest.concat(prevRest);
+ this.updateExpectedNext();
+ this.walk(refProd.referencedRule, fullRest);
+ }
+ }
+ updateExpectedNext() {
+ if (isEmpty_default(this.ruleStack)) {
+ this.nextProductionName = "";
+ this.nextProductionOccurrence = 0;
+ this.isAtEndOfPath = true;
+ } else {
+ this.nextProductionName = this.ruleStack.pop();
+ this.nextProductionOccurrence = this.occurrenceStack.pop();
+ }
+ }
+ };
+ NextAfterTokenWalker = class extends AbstractNextPossibleTokensWalker {
+ static {
+ __name(this, "NextAfterTokenWalker");
+ }
+ constructor(topProd, path4) {
+ super(topProd, path4);
+ this.path = path4;
+ this.nextTerminalName = "";
+ this.nextTerminalOccurrence = 0;
+ this.nextTerminalName = this.path.lastTok.name;
+ this.nextTerminalOccurrence = this.path.lastTokOccurrence;
+ }
+ walkTerminal(terminal, currRest, prevRest) {
+ if (this.isAtEndOfPath && terminal.terminalType.name === this.nextTerminalName && terminal.idx === this.nextTerminalOccurrence && !this.found) {
+ const fullRest = currRest.concat(prevRest);
+ const restProd = new Alternative({ definition: fullRest });
+ this.possibleTokTypes = first(restProd);
+ this.found = true;
+ }
+ }
+ };
+ AbstractNextTerminalAfterProductionWalker = class extends RestWalker {
+ static {
+ __name(this, "AbstractNextTerminalAfterProductionWalker");
+ }
+ constructor(topRule, occurrence) {
+ super();
+ this.topRule = topRule;
+ this.occurrence = occurrence;
+ this.result = {
+ token: void 0,
+ occurrence: void 0,
+ isEndOfRule: void 0
+ };
+ }
+ startWalking() {
+ this.walk(this.topRule);
+ return this.result;
+ }
+ };
+ NextTerminalAfterManyWalker = class extends AbstractNextTerminalAfterProductionWalker {
+ static {
+ __name(this, "NextTerminalAfterManyWalker");
+ }
+ walkMany(manyProd, currRest, prevRest) {
+ if (manyProd.idx === this.occurrence) {
+ const firstAfterMany = head_default(currRest.concat(prevRest));
+ this.result.isEndOfRule = firstAfterMany === void 0;
+ if (firstAfterMany instanceof Terminal) {
+ this.result.token = firstAfterMany.terminalType;
+ this.result.occurrence = firstAfterMany.idx;
}
- function kae() {
+ } else {
+ super.walkMany(manyProd, currRest, prevRest);
+ }
+ }
+ };
+ NextTerminalAfterManySepWalker = class extends AbstractNextTerminalAfterProductionWalker {
+ static {
+ __name(this, "NextTerminalAfterManySepWalker");
+ }
+ walkManySep(manySepProd, currRest, prevRest) {
+ if (manySepProd.idx === this.occurrence) {
+ const firstAfterManySep = head_default(currRest.concat(prevRest));
+ this.result.isEndOfRule = firstAfterManySep === void 0;
+ if (firstAfterManySep instanceof Terminal) {
+ this.result.token = firstAfterManySep.terminalType;
+ this.result.occurrence = firstAfterManySep.idx;
}
- function nae() {
+ } else {
+ super.walkManySep(manySepProd, currRest, prevRest);
+ }
+ }
+ };
+ NextTerminalAfterAtLeastOneWalker = class extends AbstractNextTerminalAfterProductionWalker {
+ static {
+ __name(this, "NextTerminalAfterAtLeastOneWalker");
+ }
+ walkAtLeastOne(atLeastOneProd, currRest, prevRest) {
+ if (atLeastOneProd.idx === this.occurrence) {
+ const firstAfterAtLeastOne = head_default(currRest.concat(prevRest));
+ this.result.isEndOfRule = firstAfterAtLeastOne === void 0;
+ if (firstAfterAtLeastOne instanceof Terminal) {
+ this.result.token = firstAfterAtLeastOne.terminalType;
+ this.result.occurrence = firstAfterAtLeastOne.idx;
}
- function qae() {
+ } else {
+ super.walkAtLeastOne(atLeastOneProd, currRest, prevRest);
+ }
+ }
+ };
+ NextTerminalAfterAtLeastOneSepWalker = class extends AbstractNextTerminalAfterProductionWalker {
+ static {
+ __name(this, "NextTerminalAfterAtLeastOneSepWalker");
+ }
+ walkAtLeastOneSep(atleastOneSepProd, currRest, prevRest) {
+ if (atleastOneSepProd.idx === this.occurrence) {
+ const firstAfterfirstAfterAtLeastOneSep = head_default(currRest.concat(prevRest));
+ this.result.isEndOfRule = firstAfterfirstAfterAtLeastOneSep === void 0;
+ if (firstAfterfirstAfterAtLeastOneSep instanceof Terminal) {
+ this.result.token = firstAfterfirstAfterAtLeastOneSep.terminalType;
+ this.result.occurrence = firstAfterfirstAfterAtLeastOneSep.idx;
}
- function tae() {
+ } else {
+ super.walkAtLeastOneSep(atleastOneSepProd, currRest, prevRest);
+ }
+ }
+ };
+ __name(possiblePathsFrom, "possiblePathsFrom");
+ __name(nextPossibleTokensAfter, "nextPossibleTokensAfter");
+ __name(expandTopLevelRule, "expandTopLevelRule");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/lookahead.js
+ function getProdType(prod) {
+ if (prod instanceof Option2 || prod === "Option") {
+ return PROD_TYPE.OPTION;
+ } else if (prod instanceof Repetition || prod === "Repetition") {
+ return PROD_TYPE.REPETITION;
+ } else if (prod instanceof RepetitionMandatory || prod === "RepetitionMandatory") {
+ return PROD_TYPE.REPETITION_MANDATORY;
+ } else if (prod instanceof RepetitionMandatoryWithSeparator || prod === "RepetitionMandatoryWithSeparator") {
+ return PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR;
+ } else if (prod instanceof RepetitionWithSeparator || prod === "RepetitionWithSeparator") {
+ return PROD_TYPE.REPETITION_WITH_SEPARATOR;
+ } else if (prod instanceof Alternation || prod === "Alternation") {
+ return PROD_TYPE.ALTERNATION;
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ function getLookaheadPaths(options3) {
+ const { occurrence, rule, prodType, maxLookahead } = options3;
+ const type3 = getProdType(prodType);
+ if (type3 === PROD_TYPE.ALTERNATION) {
+ return getLookaheadPathsForOr(occurrence, rule, maxLookahead);
+ } else {
+ return getLookaheadPathsForOptionalProd(occurrence, rule, type3, maxLookahead);
+ }
+ }
+ function buildLookaheadFuncForOr(occurrence, ruleGrammar, maxLookahead, hasPredicates, dynamicTokensEnabled, laFuncBuilder) {
+ const lookAheadPaths = getLookaheadPathsForOr(occurrence, ruleGrammar, maxLookahead);
+ const tokenMatcher2 = areTokenCategoriesNotUsed(lookAheadPaths) ? tokenStructuredMatcherNoCategories : tokenStructuredMatcher;
+ return laFuncBuilder(lookAheadPaths, hasPredicates, tokenMatcher2, dynamicTokensEnabled);
+ }
+ function buildLookaheadFuncForOptionalProd(occurrence, ruleGrammar, k2, dynamicTokensEnabled, prodType, lookaheadBuilder) {
+ const lookAheadPaths = getLookaheadPathsForOptionalProd(occurrence, ruleGrammar, prodType, k2);
+ const tokenMatcher2 = areTokenCategoriesNotUsed(lookAheadPaths) ? tokenStructuredMatcherNoCategories : tokenStructuredMatcher;
+ return lookaheadBuilder(lookAheadPaths[0], tokenMatcher2, dynamicTokensEnabled);
+ }
+ function buildAlternativesLookAheadFunc(alts, hasPredicates, tokenMatcher2, dynamicTokensEnabled) {
+ const numOfAlts = alts.length;
+ const areAllOneTokenLookahead = every_default(alts, (currAlt) => {
+ return every_default(currAlt, (currPath) => {
+ return currPath.length === 1;
+ });
+ });
+ if (hasPredicates) {
+ return function(orAlts) {
+ const predicates = map_default(orAlts, (currAlt) => currAlt.GATE);
+ for (let t4 = 0; t4 < numOfAlts; t4++) {
+ const currAlt = alts[t4];
+ const currNumOfPaths = currAlt.length;
+ const currPredicate = predicates[t4];
+ if (currPredicate !== void 0 && currPredicate.call(this) === false) {
+ continue;
+ }
+ nextPath: for (let j2 = 0; j2 < currNumOfPaths; j2++) {
+ const currPath = currAlt[j2];
+ const currPathLength = currPath.length;
+ for (let i2 = 0; i2 < currPathLength; i2++) {
+ const nextToken = this.LA(i2 + 1);
+ if (tokenMatcher2(nextToken, currPath[i2]) === false) {
+ continue nextPath;
+ }
}
- function wae() {
+ return t4;
+ }
+ }
+ return void 0;
+ };
+ } else if (areAllOneTokenLookahead && !dynamicTokensEnabled) {
+ const singleTokenAlts = map_default(alts, (currAlt) => {
+ return flatten_default(currAlt);
+ });
+ const choiceToAlt = reduce_default(singleTokenAlts, (result, currAlt, idx) => {
+ forEach_default(currAlt, (currTokType) => {
+ if (!has_default(result, currTokType.tokenTypeIdx)) {
+ result[currTokType.tokenTypeIdx] = idx;
+ }
+ forEach_default(currTokType.categoryMatches, (currExtendingType) => {
+ if (!has_default(result, currExtendingType)) {
+ result[currExtendingType] = idx;
}
- function zae() {
+ });
+ });
+ return result;
+ }, {});
+ return function() {
+ const nextToken = this.LA(1);
+ return choiceToAlt[nextToken.tokenTypeIdx];
+ };
+ } else {
+ return function() {
+ for (let t4 = 0; t4 < numOfAlts; t4++) {
+ const currAlt = alts[t4];
+ const currNumOfPaths = currAlt.length;
+ nextPath: for (let j2 = 0; j2 < currNumOfPaths; j2++) {
+ const currPath = currAlt[j2];
+ const currPathLength = currPath.length;
+ for (let i2 = 0; i2 < currPathLength; i2++) {
+ const nextToken = this.LA(i2 + 1);
+ if (tokenMatcher2(nextToken, currPath[i2]) === false) {
+ continue nextPath;
+ }
}
- function Cae() {
+ return t4;
+ }
+ }
+ return void 0;
+ };
+ }
+ }
+ function buildSingleAlternativeLookaheadFunction(alt, tokenMatcher2, dynamicTokensEnabled) {
+ const areAllOneTokenLookahead = every_default(alt, (currPath) => {
+ return currPath.length === 1;
+ });
+ const numOfPaths = alt.length;
+ if (areAllOneTokenLookahead && !dynamicTokensEnabled) {
+ const singleTokensTypes = flatten_default(alt);
+ if (singleTokensTypes.length === 1 && isEmpty_default(singleTokensTypes[0].categoryMatches)) {
+ const expectedTokenType = singleTokensTypes[0];
+ const expectedTokenUniqueKey = expectedTokenType.tokenTypeIdx;
+ return function() {
+ return this.LA(1).tokenTypeIdx === expectedTokenUniqueKey;
+ };
+ } else {
+ const choiceToAlt = reduce_default(singleTokensTypes, (result, currTokType, idx) => {
+ result[currTokType.tokenTypeIdx] = true;
+ forEach_default(currTokType.categoryMatches, (currExtendingType) => {
+ result[currExtendingType] = true;
+ });
+ return result;
+ }, []);
+ return function() {
+ const nextToken = this.LA(1);
+ return choiceToAlt[nextToken.tokenTypeIdx] === true;
+ };
+ }
+ } else {
+ return function() {
+ nextPath: for (let j2 = 0; j2 < numOfPaths; j2++) {
+ const currPath = alt[j2];
+ const currPathLength = currPath.length;
+ for (let i2 = 0; i2 < currPathLength; i2++) {
+ const nextToken = this.LA(i2 + 1);
+ if (tokenMatcher2(nextToken, currPath[i2]) === false) {
+ continue nextPath;
}
- function Fae() {
- }
- function Iae() {
- }
- function Lae() {
- }
- function Oae() {
- }
- function Rae() {
- }
- function Uae() {
- }
- function Xae() {
- }
- function $ae() {
- }
- function bbe() {
- }
- function ebe() {
+ }
+ return true;
+ }
+ return false;
+ };
+ }
+ }
+ function initializeArrayOfArrays(size5) {
+ const result = new Array(size5);
+ for (let i2 = 0; i2 < size5; i2++) {
+ result[i2] = [];
+ }
+ return result;
+ }
+ function pathToHashKeys(path4) {
+ let keys3 = [""];
+ for (let i2 = 0; i2 < path4.length; i2++) {
+ const tokType = path4[i2];
+ const longerKeys = [];
+ for (let j2 = 0; j2 < keys3.length; j2++) {
+ const currShorterKey = keys3[j2];
+ longerKeys.push(currShorterKey + "_" + tokType.tokenTypeIdx);
+ for (let t4 = 0; t4 < tokType.categoryMatches.length; t4++) {
+ const categoriesKeySuffix = "_" + tokType.categoryMatches[t4];
+ longerKeys.push(currShorterKey + categoriesKeySuffix);
+ }
+ }
+ keys3 = longerKeys;
+ }
+ return keys3;
+ }
+ function isUniquePrefixHash(altKnownPathsKeys, searchPathKeys, idx) {
+ for (let currAltIdx = 0; currAltIdx < altKnownPathsKeys.length; currAltIdx++) {
+ if (currAltIdx === idx) {
+ continue;
+ }
+ const otherAltKnownPathsKeys = altKnownPathsKeys[currAltIdx];
+ for (let searchIdx = 0; searchIdx < searchPathKeys.length; searchIdx++) {
+ const searchKey = searchPathKeys[searchIdx];
+ if (otherAltKnownPathsKeys[searchKey] === true) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ function lookAheadSequenceFromAlternatives(altsDefs, k2) {
+ const partialAlts = map_default(altsDefs, (currAlt) => possiblePathsFrom([currAlt], 1));
+ const finalResult = initializeArrayOfArrays(partialAlts.length);
+ const altsHashes = map_default(partialAlts, (currAltPaths) => {
+ const dict = {};
+ forEach_default(currAltPaths, (item) => {
+ const keys3 = pathToHashKeys(item.partialPath);
+ forEach_default(keys3, (currKey) => {
+ dict[currKey] = true;
+ });
+ });
+ return dict;
+ });
+ let newData = partialAlts;
+ for (let pathLength = 1; pathLength <= k2; pathLength++) {
+ const currDataset = newData;
+ newData = initializeArrayOfArrays(currDataset.length);
+ for (let altIdx = 0; altIdx < currDataset.length; altIdx++) {
+ const currAltPathsAndSuffixes = currDataset[altIdx];
+ for (let currPathIdx = 0; currPathIdx < currAltPathsAndSuffixes.length; currPathIdx++) {
+ const currPathPrefix = currAltPathsAndSuffixes[currPathIdx].partialPath;
+ const suffixDef = currAltPathsAndSuffixes[currPathIdx].suffixDef;
+ const prefixKeys = pathToHashKeys(currPathPrefix);
+ const isUnique = isUniquePrefixHash(altsHashes, prefixKeys, altIdx);
+ if (isUnique || isEmpty_default(suffixDef) || currPathPrefix.length === k2) {
+ const currAltResult = finalResult[altIdx];
+ if (containsPath(currAltResult, currPathPrefix) === false) {
+ currAltResult.push(currPathPrefix);
+ for (let j2 = 0; j2 < prefixKeys.length; j2++) {
+ const currKey = prefixKeys[j2];
+ altsHashes[altIdx][currKey] = true;
+ }
}
- function hbe() {
+ } else {
+ const newPartialPathsAndSuffixes = possiblePathsFrom(suffixDef, pathLength + 1, currPathPrefix);
+ newData[altIdx] = newData[altIdx].concat(newPartialPathsAndSuffixes);
+ forEach_default(newPartialPathsAndSuffixes, (item) => {
+ const prefixKeys2 = pathToHashKeys(item.partialPath);
+ forEach_default(prefixKeys2, (key) => {
+ altsHashes[altIdx][key] = true;
+ });
+ });
+ }
+ }
+ }
+ }
+ return finalResult;
+ }
+ function getLookaheadPathsForOr(occurrence, ruleGrammar, k2, orProd) {
+ const visitor2 = new InsideDefinitionFinderVisitor(occurrence, PROD_TYPE.ALTERNATION, orProd);
+ ruleGrammar.accept(visitor2);
+ return lookAheadSequenceFromAlternatives(visitor2.result, k2);
+ }
+ function getLookaheadPathsForOptionalProd(occurrence, ruleGrammar, prodType, k2) {
+ const insideDefVisitor = new InsideDefinitionFinderVisitor(occurrence, prodType);
+ ruleGrammar.accept(insideDefVisitor);
+ const insideDef = insideDefVisitor.result;
+ const afterDefWalker = new RestDefinitionFinderWalker(ruleGrammar, occurrence, prodType);
+ const afterDef = afterDefWalker.startWalking();
+ const insideFlat = new Alternative({ definition: insideDef });
+ const afterFlat = new Alternative({ definition: afterDef });
+ return lookAheadSequenceFromAlternatives([insideFlat, afterFlat], k2);
+ }
+ function containsPath(alternative, searchPath) {
+ compareOtherPath: for (let i2 = 0; i2 < alternative.length; i2++) {
+ const otherPath = alternative[i2];
+ if (otherPath.length !== searchPath.length) {
+ continue;
+ }
+ for (let j2 = 0; j2 < otherPath.length; j2++) {
+ const searchTok = searchPath[j2];
+ const otherTok = otherPath[j2];
+ const matchingTokens = searchTok === otherTok || otherTok.categoryMatchesMap[searchTok.tokenTypeIdx] !== void 0;
+ if (matchingTokens === false) {
+ continue compareOtherPath;
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+ function isStrictPrefixOfPath(prefix, other) {
+ return prefix.length < other.length && every_default(prefix, (tokType, idx) => {
+ const otherTokType = other[idx];
+ return tokType === otherTokType || otherTokType.categoryMatchesMap[tokType.tokenTypeIdx];
+ });
+ }
+ function areTokenCategoriesNotUsed(lookAheadPaths) {
+ return every_default(lookAheadPaths, (singleAltPaths) => every_default(singleAltPaths, (singlePath) => every_default(singlePath, (token2) => isEmpty_default(token2.categoryMatches))));
+ }
+ var PROD_TYPE, RestDefinitionFinderWalker, InsideDefinitionFinderVisitor;
+ var init_lookahead = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/lookahead.js"() {
+ "use strict";
+ init_lodash();
+ init_interpreter();
+ init_rest();
+ init_tokens();
+ init_api3();
+ (function(PROD_TYPE2) {
+ PROD_TYPE2[PROD_TYPE2["OPTION"] = 0] = "OPTION";
+ PROD_TYPE2[PROD_TYPE2["REPETITION"] = 1] = "REPETITION";
+ PROD_TYPE2[PROD_TYPE2["REPETITION_MANDATORY"] = 2] = "REPETITION_MANDATORY";
+ PROD_TYPE2[PROD_TYPE2["REPETITION_MANDATORY_WITH_SEPARATOR"] = 3] = "REPETITION_MANDATORY_WITH_SEPARATOR";
+ PROD_TYPE2[PROD_TYPE2["REPETITION_WITH_SEPARATOR"] = 4] = "REPETITION_WITH_SEPARATOR";
+ PROD_TYPE2[PROD_TYPE2["ALTERNATION"] = 5] = "ALTERNATION";
+ })(PROD_TYPE || (PROD_TYPE = {}));
+ __name(getProdType, "getProdType");
+ __name(getLookaheadPaths, "getLookaheadPaths");
+ __name(buildLookaheadFuncForOr, "buildLookaheadFuncForOr");
+ __name(buildLookaheadFuncForOptionalProd, "buildLookaheadFuncForOptionalProd");
+ __name(buildAlternativesLookAheadFunc, "buildAlternativesLookAheadFunc");
+ __name(buildSingleAlternativeLookaheadFunction, "buildSingleAlternativeLookaheadFunction");
+ RestDefinitionFinderWalker = class extends RestWalker {
+ static {
+ __name(this, "RestDefinitionFinderWalker");
+ }
+ constructor(topProd, targetOccurrence, targetProdType) {
+ super();
+ this.topProd = topProd;
+ this.targetOccurrence = targetOccurrence;
+ this.targetProdType = targetProdType;
+ }
+ startWalking() {
+ this.walk(this.topProd);
+ return this.restDef;
+ }
+ checkIsTarget(node2, expectedProdType, currRest, prevRest) {
+ if (node2.idx === this.targetOccurrence && this.targetProdType === expectedProdType) {
+ this.restDef = currRest.concat(prevRest);
+ return true;
+ }
+ return false;
+ }
+ walkOption(optionProd, currRest, prevRest) {
+ if (!this.checkIsTarget(optionProd, PROD_TYPE.OPTION, currRest, prevRest)) {
+ super.walkOption(optionProd, currRest, prevRest);
+ }
+ }
+ walkAtLeastOne(atLeastOneProd, currRest, prevRest) {
+ if (!this.checkIsTarget(atLeastOneProd, PROD_TYPE.REPETITION_MANDATORY, currRest, prevRest)) {
+ super.walkOption(atLeastOneProd, currRest, prevRest);
+ }
+ }
+ walkAtLeastOneSep(atLeastOneSepProd, currRest, prevRest) {
+ if (!this.checkIsTarget(atLeastOneSepProd, PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR, currRest, prevRest)) {
+ super.walkOption(atLeastOneSepProd, currRest, prevRest);
+ }
+ }
+ walkMany(manyProd, currRest, prevRest) {
+ if (!this.checkIsTarget(manyProd, PROD_TYPE.REPETITION, currRest, prevRest)) {
+ super.walkOption(manyProd, currRest, prevRest);
+ }
+ }
+ walkManySep(manySepProd, currRest, prevRest) {
+ if (!this.checkIsTarget(manySepProd, PROD_TYPE.REPETITION_WITH_SEPARATOR, currRest, prevRest)) {
+ super.walkOption(manySepProd, currRest, prevRest);
+ }
+ }
+ };
+ InsideDefinitionFinderVisitor = class extends GAstVisitor {
+ static {
+ __name(this, "InsideDefinitionFinderVisitor");
+ }
+ constructor(targetOccurrence, targetProdType, targetRef) {
+ super();
+ this.targetOccurrence = targetOccurrence;
+ this.targetProdType = targetProdType;
+ this.targetRef = targetRef;
+ this.result = [];
+ }
+ checkIsTarget(node2, expectedProdName) {
+ if (node2.idx === this.targetOccurrence && this.targetProdType === expectedProdName && (this.targetRef === void 0 || node2 === this.targetRef)) {
+ this.result = node2.definition;
+ }
+ }
+ visitOption(node2) {
+ this.checkIsTarget(node2, PROD_TYPE.OPTION);
+ }
+ visitRepetition(node2) {
+ this.checkIsTarget(node2, PROD_TYPE.REPETITION);
+ }
+ visitRepetitionMandatory(node2) {
+ this.checkIsTarget(node2, PROD_TYPE.REPETITION_MANDATORY);
+ }
+ visitRepetitionMandatoryWithSeparator(node2) {
+ this.checkIsTarget(node2, PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR);
+ }
+ visitRepetitionWithSeparator(node2) {
+ this.checkIsTarget(node2, PROD_TYPE.REPETITION_WITH_SEPARATOR);
+ }
+ visitAlternation(node2) {
+ this.checkIsTarget(node2, PROD_TYPE.ALTERNATION);
+ }
+ };
+ __name(initializeArrayOfArrays, "initializeArrayOfArrays");
+ __name(pathToHashKeys, "pathToHashKeys");
+ __name(isUniquePrefixHash, "isUniquePrefixHash");
+ __name(lookAheadSequenceFromAlternatives, "lookAheadSequenceFromAlternatives");
+ __name(getLookaheadPathsForOr, "getLookaheadPathsForOr");
+ __name(getLookaheadPathsForOptionalProd, "getLookaheadPathsForOptionalProd");
+ __name(containsPath, "containsPath");
+ __name(isStrictPrefixOfPath, "isStrictPrefixOfPath");
+ __name(areTokenCategoriesNotUsed, "areTokenCategoriesNotUsed");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/checks.js
+ function validateLookahead(options3) {
+ const lookaheadValidationErrorMessages = options3.lookaheadStrategy.validate({
+ rules: options3.rules,
+ tokenTypes: options3.tokenTypes,
+ grammarName: options3.grammarName
+ });
+ return map_default(lookaheadValidationErrorMessages, (errorMessage) => Object.assign({ type: ParserDefinitionErrorType.CUSTOM_LOOKAHEAD_VALIDATION }, errorMessage));
+ }
+ function validateGrammar(topLevels, tokenTypes, errMsgProvider, grammarName) {
+ const duplicateErrors = flatMap_default(topLevels, (currTopLevel) => validateDuplicateProductions(currTopLevel, errMsgProvider));
+ const termsNamespaceConflictErrors = checkTerminalAndNoneTerminalsNameSpace(topLevels, tokenTypes, errMsgProvider);
+ const tooManyAltsErrors = flatMap_default(topLevels, (curRule) => validateTooManyAlts(curRule, errMsgProvider));
+ const duplicateRulesError = flatMap_default(topLevels, (curRule) => validateRuleDoesNotAlreadyExist(curRule, topLevels, grammarName, errMsgProvider));
+ return duplicateErrors.concat(termsNamespaceConflictErrors, tooManyAltsErrors, duplicateRulesError);
+ }
+ function validateDuplicateProductions(topLevelRule, errMsgProvider) {
+ const collectorVisitor2 = new OccurrenceValidationCollector();
+ topLevelRule.accept(collectorVisitor2);
+ const allRuleProductions = collectorVisitor2.allProductions;
+ const productionGroups = groupBy_default(allRuleProductions, identifyProductionForDuplicates);
+ const duplicates = pickBy_default(productionGroups, (currGroup) => {
+ return currGroup.length > 1;
+ });
+ const errors = map_default(values_default(duplicates), (currDuplicates) => {
+ const firstProd = head_default(currDuplicates);
+ const msg = errMsgProvider.buildDuplicateFoundError(topLevelRule, currDuplicates);
+ const dslName = getProductionDslName(firstProd);
+ const defError = {
+ message: msg,
+ type: ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,
+ ruleName: topLevelRule.name,
+ dslName,
+ occurrence: firstProd.idx
+ };
+ const param = getExtraProductionArgument(firstProd);
+ if (param) {
+ defError.parameter = param;
+ }
+ return defError;
+ });
+ return errors;
+ }
+ function identifyProductionForDuplicates(prod) {
+ return `${getProductionDslName(prod)}_#_${prod.idx}_#_${getExtraProductionArgument(prod)}`;
+ }
+ function getExtraProductionArgument(prod) {
+ if (prod instanceof Terminal) {
+ return prod.terminalType.name;
+ } else if (prod instanceof NonTerminal) {
+ return prod.nonTerminalName;
+ } else {
+ return "";
+ }
+ }
+ function validateRuleDoesNotAlreadyExist(rule, allRules, className, errMsgProvider) {
+ const errors = [];
+ const occurrences = reduce_default(allRules, (result, curRule) => {
+ if (curRule.name === rule.name) {
+ return result + 1;
+ }
+ return result;
+ }, 0);
+ if (occurrences > 1) {
+ const errMsg = errMsgProvider.buildDuplicateRuleNameError({
+ topLevelRule: rule,
+ grammarName: className
+ });
+ errors.push({
+ message: errMsg,
+ type: ParserDefinitionErrorType.DUPLICATE_RULE_NAME,
+ ruleName: rule.name
+ });
+ }
+ return errors;
+ }
+ function validateRuleIsOverridden(ruleName, definedRulesNames, className) {
+ const errors = [];
+ let errMsg;
+ if (!includes_default(definedRulesNames, ruleName)) {
+ errMsg = `Invalid rule override, rule: ->${ruleName}<- cannot be overridden in the grammar: ->${className}<-as it is not defined in any of the super grammars `;
+ errors.push({
+ message: errMsg,
+ type: ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,
+ ruleName
+ });
+ }
+ return errors;
+ }
+ function validateNoLeftRecursion(topRule, currRule, errMsgProvider, path4 = []) {
+ const errors = [];
+ const nextNonTerminals = getFirstNoneTerminal(currRule.definition);
+ if (isEmpty_default(nextNonTerminals)) {
+ return [];
+ } else {
+ const ruleName = topRule.name;
+ const foundLeftRecursion = includes_default(nextNonTerminals, topRule);
+ if (foundLeftRecursion) {
+ errors.push({
+ message: errMsgProvider.buildLeftRecursionError({
+ topLevelRule: topRule,
+ leftRecursionPath: path4
+ }),
+ type: ParserDefinitionErrorType.LEFT_RECURSION,
+ ruleName
+ });
+ }
+ const validNextSteps = difference_default(nextNonTerminals, path4.concat([topRule]));
+ const errorsFromNextSteps = flatMap_default(validNextSteps, (currRefRule) => {
+ const newPath = clone_default2(path4);
+ newPath.push(currRefRule);
+ return validateNoLeftRecursion(topRule, currRefRule, errMsgProvider, newPath);
+ });
+ return errors.concat(errorsFromNextSteps);
+ }
+ }
+ function getFirstNoneTerminal(definition) {
+ let result = [];
+ if (isEmpty_default(definition)) {
+ return result;
+ }
+ const firstProd = head_default(definition);
+ if (firstProd instanceof NonTerminal) {
+ result.push(firstProd.referencedRule);
+ } else if (firstProd instanceof Alternative || firstProd instanceof Option2 || firstProd instanceof RepetitionMandatory || firstProd instanceof RepetitionMandatoryWithSeparator || firstProd instanceof RepetitionWithSeparator || firstProd instanceof Repetition) {
+ result = result.concat(getFirstNoneTerminal(firstProd.definition));
+ } else if (firstProd instanceof Alternation) {
+ result = flatten_default(map_default(firstProd.definition, (currSubDef) => getFirstNoneTerminal(currSubDef.definition)));
+ } else if (firstProd instanceof Terminal) {
+ } else {
+ throw Error("non exhaustive match");
+ }
+ const isFirstOptional = isOptionalProd(firstProd);
+ const hasMore = definition.length > 1;
+ if (isFirstOptional && hasMore) {
+ const rest = drop_default(definition);
+ return result.concat(getFirstNoneTerminal(rest));
+ } else {
+ return result;
+ }
+ }
+ function validateEmptyOrAlternative(topLevelRule, errMsgProvider) {
+ const orCollector = new OrCollector();
+ topLevelRule.accept(orCollector);
+ const ors = orCollector.alternations;
+ const errors = flatMap_default(ors, (currOr) => {
+ const exceptLast = dropRight_default(currOr.definition);
+ return flatMap_default(exceptLast, (currAlternative, currAltIdx) => {
+ const possibleFirstInAlt = nextPossibleTokensAfter([currAlternative], [], tokenStructuredMatcher, 1);
+ if (isEmpty_default(possibleFirstInAlt)) {
+ return [
+ {
+ message: errMsgProvider.buildEmptyAlternationError({
+ topLevelRule,
+ alternation: currOr,
+ emptyChoiceIdx: currAltIdx
+ }),
+ type: ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,
+ ruleName: topLevelRule.name,
+ occurrence: currOr.idx,
+ alternative: currAltIdx + 1
+ }
+ ];
+ } else {
+ return [];
+ }
+ });
+ });
+ return errors;
+ }
+ function validateAmbiguousAlternationAlternatives(topLevelRule, globalMaxLookahead, errMsgProvider) {
+ const orCollector = new OrCollector();
+ topLevelRule.accept(orCollector);
+ let ors = orCollector.alternations;
+ ors = reject_default(ors, (currOr) => currOr.ignoreAmbiguities === true);
+ const errors = flatMap_default(ors, (currOr) => {
+ const currOccurrence = currOr.idx;
+ const actualMaxLookahead = currOr.maxLookahead || globalMaxLookahead;
+ const alternatives = getLookaheadPathsForOr(currOccurrence, topLevelRule, actualMaxLookahead, currOr);
+ const altsAmbiguityErrors = checkAlternativesAmbiguities(alternatives, currOr, topLevelRule, errMsgProvider);
+ const altsPrefixAmbiguityErrors = checkPrefixAlternativesAmbiguities(alternatives, currOr, topLevelRule, errMsgProvider);
+ return altsAmbiguityErrors.concat(altsPrefixAmbiguityErrors);
+ });
+ return errors;
+ }
+ function validateTooManyAlts(topLevelRule, errMsgProvider) {
+ const orCollector = new OrCollector();
+ topLevelRule.accept(orCollector);
+ const ors = orCollector.alternations;
+ const errors = flatMap_default(ors, (currOr) => {
+ if (currOr.definition.length > 255) {
+ return [
+ {
+ message: errMsgProvider.buildTooManyAlternativesError({
+ topLevelRule,
+ alternation: currOr
+ }),
+ type: ParserDefinitionErrorType.TOO_MANY_ALTS,
+ ruleName: topLevelRule.name,
+ occurrence: currOr.idx
+ }
+ ];
+ } else {
+ return [];
+ }
+ });
+ return errors;
+ }
+ function validateSomeNonEmptyLookaheadPath(topLevelRules, maxLookahead, errMsgProvider) {
+ const errors = [];
+ forEach_default(topLevelRules, (currTopRule) => {
+ const collectorVisitor2 = new RepetitionCollector();
+ currTopRule.accept(collectorVisitor2);
+ const allRuleProductions = collectorVisitor2.allProductions;
+ forEach_default(allRuleProductions, (currProd) => {
+ const prodType = getProdType(currProd);
+ const actualMaxLookahead = currProd.maxLookahead || maxLookahead;
+ const currOccurrence = currProd.idx;
+ const paths = getLookaheadPathsForOptionalProd(currOccurrence, currTopRule, prodType, actualMaxLookahead);
+ const pathsInsideProduction = paths[0];
+ if (isEmpty_default(flatten_default(pathsInsideProduction))) {
+ const errMsg = errMsgProvider.buildEmptyRepetitionError({
+ topLevelRule: currTopRule,
+ repetition: currProd
+ });
+ errors.push({
+ message: errMsg,
+ type: ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,
+ ruleName: currTopRule.name
+ });
+ }
+ });
+ });
+ return errors;
+ }
+ function checkAlternativesAmbiguities(alternatives, alternation2, rule, errMsgProvider) {
+ const foundAmbiguousPaths = [];
+ const identicalAmbiguities = reduce_default(alternatives, (result, currAlt, currAltIdx) => {
+ if (alternation2.definition[currAltIdx].ignoreAmbiguities === true) {
+ return result;
+ }
+ forEach_default(currAlt, (currPath) => {
+ const altsCurrPathAppearsIn = [currAltIdx];
+ forEach_default(alternatives, (currOtherAlt, currOtherAltIdx) => {
+ if (currAltIdx !== currOtherAltIdx && containsPath(currOtherAlt, currPath) && // ignore (skip) ambiguities with this "other" alternative
+ alternation2.definition[currOtherAltIdx].ignoreAmbiguities !== true) {
+ altsCurrPathAppearsIn.push(currOtherAltIdx);
+ }
+ });
+ if (altsCurrPathAppearsIn.length > 1 && !containsPath(foundAmbiguousPaths, currPath)) {
+ foundAmbiguousPaths.push(currPath);
+ result.push({
+ alts: altsCurrPathAppearsIn,
+ path: currPath
+ });
+ }
+ });
+ return result;
+ }, []);
+ const currErrors = map_default(identicalAmbiguities, (currAmbDescriptor) => {
+ const ambgIndices = map_default(currAmbDescriptor.alts, (currAltIdx) => currAltIdx + 1);
+ const currMessage = errMsgProvider.buildAlternationAmbiguityError({
+ topLevelRule: rule,
+ alternation: alternation2,
+ ambiguityIndices: ambgIndices,
+ prefixPath: currAmbDescriptor.path
+ });
+ return {
+ message: currMessage,
+ type: ParserDefinitionErrorType.AMBIGUOUS_ALTS,
+ ruleName: rule.name,
+ occurrence: alternation2.idx,
+ alternatives: currAmbDescriptor.alts
+ };
+ });
+ return currErrors;
+ }
+ function checkPrefixAlternativesAmbiguities(alternatives, alternation2, rule, errMsgProvider) {
+ const pathsAndIndices = reduce_default(alternatives, (result, currAlt, idx) => {
+ const currPathsAndIdx = map_default(currAlt, (currPath) => {
+ return { idx, path: currPath };
+ });
+ return result.concat(currPathsAndIdx);
+ }, []);
+ const errors = compact_default(flatMap_default(pathsAndIndices, (currPathAndIdx) => {
+ const alternativeGast = alternation2.definition[currPathAndIdx.idx];
+ if (alternativeGast.ignoreAmbiguities === true) {
+ return [];
+ }
+ const targetIdx = currPathAndIdx.idx;
+ const targetPath = currPathAndIdx.path;
+ const prefixAmbiguitiesPathsAndIndices = filter_default3(pathsAndIndices, (searchPathAndIdx) => {
+ return (
+ // ignore (skip) ambiguities with this "other" alternative
+ alternation2.definition[searchPathAndIdx.idx].ignoreAmbiguities !== true && searchPathAndIdx.idx < targetIdx && // checking for strict prefix because identical lookaheads
+ // will be be detected using a different validation.
+ isStrictPrefixOfPath(searchPathAndIdx.path, targetPath)
+ );
+ });
+ const currPathPrefixErrors = map_default(prefixAmbiguitiesPathsAndIndices, (currAmbPathAndIdx) => {
+ const ambgIndices = [currAmbPathAndIdx.idx + 1, targetIdx + 1];
+ const occurrence = alternation2.idx === 0 ? "" : alternation2.idx;
+ const message = errMsgProvider.buildAlternationPrefixAmbiguityError({
+ topLevelRule: rule,
+ alternation: alternation2,
+ ambiguityIndices: ambgIndices,
+ prefixPath: currAmbPathAndIdx.path
+ });
+ return {
+ message,
+ type: ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,
+ ruleName: rule.name,
+ occurrence,
+ alternatives: ambgIndices
+ };
+ });
+ return currPathPrefixErrors;
+ }));
+ return errors;
+ }
+ function checkTerminalAndNoneTerminalsNameSpace(topLevels, tokenTypes, errMsgProvider) {
+ const errors = [];
+ const tokenNames = map_default(tokenTypes, (currToken) => currToken.name);
+ forEach_default(topLevels, (currRule) => {
+ const currRuleName = currRule.name;
+ if (includes_default(tokenNames, currRuleName)) {
+ const errMsg = errMsgProvider.buildNamespaceConflictError(currRule);
+ errors.push({
+ message: errMsg,
+ type: ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,
+ ruleName: currRuleName
+ });
+ }
+ });
+ return errors;
+ }
+ var OccurrenceValidationCollector, OrCollector, RepetitionCollector;
+ var init_checks = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/checks.js"() {
+ "use strict";
+ init_lodash();
+ init_parser();
+ init_api3();
+ init_lookahead();
+ init_interpreter();
+ init_tokens();
+ __name(validateLookahead, "validateLookahead");
+ __name(validateGrammar, "validateGrammar");
+ __name(validateDuplicateProductions, "validateDuplicateProductions");
+ __name(identifyProductionForDuplicates, "identifyProductionForDuplicates");
+ __name(getExtraProductionArgument, "getExtraProductionArgument");
+ OccurrenceValidationCollector = class extends GAstVisitor {
+ static {
+ __name(this, "OccurrenceValidationCollector");
+ }
+ constructor() {
+ super(...arguments);
+ this.allProductions = [];
+ }
+ visitNonTerminal(subrule) {
+ this.allProductions.push(subrule);
+ }
+ visitOption(option2) {
+ this.allProductions.push(option2);
+ }
+ visitRepetitionWithSeparator(manySep) {
+ this.allProductions.push(manySep);
+ }
+ visitRepetitionMandatory(atLeastOne) {
+ this.allProductions.push(atLeastOne);
+ }
+ visitRepetitionMandatoryWithSeparator(atLeastOneSep) {
+ this.allProductions.push(atLeastOneSep);
+ }
+ visitRepetition(many) {
+ this.allProductions.push(many);
+ }
+ visitAlternation(or) {
+ this.allProductions.push(or);
+ }
+ visitTerminal(terminal) {
+ this.allProductions.push(terminal);
+ }
+ };
+ __name(validateRuleDoesNotAlreadyExist, "validateRuleDoesNotAlreadyExist");
+ __name(validateRuleIsOverridden, "validateRuleIsOverridden");
+ __name(validateNoLeftRecursion, "validateNoLeftRecursion");
+ __name(getFirstNoneTerminal, "getFirstNoneTerminal");
+ OrCollector = class extends GAstVisitor {
+ static {
+ __name(this, "OrCollector");
+ }
+ constructor() {
+ super(...arguments);
+ this.alternations = [];
+ }
+ visitAlternation(node2) {
+ this.alternations.push(node2);
+ }
+ };
+ __name(validateEmptyOrAlternative, "validateEmptyOrAlternative");
+ __name(validateAmbiguousAlternationAlternatives, "validateAmbiguousAlternationAlternatives");
+ RepetitionCollector = class extends GAstVisitor {
+ static {
+ __name(this, "RepetitionCollector");
+ }
+ constructor() {
+ super(...arguments);
+ this.allProductions = [];
+ }
+ visitRepetitionWithSeparator(manySep) {
+ this.allProductions.push(manySep);
+ }
+ visitRepetitionMandatory(atLeastOne) {
+ this.allProductions.push(atLeastOne);
+ }
+ visitRepetitionMandatoryWithSeparator(atLeastOneSep) {
+ this.allProductions.push(atLeastOneSep);
+ }
+ visitRepetition(many) {
+ this.allProductions.push(many);
+ }
+ };
+ __name(validateTooManyAlts, "validateTooManyAlts");
+ __name(validateSomeNonEmptyLookaheadPath, "validateSomeNonEmptyLookaheadPath");
+ __name(checkAlternativesAmbiguities, "checkAlternativesAmbiguities");
+ __name(checkPrefixAlternativesAmbiguities, "checkPrefixAlternativesAmbiguities");
+ __name(checkTerminalAndNoneTerminalsNameSpace, "checkTerminalAndNoneTerminalsNameSpace");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_resolver_public.js
+ function resolveGrammar2(options3) {
+ const actualOptions = defaults_default(options3, {
+ errMsgProvider: defaultGrammarResolverErrorProvider
+ });
+ const topRulesTable = {};
+ forEach_default(options3.rules, (rule) => {
+ topRulesTable[rule.name] = rule;
+ });
+ return resolveGrammar(topRulesTable, actualOptions.errMsgProvider);
+ }
+ function validateGrammar2(options3) {
+ options3 = defaults_default(options3, {
+ errMsgProvider: defaultGrammarValidatorErrorProvider
+ });
+ return validateGrammar(options3.rules, options3.tokenTypes, options3.errMsgProvider, options3.grammarName);
+ }
+ var init_gast_resolver_public = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_resolver_public.js"() {
+ "use strict";
+ init_lodash();
+ init_resolver();
+ init_checks();
+ init_errors_public();
+ __name(resolveGrammar2, "resolveGrammar");
+ __name(validateGrammar2, "validateGrammar");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/exceptions_public.js
+ function isRecognitionException(error3) {
+ return includes_default(RECOGNITION_EXCEPTION_NAMES, error3.name);
+ }
+ var MISMATCHED_TOKEN_EXCEPTION, NO_VIABLE_ALT_EXCEPTION, EARLY_EXIT_EXCEPTION, NOT_ALL_INPUT_PARSED_EXCEPTION, RECOGNITION_EXCEPTION_NAMES, RecognitionException, MismatchedTokenException, NoViableAltException, NotAllInputParsedException, EarlyExitException;
+ var init_exceptions_public = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/exceptions_public.js"() {
+ "use strict";
+ init_lodash();
+ MISMATCHED_TOKEN_EXCEPTION = "MismatchedTokenException";
+ NO_VIABLE_ALT_EXCEPTION = "NoViableAltException";
+ EARLY_EXIT_EXCEPTION = "EarlyExitException";
+ NOT_ALL_INPUT_PARSED_EXCEPTION = "NotAllInputParsedException";
+ RECOGNITION_EXCEPTION_NAMES = [
+ MISMATCHED_TOKEN_EXCEPTION,
+ NO_VIABLE_ALT_EXCEPTION,
+ EARLY_EXIT_EXCEPTION,
+ NOT_ALL_INPUT_PARSED_EXCEPTION
+ ];
+ Object.freeze(RECOGNITION_EXCEPTION_NAMES);
+ __name(isRecognitionException, "isRecognitionException");
+ RecognitionException = class extends Error {
+ static {
+ __name(this, "RecognitionException");
+ }
+ constructor(message, token2) {
+ super(message);
+ this.token = token2;
+ this.resyncedTokens = [];
+ Object.setPrototypeOf(this, new.target.prototype);
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, this.constructor);
+ }
+ }
+ };
+ MismatchedTokenException = class extends RecognitionException {
+ static {
+ __name(this, "MismatchedTokenException");
+ }
+ constructor(message, token2, previousToken) {
+ super(message, token2);
+ this.previousToken = previousToken;
+ this.name = MISMATCHED_TOKEN_EXCEPTION;
+ }
+ };
+ NoViableAltException = class extends RecognitionException {
+ static {
+ __name(this, "NoViableAltException");
+ }
+ constructor(message, token2, previousToken) {
+ super(message, token2);
+ this.previousToken = previousToken;
+ this.name = NO_VIABLE_ALT_EXCEPTION;
+ }
+ };
+ NotAllInputParsedException = class extends RecognitionException {
+ static {
+ __name(this, "NotAllInputParsedException");
+ }
+ constructor(message, token2) {
+ super(message, token2);
+ this.name = NOT_ALL_INPUT_PARSED_EXCEPTION;
+ }
+ };
+ EarlyExitException = class extends RecognitionException {
+ static {
+ __name(this, "EarlyExitException");
+ }
+ constructor(message, token2, previousToken) {
+ super(message, token2);
+ this.previousToken = previousToken;
+ this.name = EARLY_EXIT_EXCEPTION;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/recoverable.js
+ function attemptInRepetitionRecovery(prodFunc, args, lookaheadFunc, dslMethodIdx, prodOccurrence, nextToksWalker, notStuck) {
+ const key = this.getKeyForAutomaticLookahead(dslMethodIdx, prodOccurrence);
+ let firstAfterRepInfo = this.firstAfterRepMap[key];
+ if (firstAfterRepInfo === void 0) {
+ const currRuleName = this.getCurrRuleFullName();
+ const ruleGrammar = this.getGAstProductions()[currRuleName];
+ const walker = new nextToksWalker(ruleGrammar, prodOccurrence);
+ firstAfterRepInfo = walker.startWalking();
+ this.firstAfterRepMap[key] = firstAfterRepInfo;
+ }
+ let expectTokAfterLastMatch = firstAfterRepInfo.token;
+ let nextTokIdx = firstAfterRepInfo.occurrence;
+ const isEndOfRule = firstAfterRepInfo.isEndOfRule;
+ if (this.RULE_STACK.length === 1 && isEndOfRule && expectTokAfterLastMatch === void 0) {
+ expectTokAfterLastMatch = EOF;
+ nextTokIdx = 1;
+ }
+ if (expectTokAfterLastMatch === void 0 || nextTokIdx === void 0) {
+ return;
+ }
+ if (this.shouldInRepetitionRecoveryBeTried(expectTokAfterLastMatch, nextTokIdx, notStuck)) {
+ this.tryInRepetitionRecovery(prodFunc, args, lookaheadFunc, expectTokAfterLastMatch);
+ }
+ }
+ var EOF_FOLLOW_KEY, IN_RULE_RECOVERY_EXCEPTION, InRuleRecoveryException, Recoverable;
+ var init_recoverable = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/recoverable.js"() {
+ "use strict";
+ init_tokens_public();
+ init_lodash();
+ init_exceptions_public();
+ init_constants2();
+ init_parser();
+ EOF_FOLLOW_KEY = {};
+ IN_RULE_RECOVERY_EXCEPTION = "InRuleRecoveryException";
+ InRuleRecoveryException = class extends Error {
+ static {
+ __name(this, "InRuleRecoveryException");
+ }
+ constructor(message) {
+ super(message);
+ this.name = IN_RULE_RECOVERY_EXCEPTION;
+ }
+ };
+ Recoverable = class {
+ static {
+ __name(this, "Recoverable");
+ }
+ initRecoverable(config6) {
+ this.firstAfterRepMap = {};
+ this.resyncFollows = {};
+ this.recoveryEnabled = has_default(config6, "recoveryEnabled") ? config6.recoveryEnabled : DEFAULT_PARSER_CONFIG.recoveryEnabled;
+ if (this.recoveryEnabled) {
+ this.attemptInRepetitionRecovery = attemptInRepetitionRecovery;
+ }
+ }
+ getTokenToInsert(tokType) {
+ const tokToInsert = createTokenInstance(tokType, "", NaN, NaN, NaN, NaN, NaN, NaN);
+ tokToInsert.isInsertedInRecovery = true;
+ return tokToInsert;
+ }
+ canTokenTypeBeInsertedInRecovery(tokType) {
+ return true;
+ }
+ canTokenTypeBeDeletedInRecovery(tokType) {
+ return true;
+ }
+ tryInRepetitionRecovery(grammarRule, grammarRuleArgs, lookAheadFunc, expectedTokType) {
+ const reSyncTokType = this.findReSyncTokenType();
+ const savedLexerState = this.exportLexerState();
+ const resyncedTokens = [];
+ let passedResyncPoint = false;
+ const nextTokenWithoutResync = this.LA(1);
+ let currToken = this.LA(1);
+ const generateErrorMessage = /* @__PURE__ */ __name(() => {
+ const previousToken = this.LA(0);
+ const msg = this.errorMessageProvider.buildMismatchTokenMessage({
+ expected: expectedTokType,
+ actual: nextTokenWithoutResync,
+ previous: previousToken,
+ ruleName: this.getCurrRuleFullName()
+ });
+ const error3 = new MismatchedTokenException(msg, nextTokenWithoutResync, this.LA(0));
+ error3.resyncedTokens = dropRight_default(resyncedTokens);
+ this.SAVE_ERROR(error3);
+ }, "generateErrorMessage");
+ while (!passedResyncPoint) {
+ if (this.tokenMatcher(currToken, expectedTokType)) {
+ generateErrorMessage();
+ return;
+ } else if (lookAheadFunc.call(this)) {
+ generateErrorMessage();
+ grammarRule.apply(this, grammarRuleArgs);
+ return;
+ } else if (this.tokenMatcher(currToken, reSyncTokType)) {
+ passedResyncPoint = true;
+ } else {
+ currToken = this.SKIP_TOKEN();
+ this.addToResyncTokens(currToken, resyncedTokens);
}
- function kbe() {
+ }
+ this.importLexerState(savedLexerState);
+ }
+ shouldInRepetitionRecoveryBeTried(expectTokAfterLastMatch, nextTokIdx, notStuck) {
+ if (notStuck === false) {
+ return false;
+ }
+ if (this.tokenMatcher(this.LA(1), expectTokAfterLastMatch)) {
+ return false;
+ }
+ if (this.isBackTracking()) {
+ return false;
+ }
+ if (this.canPerformInRuleRecovery(expectTokAfterLastMatch, this.getFollowsForInRuleRecovery(expectTokAfterLastMatch, nextTokIdx))) {
+ return false;
+ }
+ return true;
+ }
+ // Error Recovery functionality
+ getFollowsForInRuleRecovery(tokType, tokIdxInRule) {
+ const grammarPath = this.getCurrentGrammarPath(tokType, tokIdxInRule);
+ const follows = this.getNextPossibleTokenTypes(grammarPath);
+ return follows;
+ }
+ tryInRuleRecovery(expectedTokType, follows) {
+ if (this.canRecoverWithSingleTokenInsertion(expectedTokType, follows)) {
+ const tokToInsert = this.getTokenToInsert(expectedTokType);
+ return tokToInsert;
+ }
+ if (this.canRecoverWithSingleTokenDeletion(expectedTokType)) {
+ const nextTok = this.SKIP_TOKEN();
+ this.consumeToken();
+ return nextTok;
+ }
+ throw new InRuleRecoveryException("sad sad panda");
+ }
+ canPerformInRuleRecovery(expectedToken, follows) {
+ return this.canRecoverWithSingleTokenInsertion(expectedToken, follows) || this.canRecoverWithSingleTokenDeletion(expectedToken);
+ }
+ canRecoverWithSingleTokenInsertion(expectedTokType, follows) {
+ if (!this.canTokenTypeBeInsertedInRecovery(expectedTokType)) {
+ return false;
+ }
+ if (isEmpty_default(follows)) {
+ return false;
+ }
+ const mismatchedTok = this.LA(1);
+ const isMisMatchedTokInFollows = find_default(follows, (possibleFollowsTokType) => {
+ return this.tokenMatcher(mismatchedTok, possibleFollowsTokType);
+ }) !== void 0;
+ return isMisMatchedTokInFollows;
+ }
+ canRecoverWithSingleTokenDeletion(expectedTokType) {
+ if (!this.canTokenTypeBeDeletedInRecovery(expectedTokType)) {
+ return false;
+ }
+ const isNextTokenWhatIsExpected = this.tokenMatcher(this.LA(2), expectedTokType);
+ return isNextTokenWhatIsExpected;
+ }
+ isInCurrentRuleReSyncSet(tokenTypeIdx) {
+ const followKey = this.getCurrFollowKey();
+ const currentRuleReSyncSet = this.getFollowSetFromFollowKey(followKey);
+ return includes_default(currentRuleReSyncSet, tokenTypeIdx);
+ }
+ findReSyncTokenType() {
+ const allPossibleReSyncTokTypes = this.flattenFollowSet();
+ let nextToken = this.LA(1);
+ let k2 = 2;
+ while (true) {
+ const foundMatch = find_default(allPossibleReSyncTokTypes, (resyncTokType) => {
+ const canMatch = tokenMatcher(nextToken, resyncTokType);
+ return canMatch;
+ });
+ if (foundMatch !== void 0) {
+ return foundMatch;
}
- function nbe() {
+ nextToken = this.LA(k2);
+ k2++;
+ }
+ }
+ getCurrFollowKey() {
+ if (this.RULE_STACK.length === 1) {
+ return EOF_FOLLOW_KEY;
+ }
+ const currRuleShortName = this.getLastExplicitRuleShortName();
+ const currRuleIdx = this.getLastExplicitRuleOccurrenceIndex();
+ const prevRuleShortName = this.getPreviousExplicitRuleShortName();
+ return {
+ ruleName: this.shortRuleNameToFullName(currRuleShortName),
+ idxInCallingRule: currRuleIdx,
+ inRule: this.shortRuleNameToFullName(prevRuleShortName)
+ };
+ }
+ buildFullFollowKeyStack() {
+ const explicitRuleStack = this.RULE_STACK;
+ const explicitOccurrenceStack = this.RULE_OCCURRENCE_STACK;
+ return map_default(explicitRuleStack, (ruleName, idx) => {
+ if (idx === 0) {
+ return EOF_FOLLOW_KEY;
}
- function qbe() {
+ return {
+ ruleName: this.shortRuleNameToFullName(ruleName),
+ idxInCallingRule: explicitOccurrenceStack[idx],
+ inRule: this.shortRuleNameToFullName(explicitRuleStack[idx - 1])
+ };
+ });
+ }
+ flattenFollowSet() {
+ const followStack = map_default(this.buildFullFollowKeyStack(), (currKey) => {
+ return this.getFollowSetFromFollowKey(currKey);
+ });
+ return flatten_default(followStack);
+ }
+ getFollowSetFromFollowKey(followKey) {
+ if (followKey === EOF_FOLLOW_KEY) {
+ return [EOF];
+ }
+ const followName = followKey.ruleName + followKey.idxInCallingRule + IN + followKey.inRule;
+ return this.resyncFollows[followName];
+ }
+ // It does not make any sense to include a virtual EOF token in the list of resynced tokens
+ // as EOF does not really exist and thus does not contain any useful information (line/column numbers)
+ addToResyncTokens(token2, resyncTokens) {
+ if (!this.tokenMatcher(token2, EOF)) {
+ resyncTokens.push(token2);
+ }
+ return resyncTokens;
+ }
+ reSyncTo(tokType) {
+ const resyncedTokens = [];
+ let nextTok = this.LA(1);
+ while (this.tokenMatcher(nextTok, tokType) === false) {
+ nextTok = this.SKIP_TOKEN();
+ this.addToResyncTokens(nextTok, resyncedTokens);
+ }
+ return dropRight_default(resyncedTokens);
+ }
+ attemptInRepetitionRecovery(prodFunc, args, lookaheadFunc, dslMethodIdx, prodOccurrence, nextToksWalker, notStuck) {
+ }
+ getCurrentGrammarPath(tokType, tokIdxInRule) {
+ const pathRuleStack = this.getHumanReadableRuleStack();
+ const pathOccurrenceStack = clone_default2(this.RULE_OCCURRENCE_STACK);
+ const grammarPath = {
+ ruleStack: pathRuleStack,
+ occurrenceStack: pathOccurrenceStack,
+ lastTok: tokType,
+ lastTokOccurrence: tokIdxInRule
+ };
+ return grammarPath;
+ }
+ getHumanReadableRuleStack() {
+ return map_default(this.RULE_STACK, (currShortName) => this.shortRuleNameToFullName(currShortName));
+ }
+ };
+ __name(attemptInRepetitionRecovery, "attemptInRepetitionRecovery");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/keys.js
+ function getKeyForAutomaticLookahead(ruleIdx, dslMethodIdx, occurrence) {
+ return occurrence | dslMethodIdx | ruleIdx;
+ }
+ var BITS_FOR_METHOD_TYPE, BITS_FOR_OCCURRENCE_IDX, BITS_FOR_ALT_IDX, OR_IDX, OPTION_IDX, MANY_IDX, AT_LEAST_ONE_IDX, MANY_SEP_IDX, AT_LEAST_ONE_SEP_IDX, BITS_START_FOR_ALT_IDX;
+ var init_keys2 = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/keys.js"() {
+ "use strict";
+ BITS_FOR_METHOD_TYPE = 4;
+ BITS_FOR_OCCURRENCE_IDX = 8;
+ BITS_FOR_ALT_IDX = 8;
+ OR_IDX = 1 << BITS_FOR_OCCURRENCE_IDX;
+ OPTION_IDX = 2 << BITS_FOR_OCCURRENCE_IDX;
+ MANY_IDX = 3 << BITS_FOR_OCCURRENCE_IDX;
+ AT_LEAST_ONE_IDX = 4 << BITS_FOR_OCCURRENCE_IDX;
+ MANY_SEP_IDX = 5 << BITS_FOR_OCCURRENCE_IDX;
+ AT_LEAST_ONE_SEP_IDX = 6 << BITS_FOR_OCCURRENCE_IDX;
+ __name(getKeyForAutomaticLookahead, "getKeyForAutomaticLookahead");
+ BITS_START_FOR_ALT_IDX = 32 - BITS_FOR_ALT_IDX;
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/llk_lookahead.js
+ var LLkLookaheadStrategy;
+ var init_llk_lookahead = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/grammar/llk_lookahead.js"() {
+ "use strict";
+ init_lodash();
+ init_errors_public();
+ init_parser();
+ init_checks();
+ init_lookahead();
+ LLkLookaheadStrategy = class {
+ static {
+ __name(this, "LLkLookaheadStrategy");
+ }
+ constructor(options3) {
+ var _a;
+ this.maxLookahead = (_a = options3 === null || options3 === void 0 ? void 0 : options3.maxLookahead) !== null && _a !== void 0 ? _a : DEFAULT_PARSER_CONFIG.maxLookahead;
+ }
+ validate(options3) {
+ const leftRecursionErrors = this.validateNoLeftRecursion(options3.rules);
+ if (isEmpty_default(leftRecursionErrors)) {
+ const emptyAltErrors = this.validateEmptyOrAlternatives(options3.rules);
+ const ambiguousAltsErrors = this.validateAmbiguousAlternationAlternatives(options3.rules, this.maxLookahead);
+ const emptyRepetitionErrors = this.validateSomeNonEmptyLookaheadPath(options3.rules, this.maxLookahead);
+ const allErrors = [
+ ...leftRecursionErrors,
+ ...emptyAltErrors,
+ ...ambiguousAltsErrors,
+ ...emptyRepetitionErrors
+ ];
+ return allErrors;
+ }
+ return leftRecursionErrors;
+ }
+ validateNoLeftRecursion(rules) {
+ return flatMap_default(rules, (currTopRule) => validateNoLeftRecursion(currTopRule, currTopRule, defaultGrammarValidatorErrorProvider));
+ }
+ validateEmptyOrAlternatives(rules) {
+ return flatMap_default(rules, (currTopRule) => validateEmptyOrAlternative(currTopRule, defaultGrammarValidatorErrorProvider));
+ }
+ validateAmbiguousAlternationAlternatives(rules, maxLookahead) {
+ return flatMap_default(rules, (currTopRule) => validateAmbiguousAlternationAlternatives(currTopRule, maxLookahead, defaultGrammarValidatorErrorProvider));
+ }
+ validateSomeNonEmptyLookaheadPath(rules, maxLookahead) {
+ return validateSomeNonEmptyLookaheadPath(rules, maxLookahead, defaultGrammarValidatorErrorProvider);
+ }
+ buildLookaheadForAlternation(options3) {
+ return buildLookaheadFuncForOr(options3.prodOccurrence, options3.rule, options3.maxLookahead, options3.hasPredicates, options3.dynamicTokensEnabled, buildAlternativesLookAheadFunc);
+ }
+ buildLookaheadForOptional(options3) {
+ return buildLookaheadFuncForOptionalProd(options3.prodOccurrence, options3.rule, options3.maxLookahead, options3.dynamicTokensEnabled, getProdType(options3.prodType), buildSingleAlternativeLookaheadFunction);
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/looksahead.js
+ function collectMethods(rule) {
+ collectorVisitor.reset();
+ rule.accept(collectorVisitor);
+ const dslMethods = collectorVisitor.dslMethods;
+ collectorVisitor.reset();
+ return dslMethods;
+ }
+ var LooksAhead, DslMethodsCollectorVisitor, collectorVisitor;
+ var init_looksahead = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/looksahead.js"() {
+ "use strict";
+ init_lodash();
+ init_parser();
+ init_keys2();
+ init_api3();
+ init_llk_lookahead();
+ LooksAhead = class {
+ static {
+ __name(this, "LooksAhead");
+ }
+ initLooksAhead(config6) {
+ this.dynamicTokensEnabled = has_default(config6, "dynamicTokensEnabled") ? config6.dynamicTokensEnabled : DEFAULT_PARSER_CONFIG.dynamicTokensEnabled;
+ this.maxLookahead = has_default(config6, "maxLookahead") ? config6.maxLookahead : DEFAULT_PARSER_CONFIG.maxLookahead;
+ this.lookaheadStrategy = has_default(config6, "lookaheadStrategy") ? config6.lookaheadStrategy : new LLkLookaheadStrategy({ maxLookahead: this.maxLookahead });
+ this.lookAheadFuncsCache = /* @__PURE__ */ new Map();
+ }
+ preComputeLookaheadFunctions(rules) {
+ forEach_default(rules, (currRule) => {
+ this.TRACE_INIT(`${currRule.name} Rule Lookahead`, () => {
+ const { alternation: alternation2, repetition: repetition2, option: option2, repetitionMandatory: repetitionMandatory2, repetitionMandatoryWithSeparator, repetitionWithSeparator } = collectMethods(currRule);
+ forEach_default(alternation2, (currProd) => {
+ const prodIdx = currProd.idx === 0 ? "" : currProd.idx;
+ this.TRACE_INIT(`${getProductionDslName(currProd)}${prodIdx}`, () => {
+ const laFunc = this.lookaheadStrategy.buildLookaheadForAlternation({
+ prodOccurrence: currProd.idx,
+ rule: currRule,
+ maxLookahead: currProd.maxLookahead || this.maxLookahead,
+ hasPredicates: currProd.hasPredicates,
+ dynamicTokensEnabled: this.dynamicTokensEnabled
+ });
+ const key = getKeyForAutomaticLookahead(this.fullRuleNameToShort[currRule.name], OR_IDX, currProd.idx);
+ this.setLaFuncCache(key, laFunc);
+ });
+ });
+ forEach_default(repetition2, (currProd) => {
+ this.computeLookaheadFunc(currRule, currProd.idx, MANY_IDX, "Repetition", currProd.maxLookahead, getProductionDslName(currProd));
+ });
+ forEach_default(option2, (currProd) => {
+ this.computeLookaheadFunc(currRule, currProd.idx, OPTION_IDX, "Option", currProd.maxLookahead, getProductionDslName(currProd));
+ });
+ forEach_default(repetitionMandatory2, (currProd) => {
+ this.computeLookaheadFunc(currRule, currProd.idx, AT_LEAST_ONE_IDX, "RepetitionMandatory", currProd.maxLookahead, getProductionDslName(currProd));
+ });
+ forEach_default(repetitionMandatoryWithSeparator, (currProd) => {
+ this.computeLookaheadFunc(currRule, currProd.idx, AT_LEAST_ONE_SEP_IDX, "RepetitionMandatoryWithSeparator", currProd.maxLookahead, getProductionDslName(currProd));
+ });
+ forEach_default(repetitionWithSeparator, (currProd) => {
+ this.computeLookaheadFunc(currRule, currProd.idx, MANY_SEP_IDX, "RepetitionWithSeparator", currProd.maxLookahead, getProductionDslName(currProd));
+ });
+ });
+ });
+ }
+ computeLookaheadFunc(rule, prodOccurrence, prodKey, prodType, prodMaxLookahead, dslMethodName) {
+ this.TRACE_INIT(`${dslMethodName}${prodOccurrence === 0 ? "" : prodOccurrence}`, () => {
+ const laFunc = this.lookaheadStrategy.buildLookaheadForOptional({
+ prodOccurrence,
+ rule,
+ maxLookahead: prodMaxLookahead || this.maxLookahead,
+ dynamicTokensEnabled: this.dynamicTokensEnabled,
+ prodType
+ });
+ const key = getKeyForAutomaticLookahead(this.fullRuleNameToShort[rule.name], prodKey, prodOccurrence);
+ this.setLaFuncCache(key, laFunc);
+ });
+ }
+ // this actually returns a number, but it is always used as a string (object prop key)
+ getKeyForAutomaticLookahead(dslMethodIdx, occurrence) {
+ const currRuleShortName = this.getLastExplicitRuleShortName();
+ return getKeyForAutomaticLookahead(currRuleShortName, dslMethodIdx, occurrence);
+ }
+ getLaFuncFromCache(key) {
+ return this.lookAheadFuncsCache.get(key);
+ }
+ /* istanbul ignore next */
+ setLaFuncCache(key, value2) {
+ this.lookAheadFuncsCache.set(key, value2);
+ }
+ };
+ DslMethodsCollectorVisitor = class extends GAstVisitor {
+ static {
+ __name(this, "DslMethodsCollectorVisitor");
+ }
+ constructor() {
+ super(...arguments);
+ this.dslMethods = {
+ option: [],
+ alternation: [],
+ repetition: [],
+ repetitionWithSeparator: [],
+ repetitionMandatory: [],
+ repetitionMandatoryWithSeparator: []
+ };
+ }
+ reset() {
+ this.dslMethods = {
+ option: [],
+ alternation: [],
+ repetition: [],
+ repetitionWithSeparator: [],
+ repetitionMandatory: [],
+ repetitionMandatoryWithSeparator: []
+ };
+ }
+ visitOption(option2) {
+ this.dslMethods.option.push(option2);
+ }
+ visitRepetitionWithSeparator(manySep) {
+ this.dslMethods.repetitionWithSeparator.push(manySep);
+ }
+ visitRepetitionMandatory(atLeastOne) {
+ this.dslMethods.repetitionMandatory.push(atLeastOne);
+ }
+ visitRepetitionMandatoryWithSeparator(atLeastOneSep) {
+ this.dslMethods.repetitionMandatoryWithSeparator.push(atLeastOneSep);
+ }
+ visitRepetition(many) {
+ this.dslMethods.repetition.push(many);
+ }
+ visitAlternation(or) {
+ this.dslMethods.alternation.push(or);
+ }
+ };
+ collectorVisitor = new DslMethodsCollectorVisitor();
+ __name(collectMethods, "collectMethods");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/cst/cst.js
+ function setNodeLocationOnlyOffset(currNodeLocation, newLocationInfo) {
+ if (isNaN(currNodeLocation.startOffset) === true) {
+ currNodeLocation.startOffset = newLocationInfo.startOffset;
+ currNodeLocation.endOffset = newLocationInfo.endOffset;
+ } else if (currNodeLocation.endOffset < newLocationInfo.endOffset === true) {
+ currNodeLocation.endOffset = newLocationInfo.endOffset;
+ }
+ }
+ function setNodeLocationFull(currNodeLocation, newLocationInfo) {
+ if (isNaN(currNodeLocation.startOffset) === true) {
+ currNodeLocation.startOffset = newLocationInfo.startOffset;
+ currNodeLocation.startColumn = newLocationInfo.startColumn;
+ currNodeLocation.startLine = newLocationInfo.startLine;
+ currNodeLocation.endOffset = newLocationInfo.endOffset;
+ currNodeLocation.endColumn = newLocationInfo.endColumn;
+ currNodeLocation.endLine = newLocationInfo.endLine;
+ } else if (currNodeLocation.endOffset < newLocationInfo.endOffset === true) {
+ currNodeLocation.endOffset = newLocationInfo.endOffset;
+ currNodeLocation.endColumn = newLocationInfo.endColumn;
+ currNodeLocation.endLine = newLocationInfo.endLine;
+ }
+ }
+ function addTerminalToCst(node2, token2, tokenTypeName) {
+ if (node2.children[tokenTypeName] === void 0) {
+ node2.children[tokenTypeName] = [token2];
+ } else {
+ node2.children[tokenTypeName].push(token2);
+ }
+ }
+ function addNoneTerminalToCst(node2, ruleName, ruleResult) {
+ if (node2.children[ruleName] === void 0) {
+ node2.children[ruleName] = [ruleResult];
+ } else {
+ node2.children[ruleName].push(ruleResult);
+ }
+ }
+ var init_cst = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/cst/cst.js"() {
+ "use strict";
+ __name(setNodeLocationOnlyOffset, "setNodeLocationOnlyOffset");
+ __name(setNodeLocationFull, "setNodeLocationFull");
+ __name(addTerminalToCst, "addTerminalToCst");
+ __name(addNoneTerminalToCst, "addNoneTerminalToCst");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/lang/lang_extensions.js
+ function defineNameProp(obj, nameValue) {
+ Object.defineProperty(obj, NAME, {
+ enumerable: false,
+ configurable: true,
+ writable: false,
+ value: nameValue
+ });
+ }
+ var NAME;
+ var init_lang_extensions = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/lang/lang_extensions.js"() {
+ "use strict";
+ NAME = "name";
+ __name(defineNameProp, "defineNameProp");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/cst/cst_visitor.js
+ function defaultVisit(ctx, param) {
+ const childrenNames = keys_default(ctx);
+ const childrenNamesLength = childrenNames.length;
+ for (let i2 = 0; i2 < childrenNamesLength; i2++) {
+ const currChildName = childrenNames[i2];
+ const currChildArray = ctx[currChildName];
+ const currChildArrayLength = currChildArray.length;
+ for (let j2 = 0; j2 < currChildArrayLength; j2++) {
+ const currChild = currChildArray[j2];
+ if (currChild.tokenTypeIdx === void 0) {
+ this[currChild.name](currChild.children, param);
+ }
+ }
+ }
+ }
+ function createBaseSemanticVisitorConstructor(grammarName, ruleNames) {
+ const derivedConstructor = /* @__PURE__ */ __name(function() {
+ }, "derivedConstructor");
+ defineNameProp(derivedConstructor, grammarName + "BaseSemantics");
+ const semanticProto = {
+ visit: /* @__PURE__ */ __name(function(cstNode, param) {
+ if (isArray_default(cstNode)) {
+ cstNode = cstNode[0];
+ }
+ if (isUndefined_default(cstNode)) {
+ return void 0;
+ }
+ return this[cstNode.name](cstNode.children, param);
+ }, "visit"),
+ validateVisitor: /* @__PURE__ */ __name(function() {
+ const semanticDefinitionErrors = validateVisitor(this, ruleNames);
+ if (!isEmpty_default(semanticDefinitionErrors)) {
+ const errorMessages = map_default(semanticDefinitionErrors, (currDefError) => currDefError.msg);
+ throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
+ ${errorMessages.join("\n\n").replace(/\n/g, "\n ")}`);
+ }
+ }, "validateVisitor")
+ };
+ derivedConstructor.prototype = semanticProto;
+ derivedConstructor.prototype.constructor = derivedConstructor;
+ derivedConstructor._RULE_NAMES = ruleNames;
+ return derivedConstructor;
+ }
+ function createBaseVisitorConstructorWithDefaults(grammarName, ruleNames, baseConstructor) {
+ const derivedConstructor = /* @__PURE__ */ __name(function() {
+ }, "derivedConstructor");
+ defineNameProp(derivedConstructor, grammarName + "BaseSemanticsWithDefaults");
+ const withDefaultsProto = Object.create(baseConstructor.prototype);
+ forEach_default(ruleNames, (ruleName) => {
+ withDefaultsProto[ruleName] = defaultVisit;
+ });
+ derivedConstructor.prototype = withDefaultsProto;
+ derivedConstructor.prototype.constructor = derivedConstructor;
+ return derivedConstructor;
+ }
+ function validateVisitor(visitorInstance, ruleNames) {
+ const missingErrors = validateMissingCstMethods(visitorInstance, ruleNames);
+ return missingErrors;
+ }
+ function validateMissingCstMethods(visitorInstance, ruleNames) {
+ const missingRuleNames = filter_default3(ruleNames, (currRuleName) => {
+ return isFunction_default(visitorInstance[currRuleName]) === false;
+ });
+ const errors = map_default(missingRuleNames, (currRuleName) => {
+ return {
+ msg: `Missing visitor method: <${currRuleName}> on ${visitorInstance.constructor.name} CST Visitor.`,
+ type: CstVisitorDefinitionError.MISSING_METHOD,
+ methodName: currRuleName
+ };
+ });
+ return compact_default(errors);
+ }
+ var CstVisitorDefinitionError;
+ var init_cst_visitor = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/cst/cst_visitor.js"() {
+ "use strict";
+ init_lodash();
+ init_lang_extensions();
+ __name(defaultVisit, "defaultVisit");
+ __name(createBaseSemanticVisitorConstructor, "createBaseSemanticVisitorConstructor");
+ __name(createBaseVisitorConstructorWithDefaults, "createBaseVisitorConstructorWithDefaults");
+ (function(CstVisitorDefinitionError2) {
+ CstVisitorDefinitionError2[CstVisitorDefinitionError2["REDUNDANT_METHOD"] = 0] = "REDUNDANT_METHOD";
+ CstVisitorDefinitionError2[CstVisitorDefinitionError2["MISSING_METHOD"] = 1] = "MISSING_METHOD";
+ })(CstVisitorDefinitionError || (CstVisitorDefinitionError = {}));
+ __name(validateVisitor, "validateVisitor");
+ __name(validateMissingCstMethods, "validateMissingCstMethods");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/tree_builder.js
+ var TreeBuilder;
+ var init_tree_builder = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/tree_builder.js"() {
+ "use strict";
+ init_cst();
+ init_lodash();
+ init_cst_visitor();
+ init_parser();
+ TreeBuilder = class {
+ static {
+ __name(this, "TreeBuilder");
+ }
+ initTreeBuilder(config6) {
+ this.CST_STACK = [];
+ this.outputCst = config6.outputCst;
+ this.nodeLocationTracking = has_default(config6, "nodeLocationTracking") ? config6.nodeLocationTracking : DEFAULT_PARSER_CONFIG.nodeLocationTracking;
+ if (!this.outputCst) {
+ this.cstInvocationStateUpdate = noop_default2;
+ this.cstFinallyStateUpdate = noop_default2;
+ this.cstPostTerminal = noop_default2;
+ this.cstPostNonTerminal = noop_default2;
+ this.cstPostRule = noop_default2;
+ } else {
+ if (/full/i.test(this.nodeLocationTracking)) {
+ if (this.recoveryEnabled) {
+ this.setNodeLocationFromToken = setNodeLocationFull;
+ this.setNodeLocationFromNode = setNodeLocationFull;
+ this.cstPostRule = noop_default2;
+ this.setInitialNodeLocation = this.setInitialNodeLocationFullRecovery;
+ } else {
+ this.setNodeLocationFromToken = noop_default2;
+ this.setNodeLocationFromNode = noop_default2;
+ this.cstPostRule = this.cstPostRuleFull;
+ this.setInitialNodeLocation = this.setInitialNodeLocationFullRegular;
+ }
+ } else if (/onlyOffset/i.test(this.nodeLocationTracking)) {
+ if (this.recoveryEnabled) {
+ this.setNodeLocationFromToken = setNodeLocationOnlyOffset;
+ this.setNodeLocationFromNode = setNodeLocationOnlyOffset;
+ this.cstPostRule = noop_default2;
+ this.setInitialNodeLocation = this.setInitialNodeLocationOnlyOffsetRecovery;
+ } else {
+ this.setNodeLocationFromToken = noop_default2;
+ this.setNodeLocationFromNode = noop_default2;
+ this.cstPostRule = this.cstPostRuleOnlyOffset;
+ this.setInitialNodeLocation = this.setInitialNodeLocationOnlyOffsetRegular;
+ }
+ } else if (/none/i.test(this.nodeLocationTracking)) {
+ this.setNodeLocationFromToken = noop_default2;
+ this.setNodeLocationFromNode = noop_default2;
+ this.cstPostRule = noop_default2;
+ this.setInitialNodeLocation = noop_default2;
+ } else {
+ throw Error(`Invalid config option: "${config6.nodeLocationTracking}"`);
}
- function tbe() {
+ }
+ }
+ setInitialNodeLocationOnlyOffsetRecovery(cstNode) {
+ cstNode.location = {
+ startOffset: NaN,
+ endOffset: NaN
+ };
+ }
+ setInitialNodeLocationOnlyOffsetRegular(cstNode) {
+ cstNode.location = {
+ // without error recovery the starting Location of a new CstNode is guaranteed
+ // To be the next Token's startOffset (for valid inputs).
+ // For invalid inputs there won't be any CSTOutput so this potential
+ // inaccuracy does not matter
+ startOffset: this.LA(1).startOffset,
+ endOffset: NaN
+ };
+ }
+ setInitialNodeLocationFullRecovery(cstNode) {
+ cstNode.location = {
+ startOffset: NaN,
+ startLine: NaN,
+ startColumn: NaN,
+ endOffset: NaN,
+ endLine: NaN,
+ endColumn: NaN
+ };
+ }
+ /**
+ * @see setInitialNodeLocationOnlyOffsetRegular for explanation why this work
+
+ * @param cstNode
+ */
+ setInitialNodeLocationFullRegular(cstNode) {
+ const nextToken = this.LA(1);
+ cstNode.location = {
+ startOffset: nextToken.startOffset,
+ startLine: nextToken.startLine,
+ startColumn: nextToken.startColumn,
+ endOffset: NaN,
+ endLine: NaN,
+ endColumn: NaN
+ };
+ }
+ cstInvocationStateUpdate(fullRuleName) {
+ const cstNode = {
+ name: fullRuleName,
+ children: /* @__PURE__ */ Object.create(null)
+ };
+ this.setInitialNodeLocation(cstNode);
+ this.CST_STACK.push(cstNode);
+ }
+ cstFinallyStateUpdate() {
+ this.CST_STACK.pop();
+ }
+ cstPostRuleFull(ruleCstNode) {
+ const prevToken = this.LA(0);
+ const loc = ruleCstNode.location;
+ if (loc.startOffset <= prevToken.startOffset === true) {
+ loc.endOffset = prevToken.endOffset;
+ loc.endLine = prevToken.endLine;
+ loc.endColumn = prevToken.endColumn;
+ } else {
+ loc.startOffset = NaN;
+ loc.startLine = NaN;
+ loc.startColumn = NaN;
+ }
+ }
+ cstPostRuleOnlyOffset(ruleCstNode) {
+ const prevToken = this.LA(0);
+ const loc = ruleCstNode.location;
+ if (loc.startOffset <= prevToken.startOffset === true) {
+ loc.endOffset = prevToken.endOffset;
+ } else {
+ loc.startOffset = NaN;
+ }
+ }
+ cstPostTerminal(key, consumedToken) {
+ const rootCst = this.CST_STACK[this.CST_STACK.length - 1];
+ addTerminalToCst(rootCst, consumedToken, key);
+ this.setNodeLocationFromToken(rootCst.location, consumedToken);
+ }
+ cstPostNonTerminal(ruleCstResult, ruleName) {
+ const preCstNode = this.CST_STACK[this.CST_STACK.length - 1];
+ addNoneTerminalToCst(preCstNode, ruleName, ruleCstResult);
+ this.setNodeLocationFromNode(preCstNode.location, ruleCstResult.location);
+ }
+ getBaseCstVisitorConstructor() {
+ if (isUndefined_default(this.baseCstVisitorConstructor)) {
+ const newBaseCstVisitorConstructor = createBaseSemanticVisitorConstructor(this.className, keys_default(this.gastProductionsCache));
+ this.baseCstVisitorConstructor = newBaseCstVisitorConstructor;
+ return newBaseCstVisitorConstructor;
+ }
+ return this.baseCstVisitorConstructor;
+ }
+ getBaseCstVisitorConstructorWithDefaults() {
+ if (isUndefined_default(this.baseCstVisitorWithDefaultsConstructor)) {
+ const newConstructor = createBaseVisitorConstructorWithDefaults(this.className, keys_default(this.gastProductionsCache), this.getBaseCstVisitorConstructor());
+ this.baseCstVisitorWithDefaultsConstructor = newConstructor;
+ return newConstructor;
+ }
+ return this.baseCstVisitorWithDefaultsConstructor;
+ }
+ getLastExplicitRuleShortName() {
+ const ruleStack = this.RULE_STACK;
+ return ruleStack[ruleStack.length - 1];
+ }
+ getPreviousExplicitRuleShortName() {
+ const ruleStack = this.RULE_STACK;
+ return ruleStack[ruleStack.length - 2];
+ }
+ getLastExplicitRuleOccurrenceIndex() {
+ const occurrenceStack = this.RULE_OCCURRENCE_STACK;
+ return occurrenceStack[occurrenceStack.length - 1];
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/lexer_adapter.js
+ var LexerAdapter;
+ var init_lexer_adapter = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/lexer_adapter.js"() {
+ "use strict";
+ init_parser();
+ LexerAdapter = class {
+ static {
+ __name(this, "LexerAdapter");
+ }
+ initLexerAdapter() {
+ this.tokVector = [];
+ this.tokVectorLength = 0;
+ this.currIdx = -1;
+ }
+ set input(newInput) {
+ if (this.selfAnalysisDone !== true) {
+ throw Error(`Missing invocation at the end of the Parser's constructor.`);
+ }
+ this.reset();
+ this.tokVector = newInput;
+ this.tokVectorLength = newInput.length;
+ }
+ get input() {
+ return this.tokVector;
+ }
+ // skips a token and returns the next token
+ SKIP_TOKEN() {
+ if (this.currIdx <= this.tokVector.length - 2) {
+ this.consumeToken();
+ return this.LA(1);
+ } else {
+ return END_OF_FILE;
+ }
+ }
+ // Lexer (accessing Token vector) related methods which can be overridden to implement lazy lexers
+ // or lexers dependent on parser context.
+ LA(howMuch) {
+ const soughtIdx = this.currIdx + howMuch;
+ if (soughtIdx < 0 || this.tokVectorLength <= soughtIdx) {
+ return END_OF_FILE;
+ } else {
+ return this.tokVector[soughtIdx];
+ }
+ }
+ consumeToken() {
+ this.currIdx++;
+ }
+ exportLexerState() {
+ return this.currIdx;
+ }
+ importLexerState(newState2) {
+ this.currIdx = newState2;
+ }
+ resetLexerState() {
+ this.currIdx = -1;
+ }
+ moveToTerminatedState() {
+ this.currIdx = this.tokVector.length - 1;
+ }
+ getLexerPosition() {
+ return this.exportLexerState();
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_api.js
+ var RecognizerApi;
+ var init_recognizer_api = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_api.js"() {
+ "use strict";
+ init_lodash();
+ init_exceptions_public();
+ init_parser();
+ init_errors_public();
+ init_checks();
+ init_api3();
+ RecognizerApi = class {
+ static {
+ __name(this, "RecognizerApi");
+ }
+ ACTION(impl2) {
+ return impl2.call(this);
+ }
+ consume(idx, tokType, options3) {
+ return this.consumeInternal(tokType, idx, options3);
+ }
+ subrule(idx, ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, idx, options3);
+ }
+ option(idx, actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, idx);
+ }
+ or(idx, altsOrOpts) {
+ return this.orInternal(altsOrOpts, idx);
+ }
+ many(idx, actionORMethodDef) {
+ return this.manyInternal(idx, actionORMethodDef);
+ }
+ atLeastOne(idx, actionORMethodDef) {
+ return this.atLeastOneInternal(idx, actionORMethodDef);
+ }
+ CONSUME(tokType, options3) {
+ return this.consumeInternal(tokType, 0, options3);
+ }
+ CONSUME1(tokType, options3) {
+ return this.consumeInternal(tokType, 1, options3);
+ }
+ CONSUME2(tokType, options3) {
+ return this.consumeInternal(tokType, 2, options3);
+ }
+ CONSUME3(tokType, options3) {
+ return this.consumeInternal(tokType, 3, options3);
+ }
+ CONSUME4(tokType, options3) {
+ return this.consumeInternal(tokType, 4, options3);
+ }
+ CONSUME5(tokType, options3) {
+ return this.consumeInternal(tokType, 5, options3);
+ }
+ CONSUME6(tokType, options3) {
+ return this.consumeInternal(tokType, 6, options3);
+ }
+ CONSUME7(tokType, options3) {
+ return this.consumeInternal(tokType, 7, options3);
+ }
+ CONSUME8(tokType, options3) {
+ return this.consumeInternal(tokType, 8, options3);
+ }
+ CONSUME9(tokType, options3) {
+ return this.consumeInternal(tokType, 9, options3);
+ }
+ SUBRULE(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 0, options3);
+ }
+ SUBRULE1(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 1, options3);
+ }
+ SUBRULE2(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 2, options3);
+ }
+ SUBRULE3(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 3, options3);
+ }
+ SUBRULE4(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 4, options3);
+ }
+ SUBRULE5(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 5, options3);
+ }
+ SUBRULE6(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 6, options3);
+ }
+ SUBRULE7(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 7, options3);
+ }
+ SUBRULE8(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 8, options3);
+ }
+ SUBRULE9(ruleToCall, options3) {
+ return this.subruleInternal(ruleToCall, 9, options3);
+ }
+ OPTION(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 0);
+ }
+ OPTION1(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 1);
+ }
+ OPTION2(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 2);
+ }
+ OPTION3(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 3);
+ }
+ OPTION4(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 4);
+ }
+ OPTION5(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 5);
+ }
+ OPTION6(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 6);
+ }
+ OPTION7(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 7);
+ }
+ OPTION8(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 8);
+ }
+ OPTION9(actionORMethodDef) {
+ return this.optionInternal(actionORMethodDef, 9);
+ }
+ OR(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 0);
+ }
+ OR1(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 1);
+ }
+ OR2(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 2);
+ }
+ OR3(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 3);
+ }
+ OR4(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 4);
+ }
+ OR5(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 5);
+ }
+ OR6(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 6);
+ }
+ OR7(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 7);
+ }
+ OR8(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 8);
+ }
+ OR9(altsOrOpts) {
+ return this.orInternal(altsOrOpts, 9);
+ }
+ MANY(actionORMethodDef) {
+ this.manyInternal(0, actionORMethodDef);
+ }
+ MANY1(actionORMethodDef) {
+ this.manyInternal(1, actionORMethodDef);
+ }
+ MANY2(actionORMethodDef) {
+ this.manyInternal(2, actionORMethodDef);
+ }
+ MANY3(actionORMethodDef) {
+ this.manyInternal(3, actionORMethodDef);
+ }
+ MANY4(actionORMethodDef) {
+ this.manyInternal(4, actionORMethodDef);
+ }
+ MANY5(actionORMethodDef) {
+ this.manyInternal(5, actionORMethodDef);
+ }
+ MANY6(actionORMethodDef) {
+ this.manyInternal(6, actionORMethodDef);
+ }
+ MANY7(actionORMethodDef) {
+ this.manyInternal(7, actionORMethodDef);
+ }
+ MANY8(actionORMethodDef) {
+ this.manyInternal(8, actionORMethodDef);
+ }
+ MANY9(actionORMethodDef) {
+ this.manyInternal(9, actionORMethodDef);
+ }
+ MANY_SEP(options3) {
+ this.manySepFirstInternal(0, options3);
+ }
+ MANY_SEP1(options3) {
+ this.manySepFirstInternal(1, options3);
+ }
+ MANY_SEP2(options3) {
+ this.manySepFirstInternal(2, options3);
+ }
+ MANY_SEP3(options3) {
+ this.manySepFirstInternal(3, options3);
+ }
+ MANY_SEP4(options3) {
+ this.manySepFirstInternal(4, options3);
+ }
+ MANY_SEP5(options3) {
+ this.manySepFirstInternal(5, options3);
+ }
+ MANY_SEP6(options3) {
+ this.manySepFirstInternal(6, options3);
+ }
+ MANY_SEP7(options3) {
+ this.manySepFirstInternal(7, options3);
+ }
+ MANY_SEP8(options3) {
+ this.manySepFirstInternal(8, options3);
+ }
+ MANY_SEP9(options3) {
+ this.manySepFirstInternal(9, options3);
+ }
+ AT_LEAST_ONE(actionORMethodDef) {
+ this.atLeastOneInternal(0, actionORMethodDef);
+ }
+ AT_LEAST_ONE1(actionORMethodDef) {
+ return this.atLeastOneInternal(1, actionORMethodDef);
+ }
+ AT_LEAST_ONE2(actionORMethodDef) {
+ this.atLeastOneInternal(2, actionORMethodDef);
+ }
+ AT_LEAST_ONE3(actionORMethodDef) {
+ this.atLeastOneInternal(3, actionORMethodDef);
+ }
+ AT_LEAST_ONE4(actionORMethodDef) {
+ this.atLeastOneInternal(4, actionORMethodDef);
+ }
+ AT_LEAST_ONE5(actionORMethodDef) {
+ this.atLeastOneInternal(5, actionORMethodDef);
+ }
+ AT_LEAST_ONE6(actionORMethodDef) {
+ this.atLeastOneInternal(6, actionORMethodDef);
+ }
+ AT_LEAST_ONE7(actionORMethodDef) {
+ this.atLeastOneInternal(7, actionORMethodDef);
+ }
+ AT_LEAST_ONE8(actionORMethodDef) {
+ this.atLeastOneInternal(8, actionORMethodDef);
+ }
+ AT_LEAST_ONE9(actionORMethodDef) {
+ this.atLeastOneInternal(9, actionORMethodDef);
+ }
+ AT_LEAST_ONE_SEP(options3) {
+ this.atLeastOneSepFirstInternal(0, options3);
+ }
+ AT_LEAST_ONE_SEP1(options3) {
+ this.atLeastOneSepFirstInternal(1, options3);
+ }
+ AT_LEAST_ONE_SEP2(options3) {
+ this.atLeastOneSepFirstInternal(2, options3);
+ }
+ AT_LEAST_ONE_SEP3(options3) {
+ this.atLeastOneSepFirstInternal(3, options3);
+ }
+ AT_LEAST_ONE_SEP4(options3) {
+ this.atLeastOneSepFirstInternal(4, options3);
+ }
+ AT_LEAST_ONE_SEP5(options3) {
+ this.atLeastOneSepFirstInternal(5, options3);
+ }
+ AT_LEAST_ONE_SEP6(options3) {
+ this.atLeastOneSepFirstInternal(6, options3);
+ }
+ AT_LEAST_ONE_SEP7(options3) {
+ this.atLeastOneSepFirstInternal(7, options3);
+ }
+ AT_LEAST_ONE_SEP8(options3) {
+ this.atLeastOneSepFirstInternal(8, options3);
+ }
+ AT_LEAST_ONE_SEP9(options3) {
+ this.atLeastOneSepFirstInternal(9, options3);
+ }
+ RULE(name, implementation, config6 = DEFAULT_RULE_CONFIG) {
+ if (includes_default(this.definedRulesNames, name)) {
+ const errMsg = defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({
+ topLevelRule: name,
+ grammarName: this.className
+ });
+ const error3 = {
+ message: errMsg,
+ type: ParserDefinitionErrorType.DUPLICATE_RULE_NAME,
+ ruleName: name
+ };
+ this.definitionErrors.push(error3);
+ }
+ this.definedRulesNames.push(name);
+ const ruleImplementation = this.defineRule(name, implementation, config6);
+ this[name] = ruleImplementation;
+ return ruleImplementation;
+ }
+ OVERRIDE_RULE(name, impl2, config6 = DEFAULT_RULE_CONFIG) {
+ const ruleErrors = validateRuleIsOverridden(name, this.definedRulesNames, this.className);
+ this.definitionErrors = this.definitionErrors.concat(ruleErrors);
+ const ruleImplementation = this.defineRule(name, impl2, config6);
+ this[name] = ruleImplementation;
+ return ruleImplementation;
+ }
+ BACKTRACK(grammarRule, args) {
+ return function() {
+ this.isBackTrackingStack.push(1);
+ const orgState = this.saveRecogState();
+ try {
+ grammarRule.apply(this, args);
+ return true;
+ } catch (e3) {
+ if (isRecognitionException(e3)) {
+ return false;
+ } else {
+ throw e3;
+ }
+ } finally {
+ this.reloadRecogState(orgState);
+ this.isBackTrackingStack.pop();
}
- function wbe() {
- }
- function zbe() {
- }
- function Cbe() {
- }
- function Fbe() {
- }
- function Ibe() {
+ };
+ }
+ // GAST export APIs
+ getGAstProductions() {
+ return this.gastProductionsCache;
+ }
+ getSerializedGastProductions() {
+ return serializeGrammar(values_default(this.gastProductionsCache));
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_engine.js
+ var RecognizerEngine;
+ var init_recognizer_engine = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_engine.js"() {
+ "use strict";
+ init_lodash();
+ init_keys2();
+ init_exceptions_public();
+ init_lookahead();
+ init_interpreter();
+ init_parser();
+ init_recoverable();
+ init_tokens_public();
+ init_tokens();
+ RecognizerEngine = class {
+ static {
+ __name(this, "RecognizerEngine");
+ }
+ initRecognizerEngine(tokenVocabulary, config6) {
+ this.className = this.constructor.name;
+ this.shortRuleNameToFull = {};
+ this.fullRuleNameToShort = {};
+ this.ruleShortNameIdx = 256;
+ this.tokenMatcher = tokenStructuredMatcherNoCategories;
+ this.subruleIdx = 0;
+ this.definedRulesNames = [];
+ this.tokensMap = {};
+ this.isBackTrackingStack = [];
+ this.RULE_STACK = [];
+ this.RULE_OCCURRENCE_STACK = [];
+ this.gastProductionsCache = {};
+ if (has_default(config6, "serializedGrammar")) {
+ throw Error("The Parser's configuration can no longer contain a property.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n For Further details.");
+ }
+ if (isArray_default(tokenVocabulary)) {
+ if (isEmpty_default(tokenVocabulary)) {
+ throw Error("A Token Vocabulary cannot be empty.\n Note that the first argument for the parser constructor\n is no longer a Token vector (since v4.0).");
+ }
+ if (typeof tokenVocabulary[0].startOffset === "number") {
+ throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n For Further details.");
+ }
+ }
+ if (isArray_default(tokenVocabulary)) {
+ this.tokensMap = reduce_default(tokenVocabulary, (acc, tokType) => {
+ acc[tokType.name] = tokType;
+ return acc;
+ }, {});
+ } else if (has_default(tokenVocabulary, "modes") && every_default(flatten_default(values_default(tokenVocabulary.modes)), isTokenType)) {
+ const allTokenTypes2 = flatten_default(values_default(tokenVocabulary.modes));
+ const uniqueTokens = uniq_default(allTokenTypes2);
+ this.tokensMap = reduce_default(uniqueTokens, (acc, tokType) => {
+ acc[tokType.name] = tokType;
+ return acc;
+ }, {});
+ } else if (isObject_default(tokenVocabulary)) {
+ this.tokensMap = clone_default2(tokenVocabulary);
+ } else {
+ throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");
+ }
+ this.tokensMap["EOF"] = EOF;
+ const allTokenTypes = has_default(tokenVocabulary, "modes") ? flatten_default(values_default(tokenVocabulary.modes)) : values_default(tokenVocabulary);
+ const noTokenCategoriesUsed = every_default(allTokenTypes, (tokenConstructor) => isEmpty_default(tokenConstructor.categoryMatches));
+ this.tokenMatcher = noTokenCategoriesUsed ? tokenStructuredMatcherNoCategories : tokenStructuredMatcher;
+ augmentTokenTypes(values_default(this.tokensMap));
+ }
+ defineRule(ruleName, impl2, config6) {
+ if (this.selfAnalysisDone) {
+ throw Error(`Grammar rule <${ruleName}> may not be defined after the 'performSelfAnalysis' method has been called'
+Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);
+ }
+ const resyncEnabled = has_default(config6, "resyncEnabled") ? config6.resyncEnabled : DEFAULT_RULE_CONFIG.resyncEnabled;
+ const recoveryValueFunc = has_default(config6, "recoveryValueFunc") ? config6.recoveryValueFunc : DEFAULT_RULE_CONFIG.recoveryValueFunc;
+ const shortName = this.ruleShortNameIdx << BITS_FOR_METHOD_TYPE + BITS_FOR_OCCURRENCE_IDX;
+ this.ruleShortNameIdx++;
+ this.shortRuleNameToFull[shortName] = ruleName;
+ this.fullRuleNameToShort[ruleName] = shortName;
+ let invokeRuleWithTry;
+ if (this.outputCst === true) {
+ invokeRuleWithTry = /* @__PURE__ */ __name(function invokeRuleWithTry2(...args) {
+ try {
+ this.ruleInvocationStateUpdate(shortName, ruleName, this.subruleIdx);
+ impl2.apply(this, args);
+ const cst = this.CST_STACK[this.CST_STACK.length - 1];
+ this.cstPostRule(cst);
+ return cst;
+ } catch (e3) {
+ return this.invokeRuleCatch(e3, resyncEnabled, recoveryValueFunc);
+ } finally {
+ this.ruleFinallyStateUpdate();
+ }
+ }, "invokeRuleWithTry");
+ } else {
+ invokeRuleWithTry = /* @__PURE__ */ __name(function invokeRuleWithTryCst(...args) {
+ try {
+ this.ruleInvocationStateUpdate(shortName, ruleName, this.subruleIdx);
+ return impl2.apply(this, args);
+ } catch (e3) {
+ return this.invokeRuleCatch(e3, resyncEnabled, recoveryValueFunc);
+ } finally {
+ this.ruleFinallyStateUpdate();
+ }
+ }, "invokeRuleWithTryCst");
+ }
+ const wrappedGrammarRule = Object.assign(invokeRuleWithTry, { ruleName, originalGrammarAction: impl2 });
+ return wrappedGrammarRule;
+ }
+ invokeRuleCatch(e3, resyncEnabledConfig, recoveryValueFunc) {
+ const isFirstInvokedRule = this.RULE_STACK.length === 1;
+ const reSyncEnabled = resyncEnabledConfig && !this.isBackTracking() && this.recoveryEnabled;
+ if (isRecognitionException(e3)) {
+ const recogError = e3;
+ if (reSyncEnabled) {
+ const reSyncTokType = this.findReSyncTokenType();
+ if (this.isInCurrentRuleReSyncSet(reSyncTokType)) {
+ recogError.resyncedTokens = this.reSyncTo(reSyncTokType);
+ if (this.outputCst) {
+ const partialCstResult = this.CST_STACK[this.CST_STACK.length - 1];
+ partialCstResult.recoveredNode = true;
+ return partialCstResult;
+ } else {
+ return recoveryValueFunc(e3);
+ }
+ } else {
+ if (this.outputCst) {
+ const partialCstResult = this.CST_STACK[this.CST_STACK.length - 1];
+ partialCstResult.recoveredNode = true;
+ recogError.partialCstResult = partialCstResult;
+ }
+ throw recogError;
+ }
+ } else if (isFirstInvokedRule) {
+ this.moveToTerminatedState();
+ return recoveryValueFunc(e3);
+ } else {
+ throw recogError;
}
- function Lbe() {
+ } else {
+ throw e3;
+ }
+ }
+ // Implementation of parsing DSL
+ optionInternal(actionORMethodDef, occurrence) {
+ const key = this.getKeyForAutomaticLookahead(OPTION_IDX, occurrence);
+ return this.optionInternalLogic(actionORMethodDef, occurrence, key);
+ }
+ optionInternalLogic(actionORMethodDef, occurrence, key) {
+ let lookAheadFunc = this.getLaFuncFromCache(key);
+ let action;
+ if (typeof actionORMethodDef !== "function") {
+ action = actionORMethodDef.DEF;
+ const predicate = actionORMethodDef.GATE;
+ if (predicate !== void 0) {
+ const orgLookaheadFunction = lookAheadFunc;
+ lookAheadFunc = /* @__PURE__ */ __name(() => {
+ return predicate.call(this) && orgLookaheadFunction.call(this);
+ }, "lookAheadFunc");
}
- function Obe() {
+ } else {
+ action = actionORMethodDef;
+ }
+ if (lookAheadFunc.call(this) === true) {
+ return action.call(this);
+ }
+ return void 0;
+ }
+ atLeastOneInternal(prodOccurrence, actionORMethodDef) {
+ const laKey = this.getKeyForAutomaticLookahead(AT_LEAST_ONE_IDX, prodOccurrence);
+ return this.atLeastOneInternalLogic(prodOccurrence, actionORMethodDef, laKey);
+ }
+ atLeastOneInternalLogic(prodOccurrence, actionORMethodDef, key) {
+ let lookAheadFunc = this.getLaFuncFromCache(key);
+ let action;
+ if (typeof actionORMethodDef !== "function") {
+ action = actionORMethodDef.DEF;
+ const predicate = actionORMethodDef.GATE;
+ if (predicate !== void 0) {
+ const orgLookaheadFunction = lookAheadFunc;
+ lookAheadFunc = /* @__PURE__ */ __name(() => {
+ return predicate.call(this) && orgLookaheadFunction.call(this);
+ }, "lookAheadFunc");
}
- function Rbe() {
+ } else {
+ action = actionORMethodDef;
+ }
+ if (lookAheadFunc.call(this) === true) {
+ let notStuck = this.doSingleRepetition(action);
+ while (lookAheadFunc.call(this) === true && notStuck === true) {
+ notStuck = this.doSingleRepetition(action);
}
- function Ube() {
+ } else {
+ throw this.raiseEarlyExitException(prodOccurrence, PROD_TYPE.REPETITION_MANDATORY, actionORMethodDef.ERR_MSG);
+ }
+ this.attemptInRepetitionRecovery(this.atLeastOneInternal, [prodOccurrence, actionORMethodDef], lookAheadFunc, AT_LEAST_ONE_IDX, prodOccurrence, NextTerminalAfterAtLeastOneWalker);
+ }
+ atLeastOneSepFirstInternal(prodOccurrence, options3) {
+ const laKey = this.getKeyForAutomaticLookahead(AT_LEAST_ONE_SEP_IDX, prodOccurrence);
+ this.atLeastOneSepFirstInternalLogic(prodOccurrence, options3, laKey);
+ }
+ atLeastOneSepFirstInternalLogic(prodOccurrence, options3, key) {
+ const action = options3.DEF;
+ const separator = options3.SEP;
+ const firstIterationLookaheadFunc = this.getLaFuncFromCache(key);
+ if (firstIterationLookaheadFunc.call(this) === true) {
+ action.call(this);
+ const separatorLookAheadFunc = /* @__PURE__ */ __name(() => {
+ return this.tokenMatcher(this.LA(1), separator);
+ }, "separatorLookAheadFunc");
+ while (this.tokenMatcher(this.LA(1), separator) === true) {
+ this.CONSUME(separator);
+ action.call(this);
+ }
+ this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [
+ prodOccurrence,
+ separator,
+ separatorLookAheadFunc,
+ action,
+ NextTerminalAfterAtLeastOneSepWalker
+ ], separatorLookAheadFunc, AT_LEAST_ONE_SEP_IDX, prodOccurrence, NextTerminalAfterAtLeastOneSepWalker);
+ } else {
+ throw this.raiseEarlyExitException(prodOccurrence, PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR, options3.ERR_MSG);
+ }
+ }
+ manyInternal(prodOccurrence, actionORMethodDef) {
+ const laKey = this.getKeyForAutomaticLookahead(MANY_IDX, prodOccurrence);
+ return this.manyInternalLogic(prodOccurrence, actionORMethodDef, laKey);
+ }
+ manyInternalLogic(prodOccurrence, actionORMethodDef, key) {
+ let lookaheadFunction = this.getLaFuncFromCache(key);
+ let action;
+ if (typeof actionORMethodDef !== "function") {
+ action = actionORMethodDef.DEF;
+ const predicate = actionORMethodDef.GATE;
+ if (predicate !== void 0) {
+ const orgLookaheadFunction = lookaheadFunction;
+ lookaheadFunction = /* @__PURE__ */ __name(() => {
+ return predicate.call(this) && orgLookaheadFunction.call(this);
+ }, "lookaheadFunction");
}
- function Xbe() {
+ } else {
+ action = actionORMethodDef;
+ }
+ let notStuck = true;
+ while (lookaheadFunction.call(this) === true && notStuck === true) {
+ notStuck = this.doSingleRepetition(action);
+ }
+ this.attemptInRepetitionRecovery(
+ this.manyInternal,
+ [prodOccurrence, actionORMethodDef],
+ lookaheadFunction,
+ MANY_IDX,
+ prodOccurrence,
+ NextTerminalAfterManyWalker,
+ // The notStuck parameter is only relevant when "attemptInRepetitionRecovery"
+ // is invoked from manyInternal, in the MANY_SEP case and AT_LEAST_ONE[_SEP]
+ // An infinite loop cannot occur as:
+ // - Either the lookahead is guaranteed to consume something (Single Token Separator)
+ // - AT_LEAST_ONE by definition is guaranteed to consume something (or error out).
+ notStuck
+ );
+ }
+ manySepFirstInternal(prodOccurrence, options3) {
+ const laKey = this.getKeyForAutomaticLookahead(MANY_SEP_IDX, prodOccurrence);
+ this.manySepFirstInternalLogic(prodOccurrence, options3, laKey);
+ }
+ manySepFirstInternalLogic(prodOccurrence, options3, key) {
+ const action = options3.DEF;
+ const separator = options3.SEP;
+ const firstIterationLaFunc = this.getLaFuncFromCache(key);
+ if (firstIterationLaFunc.call(this) === true) {
+ action.call(this);
+ const separatorLookAheadFunc = /* @__PURE__ */ __name(() => {
+ return this.tokenMatcher(this.LA(1), separator);
+ }, "separatorLookAheadFunc");
+ while (this.tokenMatcher(this.LA(1), separator) === true) {
+ this.CONSUME(separator);
+ action.call(this);
+ }
+ this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [
+ prodOccurrence,
+ separator,
+ separatorLookAheadFunc,
+ action,
+ NextTerminalAfterManySepWalker
+ ], separatorLookAheadFunc, MANY_SEP_IDX, prodOccurrence, NextTerminalAfterManySepWalker);
+ }
+ }
+ repetitionSepSecondInternal(prodOccurrence, separator, separatorLookAheadFunc, action, nextTerminalAfterWalker) {
+ while (separatorLookAheadFunc()) {
+ this.CONSUME(separator);
+ action.call(this);
+ }
+ this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [
+ prodOccurrence,
+ separator,
+ separatorLookAheadFunc,
+ action,
+ nextTerminalAfterWalker
+ ], separatorLookAheadFunc, AT_LEAST_ONE_SEP_IDX, prodOccurrence, nextTerminalAfterWalker);
+ }
+ doSingleRepetition(action) {
+ const beforeIteration = this.getLexerPosition();
+ action.call(this);
+ const afterIteration = this.getLexerPosition();
+ return afterIteration > beforeIteration;
+ }
+ orInternal(altsOrOpts, occurrence) {
+ const laKey = this.getKeyForAutomaticLookahead(OR_IDX, occurrence);
+ const alts = isArray_default(altsOrOpts) ? altsOrOpts : altsOrOpts.DEF;
+ const laFunc = this.getLaFuncFromCache(laKey);
+ const altIdxToTake = laFunc.call(this, alts);
+ if (altIdxToTake !== void 0) {
+ const chosenAlternative = alts[altIdxToTake];
+ return chosenAlternative.ALT.call(this);
+ }
+ this.raiseNoAltException(occurrence, altsOrOpts.ERR_MSG);
+ }
+ ruleFinallyStateUpdate() {
+ this.RULE_STACK.pop();
+ this.RULE_OCCURRENCE_STACK.pop();
+ this.cstFinallyStateUpdate();
+ if (this.RULE_STACK.length === 0 && this.isAtEndOfInput() === false) {
+ const firstRedundantTok = this.LA(1);
+ const errMsg = this.errorMessageProvider.buildNotAllInputParsedMessage({
+ firstRedundant: firstRedundantTok,
+ ruleName: this.getCurrRuleFullName()
+ });
+ this.SAVE_ERROR(new NotAllInputParsedException(errMsg, firstRedundantTok));
+ }
+ }
+ subruleInternal(ruleToCall, idx, options3) {
+ let ruleResult;
+ try {
+ const args = options3 !== void 0 ? options3.ARGS : void 0;
+ this.subruleIdx = idx;
+ ruleResult = ruleToCall.apply(this, args);
+ this.cstPostNonTerminal(ruleResult, options3 !== void 0 && options3.LABEL !== void 0 ? options3.LABEL : ruleToCall.ruleName);
+ return ruleResult;
+ } catch (e3) {
+ throw this.subruleInternalError(e3, options3, ruleToCall.ruleName);
+ }
+ }
+ subruleInternalError(e3, options3, ruleName) {
+ if (isRecognitionException(e3) && e3.partialCstResult !== void 0) {
+ this.cstPostNonTerminal(e3.partialCstResult, options3 !== void 0 && options3.LABEL !== void 0 ? options3.LABEL : ruleName);
+ delete e3.partialCstResult;
+ }
+ throw e3;
+ }
+ consumeInternal(tokType, idx, options3) {
+ let consumedToken;
+ try {
+ const nextToken = this.LA(1);
+ if (this.tokenMatcher(nextToken, tokType) === true) {
+ this.consumeToken();
+ consumedToken = nextToken;
+ } else {
+ this.consumeInternalError(tokType, nextToken, options3);
}
- function $be() {
+ } catch (eFromConsumption) {
+ consumedToken = this.consumeInternalRecovery(tokType, idx, eFromConsumption);
+ }
+ this.cstPostTerminal(options3 !== void 0 && options3.LABEL !== void 0 ? options3.LABEL : tokType.name, consumedToken);
+ return consumedToken;
+ }
+ consumeInternalError(tokType, nextToken, options3) {
+ let msg;
+ const previousToken = this.LA(0);
+ if (options3 !== void 0 && options3.ERR_MSG) {
+ msg = options3.ERR_MSG;
+ } else {
+ msg = this.errorMessageProvider.buildMismatchTokenMessage({
+ expected: tokType,
+ actual: nextToken,
+ previous: previousToken,
+ ruleName: this.getCurrRuleFullName()
+ });
+ }
+ throw this.SAVE_ERROR(new MismatchedTokenException(msg, nextToken, previousToken));
+ }
+ consumeInternalRecovery(tokType, idx, eFromConsumption) {
+ if (this.recoveryEnabled && // TODO: more robust checking of the exception type. Perhaps Typescript extending expressions?
+ eFromConsumption.name === "MismatchedTokenException" && !this.isBackTracking()) {
+ const follows = this.getFollowsForInRuleRecovery(tokType, idx);
+ try {
+ return this.tryInRuleRecovery(tokType, follows);
+ } catch (eFromInRuleRecovery) {
+ if (eFromInRuleRecovery.name === IN_RULE_RECOVERY_EXCEPTION) {
+ throw eFromConsumption;
+ } else {
+ throw eFromInRuleRecovery;
+ }
}
- function bce() {
+ } else {
+ throw eFromConsumption;
+ }
+ }
+ saveRecogState() {
+ const savedErrors = this.errors;
+ const savedRuleStack = clone_default2(this.RULE_STACK);
+ return {
+ errors: savedErrors,
+ lexerState: this.exportLexerState(),
+ RULE_STACK: savedRuleStack,
+ CST_STACK: this.CST_STACK
+ };
+ }
+ reloadRecogState(newState2) {
+ this.errors = newState2.errors;
+ this.importLexerState(newState2.lexerState);
+ this.RULE_STACK = newState2.RULE_STACK;
+ }
+ ruleInvocationStateUpdate(shortName, fullName, idxInCallingRule) {
+ this.RULE_OCCURRENCE_STACK.push(idxInCallingRule);
+ this.RULE_STACK.push(shortName);
+ this.cstInvocationStateUpdate(fullName);
+ }
+ isBackTracking() {
+ return this.isBackTrackingStack.length !== 0;
+ }
+ getCurrRuleFullName() {
+ const shortName = this.getLastExplicitRuleShortName();
+ return this.shortRuleNameToFull[shortName];
+ }
+ shortRuleNameToFullName(shortName) {
+ return this.shortRuleNameToFull[shortName];
+ }
+ isAtEndOfInput() {
+ return this.tokenMatcher(this.LA(1), EOF);
+ }
+ reset() {
+ this.resetLexerState();
+ this.subruleIdx = 0;
+ this.isBackTrackingStack = [];
+ this.errors = [];
+ this.RULE_STACK = [];
+ this.CST_STACK = [];
+ this.RULE_OCCURRENCE_STACK = [];
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/error_handler.js
+ var ErrorHandler;
+ var init_error_handler = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/error_handler.js"() {
+ "use strict";
+ init_exceptions_public();
+ init_lodash();
+ init_lookahead();
+ init_parser();
+ ErrorHandler = class {
+ static {
+ __name(this, "ErrorHandler");
+ }
+ initErrorHandler(config6) {
+ this._errors = [];
+ this.errorMessageProvider = has_default(config6, "errorMessageProvider") ? config6.errorMessageProvider : DEFAULT_PARSER_CONFIG.errorMessageProvider;
+ }
+ SAVE_ERROR(error3) {
+ if (isRecognitionException(error3)) {
+ error3.context = {
+ ruleStack: this.getHumanReadableRuleStack(),
+ ruleOccurrenceStack: clone_default2(this.RULE_OCCURRENCE_STACK)
+ };
+ this._errors.push(error3);
+ return error3;
+ } else {
+ throw Error("Trying to save an Error which is not a RecognitionException");
+ }
+ }
+ get errors() {
+ return clone_default2(this._errors);
+ }
+ set errors(newErrors) {
+ this._errors = newErrors;
+ }
+ // TODO: consider caching the error message computed information
+ raiseEarlyExitException(occurrence, prodType, userDefinedErrMsg) {
+ const ruleName = this.getCurrRuleFullName();
+ const ruleGrammar = this.getGAstProductions()[ruleName];
+ const lookAheadPathsPerAlternative = getLookaheadPathsForOptionalProd(occurrence, ruleGrammar, prodType, this.maxLookahead);
+ const insideProdPaths = lookAheadPathsPerAlternative[0];
+ const actualTokens = [];
+ for (let i2 = 1; i2 <= this.maxLookahead; i2++) {
+ actualTokens.push(this.LA(i2));
+ }
+ const msg = this.errorMessageProvider.buildEarlyExitMessage({
+ expectedIterationPaths: insideProdPaths,
+ actual: actualTokens,
+ previous: this.LA(0),
+ customUserDescription: userDefinedErrMsg,
+ ruleName
+ });
+ throw this.SAVE_ERROR(new EarlyExitException(msg, this.LA(1), this.LA(0)));
+ }
+ // TODO: consider caching the error message computed information
+ raiseNoAltException(occurrence, errMsgTypes) {
+ const ruleName = this.getCurrRuleFullName();
+ const ruleGrammar = this.getGAstProductions()[ruleName];
+ const lookAheadPathsPerAlternative = getLookaheadPathsForOr(occurrence, ruleGrammar, this.maxLookahead);
+ const actualTokens = [];
+ for (let i2 = 1; i2 <= this.maxLookahead; i2++) {
+ actualTokens.push(this.LA(i2));
+ }
+ const previousToken = this.LA(0);
+ const errMsg = this.errorMessageProvider.buildNoViableAltMessage({
+ expectedPathsPerAlt: lookAheadPathsPerAlternative,
+ actual: actualTokens,
+ previous: previousToken,
+ customUserDescription: errMsgTypes,
+ ruleName: this.getCurrRuleFullName()
+ });
+ throw this.SAVE_ERROR(new NoViableAltException(errMsg, this.LA(1), previousToken));
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/context_assist.js
+ var ContentAssist;
+ var init_context_assist = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/context_assist.js"() {
+ "use strict";
+ init_interpreter();
+ init_lodash();
+ ContentAssist = class {
+ static {
+ __name(this, "ContentAssist");
+ }
+ initContentAssist() {
+ }
+ computeContentAssist(startRuleName, precedingInput) {
+ const startRuleGast = this.gastProductionsCache[startRuleName];
+ if (isUndefined_default(startRuleGast)) {
+ throw Error(`Rule ->${startRuleName}<- does not exist in this grammar.`);
+ }
+ return nextPossibleTokensAfter([startRuleGast], precedingInput, this.tokenMatcher, this.maxLookahead);
+ }
+ // TODO: should this be a member method or a utility? it does not have any state or usage of 'this'...
+ // TODO: should this be more explicitly part of the public API?
+ getNextPossibleTokenTypes(grammarPath) {
+ const topRuleName = head_default(grammarPath.ruleStack);
+ const gastProductions = this.getGAstProductions();
+ const topProduction = gastProductions[topRuleName];
+ const nextPossibleTokenTypes = new NextAfterTokenWalker(topProduction, grammarPath).startWalking();
+ return nextPossibleTokenTypes;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/gast_recorder.js
+ function recordProd(prodConstructor, mainProdArg, occurrence, handleSep = false) {
+ assertMethodIdxIsValid(occurrence);
+ const prevProd = last_default(this.recordingProdStack);
+ const grammarAction = isFunction_default(mainProdArg) ? mainProdArg : mainProdArg.DEF;
+ const newProd = new prodConstructor({ definition: [], idx: occurrence });
+ if (handleSep) {
+ newProd.separator = mainProdArg.SEP;
+ }
+ if (has_default(mainProdArg, "MAX_LOOKAHEAD")) {
+ newProd.maxLookahead = mainProdArg.MAX_LOOKAHEAD;
+ }
+ this.recordingProdStack.push(newProd);
+ grammarAction.call(this);
+ prevProd.definition.push(newProd);
+ this.recordingProdStack.pop();
+ return RECORDING_NULL_OBJECT;
+ }
+ function recordOrProd(mainProdArg, occurrence) {
+ assertMethodIdxIsValid(occurrence);
+ const prevProd = last_default(this.recordingProdStack);
+ const hasOptions = isArray_default(mainProdArg) === false;
+ const alts = hasOptions === false ? mainProdArg : mainProdArg.DEF;
+ const newOrProd = new Alternation({
+ definition: [],
+ idx: occurrence,
+ ignoreAmbiguities: hasOptions && mainProdArg.IGNORE_AMBIGUITIES === true
+ });
+ if (has_default(mainProdArg, "MAX_LOOKAHEAD")) {
+ newOrProd.maxLookahead = mainProdArg.MAX_LOOKAHEAD;
+ }
+ const hasPredicates = some_default(alts, (currAlt) => isFunction_default(currAlt.GATE));
+ newOrProd.hasPredicates = hasPredicates;
+ prevProd.definition.push(newOrProd);
+ forEach_default(alts, (currAlt) => {
+ const currAltFlat = new Alternative({ definition: [] });
+ newOrProd.definition.push(currAltFlat);
+ if (has_default(currAlt, "IGNORE_AMBIGUITIES")) {
+ currAltFlat.ignoreAmbiguities = currAlt.IGNORE_AMBIGUITIES;
+ } else if (has_default(currAlt, "GATE")) {
+ currAltFlat.ignoreAmbiguities = true;
+ }
+ this.recordingProdStack.push(currAltFlat);
+ currAlt.ALT.call(this);
+ this.recordingProdStack.pop();
+ });
+ return RECORDING_NULL_OBJECT;
+ }
+ function getIdxSuffix(idx) {
+ return idx === 0 ? "" : `${idx}`;
+ }
+ function assertMethodIdxIsValid(idx) {
+ if (idx < 0 || idx > MAX_METHOD_IDX) {
+ const error3 = new Error(
+ // The stack trace will contain all the needed details
+ `Invalid DSL Method idx value: <${idx}>
+ Idx value must be a none negative value smaller than ${MAX_METHOD_IDX + 1}`
+ );
+ error3.KNOWN_RECORDER_ERROR = true;
+ throw error3;
+ }
+ }
+ var RECORDING_NULL_OBJECT, HANDLE_SEPARATOR, MAX_METHOD_IDX, RFT, RECORDING_PHASE_TOKEN, RECORDING_PHASE_CSTNODE, GastRecorder;
+ var init_gast_recorder = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/gast_recorder.js"() {
+ "use strict";
+ init_lodash();
+ init_api3();
+ init_lexer_public();
+ init_tokens();
+ init_tokens_public();
+ init_parser();
+ init_keys2();
+ RECORDING_NULL_OBJECT = {
+ description: "This Object indicates the Parser is during Recording Phase"
+ };
+ Object.freeze(RECORDING_NULL_OBJECT);
+ HANDLE_SEPARATOR = true;
+ MAX_METHOD_IDX = Math.pow(2, BITS_FOR_OCCURRENCE_IDX) - 1;
+ RFT = createToken({ name: "RECORDING_PHASE_TOKEN", pattern: Lexer2.NA });
+ augmentTokenTypes([RFT]);
+ RECORDING_PHASE_TOKEN = createTokenInstance(
+ RFT,
+ "This IToken indicates the Parser is in Recording Phase\n See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",
+ // Using "-1" instead of NaN (as in EOF) because an actual number is less likely to
+ // cause errors if the output of LA or CONSUME would be (incorrectly) used during the recording phase.
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ );
+ Object.freeze(RECORDING_PHASE_TOKEN);
+ RECORDING_PHASE_CSTNODE = {
+ name: "This CSTNode indicates the Parser is in Recording Phase\n See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",
+ children: {}
+ };
+ GastRecorder = class {
+ static {
+ __name(this, "GastRecorder");
+ }
+ initGastRecorder(config6) {
+ this.recordingProdStack = [];
+ this.RECORDING_PHASE = false;
+ }
+ enableRecording() {
+ this.RECORDING_PHASE = true;
+ this.TRACE_INIT("Enable Recording", () => {
+ for (let i2 = 0; i2 < 10; i2++) {
+ const idx = i2 > 0 ? i2 : "";
+ this[`CONSUME${idx}`] = function(arg1, arg2) {
+ return this.consumeInternalRecord(arg1, i2, arg2);
+ };
+ this[`SUBRULE${idx}`] = function(arg1, arg2) {
+ return this.subruleInternalRecord(arg1, i2, arg2);
+ };
+ this[`OPTION${idx}`] = function(arg1) {
+ return this.optionInternalRecord(arg1, i2);
+ };
+ this[`OR${idx}`] = function(arg1) {
+ return this.orInternalRecord(arg1, i2);
+ };
+ this[`MANY${idx}`] = function(arg1) {
+ this.manyInternalRecord(i2, arg1);
+ };
+ this[`MANY_SEP${idx}`] = function(arg1) {
+ this.manySepFirstInternalRecord(i2, arg1);
+ };
+ this[`AT_LEAST_ONE${idx}`] = function(arg1) {
+ this.atLeastOneInternalRecord(i2, arg1);
+ };
+ this[`AT_LEAST_ONE_SEP${idx}`] = function(arg1) {
+ this.atLeastOneSepFirstInternalRecord(i2, arg1);
+ };
}
- function ece() {
+ this[`consume`] = function(idx, arg1, arg2) {
+ return this.consumeInternalRecord(arg1, idx, arg2);
+ };
+ this[`subrule`] = function(idx, arg1, arg2) {
+ return this.subruleInternalRecord(arg1, idx, arg2);
+ };
+ this[`option`] = function(idx, arg1) {
+ return this.optionInternalRecord(arg1, idx);
+ };
+ this[`or`] = function(idx, arg1) {
+ return this.orInternalRecord(arg1, idx);
+ };
+ this[`many`] = function(idx, arg1) {
+ this.manyInternalRecord(idx, arg1);
+ };
+ this[`atLeastOne`] = function(idx, arg1) {
+ this.atLeastOneInternalRecord(idx, arg1);
+ };
+ this.ACTION = this.ACTION_RECORD;
+ this.BACKTRACK = this.BACKTRACK_RECORD;
+ this.LA = this.LA_RECORD;
+ });
+ }
+ disableRecording() {
+ this.RECORDING_PHASE = false;
+ this.TRACE_INIT("Deleting Recording methods", () => {
+ const that = this;
+ for (let i2 = 0; i2 < 10; i2++) {
+ const idx = i2 > 0 ? i2 : "";
+ delete that[`CONSUME${idx}`];
+ delete that[`SUBRULE${idx}`];
+ delete that[`OPTION${idx}`];
+ delete that[`OR${idx}`];
+ delete that[`MANY${idx}`];
+ delete that[`MANY_SEP${idx}`];
+ delete that[`AT_LEAST_ONE${idx}`];
+ delete that[`AT_LEAST_ONE_SEP${idx}`];
+ }
+ delete that[`consume`];
+ delete that[`subrule`];
+ delete that[`option`];
+ delete that[`or`];
+ delete that[`many`];
+ delete that[`atLeastOne`];
+ delete that.ACTION;
+ delete that.BACKTRACK;
+ delete that.LA;
+ });
+ }
+ // Parser methods are called inside an ACTION?
+ // Maybe try/catch/finally on ACTIONS while disabling the recorders state changes?
+ // @ts-expect-error -- noop place holder
+ ACTION_RECORD(impl2) {
+ }
+ // Executing backtracking logic will break our recording logic assumptions
+ BACKTRACK_RECORD(grammarRule, args) {
+ return () => true;
+ }
+ // LA is part of the official API and may be used for custom lookahead logic
+ // by end users who may forget to wrap it in ACTION or inside a GATE
+ LA_RECORD(howMuch) {
+ return END_OF_FILE;
+ }
+ topLevelRuleRecord(name, def2) {
+ try {
+ const newTopLevelRule = new Rule({ definition: [], name });
+ newTopLevelRule.name = name;
+ this.recordingProdStack.push(newTopLevelRule);
+ def2.call(this);
+ this.recordingProdStack.pop();
+ return newTopLevelRule;
+ } catch (originalError) {
+ if (originalError.KNOWN_RECORDER_ERROR !== true) {
+ try {
+ originalError.message = originalError.message + '\n This error was thrown during the "grammar recording phase" For more info see:\n https://chevrotain.io/docs/guide/internals.html#grammar-recording';
+ } catch (mutabilityError) {
+ throw originalError;
+ }
}
- function hce() {
+ throw originalError;
+ }
+ }
+ // Implementation of parsing DSL
+ optionInternalRecord(actionORMethodDef, occurrence) {
+ return recordProd.call(this, Option2, actionORMethodDef, occurrence);
+ }
+ atLeastOneInternalRecord(occurrence, actionORMethodDef) {
+ recordProd.call(this, RepetitionMandatory, actionORMethodDef, occurrence);
+ }
+ atLeastOneSepFirstInternalRecord(occurrence, options3) {
+ recordProd.call(this, RepetitionMandatoryWithSeparator, options3, occurrence, HANDLE_SEPARATOR);
+ }
+ manyInternalRecord(occurrence, actionORMethodDef) {
+ recordProd.call(this, Repetition, actionORMethodDef, occurrence);
+ }
+ manySepFirstInternalRecord(occurrence, options3) {
+ recordProd.call(this, RepetitionWithSeparator, options3, occurrence, HANDLE_SEPARATOR);
+ }
+ orInternalRecord(altsOrOpts, occurrence) {
+ return recordOrProd.call(this, altsOrOpts, occurrence);
+ }
+ subruleInternalRecord(ruleToCall, occurrence, options3) {
+ assertMethodIdxIsValid(occurrence);
+ if (!ruleToCall || has_default(ruleToCall, "ruleName") === false) {
+ const error3 = new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(ruleToCall)}>
+ inside top level rule: <${this.recordingProdStack[0].name}>`);
+ error3.KNOWN_RECORDER_ERROR = true;
+ throw error3;
+ }
+ const prevProd = last_default(this.recordingProdStack);
+ const ruleName = ruleToCall.ruleName;
+ const newNoneTerminal = new NonTerminal({
+ idx: occurrence,
+ nonTerminalName: ruleName,
+ label: options3 === null || options3 === void 0 ? void 0 : options3.LABEL,
+ // The resolving of the `referencedRule` property will be done once all the Rule's GASTs have been created
+ referencedRule: void 0
+ });
+ prevProd.definition.push(newNoneTerminal);
+ return this.outputCst ? RECORDING_PHASE_CSTNODE : RECORDING_NULL_OBJECT;
+ }
+ consumeInternalRecord(tokType, occurrence, options3) {
+ assertMethodIdxIsValid(occurrence);
+ if (!hasShortKeyProperty(tokType)) {
+ const error3 = new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(tokType)}>
+ inside top level rule: <${this.recordingProdStack[0].name}>`);
+ error3.KNOWN_RECORDER_ERROR = true;
+ throw error3;
+ }
+ const prevProd = last_default(this.recordingProdStack);
+ const newNoneTerminal = new Terminal({
+ idx: occurrence,
+ terminalType: tokType,
+ label: options3 === null || options3 === void 0 ? void 0 : options3.LABEL
+ });
+ prevProd.definition.push(newNoneTerminal);
+ return RECORDING_PHASE_TOKEN;
+ }
+ };
+ __name(recordProd, "recordProd");
+ __name(recordOrProd, "recordOrProd");
+ __name(getIdxSuffix, "getIdxSuffix");
+ __name(assertMethodIdxIsValid, "assertMethodIdxIsValid");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/perf_tracer.js
+ var PerformanceTracer;
+ var init_perf_tracer = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/traits/perf_tracer.js"() {
+ "use strict";
+ init_lodash();
+ init_api2();
+ init_parser();
+ PerformanceTracer = class {
+ static {
+ __name(this, "PerformanceTracer");
+ }
+ initPerformanceTracer(config6) {
+ if (has_default(config6, "traceInitPerf")) {
+ const userTraceInitPerf = config6.traceInitPerf;
+ const traceIsNumber = typeof userTraceInitPerf === "number";
+ this.traceInitMaxIdent = traceIsNumber ? userTraceInitPerf : Infinity;
+ this.traceInitPerf = traceIsNumber ? userTraceInitPerf > 0 : userTraceInitPerf;
+ } else {
+ this.traceInitMaxIdent = 0;
+ this.traceInitPerf = DEFAULT_PARSER_CONFIG.traceInitPerf;
+ }
+ this.traceInitIndent = -1;
+ }
+ TRACE_INIT(phaseDesc, phaseImpl) {
+ if (this.traceInitPerf === true) {
+ this.traceInitIndent++;
+ const indent = new Array(this.traceInitIndent + 1).join(" ");
+ if (this.traceInitIndent < this.traceInitMaxIdent) {
+ console.log(`${indent}--> <${phaseDesc}>`);
}
- function kce() {
+ const { time: time4, value: value2 } = timer2(phaseImpl);
+ const traceMethod = time4 > 10 ? console.warn : console.log;
+ if (this.traceInitIndent < this.traceInitMaxIdent) {
+ traceMethod(`${indent}<-- <${phaseDesc}> time: ${time4}ms`);
}
- function nce() {
+ this.traceInitIndent--;
+ return value2;
+ } else {
+ return phaseImpl();
+ }
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/utils/apply_mixins.js
+ function applyMixins(derivedCtor, baseCtors) {
+ baseCtors.forEach((baseCtor) => {
+ const baseProto = baseCtor.prototype;
+ Object.getOwnPropertyNames(baseProto).forEach((propName) => {
+ if (propName === "constructor") {
+ return;
+ }
+ const basePropDescriptor = Object.getOwnPropertyDescriptor(baseProto, propName);
+ if (basePropDescriptor && (basePropDescriptor.get || basePropDescriptor.set)) {
+ Object.defineProperty(derivedCtor.prototype, propName, basePropDescriptor);
+ } else {
+ derivedCtor.prototype[propName] = baseCtor.prototype[propName];
+ }
+ });
+ });
+ }
+ var init_apply_mixins = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/utils/apply_mixins.js"() {
+ "use strict";
+ __name(applyMixins, "applyMixins");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/parser.js
+ function EMPTY_ALT(value2 = void 0) {
+ return function() {
+ return value2;
+ };
+ }
+ var END_OF_FILE, DEFAULT_PARSER_CONFIG, DEFAULT_RULE_CONFIG, ParserDefinitionErrorType, Parser2, EmbeddedActionsParser;
+ var init_parser = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/parse/parser/parser.js"() {
+ "use strict";
+ init_lodash();
+ init_api2();
+ init_follow();
+ init_tokens_public();
+ init_errors_public();
+ init_gast_resolver_public();
+ init_recoverable();
+ init_looksahead();
+ init_tree_builder();
+ init_lexer_adapter();
+ init_recognizer_api();
+ init_recognizer_engine();
+ init_error_handler();
+ init_context_assist();
+ init_gast_recorder();
+ init_perf_tracer();
+ init_apply_mixins();
+ init_checks();
+ END_OF_FILE = createTokenInstance(EOF, "", NaN, NaN, NaN, NaN, NaN, NaN);
+ Object.freeze(END_OF_FILE);
+ DEFAULT_PARSER_CONFIG = Object.freeze({
+ recoveryEnabled: false,
+ maxLookahead: 3,
+ dynamicTokensEnabled: false,
+ outputCst: true,
+ errorMessageProvider: defaultParserErrorProvider,
+ nodeLocationTracking: "none",
+ traceInitPerf: false,
+ skipValidations: false
+ });
+ DEFAULT_RULE_CONFIG = Object.freeze({
+ recoveryValueFunc: /* @__PURE__ */ __name(() => void 0, "recoveryValueFunc"),
+ resyncEnabled: true
+ });
+ (function(ParserDefinitionErrorType2) {
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["INVALID_RULE_NAME"] = 0] = "INVALID_RULE_NAME";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["DUPLICATE_RULE_NAME"] = 1] = "DUPLICATE_RULE_NAME";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["INVALID_RULE_OVERRIDE"] = 2] = "INVALID_RULE_OVERRIDE";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["DUPLICATE_PRODUCTIONS"] = 3] = "DUPLICATE_PRODUCTIONS";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["UNRESOLVED_SUBRULE_REF"] = 4] = "UNRESOLVED_SUBRULE_REF";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["LEFT_RECURSION"] = 5] = "LEFT_RECURSION";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["NONE_LAST_EMPTY_ALT"] = 6] = "NONE_LAST_EMPTY_ALT";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["AMBIGUOUS_ALTS"] = 7] = "AMBIGUOUS_ALTS";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["CONFLICT_TOKENS_RULES_NAMESPACE"] = 8] = "CONFLICT_TOKENS_RULES_NAMESPACE";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["INVALID_TOKEN_NAME"] = 9] = "INVALID_TOKEN_NAME";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["NO_NON_EMPTY_LOOKAHEAD"] = 10] = "NO_NON_EMPTY_LOOKAHEAD";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["AMBIGUOUS_PREFIX_ALTS"] = 11] = "AMBIGUOUS_PREFIX_ALTS";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["TOO_MANY_ALTS"] = 12] = "TOO_MANY_ALTS";
+ ParserDefinitionErrorType2[ParserDefinitionErrorType2["CUSTOM_LOOKAHEAD_VALIDATION"] = 13] = "CUSTOM_LOOKAHEAD_VALIDATION";
+ })(ParserDefinitionErrorType || (ParserDefinitionErrorType = {}));
+ __name(EMPTY_ALT, "EMPTY_ALT");
+ Parser2 = class _Parser2 {
+ static {
+ __name(this, "Parser");
+ }
+ /**
+ * @deprecated use the **instance** method with the same name instead
+ */
+ static performSelfAnalysis(parserInstance) {
+ throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.");
+ }
+ performSelfAnalysis() {
+ this.TRACE_INIT("performSelfAnalysis", () => {
+ let defErrorsMsgs;
+ this.selfAnalysisDone = true;
+ const className = this.className;
+ this.TRACE_INIT("toFastProps", () => {
+ toFastProperties(this);
+ });
+ this.TRACE_INIT("Grammar Recording", () => {
+ try {
+ this.enableRecording();
+ forEach_default(this.definedRulesNames, (currRuleName) => {
+ const wrappedRule = this[currRuleName];
+ const originalGrammarAction = wrappedRule["originalGrammarAction"];
+ let recordedRuleGast;
+ this.TRACE_INIT(`${currRuleName} Rule`, () => {
+ recordedRuleGast = this.topLevelRuleRecord(currRuleName, originalGrammarAction);
+ });
+ this.gastProductionsCache[currRuleName] = recordedRuleGast;
+ });
+ } finally {
+ this.disableRecording();
+ }
+ });
+ let resolverErrors = [];
+ this.TRACE_INIT("Grammar Resolving", () => {
+ resolverErrors = resolveGrammar2({
+ rules: values_default(this.gastProductionsCache)
+ });
+ this.definitionErrors = this.definitionErrors.concat(resolverErrors);
+ });
+ this.TRACE_INIT("Grammar Validations", () => {
+ if (isEmpty_default(resolverErrors) && this.skipValidations === false) {
+ const validationErrors = validateGrammar2({
+ rules: values_default(this.gastProductionsCache),
+ tokenTypes: values_default(this.tokensMap),
+ errMsgProvider: defaultGrammarValidatorErrorProvider,
+ grammarName: className
+ });
+ const lookaheadValidationErrors = validateLookahead({
+ lookaheadStrategy: this.lookaheadStrategy,
+ rules: values_default(this.gastProductionsCache),
+ tokenTypes: values_default(this.tokensMap),
+ grammarName: className
+ });
+ this.definitionErrors = this.definitionErrors.concat(validationErrors, lookaheadValidationErrors);
+ }
+ });
+ if (isEmpty_default(this.definitionErrors)) {
+ if (this.recoveryEnabled) {
+ this.TRACE_INIT("computeAllProdsFollows", () => {
+ const allFollows = computeAllProdsFollows(values_default(this.gastProductionsCache));
+ this.resyncFollows = allFollows;
+ });
+ }
+ this.TRACE_INIT("ComputeLookaheadFunctions", () => {
+ var _a, _b;
+ (_b = (_a = this.lookaheadStrategy).initialize) === null || _b === void 0 ? void 0 : _b.call(_a, {
+ rules: values_default(this.gastProductionsCache)
+ });
+ this.preComputeLookaheadFunctions(values_default(this.gastProductionsCache));
+ });
}
- function qce() {
+ if (!_Parser2.DEFER_DEFINITION_ERRORS_HANDLING && !isEmpty_default(this.definitionErrors)) {
+ defErrorsMsgs = map_default(this.definitionErrors, (defError) => defError.message);
+ throw new Error(`Parser Definition Errors detected:
+ ${defErrorsMsgs.join("\n-------------------------------\n")}`);
}
- function tce() {
+ });
+ }
+ constructor(tokenVocabulary, config6) {
+ this.definitionErrors = [];
+ this.selfAnalysisDone = false;
+ const that = this;
+ that.initErrorHandler(config6);
+ that.initLexerAdapter();
+ that.initLooksAhead(config6);
+ that.initRecognizerEngine(tokenVocabulary, config6);
+ that.initRecoverable(config6);
+ that.initTreeBuilder(config6);
+ that.initContentAssist();
+ that.initGastRecorder(config6);
+ that.initPerformanceTracer(config6);
+ if (has_default(config6, "ignoredIssues")) {
+ throw new Error("The IParserConfig property has been deprecated.\n Please use the flag on the relevant DSL method instead.\n See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n For further details.");
+ }
+ this.skipValidations = has_default(config6, "skipValidations") ? config6.skipValidations : DEFAULT_PARSER_CONFIG.skipValidations;
+ }
+ };
+ Parser2.DEFER_DEFINITION_ERRORS_HANDLING = false;
+ applyMixins(Parser2, [
+ Recoverable,
+ LooksAhead,
+ TreeBuilder,
+ LexerAdapter,
+ RecognizerEngine,
+ RecognizerApi,
+ ErrorHandler,
+ ContentAssist,
+ GastRecorder,
+ PerformanceTracer
+ ]);
+ EmbeddedActionsParser = class extends Parser2 {
+ static {
+ __name(this, "EmbeddedActionsParser");
+ }
+ constructor(tokenVocabulary, config6 = DEFAULT_PARSER_CONFIG) {
+ const configClone = clone_default2(config6);
+ configClone.outputCst = false;
+ super(tokenVocabulary, configClone);
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+cst-dts-gen@11.0.3/node_modules/@chevrotain/cst-dts-gen/lib/src/model.js
+ var init_model2 = __esm({
+ "../../node_modules/.pnpm/@chevrotain+cst-dts-gen@11.0.3/node_modules/@chevrotain/cst-dts-gen/lib/src/model.js"() {
+ "use strict";
+ init_api3();
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+cst-dts-gen@11.0.3/node_modules/@chevrotain/cst-dts-gen/lib/src/generate.js
+ var init_generate = __esm({
+ "../../node_modules/.pnpm/@chevrotain+cst-dts-gen@11.0.3/node_modules/@chevrotain/cst-dts-gen/lib/src/generate.js"() {
+ "use strict";
+ }
+ });
+
+ // ../../node_modules/.pnpm/@chevrotain+cst-dts-gen@11.0.3/node_modules/@chevrotain/cst-dts-gen/lib/src/api.js
+ var init_api4 = __esm({
+ "../../node_modules/.pnpm/@chevrotain+cst-dts-gen@11.0.3/node_modules/@chevrotain/cst-dts-gen/lib/src/api.js"() {
+ "use strict";
+ init_model2();
+ init_generate();
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/diagrams/render_public.js
+ var init_render_public = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/diagrams/render_public.js"() {
+ "use strict";
+ init_version();
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/api.js
+ var init_api5 = __esm({
+ "../../node_modules/.pnpm/chevrotain@11.0.3/node_modules/chevrotain/lib/src/api.js"() {
+ "use strict";
+ init_version();
+ init_parser();
+ init_lexer_public();
+ init_tokens_public();
+ init_lookahead();
+ init_llk_lookahead();
+ init_errors_public();
+ init_exceptions_public();
+ init_lexer_errors_public();
+ init_api3();
+ init_api3();
+ init_api4();
+ init_render_public();
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/atn.js
+ function buildATNKey(rule, type3, occurrence) {
+ return `${rule.name}_${type3}_${occurrence}`;
+ }
+ function createATN(rules) {
+ const atn = {
+ decisionMap: {},
+ decisionStates: [],
+ ruleToStartState: /* @__PURE__ */ new Map(),
+ ruleToStopState: /* @__PURE__ */ new Map(),
+ states: []
+ };
+ createRuleStartAndStopATNStates(atn, rules);
+ const ruleLength = rules.length;
+ for (let i2 = 0; i2 < ruleLength; i2++) {
+ const rule = rules[i2];
+ const ruleBlock = block2(atn, rule, rule);
+ if (ruleBlock === void 0) {
+ continue;
+ }
+ buildRuleHandle(atn, rule, ruleBlock);
+ }
+ return atn;
+ }
+ function createRuleStartAndStopATNStates(atn, rules) {
+ const ruleLength = rules.length;
+ for (let i2 = 0; i2 < ruleLength; i2++) {
+ const rule = rules[i2];
+ const start3 = newState(atn, rule, void 0, {
+ type: ATN_RULE_START
+ });
+ const stop5 = newState(atn, rule, void 0, {
+ type: ATN_RULE_STOP
+ });
+ start3.stop = stop5;
+ atn.ruleToStartState.set(rule, start3);
+ atn.ruleToStopState.set(rule, stop5);
+ }
+ }
+ function atom(atn, rule, production) {
+ if (production instanceof Terminal) {
+ return tokenRef(atn, rule, production.terminalType, production);
+ } else if (production instanceof NonTerminal) {
+ return ruleRef(atn, rule, production);
+ } else if (production instanceof Alternation) {
+ return alternation(atn, rule, production);
+ } else if (production instanceof Option2) {
+ return option(atn, rule, production);
+ } else if (production instanceof Repetition) {
+ return repetition(atn, rule, production);
+ } else if (production instanceof RepetitionWithSeparator) {
+ return repetitionSep(atn, rule, production);
+ } else if (production instanceof RepetitionMandatory) {
+ return repetitionMandatory(atn, rule, production);
+ } else if (production instanceof RepetitionMandatoryWithSeparator) {
+ return repetitionMandatorySep(atn, rule, production);
+ } else {
+ return block2(atn, rule, production);
+ }
+ }
+ function repetition(atn, rule, repetition2) {
+ const starState = newState(atn, rule, repetition2, {
+ type: ATN_STAR_BLOCK_START
+ });
+ defineDecisionState(atn, starState);
+ const handle = makeAlts(atn, rule, starState, repetition2, block2(atn, rule, repetition2));
+ return star(atn, rule, repetition2, handle);
+ }
+ function repetitionSep(atn, rule, repetition2) {
+ const starState = newState(atn, rule, repetition2, {
+ type: ATN_STAR_BLOCK_START
+ });
+ defineDecisionState(atn, starState);
+ const handle = makeAlts(atn, rule, starState, repetition2, block2(atn, rule, repetition2));
+ const sep2 = tokenRef(atn, rule, repetition2.separator, repetition2);
+ return star(atn, rule, repetition2, handle, sep2);
+ }
+ function repetitionMandatory(atn, rule, repetition2) {
+ const plusState = newState(atn, rule, repetition2, {
+ type: ATN_PLUS_BLOCK_START
+ });
+ defineDecisionState(atn, plusState);
+ const handle = makeAlts(atn, rule, plusState, repetition2, block2(atn, rule, repetition2));
+ return plus(atn, rule, repetition2, handle);
+ }
+ function repetitionMandatorySep(atn, rule, repetition2) {
+ const plusState = newState(atn, rule, repetition2, {
+ type: ATN_PLUS_BLOCK_START
+ });
+ defineDecisionState(atn, plusState);
+ const handle = makeAlts(atn, rule, plusState, repetition2, block2(atn, rule, repetition2));
+ const sep2 = tokenRef(atn, rule, repetition2.separator, repetition2);
+ return plus(atn, rule, repetition2, handle, sep2);
+ }
+ function alternation(atn, rule, alternation2) {
+ const start3 = newState(atn, rule, alternation2, {
+ type: ATN_BASIC
+ });
+ defineDecisionState(atn, start3);
+ const alts = map_default(alternation2.definition, (e3) => atom(atn, rule, e3));
+ const handle = makeAlts(atn, rule, start3, alternation2, ...alts);
+ return handle;
+ }
+ function option(atn, rule, option2) {
+ const start3 = newState(atn, rule, option2, {
+ type: ATN_BASIC
+ });
+ defineDecisionState(atn, start3);
+ const handle = makeAlts(atn, rule, start3, option2, block2(atn, rule, option2));
+ return optional(atn, rule, option2, handle);
+ }
+ function block2(atn, rule, block3) {
+ const handles = filter_default3(map_default(block3.definition, (e3) => atom(atn, rule, e3)), (e3) => e3 !== void 0);
+ if (handles.length === 1) {
+ return handles[0];
+ } else if (handles.length === 0) {
+ return void 0;
+ } else {
+ return makeBlock(atn, handles);
+ }
+ }
+ function plus(atn, rule, plus2, handle, sep2) {
+ const blkStart = handle.left;
+ const blkEnd = handle.right;
+ const loop = newState(atn, rule, plus2, {
+ type: ATN_PLUS_LOOP_BACK
+ });
+ defineDecisionState(atn, loop);
+ const end2 = newState(atn, rule, plus2, {
+ type: ATN_LOOP_END
+ });
+ blkStart.loopback = loop;
+ end2.loopback = loop;
+ atn.decisionMap[buildATNKey(rule, sep2 ? "RepetitionMandatoryWithSeparator" : "RepetitionMandatory", plus2.idx)] = loop;
+ epsilon4(blkEnd, loop);
+ if (sep2 === void 0) {
+ epsilon4(loop, blkStart);
+ epsilon4(loop, end2);
+ } else {
+ epsilon4(loop, end2);
+ epsilon4(loop, sep2.left);
+ epsilon4(sep2.right, blkStart);
+ }
+ return {
+ left: blkStart,
+ right: end2
+ };
+ }
+ function star(atn, rule, star2, handle, sep2) {
+ const start3 = handle.left;
+ const end2 = handle.right;
+ const entry = newState(atn, rule, star2, {
+ type: ATN_STAR_LOOP_ENTRY
+ });
+ defineDecisionState(atn, entry);
+ const loopEnd = newState(atn, rule, star2, {
+ type: ATN_LOOP_END
+ });
+ const loop = newState(atn, rule, star2, {
+ type: ATN_STAR_LOOP_BACK
+ });
+ entry.loopback = loop;
+ loopEnd.loopback = loop;
+ epsilon4(entry, start3);
+ epsilon4(entry, loopEnd);
+ epsilon4(end2, loop);
+ if (sep2 !== void 0) {
+ epsilon4(loop, loopEnd);
+ epsilon4(loop, sep2.left);
+ epsilon4(sep2.right, start3);
+ } else {
+ epsilon4(loop, entry);
+ }
+ atn.decisionMap[buildATNKey(rule, sep2 ? "RepetitionWithSeparator" : "Repetition", star2.idx)] = entry;
+ return {
+ left: entry,
+ right: loopEnd
+ };
+ }
+ function optional(atn, rule, optional2, handle) {
+ const start3 = handle.left;
+ const end2 = handle.right;
+ epsilon4(start3, end2);
+ atn.decisionMap[buildATNKey(rule, "Option", optional2.idx)] = start3;
+ return handle;
+ }
+ function defineDecisionState(atn, state5) {
+ atn.decisionStates.push(state5);
+ state5.decision = atn.decisionStates.length - 1;
+ return state5.decision;
+ }
+ function makeAlts(atn, rule, start3, production, ...alts) {
+ const end2 = newState(atn, rule, production, {
+ type: ATN_BLOCK_END,
+ start: start3
+ });
+ start3.end = end2;
+ for (const alt of alts) {
+ if (alt !== void 0) {
+ epsilon4(start3, alt.left);
+ epsilon4(alt.right, end2);
+ } else {
+ epsilon4(start3, end2);
+ }
+ }
+ const handle = {
+ left: start3,
+ right: end2
+ };
+ atn.decisionMap[buildATNKey(rule, getProdType2(production), production.idx)] = start3;
+ return handle;
+ }
+ function getProdType2(production) {
+ if (production instanceof Alternation) {
+ return "Alternation";
+ } else if (production instanceof Option2) {
+ return "Option";
+ } else if (production instanceof Repetition) {
+ return "Repetition";
+ } else if (production instanceof RepetitionWithSeparator) {
+ return "RepetitionWithSeparator";
+ } else if (production instanceof RepetitionMandatory) {
+ return "RepetitionMandatory";
+ } else if (production instanceof RepetitionMandatoryWithSeparator) {
+ return "RepetitionMandatoryWithSeparator";
+ } else {
+ throw new Error("Invalid production type encountered");
+ }
+ }
+ function makeBlock(atn, alts) {
+ const altsLength = alts.length;
+ for (let i2 = 0; i2 < altsLength - 1; i2++) {
+ const handle = alts[i2];
+ let transition2;
+ if (handle.left.transitions.length === 1) {
+ transition2 = handle.left.transitions[0];
+ }
+ const isRuleTransition = transition2 instanceof RuleTransition;
+ const ruleTransition = transition2;
+ const next3 = alts[i2 + 1].left;
+ if (handle.left.type === ATN_BASIC && handle.right.type === ATN_BASIC && transition2 !== void 0 && (isRuleTransition && ruleTransition.followState === handle.right || transition2.target === handle.right)) {
+ if (isRuleTransition) {
+ ruleTransition.followState = next3;
+ } else {
+ transition2.target = next3;
+ }
+ removeState(atn, handle.right);
+ } else {
+ epsilon4(handle.right, next3);
+ }
+ }
+ const first3 = alts[0];
+ const last3 = alts[altsLength - 1];
+ return {
+ left: first3.left,
+ right: last3.right
+ };
+ }
+ function tokenRef(atn, rule, tokenType, production) {
+ const left3 = newState(atn, rule, production, {
+ type: ATN_BASIC
+ });
+ const right3 = newState(atn, rule, production, {
+ type: ATN_BASIC
+ });
+ addTransition(left3, new AtomTransition(right3, tokenType));
+ return {
+ left: left3,
+ right: right3
+ };
+ }
+ function ruleRef(atn, currentRule, nonTerminal) {
+ const rule = nonTerminal.referencedRule;
+ const start3 = atn.ruleToStartState.get(rule);
+ const left3 = newState(atn, currentRule, nonTerminal, {
+ type: ATN_BASIC
+ });
+ const right3 = newState(atn, currentRule, nonTerminal, {
+ type: ATN_BASIC
+ });
+ const call = new RuleTransition(start3, rule, right3);
+ addTransition(left3, call);
+ return {
+ left: left3,
+ right: right3
+ };
+ }
+ function buildRuleHandle(atn, rule, block3) {
+ const start3 = atn.ruleToStartState.get(rule);
+ epsilon4(start3, block3.left);
+ const stop5 = atn.ruleToStopState.get(rule);
+ epsilon4(block3.right, stop5);
+ const handle = {
+ left: start3,
+ right: stop5
+ };
+ return handle;
+ }
+ function epsilon4(a2, b2) {
+ const transition2 = new EpsilonTransition(b2);
+ addTransition(a2, transition2);
+ }
+ function newState(atn, rule, production, partial) {
+ const t4 = Object.assign({
+ atn,
+ production,
+ epsilonOnlyTransitions: false,
+ rule,
+ transitions: [],
+ nextTokenWithinRule: [],
+ stateNumber: atn.states.length
+ }, partial);
+ atn.states.push(t4);
+ return t4;
+ }
+ function addTransition(state5, transition2) {
+ if (state5.transitions.length === 0) {
+ state5.epsilonOnlyTransitions = transition2.isEpsilon();
+ }
+ state5.transitions.push(transition2);
+ }
+ function removeState(atn, state5) {
+ atn.states.splice(atn.states.indexOf(state5), 1);
+ }
+ var ATN_BASIC, ATN_RULE_START, ATN_PLUS_BLOCK_START, ATN_STAR_BLOCK_START, ATN_RULE_STOP, ATN_BLOCK_END, ATN_STAR_LOOP_BACK, ATN_STAR_LOOP_ENTRY, ATN_PLUS_LOOP_BACK, ATN_LOOP_END, AbstractTransition, AtomTransition, EpsilonTransition, RuleTransition;
+ var init_atn = __esm({
+ "../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/atn.js"() {
+ "use strict";
+ init_map();
+ init_filter3();
+ init_api5();
+ __name(buildATNKey, "buildATNKey");
+ ATN_BASIC = 1;
+ ATN_RULE_START = 2;
+ ATN_PLUS_BLOCK_START = 4;
+ ATN_STAR_BLOCK_START = 5;
+ ATN_RULE_STOP = 7;
+ ATN_BLOCK_END = 8;
+ ATN_STAR_LOOP_BACK = 9;
+ ATN_STAR_LOOP_ENTRY = 10;
+ ATN_PLUS_LOOP_BACK = 11;
+ ATN_LOOP_END = 12;
+ AbstractTransition = class {
+ static {
+ __name(this, "AbstractTransition");
+ }
+ constructor(target) {
+ this.target = target;
+ }
+ isEpsilon() {
+ return false;
+ }
+ };
+ AtomTransition = class extends AbstractTransition {
+ static {
+ __name(this, "AtomTransition");
+ }
+ constructor(target, tokenType) {
+ super(target);
+ this.tokenType = tokenType;
+ }
+ };
+ EpsilonTransition = class extends AbstractTransition {
+ static {
+ __name(this, "EpsilonTransition");
+ }
+ constructor(target) {
+ super(target);
+ }
+ isEpsilon() {
+ return true;
+ }
+ };
+ RuleTransition = class extends AbstractTransition {
+ static {
+ __name(this, "RuleTransition");
+ }
+ constructor(ruleStart, rule, followState) {
+ super(ruleStart);
+ this.rule = rule;
+ this.followState = followState;
+ }
+ isEpsilon() {
+ return true;
+ }
+ };
+ __name(createATN, "createATN");
+ __name(createRuleStartAndStopATNStates, "createRuleStartAndStopATNStates");
+ __name(atom, "atom");
+ __name(repetition, "repetition");
+ __name(repetitionSep, "repetitionSep");
+ __name(repetitionMandatory, "repetitionMandatory");
+ __name(repetitionMandatorySep, "repetitionMandatorySep");
+ __name(alternation, "alternation");
+ __name(option, "option");
+ __name(block2, "block");
+ __name(plus, "plus");
+ __name(star, "star");
+ __name(optional, "optional");
+ __name(defineDecisionState, "defineDecisionState");
+ __name(makeAlts, "makeAlts");
+ __name(getProdType2, "getProdType");
+ __name(makeBlock, "makeBlock");
+ __name(tokenRef, "tokenRef");
+ __name(ruleRef, "ruleRef");
+ __name(buildRuleHandle, "buildRuleHandle");
+ __name(epsilon4, "epsilon");
+ __name(newState, "newState");
+ __name(addTransition, "addTransition");
+ __name(removeState, "removeState");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/dfa.js
+ function getATNConfigKey(config6, alt = true) {
+ return `${alt ? `a${config6.alt}` : ""}s${config6.state.stateNumber}:${config6.stack.map((e3) => e3.stateNumber.toString()).join("_")}`;
+ }
+ var DFA_ERROR, ATNConfigSet;
+ var init_dfa = __esm({
+ "../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/dfa.js"() {
+ "use strict";
+ init_map();
+ DFA_ERROR = {};
+ ATNConfigSet = class {
+ static {
+ __name(this, "ATNConfigSet");
+ }
+ constructor() {
+ this.map = {};
+ this.configs = [];
+ }
+ get size() {
+ return this.configs.length;
+ }
+ finalize() {
+ this.map = {};
+ }
+ add(config6) {
+ const key = getATNConfigKey(config6);
+ if (!(key in this.map)) {
+ this.map[key] = this.configs.length;
+ this.configs.push(config6);
+ }
+ }
+ get elements() {
+ return this.configs;
+ }
+ get alts() {
+ return map_default(this.configs, (e3) => e3.alt);
+ }
+ get key() {
+ let value2 = "";
+ for (const k2 in this.map) {
+ value2 += k2 + ":";
+ }
+ return value2;
+ }
+ };
+ __name(getATNConfigKey, "getATNConfigKey");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/all-star-lookahead.js
+ function createDFACache(startState, decision) {
+ const map5 = {};
+ return (predicateSet) => {
+ const key = predicateSet.toString();
+ let existing = map5[key];
+ if (existing !== void 0) {
+ return existing;
+ } else {
+ existing = {
+ atnStartState: startState,
+ decision,
+ states: {}
+ };
+ map5[key] = existing;
+ return existing;
+ }
+ };
+ }
+ function isLL1Sequence(sequences, allowEmpty = true) {
+ const fullSet = /* @__PURE__ */ new Set();
+ for (const alt of sequences) {
+ const altSet = /* @__PURE__ */ new Set();
+ for (const tokType of alt) {
+ if (tokType === void 0) {
+ if (allowEmpty) {
+ break;
+ } else {
+ return false;
+ }
+ }
+ const indices = [tokType.tokenTypeIdx].concat(tokType.categoryMatches);
+ for (const index of indices) {
+ if (fullSet.has(index)) {
+ if (!altSet.has(index)) {
+ return false;
}
- function wce() {
+ } else {
+ fullSet.add(index);
+ altSet.add(index);
+ }
+ }
+ }
+ }
+ return true;
+ }
+ function initATNSimulator(atn) {
+ const decisionLength = atn.decisionStates.length;
+ const decisionToDFA = Array(decisionLength);
+ for (let i2 = 0; i2 < decisionLength; i2++) {
+ decisionToDFA[i2] = createDFACache(atn.decisionStates[i2], i2);
+ }
+ return decisionToDFA;
+ }
+ function adaptivePredict(dfaCaches, decision, predicateSet, logging) {
+ const dfa = dfaCaches[decision](predicateSet);
+ let start3 = dfa.start;
+ if (start3 === void 0) {
+ const closure2 = computeStartState(dfa.atnStartState);
+ start3 = addDFAState(dfa, newDFAState(closure2));
+ dfa.start = start3;
+ }
+ const alt = performLookahead.apply(this, [dfa, start3, predicateSet, logging]);
+ return alt;
+ }
+ function performLookahead(dfa, s0, predicateSet, logging) {
+ let previousD = s0;
+ let i2 = 1;
+ const path4 = [];
+ let t4 = this.LA(i2++);
+ while (true) {
+ let d2 = getExistingTargetState(previousD, t4);
+ if (d2 === void 0) {
+ d2 = computeLookaheadTarget.apply(this, [dfa, previousD, t4, i2, predicateSet, logging]);
+ }
+ if (d2 === DFA_ERROR) {
+ return buildAdaptivePredictError(path4, previousD, t4);
+ }
+ if (d2.isAcceptState === true) {
+ return d2.prediction;
+ }
+ previousD = d2;
+ path4.push(t4);
+ t4 = this.LA(i2++);
+ }
+ }
+ function computeLookaheadTarget(dfa, previousD, token2, lookahead, predicateSet, logging) {
+ const reach = computeReachSet(previousD.configs, token2, predicateSet);
+ if (reach.size === 0) {
+ addDFAEdge(dfa, previousD, token2, DFA_ERROR);
+ return DFA_ERROR;
+ }
+ let newState2 = newDFAState(reach);
+ const predictedAlt = getUniqueAlt(reach, predicateSet);
+ if (predictedAlt !== void 0) {
+ newState2.isAcceptState = true;
+ newState2.prediction = predictedAlt;
+ newState2.configs.uniqueAlt = predictedAlt;
+ } else if (hasConflictTerminatingPrediction(reach)) {
+ const prediction = min_default(reach.alts);
+ newState2.isAcceptState = true;
+ newState2.prediction = prediction;
+ newState2.configs.uniqueAlt = prediction;
+ reportLookaheadAmbiguity.apply(this, [dfa, lookahead, reach.alts, logging]);
+ }
+ newState2 = addDFAEdge(dfa, previousD, token2, newState2);
+ return newState2;
+ }
+ function reportLookaheadAmbiguity(dfa, lookahead, ambiguityIndices, logging) {
+ const prefixPath = [];
+ for (let i2 = 1; i2 <= lookahead; i2++) {
+ prefixPath.push(this.LA(i2).tokenType);
+ }
+ const atnState = dfa.atnStartState;
+ const topLevelRule = atnState.rule;
+ const production = atnState.production;
+ const message = buildAmbiguityError({
+ topLevelRule,
+ ambiguityIndices,
+ production,
+ prefixPath
+ });
+ logging(message);
+ }
+ function buildAmbiguityError(options3) {
+ const pathMsg = map_default(options3.prefixPath, (currtok) => tokenLabel2(currtok)).join(", ");
+ const occurrence = options3.production.idx === 0 ? "" : options3.production.idx;
+ let currMessage = `Ambiguous Alternatives Detected: <${options3.ambiguityIndices.join(", ")}> in <${getProductionDslName2(options3.production)}${occurrence}> inside <${options3.topLevelRule.name}> Rule,
+<${pathMsg}> may appears as a prefix path in all these alternatives.
+`;
+ currMessage = currMessage + `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
+For Further details.`;
+ return currMessage;
+ }
+ function getProductionDslName2(prod) {
+ if (prod instanceof NonTerminal) {
+ return "SUBRULE";
+ } else if (prod instanceof Option2) {
+ return "OPTION";
+ } else if (prod instanceof Alternation) {
+ return "OR";
+ } else if (prod instanceof RepetitionMandatory) {
+ return "AT_LEAST_ONE";
+ } else if (prod instanceof RepetitionMandatoryWithSeparator) {
+ return "AT_LEAST_ONE_SEP";
+ } else if (prod instanceof RepetitionWithSeparator) {
+ return "MANY_SEP";
+ } else if (prod instanceof Repetition) {
+ return "MANY";
+ } else if (prod instanceof Terminal) {
+ return "CONSUME";
+ } else {
+ throw Error("non exhaustive match");
+ }
+ }
+ function buildAdaptivePredictError(path4, previous, current) {
+ const nextTransitions = flatMap_default(previous.configs.elements, (e3) => e3.state.transitions);
+ const nextTokenTypes = uniqBy_default(nextTransitions.filter((e3) => e3 instanceof AtomTransition).map((e3) => e3.tokenType), (e3) => e3.tokenTypeIdx);
+ return {
+ actualToken: current,
+ possibleTokenTypes: nextTokenTypes,
+ tokenPath: path4
+ };
+ }
+ function getExistingTargetState(state5, token2) {
+ return state5.edges[token2.tokenTypeIdx];
+ }
+ function computeReachSet(configs, token2, predicateSet) {
+ const intermediate = new ATNConfigSet();
+ const skippedStopStates = [];
+ for (const c3 of configs.elements) {
+ if (predicateSet.is(c3.alt) === false) {
+ continue;
+ }
+ if (c3.state.type === ATN_RULE_STOP) {
+ skippedStopStates.push(c3);
+ continue;
+ }
+ const transitionLength = c3.state.transitions.length;
+ for (let i2 = 0; i2 < transitionLength; i2++) {
+ const transition2 = c3.state.transitions[i2];
+ const target = getReachableTarget(transition2, token2);
+ if (target !== void 0) {
+ intermediate.add({
+ state: target,
+ alt: c3.alt,
+ stack: c3.stack
+ });
+ }
+ }
+ }
+ let reach;
+ if (skippedStopStates.length === 0 && intermediate.size === 1) {
+ reach = intermediate;
+ }
+ if (reach === void 0) {
+ reach = new ATNConfigSet();
+ for (const c3 of intermediate.elements) {
+ closure(c3, reach);
+ }
+ }
+ if (skippedStopStates.length > 0 && !hasConfigInRuleStopState(reach)) {
+ for (const c3 of skippedStopStates) {
+ reach.add(c3);
+ }
+ }
+ return reach;
+ }
+ function getReachableTarget(transition2, token2) {
+ if (transition2 instanceof AtomTransition && tokenMatcher(token2, transition2.tokenType)) {
+ return transition2.target;
+ }
+ return void 0;
+ }
+ function getUniqueAlt(configs, predicateSet) {
+ let alt;
+ for (const c3 of configs.elements) {
+ if (predicateSet.is(c3.alt) === true) {
+ if (alt === void 0) {
+ alt = c3.alt;
+ } else if (alt !== c3.alt) {
+ return void 0;
+ }
+ }
+ }
+ return alt;
+ }
+ function newDFAState(closure2) {
+ return {
+ configs: closure2,
+ edges: {},
+ isAcceptState: false,
+ prediction: -1
+ };
+ }
+ function addDFAEdge(dfa, from2, token2, to) {
+ to = addDFAState(dfa, to);
+ from2.edges[token2.tokenTypeIdx] = to;
+ return to;
+ }
+ function addDFAState(dfa, state5) {
+ if (state5 === DFA_ERROR) {
+ return state5;
+ }
+ const mapKey = state5.configs.key;
+ const existing = dfa.states[mapKey];
+ if (existing !== void 0) {
+ return existing;
+ }
+ state5.configs.finalize();
+ dfa.states[mapKey] = state5;
+ return state5;
+ }
+ function computeStartState(atnState) {
+ const configs = new ATNConfigSet();
+ const numberOfTransitions = atnState.transitions.length;
+ for (let i2 = 0; i2 < numberOfTransitions; i2++) {
+ const target = atnState.transitions[i2].target;
+ const config6 = {
+ state: target,
+ alt: i2,
+ stack: []
+ };
+ closure(config6, configs);
+ }
+ return configs;
+ }
+ function closure(config6, configs) {
+ const p3 = config6.state;
+ if (p3.type === ATN_RULE_STOP) {
+ if (config6.stack.length > 0) {
+ const atnStack = [...config6.stack];
+ const followState = atnStack.pop();
+ const followConfig = {
+ state: followState,
+ alt: config6.alt,
+ stack: atnStack
+ };
+ closure(followConfig, configs);
+ } else {
+ configs.add(config6);
+ }
+ return;
+ }
+ if (!p3.epsilonOnlyTransitions) {
+ configs.add(config6);
+ }
+ const transitionLength = p3.transitions.length;
+ for (let i2 = 0; i2 < transitionLength; i2++) {
+ const transition2 = p3.transitions[i2];
+ const c3 = getEpsilonTarget(config6, transition2);
+ if (c3 !== void 0) {
+ closure(c3, configs);
+ }
+ }
+ }
+ function getEpsilonTarget(config6, transition2) {
+ if (transition2 instanceof EpsilonTransition) {
+ return {
+ state: transition2.target,
+ alt: config6.alt,
+ stack: config6.stack
+ };
+ } else if (transition2 instanceof RuleTransition) {
+ const stack = [...config6.stack, transition2.followState];
+ return {
+ state: transition2.target,
+ alt: config6.alt,
+ stack
+ };
+ }
+ return void 0;
+ }
+ function hasConfigInRuleStopState(configs) {
+ for (const c3 of configs.elements) {
+ if (c3.state.type === ATN_RULE_STOP) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function allConfigsInRuleStopStates(configs) {
+ for (const c3 of configs.elements) {
+ if (c3.state.type !== ATN_RULE_STOP) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function hasConflictTerminatingPrediction(configs) {
+ if (allConfigsInRuleStopStates(configs)) {
+ return true;
+ }
+ const altSets = getConflictingAltSets(configs.elements);
+ const heuristic2 = hasConflictingAltSet(altSets) && !hasStateAssociatedWithOneAlt(altSets);
+ return heuristic2;
+ }
+ function getConflictingAltSets(configs) {
+ const configToAlts = /* @__PURE__ */ new Map();
+ for (const c3 of configs) {
+ const key = getATNConfigKey(c3, false);
+ let alts = configToAlts.get(key);
+ if (alts === void 0) {
+ alts = {};
+ configToAlts.set(key, alts);
+ }
+ alts[c3.alt] = true;
+ }
+ return configToAlts;
+ }
+ function hasConflictingAltSet(altSets) {
+ for (const value2 of Array.from(altSets.values())) {
+ if (Object.keys(value2).length > 1) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function hasStateAssociatedWithOneAlt(altSets) {
+ for (const value2 of Array.from(altSets.values())) {
+ if (Object.keys(value2).length === 1) {
+ return true;
+ }
+ }
+ return false;
+ }
+ var PredicateSet, EMPTY_PREDICATES, LLStarLookaheadStrategy;
+ var init_all_star_lookahead = __esm({
+ "../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/all-star-lookahead.js"() {
+ "use strict";
+ init_api5();
+ init_atn();
+ init_dfa();
+ init_min2();
+ init_flatMap();
+ init_uniqBy();
+ init_map();
+ init_flatten();
+ init_forEach();
+ init_isEmpty();
+ init_reduce();
+ __name(createDFACache, "createDFACache");
+ PredicateSet = class {
+ static {
+ __name(this, "PredicateSet");
+ }
+ constructor() {
+ this.predicates = [];
+ }
+ is(index) {
+ return index >= this.predicates.length || this.predicates[index];
+ }
+ set(index, value2) {
+ this.predicates[index] = value2;
+ }
+ toString() {
+ let value2 = "";
+ const size5 = this.predicates.length;
+ for (let i2 = 0; i2 < size5; i2++) {
+ value2 += this.predicates[i2] === true ? "1" : "0";
+ }
+ return value2;
+ }
+ };
+ EMPTY_PREDICATES = new PredicateSet();
+ LLStarLookaheadStrategy = class extends LLkLookaheadStrategy {
+ static {
+ __name(this, "LLStarLookaheadStrategy");
+ }
+ constructor(options3) {
+ var _a;
+ super();
+ this.logging = (_a = options3 === null || options3 === void 0 ? void 0 : options3.logging) !== null && _a !== void 0 ? _a : (message) => console.log(message);
+ }
+ initialize(options3) {
+ this.atn = createATN(options3.rules);
+ this.dfas = initATNSimulator(this.atn);
+ }
+ validateAmbiguousAlternationAlternatives() {
+ return [];
+ }
+ validateEmptyOrAlternatives() {
+ return [];
+ }
+ buildLookaheadForAlternation(options3) {
+ const { prodOccurrence, rule, hasPredicates, dynamicTokensEnabled } = options3;
+ const dfas = this.dfas;
+ const logging = this.logging;
+ const key = buildATNKey(rule, "Alternation", prodOccurrence);
+ const decisionState = this.atn.decisionMap[key];
+ const decisionIndex = decisionState.decision;
+ const partialAlts = map_default(getLookaheadPaths({
+ maxLookahead: 1,
+ occurrence: prodOccurrence,
+ prodType: "Alternation",
+ rule
+ }), (currAlt) => map_default(currAlt, (path4) => path4[0]));
+ if (isLL1Sequence(partialAlts, false) && !dynamicTokensEnabled) {
+ const choiceToAlt = reduce_default(partialAlts, (result, currAlt, idx) => {
+ forEach_default(currAlt, (currTokType) => {
+ if (currTokType) {
+ result[currTokType.tokenTypeIdx] = idx;
+ forEach_default(currTokType.categoryMatches, (currExtendingType) => {
+ result[currExtendingType] = idx;
+ });
+ }
+ });
+ return result;
+ }, {});
+ if (hasPredicates) {
+ return function(orAlts) {
+ var _a;
+ const nextToken = this.LA(1);
+ const prediction = choiceToAlt[nextToken.tokenTypeIdx];
+ if (orAlts !== void 0 && prediction !== void 0) {
+ const gate = (_a = orAlts[prediction]) === null || _a === void 0 ? void 0 : _a.GATE;
+ if (gate !== void 0 && gate.call(this) === false) {
+ return void 0;
+ }
+ }
+ return prediction;
+ };
+ } else {
+ return function() {
+ const nextToken = this.LA(1);
+ return choiceToAlt[nextToken.tokenTypeIdx];
+ };
}
- function zce() {
+ } else if (hasPredicates) {
+ return function(orAlts) {
+ const predicates = new PredicateSet();
+ const length2 = orAlts === void 0 ? 0 : orAlts.length;
+ for (let i2 = 0; i2 < length2; i2++) {
+ const gate = orAlts === null || orAlts === void 0 ? void 0 : orAlts[i2].GATE;
+ predicates.set(i2, gate === void 0 || gate.call(this));
+ }
+ const result = adaptivePredict.call(this, dfas, decisionIndex, predicates, logging);
+ return typeof result === "number" ? result : void 0;
+ };
+ } else {
+ return function() {
+ const result = adaptivePredict.call(this, dfas, decisionIndex, EMPTY_PREDICATES, logging);
+ return typeof result === "number" ? result : void 0;
+ };
+ }
+ }
+ buildLookaheadForOptional(options3) {
+ const { prodOccurrence, rule, prodType, dynamicTokensEnabled } = options3;
+ const dfas = this.dfas;
+ const logging = this.logging;
+ const key = buildATNKey(rule, prodType, prodOccurrence);
+ const decisionState = this.atn.decisionMap[key];
+ const decisionIndex = decisionState.decision;
+ const alts = map_default(getLookaheadPaths({
+ maxLookahead: 1,
+ occurrence: prodOccurrence,
+ prodType,
+ rule
+ }), (e3) => {
+ return map_default(e3, (g2) => g2[0]);
+ });
+ if (isLL1Sequence(alts) && alts[0][0] && !dynamicTokensEnabled) {
+ const alt = alts[0];
+ const singleTokensTypes = flatten_default(alt);
+ if (singleTokensTypes.length === 1 && isEmpty_default(singleTokensTypes[0].categoryMatches)) {
+ const expectedTokenType = singleTokensTypes[0];
+ const expectedTokenUniqueKey = expectedTokenType.tokenTypeIdx;
+ return function() {
+ return this.LA(1).tokenTypeIdx === expectedTokenUniqueKey;
+ };
+ } else {
+ const choiceToAlt = reduce_default(singleTokensTypes, (result, currTokType) => {
+ if (currTokType !== void 0) {
+ result[currTokType.tokenTypeIdx] = true;
+ forEach_default(currTokType.categoryMatches, (currExtendingType) => {
+ result[currExtendingType] = true;
+ });
+ }
+ return result;
+ }, {});
+ return function() {
+ const nextToken = this.LA(1);
+ return choiceToAlt[nextToken.tokenTypeIdx] === true;
+ };
}
- function Cce() {
+ }
+ return function() {
+ const result = adaptivePredict.call(this, dfas, decisionIndex, EMPTY_PREDICATES, logging);
+ return typeof result === "object" ? false : result === 0;
+ };
+ }
+ };
+ __name(isLL1Sequence, "isLL1Sequence");
+ __name(initATNSimulator, "initATNSimulator");
+ __name(adaptivePredict, "adaptivePredict");
+ __name(performLookahead, "performLookahead");
+ __name(computeLookaheadTarget, "computeLookaheadTarget");
+ __name(reportLookaheadAmbiguity, "reportLookaheadAmbiguity");
+ __name(buildAmbiguityError, "buildAmbiguityError");
+ __name(getProductionDslName2, "getProductionDslName");
+ __name(buildAdaptivePredictError, "buildAdaptivePredictError");
+ __name(getExistingTargetState, "getExistingTargetState");
+ __name(computeReachSet, "computeReachSet");
+ __name(getReachableTarget, "getReachableTarget");
+ __name(getUniqueAlt, "getUniqueAlt");
+ __name(newDFAState, "newDFAState");
+ __name(addDFAEdge, "addDFAEdge");
+ __name(addDFAState, "addDFAState");
+ __name(computeStartState, "computeStartState");
+ __name(closure, "closure");
+ __name(getEpsilonTarget, "getEpsilonTarget");
+ __name(hasConfigInRuleStopState, "hasConfigInRuleStopState");
+ __name(allConfigsInRuleStopStates, "allConfigsInRuleStopStates");
+ __name(hasConflictTerminatingPrediction, "hasConflictTerminatingPrediction");
+ __name(getConflictingAltSets, "getConflictingAltSets");
+ __name(hasConflictingAltSet, "hasConflictingAltSet");
+ __name(hasStateAssociatedWithOneAlt, "hasStateAssociatedWithOneAlt");
+ }
+ });
+
+ // ../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/index.js
+ var init_lib2 = __esm({
+ "../../node_modules/.pnpm/chevrotain-allstar@0.3.1_chevrotain@11.0.3/node_modules/chevrotain-allstar/lib/index.js"() {
+ "use strict";
+ init_all_star_lookahead();
+ }
+ });
+
+ // ../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/esm/main.js
+ var DocumentUri, URI, integer, uinteger, Position, Range, Location, LocationLink, Color3, ColorInformation, ColorPresentation, FoldingRangeKind, FoldingRange, DiagnosticRelatedInformation, DiagnosticSeverity, DiagnosticTag, CodeDescription, Diagnostic, Command, TextEdit, ChangeAnnotation, ChangeAnnotationIdentifier, AnnotatedTextEdit, TextDocumentEdit, CreateFile, RenameFile, DeleteFile, WorkspaceEdit, TextDocumentIdentifier, VersionedTextDocumentIdentifier, OptionalVersionedTextDocumentIdentifier, TextDocumentItem, MarkupKind, MarkupContent, CompletionItemKind, InsertTextFormat, CompletionItemTag, InsertReplaceEdit, InsertTextMode, CompletionItemLabelDetails, CompletionItem, CompletionList, MarkedString, Hover, ParameterInformation, SignatureInformation, DocumentHighlightKind, DocumentHighlight, SymbolKind, SymbolTag, SymbolInformation, WorkspaceSymbol, DocumentSymbol, CodeActionKind, CodeActionTriggerKind, CodeActionContext, CodeAction, CodeLens, FormattingOptions, DocumentLink, SelectionRange, SemanticTokenTypes, SemanticTokenModifiers, SemanticTokens, InlineValueText, InlineValueVariableLookup, InlineValueEvaluatableExpression, InlineValueContext, InlayHintKind, InlayHintLabelPart, InlayHint, StringValue, InlineCompletionItem, InlineCompletionList, InlineCompletionTriggerKind, SelectedCompletionInfo, InlineCompletionContext, WorkspaceFolder, TextDocument, FullTextDocument, Is;
+ var init_main = __esm({
+ "../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/esm/main.js"() {
+ "use strict";
+ (function(DocumentUri2) {
+ function is2(value2) {
+ return typeof value2 === "string";
+ }
+ __name(is2, "is");
+ DocumentUri2.is = is2;
+ })(DocumentUri || (DocumentUri = {}));
+ (function(URI3) {
+ function is2(value2) {
+ return typeof value2 === "string";
+ }
+ __name(is2, "is");
+ URI3.is = is2;
+ })(URI || (URI = {}));
+ (function(integer4) {
+ integer4.MIN_VALUE = -2147483648;
+ integer4.MAX_VALUE = 2147483647;
+ function is2(value2) {
+ return typeof value2 === "number" && integer4.MIN_VALUE <= value2 && value2 <= integer4.MAX_VALUE;
+ }
+ __name(is2, "is");
+ integer4.is = is2;
+ })(integer || (integer = {}));
+ (function(uinteger2) {
+ uinteger2.MIN_VALUE = 0;
+ uinteger2.MAX_VALUE = 2147483647;
+ function is2(value2) {
+ return typeof value2 === "number" && uinteger2.MIN_VALUE <= value2 && value2 <= uinteger2.MAX_VALUE;
+ }
+ __name(is2, "is");
+ uinteger2.is = is2;
+ })(uinteger || (uinteger = {}));
+ (function(Position2) {
+ function create2(line2, character2) {
+ if (line2 === Number.MAX_VALUE) {
+ line2 = uinteger.MAX_VALUE;
+ }
+ if (character2 === Number.MAX_VALUE) {
+ character2 = uinteger.MAX_VALUE;
+ }
+ return { line: line2, character: character2 };
+ }
+ __name(create2, "create");
+ Position2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);
+ }
+ __name(is2, "is");
+ Position2.is = is2;
+ })(Position || (Position = {}));
+ (function(Range2) {
+ function create2(one4, two, three, four) {
+ if (Is.uinteger(one4) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {
+ return { start: Position.create(one4, two), end: Position.create(three, four) };
+ } else if (Position.is(one4) && Position.is(two)) {
+ return { start: one4, end: two };
+ } else {
+ throw new Error(`Range#create called with invalid arguments[${one4}, ${two}, ${three}, ${four}]`);
+ }
+ }
+ __name(create2, "create");
+ Range2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);
+ }
+ __name(is2, "is");
+ Range2.is = is2;
+ })(Range || (Range = {}));
+ (function(Location2) {
+ function create2(uri, range3) {
+ return { uri, range: range3 };
+ }
+ __name(create2, "create");
+ Location2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));
+ }
+ __name(is2, "is");
+ Location2.is = is2;
+ })(Location || (Location = {}));
+ (function(LocationLink2) {
+ function create2(targetUri, targetRange, targetSelectionRange, originSelectionRange) {
+ return { targetUri, targetRange, targetSelectionRange, originSelectionRange };
+ }
+ __name(create2, "create");
+ LocationLink2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && Range.is(candidate.targetSelectionRange) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));
+ }
+ __name(is2, "is");
+ LocationLink2.is = is2;
+ })(LocationLink || (LocationLink = {}));
+ (function(Color4) {
+ function create2(red, green, blue, alpha) {
+ return {
+ red,
+ green,
+ blue,
+ alpha
+ };
+ }
+ __name(create2, "create");
+ Color4.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1);
+ }
+ __name(is2, "is");
+ Color4.is = is2;
+ })(Color3 || (Color3 = {}));
+ (function(ColorInformation2) {
+ function create2(range3, color2) {
+ return {
+ range: range3,
+ color: color2
+ };
+ }
+ __name(create2, "create");
+ ColorInformation2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color3.is(candidate.color);
+ }
+ __name(is2, "is");
+ ColorInformation2.is = is2;
+ })(ColorInformation || (ColorInformation = {}));
+ (function(ColorPresentation2) {
+ function create2(label, textEdit, additionalTextEdits) {
+ return {
+ label,
+ textEdit,
+ additionalTextEdits
+ };
+ }
+ __name(create2, "create");
+ ColorPresentation2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));
+ }
+ __name(is2, "is");
+ ColorPresentation2.is = is2;
+ })(ColorPresentation || (ColorPresentation = {}));
+ (function(FoldingRangeKind2) {
+ FoldingRangeKind2.Comment = "comment";
+ FoldingRangeKind2.Imports = "imports";
+ FoldingRangeKind2.Region = "region";
+ })(FoldingRangeKind || (FoldingRangeKind = {}));
+ (function(FoldingRange2) {
+ function create2(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {
+ const result = {
+ startLine,
+ endLine
+ };
+ if (Is.defined(startCharacter)) {
+ result.startCharacter = startCharacter;
+ }
+ if (Is.defined(endCharacter)) {
+ result.endCharacter = endCharacter;
+ }
+ if (Is.defined(kind)) {
+ result.kind = kind;
+ }
+ if (Is.defined(collapsedText)) {
+ result.collapsedText = collapsedText;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ FoldingRange2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind));
+ }
+ __name(is2, "is");
+ FoldingRange2.is = is2;
+ })(FoldingRange || (FoldingRange = {}));
+ (function(DiagnosticRelatedInformation2) {
+ function create2(location, message) {
+ return {
+ location,
+ message
+ };
+ }
+ __name(create2, "create");
+ DiagnosticRelatedInformation2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);
+ }
+ __name(is2, "is");
+ DiagnosticRelatedInformation2.is = is2;
+ })(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));
+ (function(DiagnosticSeverity2) {
+ DiagnosticSeverity2.Error = 1;
+ DiagnosticSeverity2.Warning = 2;
+ DiagnosticSeverity2.Information = 3;
+ DiagnosticSeverity2.Hint = 4;
+ })(DiagnosticSeverity || (DiagnosticSeverity = {}));
+ (function(DiagnosticTag2) {
+ DiagnosticTag2.Unnecessary = 1;
+ DiagnosticTag2.Deprecated = 2;
+ })(DiagnosticTag || (DiagnosticTag = {}));
+ (function(CodeDescription2) {
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Is.string(candidate.href);
+ }
+ __name(is2, "is");
+ CodeDescription2.is = is2;
+ })(CodeDescription || (CodeDescription = {}));
+ (function(Diagnostic2) {
+ function create2(range3, message, severity, code, source, relatedInformation) {
+ let result = { range: range3, message };
+ if (Is.defined(severity)) {
+ result.severity = severity;
+ }
+ if (Is.defined(code)) {
+ result.code = code;
+ }
+ if (Is.defined(source)) {
+ result.source = source;
+ }
+ if (Is.defined(relatedInformation)) {
+ result.relatedInformation = relatedInformation;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ Diagnostic2.create = create2;
+ function is2(value2) {
+ var _a;
+ let candidate = value2;
+ return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));
+ }
+ __name(is2, "is");
+ Diagnostic2.is = is2;
+ })(Diagnostic || (Diagnostic = {}));
+ (function(Command2) {
+ function create2(title2, command, ...args) {
+ let result = { title: title2, command };
+ if (Is.defined(args) && args.length > 0) {
+ result.arguments = args;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ Command2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);
+ }
+ __name(is2, "is");
+ Command2.is = is2;
+ })(Command || (Command = {}));
+ (function(TextEdit2) {
+ function replace2(range3, newText) {
+ return { range: range3, newText };
+ }
+ __name(replace2, "replace");
+ TextEdit2.replace = replace2;
+ function insert(position5, newText) {
+ return { range: { start: position5, end: position5 }, newText };
+ }
+ __name(insert, "insert");
+ TextEdit2.insert = insert;
+ function del(range3) {
+ return { range: range3, newText: "" };
+ }
+ __name(del, "del");
+ TextEdit2.del = del;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range);
+ }
+ __name(is2, "is");
+ TextEdit2.is = is2;
+ })(TextEdit || (TextEdit = {}));
+ (function(ChangeAnnotation2) {
+ function create2(label, needsConfirmation, description) {
+ const result = { label };
+ if (needsConfirmation !== void 0) {
+ result.needsConfirmation = needsConfirmation;
+ }
+ if (description !== void 0) {
+ result.description = description;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ ChangeAnnotation2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0);
+ }
+ __name(is2, "is");
+ ChangeAnnotation2.is = is2;
+ })(ChangeAnnotation || (ChangeAnnotation = {}));
+ (function(ChangeAnnotationIdentifier2) {
+ function is2(value2) {
+ const candidate = value2;
+ return Is.string(candidate);
+ }
+ __name(is2, "is");
+ ChangeAnnotationIdentifier2.is = is2;
+ })(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));
+ (function(AnnotatedTextEdit2) {
+ function replace2(range3, newText, annotation) {
+ return { range: range3, newText, annotationId: annotation };
+ }
+ __name(replace2, "replace");
+ AnnotatedTextEdit2.replace = replace2;
+ function insert(position5, newText, annotation) {
+ return { range: { start: position5, end: position5 }, newText, annotationId: annotation };
+ }
+ __name(insert, "insert");
+ AnnotatedTextEdit2.insert = insert;
+ function del(range3, annotation) {
+ return { range: range3, newText: "", annotationId: annotation };
+ }
+ __name(del, "del");
+ AnnotatedTextEdit2.del = del;
+ function is2(value2) {
+ const candidate = value2;
+ return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));
+ }
+ __name(is2, "is");
+ AnnotatedTextEdit2.is = is2;
+ })(AnnotatedTextEdit || (AnnotatedTextEdit = {}));
+ (function(TextDocumentEdit2) {
+ function create2(textDocument, edits) {
+ return { textDocument, edits };
+ }
+ __name(create2, "create");
+ TextDocumentEdit2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits);
+ }
+ __name(is2, "is");
+ TextDocumentEdit2.is = is2;
+ })(TextDocumentEdit || (TextDocumentEdit = {}));
+ (function(CreateFile2) {
+ function create2(uri, options3, annotation) {
+ let result = {
+ kind: "create",
+ uri
+ };
+ if (options3 !== void 0 && (options3.overwrite !== void 0 || options3.ignoreIfExists !== void 0)) {
+ result.options = options3;
+ }
+ if (annotation !== void 0) {
+ result.annotationId = annotation;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ CreateFile2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return candidate && candidate.kind === "create" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));
+ }
+ __name(is2, "is");
+ CreateFile2.is = is2;
+ })(CreateFile || (CreateFile = {}));
+ (function(RenameFile2) {
+ function create2(oldUri, newUri, options3, annotation) {
+ let result = {
+ kind: "rename",
+ oldUri,
+ newUri
+ };
+ if (options3 !== void 0 && (options3.overwrite !== void 0 || options3.ignoreIfExists !== void 0)) {
+ result.options = options3;
+ }
+ if (annotation !== void 0) {
+ result.annotationId = annotation;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ RenameFile2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return candidate && candidate.kind === "rename" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));
+ }
+ __name(is2, "is");
+ RenameFile2.is = is2;
+ })(RenameFile || (RenameFile = {}));
+ (function(DeleteFile2) {
+ function create2(uri, options3, annotation) {
+ let result = {
+ kind: "delete",
+ uri
+ };
+ if (options3 !== void 0 && (options3.recursive !== void 0 || options3.ignoreIfNotExists !== void 0)) {
+ result.options = options3;
+ }
+ if (annotation !== void 0) {
+ result.annotationId = annotation;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ DeleteFile2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return candidate && candidate.kind === "delete" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));
+ }
+ __name(is2, "is");
+ DeleteFile2.is = is2;
+ })(DeleteFile || (DeleteFile = {}));
+ (function(WorkspaceEdit2) {
+ function is2(value2) {
+ let candidate = value2;
+ return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every((change2) => {
+ if (Is.string(change2.kind)) {
+ return CreateFile.is(change2) || RenameFile.is(change2) || DeleteFile.is(change2);
+ } else {
+ return TextDocumentEdit.is(change2);
}
- function Fce() {
+ }));
+ }
+ __name(is2, "is");
+ WorkspaceEdit2.is = is2;
+ })(WorkspaceEdit || (WorkspaceEdit = {}));
+ (function(TextDocumentIdentifier2) {
+ function create2(uri) {
+ return { uri };
+ }
+ __name(create2, "create");
+ TextDocumentIdentifier2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.string(candidate.uri);
+ }
+ __name(is2, "is");
+ TextDocumentIdentifier2.is = is2;
+ })(TextDocumentIdentifier || (TextDocumentIdentifier = {}));
+ (function(VersionedTextDocumentIdentifier2) {
+ function create2(uri, version4) {
+ return { uri, version: version4 };
+ }
+ __name(create2, "create");
+ VersionedTextDocumentIdentifier2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);
+ }
+ __name(is2, "is");
+ VersionedTextDocumentIdentifier2.is = is2;
+ })(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));
+ (function(OptionalVersionedTextDocumentIdentifier2) {
+ function create2(uri, version4) {
+ return { uri, version: version4 };
+ }
+ __name(create2, "create");
+ OptionalVersionedTextDocumentIdentifier2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));
+ }
+ __name(is2, "is");
+ OptionalVersionedTextDocumentIdentifier2.is = is2;
+ })(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));
+ (function(TextDocumentItem2) {
+ function create2(uri, languageId, version4, text2) {
+ return { uri, languageId, version: version4, text: text2 };
+ }
+ __name(create2, "create");
+ TextDocumentItem2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);
+ }
+ __name(is2, "is");
+ TextDocumentItem2.is = is2;
+ })(TextDocumentItem || (TextDocumentItem = {}));
+ (function(MarkupKind2) {
+ MarkupKind2.PlainText = "plaintext";
+ MarkupKind2.Markdown = "markdown";
+ function is2(value2) {
+ const candidate = value2;
+ return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown;
+ }
+ __name(is2, "is");
+ MarkupKind2.is = is2;
+ })(MarkupKind || (MarkupKind = {}));
+ (function(MarkupContent2) {
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(value2) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);
+ }
+ __name(is2, "is");
+ MarkupContent2.is = is2;
+ })(MarkupContent || (MarkupContent = {}));
+ (function(CompletionItemKind2) {
+ CompletionItemKind2.Text = 1;
+ CompletionItemKind2.Method = 2;
+ CompletionItemKind2.Function = 3;
+ CompletionItemKind2.Constructor = 4;
+ CompletionItemKind2.Field = 5;
+ CompletionItemKind2.Variable = 6;
+ CompletionItemKind2.Class = 7;
+ CompletionItemKind2.Interface = 8;
+ CompletionItemKind2.Module = 9;
+ CompletionItemKind2.Property = 10;
+ CompletionItemKind2.Unit = 11;
+ CompletionItemKind2.Value = 12;
+ CompletionItemKind2.Enum = 13;
+ CompletionItemKind2.Keyword = 14;
+ CompletionItemKind2.Snippet = 15;
+ CompletionItemKind2.Color = 16;
+ CompletionItemKind2.File = 17;
+ CompletionItemKind2.Reference = 18;
+ CompletionItemKind2.Folder = 19;
+ CompletionItemKind2.EnumMember = 20;
+ CompletionItemKind2.Constant = 21;
+ CompletionItemKind2.Struct = 22;
+ CompletionItemKind2.Event = 23;
+ CompletionItemKind2.Operator = 24;
+ CompletionItemKind2.TypeParameter = 25;
+ })(CompletionItemKind || (CompletionItemKind = {}));
+ (function(InsertTextFormat2) {
+ InsertTextFormat2.PlainText = 1;
+ InsertTextFormat2.Snippet = 2;
+ })(InsertTextFormat || (InsertTextFormat = {}));
+ (function(CompletionItemTag2) {
+ CompletionItemTag2.Deprecated = 1;
+ })(CompletionItemTag || (CompletionItemTag = {}));
+ (function(InsertReplaceEdit2) {
+ function create2(newText, insert, replace2) {
+ return { newText, insert, replace: replace2 };
+ }
+ __name(create2, "create");
+ InsertReplaceEdit2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);
+ }
+ __name(is2, "is");
+ InsertReplaceEdit2.is = is2;
+ })(InsertReplaceEdit || (InsertReplaceEdit = {}));
+ (function(InsertTextMode2) {
+ InsertTextMode2.asIs = 1;
+ InsertTextMode2.adjustIndentation = 2;
+ })(InsertTextMode || (InsertTextMode = {}));
+ (function(CompletionItemLabelDetails2) {
+ function is2(value2) {
+ const candidate = value2;
+ return candidate && (Is.string(candidate.detail) || candidate.detail === void 0) && (Is.string(candidate.description) || candidate.description === void 0);
+ }
+ __name(is2, "is");
+ CompletionItemLabelDetails2.is = is2;
+ })(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));
+ (function(CompletionItem2) {
+ function create2(label) {
+ return { label };
+ }
+ __name(create2, "create");
+ CompletionItem2.create = create2;
+ })(CompletionItem || (CompletionItem = {}));
+ (function(CompletionList2) {
+ function create2(items, isIncomplete) {
+ return { items: items ? items : [], isIncomplete: !!isIncomplete };
+ }
+ __name(create2, "create");
+ CompletionList2.create = create2;
+ })(CompletionList || (CompletionList = {}));
+ (function(MarkedString2) {
+ function fromPlainText(plainText) {
+ return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&");
+ }
+ __name(fromPlainText, "fromPlainText");
+ MarkedString2.fromPlainText = fromPlainText;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value);
+ }
+ __name(is2, "is");
+ MarkedString2.is = is2;
+ })(MarkedString || (MarkedString = {}));
+ (function(Hover2) {
+ function is2(value2) {
+ let candidate = value2;
+ return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value2.range === void 0 || Range.is(value2.range));
+ }
+ __name(is2, "is");
+ Hover2.is = is2;
+ })(Hover || (Hover = {}));
+ (function(ParameterInformation2) {
+ function create2(label, documentation) {
+ return documentation ? { label, documentation } : { label };
+ }
+ __name(create2, "create");
+ ParameterInformation2.create = create2;
+ })(ParameterInformation || (ParameterInformation = {}));
+ (function(SignatureInformation2) {
+ function create2(label, documentation, ...parameters) {
+ let result = { label };
+ if (Is.defined(documentation)) {
+ result.documentation = documentation;
+ }
+ if (Is.defined(parameters)) {
+ result.parameters = parameters;
+ } else {
+ result.parameters = [];
+ }
+ return result;
+ }
+ __name(create2, "create");
+ SignatureInformation2.create = create2;
+ })(SignatureInformation || (SignatureInformation = {}));
+ (function(DocumentHighlightKind2) {
+ DocumentHighlightKind2.Text = 1;
+ DocumentHighlightKind2.Read = 2;
+ DocumentHighlightKind2.Write = 3;
+ })(DocumentHighlightKind || (DocumentHighlightKind = {}));
+ (function(DocumentHighlight2) {
+ function create2(range3, kind) {
+ let result = { range: range3 };
+ if (Is.number(kind)) {
+ result.kind = kind;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ DocumentHighlight2.create = create2;
+ })(DocumentHighlight || (DocumentHighlight = {}));
+ (function(SymbolKind2) {
+ SymbolKind2.File = 1;
+ SymbolKind2.Module = 2;
+ SymbolKind2.Namespace = 3;
+ SymbolKind2.Package = 4;
+ SymbolKind2.Class = 5;
+ SymbolKind2.Method = 6;
+ SymbolKind2.Property = 7;
+ SymbolKind2.Field = 8;
+ SymbolKind2.Constructor = 9;
+ SymbolKind2.Enum = 10;
+ SymbolKind2.Interface = 11;
+ SymbolKind2.Function = 12;
+ SymbolKind2.Variable = 13;
+ SymbolKind2.Constant = 14;
+ SymbolKind2.String = 15;
+ SymbolKind2.Number = 16;
+ SymbolKind2.Boolean = 17;
+ SymbolKind2.Array = 18;
+ SymbolKind2.Object = 19;
+ SymbolKind2.Key = 20;
+ SymbolKind2.Null = 21;
+ SymbolKind2.EnumMember = 22;
+ SymbolKind2.Struct = 23;
+ SymbolKind2.Event = 24;
+ SymbolKind2.Operator = 25;
+ SymbolKind2.TypeParameter = 26;
+ })(SymbolKind || (SymbolKind = {}));
+ (function(SymbolTag2) {
+ SymbolTag2.Deprecated = 1;
+ })(SymbolTag || (SymbolTag = {}));
+ (function(SymbolInformation2) {
+ function create2(name, kind, range3, uri, containerName) {
+ let result = {
+ name,
+ kind,
+ location: { uri, range: range3 }
+ };
+ if (containerName) {
+ result.containerName = containerName;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ SymbolInformation2.create = create2;
+ })(SymbolInformation || (SymbolInformation = {}));
+ (function(WorkspaceSymbol2) {
+ function create2(name, kind, uri, range3) {
+ return range3 !== void 0 ? { name, kind, location: { uri, range: range3 } } : { name, kind, location: { uri } };
+ }
+ __name(create2, "create");
+ WorkspaceSymbol2.create = create2;
+ })(WorkspaceSymbol || (WorkspaceSymbol = {}));
+ (function(DocumentSymbol2) {
+ function create2(name, detail, kind, range3, selectionRange, children2) {
+ let result = {
+ name,
+ detail,
+ kind,
+ range: range3,
+ selectionRange
+ };
+ if (children2 !== void 0) {
+ result.children = children2;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ DocumentSymbol2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags));
+ }
+ __name(is2, "is");
+ DocumentSymbol2.is = is2;
+ })(DocumentSymbol || (DocumentSymbol = {}));
+ (function(CodeActionKind2) {
+ CodeActionKind2.Empty = "";
+ CodeActionKind2.QuickFix = "quickfix";
+ CodeActionKind2.Refactor = "refactor";
+ CodeActionKind2.RefactorExtract = "refactor.extract";
+ CodeActionKind2.RefactorInline = "refactor.inline";
+ CodeActionKind2.RefactorRewrite = "refactor.rewrite";
+ CodeActionKind2.Source = "source";
+ CodeActionKind2.SourceOrganizeImports = "source.organizeImports";
+ CodeActionKind2.SourceFixAll = "source.fixAll";
+ })(CodeActionKind || (CodeActionKind = {}));
+ (function(CodeActionTriggerKind2) {
+ CodeActionTriggerKind2.Invoked = 1;
+ CodeActionTriggerKind2.Automatic = 2;
+ })(CodeActionTriggerKind || (CodeActionTriggerKind = {}));
+ (function(CodeActionContext2) {
+ function create2(diagnostics, only, triggerKind) {
+ let result = { diagnostics };
+ if (only !== void 0 && only !== null) {
+ result.only = only;
+ }
+ if (triggerKind !== void 0 && triggerKind !== null) {
+ result.triggerKind = triggerKind;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ CodeActionContext2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)) && (candidate.triggerKind === void 0 || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);
+ }
+ __name(is2, "is");
+ CodeActionContext2.is = is2;
+ })(CodeActionContext || (CodeActionContext = {}));
+ (function(CodeAction2) {
+ function create2(title2, kindOrCommandOrEdit, kind) {
+ let result = { title: title2 };
+ let checkKind = true;
+ if (typeof kindOrCommandOrEdit === "string") {
+ checkKind = false;
+ result.kind = kindOrCommandOrEdit;
+ } else if (Command.is(kindOrCommandOrEdit)) {
+ result.command = kindOrCommandOrEdit;
+ } else {
+ result.edit = kindOrCommandOrEdit;
+ }
+ if (checkKind && kind !== void 0) {
+ result.kind = kind;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ CodeAction2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));
+ }
+ __name(is2, "is");
+ CodeAction2.is = is2;
+ })(CodeAction || (CodeAction = {}));
+ (function(CodeLens2) {
+ function create2(range3, data5) {
+ let result = { range: range3 };
+ if (Is.defined(data5)) {
+ result.data = data5;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ CodeLens2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));
+ }
+ __name(is2, "is");
+ CodeLens2.is = is2;
+ })(CodeLens || (CodeLens = {}));
+ (function(FormattingOptions2) {
+ function create2(tabSize, insertSpaces) {
+ return { tabSize, insertSpaces };
+ }
+ __name(create2, "create");
+ FormattingOptions2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);
+ }
+ __name(is2, "is");
+ FormattingOptions2.is = is2;
+ })(FormattingOptions || (FormattingOptions = {}));
+ (function(DocumentLink2) {
+ function create2(range3, target, data5) {
+ return { range: range3, target, data: data5 };
+ }
+ __name(create2, "create");
+ DocumentLink2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));
+ }
+ __name(is2, "is");
+ DocumentLink2.is = is2;
+ })(DocumentLink || (DocumentLink = {}));
+ (function(SelectionRange2) {
+ function create2(range3, parent4) {
+ return { range: range3, parent: parent4 };
+ }
+ __name(create2, "create");
+ SelectionRange2.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent));
+ }
+ __name(is2, "is");
+ SelectionRange2.is = is2;
+ })(SelectionRange || (SelectionRange = {}));
+ (function(SemanticTokenTypes2) {
+ SemanticTokenTypes2["namespace"] = "namespace";
+ SemanticTokenTypes2["type"] = "type";
+ SemanticTokenTypes2["class"] = "class";
+ SemanticTokenTypes2["enum"] = "enum";
+ SemanticTokenTypes2["interface"] = "interface";
+ SemanticTokenTypes2["struct"] = "struct";
+ SemanticTokenTypes2["typeParameter"] = "typeParameter";
+ SemanticTokenTypes2["parameter"] = "parameter";
+ SemanticTokenTypes2["variable"] = "variable";
+ SemanticTokenTypes2["property"] = "property";
+ SemanticTokenTypes2["enumMember"] = "enumMember";
+ SemanticTokenTypes2["event"] = "event";
+ SemanticTokenTypes2["function"] = "function";
+ SemanticTokenTypes2["method"] = "method";
+ SemanticTokenTypes2["macro"] = "macro";
+ SemanticTokenTypes2["keyword"] = "keyword";
+ SemanticTokenTypes2["modifier"] = "modifier";
+ SemanticTokenTypes2["comment"] = "comment";
+ SemanticTokenTypes2["string"] = "string";
+ SemanticTokenTypes2["number"] = "number";
+ SemanticTokenTypes2["regexp"] = "regexp";
+ SemanticTokenTypes2["operator"] = "operator";
+ SemanticTokenTypes2["decorator"] = "decorator";
+ })(SemanticTokenTypes || (SemanticTokenTypes = {}));
+ (function(SemanticTokenModifiers2) {
+ SemanticTokenModifiers2["declaration"] = "declaration";
+ SemanticTokenModifiers2["definition"] = "definition";
+ SemanticTokenModifiers2["readonly"] = "readonly";
+ SemanticTokenModifiers2["static"] = "static";
+ SemanticTokenModifiers2["deprecated"] = "deprecated";
+ SemanticTokenModifiers2["abstract"] = "abstract";
+ SemanticTokenModifiers2["async"] = "async";
+ SemanticTokenModifiers2["modification"] = "modification";
+ SemanticTokenModifiers2["documentation"] = "documentation";
+ SemanticTokenModifiers2["defaultLibrary"] = "defaultLibrary";
+ })(SemanticTokenModifiers || (SemanticTokenModifiers = {}));
+ (function(SemanticTokens2) {
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && (candidate.resultId === void 0 || typeof candidate.resultId === "string") && Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === "number");
+ }
+ __name(is2, "is");
+ SemanticTokens2.is = is2;
+ })(SemanticTokens || (SemanticTokens = {}));
+ (function(InlineValueText2) {
+ function create2(range3, text2) {
+ return { range: range3, text: text2 };
+ }
+ __name(create2, "create");
+ InlineValueText2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);
+ }
+ __name(is2, "is");
+ InlineValueText2.is = is2;
+ })(InlineValueText || (InlineValueText = {}));
+ (function(InlineValueVariableLookup2) {
+ function create2(range3, variableName, caseSensitiveLookup) {
+ return { range: range3, variableName, caseSensitiveLookup };
+ }
+ __name(create2, "create");
+ InlineValueVariableLookup2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) && (Is.string(candidate.variableName) || candidate.variableName === void 0);
+ }
+ __name(is2, "is");
+ InlineValueVariableLookup2.is = is2;
+ })(InlineValueVariableLookup || (InlineValueVariableLookup = {}));
+ (function(InlineValueEvaluatableExpression2) {
+ function create2(range3, expression) {
+ return { range: range3, expression };
+ }
+ __name(create2, "create");
+ InlineValueEvaluatableExpression2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && (Is.string(candidate.expression) || candidate.expression === void 0);
+ }
+ __name(is2, "is");
+ InlineValueEvaluatableExpression2.is = is2;
+ })(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));
+ (function(InlineValueContext2) {
+ function create2(frameId, stoppedLocation) {
+ return { frameId, stoppedLocation };
+ }
+ __name(create2, "create");
+ InlineValueContext2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.defined(candidate) && Range.is(value2.stoppedLocation);
+ }
+ __name(is2, "is");
+ InlineValueContext2.is = is2;
+ })(InlineValueContext || (InlineValueContext = {}));
+ (function(InlayHintKind2) {
+ InlayHintKind2.Type = 1;
+ InlayHintKind2.Parameter = 2;
+ function is2(value2) {
+ return value2 === 1 || value2 === 2;
+ }
+ __name(is2, "is");
+ InlayHintKind2.is = is2;
+ })(InlayHintKind || (InlayHintKind = {}));
+ (function(InlayHintLabelPart2) {
+ function create2(value2) {
+ return { value: value2 };
+ }
+ __name(create2, "create");
+ InlayHintLabelPart2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.location === void 0 || Location.is(candidate.location)) && (candidate.command === void 0 || Command.is(candidate.command));
+ }
+ __name(is2, "is");
+ InlayHintLabelPart2.is = is2;
+ })(InlayHintLabelPart || (InlayHintLabelPart = {}));
+ (function(InlayHint2) {
+ function create2(position5, label, kind) {
+ const result = { position: position5, label };
+ if (kind !== void 0) {
+ result.kind = kind;
+ }
+ return result;
+ }
+ __name(create2, "create");
+ InlayHint2.create = create2;
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));
+ }
+ __name(is2, "is");
+ InlayHint2.is = is2;
+ })(InlayHint || (InlayHint = {}));
+ (function(StringValue2) {
+ function createSnippet(value2) {
+ return { kind: "snippet", value: value2 };
+ }
+ __name(createSnippet, "createSnippet");
+ StringValue2.createSnippet = createSnippet;
+ })(StringValue || (StringValue = {}));
+ (function(InlineCompletionItem2) {
+ function create2(insertText, filterText, range3, command) {
+ return { insertText, filterText, range: range3, command };
+ }
+ __name(create2, "create");
+ InlineCompletionItem2.create = create2;
+ })(InlineCompletionItem || (InlineCompletionItem = {}));
+ (function(InlineCompletionList2) {
+ function create2(items) {
+ return { items };
+ }
+ __name(create2, "create");
+ InlineCompletionList2.create = create2;
+ })(InlineCompletionList || (InlineCompletionList = {}));
+ (function(InlineCompletionTriggerKind2) {
+ InlineCompletionTriggerKind2.Invoked = 0;
+ InlineCompletionTriggerKind2.Automatic = 1;
+ })(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));
+ (function(SelectedCompletionInfo2) {
+ function create2(range3, text2) {
+ return { range: range3, text: text2 };
+ }
+ __name(create2, "create");
+ SelectedCompletionInfo2.create = create2;
+ })(SelectedCompletionInfo || (SelectedCompletionInfo = {}));
+ (function(InlineCompletionContext2) {
+ function create2(triggerKind, selectedCompletionInfo) {
+ return { triggerKind, selectedCompletionInfo };
+ }
+ __name(create2, "create");
+ InlineCompletionContext2.create = create2;
+ })(InlineCompletionContext || (InlineCompletionContext = {}));
+ (function(WorkspaceFolder2) {
+ function is2(value2) {
+ const candidate = value2;
+ return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);
+ }
+ __name(is2, "is");
+ WorkspaceFolder2.is = is2;
+ })(WorkspaceFolder || (WorkspaceFolder = {}));
+ (function(TextDocument3) {
+ function create2(uri, languageId, version4, content) {
+ return new FullTextDocument(uri, languageId, version4, content);
+ }
+ __name(create2, "create");
+ TextDocument3.create = create2;
+ function is2(value2) {
+ let candidate = value2;
+ return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;
+ }
+ __name(is2, "is");
+ TextDocument3.is = is2;
+ function applyEdits(document2, edits) {
+ let text2 = document2.getText();
+ let sortedEdits = mergeSort2(edits, (a2, b2) => {
+ let diff2 = a2.range.start.line - b2.range.start.line;
+ if (diff2 === 0) {
+ return a2.range.start.character - b2.range.start.character;
+ }
+ return diff2;
+ });
+ let lastModifiedOffset = text2.length;
+ for (let i2 = sortedEdits.length - 1; i2 >= 0; i2--) {
+ let e3 = sortedEdits[i2];
+ let startOffset = document2.offsetAt(e3.range.start);
+ let endOffset = document2.offsetAt(e3.range.end);
+ if (endOffset <= lastModifiedOffset) {
+ text2 = text2.substring(0, startOffset) + e3.newText + text2.substring(endOffset, text2.length);
+ } else {
+ throw new Error("Overlapping edit");
+ }
+ lastModifiedOffset = startOffset;
+ }
+ return text2;
+ }
+ __name(applyEdits, "applyEdits");
+ TextDocument3.applyEdits = applyEdits;
+ function mergeSort2(data5, compare) {
+ if (data5.length <= 1) {
+ return data5;
+ }
+ const p3 = data5.length / 2 | 0;
+ const left3 = data5.slice(0, p3);
+ const right3 = data5.slice(p3);
+ mergeSort2(left3, compare);
+ mergeSort2(right3, compare);
+ let leftIdx = 0;
+ let rightIdx = 0;
+ let i2 = 0;
+ while (leftIdx < left3.length && rightIdx < right3.length) {
+ let ret = compare(left3[leftIdx], right3[rightIdx]);
+ if (ret <= 0) {
+ data5[i2++] = left3[leftIdx++];
+ } else {
+ data5[i2++] = right3[rightIdx++];
}
- function Ice() {
- }
- function Lce() {
- }
- function Oce() {
- }
- function Rce() {
- }
- function Uce() {
- }
- function Xce() {
- }
- function ude() {
- }
- function Vge() {
- }
- function dhe() {
- }
- function ol() {
- wb();
- }
- function oPb() {
- nPb();
- }
- function EPb() {
- CPb();
- }
- function gFb() {
- fFb();
- }
- function TRb() {
- SRb();
- }
- function ySb() {
- wSb();
- }
- function PSb() {
- OSb();
- }
- function dTb() {
- bTb();
- }
- function i4b() {
- b4b();
- }
- function D2b() {
- x2b();
- }
- function J6b() {
- D6b();
- }
- function u9b() {
- q9b();
- }
- function $9b() {
- I9b();
- }
- function Umc() {
- Imc();
- }
- function abc() {
- Vac();
- }
- function ZCc() {
- VCc();
- }
- function kCc() {
- hCc();
- }
- function rCc() {
- oCc();
- }
- function Tcc() {
- Occ();
- }
- function xkc() {
- gkc();
- }
- function xDc() {
- rDc();
- }
- function iDc() {
- cDc();
- }
- function kwc() {
- jwc();
- }
- function tJc() {
- jJc();
- }
- function dJc() {
- aJc();
- }
- function Pyc() {
- Nyc();
- }
- function VBc() {
- SBc();
- }
- function CFc() {
- yFc();
- }
- function CUc() {
- wUc();
- }
- function lUc() {
- fUc();
- }
- function sUc() {
- pUc();
- }
- function IUc() {
- GUc();
- }
- function IWc() {
- HWc();
- }
- function _Wc() {
- ZWc();
- }
- function fHc() {
- dHc();
- }
- function f0c() {
- d0c();
- }
- function B0c() {
- A0c();
- }
- function L0c() {
- J0c();
- }
- function LTc() {
- JTc();
- }
- function sTc() {
- rTc();
- }
- function KLc() {
- ILc();
+ }
+ while (leftIdx < left3.length) {
+ data5[i2++] = left3[leftIdx++];
+ }
+ while (rightIdx < right3.length) {
+ data5[i2++] = right3[rightIdx++];
+ }
+ return data5;
+ }
+ __name(mergeSort2, "mergeSort");
+ })(TextDocument || (TextDocument = {}));
+ FullTextDocument = class {
+ static {
+ __name(this, "FullTextDocument");
+ }
+ constructor(uri, languageId, version4, content) {
+ this._uri = uri;
+ this._languageId = languageId;
+ this._version = version4;
+ this._content = content;
+ this._lineOffsets = void 0;
+ }
+ get uri() {
+ return this._uri;
+ }
+ get languageId() {
+ return this._languageId;
+ }
+ get version() {
+ return this._version;
+ }
+ getText(range3) {
+ if (range3) {
+ let start3 = this.offsetAt(range3.start);
+ let end2 = this.offsetAt(range3.end);
+ return this._content.substring(start3, end2);
+ }
+ return this._content;
+ }
+ update(event3, version4) {
+ this._content = event3.text;
+ this._version = version4;
+ this._lineOffsets = void 0;
+ }
+ getLineOffsets() {
+ if (this._lineOffsets === void 0) {
+ let lineOffsets = [];
+ let text2 = this._content;
+ let isLineStart = true;
+ for (let i2 = 0; i2 < text2.length; i2++) {
+ if (isLineStart) {
+ lineOffsets.push(i2);
+ isLineStart = false;
+ }
+ let ch = text2.charAt(i2);
+ isLineStart = ch === "\r" || ch === "\n";
+ if (ch === "\r" && i2 + 1 < text2.length && text2.charAt(i2 + 1) === "\n") {
+ i2++;
+ }
}
- function wNc() {
- tNc();
+ if (isLineStart && text2.length > 0) {
+ lineOffsets.push(text2.length);
}
- function PYc() {
- OYc();
+ this._lineOffsets = lineOffsets;
+ }
+ return this._lineOffsets;
+ }
+ positionAt(offset) {
+ offset = Math.max(Math.min(offset, this._content.length), 0);
+ let lineOffsets = this.getLineOffsets();
+ let low = 0, high = lineOffsets.length;
+ if (high === 0) {
+ return Position.create(0, offset);
+ }
+ while (low < high) {
+ let mid = Math.floor((low + high) / 2);
+ if (lineOffsets[mid] > offset) {
+ high = mid;
+ } else {
+ low = mid + 1;
}
- function nZc() {
- lZc();
+ }
+ let line2 = low - 1;
+ return Position.create(line2, offset - lineOffsets[line2]);
+ }
+ offsetAt(position5) {
+ let lineOffsets = this.getLineOffsets();
+ if (position5.line >= lineOffsets.length) {
+ return this._content.length;
+ } else if (position5.line < 0) {
+ return 0;
+ }
+ let lineOffset = lineOffsets[position5.line];
+ let nextLineOffset = position5.line + 1 < lineOffsets.length ? lineOffsets[position5.line + 1] : this._content.length;
+ return Math.max(Math.min(lineOffset + position5.character, nextLineOffset), lineOffset);
+ }
+ get lineCount() {
+ return this.getLineOffsets().length;
+ }
+ };
+ (function(Is2) {
+ const toString6 = Object.prototype.toString;
+ function defined(value2) {
+ return typeof value2 !== "undefined";
+ }
+ __name(defined, "defined");
+ Is2.defined = defined;
+ function undefined2(value2) {
+ return typeof value2 === "undefined";
+ }
+ __name(undefined2, "undefined");
+ Is2.undefined = undefined2;
+ function boolean(value2) {
+ return value2 === true || value2 === false;
+ }
+ __name(boolean, "boolean");
+ Is2.boolean = boolean;
+ function string3(value2) {
+ return toString6.call(value2) === "[object String]";
+ }
+ __name(string3, "string");
+ Is2.string = string3;
+ function number7(value2) {
+ return toString6.call(value2) === "[object Number]";
+ }
+ __name(number7, "number");
+ Is2.number = number7;
+ function numberRange(value2, min9, max10) {
+ return toString6.call(value2) === "[object Number]" && min9 <= value2 && value2 <= max10;
+ }
+ __name(numberRange, "numberRange");
+ Is2.numberRange = numberRange;
+ function integer4(value2) {
+ return toString6.call(value2) === "[object Number]" && -2147483648 <= value2 && value2 <= 2147483647;
+ }
+ __name(integer4, "integer");
+ Is2.integer = integer4;
+ function uinteger2(value2) {
+ return toString6.call(value2) === "[object Number]" && 0 <= value2 && value2 <= 2147483647;
+ }
+ __name(uinteger2, "uinteger");
+ Is2.uinteger = uinteger2;
+ function func(value2) {
+ return toString6.call(value2) === "[object Function]";
+ }
+ __name(func, "func");
+ Is2.func = func;
+ function objectLiteral(value2) {
+ return value2 !== null && typeof value2 === "object";
+ }
+ __name(objectLiteral, "objectLiteral");
+ Is2.objectLiteral = objectLiteral;
+ function typedArray(value2, check) {
+ return Array.isArray(value2) && value2.every(check);
+ }
+ __name(typedArray, "typedArray");
+ Is2.typedArray = typedArray;
+ })(Is || (Is = {}));
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/cst-node-builder.js
+ var CstNodeBuilder, AbstractCstNode, LeafCstNodeImpl, CompositeCstNodeImpl, CstNodeContainer, RootCstNodeImpl;
+ var init_cst_node_builder = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/cst-node-builder.js"() {
+ "use strict";
+ init_main();
+ init_syntax_tree();
+ init_cst_utils();
+ CstNodeBuilder = class {
+ static {
+ __name(this, "CstNodeBuilder");
+ }
+ constructor() {
+ this.nodeStack = [];
+ }
+ get current() {
+ return this.nodeStack[this.nodeStack.length - 1];
+ }
+ buildRootNode(input) {
+ this.rootNode = new RootCstNodeImpl(input);
+ this.rootNode.root = this.rootNode;
+ this.nodeStack = [this.rootNode];
+ return this.rootNode;
+ }
+ buildCompositeNode(feature) {
+ const compositeNode = new CompositeCstNodeImpl();
+ compositeNode.grammarSource = feature;
+ compositeNode.root = this.rootNode;
+ this.current.content.push(compositeNode);
+ this.nodeStack.push(compositeNode);
+ return compositeNode;
+ }
+ buildLeafNode(token2, feature) {
+ const leafNode = new LeafCstNodeImpl(token2.startOffset, token2.image.length, tokenToRange(token2), token2.tokenType, false);
+ leafNode.grammarSource = feature;
+ leafNode.root = this.rootNode;
+ this.current.content.push(leafNode);
+ return leafNode;
+ }
+ removeNode(node2) {
+ const parent4 = node2.container;
+ if (parent4) {
+ const index = parent4.content.indexOf(node2);
+ if (index >= 0) {
+ parent4.content.splice(index, 1);
+ }
+ }
+ }
+ construct(item) {
+ const current = this.current;
+ if (typeof item.$type === "string") {
+ this.current.astNode = item;
+ }
+ item.$cstNode = current;
+ const node2 = this.nodeStack.pop();
+ if ((node2 === null || node2 === void 0 ? void 0 : node2.content.length) === 0) {
+ this.removeNode(node2);
+ }
+ }
+ addHiddenTokens(hiddenTokens) {
+ for (const token2 of hiddenTokens) {
+ const hiddenNode = new LeafCstNodeImpl(token2.startOffset, token2.image.length, tokenToRange(token2), token2.tokenType, true);
+ hiddenNode.root = this.rootNode;
+ this.addHiddenToken(this.rootNode, hiddenNode);
+ }
+ }
+ addHiddenToken(node2, token2) {
+ const { offset: tokenStart, end: tokenEnd } = token2;
+ for (let i2 = 0; i2 < node2.content.length; i2++) {
+ const child = node2.content[i2];
+ const { offset: childStart, end: childEnd } = child;
+ if (isCompositeCstNode(child) && tokenStart > childStart && tokenEnd < childEnd) {
+ this.addHiddenToken(child, token2);
+ return;
+ } else if (tokenEnd <= childStart) {
+ node2.content.splice(i2, 0, token2);
+ return;
}
- function q3c() {
- p3c();
+ }
+ node2.content.push(token2);
+ }
+ };
+ AbstractCstNode = class {
+ static {
+ __name(this, "AbstractCstNode");
+ }
+ /** @deprecated use `container` instead. */
+ get parent() {
+ return this.container;
+ }
+ /** @deprecated use `grammarSource` instead. */
+ get feature() {
+ return this.grammarSource;
+ }
+ get hidden() {
+ return false;
+ }
+ get astNode() {
+ var _a, _b;
+ const node2 = typeof ((_a = this._astNode) === null || _a === void 0 ? void 0 : _a.$type) === "string" ? this._astNode : (_b = this.container) === null || _b === void 0 ? void 0 : _b.astNode;
+ if (!node2) {
+ throw new Error("This node has no associated AST element");
+ }
+ return node2;
+ }
+ set astNode(value2) {
+ this._astNode = value2;
+ }
+ /** @deprecated use `astNode` instead. */
+ get element() {
+ return this.astNode;
+ }
+ get text() {
+ return this.root.fullText.substring(this.offset, this.end);
+ }
+ };
+ LeafCstNodeImpl = class extends AbstractCstNode {
+ static {
+ __name(this, "LeafCstNodeImpl");
+ }
+ get offset() {
+ return this._offset;
+ }
+ get length() {
+ return this._length;
+ }
+ get end() {
+ return this._offset + this._length;
+ }
+ get hidden() {
+ return this._hidden;
+ }
+ get tokenType() {
+ return this._tokenType;
+ }
+ get range() {
+ return this._range;
+ }
+ constructor(offset, length2, range3, tokenType, hidden = false) {
+ super();
+ this._hidden = hidden;
+ this._offset = offset;
+ this._tokenType = tokenType;
+ this._length = length2;
+ this._range = range3;
+ }
+ };
+ CompositeCstNodeImpl = class extends AbstractCstNode {
+ static {
+ __name(this, "CompositeCstNodeImpl");
+ }
+ constructor() {
+ super(...arguments);
+ this.content = new CstNodeContainer(this);
+ }
+ /** @deprecated use `content` instead. */
+ get children() {
+ return this.content;
+ }
+ get offset() {
+ var _a, _b;
+ return (_b = (_a = this.firstNonHiddenNode) === null || _a === void 0 ? void 0 : _a.offset) !== null && _b !== void 0 ? _b : 0;
+ }
+ get length() {
+ return this.end - this.offset;
+ }
+ get end() {
+ var _a, _b;
+ return (_b = (_a = this.lastNonHiddenNode) === null || _a === void 0 ? void 0 : _a.end) !== null && _b !== void 0 ? _b : 0;
+ }
+ get range() {
+ const firstNode = this.firstNonHiddenNode;
+ const lastNode = this.lastNonHiddenNode;
+ if (firstNode && lastNode) {
+ if (this._rangeCache === void 0) {
+ const { range: firstRange } = firstNode;
+ const { range: lastRange } = lastNode;
+ this._rangeCache = { start: firstRange.start, end: lastRange.end.line < firstRange.start.line ? firstRange.start : lastRange.end };
+ }
+ return this._rangeCache;
+ } else {
+ return { start: Position.create(0, 0), end: Position.create(0, 0) };
+ }
+ }
+ get firstNonHiddenNode() {
+ for (const child of this.content) {
+ if (!child.hidden) {
+ return child;
}
- function Z7c() {
- X7c();
+ }
+ return this.content[0];
+ }
+ get lastNonHiddenNode() {
+ for (let i2 = this.content.length - 1; i2 >= 0; i2--) {
+ const child = this.content[i2];
+ if (!child.hidden) {
+ return child;
}
- function Z9c() {
- Y9c();
+ }
+ return this.content[this.content.length - 1];
+ }
+ };
+ CstNodeContainer = class _CstNodeContainer extends Array {
+ static {
+ __name(this, "CstNodeContainer");
+ }
+ constructor(parent4) {
+ super();
+ this.parent = parent4;
+ Object.setPrototypeOf(this, _CstNodeContainer.prototype);
+ }
+ push(...items) {
+ this.addParents(items);
+ return super.push(...items);
+ }
+ unshift(...items) {
+ this.addParents(items);
+ return super.unshift(...items);
+ }
+ splice(start3, count, ...items) {
+ this.addParents(items);
+ return super.splice(start3, count, ...items);
+ }
+ addParents(items) {
+ for (const item of items) {
+ item.container = this.parent;
+ }
+ }
+ };
+ RootCstNodeImpl = class extends CompositeCstNodeImpl {
+ static {
+ __name(this, "RootCstNodeImpl");
+ }
+ get text() {
+ return this._text.substring(this.offset, this.end);
+ }
+ get fullText() {
+ return this._text;
+ }
+ constructor(input) {
+ super();
+ this._text = "";
+ this._text = input !== null && input !== void 0 ? input : "";
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/langium-parser.js
+ function isDataTypeNode(node2) {
+ return node2.$type === DatatypeSymbol;
+ }
+ var DatatypeSymbol, ruleSuffix, withRuleSuffix, AbstractLangiumParser, LangiumParser, AbstractParserErrorMessageProvider, LangiumParserErrorMessageProvider, LangiumCompletionParser, defaultConfig3, ChevrotainWrapper;
+ var init_langium_parser = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/langium-parser.js"() {
+ "use strict";
+ init_api5();
+ init_lib2();
+ init_ast();
+ init_grammar_utils();
+ init_ast_utils();
+ init_cst_node_builder();
+ DatatypeSymbol = Symbol("Datatype");
+ __name(isDataTypeNode, "isDataTypeNode");
+ ruleSuffix = "\u200B";
+ withRuleSuffix = /* @__PURE__ */ __name((name) => name.endsWith(ruleSuffix) ? name : name + ruleSuffix, "withRuleSuffix");
+ AbstractLangiumParser = class {
+ static {
+ __name(this, "AbstractLangiumParser");
+ }
+ constructor(services) {
+ this._unorderedGroups = /* @__PURE__ */ new Map();
+ this.lexer = services.parser.Lexer;
+ const tokens2 = this.lexer.definition;
+ this.wrapper = new ChevrotainWrapper(tokens2, Object.assign(Object.assign({}, services.parser.ParserConfig), { errorMessageProvider: services.parser.ParserErrorMessageProvider }));
+ }
+ alternatives(idx, choices) {
+ this.wrapper.wrapOr(idx, choices);
+ }
+ optional(idx, callback) {
+ this.wrapper.wrapOption(idx, callback);
+ }
+ many(idx, callback) {
+ this.wrapper.wrapMany(idx, callback);
+ }
+ atLeastOne(idx, callback) {
+ this.wrapper.wrapAtLeastOne(idx, callback);
+ }
+ isRecording() {
+ return this.wrapper.IS_RECORDING;
+ }
+ get unorderedGroups() {
+ return this._unorderedGroups;
+ }
+ getRuleStack() {
+ return this.wrapper.RULE_STACK;
+ }
+ finalize() {
+ this.wrapper.wrapSelfAnalysis();
+ }
+ };
+ LangiumParser = class extends AbstractLangiumParser {
+ static {
+ __name(this, "LangiumParser");
+ }
+ get current() {
+ return this.stack[this.stack.length - 1];
+ }
+ constructor(services) {
+ super(services);
+ this.nodeBuilder = new CstNodeBuilder();
+ this.stack = [];
+ this.assignmentMap = /* @__PURE__ */ new Map();
+ this.linker = services.references.Linker;
+ this.converter = services.parser.ValueConverter;
+ this.astReflection = services.shared.AstReflection;
+ }
+ rule(rule, impl2) {
+ const type3 = rule.fragment ? void 0 : isDataTypeRule(rule) ? DatatypeSymbol : getTypeName(rule);
+ const ruleMethod = this.wrapper.DEFINE_RULE(withRuleSuffix(rule.name), this.startImplementation(type3, impl2).bind(this));
+ if (rule.entry) {
+ this.mainRule = ruleMethod;
+ }
+ return ruleMethod;
+ }
+ parse(input) {
+ this.nodeBuilder.buildRootNode(input);
+ const lexerResult = this.lexer.tokenize(input);
+ this.wrapper.input = lexerResult.tokens;
+ const result = this.mainRule.call(this.wrapper, {});
+ this.nodeBuilder.addHiddenTokens(lexerResult.hidden);
+ this.unorderedGroups.clear();
+ return {
+ value: result,
+ lexerErrors: lexerResult.errors,
+ parserErrors: this.wrapper.errors
+ };
+ }
+ startImplementation($type, implementation) {
+ return (args) => {
+ if (!this.isRecording()) {
+ const node2 = { $type };
+ this.stack.push(node2);
+ if ($type === DatatypeSymbol) {
+ node2.value = "";
+ }
}
- function _ad() {
- Zad();
+ let result;
+ try {
+ result = implementation(args);
+ } catch (err) {
+ result = void 0;
}
- function kdd() {
- idd();
+ if (!this.isRecording() && result === void 0) {
+ result = this.construct();
}
- function $md() {
- Smd();
+ return result;
+ };
+ }
+ consume(idx, tokenType, feature) {
+ const token2 = this.wrapper.wrapConsume(idx, tokenType);
+ if (!this.isRecording() && this.isValidToken(token2)) {
+ const leafNode = this.nodeBuilder.buildLeafNode(token2, feature);
+ const { assignment, isCrossRef } = this.getAssignment(feature);
+ const current = this.current;
+ if (assignment) {
+ const convertedValue = isKeyword(feature) ? token2.image : this.converter.convert(token2.image, leafNode);
+ this.assign(assignment.operator, assignment.feature, convertedValue, leafNode, isCrossRef);
+ } else if (isDataTypeNode(current)) {
+ let text2 = token2.image;
+ if (!isKeyword(feature)) {
+ text2 = this.converter.convert(text2, leafNode).toString();
+ }
+ current.value += text2;
+ }
+ }
+ }
+ /**
+ * Most consumed parser tokens are valid. However there are two cases in which they are not valid:
+ *
+ * 1. They were inserted during error recovery by the parser. These tokens don't really exist and should not be further processed
+ * 2. They contain invalid token ranges. This might include the special EOF token, or other tokens produced by invalid token builders.
+ */
+ isValidToken(token2) {
+ return !token2.isInsertedInRecovery && !isNaN(token2.startOffset) && typeof token2.endOffset === "number" && !isNaN(token2.endOffset);
+ }
+ subrule(idx, rule, feature, args) {
+ let cstNode;
+ if (!this.isRecording()) {
+ cstNode = this.nodeBuilder.buildCompositeNode(feature);
+ }
+ const subruleResult = this.wrapper.wrapSubrule(idx, rule, args);
+ if (!this.isRecording() && cstNode && cstNode.length > 0) {
+ this.performSubruleAssignment(subruleResult, feature, cstNode);
+ }
+ }
+ performSubruleAssignment(result, feature, cstNode) {
+ const { assignment, isCrossRef } = this.getAssignment(feature);
+ if (assignment) {
+ this.assign(assignment.operator, assignment.feature, result, cstNode, isCrossRef);
+ } else if (!assignment) {
+ const current = this.current;
+ if (isDataTypeNode(current)) {
+ current.value += result.toString();
+ } else if (typeof result === "object" && result) {
+ const resultKind = result.$type;
+ const object3 = this.assignWithoutOverride(result, current);
+ if (resultKind) {
+ object3.$type = resultKind;
+ }
+ const newItem = object3;
+ this.stack.pop();
+ this.stack.push(newItem);
+ }
+ }
+ }
+ action($type, action) {
+ if (!this.isRecording()) {
+ let last3 = this.current;
+ if (!last3.$cstNode && action.feature && action.operator) {
+ last3 = this.construct(false);
+ const feature = last3.$cstNode.feature;
+ this.nodeBuilder.buildCompositeNode(feature);
+ }
+ const newItem = { $type };
+ this.stack.pop();
+ this.stack.push(newItem);
+ if (action.feature && action.operator) {
+ this.assign(action.operator, action.feature, last3, last3.$cstNode, false);
+ }
+ }
+ }
+ construct(pop = true) {
+ if (this.isRecording()) {
+ return void 0;
+ }
+ const obj = this.current;
+ linkContentToContainer(obj);
+ this.nodeBuilder.construct(obj);
+ if (pop) {
+ this.stack.pop();
+ }
+ if (isDataTypeNode(obj)) {
+ return this.converter.convert(obj.value, obj.$cstNode);
+ } else {
+ assignMandatoryProperties(this.astReflection, obj);
+ }
+ return obj;
+ }
+ getAssignment(feature) {
+ if (!this.assignmentMap.has(feature)) {
+ const assignment = getContainerOfType(feature, isAssignment);
+ this.assignmentMap.set(feature, {
+ assignment,
+ isCrossRef: assignment ? isCrossReference(assignment.terminal) : false
+ });
+ }
+ return this.assignmentMap.get(feature);
+ }
+ assign(operator, feature, value2, cstNode, isCrossRef) {
+ const obj = this.current;
+ let item;
+ if (isCrossRef && typeof value2 === "string") {
+ item = this.linker.buildReference(obj, feature, cstNode, value2);
+ } else {
+ item = value2;
+ }
+ switch (operator) {
+ case "=": {
+ obj[feature] = item;
+ break;
}
- function HGd() {
- tGd();
+ case "?=": {
+ obj[feature] = true;
+ break;
}
- function hLd() {
- NKd();
+ case "+=": {
+ if (!Array.isArray(obj[feature])) {
+ obj[feature] = [];
+ }
+ obj[feature].push(item);
}
- function J6d() {
- Uge();
+ }
+ }
+ assignWithoutOverride(target, source) {
+ for (const [name, existingValue] of Object.entries(source)) {
+ const newValue = target[name];
+ if (newValue === void 0) {
+ target[name] = existingValue;
+ } else if (Array.isArray(newValue) && Array.isArray(existingValue)) {
+ existingValue.push(...newValue);
+ target[name] = existingValue;
}
- function Mvb(a) {
- uCb(a);
+ }
+ return target;
+ }
+ get definitionErrors() {
+ return this.wrapper.definitionErrors;
+ }
+ };
+ AbstractParserErrorMessageProvider = class {
+ static {
+ __name(this, "AbstractParserErrorMessageProvider");
+ }
+ buildMismatchTokenMessage(options3) {
+ return defaultParserErrorProvider.buildMismatchTokenMessage(options3);
+ }
+ buildNotAllInputParsedMessage(options3) {
+ return defaultParserErrorProvider.buildNotAllInputParsedMessage(options3);
+ }
+ buildNoViableAltMessage(options3) {
+ return defaultParserErrorProvider.buildNoViableAltMessage(options3);
+ }
+ buildEarlyExitMessage(options3) {
+ return defaultParserErrorProvider.buildEarlyExitMessage(options3);
+ }
+ };
+ LangiumParserErrorMessageProvider = class extends AbstractParserErrorMessageProvider {
+ static {
+ __name(this, "LangiumParserErrorMessageProvider");
+ }
+ buildMismatchTokenMessage({ expected, actual }) {
+ const expectedMsg = expected.LABEL ? "`" + expected.LABEL + "`" : expected.name.endsWith(":KW") ? `keyword '${expected.name.substring(0, expected.name.length - 3)}'` : `token of type '${expected.name}'`;
+ return `Expecting ${expectedMsg} but found \`${actual.image}\`.`;
+ }
+ buildNotAllInputParsedMessage({ firstRedundant }) {
+ return `Expecting end of file but found \`${firstRedundant.image}\`.`;
+ }
+ };
+ LangiumCompletionParser = class extends AbstractLangiumParser {
+ static {
+ __name(this, "LangiumCompletionParser");
+ }
+ constructor() {
+ super(...arguments);
+ this.tokens = [];
+ this.elementStack = [];
+ this.lastElementStack = [];
+ this.nextTokenIndex = 0;
+ this.stackSize = 0;
+ }
+ action() {
+ }
+ construct() {
+ return void 0;
+ }
+ parse(input) {
+ this.resetState();
+ const tokens2 = this.lexer.tokenize(input);
+ this.tokens = tokens2.tokens;
+ this.wrapper.input = [...this.tokens];
+ this.mainRule.call(this.wrapper, {});
+ this.unorderedGroups.clear();
+ return {
+ tokens: this.tokens,
+ elementStack: [...this.lastElementStack],
+ tokenIndex: this.nextTokenIndex
+ };
+ }
+ rule(rule, impl2) {
+ const ruleMethod = this.wrapper.DEFINE_RULE(withRuleSuffix(rule.name), this.startImplementation(impl2).bind(this));
+ if (rule.entry) {
+ this.mainRule = ruleMethod;
+ }
+ return ruleMethod;
+ }
+ resetState() {
+ this.elementStack = [];
+ this.lastElementStack = [];
+ this.nextTokenIndex = 0;
+ this.stackSize = 0;
+ }
+ startImplementation(implementation) {
+ return (args) => {
+ const size5 = this.keepStackSize();
+ try {
+ implementation(args);
+ } finally {
+ this.resetStackSize(size5);
}
- function Yb(a) {
- this.a = a;
+ };
+ }
+ removeUnexpectedElements() {
+ this.elementStack.splice(this.stackSize);
+ }
+ keepStackSize() {
+ const size5 = this.elementStack.length;
+ this.stackSize = size5;
+ return size5;
+ }
+ resetStackSize(size5) {
+ this.removeUnexpectedElements();
+ this.stackSize = size5;
+ }
+ consume(idx, tokenType, feature) {
+ this.wrapper.wrapConsume(idx, tokenType);
+ if (!this.isRecording()) {
+ this.lastElementStack = [...this.elementStack, feature];
+ this.nextTokenIndex = this.currIdx + 1;
+ }
+ }
+ subrule(idx, rule, feature, args) {
+ this.before(feature);
+ this.wrapper.wrapSubrule(idx, rule, args);
+ this.after(feature);
+ }
+ before(element3) {
+ if (!this.isRecording()) {
+ this.elementStack.push(element3);
+ }
+ }
+ after(element3) {
+ if (!this.isRecording()) {
+ const index = this.elementStack.lastIndexOf(element3);
+ if (index >= 0) {
+ this.elementStack.splice(index);
}
- function cc(a) {
- this.a = a;
+ }
+ }
+ get currIdx() {
+ return this.wrapper.currIdx;
+ }
+ };
+ defaultConfig3 = {
+ recoveryEnabled: true,
+ nodeLocationTracking: "full",
+ skipValidations: true,
+ errorMessageProvider: new LangiumParserErrorMessageProvider()
+ };
+ ChevrotainWrapper = class extends EmbeddedActionsParser {
+ static {
+ __name(this, "ChevrotainWrapper");
+ }
+ constructor(tokens2, config6) {
+ const useDefaultLookahead = config6 && "maxLookahead" in config6;
+ super(tokens2, Object.assign(Object.assign(Object.assign({}, defaultConfig3), { lookaheadStrategy: useDefaultLookahead ? new LLkLookaheadStrategy({ maxLookahead: config6.maxLookahead }) : new LLStarLookaheadStrategy() }), config6));
+ }
+ get IS_RECORDING() {
+ return this.RECORDING_PHASE;
+ }
+ DEFINE_RULE(name, impl2) {
+ return this.RULE(name, impl2);
+ }
+ wrapSelfAnalysis() {
+ this.performSelfAnalysis();
+ }
+ wrapConsume(idx, tokenType) {
+ return this.consume(idx, tokenType);
+ }
+ wrapSubrule(idx, rule, args) {
+ return this.subrule(idx, rule, {
+ ARGS: [args]
+ });
+ }
+ wrapOr(idx, choices) {
+ this.or(idx, choices);
+ }
+ wrapOption(idx, callback) {
+ this.option(idx, callback);
+ }
+ wrapMany(idx, callback) {
+ this.many(idx, callback);
+ }
+ wrapAtLeastOne(idx, callback) {
+ this.atLeastOne(idx, callback);
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/parser-builder-base.js
+ function createParser(grammar, parser22, tokens2) {
+ const rules = /* @__PURE__ */ new Map();
+ const parserContext = {
+ parser: parser22,
+ tokens: tokens2,
+ rules,
+ ruleNames: /* @__PURE__ */ new Map()
+ };
+ buildRules(parserContext, grammar);
+ return parser22;
+ }
+ function buildRules(parserContext, grammar) {
+ const reachable = getAllReachableRules(grammar, false);
+ const parserRules = stream(grammar.rules).filter(isParserRule).filter((rule) => reachable.has(rule));
+ for (const rule of parserRules) {
+ const ctx = Object.assign(Object.assign({}, parserContext), { consume: 1, optional: 1, subrule: 1, many: 1, or: 1 });
+ ctx.rules.set(rule.name, parserContext.parser.rule(rule, buildElement(ctx, rule.definition)));
+ }
+ }
+ function buildElement(ctx, element3, ignoreGuard = false) {
+ let method;
+ if (isKeyword(element3)) {
+ method = buildKeyword(ctx, element3);
+ } else if (isAction(element3)) {
+ method = buildAction(ctx, element3);
+ } else if (isAssignment(element3)) {
+ method = buildElement(ctx, element3.terminal);
+ } else if (isCrossReference(element3)) {
+ method = buildCrossReference(ctx, element3);
+ } else if (isRuleCall(element3)) {
+ method = buildRuleCall(ctx, element3);
+ } else if (isAlternatives(element3)) {
+ method = buildAlternatives(ctx, element3);
+ } else if (isUnorderedGroup(element3)) {
+ method = buildUnorderedGroup(ctx, element3);
+ } else if (isGroup(element3)) {
+ method = buildGroup4(ctx, element3);
+ } else if (isEndOfFile(element3)) {
+ const idx = ctx.consume++;
+ method = /* @__PURE__ */ __name(() => ctx.parser.consume(idx, EOF, element3), "method");
+ } else {
+ throw new ErrorWithLocation(element3.$cstNode, `Unexpected element type: ${element3.$type}`);
+ }
+ return wrap(ctx, ignoreGuard ? void 0 : getGuardCondition(element3), method, element3.cardinality);
+ }
+ function buildAction(ctx, action) {
+ const actionType = getTypeName(action);
+ return () => ctx.parser.action(actionType, action);
+ }
+ function buildRuleCall(ctx, ruleCall) {
+ const rule = ruleCall.rule.ref;
+ if (isParserRule(rule)) {
+ const idx = ctx.subrule++;
+ const predicate = ruleCall.arguments.length > 0 ? buildRuleCallPredicate(rule, ruleCall.arguments) : () => ({});
+ return (args) => ctx.parser.subrule(idx, getRule(ctx, rule), ruleCall, predicate(args));
+ } else if (isTerminalRule(rule)) {
+ const idx = ctx.consume++;
+ const method = getToken(ctx, rule.name);
+ return () => ctx.parser.consume(idx, method, ruleCall);
+ } else if (!rule) {
+ throw new ErrorWithLocation(ruleCall.$cstNode, `Undefined rule type: ${ruleCall.$type}`);
+ } else {
+ assertUnreachable(rule);
+ }
+ }
+ function buildRuleCallPredicate(rule, namedArgs) {
+ const predicates = namedArgs.map((e3) => buildPredicate(e3.value));
+ return (args) => {
+ const ruleArgs = {};
+ for (let i2 = 0; i2 < predicates.length; i2++) {
+ const ruleTarget = rule.parameters[i2];
+ const predicate = predicates[i2];
+ ruleArgs[ruleTarget.name] = predicate(args);
+ }
+ return ruleArgs;
+ };
+ }
+ function buildPredicate(condition) {
+ if (isDisjunction(condition)) {
+ const left3 = buildPredicate(condition.left);
+ const right3 = buildPredicate(condition.right);
+ return (args) => left3(args) || right3(args);
+ } else if (isConjunction(condition)) {
+ const left3 = buildPredicate(condition.left);
+ const right3 = buildPredicate(condition.right);
+ return (args) => left3(args) && right3(args);
+ } else if (isNegation(condition)) {
+ const value2 = buildPredicate(condition.value);
+ return (args) => !value2(args);
+ } else if (isParameterReference(condition)) {
+ const name = condition.parameter.ref.name;
+ return (args) => args !== void 0 && args[name] === true;
+ } else if (isBooleanLiteral(condition)) {
+ const value2 = Boolean(condition.true);
+ return () => value2;
+ }
+ assertUnreachable(condition);
+ }
+ function buildAlternatives(ctx, alternatives) {
+ if (alternatives.elements.length === 1) {
+ return buildElement(ctx, alternatives.elements[0]);
+ } else {
+ const methods = [];
+ for (const element3 of alternatives.elements) {
+ const predicatedMethod = {
+ // Since we handle the guard condition in the alternative already
+ // We can ignore the group guard condition inside
+ ALT: buildElement(ctx, element3, true)
+ };
+ const guard = getGuardCondition(element3);
+ if (guard) {
+ predicatedMethod.GATE = buildPredicate(guard);
+ }
+ methods.push(predicatedMethod);
+ }
+ const idx = ctx.or++;
+ return (args) => ctx.parser.alternatives(idx, methods.map((method) => {
+ const alt = {
+ ALT: /* @__PURE__ */ __name(() => method.ALT(args), "ALT")
+ };
+ const gate = method.GATE;
+ if (gate) {
+ alt.GATE = () => gate(args);
+ }
+ return alt;
+ }));
+ }
+ }
+ function buildUnorderedGroup(ctx, group2) {
+ if (group2.elements.length === 1) {
+ return buildElement(ctx, group2.elements[0]);
+ }
+ const methods = [];
+ for (const element3 of group2.elements) {
+ const predicatedMethod = {
+ // Since we handle the guard condition in the alternative already
+ // We can ignore the group guard condition inside
+ ALT: buildElement(ctx, element3, true)
+ };
+ const guard = getGuardCondition(element3);
+ if (guard) {
+ predicatedMethod.GATE = buildPredicate(guard);
+ }
+ methods.push(predicatedMethod);
+ }
+ const orIdx = ctx.or++;
+ const idFunc = /* @__PURE__ */ __name((groupIdx, lParser) => {
+ const stackId = lParser.getRuleStack().join("-");
+ return `uGroup_${groupIdx}_${stackId}`;
+ }, "idFunc");
+ const alternatives = /* @__PURE__ */ __name((args) => ctx.parser.alternatives(orIdx, methods.map((method, idx) => {
+ const alt = { ALT: /* @__PURE__ */ __name(() => true, "ALT") };
+ const parser22 = ctx.parser;
+ alt.ALT = () => {
+ method.ALT(args);
+ if (!parser22.isRecording()) {
+ const key = idFunc(orIdx, parser22);
+ if (!parser22.unorderedGroups.get(key)) {
+ parser22.unorderedGroups.set(key, []);
+ }
+ const groupState = parser22.unorderedGroups.get(key);
+ if (typeof (groupState === null || groupState === void 0 ? void 0 : groupState[idx]) === "undefined") {
+ groupState[idx] = true;
+ }
+ }
+ };
+ const gate = method.GATE;
+ if (gate) {
+ alt.GATE = () => gate(args);
+ } else {
+ alt.GATE = () => {
+ const trackedAlternatives = parser22.unorderedGroups.get(idFunc(orIdx, parser22));
+ const allow = !(trackedAlternatives === null || trackedAlternatives === void 0 ? void 0 : trackedAlternatives[idx]);
+ return allow;
+ };
+ }
+ return alt;
+ })), "alternatives");
+ const wrapped = wrap(ctx, getGuardCondition(group2), alternatives, "*");
+ return (args) => {
+ wrapped(args);
+ if (!ctx.parser.isRecording()) {
+ ctx.parser.unorderedGroups.delete(idFunc(orIdx, ctx.parser));
+ }
+ };
+ }
+ function buildGroup4(ctx, group2) {
+ const methods = group2.elements.map((e3) => buildElement(ctx, e3));
+ return (args) => methods.forEach((method) => method(args));
+ }
+ function getGuardCondition(element3) {
+ if (isGroup(element3)) {
+ return element3.guardCondition;
+ }
+ return void 0;
+ }
+ function buildCrossReference(ctx, crossRef, terminal = crossRef.terminal) {
+ if (!terminal) {
+ if (!crossRef.type.ref) {
+ throw new Error("Could not resolve reference to type: " + crossRef.type.$refText);
+ }
+ const assignment = findNameAssignment(crossRef.type.ref);
+ const assignTerminal = assignment === null || assignment === void 0 ? void 0 : assignment.terminal;
+ if (!assignTerminal) {
+ throw new Error("Could not find name assignment for type: " + getTypeName(crossRef.type.ref));
+ }
+ return buildCrossReference(ctx, crossRef, assignTerminal);
+ } else if (isRuleCall(terminal) && isParserRule(terminal.rule.ref)) {
+ const idx = ctx.subrule++;
+ return (args) => ctx.parser.subrule(idx, getRule(ctx, terminal.rule.ref), crossRef, args);
+ } else if (isRuleCall(terminal) && isTerminalRule(terminal.rule.ref)) {
+ const idx = ctx.consume++;
+ const terminalRule = getToken(ctx, terminal.rule.ref.name);
+ return () => ctx.parser.consume(idx, terminalRule, crossRef);
+ } else if (isKeyword(terminal)) {
+ const idx = ctx.consume++;
+ const keyword = getToken(ctx, terminal.value);
+ return () => ctx.parser.consume(idx, keyword, crossRef);
+ } else {
+ throw new Error("Could not build cross reference parser");
+ }
+ }
+ function buildKeyword(ctx, keyword) {
+ const idx = ctx.consume++;
+ const token2 = ctx.tokens[keyword.value];
+ if (!token2) {
+ throw new Error("Could not find token for keyword: " + keyword.value);
+ }
+ return () => ctx.parser.consume(idx, token2, keyword);
+ }
+ function wrap(ctx, guard, method, cardinality) {
+ const gate = guard && buildPredicate(guard);
+ if (!cardinality) {
+ if (gate) {
+ const idx = ctx.or++;
+ return (args) => ctx.parser.alternatives(idx, [
+ {
+ ALT: /* @__PURE__ */ __name(() => method(args), "ALT"),
+ GATE: /* @__PURE__ */ __name(() => gate(args), "GATE")
+ },
+ {
+ ALT: EMPTY_ALT(),
+ GATE: /* @__PURE__ */ __name(() => !gate(args), "GATE")
+ }
+ ]);
+ } else {
+ return method;
+ }
+ }
+ if (cardinality === "*") {
+ const idx = ctx.many++;
+ return (args) => ctx.parser.many(idx, {
+ DEF: /* @__PURE__ */ __name(() => method(args), "DEF"),
+ GATE: gate ? () => gate(args) : void 0
+ });
+ } else if (cardinality === "+") {
+ const idx = ctx.many++;
+ if (gate) {
+ const orIdx = ctx.or++;
+ return (args) => ctx.parser.alternatives(orIdx, [
+ {
+ ALT: /* @__PURE__ */ __name(() => ctx.parser.atLeastOne(idx, {
+ DEF: /* @__PURE__ */ __name(() => method(args), "DEF")
+ }), "ALT"),
+ GATE: /* @__PURE__ */ __name(() => gate(args), "GATE")
+ },
+ {
+ ALT: EMPTY_ALT(),
+ GATE: /* @__PURE__ */ __name(() => !gate(args), "GATE")
+ }
+ ]);
+ } else {
+ return (args) => ctx.parser.atLeastOne(idx, {
+ DEF: /* @__PURE__ */ __name(() => method(args), "DEF")
+ });
+ }
+ } else if (cardinality === "?") {
+ const idx = ctx.optional++;
+ return (args) => ctx.parser.optional(idx, {
+ DEF: /* @__PURE__ */ __name(() => method(args), "DEF"),
+ GATE: gate ? () => gate(args) : void 0
+ });
+ } else {
+ assertUnreachable(cardinality);
+ }
+ }
+ function getRule(ctx, element3) {
+ const name = getRuleName(ctx, element3);
+ const rule = ctx.rules.get(name);
+ if (!rule)
+ throw new Error(`Rule "${name}" not found."`);
+ return rule;
+ }
+ function getRuleName(ctx, element3) {
+ if (isParserRule(element3)) {
+ return element3.name;
+ } else if (ctx.ruleNames.has(element3)) {
+ return ctx.ruleNames.get(element3);
+ } else {
+ let item = element3;
+ let parent4 = item.$container;
+ let ruleName = element3.$type;
+ while (!isParserRule(parent4)) {
+ if (isGroup(parent4) || isAlternatives(parent4) || isUnorderedGroup(parent4)) {
+ const index = parent4.elements.indexOf(item);
+ ruleName = index.toString() + ":" + ruleName;
+ }
+ item = parent4;
+ parent4 = parent4.$container;
+ }
+ const rule = parent4;
+ ruleName = rule.name + ":" + ruleName;
+ ctx.ruleNames.set(element3, ruleName);
+ return ruleName;
+ }
+ }
+ function getToken(ctx, name) {
+ const token2 = ctx.tokens[name];
+ if (!token2)
+ throw new Error(`Token "${name}" not found."`);
+ return token2;
+ }
+ var init_parser_builder_base = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/parser-builder-base.js"() {
+ "use strict";
+ init_api5();
+ init_ast();
+ init_errors2();
+ init_stream();
+ init_grammar_utils();
+ __name(createParser, "createParser");
+ __name(buildRules, "buildRules");
+ __name(buildElement, "buildElement");
+ __name(buildAction, "buildAction");
+ __name(buildRuleCall, "buildRuleCall");
+ __name(buildRuleCallPredicate, "buildRuleCallPredicate");
+ __name(buildPredicate, "buildPredicate");
+ __name(buildAlternatives, "buildAlternatives");
+ __name(buildUnorderedGroup, "buildUnorderedGroup");
+ __name(buildGroup4, "buildGroup");
+ __name(getGuardCondition, "getGuardCondition");
+ __name(buildCrossReference, "buildCrossReference");
+ __name(buildKeyword, "buildKeyword");
+ __name(wrap, "wrap");
+ __name(getRule, "getRule");
+ __name(getRuleName, "getRuleName");
+ __name(getToken, "getToken");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/completion-parser-builder.js
+ function createCompletionParser(services) {
+ const grammar = services.Grammar;
+ const lexer2 = services.parser.Lexer;
+ const parser22 = new LangiumCompletionParser(services);
+ createParser(grammar, parser22, lexer2.definition);
+ parser22.finalize();
+ return parser22;
+ }
+ var init_completion_parser_builder = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/completion-parser-builder.js"() {
+ "use strict";
+ init_langium_parser();
+ init_parser_builder_base();
+ __name(createCompletionParser, "createCompletionParser");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/langium-parser-builder.js
+ function createLangiumParser(services) {
+ const parser22 = prepareLangiumParser(services);
+ parser22.finalize();
+ return parser22;
+ }
+ function prepareLangiumParser(services) {
+ const grammar = services.Grammar;
+ const lexer2 = services.parser.Lexer;
+ const parser22 = new LangiumParser(services);
+ return createParser(grammar, parser22, lexer2.definition);
+ }
+ var init_langium_parser_builder = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/langium-parser-builder.js"() {
+ "use strict";
+ init_langium_parser();
+ init_parser_builder_base();
+ __name(createLangiumParser, "createLangiumParser");
+ __name(prepareLangiumParser, "prepareLangiumParser");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/token-builder.js
+ var DefaultTokenBuilder;
+ var init_token_builder = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/token-builder.js"() {
+ "use strict";
+ init_api5();
+ init_ast();
+ init_ast_utils();
+ init_grammar_utils();
+ init_regexp_utils();
+ init_stream();
+ DefaultTokenBuilder = class {
+ static {
+ __name(this, "DefaultTokenBuilder");
+ }
+ buildTokens(grammar, options3) {
+ const reachableRules = stream(getAllReachableRules(grammar, false));
+ const terminalTokens = this.buildTerminalTokens(reachableRules);
+ const tokens2 = this.buildKeywordTokens(reachableRules, terminalTokens, options3);
+ terminalTokens.forEach((terminalToken) => {
+ const pattern = terminalToken.PATTERN;
+ if (typeof pattern === "object" && pattern && "test" in pattern && isWhitespace(pattern)) {
+ tokens2.unshift(terminalToken);
+ } else {
+ tokens2.push(terminalToken);
}
- function cj(a) {
- this.a = a;
+ });
+ return tokens2;
+ }
+ buildTerminalTokens(rules) {
+ return rules.filter(isTerminalRule).filter((e3) => !e3.fragment).map((terminal) => this.buildTerminalToken(terminal)).toArray();
+ }
+ buildTerminalToken(terminal) {
+ const regex2 = terminalRegex(terminal);
+ const pattern = this.requiresCustomPattern(regex2) ? this.regexPatternFunction(regex2) : regex2;
+ const tokenType = {
+ name: terminal.name,
+ PATTERN: pattern,
+ LINE_BREAKS: true
+ };
+ if (terminal.hidden) {
+ tokenType.GROUP = isWhitespace(regex2) ? Lexer2.SKIPPED : "hidden";
+ }
+ return tokenType;
+ }
+ requiresCustomPattern(regex2) {
+ if (regex2.flags.includes("u")) {
+ return true;
+ } else if (regex2.source.includes("?<=") || regex2.source.includes("? {
+ stickyRegex.lastIndex = offset;
+ const execResult = stickyRegex.exec(text2);
+ return execResult;
+ };
+ }
+ buildKeywordTokens(rules, terminalTokens, options3) {
+ return rules.filter(isParserRule).flatMap((rule) => streamAllContents(rule).filter(isKeyword)).distinct((e3) => e3.value).toArray().sort((a2, b2) => b2.value.length - a2.value.length).map((keyword) => this.buildKeywordToken(keyword, terminalTokens, Boolean(options3 === null || options3 === void 0 ? void 0 : options3.caseInsensitive)));
+ }
+ buildKeywordToken(keyword, terminalTokens, caseInsensitive) {
+ return {
+ name: keyword.value,
+ PATTERN: this.buildKeywordPattern(keyword, caseInsensitive),
+ LONGER_ALT: this.findLongerAlt(keyword, terminalTokens)
+ };
+ }
+ buildKeywordPattern(keyword, caseInsensitive) {
+ return caseInsensitive ? new RegExp(getCaseInsensitivePattern(keyword.value)) : keyword.value;
+ }
+ findLongerAlt(keyword, terminalTokens) {
+ return terminalTokens.reduce((longerAlts, token2) => {
+ const pattern = token2 === null || token2 === void 0 ? void 0 : token2.PATTERN;
+ if ((pattern === null || pattern === void 0 ? void 0 : pattern.source) && partialMatches("^" + pattern.source + "$", keyword.value)) {
+ longerAlts.push(token2);
}
- function ij(a) {
- this.a = a;
+ return longerAlts;
+ }, []);
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/value-converter.js
+ var DefaultValueConverter, ValueConverter;
+ var init_value_converter = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/value-converter.js"() {
+ "use strict";
+ init_ast();
+ init_grammar_utils();
+ DefaultValueConverter = class {
+ static {
+ __name(this, "DefaultValueConverter");
+ }
+ convert(input, cstNode) {
+ let feature = cstNode.grammarSource;
+ if (isCrossReference(feature)) {
+ feature = getCrossReferenceTerminal(feature);
+ }
+ if (isRuleCall(feature)) {
+ const rule = feature.rule.ref;
+ if (!rule) {
+ throw new Error("This cst node was not parsed by a rule.");
+ }
+ return this.runConverter(rule, input, cstNode);
+ }
+ return input;
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ runConverter(rule, input, cstNode) {
+ var _a;
+ switch (rule.name.toUpperCase()) {
+ case "INT":
+ return ValueConverter.convertInt(input);
+ case "STRING":
+ return ValueConverter.convertString(input);
+ case "ID":
+ return ValueConverter.convertID(input);
+ }
+ switch ((_a = getRuleType(rule)) === null || _a === void 0 ? void 0 : _a.toLowerCase()) {
+ case "number":
+ return ValueConverter.convertNumber(input);
+ case "boolean":
+ return ValueConverter.convertBoolean(input);
+ case "bigint":
+ return ValueConverter.convertBigint(input);
+ case "date":
+ return ValueConverter.convertDate(input);
+ default:
+ return input;
+ }
+ }
+ };
+ (function(ValueConverter2) {
+ function convertString(input) {
+ let result = "";
+ for (let i2 = 1; i2 < input.length - 1; i2++) {
+ const c3 = input.charAt(i2);
+ if (c3 === "\\") {
+ const c1 = input.charAt(++i2);
+ result += convertEscapeCharacter(c1);
+ } else {
+ result += c3;
}
- function Dj(a) {
- this.a = a;
+ }
+ return result;
+ }
+ __name(convertString, "convertString");
+ ValueConverter2.convertString = convertString;
+ function convertEscapeCharacter(char2) {
+ switch (char2) {
+ case "b":
+ return "\b";
+ case "f":
+ return "\f";
+ case "n":
+ return "\n";
+ case "r":
+ return "\r";
+ case "t":
+ return " ";
+ case "v":
+ return "\v";
+ case "0":
+ return "\0";
+ default:
+ return char2;
+ }
+ }
+ __name(convertEscapeCharacter, "convertEscapeCharacter");
+ function convertID(input) {
+ if (input.charAt(0) === "^") {
+ return input.substring(1);
+ } else {
+ return input;
+ }
+ }
+ __name(convertID, "convertID");
+ ValueConverter2.convertID = convertID;
+ function convertInt(input) {
+ return parseInt(input);
+ }
+ __name(convertInt, "convertInt");
+ ValueConverter2.convertInt = convertInt;
+ function convertBigint(input) {
+ return BigInt(input);
+ }
+ __name(convertBigint, "convertBigint");
+ ValueConverter2.convertBigint = convertBigint;
+ function convertDate(input) {
+ return new Date(input);
+ }
+ __name(convertDate, "convertDate");
+ ValueConverter2.convertDate = convertDate;
+ function convertNumber(input) {
+ return Number(input);
+ }
+ __name(convertNumber, "convertNumber");
+ ValueConverter2.convertNumber = convertNumber;
+ function convertBoolean(input) {
+ return input.toLowerCase() === "true";
+ }
+ __name(convertBoolean, "convertBoolean");
+ ValueConverter2.convertBoolean = convertBoolean;
+ })(ValueConverter || (ValueConverter = {}));
+ }
+ });
+
+ // ../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/ral.js
+ var require_ral = __commonJS({
+ "../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/ral.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var _ral;
+ function RAL() {
+ if (_ral === void 0) {
+ throw new Error(`No runtime abstraction layer installed`);
+ }
+ return _ral;
+ }
+ __name(RAL, "RAL");
+ (function(RAL2) {
+ function install(ral) {
+ if (ral === void 0) {
+ throw new Error(`No runtime abstraction layer provided`);
+ }
+ _ral = ral;
+ }
+ __name(install, "install");
+ RAL2.install = install;
+ })(RAL || (RAL = {}));
+ exports2.default = RAL;
+ }
+ });
+
+ // ../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/is.js
+ var require_is = __commonJS({
+ "../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/is.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.stringArray = exports2.array = exports2.func = exports2.error = exports2.number = exports2.string = exports2.boolean = void 0;
+ function boolean(value2) {
+ return value2 === true || value2 === false;
+ }
+ __name(boolean, "boolean");
+ exports2.boolean = boolean;
+ function string3(value2) {
+ return typeof value2 === "string" || value2 instanceof String;
+ }
+ __name(string3, "string");
+ exports2.string = string3;
+ function number7(value2) {
+ return typeof value2 === "number" || value2 instanceof Number;
+ }
+ __name(number7, "number");
+ exports2.number = number7;
+ function error3(value2) {
+ return value2 instanceof Error;
+ }
+ __name(error3, "error");
+ exports2.error = error3;
+ function func(value2) {
+ return typeof value2 === "function";
+ }
+ __name(func, "func");
+ exports2.func = func;
+ function array4(value2) {
+ return Array.isArray(value2);
+ }
+ __name(array4, "array");
+ exports2.array = array4;
+ function stringArray(value2) {
+ return array4(value2) && value2.every((elem) => string3(elem));
+ }
+ __name(stringArray, "stringArray");
+ exports2.stringArray = stringArray;
+ }
+ });
+
+ // ../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/events.js
+ var require_events = __commonJS({
+ "../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/events.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Emitter = exports2.Event = void 0;
+ var ral_1 = require_ral();
+ var Event3;
+ (function(Event4) {
+ const _disposable = { dispose() {
+ } };
+ Event4.None = function() {
+ return _disposable;
+ };
+ })(Event3 || (exports2.Event = Event3 = {}));
+ var CallbackList = class {
+ static {
+ __name(this, "CallbackList");
+ }
+ add(callback, context = null, bucket) {
+ if (!this._callbacks) {
+ this._callbacks = [];
+ this._contexts = [];
+ }
+ this._callbacks.push(callback);
+ this._contexts.push(context);
+ if (Array.isArray(bucket)) {
+ bucket.push({ dispose: /* @__PURE__ */ __name(() => this.remove(callback, context), "dispose") });
+ }
+ }
+ remove(callback, context = null) {
+ if (!this._callbacks) {
+ return;
+ }
+ let foundCallbackWithDifferentContext = false;
+ for (let i2 = 0, len = this._callbacks.length; i2 < len; i2++) {
+ if (this._callbacks[i2] === callback) {
+ if (this._contexts[i2] === context) {
+ this._callbacks.splice(i2, 1);
+ this._contexts.splice(i2, 1);
+ return;
+ } else {
+ foundCallbackWithDifferentContext = true;
+ }
}
- function df(a) {
- this.a = a;
+ }
+ if (foundCallbackWithDifferentContext) {
+ throw new Error("When adding a listener with a context, you should remove it with the same context");
+ }
+ }
+ invoke(...args) {
+ if (!this._callbacks) {
+ return [];
+ }
+ const ret = [], callbacks = this._callbacks.slice(0), contexts = this._contexts.slice(0);
+ for (let i2 = 0, len = callbacks.length; i2 < len; i2++) {
+ try {
+ ret.push(callbacks[i2].apply(contexts[i2], args));
+ } catch (e3) {
+ (0, ral_1.default)().console.error(e3);
}
- function kf(a) {
- this.a = a;
+ }
+ return ret;
+ }
+ isEmpty() {
+ return !this._callbacks || this._callbacks.length === 0;
+ }
+ dispose() {
+ this._callbacks = void 0;
+ this._contexts = void 0;
+ }
+ };
+ var Emitter3 = class _Emitter {
+ static {
+ __name(this, "Emitter");
+ }
+ constructor(_options) {
+ this._options = _options;
+ }
+ /**
+ * For the public to allow to subscribe
+ * to events from this Emitter
+ */
+ get event() {
+ if (!this._event) {
+ this._event = (listener, thisArgs, disposables) => {
+ if (!this._callbacks) {
+ this._callbacks = new CallbackList();
+ }
+ if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {
+ this._options.onFirstListenerAdd(this);
+ }
+ this._callbacks.add(listener, thisArgs);
+ const result = {
+ dispose: /* @__PURE__ */ __name(() => {
+ if (!this._callbacks) {
+ return;
+ }
+ this._callbacks.remove(listener, thisArgs);
+ result.dispose = _Emitter._noop;
+ if (this._options && this._options.onLastListenerRemove && this._callbacks.isEmpty()) {
+ this._options.onLastListenerRemove(this);
+ }
+ }, "dispose")
+ };
+ if (Array.isArray(disposables)) {
+ disposables.push(result);
+ }
+ return result;
+ };
+ }
+ return this._event;
+ }
+ /**
+ * To be kept private to fire an event to
+ * subscribers
+ */
+ fire(event3) {
+ if (this._callbacks) {
+ this._callbacks.invoke.call(this._callbacks, event3);
+ }
+ }
+ dispose() {
+ if (this._callbacks) {
+ this._callbacks.dispose();
+ this._callbacks = void 0;
+ }
+ }
+ };
+ exports2.Emitter = Emitter3;
+ Emitter3._noop = function() {
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/cancellation.js
+ var require_cancellation = __commonJS({
+ "../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/cancellation.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.CancellationTokenSource = exports2.CancellationToken = void 0;
+ var ral_1 = require_ral();
+ var Is2 = require_is();
+ var events_1 = require_events();
+ var CancellationToken11;
+ (function(CancellationToken12) {
+ CancellationToken12.None = Object.freeze({
+ isCancellationRequested: false,
+ onCancellationRequested: events_1.Event.None
+ });
+ CancellationToken12.Cancelled = Object.freeze({
+ isCancellationRequested: true,
+ onCancellationRequested: events_1.Event.None
+ });
+ function is2(value2) {
+ const candidate = value2;
+ return candidate && (candidate === CancellationToken12.None || candidate === CancellationToken12.Cancelled || Is2.boolean(candidate.isCancellationRequested) && !!candidate.onCancellationRequested);
+ }
+ __name(is2, "is");
+ CancellationToken12.is = is2;
+ })(CancellationToken11 || (exports2.CancellationToken = CancellationToken11 = {}));
+ var shortcutEvent = Object.freeze(function(callback, context) {
+ const handle = (0, ral_1.default)().timer.setTimeout(callback.bind(context), 0);
+ return { dispose() {
+ handle.dispose();
+ } };
+ });
+ var MutableToken = class {
+ static {
+ __name(this, "MutableToken");
+ }
+ constructor() {
+ this._isCancelled = false;
+ }
+ cancel() {
+ if (!this._isCancelled) {
+ this._isCancelled = true;
+ if (this._emitter) {
+ this._emitter.fire(void 0);
+ this.dispose();
}
- function ah(a) {
- this.a = a;
+ }
+ }
+ get isCancellationRequested() {
+ return this._isCancelled;
+ }
+ get onCancellationRequested() {
+ if (this._isCancelled) {
+ return shortcutEvent;
+ }
+ if (!this._emitter) {
+ this._emitter = new events_1.Emitter();
+ }
+ return this._emitter.event;
+ }
+ dispose() {
+ if (this._emitter) {
+ this._emitter.dispose();
+ this._emitter = void 0;
+ }
+ }
+ };
+ var CancellationTokenSource3 = class {
+ static {
+ __name(this, "CancellationTokenSource");
+ }
+ get token() {
+ if (!this._token) {
+ this._token = new MutableToken();
+ }
+ return this._token;
+ }
+ cancel() {
+ if (!this._token) {
+ this._token = CancellationToken11.Cancelled;
+ } else {
+ this._token.cancel();
+ }
+ }
+ dispose() {
+ if (!this._token) {
+ this._token = CancellationToken11.None;
+ } else if (this._token instanceof MutableToken) {
+ this._token.dispose();
+ }
+ }
+ };
+ exports2.CancellationTokenSource = CancellationTokenSource3;
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/cancellation.js
+ var cancellation_exports = {};
+ var init_cancellation = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/cancellation.js"() {
+ "use strict";
+ __reExport(cancellation_exports, __toESM(require_cancellation(), 1));
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/promise-utils.js
+ function delayNextTick() {
+ return new Promise((resolve3) => {
+ if (typeof setImmediate === "undefined") {
+ setTimeout(resolve3, 0);
+ } else {
+ setImmediate(resolve3);
+ }
+ });
+ }
+ function startCancelableOperation() {
+ lastTick = Date.now();
+ return new cancellation_exports.CancellationTokenSource();
+ }
+ function setInterruptionPeriod(period) {
+ globalInterruptionPeriod = period;
+ }
+ function isOperationCancelled(err) {
+ return err === OperationCancelled;
+ }
+ async function interruptAndCheck(token2) {
+ if (token2 === cancellation_exports.CancellationToken.None) {
+ return;
+ }
+ const current = Date.now();
+ if (current - lastTick >= globalInterruptionPeriod) {
+ lastTick = current;
+ await delayNextTick();
+ }
+ if (token2.isCancellationRequested) {
+ throw OperationCancelled;
+ }
+ }
+ var lastTick, globalInterruptionPeriod, OperationCancelled, Deferred;
+ var init_promise_utils = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/promise-utils.js"() {
+ "use strict";
+ init_cancellation();
+ __name(delayNextTick, "delayNextTick");
+ lastTick = 0;
+ globalInterruptionPeriod = 10;
+ __name(startCancelableOperation, "startCancelableOperation");
+ __name(setInterruptionPeriod, "setInterruptionPeriod");
+ OperationCancelled = Symbol("OperationCancelled");
+ __name(isOperationCancelled, "isOperationCancelled");
+ __name(interruptAndCheck, "interruptAndCheck");
+ Deferred = class {
+ static {
+ __name(this, "Deferred");
+ }
+ constructor() {
+ this.promise = new Promise((resolve3, reject3) => {
+ this.resolve = (arg) => {
+ resolve3(arg);
+ return this;
+ };
+ this.reject = (err) => {
+ reject3(err);
+ return this;
+ };
+ });
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/vscode-languageserver-textdocument@1.0.12/node_modules/vscode-languageserver-textdocument/lib/esm/main.js
+ function mergeSort(data5, compare) {
+ if (data5.length <= 1) {
+ return data5;
+ }
+ const p3 = data5.length / 2 | 0;
+ const left3 = data5.slice(0, p3);
+ const right3 = data5.slice(p3);
+ mergeSort(left3, compare);
+ mergeSort(right3, compare);
+ let leftIdx = 0;
+ let rightIdx = 0;
+ let i2 = 0;
+ while (leftIdx < left3.length && rightIdx < right3.length) {
+ const ret = compare(left3[leftIdx], right3[rightIdx]);
+ if (ret <= 0) {
+ data5[i2++] = left3[leftIdx++];
+ } else {
+ data5[i2++] = right3[rightIdx++];
+ }
+ }
+ while (leftIdx < left3.length) {
+ data5[i2++] = left3[leftIdx++];
+ }
+ while (rightIdx < right3.length) {
+ data5[i2++] = right3[rightIdx++];
+ }
+ return data5;
+ }
+ function computeLineOffsets(text2, isAtLineStart, textOffset = 0) {
+ const result = isAtLineStart ? [textOffset] : [];
+ for (let i2 = 0; i2 < text2.length; i2++) {
+ const ch = text2.charCodeAt(i2);
+ if (isEOL(ch)) {
+ if (ch === 13 && i2 + 1 < text2.length && text2.charCodeAt(i2 + 1) === 10) {
+ i2++;
+ }
+ result.push(textOffset + i2 + 1);
+ }
+ }
+ return result;
+ }
+ function isEOL(char2) {
+ return char2 === 13 || char2 === 10;
+ }
+ function getWellformedRange(range3) {
+ const start3 = range3.start;
+ const end2 = range3.end;
+ if (start3.line > end2.line || start3.line === end2.line && start3.character > end2.character) {
+ return { start: end2, end: start3 };
+ }
+ return range3;
+ }
+ function getWellformedEdit(textEdit) {
+ const range3 = getWellformedRange(textEdit.range);
+ if (range3 !== textEdit.range) {
+ return { newText: textEdit.newText, range: range3 };
+ }
+ return textEdit;
+ }
+ var FullTextDocument2, TextDocument2;
+ var init_main2 = __esm({
+ "../../node_modules/.pnpm/vscode-languageserver-textdocument@1.0.12/node_modules/vscode-languageserver-textdocument/lib/esm/main.js"() {
+ "use strict";
+ FullTextDocument2 = class _FullTextDocument {
+ static {
+ __name(this, "FullTextDocument");
+ }
+ constructor(uri, languageId, version4, content) {
+ this._uri = uri;
+ this._languageId = languageId;
+ this._version = version4;
+ this._content = content;
+ this._lineOffsets = void 0;
+ }
+ get uri() {
+ return this._uri;
+ }
+ get languageId() {
+ return this._languageId;
+ }
+ get version() {
+ return this._version;
+ }
+ getText(range3) {
+ if (range3) {
+ const start3 = this.offsetAt(range3.start);
+ const end2 = this.offsetAt(range3.end);
+ return this._content.substring(start3, end2);
+ }
+ return this._content;
+ }
+ update(changes, version4) {
+ for (const change2 of changes) {
+ if (_FullTextDocument.isIncremental(change2)) {
+ const range3 = getWellformedRange(change2.range);
+ const startOffset = this.offsetAt(range3.start);
+ const endOffset = this.offsetAt(range3.end);
+ this._content = this._content.substring(0, startOffset) + change2.text + this._content.substring(endOffset, this._content.length);
+ const startLine = Math.max(range3.start.line, 0);
+ const endLine = Math.max(range3.end.line, 0);
+ let lineOffsets = this._lineOffsets;
+ const addedLineOffsets = computeLineOffsets(change2.text, false, startOffset);
+ if (endLine - startLine === addedLineOffsets.length) {
+ for (let i2 = 0, len = addedLineOffsets.length; i2 < len; i2++) {
+ lineOffsets[i2 + startLine + 1] = addedLineOffsets[i2];
+ }
+ } else {
+ if (addedLineOffsets.length < 1e4) {
+ lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);
+ } else {
+ this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));
+ }
+ }
+ const diff2 = change2.text.length - (endOffset - startOffset);
+ if (diff2 !== 0) {
+ for (let i2 = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i2 < len; i2++) {
+ lineOffsets[i2] = lineOffsets[i2] + diff2;
+ }
+ }
+ } else if (_FullTextDocument.isFull(change2)) {
+ this._content = change2.text;
+ this._lineOffsets = void 0;
+ } else {
+ throw new Error("Unknown change event received");
}
- function lh(a) {
- this.a = a;
+ }
+ this._version = version4;
+ }
+ getLineOffsets() {
+ if (this._lineOffsets === void 0) {
+ this._lineOffsets = computeLineOffsets(this._content, true);
+ }
+ return this._lineOffsets;
+ }
+ positionAt(offset) {
+ offset = Math.max(Math.min(offset, this._content.length), 0);
+ const lineOffsets = this.getLineOffsets();
+ let low = 0, high = lineOffsets.length;
+ if (high === 0) {
+ return { line: 0, character: offset };
+ }
+ while (low < high) {
+ const mid = Math.floor((low + high) / 2);
+ if (lineOffsets[mid] > offset) {
+ high = mid;
+ } else {
+ low = mid + 1;
}
- function th(a) {
- this.a = a;
+ }
+ const line2 = low - 1;
+ offset = this.ensureBeforeEOL(offset, lineOffsets[line2]);
+ return { line: line2, character: offset - lineOffsets[line2] };
+ }
+ offsetAt(position5) {
+ const lineOffsets = this.getLineOffsets();
+ if (position5.line >= lineOffsets.length) {
+ return this._content.length;
+ } else if (position5.line < 0) {
+ return 0;
+ }
+ const lineOffset = lineOffsets[position5.line];
+ if (position5.character <= 0) {
+ return lineOffset;
+ }
+ const nextLineOffset = position5.line + 1 < lineOffsets.length ? lineOffsets[position5.line + 1] : this._content.length;
+ const offset = Math.min(lineOffset + position5.character, nextLineOffset);
+ return this.ensureBeforeEOL(offset, lineOffset);
+ }
+ ensureBeforeEOL(offset, lineOffset) {
+ while (offset > lineOffset && isEOL(this._content.charCodeAt(offset - 1))) {
+ offset--;
+ }
+ return offset;
+ }
+ get lineCount() {
+ return this.getLineOffsets().length;
+ }
+ static isIncremental(event3) {
+ const candidate = event3;
+ return candidate !== void 0 && candidate !== null && typeof candidate.text === "string" && candidate.range !== void 0 && (candidate.rangeLength === void 0 || typeof candidate.rangeLength === "number");
+ }
+ static isFull(event3) {
+ const candidate = event3;
+ return candidate !== void 0 && candidate !== null && typeof candidate.text === "string" && candidate.range === void 0 && candidate.rangeLength === void 0;
+ }
+ };
+ (function(TextDocument3) {
+ function create2(uri, languageId, version4, content) {
+ return new FullTextDocument2(uri, languageId, version4, content);
+ }
+ __name(create2, "create");
+ TextDocument3.create = create2;
+ function update2(document2, changes, version4) {
+ if (document2 instanceof FullTextDocument2) {
+ document2.update(changes, version4);
+ return document2;
+ } else {
+ throw new Error("TextDocument.update: document must be created by TextDocument.create");
+ }
+ }
+ __name(update2, "update");
+ TextDocument3.update = update2;
+ function applyEdits(document2, edits) {
+ const text2 = document2.getText();
+ const sortedEdits = mergeSort(edits.map(getWellformedEdit), (a2, b2) => {
+ const diff2 = a2.range.start.line - b2.range.start.line;
+ if (diff2 === 0) {
+ return a2.range.start.character - b2.range.start.character;
}
- function Ph(a) {
- this.a = a;
+ return diff2;
+ });
+ let lastModifiedOffset = 0;
+ const spans = [];
+ for (const e3 of sortedEdits) {
+ const startOffset = document2.offsetAt(e3.range.start);
+ if (startOffset < lastModifiedOffset) {
+ throw new Error("Overlapping edit");
+ } else if (startOffset > lastModifiedOffset) {
+ spans.push(text2.substring(lastModifiedOffset, startOffset));
+ }
+ if (e3.newText.length) {
+ spans.push(e3.newText);
+ }
+ lastModifiedOffset = document2.offsetAt(e3.range.end);
+ }
+ spans.push(text2.substr(lastModifiedOffset));
+ return spans.join("");
+ }
+ __name(applyEdits, "applyEdits");
+ TextDocument3.applyEdits = applyEdits;
+ })(TextDocument2 || (TextDocument2 = {}));
+ __name(mergeSort, "mergeSort");
+ __name(computeLineOffsets, "computeLineOffsets");
+ __name(isEOL, "isEOL");
+ __name(getWellformedRange, "getWellformedRange");
+ __name(getWellformedEdit, "getWellformedEdit");
+ }
+ });
+
+ // ../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/esm/index.mjs
+ var LIB, URI2, Utils2;
+ var init_esm2 = __esm({
+ "../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/esm/index.mjs"() {
+ "use strict";
+ (() => {
+ "use strict";
+ var t4 = { 470: (t5) => {
+ function e4(t6) {
+ if ("string" != typeof t6) throw new TypeError("Path must be a string. Received " + JSON.stringify(t6));
+ }
+ __name(e4, "e");
+ function r3(t6, e6) {
+ for (var r4, n4 = "", i2 = 0, o2 = -1, s2 = 0, h2 = 0; h2 <= t6.length; ++h2) {
+ if (h2 < t6.length) r4 = t6.charCodeAt(h2);
+ else {
+ if (47 === r4) break;
+ r4 = 47;
+ }
+ if (47 === r4) {
+ if (o2 === h2 - 1 || 1 === s2) ;
+ else if (o2 !== h2 - 1 && 2 === s2) {
+ if (n4.length < 2 || 2 !== i2 || 46 !== n4.charCodeAt(n4.length - 1) || 46 !== n4.charCodeAt(n4.length - 2)) {
+ if (n4.length > 2) {
+ var a2 = n4.lastIndexOf("/");
+ if (a2 !== n4.length - 1) {
+ -1 === a2 ? (n4 = "", i2 = 0) : i2 = (n4 = n4.slice(0, a2)).length - 1 - n4.lastIndexOf("/"), o2 = h2, s2 = 0;
+ continue;
+ }
+ } else if (2 === n4.length || 1 === n4.length) {
+ n4 = "", i2 = 0, o2 = h2, s2 = 0;
+ continue;
+ }
+ }
+ e6 && (n4.length > 0 ? n4 += "/.." : n4 = "..", i2 = 2);
+ } else n4.length > 0 ? n4 += "/" + t6.slice(o2 + 1, h2) : n4 = t6.slice(o2 + 1, h2), i2 = h2 - o2 - 1;
+ o2 = h2, s2 = 0;
+ } else 46 === r4 && -1 !== s2 ? ++s2 : s2 = -1;
+ }
+ return n4;
+ }
+ __name(r3, "r");
+ var n3 = { resolve: /* @__PURE__ */ __name(function() {
+ for (var t6, n4 = "", i2 = false, o2 = arguments.length - 1; o2 >= -1 && !i2; o2--) {
+ var s2;
+ o2 >= 0 ? s2 = arguments[o2] : (void 0 === t6 && (t6 = process.cwd()), s2 = t6), e4(s2), 0 !== s2.length && (n4 = s2 + "/" + n4, i2 = 47 === s2.charCodeAt(0));
+ }
+ return n4 = r3(n4, !i2), i2 ? n4.length > 0 ? "/" + n4 : "/" : n4.length > 0 ? n4 : ".";
+ }, "resolve"), normalize: /* @__PURE__ */ __name(function(t6) {
+ if (e4(t6), 0 === t6.length) return ".";
+ var n4 = 47 === t6.charCodeAt(0), i2 = 47 === t6.charCodeAt(t6.length - 1);
+ return 0 !== (t6 = r3(t6, !n4)).length || n4 || (t6 = "."), t6.length > 0 && i2 && (t6 += "/"), n4 ? "/" + t6 : t6;
+ }, "normalize"), isAbsolute: /* @__PURE__ */ __name(function(t6) {
+ return e4(t6), t6.length > 0 && 47 === t6.charCodeAt(0);
+ }, "isAbsolute"), join: /* @__PURE__ */ __name(function() {
+ if (0 === arguments.length) return ".";
+ for (var t6, r4 = 0; r4 < arguments.length; ++r4) {
+ var i2 = arguments[r4];
+ e4(i2), i2.length > 0 && (void 0 === t6 ? t6 = i2 : t6 += "/" + i2);
+ }
+ return void 0 === t6 ? "." : n3.normalize(t6);
+ }, "join"), relative: /* @__PURE__ */ __name(function(t6, r4) {
+ if (e4(t6), e4(r4), t6 === r4) return "";
+ if ((t6 = n3.resolve(t6)) === (r4 = n3.resolve(r4))) return "";
+ for (var i2 = 1; i2 < t6.length && 47 === t6.charCodeAt(i2); ++i2) ;
+ for (var o2 = t6.length, s2 = o2 - i2, h2 = 1; h2 < r4.length && 47 === r4.charCodeAt(h2); ++h2) ;
+ for (var a2 = r4.length - h2, c3 = s2 < a2 ? s2 : a2, f3 = -1, u2 = 0; u2 <= c3; ++u2) {
+ if (u2 === c3) {
+ if (a2 > c3) {
+ if (47 === r4.charCodeAt(h2 + u2)) return r4.slice(h2 + u2 + 1);
+ if (0 === u2) return r4.slice(h2 + u2);
+ } else s2 > c3 && (47 === t6.charCodeAt(i2 + u2) ? f3 = u2 : 0 === u2 && (f3 = 0));
+ break;
+ }
+ var l2 = t6.charCodeAt(i2 + u2);
+ if (l2 !== r4.charCodeAt(h2 + u2)) break;
+ 47 === l2 && (f3 = u2);
+ }
+ var g2 = "";
+ for (u2 = i2 + f3 + 1; u2 <= o2; ++u2) u2 !== o2 && 47 !== t6.charCodeAt(u2) || (0 === g2.length ? g2 += ".." : g2 += "/..");
+ return g2.length > 0 ? g2 + r4.slice(h2 + f3) : (h2 += f3, 47 === r4.charCodeAt(h2) && ++h2, r4.slice(h2));
+ }, "relative"), _makeLong: /* @__PURE__ */ __name(function(t6) {
+ return t6;
+ }, "_makeLong"), dirname: /* @__PURE__ */ __name(function(t6) {
+ if (e4(t6), 0 === t6.length) return ".";
+ for (var r4 = t6.charCodeAt(0), n4 = 47 === r4, i2 = -1, o2 = true, s2 = t6.length - 1; s2 >= 1; --s2) if (47 === (r4 = t6.charCodeAt(s2))) {
+ if (!o2) {
+ i2 = s2;
+ break;
+ }
+ } else o2 = false;
+ return -1 === i2 ? n4 ? "/" : "." : n4 && 1 === i2 ? "//" : t6.slice(0, i2);
+ }, "dirname"), basename: /* @__PURE__ */ __name(function(t6, r4) {
+ if (void 0 !== r4 && "string" != typeof r4) throw new TypeError('"ext" argument must be a string');
+ e4(t6);
+ var n4, i2 = 0, o2 = -1, s2 = true;
+ if (void 0 !== r4 && r4.length > 0 && r4.length <= t6.length) {
+ if (r4.length === t6.length && r4 === t6) return "";
+ var h2 = r4.length - 1, a2 = -1;
+ for (n4 = t6.length - 1; n4 >= 0; --n4) {
+ var c3 = t6.charCodeAt(n4);
+ if (47 === c3) {
+ if (!s2) {
+ i2 = n4 + 1;
+ break;
+ }
+ } else -1 === a2 && (s2 = false, a2 = n4 + 1), h2 >= 0 && (c3 === r4.charCodeAt(h2) ? -1 == --h2 && (o2 = n4) : (h2 = -1, o2 = a2));
+ }
+ return i2 === o2 ? o2 = a2 : -1 === o2 && (o2 = t6.length), t6.slice(i2, o2);
}
- function vi(a) {
- this.a = a;
+ for (n4 = t6.length - 1; n4 >= 0; --n4) if (47 === t6.charCodeAt(n4)) {
+ if (!s2) {
+ i2 = n4 + 1;
+ break;
+ }
+ } else -1 === o2 && (s2 = false, o2 = n4 + 1);
+ return -1 === o2 ? "" : t6.slice(i2, o2);
+ }, "basename"), extname: /* @__PURE__ */ __name(function(t6) {
+ e4(t6);
+ for (var r4 = -1, n4 = 0, i2 = -1, o2 = true, s2 = 0, h2 = t6.length - 1; h2 >= 0; --h2) {
+ var a2 = t6.charCodeAt(h2);
+ if (47 !== a2) -1 === i2 && (o2 = false, i2 = h2 + 1), 46 === a2 ? -1 === r4 ? r4 = h2 : 1 !== s2 && (s2 = 1) : -1 !== r4 && (s2 = -1);
+ else if (!o2) {
+ n4 = h2 + 1;
+ break;
+ }
}
- function Ci(a) {
- this.a = a;
+ return -1 === r4 || -1 === i2 || 0 === s2 || 1 === s2 && r4 === i2 - 1 && r4 === n4 + 1 ? "" : t6.slice(r4, i2);
+ }, "extname"), format: /* @__PURE__ */ __name(function(t6) {
+ if (null === t6 || "object" != typeof t6) throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t6);
+ return function(t7, e6) {
+ var r4 = e6.dir || e6.root, n4 = e6.base || (e6.name || "") + (e6.ext || "");
+ return r4 ? r4 === e6.root ? r4 + n4 : r4 + "/" + n4 : n4;
+ }(0, t6);
+ }, "format"), parse: /* @__PURE__ */ __name(function(t6) {
+ e4(t6);
+ var r4 = { root: "", dir: "", base: "", ext: "", name: "" };
+ if (0 === t6.length) return r4;
+ var n4, i2 = t6.charCodeAt(0), o2 = 47 === i2;
+ o2 ? (r4.root = "/", n4 = 1) : n4 = 0;
+ for (var s2 = -1, h2 = 0, a2 = -1, c3 = true, f3 = t6.length - 1, u2 = 0; f3 >= n4; --f3) if (47 !== (i2 = t6.charCodeAt(f3))) -1 === a2 && (c3 = false, a2 = f3 + 1), 46 === i2 ? -1 === s2 ? s2 = f3 : 1 !== u2 && (u2 = 1) : -1 !== s2 && (u2 = -1);
+ else if (!c3) {
+ h2 = f3 + 1;
+ break;
}
- function Fk(a) {
- this.a = a;
+ return -1 === s2 || -1 === a2 || 0 === u2 || 1 === u2 && s2 === a2 - 1 && s2 === h2 + 1 ? -1 !== a2 && (r4.base = r4.name = 0 === h2 && o2 ? t6.slice(1, a2) : t6.slice(h2, a2)) : (0 === h2 && o2 ? (r4.name = t6.slice(1, s2), r4.base = t6.slice(1, a2)) : (r4.name = t6.slice(h2, s2), r4.base = t6.slice(h2, a2)), r4.ext = t6.slice(s2, a2)), h2 > 0 ? r4.dir = t6.slice(0, h2 - 1) : o2 && (r4.dir = "/"), r4;
+ }, "parse"), sep: "/", delimiter: ":", win32: null, posix: null };
+ n3.posix = n3, t5.exports = n3;
+ } }, e3 = {};
+ function r2(n3) {
+ var i2 = e3[n3];
+ if (void 0 !== i2) return i2.exports;
+ var o2 = e3[n3] = { exports: {} };
+ return t4[n3](o2, o2.exports, r2), o2.exports;
+ }
+ __name(r2, "r");
+ r2.d = (t5, e4) => {
+ for (var n3 in e4) r2.o(e4, n3) && !r2.o(t5, n3) && Object.defineProperty(t5, n3, { enumerable: true, get: e4[n3] });
+ }, r2.o = (t5, e4) => Object.prototype.hasOwnProperty.call(t5, e4), r2.r = (t5) => {
+ "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t5, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t5, "__esModule", { value: true });
+ };
+ var n2 = {};
+ (() => {
+ let t5;
+ if (r2.r(n2), r2.d(n2, { URI: /* @__PURE__ */ __name(() => f3, "URI"), Utils: /* @__PURE__ */ __name(() => P2, "Utils") }), "object" == typeof process) t5 = "win32" === process.platform;
+ else if ("object" == typeof navigator) {
+ let e6 = navigator.userAgent;
+ t5 = e6.indexOf("Windows") >= 0;
+ }
+ const e4 = /^\w[\w\d+.-]*$/, i2 = /^\//, o2 = /^\/\//;
+ function s2(t6, r3) {
+ if (!t6.scheme && r3) throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t6.authority}", path: "${t6.path}", query: "${t6.query}", fragment: "${t6.fragment}"}`);
+ if (t6.scheme && !e4.test(t6.scheme)) throw new Error("[UriError]: Scheme contains illegal characters.");
+ if (t6.path) {
+ if (t6.authority) {
+ if (!i2.test(t6.path)) throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
+ } else if (o2.test(t6.path)) throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
+ }
+ }
+ __name(s2, "s");
+ const h2 = "", a2 = "/", c3 = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
+ class f3 {
+ static {
+ __name(this, "f");
+ }
+ static isUri(t6) {
+ return t6 instanceof f3 || !!t6 && "string" == typeof t6.authority && "string" == typeof t6.fragment && "string" == typeof t6.path && "string" == typeof t6.query && "string" == typeof t6.scheme && "string" == typeof t6.fsPath && "function" == typeof t6.with && "function" == typeof t6.toString;
+ }
+ scheme;
+ authority;
+ path;
+ query;
+ fragment;
+ constructor(t6, e6, r3, n3, i3, o3 = false) {
+ "object" == typeof t6 ? (this.scheme = t6.scheme || h2, this.authority = t6.authority || h2, this.path = t6.path || h2, this.query = t6.query || h2, this.fragment = t6.fragment || h2) : (this.scheme = /* @__PURE__ */ function(t7, e7) {
+ return t7 || e7 ? t7 : "file";
+ }(t6, o3), this.authority = e6 || h2, this.path = function(t7, e7) {
+ switch (t7) {
+ case "https":
+ case "http":
+ case "file":
+ e7 ? e7[0] !== a2 && (e7 = a2 + e7) : e7 = a2;
+ }
+ return e7;
+ }(this.scheme, r3 || h2), this.query = n3 || h2, this.fragment = i3 || h2, s2(this, o3));
+ }
+ get fsPath() {
+ return m2(this, false);
+ }
+ with(t6) {
+ if (!t6) return this;
+ let { scheme: e6, authority: r3, path: n3, query: i3, fragment: o3 } = t6;
+ return void 0 === e6 ? e6 = this.scheme : null === e6 && (e6 = h2), void 0 === r3 ? r3 = this.authority : null === r3 && (r3 = h2), void 0 === n3 ? n3 = this.path : null === n3 && (n3 = h2), void 0 === i3 ? i3 = this.query : null === i3 && (i3 = h2), void 0 === o3 ? o3 = this.fragment : null === o3 && (o3 = h2), e6 === this.scheme && r3 === this.authority && n3 === this.path && i3 === this.query && o3 === this.fragment ? this : new l2(e6, r3, n3, i3, o3);
+ }
+ static parse(t6, e6 = false) {
+ const r3 = c3.exec(t6);
+ return r3 ? new l2(r3[2] || h2, C2(r3[4] || h2), C2(r3[5] || h2), C2(r3[7] || h2), C2(r3[9] || h2), e6) : new l2(h2, h2, h2, h2, h2);
+ }
+ static file(e6) {
+ let r3 = h2;
+ if (t5 && (e6 = e6.replace(/\\/g, a2)), e6[0] === a2 && e6[1] === a2) {
+ const t6 = e6.indexOf(a2, 2);
+ -1 === t6 ? (r3 = e6.substring(2), e6 = a2) : (r3 = e6.substring(2, t6), e6 = e6.substring(t6) || a2);
+ }
+ return new l2("file", r3, e6, h2, h2);
+ }
+ static from(t6) {
+ const e6 = new l2(t6.scheme, t6.authority, t6.path, t6.query, t6.fragment);
+ return s2(e6, true), e6;
+ }
+ toString(t6 = false) {
+ return y5(this, t6);
+ }
+ toJSON() {
+ return this;
}
- function Ln(a) {
- this.a = a;
+ static revive(t6) {
+ if (t6) {
+ if (t6 instanceof f3) return t6;
+ {
+ const e6 = new l2(t6);
+ return e6._formatted = t6.external, e6._fsPath = t6._sep === u2 ? t6.fsPath : null, e6;
+ }
+ }
+ return t6;
}
- function ap(a) {
- this.a = a;
+ }
+ const u2 = t5 ? 1 : void 0;
+ class l2 extends f3 {
+ static {
+ __name(this, "l");
}
- function zp(a) {
- this.a = a;
+ _formatted = null;
+ _fsPath = null;
+ get fsPath() {
+ return this._fsPath || (this._fsPath = m2(this, false)), this._fsPath;
}
- function Yp(a) {
- this.a = a;
+ toString(t6 = false) {
+ return t6 ? y5(this, true) : (this._formatted || (this._formatted = y5(this, false)), this._formatted);
}
- function qq(a) {
- this.a = a;
+ toJSON() {
+ const t6 = { $mid: 1 };
+ return this._fsPath && (t6.fsPath = this._fsPath, t6._sep = u2), this._formatted && (t6.external = this._formatted), this.path && (t6.path = this.path), this.scheme && (t6.scheme = this.scheme), this.authority && (t6.authority = this.authority), this.query && (t6.query = this.query), this.fragment && (t6.fragment = this.fragment), t6;
}
- function Dq(a) {
- this.a = a;
+ }
+ const g2 = { 58: "%3A", 47: "%2F", 63: "%3F", 35: "%23", 91: "%5B", 93: "%5D", 64: "%40", 33: "%21", 36: "%24", 38: "%26", 39: "%27", 40: "%28", 41: "%29", 42: "%2A", 43: "%2B", 44: "%2C", 59: "%3B", 61: "%3D", 32: "%20" };
+ function d2(t6, e6, r3) {
+ let n3, i3 = -1;
+ for (let o3 = 0; o3 < t6.length; o3++) {
+ const s3 = t6.charCodeAt(o3);
+ if (s3 >= 97 && s3 <= 122 || s3 >= 65 && s3 <= 90 || s3 >= 48 && s3 <= 57 || 45 === s3 || 46 === s3 || 95 === s3 || 126 === s3 || e6 && 47 === s3 || r3 && 91 === s3 || r3 && 93 === s3 || r3 && 58 === s3) -1 !== i3 && (n3 += encodeURIComponent(t6.substring(i3, o3)), i3 = -1), void 0 !== n3 && (n3 += t6.charAt(o3));
+ else {
+ void 0 === n3 && (n3 = t6.substr(0, o3));
+ const e7 = g2[s3];
+ void 0 !== e7 ? (-1 !== i3 && (n3 += encodeURIComponent(t6.substring(i3, o3)), i3 = -1), n3 += e7) : -1 === i3 && (i3 = o3);
+ }
}
- function wr(a) {
- this.a = a;
+ return -1 !== i3 && (n3 += encodeURIComponent(t6.substring(i3))), void 0 !== n3 ? n3 : t6;
+ }
+ __name(d2, "d");
+ function p3(t6) {
+ let e6;
+ for (let r3 = 0; r3 < t6.length; r3++) {
+ const n3 = t6.charCodeAt(r3);
+ 35 === n3 || 63 === n3 ? (void 0 === e6 && (e6 = t6.substr(0, r3)), e6 += g2[n3]) : void 0 !== e6 && (e6 += t6[r3]);
}
- function Ir(a) {
- this.b = a;
+ return void 0 !== e6 ? e6 : t6;
+ }
+ __name(p3, "p");
+ function m2(e6, r3) {
+ let n3;
+ return n3 = e6.authority && e6.path.length > 1 && "file" === e6.scheme ? `//${e6.authority}${e6.path}` : 47 === e6.path.charCodeAt(0) && (e6.path.charCodeAt(1) >= 65 && e6.path.charCodeAt(1) <= 90 || e6.path.charCodeAt(1) >= 97 && e6.path.charCodeAt(1) <= 122) && 58 === e6.path.charCodeAt(2) ? r3 ? e6.path.substr(1) : e6.path[1].toLowerCase() + e6.path.substr(2) : e6.path, t5 && (n3 = n3.replace(/\//g, "\\")), n3;
+ }
+ __name(m2, "m");
+ function y5(t6, e6) {
+ const r3 = e6 ? p3 : d2;
+ let n3 = "", { scheme: i3, authority: o3, path: s3, query: h3, fragment: c4 } = t6;
+ if (i3 && (n3 += i3, n3 += ":"), (o3 || "file" === i3) && (n3 += a2, n3 += a2), o3) {
+ let t7 = o3.indexOf("@");
+ if (-1 !== t7) {
+ const e7 = o3.substr(0, t7);
+ o3 = o3.substr(t7 + 1), t7 = e7.lastIndexOf(":"), -1 === t7 ? n3 += r3(e7, false, false) : (n3 += r3(e7.substr(0, t7), false, false), n3 += ":", n3 += r3(e7.substr(t7 + 1), false, true)), n3 += "@";
+ }
+ o3 = o3.toLowerCase(), t7 = o3.lastIndexOf(":"), -1 === t7 ? n3 += r3(o3, false, true) : (n3 += r3(o3.substr(0, t7), false, true), n3 += o3.substr(t7));
}
- function sj(a) {
- this.c = a;
+ if (s3) {
+ if (s3.length >= 3 && 47 === s3.charCodeAt(0) && 58 === s3.charCodeAt(2)) {
+ const t7 = s3.charCodeAt(1);
+ t7 >= 65 && t7 <= 90 && (s3 = `/${String.fromCharCode(t7 + 32)}:${s3.substr(3)}`);
+ } else if (s3.length >= 2 && 58 === s3.charCodeAt(1)) {
+ const t7 = s3.charCodeAt(0);
+ t7 >= 65 && t7 <= 90 && (s3 = `${String.fromCharCode(t7 + 32)}:${s3.substr(2)}`);
+ }
+ n3 += r3(s3, true, false);
}
- function sw(a) {
- this.a = a;
+ return h3 && (n3 += "?", n3 += r3(h3, false, false)), c4 && (n3 += "#", n3 += e6 ? c4 : d2(c4, false, false)), n3;
+ }
+ __name(y5, "y");
+ function v3(t6) {
+ try {
+ return decodeURIComponent(t6);
+ } catch {
+ return t6.length > 3 ? t6.substr(0, 3) + v3(t6.substr(3)) : t6;
+ }
+ }
+ __name(v3, "v");
+ const b2 = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
+ function C2(t6) {
+ return t6.match(b2) ? t6.replace(b2, (t7) => v3(t7)) : t6;
+ }
+ __name(C2, "C");
+ var A2 = r2(470);
+ const w3 = A2.posix || A2, x5 = "/";
+ var P2;
+ !function(t6) {
+ t6.joinPath = function(t7, ...e6) {
+ return t7.with({ path: w3.join(t7.path, ...e6) });
+ }, t6.resolvePath = function(t7, ...e6) {
+ let r3 = t7.path, n3 = false;
+ r3[0] !== x5 && (r3 = x5 + r3, n3 = true);
+ let i3 = w3.resolve(r3, ...e6);
+ return n3 && i3[0] === x5 && !t7.authority && (i3 = i3.substring(1)), t7.with({ path: i3 });
+ }, t6.dirname = function(t7) {
+ if (0 === t7.path.length || t7.path === x5) return t7;
+ let e6 = w3.dirname(t7.path);
+ return 1 === e6.length && 46 === e6.charCodeAt(0) && (e6 = ""), t7.with({ path: e6 });
+ }, t6.basename = function(t7) {
+ return w3.basename(t7.path);
+ }, t6.extname = function(t7) {
+ return w3.extname(t7.path);
+ };
+ }(P2 || (P2 = {}));
+ })(), LIB = n2;
+ })();
+ ({ URI: URI2, Utils: Utils2 } = LIB);
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/uri-utils.js
+ var UriUtils;
+ var init_uri_utils = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/uri-utils.js"() {
+ "use strict";
+ init_esm2();
+ (function(UriUtils2) {
+ UriUtils2.basename = Utils2.basename;
+ UriUtils2.dirname = Utils2.dirname;
+ UriUtils2.extname = Utils2.extname;
+ UriUtils2.joinPath = Utils2.joinPath;
+ UriUtils2.resolvePath = Utils2.resolvePath;
+ function equals(a2, b2) {
+ return (a2 === null || a2 === void 0 ? void 0 : a2.toString()) === (b2 === null || b2 === void 0 ? void 0 : b2.toString());
+ }
+ __name(equals, "equals");
+ UriUtils2.equals = equals;
+ function relative(from2, to) {
+ const fromPath = typeof from2 === "string" ? from2 : from2.path;
+ const toPath2 = typeof to === "string" ? to : to.path;
+ const fromParts = fromPath.split("/").filter((e3) => e3.length > 0);
+ const toParts = toPath2.split("/").filter((e3) => e3.length > 0);
+ let i2 = 0;
+ for (; i2 < fromParts.length; i2++) {
+ if (fromParts[i2] !== toParts[i2]) {
+ break;
}
- function fw(a) {
- this.a = a;
- }
- function xw(a) {
- this.a = a;
- }
- function Cw(a) {
- this.a = a;
- }
- function Qw(a) {
- this.a = a;
- }
- function Rw(a) {
- this.a = a;
- }
- function Xw(a) {
- this.a = a;
- }
- function Xv(a) {
- this.a = a;
- }
- function Sv(a) {
- this.a = a;
- }
- function eu(a) {
- this.a = a;
- }
- function Zx(a) {
- this.a = a;
- }
- function _x(a) {
- this.a = a;
- }
- function xy(a) {
- this.a = a;
- }
- function xB(a) {
- this.a = a;
- }
- function HB(a) {
- this.a = a;
- }
- function TB(a) {
- this.a = a;
- }
- function fC(a) {
- this.a = a;
- }
- function wB() {
- this.a = [];
- }
- function MBb(a, b) {
- a.a = b;
- }
- function w_b(a, b) {
- a.a = b;
- }
- function x_b(a, b) {
- a.b = b;
- }
- function YOb(a, b) {
- a.b = b;
- }
- function $Ob(a, b) {
- a.b = b;
- }
- function ZGb(a, b) {
- a.j = b;
- }
- function qNb(a, b) {
- a.g = b;
- }
- function rNb(a, b) {
- a.i = b;
- }
- function dRb(a, b) {
- a.c = b;
- }
- function eRb(a, b) {
- a.d = b;
- }
- function z_b(a, b) {
- a.d = b;
- }
- function y_b(a, b) {
- a.c = b;
- }
- function __b(a, b) {
- a.k = b;
- }
- function E0b(a, b) {
- a.c = b;
- }
- function njc(a, b) {
- a.c = b;
- }
- function mjc(a, b) {
- a.a = b;
- }
- function dFc(a, b) {
- a.a = b;
- }
- function eFc(a, b) {
- a.f = b;
- }
- function nOc(a, b) {
- a.a = b;
- }
- function oOc(a, b) {
- a.b = b;
- }
- function pOc(a, b) {
- a.d = b;
- }
- function qOc(a, b) {
- a.i = b;
- }
- function rOc(a, b) {
- a.o = b;
- }
- function sOc(a, b) {
- a.r = b;
- }
- function $Pc(a, b) {
- a.a = b;
- }
- function _Pc(a, b) {
- a.b = b;
- }
- function DVc(a, b) {
- a.e = b;
- }
- function EVc(a, b) {
- a.f = b;
- }
- function FVc(a, b) {
- a.g = b;
- }
- function SZc(a, b) {
- a.e = b;
- }
- function TZc(a, b) {
- a.f = b;
- }
- function c$c(a, b) {
- a.f = b;
- }
- function bJd(a, b) {
- a.n = b;
- }
- function A1d(a, b) {
- a.a = b;
- }
- function J1d(a, b) {
- a.a = b;
- }
- function B1d(a, b) {
- a.c = b;
- }
- function K1d(a, b) {
- a.c = b;
- }
- function L1d(a, b) {
- a.d = b;
- }
- function M1d(a, b) {
- a.e = b;
- }
- function N1d(a, b) {
- a.g = b;
- }
- function d2d(a, b) {
- a.a = b;
- }
- function e2d(a, b) {
- a.c = b;
+ }
+ const backPart = "../".repeat(fromParts.length - i2);
+ const toPart = toParts.slice(i2).join("/");
+ return backPart + toPart;
+ }
+ __name(relative, "relative");
+ UriUtils2.relative = relative;
+ })(UriUtils || (UriUtils = {}));
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/documents.js
+ var DocumentState, DefaultLangiumDocumentFactory, DefaultLangiumDocuments;
+ var init_documents = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/documents.js"() {
+ "use strict";
+ init_main2();
+ init_documents();
+ init_cancellation();
+ init_stream();
+ init_uri_utils();
+ (function(DocumentState2) {
+ DocumentState2[DocumentState2["Changed"] = 0] = "Changed";
+ DocumentState2[DocumentState2["Parsed"] = 1] = "Parsed";
+ DocumentState2[DocumentState2["IndexedContent"] = 2] = "IndexedContent";
+ DocumentState2[DocumentState2["ComputedScopes"] = 3] = "ComputedScopes";
+ DocumentState2[DocumentState2["Linked"] = 4] = "Linked";
+ DocumentState2[DocumentState2["IndexedReferences"] = 5] = "IndexedReferences";
+ DocumentState2[DocumentState2["Validated"] = 6] = "Validated";
+ })(DocumentState || (DocumentState = {}));
+ DefaultLangiumDocumentFactory = class {
+ static {
+ __name(this, "DefaultLangiumDocumentFactory");
+ }
+ constructor(services) {
+ this.serviceRegistry = services.ServiceRegistry;
+ this.textDocuments = services.workspace.TextDocuments;
+ this.fileSystemProvider = services.workspace.FileSystemProvider;
+ }
+ async fromUri(uri, cancellationToken = cancellation_exports.CancellationToken.None) {
+ const content = await this.fileSystemProvider.readFile(uri);
+ return this.createAsync(uri, content, cancellationToken);
+ }
+ fromTextDocument(textDocument, uri, cancellationToken) {
+ uri = uri !== null && uri !== void 0 ? uri : URI2.parse(textDocument.uri);
+ if (cancellationToken) {
+ return this.createAsync(uri, textDocument, cancellationToken);
+ } else {
+ return this.create(uri, textDocument);
+ }
+ }
+ fromString(text2, uri, cancellationToken) {
+ if (cancellationToken) {
+ return this.createAsync(uri, text2, cancellationToken);
+ } else {
+ return this.create(uri, text2);
+ }
+ }
+ fromModel(model, uri) {
+ return this.create(uri, { $model: model });
+ }
+ create(uri, content) {
+ if (typeof content === "string") {
+ const parseResult = this.parse(uri, content);
+ return this.createLangiumDocument(parseResult, uri, void 0, content);
+ } else if ("$model" in content) {
+ const parseResult = { value: content.$model, parserErrors: [], lexerErrors: [] };
+ return this.createLangiumDocument(parseResult, uri);
+ } else {
+ const parseResult = this.parse(uri, content.getText());
+ return this.createLangiumDocument(parseResult, uri, content);
+ }
+ }
+ async createAsync(uri, content, cancelToken) {
+ if (typeof content === "string") {
+ const parseResult = await this.parseAsync(uri, content, cancelToken);
+ return this.createLangiumDocument(parseResult, uri, void 0, content);
+ } else {
+ const parseResult = await this.parseAsync(uri, content.getText(), cancelToken);
+ return this.createLangiumDocument(parseResult, uri, content);
+ }
+ }
+ /**
+ * Create a LangiumDocument from a given parse result.
+ *
+ * A TextDocument is created on demand if it is not provided as argument here. Usually this
+ * should not be necessary because the main purpose of the TextDocument is to convert between
+ * text ranges and offsets, which is done solely in LSP request handling.
+ *
+ * With the introduction of {@link update} below this method is supposed to be mainly called
+ * during workspace initialization and on addition/recognition of new files, while changes in
+ * existing documents are processed via {@link update}.
+ */
+ createLangiumDocument(parseResult, uri, textDocument, text2) {
+ let document2;
+ if (textDocument) {
+ document2 = {
+ parseResult,
+ uri,
+ state: DocumentState.Parsed,
+ references: [],
+ textDocument
+ };
+ } else {
+ const textDocumentGetter = this.createTextDocumentGetter(uri, text2);
+ document2 = {
+ parseResult,
+ uri,
+ state: DocumentState.Parsed,
+ references: [],
+ get textDocument() {
+ return textDocumentGetter();
+ }
+ };
+ }
+ parseResult.value.$document = document2;
+ return document2;
+ }
+ async update(document2, cancellationToken) {
+ var _a, _b;
+ const oldText = (_a = document2.parseResult.value.$cstNode) === null || _a === void 0 ? void 0 : _a.root.fullText;
+ const textDocument = (_b = this.textDocuments) === null || _b === void 0 ? void 0 : _b.get(document2.uri.toString());
+ const text2 = textDocument ? textDocument.getText() : await this.fileSystemProvider.readFile(document2.uri);
+ if (textDocument) {
+ Object.defineProperty(document2, "textDocument", {
+ value: textDocument
+ });
+ } else {
+ const textDocumentGetter = this.createTextDocumentGetter(document2.uri, text2);
+ Object.defineProperty(document2, "textDocument", {
+ get: textDocumentGetter
+ });
+ }
+ if (oldText !== text2) {
+ document2.parseResult = await this.parseAsync(document2.uri, text2, cancellationToken);
+ document2.parseResult.value.$document = document2;
+ }
+ document2.state = DocumentState.Parsed;
+ return document2;
+ }
+ parse(uri, text2) {
+ const services = this.serviceRegistry.getServices(uri);
+ return services.parser.LangiumParser.parse(text2);
+ }
+ parseAsync(uri, text2, cancellationToken) {
+ const services = this.serviceRegistry.getServices(uri);
+ return services.parser.AsyncParser.parse(text2, cancellationToken);
+ }
+ createTextDocumentGetter(uri, text2) {
+ const serviceRegistry = this.serviceRegistry;
+ let textDoc = void 0;
+ return () => {
+ return textDoc !== null && textDoc !== void 0 ? textDoc : textDoc = TextDocument2.create(uri.toString(), serviceRegistry.getServices(uri).LanguageMetaData.languageId, 0, text2 !== null && text2 !== void 0 ? text2 : "");
+ };
+ }
+ };
+ DefaultLangiumDocuments = class {
+ static {
+ __name(this, "DefaultLangiumDocuments");
+ }
+ constructor(services) {
+ this.documentMap = /* @__PURE__ */ new Map();
+ this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;
+ }
+ get all() {
+ return stream(this.documentMap.values());
+ }
+ addDocument(document2) {
+ const uriString = document2.uri.toString();
+ if (this.documentMap.has(uriString)) {
+ throw new Error(`A document with the URI '${uriString}' is already present.`);
+ }
+ this.documentMap.set(uriString, document2);
+ }
+ getDocument(uri) {
+ const uriString = uri.toString();
+ return this.documentMap.get(uriString);
+ }
+ async getOrCreateDocument(uri, cancellationToken) {
+ let document2 = this.getDocument(uri);
+ if (document2) {
+ return document2;
+ }
+ document2 = await this.langiumDocumentFactory.fromUri(uri, cancellationToken);
+ this.addDocument(document2);
+ return document2;
+ }
+ createDocument(uri, text2, cancellationToken) {
+ if (cancellationToken) {
+ return this.langiumDocumentFactory.fromString(text2, uri, cancellationToken).then((document2) => {
+ this.addDocument(document2);
+ return document2;
+ });
+ } else {
+ const document2 = this.langiumDocumentFactory.fromString(text2, uri);
+ this.addDocument(document2);
+ return document2;
+ }
+ }
+ hasDocument(uri) {
+ return this.documentMap.has(uri.toString());
+ }
+ invalidateDocument(uri) {
+ const uriString = uri.toString();
+ const langiumDoc = this.documentMap.get(uriString);
+ if (langiumDoc) {
+ langiumDoc.state = DocumentState.Changed;
+ langiumDoc.precomputedScopes = void 0;
+ langiumDoc.references = [];
+ langiumDoc.diagnostics = void 0;
+ }
+ return langiumDoc;
+ }
+ deleteDocument(uri) {
+ const uriString = uri.toString();
+ const langiumDoc = this.documentMap.get(uriString);
+ if (langiumDoc) {
+ langiumDoc.state = DocumentState.Changed;
+ this.documentMap.delete(uriString);
+ }
+ return langiumDoc;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/linker.js
+ var DefaultLinker;
+ var init_linker = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/linker.js"() {
+ "use strict";
+ init_cancellation();
+ init_syntax_tree();
+ init_ast_utils();
+ init_promise_utils();
+ init_documents();
+ DefaultLinker = class {
+ static {
+ __name(this, "DefaultLinker");
+ }
+ constructor(services) {
+ this.reflection = services.shared.AstReflection;
+ this.langiumDocuments = () => services.shared.workspace.LangiumDocuments;
+ this.scopeProvider = services.references.ScopeProvider;
+ this.astNodeLocator = services.workspace.AstNodeLocator;
+ }
+ async link(document2, cancelToken = cancellation_exports.CancellationToken.None) {
+ for (const node2 of streamAst(document2.parseResult.value)) {
+ await interruptAndCheck(cancelToken);
+ streamReferences(node2).forEach((ref) => this.doLink(ref, document2));
+ }
+ }
+ doLink(refInfo, document2) {
+ const ref = refInfo.reference;
+ if (ref._ref === void 0) {
+ try {
+ const description = this.getCandidate(refInfo);
+ if (isLinkingError(description)) {
+ ref._ref = description;
+ } else {
+ ref._nodeDescription = description;
+ if (this.langiumDocuments().hasDocument(description.documentUri)) {
+ const linkedNode = this.loadAstNode(description);
+ ref._ref = linkedNode !== null && linkedNode !== void 0 ? linkedNode : this.createLinkingError(refInfo, description);
+ }
+ }
+ } catch (err) {
+ ref._ref = Object.assign(Object.assign({}, refInfo), { message: `An error occurred while resolving reference to '${ref.$refText}': ${err}` });
+ }
+ }
+ document2.references.push(ref);
+ }
+ unlink(document2) {
+ for (const ref of document2.references) {
+ delete ref._ref;
+ delete ref._nodeDescription;
+ }
+ document2.references = [];
+ }
+ getCandidate(refInfo) {
+ const scope = this.scopeProvider.getScope(refInfo);
+ const description = scope.getElement(refInfo.reference.$refText);
+ return description !== null && description !== void 0 ? description : this.createLinkingError(refInfo);
+ }
+ buildReference(node2, property2, refNode, refText) {
+ const linker = this;
+ const reference = {
+ $refNode: refNode,
+ $refText: refText,
+ get ref() {
+ var _a;
+ if (isAstNode(this._ref)) {
+ return this._ref;
+ } else if (isAstNodeDescription(this._nodeDescription)) {
+ const linkedNode = linker.loadAstNode(this._nodeDescription);
+ this._ref = linkedNode !== null && linkedNode !== void 0 ? linkedNode : linker.createLinkingError({ reference, container: node2, property: property2 }, this._nodeDescription);
+ } else if (this._ref === void 0) {
+ const refData = linker.getLinkedNode({ reference, container: node2, property: property2 });
+ if (refData.error && getDocument(node2).state < DocumentState.ComputedScopes) {
+ return void 0;
+ }
+ this._ref = (_a = refData.node) !== null && _a !== void 0 ? _a : refData.error;
+ this._nodeDescription = refData.descr;
+ }
+ return isAstNode(this._ref) ? this._ref : void 0;
+ },
+ get $nodeDescription() {
+ return this._nodeDescription;
+ },
+ get error() {
+ return isLinkingError(this._ref) ? this._ref : void 0;
}
- function f2d(a, b) {
- a.d = b;
+ };
+ return reference;
+ }
+ getLinkedNode(refInfo) {
+ try {
+ const description = this.getCandidate(refInfo);
+ if (isLinkingError(description)) {
+ return { error: description };
}
- function g2d(a, b) {
- a.e = b;
+ const linkedNode = this.loadAstNode(description);
+ if (linkedNode) {
+ return { node: linkedNode, descr: description };
+ } else {
+ return {
+ descr: description,
+ error: this.createLinkingError(refInfo, description)
+ };
}
- function h2d(a, b) {
- a.f = b;
+ } catch (err) {
+ return {
+ error: Object.assign(Object.assign({}, refInfo), { message: `An error occurred while resolving reference to '${refInfo.reference.$refText}': ${err}` })
+ };
+ }
+ }
+ loadAstNode(nodeDescription) {
+ if (nodeDescription.node) {
+ return nodeDescription.node;
+ }
+ const doc = this.langiumDocuments().getDocument(nodeDescription.documentUri);
+ if (!doc) {
+ return void 0;
+ }
+ return this.astNodeLocator.getAstNode(doc.parseResult.value, nodeDescription.path);
+ }
+ createLinkingError(refInfo, targetDescription) {
+ const document2 = getDocument(refInfo.container);
+ if (document2.state < DocumentState.ComputedScopes) {
+ console.warn(`Attempted reference resolution before document reached ComputedScopes state (${document2.uri}).`);
+ }
+ const referenceType = this.reflection.getReferenceType(refInfo);
+ return Object.assign(Object.assign({}, refInfo), { message: `Could not resolve reference to ${referenceType} named '${refInfo.reference.$refText}'.`, targetDescription });
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/name-provider.js
+ function isNamed(node2) {
+ return typeof node2.name === "string";
+ }
+ var DefaultNameProvider;
+ var init_name_provider = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/name-provider.js"() {
+ "use strict";
+ init_grammar_utils();
+ __name(isNamed, "isNamed");
+ DefaultNameProvider = class {
+ static {
+ __name(this, "DefaultNameProvider");
+ }
+ getName(node2) {
+ if (isNamed(node2)) {
+ return node2.name;
+ }
+ return void 0;
+ }
+ getNameNode(node2) {
+ return findNodeForProperty(node2.$cstNode, "name");
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/references.js
+ var DefaultReferences;
+ var init_references = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/references.js"() {
+ "use strict";
+ init_grammar_utils();
+ init_syntax_tree();
+ init_ast_utils();
+ init_cst_utils();
+ init_stream();
+ init_uri_utils();
+ DefaultReferences = class {
+ static {
+ __name(this, "DefaultReferences");
+ }
+ constructor(services) {
+ this.nameProvider = services.references.NameProvider;
+ this.index = services.shared.workspace.IndexManager;
+ this.nodeLocator = services.workspace.AstNodeLocator;
+ }
+ findDeclaration(sourceCstNode) {
+ if (sourceCstNode) {
+ const assignment = findAssignment(sourceCstNode);
+ const nodeElem = sourceCstNode.astNode;
+ if (assignment && nodeElem) {
+ const reference = nodeElem[assignment.feature];
+ if (isReference(reference)) {
+ return reference.ref;
+ } else if (Array.isArray(reference)) {
+ for (const ref of reference) {
+ if (isReference(ref) && ref.$refNode && ref.$refNode.offset <= sourceCstNode.offset && ref.$refNode.end >= sourceCstNode.end) {
+ return ref.ref;
+ }
+ }
+ }
+ }
+ if (nodeElem) {
+ const nameNode = this.nameProvider.getNameNode(nodeElem);
+ if (nameNode && (nameNode === sourceCstNode || isChildNode(sourceCstNode, nameNode))) {
+ return nodeElem;
+ }
}
- function i2d(a, b) {
- a.j = b;
+ }
+ return void 0;
+ }
+ findDeclarationNode(sourceCstNode) {
+ const astNode = this.findDeclaration(sourceCstNode);
+ if (astNode === null || astNode === void 0 ? void 0 : astNode.$cstNode) {
+ const targetNode = this.nameProvider.getNameNode(astNode);
+ return targetNode !== null && targetNode !== void 0 ? targetNode : astNode.$cstNode;
+ }
+ return void 0;
+ }
+ findReferences(targetNode, options3) {
+ const refs = [];
+ if (options3.includeDeclaration) {
+ const ref = this.getReferenceToSelf(targetNode);
+ if (ref) {
+ refs.push(ref);
}
- function Z8d(a, b) {
- a.a = b;
+ }
+ let indexReferences = this.index.findAllReferences(targetNode, this.nodeLocator.getAstNodePath(targetNode));
+ if (options3.documentUri) {
+ indexReferences = indexReferences.filter((ref) => UriUtils.equals(ref.sourceUri, options3.documentUri));
+ }
+ refs.push(...indexReferences);
+ return stream(refs);
+ }
+ getReferenceToSelf(targetNode) {
+ const nameNode = this.nameProvider.getNameNode(targetNode);
+ if (nameNode) {
+ const doc = getDocument(targetNode);
+ const path4 = this.nodeLocator.getAstNodePath(targetNode);
+ return {
+ sourceUri: doc.uri,
+ sourcePath: path4,
+ targetUri: doc.uri,
+ targetPath: path4,
+ segment: toDocumentSegment(nameNode),
+ local: true
+ };
+ }
+ return void 0;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/collections.js
+ var MultiMap, BiMap;
+ var init_collections = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/collections.js"() {
+ "use strict";
+ init_stream();
+ MultiMap = class {
+ static {
+ __name(this, "MultiMap");
+ }
+ constructor(elements3) {
+ this.map = /* @__PURE__ */ new Map();
+ if (elements3) {
+ for (const [key, value2] of elements3) {
+ this.add(key, value2);
+ }
+ }
+ }
+ /**
+ * The total number of values in the multimap.
+ */
+ get size() {
+ return Reduction.sum(stream(this.map.values()).map((a2) => a2.length));
+ }
+ /**
+ * Clear all entries in the multimap.
+ */
+ clear() {
+ this.map.clear();
+ }
+ /**
+ * Operates differently depending on whether a `value` is given:
+ * * With a value, this method deletes the specific key / value pair from the multimap.
+ * * Without a value, all values associated with the given key are deleted.
+ *
+ * @returns `true` if a value existed and has been removed, or `false` if the specified
+ * key / value does not exist.
+ */
+ delete(key, value2) {
+ if (value2 === void 0) {
+ return this.map.delete(key);
+ } else {
+ const values2 = this.map.get(key);
+ if (values2) {
+ const index = values2.indexOf(value2);
+ if (index >= 0) {
+ if (values2.length === 1) {
+ this.map.delete(key);
+ } else {
+ values2.splice(index, 1);
+ }
+ return true;
+ }
}
- function $8d(a, b) {
- a.b = b;
+ return false;
+ }
+ }
+ /**
+ * Returns an array of all values associated with the given key. If no value exists,
+ * an empty array is returned.
+ *
+ * _Note:_ The returned array is assumed not to be modified. Use the `set` method to add a
+ * value and `delete` to remove a value from the multimap.
+ */
+ get(key) {
+ var _a;
+ return (_a = this.map.get(key)) !== null && _a !== void 0 ? _a : [];
+ }
+ /**
+ * Operates differently depending on whether a `value` is given:
+ * * With a value, this method returns `true` if the specific key / value pair is present in the multimap.
+ * * Without a value, this method returns `true` if the given key is present in the multimap.
+ */
+ has(key, value2) {
+ if (value2 === void 0) {
+ return this.map.has(key);
+ } else {
+ const values2 = this.map.get(key);
+ if (values2) {
+ return values2.indexOf(value2) >= 0;
}
- function g9d(a, b) {
- a.a = b;
+ return false;
+ }
+ }
+ /**
+ * Add the given key / value pair to the multimap.
+ */
+ add(key, value2) {
+ if (this.map.has(key)) {
+ this.map.get(key).push(value2);
+ } else {
+ this.map.set(key, [value2]);
+ }
+ return this;
+ }
+ /**
+ * Add the given set of key / value pairs to the multimap.
+ */
+ addAll(key, values2) {
+ if (this.map.has(key)) {
+ this.map.get(key).push(...values2);
+ } else {
+ this.map.set(key, Array.from(values2));
+ }
+ return this;
+ }
+ /**
+ * Invokes the given callback function for every key / value pair in the multimap.
+ */
+ forEach(callbackfn) {
+ this.map.forEach((array4, key) => array4.forEach((value2) => callbackfn(value2, key, this)));
+ }
+ /**
+ * Returns an iterator of key, value pairs for every entry in the map.
+ */
+ [Symbol.iterator]() {
+ return this.entries().iterator();
+ }
+ /**
+ * Returns a stream of key, value pairs for every entry in the map.
+ */
+ entries() {
+ return stream(this.map.entries()).flatMap(([key, array4]) => array4.map((value2) => [key, value2]));
+ }
+ /**
+ * Returns a stream of keys in the map.
+ */
+ keys() {
+ return stream(this.map.keys());
+ }
+ /**
+ * Returns a stream of values in the map.
+ */
+ values() {
+ return stream(this.map.values()).flat();
+ }
+ /**
+ * Returns a stream of key, value set pairs for every key in the map.
+ */
+ entriesGroupedByKey() {
+ return stream(this.map.entries());
+ }
+ };
+ BiMap = class {
+ static {
+ __name(this, "BiMap");
+ }
+ get size() {
+ return this.map.size;
+ }
+ constructor(elements3) {
+ this.map = /* @__PURE__ */ new Map();
+ this.inverse = /* @__PURE__ */ new Map();
+ if (elements3) {
+ for (const [key, value2] of elements3) {
+ this.set(key, value2);
+ }
+ }
+ }
+ clear() {
+ this.map.clear();
+ this.inverse.clear();
+ }
+ set(key, value2) {
+ this.map.set(key, value2);
+ this.inverse.set(value2, key);
+ return this;
+ }
+ get(key) {
+ return this.map.get(key);
+ }
+ getKey(value2) {
+ return this.inverse.get(value2);
+ }
+ delete(key) {
+ const value2 = this.map.get(key);
+ if (value2 !== void 0) {
+ this.map.delete(key);
+ this.inverse.delete(value2);
+ return true;
+ }
+ return false;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/scope-computation.js
+ var DefaultScopeComputation;
+ var init_scope_computation = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/scope-computation.js"() {
+ "use strict";
+ init_cancellation();
+ init_ast_utils();
+ init_collections();
+ init_promise_utils();
+ DefaultScopeComputation = class {
+ static {
+ __name(this, "DefaultScopeComputation");
+ }
+ constructor(services) {
+ this.nameProvider = services.references.NameProvider;
+ this.descriptions = services.workspace.AstNodeDescriptionProvider;
+ }
+ async computeExports(document2, cancelToken = cancellation_exports.CancellationToken.None) {
+ return this.computeExportsForNode(document2.parseResult.value, document2, void 0, cancelToken);
+ }
+ /**
+ * Creates {@link AstNodeDescription AstNodeDescriptions} for the given {@link AstNode parentNode} and its children.
+ * The list of children to be considered is determined by the function parameter {@link children}.
+ * By default only the direct children of {@link parentNode} are visited, nested nodes are not exported.
+ *
+ * @param parentNode AST node to be exported, i.e., of which an {@link AstNodeDescription} shall be added to the returned list.
+ * @param document The document containing the AST node to be exported.
+ * @param children A function called with {@link parentNode} as single argument and returning an {@link Iterable} supplying the children to be visited, which must be directly or transitively contained in {@link parentNode}.
+ * @param cancelToken Indicates when to cancel the current operation.
+ * @throws `OperationCanceled` if a user action occurs during execution.
+ * @returns A list of {@link AstNodeDescription AstNodeDescriptions} to be published to index.
+ */
+ async computeExportsForNode(parentNode, document2, children2 = streamContents, cancelToken = cancellation_exports.CancellationToken.None) {
+ const exports2 = [];
+ this.exportNode(parentNode, exports2, document2);
+ for (const node2 of children2(parentNode)) {
+ await interruptAndCheck(cancelToken);
+ this.exportNode(node2, exports2, document2);
+ }
+ return exports2;
+ }
+ /**
+ * Add a single node to the list of exports if it has a name. Override this method to change how
+ * symbols are exported, e.g. by modifying their exported name.
+ */
+ exportNode(node2, exports2, document2) {
+ const name = this.nameProvider.getName(node2);
+ if (name) {
+ exports2.push(this.descriptions.createDescription(node2, name, document2));
+ }
+ }
+ async computeLocalScopes(document2, cancelToken = cancellation_exports.CancellationToken.None) {
+ const rootNode = document2.parseResult.value;
+ const scopes = new MultiMap();
+ for (const node2 of streamAllContents(rootNode)) {
+ await interruptAndCheck(cancelToken);
+ this.processNode(node2, document2, scopes);
+ }
+ return scopes;
+ }
+ /**
+ * Process a single node during scopes computation. The default implementation makes the node visible
+ * in the subtree of its container (if the node has a name). Override this method to change this,
+ * e.g. by increasing the visibility to a higher level in the AST.
+ */
+ processNode(node2, document2, scopes) {
+ const container2 = node2.$container;
+ if (container2) {
+ const name = this.nameProvider.getName(node2);
+ if (name) {
+ scopes.add(container2, this.descriptions.createDescription(node2, name, document2));
}
- function Cic(a) {
- a.b = a.a;
+ }
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/scope.js
+ var StreamScope, MapScope, EMPTY_SCOPE;
+ var init_scope = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/scope.js"() {
+ "use strict";
+ init_stream();
+ StreamScope = class {
+ static {
+ __name(this, "StreamScope");
+ }
+ constructor(elements3, outerScope, options3) {
+ var _a;
+ this.elements = elements3;
+ this.outerScope = outerScope;
+ this.caseInsensitive = (_a = options3 === null || options3 === void 0 ? void 0 : options3.caseInsensitive) !== null && _a !== void 0 ? _a : false;
+ }
+ getAllElements() {
+ if (this.outerScope) {
+ return this.elements.concat(this.outerScope.getAllElements());
+ } else {
+ return this.elements;
+ }
+ }
+ getElement(name) {
+ const local = this.caseInsensitive ? this.elements.find((e3) => e3.name.toLowerCase() === name.toLowerCase()) : this.elements.find((e3) => e3.name === name);
+ if (local) {
+ return local;
+ }
+ if (this.outerScope) {
+ return this.outerScope.getElement(name);
+ }
+ return void 0;
+ }
+ };
+ MapScope = class {
+ static {
+ __name(this, "MapScope");
+ }
+ constructor(elements3, outerScope, options3) {
+ var _a;
+ this.elements = /* @__PURE__ */ new Map();
+ this.caseInsensitive = (_a = options3 === null || options3 === void 0 ? void 0 : options3.caseInsensitive) !== null && _a !== void 0 ? _a : false;
+ for (const element3 of elements3) {
+ const name = this.caseInsensitive ? element3.name.toLowerCase() : element3.name;
+ this.elements.set(name, element3);
+ }
+ this.outerScope = outerScope;
+ }
+ getElement(name) {
+ const localName = this.caseInsensitive ? name.toLowerCase() : name;
+ const local = this.elements.get(localName);
+ if (local) {
+ return local;
+ }
+ if (this.outerScope) {
+ return this.outerScope.getElement(name);
+ }
+ return void 0;
+ }
+ getAllElements() {
+ let elementStream = stream(this.elements.values());
+ if (this.outerScope) {
+ elementStream = elementStream.concat(this.outerScope.getAllElements());
+ }
+ return elementStream;
+ }
+ };
+ EMPTY_SCOPE = {
+ getElement() {
+ return void 0;
+ },
+ getAllElements() {
+ return EMPTY_STREAM;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/caching.js
+ var DisposableCache, SimpleCache, ContextCache, DocumentCache, WorkspaceCache;
+ var init_caching = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/caching.js"() {
+ "use strict";
+ DisposableCache = class {
+ static {
+ __name(this, "DisposableCache");
+ }
+ constructor() {
+ this.toDispose = [];
+ this.isDisposed = false;
+ }
+ onDispose(disposable) {
+ this.toDispose.push(disposable);
+ }
+ dispose() {
+ this.throwIfDisposed();
+ this.clear();
+ this.isDisposed = true;
+ this.toDispose.forEach((disposable) => disposable.dispose());
+ }
+ throwIfDisposed() {
+ if (this.isDisposed) {
+ throw new Error("This cache has already been disposed");
+ }
+ }
+ };
+ SimpleCache = class extends DisposableCache {
+ static {
+ __name(this, "SimpleCache");
+ }
+ constructor() {
+ super(...arguments);
+ this.cache = /* @__PURE__ */ new Map();
+ }
+ has(key) {
+ this.throwIfDisposed();
+ return this.cache.has(key);
+ }
+ set(key, value2) {
+ this.throwIfDisposed();
+ this.cache.set(key, value2);
+ }
+ get(key, provider) {
+ this.throwIfDisposed();
+ if (this.cache.has(key)) {
+ return this.cache.get(key);
+ } else if (provider) {
+ const value2 = provider();
+ this.cache.set(key, value2);
+ return value2;
+ } else {
+ return void 0;
+ }
+ }
+ delete(key) {
+ this.throwIfDisposed();
+ return this.cache.delete(key);
+ }
+ clear() {
+ this.throwIfDisposed();
+ this.cache.clear();
+ }
+ };
+ ContextCache = class extends DisposableCache {
+ static {
+ __name(this, "ContextCache");
+ }
+ constructor(converter) {
+ super();
+ this.cache = /* @__PURE__ */ new Map();
+ this.converter = converter !== null && converter !== void 0 ? converter : (value2) => value2;
+ }
+ has(contextKey, key) {
+ this.throwIfDisposed();
+ return this.cacheForContext(contextKey).has(key);
+ }
+ set(contextKey, key, value2) {
+ this.throwIfDisposed();
+ this.cacheForContext(contextKey).set(key, value2);
+ }
+ get(contextKey, key, provider) {
+ this.throwIfDisposed();
+ const contextCache = this.cacheForContext(contextKey);
+ if (contextCache.has(key)) {
+ return contextCache.get(key);
+ } else if (provider) {
+ const value2 = provider();
+ contextCache.set(key, value2);
+ return value2;
+ } else {
+ return void 0;
+ }
+ }
+ delete(contextKey, key) {
+ this.throwIfDisposed();
+ return this.cacheForContext(contextKey).delete(key);
+ }
+ clear(contextKey) {
+ this.throwIfDisposed();
+ if (contextKey) {
+ const mapKey = this.converter(contextKey);
+ this.cache.delete(mapKey);
+ } else {
+ this.cache.clear();
+ }
+ }
+ cacheForContext(contextKey) {
+ const mapKey = this.converter(contextKey);
+ let documentCache = this.cache.get(mapKey);
+ if (!documentCache) {
+ documentCache = /* @__PURE__ */ new Map();
+ this.cache.set(mapKey, documentCache);
+ }
+ return documentCache;
+ }
+ };
+ DocumentCache = class extends ContextCache {
+ static {
+ __name(this, "DocumentCache");
+ }
+ constructor(sharedServices) {
+ super((uri) => uri.toString());
+ this.onDispose(sharedServices.workspace.DocumentBuilder.onUpdate((changed, deleted) => {
+ const allUris = changed.concat(deleted);
+ for (const uri of allUris) {
+ this.clear(uri);
}
- function Dg(a) {
- a.c = a.d.d;
+ }));
+ }
+ };
+ WorkspaceCache = class extends SimpleCache {
+ static {
+ __name(this, "WorkspaceCache");
+ }
+ constructor(sharedServices) {
+ super();
+ this.onDispose(sharedServices.workspace.DocumentBuilder.onUpdate(() => {
+ this.clear();
+ }));
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/scope-provider.js
+ var DefaultScopeProvider;
+ var init_scope_provider = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/scope-provider.js"() {
+ "use strict";
+ init_scope();
+ init_ast_utils();
+ init_stream();
+ init_caching();
+ DefaultScopeProvider = class {
+ static {
+ __name(this, "DefaultScopeProvider");
+ }
+ constructor(services) {
+ this.reflection = services.shared.AstReflection;
+ this.nameProvider = services.references.NameProvider;
+ this.descriptions = services.workspace.AstNodeDescriptionProvider;
+ this.indexManager = services.shared.workspace.IndexManager;
+ this.globalScopeCache = new WorkspaceCache(services.shared);
+ }
+ getScope(context) {
+ const scopes = [];
+ const referenceType = this.reflection.getReferenceType(context);
+ const precomputed = getDocument(context.container).precomputedScopes;
+ if (precomputed) {
+ let currentNode = context.container;
+ do {
+ const allDescriptions = precomputed.get(currentNode);
+ if (allDescriptions.length > 0) {
+ scopes.push(stream(allDescriptions).filter((desc) => this.reflection.isSubtype(desc.type, referenceType)));
+ }
+ currentNode = currentNode.$container;
+ } while (currentNode);
+ }
+ let result = this.getGlobalScope(referenceType, context);
+ for (let i2 = scopes.length - 1; i2 >= 0; i2--) {
+ result = this.createScope(scopes[i2], result);
+ }
+ return result;
+ }
+ /**
+ * Create a scope for the given collection of AST node descriptions.
+ */
+ createScope(elements3, outerScope, options3) {
+ return new StreamScope(stream(elements3), outerScope, options3);
+ }
+ /**
+ * Create a scope for the given collection of AST nodes, which need to be transformed into respective
+ * descriptions first. This is done using the `NameProvider` and `AstNodeDescriptionProvider` services.
+ */
+ createScopeForNodes(elements3, outerScope, options3) {
+ const s2 = stream(elements3).map((e3) => {
+ const name = this.nameProvider.getName(e3);
+ if (name) {
+ return this.descriptions.createDescription(e3, name);
}
- function vib(a) {
- this.d = a;
+ return void 0;
+ }).nonNullable();
+ return new StreamScope(s2, outerScope, options3);
+ }
+ /**
+ * Create a global scope filtered for the given reference type.
+ */
+ getGlobalScope(referenceType, _context) {
+ return this.globalScopeCache.get(referenceType, () => new MapScope(this.indexManager.allElements(referenceType)));
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/serializer/json-serializer.js
+ function isAstNodeWithComment(node2) {
+ return typeof node2.$comment === "string";
+ }
+ function isIntermediateReference(obj) {
+ return typeof obj === "object" && !!obj && ("$ref" in obj || "$error" in obj);
+ }
+ var DefaultJsonSerializer;
+ var init_json_serializer = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/serializer/json-serializer.js"() {
+ "use strict";
+ init_esm2();
+ init_syntax_tree();
+ init_ast_utils();
+ init_grammar_utils();
+ __name(isAstNodeWithComment, "isAstNodeWithComment");
+ __name(isIntermediateReference, "isIntermediateReference");
+ DefaultJsonSerializer = class {
+ static {
+ __name(this, "DefaultJsonSerializer");
+ }
+ constructor(services) {
+ this.ignoreProperties = /* @__PURE__ */ new Set(["$container", "$containerProperty", "$containerIndex", "$document", "$cstNode"]);
+ this.langiumDocuments = services.shared.workspace.LangiumDocuments;
+ this.astNodeLocator = services.workspace.AstNodeLocator;
+ this.nameProvider = services.references.NameProvider;
+ this.commentProvider = services.documentation.CommentProvider;
+ }
+ serialize(node2, options3 = {}) {
+ const specificReplacer = options3 === null || options3 === void 0 ? void 0 : options3.replacer;
+ const defaultReplacer = /* @__PURE__ */ __name((key, value2) => this.replacer(key, value2, options3), "defaultReplacer");
+ const replacer = specificReplacer ? (key, value2) => specificReplacer(key, value2, defaultReplacer) : defaultReplacer;
+ try {
+ this.currentDocument = getDocument(node2);
+ return JSON.stringify(node2, replacer, options3 === null || options3 === void 0 ? void 0 : options3.space);
+ } finally {
+ this.currentDocument = void 0;
+ }
+ }
+ deserialize(content, options3 = {}) {
+ const root4 = JSON.parse(content);
+ this.linkNode(root4, root4, options3);
+ return root4;
+ }
+ replacer(key, value2, { refText, sourceText, textRegions, comments, uriConverter }) {
+ var _a, _b, _c, _d;
+ if (this.ignoreProperties.has(key)) {
+ return void 0;
+ } else if (isReference(value2)) {
+ const refValue = value2.ref;
+ const $refText = refText ? value2.$refText : void 0;
+ if (refValue) {
+ const targetDocument = getDocument(refValue);
+ let targetUri = "";
+ if (this.currentDocument && this.currentDocument !== targetDocument) {
+ if (uriConverter) {
+ targetUri = uriConverter(targetDocument.uri, value2);
+ } else {
+ targetUri = targetDocument.uri.toString();
+ }
+ }
+ const targetPath = this.astNodeLocator.getAstNodePath(refValue);
+ return {
+ $ref: `${targetUri}#${targetPath}`,
+ $refText
+ };
+ } else {
+ return {
+ $error: (_b = (_a = value2.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : "Could not resolve reference",
+ $refText
+ };
}
- function eib(a) {
- this.a = a;
+ } else if (isAstNode(value2)) {
+ let astNode = void 0;
+ if (textRegions) {
+ astNode = this.addAstNodeRegionWithAssignmentsTo(Object.assign({}, value2));
+ if ((!key || value2.$document) && (astNode === null || astNode === void 0 ? void 0 : astNode.$textRegion)) {
+ astNode.$textRegion.documentURI = (_c = this.currentDocument) === null || _c === void 0 ? void 0 : _c.uri.toString();
+ }
}
- function Pib(a) {
- this.a = a;
+ if (sourceText && !key) {
+ astNode !== null && astNode !== void 0 ? astNode : astNode = Object.assign({}, value2);
+ astNode.$sourceText = (_d = value2.$cstNode) === null || _d === void 0 ? void 0 : _d.text;
}
- function Vib(a) {
- this.a = a;
+ if (comments) {
+ astNode !== null && astNode !== void 0 ? astNode : astNode = Object.assign({}, value2);
+ const comment2 = this.commentProvider.getComment(value2);
+ if (comment2) {
+ astNode.$comment = comment2.replace(/\r/g, "");
+ }
}
- function $ib(a) {
- this.a = a;
+ return astNode !== null && astNode !== void 0 ? astNode : value2;
+ } else {
+ return value2;
+ }
+ }
+ addAstNodeRegionWithAssignmentsTo(node2) {
+ const createDocumentSegment = /* @__PURE__ */ __name((cstNode) => ({
+ offset: cstNode.offset,
+ end: cstNode.end,
+ length: cstNode.length,
+ range: cstNode.range
+ }), "createDocumentSegment");
+ if (node2.$cstNode) {
+ const textRegion = node2.$textRegion = createDocumentSegment(node2.$cstNode);
+ const assignments = textRegion.assignments = {};
+ Object.keys(node2).filter((key) => !key.startsWith("$")).forEach((key) => {
+ const propertyAssignments = findNodesForProperty(node2.$cstNode, key).map(createDocumentSegment);
+ if (propertyAssignments.length !== 0) {
+ assignments[key] = propertyAssignments;
+ }
+ });
+ return node2;
+ }
+ return void 0;
+ }
+ linkNode(node2, root4, options3, container2, containerProperty, containerIndex) {
+ for (const [propertyName, item] of Object.entries(node2)) {
+ if (Array.isArray(item)) {
+ for (let index = 0; index < item.length; index++) {
+ const element3 = item[index];
+ if (isIntermediateReference(element3)) {
+ item[index] = this.reviveReference(node2, propertyName, root4, element3, options3);
+ } else if (isAstNode(element3)) {
+ this.linkNode(element3, root4, options3, node2, propertyName, index);
+ }
+ }
+ } else if (isIntermediateReference(item)) {
+ node2[propertyName] = this.reviveReference(node2, propertyName, root4, item, options3);
+ } else if (isAstNode(item)) {
+ this.linkNode(item, root4, options3, node2, propertyName);
+ }
+ }
+ const mutable = node2;
+ mutable.$container = container2;
+ mutable.$containerProperty = containerProperty;
+ mutable.$containerIndex = containerIndex;
+ }
+ reviveReference(container2, property2, root4, reference, options3) {
+ let refText = reference.$refText;
+ let error3 = reference.$error;
+ if (reference.$ref) {
+ const ref = this.getRefNode(root4, reference.$ref, options3.uriConverter);
+ if (isAstNode(ref)) {
+ if (!refText) {
+ refText = this.nameProvider.getName(ref);
+ }
+ return {
+ $refText: refText !== null && refText !== void 0 ? refText : "",
+ ref
+ };
+ } else {
+ error3 = ref;
}
- function mcb(a) {
- this.a = a;
+ }
+ if (error3) {
+ const ref = {
+ $refText: refText !== null && refText !== void 0 ? refText : ""
+ };
+ ref.error = {
+ container: container2,
+ property: property2,
+ message: error3,
+ reference: ref
+ };
+ return ref;
+ } else {
+ return void 0;
+ }
+ }
+ getRefNode(root4, uri, uriConverter) {
+ try {
+ const fragmentIndex = uri.indexOf("#");
+ if (fragmentIndex === 0) {
+ const node3 = this.astNodeLocator.getAstNode(root4, uri.substring(1));
+ if (!node3) {
+ return "Could not resolve path: " + uri;
+ }
+ return node3;
}
- function Mcb(a) {
- this.a = a;
+ if (fragmentIndex < 0) {
+ const documentUri2 = uriConverter ? uriConverter(uri) : URI2.parse(uri);
+ const document3 = this.langiumDocuments.getDocument(documentUri2);
+ if (!document3) {
+ return "Could not find document for URI: " + uri;
+ }
+ return document3.parseResult.value;
}
- function Xcb(a) {
- this.a = a;
+ const documentUri = uriConverter ? uriConverter(uri.substring(0, fragmentIndex)) : URI2.parse(uri.substring(0, fragmentIndex));
+ const document2 = this.langiumDocuments.getDocument(documentUri);
+ if (!document2) {
+ return "Could not find document for URI: " + uri;
}
- function Ndb(a) {
- this.a = a;
+ if (fragmentIndex === uri.length - 1) {
+ return document2.parseResult.value;
}
- function _db(a) {
- this.a = a;
+ const node2 = this.astNodeLocator.getAstNode(document2.parseResult.value, uri.substring(fragmentIndex + 1));
+ if (!node2) {
+ return "Could not resolve URI: " + uri;
}
- function teb(a) {
- this.a = a;
+ return node2;
+ } catch (err) {
+ return String(err);
+ }
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/service-registry.js
+ var DefaultServiceRegistry;
+ var init_service_registry = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/service-registry.js"() {
+ "use strict";
+ init_uri_utils();
+ DefaultServiceRegistry = class {
+ static {
+ __name(this, "DefaultServiceRegistry");
+ }
+ register(language) {
+ if (!this.singleton && !this.map) {
+ this.singleton = language;
+ return;
+ }
+ if (!this.map) {
+ this.map = {};
+ if (this.singleton) {
+ for (const ext of this.singleton.LanguageMetaData.fileExtensions) {
+ this.map[ext] = this.singleton;
+ }
+ this.singleton = void 0;
}
- function Qeb(a) {
- this.a = a;
+ }
+ for (const ext of language.LanguageMetaData.fileExtensions) {
+ if (this.map[ext] !== void 0 && this.map[ext] !== language) {
+ console.warn(`The file extension ${ext} is used by multiple languages. It is now assigned to '${language.LanguageMetaData.languageId}'.`);
}
- function djb(a) {
- this.a = a;
+ this.map[ext] = language;
+ }
+ }
+ getServices(uri) {
+ if (this.singleton !== void 0) {
+ return this.singleton;
+ }
+ if (this.map === void 0) {
+ throw new Error("The service registry is empty. Use `register` to register the services of a language.");
+ }
+ const ext = UriUtils.extname(uri);
+ const services = this.map[ext];
+ if (!services) {
+ throw new Error(`The service registry contains no services for the extension '${ext}'.`);
+ }
+ return services;
+ }
+ get all() {
+ if (this.singleton !== void 0) {
+ return [this.singleton];
+ }
+ if (this.map !== void 0) {
+ return Object.values(this.map);
+ }
+ return [];
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/validation/validation-registry.js
+ function diagnosticData(code) {
+ return { code };
+ }
+ var ValidationCategory, ValidationRegistry;
+ var init_validation_registry = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/validation/validation-registry.js"() {
+ "use strict";
+ init_collections();
+ init_promise_utils();
+ init_stream();
+ __name(diagnosticData, "diagnosticData");
+ (function(ValidationCategory2) {
+ ValidationCategory2.all = ["fast", "slow", "built-in"];
+ })(ValidationCategory || (ValidationCategory = {}));
+ ValidationRegistry = class {
+ static {
+ __name(this, "ValidationRegistry");
+ }
+ constructor(services) {
+ this.entries = new MultiMap();
+ this.reflection = services.shared.AstReflection;
+ }
+ /**
+ * Register a set of validation checks. Each value in the record can be either a single validation check (i.e. a function)
+ * or an array of validation checks.
+ *
+ * @param checksRecord Set of validation checks to register.
+ * @param category Optional category for the validation checks (defaults to `'fast'`).
+ * @param thisObj Optional object to be used as `this` when calling the validation check functions.
+ */
+ register(checksRecord, thisObj = this, category = "fast") {
+ if (category === "built-in") {
+ throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");
+ }
+ for (const [type3, ch] of Object.entries(checksRecord)) {
+ const callbacks = ch;
+ if (Array.isArray(callbacks)) {
+ for (const check of callbacks) {
+ const entry = {
+ check: this.wrapValidationException(check, thisObj),
+ category
+ };
+ this.addEntry(type3, entry);
+ }
+ } else if (typeof callbacks === "function") {
+ const entry = {
+ check: this.wrapValidationException(callbacks, thisObj),
+ category
+ };
+ this.addEntry(type3, entry);
}
- function Gjb(a) {
- this.a = a;
+ }
+ }
+ wrapValidationException(check, thisObj) {
+ return async (node2, accept, cancelToken) => {
+ try {
+ await check.call(thisObj, node2, accept, cancelToken);
+ } catch (err) {
+ if (isOperationCancelled(err)) {
+ throw err;
+ }
+ console.error("An error occurred during validation:", err);
+ const message = err instanceof Error ? err.message : String(err);
+ if (err instanceof Error && err.stack) {
+ console.error(err.stack);
+ }
+ accept("error", "An error occurred during validation: " + message, { node: node2 });
}
- function Njb(a) {
- this.a = a;
+ };
+ }
+ addEntry(type3, entry) {
+ if (type3 === "AstNode") {
+ this.entries.add("AstNode", entry);
+ return;
+ }
+ for (const subtype of this.reflection.getAllSubTypes(type3)) {
+ this.entries.add(subtype, entry);
+ }
+ }
+ getChecks(type3, categories) {
+ let checks = stream(this.entries.get(type3)).concat(this.entries.get("AstNode"));
+ if (categories) {
+ checks = checks.filter((entry) => categories.includes(entry.category));
+ }
+ return checks.map((entry) => entry.check);
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/validation/document-validator.js
+ function getDiagnosticRange(info2) {
+ if (info2.range) {
+ return info2.range;
+ }
+ let cstNode;
+ if (typeof info2.property === "string") {
+ cstNode = findNodeForProperty(info2.node.$cstNode, info2.property, info2.index);
+ } else if (typeof info2.keyword === "string") {
+ cstNode = findNodeForKeyword(info2.node.$cstNode, info2.keyword, info2.index);
+ }
+ cstNode !== null && cstNode !== void 0 ? cstNode : cstNode = info2.node.$cstNode;
+ if (!cstNode) {
+ return {
+ start: { line: 0, character: 0 },
+ end: { line: 0, character: 0 }
+ };
+ }
+ return cstNode.range;
+ }
+ function toDiagnosticSeverity(severity) {
+ switch (severity) {
+ case "error":
+ return 1;
+ case "warning":
+ return 2;
+ case "info":
+ return 3;
+ case "hint":
+ return 4;
+ default:
+ throw new Error("Invalid diagnostic severity: " + severity);
+ }
+ }
+ var DefaultDocumentValidator, DocumentValidator;
+ var init_document_validator = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/validation/document-validator.js"() {
+ "use strict";
+ init_cancellation();
+ init_grammar_utils();
+ init_ast_utils();
+ init_cst_utils();
+ init_promise_utils();
+ init_validation_registry();
+ DefaultDocumentValidator = class {
+ static {
+ __name(this, "DefaultDocumentValidator");
+ }
+ constructor(services) {
+ this.validationRegistry = services.validation.ValidationRegistry;
+ this.metadata = services.LanguageMetaData;
+ }
+ async validateDocument(document2, options3 = {}, cancelToken = cancellation_exports.CancellationToken.None) {
+ const parseResult = document2.parseResult;
+ const diagnostics = [];
+ await interruptAndCheck(cancelToken);
+ if (!options3.categories || options3.categories.includes("built-in")) {
+ this.processLexingErrors(parseResult, diagnostics, options3);
+ if (options3.stopAfterLexingErrors && diagnostics.some((d2) => {
+ var _a;
+ return ((_a = d2.data) === null || _a === void 0 ? void 0 : _a.code) === DocumentValidator.LexingError;
+ })) {
+ return diagnostics;
+ }
+ this.processParsingErrors(parseResult, diagnostics, options3);
+ if (options3.stopAfterParsingErrors && diagnostics.some((d2) => {
+ var _a;
+ return ((_a = d2.data) === null || _a === void 0 ? void 0 : _a.code) === DocumentValidator.ParsingError;
+ })) {
+ return diagnostics;
+ }
+ this.processLinkingErrors(document2, diagnostics, options3);
+ if (options3.stopAfterLinkingErrors && diagnostics.some((d2) => {
+ var _a;
+ return ((_a = d2.data) === null || _a === void 0 ? void 0 : _a.code) === DocumentValidator.LinkingError;
+ })) {
+ return diagnostics;
}
- function Bjb(a) {
- this.b = a;
+ }
+ try {
+ diagnostics.push(...await this.validateAst(parseResult.value, options3, cancelToken));
+ } catch (err) {
+ if (isOperationCancelled(err)) {
+ throw err;
}
- function lnb(a) {
- this.b = a;
+ console.error("An error occurred during validation:", err);
+ }
+ await interruptAndCheck(cancelToken);
+ return diagnostics;
+ }
+ processLexingErrors(parseResult, diagnostics, _options) {
+ for (const lexerError of parseResult.lexerErrors) {
+ const diagnostic = {
+ severity: toDiagnosticSeverity("error"),
+ range: {
+ start: {
+ line: lexerError.line - 1,
+ character: lexerError.column - 1
+ },
+ end: {
+ line: lexerError.line - 1,
+ character: lexerError.column + lexerError.length - 1
+ }
+ },
+ message: lexerError.message,
+ data: diagnosticData(DocumentValidator.LexingError),
+ source: this.getSource()
+ };
+ diagnostics.push(diagnostic);
+ }
+ }
+ processParsingErrors(parseResult, diagnostics, _options) {
+ for (const parserError of parseResult.parserErrors) {
+ let range3 = void 0;
+ if (isNaN(parserError.token.startOffset)) {
+ if ("previousToken" in parserError) {
+ const token2 = parserError.previousToken;
+ if (!isNaN(token2.startOffset)) {
+ const position5 = { line: token2.endLine - 1, character: token2.endColumn };
+ range3 = { start: position5, end: position5 };
+ } else {
+ const position5 = { line: 0, character: 0 };
+ range3 = { start: position5, end: position5 };
+ }
+ }
+ } else {
+ range3 = tokenToRange(parserError.token);
+ }
+ if (range3) {
+ const diagnostic = {
+ severity: toDiagnosticSeverity("error"),
+ range: range3,
+ message: parserError.message,
+ data: diagnosticData(DocumentValidator.ParsingError),
+ source: this.getSource()
+ };
+ diagnostics.push(diagnostic);
}
- function Dnb(a) {
- this.b = a;
+ }
+ }
+ processLinkingErrors(document2, diagnostics, _options) {
+ for (const reference of document2.references) {
+ const linkingError = reference.error;
+ if (linkingError) {
+ const info2 = {
+ node: linkingError.container,
+ property: linkingError.property,
+ index: linkingError.index,
+ data: {
+ code: DocumentValidator.LinkingError,
+ containerType: linkingError.container.$type,
+ property: linkingError.property,
+ refText: linkingError.reference.$refText
+ }
+ };
+ diagnostics.push(this.toDiagnostic("error", linkingError.message, info2));
}
- function anb(a) {
- this.a = a;
+ }
+ }
+ async validateAst(rootNode, options3, cancelToken = cancellation_exports.CancellationToken.None) {
+ const validationItems = [];
+ const acceptor = /* @__PURE__ */ __name((severity, message, info2) => {
+ validationItems.push(this.toDiagnostic(severity, message, info2));
+ }, "acceptor");
+ await Promise.all(streamAst(rootNode).map(async (node2) => {
+ await interruptAndCheck(cancelToken);
+ const checks = this.validationRegistry.getChecks(node2.$type, options3.categories);
+ for (const check of checks) {
+ await check(node2, acceptor, cancelToken);
}
- function Mob(a) {
- this.a = a;
+ }));
+ return validationItems;
+ }
+ toDiagnostic(severity, message, info2) {
+ return {
+ message,
+ range: getDiagnosticRange(info2),
+ severity: toDiagnosticSeverity(severity),
+ code: info2.code,
+ codeDescription: info2.codeDescription,
+ tags: info2.tags,
+ relatedInformation: info2.relatedInformation,
+ data: info2.data,
+ source: this.getSource()
+ };
+ }
+ getSource() {
+ return this.metadata.languageId;
+ }
+ };
+ __name(getDiagnosticRange, "getDiagnosticRange");
+ __name(toDiagnosticSeverity, "toDiagnosticSeverity");
+ (function(DocumentValidator2) {
+ DocumentValidator2.LexingError = "lexing-error";
+ DocumentValidator2.ParsingError = "parsing-error";
+ DocumentValidator2.LinkingError = "linking-error";
+ })(DocumentValidator || (DocumentValidator = {}));
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/ast-descriptions.js
+ var DefaultAstNodeDescriptionProvider, DefaultReferenceDescriptionProvider;
+ var init_ast_descriptions = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/ast-descriptions.js"() {
+ "use strict";
+ init_cancellation();
+ init_syntax_tree();
+ init_ast_utils();
+ init_cst_utils();
+ init_promise_utils();
+ init_uri_utils();
+ DefaultAstNodeDescriptionProvider = class {
+ static {
+ __name(this, "DefaultAstNodeDescriptionProvider");
+ }
+ constructor(services) {
+ this.astNodeLocator = services.workspace.AstNodeLocator;
+ this.nameProvider = services.references.NameProvider;
+ }
+ createDescription(node2, name, document2 = getDocument(node2)) {
+ name !== null && name !== void 0 ? name : name = this.nameProvider.getName(node2);
+ const path4 = this.astNodeLocator.getAstNodePath(node2);
+ if (!name) {
+ throw new Error(`Node at path ${path4} has no name.`);
+ }
+ let nameNodeSegment;
+ const nameSegmentGetter = /* @__PURE__ */ __name(() => {
+ var _a;
+ return nameNodeSegment !== null && nameNodeSegment !== void 0 ? nameNodeSegment : nameNodeSegment = toDocumentSegment((_a = this.nameProvider.getNameNode(node2)) !== null && _a !== void 0 ? _a : node2.$cstNode);
+ }, "nameSegmentGetter");
+ return {
+ node: node2,
+ name,
+ get nameSegment() {
+ return nameSegmentGetter();
+ },
+ selectionSegment: toDocumentSegment(node2.$cstNode),
+ type: node2.$type,
+ documentUri: document2.uri,
+ path: path4
+ };
+ }
+ };
+ DefaultReferenceDescriptionProvider = class {
+ static {
+ __name(this, "DefaultReferenceDescriptionProvider");
+ }
+ constructor(services) {
+ this.nodeLocator = services.workspace.AstNodeLocator;
+ }
+ async createDescriptions(document2, cancelToken = cancellation_exports.CancellationToken.None) {
+ const descr = [];
+ const rootNode = document2.parseResult.value;
+ for (const astNode of streamAst(rootNode)) {
+ await interruptAndCheck(cancelToken);
+ streamReferences(astNode).filter((refInfo) => !isLinkingError(refInfo)).forEach((refInfo) => {
+ const description = this.createDescription(refInfo);
+ if (description) {
+ descr.push(description);
+ }
+ });
+ }
+ return descr;
+ }
+ createDescription(refInfo) {
+ const targetNodeDescr = refInfo.reference.$nodeDescription;
+ const refCstNode = refInfo.reference.$refNode;
+ if (!targetNodeDescr || !refCstNode) {
+ return void 0;
+ }
+ const docUri = getDocument(refInfo.container).uri;
+ return {
+ sourceUri: docUri,
+ sourcePath: this.nodeLocator.getAstNodePath(refInfo.container),
+ targetUri: targetNodeDescr.documentUri,
+ targetPath: targetNodeDescr.path,
+ segment: toDocumentSegment(refCstNode),
+ local: UriUtils.equals(targetNodeDescr.documentUri, docUri)
+ };
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/ast-node-locator.js
+ var DefaultAstNodeLocator;
+ var init_ast_node_locator = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/ast-node-locator.js"() {
+ "use strict";
+ DefaultAstNodeLocator = class {
+ static {
+ __name(this, "DefaultAstNodeLocator");
+ }
+ constructor() {
+ this.segmentSeparator = "/";
+ this.indexSeparator = "@";
+ }
+ getAstNodePath(node2) {
+ if (node2.$container) {
+ const containerPath = this.getAstNodePath(node2.$container);
+ const newSegment = this.getPathSegment(node2);
+ const nodePath = containerPath + this.segmentSeparator + newSegment;
+ return nodePath;
+ }
+ return "";
+ }
+ getPathSegment({ $containerProperty, $containerIndex }) {
+ if (!$containerProperty) {
+ throw new Error("Missing '$containerProperty' in AST node.");
+ }
+ if ($containerIndex !== void 0) {
+ return $containerProperty + this.indexSeparator + $containerIndex;
+ }
+ return $containerProperty;
+ }
+ getAstNode(node2, path4) {
+ const segments = path4.split(this.segmentSeparator);
+ return segments.reduce((previousValue, currentValue) => {
+ if (!previousValue || currentValue.length === 0) {
+ return previousValue;
}
- function Rob(a) {
- this.a = a;
+ const propertyIndex = currentValue.indexOf(this.indexSeparator);
+ if (propertyIndex > 0) {
+ const property2 = currentValue.substring(0, propertyIndex);
+ const arrayIndex = parseInt(currentValue.substring(propertyIndex + 1));
+ const array4 = previousValue[property2];
+ return array4 === null || array4 === void 0 ? void 0 : array4[arrayIndex];
}
- function iob(a) {
- this.c = a;
+ return previousValue[currentValue];
+ }, node2);
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/configuration.js
+ var DefaultConfigurationProvider;
+ var init_configuration = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/configuration.js"() {
+ "use strict";
+ init_promise_utils();
+ DefaultConfigurationProvider = class {
+ static {
+ __name(this, "DefaultConfigurationProvider");
+ }
+ constructor(services) {
+ this._ready = new Deferred();
+ this.settings = {};
+ this.workspaceConfig = false;
+ this.serviceRegistry = services.ServiceRegistry;
+ }
+ get ready() {
+ return this._ready.promise;
+ }
+ initialize(params) {
+ var _a, _b;
+ this.workspaceConfig = (_b = (_a = params.capabilities.workspace) === null || _a === void 0 ? void 0 : _a.configuration) !== null && _b !== void 0 ? _b : false;
+ }
+ async initialized(params) {
+ if (this.workspaceConfig) {
+ if (params.register) {
+ const languages = this.serviceRegistry.all;
+ params.register({
+ // Listen to configuration changes for all languages
+ section: languages.map((lang) => this.toSectionName(lang.LanguageMetaData.languageId))
+ });
}
- function olb(a) {
- this.c = a;
+ if (params.fetchConfiguration) {
+ const configToUpdate = this.serviceRegistry.all.map((lang) => ({
+ // Fetch the configuration changes for all languages
+ section: this.toSectionName(lang.LanguageMetaData.languageId)
+ }));
+ const configs = await params.fetchConfiguration(configToUpdate);
+ configToUpdate.forEach((conf8, idx) => {
+ this.updateSectionConfiguration(conf8.section, configs[idx]);
+ });
}
- function qub(a) {
- this.c = a;
+ }
+ this._ready.resolve();
+ }
+ /**
+ * Updates the cached configurations using the `change` notification parameters.
+ *
+ * @param change The parameters of a change configuration notification.
+ * `settings` property of the change object could be expressed as `Record>`
+ */
+ updateConfiguration(change2) {
+ if (!change2.settings) {
+ return;
+ }
+ Object.keys(change2.settings).forEach((section) => {
+ this.updateSectionConfiguration(section, change2.settings[section]);
+ });
+ }
+ updateSectionConfiguration(section, configuration) {
+ this.settings[section] = configuration;
+ }
+ /**
+ * Returns a configuration value stored for the given language.
+ *
+ * @param language The language id
+ * @param configuration Configuration name
+ */
+ async getConfiguration(language, configuration) {
+ await this.ready;
+ const sectionName = this.toSectionName(language);
+ if (this.settings[sectionName]) {
+ return this.settings[sectionName][configuration];
+ }
+ }
+ toSectionName(languageId) {
+ return `${languageId}`;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/disposable.js
+ var Disposable;
+ var init_disposable = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/disposable.js"() {
+ "use strict";
+ (function(Disposable2) {
+ function create2(callback) {
+ return {
+ dispose: /* @__PURE__ */ __name(async () => await callback(), "dispose")
+ };
+ }
+ __name(create2, "create");
+ Disposable2.create = create2;
+ })(Disposable || (Disposable = {}));
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/document-builder.js
+ var DefaultDocumentBuilder;
+ var init_document_builder = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/document-builder.js"() {
+ "use strict";
+ init_cancellation();
+ init_disposable();
+ init_collections();
+ init_promise_utils();
+ init_stream();
+ init_validation_registry();
+ init_documents();
+ DefaultDocumentBuilder = class {
+ static {
+ __name(this, "DefaultDocumentBuilder");
+ }
+ constructor(services) {
+ this.updateBuildOptions = {
+ // Default: run only the built-in validation checks and those in the _fast_ category (includes those without category)
+ validation: {
+ categories: ["built-in", "fast"]
}
- function Tub(a) {
- this.a = a;
+ };
+ this.updateListeners = [];
+ this.buildPhaseListeners = new MultiMap();
+ this.buildState = /* @__PURE__ */ new Map();
+ this.documentBuildWaiters = /* @__PURE__ */ new Map();
+ this.currentState = DocumentState.Changed;
+ this.langiumDocuments = services.workspace.LangiumDocuments;
+ this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;
+ this.indexManager = services.workspace.IndexManager;
+ this.serviceRegistry = services.ServiceRegistry;
+ }
+ async build(documents2, options3 = {}, cancelToken = cancellation_exports.CancellationToken.None) {
+ var _a, _b;
+ for (const document2 of documents2) {
+ const key = document2.uri.toString();
+ if (document2.state === DocumentState.Validated) {
+ if (typeof options3.validation === "boolean" && options3.validation) {
+ document2.state = DocumentState.IndexedReferences;
+ document2.diagnostics = void 0;
+ this.buildState.delete(key);
+ } else if (typeof options3.validation === "object") {
+ const buildState2 = this.buildState.get(key);
+ const previousCategories = (_a = buildState2 === null || buildState2 === void 0 ? void 0 : buildState2.result) === null || _a === void 0 ? void 0 : _a.validationChecks;
+ if (previousCategories) {
+ const newCategories = (_b = options3.validation.categories) !== null && _b !== void 0 ? _b : ValidationCategory.all;
+ const categories = newCategories.filter((c3) => !previousCategories.includes(c3));
+ if (categories.length > 0) {
+ this.buildState.set(key, {
+ completed: false,
+ options: {
+ validation: Object.assign(Object.assign({}, options3.validation), { categories })
+ },
+ result: buildState2.result
+ });
+ document2.state = DocumentState.IndexedReferences;
+ }
+ }
+ }
+ } else {
+ this.buildState.delete(key);
+ }
+ }
+ this.currentState = DocumentState.Changed;
+ await this.emitUpdate(documents2.map((e3) => e3.uri), []);
+ await this.buildDocuments(documents2, options3, cancelToken);
+ }
+ async update(changed, deleted, cancelToken = cancellation_exports.CancellationToken.None) {
+ this.currentState = DocumentState.Changed;
+ for (const deletedUri of deleted) {
+ this.langiumDocuments.deleteDocument(deletedUri);
+ this.buildState.delete(deletedUri.toString());
+ this.indexManager.remove(deletedUri);
+ }
+ for (const changedUri of changed) {
+ const invalidated = this.langiumDocuments.invalidateDocument(changedUri);
+ if (!invalidated) {
+ const newDocument = this.langiumDocumentFactory.fromModel({ $type: "INVALID" }, changedUri);
+ newDocument.state = DocumentState.Changed;
+ this.langiumDocuments.addDocument(newDocument);
+ }
+ this.buildState.delete(changedUri.toString());
+ }
+ const allChangedUris = stream(changed).concat(deleted).map((uri) => uri.toString()).toSet();
+ this.langiumDocuments.all.filter((doc) => !allChangedUris.has(doc.uri.toString()) && this.shouldRelink(doc, allChangedUris)).forEach((doc) => {
+ const linker = this.serviceRegistry.getServices(doc.uri).references.Linker;
+ linker.unlink(doc);
+ doc.state = Math.min(doc.state, DocumentState.ComputedScopes);
+ doc.diagnostics = void 0;
+ });
+ await this.emitUpdate(changed, deleted);
+ await interruptAndCheck(cancelToken);
+ const rebuildDocuments = this.langiumDocuments.all.filter((doc) => {
+ var _a;
+ return doc.state < DocumentState.Linked || !((_a = this.buildState.get(doc.uri.toString())) === null || _a === void 0 ? void 0 : _a.completed);
+ }).toArray();
+ await this.buildDocuments(rebuildDocuments, this.updateBuildOptions, cancelToken);
+ }
+ async emitUpdate(changed, deleted) {
+ await Promise.all(this.updateListeners.map((listener) => listener(changed, deleted)));
+ }
+ /**
+ * Check whether the given document should be relinked after changes were found in the given URIs.
+ */
+ shouldRelink(document2, changedUris) {
+ if (document2.references.some((ref) => ref.error !== void 0)) {
+ return true;
+ }
+ return this.indexManager.isAffected(document2, changedUris);
+ }
+ onUpdate(callback) {
+ this.updateListeners.push(callback);
+ return Disposable.create(() => {
+ const index = this.updateListeners.indexOf(callback);
+ if (index >= 0) {
+ this.updateListeners.splice(index, 1);
}
- function Vub(a) {
- this.a = a;
+ });
+ }
+ /**
+ * Build the given documents by stepping through all build phases. If a document's state indicates
+ * that a certain build phase is already done, the phase is skipped for that document.
+ */
+ async buildDocuments(documents2, options3, cancelToken) {
+ this.prepareBuild(documents2, options3);
+ await this.runCancelable(documents2, DocumentState.Parsed, cancelToken, (doc) => this.langiumDocumentFactory.update(doc, cancelToken));
+ await this.runCancelable(documents2, DocumentState.IndexedContent, cancelToken, (doc) => this.indexManager.updateContent(doc, cancelToken));
+ await this.runCancelable(documents2, DocumentState.ComputedScopes, cancelToken, async (doc) => {
+ const scopeComputation = this.serviceRegistry.getServices(doc.uri).references.ScopeComputation;
+ doc.precomputedScopes = await scopeComputation.computeLocalScopes(doc, cancelToken);
+ });
+ await this.runCancelable(documents2, DocumentState.Linked, cancelToken, (doc) => {
+ const linker = this.serviceRegistry.getServices(doc.uri).references.Linker;
+ return linker.link(doc, cancelToken);
+ });
+ await this.runCancelable(documents2, DocumentState.IndexedReferences, cancelToken, (doc) => this.indexManager.updateReferences(doc, cancelToken));
+ const toBeValidated = documents2.filter((doc) => this.shouldValidate(doc));
+ await this.runCancelable(toBeValidated, DocumentState.Validated, cancelToken, (doc) => this.validate(doc, cancelToken));
+ for (const doc of documents2) {
+ const state5 = this.buildState.get(doc.uri.toString());
+ if (state5) {
+ state5.completed = true;
+ }
+ }
+ }
+ prepareBuild(documents2, options3) {
+ for (const doc of documents2) {
+ const key = doc.uri.toString();
+ const state5 = this.buildState.get(key);
+ if (!state5 || state5.completed) {
+ this.buildState.set(key, {
+ completed: false,
+ options: options3,
+ result: state5 === null || state5 === void 0 ? void 0 : state5.result
+ });
}
- function Xub(a) {
- this.a = a;
+ }
+ }
+ async runCancelable(documents2, targetState, cancelToken, callback) {
+ const filtered = documents2.filter((e3) => e3.state < targetState);
+ for (const document2 of filtered) {
+ await interruptAndCheck(cancelToken);
+ await callback(document2);
+ document2.state = targetState;
+ }
+ await this.notifyBuildPhase(filtered, targetState, cancelToken);
+ this.currentState = targetState;
+ }
+ onBuildPhase(targetState, callback) {
+ this.buildPhaseListeners.add(targetState, callback);
+ return Disposable.create(() => {
+ this.buildPhaseListeners.delete(targetState, callback);
+ });
+ }
+ waitUntil(state5, uriOrToken, cancelToken) {
+ let uri = void 0;
+ if (uriOrToken && "path" in uriOrToken) {
+ uri = uriOrToken;
+ } else {
+ cancelToken = uriOrToken;
+ }
+ cancelToken !== null && cancelToken !== void 0 ? cancelToken : cancelToken = cancellation_exports.CancellationToken.None;
+ if (uri) {
+ const document2 = this.langiumDocuments.getDocument(uri);
+ if (document2 && document2.state > state5) {
+ return Promise.resolve(uri);
+ }
+ }
+ if (this.currentState >= state5) {
+ return Promise.resolve(void 0);
+ } else if (cancelToken.isCancellationRequested) {
+ return Promise.reject(OperationCancelled);
+ }
+ return new Promise((resolve3, reject3) => {
+ const buildDisposable = this.onBuildPhase(state5, () => {
+ buildDisposable.dispose();
+ cancelDisposable.dispose();
+ if (uri) {
+ const document2 = this.langiumDocuments.getDocument(uri);
+ resolve3(document2 === null || document2 === void 0 ? void 0 : document2.uri);
+ } else {
+ resolve3(void 0);
+ }
+ });
+ const cancelDisposable = cancelToken.onCancellationRequested(() => {
+ buildDisposable.dispose();
+ cancelDisposable.dispose();
+ reject3(OperationCancelled);
+ });
+ });
+ }
+ async notifyBuildPhase(documents2, state5, cancelToken) {
+ if (documents2.length === 0) {
+ return;
+ }
+ const listeners = this.buildPhaseListeners.get(state5);
+ for (const listener of listeners) {
+ await interruptAndCheck(cancelToken);
+ await listener(documents2, cancelToken);
+ }
+ }
+ /**
+ * Determine whether the given document should be validated during a build. The default
+ * implementation checks the `validation` property of the build options. If it's set to `true`
+ * or a `ValidationOptions` object, the document is included in the validation phase.
+ */
+ shouldValidate(document2) {
+ return Boolean(this.getBuildOptions(document2).validation);
+ }
+ /**
+ * Run validation checks on the given document and store the resulting diagnostics in the document.
+ * If the document already contains diagnostics, the new ones are added to the list.
+ */
+ async validate(document2, cancelToken) {
+ var _a, _b;
+ const validator = this.serviceRegistry.getServices(document2.uri).validation.DocumentValidator;
+ const validationSetting = this.getBuildOptions(document2).validation;
+ const options3 = typeof validationSetting === "object" ? validationSetting : void 0;
+ const diagnostics = await validator.validateDocument(document2, options3, cancelToken);
+ if (document2.diagnostics) {
+ document2.diagnostics.push(...diagnostics);
+ } else {
+ document2.diagnostics = diagnostics;
+ }
+ const state5 = this.buildState.get(document2.uri.toString());
+ if (state5) {
+ (_a = state5.result) !== null && _a !== void 0 ? _a : state5.result = {};
+ const newCategories = (_b = options3 === null || options3 === void 0 ? void 0 : options3.categories) !== null && _b !== void 0 ? _b : ValidationCategory.all;
+ if (state5.result.validationChecks) {
+ state5.result.validationChecks.push(...newCategories);
+ } else {
+ state5.result.validationChecks = [...newCategories];
}
- function Zub(a) {
- this.a = a;
+ }
+ }
+ getBuildOptions(document2) {
+ var _a, _b;
+ return (_b = (_a = this.buildState.get(document2.uri.toString())) === null || _a === void 0 ? void 0 : _a.options) !== null && _b !== void 0 ? _b : {};
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/index-manager.js
+ var DefaultIndexManager;
+ var init_index_manager = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/index-manager.js"() {
+ "use strict";
+ init_ast_utils();
+ init_caching();
+ init_cancellation();
+ init_stream();
+ init_uri_utils();
+ DefaultIndexManager = class {
+ static {
+ __name(this, "DefaultIndexManager");
+ }
+ constructor(services) {
+ this.symbolIndex = /* @__PURE__ */ new Map();
+ this.symbolByTypeIndex = new ContextCache();
+ this.referenceIndex = /* @__PURE__ */ new Map();
+ this.documents = services.workspace.LangiumDocuments;
+ this.serviceRegistry = services.ServiceRegistry;
+ this.astReflection = services.AstReflection;
+ }
+ findAllReferences(targetNode, astNodePath) {
+ const targetDocUri = getDocument(targetNode).uri;
+ const result = [];
+ this.referenceIndex.forEach((docRefs) => {
+ docRefs.forEach((refDescr) => {
+ if (UriUtils.equals(refDescr.targetUri, targetDocUri) && refDescr.targetPath === astNodePath) {
+ result.push(refDescr);
+ }
+ });
+ });
+ return stream(result);
+ }
+ allElements(nodeType2, uris) {
+ let documentUris = stream(this.symbolIndex.keys());
+ if (uris) {
+ documentUris = documentUris.filter((uri) => !uris || uris.has(uri));
+ }
+ return documentUris.map((uri) => this.getFileDescriptions(uri, nodeType2)).flat();
+ }
+ getFileDescriptions(uri, nodeType2) {
+ var _a;
+ if (!nodeType2) {
+ return (_a = this.symbolIndex.get(uri)) !== null && _a !== void 0 ? _a : [];
+ }
+ const descriptions = this.symbolByTypeIndex.get(uri, nodeType2, () => {
+ var _a2;
+ const allFileDescriptions = (_a2 = this.symbolIndex.get(uri)) !== null && _a2 !== void 0 ? _a2 : [];
+ return allFileDescriptions.filter((e3) => this.astReflection.isSubtype(e3.type, nodeType2));
+ });
+ return descriptions;
+ }
+ remove(uri) {
+ const uriString = uri.toString();
+ this.symbolIndex.delete(uriString);
+ this.symbolByTypeIndex.clear(uriString);
+ this.referenceIndex.delete(uriString);
+ }
+ async updateContent(document2, cancelToken = cancellation_exports.CancellationToken.None) {
+ const services = this.serviceRegistry.getServices(document2.uri);
+ const exports2 = await services.references.ScopeComputation.computeExports(document2, cancelToken);
+ const uri = document2.uri.toString();
+ this.symbolIndex.set(uri, exports2);
+ this.symbolByTypeIndex.clear(uri);
+ }
+ async updateReferences(document2, cancelToken = cancellation_exports.CancellationToken.None) {
+ const services = this.serviceRegistry.getServices(document2.uri);
+ const indexData = await services.workspace.ReferenceDescriptionProvider.createDescriptions(document2, cancelToken);
+ this.referenceIndex.set(document2.uri.toString(), indexData);
+ }
+ isAffected(document2, changedUris) {
+ const references = this.referenceIndex.get(document2.uri.toString());
+ if (!references) {
+ return false;
+ }
+ return references.some((ref) => !ref.local && changedUris.has(ref.targetUri.toString()));
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/workspace-manager.js
+ var DefaultWorkspaceManager;
+ var init_workspace_manager = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/workspace-manager.js"() {
+ "use strict";
+ init_cancellation();
+ init_promise_utils();
+ init_uri_utils();
+ DefaultWorkspaceManager = class {
+ static {
+ __name(this, "DefaultWorkspaceManager");
+ }
+ constructor(services) {
+ this.initialBuildOptions = {};
+ this._ready = new Deferred();
+ this.serviceRegistry = services.ServiceRegistry;
+ this.langiumDocuments = services.workspace.LangiumDocuments;
+ this.documentBuilder = services.workspace.DocumentBuilder;
+ this.fileSystemProvider = services.workspace.FileSystemProvider;
+ this.mutex = services.workspace.WorkspaceLock;
+ }
+ get ready() {
+ return this._ready.promise;
+ }
+ initialize(params) {
+ var _a;
+ this.folders = (_a = params.workspaceFolders) !== null && _a !== void 0 ? _a : void 0;
+ }
+ initialized(_params) {
+ return this.mutex.write((token2) => {
+ var _a;
+ return this.initializeWorkspace((_a = this.folders) !== null && _a !== void 0 ? _a : [], token2);
+ });
+ }
+ async initializeWorkspace(folders, cancelToken = cancellation_exports.CancellationToken.None) {
+ const documents2 = await this.performStartup(folders);
+ await interruptAndCheck(cancelToken);
+ await this.documentBuilder.build(documents2, this.initialBuildOptions, cancelToken);
+ }
+ /**
+ * Performs the uninterruptable startup sequence of the workspace manager.
+ * This methods loads all documents in the workspace and other documents and returns them.
+ */
+ async performStartup(folders) {
+ const fileExtensions = this.serviceRegistry.all.flatMap((e3) => e3.LanguageMetaData.fileExtensions);
+ const documents2 = [];
+ const collector = /* @__PURE__ */ __name((document2) => {
+ documents2.push(document2);
+ if (!this.langiumDocuments.hasDocument(document2.uri)) {
+ this.langiumDocuments.addDocument(document2);
+ }
+ }, "collector");
+ await this.loadAdditionalDocuments(folders, collector);
+ await Promise.all(folders.map((wf) => [wf, this.getRootFolder(wf)]).map(async (entry) => this.traverseFolder(...entry, fileExtensions, collector)));
+ this._ready.resolve();
+ return documents2;
+ }
+ /**
+ * Load all additional documents that shall be visible in the context of the given workspace
+ * folders and add them to the collector. This can be used to include built-in libraries of
+ * your language, which can be either loaded from provided files or constructed in memory.
+ */
+ loadAdditionalDocuments(_folders, _collector) {
+ return Promise.resolve();
+ }
+ /**
+ * Determine the root folder of the source documents in the given workspace folder.
+ * The default implementation returns the URI of the workspace folder, but you can override
+ * this to return a subfolder like `src` instead.
+ */
+ getRootFolder(workspaceFolder) {
+ return URI2.parse(workspaceFolder.uri);
+ }
+ /**
+ * Traverse the file system folder identified by the given URI and its subfolders. All
+ * contained files that match the file extensions are added to the collector.
+ */
+ async traverseFolder(workspaceFolder, folderPath, fileExtensions, collector) {
+ const content = await this.fileSystemProvider.readDirectory(folderPath);
+ await Promise.all(content.map(async (entry) => {
+ if (this.includeEntry(workspaceFolder, entry, fileExtensions)) {
+ if (entry.isDirectory) {
+ await this.traverseFolder(workspaceFolder, entry.uri, fileExtensions, collector);
+ } else if (entry.isFile) {
+ const document2 = await this.langiumDocuments.getOrCreateDocument(entry.uri);
+ collector(document2);
+ }
}
- function tpb(a) {
- this.a = a;
- }
- function _pb(a) {
- this.a = a;
- }
- function Wqb(a) {
- this.a = a;
- }
- function nsb(a) {
- this.a = a;
- }
- function Rxb(a) {
- this.a = a;
- }
- function Txb(a) {
- this.a = a;
- }
- function Xxb(a) {
- this.a = a;
- }
- function bzb(a) {
- this.a = a;
- }
- function tzb(a) {
- this.a = a;
- }
- function vzb(a) {
- this.a = a;
- }
- function xzb(a) {
- this.a = a;
- }
- function Kzb(a) {
- this.a = a;
- }
- function Ozb(a) {
- this.a = a;
- }
- function iAb(a) {
- this.a = a;
- }
- function kAb(a) {
- this.a = a;
- }
- function mAb(a) {
- this.a = a;
- }
- function BAb(a) {
- this.a = a;
- }
- function hBb(a) {
- this.a = a;
- }
- function jBb(a) {
- this.a = a;
- }
- function nBb(a) {
- this.a = a;
- }
- function TBb(a) {
- this.a = a;
- }
- function XBb(a) {
- this.a = a;
- }
- function QCb(a) {
- this.a = a;
- }
- function WCb(a) {
- this.a = a;
- }
- function _Cb(a) {
- this.a = a;
- }
- function dEb(a) {
- this.a = a;
- }
- function QGb(a) {
- this.a = a;
- }
- function YGb(a) {
- this.a = a;
- }
- function tKb(a) {
- this.a = a;
- }
- function CLb(a) {
- this.a = a;
- }
- function JMb(a) {
- this.a = a;
- }
- function RNb(a) {
- this.a = a;
- }
- function kQb(a) {
- this.a = a;
- }
- function mQb(a) {
- this.a = a;
- }
- function FQb(a) {
- this.a = a;
- }
- function ETb(a) {
- this.a = a;
- }
- function UTb(a) {
- this.a = a;
- }
- function dUb(a) {
- this.a = a;
- }
- function hUb(a) {
- this.a = a;
- }
- function EZb(a) {
- this.a = a;
- }
- function j$b(a) {
- this.a = a;
- }
- function v$b(a) {
- this.e = a;
- }
- function J0b(a) {
- this.a = a;
- }
- function M0b(a) {
- this.a = a;
- }
- function R0b(a) {
- this.a = a;
- }
- function U0b(a) {
- this.a = a;
- }
- function i2b(a) {
- this.a = a;
- }
- function k2b(a) {
- this.a = a;
- }
- function o2b(a) {
- this.a = a;
- }
- function s2b(a) {
- this.a = a;
- }
- function G2b(a) {
- this.a = a;
- }
- function I2b(a) {
- this.a = a;
- }
- function K2b(a) {
- this.a = a;
- }
- function M2b(a) {
- this.a = a;
- }
- function W3b(a) {
- this.a = a;
- }
- function $3b(a) {
- this.a = a;
- }
- function V4b(a) {
- this.a = a;
- }
- function u5b(a) {
- this.a = a;
- }
- function A7b(a) {
- this.a = a;
- }
- function G7b(a) {
- this.a = a;
- }
- function J7b(a) {
- this.a = a;
- }
- function M7b(a) {
- this.a = a;
- }
- function Mbc(a) {
- this.a = a;
- }
- function Pbc(a) {
- this.a = a;
- }
- function lac(a) {
- this.a = a;
- }
- function nac(a) {
- this.a = a;
- }
- function qcc(a) {
- this.a = a;
- }
- function Gdc(a) {
- this.a = a;
- }
- function $dc(a) {
- this.a = a;
- }
- function cec(a) {
- this.a = a;
- }
- function _ec(a) {
- this.a = a;
- }
- function pfc(a) {
- this.a = a;
- }
- function Bfc(a) {
- this.a = a;
- }
- function Lfc(a) {
- this.a = a;
- }
- function ygc(a) {
- this.a = a;
- }
- function Dgc(a) {
- this.a = a;
- }
- function shc(a) {
- this.a = a;
- }
- function uhc(a) {
- this.a = a;
- }
- function whc(a) {
- this.a = a;
- }
- function Chc(a) {
- this.a = a;
- }
- function Ehc(a) {
- this.a = a;
- }
- function Ohc(a) {
- this.a = a;
- }
- function Yhc(a) {
- this.a = a;
- }
- function Tkc(a) {
- this.a = a;
- }
- function Vkc(a) {
- this.a = a;
- }
- function Olc(a) {
- this.a = a;
- }
- function pnc(a) {
- this.a = a;
- }
- function rnc(a) {
- this.a = a;
+ }));
+ }
+ /**
+ * Determine whether the given folder entry shall be included while indexing the workspace.
+ */
+ includeEntry(_workspaceFolder, entry, fileExtensions) {
+ const name = UriUtils.basename(entry.uri);
+ if (name.startsWith(".")) {
+ return false;
+ }
+ if (entry.isDirectory) {
+ return name !== "node_modules" && name !== "out";
+ } else if (entry.isFile) {
+ const extname = UriUtils.extname(entry.uri);
+ return fileExtensions.includes(extname);
+ }
+ return false;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/lexer.js
+ function isTokenTypeArray(tokenVocabulary) {
+ return Array.isArray(tokenVocabulary) && (tokenVocabulary.length === 0 || "name" in tokenVocabulary[0]);
+ }
+ function isIMultiModeLexerDefinition(tokenVocabulary) {
+ return tokenVocabulary && "modes" in tokenVocabulary && "defaultMode" in tokenVocabulary;
+ }
+ function isTokenTypeDictionary(tokenVocabulary) {
+ return !isTokenTypeArray(tokenVocabulary) && !isIMultiModeLexerDefinition(tokenVocabulary);
+ }
+ var DefaultLexer;
+ var init_lexer2 = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/lexer.js"() {
+ "use strict";
+ init_api5();
+ DefaultLexer = class {
+ static {
+ __name(this, "DefaultLexer");
+ }
+ constructor(services) {
+ const tokens2 = services.parser.TokenBuilder.buildTokens(services.Grammar, {
+ caseInsensitive: services.LanguageMetaData.caseInsensitive
+ });
+ this.tokenTypes = this.toTokenTypeDictionary(tokens2);
+ const lexerTokens = isTokenTypeDictionary(tokens2) ? Object.values(tokens2) : tokens2;
+ this.chevrotainLexer = new Lexer2(lexerTokens, {
+ positionTracking: "full"
+ });
+ }
+ get definition() {
+ return this.tokenTypes;
+ }
+ tokenize(text2) {
+ var _a;
+ const chevrotainResult = this.chevrotainLexer.tokenize(text2);
+ return {
+ tokens: chevrotainResult.tokens,
+ errors: chevrotainResult.errors,
+ hidden: (_a = chevrotainResult.groups.hidden) !== null && _a !== void 0 ? _a : []
+ };
+ }
+ toTokenTypeDictionary(buildTokens) {
+ if (isTokenTypeDictionary(buildTokens))
+ return buildTokens;
+ const tokens2 = isIMultiModeLexerDefinition(buildTokens) ? Object.values(buildTokens.modes).flat() : buildTokens;
+ const res = {};
+ tokens2.forEach((token2) => res[token2.name] = token2);
+ return res;
+ }
+ };
+ __name(isTokenTypeArray, "isTokenTypeArray");
+ __name(isIMultiModeLexerDefinition, "isIMultiModeLexerDefinition");
+ __name(isTokenTypeDictionary, "isTokenTypeDictionary");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/jsdoc.js
+ function parseJSDoc(node2, start3, options3) {
+ let opts;
+ let position5;
+ if (typeof node2 === "string") {
+ position5 = start3;
+ opts = options3;
+ } else {
+ position5 = node2.range.start;
+ opts = start3;
+ }
+ if (!position5) {
+ position5 = Position.create(0, 0);
+ }
+ const lines = getLines(node2);
+ const normalizedOptions = normalizeOptions(opts);
+ const tokens2 = tokenize({
+ lines,
+ position: position5,
+ options: normalizedOptions
+ });
+ return parseJSDocComment({
+ index: 0,
+ tokens: tokens2,
+ position: position5
+ });
+ }
+ function isJSDoc(node2, options3) {
+ const normalizedOptions = normalizeOptions(options3);
+ const lines = getLines(node2);
+ if (lines.length === 0) {
+ return false;
+ }
+ const first3 = lines[0];
+ const last3 = lines[lines.length - 1];
+ const firstRegex = normalizedOptions.start;
+ const lastRegex = normalizedOptions.end;
+ return Boolean(firstRegex === null || firstRegex === void 0 ? void 0 : firstRegex.exec(first3)) && Boolean(lastRegex === null || lastRegex === void 0 ? void 0 : lastRegex.exec(last3));
+ }
+ function getLines(node2) {
+ let content = "";
+ if (typeof node2 === "string") {
+ content = node2;
+ } else {
+ content = node2.text;
+ }
+ const lines = content.split(NEWLINE_REGEXP);
+ return lines;
+ }
+ function tokenize(context) {
+ var _a, _b, _c;
+ const tokens2 = [];
+ let currentLine = context.position.line;
+ let currentCharacter = context.position.character;
+ for (let i2 = 0; i2 < context.lines.length; i2++) {
+ const first3 = i2 === 0;
+ const last3 = i2 === context.lines.length - 1;
+ let line2 = context.lines[i2];
+ let index = 0;
+ if (first3 && context.options.start) {
+ const match2 = (_a = context.options.start) === null || _a === void 0 ? void 0 : _a.exec(line2);
+ if (match2) {
+ index = match2.index + match2[0].length;
+ }
+ } else {
+ const match2 = (_b = context.options.line) === null || _b === void 0 ? void 0 : _b.exec(line2);
+ if (match2) {
+ index = match2.index + match2[0].length;
+ }
+ }
+ if (last3) {
+ const match2 = (_c = context.options.end) === null || _c === void 0 ? void 0 : _c.exec(line2);
+ if (match2) {
+ line2 = line2.substring(0, match2.index);
+ }
+ }
+ line2 = line2.substring(0, lastCharacter(line2));
+ const whitespaceEnd = skipWhitespace(line2, index);
+ if (whitespaceEnd >= line2.length) {
+ if (tokens2.length > 0) {
+ const position5 = Position.create(currentLine, currentCharacter);
+ tokens2.push({
+ type: "break",
+ content: "",
+ range: Range.create(position5, position5)
+ });
+ }
+ } else {
+ tagRegex.lastIndex = index;
+ const tagMatch = tagRegex.exec(line2);
+ if (tagMatch) {
+ const fullMatch = tagMatch[0];
+ const value2 = tagMatch[1];
+ const start3 = Position.create(currentLine, currentCharacter + index);
+ const end2 = Position.create(currentLine, currentCharacter + index + fullMatch.length);
+ tokens2.push({
+ type: "tag",
+ content: value2,
+ range: Range.create(start3, end2)
+ });
+ index += fullMatch.length;
+ index = skipWhitespace(line2, index);
+ }
+ if (index < line2.length) {
+ const rest = line2.substring(index);
+ const inlineTagMatches = Array.from(rest.matchAll(inlineTagRegex));
+ tokens2.push(...buildInlineTokens(inlineTagMatches, rest, currentLine, currentCharacter + index));
+ }
+ }
+ currentLine++;
+ currentCharacter = 0;
+ }
+ if (tokens2.length > 0 && tokens2[tokens2.length - 1].type === "break") {
+ return tokens2.slice(0, -1);
+ }
+ return tokens2;
+ }
+ function buildInlineTokens(tags2, line2, lineIndex, characterIndex) {
+ const tokens2 = [];
+ if (tags2.length === 0) {
+ const start3 = Position.create(lineIndex, characterIndex);
+ const end2 = Position.create(lineIndex, characterIndex + line2.length);
+ tokens2.push({
+ type: "text",
+ content: line2,
+ range: Range.create(start3, end2)
+ });
+ } else {
+ let lastIndex = 0;
+ for (const match2 of tags2) {
+ const matchIndex = match2.index;
+ const startContent = line2.substring(lastIndex, matchIndex);
+ if (startContent.length > 0) {
+ tokens2.push({
+ type: "text",
+ content: line2.substring(lastIndex, matchIndex),
+ range: Range.create(Position.create(lineIndex, lastIndex + characterIndex), Position.create(lineIndex, matchIndex + characterIndex))
+ });
+ }
+ let offset = startContent.length + 1;
+ const tagName = match2[1];
+ tokens2.push({
+ type: "inline-tag",
+ content: tagName,
+ range: Range.create(Position.create(lineIndex, lastIndex + offset + characterIndex), Position.create(lineIndex, lastIndex + offset + tagName.length + characterIndex))
+ });
+ offset += tagName.length;
+ if (match2.length === 4) {
+ offset += match2[2].length;
+ const value2 = match2[3];
+ tokens2.push({
+ type: "text",
+ content: value2,
+ range: Range.create(Position.create(lineIndex, lastIndex + offset + characterIndex), Position.create(lineIndex, lastIndex + offset + value2.length + characterIndex))
+ });
+ } else {
+ tokens2.push({
+ type: "text",
+ content: "",
+ range: Range.create(Position.create(lineIndex, lastIndex + offset + characterIndex), Position.create(lineIndex, lastIndex + offset + characterIndex))
+ });
+ }
+ lastIndex = matchIndex + match2[0].length;
+ }
+ const endContent = line2.substring(lastIndex);
+ if (endContent.length > 0) {
+ tokens2.push({
+ type: "text",
+ content: endContent,
+ range: Range.create(Position.create(lineIndex, lastIndex + characterIndex), Position.create(lineIndex, lastIndex + characterIndex + endContent.length))
+ });
+ }
+ }
+ return tokens2;
+ }
+ function skipWhitespace(line2, index) {
+ const match2 = line2.substring(index).match(nonWhitespaceRegex);
+ if (match2) {
+ return index + match2.index;
+ } else {
+ return line2.length;
+ }
+ }
+ function lastCharacter(line2) {
+ const match2 = line2.match(whitespaceEndRegex);
+ if (match2 && typeof match2.index === "number") {
+ return match2.index;
+ }
+ return void 0;
+ }
+ function parseJSDocComment(context) {
+ var _a, _b, _c, _d;
+ const startPosition = Position.create(context.position.line, context.position.character);
+ if (context.tokens.length === 0) {
+ return new JSDocCommentImpl([], Range.create(startPosition, startPosition));
+ }
+ const elements3 = [];
+ while (context.index < context.tokens.length) {
+ const element3 = parseJSDocElement(context, elements3[elements3.length - 1]);
+ if (element3) {
+ elements3.push(element3);
+ }
+ }
+ const start3 = (_b = (_a = elements3[0]) === null || _a === void 0 ? void 0 : _a.range.start) !== null && _b !== void 0 ? _b : startPosition;
+ const end2 = (_d = (_c = elements3[elements3.length - 1]) === null || _c === void 0 ? void 0 : _c.range.end) !== null && _d !== void 0 ? _d : startPosition;
+ return new JSDocCommentImpl(elements3, Range.create(start3, end2));
+ }
+ function parseJSDocElement(context, last3) {
+ const next3 = context.tokens[context.index];
+ if (next3.type === "tag") {
+ return parseJSDocTag(context, false);
+ } else if (next3.type === "text" || next3.type === "inline-tag") {
+ return parseJSDocText(context);
+ } else {
+ appendEmptyLine(next3, last3);
+ context.index++;
+ return void 0;
+ }
+ }
+ function appendEmptyLine(token2, element3) {
+ if (element3) {
+ const line2 = new JSDocLineImpl("", token2.range);
+ if ("inlines" in element3) {
+ element3.inlines.push(line2);
+ } else {
+ element3.content.inlines.push(line2);
+ }
+ }
+ }
+ function parseJSDocText(context) {
+ let token2 = context.tokens[context.index];
+ const firstToken = token2;
+ let lastToken = token2;
+ const lines = [];
+ while (token2 && token2.type !== "break" && token2.type !== "tag") {
+ lines.push(parseJSDocInline(context));
+ lastToken = token2;
+ token2 = context.tokens[context.index];
+ }
+ return new JSDocTextImpl(lines, Range.create(firstToken.range.start, lastToken.range.end));
+ }
+ function parseJSDocInline(context) {
+ const token2 = context.tokens[context.index];
+ if (token2.type === "inline-tag") {
+ return parseJSDocTag(context, true);
+ } else {
+ return parseJSDocLine(context);
+ }
+ }
+ function parseJSDocTag(context, inline2) {
+ const tagToken = context.tokens[context.index++];
+ const name = tagToken.content.substring(1);
+ const nextToken = context.tokens[context.index];
+ if ((nextToken === null || nextToken === void 0 ? void 0 : nextToken.type) === "text") {
+ if (inline2) {
+ const docLine = parseJSDocLine(context);
+ return new JSDocTagImpl(name, new JSDocTextImpl([docLine], docLine.range), inline2, Range.create(tagToken.range.start, docLine.range.end));
+ } else {
+ const textDoc = parseJSDocText(context);
+ return new JSDocTagImpl(name, textDoc, inline2, Range.create(tagToken.range.start, textDoc.range.end));
+ }
+ } else {
+ const range3 = tagToken.range;
+ return new JSDocTagImpl(name, new JSDocTextImpl([], range3), inline2, range3);
+ }
+ }
+ function parseJSDocLine(context) {
+ const token2 = context.tokens[context.index++];
+ return new JSDocLineImpl(token2.content, token2.range);
+ }
+ function normalizeOptions(options3) {
+ if (!options3) {
+ return normalizeOptions({
+ start: "/**",
+ end: "*/",
+ line: "*"
+ });
+ }
+ const { start: start3, end: end2, line: line2 } = options3;
+ return {
+ start: normalizeOption(start3, true),
+ end: normalizeOption(end2, false),
+ line: normalizeOption(line2, true)
+ };
+ }
+ function normalizeOption(option2, start3) {
+ if (typeof option2 === "string" || typeof option2 === "object") {
+ const escaped = typeof option2 === "string" ? escapeRegExp(option2) : option2.source;
+ if (start3) {
+ return new RegExp(`^\\s*${escaped}`);
+ } else {
+ return new RegExp(`\\s*${escaped}\\s*$`);
+ }
+ } else {
+ return option2;
+ }
+ }
+ function renderInlineTag(tag2, content, options3) {
+ var _a, _b;
+ if (tag2 === "linkplain" || tag2 === "linkcode" || tag2 === "link") {
+ const index = content.indexOf(" ");
+ let display = content;
+ if (index > 0) {
+ const displayStart = skipWhitespace(content, index);
+ display = content.substring(displayStart);
+ content = content.substring(0, index);
+ }
+ if (tag2 === "linkcode" || tag2 === "link" && options3.link === "code") {
+ display = `\`${display}\``;
+ }
+ const renderedLink = (_b = (_a = options3.renderLink) === null || _a === void 0 ? void 0 : _a.call(options3, content, display)) !== null && _b !== void 0 ? _b : renderLinkDefault(content, display);
+ return renderedLink;
+ }
+ return void 0;
+ }
+ function renderLinkDefault(content, display) {
+ try {
+ URI2.parse(content, true);
+ return `[${display}](${content})`;
+ } catch (_a) {
+ return content;
+ }
+ }
+ function fillNewlines(text2) {
+ if (text2.endsWith("\n")) {
+ return "\n";
+ } else {
+ return "\n\n";
+ }
+ }
+ var tagRegex, inlineTagRegex, nonWhitespaceRegex, whitespaceEndRegex, JSDocCommentImpl, JSDocTagImpl, JSDocTextImpl, JSDocLineImpl;
+ var init_jsdoc = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/jsdoc.js"() {
+ "use strict";
+ init_main();
+ init_regexp_utils();
+ init_uri_utils();
+ __name(parseJSDoc, "parseJSDoc");
+ __name(isJSDoc, "isJSDoc");
+ __name(getLines, "getLines");
+ tagRegex = /\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy;
+ inlineTagRegex = /\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;
+ __name(tokenize, "tokenize");
+ __name(buildInlineTokens, "buildInlineTokens");
+ nonWhitespaceRegex = /\S/;
+ whitespaceEndRegex = /\s*$/;
+ __name(skipWhitespace, "skipWhitespace");
+ __name(lastCharacter, "lastCharacter");
+ __name(parseJSDocComment, "parseJSDocComment");
+ __name(parseJSDocElement, "parseJSDocElement");
+ __name(appendEmptyLine, "appendEmptyLine");
+ __name(parseJSDocText, "parseJSDocText");
+ __name(parseJSDocInline, "parseJSDocInline");
+ __name(parseJSDocTag, "parseJSDocTag");
+ __name(parseJSDocLine, "parseJSDocLine");
+ __name(normalizeOptions, "normalizeOptions");
+ __name(normalizeOption, "normalizeOption");
+ JSDocCommentImpl = class {
+ static {
+ __name(this, "JSDocCommentImpl");
+ }
+ constructor(elements3, range3) {
+ this.elements = elements3;
+ this.range = range3;
+ }
+ getTag(name) {
+ return this.getAllTags().find((e3) => e3.name === name);
+ }
+ getTags(name) {
+ return this.getAllTags().filter((e3) => e3.name === name);
+ }
+ getAllTags() {
+ return this.elements.filter((e3) => "name" in e3);
+ }
+ toString() {
+ let value2 = "";
+ for (const element3 of this.elements) {
+ if (value2.length === 0) {
+ value2 = element3.toString();
+ } else {
+ const text2 = element3.toString();
+ value2 += fillNewlines(value2) + text2;
}
- function dpc(a) {
- this.a = a;
+ }
+ return value2.trim();
+ }
+ toMarkdown(options3) {
+ let value2 = "";
+ for (const element3 of this.elements) {
+ if (value2.length === 0) {
+ value2 = element3.toMarkdown(options3);
+ } else {
+ const text2 = element3.toMarkdown(options3);
+ value2 += fillNewlines(value2) + text2;
}
- function fpc(a) {
- this.a = a;
+ }
+ return value2.trim();
+ }
+ };
+ JSDocTagImpl = class {
+ static {
+ __name(this, "JSDocTagImpl");
+ }
+ constructor(name, content, inline2, range3) {
+ this.name = name;
+ this.content = content;
+ this.inline = inline2;
+ this.range = range3;
+ }
+ toString() {
+ let text2 = `@${this.name}`;
+ const content = this.content.toString();
+ if (this.content.inlines.length === 1) {
+ text2 = `${text2} ${content}`;
+ } else if (this.content.inlines.length > 1) {
+ text2 = `${text2}
+${content}`;
+ }
+ if (this.inline) {
+ return `{${text2}}`;
+ } else {
+ return text2;
+ }
+ }
+ toMarkdown(options3) {
+ var _a, _b;
+ return (_b = (_a = options3 === null || options3 === void 0 ? void 0 : options3.renderTag) === null || _a === void 0 ? void 0 : _a.call(options3, this)) !== null && _b !== void 0 ? _b : this.toMarkdownDefault(options3);
+ }
+ toMarkdownDefault(options3) {
+ const content = this.content.toMarkdown(options3);
+ if (this.inline) {
+ const rendered = renderInlineTag(this.name, content, options3 !== null && options3 !== void 0 ? options3 : {});
+ if (typeof rendered === "string") {
+ return rendered;
+ }
+ }
+ let marker = "";
+ if ((options3 === null || options3 === void 0 ? void 0 : options3.tag) === "italic" || (options3 === null || options3 === void 0 ? void 0 : options3.tag) === void 0) {
+ marker = "*";
+ } else if ((options3 === null || options3 === void 0 ? void 0 : options3.tag) === "bold") {
+ marker = "**";
+ } else if ((options3 === null || options3 === void 0 ? void 0 : options3.tag) === "bold-italic") {
+ marker = "***";
+ }
+ let text2 = `${marker}@${this.name}${marker}`;
+ if (this.content.inlines.length === 1) {
+ text2 = `${text2} \u2014 ${content}`;
+ } else if (this.content.inlines.length > 1) {
+ text2 = `${text2}
+${content}`;
+ }
+ if (this.inline) {
+ return `{${text2}}`;
+ } else {
+ return text2;
+ }
+ }
+ };
+ __name(renderInlineTag, "renderInlineTag");
+ __name(renderLinkDefault, "renderLinkDefault");
+ JSDocTextImpl = class {
+ static {
+ __name(this, "JSDocTextImpl");
+ }
+ constructor(lines, range3) {
+ this.inlines = lines;
+ this.range = range3;
+ }
+ toString() {
+ let text2 = "";
+ for (let i2 = 0; i2 < this.inlines.length; i2++) {
+ const inline2 = this.inlines[i2];
+ const next3 = this.inlines[i2 + 1];
+ text2 += inline2.toString();
+ if (next3 && next3.range.start.line > inline2.range.start.line) {
+ text2 += "\n";
}
- function GCc(a) {
- this.a = a;
+ }
+ return text2;
+ }
+ toMarkdown(options3) {
+ let text2 = "";
+ for (let i2 = 0; i2 < this.inlines.length; i2++) {
+ const inline2 = this.inlines[i2];
+ const next3 = this.inlines[i2 + 1];
+ text2 += inline2.toMarkdown(options3);
+ if (next3 && next3.range.start.line > inline2.range.start.line) {
+ text2 += "\n";
}
- function KCc(a) {
- this.a = a;
+ }
+ return text2;
+ }
+ };
+ JSDocLineImpl = class {
+ static {
+ __name(this, "JSDocLineImpl");
+ }
+ constructor(text2, range3) {
+ this.text = text2;
+ this.range = range3;
+ }
+ toString() {
+ return this.text;
+ }
+ toMarkdown() {
+ return this.text;
+ }
+ };
+ __name(fillNewlines, "fillNewlines");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/documentation-provider.js
+ var JSDocDocumentationProvider;
+ var init_documentation_provider = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/documentation-provider.js"() {
+ "use strict";
+ init_ast_utils();
+ init_jsdoc();
+ JSDocDocumentationProvider = class {
+ static {
+ __name(this, "JSDocDocumentationProvider");
+ }
+ constructor(services) {
+ this.indexManager = services.shared.workspace.IndexManager;
+ this.commentProvider = services.documentation.CommentProvider;
+ }
+ getDocumentation(node2) {
+ const comment2 = this.commentProvider.getComment(node2);
+ if (comment2 && isJSDoc(comment2)) {
+ const parsedJSDoc = parseJSDoc(comment2);
+ return parsedJSDoc.toMarkdown({
+ renderLink: /* @__PURE__ */ __name((link3, display) => {
+ return this.documentationLinkRenderer(node2, link3, display);
+ }, "renderLink"),
+ renderTag: /* @__PURE__ */ __name((tag2) => {
+ return this.documentationTagRenderer(node2, tag2);
+ }, "renderTag")
+ });
+ }
+ return void 0;
+ }
+ documentationLinkRenderer(node2, name, display) {
+ var _a;
+ const description = (_a = this.findNameInPrecomputedScopes(node2, name)) !== null && _a !== void 0 ? _a : this.findNameInGlobalScope(node2, name);
+ if (description && description.nameSegment) {
+ const line2 = description.nameSegment.range.start.line + 1;
+ const character2 = description.nameSegment.range.start.character + 1;
+ const uri = description.documentUri.with({ fragment: `L${line2},${character2}` });
+ return `[${display}](${uri.toString()})`;
+ } else {
+ return void 0;
+ }
+ }
+ documentationTagRenderer(_node, _tag2) {
+ return void 0;
+ }
+ findNameInPrecomputedScopes(node2, name) {
+ const document2 = getDocument(node2);
+ const precomputed = document2.precomputedScopes;
+ if (!precomputed) {
+ return void 0;
+ }
+ let currentNode = node2;
+ do {
+ const allDescriptions = precomputed.get(currentNode);
+ const description = allDescriptions.find((e3) => e3.name === name);
+ if (description) {
+ return description;
}
- function mDc(a) {
- this.a = a;
+ currentNode = currentNode.$container;
+ } while (currentNode);
+ return void 0;
+ }
+ findNameInGlobalScope(node2, name) {
+ const description = this.indexManager.allElements().find((e3) => e3.name === name);
+ return description;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/comment-provider.js
+ var DefaultCommentProvider;
+ var init_comment_provider = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/comment-provider.js"() {
+ "use strict";
+ init_json_serializer();
+ init_cst_utils();
+ DefaultCommentProvider = class {
+ static {
+ __name(this, "DefaultCommentProvider");
+ }
+ constructor(services) {
+ this.grammarConfig = () => services.parser.GrammarConfig;
+ }
+ getComment(node2) {
+ var _a;
+ if (isAstNodeWithComment(node2)) {
+ return node2.$comment;
+ }
+ return (_a = findCommentNode(node2.$cstNode, this.grammarConfig().multilineCommentRules)) === null || _a === void 0 ? void 0 : _a.text;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/event.js
+ var event_exports = {};
+ var init_event3 = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/event.js"() {
+ "use strict";
+ __reExport(event_exports, __toESM(require_events(), 1));
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/async-parser.js
+ var DefaultAsyncParser, AbstractThreadedAsyncParser, ParserWorker;
+ var init_async_parser = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/async-parser.js"() {
+ "use strict";
+ init_promise_utils();
+ init_event3();
+ DefaultAsyncParser = class {
+ static {
+ __name(this, "DefaultAsyncParser");
+ }
+ constructor(services) {
+ this.syncParser = services.parser.LangiumParser;
+ }
+ parse(text2) {
+ return Promise.resolve(this.syncParser.parse(text2));
+ }
+ };
+ AbstractThreadedAsyncParser = class {
+ static {
+ __name(this, "AbstractThreadedAsyncParser");
+ }
+ constructor(services) {
+ this.threadCount = 8;
+ this.terminationDelay = 200;
+ this.workerPool = [];
+ this.queue = [];
+ this.hydrator = services.serializer.Hydrator;
+ }
+ initializeWorkers() {
+ while (this.workerPool.length < this.threadCount) {
+ const worker = this.createWorker();
+ worker.onReady(() => {
+ if (this.queue.length > 0) {
+ const deferred = this.queue.shift();
+ if (deferred) {
+ worker.lock();
+ deferred.resolve(worker);
+ }
+ }
+ });
+ this.workerPool.push(worker);
+ }
+ }
+ async parse(text2, cancelToken) {
+ const worker = await this.acquireParserWorker(cancelToken);
+ const deferred = new Deferred();
+ let timeout2;
+ const cancellation = cancelToken.onCancellationRequested(() => {
+ timeout2 = setTimeout(() => {
+ this.terminateWorker(worker);
+ }, this.terminationDelay);
+ });
+ worker.parse(text2).then((result) => {
+ const hydrated = this.hydrator.hydrate(result);
+ deferred.resolve(hydrated);
+ }).catch((err) => {
+ deferred.reject(err);
+ }).finally(() => {
+ cancellation.dispose();
+ clearTimeout(timeout2);
+ });
+ return deferred.promise;
+ }
+ terminateWorker(worker) {
+ worker.terminate();
+ const index = this.workerPool.indexOf(worker);
+ if (index >= 0) {
+ this.workerPool.splice(index, 1);
+ }
+ }
+ async acquireParserWorker(cancelToken) {
+ this.initializeWorkers();
+ for (const worker of this.workerPool) {
+ if (worker.ready) {
+ worker.lock();
+ return worker;
}
- function jEc(a) {
- this.a = a;
+ }
+ const deferred = new Deferred();
+ cancelToken.onCancellationRequested(() => {
+ const index = this.queue.indexOf(deferred);
+ if (index >= 0) {
+ this.queue.splice(index, 1);
}
- function HEc(a) {
- this.a = a;
+ deferred.reject(OperationCancelled);
+ });
+ this.queue.push(deferred);
+ return deferred.promise;
+ }
+ };
+ ParserWorker = class {
+ static {
+ __name(this, "ParserWorker");
+ }
+ get ready() {
+ return this._ready;
+ }
+ get onReady() {
+ return this.onReadyEmitter.event;
+ }
+ constructor(sendMessage, onMessage, onError, terminate) {
+ this.onReadyEmitter = new event_exports.Emitter();
+ this.deferred = new Deferred();
+ this._ready = true;
+ this._parsing = false;
+ this.sendMessage = sendMessage;
+ this._terminate = terminate;
+ onMessage((result) => {
+ const parseResult = result;
+ this.deferred.resolve(parseResult);
+ this.unlock();
+ });
+ onError((error3) => {
+ this.deferred.reject(error3);
+ this.unlock();
+ });
+ }
+ terminate() {
+ this.deferred.reject(OperationCancelled);
+ this._terminate();
+ }
+ lock() {
+ this._ready = false;
+ }
+ unlock() {
+ this._parsing = false;
+ this._ready = true;
+ this.onReadyEmitter.fire();
+ }
+ parse(text2) {
+ if (this._parsing) {
+ throw new Error("Parser worker is busy");
+ }
+ this._parsing = true;
+ this.deferred = new Deferred();
+ this.sendMessage(text2);
+ return this.deferred.promise;
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/workspace-lock.js
+ var DefaultWorkspaceLock;
+ var init_workspace_lock = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/workspace-lock.js"() {
+ "use strict";
+ init_cancellation();
+ init_promise_utils();
+ DefaultWorkspaceLock = class {
+ static {
+ __name(this, "DefaultWorkspaceLock");
+ }
+ constructor() {
+ this.previousTokenSource = new cancellation_exports.CancellationTokenSource();
+ this.writeQueue = [];
+ this.readQueue = [];
+ this.done = true;
+ }
+ write(action) {
+ this.cancelWrite();
+ const tokenSource = new cancellation_exports.CancellationTokenSource();
+ this.previousTokenSource = tokenSource;
+ return this.enqueue(this.writeQueue, action, tokenSource.token);
+ }
+ read(action) {
+ return this.enqueue(this.readQueue, action);
+ }
+ enqueue(queue, action, cancellationToken) {
+ const deferred = new Deferred();
+ const entry = {
+ action,
+ deferred,
+ cancellationToken: cancellationToken !== null && cancellationToken !== void 0 ? cancellationToken : cancellation_exports.CancellationToken.None
+ };
+ queue.push(entry);
+ this.performNextOperation();
+ return deferred.promise;
+ }
+ async performNextOperation() {
+ if (!this.done) {
+ return;
+ }
+ const entries = [];
+ if (this.writeQueue.length > 0) {
+ entries.push(this.writeQueue.shift());
+ } else if (this.readQueue.length > 0) {
+ entries.push(...this.readQueue.splice(0, this.readQueue.length));
+ } else {
+ return;
+ }
+ this.done = false;
+ await Promise.all(entries.map(async ({ action, deferred, cancellationToken }) => {
+ try {
+ const result = await Promise.resolve().then(() => action(cancellationToken));
+ deferred.resolve(result);
+ } catch (err) {
+ if (isOperationCancelled(err)) {
+ deferred.resolve(void 0);
+ } else {
+ deferred.reject(err);
+ }
}
- function FEc(a) {
- this.c = a;
+ }));
+ this.done = true;
+ this.performNextOperation();
+ }
+ cancelWrite() {
+ this.previousTokenSource.cancel();
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/serializer/hydrator.js
+ var DefaultHydrator;
+ var init_hydrator = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/serializer/hydrator.js"() {
+ "use strict";
+ init_cst_node_builder();
+ init_ast();
+ init_syntax_tree();
+ init_ast_utils();
+ init_collections();
+ init_cst_utils();
+ DefaultHydrator = class {
+ static {
+ __name(this, "DefaultHydrator");
+ }
+ constructor(services) {
+ this.grammarElementIdMap = new BiMap();
+ this.tokenTypeIdMap = new BiMap();
+ this.grammar = services.Grammar;
+ this.lexer = services.parser.Lexer;
+ this.linker = services.references.Linker;
+ }
+ dehydrate(result) {
+ return {
+ // We need to create shallow copies of the errors
+ // The original errors inherit from the `Error` class, which is not transferable across worker threads
+ lexerErrors: result.lexerErrors.map((e3) => Object.assign({}, e3)),
+ parserErrors: result.parserErrors.map((e3) => Object.assign({}, e3)),
+ value: this.dehydrateAstNode(result.value, this.createDehyrationContext(result.value))
+ };
+ }
+ createDehyrationContext(node2) {
+ const astNodes = /* @__PURE__ */ new Map();
+ const cstNodes = /* @__PURE__ */ new Map();
+ for (const astNode of streamAst(node2)) {
+ astNodes.set(astNode, {});
+ }
+ if (node2.$cstNode) {
+ for (const cstNode of streamCst(node2.$cstNode)) {
+ cstNodes.set(cstNode, {});
}
- function qoc(a) {
- this.b = a;
+ }
+ return {
+ astNodes,
+ cstNodes
+ };
+ }
+ dehydrateAstNode(node2, context) {
+ const obj = context.astNodes.get(node2);
+ obj.$type = node2.$type;
+ obj.$containerIndex = node2.$containerIndex;
+ obj.$containerProperty = node2.$containerProperty;
+ if (node2.$cstNode !== void 0) {
+ obj.$cstNode = this.dehydrateCstNode(node2.$cstNode, context);
+ }
+ for (const [name, value2] of Object.entries(node2)) {
+ if (name.startsWith("$")) {
+ continue;
}
- function bFc(a) {
- this.a = a;
+ if (Array.isArray(value2)) {
+ const arr = [];
+ obj[name] = arr;
+ for (const item of value2) {
+ if (isAstNode(item)) {
+ arr.push(this.dehydrateAstNode(item, context));
+ } else if (isReference(item)) {
+ arr.push(this.dehydrateReference(item, context));
+ } else {
+ arr.push(item);
+ }
+ }
+ } else if (isAstNode(value2)) {
+ obj[name] = this.dehydrateAstNode(value2, context);
+ } else if (isReference(value2)) {
+ obj[name] = this.dehydrateReference(value2, context);
+ } else if (value2 !== void 0) {
+ obj[name] = value2;
}
- function GFc(a) {
- this.a = a;
+ }
+ return obj;
+ }
+ dehydrateReference(reference, context) {
+ const obj = {};
+ obj.$refText = reference.$refText;
+ if (reference.$refNode) {
+ obj.$refNode = context.cstNodes.get(reference.$refNode);
+ }
+ return obj;
+ }
+ dehydrateCstNode(node2, context) {
+ const cstNode = context.cstNodes.get(node2);
+ if (isRootCstNode(node2)) {
+ cstNode.fullText = node2.fullText;
+ } else {
+ cstNode.grammarSource = this.getGrammarElementId(node2.grammarSource);
+ }
+ cstNode.hidden = node2.hidden;
+ cstNode.astNode = context.astNodes.get(node2.astNode);
+ if (isCompositeCstNode(node2)) {
+ cstNode.content = node2.content.map((child) => this.dehydrateCstNode(child, context));
+ } else if (isLeafCstNode(node2)) {
+ cstNode.tokenType = node2.tokenType.name;
+ cstNode.offset = node2.offset;
+ cstNode.length = node2.length;
+ cstNode.startLine = node2.range.start.line;
+ cstNode.startColumn = node2.range.start.character;
+ cstNode.endLine = node2.range.end.line;
+ cstNode.endColumn = node2.range.end.character;
+ }
+ return cstNode;
+ }
+ hydrate(result) {
+ const node2 = result.value;
+ const context = this.createHydrationContext(node2);
+ if ("$cstNode" in node2) {
+ this.hydrateCstNode(node2.$cstNode, context);
+ }
+ return {
+ lexerErrors: result.lexerErrors,
+ parserErrors: result.parserErrors,
+ value: this.hydrateAstNode(node2, context)
+ };
+ }
+ createHydrationContext(node2) {
+ const astNodes = /* @__PURE__ */ new Map();
+ const cstNodes = /* @__PURE__ */ new Map();
+ for (const astNode of streamAst(node2)) {
+ astNodes.set(astNode, {});
+ }
+ let root4;
+ if (node2.$cstNode) {
+ for (const cstNode of streamCst(node2.$cstNode)) {
+ let cst;
+ if ("fullText" in cstNode) {
+ cst = new RootCstNodeImpl(cstNode.fullText);
+ root4 = cst;
+ } else if ("content" in cstNode) {
+ cst = new CompositeCstNodeImpl();
+ } else if ("tokenType" in cstNode) {
+ cst = this.hydrateCstLeafNode(cstNode);
+ }
+ if (cst) {
+ cstNodes.set(cstNode, cst);
+ cst.root = root4;
+ }
}
- function iGc(a) {
- this.a = a;
+ }
+ return {
+ astNodes,
+ cstNodes
+ };
+ }
+ hydrateAstNode(node2, context) {
+ const astNode = context.astNodes.get(node2);
+ astNode.$type = node2.$type;
+ astNode.$containerIndex = node2.$containerIndex;
+ astNode.$containerProperty = node2.$containerProperty;
+ if (node2.$cstNode) {
+ astNode.$cstNode = context.cstNodes.get(node2.$cstNode);
+ }
+ for (const [name, value2] of Object.entries(node2)) {
+ if (name.startsWith("$")) {
+ continue;
}
- function kGc(a) {
- this.a = a;
+ if (Array.isArray(value2)) {
+ const arr = [];
+ astNode[name] = arr;
+ for (const item of value2) {
+ if (isAstNode(item)) {
+ arr.push(this.setParent(this.hydrateAstNode(item, context), astNode));
+ } else if (isReference(item)) {
+ arr.push(this.hydrateReference(item, astNode, name, context));
+ } else {
+ arr.push(item);
+ }
+ }
+ } else if (isAstNode(value2)) {
+ astNode[name] = this.setParent(this.hydrateAstNode(value2, context), astNode);
+ } else if (isReference(value2)) {
+ astNode[name] = this.hydrateReference(value2, astNode, name, context);
+ } else if (value2 !== void 0) {
+ astNode[name] = value2;
}
- function mGc(a) {
- this.a = a;
+ }
+ return astNode;
+ }
+ setParent(node2, parent4) {
+ node2.$container = parent4;
+ return node2;
+ }
+ hydrateReference(reference, node2, name, context) {
+ return this.linker.buildReference(node2, name, context.cstNodes.get(reference.$refNode), reference.$refText);
+ }
+ hydrateCstNode(cstNode, context, num = 0) {
+ const cstNodeObj = context.cstNodes.get(cstNode);
+ if (typeof cstNode.grammarSource === "number") {
+ cstNodeObj.grammarSource = this.getGrammarElement(cstNode.grammarSource);
+ }
+ cstNodeObj.astNode = context.astNodes.get(cstNode.astNode);
+ if (isCompositeCstNode(cstNodeObj)) {
+ for (const child of cstNode.content) {
+ const hydrated = this.hydrateCstNode(child, context, num++);
+ cstNodeObj.content.push(hydrated);
+ }
+ }
+ return cstNodeObj;
+ }
+ hydrateCstLeafNode(cstNode) {
+ const tokenType = this.getTokenType(cstNode.tokenType);
+ const offset = cstNode.offset;
+ const length2 = cstNode.length;
+ const startLine = cstNode.startLine;
+ const startColumn = cstNode.startColumn;
+ const endLine = cstNode.endLine;
+ const endColumn = cstNode.endColumn;
+ const hidden = cstNode.hidden;
+ const node2 = new LeafCstNodeImpl(offset, length2, {
+ start: {
+ line: startLine,
+ character: startColumn
+ },
+ end: {
+ line: endLine,
+ character: endColumn
}
- function $Gc(a) {
- this.a = a;
+ }, tokenType, hidden);
+ return node2;
+ }
+ getTokenType(name) {
+ return this.lexer.definition[name];
+ }
+ getGrammarElementId(node2) {
+ if (this.grammarElementIdMap.size === 0) {
+ this.createGrammarElementIdMap();
+ }
+ return this.grammarElementIdMap.get(node2);
+ }
+ getGrammarElement(id27) {
+ if (this.grammarElementIdMap.size === 0) {
+ this.createGrammarElementIdMap();
+ }
+ const element3 = this.grammarElementIdMap.getKey(id27);
+ if (element3) {
+ return element3;
+ } else {
+ throw new Error("Invalid grammar element id: " + id27);
+ }
+ }
+ createGrammarElementIdMap() {
+ let id27 = 0;
+ for (const element3 of streamAst(this.grammar)) {
+ if (isAbstractElement(element3)) {
+ this.grammarElementIdMap.set(element3, id27++);
}
- function hIc(a) {
- this.a = a;
+ }
+ }
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/default-module.js
+ function createDefaultCoreModule(context) {
+ return {
+ documentation: {
+ CommentProvider: /* @__PURE__ */ __name((services) => new DefaultCommentProvider(services), "CommentProvider"),
+ DocumentationProvider: /* @__PURE__ */ __name((services) => new JSDocDocumentationProvider(services), "DocumentationProvider")
+ },
+ parser: {
+ AsyncParser: /* @__PURE__ */ __name((services) => new DefaultAsyncParser(services), "AsyncParser"),
+ GrammarConfig: /* @__PURE__ */ __name((services) => createGrammarConfig(services), "GrammarConfig"),
+ LangiumParser: /* @__PURE__ */ __name((services) => createLangiumParser(services), "LangiumParser"),
+ CompletionParser: /* @__PURE__ */ __name((services) => createCompletionParser(services), "CompletionParser"),
+ ValueConverter: /* @__PURE__ */ __name(() => new DefaultValueConverter(), "ValueConverter"),
+ TokenBuilder: /* @__PURE__ */ __name(() => new DefaultTokenBuilder(), "TokenBuilder"),
+ Lexer: /* @__PURE__ */ __name((services) => new DefaultLexer(services), "Lexer"),
+ ParserErrorMessageProvider: /* @__PURE__ */ __name(() => new LangiumParserErrorMessageProvider(), "ParserErrorMessageProvider")
+ },
+ workspace: {
+ AstNodeLocator: /* @__PURE__ */ __name(() => new DefaultAstNodeLocator(), "AstNodeLocator"),
+ AstNodeDescriptionProvider: /* @__PURE__ */ __name((services) => new DefaultAstNodeDescriptionProvider(services), "AstNodeDescriptionProvider"),
+ ReferenceDescriptionProvider: /* @__PURE__ */ __name((services) => new DefaultReferenceDescriptionProvider(services), "ReferenceDescriptionProvider")
+ },
+ references: {
+ Linker: /* @__PURE__ */ __name((services) => new DefaultLinker(services), "Linker"),
+ NameProvider: /* @__PURE__ */ __name(() => new DefaultNameProvider(), "NameProvider"),
+ ScopeProvider: /* @__PURE__ */ __name((services) => new DefaultScopeProvider(services), "ScopeProvider"),
+ ScopeComputation: /* @__PURE__ */ __name((services) => new DefaultScopeComputation(services), "ScopeComputation"),
+ References: /* @__PURE__ */ __name((services) => new DefaultReferences(services), "References")
+ },
+ serializer: {
+ Hydrator: /* @__PURE__ */ __name((services) => new DefaultHydrator(services), "Hydrator"),
+ JsonSerializer: /* @__PURE__ */ __name((services) => new DefaultJsonSerializer(services), "JsonSerializer")
+ },
+ validation: {
+ DocumentValidator: /* @__PURE__ */ __name((services) => new DefaultDocumentValidator(services), "DocumentValidator"),
+ ValidationRegistry: /* @__PURE__ */ __name((services) => new ValidationRegistry(services), "ValidationRegistry")
+ },
+ shared: /* @__PURE__ */ __name(() => context.shared, "shared")
+ };
+ }
+ function createDefaultSharedCoreModule(context) {
+ return {
+ ServiceRegistry: /* @__PURE__ */ __name(() => new DefaultServiceRegistry(), "ServiceRegistry"),
+ workspace: {
+ LangiumDocuments: /* @__PURE__ */ __name((services) => new DefaultLangiumDocuments(services), "LangiumDocuments"),
+ LangiumDocumentFactory: /* @__PURE__ */ __name((services) => new DefaultLangiumDocumentFactory(services), "LangiumDocumentFactory"),
+ DocumentBuilder: /* @__PURE__ */ __name((services) => new DefaultDocumentBuilder(services), "DocumentBuilder"),
+ IndexManager: /* @__PURE__ */ __name((services) => new DefaultIndexManager(services), "IndexManager"),
+ WorkspaceManager: /* @__PURE__ */ __name((services) => new DefaultWorkspaceManager(services), "WorkspaceManager"),
+ FileSystemProvider: /* @__PURE__ */ __name((services) => context.fileSystemProvider(services), "FileSystemProvider"),
+ WorkspaceLock: /* @__PURE__ */ __name(() => new DefaultWorkspaceLock(), "WorkspaceLock"),
+ ConfigurationProvider: /* @__PURE__ */ __name((services) => new DefaultConfigurationProvider(services), "ConfigurationProvider")
+ }
+ };
+ }
+ var init_default_module = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/default-module.js"() {
+ "use strict";
+ init_grammar_config();
+ init_completion_parser_builder();
+ init_langium_parser_builder();
+ init_token_builder();
+ init_value_converter();
+ init_linker();
+ init_name_provider();
+ init_references();
+ init_scope_computation();
+ init_scope_provider();
+ init_json_serializer();
+ init_service_registry();
+ init_document_validator();
+ init_validation_registry();
+ init_ast_descriptions();
+ init_ast_node_locator();
+ init_configuration();
+ init_document_builder();
+ init_documents();
+ init_index_manager();
+ init_workspace_manager();
+ init_lexer2();
+ init_documentation_provider();
+ init_comment_provider();
+ init_langium_parser();
+ init_async_parser();
+ init_workspace_lock();
+ init_hydrator();
+ __name(createDefaultCoreModule, "createDefaultCoreModule");
+ __name(createDefaultSharedCoreModule, "createDefaultSharedCoreModule");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/dependency-injection.js
+ function inject(module1, module2, module3, module4, module5, module6, module7, module8, module9) {
+ const module10 = [module1, module2, module3, module4, module5, module6, module7, module8, module9].reduce(_merge, {});
+ return _inject(module10);
+ }
+ function eagerLoad(item) {
+ if (item && item[isProxy]) {
+ for (const value2 of Object.values(item)) {
+ eagerLoad(value2);
+ }
+ }
+ return item;
+ }
+ function _inject(module2, injector) {
+ const proxy = new Proxy({}, {
+ deleteProperty: /* @__PURE__ */ __name(() => false, "deleteProperty"),
+ get: /* @__PURE__ */ __name((obj, prop) => _resolve(obj, prop, module2, injector || proxy), "get"),
+ getOwnPropertyDescriptor: /* @__PURE__ */ __name((obj, prop) => (_resolve(obj, prop, module2, injector || proxy), Object.getOwnPropertyDescriptor(obj, prop)), "getOwnPropertyDescriptor"),
+ has: /* @__PURE__ */ __name((_2, prop) => prop in module2, "has"),
+ ownKeys: /* @__PURE__ */ __name(() => [...Reflect.ownKeys(module2), isProxy], "ownKeys")
+ // used by for..in
+ });
+ proxy[isProxy] = true;
+ return proxy;
+ }
+ function _resolve(obj, prop, module2, injector) {
+ if (prop in obj) {
+ if (obj[prop] instanceof Error) {
+ throw new Error("Construction failure. Please make sure that your dependencies are constructable.", { cause: obj[prop] });
+ }
+ if (obj[prop] === __requested__) {
+ throw new Error('Cycle detected. Please make "' + String(prop) + '" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');
+ }
+ return obj[prop];
+ } else if (prop in module2) {
+ const value2 = module2[prop];
+ obj[prop] = __requested__;
+ try {
+ obj[prop] = typeof value2 === "function" ? value2(injector) : _inject(value2, injector);
+ } catch (error3) {
+ obj[prop] = error3 instanceof Error ? error3 : void 0;
+ throw error3;
+ }
+ return obj[prop];
+ } else {
+ return void 0;
+ }
+ }
+ function _merge(target, source) {
+ if (source) {
+ for (const [key, value2] of Object.entries(source)) {
+ if (value2 !== void 0) {
+ const value1 = target[key];
+ if (value1 !== null && value2 !== null && typeof value1 === "object" && typeof value2 === "object") {
+ target[key] = _merge(value1, value2);
+ } else {
+ target[key] = value2;
+ }
+ }
+ }
+ }
+ return target;
+ }
+ var Module, isProxy, __requested__;
+ var init_dependency_injection = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/dependency-injection.js"() {
+ "use strict";
+ (function(Module2) {
+ Module2.merge = (m1, m2) => _merge(_merge({}, m1), m2);
+ })(Module || (Module = {}));
+ __name(inject, "inject");
+ isProxy = Symbol("isProxy");
+ __name(eagerLoad, "eagerLoad");
+ __name(_inject, "_inject");
+ __requested__ = Symbol();
+ __name(_resolve, "_resolve");
+ __name(_merge, "_merge");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/services.js
+ var init_services = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/services.js"() {
+ "use strict";
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/index.js
+ var init_documentation = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/documentation/index.js"() {
+ "use strict";
+ init_comment_provider();
+ init_documentation_provider();
+ init_jsdoc();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/language-meta-data.js
+ var init_language_meta_data = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/language-meta-data.js"() {
+ "use strict";
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/index.js
+ var init_languages = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/languages/index.js"() {
+ "use strict";
+ init_grammar_config();
+ init_language_meta_data();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/parser-config.js
+ var init_parser_config = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/parser-config.js"() {
+ "use strict";
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/index.js
+ var init_parser2 = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/parser/index.js"() {
+ "use strict";
+ init_async_parser();
+ init_completion_parser_builder();
+ init_cst_node_builder();
+ init_langium_parser_builder();
+ init_langium_parser();
+ init_lexer2();
+ init_parser_config();
+ init_token_builder();
+ init_value_converter();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/index.js
+ var init_references2 = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/references/index.js"() {
+ "use strict";
+ init_linker();
+ init_name_provider();
+ init_references();
+ init_scope();
+ init_scope_computation();
+ init_scope_provider();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/serializer/index.js
+ var init_serializer = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/serializer/index.js"() {
+ "use strict";
+ init_hydrator();
+ init_json_serializer();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/file-system-provider.js
+ var EmptyFileSystemProvider, EmptyFileSystem;
+ var init_file_system_provider = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/file-system-provider.js"() {
+ "use strict";
+ EmptyFileSystemProvider = class {
+ static {
+ __name(this, "EmptyFileSystemProvider");
+ }
+ readFile() {
+ throw new Error("No file system is available.");
+ }
+ async readDirectory() {
+ return [];
+ }
+ };
+ EmptyFileSystem = {
+ fileSystemProvider: /* @__PURE__ */ __name(() => new EmptyFileSystemProvider(), "fileSystemProvider")
+ };
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/grammar-loader.js
+ function createMinimalGrammarServices() {
+ const shared = inject(createDefaultSharedCoreModule(EmptyFileSystem), minimalSharedGrammarModule);
+ const grammar = inject(createDefaultCoreModule({ shared }), minimalGrammarModule);
+ shared.ServiceRegistry.register(grammar);
+ return grammar;
+ }
+ function loadGrammarFromJson(json3) {
+ var _a;
+ const services = createMinimalGrammarServices();
+ const astNode = services.serializer.JsonSerializer.deserialize(json3);
+ services.shared.workspace.LangiumDocumentFactory.fromModel(astNode, URI2.parse(`memory://${(_a = astNode.name) !== null && _a !== void 0 ? _a : "grammar"}.langium`));
+ return astNode;
+ }
+ var minimalGrammarModule, minimalSharedGrammarModule;
+ var init_grammar_loader = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/grammar-loader.js"() {
+ "use strict";
+ init_default_module();
+ init_dependency_injection();
+ init_ast();
+ init_file_system_provider();
+ init_uri_utils();
+ minimalGrammarModule = {
+ Grammar: /* @__PURE__ */ __name(() => void 0, "Grammar"),
+ LanguageMetaData: /* @__PURE__ */ __name(() => ({
+ caseInsensitive: false,
+ fileExtensions: [".langium"],
+ languageId: "langium"
+ }), "LanguageMetaData")
+ };
+ minimalSharedGrammarModule = {
+ AstReflection: /* @__PURE__ */ __name(() => new LangiumGrammarAstReflection(), "AstReflection")
+ };
+ __name(createMinimalGrammarServices, "createMinimalGrammarServices");
+ __name(loadGrammarFromJson, "loadGrammarFromJson");
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/index.js
+ var utils_exports = {};
+ __export(utils_exports, {
+ AstUtils: () => ast_utils_exports,
+ BiMap: () => BiMap,
+ Cancellation: () => cancellation_exports,
+ ContextCache: () => ContextCache,
+ CstUtils: () => cst_utils_exports,
+ DONE_RESULT: () => DONE_RESULT,
+ Deferred: () => Deferred,
+ Disposable: () => Disposable,
+ DisposableCache: () => DisposableCache,
+ DocumentCache: () => DocumentCache,
+ EMPTY_STREAM: () => EMPTY_STREAM,
+ ErrorWithLocation: () => ErrorWithLocation,
+ GrammarUtils: () => grammar_utils_exports,
+ MultiMap: () => MultiMap,
+ OperationCancelled: () => OperationCancelled,
+ Reduction: () => Reduction,
+ RegExpUtils: () => regexp_utils_exports,
+ SimpleCache: () => SimpleCache,
+ StreamImpl: () => StreamImpl,
+ TreeStreamImpl: () => TreeStreamImpl,
+ URI: () => URI2,
+ UriUtils: () => UriUtils,
+ WorkspaceCache: () => WorkspaceCache,
+ assertUnreachable: () => assertUnreachable,
+ delayNextTick: () => delayNextTick,
+ interruptAndCheck: () => interruptAndCheck,
+ isOperationCancelled: () => isOperationCancelled,
+ loadGrammarFromJson: () => loadGrammarFromJson,
+ setInterruptionPeriod: () => setInterruptionPeriod,
+ startCancelableOperation: () => startCancelableOperation,
+ stream: () => stream
+ });
+ var init_utils4 = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/utils/index.js"() {
+ "use strict";
+ init_caching();
+ init_event3();
+ __reExport(utils_exports, event_exports);
+ init_collections();
+ init_disposable();
+ init_errors2();
+ init_grammar_loader();
+ init_promise_utils();
+ init_stream();
+ init_uri_utils();
+ init_ast_utils();
+ init_cancellation();
+ init_cst_utils();
+ init_grammar_utils();
+ init_regexp_utils();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/validation/index.js
+ var init_validation = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/validation/index.js"() {
+ "use strict";
+ init_document_validator();
+ init_validation_registry();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/index.js
+ var init_workspace = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/workspace/index.js"() {
+ "use strict";
+ init_ast_descriptions();
+ init_ast_node_locator();
+ init_configuration();
+ init_document_builder();
+ init_documents();
+ init_file_system_provider();
+ init_index_manager();
+ init_workspace_lock();
+ init_workspace_manager();
+ }
+ });
+
+ // ../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/index.js
+ var lib_exports = {};
+ __export(lib_exports, {
+ AbstractAstReflection: () => AbstractAstReflection,
+ AbstractCstNode: () => AbstractCstNode,
+ AbstractLangiumParser: () => AbstractLangiumParser,
+ AbstractParserErrorMessageProvider: () => AbstractParserErrorMessageProvider,
+ AbstractThreadedAsyncParser: () => AbstractThreadedAsyncParser,
+ AstUtils: () => ast_utils_exports,
+ BiMap: () => BiMap,
+ Cancellation: () => cancellation_exports,
+ CompositeCstNodeImpl: () => CompositeCstNodeImpl,
+ ContextCache: () => ContextCache,
+ CstNodeBuilder: () => CstNodeBuilder,
+ CstUtils: () => cst_utils_exports,
+ DONE_RESULT: () => DONE_RESULT,
+ DatatypeSymbol: () => DatatypeSymbol,
+ DefaultAstNodeDescriptionProvider: () => DefaultAstNodeDescriptionProvider,
+ DefaultAstNodeLocator: () => DefaultAstNodeLocator,
+ DefaultAsyncParser: () => DefaultAsyncParser,
+ DefaultCommentProvider: () => DefaultCommentProvider,
+ DefaultConfigurationProvider: () => DefaultConfigurationProvider,
+ DefaultDocumentBuilder: () => DefaultDocumentBuilder,
+ DefaultDocumentValidator: () => DefaultDocumentValidator,
+ DefaultHydrator: () => DefaultHydrator,
+ DefaultIndexManager: () => DefaultIndexManager,
+ DefaultJsonSerializer: () => DefaultJsonSerializer,
+ DefaultLangiumDocumentFactory: () => DefaultLangiumDocumentFactory,
+ DefaultLangiumDocuments: () => DefaultLangiumDocuments,
+ DefaultLexer: () => DefaultLexer,
+ DefaultLinker: () => DefaultLinker,
+ DefaultNameProvider: () => DefaultNameProvider,
+ DefaultReferenceDescriptionProvider: () => DefaultReferenceDescriptionProvider,
+ DefaultReferences: () => DefaultReferences,
+ DefaultScopeComputation: () => DefaultScopeComputation,
+ DefaultScopeProvider: () => DefaultScopeProvider,
+ DefaultServiceRegistry: () => DefaultServiceRegistry,
+ DefaultTokenBuilder: () => DefaultTokenBuilder,
+ DefaultValueConverter: () => DefaultValueConverter,
+ DefaultWorkspaceLock: () => DefaultWorkspaceLock,
+ DefaultWorkspaceManager: () => DefaultWorkspaceManager,
+ Deferred: () => Deferred,
+ Disposable: () => Disposable,
+ DisposableCache: () => DisposableCache,
+ DocumentCache: () => DocumentCache,
+ DocumentState: () => DocumentState,
+ DocumentValidator: () => DocumentValidator,
+ EMPTY_SCOPE: () => EMPTY_SCOPE,
+ EMPTY_STREAM: () => EMPTY_STREAM,
+ EmptyFileSystem: () => EmptyFileSystem,
+ EmptyFileSystemProvider: () => EmptyFileSystemProvider,
+ ErrorWithLocation: () => ErrorWithLocation,
+ GrammarAST: () => ast_exports,
+ GrammarUtils: () => grammar_utils_exports,
+ JSDocDocumentationProvider: () => JSDocDocumentationProvider,
+ LangiumCompletionParser: () => LangiumCompletionParser,
+ LangiumParser: () => LangiumParser,
+ LangiumParserErrorMessageProvider: () => LangiumParserErrorMessageProvider,
+ LeafCstNodeImpl: () => LeafCstNodeImpl,
+ MapScope: () => MapScope,
+ Module: () => Module,
+ MultiMap: () => MultiMap,
+ OperationCancelled: () => OperationCancelled,
+ ParserWorker: () => ParserWorker,
+ Reduction: () => Reduction,
+ RegExpUtils: () => regexp_utils_exports,
+ RootCstNodeImpl: () => RootCstNodeImpl,
+ SimpleCache: () => SimpleCache,
+ StreamImpl: () => StreamImpl,
+ StreamScope: () => StreamScope,
+ TextDocument: () => TextDocument2,
+ TreeStreamImpl: () => TreeStreamImpl,
+ URI: () => URI2,
+ UriUtils: () => UriUtils,
+ ValidationCategory: () => ValidationCategory,
+ ValidationRegistry: () => ValidationRegistry,
+ ValueConverter: () => ValueConverter,
+ WorkspaceCache: () => WorkspaceCache,
+ assertUnreachable: () => assertUnreachable,
+ createCompletionParser: () => createCompletionParser,
+ createDefaultCoreModule: () => createDefaultCoreModule,
+ createDefaultSharedCoreModule: () => createDefaultSharedCoreModule,
+ createGrammarConfig: () => createGrammarConfig,
+ createLangiumParser: () => createLangiumParser,
+ delayNextTick: () => delayNextTick,
+ diagnosticData: () => diagnosticData,
+ eagerLoad: () => eagerLoad,
+ getDiagnosticRange: () => getDiagnosticRange,
+ inject: () => inject,
+ interruptAndCheck: () => interruptAndCheck,
+ isAstNode: () => isAstNode,
+ isAstNodeDescription: () => isAstNodeDescription,
+ isAstNodeWithComment: () => isAstNodeWithComment,
+ isCompositeCstNode: () => isCompositeCstNode,
+ isIMultiModeLexerDefinition: () => isIMultiModeLexerDefinition,
+ isJSDoc: () => isJSDoc,
+ isLeafCstNode: () => isLeafCstNode,
+ isLinkingError: () => isLinkingError,
+ isNamed: () => isNamed,
+ isOperationCancelled: () => isOperationCancelled,
+ isReference: () => isReference,
+ isRootCstNode: () => isRootCstNode,
+ isTokenTypeArray: () => isTokenTypeArray,
+ isTokenTypeDictionary: () => isTokenTypeDictionary,
+ loadGrammarFromJson: () => loadGrammarFromJson,
+ parseJSDoc: () => parseJSDoc,
+ prepareLangiumParser: () => prepareLangiumParser,
+ setInterruptionPeriod: () => setInterruptionPeriod,
+ startCancelableOperation: () => startCancelableOperation,
+ stream: () => stream,
+ toDiagnosticSeverity: () => toDiagnosticSeverity
+ });
+ var init_lib3 = __esm({
+ "../../node_modules/.pnpm/langium@3.0.0/node_modules/langium/lib/index.js"() {
+ "use strict";
+ init_default_module();
+ init_dependency_injection();
+ init_service_registry();
+ init_services();
+ init_syntax_tree();
+ init_documentation();
+ init_languages();
+ init_parser2();
+ init_references2();
+ init_serializer();
+ init_utils4();
+ __reExport(lib_exports, utils_exports);
+ init_validation();
+ init_workspace();
+ init_ast();
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/chunk-Y27MQZ3U.mjs
+ function isArchitecture(item) {
+ return reflection2.isInstance(item, Architecture);
+ }
+ function isBranch(item) {
+ return reflection2.isInstance(item, Branch);
+ }
+ function isCommit(item) {
+ return reflection2.isInstance(item, Commit);
+ }
+ function isCommon(item) {
+ return reflection2.isInstance(item, Common);
+ }
+ function isGitGraph(item) {
+ return reflection2.isInstance(item, GitGraph);
+ }
+ function isInfo(item) {
+ return reflection2.isInstance(item, Info);
+ }
+ function isMerge(item) {
+ return reflection2.isInstance(item, Merge);
+ }
+ function isPacket(item) {
+ return reflection2.isInstance(item, Packet);
+ }
+ function isPacketBlock(item) {
+ return reflection2.isInstance(item, PacketBlock);
+ }
+ function isPie(item) {
+ return reflection2.isInstance(item, Pie);
+ }
+ function isPieSection(item) {
+ return reflection2.isInstance(item, PieSection);
+ }
+ var __defProp2, __name2, Statement, Architecture, Branch, Checkout, CherryPicking, Commit, Common, GitGraph, Info, Merge, Packet, PacketBlock, Pie, PieSection, Direction, MermaidAstReflection, reflection2, loadedInfoGrammar, InfoGrammar, loadedPacketGrammar, PacketGrammar, loadedPieGrammar, PieGrammar, loadedArchitectureGrammar, ArchitectureGrammar, loadedGitGraphGrammar, GitGraphGrammar, InfoLanguageMetaData, PacketLanguageMetaData, PieLanguageMetaData, ArchitectureLanguageMetaData, GitGraphLanguageMetaData, MermaidGeneratedSharedModule, InfoGeneratedModule, PacketGeneratedModule, PieGeneratedModule, ArchitectureGeneratedModule, GitGraphGeneratedModule, accessibilityDescrRegex, accessibilityTitleRegex, titleRegex, rulesRegexes, AbstractMermaidValueConverter, CommonValueConverter, AbstractMermaidTokenBuilder, CommonTokenBuilder;
+ var init_chunk_Y27MQZ3U = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/chunk-Y27MQZ3U.mjs"() {
+ "use strict";
+ init_lib3();
+ init_lib3();
+ init_lib3();
+ init_lib3();
+ __defProp2 = Object.defineProperty;
+ __name2 = /* @__PURE__ */ __name((target, value2) => __defProp2(target, "name", { value: value2, configurable: true }), "__name");
+ Statement = "Statement";
+ Architecture = "Architecture";
+ __name(isArchitecture, "isArchitecture");
+ __name2(isArchitecture, "isArchitecture");
+ Branch = "Branch";
+ __name(isBranch, "isBranch");
+ __name2(isBranch, "isBranch");
+ Checkout = "Checkout";
+ CherryPicking = "CherryPicking";
+ Commit = "Commit";
+ __name(isCommit, "isCommit");
+ __name2(isCommit, "isCommit");
+ Common = "Common";
+ __name(isCommon, "isCommon");
+ __name2(isCommon, "isCommon");
+ GitGraph = "GitGraph";
+ __name(isGitGraph, "isGitGraph");
+ __name2(isGitGraph, "isGitGraph");
+ Info = "Info";
+ __name(isInfo, "isInfo");
+ __name2(isInfo, "isInfo");
+ Merge = "Merge";
+ __name(isMerge, "isMerge");
+ __name2(isMerge, "isMerge");
+ Packet = "Packet";
+ __name(isPacket, "isPacket");
+ __name2(isPacket, "isPacket");
+ PacketBlock = "PacketBlock";
+ __name(isPacketBlock, "isPacketBlock");
+ __name2(isPacketBlock, "isPacketBlock");
+ Pie = "Pie";
+ __name(isPie, "isPie");
+ __name2(isPie, "isPie");
+ PieSection = "PieSection";
+ __name(isPieSection, "isPieSection");
+ __name2(isPieSection, "isPieSection");
+ Direction = "Direction";
+ MermaidAstReflection = class extends AbstractAstReflection {
+ static {
+ __name(this, "MermaidAstReflection");
+ }
+ static {
+ __name2(this, "MermaidAstReflection");
+ }
+ getAllTypes() {
+ return ["Architecture", "Branch", "Checkout", "CherryPicking", "Commit", "Common", "Direction", "Edge", "GitGraph", "Group", "Info", "Junction", "Merge", "Packet", "PacketBlock", "Pie", "PieSection", "Service", "Statement"];
+ }
+ computeIsSubtype(subtype, supertype) {
+ switch (subtype) {
+ case Branch:
+ case Checkout:
+ case CherryPicking:
+ case Commit:
+ case Merge: {
+ return this.isSubtype(Statement, supertype);
+ }
+ case Direction: {
+ return this.isSubtype(GitGraph, supertype);
+ }
+ default: {
+ return false;
}
- function lIc(a) {
- this.a = a;
+ }
+ }
+ getReferenceType(refInfo) {
+ const referenceId = `${refInfo.container.$type}:${refInfo.property}`;
+ switch (referenceId) {
+ default: {
+ throw new Error(`${referenceId} is not a valid reference id.`);
}
- function pIc(a) {
- this.a = a;
+ }
+ }
+ getTypeMetaData(type3) {
+ switch (type3) {
+ case "Architecture": {
+ return {
+ name: "Architecture",
+ properties: [
+ { name: "accDescr" },
+ { name: "accTitle" },
+ { name: "edges", defaultValue: [] },
+ { name: "groups", defaultValue: [] },
+ { name: "junctions", defaultValue: [] },
+ { name: "services", defaultValue: [] },
+ { name: "title" }
+ ]
+ };
}
- function tIc(a) {
- this.a = a;
+ case "Branch": {
+ return {
+ name: "Branch",
+ properties: [
+ { name: "name" },
+ { name: "order" }
+ ]
+ };
}
- function xIc(a) {
- this.a = a;
+ case "Checkout": {
+ return {
+ name: "Checkout",
+ properties: [
+ { name: "branch" }
+ ]
+ };
}
- function zIc(a) {
- this.a = a;
+ case "CherryPicking": {
+ return {
+ name: "CherryPicking",
+ properties: [
+ { name: "id" },
+ { name: "parent" },
+ { name: "tags", defaultValue: [] }
+ ]
+ };
}
- function CIc(a) {
- this.a = a;
+ case "Commit": {
+ return {
+ name: "Commit",
+ properties: [
+ { name: "id" },
+ { name: "message" },
+ { name: "tags", defaultValue: [] },
+ { name: "type" }
+ ]
+ };
}
- function LIc(a) {
- this.a = a;
+ case "Common": {
+ return {
+ name: "Common",
+ properties: [
+ { name: "accDescr" },
+ { name: "accTitle" },
+ { name: "title" }
+ ]
+ };
}
- function CKc(a) {
- this.a = a;
+ case "Edge": {
+ return {
+ name: "Edge",
+ properties: [
+ { name: "lhsDir" },
+ { name: "lhsGroup", defaultValue: false },
+ { name: "lhsId" },
+ { name: "lhsInto", defaultValue: false },
+ { name: "rhsDir" },
+ { name: "rhsGroup", defaultValue: false },
+ { name: "rhsId" },
+ { name: "rhsInto", defaultValue: false },
+ { name: "title" }
+ ]
+ };
}
- function IKc(a) {
- this.a = a;
+ case "GitGraph": {
+ return {
+ name: "GitGraph",
+ properties: [
+ { name: "accDescr" },
+ { name: "accTitle" },
+ { name: "statements", defaultValue: [] },
+ { name: "title" }
+ ]
+ };
}
- function MKc(a) {
- this.a = a;
+ case "Group": {
+ return {
+ name: "Group",
+ properties: [
+ { name: "icon" },
+ { name: "id" },
+ { name: "in" },
+ { name: "title" }
+ ]
+ };
}
- function $Kc(a) {
- this.a = a;
+ case "Info": {
+ return {
+ name: "Info",
+ properties: [
+ { name: "accDescr" },
+ { name: "accTitle" },
+ { name: "title" }
+ ]
+ };
}
- function cLc(a) {
- this.a = a;
+ case "Junction": {
+ return {
+ name: "Junction",
+ properties: [
+ { name: "id" },
+ { name: "in" }
+ ]
+ };
}
- function jLc(a) {
- this.a = a;
+ case "Merge": {
+ return {
+ name: "Merge",
+ properties: [
+ { name: "branch" },
+ { name: "id" },
+ { name: "tags", defaultValue: [] },
+ { name: "type" }
+ ]
+ };
}
- function rLc(a) {
- this.a = a;
+ case "Packet": {
+ return {
+ name: "Packet",
+ properties: [
+ { name: "accDescr" },
+ { name: "accTitle" },
+ { name: "blocks", defaultValue: [] },
+ { name: "title" }
+ ]
+ };
}
- function xLc(a) {
- this.a = a;
+ case "PacketBlock": {
+ return {
+ name: "PacketBlock",
+ properties: [
+ { name: "end" },
+ { name: "label" },
+ { name: "start" }
+ ]
+ };
}
- function OMc(a) {
- this.a = a;
+ case "Pie": {
+ return {
+ name: "Pie",
+ properties: [
+ { name: "accDescr" },
+ { name: "accTitle" },
+ { name: "sections", defaultValue: [] },
+ { name: "showData", defaultValue: false },
+ { name: "title" }
+ ]
+ };
}
- function ZOc(a) {
- this.a = a;
+ case "PieSection": {
+ return {
+ name: "PieSection",
+ properties: [
+ { name: "label" },
+ { name: "value" }
+ ]
+ };
}
- function ZRc(a) {
- this.a = a;
+ case "Service": {
+ return {
+ name: "Service",
+ properties: [
+ { name: "icon" },
+ { name: "iconText" },
+ { name: "id" },
+ { name: "in" },
+ { name: "title" }
+ ]
+ };
}
- function aSc(a) {
- this.a = a;
+ case "Direction": {
+ return {
+ name: "Direction",
+ properties: [
+ { name: "accDescr" },
+ { name: "accTitle" },
+ { name: "dir" },
+ { name: "statements", defaultValue: [] },
+ { name: "title" }
+ ]
+ };
}
- function I$c(a) {
- this.a = a;
+ default: {
+ return {
+ name: type3,
+ properties: []
+ };
}
- function K$c(a) {
- this.a = a;
+ }
+ }
+ };
+ reflection2 = new MermaidAstReflection();
+ InfoGrammar = /* @__PURE__ */ __name2(() => loadedInfoGrammar ?? (loadedInfoGrammar = loadGrammarFromJson('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')), "InfoGrammar");
+ PacketGrammar = /* @__PURE__ */ __name2(() => loadedPacketGrammar ?? (loadedPacketGrammar = loadGrammarFromJson(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)), "PacketGrammar");
+ PieGrammar = /* @__PURE__ */ __name2(() => loadedPieGrammar ?? (loadedPieGrammar = loadGrammarFromJson('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')), "PieGrammar");
+ ArchitectureGrammar = /* @__PURE__ */ __name2(() => loadedArchitectureGrammar ?? (loadedArchitectureGrammar = loadGrammarFromJson('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')), "ArchitectureGrammar");
+ GitGraphGrammar = /* @__PURE__ */ __name2(() => loadedGitGraphGrammar ?? (loadedGitGraphGrammar = loadGrammarFromJson(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)), "GitGraphGrammar");
+ InfoLanguageMetaData = {
+ languageId: "info",
+ fileExtensions: [".mmd", ".mermaid"],
+ caseInsensitive: false
+ };
+ PacketLanguageMetaData = {
+ languageId: "packet",
+ fileExtensions: [".mmd", ".mermaid"],
+ caseInsensitive: false
+ };
+ PieLanguageMetaData = {
+ languageId: "pie",
+ fileExtensions: [".mmd", ".mermaid"],
+ caseInsensitive: false
+ };
+ ArchitectureLanguageMetaData = {
+ languageId: "architecture",
+ fileExtensions: [".mmd", ".mermaid"],
+ caseInsensitive: false
+ };
+ GitGraphLanguageMetaData = {
+ languageId: "gitGraph",
+ fileExtensions: [".mmd", ".mermaid"],
+ caseInsensitive: false
+ };
+ MermaidGeneratedSharedModule = {
+ AstReflection: /* @__PURE__ */ __name2(() => new MermaidAstReflection(), "AstReflection")
+ };
+ InfoGeneratedModule = {
+ Grammar: /* @__PURE__ */ __name2(() => InfoGrammar(), "Grammar"),
+ LanguageMetaData: /* @__PURE__ */ __name2(() => InfoLanguageMetaData, "LanguageMetaData"),
+ parser: {}
+ };
+ PacketGeneratedModule = {
+ Grammar: /* @__PURE__ */ __name2(() => PacketGrammar(), "Grammar"),
+ LanguageMetaData: /* @__PURE__ */ __name2(() => PacketLanguageMetaData, "LanguageMetaData"),
+ parser: {}
+ };
+ PieGeneratedModule = {
+ Grammar: /* @__PURE__ */ __name2(() => PieGrammar(), "Grammar"),
+ LanguageMetaData: /* @__PURE__ */ __name2(() => PieLanguageMetaData, "LanguageMetaData"),
+ parser: {}
+ };
+ ArchitectureGeneratedModule = {
+ Grammar: /* @__PURE__ */ __name2(() => ArchitectureGrammar(), "Grammar"),
+ LanguageMetaData: /* @__PURE__ */ __name2(() => ArchitectureLanguageMetaData, "LanguageMetaData"),
+ parser: {}
+ };
+ GitGraphGeneratedModule = {
+ Grammar: /* @__PURE__ */ __name2(() => GitGraphGrammar(), "Grammar"),
+ LanguageMetaData: /* @__PURE__ */ __name2(() => GitGraphLanguageMetaData, "LanguageMetaData"),
+ parser: {}
+ };
+ accessibilityDescrRegex = /accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/;
+ accessibilityTitleRegex = /accTitle[\t ]*:([^\n\r]*)/;
+ titleRegex = /title([\t ][^\n\r]*|)/;
+ rulesRegexes = {
+ ACC_DESCR: accessibilityDescrRegex,
+ ACC_TITLE: accessibilityTitleRegex,
+ TITLE: titleRegex
+ };
+ AbstractMermaidValueConverter = class extends DefaultValueConverter {
+ static {
+ __name(this, "AbstractMermaidValueConverter");
+ }
+ static {
+ __name2(this, "AbstractMermaidValueConverter");
+ }
+ runConverter(rule, input, cstNode) {
+ let value2 = this.runCommonConverter(rule, input, cstNode);
+ if (value2 === void 0) {
+ value2 = this.runCustomConverter(rule, input, cstNode);
+ }
+ if (value2 === void 0) {
+ return super.runConverter(rule, input, cstNode);
+ }
+ return value2;
+ }
+ runCommonConverter(rule, input, _cstNode) {
+ const regex2 = rulesRegexes[rule.name];
+ if (regex2 === void 0) {
+ return void 0;
+ }
+ const match2 = regex2.exec(input);
+ if (match2 === null) {
+ return void 0;
+ }
+ if (match2[1] !== void 0) {
+ return match2[1].trim().replace(/[\t ]{2,}/gm, " ");
+ }
+ if (match2[2] !== void 0) {
+ return match2[2].replace(/^\s*/gm, "").replace(/\s+$/gm, "").replace(/[\t ]{2,}/gm, " ").replace(/[\n\r]{2,}/gm, "\n");
+ }
+ return void 0;
+ }
+ };
+ CommonValueConverter = class extends AbstractMermaidValueConverter {
+ static {
+ __name(this, "CommonValueConverter");
+ }
+ static {
+ __name2(this, "CommonValueConverter");
+ }
+ runCustomConverter(_rule, _input, _cstNode) {
+ return void 0;
+ }
+ };
+ AbstractMermaidTokenBuilder = class extends DefaultTokenBuilder {
+ static {
+ __name(this, "AbstractMermaidTokenBuilder");
+ }
+ static {
+ __name2(this, "AbstractMermaidTokenBuilder");
+ }
+ constructor(keywords) {
+ super();
+ this.keywords = new Set(keywords);
+ }
+ buildKeywordTokens(rules, terminalTokens, options3) {
+ const tokenTypes = super.buildKeywordTokens(rules, terminalTokens, options3);
+ tokenTypes.forEach((tokenType) => {
+ if (this.keywords.has(tokenType.name) && tokenType.PATTERN !== void 0) {
+ tokenType.PATTERN = new RegExp(tokenType.PATTERN.toString() + "(?:(?=%%)|(?!\\S))");
}
- function M$c(a) {
- this.a = a;
- }
- function O$c(a) {
- this.a = a;
- }
- function U$c(a) {
- this.a = a;
- }
- function n1c(a) {
- this.a = a;
- }
- function z1c(a) {
- this.a = a;
- }
- function B1c(a) {
- this.a = a;
- }
- function Q2c(a) {
- this.a = a;
- }
- function U2c(a) {
- this.a = a;
- }
- function z3c(a) {
- this.a = a;
- }
- function med(a) {
- this.a = a;
- }
- function Xed(a) {
- this.a = a;
- }
- function _ed(a) {
- this.a = a;
- }
- function Qfd(a) {
- this.a = a;
- }
- function Bgd(a) {
- this.a = a;
- }
- function $gd(a) {
- this.a = a;
- }
- function lrd(a) {
- this.a = a;
- }
- function urd(a) {
- this.a = a;
- }
- function vrd(a) {
- this.a = a;
- }
- function wrd(a) {
- this.a = a;
- }
- function xrd(a) {
- this.a = a;
+ });
+ return tokenTypes;
+ }
+ };
+ CommonTokenBuilder = class extends AbstractMermaidTokenBuilder {
+ static {
+ __name(this, "CommonTokenBuilder");
+ }
+ static {
+ __name2(this, "CommonTokenBuilder");
+ }
+ };
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/chunk-NCMFTTUW.mjs
+ function createGitGraphServices(context = EmptyFileSystem) {
+ const shared = inject(
+ createDefaultSharedCoreModule(context),
+ MermaidGeneratedSharedModule
+ );
+ const GitGraph2 = inject(
+ createDefaultCoreModule({ shared }),
+ GitGraphGeneratedModule,
+ GitGraphModule
+ );
+ shared.ServiceRegistry.register(GitGraph2);
+ return { shared, GitGraph: GitGraph2 };
+ }
+ var GitGraphTokenBuilder, GitGraphModule;
+ var init_chunk_NCMFTTUW = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/chunk-NCMFTTUW.mjs"() {
+ "use strict";
+ init_chunk_Y27MQZ3U();
+ init_lib3();
+ GitGraphTokenBuilder = class extends AbstractMermaidTokenBuilder {
+ static {
+ __name(this, "GitGraphTokenBuilder");
+ }
+ static {
+ __name2(this, "GitGraphTokenBuilder");
+ }
+ constructor() {
+ super(["gitGraph"]);
+ }
+ };
+ GitGraphModule = {
+ parser: {
+ TokenBuilder: /* @__PURE__ */ __name2(() => new GitGraphTokenBuilder(), "TokenBuilder"),
+ ValueConverter: /* @__PURE__ */ __name2(() => new CommonValueConverter(), "ValueConverter")
+ }
+ };
+ __name(createGitGraphServices, "createGitGraphServices");
+ __name2(createGitGraphServices, "createGitGraphServices");
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/chunk-4YFB5VUC.mjs
+ function createInfoServices(context = EmptyFileSystem) {
+ const shared = inject(
+ createDefaultSharedCoreModule(context),
+ MermaidGeneratedSharedModule
+ );
+ const Info2 = inject(
+ createDefaultCoreModule({ shared }),
+ InfoGeneratedModule,
+ InfoModule
+ );
+ shared.ServiceRegistry.register(Info2);
+ return { shared, Info: Info2 };
+ }
+ var InfoTokenBuilder, InfoModule;
+ var init_chunk_4YFB5VUC = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/chunk-4YFB5VUC.mjs"() {
+ "use strict";
+ init_chunk_Y27MQZ3U();
+ init_lib3();
+ InfoTokenBuilder = class extends AbstractMermaidTokenBuilder {
+ static {
+ __name(this, "InfoTokenBuilder");
+ }
+ static {
+ __name2(this, "InfoTokenBuilder");
+ }
+ constructor() {
+ super(["info", "showInfo"]);
+ }
+ };
+ InfoModule = {
+ parser: {
+ TokenBuilder: /* @__PURE__ */ __name2(() => new InfoTokenBuilder(), "TokenBuilder"),
+ ValueConverter: /* @__PURE__ */ __name2(() => new CommonValueConverter(), "ValueConverter")
+ }
+ };
+ __name(createInfoServices, "createInfoServices");
+ __name2(createInfoServices, "createInfoServices");
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/chunk-EQFLFMNE.mjs
+ function createPacketServices(context = EmptyFileSystem) {
+ const shared = inject(
+ createDefaultSharedCoreModule(context),
+ MermaidGeneratedSharedModule
+ );
+ const Packet2 = inject(
+ createDefaultCoreModule({ shared }),
+ PacketGeneratedModule,
+ PacketModule
+ );
+ shared.ServiceRegistry.register(Packet2);
+ return { shared, Packet: Packet2 };
+ }
+ var PacketTokenBuilder, PacketModule;
+ var init_chunk_EQFLFMNE = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/chunk-EQFLFMNE.mjs"() {
+ "use strict";
+ init_chunk_Y27MQZ3U();
+ init_lib3();
+ PacketTokenBuilder = class extends AbstractMermaidTokenBuilder {
+ static {
+ __name(this, "PacketTokenBuilder");
+ }
+ static {
+ __name2(this, "PacketTokenBuilder");
+ }
+ constructor() {
+ super(["packet-beta"]);
+ }
+ };
+ PacketModule = {
+ parser: {
+ TokenBuilder: /* @__PURE__ */ __name2(() => new PacketTokenBuilder(), "TokenBuilder"),
+ ValueConverter: /* @__PURE__ */ __name2(() => new CommonValueConverter(), "ValueConverter")
+ }
+ };
+ __name(createPacketServices, "createPacketServices");
+ __name2(createPacketServices, "createPacketServices");
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/chunk-BI6EQKOQ.mjs
+ function createPieServices(context = EmptyFileSystem) {
+ const shared = inject(
+ createDefaultSharedCoreModule(context),
+ MermaidGeneratedSharedModule
+ );
+ const Pie2 = inject(
+ createDefaultCoreModule({ shared }),
+ PieGeneratedModule,
+ PieModule
+ );
+ shared.ServiceRegistry.register(Pie2);
+ return { shared, Pie: Pie2 };
+ }
+ var PieTokenBuilder, PieValueConverter, PieModule;
+ var init_chunk_BI6EQKOQ = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/chunk-BI6EQKOQ.mjs"() {
+ "use strict";
+ init_chunk_Y27MQZ3U();
+ init_lib3();
+ PieTokenBuilder = class extends AbstractMermaidTokenBuilder {
+ static {
+ __name(this, "PieTokenBuilder");
+ }
+ static {
+ __name2(this, "PieTokenBuilder");
+ }
+ constructor() {
+ super(["pie", "showData"]);
+ }
+ };
+ PieValueConverter = class extends AbstractMermaidValueConverter {
+ static {
+ __name(this, "PieValueConverter");
+ }
+ static {
+ __name2(this, "PieValueConverter");
+ }
+ runCustomConverter(rule, input, _cstNode) {
+ if (rule.name !== "PIE_SECTION_LABEL") {
+ return void 0;
+ }
+ return input.replace(/"/g, "").trim();
+ }
+ };
+ PieModule = {
+ parser: {
+ TokenBuilder: /* @__PURE__ */ __name2(() => new PieTokenBuilder(), "TokenBuilder"),
+ ValueConverter: /* @__PURE__ */ __name2(() => new PieValueConverter(), "ValueConverter")
+ }
+ };
+ __name(createPieServices, "createPieServices");
+ __name2(createPieServices, "createPieServices");
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/chunk-FF7BQXOH.mjs
+ function createArchitectureServices(context = EmptyFileSystem) {
+ const shared = inject(
+ createDefaultSharedCoreModule(context),
+ MermaidGeneratedSharedModule
+ );
+ const Architecture2 = inject(
+ createDefaultCoreModule({ shared }),
+ ArchitectureGeneratedModule,
+ ArchitectureModule
+ );
+ shared.ServiceRegistry.register(Architecture2);
+ return { shared, Architecture: Architecture2 };
+ }
+ var ArchitectureTokenBuilder, ArchitectureValueConverter, ArchitectureModule;
+ var init_chunk_FF7BQXOH = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/chunk-FF7BQXOH.mjs"() {
+ "use strict";
+ init_chunk_Y27MQZ3U();
+ init_lib3();
+ ArchitectureTokenBuilder = class extends AbstractMermaidTokenBuilder {
+ static {
+ __name(this, "ArchitectureTokenBuilder");
+ }
+ static {
+ __name2(this, "ArchitectureTokenBuilder");
+ }
+ constructor() {
+ super(["architecture"]);
+ }
+ };
+ ArchitectureValueConverter = class extends AbstractMermaidValueConverter {
+ static {
+ __name(this, "ArchitectureValueConverter");
+ }
+ static {
+ __name2(this, "ArchitectureValueConverter");
+ }
+ runCustomConverter(rule, input, _cstNode) {
+ if (rule.name === "ARCH_ICON") {
+ return input.replace(/[()]/g, "").trim();
+ } else if (rule.name === "ARCH_TEXT_ICON") {
+ return input.replace(/["()]/g, "");
+ } else if (rule.name === "ARCH_TITLE") {
+ return input.replace(/[[\]]/g, "").trim();
+ }
+ return void 0;
+ }
+ };
+ ArchitectureModule = {
+ parser: {
+ TokenBuilder: /* @__PURE__ */ __name2(() => new ArchitectureTokenBuilder(), "TokenBuilder"),
+ ValueConverter: /* @__PURE__ */ __name2(() => new ArchitectureValueConverter(), "ValueConverter")
+ }
+ };
+ __name(createArchitectureServices, "createArchitectureServices");
+ __name2(createArchitectureServices, "createArchitectureServices");
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/info-46DW6VJ7.mjs
+ var info_46DW6VJ7_exports = {};
+ __export(info_46DW6VJ7_exports, {
+ InfoModule: () => InfoModule,
+ createInfoServices: () => createInfoServices
+ });
+ var init_info_46DW6VJ7 = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/info-46DW6VJ7.mjs"() {
+ "use strict";
+ init_chunk_4YFB5VUC();
+ init_chunk_Y27MQZ3U();
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/packet-W2GHVCYJ.mjs
+ var packet_W2GHVCYJ_exports = {};
+ __export(packet_W2GHVCYJ_exports, {
+ PacketModule: () => PacketModule,
+ createPacketServices: () => createPacketServices
+ });
+ var init_packet_W2GHVCYJ = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/packet-W2GHVCYJ.mjs"() {
+ "use strict";
+ init_chunk_EQFLFMNE();
+ init_chunk_Y27MQZ3U();
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/pie-BEWT4RHE.mjs
+ var pie_BEWT4RHE_exports = {};
+ __export(pie_BEWT4RHE_exports, {
+ PieModule: () => PieModule,
+ createPieServices: () => createPieServices
+ });
+ var init_pie_BEWT4RHE = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/pie-BEWT4RHE.mjs"() {
+ "use strict";
+ init_chunk_BI6EQKOQ();
+ init_chunk_Y27MQZ3U();
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/architecture-I3QFYML2.mjs
+ var architecture_I3QFYML2_exports = {};
+ __export(architecture_I3QFYML2_exports, {
+ ArchitectureModule: () => ArchitectureModule,
+ createArchitectureServices: () => createArchitectureServices
+ });
+ var init_architecture_I3QFYML2 = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/architecture-I3QFYML2.mjs"() {
+ "use strict";
+ init_chunk_FF7BQXOH();
+ init_chunk_Y27MQZ3U();
+ }
+ });
+
+ // ../parser/dist/chunks/mermaid-parser.core/gitGraph-YCYPL57B.mjs
+ var gitGraph_YCYPL57B_exports = {};
+ __export(gitGraph_YCYPL57B_exports, {
+ GitGraphModule: () => GitGraphModule,
+ createGitGraphServices: () => createGitGraphServices
+ });
+ var init_gitGraph_YCYPL57B = __esm({
+ "../parser/dist/chunks/mermaid-parser.core/gitGraph-YCYPL57B.mjs"() {
+ "use strict";
+ init_chunk_NCMFTTUW();
+ init_chunk_Y27MQZ3U();
+ }
+ });
+
+ // ../parser/dist/mermaid-parser.core.mjs
+ async function parse2(diagramType, text2) {
+ const initializer = initializers[diagramType];
+ if (!initializer) {
+ throw new Error(`Unknown diagram type: ${diagramType}`);
+ }
+ if (!parsers[diagramType]) {
+ await initializer();
+ }
+ const parser22 = parsers[diagramType];
+ const result = parser22.parse(text2);
+ if (result.lexerErrors.length > 0 || result.parserErrors.length > 0) {
+ throw new MermaidParseError(result);
+ }
+ return result.value;
+ }
+ var parsers, initializers, MermaidParseError;
+ var init_mermaid_parser_core = __esm({
+ "../parser/dist/mermaid-parser.core.mjs"() {
+ "use strict";
+ init_chunk_NCMFTTUW();
+ init_chunk_4YFB5VUC();
+ init_chunk_EQFLFMNE();
+ init_chunk_BI6EQKOQ();
+ init_chunk_FF7BQXOH();
+ init_chunk_Y27MQZ3U();
+ parsers = {};
+ initializers = {
+ info: /* @__PURE__ */ __name2(async () => {
+ const { createInfoServices: createInfoServices2 } = await Promise.resolve().then(() => (init_info_46DW6VJ7(), info_46DW6VJ7_exports));
+ const parser22 = createInfoServices2().Info.parser.LangiumParser;
+ parsers.info = parser22;
+ }, "info"),
+ packet: /* @__PURE__ */ __name2(async () => {
+ const { createPacketServices: createPacketServices2 } = await Promise.resolve().then(() => (init_packet_W2GHVCYJ(), packet_W2GHVCYJ_exports));
+ const parser22 = createPacketServices2().Packet.parser.LangiumParser;
+ parsers.packet = parser22;
+ }, "packet"),
+ pie: /* @__PURE__ */ __name2(async () => {
+ const { createPieServices: createPieServices2 } = await Promise.resolve().then(() => (init_pie_BEWT4RHE(), pie_BEWT4RHE_exports));
+ const parser22 = createPieServices2().Pie.parser.LangiumParser;
+ parsers.pie = parser22;
+ }, "pie"),
+ architecture: /* @__PURE__ */ __name2(async () => {
+ const { createArchitectureServices: createArchitectureServices2 } = await Promise.resolve().then(() => (init_architecture_I3QFYML2(), architecture_I3QFYML2_exports));
+ const parser22 = createArchitectureServices2().Architecture.parser.LangiumParser;
+ parsers.architecture = parser22;
+ }, "architecture"),
+ gitGraph: /* @__PURE__ */ __name2(async () => {
+ const { createGitGraphServices: createGitGraphServices2 } = await Promise.resolve().then(() => (init_gitGraph_YCYPL57B(), gitGraph_YCYPL57B_exports));
+ const parser22 = createGitGraphServices2().GitGraph.parser.LangiumParser;
+ parsers.gitGraph = parser22;
+ }, "gitGraph")
+ };
+ __name(parse2, "parse");
+ __name2(parse2, "parse");
+ MermaidParseError = class extends Error {
+ static {
+ __name(this, "MermaidParseError");
+ }
+ constructor(result) {
+ const lexerErrors = result.lexerErrors.map((err) => err.message).join("\n");
+ const parserErrors = result.parserErrors.map((err) => err.message).join("\n");
+ super(`Parsing failed: ${lexerErrors} ${parserErrors}`);
+ this.result = result;
+ }
+ static {
+ __name2(this, "MermaidParseError");
+ }
+ };
+ }
+ });
+
+ // src/diagrams/common/populateCommonDb.ts
+ function populateCommonDb(ast, db8) {
+ if (ast.accDescr) {
+ db8.setAccDescription?.(ast.accDescr);
+ }
+ if (ast.accTitle) {
+ db8.setAccTitle?.(ast.accTitle);
+ }
+ if (ast.title) {
+ db8.setDiagramTitle?.(ast.title);
+ }
+ }
+ var init_populateCommonDb = __esm({
+ "src/diagrams/common/populateCommonDb.ts"() {
+ "use strict";
+ __name(populateCommonDb, "populateCommonDb");
+ }
+ });
+
+ // src/diagrams/git/gitGraphTypes.ts
+ var commitType;
+ var init_gitGraphTypes = __esm({
+ "src/diagrams/git/gitGraphTypes.ts"() {
+ "use strict";
+ commitType = {
+ NORMAL: 0,
+ REVERSE: 1,
+ HIGHLIGHT: 2,
+ MERGE: 3,
+ CHERRY_PICK: 4
+ };
+ }
+ });
+
+ // src/utils/imperativeState.ts
+ var ImperativeState;
+ var init_imperativeState = __esm({
+ "src/utils/imperativeState.ts"() {
+ "use strict";
+ ImperativeState = class {
+ /**
+ * @param init - Function that creates the default state.
+ */
+ constructor(init3) {
+ this.init = init3;
+ this.records = this.init();
+ }
+ static {
+ __name(this, "ImperativeState");
+ }
+ reset() {
+ this.records = this.init();
+ }
+ };
+ }
+ });
+
+ // src/diagrams/git/gitGraphAst.ts
+ function getID() {
+ return random({ length: 7 });
+ }
+ function uniqBy2(list2, fn3) {
+ const recordMap = /* @__PURE__ */ Object.create(null);
+ return list2.reduce((out, item) => {
+ const key = fn3(item);
+ if (!recordMap[key]) {
+ recordMap[key] = true;
+ out.push(item);
+ }
+ return out;
+ }, []);
+ }
+ function upsert(arr, key, newVal) {
+ const index = arr.indexOf(key);
+ if (index === -1) {
+ arr.push(newVal);
+ } else {
+ arr.splice(index, 1, newVal);
+ }
+ }
+ function prettyPrintCommitHistory(commitArr) {
+ const commit2 = commitArr.reduce((out, commit3) => {
+ if (out.seq > commit3.seq) {
+ return out;
+ }
+ return commit3;
+ }, commitArr[0]);
+ let line2 = "";
+ commitArr.forEach(function(c3) {
+ if (c3 === commit2) {
+ line2 += " *";
+ } else {
+ line2 += " |";
+ }
+ });
+ const label = [line2, commit2.id, commit2.seq];
+ for (const branch2 in state2.records.branches) {
+ if (state2.records.branches.get(branch2) === commit2.id) {
+ label.push(branch2);
+ }
+ }
+ log.debug(label.join(" "));
+ if (commit2.parents && commit2.parents.length == 2 && commit2.parents[0] && commit2.parents[1]) {
+ const newCommit = state2.records.commits.get(commit2.parents[0]);
+ upsert(commitArr, commit2, newCommit);
+ if (commit2.parents[1]) {
+ commitArr.push(state2.records.commits.get(commit2.parents[1]));
+ }
+ } else if (commit2.parents.length == 0) {
+ return;
+ } else {
+ if (commit2.parents[0]) {
+ const newCommit = state2.records.commits.get(commit2.parents[0]);
+ upsert(commitArr, commit2, newCommit);
+ }
+ }
+ commitArr = uniqBy2(commitArr, (c3) => c3.id);
+ prettyPrintCommitHistory(commitArr);
+ }
+ var DEFAULT_GITGRAPH_CONFIG, getConfig3, state2, setDirection2, setOptions2, getOptions, commit, branch, merge2, cherryPick, checkout, prettyPrint, clear10, getBranchesAsObjArray, getBranches, getCommits, getCommitsArray, getCurrentBranch, getDirection2, getHead, db;
+ var init_gitGraphAst = __esm({
+ "src/diagrams/git/gitGraphAst.ts"() {
+ "use strict";
+ init_logger();
+ init_utils2();
+ init_config();
+ init_common();
+ init_commonDb();
+ init_gitGraphTypes();
+ init_imperativeState();
+ init_defaultConfig();
+ DEFAULT_GITGRAPH_CONFIG = defaultConfig_default.gitGraph;
+ getConfig3 = /* @__PURE__ */ __name(() => {
+ const config6 = cleanAndMerge({
+ ...DEFAULT_GITGRAPH_CONFIG,
+ ...getConfig().gitGraph
+ });
+ return config6;
+ }, "getConfig");
+ state2 = new ImperativeState(() => {
+ const config6 = getConfig3();
+ const mainBranchName = config6.mainBranchName;
+ const mainBranchOrder = config6.mainBranchOrder;
+ return {
+ mainBranchName,
+ commits: /* @__PURE__ */ new Map(),
+ head: null,
+ branchConfig: /* @__PURE__ */ new Map([[mainBranchName, { name: mainBranchName, order: mainBranchOrder }]]),
+ branches: /* @__PURE__ */ new Map([[mainBranchName, null]]),
+ currBranch: mainBranchName,
+ direction: "LR",
+ seq: 0,
+ options: {}
+ };
+ });
+ __name(getID, "getID");
+ __name(uniqBy2, "uniqBy");
+ setDirection2 = /* @__PURE__ */ __name(function(dir2) {
+ state2.records.direction = dir2;
+ }, "setDirection");
+ setOptions2 = /* @__PURE__ */ __name(function(rawOptString) {
+ log.debug("options str", rawOptString);
+ rawOptString = rawOptString?.trim();
+ rawOptString = rawOptString || "{}";
+ try {
+ state2.records.options = JSON.parse(rawOptString);
+ } catch (e3) {
+ log.error("error while parsing gitGraph options", e3.message);
+ }
+ }, "setOptions");
+ getOptions = /* @__PURE__ */ __name(function() {
+ return state2.records.options;
+ }, "getOptions");
+ commit = /* @__PURE__ */ __name(function(commitDB) {
+ let msg = commitDB.msg;
+ let id27 = commitDB.id;
+ const type3 = commitDB.type;
+ let tags2 = commitDB.tags;
+ log.info("commit", msg, id27, type3, tags2);
+ log.debug("Entering commit:", msg, id27, type3, tags2);
+ const config6 = getConfig3();
+ id27 = common_default.sanitizeText(id27, config6);
+ msg = common_default.sanitizeText(msg, config6);
+ tags2 = tags2?.map((tag2) => common_default.sanitizeText(tag2, config6));
+ const newCommit = {
+ id: id27 ? id27 : state2.records.seq + "-" + getID(),
+ message: msg,
+ seq: state2.records.seq++,
+ type: type3 ?? commitType.NORMAL,
+ tags: tags2 ?? [],
+ parents: state2.records.head == null ? [] : [state2.records.head.id],
+ branch: state2.records.currBranch
+ };
+ state2.records.head = newCommit;
+ log.info("main branch", config6.mainBranchName);
+ state2.records.commits.set(newCommit.id, newCommit);
+ state2.records.branches.set(state2.records.currBranch, newCommit.id);
+ log.debug("in pushCommit " + newCommit.id);
+ }, "commit");
+ branch = /* @__PURE__ */ __name(function(branchDB) {
+ let name = branchDB.name;
+ const order2 = branchDB.order;
+ name = common_default.sanitizeText(name, getConfig3());
+ if (state2.records.branches.has(name)) {
+ throw new Error(
+ `Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${name}")`
+ );
+ }
+ state2.records.branches.set(name, state2.records.head != null ? state2.records.head.id : null);
+ state2.records.branchConfig.set(name, { name, order: order2 });
+ checkout(name);
+ log.debug("in createBranch");
+ }, "branch");
+ merge2 = /* @__PURE__ */ __name((mergeDB) => {
+ let otherBranch = mergeDB.branch;
+ let customId = mergeDB.id;
+ const overrideType = mergeDB.type;
+ const customTags = mergeDB.tags;
+ const config6 = getConfig3();
+ otherBranch = common_default.sanitizeText(otherBranch, config6);
+ if (customId) {
+ customId = common_default.sanitizeText(customId, config6);
+ }
+ const currentBranchCheck = state2.records.branches.get(state2.records.currBranch);
+ const otherBranchCheck = state2.records.branches.get(otherBranch);
+ const currentCommit = currentBranchCheck ? state2.records.commits.get(currentBranchCheck) : void 0;
+ const otherCommit = otherBranchCheck ? state2.records.commits.get(otherBranchCheck) : void 0;
+ if (currentCommit && otherCommit && currentCommit.branch === otherBranch) {
+ throw new Error(`Cannot merge branch '${otherBranch}' into itself.`);
+ }
+ if (state2.records.currBranch === otherBranch) {
+ const error3 = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
+ error3.hash = {
+ text: `merge ${otherBranch}`,
+ token: `merge ${otherBranch}`,
+ expected: ["branch abc"]
+ };
+ throw error3;
+ }
+ if (currentCommit === void 0 || !currentCommit) {
+ const error3 = new Error(
+ `Incorrect usage of "merge". Current branch (${state2.records.currBranch})has no commits`
+ );
+ error3.hash = {
+ text: `merge ${otherBranch}`,
+ token: `merge ${otherBranch}`,
+ expected: ["commit"]
+ };
+ throw error3;
+ }
+ if (!state2.records.branches.has(otherBranch)) {
+ const error3 = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist"
+ );
+ error3.hash = {
+ text: `merge ${otherBranch}`,
+ token: `merge ${otherBranch}`,
+ expected: [`branch ${otherBranch}`]
+ };
+ throw error3;
+ }
+ if (otherCommit === void 0 || !otherCommit) {
+ const error3 = new Error(
+ 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits"
+ );
+ error3.hash = {
+ text: `merge ${otherBranch}`,
+ token: `merge ${otherBranch}`,
+ expected: ['"commit"']
+ };
+ throw error3;
+ }
+ if (currentCommit === otherCommit) {
+ const error3 = new Error('Incorrect usage of "merge". Both branches have same head');
+ error3.hash = {
+ text: `merge ${otherBranch}`,
+ token: `merge ${otherBranch}`,
+ expected: ["branch abc"]
+ };
+ throw error3;
+ }
+ if (customId && state2.records.commits.has(customId)) {
+ const error3 = new Error(
+ 'Incorrect usage of "merge". Commit with id:' + customId + " already exists, use different custom Id"
+ );
+ error3.hash = {
+ text: `merge ${otherBranch} ${customId} ${overrideType} ${customTags?.join(" ")}`,
+ token: `merge ${otherBranch} ${customId} ${overrideType} ${customTags?.join(" ")}`,
+ expected: [
+ `merge ${otherBranch} ${customId}_UNIQUE ${overrideType} ${customTags?.join(" ")}`
+ ]
+ };
+ throw error3;
+ }
+ const verifiedBranch = otherBranchCheck ? otherBranchCheck : "";
+ const commit2 = {
+ id: customId || `${state2.records.seq}-${getID()}`,
+ message: `merged branch ${otherBranch} into ${state2.records.currBranch}`,
+ seq: state2.records.seq++,
+ parents: state2.records.head == null ? [] : [state2.records.head.id, verifiedBranch],
+ branch: state2.records.currBranch,
+ type: commitType.MERGE,
+ customType: overrideType,
+ customId: customId ? true : false,
+ tags: customTags ?? []
+ };
+ state2.records.head = commit2;
+ state2.records.commits.set(commit2.id, commit2);
+ state2.records.branches.set(state2.records.currBranch, commit2.id);
+ log.debug(state2.records.branches);
+ log.debug("in mergeBranch");
+ }, "merge");
+ cherryPick = /* @__PURE__ */ __name(function(cherryPickDB) {
+ let sourceId = cherryPickDB.id;
+ let targetId = cherryPickDB.targetId;
+ let tags2 = cherryPickDB.tags;
+ let parentCommitId = cherryPickDB.parent;
+ log.debug("Entering cherryPick:", sourceId, targetId, tags2);
+ const config6 = getConfig3();
+ sourceId = common_default.sanitizeText(sourceId, config6);
+ targetId = common_default.sanitizeText(targetId, config6);
+ tags2 = tags2?.map((tag2) => common_default.sanitizeText(tag2, config6));
+ parentCommitId = common_default.sanitizeText(parentCommitId, config6);
+ if (!sourceId || !state2.records.commits.has(sourceId)) {
+ const error3 = new Error(
+ 'Incorrect usage of "cherryPick". Source commit id should exist and provided'
+ );
+ error3.hash = {
+ text: `cherryPick ${sourceId} ${targetId}`,
+ token: `cherryPick ${sourceId} ${targetId}`,
+ expected: ["cherry-pick abc"]
+ };
+ throw error3;
+ }
+ const sourceCommit = state2.records.commits.get(sourceId);
+ if (sourceCommit === void 0 || !sourceCommit) {
+ throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');
+ }
+ if (parentCommitId && !(Array.isArray(sourceCommit.parents) && sourceCommit.parents.includes(parentCommitId))) {
+ const error3 = new Error(
+ "Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit."
+ );
+ throw error3;
+ }
+ const sourceCommitBranch = sourceCommit.branch;
+ if (sourceCommit.type === commitType.MERGE && !parentCommitId) {
+ const error3 = new Error(
+ "Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified."
+ );
+ throw error3;
+ }
+ if (!targetId || !state2.records.commits.has(targetId)) {
+ if (sourceCommitBranch === state2.records.currBranch) {
+ const error3 = new Error(
+ 'Incorrect usage of "cherryPick". Source commit is already on current branch'
+ );
+ error3.hash = {
+ text: `cherryPick ${sourceId} ${targetId}`,
+ token: `cherryPick ${sourceId} ${targetId}`,
+ expected: ["cherry-pick abc"]
+ };
+ throw error3;
+ }
+ const currentCommitId = state2.records.branches.get(state2.records.currBranch);
+ if (currentCommitId === void 0 || !currentCommitId) {
+ const error3 = new Error(
+ `Incorrect usage of "cherry-pick". Current branch (${state2.records.currBranch})has no commits`
+ );
+ error3.hash = {
+ text: `cherryPick ${sourceId} ${targetId}`,
+ token: `cherryPick ${sourceId} ${targetId}`,
+ expected: ["cherry-pick abc"]
+ };
+ throw error3;
+ }
+ const currentCommit = state2.records.commits.get(currentCommitId);
+ if (currentCommit === void 0 || !currentCommit) {
+ const error3 = new Error(
+ `Incorrect usage of "cherry-pick". Current branch (${state2.records.currBranch})has no commits`
+ );
+ error3.hash = {
+ text: `cherryPick ${sourceId} ${targetId}`,
+ token: `cherryPick ${sourceId} ${targetId}`,
+ expected: ["cherry-pick abc"]
+ };
+ throw error3;
+ }
+ const commit2 = {
+ id: state2.records.seq + "-" + getID(),
+ message: `cherry-picked ${sourceCommit?.message} into ${state2.records.currBranch}`,
+ seq: state2.records.seq++,
+ parents: state2.records.head == null ? [] : [state2.records.head.id, sourceCommit.id],
+ branch: state2.records.currBranch,
+ type: commitType.CHERRY_PICK,
+ tags: tags2 ? tags2.filter(Boolean) : [
+ `cherry-pick:${sourceCommit.id}${sourceCommit.type === commitType.MERGE ? `|parent:${parentCommitId}` : ""}`
+ ]
+ };
+ state2.records.head = commit2;
+ state2.records.commits.set(commit2.id, commit2);
+ state2.records.branches.set(state2.records.currBranch, commit2.id);
+ log.debug(state2.records.branches);
+ log.debug("in cherryPick");
+ }
+ }, "cherryPick");
+ checkout = /* @__PURE__ */ __name(function(branch2) {
+ branch2 = common_default.sanitizeText(branch2, getConfig3());
+ if (!state2.records.branches.has(branch2)) {
+ const error3 = new Error(
+ `Trying to checkout branch which is not yet created. (Help try using "branch ${branch2}")`
+ );
+ error3.hash = {
+ text: `checkout ${branch2}`,
+ token: `checkout ${branch2}`,
+ expected: [`branch ${branch2}`]
+ };
+ throw error3;
+ } else {
+ state2.records.currBranch = branch2;
+ const id27 = state2.records.branches.get(state2.records.currBranch);
+ if (id27 === void 0 || !id27) {
+ state2.records.head = null;
+ } else {
+ state2.records.head = state2.records.commits.get(id27) ?? null;
+ }
+ }
+ }, "checkout");
+ __name(upsert, "upsert");
+ __name(prettyPrintCommitHistory, "prettyPrintCommitHistory");
+ prettyPrint = /* @__PURE__ */ __name(function() {
+ log.debug(state2.records.commits);
+ const node2 = getCommitsArray()[0];
+ prettyPrintCommitHistory([node2]);
+ }, "prettyPrint");
+ clear10 = /* @__PURE__ */ __name(function() {
+ state2.reset();
+ clear();
+ }, "clear");
+ getBranchesAsObjArray = /* @__PURE__ */ __name(function() {
+ const branchesArray = [...state2.records.branchConfig.values()].map((branchConfig, i2) => {
+ if (branchConfig.order !== null && branchConfig.order !== void 0) {
+ return branchConfig;
+ }
+ return {
+ ...branchConfig,
+ order: parseFloat(`0.${i2}`)
+ };
+ }).sort((a2, b2) => (a2.order ?? 0) - (b2.order ?? 0)).map(({ name }) => ({ name }));
+ return branchesArray;
+ }, "getBranchesAsObjArray");
+ getBranches = /* @__PURE__ */ __name(function() {
+ return state2.records.branches;
+ }, "getBranches");
+ getCommits = /* @__PURE__ */ __name(function() {
+ return state2.records.commits;
+ }, "getCommits");
+ getCommitsArray = /* @__PURE__ */ __name(function() {
+ const commitArr = [...state2.records.commits.values()];
+ commitArr.forEach(function(o2) {
+ log.debug(o2.id);
+ });
+ commitArr.sort((a2, b2) => a2.seq - b2.seq);
+ return commitArr;
+ }, "getCommitsArray");
+ getCurrentBranch = /* @__PURE__ */ __name(function() {
+ return state2.records.currBranch;
+ }, "getCurrentBranch");
+ getDirection2 = /* @__PURE__ */ __name(function() {
+ return state2.records.direction;
+ }, "getDirection");
+ getHead = /* @__PURE__ */ __name(function() {
+ return state2.records.head;
+ }, "getHead");
+ db = {
+ commitType,
+ getConfig: getConfig3,
+ setDirection: setDirection2,
+ setOptions: setOptions2,
+ getOptions,
+ commit,
+ branch,
+ merge: merge2,
+ cherryPick,
+ checkout,
+ //reset,
+ prettyPrint,
+ clear: clear10,
+ getBranchesAsObjArray,
+ getBranches,
+ getCommits,
+ getCommitsArray,
+ getCurrentBranch,
+ getDirection: getDirection2,
+ getHead,
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ setDiagramTitle,
+ getDiagramTitle
+ };
+ }
+ });
+
+ // src/diagrams/git/gitGraphParser.ts
+ var populate, parseStatement, parseCommit, parseBranch, parseMerge, parseCheckout, parseCherryPicking, parser5;
+ var init_gitGraphParser = __esm({
+ "src/diagrams/git/gitGraphParser.ts"() {
+ "use strict";
+ init_mermaid_parser_core();
+ init_logger();
+ init_populateCommonDb();
+ init_gitGraphAst();
+ init_gitGraphTypes();
+ populate = /* @__PURE__ */ __name((ast, db8) => {
+ populateCommonDb(ast, db8);
+ if (ast.dir) {
+ db8.setDirection(ast.dir);
+ }
+ for (const statement of ast.statements) {
+ parseStatement(statement, db8);
+ }
+ }, "populate");
+ parseStatement = /* @__PURE__ */ __name((statement, db8) => {
+ const parsers2 = {
+ Commit: /* @__PURE__ */ __name((stmt) => db8.commit(parseCommit(stmt)), "Commit"),
+ Branch: /* @__PURE__ */ __name((stmt) => db8.branch(parseBranch(stmt)), "Branch"),
+ Merge: /* @__PURE__ */ __name((stmt) => db8.merge(parseMerge(stmt)), "Merge"),
+ Checkout: /* @__PURE__ */ __name((stmt) => db8.checkout(parseCheckout(stmt)), "Checkout"),
+ CherryPicking: /* @__PURE__ */ __name((stmt) => db8.cherryPick(parseCherryPicking(stmt)), "CherryPicking")
+ };
+ const parser22 = parsers2[statement.$type];
+ if (parser22) {
+ parser22(statement);
+ } else {
+ log.error(`Unknown statement type: ${statement.$type}`);
+ }
+ }, "parseStatement");
+ parseCommit = /* @__PURE__ */ __name((commit2) => {
+ const commitDB = {
+ id: commit2.id,
+ msg: commit2.message ?? "",
+ type: commit2.type !== void 0 ? commitType[commit2.type] : commitType.NORMAL,
+ tags: commit2.tags ?? void 0
+ };
+ return commitDB;
+ }, "parseCommit");
+ parseBranch = /* @__PURE__ */ __name((branch2) => {
+ const branchDB = {
+ name: branch2.name,
+ order: branch2.order ?? 0
+ };
+ return branchDB;
+ }, "parseBranch");
+ parseMerge = /* @__PURE__ */ __name((merge5) => {
+ const mergeDB = {
+ branch: merge5.branch,
+ id: merge5.id ?? "",
+ type: merge5.type !== void 0 ? commitType[merge5.type] : void 0,
+ tags: merge5.tags ?? void 0
+ };
+ return mergeDB;
+ }, "parseMerge");
+ parseCheckout = /* @__PURE__ */ __name((checkout2) => {
+ const branch2 = checkout2.branch;
+ return branch2;
+ }, "parseCheckout");
+ parseCherryPicking = /* @__PURE__ */ __name((cherryPicking) => {
+ const cherryPickDB = {
+ id: cherryPicking.id,
+ targetId: "",
+ tags: cherryPicking.tags?.length === 0 ? void 0 : cherryPicking.tags,
+ parent: cherryPicking.parent
+ };
+ return cherryPickDB;
+ }, "parseCherryPicking");
+ parser5 = {
+ parse: /* @__PURE__ */ __name(async (input) => {
+ const ast = await parse2("gitGraph", input);
+ log.debug(ast);
+ populate(ast, db);
+ }, "parse")
+ };
+ if (void 0) {
+ const { it, expect, describe } = void 0;
+ const mockDB = {
+ commitType,
+ setDirection: vi.fn(),
+ commit: vi.fn(),
+ branch: vi.fn(),
+ merge: vi.fn(),
+ cherryPick: vi.fn(),
+ checkout: vi.fn()
+ };
+ describe("GitGraph Parser", () => {
+ it("should parse a commit statement", () => {
+ const commit2 = {
+ $type: "Commit",
+ id: "1",
+ message: "test",
+ tags: ["tag1", "tag2"],
+ type: "NORMAL"
+ };
+ parseStatement(commit2, mockDB);
+ expect(mockDB.commit).toHaveBeenCalledWith({
+ id: "1",
+ msg: "test",
+ tags: ["tag1", "tag2"],
+ type: 0
+ });
+ });
+ it("should parse a branch statement", () => {
+ const branch2 = {
+ $type: "Branch",
+ name: "newBranch",
+ order: 1
+ };
+ parseStatement(branch2, mockDB);
+ expect(mockDB.branch).toHaveBeenCalledWith({ name: "newBranch", order: 1 });
+ });
+ it("should parse a checkout statement", () => {
+ const checkout2 = {
+ $type: "Checkout",
+ branch: "newBranch"
+ };
+ parseStatement(checkout2, mockDB);
+ expect(mockDB.checkout).toHaveBeenCalledWith("newBranch");
+ });
+ it("should parse a merge statement", () => {
+ const merge5 = {
+ $type: "Merge",
+ branch: "newBranch",
+ id: "1",
+ tags: ["tag1", "tag2"],
+ type: "NORMAL"
+ };
+ parseStatement(merge5, mockDB);
+ expect(mockDB.merge).toHaveBeenCalledWith({
+ branch: "newBranch",
+ id: "1",
+ tags: ["tag1", "tag2"],
+ type: 0
+ });
+ });
+ it("should parse a cherry picking statement", () => {
+ const cherryPick2 = {
+ $type: "CherryPicking",
+ id: "1",
+ tags: ["tag1", "tag2"],
+ parent: "2"
+ };
+ parseStatement(cherryPick2, mockDB);
+ expect(mockDB.cherryPick).toHaveBeenCalledWith({
+ id: "1",
+ targetId: "",
+ parent: "2",
+ tags: ["tag1", "tag2"]
+ });
+ });
+ it("should parse a langium generated gitGraph ast", () => {
+ const dummy = {
+ $type: "GitGraph",
+ statements: []
+ };
+ const gitGraphAst = {
+ $type: "GitGraph",
+ statements: [
+ {
+ $container: dummy,
+ $type: "Commit",
+ id: "1",
+ message: "test",
+ tags: ["tag1", "tag2"],
+ type: "NORMAL"
+ },
+ {
+ $container: dummy,
+ $type: "Branch",
+ name: "newBranch",
+ order: 1
+ },
+ {
+ $container: dummy,
+ $type: "Merge",
+ branch: "newBranch",
+ id: "1",
+ tags: ["tag1", "tag2"],
+ type: "NORMAL"
+ },
+ {
+ $container: dummy,
+ $type: "Checkout",
+ branch: "newBranch"
+ },
+ {
+ $container: dummy,
+ $type: "CherryPicking",
+ id: "1",
+ tags: ["tag1", "tag2"],
+ parent: "2"
+ }
+ ]
+ };
+ populate(gitGraphAst, mockDB);
+ expect(mockDB.commit).toHaveBeenCalledWith({
+ id: "1",
+ msg: "test",
+ tags: ["tag1", "tag2"],
+ type: 0
+ });
+ expect(mockDB.branch).toHaveBeenCalledWith({ name: "newBranch", order: 1 });
+ expect(mockDB.merge).toHaveBeenCalledWith({
+ branch: "newBranch",
+ id: "1",
+ tags: ["tag1", "tag2"],
+ type: 0
+ });
+ expect(mockDB.checkout).toHaveBeenCalledWith("newBranch");
+ });
+ });
+ }
+ }
+ });
+
+ // src/diagrams/git/gitGraphRenderer.ts
+ var DEFAULT_CONFIG, DEFAULT_GITGRAPH_CONFIG2, LAYOUT_OFFSET, COMMIT_STEP, PX, PY, THEME_COLOR_LIMIT, branchPos, commitPos, defaultPos, allCommitsDict, lanes, maxPos, dir, clear11, drawText2, findClosestParent, findClosestParentBT, setParallelBTPos, findClosestParentPos, calculateCommitPosition, setCommitPosition, setRootPosition, drawCommitBullet, drawCommitLabel, drawCommitTags, getCommitClassType, calculatePosition, getCommitPosition, drawCommits, shouldRerouteArrow, findLane, drawArrow, drawArrows, drawBranches, setBranchPosition, draw4, gitGraphRenderer_default;
+ var init_gitGraphRenderer = __esm({
+ "src/diagrams/git/gitGraphRenderer.ts"() {
+ "use strict";
+ init_src32();
+ init_diagramAPI();
+ init_logger();
+ init_utils2();
+ init_gitGraphTypes();
+ DEFAULT_CONFIG = getConfig2();
+ DEFAULT_GITGRAPH_CONFIG2 = DEFAULT_CONFIG?.gitGraph;
+ LAYOUT_OFFSET = 10;
+ COMMIT_STEP = 40;
+ PX = 4;
+ PY = 2;
+ THEME_COLOR_LIMIT = 8;
+ branchPos = /* @__PURE__ */ new Map();
+ commitPos = /* @__PURE__ */ new Map();
+ defaultPos = 30;
+ allCommitsDict = /* @__PURE__ */ new Map();
+ lanes = [];
+ maxPos = 0;
+ dir = "LR";
+ clear11 = /* @__PURE__ */ __name(() => {
+ branchPos.clear();
+ commitPos.clear();
+ allCommitsDict.clear();
+ maxPos = 0;
+ lanes = [];
+ dir = "LR";
+ }, "clear");
+ drawText2 = /* @__PURE__ */ __name((txt) => {
+ const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ const rows = typeof txt === "string" ? txt.split(/\\n|\n|
/gi) : txt;
+ rows.forEach((row) => {
+ const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
+ tspan.setAttribute("dy", "1em");
+ tspan.setAttribute("x", "0");
+ tspan.setAttribute("class", "row");
+ tspan.textContent = row.trim();
+ svgLabel.appendChild(tspan);
+ });
+ return svgLabel;
+ }, "drawText");
+ findClosestParent = /* @__PURE__ */ __name((parents4) => {
+ let closestParent;
+ let comparisonFunc;
+ let targetPosition;
+ if (dir === "BT") {
+ comparisonFunc = /* @__PURE__ */ __name((a2, b2) => a2 <= b2, "comparisonFunc");
+ targetPosition = Infinity;
+ } else {
+ comparisonFunc = /* @__PURE__ */ __name((a2, b2) => a2 >= b2, "comparisonFunc");
+ targetPosition = 0;
+ }
+ parents4.forEach((parent4) => {
+ const parentPosition = dir === "TB" || dir == "BT" ? commitPos.get(parent4)?.y : commitPos.get(parent4)?.x;
+ if (parentPosition !== void 0 && comparisonFunc(parentPosition, targetPosition)) {
+ closestParent = parent4;
+ targetPosition = parentPosition;
+ }
+ });
+ return closestParent;
+ }, "findClosestParent");
+ findClosestParentBT = /* @__PURE__ */ __name((parents4) => {
+ let closestParent = "";
+ let maxPosition = Infinity;
+ parents4.forEach((parent4) => {
+ const parentPosition = commitPos.get(parent4).y;
+ if (parentPosition <= maxPosition) {
+ closestParent = parent4;
+ maxPosition = parentPosition;
+ }
+ });
+ return closestParent || void 0;
+ }, "findClosestParentBT");
+ setParallelBTPos = /* @__PURE__ */ __name((sortedKeys, commits, defaultPos2) => {
+ let curPos = defaultPos2;
+ let maxPosition = defaultPos2;
+ const roots = [];
+ sortedKeys.forEach((key) => {
+ const commit2 = commits.get(key);
+ if (!commit2) {
+ throw new Error(`Commit not found for key ${key}`);
+ }
+ if (commit2.parents.length) {
+ curPos = calculateCommitPosition(commit2);
+ maxPosition = Math.max(curPos, maxPosition);
+ } else {
+ roots.push(commit2);
+ }
+ setCommitPosition(commit2, curPos);
+ });
+ curPos = maxPosition;
+ roots.forEach((commit2) => {
+ setRootPosition(commit2, curPos, defaultPos2);
+ });
+ sortedKeys.forEach((key) => {
+ const commit2 = commits.get(key);
+ if (commit2?.parents.length) {
+ const closestParent = findClosestParentBT(commit2.parents);
+ curPos = commitPos.get(closestParent).y - COMMIT_STEP;
+ if (curPos <= maxPosition) {
+ maxPosition = curPos;
+ }
+ const x5 = branchPos.get(commit2.branch).pos;
+ const y5 = curPos - LAYOUT_OFFSET;
+ commitPos.set(commit2.id, { x: x5, y: y5 });
+ }
+ });
+ }, "setParallelBTPos");
+ findClosestParentPos = /* @__PURE__ */ __name((commit2) => {
+ const closestParent = findClosestParent(commit2.parents.filter((p3) => p3 !== null));
+ if (!closestParent) {
+ throw new Error(`Closest parent not found for commit ${commit2.id}`);
+ }
+ const closestParentPos = commitPos.get(closestParent)?.y;
+ if (closestParentPos === void 0) {
+ throw new Error(`Closest parent position not found for commit ${commit2.id}`);
+ }
+ return closestParentPos;
+ }, "findClosestParentPos");
+ calculateCommitPosition = /* @__PURE__ */ __name((commit2) => {
+ const closestParentPos = findClosestParentPos(commit2);
+ return closestParentPos + COMMIT_STEP;
+ }, "calculateCommitPosition");
+ setCommitPosition = /* @__PURE__ */ __name((commit2, curPos) => {
+ const branch2 = branchPos.get(commit2.branch);
+ if (!branch2) {
+ throw new Error(`Branch not found for commit ${commit2.id}`);
+ }
+ const x5 = branch2.pos;
+ const y5 = curPos + LAYOUT_OFFSET;
+ commitPos.set(commit2.id, { x: x5, y: y5 });
+ return { x: x5, y: y5 };
+ }, "setCommitPosition");
+ setRootPosition = /* @__PURE__ */ __name((commit2, curPos, defaultPos2) => {
+ const branch2 = branchPos.get(commit2.branch);
+ if (!branch2) {
+ throw new Error(`Branch not found for commit ${commit2.id}`);
+ }
+ const y5 = curPos + defaultPos2;
+ const x5 = branch2.pos;
+ commitPos.set(commit2.id, { x: x5, y: y5 });
+ }, "setRootPosition");
+ drawCommitBullet = /* @__PURE__ */ __name((gBullets, commit2, commitPosition, typeClass, branchIndex, commitSymbolType) => {
+ if (commitSymbolType === commitType.HIGHLIGHT) {
+ gBullets.append("rect").attr("x", commitPosition.x - 10).attr("y", commitPosition.y - 10).attr("width", 20).attr("height", 20).attr(
+ "class",
+ `commit ${commit2.id} commit-highlight${branchIndex % THEME_COLOR_LIMIT} ${typeClass}-outer`
+ );
+ gBullets.append("rect").attr("x", commitPosition.x - 6).attr("y", commitPosition.y - 6).attr("width", 12).attr("height", 12).attr(
+ "class",
+ `commit ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT} ${typeClass}-inner`
+ );
+ } else if (commitSymbolType === commitType.CHERRY_PICK) {
+ gBullets.append("circle").attr("cx", commitPosition.x).attr("cy", commitPosition.y).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("circle").attr("cx", commitPosition.x - 3).attr("cy", commitPosition.y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("circle").attr("cx", commitPosition.x + 3).attr("cy", commitPosition.y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("line").attr("x1", commitPosition.x + 3).attr("y1", commitPosition.y + 1).attr("x2", commitPosition.x).attr("y2", commitPosition.y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ gBullets.append("line").attr("x1", commitPosition.x - 3).attr("y1", commitPosition.y + 1).attr("x2", commitPosition.x).attr("y2", commitPosition.y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
+ } else {
+ const circle6 = gBullets.append("circle");
+ circle6.attr("cx", commitPosition.x);
+ circle6.attr("cy", commitPosition.y);
+ circle6.attr("r", commit2.type === commitType.MERGE ? 9 : 10);
+ circle6.attr("class", `commit ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT}`);
+ if (commitSymbolType === commitType.MERGE) {
+ const circle22 = gBullets.append("circle");
+ circle22.attr("cx", commitPosition.x);
+ circle22.attr("cy", commitPosition.y);
+ circle22.attr("r", 6);
+ circle22.attr(
+ "class",
+ `commit ${typeClass} ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT}`
+ );
+ }
+ if (commitSymbolType === commitType.REVERSE) {
+ const cross3 = gBullets.append("path");
+ cross3.attr(
+ "d",
+ `M ${commitPosition.x - 5},${commitPosition.y - 5}L${commitPosition.x + 5},${commitPosition.y + 5}M${commitPosition.x - 5},${commitPosition.y + 5}L${commitPosition.x + 5},${commitPosition.y - 5}`
+ ).attr("class", `commit ${typeClass} ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT}`);
+ }
+ }
+ }, "drawCommitBullet");
+ drawCommitLabel = /* @__PURE__ */ __name((gLabels, commit2, commitPosition, pos) => {
+ if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && DEFAULT_GITGRAPH_CONFIG2?.showCommitLabel) {
+ const wrapper = gLabels.append("g");
+ const labelBkg = wrapper.insert("rect").attr("class", "commit-label-bkg");
+ const text2 = wrapper.append("text").attr("x", pos).attr("y", commitPosition.y + 25).attr("class", "commit-label").text(commit2.id);
+ const bbox = text2.node()?.getBBox();
+ if (bbox) {
+ labelBkg.attr("x", commitPosition.posWithOffset - bbox.width / 2 - PY).attr("y", commitPosition.y + 13.5).attr("width", bbox.width + 2 * PY).attr("height", bbox.height + 2 * PY);
+ if (dir === "TB" || dir === "BT") {
+ labelBkg.attr("x", commitPosition.x - (bbox.width + 4 * PX + 5)).attr("y", commitPosition.y - 12);
+ text2.attr("x", commitPosition.x - (bbox.width + 4 * PX)).attr("y", commitPosition.y + bbox.height - 12);
+ } else {
+ text2.attr("x", commitPosition.posWithOffset - bbox.width / 2);
+ }
+ if (DEFAULT_GITGRAPH_CONFIG2.rotateCommitLabel) {
+ if (dir === "TB" || dir === "BT") {
+ text2.attr(
+ "transform",
+ "rotate(-45, " + commitPosition.x + ", " + commitPosition.y + ")"
+ );
+ labelBkg.attr(
+ "transform",
+ "rotate(-45, " + commitPosition.x + ", " + commitPosition.y + ")"
+ );
+ } else {
+ const r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;
+ const r_y = 10 + bbox.width / 25 * 8.5;
+ wrapper.attr(
+ "transform",
+ "translate(" + r_x + ", " + r_y + ") rotate(-45, " + pos + ", " + commitPosition.y + ")"
+ );
+ }
+ }
+ }
+ }
+ }, "drawCommitLabel");
+ drawCommitTags = /* @__PURE__ */ __name((gLabels, commit2, commitPosition, pos) => {
+ if (commit2.tags.length > 0) {
+ let yOffset = 0;
+ let maxTagBboxWidth = 0;
+ let maxTagBboxHeight = 0;
+ const tagElements = [];
+ for (const tagValue of commit2.tags.reverse()) {
+ const rect4 = gLabels.insert("polygon");
+ const hole = gLabels.append("circle");
+ const tag2 = gLabels.append("text").attr("y", commitPosition.y - 16 - yOffset).attr("class", "tag-label").text(tagValue);
+ const tagBbox = tag2.node()?.getBBox();
+ if (!tagBbox) {
+ throw new Error("Tag bbox not found");
+ }
+ maxTagBboxWidth = Math.max(maxTagBboxWidth, tagBbox.width);
+ maxTagBboxHeight = Math.max(maxTagBboxHeight, tagBbox.height);
+ tag2.attr("x", commitPosition.posWithOffset - tagBbox.width / 2);
+ tagElements.push({
+ tag: tag2,
+ hole,
+ rect: rect4,
+ yOffset
+ });
+ yOffset += 20;
+ }
+ for (const { tag: tag2, hole, rect: rect4, yOffset: yOffset2 } of tagElements) {
+ const h2 = maxTagBboxHeight / 2;
+ const ly = commitPosition.y - 19.2 - yOffset2;
+ rect4.attr("class", "tag-label-bkg").attr(
+ "points",
+ `
+ ${pos - maxTagBboxWidth / 2 - PX / 2},${ly + PY}
+ ${pos - maxTagBboxWidth / 2 - PX / 2},${ly - PY}
+ ${commitPosition.posWithOffset - maxTagBboxWidth / 2 - PX},${ly - h2 - PY}
+ ${commitPosition.posWithOffset + maxTagBboxWidth / 2 + PX},${ly - h2 - PY}
+ ${commitPosition.posWithOffset + maxTagBboxWidth / 2 + PX},${ly + h2 + PY}
+ ${commitPosition.posWithOffset - maxTagBboxWidth / 2 - PX},${ly + h2 + PY}`
+ );
+ hole.attr("cy", ly).attr("cx", pos - maxTagBboxWidth / 2 + PX / 2).attr("r", 1.5).attr("class", "tag-hole");
+ if (dir === "TB" || dir === "BT") {
+ const yOrigin = pos + yOffset2;
+ rect4.attr("class", "tag-label-bkg").attr(
+ "points",
+ `
+ ${commitPosition.x},${yOrigin + 2}
+ ${commitPosition.x},${yOrigin - 2}
+ ${commitPosition.x + LAYOUT_OFFSET},${yOrigin - h2 - 2}
+ ${commitPosition.x + LAYOUT_OFFSET + maxTagBboxWidth + 4},${yOrigin - h2 - 2}
+ ${commitPosition.x + LAYOUT_OFFSET + maxTagBboxWidth + 4},${yOrigin + h2 + 2}
+ ${commitPosition.x + LAYOUT_OFFSET},${yOrigin + h2 + 2}`
+ ).attr("transform", "translate(12,12) rotate(45, " + commitPosition.x + "," + pos + ")");
+ hole.attr("cx", commitPosition.x + PX / 2).attr("cy", yOrigin).attr("transform", "translate(12,12) rotate(45, " + commitPosition.x + "," + pos + ")");
+ tag2.attr("x", commitPosition.x + 5).attr("y", yOrigin + 3).attr("transform", "translate(14,14) rotate(45, " + commitPosition.x + "," + pos + ")");
+ }
+ }
+ }
+ }, "drawCommitTags");
+ getCommitClassType = /* @__PURE__ */ __name((commit2) => {
+ const commitSymbolType = commit2.customType ?? commit2.type;
+ switch (commitSymbolType) {
+ case commitType.NORMAL:
+ return "commit-normal";
+ case commitType.REVERSE:
+ return "commit-reverse";
+ case commitType.HIGHLIGHT:
+ return "commit-highlight";
+ case commitType.MERGE:
+ return "commit-merge";
+ case commitType.CHERRY_PICK:
+ return "commit-cherry-pick";
+ default:
+ return "commit-normal";
+ }
+ }, "getCommitClassType");
+ calculatePosition = /* @__PURE__ */ __name((commit2, dir2, pos, commitPos2) => {
+ const defaultCommitPosition = { x: 0, y: 0 };
+ if (commit2.parents.length > 0) {
+ const closestParent = findClosestParent(commit2.parents);
+ if (closestParent) {
+ const parentPosition = commitPos2.get(closestParent) ?? defaultCommitPosition;
+ if (dir2 === "TB") {
+ return parentPosition.y + COMMIT_STEP;
+ } else if (dir2 === "BT") {
+ const currentPosition = commitPos2.get(commit2.id) ?? defaultCommitPosition;
+ return currentPosition.y - COMMIT_STEP;
+ } else {
+ return parentPosition.x + COMMIT_STEP;
}
- function yrd(a) {
- this.a = a;
+ }
+ } else {
+ if (dir2 === "TB") {
+ return defaultPos;
+ } else if (dir2 === "BT") {
+ const currentPosition = commitPos2.get(commit2.id) ?? defaultCommitPosition;
+ return currentPosition.y - COMMIT_STEP;
+ } else {
+ return 0;
+ }
+ }
+ return 0;
+ }, "calculatePosition");
+ getCommitPosition = /* @__PURE__ */ __name((commit2, pos, isParallelCommits) => {
+ const posWithOffset = dir === "BT" && isParallelCommits ? pos : pos + LAYOUT_OFFSET;
+ const y5 = dir === "TB" || dir === "BT" ? posWithOffset : branchPos.get(commit2.branch)?.pos;
+ const x5 = dir === "TB" || dir === "BT" ? branchPos.get(commit2.branch)?.pos : posWithOffset;
+ if (x5 === void 0 || y5 === void 0) {
+ throw new Error(`Position were undefined for commit ${commit2.id}`);
+ }
+ return { x: x5, y: y5, posWithOffset };
+ }, "getCommitPosition");
+ drawCommits = /* @__PURE__ */ __name((svg, commits, modifyGraph) => {
+ if (!DEFAULT_GITGRAPH_CONFIG2) {
+ throw new Error("GitGraph config not found");
+ }
+ const gBullets = svg.append("g").attr("class", "commit-bullets");
+ const gLabels = svg.append("g").attr("class", "commit-labels");
+ let pos = dir === "TB" || dir === "BT" ? defaultPos : 0;
+ const keys3 = [...commits.keys()];
+ const isParallelCommits = DEFAULT_GITGRAPH_CONFIG2?.parallelCommits ?? false;
+ const sortKeys = /* @__PURE__ */ __name((a2, b2) => {
+ const seqA = commits.get(a2)?.seq;
+ const seqB = commits.get(b2)?.seq;
+ return seqA !== void 0 && seqB !== void 0 ? seqA - seqB : 0;
+ }, "sortKeys");
+ let sortedKeys = keys3.sort(sortKeys);
+ if (dir === "BT") {
+ if (isParallelCommits) {
+ setParallelBTPos(sortedKeys, commits, pos);
+ }
+ sortedKeys = sortedKeys.reverse();
+ }
+ sortedKeys.forEach((key) => {
+ const commit2 = commits.get(key);
+ if (!commit2) {
+ throw new Error(`Commit not found for key ${key}`);
+ }
+ if (isParallelCommits) {
+ pos = calculatePosition(commit2, dir, pos, commitPos);
+ }
+ const commitPosition = getCommitPosition(commit2, pos, isParallelCommits);
+ if (modifyGraph) {
+ const typeClass = getCommitClassType(commit2);
+ const commitSymbolType = commit2.customType ?? commit2.type;
+ const branchIndex = branchPos.get(commit2.branch)?.index ?? 0;
+ drawCommitBullet(gBullets, commit2, commitPosition, typeClass, branchIndex, commitSymbolType);
+ drawCommitLabel(gLabels, commit2, commitPosition, pos);
+ drawCommitTags(gLabels, commit2, commitPosition, pos);
+ }
+ if (dir === "TB" || dir === "BT") {
+ commitPos.set(commit2.id, { x: commitPosition.x, y: commitPosition.posWithOffset });
+ } else {
+ commitPos.set(commit2.id, { x: commitPosition.posWithOffset, y: commitPosition.y });
+ }
+ pos = dir === "BT" && isParallelCommits ? pos + COMMIT_STEP : pos + COMMIT_STEP + LAYOUT_OFFSET;
+ if (pos > maxPos) {
+ maxPos = pos;
+ }
+ });
+ }, "drawCommits");
+ shouldRerouteArrow = /* @__PURE__ */ __name((commitA, commitB, p1, p22, allCommits) => {
+ const commitBIsFurthest = dir === "TB" || dir === "BT" ? p1.x < p22.x : p1.y < p22.y;
+ const branchToGetCurve = commitBIsFurthest ? commitB.branch : commitA.branch;
+ const isOnBranchToGetCurve = /* @__PURE__ */ __name((x5) => x5.branch === branchToGetCurve, "isOnBranchToGetCurve");
+ const isBetweenCommits = /* @__PURE__ */ __name((x5) => x5.seq > commitA.seq && x5.seq < commitB.seq, "isBetweenCommits");
+ return [...allCommits.values()].some((commitX) => {
+ return isBetweenCommits(commitX) && isOnBranchToGetCurve(commitX);
+ });
+ }, "shouldRerouteArrow");
+ findLane = /* @__PURE__ */ __name((y1, y22, depth = 0) => {
+ const candidate = y1 + Math.abs(y1 - y22) / 2;
+ if (depth > 5) {
+ return candidate;
+ }
+ const ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);
+ if (ok) {
+ lanes.push(candidate);
+ return candidate;
+ }
+ const diff2 = Math.abs(y1 - y22);
+ return findLane(y1, y22 - diff2 / 5, depth + 1);
+ }, "findLane");
+ drawArrow = /* @__PURE__ */ __name((svg, commitA, commitB, allCommits) => {
+ const p1 = commitPos.get(commitA.id);
+ const p22 = commitPos.get(commitB.id);
+ if (p1 === void 0 || p22 === void 0) {
+ throw new Error(`Commit positions not found for commits ${commitA.id} and ${commitB.id}`);
+ }
+ const arrowNeedsRerouting = shouldRerouteArrow(commitA, commitB, p1, p22, allCommits);
+ let arc = "";
+ let arc2 = "";
+ let radius2 = 0;
+ let offset = 0;
+ let colorClassNum = branchPos.get(commitB.branch)?.index;
+ if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {
+ colorClassNum = branchPos.get(commitA.branch)?.index;
+ }
+ let lineDef;
+ if (arrowNeedsRerouting) {
+ arc = "A 10 10, 0, 0, 0,";
+ arc2 = "A 10 10, 0, 0, 1,";
+ radius2 = 10;
+ offset = 10;
+ const lineY = p1.y < p22.y ? findLane(p1.y, p22.y) : findLane(p22.y, p1.y);
+ const lineX = p1.x < p22.x ? findLane(p1.x, p22.x) : findLane(p22.x, p1.x);
+ if (dir === "TB") {
+ if (p1.x < p22.x) {
+ lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius2} ${p1.y} ${arc2} ${lineX} ${p1.y + offset} L ${lineX} ${p22.y - radius2} ${arc} ${lineX + offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ } else {
+ colorClassNum = branchPos.get(commitA.branch)?.index;
+ lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius2} ${p1.y} ${arc} ${lineX} ${p1.y + offset} L ${lineX} ${p22.y - radius2} ${arc2} ${lineX - offset} ${p22.y} L ${p22.x} ${p22.y}`;
}
- function zrd(a) {
- this.a = a;
+ } else if (dir === "BT") {
+ if (p1.x < p22.x) {
+ lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius2} ${p1.y} ${arc} ${lineX} ${p1.y - offset} L ${lineX} ${p22.y + radius2} ${arc2} ${lineX + offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ } else {
+ colorClassNum = branchPos.get(commitA.branch)?.index;
+ lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius2} ${p1.y} ${arc2} ${lineX} ${p1.y - offset} L ${lineX} ${p22.y + radius2} ${arc} ${lineX - offset} ${p22.y} L ${p22.x} ${p22.y}`;
}
- function Ard(a) {
- this.a = a;
+ } else {
+ if (p1.y < p22.y) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius2} ${arc} ${p1.x + offset} ${lineY} L ${p22.x - radius2} ${lineY} ${arc2} ${p22.x} ${lineY + offset} L ${p22.x} ${p22.y}`;
+ } else {
+ colorClassNum = branchPos.get(commitA.branch)?.index;
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius2} ${arc2} ${p1.x + offset} ${lineY} L ${p22.x - radius2} ${lineY} ${arc} ${p22.x} ${lineY - offset} L ${p22.x} ${p22.y}`;
}
- function Brd(a) {
- this.a = a;
+ }
+ } else {
+ arc = "A 20 20, 0, 0, 0,";
+ arc2 = "A 20 20, 0, 0, 1,";
+ radius2 = 20;
+ offset = 20;
+ if (dir === "TB") {
+ if (p1.x < p22.x) {
+ if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p22.y - radius2} ${arc} ${p1.x + offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x - radius2} ${p1.y} ${arc2} ${p22.x} ${p1.y + offset} L ${p22.x} ${p22.y}`;
+ }
}
- function Crd(a) {
- this.a = a;
+ if (p1.x > p22.x) {
+ arc = "A 20 20, 0, 0, 0,";
+ arc2 = "A 20 20, 0, 0, 1,";
+ radius2 = 20;
+ offset = 20;
+ if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p22.y - radius2} ${arc2} ${p1.x - offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x + radius2} ${p1.y} ${arc} ${p22.x} ${p1.y + offset} L ${p22.x} ${p22.y}`;
+ }
}
- function Ird(a) {
- this.a = a;
+ if (p1.x === p22.x) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x} ${p22.y}`;
}
- function Krd(a) {
- this.a = a;
+ } else if (dir === "BT") {
+ if (p1.x < p22.x) {
+ if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p22.y + radius2} ${arc2} ${p1.x + offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x - radius2} ${p1.y} ${arc} ${p22.x} ${p1.y - offset} L ${p22.x} ${p22.y}`;
+ }
}
- function Lrd(a) {
- this.a = a;
+ if (p1.x > p22.x) {
+ arc = "A 20 20, 0, 0, 0,";
+ arc2 = "A 20 20, 0, 0, 1,";
+ radius2 = 20;
+ offset = 20;
+ if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p22.y + radius2} ${arc} ${p1.x - offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x - radius2} ${p1.y} ${arc} ${p22.x} ${p1.y - offset} L ${p22.x} ${p22.y}`;
+ }
}
- function Mrd(a) {
- this.a = a;
+ if (p1.x === p22.x) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x} ${p22.y}`;
}
- function Nrd(a) {
- this.a = a;
+ } else {
+ if (p1.y < p22.y) {
+ if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x - radius2} ${p1.y} ${arc2} ${p22.x} ${p1.y + offset} L ${p22.x} ${p22.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p22.y - radius2} ${arc} ${p1.x + offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ }
}
- function Prd(a) {
- this.a = a;
+ if (p1.y > p22.y) {
+ if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x - radius2} ${p1.y} ${arc} ${p22.x} ${p1.y - offset} L ${p22.x} ${p22.y}`;
+ } else {
+ lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p22.y + radius2} ${arc2} ${p1.x + offset} ${p22.y} L ${p22.x} ${p22.y}`;
+ }
}
- function Srd(a) {
- this.a = a;
+ if (p1.y === p22.y) {
+ lineDef = `M ${p1.x} ${p1.y} L ${p22.x} ${p22.y}`;
}
- function Yrd(a) {
- this.a = a;
+ }
+ }
+ if (lineDef === void 0) {
+ throw new Error("Line definition not found");
+ }
+ svg.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT);
+ }, "drawArrow");
+ drawArrows = /* @__PURE__ */ __name((svg, commits) => {
+ const gArrows = svg.append("g").attr("class", "commit-arrows");
+ [...commits.keys()].forEach((key) => {
+ const commit2 = commits.get(key);
+ if (commit2.parents && commit2.parents.length > 0) {
+ commit2.parents.forEach((parent4) => {
+ drawArrow(gArrows, commits.get(parent4), commit2, commits);
+ });
+ }
+ });
+ }, "drawArrows");
+ drawBranches = /* @__PURE__ */ __name((svg, branches) => {
+ const g2 = svg.append("g");
+ branches.forEach((branch2, index) => {
+ const adjustIndexForTheme = index % THEME_COLOR_LIMIT;
+ const pos = branchPos.get(branch2.name)?.pos;
+ if (pos === void 0) {
+ throw new Error(`Position not found for branch ${branch2.name}`);
+ }
+ const line2 = g2.append("line");
+ line2.attr("x1", 0);
+ line2.attr("y1", pos);
+ line2.attr("x2", maxPos);
+ line2.attr("y2", pos);
+ line2.attr("class", "branch branch" + adjustIndexForTheme);
+ if (dir === "TB") {
+ line2.attr("y1", defaultPos);
+ line2.attr("x1", pos);
+ line2.attr("y2", maxPos);
+ line2.attr("x2", pos);
+ } else if (dir === "BT") {
+ line2.attr("y1", maxPos);
+ line2.attr("x1", pos);
+ line2.attr("y2", defaultPos);
+ line2.attr("x2", pos);
+ }
+ lanes.push(pos);
+ const name = branch2.name;
+ const labelElement = drawText2(name);
+ const bkg = g2.insert("rect");
+ const branchLabel = g2.insert("g").attr("class", "branchLabel");
+ const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme);
+ label.node().appendChild(labelElement);
+ const bbox = labelElement.getBBox();
+ bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (DEFAULT_GITGRAPH_CONFIG2?.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4);
+ label.attr(
+ "transform",
+ "translate(" + (-bbox.width - 14 - (DEFAULT_GITGRAPH_CONFIG2?.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")"
+ );
+ if (dir === "TB") {
+ bkg.attr("x", pos - bbox.width / 2 - 10).attr("y", 0);
+ label.attr("transform", "translate(" + (pos - bbox.width / 2 - 5) + ", 0)");
+ } else if (dir === "BT") {
+ bkg.attr("x", pos - bbox.width / 2 - 10).attr("y", maxPos);
+ label.attr("transform", "translate(" + (pos - bbox.width / 2 - 5) + ", " + maxPos + ")");
+ } else {
+ bkg.attr("transform", "translate(-19, " + (pos - bbox.height / 2) + ")");
+ }
+ });
+ }, "drawBranches");
+ setBranchPosition = /* @__PURE__ */ __name(function(name, pos, index, bbox, rotateCommitLabel) {
+ branchPos.set(name, { pos, index });
+ pos += 50 + (rotateCommitLabel ? 40 : 0) + (dir === "TB" || dir === "BT" ? bbox.width / 2 : 0);
+ return pos;
+ }, "setBranchPosition");
+ draw4 = /* @__PURE__ */ __name(function(txt, id27, ver, diagObj) {
+ clear11();
+ log.debug("in gitgraph renderer", txt + "\n", "id:", id27, ver);
+ if (!DEFAULT_GITGRAPH_CONFIG2) {
+ throw new Error("GitGraph config not found");
+ }
+ const rotateCommitLabel = DEFAULT_GITGRAPH_CONFIG2.rotateCommitLabel ?? false;
+ const db8 = diagObj.db;
+ allCommitsDict = db8.getCommits();
+ const branches = db8.getBranchesAsObjArray();
+ dir = db8.getDirection();
+ const diagram24 = select_default2(`[id="${id27}"]`);
+ let pos = 0;
+ branches.forEach((branch2, index) => {
+ const labelElement = drawText2(branch2.name);
+ const g2 = diagram24.append("g");
+ const branchLabel = g2.insert("g").attr("class", "branchLabel");
+ const label = branchLabel.insert("g").attr("class", "label branch-label");
+ label.node()?.appendChild(labelElement);
+ const bbox = labelElement.getBBox();
+ pos = setBranchPosition(branch2.name, pos, index, bbox, rotateCommitLabel);
+ label.remove();
+ branchLabel.remove();
+ g2.remove();
+ });
+ drawCommits(diagram24, allCommitsDict, false);
+ if (DEFAULT_GITGRAPH_CONFIG2.showBranches) {
+ drawBranches(diagram24, branches);
+ }
+ drawArrows(diagram24, allCommitsDict);
+ drawCommits(diagram24, allCommitsDict, true);
+ utils_default2.insertTitle(
+ diagram24,
+ "gitTitleText",
+ DEFAULT_GITGRAPH_CONFIG2.titleTopMargin ?? 0,
+ db8.getDiagramTitle()
+ );
+ setupGraphViewbox2(
+ void 0,
+ diagram24,
+ DEFAULT_GITGRAPH_CONFIG2.diagramPadding,
+ DEFAULT_GITGRAPH_CONFIG2.useMaxWidth
+ );
+ }, "draw");
+ gitGraphRenderer_default = {
+ draw: draw4
+ };
+ if (void 0) {
+ const { it, expect, describe } = void 0;
+ describe("drawText", () => {
+ it("should drawText", () => {
+ const svgLabel = drawText2("main");
+ expect(svgLabel).toBeDefined();
+ expect(svgLabel.children[0].innerHTML).toBe("main");
+ });
+ });
+ describe("branchPosition", () => {
+ const bbox = {
+ x: 0,
+ y: 0,
+ width: 10,
+ height: 10,
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0,
+ toJSON: /* @__PURE__ */ __name(() => "", "toJSON")
+ };
+ it("should setBranchPositions LR with two branches", () => {
+ dir = "LR";
+ const pos = setBranchPosition("main", 0, 0, bbox, true);
+ expect(pos).toBe(90);
+ expect(branchPos.get("main")).toEqual({ pos: 0, index: 0 });
+ const posNext = setBranchPosition("develop", pos, 1, bbox, true);
+ expect(posNext).toBe(180);
+ expect(branchPos.get("develop")).toEqual({ pos, index: 1 });
+ });
+ it("should setBranchPositions TB with two branches", () => {
+ dir = "TB";
+ bbox.width = 34.9921875;
+ const pos = setBranchPosition("main", 0, 0, bbox, true);
+ expect(pos).toBe(107.49609375);
+ expect(branchPos.get("main")).toEqual({ pos: 0, index: 0 });
+ bbox.width = 56.421875;
+ const posNext = setBranchPosition("develop", pos, 1, bbox, true);
+ expect(posNext).toBe(225.70703125);
+ expect(branchPos.get("develop")).toEqual({ pos, index: 1 });
+ });
+ });
+ describe("commitPosition", () => {
+ const commits = /* @__PURE__ */ new Map([
+ [
+ "commitZero",
+ {
+ id: "ZERO",
+ message: "",
+ seq: 0,
+ type: commitType.NORMAL,
+ tags: [],
+ parents: [],
+ branch: "main"
+ }
+ ],
+ [
+ "commitA",
+ {
+ id: "A",
+ message: "",
+ seq: 1,
+ type: commitType.NORMAL,
+ tags: [],
+ parents: ["ZERO"],
+ branch: "feature"
+ }
+ ],
+ [
+ "commitB",
+ {
+ id: "B",
+ message: "",
+ seq: 2,
+ type: commitType.NORMAL,
+ tags: [],
+ parents: ["A"],
+ branch: "feature"
+ }
+ ],
+ [
+ "commitM",
+ {
+ id: "M",
+ message: "merged branch feature into main",
+ seq: 3,
+ type: commitType.MERGE,
+ tags: [],
+ parents: ["ZERO", "B"],
+ branch: "main",
+ customId: true
+ }
+ ],
+ [
+ "commitC",
+ {
+ id: "C",
+ message: "",
+ seq: 4,
+ type: commitType.NORMAL,
+ tags: [],
+ parents: ["ZERO"],
+ branch: "release"
+ }
+ ],
+ [
+ "commit5_8928ea0",
+ {
+ id: "5-8928ea0",
+ message: "cherry-picked [object Object] into release",
+ seq: 5,
+ type: commitType.CHERRY_PICK,
+ tags: [],
+ parents: ["C", "M"],
+ branch: "release"
+ }
+ ],
+ [
+ "commitD",
+ {
+ id: "D",
+ message: "",
+ seq: 6,
+ type: commitType.NORMAL,
+ tags: [],
+ parents: ["5-8928ea0"],
+ branch: "release"
+ }
+ ],
+ [
+ "commit7_ed848ba",
+ {
+ id: "7-ed848ba",
+ message: "cherry-picked [object Object] into release",
+ seq: 7,
+ type: commitType.CHERRY_PICK,
+ tags: [],
+ parents: ["D", "M"],
+ branch: "release"
+ }
+ ]
+ ]);
+ let pos = 0;
+ branchPos.set("main", { pos: 0, index: 0 });
+ branchPos.set("feature", { pos: 107.49609375, index: 1 });
+ branchPos.set("release", { pos: 224.03515625, index: 2 });
+ describe("TB", () => {
+ pos = 30;
+ dir = "TB";
+ const expectedCommitPositionTB = /* @__PURE__ */ new Map([
+ ["commitZero", { x: 0, y: 40, posWithOffset: 40 }],
+ ["commitA", { x: 107.49609375, y: 90, posWithOffset: 90 }],
+ ["commitB", { x: 107.49609375, y: 140, posWithOffset: 140 }],
+ ["commitM", { x: 0, y: 190, posWithOffset: 190 }],
+ ["commitC", { x: 224.03515625, y: 240, posWithOffset: 240 }],
+ ["commit5_8928ea0", { x: 224.03515625, y: 290, posWithOffset: 290 }],
+ ["commitD", { x: 224.03515625, y: 340, posWithOffset: 340 }],
+ ["commit7_ed848ba", { x: 224.03515625, y: 390, posWithOffset: 390 }]
+ ]);
+ commits.forEach((commit2, key) => {
+ it(`should give the correct position for commit ${key}`, () => {
+ const position5 = getCommitPosition(commit2, pos, false);
+ expect(position5).toEqual(expectedCommitPositionTB.get(key));
+ pos += 50;
+ });
+ });
+ });
+ describe("LR", () => {
+ let pos2 = 30;
+ dir = "LR";
+ const expectedCommitPositionLR = /* @__PURE__ */ new Map([
+ ["commitZero", { x: 0, y: 40, posWithOffset: 40 }],
+ ["commitA", { x: 107.49609375, y: 90, posWithOffset: 90 }],
+ ["commitB", { x: 107.49609375, y: 140, posWithOffset: 140 }],
+ ["commitM", { x: 0, y: 190, posWithOffset: 190 }],
+ ["commitC", { x: 224.03515625, y: 240, posWithOffset: 240 }],
+ ["commit5_8928ea0", { x: 224.03515625, y: 290, posWithOffset: 290 }],
+ ["commitD", { x: 224.03515625, y: 340, posWithOffset: 340 }],
+ ["commit7_ed848ba", { x: 224.03515625, y: 390, posWithOffset: 390 }]
+ ]);
+ commits.forEach((commit2, key) => {
+ it(`should give the correct position for commit ${key}`, () => {
+ const position5 = getCommitPosition(commit2, pos2, false);
+ expect(position5).toEqual(expectedCommitPositionLR.get(key));
+ pos2 += 50;
+ });
+ });
+ });
+ describe("getCommitClassType", () => {
+ const expectedCommitClassType = /* @__PURE__ */ new Map([
+ ["commitZero", "commit-normal"],
+ ["commitA", "commit-normal"],
+ ["commitB", "commit-normal"],
+ ["commitM", "commit-merge"],
+ ["commitC", "commit-normal"],
+ ["commit5_8928ea0", "commit-cherry-pick"],
+ ["commitD", "commit-normal"],
+ ["commit7_ed848ba", "commit-cherry-pick"]
+ ]);
+ commits.forEach((commit2, key) => {
+ it(`should give the correct class type for commit ${key}`, () => {
+ const classType = getCommitClassType(commit2);
+ expect(classType).toBe(expectedCommitClassType.get(key));
+ });
+ });
+ });
+ });
+ describe("building BT parallel commit diagram", () => {
+ const commits = /* @__PURE__ */ new Map([
+ [
+ "1-abcdefg",
+ {
+ id: "1-abcdefg",
+ message: "",
+ seq: 0,
+ type: 0,
+ tags: [],
+ parents: [],
+ branch: "main"
+ }
+ ],
+ [
+ "2-abcdefg",
+ {
+ id: "2-abcdefg",
+ message: "",
+ seq: 1,
+ type: 0,
+ tags: [],
+ parents: ["1-abcdefg"],
+ branch: "main"
+ }
+ ],
+ [
+ "3-abcdefg",
+ {
+ id: "3-abcdefg",
+ message: "",
+ seq: 2,
+ type: 0,
+ tags: [],
+ parents: ["2-abcdefg"],
+ branch: "develop"
+ }
+ ],
+ [
+ "4-abcdefg",
+ {
+ id: "4-abcdefg",
+ message: "",
+ seq: 3,
+ type: 0,
+ tags: [],
+ parents: ["3-abcdefg"],
+ branch: "develop"
+ }
+ ],
+ [
+ "5-abcdefg",
+ {
+ id: "5-abcdefg",
+ message: "",
+ seq: 4,
+ type: 0,
+ tags: [],
+ parents: ["2-abcdefg"],
+ branch: "feature"
+ }
+ ],
+ [
+ "6-abcdefg",
+ {
+ id: "6-abcdefg",
+ message: "",
+ seq: 5,
+ type: 0,
+ tags: [],
+ parents: ["5-abcdefg"],
+ branch: "feature"
+ }
+ ],
+ [
+ "7-abcdefg",
+ {
+ id: "7-abcdefg",
+ message: "",
+ seq: 6,
+ type: 0,
+ tags: [],
+ parents: ["2-abcdefg"],
+ branch: "main"
+ }
+ ],
+ [
+ "8-abcdefg",
+ {
+ id: "8-abcdefg",
+ message: "",
+ seq: 7,
+ type: 0,
+ tags: [],
+ parents: ["7-abcdefg"],
+ branch: "main"
+ }
+ ]
+ ]);
+ const expectedCommitPosition = /* @__PURE__ */ new Map([
+ ["1-abcdefg", { x: 0, y: 40 }],
+ ["2-abcdefg", { x: 0, y: 90 }],
+ ["3-abcdefg", { x: 107.49609375, y: 140 }],
+ ["4-abcdefg", { x: 107.49609375, y: 190 }],
+ ["5-abcdefg", { x: 225.70703125, y: 140 }],
+ ["6-abcdefg", { x: 225.70703125, y: 190 }],
+ ["7-abcdefg", { x: 0, y: 140 }],
+ ["8-abcdefg", { x: 0, y: 190 }]
+ ]);
+ const expectedCommitPositionAfterParallel = /* @__PURE__ */ new Map([
+ ["1-abcdefg", { x: 0, y: 210 }],
+ ["2-abcdefg", { x: 0, y: 160 }],
+ ["3-abcdefg", { x: 107.49609375, y: 110 }],
+ ["4-abcdefg", { x: 107.49609375, y: 60 }],
+ ["5-abcdefg", { x: 225.70703125, y: 110 }],
+ ["6-abcdefg", { x: 225.70703125, y: 60 }],
+ ["7-abcdefg", { x: 0, y: 110 }],
+ ["8-abcdefg", { x: 0, y: 60 }]
+ ]);
+ const expectedCommitCurrentPosition = /* @__PURE__ */ new Map([
+ ["1-abcdefg", 30],
+ ["2-abcdefg", 80],
+ ["3-abcdefg", 130],
+ ["4-abcdefg", 180],
+ ["5-abcdefg", 130],
+ ["6-abcdefg", 180],
+ ["7-abcdefg", 130],
+ ["8-abcdefg", 180]
+ ]);
+ const sortedKeys = [...expectedCommitPosition.keys()];
+ it("should get the correct commit position and current position", () => {
+ dir = "BT";
+ let curPos = 30;
+ commitPos.clear();
+ branchPos.clear();
+ branchPos.set("main", { pos: 0, index: 0 });
+ branchPos.set("develop", { pos: 107.49609375, index: 1 });
+ branchPos.set("feature", { pos: 225.70703125, index: 2 });
+ DEFAULT_GITGRAPH_CONFIG2.parallelCommits = true;
+ commits.forEach((commit2, key) => {
+ if (commit2.parents.length > 0) {
+ curPos = calculateCommitPosition(commit2);
+ }
+ const position5 = setCommitPosition(commit2, curPos);
+ expect(position5).toEqual(expectedCommitPosition.get(key));
+ expect(curPos).toEqual(expectedCommitCurrentPosition.get(key));
+ });
+ });
+ it("should get the correct commit position after parallel commits", () => {
+ commitPos.clear();
+ branchPos.clear();
+ dir = "BT";
+ const curPos = 30;
+ commitPos.clear();
+ branchPos.clear();
+ branchPos.set("main", { pos: 0, index: 0 });
+ branchPos.set("develop", { pos: 107.49609375, index: 1 });
+ branchPos.set("feature", { pos: 225.70703125, index: 2 });
+ setParallelBTPos(sortedKeys, commits, curPos);
+ sortedKeys.forEach((commit2) => {
+ const position5 = commitPos.get(commit2);
+ expect(position5).toEqual(expectedCommitPositionAfterParallel.get(commit2));
+ });
+ });
+ });
+ DEFAULT_GITGRAPH_CONFIG2.parallelCommits = false;
+ it("add", () => {
+ commitPos.set("parent1", { x: 1, y: 1 });
+ commitPos.set("parent2", { x: 2, y: 2 });
+ commitPos.set("parent3", { x: 3, y: 3 });
+ dir = "LR";
+ const parents4 = ["parent1", "parent2", "parent3"];
+ const closestParent = findClosestParent(parents4);
+ expect(closestParent).toBe("parent3");
+ commitPos.clear();
+ });
+ }
+ }
+ });
+
+ // src/diagrams/git/styles.js
+ var getStyles5, styles_default5;
+ var init_styles5 = __esm({
+ "src/diagrams/git/styles.js"() {
+ "use strict";
+ getStyles5 = /* @__PURE__ */ __name((options3) => `
+ .commit-id,
+ .commit-msg,
+ .branch-label {
+ fill: lightgrey;
+ color: lightgrey;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ }
+ ${[0, 1, 2, 3, 4, 5, 6, 7].map(
+ (i2) => `
+ .branch-label${i2} { fill: ${options3["gitBranchLabel" + i2]}; }
+ .commit${i2} { stroke: ${options3["git" + i2]}; fill: ${options3["git" + i2]}; }
+ .commit-highlight${i2} { stroke: ${options3["gitInv" + i2]}; fill: ${options3["gitInv" + i2]}; }
+ .label${i2} { fill: ${options3["git" + i2]}; }
+ .arrow${i2} { stroke: ${options3["git" + i2]}; }
+ `
+ ).join("\n")}
+
+ .branch {
+ stroke-width: 1;
+ stroke: ${options3.lineColor};
+ stroke-dasharray: 2;
+ }
+ .commit-label { font-size: ${options3.commitLabelFontSize}; fill: ${options3.commitLabelColor};}
+ .commit-label-bkg { font-size: ${options3.commitLabelFontSize}; fill: ${options3.commitLabelBackground}; opacity: 0.5; }
+ .tag-label { font-size: ${options3.tagLabelFontSize}; fill: ${options3.tagLabelColor};}
+ .tag-label-bkg { fill: ${options3.tagLabelBackground}; stroke: ${options3.tagLabelBorder}; }
+ .tag-hole { fill: ${options3.textColor}; }
+
+ .commit-merge {
+ stroke: ${options3.primaryColor};
+ fill: ${options3.primaryColor};
+ }
+ .commit-reverse {
+ stroke: ${options3.primaryColor};
+ fill: ${options3.primaryColor};
+ stroke-width: 3;
+ }
+ .commit-highlight-outer {
+ }
+ .commit-highlight-inner {
+ stroke: ${options3.primaryColor};
+ fill: ${options3.primaryColor};
+ }
+
+ .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
+ .gitTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options3.textColor};
+ }
+`, "getStyles");
+ styles_default5 = getStyles5;
+ }
+ });
+
+ // src/diagrams/git/gitGraphDiagram.ts
+ var gitGraphDiagram_exports = {};
+ __export(gitGraphDiagram_exports, {
+ diagram: () => diagram4
+ });
+ var diagram4;
+ var init_gitGraphDiagram = __esm({
+ "src/diagrams/git/gitGraphDiagram.ts"() {
+ "use strict";
+ init_gitGraphParser();
+ init_gitGraphAst();
+ init_gitGraphRenderer();
+ init_styles5();
+ diagram4 = {
+ parser: parser5,
+ db,
+ renderer: gitGraphRenderer_default,
+ styles: styles_default5
+ };
+ }
+ });
+
+ // src/diagrams/gantt/parser/gantt.jison
+ var parser6, gantt_default;
+ var init_gantt = __esm({
+ "src/diagrams/gantt/parser/gantt.jison"() {
+ "use strict";
+ parser6 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 40], $V1 = [1, 26], $V2 = [1, 27], $V3 = [1, 28], $V4 = [1, 29], $V5 = [1, 30], $V6 = [1, 31], $V7 = [1, 32], $V8 = [1, 33], $V9 = [1, 34], $Va = [1, 9], $Vb = [1, 10], $Vc = [1, 11], $Vd = [1, 12], $Ve = [1, 13], $Vf = [1, 14], $Vg = [1, 15], $Vh = [1, 16], $Vi = [1, 19], $Vj = [1, 20], $Vk = [1, 21], $Vl = [1, 22], $Vm = [1, 23], $Vn = [1, 25], $Vo = [1, 35];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "gantt": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NL": 10, "weekday": 11, "weekday_monday": 12, "weekday_tuesday": 13, "weekday_wednesday": 14, "weekday_thursday": 15, "weekday_friday": 16, "weekday_saturday": 17, "weekday_sunday": 18, "weekend": 19, "weekend_friday": 20, "weekend_saturday": 21, "dateFormat": 22, "inclusiveEndDates": 23, "topAxis": 24, "axisFormat": 25, "tickInterval": 26, "excludes": 27, "includes": 28, "todayMarker": 29, "title": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "section": 36, "clickStatement": 37, "taskTxt": 38, "taskData": 39, "click": 40, "callbackname": 41, "callbackargs": 42, "href": 43, "clickStatementDebug": 44, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 12: "weekday_monday", 13: "weekday_tuesday", 14: "weekday_wednesday", 15: "weekday_thursday", 16: "weekday_friday", 17: "weekday_saturday", 18: "weekday_sunday", 20: "weekend_friday", 21: "weekend_saturday", 22: "dateFormat", 23: "inclusiveEndDates", 24: "topAxis", 25: "axisFormat", 26: "tickInterval", 27: "excludes", 28: "includes", 29: "todayMarker", 30: "title", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 36: "section", 38: "taskTxt", 39: "taskData", 40: "click", 41: "callbackname", 42: "callbackargs", 43: "href" },
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [19, 1], [19, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [37, 2], [37, 3], [37, 3], [37, 4], [37, 3], [37, 4], [37, 2], [44, 2], [44, 3], [44, 3], [44, 4], [44, 3], [44, 4], [44, 2]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ break;
+ case 2:
+ this.$ = [];
+ break;
+ case 3:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 4:
+ case 5:
+ this.$ = $$[$0];
+ break;
+ case 6:
+ case 7:
+ this.$ = [];
+ break;
+ case 8:
+ yy.setWeekday("monday");
+ break;
+ case 9:
+ yy.setWeekday("tuesday");
+ break;
+ case 10:
+ yy.setWeekday("wednesday");
+ break;
+ case 11:
+ yy.setWeekday("thursday");
+ break;
+ case 12:
+ yy.setWeekday("friday");
+ break;
+ case 13:
+ yy.setWeekday("saturday");
+ break;
+ case 14:
+ yy.setWeekday("sunday");
+ break;
+ case 15:
+ yy.setWeekend("friday");
+ break;
+ case 16:
+ yy.setWeekend("saturday");
+ break;
+ case 17:
+ yy.setDateFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 18:
+ yy.enableInclusiveEndDates();
+ this.$ = $$[$0].substr(18);
+ break;
+ case 19:
+ yy.TopAxis();
+ this.$ = $$[$0].substr(8);
+ break;
+ case 20:
+ yy.setAxisFormat($$[$0].substr(11));
+ this.$ = $$[$0].substr(11);
+ break;
+ case 21:
+ yy.setTickInterval($$[$0].substr(13));
+ this.$ = $$[$0].substr(13);
+ break;
+ case 22:
+ yy.setExcludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 23:
+ yy.setIncludes($$[$0].substr(9));
+ this.$ = $$[$0].substr(9);
+ break;
+ case 24:
+ yy.setTodayMarker($$[$0].substr(12));
+ this.$ = $$[$0].substr(12);
+ break;
+ case 27:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 28:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 29:
+ case 30:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 31:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 33:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
+ case 34:
+ this.$ = $$[$0 - 1];
+ yy.setClickEvent($$[$0 - 1], $$[$0], null);
+ break;
+ case 35:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 36:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);
+ yy.setLink($$[$0 - 2], $$[$0]);
+ break;
+ case 37:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
+ yy.setLink($$[$0 - 3], $$[$0]);
+ break;
+ case 38:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 2], $$[$0], null);
+ yy.setLink($$[$0 - 2], $$[$0 - 1]);
+ break;
+ case 39:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);
+ yy.setLink($$[$0 - 3], $$[$0 - 2]);
+ break;
+ case 40:
+ this.$ = $$[$0 - 1];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 41:
+ case 47:
+ this.$ = $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 42:
+ case 43:
+ case 45:
+ this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
+ case 44:
+ case 46:
+ this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
+ break;
}
- function Zrd(a) {
- this.a = a;
+ }, "anonymous"),
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o2($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: 18, 20: $V8, 21: $V9, 22: $Va, 23: $Vb, 24: $Vc, 25: $Vd, 26: $Ve, 27: $Vf, 28: $Vg, 29: $Vh, 30: $Vi, 31: $Vj, 33: $Vk, 35: $Vl, 36: $Vm, 37: 24, 38: $Vn, 40: $Vo }, o2($V0, [2, 7], { 1: [2, 1] }), o2($V0, [2, 3]), { 9: 36, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: 18, 20: $V8, 21: $V9, 22: $Va, 23: $Vb, 24: $Vc, 25: $Vd, 26: $Ve, 27: $Vf, 28: $Vg, 29: $Vh, 30: $Vi, 31: $Vj, 33: $Vk, 35: $Vl, 36: $Vm, 37: 24, 38: $Vn, 40: $Vo }, o2($V0, [2, 5]), o2($V0, [2, 6]), o2($V0, [2, 17]), o2($V0, [2, 18]), o2($V0, [2, 19]), o2($V0, [2, 20]), o2($V0, [2, 21]), o2($V0, [2, 22]), o2($V0, [2, 23]), o2($V0, [2, 24]), o2($V0, [2, 25]), o2($V0, [2, 26]), o2($V0, [2, 27]), { 32: [1, 37] }, { 34: [1, 38] }, o2($V0, [2, 30]), o2($V0, [2, 31]), o2($V0, [2, 32]), { 39: [1, 39] }, o2($V0, [2, 8]), o2($V0, [2, 9]), o2($V0, [2, 10]), o2($V0, [2, 11]), o2($V0, [2, 12]), o2($V0, [2, 13]), o2($V0, [2, 14]), o2($V0, [2, 15]), o2($V0, [2, 16]), { 41: [1, 40], 43: [1, 41] }, o2($V0, [2, 4]), o2($V0, [2, 28]), o2($V0, [2, 29]), o2($V0, [2, 33]), o2($V0, [2, 34], { 42: [1, 42], 43: [1, 43] }), o2($V0, [2, 40], { 41: [1, 44] }), o2($V0, [2, 35], { 43: [1, 45] }), o2($V0, [2, 36]), o2($V0, [2, 38], { 42: [1, 46] }), o2($V0, [2, 37]), o2($V0, [2, 39])],
+ defaultActions: {},
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function _rd(a) {
- this.a = a;
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function asd(a) {
- this.a = a;
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
}
- function bsd(a) {
- this.a = a;
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
}
- function csd(a) {
- this.a = a;
- }
- function dsd(a) {
- this.a = a;
- }
- function msd(a) {
- this.a = a;
- }
- function osd(a) {
- this.a = a;
- }
- function qsd(a) {
- this.a = a;
- }
- function ssd(a) {
- this.a = a;
- }
- function Wsd(a) {
- this.a = a;
- }
- function Lsd(a) {
- this.b = a;
- }
- function thd(a) {
- this.f = a;
- }
- function qtd(a) {
- this.a = a;
- }
- function yBd(a) {
- this.a = a;
- }
- function GBd(a) {
- this.a = a;
- }
- function MBd(a) {
- this.a = a;
- }
- function SBd(a) {
- this.a = a;
- }
- function iCd(a) {
- this.a = a;
- }
- function YMd(a) {
- this.a = a;
- }
- function GNd(a) {
- this.a = a;
- }
- function EPd(a) {
- this.a = a;
- }
- function EQd(a) {
- this.a = a;
- }
- function NTd(a) {
- this.a = a;
- }
- function qOd(a) {
- this.b = a;
- }
- function lVd(a) {
- this.c = a;
- }
- function VVd(a) {
- this.e = a;
- }
- function iYd(a) {
- this.a = a;
- }
- function RYd(a) {
- this.a = a;
- }
- function ZYd(a) {
- this.a = a;
- }
- function z0d(a) {
- this.a = a;
- }
- function O0d(a) {
- this.a = a;
- }
- function s0d(a) {
- this.d = a;
- }
- function W5d(a) {
- this.a = a;
- }
- function cge(a) {
- this.a = a;
- }
- function xfe(a) {
- this.e = a;
- }
- function Tfd() {
- this.a = 0;
- }
- function jkb() {
- Vjb(this);
- }
- function Rkb() {
- Ckb(this);
- }
- function Lqb() {
- Uhb(this);
- }
- function lEb() {
- kEb(this);
- }
- function A_b() {
- }
- function UQd() {
- this.c = FQd;
- }
- function v6d(a, b) {
- b.Wb(a);
- }
- function moc(a, b) {
- a.b += b;
- }
- function yXb(a) {
- a.b = new Ji();
- }
- function vbb(a) {
- return a.e;
- }
- function DB(a) {
- return a.a;
- }
- function LB(a) {
- return a.a;
- }
- function ZB(a) {
- return a.a;
- }
- function lC(a) {
- return a.a;
- }
- function EC(a) {
- return a.a;
- }
- function wC() {
- return null;
- }
- function SB() {
- return null;
- }
- function hcb() {
- mvd();
- ovd();
- }
- function zJb(a) {
- a.b.tf(a.e);
- }
- function j5b(a, b) {
- a.b = b - a.b;
- }
- function g5b(a, b) {
- a.a = b - a.a;
- }
- function PXc(a, b) {
- b.ad(a.a);
- }
- function plc(a, b) {
- G0b(b, a);
- }
- function hp(a, b, c2) {
- a.Od(c2, b);
- }
- function As(a, b) {
- a.e = b;
- b.b = a;
- }
- function Zl(a) {
- Ql();
- this.a = a;
- }
- function jq(a) {
- Ql();
- this.a = a;
- }
- function sq(a) {
- Ql();
- this.a = a;
- }
- function Fq(a) {
- im();
- this.a = a;
- }
- function Sz(a) {
- Rz();
- Qz.be(a);
- }
- function gz() {
- Xy.call(this);
- }
- function xcb() {
- Xy.call(this);
- }
- function pcb() {
- gz.call(this);
- }
- function tcb() {
- gz.call(this);
- }
- function Bdb() {
- gz.call(this);
- }
- function Vdb() {
- gz.call(this);
- }
- function Ydb() {
- gz.call(this);
- }
- function Geb() {
- gz.call(this);
- }
- function bgb() {
- gz.call(this);
- }
- function Apb() {
- gz.call(this);
- }
- function Jpb() {
- gz.call(this);
- }
- function utb() {
- gz.call(this);
- }
- function x2c() {
- gz.call(this);
- }
- function rQd() {
- this.a = this;
- }
- function MPd() {
- this.Bb |= 256;
- }
- function tTb() {
- this.b = new mt();
- }
- function fA() {
- fA = ccb;
- new Lqb();
- }
- function rcb() {
- pcb.call(this);
- }
- function dCb(a, b) {
- a.length = b;
- }
- function Tvb(a, b) {
- Ekb(a.a, b);
- }
- function sKb(a, b) {
- UHb(a.c, b);
- }
- function SMc(a, b) {
- Qqb(a.b, b);
- }
- function vBd(a, b) {
- uAd(a.a, b);
- }
- function wBd(a, b) {
- vAd(a.a, b);
- }
- function GLd(a, b) {
- Uhd(a.e, b);
- }
- function d7d(a) {
- D2d(a.c, a.b);
- }
- function mj(a, b) {
- a.kc().Nb(b);
- }
- function Odb(a) {
- this.a = Tdb(a);
- }
- function Tqb() {
- this.a = new Lqb();
- }
- function gyb() {
- this.a = new Lqb();
- }
- function Wvb() {
- this.a = new Rkb();
- }
- function KFb() {
- this.a = new Rkb();
- }
- function PFb() {
- this.a = new Rkb();
- }
- function FFb() {
- this.a = new yFb();
- }
- function pGb() {
- this.a = new MFb();
- }
- function ZQb() {
- this.a = new MQb();
- }
- function Gxb() {
- this.a = new Pwb();
- }
- function jUb() {
- this.a = new PTb();
- }
- function sDb() {
- this.a = new oDb();
- }
- function zDb() {
- this.a = new tDb();
- }
- function CWb() {
- this.a = new Rkb();
- }
- function HXb() {
- this.a = new Rkb();
- }
- function nYb() {
- this.a = new Rkb();
- }
- function BYb() {
- this.a = new Rkb();
- }
- function fLb() {
- this.d = new Rkb();
- }
- function vYb() {
- this.a = new Tqb();
- }
- function a2b() {
- this.a = new Lqb();
- }
- function wZb() {
- this.b = new Lqb();
- }
- function TCc() {
- this.b = new Rkb();
- }
- function zJc() {
- this.e = new Rkb();
- }
- function uMc() {
- this.d = new Rkb();
- }
- function wdc() {
- this.a = new xkc();
- }
- function vKc() {
- Rkb.call(this);
- }
- function twb() {
- Wvb.call(this);
- }
- function oHb() {
- $Gb.call(this);
- }
- function LXb() {
- HXb.call(this);
- }
- function L_b() {
- H_b.call(this);
- }
- function H_b() {
- A_b.call(this);
- }
- function p0b() {
- A_b.call(this);
- }
- function s0b() {
- p0b.call(this);
- }
- function WMc() {
- VMc.call(this);
- }
- function bNc() {
- VMc.call(this);
- }
- function EPc() {
- CPc.call(this);
- }
- function JPc() {
- CPc.call(this);
- }
- function OPc() {
- CPc.call(this);
- }
- function w1c() {
- s1c.call(this);
- }
- function s7c() {
- Psb.call(this);
- }
- function apd() {
- Ald.call(this);
- }
- function ppd() {
- Ald.call(this);
- }
- function lDd() {
- YCd.call(this);
- }
- function NDd() {
- YCd.call(this);
- }
- function mFd() {
- Lqb.call(this);
- }
- function vFd() {
- Lqb.call(this);
- }
- function GFd() {
- Lqb.call(this);
- }
- function KPd() {
- Tqb.call(this);
- }
- function OJd() {
- hJd.call(this);
- }
- function aQd() {
- MPd.call(this);
- }
- function SSd() {
- FId.call(this);
- }
- function rUd() {
- FId.call(this);
- }
- function oUd() {
- Lqb.call(this);
- }
- function NYd() {
- Lqb.call(this);
- }
- function cZd() {
- Lqb.call(this);
- }
- function R8d() {
- MGd.call(this);
- }
- function o9d() {
- MGd.call(this);
- }
- function i9d() {
- R8d.call(this);
- }
- function hee() {
- ude.call(this);
- }
- function Dd(a) {
- yd.call(this, a);
- }
- function Hd(a) {
- yd.call(this, a);
- }
- function ph(a) {
- lh.call(this, a);
- }
- function Sh(a) {
- Wc.call(this, a);
- }
- function oi(a) {
- Sh.call(this, a);
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.begin("open_directive");
+ return "open_directive";
+ break;
+ case 1:
+ this.begin("acc_title");
+ return 31;
+ break;
+ case 2:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 3:
+ this.begin("acc_descr");
+ return 33;
+ break;
+ case 4:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 5:
+ this.begin("acc_descr_multiline");
+ break;
+ case 6:
+ this.popState();
+ break;
+ case 7:
+ return "acc_descr_multiline_value";
+ break;
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ return 10;
+ break;
+ case 12:
+ break;
+ case 13:
+ break;
+ case 14:
+ this.begin("href");
+ break;
+ case 15:
+ this.popState();
+ break;
+ case 16:
+ return 43;
+ break;
+ case 17:
+ this.begin("callbackname");
+ break;
+ case 18:
+ this.popState();
+ break;
+ case 19:
+ this.popState();
+ this.begin("callbackargs");
+ break;
+ case 20:
+ return 41;
+ break;
+ case 21:
+ this.popState();
+ break;
+ case 22:
+ return 42;
+ break;
+ case 23:
+ this.begin("click");
+ break;
+ case 24:
+ this.popState();
+ break;
+ case 25:
+ return 40;
+ break;
+ case 26:
+ return 4;
+ break;
+ case 27:
+ return 22;
+ break;
+ case 28:
+ return 23;
+ break;
+ case 29:
+ return 24;
+ break;
+ case 30:
+ return 25;
+ break;
+ case 31:
+ return 26;
+ break;
+ case 32:
+ return 28;
+ break;
+ case 33:
+ return 27;
+ break;
+ case 34:
+ return 29;
+ break;
+ case 35:
+ return 12;
+ break;
+ case 36:
+ return 13;
+ break;
+ case 37:
+ return 14;
+ break;
+ case 38:
+ return 15;
+ break;
+ case 39:
+ return 16;
+ break;
+ case 40:
+ return 17;
+ break;
+ case 41:
+ return 18;
+ break;
+ case 42:
+ return 20;
+ break;
+ case 43:
+ return 21;
+ break;
+ case 44:
+ return "date";
+ break;
+ case 45:
+ return 30;
+ break;
+ case 46:
+ return "accDescription";
+ break;
+ case 47:
+ return 36;
+ break;
+ case 48:
+ return 38;
+ break;
+ case 49:
+ return 39;
+ break;
+ case 50:
+ return ":";
+ break;
+ case 51:
+ return 6;
+ break;
+ case 52:
+ return "INVALID";
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:%%\{)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:weekday\s+monday\b)/i, /^(?:weekday\s+tuesday\b)/i, /^(?:weekday\s+wednesday\b)/i, /^(?:weekday\s+thursday\b)/i, /^(?:weekday\s+friday\b)/i, /^(?:weekday\s+saturday\b)/i, /^(?:weekday\s+sunday\b)/i, /^(?:weekend\s+friday\b)/i, /^(?:weekend\s+saturday\b)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^\n]+)/i, /^(?:[^:\n]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "callbackargs": { "rules": [21, 22], "inclusive": false }, "callbackname": { "rules": [18, 19, 20], "inclusive": false }, "href": { "rules": [15, 16], "inclusive": false }, "click": { "rules": [24, 25], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser6.parser = parser6;
+ gantt_default = parser6;
+ }
+ });
+
+ // ../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/isoWeek.js
+ var require_isoWeek = __commonJS({
+ "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/isoWeek.js"(exports2, module2) {
+ "use strict";
+ !function(e3, t4) {
+ "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t4() : "function" == typeof define && define.amd ? define(t4) : (e3 = "undefined" != typeof globalThis ? globalThis : e3 || self).dayjs_plugin_isoWeek = t4();
+ }(exports2, function() {
+ "use strict";
+ var e3 = "day";
+ return function(t4, i2, s2) {
+ var a2 = /* @__PURE__ */ __name(function(t5) {
+ return t5.add(4 - t5.isoWeekday(), e3);
+ }, "a"), d2 = i2.prototype;
+ d2.isoWeekYear = function() {
+ return a2(this).year();
+ }, d2.isoWeek = function(t5) {
+ if (!this.$utils().u(t5)) return this.add(7 * (t5 - this.isoWeek()), e3);
+ var i3, d3, n3, o2, r2 = a2(this), u2 = (i3 = this.isoWeekYear(), d3 = this.$u, n3 = (d3 ? s2.utc : s2)().year(i3).startOf("year"), o2 = 4 - n3.isoWeekday(), n3.isoWeekday() > 4 && (o2 += 7), n3.add(o2, e3));
+ return r2.diff(u2, "week") + 1;
+ }, d2.isoWeekday = function(e4) {
+ return this.$utils().u(e4) ? this.day() || 7 : this.day(this.day() % 7 ? e4 : e4 - 7);
+ };
+ var n2 = d2.startOf;
+ d2.startOf = function(e4, t5) {
+ var i3 = this.$utils(), s3 = !!i3.u(t5) || t5;
+ return "isoweek" === i3.p(e4) ? s3 ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : n2.bind(this)(e4, t5);
+ };
+ };
+ });
+ }
+ });
+
+ // ../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/customParseFormat.js
+ var require_customParseFormat = __commonJS({
+ "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/customParseFormat.js"(exports2, module2) {
+ "use strict";
+ !function(e3, t4) {
+ "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t4() : "function" == typeof define && define.amd ? define(t4) : (e3 = "undefined" != typeof globalThis ? globalThis : e3 || self).dayjs_plugin_customParseFormat = t4();
+ }(exports2, function() {
+ "use strict";
+ var e3 = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, t4 = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, n2 = /\d/, r2 = /\d\d/, i2 = /\d\d?/, o2 = /\d*[^-_:/,()\s\d]+/, s2 = {}, a2 = /* @__PURE__ */ __name(function(e4) {
+ return (e4 = +e4) + (e4 > 68 ? 1900 : 2e3);
+ }, "a");
+ var f3 = /* @__PURE__ */ __name(function(e4) {
+ return function(t5) {
+ this[e4] = +t5;
+ };
+ }, "f"), h2 = [/[+-]\d\d:?(\d\d)?|Z/, function(e4) {
+ (this.zone || (this.zone = {})).offset = function(e6) {
+ if (!e6) return 0;
+ if ("Z" === e6) return 0;
+ var t5 = e6.match(/([+-]|\d\d)/g), n3 = 60 * t5[1] + (+t5[2] || 0);
+ return 0 === n3 ? 0 : "+" === t5[0] ? -n3 : n3;
+ }(e4);
+ }], u2 = /* @__PURE__ */ __name(function(e4) {
+ var t5 = s2[e4];
+ return t5 && (t5.indexOf ? t5 : t5.s.concat(t5.f));
+ }, "u"), d2 = /* @__PURE__ */ __name(function(e4, t5) {
+ var n3, r3 = s2.meridiem;
+ if (r3) {
+ for (var i3 = 1; i3 <= 24; i3 += 1) if (e4.indexOf(r3(i3, 0, t5)) > -1) {
+ n3 = i3 > 12;
+ break;
}
- function Ii(a) {
- Wc.call(this, a);
+ } else n3 = e4 === (t5 ? "pm" : "PM");
+ return n3;
+ }, "d"), c3 = { A: [o2, function(e4) {
+ this.afternoon = d2(e4, false);
+ }], a: [o2, function(e4) {
+ this.afternoon = d2(e4, true);
+ }], Q: [n2, function(e4) {
+ this.month = 3 * (e4 - 1) + 1;
+ }], S: [n2, function(e4) {
+ this.milliseconds = 100 * +e4;
+ }], SS: [r2, function(e4) {
+ this.milliseconds = 10 * +e4;
+ }], SSS: [/\d{3}/, function(e4) {
+ this.milliseconds = +e4;
+ }], s: [i2, f3("seconds")], ss: [i2, f3("seconds")], m: [i2, f3("minutes")], mm: [i2, f3("minutes")], H: [i2, f3("hours")], h: [i2, f3("hours")], HH: [i2, f3("hours")], hh: [i2, f3("hours")], D: [i2, f3("day")], DD: [r2, f3("day")], Do: [o2, function(e4) {
+ var t5 = s2.ordinal, n3 = e4.match(/\d+/);
+ if (this.day = n3[0], t5) for (var r3 = 1; r3 <= 31; r3 += 1) t5(r3).replace(/\[|\]/g, "") === e4 && (this.day = r3);
+ }], w: [i2, f3("week")], ww: [r2, f3("week")], M: [i2, f3("month")], MM: [r2, f3("month")], MMM: [o2, function(e4) {
+ var t5 = u2("months"), n3 = (u2("monthsShort") || t5.map(function(e6) {
+ return e6.slice(0, 3);
+ })).indexOf(e4) + 1;
+ if (n3 < 1) throw new Error();
+ this.month = n3 % 12 || n3;
+ }], MMMM: [o2, function(e4) {
+ var t5 = u2("months").indexOf(e4) + 1;
+ if (t5 < 1) throw new Error();
+ this.month = t5 % 12 || t5;
+ }], Y: [/[+-]?\d+/, f3("year")], YY: [r2, function(e4) {
+ this.year = a2(e4);
+ }], YYYY: [/\d{4}/, f3("year")], Z: h2, ZZ: h2 };
+ function l2(n3) {
+ var r3, i3;
+ r3 = n3, i3 = s2 && s2.formats;
+ for (var o3 = (n3 = r3.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(t5, n4, r4) {
+ var o4 = r4 && r4.toUpperCase();
+ return n4 || i3[r4] || e3[r4] || i3[o4].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(e4, t6, n5) {
+ return t6 || n5.slice(1);
+ });
+ })).match(t4), a3 = o3.length, f4 = 0; f4 < a3; f4 += 1) {
+ var h3 = o3[f4], u3 = c3[h3], d3 = u3 && u3[0], l3 = u3 && u3[1];
+ o3[f4] = l3 ? { regex: d3, parser: l3 } : h3.replace(/^\[|\]$/g, "");
+ }
+ return function(e4) {
+ for (var t5 = {}, n4 = 0, r4 = 0; n4 < a3; n4 += 1) {
+ var i4 = o3[n4];
+ if ("string" == typeof i4) r4 += i4.length;
+ else {
+ var s3 = i4.regex, f5 = i4.parser, h4 = e4.slice(r4), u4 = s3.exec(h4)[0];
+ f5.call(t5, u4), e4 = e4.replace(u4, "");
+ }
+ }
+ return function(e6) {
+ var t6 = e6.afternoon;
+ if (void 0 !== t6) {
+ var n5 = e6.hours;
+ t6 ? n5 < 12 && (e6.hours += 12) : 12 === n5 && (e6.hours = 0), delete e6.afternoon;
+ }
+ }(t5), t5;
+ };
+ }
+ __name(l2, "l");
+ return function(e4, t5, n3) {
+ n3.p.customParseFormat = true, e4 && e4.parseTwoDigitYear && (a2 = e4.parseTwoDigitYear);
+ var r3 = t5.prototype, i3 = r3.parse;
+ r3.parse = function(e6) {
+ var t6 = e6.date, r4 = e6.utc, o3 = e6.args;
+ this.$u = r4;
+ var a3 = o3[1];
+ if ("string" == typeof a3) {
+ var f4 = true === o3[2], h3 = true === o3[3], u3 = f4 || h3, d3 = o3[2];
+ h3 && (d3 = o3[2]), s2 = this.$locale(), !f4 && d3 && (s2 = n3.Ls[d3]), this.$d = function(e7, t7, n4, r5) {
+ try {
+ if (["x", "X"].indexOf(t7) > -1) return new Date(("X" === t7 ? 1e3 : 1) * e7);
+ var i4 = l2(t7)(e7), o4 = i4.year, s3 = i4.month, a4 = i4.day, f5 = i4.hours, h4 = i4.minutes, u4 = i4.seconds, d4 = i4.milliseconds, c5 = i4.zone, m3 = i4.week, M3 = /* @__PURE__ */ new Date(), Y3 = a4 || (o4 || s3 ? 1 : M3.getDate()), p3 = o4 || M3.getFullYear(), v3 = 0;
+ o4 && !s3 || (v3 = s3 > 0 ? s3 - 1 : M3.getMonth());
+ var D3, w3 = f5 || 0, g2 = h4 || 0, y5 = u4 || 0, L2 = d4 || 0;
+ return c5 ? new Date(Date.UTC(p3, v3, Y3, w3, g2, y5, L2 + 60 * c5.offset * 1e3)) : n4 ? new Date(Date.UTC(p3, v3, Y3, w3, g2, y5, L2)) : (D3 = new Date(p3, v3, Y3, w3, g2, y5, L2), m3 && (D3 = r5(D3).week(m3).toDate()), D3);
+ } catch (e8) {
+ return /* @__PURE__ */ new Date("");
+ }
+ }(t6, a3, r4, n3), this.init(), d3 && true !== d3 && (this.$L = this.locale(d3).$L), u3 && t6 != this.format(a3) && (this.$d = /* @__PURE__ */ new Date("")), s2 = {};
+ } else if (a3 instanceof Array) for (var c4 = a3.length, m2 = 1; m2 <= c4; m2 += 1) {
+ o3[1] = a3[m2 - 1];
+ var M2 = n3.apply(this, o3);
+ if (M2.isValid()) {
+ this.$d = M2.$d, this.$L = M2.$L, this.init();
+ break;
+ }
+ m2 === c4 && (this.$d = /* @__PURE__ */ new Date(""));
}
- function Zdd() {
- this.a = new Psb();
+ else i3.call(this, e6);
+ };
+ };
+ });
+ }
+ });
+
+ // ../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/advancedFormat.js
+ var require_advancedFormat = __commonJS({
+ "../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/advancedFormat.js"(exports2, module2) {
+ "use strict";
+ !function(e3, t4) {
+ "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t4() : "function" == typeof define && define.amd ? define(t4) : (e3 = "undefined" != typeof globalThis ? globalThis : e3 || self).dayjs_plugin_advancedFormat = t4();
+ }(exports2, function() {
+ "use strict";
+ return function(e3, t4) {
+ var r2 = t4.prototype, n2 = r2.format;
+ r2.format = function(e4) {
+ var t5 = this, r3 = this.$locale();
+ if (!this.isValid()) return n2.bind(this)(e4);
+ var s2 = this.$utils(), a2 = (e4 || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(e6) {
+ switch (e6) {
+ case "Q":
+ return Math.ceil((t5.$M + 1) / 3);
+ case "Do":
+ return r3.ordinal(t5.$D);
+ case "gggg":
+ return t5.weekYear();
+ case "GGGG":
+ return t5.isoWeekYear();
+ case "wo":
+ return r3.ordinal(t5.week(), "W");
+ case "w":
+ case "ww":
+ return s2.s(t5.week(), "w" === e6 ? 1 : 2, "0");
+ case "W":
+ case "WW":
+ return s2.s(t5.isoWeek(), "W" === e6 ? 1 : 2, "0");
+ case "k":
+ case "kk":
+ return s2.s(String(0 === t5.$H ? 24 : t5.$H), "k" === e6 ? 1 : 2, "0");
+ case "X":
+ return Math.floor(t5.$d.getTime() / 1e3);
+ case "x":
+ return t5.$d.getTime();
+ case "z":
+ return "[" + t5.offsetName() + "]";
+ case "zzz":
+ return "[" + t5.offsetName("long") + "]";
+ default:
+ return e6;
+ }
+ });
+ return n2.bind(this)(a2);
+ };
+ };
+ });
+ }
+ });
+
+ // src/diagrams/gantt/ganttDb.js
+ function getTaskTags(data5, task, tags2) {
+ let matchFound = true;
+ while (matchFound) {
+ matchFound = false;
+ tags2.forEach(function(t4) {
+ const pattern = "^\\s*" + t4 + "\\s*$";
+ const regex2 = new RegExp(pattern);
+ if (data5[0].match(regex2)) {
+ task[t4] = true;
+ data5.shift(1);
+ matchFound = true;
+ }
+ });
+ }
+ }
+ var import_sanitize_url4, import_dayjs2, import_isoWeek, import_customParseFormat, import_advancedFormat, WEEKEND_START_DAY, dateFormat, axisFormat, tickInterval, todayMarker, includes2, excludes, links, sections, tasks, currentSection, displayMode, tags, funs2, inclusiveEndDates, topAxis, weekday, weekend, lastOrder, clear12, setAxisFormat, getAxisFormat, setTickInterval, getTickInterval, setTodayMarker, getTodayMarker, setDateFormat, enableInclusiveEndDates, endDatesAreInclusive, enableTopAxis, topAxisEnabled, setDisplayMode, getDisplayMode, getDateFormat, setIncludes, getIncludes, setExcludes, getExcludes, getLinks, addSection, getSections, getTasks, isInvalidDate, setWeekday, getWeekday, setWeekend, checkTaskDates, fixTaskDates, getStartDate, parseDuration, getEndDate, taskCnt, parseId, compileData, parseData, lastTask, lastTaskID, rawTasks, taskDb, addTask, findTaskById, addTaskOrg, compileTasks, setLink2, setClass2, setClickFun2, pushFun, setClickEvent2, bindFunctions2, ganttDb_default;
+ var init_ganttDb = __esm({
+ "src/diagrams/gantt/ganttDb.js"() {
+ "use strict";
+ import_sanitize_url4 = __toESM(require_dist(), 1);
+ import_dayjs2 = __toESM(require_dayjs_min(), 1);
+ import_isoWeek = __toESM(require_isoWeek(), 1);
+ import_customParseFormat = __toESM(require_customParseFormat(), 1);
+ import_advancedFormat = __toESM(require_advancedFormat(), 1);
+ init_logger();
+ init_diagramAPI();
+ init_utils2();
+ init_commonDb();
+ import_dayjs2.default.extend(import_isoWeek.default);
+ import_dayjs2.default.extend(import_customParseFormat.default);
+ import_dayjs2.default.extend(import_advancedFormat.default);
+ WEEKEND_START_DAY = { friday: 5, saturday: 6 };
+ dateFormat = "";
+ axisFormat = "";
+ tickInterval = void 0;
+ todayMarker = "";
+ includes2 = [];
+ excludes = [];
+ links = /* @__PURE__ */ new Map();
+ sections = [];
+ tasks = [];
+ currentSection = "";
+ displayMode = "";
+ tags = ["active", "done", "crit", "milestone"];
+ funs2 = [];
+ inclusiveEndDates = false;
+ topAxis = false;
+ weekday = "sunday";
+ weekend = "saturday";
+ lastOrder = 0;
+ clear12 = /* @__PURE__ */ __name(function() {
+ sections = [];
+ tasks = [];
+ currentSection = "";
+ funs2 = [];
+ taskCnt = 0;
+ lastTask = void 0;
+ lastTaskID = void 0;
+ rawTasks = [];
+ dateFormat = "";
+ axisFormat = "";
+ displayMode = "";
+ tickInterval = void 0;
+ todayMarker = "";
+ includes2 = [];
+ excludes = [];
+ inclusiveEndDates = false;
+ topAxis = false;
+ lastOrder = 0;
+ links = /* @__PURE__ */ new Map();
+ clear();
+ weekday = "sunday";
+ weekend = "saturday";
+ }, "clear");
+ setAxisFormat = /* @__PURE__ */ __name(function(txt) {
+ axisFormat = txt;
+ }, "setAxisFormat");
+ getAxisFormat = /* @__PURE__ */ __name(function() {
+ return axisFormat;
+ }, "getAxisFormat");
+ setTickInterval = /* @__PURE__ */ __name(function(txt) {
+ tickInterval = txt;
+ }, "setTickInterval");
+ getTickInterval = /* @__PURE__ */ __name(function() {
+ return tickInterval;
+ }, "getTickInterval");
+ setTodayMarker = /* @__PURE__ */ __name(function(txt) {
+ todayMarker = txt;
+ }, "setTodayMarker");
+ getTodayMarker = /* @__PURE__ */ __name(function() {
+ return todayMarker;
+ }, "getTodayMarker");
+ setDateFormat = /* @__PURE__ */ __name(function(txt) {
+ dateFormat = txt;
+ }, "setDateFormat");
+ enableInclusiveEndDates = /* @__PURE__ */ __name(function() {
+ inclusiveEndDates = true;
+ }, "enableInclusiveEndDates");
+ endDatesAreInclusive = /* @__PURE__ */ __name(function() {
+ return inclusiveEndDates;
+ }, "endDatesAreInclusive");
+ enableTopAxis = /* @__PURE__ */ __name(function() {
+ topAxis = true;
+ }, "enableTopAxis");
+ topAxisEnabled = /* @__PURE__ */ __name(function() {
+ return topAxis;
+ }, "topAxisEnabled");
+ setDisplayMode = /* @__PURE__ */ __name(function(txt) {
+ displayMode = txt;
+ }, "setDisplayMode");
+ getDisplayMode = /* @__PURE__ */ __name(function() {
+ return displayMode;
+ }, "getDisplayMode");
+ getDateFormat = /* @__PURE__ */ __name(function() {
+ return dateFormat;
+ }, "getDateFormat");
+ setIncludes = /* @__PURE__ */ __name(function(txt) {
+ includes2 = txt.toLowerCase().split(/[\s,]+/);
+ }, "setIncludes");
+ getIncludes = /* @__PURE__ */ __name(function() {
+ return includes2;
+ }, "getIncludes");
+ setExcludes = /* @__PURE__ */ __name(function(txt) {
+ excludes = txt.toLowerCase().split(/[\s,]+/);
+ }, "setExcludes");
+ getExcludes = /* @__PURE__ */ __name(function() {
+ return excludes;
+ }, "getExcludes");
+ getLinks = /* @__PURE__ */ __name(function() {
+ return links;
+ }, "getLinks");
+ addSection = /* @__PURE__ */ __name(function(txt) {
+ currentSection = txt;
+ sections.push(txt);
+ }, "addSection");
+ getSections = /* @__PURE__ */ __name(function() {
+ return sections;
+ }, "getSections");
+ getTasks = /* @__PURE__ */ __name(function() {
+ let allItemsProcessed = compileTasks();
+ const maxDepth = 10;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks();
+ iterationCount++;
+ }
+ tasks = rawTasks;
+ return tasks;
+ }, "getTasks");
+ isInvalidDate = /* @__PURE__ */ __name(function(date2, dateFormat2, excludes2, includes3) {
+ if (includes3.includes(date2.format(dateFormat2.trim()))) {
+ return false;
+ }
+ if (excludes2.includes("weekends") && (date2.isoWeekday() === WEEKEND_START_DAY[weekend] || date2.isoWeekday() === WEEKEND_START_DAY[weekend] + 1)) {
+ return true;
+ }
+ if (excludes2.includes(date2.format("dddd").toLowerCase())) {
+ return true;
+ }
+ return excludes2.includes(date2.format(dateFormat2.trim()));
+ }, "isInvalidDate");
+ setWeekday = /* @__PURE__ */ __name(function(txt) {
+ weekday = txt;
+ }, "setWeekday");
+ getWeekday = /* @__PURE__ */ __name(function() {
+ return weekday;
+ }, "getWeekday");
+ setWeekend = /* @__PURE__ */ __name(function(startDay) {
+ weekend = startDay;
+ }, "setWeekend");
+ checkTaskDates = /* @__PURE__ */ __name(function(task, dateFormat2, excludes2, includes3) {
+ if (!excludes2.length || task.manualEndTime) {
+ return;
+ }
+ let startTime;
+ if (task.startTime instanceof Date) {
+ startTime = (0, import_dayjs2.default)(task.startTime);
+ } else {
+ startTime = (0, import_dayjs2.default)(task.startTime, dateFormat2, true);
+ }
+ startTime = startTime.add(1, "d");
+ let originalEndTime;
+ if (task.endTime instanceof Date) {
+ originalEndTime = (0, import_dayjs2.default)(task.endTime);
+ } else {
+ originalEndTime = (0, import_dayjs2.default)(task.endTime, dateFormat2, true);
+ }
+ const [fixedEndTime, renderEndTime] = fixTaskDates(
+ startTime,
+ originalEndTime,
+ dateFormat2,
+ excludes2,
+ includes3
+ );
+ task.endTime = fixedEndTime.toDate();
+ task.renderEndTime = renderEndTime;
+ }, "checkTaskDates");
+ fixTaskDates = /* @__PURE__ */ __name(function(startTime, endTime, dateFormat2, excludes2, includes3) {
+ let invalid = false;
+ let renderEndTime = null;
+ while (startTime <= endTime) {
+ if (!invalid) {
+ renderEndTime = endTime.toDate();
+ }
+ invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes3);
+ if (invalid) {
+ endTime = endTime.add(1, "d");
+ }
+ startTime = startTime.add(1, "d");
+ }
+ return [endTime, renderEndTime];
+ }, "fixTaskDates");
+ getStartDate = /* @__PURE__ */ __name(function(prevTime, dateFormat2, str2) {
+ str2 = str2.trim();
+ const afterRePattern = /^after\s+(?[\d\w- ]+)/;
+ const afterStatement = afterRePattern.exec(str2);
+ if (afterStatement !== null) {
+ let latestTask = null;
+ for (const id27 of afterStatement.groups.ids.split(" ")) {
+ let task = findTaskById(id27);
+ if (task !== void 0 && (!latestTask || task.endTime > latestTask.endTime)) {
+ latestTask = task;
+ }
+ }
+ if (latestTask) {
+ return latestTask.endTime;
+ }
+ const today = /* @__PURE__ */ new Date();
+ today.setHours(0, 0, 0, 0);
+ return today;
+ }
+ let mDate = (0, import_dayjs2.default)(str2, dateFormat2.trim(), true);
+ if (mDate.isValid()) {
+ return mDate.toDate();
+ } else {
+ log.debug("Invalid date:" + str2);
+ log.debug("With date format:" + dateFormat2.trim());
+ const d2 = new Date(str2);
+ if (d2 === void 0 || isNaN(d2.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously
+ // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.
+ // This can cause virtually infinite loops while rendering, so for the
+ // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as
+ // invalid.
+ d2.getFullYear() < -1e4 || d2.getFullYear() > 1e4) {
+ throw new Error("Invalid date:" + str2);
+ }
+ return d2;
+ }
+ }, "getStartDate");
+ parseDuration = /* @__PURE__ */ __name(function(str2) {
+ const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str2.trim());
+ if (statement !== null) {
+ return [Number.parseFloat(statement[1]), statement[2]];
+ }
+ return [NaN, "ms"];
+ }, "parseDuration");
+ getEndDate = /* @__PURE__ */ __name(function(prevTime, dateFormat2, str2, inclusive = false) {
+ str2 = str2.trim();
+ const untilRePattern = /^until\s+(?[\d\w- ]+)/;
+ const untilStatement = untilRePattern.exec(str2);
+ if (untilStatement !== null) {
+ let earliestTask = null;
+ for (const id27 of untilStatement.groups.ids.split(" ")) {
+ let task = findTaskById(id27);
+ if (task !== void 0 && (!earliestTask || task.startTime < earliestTask.startTime)) {
+ earliestTask = task;
+ }
+ }
+ if (earliestTask) {
+ return earliestTask.startTime;
+ }
+ const today = /* @__PURE__ */ new Date();
+ today.setHours(0, 0, 0, 0);
+ return today;
+ }
+ let parsedDate = (0, import_dayjs2.default)(str2, dateFormat2.trim(), true);
+ if (parsedDate.isValid()) {
+ if (inclusive) {
+ parsedDate = parsedDate.add(1, "d");
+ }
+ return parsedDate.toDate();
+ }
+ let endTime = (0, import_dayjs2.default)(prevTime);
+ const [durationValue, durationUnit] = parseDuration(str2);
+ if (!Number.isNaN(durationValue)) {
+ const newEndTime = endTime.add(durationValue, durationUnit);
+ if (newEndTime.isValid()) {
+ endTime = newEndTime;
+ }
+ }
+ return endTime.toDate();
+ }, "getEndDate");
+ taskCnt = 0;
+ parseId = /* @__PURE__ */ __name(function(idStr) {
+ if (idStr === void 0) {
+ taskCnt = taskCnt + 1;
+ return "task" + taskCnt;
+ }
+ return idStr;
+ }, "parseId");
+ compileData = /* @__PURE__ */ __name(function(prevTask, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data5 = ds.split(",");
+ const task = {};
+ getTaskTags(data5, task, tags);
+ for (let i2 = 0; i2 < data5.length; i2++) {
+ data5[i2] = data5[i2].trim();
+ }
+ let endTimeData = "";
+ switch (data5.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = prevTask.endTime;
+ endTimeData = data5[0];
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = getStartDate(void 0, dateFormat, data5[0]);
+ endTimeData = data5[1];
+ break;
+ case 3:
+ task.id = parseId(data5[0]);
+ task.startTime = getStartDate(void 0, dateFormat, data5[1]);
+ endTimeData = data5[2];
+ break;
+ default:
+ }
+ if (endTimeData) {
+ task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
+ task.manualEndTime = (0, import_dayjs2.default)(endTimeData, "YYYY-MM-DD", true).isValid();
+ checkTaskDates(task, dateFormat, excludes, includes2);
+ }
+ return task;
+ }, "compileData");
+ parseData = /* @__PURE__ */ __name(function(prevTaskId, dataStr) {
+ let ds;
+ if (dataStr.substr(0, 1) === ":") {
+ ds = dataStr.substr(1, dataStr.length);
+ } else {
+ ds = dataStr;
+ }
+ const data5 = ds.split(",");
+ const task = {};
+ getTaskTags(data5, task, tags);
+ for (let i2 = 0; i2 < data5.length; i2++) {
+ data5[i2] = data5[i2].trim();
+ }
+ switch (data5.length) {
+ case 1:
+ task.id = parseId();
+ task.startTime = {
+ type: "prevTaskEnd",
+ id: prevTaskId
+ };
+ task.endTime = {
+ data: data5[0]
+ };
+ break;
+ case 2:
+ task.id = parseId();
+ task.startTime = {
+ type: "getStartDate",
+ startData: data5[0]
+ };
+ task.endTime = {
+ data: data5[1]
+ };
+ break;
+ case 3:
+ task.id = parseId(data5[0]);
+ task.startTime = {
+ type: "getStartDate",
+ startData: data5[1]
+ };
+ task.endTime = {
+ data: data5[2]
+ };
+ break;
+ default:
+ }
+ return task;
+ }, "parseData");
+ rawTasks = [];
+ taskDb = {};
+ addTask = /* @__PURE__ */ __name(function(descr, data5) {
+ const rawTask = {
+ section: currentSection,
+ type: currentSection,
+ processed: false,
+ manualEndTime: false,
+ renderEndTime: null,
+ raw: { data: data5 },
+ task: descr,
+ classes: []
+ };
+ const taskInfo = parseData(lastTaskID, data5);
+ rawTask.raw.startTime = taskInfo.startTime;
+ rawTask.raw.endTime = taskInfo.endTime;
+ rawTask.id = taskInfo.id;
+ rawTask.prevTaskId = lastTaskID;
+ rawTask.active = taskInfo.active;
+ rawTask.done = taskInfo.done;
+ rawTask.crit = taskInfo.crit;
+ rawTask.milestone = taskInfo.milestone;
+ rawTask.order = lastOrder;
+ lastOrder++;
+ const pos = rawTasks.push(rawTask);
+ lastTaskID = rawTask.id;
+ taskDb[rawTask.id] = pos - 1;
+ }, "addTask");
+ findTaskById = /* @__PURE__ */ __name(function(id27) {
+ const pos = taskDb[id27];
+ return rawTasks[pos];
+ }, "findTaskById");
+ addTaskOrg = /* @__PURE__ */ __name(function(descr, data5) {
+ const newTask = {
+ section: currentSection,
+ type: currentSection,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ const taskInfo = compileData(lastTask, data5);
+ newTask.startTime = taskInfo.startTime;
+ newTask.endTime = taskInfo.endTime;
+ newTask.id = taskInfo.id;
+ newTask.active = taskInfo.active;
+ newTask.done = taskInfo.done;
+ newTask.crit = taskInfo.crit;
+ newTask.milestone = taskInfo.milestone;
+ lastTask = newTask;
+ tasks.push(newTask);
+ }, "addTaskOrg");
+ compileTasks = /* @__PURE__ */ __name(function() {
+ const compileTask = /* @__PURE__ */ __name(function(pos) {
+ const task = rawTasks[pos];
+ let startTime = "";
+ switch (rawTasks[pos].raw.startTime.type) {
+ case "prevTaskEnd": {
+ const prevTask = findTaskById(task.prevTaskId);
+ task.startTime = prevTask.endTime;
+ break;
}
- function CPc() {
- this.a = new Tqb();
+ case "getStartDate":
+ startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);
+ if (startTime) {
+ rawTasks[pos].startTime = startTime;
+ }
+ break;
+ }
+ if (rawTasks[pos].startTime) {
+ rawTasks[pos].endTime = getEndDate(
+ rawTasks[pos].startTime,
+ dateFormat,
+ rawTasks[pos].raw.endTime.data,
+ inclusiveEndDates
+ );
+ if (rawTasks[pos].endTime) {
+ rawTasks[pos].processed = true;
+ rawTasks[pos].manualEndTime = (0, import_dayjs2.default)(
+ rawTasks[pos].raw.endTime.data,
+ "YYYY-MM-DD",
+ true
+ ).isValid();
+ checkTaskDates(rawTasks[pos], dateFormat, excludes, includes2);
+ }
+ }
+ return rawTasks[pos].processed;
+ }, "compileTask");
+ let allProcessed = true;
+ for (const [i2, rawTask] of rawTasks.entries()) {
+ compileTask(i2);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+ }, "compileTasks");
+ setLink2 = /* @__PURE__ */ __name(function(ids, _linkStr) {
+ let linkStr = _linkStr;
+ if (getConfig2().securityLevel !== "loose") {
+ linkStr = (0, import_sanitize_url4.sanitizeUrl)(_linkStr);
+ }
+ ids.split(",").forEach(function(id27) {
+ let rawTask = findTaskById(id27);
+ if (rawTask !== void 0) {
+ pushFun(id27, () => {
+ window.open(linkStr, "_self");
+ });
+ links.set(id27, linkStr);
+ }
+ });
+ setClass2(ids, "clickable");
+ }, "setLink");
+ setClass2 = /* @__PURE__ */ __name(function(ids, className) {
+ ids.split(",").forEach(function(id27) {
+ let rawTask = findTaskById(id27);
+ if (rawTask !== void 0) {
+ rawTask.classes.push(className);
+ }
+ });
+ }, "setClass");
+ setClickFun2 = /* @__PURE__ */ __name(function(id27, functionName, functionArgs) {
+ if (getConfig2().securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i2 = 0; i2 < argList.length; i2++) {
+ let item = argList[i2].trim();
+ if (item.startsWith('"') && item.endsWith('"')) {
+ item = item.substr(1, item.length - 2);
}
- function s1c() {
- this.a = new Lqb();
+ argList[i2] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(id27);
+ }
+ let rawTask = findTaskById(id27);
+ if (rawTask !== void 0) {
+ pushFun(id27, () => {
+ utils_default2.runFunc(functionName, ...argList);
+ });
+ }
+ }, "setClickFun");
+ pushFun = /* @__PURE__ */ __name(function(id27, callbackFunction) {
+ funs2.push(
+ function() {
+ const elem = document.querySelector(`[id="${id27}"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
}
- function QSc() {
- this.a = new Rkb();
+ },
+ function() {
+ const elem = document.querySelector(`[id="${id27}-text"]`);
+ if (elem !== null) {
+ elem.addEventListener("click", function() {
+ callbackFunction();
+ });
}
- function D2c() {
- this.j = new Rkb();
+ }
+ );
+ }, "pushFun");
+ setClickEvent2 = /* @__PURE__ */ __name(function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id27) {
+ setClickFun2(id27, functionName, functionArgs);
+ });
+ setClass2(ids, "clickable");
+ }, "setClickEvent");
+ bindFunctions2 = /* @__PURE__ */ __name(function(element3) {
+ funs2.forEach(function(fun) {
+ fun(element3);
+ });
+ }, "bindFunctions");
+ ganttDb_default = {
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().gantt, "getConfig"),
+ clear: clear12,
+ setDateFormat,
+ getDateFormat,
+ enableInclusiveEndDates,
+ endDatesAreInclusive,
+ enableTopAxis,
+ topAxisEnabled,
+ setAxisFormat,
+ getAxisFormat,
+ setTickInterval,
+ getTickInterval,
+ setTodayMarker,
+ getTodayMarker,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ setDisplayMode,
+ getDisplayMode,
+ setAccDescription,
+ getAccDescription,
+ addSection,
+ getSections,
+ getTasks,
+ addTask,
+ findTaskById,
+ addTaskOrg,
+ setIncludes,
+ getIncludes,
+ setExcludes,
+ getExcludes,
+ setClickEvent: setClickEvent2,
+ setLink: setLink2,
+ getLinks,
+ bindFunctions: bindFunctions2,
+ parseDuration,
+ isInvalidDate,
+ setWeekday,
+ getWeekday,
+ setWeekend
+ };
+ __name(getTaskTags, "getTaskTags");
+ }
+ });
+
+ // src/diagrams/gantt/ganttRenderer.js
+ var import_dayjs3, setConf3, mapWeekdayToTimeFunction, getMaxIntersections, w2, draw5, ganttRenderer_default;
+ var init_ganttRenderer = __esm({
+ "src/diagrams/gantt/ganttRenderer.js"() {
+ "use strict";
+ import_dayjs3 = __toESM(require_dayjs_min(), 1);
+ init_logger();
+ init_src32();
+ init_common();
+ init_diagramAPI();
+ init_setupGraphViewbox();
+ setConf3 = /* @__PURE__ */ __name(function() {
+ log.debug("Something is calling, setConf, remove the call");
+ }, "setConf");
+ mapWeekdayToTimeFunction = {
+ monday: timeMonday,
+ tuesday: timeTuesday,
+ wednesday: timeWednesday,
+ thursday: timeThursday,
+ friday: timeFriday,
+ saturday: timeSaturday,
+ sunday: timeSunday
+ };
+ getMaxIntersections = /* @__PURE__ */ __name((tasks4, orderOffset) => {
+ let timeline = [...tasks4].map(() => -Infinity);
+ let sorted = [...tasks4].sort((a2, b2) => a2.startTime - b2.startTime || a2.order - b2.order);
+ let maxIntersections = 0;
+ for (const element3 of sorted) {
+ for (let j2 = 0; j2 < timeline.length; j2++) {
+ if (element3.startTime >= timeline[j2]) {
+ timeline[j2] = element3.endTime;
+ element3.order = j2 + orderOffset;
+ if (j2 > maxIntersections) {
+ maxIntersections = j2;
+ }
+ break;
}
- function QXc() {
- this.a = new UXc();
+ }
+ }
+ return maxIntersections;
+ }, "getMaxIntersections");
+ draw5 = /* @__PURE__ */ __name(function(text2, id27, version4, diagObj) {
+ const conf8 = getConfig2().gantt;
+ const securityLevel = getConfig2().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const elem = doc.getElementById(id27);
+ w2 = elem.parentElement.offsetWidth;
+ if (w2 === void 0) {
+ w2 = 1200;
+ }
+ if (conf8.useWidth !== void 0) {
+ w2 = conf8.useWidth;
+ }
+ const taskArray = diagObj.db.getTasks();
+ let categories = [];
+ for (const element3 of taskArray) {
+ categories.push(element3.type);
+ }
+ categories = checkUnique(categories);
+ const categoryHeights = {};
+ let h2 = 2 * conf8.topPadding;
+ if (diagObj.db.getDisplayMode() === "compact" || conf8.displayMode === "compact") {
+ const categoryElements = {};
+ for (const element3 of taskArray) {
+ if (categoryElements[element3.section] === void 0) {
+ categoryElements[element3.section] = [element3];
+ } else {
+ categoryElements[element3.section].push(element3);
}
- function e_c() {
- this.a = new d_c();
+ }
+ let intersections = 0;
+ for (const category of Object.keys(categoryElements)) {
+ const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;
+ intersections += categoryHeight;
+ h2 += categoryHeight * (conf8.barHeight + conf8.barGap);
+ categoryHeights[category] = categoryHeight;
+ }
+ } else {
+ h2 += taskArray.length * (conf8.barHeight + conf8.barGap);
+ for (const category of categories) {
+ categoryHeights[category] = taskArray.filter((task) => task.type === category).length;
+ }
+ }
+ elem.setAttribute("viewBox", "0 0 " + w2 + " " + h2);
+ const svg = root4.select(`[id="${id27}"]`);
+ const timeScale = time().domain([
+ min(taskArray, function(d2) {
+ return d2.startTime;
+ }),
+ max(taskArray, function(d2) {
+ return d2.endTime;
+ })
+ ]).rangeRound([0, w2 - conf8.leftPadding - conf8.rightPadding]);
+ function taskCompare(a2, b2) {
+ const taskA = a2.startTime;
+ const taskB = b2.startTime;
+ let result = 0;
+ if (taskA > taskB) {
+ result = 1;
+ } else if (taskA < taskB) {
+ result = -1;
+ }
+ return result;
+ }
+ __name(taskCompare, "taskCompare");
+ taskArray.sort(taskCompare);
+ makeGantt(taskArray, w2, h2);
+ configureSvgSize(svg, h2, w2, conf8.useMaxWidth);
+ svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w2 / 2).attr("y", conf8.titleTopMargin).attr("class", "titleText");
+ function makeGantt(tasks4, pageWidth, pageHeight) {
+ const barHeight = conf8.barHeight;
+ const gap = barHeight + conf8.barGap;
+ const topPadding = conf8.topPadding;
+ const leftPadding = conf8.leftPadding;
+ const colorScale = linear2().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(hcl_default);
+ drawExcludeDays(
+ gap,
+ topPadding,
+ leftPadding,
+ pageWidth,
+ pageHeight,
+ tasks4,
+ diagObj.db.getExcludes(),
+ diagObj.db.getIncludes()
+ );
+ makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
+ drawRects(tasks4, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight);
+ vertLabels(gap, topPadding, leftPadding, barHeight, colorScale);
+ drawToday(leftPadding, topPadding, pageWidth, pageHeight);
+ }
+ __name(makeGantt, "makeGantt");
+ function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w3) {
+ const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];
+ const uniqueTasks = uniqueTaskOrderIds.map((id28) => theArray.find((item) => item.order === id28));
+ svg.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d2, i2) {
+ i2 = d2.order;
+ return i2 * theGap + theTopPad - 2;
+ }).attr("width", function() {
+ return w3 - conf8.rightPadding / 2;
+ }).attr("height", theGap).attr("class", function(d2) {
+ for (const [i2, category] of categories.entries()) {
+ if (d2.type === category) {
+ return "section section" + i2 % conf8.numberSectionStyles;
+ }
+ }
+ return "section section0";
+ });
+ const rectangles = svg.append("g").selectAll("rect").data(theArray).enter();
+ const links3 = diagObj.db.getLinks();
+ rectangles.append("rect").attr("id", function(d2) {
+ return d2.id;
+ }).attr("rx", 3).attr("ry", 3).attr("x", function(d2) {
+ if (d2.milestone) {
+ return timeScale(d2.startTime) + theSidePad + 0.5 * (timeScale(d2.endTime) - timeScale(d2.startTime)) - 0.5 * theBarHeight;
+ }
+ return timeScale(d2.startTime) + theSidePad;
+ }).attr("y", function(d2, i2) {
+ i2 = d2.order;
+ return i2 * theGap + theTopPad;
+ }).attr("width", function(d2) {
+ if (d2.milestone) {
+ return theBarHeight;
+ }
+ return timeScale(d2.renderEndTime || d2.endTime) - timeScale(d2.startTime);
+ }).attr("height", theBarHeight).attr("transform-origin", function(d2, i2) {
+ i2 = d2.order;
+ return (timeScale(d2.startTime) + theSidePad + 0.5 * (timeScale(d2.endTime) - timeScale(d2.startTime))).toString() + "px " + (i2 * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px";
+ }).attr("class", function(d2) {
+ const res = "task";
+ let classStr = "";
+ if (d2.classes.length > 0) {
+ classStr = d2.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i2, category] of categories.entries()) {
+ if (d2.type === category) {
+ secNum = i2 % conf8.numberSectionStyles;
+ }
+ }
+ let taskClass = "";
+ if (d2.active) {
+ if (d2.crit) {
+ taskClass += " activeCrit";
+ } else {
+ taskClass = " active";
+ }
+ } else if (d2.done) {
+ if (d2.crit) {
+ taskClass = " doneCrit";
+ } else {
+ taskClass = " done";
+ }
+ } else {
+ if (d2.crit) {
+ taskClass += " crit";
+ }
}
- function YCd() {
- this.a = new aDd();
+ if (taskClass.length === 0) {
+ taskClass = " task";
}
- function _k() {
- _k = ccb;
- $k = new al();
+ if (d2.milestone) {
+ taskClass = " milestone " + taskClass;
}
- function Lk() {
- Lk = ccb;
- Kk = new Mk();
+ taskClass += secNum;
+ taskClass += " " + classStr;
+ return res + taskClass;
+ });
+ rectangles.append("text").attr("id", function(d2) {
+ return d2.id + "-text";
+ }).text(function(d2) {
+ return d2.task;
+ }).attr("font-size", conf8.fontSize).attr("x", function(d2) {
+ let startX2 = timeScale(d2.startTime);
+ let endX = timeScale(d2.renderEndTime || d2.endTime);
+ if (d2.milestone) {
+ startX2 += 0.5 * (timeScale(d2.endTime) - timeScale(d2.startTime)) - 0.5 * theBarHeight;
+ }
+ if (d2.milestone) {
+ endX = startX2 + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ if (textWidth > endX - startX2) {
+ if (endX + textWidth + 1.5 * conf8.leftPadding > w3) {
+ return startX2 + theSidePad - 5;
+ } else {
+ return endX + theSidePad + 5;
+ }
+ } else {
+ return (endX - startX2) / 2 + startX2 + theSidePad;
+ }
+ }).attr("y", function(d2, i2) {
+ i2 = d2.order;
+ return i2 * theGap + conf8.barHeight / 2 + (conf8.fontSize / 2 - 2) + theTopPad;
+ }).attr("text-height", theBarHeight).attr("class", function(d2) {
+ const startX2 = timeScale(d2.startTime);
+ let endX = timeScale(d2.endTime);
+ if (d2.milestone) {
+ endX = startX2 + theBarHeight;
+ }
+ const textWidth = this.getBBox().width;
+ let classStr = "";
+ if (d2.classes.length > 0) {
+ classStr = d2.classes.join(" ");
+ }
+ let secNum = 0;
+ for (const [i2, category] of categories.entries()) {
+ if (d2.type === category) {
+ secNum = i2 % conf8.numberSectionStyles;
+ }
+ }
+ let taskType = "";
+ if (d2.active) {
+ if (d2.crit) {
+ taskType = "activeCritText" + secNum;
+ } else {
+ taskType = "activeText" + secNum;
+ }
}
- function wb() {
- wb = ccb;
- vb = new xb();
+ if (d2.done) {
+ if (d2.crit) {
+ taskType = taskType + " doneCritText" + secNum;
+ } else {
+ taskType = taskType + " doneText" + secNum;
+ }
+ } else {
+ if (d2.crit) {
+ taskType = taskType + " critText" + secNum;
+ }
}
- function hs() {
- hs = ccb;
- gs = new is();
+ if (d2.milestone) {
+ taskType += " milestoneText";
}
- function rs(a) {
- Sh.call(this, a);
+ if (textWidth > endX - startX2) {
+ if (endX + textWidth + 1.5 * conf8.leftPadding > w3) {
+ return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType;
+ } else {
+ return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth;
+ }
+ } else {
+ return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth;
}
- function Gp(a) {
- Sh.call(this, a);
+ });
+ const securityLevel2 = getConfig2().securityLevel;
+ if (securityLevel2 === "sandbox") {
+ let sandboxElement2;
+ sandboxElement2 = select_default2("#i" + id27);
+ const doc2 = sandboxElement2.nodes()[0].contentDocument;
+ rectangles.filter(function(d2) {
+ return links3.has(d2.id);
+ }).each(function(o2) {
+ var taskRect = doc2.querySelector("#" + o2.id);
+ var taskText = doc2.querySelector("#" + o2.id + "-text");
+ const oldParent = taskRect.parentNode;
+ var Link = doc2.createElement("a");
+ Link.setAttribute("xlink:href", links3.get(o2.id));
+ Link.setAttribute("target", "_top");
+ oldParent.appendChild(Link);
+ Link.appendChild(taskRect);
+ Link.appendChild(taskText);
+ });
+ }
+ }
+ __name(drawRects, "drawRects");
+ function drawExcludeDays(theGap, theTopPad, theSidePad, w3, h3, tasks4, excludes2, includes3) {
+ if (excludes2.length === 0 && includes3.length === 0) {
+ return;
+ }
+ let minTime;
+ let maxTime;
+ for (const { startTime, endTime } of tasks4) {
+ if (minTime === void 0 || startTime < minTime) {
+ minTime = startTime;
}
- function xp(a) {
- Lo.call(this, a);
+ if (maxTime === void 0 || endTime > maxTime) {
+ maxTime = endTime;
}
- function Ep(a) {
- Lo.call(this, a);
+ }
+ if (!minTime || !maxTime) {
+ return;
+ }
+ if ((0, import_dayjs3.default)(maxTime).diff((0, import_dayjs3.default)(minTime), "year") > 5) {
+ log.warn(
+ "The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days."
+ );
+ return;
+ }
+ const dateFormat2 = diagObj.db.getDateFormat();
+ const excludeRanges = [];
+ let range3 = null;
+ let d2 = (0, import_dayjs3.default)(minTime);
+ while (d2.valueOf() <= maxTime) {
+ if (diagObj.db.isInvalidDate(d2, dateFormat2, excludes2, includes3)) {
+ if (!range3) {
+ range3 = {
+ start: d2,
+ end: d2
+ };
+ } else {
+ range3.end = d2;
+ }
+ } else {
+ if (range3) {
+ excludeRanges.push(range3);
+ range3 = null;
+ }
+ }
+ d2 = d2.add(1, "d");
+ }
+ const rectangles = svg.append("g").selectAll("rect").data(excludeRanges).enter();
+ rectangles.append("rect").attr("id", function(d3) {
+ return "exclude-" + d3.start.format("YYYY-MM-DD");
+ }).attr("x", function(d3) {
+ return timeScale(d3.start) + theSidePad;
+ }).attr("y", conf8.gridLineStartPadding).attr("width", function(d3) {
+ const renderEnd = d3.end.add(1, "day");
+ return timeScale(renderEnd) - timeScale(d3.start);
+ }).attr("height", h3 - theTopPad - conf8.gridLineStartPadding).attr("transform-origin", function(d3, i2) {
+ return (timeScale(d3.start) + theSidePad + 0.5 * (timeScale(d3.end) - timeScale(d3.start))).toString() + "px " + (i2 * theGap + 0.5 * h3).toString() + "px";
+ }).attr("class", "exclude-range");
+ }
+ __name(drawExcludeDays, "drawExcludeDays");
+ function makeGrid(theSidePad, theTopPad, w3, h3) {
+ let bottomXAxis = axisBottom(timeScale).tickSize(-h3 + theTopPad + conf8.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf8.axisFormat || "%Y-%m-%d"));
+ const reTickInterval = /^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/;
+ const resultTickInterval = reTickInterval.exec(
+ diagObj.db.getTickInterval() || conf8.tickInterval
+ );
+ if (resultTickInterval !== null) {
+ const every3 = resultTickInterval[1];
+ const interval2 = resultTickInterval[2];
+ const weekday2 = diagObj.db.getWeekday() || conf8.weekday;
+ switch (interval2) {
+ case "millisecond":
+ bottomXAxis.ticks(millisecond.every(every3));
+ break;
+ case "second":
+ bottomXAxis.ticks(second.every(every3));
+ break;
+ case "minute":
+ bottomXAxis.ticks(timeMinute.every(every3));
+ break;
+ case "hour":
+ bottomXAxis.ticks(timeHour.every(every3));
+ break;
+ case "day":
+ bottomXAxis.ticks(timeDay.every(every3));
+ break;
+ case "week":
+ bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every3));
+ break;
+ case "month":
+ bottomXAxis.ticks(timeMonth.every(every3));
+ break;
}
- function Tp(a) {
- Wn.call(this, a);
+ }
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h3 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em");
+ if (diagObj.db.topAxisEnabled() || conf8.topAxis) {
+ let topXAxis = axisTop(timeScale).tickSize(-h3 + theTopPad + conf8.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf8.axisFormat || "%Y-%m-%d"));
+ if (resultTickInterval !== null) {
+ const every3 = resultTickInterval[1];
+ const interval2 = resultTickInterval[2];
+ const weekday2 = diagObj.db.getWeekday() || conf8.weekday;
+ switch (interval2) {
+ case "millisecond":
+ topXAxis.ticks(millisecond.every(every3));
+ break;
+ case "second":
+ topXAxis.ticks(second.every(every3));
+ break;
+ case "minute":
+ topXAxis.ticks(timeMinute.every(every3));
+ break;
+ case "hour":
+ topXAxis.ticks(timeHour.every(every3));
+ break;
+ case "day":
+ topXAxis.ticks(timeDay.every(every3));
+ break;
+ case "week":
+ topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every3));
+ break;
+ case "month":
+ topXAxis.ticks(timeMonth.every(every3));
+ break;
+ }
}
- function wx(a) {
- un.call(this, a);
+ svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
+ }
+ }
+ __name(makeGrid, "makeGrid");
+ function vertLabels(theGap, theTopPad) {
+ let prevGap = 0;
+ const numOccurrences = Object.keys(categoryHeights).map((d2) => [d2, categoryHeights[d2]]);
+ svg.append("g").selectAll("text").data(numOccurrences).enter().append(function(d2) {
+ const rows = d2[0].split(common_default.lineBreakRegex);
+ const dy = -(rows.length - 1) / 2;
+ const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
+ svgLabel.setAttribute("dy", dy + "em");
+ for (const [j2, row] of rows.entries()) {
+ const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ tspan.setAttribute("alignment-baseline", "central");
+ tspan.setAttribute("x", "10");
+ if (j2 > 0) {
+ tspan.setAttribute("dy", "1em");
+ }
+ tspan.textContent = row;
+ svgLabel.appendChild(tspan);
}
- function ov(a) {
- dv.call(this, a);
+ return svgLabel;
+ }).attr("x", 10).attr("y", function(d2, i2) {
+ if (i2 > 0) {
+ for (let j2 = 0; j2 < i2; j2++) {
+ prevGap += numOccurrences[i2 - 1][1];
+ return d2[1] * theGap / 2 + prevGap * theGap + theTopPad;
+ }
+ } else {
+ return d2[1] * theGap / 2 + theTopPad;
}
- function Mv(a) {
- Br.call(this, a);
+ }).attr("font-size", conf8.sectionFontSize).attr("class", function(d2) {
+ for (const [i2, category] of categories.entries()) {
+ if (d2[0] === category) {
+ return "sectionTitle sectionTitle" + i2 % conf8.numberSectionStyles;
+ }
}
- function Ov(a) {
- Br.call(this, a);
+ return "sectionTitle";
+ });
+ }
+ __name(vertLabels, "vertLabels");
+ function drawToday(theSidePad, theTopPad, w3, h3) {
+ const todayMarker2 = diagObj.db.getTodayMarker();
+ if (todayMarker2 === "off") {
+ return;
+ }
+ const todayG = svg.append("g").attr("class", "today");
+ const today = /* @__PURE__ */ new Date();
+ const todayLine = todayG.append("line");
+ todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf8.titleTopMargin).attr("y2", h3 - conf8.titleTopMargin).attr("class", "today");
+ if (todayMarker2 !== "") {
+ todayLine.attr("style", todayMarker2.replace(/,/g, ";"));
+ }
+ }
+ __name(drawToday, "drawToday");
+ function checkUnique(arr) {
+ const hash = {};
+ const result = [];
+ for (let i2 = 0, l2 = arr.length; i2 < l2; ++i2) {
+ if (!Object.prototype.hasOwnProperty.call(hash, arr[i2])) {
+ hash[arr[i2]] = true;
+ result.push(arr[i2]);
}
- function Lw(a) {
- Br.call(this, a);
- }
- function hz(a) {
- Yy.call(this, a);
- }
- function MB(a) {
- hz.call(this, a);
- }
- function eC() {
- fC.call(this, {});
- }
- function Ftb(a) {
- Atb();
- this.a = a;
- }
- function zwb(a) {
- a.b = null;
- a.c = 0;
- }
- function Vy(a, b) {
- a.e = b;
- Sy(a, b);
- }
- function LVb(a, b) {
- a.a = b;
- NVb(a);
- }
- function lIb(a, b, c2) {
- a.a[b.g] = c2;
- }
- function vfd(a, b, c2) {
- Dfd(c2, a, b);
- }
- function Odc(a, b) {
- rjc(b.i, a.n);
- }
- function Wyc(a, b) {
- Xyc(a).td(b);
- }
- function ERb(a, b) {
- return a * a / b;
- }
- function Xr(a, b) {
- return a.g - b.g;
- }
- function tC(a) {
- return new TB(a);
- }
- function vC(a) {
- return new yC(a);
- }
- function ocb(a) {
- hz.call(this, a);
- }
- function qcb(a) {
- hz.call(this, a);
- }
- function ucb(a) {
- hz.call(this, a);
- }
- function vcb(a) {
- Yy.call(this, a);
- }
- function fGc(a) {
- LFc();
- this.a = a;
- }
- function c0d(a) {
- kzd();
- this.a = a;
- }
- function bhd(a) {
- Rgd();
- this.f = a;
- }
- function dhd(a) {
- Rgd();
- this.f = a;
- }
- function Cdb(a) {
- hz.call(this, a);
- }
- function Wdb(a) {
- hz.call(this, a);
- }
- function Zdb(a) {
- hz.call(this, a);
- }
- function Feb(a) {
- hz.call(this, a);
- }
- function Heb(a) {
- hz.call(this, a);
- }
- function Ccb(a) {
- return uCb(a), a;
- }
- function Edb(a) {
- return uCb(a), a;
- }
- function Gdb(a) {
- return uCb(a), a;
- }
- function jfb(a) {
- return uCb(a), a;
- }
- function tfb(a) {
- return uCb(a), a;
- }
- function akb(a) {
- return a.b == a.c;
- }
- function Hwb(a) {
- return !!a && a.b;
- }
- function pIb(a) {
- return !!a && a.k;
- }
- function qIb(a) {
- return !!a && a.j;
- }
- function amb(a) {
- uCb(a);
- this.a = a;
- }
- function wVb(a) {
- qVb(a);
- return a;
- }
- function Blb(a) {
- Glb(a, a.length);
- }
- function cgb(a) {
- hz.call(this, a);
- }
- function cqd(a) {
- hz.call(this, a);
- }
- function n8d(a) {
- hz.call(this, a);
- }
- function y2c(a) {
- hz.call(this, a);
- }
- function z2c(a) {
- hz.call(this, a);
- }
- function mde(a) {
- hz.call(this, a);
- }
- function pc(a) {
- qc.call(this, a, 0);
- }
- function Ji() {
- Ki.call(this, 12, 3);
- }
- function Kz() {
- Kz = ccb;
- Jz = new Nz();
- }
- function jz() {
- jz = ccb;
- iz = new nb();
- }
- function KA() {
- KA = ccb;
- JA = new MA();
- }
- function OB() {
- OB = ccb;
- NB = new PB();
- }
- function jc() {
- throw vbb(new bgb());
- }
- function zh() {
- throw vbb(new bgb());
- }
- function Pi() {
- throw vbb(new bgb());
- }
- function Pj() {
- throw vbb(new bgb());
- }
- function Qj() {
- throw vbb(new bgb());
- }
- function Ym() {
- throw vbb(new bgb());
- }
- function Gb() {
- this.a = GD(Qb(She));
- }
- function oy(a) {
- Ql();
- this.a = Qb(a);
- }
- function Bs(a, b) {
- a.Td(b);
- b.Sd(a);
- }
- function iw(a, b) {
- a.a.ec().Mc(b);
- }
- function CYb(a, b, c2) {
- a.c.lf(b, c2);
- }
- function scb(a) {
- qcb.call(this, a);
- }
- function Oeb(a) {
- Wdb.call(this, a);
- }
- function Hfb() {
- mcb.call(this, "");
- }
- function Ifb() {
- mcb.call(this, "");
- }
- function Ufb() {
- mcb.call(this, "");
- }
- function Vfb() {
- mcb.call(this, "");
- }
- function Xfb(a) {
- qcb.call(this, a);
- }
- function zob(a) {
- lnb.call(this, a);
- }
- function Yob(a) {
- Inb.call(this, a);
- }
- function Gob(a) {
- zob.call(this, a);
- }
- function Mk() {
- Fk.call(this, null);
- }
- function al() {
- Fk.call(this, null);
- }
- function Az() {
- Az = ccb;
- !!(Rz(), Qz);
- }
- function wrb() {
- wrb = ccb;
- vrb = yrb();
- }
- function Mtb(a) {
- return a.a ? a.b : 0;
- }
- function Vtb(a) {
- return a.a ? a.b : 0;
- }
- function Lcb(a, b) {
- return a.a - b.a;
- }
- function Wcb(a, b) {
- return a.a - b.a;
- }
- function Peb(a, b) {
- return a.a - b.a;
- }
- function eCb(a, b) {
- return PC(a, b);
- }
- function GC(a, b) {
- return rdb(a, b);
- }
- function _B(b, a) {
- return a in b.a;
- }
- function _Db(a, b) {
- a.f = b;
- return a;
- }
- function ZDb(a, b) {
- a.b = b;
- return a;
- }
- function $Db(a, b) {
- a.c = b;
- return a;
- }
- function aEb(a, b) {
- a.g = b;
- return a;
- }
- function HGb(a, b) {
- a.a = b;
- return a;
- }
- function IGb(a, b) {
- a.f = b;
- return a;
- }
- function JGb(a, b) {
- a.k = b;
- return a;
- }
- function dLb(a, b) {
- a.a = b;
- return a;
- }
- function eLb(a, b) {
- a.e = b;
- return a;
- }
- function zVb(a, b) {
- a.e = b;
- return a;
- }
- function AVb(a, b) {
- a.f = b;
- return a;
- }
- function KOb(a, b) {
- a.b = true;
- a.d = b;
- }
- function DHb(a, b) {
- a.b = new g7c(b);
- }
- function uvb(a, b, c2) {
- b.td(a.a[c2]);
- }
- function zvb(a, b, c2) {
- b.we(a.a[c2]);
- }
- function wJc(a, b) {
- return a.b - b.b;
- }
- function kOc(a, b) {
- return a.g - b.g;
- }
- function WQc(a, b) {
- return a.s - b.s;
- }
- function Lic(a, b) {
- return a ? 0 : b - 1;
- }
- function SFc(a, b) {
- return a ? 0 : b - 1;
- }
- function RFc(a, b) {
- return a ? b - 1 : 0;
- }
- function M2c(a, b) {
- return b.Yf(a);
- }
- function M3c(a, b) {
- a.b = b;
- return a;
- }
- function L3c(a, b) {
- a.a = b;
- return a;
- }
- function N3c(a, b) {
- a.c = b;
- return a;
- }
- function O3c(a, b) {
- a.d = b;
- return a;
- }
- function P3c(a, b) {
- a.e = b;
- return a;
- }
- function Q3c(a, b) {
- a.f = b;
- return a;
- }
- function b4c(a, b) {
- a.a = b;
- return a;
- }
- function c4c(a, b) {
- a.b = b;
- return a;
- }
- function d4c(a, b) {
- a.c = b;
- return a;
- }
- function z5c(a, b) {
- a.c = b;
- return a;
- }
- function y5c(a, b) {
- a.b = b;
- return a;
- }
- function A5c(a, b) {
- a.d = b;
- return a;
- }
- function B5c(a, b) {
- a.e = b;
- return a;
- }
- function C5c(a, b) {
- a.f = b;
- return a;
- }
- function D5c(a, b) {
- a.g = b;
- return a;
- }
- function E5c(a, b) {
- a.a = b;
- return a;
- }
- function F5c(a, b) {
- a.i = b;
- return a;
- }
- function G5c(a, b) {
- a.j = b;
- return a;
- }
- function Vdd(a, b) {
- a.k = b;
- return a;
- }
- function Wdd(a, b) {
- a.j = b;
- return a;
- }
- function ykc(a, b) {
- gkc();
- F0b(b, a);
- }
- function T$c(a, b, c2) {
- R$c(a.a, b, c2);
- }
- function RGc(a) {
- cEc.call(this, a);
- }
- function iHc(a) {
- cEc.call(this, a);
- }
- function t7c(a) {
- Qsb.call(this, a);
- }
- function aPb(a) {
- _Ob.call(this, a);
- }
- function Ixd(a) {
- zud.call(this, a);
- }
- function dCd(a) {
- ZBd.call(this, a);
- }
- function fCd(a) {
- ZBd.call(this, a);
- }
- function p_b() {
- q_b.call(this, "");
- }
- function d7c() {
- this.a = 0;
- this.b = 0;
- }
- function aPc() {
- this.b = 0;
- this.a = 0;
- }
- function NJd(a, b) {
- a.b = 0;
- DId(a, b);
- }
- function X1d(a, b) {
- a.c = b;
- a.b = true;
- }
- function Oc(a, b) {
- return a.c._b(b);
- }
- function gdb(a) {
- return a.e && a.e();
- }
- function Vd(a) {
- return !a ? null : a.d;
- }
- function sn(a, b) {
- return Gv(a.b, b);
- }
- function Fv(a) {
- return !a ? null : a.g;
- }
- function Kv(a) {
- return !a ? null : a.i;
- }
- function hdb(a) {
- fdb(a);
- return a.o;
- }
- function Fhd() {
- Fhd = ccb;
- Ehd = ond();
- }
- function Hhd() {
- Hhd = ccb;
- Ghd = Cod();
- }
- function LFd() {
- LFd = ccb;
- KFd = qZd();
- }
- function p8d() {
- p8d = ccb;
- o8d = Y9d();
- }
- function r8d() {
- r8d = ccb;
- q8d = dae();
- }
- function mvd() {
- mvd = ccb;
- lvd = n4c();
- }
- function Srb() {
- throw vbb(new bgb());
- }
- function enb() {
- throw vbb(new bgb());
- }
- function fnb() {
- throw vbb(new bgb());
- }
- function gnb() {
- throw vbb(new bgb());
- }
- function jnb() {
- throw vbb(new bgb());
- }
- function Cnb() {
- throw vbb(new bgb());
- }
- function Uqb(a) {
- this.a = new Mqb(a);
- }
- function tgb(a) {
- lgb();
- ngb(this, a);
- }
- function Hxb(a) {
- this.a = new Qwb(a);
- }
- function _ub(a, b) {
- while (a.ye(b))
- ;
- }
- function Sub(a, b) {
- while (a.sd(b))
- ;
- }
- function Bfb(a, b) {
- a.a += b;
- return a;
- }
- function Cfb(a, b) {
- a.a += b;
- return a;
+ }
+ return result;
+ }
+ __name(checkUnique, "checkUnique");
+ }, "draw");
+ ganttRenderer_default = {
+ setConf: setConf3,
+ draw: draw5
+ };
+ }
+ });
+
+ // src/diagrams/gantt/styles.js
+ var getStyles6, styles_default6;
+ var init_styles6 = __esm({
+ "src/diagrams/gantt/styles.js"() {
+ "use strict";
+ getStyles6 = /* @__PURE__ */ __name((options3) => `
+ .mermaid-main-font {
+ font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif);
+ }
+
+ .exclude-range {
+ fill: ${options3.excludeBkgColor};
+ }
+
+ .section {
+ stroke: none;
+ opacity: 0.2;
+ }
+
+ .section0 {
+ fill: ${options3.sectionBkgColor};
+ }
+
+ .section2 {
+ fill: ${options3.sectionBkgColor2};
+ }
+
+ .section1,
+ .section3 {
+ fill: ${options3.altSectionBkgColor};
+ opacity: 0.2;
+ }
+
+ .sectionTitle0 {
+ fill: ${options3.titleColor};
+ }
+
+ .sectionTitle1 {
+ fill: ${options3.titleColor};
+ }
+
+ .sectionTitle2 {
+ fill: ${options3.titleColor};
+ }
+
+ .sectionTitle3 {
+ fill: ${options3.titleColor};
+ }
+
+ .sectionTitle {
+ text-anchor: start;
+ font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif);
+ }
+
+
+ /* Grid and axis */
+
+ .grid .tick {
+ stroke: ${options3.gridColor};
+ opacity: 0.8;
+ shape-rendering: crispEdges;
+ }
+
+ .grid .tick text {
+ font-family: ${options3.fontFamily};
+ fill: ${options3.textColor};
+ }
+
+ .grid path {
+ stroke-width: 0;
+ }
+
+
+ /* Today line */
+
+ .today {
+ fill: none;
+ stroke: ${options3.todayLineColor};
+ stroke-width: 2px;
+ }
+
+
+ /* Task styling */
+
+ /* Default task */
+
+ .task {
+ stroke-width: 2;
+ }
+
+ .taskText {
+ text-anchor: middle;
+ font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif);
+ }
+
+ .taskTextOutsideRight {
+ fill: ${options3.taskTextDarkColor};
+ text-anchor: start;
+ font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif);
+ }
+
+ .taskTextOutsideLeft {
+ fill: ${options3.taskTextDarkColor};
+ text-anchor: end;
+ }
+
+
+ /* Special case clickable */
+
+ .task.clickable {
+ cursor: pointer;
+ }
+
+ .taskText.clickable {
+ cursor: pointer;
+ fill: ${options3.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideLeft.clickable {
+ cursor: pointer;
+ fill: ${options3.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+ .taskTextOutsideRight.clickable {
+ cursor: pointer;
+ fill: ${options3.taskTextClickableColor} !important;
+ font-weight: bold;
+ }
+
+
+ /* Specific task settings for the sections*/
+
+ .taskText0,
+ .taskText1,
+ .taskText2,
+ .taskText3 {
+ fill: ${options3.taskTextColor};
+ }
+
+ .task0,
+ .task1,
+ .task2,
+ .task3 {
+ fill: ${options3.taskBkgColor};
+ stroke: ${options3.taskBorderColor};
+ }
+
+ .taskTextOutside0,
+ .taskTextOutside2
+ {
+ fill: ${options3.taskTextOutsideColor};
+ }
+
+ .taskTextOutside1,
+ .taskTextOutside3 {
+ fill: ${options3.taskTextOutsideColor};
+ }
+
+
+ /* Active task */
+
+ .active0,
+ .active1,
+ .active2,
+ .active3 {
+ fill: ${options3.activeTaskBkgColor};
+ stroke: ${options3.activeTaskBorderColor};
+ }
+
+ .activeText0,
+ .activeText1,
+ .activeText2,
+ .activeText3 {
+ fill: ${options3.taskTextDarkColor} !important;
+ }
+
+
+ /* Completed task */
+
+ .done0,
+ .done1,
+ .done2,
+ .done3 {
+ stroke: ${options3.doneTaskBorderColor};
+ fill: ${options3.doneTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneText0,
+ .doneText1,
+ .doneText2,
+ .doneText3 {
+ fill: ${options3.taskTextDarkColor} !important;
+ }
+
+
+ /* Tasks on the critical line */
+
+ .crit0,
+ .crit1,
+ .crit2,
+ .crit3 {
+ stroke: ${options3.critBorderColor};
+ fill: ${options3.critBkgColor};
+ stroke-width: 2;
+ }
+
+ .activeCrit0,
+ .activeCrit1,
+ .activeCrit2,
+ .activeCrit3 {
+ stroke: ${options3.critBorderColor};
+ fill: ${options3.activeTaskBkgColor};
+ stroke-width: 2;
+ }
+
+ .doneCrit0,
+ .doneCrit1,
+ .doneCrit2,
+ .doneCrit3 {
+ stroke: ${options3.critBorderColor};
+ fill: ${options3.doneTaskBkgColor};
+ stroke-width: 2;
+ cursor: pointer;
+ shape-rendering: crispEdges;
+ }
+
+ .milestone {
+ transform: rotate(45deg) scale(0.8,0.8);
+ }
+
+ .milestoneText {
+ font-style: italic;
+ }
+ .doneCritText0,
+ .doneCritText1,
+ .doneCritText2,
+ .doneCritText3 {
+ fill: ${options3.taskTextDarkColor} !important;
+ }
+
+ .activeCritText0,
+ .activeCritText1,
+ .activeCritText2,
+ .activeCritText3 {
+ fill: ${options3.taskTextDarkColor} !important;
+ }
+
+ .titleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options3.titleColor || options3.textColor};
+ font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif);
+ }
+`, "getStyles");
+ styles_default6 = getStyles6;
+ }
+ });
+
+ // src/diagrams/gantt/ganttDiagram.ts
+ var ganttDiagram_exports = {};
+ __export(ganttDiagram_exports, {
+ diagram: () => diagram5
+ });
+ var diagram5;
+ var init_ganttDiagram = __esm({
+ "src/diagrams/gantt/ganttDiagram.ts"() {
+ "use strict";
+ init_gantt();
+ init_ganttDb();
+ init_ganttRenderer();
+ init_styles6();
+ diagram5 = {
+ parser: gantt_default,
+ db: ganttDb_default,
+ renderer: ganttRenderer_default,
+ styles: styles_default6
+ };
+ }
+ });
+
+ // src/diagrams/info/infoParser.ts
+ var parser7;
+ var init_infoParser = __esm({
+ "src/diagrams/info/infoParser.ts"() {
+ "use strict";
+ init_mermaid_parser_core();
+ init_logger();
+ parser7 = {
+ parse: /* @__PURE__ */ __name(async (input) => {
+ const ast = await parse2("info", input);
+ log.debug(ast);
+ }, "parse")
+ };
+ }
+ });
+
+ // package.json
+ var version2;
+ var init_package = __esm({
+ "package.json"() {
+ version2 = "11.2.0";
+ }
+ });
+
+ // src/diagrams/info/infoDb.ts
+ var DEFAULT_INFO_DB, getVersion, db2;
+ var init_infoDb = __esm({
+ "src/diagrams/info/infoDb.ts"() {
+ "use strict";
+ init_package();
+ DEFAULT_INFO_DB = { version: version2 };
+ getVersion = /* @__PURE__ */ __name(() => DEFAULT_INFO_DB.version, "getVersion");
+ db2 = {
+ getVersion
+ };
+ }
+ });
+
+ // src/rendering-util/selectSvgElement.ts
+ var selectSvgElement;
+ var init_selectSvgElement = __esm({
+ "src/rendering-util/selectSvgElement.ts"() {
+ "use strict";
+ init_src32();
+ init_diagramAPI();
+ selectSvgElement = /* @__PURE__ */ __name((id27) => {
+ const { securityLevel } = getConfig2();
+ let root4 = select_default2("body");
+ if (securityLevel === "sandbox") {
+ const sandboxElement = select_default2(`#i${id27}`);
+ const doc = sandboxElement.node()?.contentDocument ?? document;
+ root4 = select_default2(doc.body);
+ }
+ const svg = root4.select(`#${id27}`);
+ return svg;
+ }, "selectSvgElement");
+ }
+ });
+
+ // src/diagrams/info/infoRenderer.ts
+ var draw6, renderer;
+ var init_infoRenderer = __esm({
+ "src/diagrams/info/infoRenderer.ts"() {
+ "use strict";
+ init_logger();
+ init_selectSvgElement();
+ init_setupGraphViewbox();
+ draw6 = /* @__PURE__ */ __name((text2, id27, version4) => {
+ log.debug("rendering info diagram\n" + text2);
+ const svg = selectSvgElement(id27);
+ configureSvgSize(svg, 100, 400, true);
+ const group2 = svg.append("g");
+ group2.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", 32).style("text-anchor", "middle").text(`v${version4}`);
+ }, "draw");
+ renderer = { draw: draw6 };
+ }
+ });
+
+ // src/diagrams/info/infoDiagram.ts
+ var infoDiagram_exports = {};
+ __export(infoDiagram_exports, {
+ diagram: () => diagram6
+ });
+ var diagram6;
+ var init_infoDiagram = __esm({
+ "src/diagrams/info/infoDiagram.ts"() {
+ "use strict";
+ init_infoParser();
+ init_infoDb();
+ init_infoRenderer();
+ diagram6 = {
+ parser: parser7,
+ db: db2,
+ renderer
+ };
+ }
+ });
+
+ // src/diagrams/pie/pieDb.ts
+ var DEFAULT_PIE_CONFIG, DEFAULT_PIE_DB, sections2, showData, config3, getConfig4, clear13, addSection2, getSections2, setShowData, getShowData, db3;
+ var init_pieDb = __esm({
+ "src/diagrams/pie/pieDb.ts"() {
+ "use strict";
+ init_logger();
+ init_commonDb();
+ init_defaultConfig();
+ DEFAULT_PIE_CONFIG = defaultConfig_default.pie;
+ DEFAULT_PIE_DB = {
+ sections: /* @__PURE__ */ new Map(),
+ showData: false,
+ config: DEFAULT_PIE_CONFIG
+ };
+ sections2 = DEFAULT_PIE_DB.sections;
+ showData = DEFAULT_PIE_DB.showData;
+ config3 = structuredClone(DEFAULT_PIE_CONFIG);
+ getConfig4 = /* @__PURE__ */ __name(() => structuredClone(config3), "getConfig");
+ clear13 = /* @__PURE__ */ __name(() => {
+ sections2 = /* @__PURE__ */ new Map();
+ showData = DEFAULT_PIE_DB.showData;
+ clear();
+ }, "clear");
+ addSection2 = /* @__PURE__ */ __name(({ label, value: value2 }) => {
+ if (!sections2.has(label)) {
+ sections2.set(label, value2);
+ log.debug(`added new section: ${label}, with value: ${value2}`);
+ }
+ }, "addSection");
+ getSections2 = /* @__PURE__ */ __name(() => sections2, "getSections");
+ setShowData = /* @__PURE__ */ __name((toggle) => {
+ showData = toggle;
+ }, "setShowData");
+ getShowData = /* @__PURE__ */ __name(() => showData, "getShowData");
+ db3 = {
+ getConfig: getConfig4,
+ clear: clear13,
+ setDiagramTitle,
+ getDiagramTitle,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addSection: addSection2,
+ getSections: getSections2,
+ setShowData,
+ getShowData
+ };
+ }
+ });
+
+ // src/diagrams/pie/pieParser.ts
+ var populateDb, parser8;
+ var init_pieParser = __esm({
+ "src/diagrams/pie/pieParser.ts"() {
+ "use strict";
+ init_mermaid_parser_core();
+ init_logger();
+ init_populateCommonDb();
+ init_pieDb();
+ populateDb = /* @__PURE__ */ __name((ast, db8) => {
+ populateCommonDb(ast, db8);
+ db8.setShowData(ast.showData);
+ ast.sections.map(db8.addSection);
+ }, "populateDb");
+ parser8 = {
+ parse: /* @__PURE__ */ __name(async (input) => {
+ const ast = await parse2("pie", input);
+ log.debug(ast);
+ populateDb(ast, db3);
+ }, "parse")
+ };
+ }
+ });
+
+ // src/diagrams/pie/pieStyles.ts
+ var getStyles7, pieStyles_default;
+ var init_pieStyles = __esm({
+ "src/diagrams/pie/pieStyles.ts"() {
+ "use strict";
+ getStyles7 = /* @__PURE__ */ __name((options3) => `
+ .pieCircle{
+ stroke: ${options3.pieStrokeColor};
+ stroke-width : ${options3.pieStrokeWidth};
+ opacity : ${options3.pieOpacity};
+ }
+ .pieOuterCircle{
+ stroke: ${options3.pieOuterStrokeColor};
+ stroke-width: ${options3.pieOuterStrokeWidth};
+ fill: none;
+ }
+ .pieTitleText {
+ text-anchor: middle;
+ font-size: ${options3.pieTitleTextSize};
+ fill: ${options3.pieTitleTextColor};
+ font-family: ${options3.fontFamily};
+ }
+ .slice {
+ font-family: ${options3.fontFamily};
+ fill: ${options3.pieSectionTextColor};
+ font-size:${options3.pieSectionTextSize};
+ // fill: white;
+ }
+ .legend text {
+ fill: ${options3.pieLegendTextColor};
+ font-family: ${options3.fontFamily};
+ font-size: ${options3.pieLegendTextSize};
+ }
+`, "getStyles");
+ pieStyles_default = getStyles7;
+ }
+ });
+
+ // src/diagrams/pie/pieRenderer.ts
+ var createPieArcs, draw7, renderer2;
+ var init_pieRenderer = __esm({
+ "src/diagrams/pie/pieRenderer.ts"() {
+ "use strict";
+ init_src32();
+ init_diagramAPI();
+ init_logger();
+ init_selectSvgElement();
+ init_setupGraphViewbox();
+ init_utils2();
+ createPieArcs = /* @__PURE__ */ __name((sections5) => {
+ const pieData = [...sections5.entries()].map((element3) => {
+ return {
+ label: element3[0],
+ value: element3[1]
+ };
+ }).sort((a2, b2) => {
+ return b2.value - a2.value;
+ });
+ const pie2 = pie_default().value(
+ (d3Section) => d3Section.value
+ );
+ return pie2(pieData);
+ }, "createPieArcs");
+ draw7 = /* @__PURE__ */ __name((text2, id27, _version, diagObj) => {
+ log.debug("rendering pie chart\n" + text2);
+ const db8 = diagObj.db;
+ const globalConfig = getConfig2();
+ const pieConfig = cleanAndMerge(db8.getConfig(), globalConfig.pie);
+ const MARGIN = 40;
+ const LEGEND_RECT_SIZE = 18;
+ const LEGEND_SPACING = 4;
+ const height2 = 450;
+ const pieWidth = height2;
+ const svg = selectSvgElement(id27);
+ const group2 = svg.append("g");
+ group2.attr("transform", "translate(" + pieWidth / 2 + "," + height2 / 2 + ")");
+ const { themeVariables } = globalConfig;
+ let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);
+ outerStrokeWidth ??= 2;
+ const textPosition = pieConfig.textPosition;
+ const radius2 = Math.min(pieWidth, height2) / 2 - MARGIN;
+ const arcGenerator = arc_default().innerRadius(0).outerRadius(radius2);
+ const labelArcGenerator = arc_default().innerRadius(radius2 * textPosition).outerRadius(radius2 * textPosition);
+ group2.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius2 + outerStrokeWidth / 2).attr("class", "pieOuterCircle");
+ const sections5 = db8.getSections();
+ const arcs = createPieArcs(sections5);
+ const myGeneratedColors = [
+ themeVariables.pie1,
+ themeVariables.pie2,
+ themeVariables.pie3,
+ themeVariables.pie4,
+ themeVariables.pie5,
+ themeVariables.pie6,
+ themeVariables.pie7,
+ themeVariables.pie8,
+ themeVariables.pie9,
+ themeVariables.pie10,
+ themeVariables.pie11,
+ themeVariables.pie12
+ ];
+ const color2 = ordinal(myGeneratedColors);
+ group2.selectAll("mySlices").data(arcs).enter().append("path").attr("d", arcGenerator).attr("fill", (datum2) => {
+ return color2(datum2.data.label);
+ }).attr("class", "pieCircle");
+ let sum2 = 0;
+ sections5.forEach((section) => {
+ sum2 += section;
+ });
+ group2.selectAll("mySlices").data(arcs).enter().append("text").text((datum2) => {
+ return (datum2.data.value / sum2 * 100).toFixed(0) + "%";
+ }).attr("transform", (datum2) => {
+ return "translate(" + labelArcGenerator.centroid(datum2) + ")";
+ }).style("text-anchor", "middle").attr("class", "slice");
+ group2.append("text").text(db8.getDiagramTitle()).attr("x", 0).attr("y", -(height2 - 50) / 2).attr("class", "pieTitleText");
+ const legend = group2.selectAll(".legend").data(color2.domain()).enter().append("g").attr("class", "legend").attr("transform", (_datum, index) => {
+ const height3 = LEGEND_RECT_SIZE + LEGEND_SPACING;
+ const offset = height3 * color2.domain().length / 2;
+ const horizontal = 12 * LEGEND_RECT_SIZE;
+ const vertical = index * height3 - offset;
+ return "translate(" + horizontal + "," + vertical + ")";
+ });
+ legend.append("rect").attr("width", LEGEND_RECT_SIZE).attr("height", LEGEND_RECT_SIZE).style("fill", color2).style("stroke", color2);
+ legend.data(arcs).append("text").attr("x", LEGEND_RECT_SIZE + LEGEND_SPACING).attr("y", LEGEND_RECT_SIZE - LEGEND_SPACING).text((datum2) => {
+ const { label, value: value2 } = datum2.data;
+ if (db8.getShowData()) {
+ return `${label} [${value2}]`;
+ }
+ return label;
+ });
+ const longestTextWidth = Math.max(
+ ...legend.selectAll("text").nodes().map((node2) => node2?.getBoundingClientRect().width ?? 0)
+ );
+ const totalWidth = pieWidth + MARGIN + LEGEND_RECT_SIZE + LEGEND_SPACING + longestTextWidth;
+ svg.attr("viewBox", `0 0 ${totalWidth} ${height2}`);
+ configureSvgSize(svg, height2, totalWidth, pieConfig.useMaxWidth);
+ }, "draw");
+ renderer2 = { draw: draw7 };
+ }
+ });
+
+ // src/diagrams/pie/pieDiagram.ts
+ var pieDiagram_exports = {};
+ __export(pieDiagram_exports, {
+ diagram: () => diagram7
+ });
+ var diagram7;
+ var init_pieDiagram = __esm({
+ "src/diagrams/pie/pieDiagram.ts"() {
+ "use strict";
+ init_pieParser();
+ init_pieDb();
+ init_pieStyles();
+ init_pieRenderer();
+ diagram7 = {
+ parser: parser8,
+ db: db3,
+ renderer: renderer2,
+ styles: pieStyles_default
+ };
+ }
+ });
+
+ // src/diagrams/quadrant-chart/parser/quadrant.jison
+ var parser9, quadrant_default;
+ var init_quadrant = __esm({
+ "src/diagrams/quadrant-chart/parser/quadrant.jison"() {
+ "use strict";
+ parser9 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 4, 5, 10, 12, 13, 14, 18, 25, 35, 37, 39, 41, 42, 48, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 63, 64, 65, 66, 67], $V6 = [1, 4, 5, 10, 12, 13, 14, 18, 25, 28, 35, 37, 39, 41, 42, 48, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 63, 64, 65, 66, 67], $V7 = [55, 56, 57], $V8 = [2, 36], $V9 = [1, 37], $Va = [1, 36], $Vb = [1, 38], $Vc = [1, 35], $Vd = [1, 43], $Ve = [1, 41], $Vf = [1, 14], $Vg = [1, 23], $Vh = [1, 18], $Vi = [1, 19], $Vj = [1, 20], $Vk = [1, 21], $Vl = [1, 22], $Vm = [1, 24], $Vn = [1, 25], $Vo = [1, 26], $Vp = [1, 27], $Vq = [1, 28], $Vr = [1, 29], $Vs = [1, 32], $Vt = [1, 33], $Vu = [1, 34], $Vv = [1, 39], $Vw = [1, 40], $Vx = [1, 42], $Vy = [1, 44], $Vz = [1, 62], $VA = [1, 61], $VB = [4, 5, 8, 10, 12, 13, 14, 18, 44, 47, 49, 55, 56, 57, 63, 64, 65, 66, 67], $VC = [1, 65], $VD = [1, 66], $VE = [1, 67], $VF = [1, 68], $VG = [1, 69], $VH = [1, 70], $VI = [1, 71], $VJ = [1, 72], $VK = [1, 73], $VL = [1, 74], $VM = [1, 75], $VN = [1, 76], $VO = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18], $VP = [1, 90], $VQ = [1, 91], $VR = [1, 92], $VS = [1, 99], $VT = [1, 93], $VU = [1, 96], $VV = [1, 94], $VW = [1, 95], $VX = [1, 97], $VY = [1, 98], $VZ = [1, 102], $V_ = [10, 55, 56, 57], $V$ = [4, 5, 6, 8, 10, 11, 13, 17, 18, 19, 20, 55, 56, 57];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "idStringToken": 3, "ALPHA": 4, "NUM": 5, "NODE_STRING": 6, "DOWN": 7, "MINUS": 8, "DEFAULT": 9, "COMMA": 10, "COLON": 11, "AMP": 12, "BRKT": 13, "MULT": 14, "UNICODE_TEXT": 15, "styleComponent": 16, "UNIT": 17, "SPACE": 18, "STYLE": 19, "PCT": 20, "idString": 21, "style": 22, "stylesOpt": 23, "classDefStatement": 24, "CLASSDEF": 25, "start": 26, "eol": 27, "QUADRANT": 28, "document": 29, "line": 30, "statement": 31, "axisDetails": 32, "quadrantDetails": 33, "points": 34, "title": 35, "title_value": 36, "acc_title": 37, "acc_title_value": 38, "acc_descr": 39, "acc_descr_value": 40, "acc_descr_multiline_value": 41, "section": 42, "text": 43, "point_start": 44, "point_x": 45, "point_y": 46, "class_name": 47, "X-AXIS": 48, "AXIS-TEXT-DELIMITER": 49, "Y-AXIS": 50, "QUADRANT_1": 51, "QUADRANT_2": 52, "QUADRANT_3": 53, "QUADRANT_4": 54, "NEWLINE": 55, "SEMI": 56, "EOF": 57, "alphaNumToken": 58, "textNoTagsToken": 59, "STR": 60, "MD_STR": 61, "alphaNum": 62, "PUNCTUATION": 63, "PLUS": 64, "EQUALS": 65, "DOT": 66, "UNDERSCORE": 67, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "ALPHA", 5: "NUM", 6: "NODE_STRING", 7: "DOWN", 8: "MINUS", 9: "DEFAULT", 10: "COMMA", 11: "COLON", 12: "AMP", 13: "BRKT", 14: "MULT", 15: "UNICODE_TEXT", 17: "UNIT", 18: "SPACE", 19: "STYLE", 20: "PCT", 25: "CLASSDEF", 28: "QUADRANT", 35: "title", 36: "title_value", 37: "acc_title", 38: "acc_title_value", 39: "acc_descr", 40: "acc_descr_value", 41: "acc_descr_multiline_value", 42: "section", 44: "point_start", 45: "point_x", 46: "point_y", 47: "class_name", 48: "X-AXIS", 49: "AXIS-TEXT-DELIMITER", 50: "Y-AXIS", 51: "QUADRANT_1", 52: "QUADRANT_2", 53: "QUADRANT_3", 54: "QUADRANT_4", 55: "NEWLINE", 56: "SEMI", 57: "EOF", 60: "STR", 61: "MD_STR", 63: "PUNCTUATION", 64: "PLUS", 65: "EQUALS", 66: "DOT", 67: "UNDERSCORE" },
+ productions_: [0, [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [21, 1], [21, 2], [22, 1], [22, 2], [23, 1], [23, 3], [24, 5], [26, 2], [26, 2], [26, 2], [29, 0], [29, 2], [30, 2], [31, 0], [31, 1], [31, 2], [31, 1], [31, 1], [31, 1], [31, 2], [31, 2], [31, 2], [31, 1], [31, 1], [34, 4], [34, 5], [34, 5], [34, 6], [32, 4], [32, 3], [32, 2], [32, 4], [32, 3], [32, 2], [33, 2], [33, 2], [33, 2], [33, 2], [27, 1], [27, 1], [27, 1], [43, 1], [43, 2], [43, 1], [43, 1], [62, 1], [62, 2], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [59, 1], [59, 1], [59, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 23:
+ this.$ = $$[$0];
+ break;
+ case 24:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
+ case 26:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
+ case 27:
+ this.$ = [$$[$0].trim()];
+ break;
+ case 28:
+ $$[$0 - 2].push($$[$0].trim());
+ this.$ = $$[$0 - 2];
+ break;
+ case 29:
+ this.$ = $$[$0 - 4];
+ yy.addClass($$[$0 - 2], $$[$0]);
+ break;
+ case 37:
+ this.$ = [];
+ break;
+ case 42:
+ this.$ = $$[$0].trim();
+ yy.setDiagramTitle(this.$);
+ break;
+ case 43:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 44:
+ case 45:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 46:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 47:
+ yy.addPoint($$[$0 - 3], "", $$[$0 - 1], $$[$0], []);
+ break;
+ case 48:
+ yy.addPoint($$[$0 - 4], $$[$0 - 3], $$[$0 - 1], $$[$0], []);
+ break;
+ case 49:
+ yy.addPoint($$[$0 - 4], "", $$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 50:
+ yy.addPoint($$[$0 - 5], $$[$0 - 4], $$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 51:
+ yy.setXAxisLeftText($$[$0 - 2]);
+ yy.setXAxisRightText($$[$0]);
+ break;
+ case 52:
+ $$[$0 - 1].text += " \u27F6 ";
+ yy.setXAxisLeftText($$[$0 - 1]);
+ break;
+ case 53:
+ yy.setXAxisLeftText($$[$0]);
+ break;
+ case 54:
+ yy.setYAxisBottomText($$[$0 - 2]);
+ yy.setYAxisTopText($$[$0]);
+ break;
+ case 55:
+ $$[$0 - 1].text += " \u27F6 ";
+ yy.setYAxisBottomText($$[$0 - 1]);
+ break;
+ case 56:
+ yy.setYAxisBottomText($$[$0]);
+ break;
+ case 57:
+ yy.setQuadrant1Text($$[$0]);
+ break;
+ case 58:
+ yy.setQuadrant2Text($$[$0]);
+ break;
+ case 59:
+ yy.setQuadrant3Text($$[$0]);
+ break;
+ case 60:
+ yy.setQuadrant4Text($$[$0]);
+ break;
+ case 64:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 65:
+ this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
+ break;
+ case 66:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 67:
+ this.$ = { text: $$[$0], type: "markdown" };
+ break;
+ case 68:
+ this.$ = $$[$0];
+ break;
+ case 69:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
}
- function Ffb(a, b) {
- a.a += b;
- return a;
+ }, "anonymous"),
+ table: [{ 18: $V0, 26: 1, 27: 2, 28: $V1, 55: $V2, 56: $V3, 57: $V4 }, { 1: [3] }, { 18: $V0, 26: 8, 27: 2, 28: $V1, 55: $V2, 56: $V3, 57: $V4 }, { 18: $V0, 26: 9, 27: 2, 28: $V1, 55: $V2, 56: $V3, 57: $V4 }, o2($V5, [2, 33], { 29: 10 }), o2($V6, [2, 61]), o2($V6, [2, 62]), o2($V6, [2, 63]), { 1: [2, 30] }, { 1: [2, 31] }, o2($V7, $V8, { 30: 11, 31: 12, 24: 13, 32: 15, 33: 16, 34: 17, 43: 30, 58: 31, 1: [2, 32], 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $Vf, 25: $Vg, 35: $Vh, 37: $Vi, 39: $Vj, 41: $Vk, 42: $Vl, 48: $Vm, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V5, [2, 34]), { 27: 45, 55: $V2, 56: $V3, 57: $V4 }, o2($V7, [2, 37]), o2($V7, $V8, { 24: 13, 32: 15, 33: 16, 34: 17, 43: 30, 58: 31, 31: 46, 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $Vf, 25: $Vg, 35: $Vh, 37: $Vi, 39: $Vj, 41: $Vk, 42: $Vl, 48: $Vm, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 39]), o2($V7, [2, 40]), o2($V7, [2, 41]), { 36: [1, 47] }, { 38: [1, 48] }, { 40: [1, 49] }, o2($V7, [2, 45]), o2($V7, [2, 46]), { 18: [1, 50] }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 51, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 52, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 53, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 54, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 55, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 56, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 44: [1, 57], 47: [1, 58], 58: 60, 59: 59, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, o2($VB, [2, 64]), o2($VB, [2, 66]), o2($VB, [2, 67]), o2($VB, [2, 70]), o2($VB, [2, 71]), o2($VB, [2, 72]), o2($VB, [2, 73]), o2($VB, [2, 74]), o2($VB, [2, 75]), o2($VB, [2, 76]), o2($VB, [2, 77]), o2($VB, [2, 78]), o2($VB, [2, 79]), o2($VB, [2, 80]), o2($V5, [2, 35]), o2($V7, [2, 38]), o2($V7, [2, 42]), o2($V7, [2, 43]), o2($V7, [2, 44]), { 3: 64, 4: $VC, 5: $VD, 6: $VE, 7: $VF, 8: $VG, 9: $VH, 10: $VI, 11: $VJ, 12: $VK, 13: $VL, 14: $VM, 15: $VN, 21: 63 }, o2($V7, [2, 53], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 49: [1, 77], 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 56], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 49: [1, 78], 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 57], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 58], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 59], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 60], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), { 45: [1, 79] }, { 44: [1, 80] }, o2($VB, [2, 65]), o2($VB, [2, 81]), o2($VB, [2, 82]), o2($VB, [2, 83]), { 3: 82, 4: $VC, 5: $VD, 6: $VE, 7: $VF, 8: $VG, 9: $VH, 10: $VI, 11: $VJ, 12: $VK, 13: $VL, 14: $VM, 15: $VN, 18: [1, 81] }, o2($VO, [2, 23]), o2($VO, [2, 1]), o2($VO, [2, 2]), o2($VO, [2, 3]), o2($VO, [2, 4]), o2($VO, [2, 5]), o2($VO, [2, 6]), o2($VO, [2, 7]), o2($VO, [2, 8]), o2($VO, [2, 9]), o2($VO, [2, 10]), o2($VO, [2, 11]), o2($VO, [2, 12]), o2($V7, [2, 52], { 58: 31, 43: 83, 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 55], { 58: 31, 43: 84, 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), { 46: [1, 85] }, { 45: [1, 86] }, { 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 16: 89, 17: $VV, 18: $VW, 19: $VX, 20: $VY, 22: 88, 23: 87 }, o2($VO, [2, 24]), o2($V7, [2, 51], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 54], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o2($V7, [2, 47], { 22: 88, 16: 89, 23: 100, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY }), { 46: [1, 101] }, o2($V7, [2, 29], { 10: $VZ }), o2($V_, [2, 27], { 16: 103, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY }), o2($V$, [2, 25]), o2($V$, [2, 13]), o2($V$, [2, 14]), o2($V$, [2, 15]), o2($V$, [2, 16]), o2($V$, [2, 17]), o2($V$, [2, 18]), o2($V$, [2, 19]), o2($V$, [2, 20]), o2($V$, [2, 21]), o2($V$, [2, 22]), o2($V7, [2, 49], { 10: $VZ }), o2($V7, [2, 48], { 22: 88, 16: 89, 23: 104, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY }), { 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 16: 89, 17: $VV, 18: $VW, 19: $VX, 20: $VY, 22: 105 }, o2($V$, [2, 26]), o2($V7, [2, 50], { 10: $VZ }), o2($V_, [2, 28], { 16: 103, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY })],
+ defaultActions: { 8: [2, 30], 9: [2, 31] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function Lfb(a, b) {
- a.a += b;
- return a;
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function WAb(a) {
- Tzb(a);
- return a.a;
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
}
- function Wsb(a) {
- return a.b != a.d.c;
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
}
- function pD(a) {
- return a.l | a.m << 22;
- }
- function aIc(a, b) {
- return a.d[b.p];
- }
- function h2c(a, b) {
- return c2c(a, b);
- }
- function cCb(a, b, c2) {
- a.splice(b, c2);
- }
- function WHb(a) {
- a.c ? VHb(a) : XHb(a);
- }
- function jVc(a) {
- this.a = 0;
- this.b = a;
- }
- function ZUc() {
- this.a = new L2c(K$);
- }
- function tRc() {
- this.b = new L2c(h$);
- }
- function Q$c() {
- this.b = new L2c(J_);
- }
- function d_c() {
- this.b = new L2c(J_);
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ break;
+ case 1:
+ break;
+ case 2:
+ return 55;
+ break;
+ case 3:
+ break;
+ case 4:
+ this.begin("title");
+ return 35;
+ break;
+ case 5:
+ this.popState();
+ return "title_value";
+ break;
+ case 6:
+ this.begin("acc_title");
+ return 37;
+ break;
+ case 7:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 8:
+ this.begin("acc_descr");
+ return 39;
+ break;
+ case 9:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 10:
+ this.begin("acc_descr_multiline");
+ break;
+ case 11:
+ this.popState();
+ break;
+ case 12:
+ return "acc_descr_multiline_value";
+ break;
+ case 13:
+ return 48;
+ break;
+ case 14:
+ return 50;
+ break;
+ case 15:
+ return 49;
+ break;
+ case 16:
+ return 51;
+ break;
+ case 17:
+ return 52;
+ break;
+ case 18:
+ return 53;
+ break;
+ case 19:
+ return 54;
+ break;
+ case 20:
+ return 25;
+ break;
+ case 21:
+ this.begin("md_string");
+ break;
+ case 22:
+ return "MD_STR";
+ break;
+ case 23:
+ this.popState();
+ break;
+ case 24:
+ this.begin("string");
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ return "STR";
+ break;
+ case 27:
+ this.begin("class_name");
+ break;
+ case 28:
+ this.popState();
+ return 47;
+ break;
+ case 29:
+ this.begin("point_start");
+ return 44;
+ break;
+ case 30:
+ this.begin("point_x");
+ return 45;
+ break;
+ case 31:
+ this.popState();
+ break;
+ case 32:
+ this.popState();
+ this.begin("point_y");
+ break;
+ case 33:
+ this.popState();
+ return 46;
+ break;
+ case 34:
+ return 28;
+ break;
+ case 35:
+ return 4;
+ break;
+ case 36:
+ return 11;
+ break;
+ case 37:
+ return 64;
+ break;
+ case 38:
+ return 10;
+ break;
+ case 39:
+ return 65;
+ break;
+ case 40:
+ return 65;
+ break;
+ case 41:
+ return 14;
+ break;
+ case 42:
+ return 13;
+ break;
+ case 43:
+ return 67;
+ break;
+ case 44:
+ return 66;
+ break;
+ case 45:
+ return 12;
+ break;
+ case 46:
+ return 8;
+ break;
+ case 47:
+ return 5;
+ break;
+ case 48:
+ return 18;
+ break;
+ case 49:
+ return 56;
+ break;
+ case 50:
+ return 63;
+ break;
+ case 51:
+ return 57;
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:classDef\b)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?::::)/i, /^(?:^\w+)/i, /^(?:\s*:\s*\[\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?:\s*\] *)/i, /^(?:\s*,\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s)/i, /^(?:;)/i, /^(?:[!"#$%&'*+,-.`?\\_/])/i, /^(?:$)/i],
+ conditions: { "class_name": { "rules": [28], "inclusive": false }, "point_y": { "rules": [33], "inclusive": false }, "point_x": { "rules": [32], "inclusive": false }, "point_start": { "rules": [30, 31], "inclusive": false }, "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "title": { "rules": [5], "inclusive": false }, "md_string": { "rules": [22, 23], "inclusive": false }, "string": { "rules": [25, 26], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 27, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser9.parser = parser9;
+ quadrant_default = parser9;
+ }
+ });
+
+ // src/diagrams/quadrant-chart/quadrantBuilder.ts
+ var defaultThemeVariables, QuadrantBuilder;
+ var init_quadrantBuilder = __esm({
+ "src/diagrams/quadrant-chart/quadrantBuilder.ts"() {
+ "use strict";
+ init_src32();
+ init_defaultConfig();
+ init_logger();
+ init_theme_default();
+ defaultThemeVariables = getThemeVariables3();
+ QuadrantBuilder = class {
+ constructor() {
+ this.classes = /* @__PURE__ */ new Map();
+ this.config = this.getDefaultConfig();
+ this.themeConfig = this.getDefaultThemeConfig();
+ this.data = this.getDefaultData();
+ }
+ static {
+ __name(this, "QuadrantBuilder");
+ }
+ getDefaultData() {
+ return {
+ titleText: "",
+ quadrant1Text: "",
+ quadrant2Text: "",
+ quadrant3Text: "",
+ quadrant4Text: "",
+ xAxisLeftText: "",
+ xAxisRightText: "",
+ yAxisBottomText: "",
+ yAxisTopText: "",
+ points: []
+ };
+ }
+ getDefaultConfig() {
+ return {
+ showXAxis: true,
+ showYAxis: true,
+ showTitle: true,
+ chartHeight: defaultConfig_default.quadrantChart?.chartWidth || 500,
+ chartWidth: defaultConfig_default.quadrantChart?.chartHeight || 500,
+ titlePadding: defaultConfig_default.quadrantChart?.titlePadding || 10,
+ titleFontSize: defaultConfig_default.quadrantChart?.titleFontSize || 20,
+ quadrantPadding: defaultConfig_default.quadrantChart?.quadrantPadding || 5,
+ xAxisLabelPadding: defaultConfig_default.quadrantChart?.xAxisLabelPadding || 5,
+ yAxisLabelPadding: defaultConfig_default.quadrantChart?.yAxisLabelPadding || 5,
+ xAxisLabelFontSize: defaultConfig_default.quadrantChart?.xAxisLabelFontSize || 16,
+ yAxisLabelFontSize: defaultConfig_default.quadrantChart?.yAxisLabelFontSize || 16,
+ quadrantLabelFontSize: defaultConfig_default.quadrantChart?.quadrantLabelFontSize || 16,
+ quadrantTextTopPadding: defaultConfig_default.quadrantChart?.quadrantTextTopPadding || 5,
+ pointTextPadding: defaultConfig_default.quadrantChart?.pointTextPadding || 5,
+ pointLabelFontSize: defaultConfig_default.quadrantChart?.pointLabelFontSize || 12,
+ pointRadius: defaultConfig_default.quadrantChart?.pointRadius || 5,
+ xAxisPosition: defaultConfig_default.quadrantChart?.xAxisPosition || "top",
+ yAxisPosition: defaultConfig_default.quadrantChart?.yAxisPosition || "left",
+ quadrantInternalBorderStrokeWidth: defaultConfig_default.quadrantChart?.quadrantInternalBorderStrokeWidth || 1,
+ quadrantExternalBorderStrokeWidth: defaultConfig_default.quadrantChart?.quadrantExternalBorderStrokeWidth || 2
+ };
+ }
+ getDefaultThemeConfig() {
+ return {
+ quadrant1Fill: defaultThemeVariables.quadrant1Fill,
+ quadrant2Fill: defaultThemeVariables.quadrant2Fill,
+ quadrant3Fill: defaultThemeVariables.quadrant3Fill,
+ quadrant4Fill: defaultThemeVariables.quadrant4Fill,
+ quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,
+ quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,
+ quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,
+ quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,
+ quadrantPointFill: defaultThemeVariables.quadrantPointFill,
+ quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,
+ quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,
+ quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,
+ quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,
+ quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,
+ quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill
+ };
+ }
+ clear() {
+ this.config = this.getDefaultConfig();
+ this.themeConfig = this.getDefaultThemeConfig();
+ this.data = this.getDefaultData();
+ this.classes = /* @__PURE__ */ new Map();
+ log.info("clear called");
+ }
+ setData(data5) {
+ this.data = { ...this.data, ...data5 };
+ }
+ addPoints(points) {
+ this.data.points = [...points, ...this.data.points];
+ }
+ addClass(className, styles3) {
+ this.classes.set(className, styles3);
+ }
+ setConfig(config6) {
+ log.trace("setConfig called with: ", config6);
+ this.config = { ...this.config, ...config6 };
+ }
+ setThemeConfig(themeConfig) {
+ log.trace("setThemeConfig called with: ", themeConfig);
+ this.themeConfig = { ...this.themeConfig, ...themeConfig };
+ }
+ calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {
+ const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;
+ const xAxisSpace = {
+ top: xAxisPosition === "top" && showXAxis ? xAxisSpaceCalculation : 0,
+ bottom: xAxisPosition === "bottom" && showXAxis ? xAxisSpaceCalculation : 0
+ };
+ const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;
+ const yAxisSpace = {
+ left: this.config.yAxisPosition === "left" && showYAxis ? yAxisSpaceCalculation : 0,
+ right: this.config.yAxisPosition === "right" && showYAxis ? yAxisSpaceCalculation : 0
+ };
+ const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;
+ const titleSpace = {
+ top: showTitle ? titleSpaceCalculation : 0
+ };
+ const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;
+ const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;
+ const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;
+ const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;
+ const quadrantHalfWidth = quadrantWidth / 2;
+ const quadrantHalfHeight = quadrantHeight / 2;
+ const quadrantSpace = {
+ quadrantLeft,
+ quadrantTop,
+ quadrantWidth,
+ quadrantHalfWidth,
+ quadrantHeight,
+ quadrantHalfHeight
+ };
+ return {
+ xAxisSpace,
+ yAxisSpace,
+ titleSpace,
+ quadrantSpace
+ };
+ }
+ getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {
+ const { quadrantSpace, titleSpace } = spaceData;
+ const {
+ quadrantHalfHeight,
+ quadrantHeight,
+ quadrantLeft,
+ quadrantHalfWidth,
+ quadrantTop,
+ quadrantWidth
+ } = quadrantSpace;
+ const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);
+ const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);
+ const axisLabels = [];
+ if (this.data.xAxisLeftText && showXAxis) {
+ axisLabels.push({
+ text: this.data.xAxisLeftText,
+ fill: this.themeConfig.quadrantXAxisTextFill,
+ x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),
+ y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,
+ fontSize: this.config.xAxisLabelFontSize,
+ verticalPos: drawXAxisLabelsInMiddle ? "center" : "left",
+ horizontalPos: "top",
+ rotation: 0
+ });
+ }
+ if (this.data.xAxisRightText && showXAxis) {
+ axisLabels.push({
+ text: this.data.xAxisRightText,
+ fill: this.themeConfig.quadrantXAxisTextFill,
+ x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),
+ y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,
+ fontSize: this.config.xAxisLabelFontSize,
+ verticalPos: drawXAxisLabelsInMiddle ? "center" : "left",
+ horizontalPos: "top",
+ rotation: 0
+ });
+ }
+ if (this.data.yAxisBottomText && showYAxis) {
+ axisLabels.push({
+ text: this.data.yAxisBottomText,
+ fill: this.themeConfig.quadrantYAxisTextFill,
+ x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,
+ y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),
+ fontSize: this.config.yAxisLabelFontSize,
+ verticalPos: drawYAxisLabelsInMiddle ? "center" : "left",
+ horizontalPos: "top",
+ rotation: -90
+ });
+ }
+ if (this.data.yAxisTopText && showYAxis) {
+ axisLabels.push({
+ text: this.data.yAxisTopText,
+ fill: this.themeConfig.quadrantYAxisTextFill,
+ x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,
+ y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),
+ fontSize: this.config.yAxisLabelFontSize,
+ verticalPos: drawYAxisLabelsInMiddle ? "center" : "left",
+ horizontalPos: "top",
+ rotation: -90
+ });
+ }
+ return axisLabels;
+ }
+ getQuadrants(spaceData) {
+ const { quadrantSpace } = spaceData;
+ const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;
+ const quadrants = [
+ {
+ text: {
+ text: this.data.quadrant1Text,
+ fill: this.themeConfig.quadrant1TextFill,
+ x: 0,
+ y: 0,
+ fontSize: this.config.quadrantLabelFontSize,
+ verticalPos: "center",
+ horizontalPos: "middle",
+ rotation: 0
+ },
+ x: quadrantLeft + quadrantHalfWidth,
+ y: quadrantTop,
+ width: quadrantHalfWidth,
+ height: quadrantHalfHeight,
+ fill: this.themeConfig.quadrant1Fill
+ },
+ {
+ text: {
+ text: this.data.quadrant2Text,
+ fill: this.themeConfig.quadrant2TextFill,
+ x: 0,
+ y: 0,
+ fontSize: this.config.quadrantLabelFontSize,
+ verticalPos: "center",
+ horizontalPos: "middle",
+ rotation: 0
+ },
+ x: quadrantLeft,
+ y: quadrantTop,
+ width: quadrantHalfWidth,
+ height: quadrantHalfHeight,
+ fill: this.themeConfig.quadrant2Fill
+ },
+ {
+ text: {
+ text: this.data.quadrant3Text,
+ fill: this.themeConfig.quadrant3TextFill,
+ x: 0,
+ y: 0,
+ fontSize: this.config.quadrantLabelFontSize,
+ verticalPos: "center",
+ horizontalPos: "middle",
+ rotation: 0
+ },
+ x: quadrantLeft,
+ y: quadrantTop + quadrantHalfHeight,
+ width: quadrantHalfWidth,
+ height: quadrantHalfHeight,
+ fill: this.themeConfig.quadrant3Fill
+ },
+ {
+ text: {
+ text: this.data.quadrant4Text,
+ fill: this.themeConfig.quadrant4TextFill,
+ x: 0,
+ y: 0,
+ fontSize: this.config.quadrantLabelFontSize,
+ verticalPos: "center",
+ horizontalPos: "middle",
+ rotation: 0
+ },
+ x: quadrantLeft + quadrantHalfWidth,
+ y: quadrantTop + quadrantHalfHeight,
+ width: quadrantHalfWidth,
+ height: quadrantHalfHeight,
+ fill: this.themeConfig.quadrant4Fill
+ }
+ ];
+ for (const quadrant of quadrants) {
+ quadrant.text.x = quadrant.x + quadrant.width / 2;
+ if (this.data.points.length === 0) {
+ quadrant.text.y = quadrant.y + quadrant.height / 2;
+ quadrant.text.horizontalPos = "middle";
+ } else {
+ quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;
+ quadrant.text.horizontalPos = "top";
+ }
+ }
+ return quadrants;
+ }
+ getQuadrantPoints(spaceData) {
+ const { quadrantSpace } = spaceData;
+ const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;
+ const xAxis = linear2().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);
+ const yAxis = linear2().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);
+ const points = this.data.points.map((point8) => {
+ const classStyles = this.classes.get(point8.className);
+ if (classStyles) {
+ point8 = { ...classStyles, ...point8 };
+ }
+ const props = {
+ x: xAxis(point8.x),
+ y: yAxis(point8.y),
+ fill: point8.color ?? this.themeConfig.quadrantPointFill,
+ radius: point8.radius ?? this.config.pointRadius,
+ text: {
+ text: point8.text,
+ fill: this.themeConfig.quadrantPointTextFill,
+ x: xAxis(point8.x),
+ y: yAxis(point8.y) + this.config.pointTextPadding,
+ verticalPos: "center",
+ horizontalPos: "top",
+ fontSize: this.config.pointLabelFontSize,
+ rotation: 0
+ },
+ strokeColor: point8.strokeColor ?? this.themeConfig.quadrantPointFill,
+ strokeWidth: point8.strokeWidth ?? "0px"
+ };
+ return props;
+ });
+ return points;
+ }
+ getBorders(spaceData) {
+ const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;
+ const { quadrantSpace } = spaceData;
+ const {
+ quadrantHalfHeight,
+ quadrantHeight,
+ quadrantLeft,
+ quadrantHalfWidth,
+ quadrantTop,
+ quadrantWidth
+ } = quadrantSpace;
+ const borderLines = [
+ // top border
+ {
+ strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
+ strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
+ x1: quadrantLeft - halfExternalBorderWidth,
+ y1: quadrantTop,
+ x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,
+ y2: quadrantTop
+ },
+ // right border
+ {
+ strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
+ strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
+ x1: quadrantLeft + quadrantWidth,
+ y1: quadrantTop + halfExternalBorderWidth,
+ x2: quadrantLeft + quadrantWidth,
+ y2: quadrantTop + quadrantHeight - halfExternalBorderWidth
+ },
+ // bottom border
+ {
+ strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
+ strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
+ x1: quadrantLeft - halfExternalBorderWidth,
+ y1: quadrantTop + quadrantHeight,
+ x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,
+ y2: quadrantTop + quadrantHeight
+ },
+ // left border
+ {
+ strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
+ strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
+ x1: quadrantLeft,
+ y1: quadrantTop + halfExternalBorderWidth,
+ x2: quadrantLeft,
+ y2: quadrantTop + quadrantHeight - halfExternalBorderWidth
+ },
+ // vertical inner border
+ {
+ strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,
+ strokeWidth: this.config.quadrantInternalBorderStrokeWidth,
+ x1: quadrantLeft + quadrantHalfWidth,
+ y1: quadrantTop + halfExternalBorderWidth,
+ x2: quadrantLeft + quadrantHalfWidth,
+ y2: quadrantTop + quadrantHeight - halfExternalBorderWidth
+ },
+ // horizontal inner border
+ {
+ strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,
+ strokeWidth: this.config.quadrantInternalBorderStrokeWidth,
+ x1: quadrantLeft + halfExternalBorderWidth,
+ y1: quadrantTop + quadrantHalfHeight,
+ x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,
+ y2: quadrantTop + quadrantHalfHeight
+ }
+ ];
+ return borderLines;
+ }
+ getTitle(showTitle) {
+ if (showTitle) {
+ return {
+ text: this.data.titleText,
+ fill: this.themeConfig.quadrantTitleFill,
+ fontSize: this.config.titleFontSize,
+ horizontalPos: "top",
+ verticalPos: "center",
+ rotation: 0,
+ y: this.config.titlePadding,
+ x: this.config.chartWidth / 2
+ };
+ }
+ return;
+ }
+ build() {
+ const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);
+ const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);
+ const showTitle = this.config.showTitle && !!this.data.titleText;
+ const xAxisPosition = this.data.points.length > 0 ? "bottom" : this.config.xAxisPosition;
+ const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);
+ return {
+ points: this.getQuadrantPoints(calculatedSpace),
+ quadrants: this.getQuadrants(calculatedSpace),
+ axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),
+ borderLines: this.getBorders(calculatedSpace),
+ title: this.getTitle(showTitle)
+ };
+ }
+ };
+ }
+ });
+
+ // src/diagrams/quadrant-chart/utils.ts
+ function validateHexCode(value2) {
+ return !/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(value2);
+ }
+ function validateNumber(value2) {
+ return !/^\d+$/.test(value2);
+ }
+ function validateSizeInPixels(value2) {
+ return !/^\d+px$/.test(value2);
+ }
+ var InvalidStyleError;
+ var init_utils5 = __esm({
+ "src/diagrams/quadrant-chart/utils.ts"() {
+ "use strict";
+ InvalidStyleError = class extends Error {
+ static {
+ __name(this, "InvalidStyleError");
+ }
+ constructor(style3, value2, type3) {
+ super(`value for ${style3} ${value2} is invalid, please use a valid ${type3}`);
+ this.name = "InvalidStyleError";
+ }
+ };
+ __name(validateHexCode, "validateHexCode");
+ __name(validateNumber, "validateNumber");
+ __name(validateSizeInPixels, "validateSizeInPixels");
+ }
+ });
+
+ // src/diagrams/quadrant-chart/quadrantDb.ts
+ function textSanitizer(text2) {
+ return sanitizeText(text2.trim(), config4);
+ }
+ function setQuadrant1Text(textObj) {
+ quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });
+ }
+ function setQuadrant2Text(textObj) {
+ quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });
+ }
+ function setQuadrant3Text(textObj) {
+ quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });
+ }
+ function setQuadrant4Text(textObj) {
+ quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });
+ }
+ function setXAxisLeftText(textObj) {
+ quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });
+ }
+ function setXAxisRightText(textObj) {
+ quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });
+ }
+ function setYAxisTopText(textObj) {
+ quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });
+ }
+ function setYAxisBottomText(textObj) {
+ quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });
+ }
+ function parseStyles(styles3) {
+ const stylesObject = {};
+ for (const style3 of styles3) {
+ const [key, value2] = style3.trim().split(/\s*:\s*/);
+ if (key === "radius") {
+ if (validateNumber(value2)) {
+ throw new InvalidStyleError(key, value2, "number");
+ }
+ stylesObject.radius = parseInt(value2);
+ } else if (key === "color") {
+ if (validateHexCode(value2)) {
+ throw new InvalidStyleError(key, value2, "hex code");
+ }
+ stylesObject.color = value2;
+ } else if (key === "stroke-color") {
+ if (validateHexCode(value2)) {
+ throw new InvalidStyleError(key, value2, "hex code");
+ }
+ stylesObject.strokeColor = value2;
+ } else if (key === "stroke-width") {
+ if (validateSizeInPixels(value2)) {
+ throw new InvalidStyleError(key, value2, "number of pixels (eg. 10px)");
+ }
+ stylesObject.strokeWidth = value2;
+ } else {
+ throw new Error(`style named ${key} is not supported.`);
+ }
+ }
+ return stylesObject;
+ }
+ function addPoint(textObj, className, x5, y5, styles3) {
+ const stylesObject = parseStyles(styles3);
+ quadrantBuilder.addPoints([
+ {
+ x: x5,
+ y: y5,
+ text: textSanitizer(textObj.text),
+ className,
+ ...stylesObject
+ }
+ ]);
+ }
+ function addClass2(className, styles3) {
+ quadrantBuilder.addClass(className, parseStyles(styles3));
+ }
+ function setWidth(width3) {
+ quadrantBuilder.setConfig({ chartWidth: width3 });
+ }
+ function setHeight(height2) {
+ quadrantBuilder.setConfig({ chartHeight: height2 });
+ }
+ function getQuadrantData() {
+ const config6 = getConfig2();
+ const { themeVariables, quadrantChart: quadrantChartConfig } = config6;
+ if (quadrantChartConfig) {
+ quadrantBuilder.setConfig(quadrantChartConfig);
+ }
+ quadrantBuilder.setThemeConfig({
+ quadrant1Fill: themeVariables.quadrant1Fill,
+ quadrant2Fill: themeVariables.quadrant2Fill,
+ quadrant3Fill: themeVariables.quadrant3Fill,
+ quadrant4Fill: themeVariables.quadrant4Fill,
+ quadrant1TextFill: themeVariables.quadrant1TextFill,
+ quadrant2TextFill: themeVariables.quadrant2TextFill,
+ quadrant3TextFill: themeVariables.quadrant3TextFill,
+ quadrant4TextFill: themeVariables.quadrant4TextFill,
+ quadrantPointFill: themeVariables.quadrantPointFill,
+ quadrantPointTextFill: themeVariables.quadrantPointTextFill,
+ quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,
+ quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,
+ quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,
+ quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,
+ quadrantTitleFill: themeVariables.quadrantTitleFill
+ });
+ quadrantBuilder.setData({ titleText: getDiagramTitle() });
+ return quadrantBuilder.build();
+ }
+ var config4, quadrantBuilder, clear14, quadrantDb_default;
+ var init_quadrantDb = __esm({
+ "src/diagrams/quadrant-chart/quadrantDb.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ init_commonDb();
+ init_quadrantBuilder();
+ init_utils5();
+ config4 = getConfig2();
+ __name(textSanitizer, "textSanitizer");
+ quadrantBuilder = new QuadrantBuilder();
+ __name(setQuadrant1Text, "setQuadrant1Text");
+ __name(setQuadrant2Text, "setQuadrant2Text");
+ __name(setQuadrant3Text, "setQuadrant3Text");
+ __name(setQuadrant4Text, "setQuadrant4Text");
+ __name(setXAxisLeftText, "setXAxisLeftText");
+ __name(setXAxisRightText, "setXAxisRightText");
+ __name(setYAxisTopText, "setYAxisTopText");
+ __name(setYAxisBottomText, "setYAxisBottomText");
+ __name(parseStyles, "parseStyles");
+ __name(addPoint, "addPoint");
+ __name(addClass2, "addClass");
+ __name(setWidth, "setWidth");
+ __name(setHeight, "setHeight");
+ __name(getQuadrantData, "getQuadrantData");
+ clear14 = /* @__PURE__ */ __name(function() {
+ quadrantBuilder.clear();
+ clear();
+ }, "clear");
+ quadrantDb_default = {
+ setWidth,
+ setHeight,
+ setQuadrant1Text,
+ setQuadrant2Text,
+ setQuadrant3Text,
+ setQuadrant4Text,
+ setXAxisLeftText,
+ setXAxisRightText,
+ setYAxisTopText,
+ setYAxisBottomText,
+ parseStyles,
+ addPoint,
+ addClass: addClass2,
+ getQuadrantData,
+ clear: clear14,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ getAccDescription,
+ setAccDescription
+ };
+ }
+ });
+
+ // src/diagrams/quadrant-chart/quadrantRenderer.ts
+ var draw8, quadrantRenderer_default;
+ var init_quadrantRenderer = __esm({
+ "src/diagrams/quadrant-chart/quadrantRenderer.ts"() {
+ "use strict";
+ init_src32();
+ init_diagramAPI();
+ init_logger();
+ init_setupGraphViewbox();
+ draw8 = /* @__PURE__ */ __name((txt, id27, _version, diagObj) => {
+ function getDominantBaseLine(horizontalPos) {
+ return horizontalPos === "top" ? "hanging" : "middle";
+ }
+ __name(getDominantBaseLine, "getDominantBaseLine");
+ function getTextAnchor(verticalPos) {
+ return verticalPos === "left" ? "start" : "middle";
+ }
+ __name(getTextAnchor, "getTextAnchor");
+ function getTransformation(data5) {
+ return `translate(${data5.x}, ${data5.y}) rotate(${data5.rotation || 0})`;
+ }
+ __name(getTransformation, "getTransformation");
+ const conf8 = getConfig2();
+ log.debug("Rendering quadrant chart\n" + txt);
+ const securityLevel = conf8.securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = root4.select(`[id="${id27}"]`);
+ const group2 = svg.append("g").attr("class", "main");
+ const width3 = conf8.quadrantChart?.chartWidth ?? 500;
+ const height2 = conf8.quadrantChart?.chartHeight ?? 500;
+ configureSvgSize(svg, height2, width3, conf8.quadrantChart?.useMaxWidth ?? true);
+ svg.attr("viewBox", "0 0 " + width3 + " " + height2);
+ diagObj.db.setHeight(height2);
+ diagObj.db.setWidth(width3);
+ const quadrantData = diagObj.db.getQuadrantData();
+ const quadrantsGroup = group2.append("g").attr("class", "quadrants");
+ const borderGroup = group2.append("g").attr("class", "border");
+ const dataPointGroup = group2.append("g").attr("class", "data-points");
+ const labelGroup = group2.append("g").attr("class", "labels");
+ const titleGroup = group2.append("g").attr("class", "title");
+ if (quadrantData.title) {
+ titleGroup.append("text").attr("x", 0).attr("y", 0).attr("fill", quadrantData.title.fill).attr("font-size", quadrantData.title.fontSize).attr("dominant-baseline", getDominantBaseLine(quadrantData.title.horizontalPos)).attr("text-anchor", getTextAnchor(quadrantData.title.verticalPos)).attr("transform", getTransformation(quadrantData.title)).text(quadrantData.title.text);
+ }
+ if (quadrantData.borderLines) {
+ borderGroup.selectAll("line").data(quadrantData.borderLines).enter().append("line").attr("x1", (data5) => data5.x1).attr("y1", (data5) => data5.y1).attr("x2", (data5) => data5.x2).attr("y2", (data5) => data5.y2).style("stroke", (data5) => data5.strokeFill).style("stroke-width", (data5) => data5.strokeWidth);
+ }
+ const quadrants = quadrantsGroup.selectAll("g.quadrant").data(quadrantData.quadrants).enter().append("g").attr("class", "quadrant");
+ quadrants.append("rect").attr("x", (data5) => data5.x).attr("y", (data5) => data5.y).attr("width", (data5) => data5.width).attr("height", (data5) => data5.height).attr("fill", (data5) => data5.fill);
+ quadrants.append("text").attr("x", 0).attr("y", 0).attr("fill", (data5) => data5.text.fill).attr("font-size", (data5) => data5.text.fontSize).attr(
+ "dominant-baseline",
+ (data5) => getDominantBaseLine(data5.text.horizontalPos)
+ ).attr("text-anchor", (data5) => getTextAnchor(data5.text.verticalPos)).attr("transform", (data5) => getTransformation(data5.text)).text((data5) => data5.text.text);
+ const labels = labelGroup.selectAll("g.label").data(quadrantData.axisLabels).enter().append("g").attr("class", "label");
+ labels.append("text").attr("x", 0).attr("y", 0).text((data5) => data5.text).attr("fill", (data5) => data5.fill).attr("font-size", (data5) => data5.fontSize).attr("dominant-baseline", (data5) => getDominantBaseLine(data5.horizontalPos)).attr("text-anchor", (data5) => getTextAnchor(data5.verticalPos)).attr("transform", (data5) => getTransformation(data5));
+ const dataPoints = dataPointGroup.selectAll("g.data-point").data(quadrantData.points).enter().append("g").attr("class", "data-point");
+ dataPoints.append("circle").attr("cx", (data5) => data5.x).attr("cy", (data5) => data5.y).attr("r", (data5) => data5.radius).attr("fill", (data5) => data5.fill).attr("stroke", (data5) => data5.strokeColor).attr("stroke-width", (data5) => data5.strokeWidth);
+ dataPoints.append("text").attr("x", 0).attr("y", 0).text((data5) => data5.text.text).attr("fill", (data5) => data5.text.fill).attr("font-size", (data5) => data5.text.fontSize).attr(
+ "dominant-baseline",
+ (data5) => getDominantBaseLine(data5.text.horizontalPos)
+ ).attr("text-anchor", (data5) => getTextAnchor(data5.text.verticalPos)).attr("transform", (data5) => getTransformation(data5.text));
+ }, "draw");
+ quadrantRenderer_default = {
+ draw: draw8
+ };
+ }
+ });
+
+ // src/diagrams/quadrant-chart/quadrantDiagram.ts
+ var quadrantDiagram_exports = {};
+ __export(quadrantDiagram_exports, {
+ diagram: () => diagram8
+ });
+ var diagram8;
+ var init_quadrantDiagram = __esm({
+ "src/diagrams/quadrant-chart/quadrantDiagram.ts"() {
+ "use strict";
+ init_quadrant();
+ init_quadrantDb();
+ init_quadrantRenderer();
+ diagram8 = {
+ parser: quadrant_default,
+ db: quadrantDb_default,
+ renderer: quadrantRenderer_default,
+ styles: /* @__PURE__ */ __name(() => "", "styles")
+ };
+ }
+ });
+
+ // src/diagrams/xychart/parser/xychart.jison
+ var parser10, xychart_default;
+ var init_xychart = __esm({
+ "src/diagrams/xychart/parser/xychart.jison"() {
+ "use strict";
+ parser10 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "eol": 4, "XYCHART": 5, "chartConfig": 6, "document": 7, "CHART_ORIENTATION": 8, "statement": 9, "title": 10, "text": 11, "X_AXIS": 12, "parseXAxis": 13, "Y_AXIS": 14, "parseYAxis": 15, "LINE": 16, "plotData": 17, "BAR": 18, "acc_title": 19, "acc_title_value": 20, "acc_descr": 21, "acc_descr_value": 22, "acc_descr_multiline_value": 23, "SQUARE_BRACES_START": 24, "commaSeparatedNumbers": 25, "SQUARE_BRACES_END": 26, "NUMBER_WITH_DECIMAL": 27, "COMMA": 28, "xAxisData": 29, "bandData": 30, "ARROW_DELIMITER": 31, "commaSeparatedTexts": 32, "yAxisData": 33, "NEWLINE": 34, "SEMI": 35, "EOF": 36, "alphaNum": 37, "STR": 38, "MD_STR": 39, "alphaNumToken": 40, "AMP": 41, "NUM": 42, "ALPHA": 43, "PLUS": 44, "EQUALS": 45, "MULT": 46, "DOT": 47, "BRKT": 48, "MINUS": 49, "UNDERSCORE": 50, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "XYCHART", 8: "CHART_ORIENTATION", 10: "title", 12: "X_AXIS", 14: "Y_AXIS", 16: "LINE", 18: "BAR", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "SQUARE_BRACES_START", 26: "SQUARE_BRACES_END", 27: "NUMBER_WITH_DECIMAL", 28: "COMMA", 31: "ARROW_DELIMITER", 34: "NEWLINE", 35: "SEMI", 36: "EOF", 38: "STR", 39: "MD_STR", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "PLUS", 45: "EQUALS", 46: "MULT", 47: "DOT", 48: "BRKT", 49: "MINUS", 50: "UNDERSCORE" },
+ productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 5:
+ yy.setOrientation($$[$0]);
+ break;
+ case 9:
+ yy.setDiagramTitle($$[$0].text.trim());
+ break;
+ case 12:
+ yy.setLineData({ text: "", type: "text" }, $$[$0]);
+ break;
+ case 13:
+ yy.setLineData($$[$0 - 1], $$[$0]);
+ break;
+ case 14:
+ yy.setBarData({ text: "", type: "text" }, $$[$0]);
+ break;
+ case 15:
+ yy.setBarData($$[$0 - 1], $$[$0]);
+ break;
+ case 16:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 17:
+ case 18:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 19:
+ this.$ = $$[$0 - 1];
+ break;
+ case 20:
+ this.$ = [Number($$[$0 - 2]), ...$$[$0]];
+ break;
+ case 21:
+ this.$ = [Number($$[$0])];
+ break;
+ case 22:
+ yy.setXAxisTitle($$[$0]);
+ break;
+ case 23:
+ yy.setXAxisTitle($$[$0 - 1]);
+ break;
+ case 24:
+ yy.setXAxisTitle({ type: "text", text: "" });
+ break;
+ case 25:
+ yy.setXAxisBand($$[$0]);
+ break;
+ case 26:
+ yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));
+ break;
+ case 27:
+ this.$ = $$[$0 - 1];
+ break;
+ case 28:
+ this.$ = [$$[$0 - 2], ...$$[$0]];
+ break;
+ case 29:
+ this.$ = [$$[$0]];
+ break;
+ case 30:
+ yy.setYAxisTitle($$[$0]);
+ break;
+ case 31:
+ yy.setYAxisTitle($$[$0 - 1]);
+ break;
+ case 32:
+ yy.setYAxisTitle({ type: "text", text: "" });
+ break;
+ case 33:
+ yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));
+ break;
+ case 37:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 38:
+ this.$ = { text: $$[$0], type: "text" };
+ break;
+ case 39:
+ this.$ = { text: $$[$0], type: "markdown" };
+ break;
+ case 40:
+ this.$ = $$[$0];
+ break;
+ case 41:
+ this.$ = $$[$0 - 1] + "" + $$[$0];
+ break;
}
- function OCd() {
- throw vbb(new bgb());
+ }, "anonymous"),
+ table: [o2($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o2($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o2($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o2($V6, [2, 34]), o2($V6, [2, 35]), o2($V6, [2, 36]), { 1: [2, 1] }, o2($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o2($V6, [2, 5]), o2($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o2($Vn, [2, 18]), { 1: [2, 2] }, o2($Vn, [2, 8]), o2($Vn, [2, 9]), o2($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o2($Vo, [2, 38]), o2($Vo, [2, 39]), o2($Vp, [2, 40]), o2($Vp, [2, 42]), o2($Vp, [2, 43]), o2($Vp, [2, 44]), o2($Vp, [2, 45]), o2($Vp, [2, 46]), o2($Vp, [2, 47]), o2($Vp, [2, 48]), o2($Vp, [2, 49]), o2($Vp, [2, 50]), o2($Vp, [2, 51]), o2($Vn, [2, 10]), o2($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o2($Vn, [2, 24]), o2($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o2($Vn, [2, 11]), o2($Vn, [2, 30], { 33: 60, 27: $Vl }), o2($Vn, [2, 32]), { 31: [1, 61] }, o2($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o2($Vn, [2, 14]), { 17: 65, 24: $Vm }, o2($Vn, [2, 16]), o2($Vn, [2, 17]), o2($Vp, [2, 41]), o2($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o2($Vn, [2, 31]), { 27: [1, 69] }, o2($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o2($Vn, [2, 15]), o2($Vn, [2, 26]), o2($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o2($Vn, [2, 33]), o2($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }],
+ defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function PCd() {
- throw vbb(new bgb());
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function QCd() {
- throw vbb(new bgb());
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
}
- function RCd() {
- throw vbb(new bgb());
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
}
- function SCd() {
- throw vbb(new bgb());
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ break;
+ case 1:
+ break;
+ case 2:
+ this.popState();
+ return 34;
+ break;
+ case 3:
+ this.popState();
+ return 34;
+ break;
+ case 4:
+ return 34;
+ break;
+ case 5:
+ break;
+ case 6:
+ return 10;
+ break;
+ case 7:
+ this.pushState("acc_title");
+ return 19;
+ break;
+ case 8:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 9:
+ this.pushState("acc_descr");
+ return 21;
+ break;
+ case 10:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 11:
+ this.pushState("acc_descr_multiline");
+ break;
+ case 12:
+ this.popState();
+ break;
+ case 13:
+ return "acc_descr_multiline_value";
+ break;
+ case 14:
+ return 5;
+ break;
+ case 15:
+ return 8;
+ break;
+ case 16:
+ this.pushState("axis_data");
+ return "X_AXIS";
+ break;
+ case 17:
+ this.pushState("axis_data");
+ return "Y_AXIS";
+ break;
+ case 18:
+ this.pushState("axis_band_data");
+ return 24;
+ break;
+ case 19:
+ return 31;
+ break;
+ case 20:
+ this.pushState("data");
+ return 16;
+ break;
+ case 21:
+ this.pushState("data");
+ return 18;
+ break;
+ case 22:
+ this.pushState("data_inner");
+ return 24;
+ break;
+ case 23:
+ return 27;
+ break;
+ case 24:
+ this.popState();
+ return 26;
+ break;
+ case 25:
+ this.popState();
+ break;
+ case 26:
+ this.pushState("string");
+ break;
+ case 27:
+ this.popState();
+ break;
+ case 28:
+ return "STR";
+ break;
+ case 29:
+ return 24;
+ break;
+ case 30:
+ return 26;
+ break;
+ case 31:
+ return 43;
+ break;
+ case 32:
+ return "COLON";
+ break;
+ case 33:
+ return 44;
+ break;
+ case 34:
+ return 28;
+ break;
+ case 35:
+ return 45;
+ break;
+ case 36:
+ return 46;
+ break;
+ case 37:
+ return 48;
+ break;
+ case 38:
+ return 50;
+ break;
+ case 39:
+ return 47;
+ break;
+ case 40:
+ return 41;
+ break;
+ case 41:
+ return 49;
+ break;
+ case 42:
+ return 42;
+ break;
+ case 43:
+ break;
+ case 44:
+ return 35;
+ break;
+ case 45:
+ return 36;
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:(\r?\n))/i, /^(?:(\r?\n))/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:\{)/i, /^(?:[^\}]*)/i, /^(?:xychart-beta\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\b)/i, /^(?:y-axis\b)/i, /^(?:\[)/i, /^(?:-->)/i, /^(?:line\b)/i, /^(?:bar\b)/i, /^(?:\[)/i, /^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i, /^(?:\])/i, /^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s+)/i, /^(?:;)/i, /^(?:$)/i],
+ conditions: { "data_inner": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "data": { "rules": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_band_data": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_data": { "rules": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "title": { "rules": [], "inclusive": false }, "md_string": { "rules": [], "inclusive": false }, "string": { "rules": [27, 28], "inclusive": false }, "INITIAL": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser10.parser = parser10;
+ xychart_default = parser10;
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/interfaces.ts
+ function isBarPlot(data5) {
+ return data5.type === "bar";
+ }
+ function isBandAxisData(data5) {
+ return data5.type === "band";
+ }
+ function isLinearAxisData(data5) {
+ return data5.type === "linear";
+ }
+ var init_interfaces = __esm({
+ "src/diagrams/xychart/chartBuilder/interfaces.ts"() {
+ "use strict";
+ __name(isBarPlot, "isBarPlot");
+ __name(isBandAxisData, "isBandAxisData");
+ __name(isLinearAxisData, "isLinearAxisData");
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/textDimensionCalculator.ts
+ var TextDimensionCalculatorWithFont;
+ var init_textDimensionCalculator = __esm({
+ "src/diagrams/xychart/chartBuilder/textDimensionCalculator.ts"() {
+ "use strict";
+ init_createText();
+ TextDimensionCalculatorWithFont = class {
+ constructor(parentGroup) {
+ this.parentGroup = parentGroup;
+ }
+ static {
+ __name(this, "TextDimensionCalculatorWithFont");
+ }
+ getMaxDimension(texts, fontSize) {
+ if (!this.parentGroup) {
+ return {
+ width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize,
+ height: fontSize
+ };
+ }
+ const dimension = {
+ width: 0,
+ height: 0
+ };
+ const elem = this.parentGroup.append("g").attr("visibility", "hidden").attr("font-size", fontSize);
+ for (const t4 of texts) {
+ const bbox = computeDimensionOfText(elem, 1, t4);
+ const width3 = bbox ? bbox.width : t4.length * fontSize;
+ const height2 = bbox ? bbox.height : fontSize;
+ dimension.width = Math.max(dimension.width, width3);
+ dimension.height = Math.max(dimension.height, height2);
+ }
+ elem.remove();
+ return dimension;
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/axis/baseAxis.ts
+ var BAR_WIDTH_TO_TICK_WIDTH_RATIO, MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL, BaseAxis;
+ var init_baseAxis = __esm({
+ "src/diagrams/xychart/chartBuilder/components/axis/baseAxis.ts"() {
+ "use strict";
+ BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;
+ MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;
+ BaseAxis = class {
+ constructor(axisConfig, title2, textDimensionCalculator, axisThemeConfig) {
+ this.axisConfig = axisConfig;
+ this.title = title2;
+ this.textDimensionCalculator = textDimensionCalculator;
+ this.axisThemeConfig = axisThemeConfig;
+ this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };
+ this.axisPosition = "left";
+ this.showTitle = false;
+ this.showLabel = false;
+ this.showTick = false;
+ this.showAxisLine = false;
+ this.outerPadding = 0;
+ this.titleTextHeight = 0;
+ this.labelTextHeight = 0;
+ this.range = [0, 10];
+ this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };
+ this.axisPosition = "left";
+ }
+ static {
+ __name(this, "BaseAxis");
+ }
+ setRange(range3) {
+ this.range = range3;
+ if (this.axisPosition === "left" || this.axisPosition === "right") {
+ this.boundingRect.height = range3[1] - range3[0];
+ } else {
+ this.boundingRect.width = range3[1] - range3[0];
+ }
+ this.recalculateScale();
+ }
+ getRange() {
+ return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding];
+ }
+ setAxisPosition(axisPosition) {
+ this.axisPosition = axisPosition;
+ this.setRange(this.range);
+ }
+ getTickDistance() {
+ const range3 = this.getRange();
+ return Math.abs(range3[0] - range3[1]) / this.getTickValues().length;
+ }
+ getAxisOuterPadding() {
+ return this.outerPadding;
+ }
+ getLabelDimension() {
+ return this.textDimensionCalculator.getMaxDimension(
+ this.getTickValues().map((tick) => tick.toString()),
+ this.axisConfig.labelFontSize
+ );
+ }
+ recalculateOuterPaddingToDrawBar() {
+ if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) {
+ this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);
+ }
+ this.recalculateScale();
+ }
+ calculateSpaceIfDrawnHorizontally(availableSpace) {
+ let availableHeight = availableSpace.height;
+ if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {
+ availableHeight -= this.axisConfig.axisLineWidth;
+ this.showAxisLine = true;
+ }
+ if (this.axisConfig.showLabel) {
+ const spaceRequired = this.getLabelDimension();
+ const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;
+ this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);
+ const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;
+ this.labelTextHeight = spaceRequired.height;
+ if (heightRequired <= availableHeight) {
+ availableHeight -= heightRequired;
+ this.showLabel = true;
+ }
+ }
+ if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {
+ this.showTick = true;
+ availableHeight -= this.axisConfig.tickLength;
+ }
+ if (this.axisConfig.showTitle && this.title) {
+ const spaceRequired = this.textDimensionCalculator.getMaxDimension(
+ [this.title],
+ this.axisConfig.titleFontSize
+ );
+ const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;
+ this.titleTextHeight = spaceRequired.height;
+ if (heightRequired <= availableHeight) {
+ availableHeight -= heightRequired;
+ this.showTitle = true;
+ }
+ }
+ this.boundingRect.width = availableSpace.width;
+ this.boundingRect.height = availableSpace.height - availableHeight;
+ }
+ calculateSpaceIfDrawnVertical(availableSpace) {
+ let availableWidth = availableSpace.width;
+ if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {
+ availableWidth -= this.axisConfig.axisLineWidth;
+ this.showAxisLine = true;
+ }
+ if (this.axisConfig.showLabel) {
+ const spaceRequired = this.getLabelDimension();
+ const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;
+ this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);
+ const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;
+ if (widthRequired <= availableWidth) {
+ availableWidth -= widthRequired;
+ this.showLabel = true;
+ }
+ }
+ if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {
+ this.showTick = true;
+ availableWidth -= this.axisConfig.tickLength;
+ }
+ if (this.axisConfig.showTitle && this.title) {
+ const spaceRequired = this.textDimensionCalculator.getMaxDimension(
+ [this.title],
+ this.axisConfig.titleFontSize
+ );
+ const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;
+ this.titleTextHeight = spaceRequired.height;
+ if (widthRequired <= availableWidth) {
+ availableWidth -= widthRequired;
+ this.showTitle = true;
}
- function TCd() {
- throw vbb(new bgb());
- }
- function UCd() {
- throw vbb(new bgb());
- }
- function VCd() {
- throw vbb(new bgb());
- }
- function WCd() {
- throw vbb(new bgb());
- }
- function XCd() {
- throw vbb(new bgb());
- }
- function ahe() {
- throw vbb(new utb());
- }
- function bhe() {
- throw vbb(new utb());
- }
- function Rge(a) {
- this.a = new ege(a);
- }
- function ege(a) {
- dge(this, a, Vee());
- }
- function Fhe(a) {
- return !a || Ehe(a);
- }
- function dde(a) {
- return $ce[a] != -1;
- }
- function Iz() {
- xz != 0 && (xz = 0);
- zz = -1;
- }
- function Ybb() {
- Wbb == null && (Wbb = []);
- }
- function ONd(a, b) {
- Rxd(ZKd(a.a), b);
- }
- function TNd(a, b) {
- Rxd(ZKd(a.a), b);
- }
- function Yf(a, b) {
- zf.call(this, a, b);
- }
- function $f(a, b) {
- Yf.call(this, a, b);
- }
- function Hf(a, b) {
- this.b = a;
- this.c = b;
- }
- function rk(a, b) {
- this.b = a;
- this.a = b;
- }
- function ek(a, b) {
- this.a = a;
- this.b = b;
- }
- function gk(a, b) {
- this.a = a;
- this.b = b;
- }
- function pk(a, b) {
- this.a = a;
- this.b = b;
- }
- function yk(a, b) {
- this.a = a;
- this.b = b;
- }
- function Ak(a, b) {
- this.a = a;
- this.b = b;
- }
- function Fj(a, b) {
- this.a = a;
- this.b = b;
- }
- function _j(a, b) {
- this.a = a;
- this.b = b;
- }
- function dr(a, b) {
- this.a = a;
- this.b = b;
- }
- function zr(a, b) {
- this.b = a;
- this.a = b;
- }
- function So(a, b) {
- this.b = a;
- this.a = b;
- }
- function qp(a, b) {
- this.b = a;
- this.a = b;
- }
- function $q(a, b) {
- this.b = a;
- this.a = b;
- }
- function $r(a, b) {
- this.f = a;
- this.g = b;
- }
- function ne(a, b) {
- this.e = a;
- this.d = b;
- }
- function Wo(a, b) {
- this.g = a;
- this.i = b;
- }
- function bu(a, b) {
- this.a = a;
- this.b = b;
- }
- function qu(a, b) {
- this.a = a;
- this.f = b;
- }
- function qv(a, b) {
- this.b = a;
- this.c = b;
- }
- function ox(a, b) {
- this.a = a;
- this.b = b;
- }
- function Px(a, b) {
- this.a = a;
- this.b = b;
- }
- function mC(a, b) {
- this.a = a;
- this.b = b;
- }
- function Wc(a) {
- Lb(a.dc());
- this.c = a;
- }
- function rf(a) {
- this.b = BD(Qb(a), 83);
- }
- function Zv(a) {
- this.a = BD(Qb(a), 83);
- }
- function dv(a) {
- this.a = BD(Qb(a), 15);
- }
- function $u(a) {
- this.a = BD(Qb(a), 15);
- }
- function Br(a) {
- this.b = BD(Qb(a), 47);
- }
- function eB() {
- this.q = new $wnd.Date();
- }
- function Zfb() {
- Zfb = ccb;
- Yfb = new jcb();
- }
- function Emb() {
- Emb = ccb;
- Dmb = new Fmb();
- }
- function Vhb(a) {
- return a.f.c + a.g.c;
- }
- function hnb(a, b) {
- return a.b.Hc(b);
- }
- function inb(a, b) {
- return a.b.Ic(b);
- }
- function knb(a, b) {
- return a.b.Qc(b);
- }
- function Dob(a, b) {
- return a.b.Hc(b);
- }
- function dob(a, b) {
- return a.c.uc(b);
- }
- function Rqb(a, b) {
- return a.a._b(b);
- }
- function fob(a, b) {
- return pb(a.c, b);
- }
- function jt(a, b) {
- return Mhb(a.b, b);
- }
- function Lp(a, b) {
- return a > b && b < Iie;
- }
- function Ryb(a, b) {
- return a.Gc(b), a;
- }
- function Syb(a, b) {
- return ye(a, b), a;
- }
- function sC(a) {
- return GB(), a ? FB : EB;
- }
- function Mqb(a) {
- Whb.call(this, a, 0);
- }
- function Pwb() {
- Qwb.call(this, null);
- }
- function yAb() {
- Vzb.call(this, null);
- }
- function Gqb(a) {
- this.c = a;
- Dqb(this);
- }
- function Psb() {
- Csb(this);
- Osb(this);
- }
- function MAb(a, b) {
- Tzb(a);
- a.a.Nb(b);
- }
- function Myb(a, b) {
- a.Gc(b);
- return a;
- }
- function qDb(a, b) {
- a.a.f = b;
- return a;
- }
- function wDb(a, b) {
- a.a.d = b;
- return a;
- }
- function xDb(a, b) {
- a.a.g = b;
- return a;
- }
- function yDb(a, b) {
- a.a.j = b;
- return a;
- }
- function BFb(a, b) {
- a.a.a = b;
- return a;
- }
- function CFb(a, b) {
- a.a.d = b;
- return a;
- }
- function DFb(a, b) {
- a.a.e = b;
- return a;
- }
- function EFb(a, b) {
- a.a.g = b;
- return a;
- }
- function oGb(a, b) {
- a.a.f = b;
- return a;
- }
- function TGb(a) {
- a.b = false;
- return a;
- }
- function Ltb() {
- Ltb = ccb;
- Ktb = new Otb();
- }
- function Utb() {
- Utb = ccb;
- Ttb = new Wtb();
- }
- function $xb() {
- $xb = ccb;
- Zxb = new byb();
- }
- function $Yb() {
- $Yb = ccb;
- ZYb = new dZb();
- }
- function cPb() {
- cPb = ccb;
- bPb = new dPb();
- }
- function EAb() {
- EAb = ccb;
- DAb = new PBb();
- }
- function a$b() {
- a$b = ccb;
- _Zb = new P$b();
- }
- function FDb() {
- FDb = ccb;
- EDb = new GDb();
- }
- function xUb() {
- xUb = ccb;
- wUb = new DUb();
- }
- function x2b() {
- x2b = ccb;
- w2b = new d7c();
- }
- function iVb() {
- iVb = ccb;
- hVb = new jVb();
- }
- function nVb() {
- nVb = ccb;
- mVb = new OVb();
- }
- function LWb() {
- LWb = ccb;
- KWb = new QWb();
- }
- function b4b() {
- b4b = ccb;
- a4b = new l4b();
- }
- function q9b() {
- q9b = ccb;
- p9b = new w9b();
- }
- function qgc() {
- qgc = ccb;
- pgc = new dic();
- }
- function Imc() {
- Imc = ccb;
- Hmc = new Wmc();
- }
- function GUc() {
- GUc = ccb;
- FUc = new j3c();
- }
- function i_c() {
- i_c = ccb;
- h_c = new k_c();
- }
- function s_c() {
- s_c = ccb;
- r_c = new t_c();
- }
- function R0c() {
- R0c = ccb;
- Q0c = new T0c();
- }
- function Vyc() {
- Vyc = ccb;
- Uyc = new Ved();
- }
- function DCc() {
- vCc();
- this.c = new Ji();
- }
- function k_c() {
- $r.call(this, Une, 0);
- }
- function r4c(a, b) {
- Xrb(a.c.b, b.c, b);
- }
- function s4c(a, b) {
- Xrb(a.c.c, b.b, b);
- }
- function B3c(a, b, c2) {
- Shb(a.d, b.f, c2);
- }
- function kKb(a, b, c2, d) {
- jKb(a, d, b, c2);
- }
- function E3b(a, b, c2, d) {
- J3b(d, a, b, c2);
- }
- function e9b(a, b, c2, d) {
- f9b(d, a, b, c2);
- }
- function g3c(a, b) {
- a.a = b.g;
- return a;
- }
- function DQd(a, b) {
- return qA(a.a, b);
- }
- function nQd(a) {
- return a.b ? a.b : a.a;
- }
- function $Oc(a) {
- return (a.c + a.a) / 2;
- }
- function Pgd() {
- Pgd = ccb;
- Ogd = new Ahd();
- }
- function AFd() {
- AFd = ccb;
- zFd = new BFd();
- }
- function tFd() {
- tFd = ccb;
- sFd = new vFd();
- }
- function EFd() {
- EFd = ccb;
- DFd = new GFd();
- }
- function yFd() {
- yFd = ccb;
- xFd = new oUd();
- }
- function JFd() {
- JFd = ccb;
- IFd = new cZd();
- }
- function nRd() {
- nRd = ccb;
- mRd = new u4d();
- }
- function LRd() {
- LRd = ccb;
- KRd = new y4d();
- }
- function g5d() {
- g5d = ccb;
- f5d = new h5d();
- }
- function Q6d() {
- Q6d = ccb;
- P6d = new U6d();
- }
- function pEd() {
- pEd = ccb;
- oEd = new Lqb();
- }
- function tZd() {
- tZd = ccb;
- rZd = new Rkb();
- }
- function Xge() {
- Xge = ccb;
- Wge = new dhe();
- }
- function Hz(a) {
- $wnd.clearTimeout(a);
- }
- function jw(a) {
- this.a = BD(Qb(a), 224);
- }
- function Lv(a) {
- return BD(a, 42).cd();
- }
- function sib(a) {
- return a.b < a.d.gc();
- }
- function Lpb(a, b) {
- return tqb(a.a, b);
- }
- function Dbb(a, b) {
- return ybb(a, b) > 0;
- }
- function Gbb(a, b) {
- return ybb(a, b) < 0;
- }
- function Crb(a, b) {
- return a.a.get(b);
- }
- function icb(b, a) {
- return a.split(b);
- }
- function Vrb(a, b) {
- return Mhb(a.e, b);
- }
- function Nvb(a) {
- return uCb(a), false;
- }
- function Rub(a) {
- Kub.call(this, a, 21);
- }
- function wcb(a, b) {
- Zy.call(this, a, b);
- }
- function mxb(a, b) {
- $r.call(this, a, b);
- }
- function Gyb(a, b) {
- $r.call(this, a, b);
- }
- function zx(a) {
- yx();
- Wn.call(this, a);
- }
- function zlb(a, b) {
- Dlb(a, a.length, b);
- }
- function Alb(a, b) {
- Flb(a, a.length, b);
- }
- function ABb(a, b, c2) {
- b.ud(a.a.Ge(c2));
- }
- function uBb(a, b, c2) {
- b.we(a.a.Fe(c2));
- }
- function GBb(a, b, c2) {
- b.td(a.a.Kb(c2));
- }
- function Zq(a, b, c2) {
- a.Mb(c2) && b.td(c2);
- }
- function aCb(a, b, c2) {
- a.splice(b, 0, c2);
- }
- function lDb(a, b) {
- return uqb(a.e, b);
- }
- function pjb(a, b) {
- this.d = a;
- this.e = b;
- }
- function kqb(a, b) {
- this.b = a;
- this.a = b;
- }
- function VBb(a, b) {
- this.b = a;
- this.a = b;
- }
- function BEb(a, b) {
- this.b = a;
- this.a = b;
- }
- function sBb(a, b) {
- this.a = a;
- this.b = b;
- }
- function yBb(a, b) {
- this.a = a;
- this.b = b;
- }
- function EBb(a, b) {
- this.a = a;
- this.b = b;
- }
- function KBb(a, b) {
- this.a = a;
- this.b = b;
- }
- function aDb(a, b) {
- this.a = a;
- this.b = b;
- }
- function tMb(a, b) {
- this.b = a;
- this.a = b;
- }
- function oOb(a, b) {
- this.b = a;
- this.a = b;
- }
- function SOb(a, b) {
- $r.call(this, a, b);
- }
- function SMb(a, b) {
- $r.call(this, a, b);
- }
- function NEb(a, b) {
- $r.call(this, a, b);
- }
- function VEb(a, b) {
- $r.call(this, a, b);
- }
- function sFb(a, b) {
- $r.call(this, a, b);
- }
- function hHb(a, b) {
- $r.call(this, a, b);
- }
- function OHb(a, b) {
- $r.call(this, a, b);
- }
- function FIb(a, b) {
- $r.call(this, a, b);
- }
- function wLb(a, b) {
- $r.call(this, a, b);
- }
- function YRb(a, b) {
- $r.call(this, a, b);
- }
- function zTb(a, b) {
- $r.call(this, a, b);
- }
- function rUb(a, b) {
- $r.call(this, a, b);
- }
- function oWb(a, b) {
- $r.call(this, a, b);
- }
- function SXb(a, b) {
- $r.call(this, a, b);
- }
- function k0b(a, b) {
- $r.call(this, a, b);
- }
- function z5b(a, b) {
- $r.call(this, a, b);
- }
- function T8b(a, b) {
- $r.call(this, a, b);
- }
- function ibc(a, b) {
- $r.call(this, a, b);
- }
- function Cec(a, b) {
- this.a = a;
- this.b = b;
- }
- function rfc(a, b) {
- this.a = a;
- this.b = b;
- }
- function Rfc(a, b) {
- this.a = a;
- this.b = b;
- }
- function Tfc(a, b) {
- this.a = a;
- this.b = b;
- }
- function bgc(a, b) {
- this.a = a;
- this.b = b;
- }
- function ngc(a, b) {
- this.a = a;
- this.b = b;
- }
- function Qhc(a, b) {
- this.a = a;
- this.b = b;
- }
- function $hc(a, b) {
- this.a = a;
- this.b = b;
- }
- function Z0b(a, b) {
- this.a = a;
- this.b = b;
- }
- function ZVb(a, b) {
- this.b = a;
- this.a = b;
- }
- function Dfc(a, b) {
- this.b = a;
- this.a = b;
- }
- function dgc(a, b) {
- this.b = a;
- this.a = b;
- }
- function Bmc(a, b) {
- this.b = a;
- this.a = b;
- }
- function cWb(a, b) {
- this.c = a;
- this.d = b;
- }
- function I$b(a, b) {
- this.e = a;
- this.d = b;
- }
- function Unc(a, b) {
- this.a = a;
- this.b = b;
- }
- function Oic(a, b) {
- this.b = b;
- this.c = a;
- }
- function Bjc(a, b) {
- $r.call(this, a, b);
- }
- function Yjc(a, b) {
- $r.call(this, a, b);
- }
- function Gkc(a, b) {
- $r.call(this, a, b);
- }
- function Bpc(a, b) {
- $r.call(this, a, b);
- }
- function Jpc(a, b) {
- $r.call(this, a, b);
- }
- function Tpc(a, b) {
- $r.call(this, a, b);
- }
- function cqc(a, b) {
- $r.call(this, a, b);
- }
- function oqc(a, b) {
- $r.call(this, a, b);
- }
- function yqc(a, b) {
- $r.call(this, a, b);
- }
- function Hqc(a, b) {
- $r.call(this, a, b);
- }
- function Uqc(a, b) {
- $r.call(this, a, b);
- }
- function arc(a, b) {
- $r.call(this, a, b);
- }
- function mrc(a, b) {
- $r.call(this, a, b);
- }
- function zrc(a, b) {
- $r.call(this, a, b);
- }
- function Prc(a, b) {
- $r.call(this, a, b);
- }
- function Yrc(a, b) {
- $r.call(this, a, b);
- }
- function fsc(a, b) {
- $r.call(this, a, b);
- }
- function nsc(a, b) {
- $r.call(this, a, b);
- }
- function nzc(a, b) {
- $r.call(this, a, b);
- }
- function zzc(a, b) {
- $r.call(this, a, b);
- }
- function Kzc(a, b) {
- $r.call(this, a, b);
- }
- function Xzc(a, b) {
- $r.call(this, a, b);
- }
- function Dtc(a, b) {
- $r.call(this, a, b);
- }
- function lAc(a, b) {
- $r.call(this, a, b);
- }
- function uAc(a, b) {
- $r.call(this, a, b);
- }
- function CAc(a, b) {
- $r.call(this, a, b);
- }
- function LAc(a, b) {
- $r.call(this, a, b);
- }
- function UAc(a, b) {
- $r.call(this, a, b);
- }
- function aBc(a, b) {
- $r.call(this, a, b);
- }
- function uBc(a, b) {
- $r.call(this, a, b);
- }
- function DBc(a, b) {
- $r.call(this, a, b);
- }
- function MBc(a, b) {
- $r.call(this, a, b);
- }
- function sGc(a, b) {
- $r.call(this, a, b);
- }
- function VIc(a, b) {
- $r.call(this, a, b);
- }
- function EIc(a, b) {
- this.b = a;
- this.a = b;
- }
- function qKc(a, b) {
- this.a = a;
- this.b = b;
- }
- function GKc(a, b) {
- this.a = a;
- this.b = b;
- }
- function lLc(a, b) {
- this.a = a;
- this.b = b;
- }
- function mMc(a, b) {
- this.a = a;
- this.b = b;
- }
- function fMc(a, b) {
- $r.call(this, a, b);
- }
- function ZLc(a, b) {
- $r.call(this, a, b);
- }
- function ZMc(a, b) {
- this.b = a;
- this.d = b;
- }
- function IOc(a, b) {
- $r.call(this, a, b);
- }
- function GQc(a, b) {
- $r.call(this, a, b);
- }
- function PQc(a, b) {
- this.a = a;
- this.b = b;
+ }
+ this.boundingRect.width = availableSpace.width - availableWidth;
+ this.boundingRect.height = availableSpace.height;
+ }
+ calculateSpace(availableSpace) {
+ if (this.axisPosition === "left" || this.axisPosition === "right") {
+ this.calculateSpaceIfDrawnVertical(availableSpace);
+ } else {
+ this.calculateSpaceIfDrawnHorizontally(availableSpace);
+ }
+ this.recalculateScale();
+ return {
+ width: this.boundingRect.width,
+ height: this.boundingRect.height
+ };
+ }
+ setBoundingBoxXY(point8) {
+ this.boundingRect.x = point8.x;
+ this.boundingRect.y = point8.y;
+ }
+ getDrawableElementsForLeftAxis() {
+ const drawableElement = [];
+ if (this.showAxisLine) {
+ const x5 = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;
+ drawableElement.push({
+ type: "path",
+ groupTexts: ["left-axis", "axisl-line"],
+ data: [
+ {
+ path: `M ${x5},${this.boundingRect.y} L ${x5},${this.boundingRect.y + this.boundingRect.height} `,
+ strokeFill: this.axisThemeConfig.axisLineColor,
+ strokeWidth: this.axisConfig.axisLineWidth
+ }
+ ]
+ });
+ }
+ if (this.showLabel) {
+ drawableElement.push({
+ type: "text",
+ groupTexts: ["left-axis", "label"],
+ data: this.getTickValues().map((tick) => ({
+ text: tick.toString(),
+ x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),
+ y: this.getScaleValue(tick),
+ fill: this.axisThemeConfig.labelColor,
+ fontSize: this.axisConfig.labelFontSize,
+ rotation: 0,
+ verticalPos: "middle",
+ horizontalPos: "right"
+ }))
+ });
+ }
+ if (this.showTick) {
+ const x5 = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);
+ drawableElement.push({
+ type: "path",
+ groupTexts: ["left-axis", "ticks"],
+ data: this.getTickValues().map((tick) => ({
+ path: `M ${x5},${this.getScaleValue(tick)} L ${x5 - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,
+ strokeFill: this.axisThemeConfig.tickColor,
+ strokeWidth: this.axisConfig.tickWidth
+ }))
+ });
+ }
+ if (this.showTitle) {
+ drawableElement.push({
+ type: "text",
+ groupTexts: ["left-axis", "title"],
+ data: [
+ {
+ text: this.title,
+ x: this.boundingRect.x + this.axisConfig.titlePadding,
+ y: this.boundingRect.y + this.boundingRect.height / 2,
+ fill: this.axisThemeConfig.titleColor,
+ fontSize: this.axisConfig.titleFontSize,
+ rotation: 270,
+ verticalPos: "top",
+ horizontalPos: "center"
+ }
+ ]
+ });
+ }
+ return drawableElement;
+ }
+ getDrawableElementsForBottomAxis() {
+ const drawableElement = [];
+ if (this.showAxisLine) {
+ const y5 = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;
+ drawableElement.push({
+ type: "path",
+ groupTexts: ["bottom-axis", "axis-line"],
+ data: [
+ {
+ path: `M ${this.boundingRect.x},${y5} L ${this.boundingRect.x + this.boundingRect.width},${y5}`,
+ strokeFill: this.axisThemeConfig.axisLineColor,
+ strokeWidth: this.axisConfig.axisLineWidth
+ }
+ ]
+ });
+ }
+ if (this.showLabel) {
+ drawableElement.push({
+ type: "text",
+ groupTexts: ["bottom-axis", "label"],
+ data: this.getTickValues().map((tick) => ({
+ text: tick.toString(),
+ x: this.getScaleValue(tick),
+ y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),
+ fill: this.axisThemeConfig.labelColor,
+ fontSize: this.axisConfig.labelFontSize,
+ rotation: 0,
+ verticalPos: "top",
+ horizontalPos: "center"
+ }))
+ });
+ }
+ if (this.showTick) {
+ const y5 = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);
+ drawableElement.push({
+ type: "path",
+ groupTexts: ["bottom-axis", "ticks"],
+ data: this.getTickValues().map((tick) => ({
+ path: `M ${this.getScaleValue(tick)},${y5} L ${this.getScaleValue(tick)},${y5 + this.axisConfig.tickLength}`,
+ strokeFill: this.axisThemeConfig.tickColor,
+ strokeWidth: this.axisConfig.tickWidth
+ }))
+ });
+ }
+ if (this.showTitle) {
+ drawableElement.push({
+ type: "text",
+ groupTexts: ["bottom-axis", "title"],
+ data: [
+ {
+ text: this.title,
+ x: this.range[0] + (this.range[1] - this.range[0]) / 2,
+ y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,
+ fill: this.axisThemeConfig.titleColor,
+ fontSize: this.axisConfig.titleFontSize,
+ rotation: 0,
+ verticalPos: "top",
+ horizontalPos: "center"
+ }
+ ]
+ });
+ }
+ return drawableElement;
+ }
+ getDrawableElementsForTopAxis() {
+ const drawableElement = [];
+ if (this.showAxisLine) {
+ const y5 = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;
+ drawableElement.push({
+ type: "path",
+ groupTexts: ["top-axis", "axis-line"],
+ data: [
+ {
+ path: `M ${this.boundingRect.x},${y5} L ${this.boundingRect.x + this.boundingRect.width},${y5}`,
+ strokeFill: this.axisThemeConfig.axisLineColor,
+ strokeWidth: this.axisConfig.axisLineWidth
+ }
+ ]
+ });
+ }
+ if (this.showLabel) {
+ drawableElement.push({
+ type: "text",
+ groupTexts: ["top-axis", "label"],
+ data: this.getTickValues().map((tick) => ({
+ text: tick.toString(),
+ x: this.getScaleValue(tick),
+ y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,
+ fill: this.axisThemeConfig.labelColor,
+ fontSize: this.axisConfig.labelFontSize,
+ rotation: 0,
+ verticalPos: "top",
+ horizontalPos: "center"
+ }))
+ });
+ }
+ if (this.showTick) {
+ const y5 = this.boundingRect.y;
+ drawableElement.push({
+ type: "path",
+ groupTexts: ["top-axis", "ticks"],
+ data: this.getTickValues().map((tick) => ({
+ path: `M ${this.getScaleValue(tick)},${y5 + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y5 + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,
+ strokeFill: this.axisThemeConfig.tickColor,
+ strokeWidth: this.axisConfig.tickWidth
+ }))
+ });
+ }
+ if (this.showTitle) {
+ drawableElement.push({
+ type: "text",
+ groupTexts: ["top-axis", "title"],
+ data: [
+ {
+ text: this.title,
+ x: this.boundingRect.x + this.boundingRect.width / 2,
+ y: this.boundingRect.y + this.axisConfig.titlePadding,
+ fill: this.axisThemeConfig.titleColor,
+ fontSize: this.axisConfig.titleFontSize,
+ rotation: 0,
+ verticalPos: "top",
+ horizontalPos: "center"
+ }
+ ]
+ });
+ }
+ return drawableElement;
+ }
+ getDrawableElements() {
+ if (this.axisPosition === "left") {
+ return this.getDrawableElementsForLeftAxis();
+ }
+ if (this.axisPosition === "right") {
+ throw Error("Drawing of right axis is not implemented");
+ }
+ if (this.axisPosition === "bottom") {
+ return this.getDrawableElementsForBottomAxis();
+ }
+ if (this.axisPosition === "top") {
+ return this.getDrawableElementsForTopAxis();
+ }
+ return [];
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/axis/bandAxis.ts
+ var BandAxis;
+ var init_bandAxis = __esm({
+ "src/diagrams/xychart/chartBuilder/components/axis/bandAxis.ts"() {
+ "use strict";
+ init_src32();
+ init_logger();
+ init_baseAxis();
+ BandAxis = class extends BaseAxis {
+ static {
+ __name(this, "BandAxis");
+ }
+ constructor(axisConfig, axisThemeConfig, categories, title2, textDimensionCalculator) {
+ super(axisConfig, title2, textDimensionCalculator, axisThemeConfig);
+ this.categories = categories;
+ this.scale = band().domain(this.categories).range(this.getRange());
+ }
+ setRange(range3) {
+ super.setRange(range3);
+ }
+ recalculateScale() {
+ this.scale = band().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);
+ log.trace("BandAxis axis final categories, range: ", this.categories, this.getRange());
+ }
+ getTickValues() {
+ return this.categories;
+ }
+ getScaleValue(value2) {
+ return this.scale(value2) ?? this.getRange()[0];
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/axis/linearAxis.ts
+ var LinearAxis;
+ var init_linearAxis = __esm({
+ "src/diagrams/xychart/chartBuilder/components/axis/linearAxis.ts"() {
+ "use strict";
+ init_src32();
+ init_baseAxis();
+ LinearAxis = class extends BaseAxis {
+ static {
+ __name(this, "LinearAxis");
+ }
+ constructor(axisConfig, axisThemeConfig, domain, title2, textDimensionCalculator) {
+ super(axisConfig, title2, textDimensionCalculator, axisThemeConfig);
+ this.domain = domain;
+ this.scale = linear2().domain(this.domain).range(this.getRange());
+ }
+ getTickValues() {
+ return this.scale.ticks();
+ }
+ recalculateScale() {
+ const domain = [...this.domain];
+ if (this.axisPosition === "left") {
+ domain.reverse();
+ }
+ this.scale = linear2().domain(domain).range(this.getRange());
+ }
+ getScaleValue(value2) {
+ return this.scale(value2);
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/axis/index.ts
+ function getAxis(data5, axisConfig, axisThemeConfig, tmpSVGGroup2) {
+ const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);
+ if (isBandAxisData(data5)) {
+ return new BandAxis(
+ axisConfig,
+ axisThemeConfig,
+ data5.categories,
+ data5.title,
+ textDimensionCalculator
+ );
+ }
+ return new LinearAxis(
+ axisConfig,
+ axisThemeConfig,
+ [data5.min, data5.max],
+ data5.title,
+ textDimensionCalculator
+ );
+ }
+ var init_axis2 = __esm({
+ "src/diagrams/xychart/chartBuilder/components/axis/index.ts"() {
+ "use strict";
+ init_interfaces();
+ init_textDimensionCalculator();
+ init_bandAxis();
+ init_linearAxis();
+ __name(getAxis, "getAxis");
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/chartTitle.ts
+ function getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {
+ const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);
+ return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);
+ }
+ var ChartTitle;
+ var init_chartTitle = __esm({
+ "src/diagrams/xychart/chartBuilder/components/chartTitle.ts"() {
+ "use strict";
+ init_textDimensionCalculator();
+ ChartTitle = class {
+ constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) {
+ this.textDimensionCalculator = textDimensionCalculator;
+ this.chartConfig = chartConfig;
+ this.chartData = chartData;
+ this.chartThemeConfig = chartThemeConfig;
+ this.boundingRect = {
+ x: 0,
+ y: 0,
+ width: 0,
+ height: 0
+ };
+ this.showChartTitle = false;
+ }
+ static {
+ __name(this, "ChartTitle");
+ }
+ setBoundingBoxXY(point8) {
+ this.boundingRect.x = point8.x;
+ this.boundingRect.y = point8.y;
+ }
+ calculateSpace(availableSpace) {
+ const titleDimension = this.textDimensionCalculator.getMaxDimension(
+ [this.chartData.title],
+ this.chartConfig.titleFontSize
+ );
+ const widthRequired = Math.max(titleDimension.width, availableSpace.width);
+ const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;
+ if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {
+ this.boundingRect.width = widthRequired;
+ this.boundingRect.height = heightRequired;
+ this.showChartTitle = true;
+ }
+ return {
+ width: this.boundingRect.width,
+ height: this.boundingRect.height
+ };
+ }
+ getDrawableElements() {
+ const drawableElem = [];
+ if (this.showChartTitle) {
+ drawableElem.push({
+ groupTexts: ["chart-title"],
+ type: "text",
+ data: [
+ {
+ fontSize: this.chartConfig.titleFontSize,
+ text: this.chartData.title,
+ verticalPos: "middle",
+ horizontalPos: "center",
+ x: this.boundingRect.x + this.boundingRect.width / 2,
+ y: this.boundingRect.y + this.boundingRect.height / 2,
+ fill: this.chartThemeConfig.titleColor,
+ rotation: 0
+ }
+ ]
+ });
+ }
+ return drawableElem;
+ }
+ };
+ __name(getChartTitleComponent, "getChartTitleComponent");
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/plot/linePlot.ts
+ var LinePlot;
+ var init_linePlot = __esm({
+ "src/diagrams/xychart/chartBuilder/components/plot/linePlot.ts"() {
+ "use strict";
+ init_src32();
+ LinePlot = class {
+ constructor(plotData, xAxis, yAxis, orientation, plotIndex2) {
+ this.plotData = plotData;
+ this.xAxis = xAxis;
+ this.yAxis = yAxis;
+ this.orientation = orientation;
+ this.plotIndex = plotIndex2;
+ }
+ static {
+ __name(this, "LinePlot");
+ }
+ getDrawableElement() {
+ const finalData = this.plotData.data.map((d2) => [
+ this.xAxis.getScaleValue(d2[0]),
+ this.yAxis.getScaleValue(d2[1])
+ ]);
+ let path4;
+ if (this.orientation === "horizontal") {
+ path4 = line_default().y((d2) => d2[0]).x((d2) => d2[1])(finalData);
+ } else {
+ path4 = line_default().x((d2) => d2[0]).y((d2) => d2[1])(finalData);
+ }
+ if (!path4) {
+ return [];
+ }
+ return [
+ {
+ groupTexts: ["plot", `line-plot-${this.plotIndex}`],
+ type: "path",
+ data: [
+ {
+ path: path4,
+ strokeFill: this.plotData.strokeFill,
+ strokeWidth: this.plotData.strokeWidth
+ }
+ ]
}
- function RQc(a, b) {
- this.a = a;
- this.b = b;
+ ];
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/plot/barPlot.ts
+ var BarPlot;
+ var init_barPlot = __esm({
+ "src/diagrams/xychart/chartBuilder/components/plot/barPlot.ts"() {
+ "use strict";
+ BarPlot = class {
+ constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) {
+ this.barData = barData;
+ this.boundingRect = boundingRect;
+ this.xAxis = xAxis;
+ this.yAxis = yAxis;
+ this.orientation = orientation;
+ this.plotIndex = plotIndex2;
+ }
+ static {
+ __name(this, "BarPlot");
+ }
+ getDrawableElement() {
+ const finalData = this.barData.data.map((d2) => [
+ this.xAxis.getScaleValue(d2[0]),
+ this.yAxis.getScaleValue(d2[1])
+ ]);
+ const barPaddingPercent = 0.05;
+ const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);
+ const barWidthHalf = barWidth / 2;
+ if (this.orientation === "horizontal") {
+ return [
+ {
+ groupTexts: ["plot", `bar-plot-${this.plotIndex}`],
+ type: "rect",
+ data: finalData.map((data5) => ({
+ x: this.boundingRect.x,
+ y: data5[0] - barWidthHalf,
+ height: barWidth,
+ width: data5[1] - this.boundingRect.x,
+ fill: this.barData.fill,
+ strokeWidth: 0,
+ strokeFill: this.barData.fill
+ }))
+ }
+ ];
+ }
+ return [
+ {
+ groupTexts: ["plot", `bar-plot-${this.plotIndex}`],
+ type: "rect",
+ data: finalData.map((data5) => ({
+ x: data5[0] - barWidthHalf,
+ y: data5[1],
+ width: barWidth,
+ height: this.boundingRect.y + this.boundingRect.height - data5[1],
+ fill: this.barData.fill,
+ strokeWidth: 0,
+ strokeFill: this.barData.fill
+ }))
}
- function ARc(a, b) {
- $r.call(this, a, b);
+ ];
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/components/plot/index.ts
+ function getPlotComponent(chartConfig, chartData, chartThemeConfig) {
+ return new BasePlot(chartConfig, chartData, chartThemeConfig);
+ }
+ var BasePlot;
+ var init_plot = __esm({
+ "src/diagrams/xychart/chartBuilder/components/plot/index.ts"() {
+ "use strict";
+ init_linePlot();
+ init_barPlot();
+ BasePlot = class {
+ constructor(chartConfig, chartData, chartThemeConfig) {
+ this.chartConfig = chartConfig;
+ this.chartData = chartData;
+ this.chartThemeConfig = chartThemeConfig;
+ this.boundingRect = {
+ x: 0,
+ y: 0,
+ width: 0,
+ height: 0
+ };
+ }
+ static {
+ __name(this, "BasePlot");
+ }
+ setAxes(xAxis, yAxis) {
+ this.xAxis = xAxis;
+ this.yAxis = yAxis;
+ }
+ setBoundingBoxXY(point8) {
+ this.boundingRect.x = point8.x;
+ this.boundingRect.y = point8.y;
+ }
+ calculateSpace(availableSpace) {
+ this.boundingRect.width = availableSpace.width;
+ this.boundingRect.height = availableSpace.height;
+ return {
+ width: this.boundingRect.width,
+ height: this.boundingRect.height
+ };
+ }
+ getDrawableElements() {
+ if (!(this.xAxis && this.yAxis)) {
+ throw Error("Axes must be passed to render Plots");
+ }
+ const drawableElem = [];
+ for (const [i2, plot] of this.chartData.plots.entries()) {
+ switch (plot.type) {
+ case "line":
+ {
+ const linePlot = new LinePlot(
+ plot,
+ this.xAxis,
+ this.yAxis,
+ this.chartConfig.chartOrientation,
+ i2
+ );
+ drawableElem.push(...linePlot.getDrawableElement());
+ }
+ break;
+ case "bar":
+ {
+ const barPlot = new BarPlot(
+ plot,
+ this.boundingRect,
+ this.xAxis,
+ this.yAxis,
+ this.chartConfig.chartOrientation,
+ i2
+ );
+ drawableElem.push(...barPlot.getDrawableElement());
+ }
+ break;
}
- function rSc(a, b) {
- $r.call(this, a, b);
+ }
+ return drawableElem;
+ }
+ };
+ __name(getPlotComponent, "getPlotComponent");
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/orchestrator.ts
+ var Orchestrator;
+ var init_orchestrator = __esm({
+ "src/diagrams/xychart/chartBuilder/orchestrator.ts"() {
+ "use strict";
+ init_axis2();
+ init_chartTitle();
+ init_plot();
+ init_interfaces();
+ Orchestrator = class {
+ constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {
+ this.chartConfig = chartConfig;
+ this.chartData = chartData;
+ this.componentStore = {
+ title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),
+ plot: getPlotComponent(chartConfig, chartData, chartThemeConfig),
+ xAxis: getAxis(
+ chartData.xAxis,
+ chartConfig.xAxis,
+ {
+ titleColor: chartThemeConfig.xAxisTitleColor,
+ labelColor: chartThemeConfig.xAxisLabelColor,
+ tickColor: chartThemeConfig.xAxisTickColor,
+ axisLineColor: chartThemeConfig.xAxisLineColor
+ },
+ tmpSVGGroup2
+ ),
+ yAxis: getAxis(
+ chartData.yAxis,
+ chartConfig.yAxis,
+ {
+ titleColor: chartThemeConfig.yAxisTitleColor,
+ labelColor: chartThemeConfig.yAxisLabelColor,
+ tickColor: chartThemeConfig.yAxisTickColor,
+ axisLineColor: chartThemeConfig.yAxisLineColor
+ },
+ tmpSVGGroup2
+ )
+ };
+ }
+ static {
+ __name(this, "Orchestrator");
+ }
+ calculateVerticalSpace() {
+ let availableWidth = this.chartConfig.width;
+ let availableHeight = this.chartConfig.height;
+ let plotX = 0;
+ let plotY = 0;
+ let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);
+ let chartHeight = Math.floor(
+ availableHeight * this.chartConfig.plotReservedSpacePercent / 100
+ );
+ let spaceUsed = this.componentStore.plot.calculateSpace({
+ width: chartWidth,
+ height: chartHeight
+ });
+ availableWidth -= spaceUsed.width;
+ availableHeight -= spaceUsed.height;
+ spaceUsed = this.componentStore.title.calculateSpace({
+ width: this.chartConfig.width,
+ height: availableHeight
+ });
+ plotY = spaceUsed.height;
+ availableHeight -= spaceUsed.height;
+ this.componentStore.xAxis.setAxisPosition("bottom");
+ spaceUsed = this.componentStore.xAxis.calculateSpace({
+ width: availableWidth,
+ height: availableHeight
+ });
+ availableHeight -= spaceUsed.height;
+ this.componentStore.yAxis.setAxisPosition("left");
+ spaceUsed = this.componentStore.yAxis.calculateSpace({
+ width: availableWidth,
+ height: availableHeight
+ });
+ plotX = spaceUsed.width;
+ availableWidth -= spaceUsed.width;
+ if (availableWidth > 0) {
+ chartWidth += availableWidth;
+ availableWidth = 0;
+ }
+ if (availableHeight > 0) {
+ chartHeight += availableHeight;
+ availableHeight = 0;
+ }
+ this.componentStore.plot.calculateSpace({
+ width: chartWidth,
+ height: chartHeight
+ });
+ this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });
+ this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]);
+ this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight });
+ this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]);
+ this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY });
+ if (this.chartData.plots.some((p3) => isBarPlot(p3))) {
+ this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();
+ }
+ }
+ calculateHorizontalSpace() {
+ let availableWidth = this.chartConfig.width;
+ let availableHeight = this.chartConfig.height;
+ let titleYEnd = 0;
+ let plotX = 0;
+ let plotY = 0;
+ let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);
+ let chartHeight = Math.floor(
+ availableHeight * this.chartConfig.plotReservedSpacePercent / 100
+ );
+ let spaceUsed = this.componentStore.plot.calculateSpace({
+ width: chartWidth,
+ height: chartHeight
+ });
+ availableWidth -= spaceUsed.width;
+ availableHeight -= spaceUsed.height;
+ spaceUsed = this.componentStore.title.calculateSpace({
+ width: this.chartConfig.width,
+ height: availableHeight
+ });
+ titleYEnd = spaceUsed.height;
+ availableHeight -= spaceUsed.height;
+ this.componentStore.xAxis.setAxisPosition("left");
+ spaceUsed = this.componentStore.xAxis.calculateSpace({
+ width: availableWidth,
+ height: availableHeight
+ });
+ availableWidth -= spaceUsed.width;
+ plotX = spaceUsed.width;
+ this.componentStore.yAxis.setAxisPosition("top");
+ spaceUsed = this.componentStore.yAxis.calculateSpace({
+ width: availableWidth,
+ height: availableHeight
+ });
+ availableHeight -= spaceUsed.height;
+ plotY = titleYEnd + spaceUsed.height;
+ if (availableWidth > 0) {
+ chartWidth += availableWidth;
+ availableWidth = 0;
+ }
+ if (availableHeight > 0) {
+ chartHeight += availableHeight;
+ availableHeight = 0;
+ }
+ this.componentStore.plot.calculateSpace({
+ width: chartWidth,
+ height: chartHeight
+ });
+ this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });
+ this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]);
+ this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd });
+ this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]);
+ this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY });
+ if (this.chartData.plots.some((p3) => isBarPlot(p3))) {
+ this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();
+ }
+ }
+ calculateSpace() {
+ if (this.chartConfig.chartOrientation === "horizontal") {
+ this.calculateHorizontalSpace();
+ } else {
+ this.calculateVerticalSpace();
+ }
+ }
+ getDrawableElement() {
+ this.calculateSpace();
+ const drawableElem = [];
+ this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);
+ for (const component2 of Object.values(this.componentStore)) {
+ drawableElem.push(...component2.getDrawableElements());
+ }
+ return drawableElem;
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/chartBuilder/index.ts
+ var XYChartBuilder;
+ var init_chartBuilder = __esm({
+ "src/diagrams/xychart/chartBuilder/index.ts"() {
+ "use strict";
+ init_orchestrator();
+ XYChartBuilder = class {
+ static {
+ __name(this, "XYChartBuilder");
+ }
+ static build(config6, chartData, chartThemeConfig, tmpSVGGroup2) {
+ const orchestrator = new Orchestrator(config6, chartData, chartThemeConfig, tmpSVGGroup2);
+ return orchestrator.getDrawableElement();
+ }
+ };
+ }
+ });
+
+ // src/diagrams/xychart/xychartDb.ts
+ function getChartDefaultThemeConfig() {
+ const defaultThemeVariables2 = getThemeVariables3();
+ const config6 = getConfig();
+ return cleanAndMerge(defaultThemeVariables2.xyChart, config6.themeVariables.xyChart);
+ }
+ function getChartDefaultConfig() {
+ const config6 = getConfig();
+ return cleanAndMerge(
+ defaultConfig_default.xyChart,
+ config6.xyChart
+ );
+ }
+ function getChartDefaultData() {
+ return {
+ yAxis: {
+ type: "linear",
+ title: "",
+ min: Infinity,
+ max: -Infinity
+ },
+ xAxis: {
+ type: "band",
+ title: "",
+ categories: []
+ },
+ title: "",
+ plots: []
+ };
+ }
+ function textSanitizer2(text2) {
+ const config6 = getConfig();
+ return sanitizeText(text2.trim(), config6);
+ }
+ function setTmpSVGG(SVGG) {
+ tmpSVGGroup = SVGG;
+ }
+ function setOrientation(orientation) {
+ if (orientation === "horizontal") {
+ xyChartConfig.chartOrientation = "horizontal";
+ } else {
+ xyChartConfig.chartOrientation = "vertical";
+ }
+ }
+ function setXAxisTitle(title2) {
+ xyChartData.xAxis.title = textSanitizer2(title2.text);
+ }
+ function setXAxisRangeData(min9, max10) {
+ xyChartData.xAxis = { type: "linear", title: xyChartData.xAxis.title, min: min9, max: max10 };
+ hasSetXAxis = true;
+ }
+ function setXAxisBand(categories) {
+ xyChartData.xAxis = {
+ type: "band",
+ title: xyChartData.xAxis.title,
+ categories: categories.map((c3) => textSanitizer2(c3.text))
+ };
+ hasSetXAxis = true;
+ }
+ function setYAxisTitle(title2) {
+ xyChartData.yAxis.title = textSanitizer2(title2.text);
+ }
+ function setYAxisRangeData(min9, max10) {
+ xyChartData.yAxis = { type: "linear", title: xyChartData.yAxis.title, min: min9, max: max10 };
+ hasSetYAxis = true;
+ }
+ function setYAxisRangeFromPlotData(data5) {
+ const minValue = Math.min(...data5);
+ const maxValue = Math.max(...data5);
+ const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity;
+ const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity;
+ xyChartData.yAxis = {
+ type: "linear",
+ title: xyChartData.yAxis.title,
+ min: Math.min(prevMinValue, minValue),
+ max: Math.max(prevMaxValue, maxValue)
+ };
+ }
+ function transformDataWithoutCategory(data5) {
+ let retData = [];
+ if (data5.length === 0) {
+ return retData;
+ }
+ if (!hasSetXAxis) {
+ const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity;
+ const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity;
+ setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data5.length));
+ }
+ if (!hasSetYAxis) {
+ setYAxisRangeFromPlotData(data5);
+ }
+ if (isBandAxisData(xyChartData.xAxis)) {
+ retData = xyChartData.xAxis.categories.map((c3, i2) => [c3, data5[i2]]);
+ }
+ if (isLinearAxisData(xyChartData.xAxis)) {
+ const min9 = xyChartData.xAxis.min;
+ const max10 = xyChartData.xAxis.max;
+ const step3 = (max10 - min9) / (data5.length - 1);
+ const categories = [];
+ for (let i2 = min9; i2 <= max10; i2 += step3) {
+ categories.push(`${i2}`);
+ }
+ retData = categories.map((c3, i2) => [c3, data5[i2]]);
+ }
+ return retData;
+ }
+ function getPlotColorFromPalette(plotIndex2) {
+ return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length];
+ }
+ function setLineData(title2, data5) {
+ const plotData = transformDataWithoutCategory(data5);
+ xyChartData.plots.push({
+ type: "line",
+ strokeFill: getPlotColorFromPalette(plotIndex),
+ strokeWidth: 2,
+ data: plotData
+ });
+ plotIndex++;
+ }
+ function setBarData(title2, data5) {
+ const plotData = transformDataWithoutCategory(data5);
+ xyChartData.plots.push({
+ type: "bar",
+ fill: getPlotColorFromPalette(plotIndex),
+ data: plotData
+ });
+ plotIndex++;
+ }
+ function getDrawableElem() {
+ if (xyChartData.plots.length === 0) {
+ throw Error("No Plot to render, please provide a plot with some data");
+ }
+ xyChartData.title = getDiagramTitle();
+ return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup);
+ }
+ function getChartThemeConfig() {
+ return xyChartThemeConfig;
+ }
+ function getChartConfig() {
+ return xyChartConfig;
+ }
+ var plotIndex, tmpSVGGroup, xyChartConfig, xyChartThemeConfig, xyChartData, plotColorPalette, hasSetXAxis, hasSetYAxis, clear15, xychartDb_default;
+ var init_xychartDb = __esm({
+ "src/diagrams/xychart/xychartDb.ts"() {
+ "use strict";
+ init_config();
+ init_defaultConfig();
+ init_theme_default();
+ init_utils2();
+ init_common();
+ init_commonDb();
+ init_chartBuilder();
+ init_interfaces();
+ plotIndex = 0;
+ xyChartConfig = getChartDefaultConfig();
+ xyChartThemeConfig = getChartDefaultThemeConfig();
+ xyChartData = getChartDefaultData();
+ plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color2) => color2.trim());
+ hasSetXAxis = false;
+ hasSetYAxis = false;
+ __name(getChartDefaultThemeConfig, "getChartDefaultThemeConfig");
+ __name(getChartDefaultConfig, "getChartDefaultConfig");
+ __name(getChartDefaultData, "getChartDefaultData");
+ __name(textSanitizer2, "textSanitizer");
+ __name(setTmpSVGG, "setTmpSVGG");
+ __name(setOrientation, "setOrientation");
+ __name(setXAxisTitle, "setXAxisTitle");
+ __name(setXAxisRangeData, "setXAxisRangeData");
+ __name(setXAxisBand, "setXAxisBand");
+ __name(setYAxisTitle, "setYAxisTitle");
+ __name(setYAxisRangeData, "setYAxisRangeData");
+ __name(setYAxisRangeFromPlotData, "setYAxisRangeFromPlotData");
+ __name(transformDataWithoutCategory, "transformDataWithoutCategory");
+ __name(getPlotColorFromPalette, "getPlotColorFromPalette");
+ __name(setLineData, "setLineData");
+ __name(setBarData, "setBarData");
+ __name(getDrawableElem, "getDrawableElem");
+ __name(getChartThemeConfig, "getChartThemeConfig");
+ __name(getChartConfig, "getChartConfig");
+ clear15 = /* @__PURE__ */ __name(function() {
+ clear();
+ plotIndex = 0;
+ xyChartConfig = getChartDefaultConfig();
+ xyChartData = getChartDefaultData();
+ xyChartThemeConfig = getChartDefaultThemeConfig();
+ plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color2) => color2.trim());
+ hasSetXAxis = false;
+ hasSetYAxis = false;
+ }, "clear");
+ xychartDb_default = {
+ getDrawableElem,
+ clear: clear15,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ getAccDescription,
+ setAccDescription,
+ setOrientation,
+ setXAxisTitle,
+ setXAxisRangeData,
+ setXAxisBand,
+ setYAxisTitle,
+ setYAxisRangeData,
+ setLineData,
+ setBarData,
+ setTmpSVGG,
+ getChartThemeConfig,
+ getChartConfig
+ };
+ }
+ });
+
+ // src/diagrams/xychart/xychartRenderer.ts
+ var draw9, xychartRenderer_default;
+ var init_xychartRenderer = __esm({
+ "src/diagrams/xychart/xychartRenderer.ts"() {
+ "use strict";
+ init_logger();
+ init_selectSvgElement();
+ init_setupGraphViewbox();
+ draw9 = /* @__PURE__ */ __name((txt, id27, _version, diagObj) => {
+ const db8 = diagObj.db;
+ const themeConfig = db8.getChartThemeConfig();
+ const chartConfig = db8.getChartConfig();
+ function getDominantBaseLine(horizontalPos) {
+ return horizontalPos === "top" ? "text-before-edge" : "middle";
+ }
+ __name(getDominantBaseLine, "getDominantBaseLine");
+ function getTextAnchor(verticalPos) {
+ return verticalPos === "left" ? "start" : verticalPos === "right" ? "end" : "middle";
+ }
+ __name(getTextAnchor, "getTextAnchor");
+ function getTextTransformation(data5) {
+ return `translate(${data5.x}, ${data5.y}) rotate(${data5.rotation || 0})`;
+ }
+ __name(getTextTransformation, "getTextTransformation");
+ log.debug("Rendering xychart chart\n" + txt);
+ const svg = selectSvgElement(id27);
+ const group2 = svg.append("g").attr("class", "main");
+ const background = group2.append("rect").attr("width", chartConfig.width).attr("height", chartConfig.height).attr("class", "background");
+ configureSvgSize(svg, chartConfig.height, chartConfig.width, true);
+ svg.attr("viewBox", `0 0 ${chartConfig.width} ${chartConfig.height}`);
+ background.attr("fill", themeConfig.backgroundColor);
+ db8.setTmpSVGG(svg.append("g").attr("class", "mermaid-tmp-group"));
+ const shapes5 = db8.getDrawableElem();
+ const groups = {};
+ function getGroup(gList) {
+ let elem = group2;
+ let prefix = "";
+ for (const [i2] of gList.entries()) {
+ let parent4 = group2;
+ if (i2 > 0 && groups[prefix]) {
+ parent4 = groups[prefix];
+ }
+ prefix += gList[i2];
+ elem = groups[prefix];
+ if (!elem) {
+ elem = groups[prefix] = parent4.append("g").attr("class", gList[i2]);
+ }
+ }
+ return elem;
+ }
+ __name(getGroup, "getGroup");
+ for (const shape of shapes5) {
+ if (shape.data.length === 0) {
+ continue;
+ }
+ const shapeGroup = getGroup(shape.groupTexts);
+ switch (shape.type) {
+ case "rect":
+ shapeGroup.selectAll("rect").data(shape.data).enter().append("rect").attr("x", (data5) => data5.x).attr("y", (data5) => data5.y).attr("width", (data5) => data5.width).attr("height", (data5) => data5.height).attr("fill", (data5) => data5.fill).attr("stroke", (data5) => data5.strokeFill).attr("stroke-width", (data5) => data5.strokeWidth);
+ break;
+ case "text":
+ shapeGroup.selectAll("text").data(shape.data).enter().append("text").attr("x", 0).attr("y", 0).attr("fill", (data5) => data5.fill).attr("font-size", (data5) => data5.fontSize).attr("dominant-baseline", (data5) => getDominantBaseLine(data5.verticalPos)).attr("text-anchor", (data5) => getTextAnchor(data5.horizontalPos)).attr("transform", (data5) => getTextTransformation(data5)).text((data5) => data5.text);
+ break;
+ case "path":
+ shapeGroup.selectAll("path").data(shape.data).enter().append("path").attr("d", (data5) => data5.path).attr("fill", (data5) => data5.fill ? data5.fill : "none").attr("stroke", (data5) => data5.strokeFill).attr("stroke-width", (data5) => data5.strokeWidth);
+ break;
+ }
+ }
+ }, "draw");
+ xychartRenderer_default = {
+ draw: draw9
+ };
+ }
+ });
+
+ // src/diagrams/xychart/xychartDiagram.ts
+ var xychartDiagram_exports = {};
+ __export(xychartDiagram_exports, {
+ diagram: () => diagram9
+ });
+ var diagram9;
+ var init_xychartDiagram = __esm({
+ "src/diagrams/xychart/xychartDiagram.ts"() {
+ "use strict";
+ init_xychart();
+ init_xychartDb();
+ init_xychartRenderer();
+ diagram9 = {
+ parser: xychart_default,
+ db: xychartDb_default,
+ renderer: xychartRenderer_default
+ };
+ }
+ });
+
+ // src/diagrams/requirement/parser/requirementDiagram.jison
+ var parser11, requirementDiagram_default;
+ var init_requirementDiagram = __esm({
+ "src/diagrams/requirement/parser/requirementDiagram.jison"() {
+ "use strict";
+ parser11 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [5, 6, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], $V5 = [1, 18], $V6 = [2, 7], $V7 = [1, 22], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 20], $Ve = [1, 28], $Vf = [1, 29], $Vg = [62, 63], $Vh = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 51, 53, 62, 63], $Vi = [1, 47], $Vj = [1, 48], $Vk = [1, 49], $Vl = [1, 50], $Vm = [1, 51], $Vn = [1, 52], $Vo = [1, 53], $Vp = [53, 54], $Vq = [1, 64], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 65], $Vw = [1, 69], $Vx = [1, 70], $Vy = [1, 67], $Vz = [1, 68], $VA = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "acc_title": 9, "acc_title_value": 10, "acc_descr": 11, "acc_descr_value": 12, "acc_descr_multiline_value": 13, "requirementDef": 14, "elementDef": 15, "relationshipDef": 16, "requirementType": 17, "requirementName": 18, "STRUCT_START": 19, "requirementBody": 20, "ID": 21, "COLONSEP": 22, "id": 23, "TEXT": 24, "text": 25, "RISK": 26, "riskLevel": 27, "VERIFYMTHD": 28, "verifyType": 29, "STRUCT_STOP": 30, "REQUIREMENT": 31, "FUNCTIONAL_REQUIREMENT": 32, "INTERFACE_REQUIREMENT": 33, "PERFORMANCE_REQUIREMENT": 34, "PHYSICAL_REQUIREMENT": 35, "DESIGN_CONSTRAINT": 36, "LOW_RISK": 37, "MED_RISK": 38, "HIGH_RISK": 39, "VERIFY_ANALYSIS": 40, "VERIFY_DEMONSTRATION": 41, "VERIFY_INSPECTION": 42, "VERIFY_TEST": 43, "ELEMENT": 44, "elementName": 45, "elementBody": 46, "TYPE": 47, "type": 48, "DOCREF": 49, "ref": 50, "END_ARROW_L": 51, "relationship": 52, "LINE": 53, "END_ARROW_R": 54, "CONTAINS": 55, "COPIES": 56, "DERIVES": 57, "SATISFIES": 58, "VERIFIES": 59, "REFINES": 60, "TRACES": 61, "unqString": 62, "qString": 63, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 9: "acc_title", 10: "acc_title_value", 11: "acc_descr", 12: "acc_descr_value", 13: "acc_descr_multiline_value", 19: "STRUCT_START", 21: "ID", 22: "COLONSEP", 24: "TEXT", 26: "RISK", 28: "VERIFYMTHD", 30: "STRUCT_STOP", 31: "REQUIREMENT", 32: "FUNCTIONAL_REQUIREMENT", 33: "INTERFACE_REQUIREMENT", 34: "PERFORMANCE_REQUIREMENT", 35: "PHYSICAL_REQUIREMENT", 36: "DESIGN_CONSTRAINT", 37: "LOW_RISK", 38: "MED_RISK", 39: "HIGH_RISK", 40: "VERIFY_ANALYSIS", 41: "VERIFY_DEMONSTRATION", 42: "VERIFY_INSPECTION", 43: "VERIFY_TEST", 44: "ELEMENT", 47: "TYPE", 49: "DOCREF", 51: "END_ARROW_L", 53: "LINE", 54: "END_ARROW_R", 55: "CONTAINS", 56: "COPIES", 57: "DERIVES", 58: "SATISFIES", 59: "VERIFIES", 60: "REFINES", 61: "TRACES", 62: "unqString", 63: "qString" },
+ productions_: [0, [3, 3], [3, 2], [3, 4], [4, 2], [4, 2], [4, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [14, 5], [20, 5], [20, 5], [20, 5], [20, 5], [20, 2], [20, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [27, 1], [27, 1], [27, 1], [29, 1], [29, 1], [29, 1], [29, 1], [15, 5], [46, 5], [46, 5], [46, 2], [46, 1], [16, 5], [16, 5], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [18, 1], [18, 1], [23, 1], [23, 1], [25, 1], [25, 1], [45, 1], [45, 1], [48, 1], [48, 1], [50, 1], [50, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 5:
+ case 6:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 7:
+ this.$ = [];
+ break;
+ case 13:
+ yy.addRequirement($$[$0 - 3], $$[$0 - 4]);
+ break;
+ case 14:
+ yy.setNewReqId($$[$0 - 2]);
+ break;
+ case 15:
+ yy.setNewReqText($$[$0 - 2]);
+ break;
+ case 16:
+ yy.setNewReqRisk($$[$0 - 2]);
+ break;
+ case 17:
+ yy.setNewReqVerifyMethod($$[$0 - 2]);
+ break;
+ case 20:
+ this.$ = yy.RequirementType.REQUIREMENT;
+ break;
+ case 21:
+ this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;
+ break;
+ case 22:
+ this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;
+ break;
+ case 23:
+ this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;
+ break;
+ case 24:
+ this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;
+ break;
+ case 25:
+ this.$ = yy.RequirementType.DESIGN_CONSTRAINT;
+ break;
+ case 26:
+ this.$ = yy.RiskLevel.LOW_RISK;
+ break;
+ case 27:
+ this.$ = yy.RiskLevel.MED_RISK;
+ break;
+ case 28:
+ this.$ = yy.RiskLevel.HIGH_RISK;
+ break;
+ case 29:
+ this.$ = yy.VerifyType.VERIFY_ANALYSIS;
+ break;
+ case 30:
+ this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;
+ break;
+ case 31:
+ this.$ = yy.VerifyType.VERIFY_INSPECTION;
+ break;
+ case 32:
+ this.$ = yy.VerifyType.VERIFY_TEST;
+ break;
+ case 33:
+ yy.addElement($$[$0 - 3]);
+ break;
+ case 34:
+ yy.setNewElementType($$[$0 - 2]);
+ break;
+ case 35:
+ yy.setNewElementDocRef($$[$0 - 2]);
+ break;
+ case 38:
+ yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);
+ break;
+ case 39:
+ yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);
+ break;
+ case 40:
+ this.$ = yy.Relationships.CONTAINS;
+ break;
+ case 41:
+ this.$ = yy.Relationships.COPIES;
+ break;
+ case 42:
+ this.$ = yy.Relationships.DERIVES;
+ break;
+ case 43:
+ this.$ = yy.Relationships.SATISFIES;
+ break;
+ case 44:
+ this.$ = yy.Relationships.VERIFIES;
+ break;
+ case 45:
+ this.$ = yy.Relationships.REFINES;
+ break;
+ case 46:
+ this.$ = yy.Relationships.TRACES;
+ break;
}
- function TTc(a, b) {
- $r.call(this, a, b);
+ }, "anonymous"),
+ table: [{ 3: 1, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, o2($V4, [2, 6]), { 3: 12, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [2, 2] }, { 4: 17, 5: $V5, 7: 13, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, o2($V4, [2, 4]), o2($V4, [2, 5]), { 1: [2, 1] }, { 8: [1, 30] }, { 4: 17, 5: $V5, 7: 31, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 32, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 33, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 34, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 35, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 18: 36, 62: [1, 37], 63: [1, 38] }, { 45: 39, 62: [1, 40], 63: [1, 41] }, { 51: [1, 42], 53: [1, 43] }, o2($Vg, [2, 20]), o2($Vg, [2, 21]), o2($Vg, [2, 22]), o2($Vg, [2, 23]), o2($Vg, [2, 24]), o2($Vg, [2, 25]), o2($Vh, [2, 49]), o2($Vh, [2, 50]), { 1: [2, 3] }, { 8: [2, 8] }, { 8: [2, 9] }, { 8: [2, 10] }, { 8: [2, 11] }, { 8: [2, 12] }, { 19: [1, 44] }, { 19: [2, 47] }, { 19: [2, 48] }, { 19: [1, 45] }, { 19: [2, 53] }, { 19: [2, 54] }, { 52: 46, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 52: 54, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 5: [1, 55] }, { 5: [1, 56] }, { 53: [1, 57] }, o2($Vp, [2, 40]), o2($Vp, [2, 41]), o2($Vp, [2, 42]), o2($Vp, [2, 43]), o2($Vp, [2, 44]), o2($Vp, [2, 45]), o2($Vp, [2, 46]), { 54: [1, 58] }, { 5: $Vq, 20: 59, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 66, 47: $Vy, 49: $Vz }, { 23: 71, 62: $Ve, 63: $Vf }, { 23: 72, 62: $Ve, 63: $Vf }, o2($VA, [2, 13]), { 22: [1, 73] }, { 22: [1, 74] }, { 22: [1, 75] }, { 22: [1, 76] }, { 5: $Vq, 20: 77, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, o2($VA, [2, 19]), o2($VA, [2, 33]), { 22: [1, 78] }, { 22: [1, 79] }, { 5: $Vw, 30: $Vx, 46: 80, 47: $Vy, 49: $Vz }, o2($VA, [2, 37]), o2($VA, [2, 38]), o2($VA, [2, 39]), { 23: 81, 62: $Ve, 63: $Vf }, { 25: 82, 62: [1, 83], 63: [1, 84] }, { 27: 85, 37: [1, 86], 38: [1, 87], 39: [1, 88] }, { 29: 89, 40: [1, 90], 41: [1, 91], 42: [1, 92], 43: [1, 93] }, o2($VA, [2, 18]), { 48: 94, 62: [1, 95], 63: [1, 96] }, { 50: 97, 62: [1, 98], 63: [1, 99] }, o2($VA, [2, 36]), { 5: [1, 100] }, { 5: [1, 101] }, { 5: [2, 51] }, { 5: [2, 52] }, { 5: [1, 102] }, { 5: [2, 26] }, { 5: [2, 27] }, { 5: [2, 28] }, { 5: [1, 103] }, { 5: [2, 29] }, { 5: [2, 30] }, { 5: [2, 31] }, { 5: [2, 32] }, { 5: [1, 104] }, { 5: [2, 55] }, { 5: [2, 56] }, { 5: [1, 105] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: $Vq, 20: 106, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 107, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 108, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 109, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 110, 47: $Vy, 49: $Vz }, { 5: $Vw, 30: $Vx, 46: 111, 47: $Vy, 49: $Vz }, o2($VA, [2, 14]), o2($VA, [2, 15]), o2($VA, [2, 16]), o2($VA, [2, 17]), o2($VA, [2, 34]), o2($VA, [2, 35])],
+ defaultActions: { 8: [2, 2], 12: [2, 1], 30: [2, 3], 31: [2, 8], 32: [2, 9], 33: [2, 10], 34: [2, 11], 35: [2, 12], 37: [2, 47], 38: [2, 48], 40: [2, 53], 41: [2, 54], 83: [2, 51], 84: [2, 52], 86: [2, 26], 87: [2, 27], 88: [2, 28], 90: [2, 29], 91: [2, 30], 92: [2, 31], 93: [2, 32], 95: [2, 55], 96: [2, 56], 98: [2, 57], 99: [2, 58] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function _Tc(a, b) {
- $r.call(this, a, b);
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function RUc(a, b) {
- $r.call(this, a, b);
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
}
- function uVc(a, b) {
- $r.call(this, a, b);
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
}
- function hWc(a, b) {
- $r.call(this, a, b);
- }
- function rWc(a, b) {
- $r.call(this, a, b);
- }
- function kXc(a, b) {
- $r.call(this, a, b);
- }
- function uXc(a, b) {
- $r.call(this, a, b);
- }
- function AYc(a, b) {
- $r.call(this, a, b);
- }
- function l$c(a, b) {
- $r.call(this, a, b);
- }
- function Z$c(a, b) {
- $r.call(this, a, b);
- }
- function D_c(a, b) {
- $r.call(this, a, b);
- }
- function O_c(a, b) {
- $r.call(this, a, b);
- }
- function c1c(a, b) {
- $r.call(this, a, b);
- }
- function cVb(a, b) {
- return uqb(a.c, b);
- }
- function nnc(a, b) {
- return uqb(b.b, a);
- }
- function x1c(a, b) {
- return -a.b.Je(b);
- }
- function D3c(a, b) {
- return uqb(a.g, b);
- }
- function O5c(a, b) {
- $r.call(this, a, b);
- }
- function a6c(a, b) {
- $r.call(this, a, b);
- }
- function m2c(a, b) {
- this.a = a;
- this.b = b;
- }
- function W2c(a, b) {
- this.a = a;
- this.b = b;
- }
- function f7c(a, b) {
- this.a = a;
- this.b = b;
- }
- function G7c(a, b) {
- $r.call(this, a, b);
- }
- function j8c(a, b) {
- $r.call(this, a, b);
- }
- function iad(a, b) {
- $r.call(this, a, b);
- }
- function rad(a, b) {
- $r.call(this, a, b);
- }
- function Bad(a, b) {
- $r.call(this, a, b);
- }
- function Nad(a, b) {
- $r.call(this, a, b);
- }
- function ibd(a, b) {
- $r.call(this, a, b);
- }
- function tbd(a, b) {
- $r.call(this, a, b);
- }
- function Ibd(a, b) {
- $r.call(this, a, b);
- }
- function Ubd(a, b) {
- $r.call(this, a, b);
- }
- function gcd(a, b) {
- $r.call(this, a, b);
- }
- function scd(a, b) {
- $r.call(this, a, b);
- }
- function Ycd(a, b) {
- $r.call(this, a, b);
- }
- function udd(a, b) {
- $r.call(this, a, b);
- }
- function Jdd(a, b) {
- $r.call(this, a, b);
- }
- function Eed(a, b) {
- $r.call(this, a, b);
- }
- function bfd(a, b) {
- this.a = a;
- this.b = b;
- }
- function dfd(a, b) {
- this.a = a;
- this.b = b;
- }
- function ffd(a, b) {
- this.a = a;
- this.b = b;
- }
- function Kfd(a, b) {
- this.a = a;
- this.b = b;
- }
- function Mfd(a, b) {
- this.a = a;
- this.b = b;
- }
- function Ofd(a, b) {
- this.a = a;
- this.b = b;
- }
- function vgd(a, b) {
- this.a = a;
- this.b = b;
- }
- function qgd(a, b) {
- $r.call(this, a, b);
- }
- function jrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function krd(a, b) {
- this.a = a;
- this.b = b;
- }
- function mrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function nrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function qrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function rrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function srd(a, b) {
- this.b = a;
- this.a = b;
- }
- function trd(a, b) {
- this.b = a;
- this.a = b;
- }
- function Drd(a, b) {
- this.b = a;
- this.a = b;
- }
- function Frd(a, b) {
- this.b = a;
- this.a = b;
- }
- function Hrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function Jrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function Ord(a, b) {
- Xqd(a.a, BD(b, 56));
- }
- function BIc(a, b) {
- gIc(a.a, BD(b, 11));
- }
- function fIc(a, b) {
- FHc();
- return b != a;
- }
- function Arb() {
- wrb();
- return new vrb();
- }
- function CMc() {
- wMc();
- this.b = new Tqb();
- }
- function NNc() {
- FNc();
- this.a = new Tqb();
- }
- function eCc() {
- ZBc();
- aCc.call(this);
- }
- function Dsd(a, b) {
- $r.call(this, a, b);
- }
- function Urd(a, b) {
- this.a = a;
- this.b = b;
- }
- function Wrd(a, b) {
- this.a = a;
- this.b = b;
- }
- function kGd(a, b) {
- this.a = a;
- this.b = b;
- }
- function nGd(a, b) {
- this.a = a;
- this.b = b;
- }
- function bUd(a, b) {
- this.a = a;
- this.b = b;
- }
- function zVd(a, b) {
- this.a = a;
- this.b = b;
- }
- function C1d(a, b) {
- this.d = a;
- this.b = b;
- }
- function MLd(a, b) {
- this.d = a;
- this.e = b;
- }
- function Wud(a, b) {
- this.f = a;
- this.c = b;
- }
- function f7d(a, b) {
- this.b = a;
- this.c = b;
- }
- function _zd(a, b) {
- this.i = a;
- this.g = b;
- }
- function Y1d(a, b) {
- this.e = a;
- this.a = b;
- }
- function c8d(a, b) {
- this.a = a;
- this.b = b;
- }
- function $Id(a, b) {
- a.i = null;
- _Id(a, b);
- }
- function ivd(a, b) {
- !!a && Rhb(cvd, a, b);
- }
- function hCd(a, b) {
- return qAd(a.a, b);
- }
- function e7d(a) {
- return R2d(a.c, a.b);
- }
- function Wd(a) {
- return !a ? null : a.dd();
- }
- function PD(a) {
- return a == null ? null : a;
- }
- function KD(a) {
- return typeof a === Khe;
- }
- function LD(a) {
- return typeof a === Lhe;
- }
- function ND(a) {
- return typeof a === Mhe;
- }
- function Em(a, b) {
- return a.Hd().Xb(b);
- }
- function Kq(a, b) {
- return hr(a.Kc(), b);
- }
- function Bbb(a, b) {
- return ybb(a, b) == 0;
- }
- function Ebb(a, b) {
- return ybb(a, b) >= 0;
- }
- function Kbb(a, b) {
- return ybb(a, b) != 0;
- }
- function Jdb(a) {
- return "" + (uCb(a), a);
- }
- function pfb(a, b) {
- return a.substr(b);
- }
- function cg(a) {
- ag(a);
- return a.d.gc();
- }
- function oVb(a) {
- pVb(a, a.c);
- return a;
- }
- function RD(a) {
- CCb(a == null);
- return a;
- }
- function Dfb(a, b) {
- a.a += "" + b;
- return a;
- }
- function Efb(a, b) {
- a.a += "" + b;
- return a;
- }
- function Nfb(a, b) {
- a.a += "" + b;
- return a;
- }
- function Pfb(a, b) {
- a.a += "" + b;
- return a;
- }
- function Qfb(a, b) {
- a.a += "" + b;
- return a;
- }
- function Mfb(a, b) {
- return a.a += "" + b, a;
- }
- function Esb(a, b) {
- Gsb(a, b, a.a, a.a.a);
- }
- function Fsb(a, b) {
- Gsb(a, b, a.c.b, a.c);
- }
- function Mqd(a, b, c2) {
- Rpd(b, kqd(a, c2));
- }
- function Nqd(a, b, c2) {
- Rpd(b, kqd(a, c2));
- }
- function Dhe(a, b) {
- Hhe(new Fyd(a), b);
- }
- function cB(a, b) {
- a.q.setTime(Sbb(b));
- }
- function fvb(a, b) {
- bvb.call(this, a, b);
- }
- function jvb(a, b) {
- bvb.call(this, a, b);
- }
- function nvb(a, b) {
- bvb.call(this, a, b);
- }
- function Nqb(a) {
- Uhb(this);
- Ld(this, a);
- }
- function wmb(a) {
- tCb(a, 0);
- return null;
- }
- function X6c(a) {
- a.a = 0;
- a.b = 0;
- return a;
- }
- function f3c(a, b) {
- a.a = b.g + 1;
- return a;
- }
- function PJc(a, b) {
- return a.j[b.p] == 2;
- }
- function _Pb(a) {
- return VPb(BD(a, 79));
- }
- function yJb() {
- yJb = ccb;
- xJb = as(wJb());
- }
- function Y8b() {
- Y8b = ccb;
- X8b = as(W8b());
- }
- function mt() {
- this.b = new Mqb(Cv(12));
- }
- function Otb() {
- this.b = 0;
- this.a = false;
- }
- function Wtb() {
- this.b = 0;
- this.a = false;
- }
- function sl(a) {
- this.a = a;
- ol.call(this);
- }
- function vl(a) {
- this.a = a;
- ol.call(this);
- }
- function Nsd(a, b) {
- Msd.call(this, a, b);
- }
- function $zd(a, b) {
- Cyd.call(this, a, b);
- }
- function nNd(a, b) {
- _zd.call(this, a, b);
- }
- function s4d(a, b) {
- p4d.call(this, a, b);
- }
- function w4d(a, b) {
- qRd.call(this, a, b);
- }
- function rEd(a, b) {
- pEd();
- Rhb(oEd, a, b);
- }
- function lcb(a, b) {
- return qfb(a.a, 0, b);
- }
- function ww(a, b) {
- return a.a.a.a.cc(b);
- }
- function mb(a, b) {
- return PD(a) === PD(b);
- }
- function Mdb(a, b) {
- return Kdb(a.a, b.a);
- }
- function $db(a, b) {
- return beb(a.a, b.a);
- }
- function seb(a, b) {
- return ueb(a.a, b.a);
- }
- function hfb(a, b) {
- return a.indexOf(b);
- }
- function Ny(a, b) {
- return a == b ? 0 : a ? 1 : -1;
- }
- function kB(a) {
- return a < 10 ? "0" + a : "" + a;
- }
- function Mq(a) {
- return Qb(a), new sl(a);
- }
- function SC(a) {
- return TC(a.l, a.m, a.h);
- }
- function Hdb(a) {
- return QD((uCb(a), a));
- }
- function Idb(a) {
- return QD((uCb(a), a));
- }
- function NIb(a, b) {
- return beb(a.g, b.g);
- }
- function Fbb(a) {
- return typeof a === Lhe;
- }
- function mWb(a) {
- return a == hWb || a == kWb;
- }
- function nWb(a) {
- return a == hWb || a == iWb;
- }
- function G1b(a) {
- return Jkb(a.b.b, a, 0);
- }
- function lrb(a) {
- this.a = Arb();
- this.b = a;
- }
- function Frb(a) {
- this.a = Arb();
- this.b = a;
- }
- function swb(a, b) {
- Ekb(a.a, b);
- return b;
- }
- function Z1c(a, b) {
- Ekb(a.c, b);
- return a;
- }
- function E2c(a, b) {
- d3c(a.a, b);
- return a;
- }
- function _gc(a, b) {
- Hgc();
- return b.a += a;
- }
- function bhc(a, b) {
- Hgc();
- return b.a += a;
- }
- function ahc(a, b) {
- Hgc();
- return b.c += a;
- }
- function Nlb(a, b) {
- Klb(a, 0, a.length, b);
- }
- function zsb() {
- Wqb.call(this, new $rb());
- }
- function I_b() {
- B_b.call(this, 0, 0, 0, 0);
- }
- function I6c() {
- J6c.call(this, 0, 0, 0, 0);
- }
- function g7c(a) {
- this.a = a.a;
- this.b = a.b;
- }
- function fad(a) {
- return a == aad || a == bad;
- }
- function gad(a) {
- return a == dad || a == _9c;
- }
- function Jzc(a) {
- return a == Fzc || a == Ezc;
- }
- function fcd(a) {
- return a != bcd && a != ccd;
- }
- function oid(a) {
- return a.Lg() && a.Mg();
- }
- function Gfd(a) {
- return Kkd(BD(a, 118));
- }
- function k3c(a) {
- return d3c(new j3c(), a);
- }
- function y2d(a, b) {
- return new p4d(b, a);
- }
- function z2d(a, b) {
- return new p4d(b, a);
- }
- function ukd(a, b, c2) {
- vkd(a, b);
- wkd(a, c2);
- }
- function _kd(a, b, c2) {
- cld(a, b);
- ald(a, c2);
- }
- function bld(a, b, c2) {
- dld(a, b);
- eld(a, c2);
- }
- function gmd(a, b, c2) {
- hmd(a, b);
- imd(a, c2);
- }
- function nmd(a, b, c2) {
- omd(a, b);
- pmd(a, c2);
- }
- function iKd(a, b) {
- $Jd(a, b);
- _Jd(a, a.D);
- }
- function _ud(a) {
- Wud.call(this, a, true);
- }
- function Xg(a, b, c2) {
- Vg.call(this, a, b, c2);
- }
- function Ygb(a) {
- Hgb();
- Zgb.call(this, a);
- }
- function rxb() {
- mxb.call(this, "Head", 1);
- }
- function wxb() {
- mxb.call(this, "Tail", 3);
- }
- function Ckb(a) {
- a.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- function Vjb(a) {
- a.a = KC(SI, Uhe, 1, 8, 5, 1);
- }
- function MGb(a) {
- Hkb(a.xf(), new QGb(a));
- }
- function xtb(a) {
- return a != null ? tb(a) : 0;
- }
- function b2b(a, b) {
- return ntd(b, mpd(a));
- }
- function c2b(a, b) {
- return ntd(b, mpd(a));
- }
- function dAb(a, b) {
- return a[a.length] = b;
- }
- function gAb(a, b) {
- return a[a.length] = b;
- }
- function Vq(a) {
- return lr(a.b.Kc(), a.a);
- }
- function dqd(a, b) {
- return _o(qo(a.d), b);
- }
- function eqd(a, b) {
- return _o(qo(a.g), b);
- }
- function fqd(a, b) {
- return _o(qo(a.j), b);
- }
- function Osd(a, b) {
- Msd.call(this, a.b, b);
- }
- function q0b(a) {
- B_b.call(this, a, a, a, a);
- }
- function HOb(a) {
- a.b && LOb(a);
- return a.a;
- }
- function IOb(a) {
- a.b && LOb(a);
- return a.c;
- }
- function uyb(a, b) {
- if (lyb) {
- return;
- }
- a.b = b;
- }
- function lzd(a, b, c2) {
- NC(a, b, c2);
- return c2;
- }
- function mBc(a, b, c2) {
- NC(a.c[b.g], b.g, c2);
- }
- function _Hd(a, b, c2) {
- BD(a.c, 69).Xh(b, c2);
- }
- function wfd(a, b, c2) {
- bld(c2, c2.i + a, c2.j + b);
- }
- function UOd(a, b) {
- wtd(VKd(a.a), XOd(b));
- }
- function bTd(a, b) {
- wtd(QSd(a.a), eTd(b));
- }
- function Lge(a) {
- wfe();
- xfe.call(this, a);
- }
- function CAd(a) {
- return a == null ? 0 : tb(a);
- }
- function fNc() {
- fNc = ccb;
- eNc = new Rpb(v1);
- }
- function h0d() {
- h0d = ccb;
- new i0d();
- new Rkb();
- }
- function i0d() {
- new Lqb();
- new Lqb();
- new Lqb();
- }
- function GA() {
- GA = ccb;
- fA();
- FA = new Lqb();
- }
- function Iy() {
- Iy = ccb;
- $wnd.Math.log(2);
- }
- function UVd() {
- UVd = ccb;
- TVd = (AFd(), zFd);
- }
- function _ge() {
- throw vbb(new cgb(Cxe));
- }
- function ohe() {
- throw vbb(new cgb(Cxe));
- }
- function che() {
- throw vbb(new cgb(Dxe));
- }
- function rhe() {
- throw vbb(new cgb(Dxe));
- }
- function Mg(a) {
- this.a = a;
- Gg.call(this, a);
- }
- function up(a) {
- this.a = a;
- rf.call(this, a);
- }
- function Bp(a) {
- this.a = a;
- rf.call(this, a);
- }
- function Okb(a, b) {
- Mlb(a.c, a.c.length, b);
- }
- function llb(a) {
- return a.a < a.c.c.length;
- }
- function Eqb(a) {
- return a.a < a.c.a.length;
- }
- function Ntb(a, b) {
- return a.a ? a.b : b.De();
- }
- function beb(a, b) {
- return a < b ? -1 : a > b ? 1 : 0;
- }
- function Deb(a, b) {
- return ybb(a, b) > 0 ? a : b;
- }
- function TC(a, b, c2) {
- return { l: a, m: b, h: c2 };
- }
- function Ctb(a, b) {
- a.a != null && BIc(b, a.a);
- }
- function Csb(a) {
- a.a = new jtb();
- a.c = new jtb();
- }
- function hDb(a) {
- this.b = a;
- this.a = new Rkb();
- }
- function dOb(a) {
- this.b = new pOb();
- this.a = a;
- }
- function q_b(a) {
- n_b.call(this);
- this.a = a;
- }
- function txb() {
- mxb.call(this, "Range", 2);
- }
- function bUb() {
- ZTb();
- this.a = new L2c(zP);
- }
- function Bh(a, b) {
- Qb(b);
- Ah(a).Jc(new Vw());
- }
- function fKc(a, b) {
- FJc();
- return b.n.b += a;
- }
- function Tgc(a, b, c2) {
- return Rhb(a.g, c2, b);
- }
- function LJc(a, b, c2) {
- return Rhb(a.k, c2, b);
- }
- function r1c(a, b) {
- return Rhb(a.a, b.a, b);
- }
- function jBc(a, b, c2) {
- return hBc(b, c2, a.c);
- }
- function E6c(a) {
- return new f7c(a.c, a.d);
- }
- function F6c(a) {
- return new f7c(a.c, a.d);
- }
- function R6c(a) {
- return new f7c(a.a, a.b);
- }
- function CQd(a, b) {
- return hA(a.a, b, null);
- }
- function fec(a) {
- QZb(a, null);
- RZb(a, null);
- }
- function AOc(a) {
- BOc(a, null);
- COc(a, null);
- }
- function u4d() {
- qRd.call(this, null, null);
- }
- function y4d() {
- RRd.call(this, null, null);
- }
- function a7d(a) {
- this.a = a;
- Lqb.call(this);
- }
- function Pp(a) {
- this.b = (mmb(), new iob(a));
- }
- function Py(a) {
- a.j = KC(VI, nie, 310, 0, 0, 1);
- }
- function oAd(a, b, c2) {
- a.c.Vc(b, BD(c2, 133));
- }
- function GAd(a, b, c2) {
- a.c.ji(b, BD(c2, 133));
- }
- function JLd(a, b) {
- Uxd(a);
- a.Gc(BD(b, 15));
- }
- function b7d(a, b) {
- return t2d(a.c, a.b, b);
- }
- function Bv(a, b) {
- return new Qv(a.Kc(), b);
- }
- function Lq(a, b) {
- return rr(a.Kc(), b) != -1;
- }
- function Sqb(a, b) {
- return a.a.Bc(b) != null;
- }
- function pr(a) {
- return a.Ob() ? a.Pb() : null;
- }
- function yfb(a) {
- return zfb(a, 0, a.length);
- }
- function JD(a, b) {
- return a != null && AD(a, b);
- }
- function $A(a, b) {
- a.q.setHours(b);
- YA(a, b);
- }
- function Yrb(a, b) {
- if (a.c) {
- jsb(b);
- isb(b);
- }
- }
- function nk(a, b, c2) {
- BD(a.Kb(c2), 164).Nb(b);
- }
- function RJc(a, b, c2) {
- SJc(a, b, c2);
- return c2;
- }
- function Eub(a, b, c2) {
- a.a = b ^ 1502;
- a.b = c2 ^ kke;
- }
- function xHb(a, b, c2) {
- return a.a[b.g][c2.g];
- }
- function REc(a, b) {
- return a.a[b.c.p][b.p];
- }
- function aEc(a, b) {
- return a.e[b.c.p][b.p];
- }
- function tEc(a, b) {
- return a.c[b.c.p][b.p];
- }
- function OJc(a, b) {
- return a.j[b.p] = aKc(b);
- }
- function k5c(a, b) {
- return cfb(a.f, b.tg());
- }
- function Isd(a, b) {
- return cfb(a.b, b.tg());
- }
- function Sfd(a, b) {
- return a.a < Kcb(b) ? -1 : 1;
- }
- function ZDc(a, b, c2) {
- return c2 ? b != 0 : b != a - 1;
- }
- function _6c(a, b, c2) {
- a.a = b;
- a.b = c2;
- return a;
- }
- function Y6c(a, b) {
- a.a *= b;
- a.b *= b;
- return a;
- }
- function mud(a, b, c2) {
- NC(a.g, b, c2);
- return c2;
- }
- function CHb(a, b, c2, d) {
- NC(a.a[b.g], c2.g, d);
- }
- function EQb(a, b) {
- O6c(b, a.a.a.a, a.a.a.b);
- }
- function Ozd(a) {
- a.a = BD(Ajd(a.b.a, 4), 126);
- }
- function Wzd(a) {
- a.a = BD(Ajd(a.b.a, 4), 126);
- }
- function otd(a) {
- ytb(a, hue2);
- Rld(a, gtd(a));
- }
- function Atb() {
- Atb = ccb;
- ztb = new Ftb(null);
- }
- function Ivb() {
- Ivb = ccb;
- Ivb();
- Hvb = new Ovb();
- }
- function FId() {
- this.Bb |= 256;
- this.Bb |= 512;
- }
- function Fyd(a) {
- this.i = a;
- this.f = this.i.j;
- }
- function xMd(a, b, c2) {
- pMd.call(this, a, b, c2);
- }
- function BMd(a, b, c2) {
- xMd.call(this, a, b, c2);
- }
- function K4d(a, b, c2) {
- xMd.call(this, a, b, c2);
- }
- function N4d(a, b, c2) {
- BMd.call(this, a, b, c2);
- }
- function X4d(a, b, c2) {
- pMd.call(this, a, b, c2);
- }
- function _4d(a, b, c2) {
- pMd.call(this, a, b, c2);
- }
- function C4d(a, b, c2) {
- k2d.call(this, a, b, c2);
- }
- function G4d(a, b, c2) {
- k2d.call(this, a, b, c2);
- }
- function I4d(a, b, c2) {
- C4d.call(this, a, b, c2);
- }
- function c5d(a, b, c2) {
- X4d.call(this, a, b, c2);
- }
- function zf(a, b) {
- this.a = a;
- rf.call(this, b);
- }
- function aj(a, b) {
- this.a = a;
- pc.call(this, b);
- }
- function kj(a, b) {
- this.a = a;
- pc.call(this, b);
- }
- function Jj(a, b) {
- this.a = a;
- pc.call(this, b);
- }
- function Rj(a) {
- this.a = a;
- sj.call(this, a.d);
- }
- function she(a) {
- this.c = a;
- this.a = this.c.a;
- }
- function xl(a, b) {
- this.a = b;
- pc.call(this, a);
- }
- function Qo(a, b) {
- this.a = b;
- Lo.call(this, a);
- }
- function op(a, b) {
- this.a = a;
- Lo.call(this, b);
- }
- function rj(a, b) {
- return Rl(Xm(a.c)).Xb(b);
- }
- function Eb(a, b) {
- return Db(a, new Ufb(), b).a;
- }
- function ur(a, b) {
- Qb(b);
- return new Gr(a, b);
- }
- function Gr(a, b) {
- this.a = b;
- Br.call(this, a);
- }
- function Hs(a) {
- this.b = a;
- this.a = this.b.a.e;
- }
- function Eg(a) {
- a.b.Qb();
- --a.d.f.d;
- bg(a.d);
- }
- function Uk(a) {
- Fk.call(this, BD(Qb(a), 35));
- }
- function il(a) {
- Fk.call(this, BD(Qb(a), 35));
- }
- function is() {
- $r.call(this, "INSTANCE", 0);
- }
- function Lb(a) {
- if (!a) {
- throw vbb(new Vdb());
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- }
- function Ub(a) {
- if (!a) {
- throw vbb(new Ydb());
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- }
- function ot(a) {
- if (!a) {
- throw vbb(new utb());
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- }
- function I6d() {
- I6d = ccb;
- g5d();
- H6d = new J6d();
- }
- function Bcb() {
- Bcb = ccb;
- zcb = false;
- Acb = true;
- }
- function Jfb(a) {
- mcb.call(this, (uCb(a), a));
- }
- function Wfb(a) {
- mcb.call(this, (uCb(a), a));
- }
- function Inb(a) {
- lnb.call(this, a);
- this.a = a;
- }
- function Xnb(a) {
- Dnb.call(this, a);
- this.a = a;
- }
- function Zob(a) {
- zob.call(this, a);
- this.a = a;
- }
- function Xy() {
- Py(this);
- Ry(this);
- this._d();
- }
- function Qv(a, b) {
- this.a = b;
- Br.call(this, a);
- }
- function au(a, b) {
- return new xu(a.a, a.b, b);
- }
- function kfb(a, b) {
- return a.lastIndexOf(b);
- }
- function ifb(a, b, c2) {
- return a.indexOf(b, c2);
- }
- function xfb(a) {
- return a == null ? Xhe : fcb(a);
- }
- function nz(a) {
- return a == null ? null : a.name;
- }
- function Etb(a) {
- return a.a != null ? a.a : null;
- }
- function or(a) {
- return Wsb(a.a) ? nr(a) : null;
- }
- function Fxb(a, b) {
- return Jwb(a.a, b) != null;
- }
- function uqb(a, b) {
- return !!b && a.b[b.g] == b;
- }
- function FCb(a) {
- return a.$H || (a.$H = ++ECb);
- }
- function aD(a) {
- return a.l + a.m * Hje + a.h * Ije;
- }
- function pDb(a, b) {
- Ekb(b.a, a.a);
- return a.a;
- }
- function vDb(a, b) {
- Ekb(b.b, a.a);
- return a.a;
- }
- function nGb(a, b) {
- Ekb(b.a, a.a);
- return a.a;
- }
- function Btb(a) {
- sCb(a.a != null);
- return a.a;
- }
- function Asb(a) {
- Wqb.call(this, new _rb(a));
- }
- function GUb(a, b) {
- HUb.call(this, a, b, null);
- }
- function cxb(a) {
- this.a = a;
- Bjb.call(this, a);
- }
- function CKb() {
- CKb = ccb;
- BKb = new Msd(tle, 0);
- }
- function NFb(a, b) {
- ++a.b;
- return Ekb(a.a, b);
- }
- function OFb(a, b) {
- ++a.b;
- return Lkb(a.a, b);
- }
- function n6b(a, b) {
- return Kdb(a.n.a, b.n.a);
- }
- function WKb(a, b) {
- return Kdb(a.c.d, b.c.d);
- }
- function gLb(a, b) {
- return Kdb(a.c.c, b.c.c);
- }
- function zXb(a, b) {
- return BD(Qc(a.b, b), 15);
- }
- function s7b(a, b) {
- return a.n.b = (uCb(b), b);
- }
- function t7b(a, b) {
- return a.n.b = (uCb(b), b);
- }
- function a1b(a) {
- return llb(a.a) || llb(a.b);
- }
- function fBc(a, b, c2) {
- return gBc(a, b, c2, a.b);
- }
- function iBc(a, b, c2) {
- return gBc(a, b, c2, a.c);
- }
- function i3c(a, b, c2) {
- BD(B2c(a, b), 21).Fc(c2);
- }
- function xBd(a, b, c2) {
- vAd(a.a, c2);
- uAd(a.a, b);
- }
- function qRd(a, b) {
- nRd();
- this.a = a;
- this.b = b;
- }
- function RRd(a, b) {
- LRd();
- this.b = a;
- this.c = b;
- }
- function hhd(a, b) {
- Rgd();
- this.f = b;
- this.d = a;
- }
- function qc(a, b) {
- Sb(b, a);
- this.d = a;
- this.c = b;
- }
- function n5b(a) {
- var b;
- b = a.a;
- a.a = a.b;
- a.b = b;
- }
- function chc(a) {
- Hgc();
- return !!a && !a.dc();
- }
- function Afe(a) {
- return new lge(3, a);
- }
- function jm(a, b) {
- return new Vp(a, a.gc(), b);
- }
- function ns(a) {
- hs();
- return es((qs(), ps), a);
- }
- function Oyd(a) {
- this.d = a;
- Fyd.call(this, a);
- }
- function $yd(a) {
- this.c = a;
- Fyd.call(this, a);
- }
- function bzd(a) {
- this.c = a;
- Oyd.call(this, a);
- }
- function sgc() {
- qgc();
- this.b = new ygc(this);
- }
- function Pu(a) {
- Xj(a, Jie);
- return new Skb(a);
- }
- function Vz(a) {
- Rz();
- return parseInt(a) || -1;
- }
- function qfb(a, b, c2) {
- return a.substr(b, c2 - b);
- }
- function gfb(a, b, c2) {
- return ifb(a, wfb(b), c2);
- }
- function Pkb(a) {
- return ZBb(a.c, a.c.length);
- }
- function Yr(a) {
- return a.f != null ? a.f : "" + a.g;
- }
- function Zr(a) {
- return a.f != null ? a.f : "" + a.g;
- }
- function Hsb(a) {
- sCb(a.b != 0);
- return a.a.a.c;
- }
- function Isb(a) {
- sCb(a.b != 0);
- return a.c.b.c;
- }
- function Cmd(a) {
- JD(a, 150) && BD(a, 150).Gh();
- }
- function Wwb(a) {
- return a.b = BD(tib(a.a), 42);
- }
- function Ptb(a) {
- Ltb();
- this.b = a;
- this.a = true;
- }
- function Xtb(a) {
- Utb();
- this.b = a;
- this.a = true;
- }
- function Trb(a) {
- a.d = new ksb(a);
- a.e = new Lqb();
- }
- function mkb(a) {
- if (!a) {
- throw vbb(new Apb());
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
}
- }
- function lCb(a) {
- if (!a) {
- throw vbb(new Vdb());
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- }
- function yCb(a) {
- if (!a) {
- throw vbb(new Ydb());
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
}
- }
- function qCb(a) {
- if (!a) {
- throw vbb(new tcb());
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
}
- }
- function sCb(a) {
- if (!a) {
- throw vbb(new utb());
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
}
- }
- function ksb(a) {
- lsb.call(this, a, null, null);
- }
- function dPb() {
- $r.call(this, "POLYOMINO", 0);
- }
- function Cg(a, b, c2, d) {
- qg.call(this, a, b, c2, d);
- }
- function zkc(a, b) {
- gkc();
- return Rc(a, b.e, b);
- }
- function azc(a, b, c2) {
- Vyc();
- return c2.qg(a, b);
- }
- function wNb(a, b) {
- return !!a.q && Mhb(a.q, b);
- }
- function JRb(a, b) {
- return a > 0 ? b * b / a : b * b * 100;
- }
- function CRb(a, b) {
- return a > 0 ? b / (a * a) : b * 100;
- }
- function G2c(a, b, c2) {
- return Ekb(b, I2c(a, c2));
- }
- function t3c(a, b, c2) {
- p3c();
- a.Xe(b) && c2.td(a);
- }
- function St(a, b, c2) {
- var d;
- d = a.Zc(b);
- d.Rb(c2);
- }
- function O6c(a, b, c2) {
- a.a += b;
- a.b += c2;
- return a;
- }
- function Z6c(a, b, c2) {
- a.a *= b;
- a.b *= c2;
- return a;
- }
- function b7c(a, b, c2) {
- a.a -= b;
- a.b -= c2;
- return a;
- }
- function a7c(a, b) {
- a.a = b.a;
- a.b = b.b;
- return a;
- }
- function V6c(a) {
- a.a = -a.a;
- a.b = -a.b;
- return a;
- }
- function Dic(a) {
- this.c = a;
- this.a = 1;
- this.b = 1;
- }
- function xed(a) {
- this.c = a;
- dld(a, 0);
- eld(a, 0);
- }
- function u7c(a) {
- Psb.call(this);
- n7c(this, a);
- }
- function AXb(a) {
- xXb();
- yXb(this);
- this.mf(a);
- }
- function GRd(a, b) {
- nRd();
- qRd.call(this, a, b);
- }
- function dSd(a, b) {
- LRd();
- RRd.call(this, a, b);
- }
- function hSd(a, b) {
- LRd();
- RRd.call(this, a, b);
- }
- function fSd(a, b) {
- LRd();
- dSd.call(this, a, b);
- }
- function sId(a, b, c2) {
- dId.call(this, a, b, c2, 2);
- }
- function zXd(a, b) {
- UVd();
- nXd.call(this, a, b);
- }
- function BXd(a, b) {
- UVd();
- zXd.call(this, a, b);
- }
- function DXd(a, b) {
- UVd();
- zXd.call(this, a, b);
- }
- function FXd(a, b) {
- UVd();
- DXd.call(this, a, b);
- }
- function PXd(a, b) {
- UVd();
- nXd.call(this, a, b);
- }
- function RXd(a, b) {
- UVd();
- PXd.call(this, a, b);
- }
- function XXd(a, b) {
- UVd();
- nXd.call(this, a, b);
- }
- function pAd(a, b) {
- return a.c.Fc(BD(b, 133));
- }
- function w1d(a, b, c2) {
- return V1d(p1d(a, b), c2);
- }
- function N2d(a, b, c2) {
- return b.Qk(a.e, a.c, c2);
- }
- function P2d(a, b, c2) {
- return b.Rk(a.e, a.c, c2);
- }
- function a3d(a, b) {
- return xid(a.e, BD(b, 49));
- }
- function aTd(a, b, c2) {
- vtd(QSd(a.a), b, eTd(c2));
- }
- function TOd(a, b, c2) {
- vtd(VKd(a.a), b, XOd(c2));
- }
- function ypb(a, b) {
- b.$modCount = a.$modCount;
- }
- function MUc() {
- MUc = ccb;
- LUc = new Lsd("root");
- }
- function LCd() {
- LCd = ccb;
- KCd = new lDd();
- new NDd();
- }
- function KVc() {
- this.a = new Hp();
- this.b = new Hp();
- }
- function FUd() {
- hJd.call(this);
- this.Bb |= Tje;
- }
- function t_c() {
- $r.call(this, "GROW_TREE", 0);
- }
- function C9d(a) {
- return a == null ? null : cde(a);
- }
- function G9d(a) {
- return a == null ? null : jde(a);
- }
- function J9d(a) {
- return a == null ? null : fcb(a);
- }
- function K9d(a) {
- return a == null ? null : fcb(a);
- }
- function fdb(a) {
- if (a.o != null) {
- return;
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- vdb(a);
- }
- function DD(a) {
- CCb(a == null || KD(a));
- return a;
- }
- function ED(a) {
- CCb(a == null || LD(a));
- return a;
- }
- function GD(a) {
- CCb(a == null || ND(a));
- return a;
- }
- function gB(a) {
- this.q = new $wnd.Date(Sbb(a));
- }
- function Mf(a, b) {
- this.c = a;
- ne.call(this, a, b);
- }
- function Sf(a, b) {
- this.a = a;
- Mf.call(this, a, b);
- }
- function Hg(a, b) {
- this.d = a;
- Dg(this);
- this.b = b;
- }
- function bAb(a, b) {
- Vzb.call(this, a);
- this.a = b;
- }
- function vAb(a, b) {
- Vzb.call(this, a);
- this.a = b;
- }
- function sNb(a) {
- pNb.call(this, 0, 0);
- this.f = a;
- }
- function Vg(a, b, c2) {
- dg.call(this, a, b, c2, null);
- }
- function Yg(a, b, c2) {
- dg.call(this, a, b, c2, null);
- }
- function Pxb(a, b, c2) {
- return a.ue(b, c2) <= 0 ? c2 : b;
- }
- function Qxb(a, b, c2) {
- return a.ue(b, c2) <= 0 ? b : c2;
- }
- function g4c(a, b) {
- return BD(Wrb(a.b, b), 149);
- }
- function i4c(a, b) {
- return BD(Wrb(a.c, b), 229);
- }
- function wic(a) {
- return BD(Ikb(a.a, a.b), 287);
- }
- function B6c(a) {
- return new f7c(a.c, a.d + a.a);
- }
- function eLc(a) {
- return FJc(), Jzc(BD(a, 197));
- }
- function $Jb() {
- $Jb = ccb;
- ZJb = pqb((tdd(), sdd));
- }
- function fOb(a, b) {
- b.a ? gOb(a, b) : Fxb(a.a, b.b);
- }
- function qyb(a, b) {
- if (lyb) {
- return;
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
}
- Ekb(a.a, b);
- }
- function F2b(a, b) {
- x2b();
- return f_b(b.d.i, a);
- }
- function _9b(a, b) {
- I9b();
- return new gac(b, a);
- }
- function _Hb(a, b) {
- ytb(b, lle);
- a.f = b;
- return a;
- }
- function Kld(a, b, c2) {
- c2 = _hd(a, b, 3, c2);
- return c2;
- }
- function bmd(a, b, c2) {
- c2 = _hd(a, b, 6, c2);
- return c2;
- }
- function kpd(a, b, c2) {
- c2 = _hd(a, b, 9, c2);
- return c2;
- }
- function Cvd(a, b, c2) {
- ++a.j;
- a.Ki();
- Atd(a, b, c2);
- }
- function Avd(a, b, c2) {
- ++a.j;
- a.Hi(b, a.oi(b, c2));
- }
- function bRd(a, b, c2) {
- var d;
- d = a.Zc(b);
- d.Rb(c2);
- }
- function c7d(a, b, c2) {
- return C2d(a.c, a.b, b, c2);
- }
- function DAd(a, b) {
- return (b & Ohe) % a.d.length;
- }
- function Msd(a, b) {
- Lsd.call(this, a);
- this.a = b;
- }
- function uVd(a, b) {
- lVd.call(this, a);
- this.a = b;
- }
- function sYd(a, b) {
- lVd.call(this, a);
- this.a = b;
- }
- function zyd(a, b) {
- this.c = a;
- zud.call(this, b);
- }
- function YOd(a, b) {
- this.a = a;
- qOd.call(this, b);
- }
- function fTd(a, b) {
- this.a = a;
- qOd.call(this, b);
- }
- function Xp(a) {
- this.a = (Xj(a, Jie), new Skb(a));
- }
- function cq(a) {
- this.a = (Xj(a, Jie), new Skb(a));
- }
- function LA(a) {
- !a.a && (a.a = new VA());
- return a.a;
- }
- function XMb(a) {
- if (a > 8) {
- return 0;
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ return "title";
+ break;
+ case 1:
+ this.begin("acc_title");
+ return 9;
+ break;
+ case 2:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 3:
+ this.begin("acc_descr");
+ return 11;
+ break;
+ case 4:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 5:
+ this.begin("acc_descr_multiline");
+ break;
+ case 6:
+ this.popState();
+ break;
+ case 7:
+ return "acc_descr_multiline_value";
+ break;
+ case 8:
+ return 5;
+ break;
+ case 9:
+ break;
+ case 10:
+ break;
+ case 11:
+ break;
+ case 12:
+ return 8;
+ break;
+ case 13:
+ return 6;
+ break;
+ case 14:
+ return 19;
+ break;
+ case 15:
+ return 30;
+ break;
+ case 16:
+ return 22;
+ break;
+ case 17:
+ return 21;
+ break;
+ case 18:
+ return 24;
+ break;
+ case 19:
+ return 26;
+ break;
+ case 20:
+ return 28;
+ break;
+ case 21:
+ return 31;
+ break;
+ case 22:
+ return 32;
+ break;
+ case 23:
+ return 33;
+ break;
+ case 24:
+ return 34;
+ break;
+ case 25:
+ return 35;
+ break;
+ case 26:
+ return 36;
+ break;
+ case 27:
+ return 37;
+ break;
+ case 28:
+ return 38;
+ break;
+ case 29:
+ return 39;
+ break;
+ case 30:
+ return 40;
+ break;
+ case 31:
+ return 41;
+ break;
+ case 32:
+ return 42;
+ break;
+ case 33:
+ return 43;
+ break;
+ case 34:
+ return 44;
+ break;
+ case 35:
+ return 55;
+ break;
+ case 36:
+ return 56;
+ break;
+ case 37:
+ return 57;
+ break;
+ case 38:
+ return 58;
+ break;
+ case 39:
+ return 59;
+ break;
+ case 40:
+ return 60;
+ break;
+ case 41:
+ return 61;
+ break;
+ case 42:
+ return 47;
+ break;
+ case 43:
+ return 49;
+ break;
+ case 44:
+ return 51;
+ break;
+ case 45:
+ return 54;
+ break;
+ case 46:
+ return 53;
+ break;
+ case 47:
+ this.begin("string");
+ break;
+ case 48:
+ this.popState();
+ break;
+ case 49:
+ return "qString";
+ break;
+ case 50:
+ yy_.yytext = yy_.yytext.trim();
+ return 62;
+ break;
}
- return a + 1;
- }
- function Ecb(a, b) {
- Bcb();
- return a == b ? 0 : a ? 1 : -1;
- }
- function Opb(a, b, c2) {
- return Npb(a, BD(b, 22), c2);
- }
- function Bz(a, b, c2) {
- return a.apply(b, c2);
- }
- function Sfb(a, b, c2) {
- a.a += zfb(b, 0, c2);
- return a;
- }
- function ijb(a, b) {
- var c2;
- c2 = a.e;
- a.e = b;
- return c2;
- }
- function trb(a, b) {
- var c2;
- c2 = a[hke];
- c2.call(a, b);
- }
- function urb(a, b) {
- var c2;
- c2 = a[hke];
- c2.call(a, b);
- }
- function Aib(a, b) {
- a.a.Vc(a.b, b);
- ++a.b;
- a.c = -1;
- }
- function Urb(a) {
- Uhb(a.e);
- a.d.b = a.d;
- a.d.a = a.d;
- }
- function _f(a) {
- a.b ? _f(a.b) : a.f.c.zc(a.e, a.d);
- }
- function _Ab(a, b, c2) {
- EAb();
- MBb(a, b.Ce(a.a, c2));
- }
- function Bxb(a, b) {
- return Vd(Cwb(a.a, b, true));
- }
- function Cxb(a, b) {
- return Vd(Dwb(a.a, b, true));
- }
- function _Bb(a, b) {
- return eCb(new Array(b), a);
- }
- function HD(a) {
- return String.fromCharCode(a);
- }
- function mz(a) {
- return a == null ? null : a.message;
- }
- function gRb() {
- this.a = new Rkb();
- this.b = new Rkb();
- }
- function iTb() {
- this.a = new MQb();
- this.b = new tTb();
- }
- function tDb() {
- this.b = new d7c();
- this.c = new Rkb();
- }
- function _Qb() {
- this.d = new d7c();
- this.e = new d7c();
- }
- function n_b() {
- this.n = new d7c();
- this.o = new d7c();
- }
- function $Gb() {
- this.n = new p0b();
- this.i = new I6c();
- }
- function sec() {
- this.a = new Umc();
- this.b = new mnc();
- }
- function NIc() {
- this.a = new Rkb();
- this.d = new Rkb();
- }
- function LDc() {
- this.b = new Tqb();
- this.a = new Tqb();
- }
- function hSc() {
- this.b = new Lqb();
- this.a = new Lqb();
- }
- function HRc() {
- this.b = new tRc();
- this.a = new hRc();
- }
- function aHb() {
- $Gb.call(this);
- this.a = new d7c();
- }
- function Ywb(a) {
- Zwb.call(this, a, (lxb(), hxb));
- }
- function J_b(a, b, c2, d) {
- B_b.call(this, a, b, c2, d);
- }
- function sqd(a, b, c2) {
- c2 != null && kmd(b, Wqd(a, c2));
- }
- function tqd(a, b, c2) {
- c2 != null && lmd(b, Wqd(a, c2));
- }
- function Tod(a, b, c2) {
- c2 = _hd(a, b, 11, c2);
- return c2;
- }
- function P6c(a, b) {
- a.a += b.a;
- a.b += b.b;
- return a;
- }
- function c7c(a, b) {
- a.a -= b.a;
- a.b -= b.b;
- return a;
- }
- function u7b(a, b) {
- return a.n.a = (uCb(b), b) + 10;
- }
- function v7b(a, b) {
- return a.n.a = (uCb(b), b) + 10;
- }
- function dLd(a, b) {
- return b == a || pud(UKd(b), a);
- }
- function PYd(a, b) {
- return Rhb(a.a, b, "") == null;
- }
- function E2b(a, b) {
- x2b();
- return !f_b(b.d.i, a);
- }
- function rjc(a, b) {
- fad(a.f) ? sjc(a, b) : tjc(a, b);
- }
- function h1d(a, b) {
- var c2;
- c2 = b.Hh(a.a);
- return c2;
- }
- function Cyd(a, b) {
- qcb.call(this, gve + a + mue + b);
- }
- function gUd(a, b, c2, d) {
- cUd.call(this, a, b, c2, d);
- }
- function Q4d(a, b, c2, d) {
- cUd.call(this, a, b, c2, d);
- }
- function U4d(a, b, c2, d) {
- Q4d.call(this, a, b, c2, d);
- }
- function n5d(a, b, c2, d) {
- i5d.call(this, a, b, c2, d);
- }
- function p5d(a, b, c2, d) {
- i5d.call(this, a, b, c2, d);
- }
- function v5d(a, b, c2, d) {
- i5d.call(this, a, b, c2, d);
- }
- function t5d(a, b, c2, d) {
- p5d.call(this, a, b, c2, d);
- }
- function A5d(a, b, c2, d) {
- p5d.call(this, a, b, c2, d);
- }
- function y5d(a, b, c2, d) {
- v5d.call(this, a, b, c2, d);
- }
- function D5d(a, b, c2, d) {
- A5d.call(this, a, b, c2, d);
- }
- function d6d(a, b, c2, d) {
- Y5d.call(this, a, b, c2, d);
- }
- function Vp(a, b, c2) {
- this.a = a;
- qc.call(this, b, c2);
- }
- function tk(a, b, c2) {
- this.c = b;
- this.b = c2;
- this.a = a;
- }
- function ik(a, b, c2) {
- return a.d = BD(b.Kb(c2), 164);
- }
- function j6d(a, b) {
- return a.Aj().Nh().Kh(a, b);
- }
- function h6d(a, b) {
- return a.Aj().Nh().Ih(a, b);
- }
- function Fdb(a, b) {
- return uCb(a), PD(a) === PD(b);
- }
- function dfb(a, b) {
- return uCb(a), PD(a) === PD(b);
- }
- function Dxb(a, b) {
- return Vd(Cwb(a.a, b, false));
- }
- function Exb(a, b) {
- return Vd(Dwb(a.a, b, false));
- }
- function vBb(a, b) {
- return a.b.sd(new yBb(a, b));
- }
- function BBb(a, b) {
- return a.b.sd(new EBb(a, b));
- }
- function HBb(a, b) {
- return a.b.sd(new KBb(a, b));
- }
- function lfb(a, b, c2) {
- return a.lastIndexOf(b, c2);
- }
- function uTb(a, b, c2) {
- return Kdb(a[b.b], a[c2.b]);
- }
- function RTb(a, b) {
- return yNb(b, (Nyc(), Cwc), a);
- }
- function fmc(a, b) {
- return beb(b.a.d.p, a.a.d.p);
- }
- function emc(a, b) {
- return beb(a.a.d.p, b.a.d.p);
- }
- function _Oc(a, b) {
- return Kdb(a.c - a.s, b.c - b.s);
- }
- function S_b(a) {
- return !a.c ? -1 : Jkb(a.c.a, a, 0);
- }
- function Vxd(a) {
- return a < 100 ? null : new Ixd(a);
+ }, "anonymous"),
+ rules: [/^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i],
+ conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [48, 49], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser11.parser = parser11;
+ requirementDiagram_default = parser11;
+ }
+ });
+
+ // src/diagrams/requirement/requirementDb.js
+ var relations, latestRequirement, requirements, latestElement, elements, RequirementType, RiskLevel, VerifyType, Relationships, addRequirement, getRequirements, setNewReqId, setNewReqText, setNewReqRisk, setNewReqVerifyMethod, addElement, getElements, setNewElementType, setNewElementDocRef, addRelationship2, getRelationships2, clear16, requirementDb_default;
+ var init_requirementDb = __esm({
+ "src/diagrams/requirement/requirementDb.js"() {
+ "use strict";
+ init_diagramAPI();
+ init_logger();
+ init_commonDb();
+ relations = [];
+ latestRequirement = {};
+ requirements = /* @__PURE__ */ new Map();
+ latestElement = {};
+ elements = /* @__PURE__ */ new Map();
+ RequirementType = {
+ REQUIREMENT: "Requirement",
+ FUNCTIONAL_REQUIREMENT: "Functional Requirement",
+ INTERFACE_REQUIREMENT: "Interface Requirement",
+ PERFORMANCE_REQUIREMENT: "Performance Requirement",
+ PHYSICAL_REQUIREMENT: "Physical Requirement",
+ DESIGN_CONSTRAINT: "Design Constraint"
+ };
+ RiskLevel = {
+ LOW_RISK: "Low",
+ MED_RISK: "Medium",
+ HIGH_RISK: "High"
+ };
+ VerifyType = {
+ VERIFY_ANALYSIS: "Analysis",
+ VERIFY_DEMONSTRATION: "Demonstration",
+ VERIFY_INSPECTION: "Inspection",
+ VERIFY_TEST: "Test"
+ };
+ Relationships = {
+ CONTAINS: "contains",
+ COPIES: "copies",
+ DERIVES: "derives",
+ SATISFIES: "satisfies",
+ VERIFIES: "verifies",
+ REFINES: "refines",
+ TRACES: "traces"
+ };
+ addRequirement = /* @__PURE__ */ __name((name, type3) => {
+ if (!requirements.has(name)) {
+ requirements.set(name, {
+ name,
+ type: type3,
+ id: latestRequirement.id,
+ text: latestRequirement.text,
+ risk: latestRequirement.risk,
+ verifyMethod: latestRequirement.verifyMethod
+ });
+ }
+ latestRequirement = {};
+ return requirements.get(name);
+ }, "addRequirement");
+ getRequirements = /* @__PURE__ */ __name(() => requirements, "getRequirements");
+ setNewReqId = /* @__PURE__ */ __name((id27) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.id = id27;
+ }
+ }, "setNewReqId");
+ setNewReqText = /* @__PURE__ */ __name((text2) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.text = text2;
+ }
+ }, "setNewReqText");
+ setNewReqRisk = /* @__PURE__ */ __name((risk) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.risk = risk;
+ }
+ }, "setNewReqRisk");
+ setNewReqVerifyMethod = /* @__PURE__ */ __name((verifyMethod) => {
+ if (latestRequirement !== void 0) {
+ latestRequirement.verifyMethod = verifyMethod;
+ }
+ }, "setNewReqVerifyMethod");
+ addElement = /* @__PURE__ */ __name((name) => {
+ if (!elements.has(name)) {
+ elements.set(name, {
+ name,
+ type: latestElement.type,
+ docRef: latestElement.docRef
+ });
+ log.info("Added new requirement: ", name);
+ }
+ latestElement = {};
+ return elements.get(name);
+ }, "addElement");
+ getElements = /* @__PURE__ */ __name(() => elements, "getElements");
+ setNewElementType = /* @__PURE__ */ __name((type3) => {
+ if (latestElement !== void 0) {
+ latestElement.type = type3;
+ }
+ }, "setNewElementType");
+ setNewElementDocRef = /* @__PURE__ */ __name((docRef) => {
+ if (latestElement !== void 0) {
+ latestElement.docRef = docRef;
+ }
+ }, "setNewElementDocRef");
+ addRelationship2 = /* @__PURE__ */ __name((type3, src, dst) => {
+ relations.push({
+ type: type3,
+ src,
+ dst
+ });
+ }, "addRelationship");
+ getRelationships2 = /* @__PURE__ */ __name(() => relations, "getRelationships");
+ clear16 = /* @__PURE__ */ __name(() => {
+ relations = [];
+ latestRequirement = {};
+ requirements = /* @__PURE__ */ new Map();
+ latestElement = {};
+ elements = /* @__PURE__ */ new Map();
+ clear();
+ }, "clear");
+ requirementDb_default = {
+ RequirementType,
+ RiskLevel,
+ VerifyType,
+ Relationships,
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().req, "getConfig"),
+ addRequirement,
+ getRequirements,
+ setNewReqId,
+ setNewReqText,
+ setNewReqRisk,
+ setNewReqVerifyMethod,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addElement,
+ getElements,
+ setNewElementType,
+ setNewElementDocRef,
+ addRelationship: addRelationship2,
+ getRelationships: getRelationships2,
+ clear: clear16
+ };
+ }
+ });
+
+ // src/diagrams/requirement/styles.js
+ var getStyles8, styles_default7;
+ var init_styles7 = __esm({
+ "src/diagrams/requirement/styles.js"() {
+ "use strict";
+ getStyles8 = /* @__PURE__ */ __name((options3) => `
+
+ marker {
+ fill: ${options3.relationColor};
+ stroke: ${options3.relationColor};
+ }
+
+ marker.cross {
+ stroke: ${options3.lineColor};
+ }
+
+ svg {
+ font-family: ${options3.fontFamily};
+ font-size: ${options3.fontSize};
+ }
+
+ .reqBox {
+ fill: ${options3.requirementBackground};
+ fill-opacity: 1.0;
+ stroke: ${options3.requirementBorderColor};
+ stroke-width: ${options3.requirementBorderSize};
+ }
+
+ .reqTitle, .reqLabel{
+ fill: ${options3.requirementTextColor};
+ }
+ .reqLabelBox {
+ fill: ${options3.relationLabelBackground};
+ fill-opacity: 1.0;
+ }
+
+ .req-title-line {
+ stroke: ${options3.requirementBorderColor};
+ stroke-width: ${options3.requirementBorderSize};
+ }
+ .relationshipLine {
+ stroke: ${options3.relationColor};
+ stroke-width: 1;
+ }
+ .relationshipLabel {
+ fill: ${options3.relationLabelColor};
+ }
+
+`, "getStyles");
+ styles_default7 = getStyles8;
+ }
+ });
+
+ // src/diagrams/requirement/requirementMarkers.js
+ var ReqMarkers, insertLineEndings, requirementMarkers_default;
+ var init_requirementMarkers = __esm({
+ "src/diagrams/requirement/requirementMarkers.js"() {
+ "use strict";
+ ReqMarkers = {
+ CONTAINS: "contains",
+ ARROW: "arrow"
+ };
+ insertLineEndings = /* @__PURE__ */ __name((parentNode, conf8) => {
+ let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf8.line_height / 2).attr("markerWidth", conf8.line_height).attr("markerHeight", conf8.line_height).attr("orient", "auto").append("g");
+ containsNode.append("circle").attr("cx", conf8.line_height / 2).attr("cy", conf8.line_height / 2).attr("r", conf8.line_height / 2).attr("fill", "none");
+ containsNode.append("line").attr("x1", 0).attr("x2", conf8.line_height).attr("y1", conf8.line_height / 2).attr("y2", conf8.line_height / 2).attr("stroke-width", 1);
+ containsNode.append("line").attr("y1", 0).attr("y2", conf8.line_height).attr("x1", conf8.line_height / 2).attr("x2", conf8.line_height / 2).attr("stroke-width", 1);
+ parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf8.line_height).attr("refY", 0.5 * conf8.line_height).attr("markerWidth", conf8.line_height).attr("markerHeight", conf8.line_height).attr("orient", "auto").append("path").attr(
+ "d",
+ `M0,0
+ L${conf8.line_height},${conf8.line_height / 2}
+ M${conf8.line_height},${conf8.line_height / 2}
+ L0,${conf8.line_height}`
+ ).attr("stroke-width", 1);
+ }, "insertLineEndings");
+ requirementMarkers_default = {
+ ReqMarkers,
+ insertLineEndings
+ };
+ }
+ });
+
+ // src/diagrams/requirement/requirementRenderer.js
+ var conf3, relCnt2, newRectNode, newTitleNode, newBodyNode, addEdgeLabel, drawRelationshipFromLayout2, drawReqs, drawElements, addRelationships2, adjustEntities2, elementString, draw10, requirementRenderer_default;
+ var init_requirementRenderer = __esm({
+ "src/diagrams/requirement/requirementRenderer.js"() {
+ "use strict";
+ init_src32();
+ init_dagre();
+ init_graphlib();
+ init_diagramAPI();
+ init_logger();
+ init_setupGraphViewbox();
+ init_common();
+ init_requirementMarkers();
+ conf3 = {};
+ relCnt2 = 0;
+ newRectNode = /* @__PURE__ */ __name((parentNode, id27) => {
+ return parentNode.insert("rect", "#" + id27).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf3.rect_min_width + "px").attr("height", conf3.rect_min_height + "px");
+ }, "newRectNode");
+ newTitleNode = /* @__PURE__ */ __name((parentNode, id27, txts) => {
+ let x5 = conf3.rect_min_width / 2;
+ let title2 = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id27).attr("x", x5).attr("y", conf3.rect_padding).attr("dominant-baseline", "hanging");
+ let i2 = 0;
+ txts.forEach((textStr) => {
+ if (i2 == 0) {
+ title2.append("tspan").attr("text-anchor", "middle").attr("x", conf3.rect_min_width / 2).attr("dy", 0).text(textStr);
+ } else {
+ title2.append("tspan").attr("text-anchor", "middle").attr("x", conf3.rect_min_width / 2).attr("dy", conf3.line_height * 0.75).text(textStr);
+ }
+ i2++;
+ });
+ let yPadding = 1.5 * conf3.rect_padding;
+ let linePadding = i2 * conf3.line_height * 0.75;
+ let totalY = yPadding + linePadding;
+ parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf3.rect_min_width).attr("y1", totalY).attr("y2", totalY);
+ return {
+ titleNode: title2,
+ y: totalY
+ };
+ }, "newTitleNode");
+ newBodyNode = /* @__PURE__ */ __name((parentNode, id27, txts, yStart) => {
+ let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id27).attr("x", conf3.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging");
+ let currentRow = 0;
+ const charLimit = 30;
+ let wrappedTxts = [];
+ txts.forEach((textStr) => {
+ let currentTextLen = textStr.length;
+ while (currentTextLen > charLimit && currentRow < 3) {
+ let firstPart = textStr.substring(0, charLimit);
+ textStr = textStr.substring(charLimit, textStr.length);
+ currentTextLen = textStr.length;
+ wrappedTxts[wrappedTxts.length] = firstPart;
+ currentRow++;
+ }
+ if (currentRow == 3) {
+ let lastStr = wrappedTxts[wrappedTxts.length - 1];
+ wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "...";
+ } else {
+ wrappedTxts[wrappedTxts.length] = textStr;
+ }
+ currentRow = 0;
+ });
+ wrappedTxts.forEach((textStr) => {
+ body.append("tspan").attr("x", conf3.rect_padding).attr("dy", conf3.line_height).text(textStr);
+ });
+ return body;
+ }, "newBodyNode");
+ addEdgeLabel = /* @__PURE__ */ __name((parentNode, svgPath, conf8, txt) => {
+ const len = svgPath.node().getTotalLength();
+ const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
+ const labelId = "rel" + relCnt2;
+ relCnt2++;
+ const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt);
+ const labelBBox = labelNode.node().getBBox();
+ parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%");
+ }, "addEdgeLabel");
+ drawRelationshipFromLayout2 = /* @__PURE__ */ __name(function(svg, rel2, g2, insert, diagObj) {
+ const edge = g2.edge(elementString(rel2.src), elementString(rel2.dst));
+ const lineFunction = line_default().x(function(d2) {
+ return d2.x;
+ }).y(function(d2) {
+ return d2.y;
+ });
+ const svgPath = svg.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none");
+ if (rel2.type == diagObj.db.Relationships.CONTAINS) {
+ svgPath.attr(
+ "marker-start",
+ "url(" + common_default.getUrl(conf3.arrowMarkerAbsolute) + "#" + rel2.type + "_line_ending)"
+ );
+ } else {
+ svgPath.attr("stroke-dasharray", "10,7");
+ svgPath.attr(
+ "marker-end",
+ "url(" + common_default.getUrl(conf3.arrowMarkerAbsolute) + "#" + requirementMarkers_default.ReqMarkers.ARROW + "_line_ending)"
+ );
+ }
+ addEdgeLabel(svg, svgPath, conf3, `<<${rel2.type}>>`);
+ return;
+ }, "drawRelationshipFromLayout");
+ drawReqs = /* @__PURE__ */ __name((reqs, graph, svgNode2) => {
+ reqs.forEach((req, reqName) => {
+ reqName = elementString(reqName);
+ log.info("Added new requirement: ", reqName);
+ const groupNode = svgNode2.append("g").attr("id", reqName);
+ const textId = "req-" + reqName;
+ const rectNode = newRectNode(groupNode, textId);
+ let nodes6 = [];
+ let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [
+ `<<${req.type}>>`,
+ `${req.name}`
+ ]);
+ nodes6.push(titleNodeInfo.titleNode);
+ let bodyNode = newBodyNode(
+ groupNode,
+ reqName + "_body",
+ [
+ `Id: ${req.id}`,
+ `Text: ${req.text}`,
+ `Risk: ${req.risk}`,
+ `Verification: ${req.verifyMethod}`
+ ],
+ titleNodeInfo.y
+ );
+ nodes6.push(bodyNode);
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(reqName, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id: reqName
+ });
+ });
+ }, "drawReqs");
+ drawElements = /* @__PURE__ */ __name((els, graph, svgNode2) => {
+ els.forEach((el, elName) => {
+ const id27 = elementString(elName);
+ const groupNode = svgNode2.append("g").attr("id", id27);
+ const textId = "element-" + id27;
+ const rectNode = newRectNode(groupNode, textId);
+ let nodes6 = [];
+ let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<>`, `${elName}`]);
+ nodes6.push(titleNodeInfo.titleNode);
+ let bodyNode = newBodyNode(
+ groupNode,
+ textId + "_body",
+ [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`],
+ titleNodeInfo.y
+ );
+ nodes6.push(bodyNode);
+ const rectBBox = rectNode.node().getBBox();
+ graph.setNode(id27, {
+ width: rectBBox.width,
+ height: rectBBox.height,
+ shape: "rect",
+ id: id27
+ });
+ });
+ }, "drawElements");
+ addRelationships2 = /* @__PURE__ */ __name((relationships2, g2) => {
+ relationships2.forEach(function(r2) {
+ let src = elementString(r2.src);
+ let dst = elementString(r2.dst);
+ g2.setEdge(src, dst, { relationship: r2 });
+ });
+ return relationships2;
+ }, "addRelationships");
+ adjustEntities2 = /* @__PURE__ */ __name(function(svgNode2, graph) {
+ graph.nodes().forEach(function(v3) {
+ if (v3 !== void 0 && graph.node(v3) !== void 0) {
+ svgNode2.select("#" + v3);
+ svgNode2.select("#" + v3).attr(
+ "transform",
+ "translate(" + (graph.node(v3).x - graph.node(v3).width / 2) + "," + (graph.node(v3).y - graph.node(v3).height / 2) + " )"
+ );
+ }
+ });
+ return;
+ }, "adjustEntities");
+ elementString = /* @__PURE__ */ __name((str2) => {
+ return str2.replace(/\s/g, "").replace(/\./g, "_");
+ }, "elementString");
+ draw10 = /* @__PURE__ */ __name((text2, id27, _version, diagObj) => {
+ conf3 = getConfig2().requirement;
+ const securityLevel = conf3.securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = root4.select(`[id='${id27}']`);
+ requirementMarkers_default.insertLineEndings(svg, conf3);
+ const g2 = new Graph({
+ multigraph: false,
+ compound: false,
+ directed: true
+ }).setGraph({
+ rankdir: conf3.layoutDirection,
+ marginx: 20,
+ marginy: 20,
+ nodesep: 100,
+ edgesep: 100,
+ ranksep: 100
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ let requirements2 = diagObj.db.getRequirements();
+ let elements3 = diagObj.db.getElements();
+ let relationships2 = diagObj.db.getRelationships();
+ drawReqs(requirements2, g2, svg);
+ drawElements(elements3, g2, svg);
+ addRelationships2(relationships2, g2);
+ layout(g2);
+ adjustEntities2(svg, g2);
+ relationships2.forEach(function(rel2) {
+ drawRelationshipFromLayout2(svg, rel2, g2, id27, diagObj);
+ });
+ const padding3 = conf3.rect_padding;
+ const svgBounds = svg.node().getBBox();
+ const width3 = svgBounds.width + padding3 * 2;
+ const height2 = svgBounds.height + padding3 * 2;
+ configureSvgSize(svg, height2, width3, conf3.useMaxWidth);
+ svg.attr("viewBox", `${svgBounds.x - padding3} ${svgBounds.y - padding3} ${width3} ${height2}`);
+ }, "draw");
+ requirementRenderer_default = {
+ draw: draw10
+ };
+ }
+ });
+
+ // src/diagrams/requirement/requirementDiagram.ts
+ var requirementDiagram_exports = {};
+ __export(requirementDiagram_exports, {
+ diagram: () => diagram10
+ });
+ var diagram10;
+ var init_requirementDiagram2 = __esm({
+ "src/diagrams/requirement/requirementDiagram.ts"() {
+ "use strict";
+ init_requirementDiagram();
+ init_requirementDb();
+ init_styles7();
+ init_requirementRenderer();
+ diagram10 = {
+ parser: requirementDiagram_default,
+ db: requirementDb_default,
+ renderer: requirementRenderer_default,
+ styles: styles_default7
+ };
+ }
+ });
+
+ // src/diagrams/sequence/parser/sequenceDiagram.jison
+ var parser12, sequenceDiagram_default;
+ var init_sequenceDiagram = __esm({
+ "src/diagrams/sequence/parser/sequenceDiagram.jison"() {
+ "use strict";
+ parser12 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 16], $V9 = [1, 17], $Va = [1, 18], $Vb = [1, 24], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 35], $Vn = [1, 36], $Vo = [1, 37], $Vp = [1, 38], $Vq = [1, 39], $Vr = [1, 41], $Vs = [1, 42], $Vt = [1, 43], $Vu = [1, 44], $Vv = [1, 45], $Vw = [1, 46], $Vx = [1, 4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $Vy = [4, 5, 16, 50, 52, 53], $Vz = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VA = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VB = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VC = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VD = [68, 69, 70], $VE = [1, 122];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "box_section": 10, "box_line": 11, "participant_statement": 12, "create": 13, "box": 14, "restOfLine": 15, "end": 16, "signal": 17, "autonumber": 18, "NUM": 19, "off": 20, "activate": 21, "actor": 22, "deactivate": 23, "note_statement": 24, "links_statement": 25, "link_statement": 26, "properties_statement": 27, "details_statement": 28, "title": 29, "legacy_title": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "loop": 36, "rect": 37, "opt": 38, "alt": 39, "else_sections": 40, "par": 41, "par_sections": 42, "par_over": 43, "critical": 44, "option_sections": 45, "break": 46, "option": 47, "and": 48, "else": 49, "participant": 50, "AS": 51, "participant_actor": 52, "destroy": 53, "note": 54, "placement": 55, "text2": 56, "over": 57, "actor_pair": 58, "links": 59, "link": 60, "properties": 61, "details": 62, "spaceList": 63, ",": 64, "left_of": 65, "right_of": 66, "signaltype": 67, "+": 68, "-": 69, "ACTOR": 70, "SOLID_OPEN_ARROW": 71, "DOTTED_OPEN_ARROW": 72, "SOLID_ARROW": 73, "BIDIRECTIONAL_SOLID_ARROW": 74, "DOTTED_ARROW": 75, "BIDIRECTIONAL_DOTTED_ARROW": 76, "SOLID_CROSS": 77, "DOTTED_CROSS": 78, "SOLID_POINT": 79, "DOTTED_POINT": 80, "TXT": 81, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 6: "SD", 13: "create", 14: "box", 15: "restOfLine", 16: "end", 18: "autonumber", 19: "NUM", 20: "off", 21: "activate", 23: "deactivate", 29: "title", 30: "legacy_title", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 36: "loop", 37: "rect", 38: "opt", 39: "alt", 41: "par", 43: "par_over", 44: "critical", 46: "break", 47: "option", 48: "and", 49: "else", 50: "participant", 51: "AS", 52: "participant_actor", 53: "destroy", 54: "note", 57: "over", 59: "links", 60: "link", 61: "properties", 62: "details", 64: ",", 65: "left_of", 66: "right_of", 68: "+", 69: "-", 70: "ACTOR", 71: "SOLID_OPEN_ARROW", 72: "DOTTED_OPEN_ARROW", 73: "SOLID_ARROW", 74: "BIDIRECTIONAL_SOLID_ARROW", 75: "DOTTED_ARROW", 76: "BIDIRECTIONAL_DOTTED_ARROW", 77: "SOLID_CROSS", 78: "DOTTED_CROSS", 79: "SOLID_POINT", 80: "DOTTED_POINT", 81: "TXT" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [10, 0], [10, 2], [11, 2], [11, 1], [11, 1], [9, 1], [9, 2], [9, 4], [9, 2], [9, 4], [9, 3], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [45, 1], [45, 4], [42, 1], [42, 4], [40, 1], [40, 4], [12, 5], [12, 3], [12, 5], [12, 3], [12, 3], [24, 4], [24, 4], [25, 3], [26, 3], [27, 3], [28, 3], [63, 2], [63, 1], [58, 3], [58, 1], [55, 1], [55, 1], [17, 5], [17, 5], [17, 4], [22, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [56, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 3:
+ yy.apply($$[$0]);
+ return $$[$0];
+ break;
+ case 4:
+ case 9:
+ this.$ = [];
+ break;
+ case 5:
+ case 10:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 6:
+ case 7:
+ case 11:
+ case 12:
+ this.$ = $$[$0];
+ break;
+ case 8:
+ case 13:
+ this.$ = [];
+ break;
+ case 15:
+ $$[$0].type = "createParticipant";
+ this.$ = $$[$0];
+ break;
+ case 16:
+ $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) });
+ $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] });
+ this.$ = $$[$0 - 1];
+ break;
+ case 18:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 19:
+ this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 20:
+ this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 21:
+ this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
+ break;
+ case 22:
+ this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1].actor };
+ break;
+ case 23:
+ this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1].actor };
+ break;
+ case 29:
+ yy.setDiagramTitle($$[$0].substring(6));
+ this.$ = $$[$0].substring(6);
+ break;
+ case 30:
+ yy.setDiagramTitle($$[$0].substring(7));
+ this.$ = $$[$0].substring(7);
+ break;
+ case 31:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 32:
+ case 33:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 34:
+ $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });
+ $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 35:
+ $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });
+ $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 36:
+ $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });
+ $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 37:
+ $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });
+ $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 38:
+ $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });
+ $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 39:
+ $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START });
+ $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 40:
+ $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });
+ $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 41:
+ $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });
+ $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });
+ this.$ = $$[$0 - 1];
+ break;
+ case 43:
+ this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);
+ break;
+ case 45:
+ this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);
+ break;
+ case 47:
+ this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);
+ break;
+ case 48:
+ $$[$0 - 3].draw = "participant";
+ $$[$0 - 3].type = "addParticipant";
+ $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
+ this.$ = $$[$0 - 3];
+ break;
+ case 49:
+ $$[$0 - 1].draw = "participant";
+ $$[$0 - 1].type = "addParticipant";
+ this.$ = $$[$0 - 1];
+ break;
+ case 50:
+ $$[$0 - 3].draw = "actor";
+ $$[$0 - 3].type = "addParticipant";
+ $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
+ this.$ = $$[$0 - 3];
+ break;
+ case 51:
+ $$[$0 - 1].draw = "actor";
+ $$[$0 - 1].type = "addParticipant";
+ this.$ = $$[$0 - 1];
+ break;
+ case 52:
+ $$[$0 - 1].type = "destroyParticipant";
+ this.$ = $$[$0 - 1];
+ break;
+ case 53:
+ this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 54:
+ $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);
+ $$[$0 - 2][0] = $$[$0 - 2][0].actor;
+ $$[$0 - 2][1] = $$[$0 - 2][1].actor;
+ this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];
+ break;
+ case 55:
+ this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 56:
+ this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 57:
+ this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 58:
+ this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }];
+ break;
+ case 61:
+ this.$ = [$$[$0 - 2], $$[$0]];
+ break;
+ case 62:
+ this.$ = $$[$0];
+ break;
+ case 63:
+ this.$ = yy.PLACEMENT.LEFTOF;
+ break;
+ case 64:
+ this.$ = yy.PLACEMENT.RIGHTOF;
+ break;
+ case 65:
+ this.$ = [
+ $$[$0 - 4],
+ $$[$0 - 1],
+ { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0], activate: true },
+ { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1].actor }
+ ];
+ break;
+ case 66:
+ this.$ = [
+ $$[$0 - 4],
+ $$[$0 - 1],
+ { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
+ { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4].actor }
+ ];
+ break;
+ case 67:
+ this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];
+ break;
+ case 68:
+ this.$ = { type: "addParticipant", actor: $$[$0] };
+ break;
+ case 69:
+ this.$ = yy.LINETYPE.SOLID_OPEN;
+ break;
+ case 70:
+ this.$ = yy.LINETYPE.DOTTED_OPEN;
+ break;
+ case 71:
+ this.$ = yy.LINETYPE.SOLID;
+ break;
+ case 72:
+ this.$ = yy.LINETYPE.BIDIRECTIONAL_SOLID;
+ break;
+ case 73:
+ this.$ = yy.LINETYPE.DOTTED;
+ break;
+ case 74:
+ this.$ = yy.LINETYPE.BIDIRECTIONAL_DOTTED;
+ break;
+ case 75:
+ this.$ = yy.LINETYPE.SOLID_CROSS;
+ break;
+ case 76:
+ this.$ = yy.LINETYPE.DOTTED_CROSS;
+ break;
+ case 77:
+ this.$ = yy.LINETYPE.SOLID_POINT;
+ break;
+ case 78:
+ this.$ = yy.LINETYPE.DOTTED_POINT;
+ break;
+ case 79:
+ this.$ = yy.parseMessage($$[$0].trim().substring(1));
+ break;
}
- function ecd(a) {
- return a == Zbd || a == _bd || a == $bd;
+ }, "anonymous"),
+ table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o2([1, 4, 5, 13, 14, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o2($Vx, [2, 5]), { 9: 47, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o2($Vx, [2, 7]), o2($Vx, [2, 8]), o2($Vx, [2, 14]), { 12: 48, 50: $Vo, 52: $Vp, 53: $Vq }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 70: $Vw }, { 22: 55, 70: $Vw }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, o2($Vx, [2, 29]), o2($Vx, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, o2($Vx, [2, 33]), { 15: [1, 63] }, { 15: [1, 64] }, { 15: [1, 65] }, { 15: [1, 66] }, { 15: [1, 67] }, { 15: [1, 68] }, { 15: [1, 69] }, { 15: [1, 70] }, { 22: 71, 70: $Vw }, { 22: 72, 70: $Vw }, { 22: 73, 70: $Vw }, { 67: 74, 71: [1, 75], 72: [1, 76], 73: [1, 77], 74: [1, 78], 75: [1, 79], 76: [1, 80], 77: [1, 81], 78: [1, 82], 79: [1, 83], 80: [1, 84] }, { 55: 85, 57: [1, 86], 65: [1, 87], 66: [1, 88] }, { 22: 89, 70: $Vw }, { 22: 90, 70: $Vw }, { 22: 91, 70: $Vw }, { 22: 92, 70: $Vw }, o2([5, 51, 64, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], [2, 68]), o2($Vx, [2, 6]), o2($Vx, [2, 15]), o2($Vy, [2, 9], { 10: 93 }), o2($Vx, [2, 17]), { 5: [1, 95], 19: [1, 94] }, { 5: [1, 96] }, o2($Vx, [2, 21]), { 5: [1, 97] }, { 5: [1, 98] }, o2($Vx, [2, 24]), o2($Vx, [2, 25]), o2($Vx, [2, 26]), o2($Vx, [2, 27]), o2($Vx, [2, 28]), o2($Vx, [2, 31]), o2($Vx, [2, 32]), o2($Vz, $V3, { 7: 99 }), o2($Vz, $V3, { 7: 100 }), o2($Vz, $V3, { 7: 101 }), o2($VA, $V3, { 40: 102, 7: 103 }), o2($VB, $V3, { 42: 104, 7: 105 }), o2($VB, $V3, { 7: 105, 42: 106 }), o2($VC, $V3, { 45: 107, 7: 108 }), o2($Vz, $V3, { 7: 109 }), { 5: [1, 111], 51: [1, 110] }, { 5: [1, 113], 51: [1, 112] }, { 5: [1, 114] }, { 22: 117, 68: [1, 115], 69: [1, 116], 70: $Vw }, o2($VD, [2, 69]), o2($VD, [2, 70]), o2($VD, [2, 71]), o2($VD, [2, 72]), o2($VD, [2, 73]), o2($VD, [2, 74]), o2($VD, [2, 75]), o2($VD, [2, 76]), o2($VD, [2, 77]), o2($VD, [2, 78]), { 22: 118, 70: $Vw }, { 22: 120, 58: 119, 70: $Vw }, { 70: [2, 63] }, { 70: [2, 64] }, { 56: 121, 81: $VE }, { 56: 123, 81: $VE }, { 56: 124, 81: $VE }, { 56: 125, 81: $VE }, { 4: [1, 128], 5: [1, 130], 11: 127, 12: 129, 16: [1, 126], 50: $Vo, 52: $Vp, 53: $Vq }, { 5: [1, 131] }, o2($Vx, [2, 19]), o2($Vx, [2, 20]), o2($Vx, [2, 22]), o2($Vx, [2, 23]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 132], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 133], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 134], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 135] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 46], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 49: [1, 136], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 137] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 44], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 48: [1, 138], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 139] }, { 16: [1, 140] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 42], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 47: [1, 141], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 142], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 15: [1, 143] }, o2($Vx, [2, 49]), { 15: [1, 144] }, o2($Vx, [2, 51]), o2($Vx, [2, 52]), { 22: 145, 70: $Vw }, { 22: 146, 70: $Vw }, { 56: 147, 81: $VE }, { 56: 148, 81: $VE }, { 56: 149, 81: $VE }, { 64: [1, 150], 81: [2, 62] }, { 5: [2, 55] }, { 5: [2, 79] }, { 5: [2, 56] }, { 5: [2, 57] }, { 5: [2, 58] }, o2($Vx, [2, 16]), o2($Vy, [2, 10]), { 12: 151, 50: $Vo, 52: $Vp, 53: $Vq }, o2($Vy, [2, 12]), o2($Vy, [2, 13]), o2($Vx, [2, 18]), o2($Vx, [2, 34]), o2($Vx, [2, 35]), o2($Vx, [2, 36]), o2($Vx, [2, 37]), { 15: [1, 152] }, o2($Vx, [2, 38]), { 15: [1, 153] }, o2($Vx, [2, 39]), o2($Vx, [2, 40]), { 15: [1, 154] }, o2($Vx, [2, 41]), { 5: [1, 155] }, { 5: [1, 156] }, { 56: 157, 81: $VE }, { 56: 158, 81: $VE }, { 5: [2, 67] }, { 5: [2, 53] }, { 5: [2, 54] }, { 22: 159, 70: $Vw }, o2($Vy, [2, 11]), o2($VA, $V3, { 7: 103, 40: 160 }), o2($VB, $V3, { 7: 105, 42: 161 }), o2($VC, $V3, { 7: 108, 45: 162 }), o2($Vx, [2, 48]), o2($Vx, [2, 50]), { 5: [2, 65] }, { 5: [2, 66] }, { 81: [2, 61] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }],
+ defaultActions: { 5: [2, 1], 6: [2, 2], 87: [2, 63], 88: [2, 64], 121: [2, 55], 122: [2, 79], 123: [2, 56], 124: [2, 57], 125: [2, 58], 147: [2, 67], 148: [2, 53], 149: [2, 54], 157: [2, 65], 158: [2, 66], 159: [2, 61], 160: [2, 47], 161: [2, 45], 162: [2, 43] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function zAd(a, b) {
- return JD(b, 15) && Btd(a.c, b);
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function vyb(a, b) {
- if (lyb) {
- return;
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
}
- !!b && (a.d = b);
- }
- function ujb(a, b) {
- var c2;
- c2 = b;
- return !!Awb(a, c2);
- }
- function czd(a, b) {
- this.c = a;
- Pyd.call(this, a, b);
- }
- function fBb(a) {
- this.c = a;
- nvb.call(this, rie, 0);
- }
- function Avb(a, b) {
- Bvb.call(this, a, a.length, b);
- }
- function aId(a, b, c2) {
- return BD(a.c, 69).lk(b, c2);
- }
- function bId(a, b, c2) {
- return BD(a.c, 69).mk(b, c2);
- }
- function O2d(a, b, c2) {
- return N2d(a, BD(b, 332), c2);
- }
- function Q2d(a, b, c2) {
- return P2d(a, BD(b, 332), c2);
- }
- function i3d(a, b, c2) {
- return h3d(a, BD(b, 332), c2);
- }
- function k3d(a, b, c2) {
- return j3d(a, BD(b, 332), c2);
- }
- function tn(a, b) {
- return b == null ? null : Hv(a.b, b);
- }
- function Kcb(a) {
- return LD(a) ? (uCb(a), a) : a.ke();
- }
- function Ldb(a) {
- return !isNaN(a) && !isFinite(a);
- }
- function Wn(a) {
- Ql();
- this.a = (mmb(), new zob(a));
- }
- function dIc(a) {
- FHc();
- this.d = a;
- this.a = new jkb();
- }
- function xqb(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function Nrb(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function $sb(a, b, c2) {
- this.d = a;
- this.b = c2;
- this.a = b;
- }
- function Qsb(a) {
- Csb(this);
- Osb(this);
- ye(this, a);
- }
- function Tkb(a) {
- Ckb(this);
- bCb(this.c, 0, a.Pc());
- }
- function Xwb(a) {
- uib(a.a);
- Kwb(a.c, a.b);
- a.b = null;
- }
- function iyb(a) {
- this.a = a;
- Zfb();
- Cbb(Date.now());
- }
- function JCb() {
- JCb = ccb;
- GCb = new nb();
- ICb = new nb();
- }
- function ntb() {
- ntb = ccb;
- ltb = new otb();
- mtb = new qtb();
- }
- function kzd() {
- kzd = ccb;
- jzd = KC(SI, Uhe, 1, 0, 5, 1);
- }
- function tGd() {
- tGd = ccb;
- sGd = KC(SI, Uhe, 1, 0, 5, 1);
- }
- function $Gd() {
- $Gd = ccb;
- ZGd = KC(SI, Uhe, 1, 0, 5, 1);
- }
- function Ql() {
- Ql = ccb;
- new Zl((mmb(), mmb(), jmb));
- }
- function pxb(a) {
- lxb();
- return es((zxb(), yxb), a);
- }
- function Hyb(a) {
- Fyb();
- return es((Kyb(), Jyb), a);
- }
- function OEb(a) {
- MEb();
- return es((REb(), QEb), a);
- }
- function WEb(a) {
- UEb();
- return es((ZEb(), YEb), a);
- }
- function tFb(a) {
- rFb();
- return es((wFb(), vFb), a);
- }
- function iHb(a) {
- gHb();
- return es((lHb(), kHb), a);
- }
- function PHb(a) {
- NHb();
- return es((SHb(), RHb), a);
- }
- function GIb(a) {
- EIb();
- return es((JIb(), IIb), a);
- }
- function vJb(a) {
- qJb();
- return es((yJb(), xJb), a);
- }
- function xLb(a) {
- vLb();
- return es((ALb(), zLb), a);
- }
- function TMb(a) {
- RMb();
- return es((WMb(), VMb), a);
- }
- function TOb(a) {
- ROb();
- return es((WOb(), VOb), a);
- }
- function ePb(a) {
- cPb();
- return es((hPb(), gPb), a);
- }
- function ZRb(a) {
- XRb();
- return es((aSb(), _Rb), a);
- }
- function ATb(a) {
- yTb();
- return es((DTb(), CTb), a);
- }
- function sUb(a) {
- qUb();
- return es((vUb(), uUb), a);
- }
- function rWb(a) {
- lWb();
- return es((uWb(), tWb), a);
- }
- function TXb(a) {
- RXb();
- return es((WXb(), VXb), a);
- }
- function Mb(a, b) {
- if (!a) {
- throw vbb(new Wdb(b));
- }
- }
- function l0b(a) {
- j0b();
- return es((o0b(), n0b), a);
- }
- function r0b(a) {
- B_b.call(this, a.d, a.c, a.a, a.b);
- }
- function K_b(a) {
- B_b.call(this, a.d, a.c, a.a, a.b);
- }
- function mKb(a, b, c2) {
- this.b = a;
- this.c = b;
- this.a = c2;
- }
- function BZb(a, b, c2) {
- this.b = a;
- this.a = b;
- this.c = c2;
- }
- function TNb(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function uOb(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function S3b(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function Z6b(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function n9b(a, b, c2) {
- this.b = a;
- this.a = b;
- this.c = c2;
- }
- function x$b(a, b, c2) {
- this.e = b;
- this.b = a;
- this.d = c2;
- }
- function $Ab(a, b, c2) {
- EAb();
- a.a.Od(b, c2);
- return b;
- }
- function LGb(a) {
- var b;
- b = new KGb();
- b.e = a;
- return b;
- }
- function iLb(a) {
- var b;
- b = new fLb();
- b.b = a;
- return b;
- }
- function D6b() {
- D6b = ccb;
- B6b = new M6b();
- C6b = new P6b();
- }
- function Hgc() {
- Hgc = ccb;
- Fgc = new ghc();
- Ggc = new ihc();
- }
- function jbc(a) {
- gbc();
- return es((mbc(), lbc), a);
- }
- function Cjc(a) {
- Ajc();
- return es((Fjc(), Ejc), a);
- }
- function Clc(a) {
- Alc();
- return es((Flc(), Elc), a);
- }
- function Cpc(a) {
- Apc();
- return es((Fpc(), Epc), a);
- }
- function Kpc(a) {
- Ipc();
- return es((Npc(), Mpc), a);
- }
- function Wpc(a) {
- Rpc();
- return es((Zpc(), Ypc), a);
- }
- function $jc(a) {
- Xjc();
- return es((bkc(), akc), a);
- }
- function Hkc(a) {
- Fkc();
- return es((Kkc(), Jkc), a);
- }
- function dqc(a) {
- bqc();
- return es((gqc(), fqc), a);
- }
- function rqc(a) {
- mqc();
- return es((uqc(), tqc), a);
- }
- function zqc(a) {
- xqc();
- return es((Cqc(), Bqc), a);
- }
- function Iqc(a) {
- Gqc();
- return es((Lqc(), Kqc), a);
- }
- function Vqc(a) {
- Sqc();
- return es((Yqc(), Xqc), a);
- }
- function brc(a) {
- _qc();
- return es((erc(), drc), a);
- }
- function nrc(a) {
- lrc();
- return es((qrc(), prc), a);
- }
- function Arc(a) {
- yrc();
- return es((Drc(), Crc), a);
- }
- function Qrc(a) {
- Orc();
- return es((Trc(), Src), a);
- }
- function Zrc(a) {
- Xrc();
- return es((asc(), _rc), a);
- }
- function gsc(a) {
- esc();
- return es((jsc(), isc), a);
- }
- function osc(a) {
- msc();
- return es((rsc(), qsc), a);
- }
- function Etc(a) {
- Ctc();
- return es((Htc(), Gtc), a);
- }
- function qzc(a) {
- lzc();
- return es((tzc(), szc), a);
- }
- function Azc(a) {
- xzc();
- return es((Dzc(), Czc), a);
- }
- function Mzc(a) {
- Izc();
- return es((Pzc(), Ozc), a);
- }
- function MAc(a) {
- KAc();
- return es((PAc(), OAc), a);
- }
- function mAc(a) {
- kAc();
- return es((pAc(), oAc), a);
- }
- function vAc(a) {
- tAc();
- return es((yAc(), xAc), a);
- }
- function DAc(a) {
- BAc();
- return es((GAc(), FAc), a);
- }
- function VAc(a) {
- TAc();
- return es((YAc(), XAc), a);
- }
- function $zc(a) {
- Vzc();
- return es((bAc(), aAc), a);
- }
- function bBc(a) {
- _Ac();
- return es((eBc(), dBc), a);
- }
- function vBc(a) {
- tBc();
- return es((yBc(), xBc), a);
- }
- function EBc(a) {
- CBc();
- return es((HBc(), GBc), a);
- }
- function NBc(a) {
- LBc();
- return es((QBc(), PBc), a);
- }
- function tGc(a) {
- rGc();
- return es((wGc(), vGc), a);
- }
- function WIc(a) {
- UIc();
- return es((ZIc(), YIc), a);
- }
- function $Lc(a) {
- YLc();
- return es((bMc(), aMc), a);
- }
- function gMc(a) {
- eMc();
- return es((jMc(), iMc), a);
- }
- function JOc(a) {
- HOc();
- return es((MOc(), LOc), a);
- }
- function HQc(a) {
- FQc();
- return es((KQc(), JQc), a);
- }
- function DRc(a) {
- yRc();
- return es((GRc(), FRc), a);
- }
- function tSc(a) {
- qSc();
- return es((wSc(), vSc), a);
- }
- function UTc(a) {
- STc();
- return es((XTc(), WTc), a);
- }
- function UUc(a) {
- PUc();
- return es((XUc(), WUc), a);
- }
- function aUc(a) {
- $Tc();
- return es((dUc(), cUc), a);
- }
- function wVc(a) {
- tVc();
- return es((zVc(), yVc), a);
- }
- function iWc(a) {
- fWc();
- return es((lWc(), kWc), a);
- }
- function sWc(a) {
- pWc();
- return es((vWc(), uWc), a);
- }
- function lXc(a) {
- iXc();
- return es((oXc(), nXc), a);
- }
- function vXc(a) {
- sXc();
- return es((yXc(), xXc), a);
- }
- function BYc(a) {
- zYc();
- return es((EYc(), DYc), a);
- }
- function m$c(a) {
- k$c();
- return es((p$c(), o$c), a);
- }
- function $$c(a) {
- Y$c();
- return es((b_c(), a_c), a);
- }
- function n_c(a) {
- i_c();
- return es((q_c(), p_c), a);
- }
- function w_c(a) {
- s_c();
- return es((z_c(), y_c), a);
- }
- function E_c(a) {
- C_c();
- return es((H_c(), G_c), a);
- }
- function P_c(a) {
- N_c();
- return es((S_c(), R_c), a);
- }
- function W0c(a) {
- R0c();
- return es((Z0c(), Y0c), a);
- }
- function f1c(a) {
- a1c();
- return es((i1c(), h1c), a);
- }
- function P5c(a) {
- N5c();
- return es((S5c(), R5c), a);
- }
- function b6c(a) {
- _5c();
- return es((e6c(), d6c), a);
- }
- function H7c(a) {
- F7c();
- return es((K7c(), J7c), a);
- }
- function k8c(a) {
- i8c();
- return es((n8c(), m8c), a);
- }
- function V8b(a) {
- S8b();
- return es((Y8b(), X8b), a);
- }
- function A5b(a) {
- y5b();
- return es((D5b(), C5b), a);
- }
- function jad(a) {
- ead();
- return es((mad(), lad), a);
- }
- function sad(a) {
- qad();
- return es((vad(), uad), a);
- }
- function Cad(a) {
- Aad();
- return es((Fad(), Ead), a);
- }
- function Oad(a) {
- Mad();
- return es((Rad(), Qad), a);
- }
- function jbd(a) {
- hbd();
- return es((mbd(), lbd), a);
- }
- function ubd(a) {
- rbd();
- return es((xbd(), wbd), a);
- }
- function Kbd(a) {
- Hbd();
- return es((Nbd(), Mbd), a);
- }
- function Vbd(a) {
- Tbd();
- return es((Ybd(), Xbd), a);
- }
- function hcd(a) {
- dcd();
- return es((kcd(), jcd), a);
- }
- function vcd(a) {
- rcd();
- return es((ycd(), xcd), a);
- }
- function vdd(a) {
- tdd();
- return es((ydd(), xdd), a);
- }
- function Kdd(a) {
- Idd();
- return es((Ndd(), Mdd), a);
- }
- function $cd(a) {
- Ucd();
- return es((cdd(), bdd), a);
- }
- function Fed(a) {
- Ded();
- return es((Ied(), Hed), a);
- }
- function rgd(a) {
- pgd();
- return es((ugd(), tgd), a);
- }
- function Esd(a) {
- Csd();
- return es((Hsd(), Gsd), a);
- }
- function Yoc(a, b) {
- return (uCb(a), a) + (uCb(b), b);
- }
- function NNd(a, b) {
- Zfb();
- return wtd(ZKd(a.a), b);
- }
- function SNd(a, b) {
- Zfb();
- return wtd(ZKd(a.a), b);
- }
- function bPc(a, b) {
- this.c = a;
- this.a = b;
- this.b = b - a;
- }
- function nYc(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function L1c(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function T1c(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function Rrd(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function zCd(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- }
- function IVd(a, b, c2) {
- this.e = a;
- this.a = b;
- this.c = c2;
- }
- function kWd(a, b, c2) {
- UVd();
- cWd.call(this, a, b, c2);
- }
- function HXd(a, b, c2) {
- UVd();
- oXd.call(this, a, b, c2);
- }
- function TXd(a, b, c2) {
- UVd();
- oXd.call(this, a, b, c2);
- }
- function ZXd(a, b, c2) {
- UVd();
- oXd.call(this, a, b, c2);
- }
- function JXd(a, b, c2) {
- UVd();
- HXd.call(this, a, b, c2);
- }
- function LXd(a, b, c2) {
- UVd();
- HXd.call(this, a, b, c2);
- }
- function NXd(a, b, c2) {
- UVd();
- LXd.call(this, a, b, c2);
- }
- function VXd(a, b, c2) {
- UVd();
- TXd.call(this, a, b, c2);
- }
- function _Xd(a, b, c2) {
- UVd();
- ZXd.call(this, a, b, c2);
- }
- function $j(a, b) {
- Qb(a);
- Qb(b);
- return new _j(a, b);
- }
- function Nq(a, b) {
- Qb(a);
- Qb(b);
- return new Wq(a, b);
- }
- function Rq(a, b) {
- Qb(a);
- Qb(b);
- return new ar(a, b);
- }
- function lr(a, b) {
- Qb(a);
- Qb(b);
- return new zr(a, b);
- }
- function BD(a, b) {
- CCb(a == null || AD(a, b));
- return a;
- }
- function Nu(a) {
- var b;
- b = new Rkb();
- fr(b, a);
- return b;
- }
- function Ex(a) {
- var b;
- b = new Tqb();
- fr(b, a);
- return b;
- }
- function Hx(a) {
- var b;
- b = new Gxb();
- Jq(b, a);
- return b;
- }
- function Ru(a) {
- var b;
- b = new Psb();
- Jq(b, a);
- return b;
- }
- function YEc(a) {
- !a.e && (a.e = new Rkb());
- return a.e;
- }
- function SMd(a) {
- !a.c && (a.c = new xYd());
- return a.c;
- }
- function Ekb(a, b) {
- a.c[a.c.length] = b;
- return true;
- }
- function WA(a, b) {
- this.c = a;
- this.b = b;
- this.a = false;
- }
- function Gg(a) {
- this.d = a;
- Dg(this);
- this.b = ed(a.d);
- }
- function pzb() {
- this.a = ";,;";
- this.b = "";
- this.c = "";
- }
- function Bvb(a, b, c2) {
- qvb.call(this, b, c2);
- this.a = a;
- }
- function fAb(a, b, c2) {
- this.b = a;
- fvb.call(this, b, c2);
- }
- function lsb(a, b, c2) {
- this.c = a;
- pjb.call(this, b, c2);
- }
- function bCb(a, b, c2) {
- $Bb(c2, 0, a, b, c2.length, false);
- }
- function HVb(a, b, c2, d, e) {
- a.b = b;
- a.c = c2;
- a.d = d;
- a.a = e;
+ return token2;
}
- function eBb(a, b) {
- if (b) {
- a.b = b;
- a.a = (Tzb(b), b.a);
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
}
- }
- function v_b(a, b, c2, d, e) {
- a.d = b;
- a.c = c2;
- a.a = d;
- a.b = e;
- }
- function h5b(a) {
- var b, c2;
- b = a.b;
- c2 = a.c;
- a.b = c2;
- a.c = b;
- }
- function k5b(a) {
- var b, c2;
- c2 = a.d;
- b = a.a;
- a.d = b;
- a.a = c2;
- }
- function Lbb(a) {
- return zbb(iD(Fbb(a) ? Rbb(a) : a));
- }
- function rlc(a, b) {
- return beb(D0b(a.d), D0b(b.d));
- }
- function uic(a, b) {
- return b == (Ucd(), Tcd) ? a.c : a.d;
- }
- function FHc() {
- FHc = ccb;
- DHc = (Ucd(), Tcd);
- EHc = zcd;
- }
- function DRb() {
- this.b = Edb(ED(Ksd((wSb(), vSb))));
- }
- function aBb(a) {
- return EAb(), KC(SI, Uhe, 1, a, 5, 1);
- }
- function C6c(a) {
- return new f7c(a.c + a.b, a.d + a.a);
- }
- function Vmc(a, b) {
- Imc();
- return beb(a.d.p, b.d.p);
- }
- function Lsb(a) {
- sCb(a.b != 0);
- return Nsb(a, a.a.a);
- }
- function Msb(a) {
- sCb(a.b != 0);
- return Nsb(a, a.c.b);
- }
- function rCb(a, b) {
- if (!a) {
- throw vbb(new ucb(b));
- }
- }
- function mCb(a, b) {
- if (!a) {
- throw vbb(new Wdb(b));
- }
- }
- function dWb(a, b, c2) {
- cWb.call(this, a, b);
- this.b = c2;
- }
- function pMd(a, b, c2) {
- MLd.call(this, a, b);
- this.c = c2;
- }
- function Dnc(a, b, c2) {
- Cnc.call(this, b, c2);
- this.d = a;
- }
- function _Gd(a) {
- $Gd();
- MGd.call(this);
- this.th(a);
- }
- function PNd(a, b, c2) {
- this.a = a;
- nNd.call(this, b, c2);
- }
- function UNd(a, b, c2) {
- this.a = a;
- nNd.call(this, b, c2);
- }
- function k2d(a, b, c2) {
- MLd.call(this, a, b);
- this.c = c2;
- }
- function y1d() {
- T0d();
- z1d.call(this, (yFd(), xFd));
- }
- function gFd(a) {
- return a != null && !OEd(a, CEd, DEd);
- }
- function dFd(a, b) {
- return (jFd(a) << 4 | jFd(b)) & aje;
- }
- function ln(a, b) {
- return Vm(), Wj(a, b), new iy(a, b);
- }
- function Sdd(a, b) {
- var c2;
- if (a.n) {
- c2 = b;
- Ekb(a.f, c2);
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
}
- }
- function Upd(a, b, c2) {
- var d;
- d = new yC(c2);
- cC(a, b, d);
- }
- function WUd(a, b) {
- var c2;
- c2 = a.c;
- VUd(a, b);
- return c2;
- }
- function Ydd(a, b) {
- b < 0 ? a.g = -1 : a.g = b;
- return a;
- }
- function $6c(a, b) {
- W6c(a);
- a.a *= b;
- a.b *= b;
- return a;
- }
- function G6c(a, b, c2, d, e) {
- a.c = b;
- a.d = c2;
- a.b = d;
- a.a = e;
- }
- function Dsb(a, b) {
- Gsb(a, b, a.c.b, a.c);
- return true;
- }
- function jsb(a) {
- a.a.b = a.b;
- a.b.a = a.a;
- a.a = a.b = null;
- }
- function Aq(a) {
- this.b = a;
- this.a = Wm(this.b.a).Ed();
- }
- function Wq(a, b) {
- this.b = a;
- this.a = b;
- ol.call(this);
- }
- function ar(a, b) {
- this.a = a;
- this.b = b;
- ol.call(this);
- }
- function vvb(a, b) {
- qvb.call(this, b, 1040);
- this.a = a;
- }
- function Eeb(a) {
- return a == 0 || isNaN(a) ? a : a < 0 ? -1 : 1;
- }
- function WPb(a) {
- QPb();
- return jtd(a) == Xod(ltd(a));
- }
- function XPb(a) {
- QPb();
- return ltd(a) == Xod(jtd(a));
- }
- function iYb(a, b) {
- return hYb(a, new cWb(b.a, b.b));
- }
- function NZb(a) {
- return !OZb(a) && a.c.i.c == a.d.i.c;
- }
- function _Gb(a) {
- var b;
- b = a.n;
- return a.a.b + b.d + b.a;
- }
- function YHb(a) {
- var b;
- b = a.n;
- return a.e.b + b.d + b.a;
- }
- function ZHb(a) {
- var b;
- b = a.n;
- return a.e.a + b.b + b.c;
- }
- function zfe(a) {
- wfe();
- return new ige(0, a);
- }
- function o_b(a) {
- if (a.a) {
- return a.a;
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
}
- return JZb(a);
- }
- function CCb(a) {
- if (!a) {
- throw vbb(new Cdb(null));
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
}
}
- function X6d() {
- X6d = ccb;
- W6d = (mmb(), new anb(Fwe));
- }
- function ex() {
- ex = ccb;
- new gx((_k(), $k), (Lk(), Kk));
- }
- function oeb() {
- oeb = ccb;
- neb = KC(JI, nie, 19, 256, 0, 1);
- }
- function d$c(a, b, c2, d) {
- e$c.call(this, a, b, c2, d, 0, 0);
- }
- function sQc(a, b, c2) {
- return Rhb(a.b, BD(c2.b, 17), b);
- }
- function tQc(a, b, c2) {
- return Rhb(a.b, BD(c2.b, 17), b);
- }
- function xfd(a, b) {
- return Ekb(a, new f7c(b.a, b.b));
- }
- function Bic(a, b) {
- return a.c < b.c ? -1 : a.c == b.c ? 0 : 1;
- }
- function B0b(a) {
- return a.e.c.length + a.g.c.length;
- }
- function D0b(a) {
- return a.e.c.length - a.g.c.length;
- }
- function Ojc(a) {
- return a.b.c.length - a.e.c.length;
- }
- function dKc(a) {
- FJc();
- return (Ucd(), Ecd).Hc(a.j);
- }
- function lHd(a) {
- $Gd();
- _Gd.call(this, a);
- this.a = -1;
- }
- function R7d(a, b) {
- f7d.call(this, a, b);
- this.a = this;
- }
- function odb(a, b) {
- var c2;
- c2 = ldb(a, b);
- c2.i = 2;
- return c2;
- }
- function Evd(a, b) {
- var c2;
- ++a.j;
- c2 = a.Ti(b);
- return c2;
- }
- function e3c(a, b, c2) {
- a.a = -1;
- i3c(a, b.g, c2);
- return a;
- }
- function Qrd(a, b, c2) {
- Kqd(a.a, a.b, a.c, BD(b, 202), c2);
- }
- function OHd(a, b) {
- PHd(a, b == null ? null : (uCb(b), b));
- }
- function SUd(a, b) {
- UUd(a, b == null ? null : (uCb(b), b));
- }
- function TUd(a, b) {
- UUd(a, b == null ? null : (uCb(b), b));
- }
- function Zj(a, b, c2) {
- return new tk(oAb(a).Ie(), c2, b);
- }
- function IC(a, b, c2, d, e, f2) {
- return JC(a, b, c2, d, e, 0, f2);
- }
- function Ucb() {
- Ucb = ccb;
- Tcb = KC(xI, nie, 217, 256, 0, 1);
- }
- function Ceb() {
- Ceb = ccb;
- Beb = KC(MI, nie, 162, 256, 0, 1);
- }
- function Yeb() {
- Yeb = ccb;
- Xeb = KC(UI, nie, 184, 256, 0, 1);
- }
- function ddb() {
- ddb = ccb;
- cdb = KC(yI, nie, 172, 128, 0, 1);
- }
- function IVb() {
- HVb(this, false, false, false, false);
- }
- function my(a) {
- im();
- this.a = (mmb(), new anb(Qb(a)));
- }
- function ir(a) {
- Qb(a);
- while (a.Ob()) {
- a.Pb();
- a.Qb();
- }
- }
- function Tw(a) {
- a.a.cd();
- BD(a.a.dd(), 14).gc();
- zh();
- }
- function mf(a) {
- this.c = a;
- this.b = this.c.d.vc().Kc();
- }
- function fqb(a) {
- this.c = a;
- this.a = new Gqb(this.c.a);
- }
- function Vqb(a) {
- this.a = new Mqb(a.gc());
- ye(this, a);
- }
- function Bsb(a) {
- Wqb.call(this, new $rb());
- ye(this, a);
- }
- function Rfb(a, b) {
- a.a += zfb(b, 0, b.length);
- return a;
- }
- function Ikb(a, b) {
- tCb(b, a.c.length);
- return a.c[b];
- }
- function $lb(a, b) {
- tCb(b, a.a.length);
- return a.a[b];
- }
- function YAb(a, b) {
- EAb();
- Vzb.call(this, a);
- this.a = b;
- }
- function Qyb(a, b) {
- return Aeb(wbb(Aeb(a.a).a, b.a));
- }
- function jpb(a, b) {
- return uCb(a), Fcb(a, (uCb(b), b));
- }
- function opb(a, b) {
- return uCb(b), Fcb(b, (uCb(a), a));
- }
- function Oyb(a, b) {
- return NC(b, 0, Bzb(b[0], Aeb(1)));
- }
- function Bzb(a, b) {
- return Qyb(BD(a, 162), BD(b, 162));
- }
- function vic(a) {
- return a.c - BD(Ikb(a.a, a.b), 287).b;
- }
- function uNb(a) {
- return !a.q ? (mmb(), mmb(), kmb) : a.q;
- }
- function Xi(a) {
- return a.e.Hd().gc() * a.c.Hd().gc();
- }
- function onc(a, b, c2) {
- return beb(b.d[a.g], c2.d[a.g]);
- }
- function YHc(a, b, c2) {
- return beb(a.d[b.p], a.d[c2.p]);
- }
- function ZHc(a, b, c2) {
- return beb(a.d[b.p], a.d[c2.p]);
- }
- function $Hc(a, b, c2) {
- return beb(a.d[b.p], a.d[c2.p]);
- }
- function _Hc(a, b, c2) {
- return beb(a.d[b.p], a.d[c2.p]);
- }
- function q$c(a, b, c2) {
- return $wnd.Math.min(c2 / a, 1 / b);
- }
- function sEc(a, b) {
- return a ? 0 : $wnd.Math.max(0, b - 1);
- }
- function Elb(a, b) {
- var c2;
- for (c2 = 0; c2 < b; ++c2) {
- a[c2] = -1;
- }
- }
- function bVc(a) {
- var b;
- b = hVc(a);
- return !b ? a : bVc(b);
- }
- function Voc(a, b) {
- a.a == null && Toc(a);
- return a.a[b];
- }
- function qed(a) {
- if (a.c) {
- return a.c.f;
- }
- return a.e.b;
- }
- function red(a) {
- if (a.c) {
- return a.c.g;
- }
- return a.e.a;
- }
- function pFd(a) {
- zud.call(this, a.gc());
- ytd(this, a);
- }
- function nXd(a, b) {
- UVd();
- VVd.call(this, b);
- this.a = a;
- }
- function KYd(a, b, c2) {
- this.a = a;
- xMd.call(this, b, c2, 2);
- }
- function B_b(a, b, c2, d) {
- v_b(this, a, b, c2, d);
- }
- function ige(a, b) {
- wfe();
- xfe.call(this, a);
- this.a = b;
- }
- function jgd(a) {
- this.b = new Psb();
- this.a = a;
- this.c = -1;
- }
- function MOb() {
- this.d = new f7c(0, 0);
- this.e = new Tqb();
- }
- function Nr(a) {
- qc.call(this, 0, 0);
- this.a = a;
- this.b = 0;
- }
- function ejc(a) {
- this.a = a;
- this.c = new Lqb();
- $ic(this);
- }
- function ju(a) {
- if (a.e.c != a.b) {
- throw vbb(new Apb());
- }
- }
- function bt(a) {
- if (a.c.e != a.a) {
- throw vbb(new Apb());
- }
- }
- function Tbb(a) {
- if (Fbb(a)) {
- return a | 0;
- }
- return pD(a);
- }
- function Bfe(a, b) {
- wfe();
- return new rge(a, b);
- }
- function SEd(a, b) {
- return a == null ? b == null : dfb(a, b);
- }
- function TEd(a, b) {
- return a == null ? b == null : efb(a, b);
- }
- function Npb(a, b, c2) {
- rqb(a.a, b);
- return Qpb(a, b.g, c2);
- }
- function Mlb(a, b, c2) {
- oCb(0, b, a.length);
- Klb(a, 0, b, c2);
- }
- function Dkb(a, b, c2) {
- wCb(b, a.c.length);
- aCb(a.c, b, c2);
- }
- function Dlb(a, b, c2) {
- var d;
- for (d = 0; d < b; ++d) {
- a[d] = c2;
- }
- }
- function qqb(a, b) {
- var c2;
- c2 = pqb(a);
- nmb(c2, b);
- return c2;
- }
- function Oz(a, b) {
- !a && (a = []);
- a[a.length] = b;
- return a;
- }
- function Brb(a, b) {
- return !(a.a.get(b) === void 0);
- }
- function Wyb(a, b) {
- return Nyb(new rzb(), new bzb(a), b);
- }
- function Itb(a) {
- return a == null ? ztb : new Ftb(uCb(a));
- }
- function tqb(a, b) {
- return JD(b, 22) && uqb(a, BD(b, 22));
- }
- function vqb(a, b) {
- return JD(b, 22) && wqb(a, BD(b, 22));
- }
- function Aub(a) {
- return Cub(a, 26) * ike + Cub(a, 27) * jke;
- }
- function MC(a) {
- return Array.isArray(a) && a.im === gcb;
- }
- function bg(a) {
- a.b ? bg(a.b) : a.d.dc() && a.f.c.Bc(a.e);
- }
- function $Nb(a, b) {
- P6c(a.c, b);
- a.b.c += b.a;
- a.b.d += b.b;
- }
- function ZNb(a, b) {
- $Nb(a, c7c(new f7c(b.a, b.b), a.c));
- }
- function BLb(a, b) {
- this.b = new Psb();
- this.a = a;
- this.c = b;
- }
- function OVb() {
- this.b = new $Vb();
- this.c = new SVb(this);
- }
- function oEb() {
- this.d = new CEb();
- this.e = new uEb(this);
- }
- function aCc() {
- ZBc();
- this.f = new Psb();
- this.e = new Psb();
- }
- function $Jc() {
- FJc();
- this.k = new Lqb();
- this.d = new Tqb();
- }
- function Rgd() {
- Rgd = ccb;
- Qgd = new Osd((Y9c(), s9c), 0);
- }
- function Mr() {
- Mr = ccb;
- Lr = new Nr(KC(SI, Uhe, 1, 0, 5, 1));
- }
- function gfc(a, b, c2) {
- bfc(c2, a, 1);
- Ekb(b, new Tfc(c2, a));
- }
- function hfc(a, b, c2) {
- cfc(c2, a, 1);
- Ekb(b, new dgc(c2, a));
- }
- function R$c(a, b, c2) {
- return Qqb(a, new aDb(b.a, c2.a));
- }
- function ACc(a, b, c2) {
- return -beb(a.f[b.p], a.f[c2.p]);
- }
- function mHb(a, b, c2) {
- var d;
- if (a) {
- d = a.i;
- d.c = b;
- d.b = c2;
- }
- }
- function nHb(a, b, c2) {
- var d;
- if (a) {
- d = a.i;
- d.d = b;
- d.a = c2;
- }
- }
- function c3c(a, b, c2) {
- a.a = -1;
- i3c(a, b.g + 1, c2);
- return a;
- }
- function Dod(a, b, c2) {
- c2 = _hd(a, BD(b, 49), 7, c2);
- return c2;
- }
- function JHd(a, b, c2) {
- c2 = _hd(a, BD(b, 49), 3, c2);
- return c2;
- }
- function JMd(a, b, c2) {
- this.a = a;
- BMd.call(this, b, c2, 22);
- }
- function UTd(a, b, c2) {
- this.a = a;
- BMd.call(this, b, c2, 14);
- }
- function eXd(a, b, c2, d) {
- UVd();
- nWd.call(this, a, b, c2, d);
- }
- function lXd(a, b, c2, d) {
- UVd();
- nWd.call(this, a, b, c2, d);
- }
- function FNd(a, b) {
- (b.Bb & ote) != 0 && !a.a.o && (a.a.o = b);
- }
- function MD(a) {
- return a != null && OD(a) && !(a.im === gcb);
- }
- function ID(a) {
- return !Array.isArray(a) && a.im === gcb;
- }
- function ed(a) {
- return JD(a, 15) ? BD(a, 15).Yc() : a.Kc();
- }
- function De(a) {
- return a.Qc(KC(SI, Uhe, 1, a.gc(), 5, 1));
- }
- function u1d(a, b) {
- return W1d(p1d(a, b)) ? b.Qh() : null;
- }
- function uvd(a) {
- a ? Ty(a, (Zfb(), Yfb)) : (Zfb(), Yfb);
- }
- function Sr(a) {
- this.a = (Mr(), Lr);
- this.d = BD(Qb(a), 47);
- }
- function qg(a, b, c2, d) {
- this.a = a;
- dg.call(this, a, b, c2, d);
- }
- function Yge(a) {
- Xge();
- this.a = 0;
- this.b = a - 1;
- this.c = 1;
- }
- function Yy(a) {
- Py(this);
- this.g = a;
- Ry(this);
- this._d();
- }
- function Wm(a) {
- if (a.c) {
- return a.c;
- }
- return a.c = a.Id();
- }
- function Xm(a) {
- if (a.d) {
- return a.d;
- }
- return a.d = a.Jd();
- }
- function Rl(a) {
- var b;
- b = a.c;
- return !b ? a.c = a.Dd() : b;
- }
- function fe(a) {
- var b;
- b = a.f;
- return !b ? a.f = a.Dc() : b;
- }
- function Ec(a) {
- var b;
- b = a.i;
- return !b ? a.i = a.bc() : b;
- }
- function Ffe(a) {
- wfe();
- return new Hge(10, a, 0);
- }
- function Ubb(a) {
- if (Fbb(a)) {
- return "" + a;
- }
- return qD(a);
- }
- function a4d(a) {
- if (a.e.j != a.d) {
- throw vbb(new Apb());
- }
- }
- function Nbb(a, b) {
- return zbb(kD(Fbb(a) ? Rbb(a) : a, b));
- }
- function Obb(a, b) {
- return zbb(lD(Fbb(a) ? Rbb(a) : a, b));
- }
- function Pbb(a, b) {
- return zbb(mD(Fbb(a) ? Rbb(a) : a, b));
- }
- function Dcb(a, b) {
- return Ecb((uCb(a), a), (uCb(b), b));
- }
- function Ddb(a, b) {
- return Kdb((uCb(a), a), (uCb(b), b));
- }
- function fx(a, b) {
- return Qb(b), a.a.Ad(b) && !a.b.Ad(b);
- }
- function dD(a, b) {
- return TC(a.l & b.l, a.m & b.m, a.h & b.h);
- }
- function jD(a, b) {
- return TC(a.l | b.l, a.m | b.m, a.h | b.h);
- }
- function rD(a, b) {
- return TC(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h);
- }
- function QAb(a, b) {
- return TAb(a, (uCb(b), new Rxb(b)));
- }
- function RAb(a, b) {
- return TAb(a, (uCb(b), new Txb(b)));
- }
- function g1b(a) {
- return z0b(), BD(a, 11).e.c.length != 0;
- }
- function l1b(a) {
- return z0b(), BD(a, 11).g.c.length != 0;
- }
- function bac(a, b) {
- I9b();
- return Kdb(b.a.o.a, a.a.o.a);
- }
- function Rnc(a, b, c2) {
- return Snc(a, BD(b, 11), BD(c2, 11));
- }
- function koc(a) {
- if (a.e) {
- return poc(a.e);
- }
- return null;
- }
- function Iub(a) {
- if (!a.d) {
- a.d = a.b.Kc();
- a.c = a.b.gc();
- }
- }
- function pBb(a, b, c2) {
- if (a.a.Mb(c2)) {
- a.b = true;
- b.td(c2);
- }
- }
- function _vb(a, b) {
- if (a < 0 || a >= b) {
- throw vbb(new rcb());
- }
- }
- function Pyb(a, b, c2) {
- NC(b, 0, Bzb(b[0], c2[0]));
- return b;
- }
- function _yc(a, b, c2) {
- b.Ye(c2, Edb(ED(Ohb(a.b, c2))) * a.a);
- }
- function n6c(a, b, c2) {
- i6c();
- return m6c(a, b) && m6c(a, c2);
- }
- function tcd(a) {
- rcd();
- return !a.Hc(ncd) && !a.Hc(pcd);
- }
- function D6c(a) {
- return new f7c(a.c + a.b / 2, a.d + a.a / 2);
- }
- function oOd(a, b) {
- return b.kh() ? xid(a.b, BD(b, 49)) : b;
- }
- function bvb(a, b) {
- this.e = a;
- this.d = (b & 64) != 0 ? b | oie : b;
- }
- function qvb(a, b) {
- this.c = 0;
- this.d = a;
- this.b = b | 64 | oie;
- }
- function gub(a) {
- this.b = new Skb(11);
- this.a = (ipb(), a);
- }
- function Qwb(a) {
- this.b = null;
- this.a = (ipb(), !a ? fpb : a);
- }
- function nHc(a) {
- this.a = lHc(a.a);
- this.b = new Tkb(a.b);
- }
- function Pzd(a) {
- this.b = a;
- Oyd.call(this, a);
- Ozd(this);
- }
- function Xzd(a) {
- this.b = a;
- bzd.call(this, a);
- Wzd(this);
- }
- function jUd(a, b, c2) {
- this.a = a;
- gUd.call(this, b, c2, 5, 6);
- }
- function Y5d(a, b, c2, d) {
- this.b = a;
- xMd.call(this, b, c2, d);
- }
- function nSd(a, b, c2, d, e) {
- oSd.call(this, a, b, c2, d, e, -1);
- }
- function DSd(a, b, c2, d, e) {
- ESd.call(this, a, b, c2, d, e, -1);
- }
- function cUd(a, b, c2, d) {
- xMd.call(this, a, b, c2);
- this.b = d;
- }
- function i5d(a, b, c2, d) {
- pMd.call(this, a, b, c2);
- this.b = d;
- }
- function x0d(a) {
- Wud.call(this, a, false);
- this.a = false;
- }
- function Lj(a, b) {
- this.b = a;
- sj.call(this, a.b);
- this.a = b;
- }
- function px(a, b) {
- im();
- ox.call(this, a, Dm(new amb(b)));
- }
- function Cfe(a, b) {
- wfe();
- return new Dge(a, b, 0);
- }
- function Efe(a, b) {
- wfe();
- return new Dge(6, a, b);
- }
- function nfb(a, b) {
- return dfb(a.substr(0, b.length), b);
- }
- function Mhb(a, b) {
- return ND(b) ? Qhb(a, b) : !!irb(a.f, b);
- }
- function Rrb(a, b) {
- uCb(b);
- while (a.Ob()) {
- b.td(a.Pb());
- }
- }
- function Vgb(a, b, c2) {
- Hgb();
- this.e = a;
- this.d = b;
- this.a = c2;
- }
- function amc(a, b, c2, d) {
- var e;
- e = a.i;
- e.i = b;
- e.a = c2;
- e.b = d;
- }
- function xJc(a) {
- var b;
- b = a;
- while (b.f) {
- b = b.f;
- }
- return b;
- }
- function fkb(a) {
- var b;
- b = bkb(a);
- sCb(b != null);
- return b;
- }
- function gkb(a) {
- var b;
- b = ckb(a);
- sCb(b != null);
- return b;
- }
- function cv(a, b) {
- var c2;
- c2 = a.a.gc();
- Sb(b, c2);
- return c2 - b;
- }
- function Glb(a, b) {
- var c2;
- for (c2 = 0; c2 < b; ++c2) {
- a[c2] = false;
- }
- }
- function Clb(a, b, c2, d) {
- var e;
- for (e = b; e < c2; ++e) {
- a[e] = d;
- }
- }
- function ylb(a, b, c2, d) {
- oCb(b, c2, a.length);
- Clb(a, b, c2, d);
- }
- function Vvb(a, b, c2) {
- _vb(c2, a.a.c.length);
- Nkb(a.a, c2, b);
- }
- function Lyb(a, b, c2) {
- this.c = a;
- this.a = b;
- mmb();
- this.b = c2;
- }
- function Qpb(a, b, c2) {
- var d;
- d = a.b[b];
- a.b[b] = c2;
- return d;
- }
- function Qqb(a, b) {
- var c2;
- c2 = a.a.zc(b, a);
- return c2 == null;
- }
- function zjb(a) {
- if (!a) {
- throw vbb(new utb());
- }
- return a.d;
- }
- function vCb(a, b) {
- if (a == null) {
- throw vbb(new Heb(b));
- }
- }
- function Goc(a, b) {
- if (!b) {
- return false;
- }
- return ye(a, b);
- }
- function K2c(a, b, c2) {
- C2c(a, b.g, c2);
- rqb(a.c, b);
- return a;
- }
- function vVb(a) {
- tVb(a, (ead(), aad));
- a.d = true;
- return a;
- }
- function c2d(a) {
- !a.j && i2d(a, d1d(a.g, a.b));
- return a.j;
- }
- function nlb(a) {
- yCb(a.b != -1);
- Kkb(a.c, a.a = a.b);
- a.b = -1;
- }
- function Uhb(a) {
- a.f = new lrb(a);
- a.g = new Frb(a);
- zpb(a);
- }
- function Plb(a) {
- return new YAb(null, Olb(a, a.length));
- }
- function ul(a) {
- return new Sr(new xl(a.a.length, a.a));
- }
- function iD(a) {
- return TC(~a.l & Eje, ~a.m & Eje, ~a.h & Fje);
- }
- function OD(a) {
- return typeof a === Jhe || typeof a === Nhe;
- }
- function D9d(a) {
- return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a;
- }
- function F9d(a) {
- return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a;
- }
- function yRb(a, b) {
- return a > 0 ? $wnd.Math.log(a / b) : -100;
- }
- function ueb(a, b) {
- return ybb(a, b) < 0 ? -1 : ybb(a, b) > 0 ? 1 : 0;
- }
- function HMb(a, b, c2) {
- return IMb(a, BD(b, 46), BD(c2, 167));
- }
- function iq(a, b) {
- return BD(Rl(Wm(a.a)).Xb(b), 42).cd();
- }
- function Olb(a, b) {
- return avb(b, a.length), new vvb(a, b);
- }
- function Pyd(a, b) {
- this.d = a;
- Fyd.call(this, a);
- this.e = b;
- }
- function Lub(a) {
- this.d = (uCb(a), a);
- this.a = 0;
- this.c = rie;
- }
- function rge(a, b) {
- xfe.call(this, 1);
- this.a = a;
- this.b = b;
- }
- function Rzb(a, b) {
- !a.c ? Ekb(a.b, b) : Rzb(a.c, b);
- return a;
- }
- function uB(a, b, c2) {
- var d;
- d = tB(a, b);
- vB(a, b, c2);
- return d;
- }
- function ZBb(a, b) {
- var c2;
- c2 = a.slice(0, b);
- return PC(c2, a);
- }
- function Flb(a, b, c2) {
- var d;
- for (d = 0; d < b; ++d) {
- NC(a, d, c2);
- }
- }
- function ffb(a, b, c2, d, e) {
- while (b < c2) {
- d[e++] = bfb(a, b++);
- }
- }
- function hLb(a, b) {
- return Kdb(a.c.c + a.c.b, b.c.c + b.c.b);
- }
- function Axb(a, b) {
- return Iwb(a.a, b, (Bcb(), zcb)) == null;
- }
- function Vsb(a, b) {
- Gsb(a.d, b, a.b.b, a.b);
- ++a.a;
- a.c = null;
- }
- function d3d(a, b) {
- JLd(a, JD(b, 153) ? b : BD(b, 1937).gl());
- }
- function hkc(a, b) {
- MAb(NAb(a.Oc(), new Rkc()), new Tkc(b));
- }
- function kkc(a, b, c2, d, e) {
- jkc(a, BD(Qc(b.k, c2), 15), c2, d, e);
- }
- function lOc(a) {
- a.s = NaN;
- a.c = NaN;
- mOc(a, a.e);
- mOc(a, a.j);
- }
- function it(a) {
- a.a = null;
- a.e = null;
- Uhb(a.b);
- a.d = 0;
- ++a.c;
- }
- function gKc(a) {
- return $wnd.Math.abs(a.d.e - a.e.e) - a.a;
- }
- function MAd(a, b, c2) {
- return BD(a.c._c(b, BD(c2, 133)), 42);
- }
- function os() {
- hs();
- return OC(GC(yG, 1), Kie, 538, 0, [gs]);
- }
- function VPb(a) {
- QPb();
- return Xod(jtd(a)) == Xod(ltd(a));
- }
- function aRb(a) {
- _Qb.call(this);
- this.a = a;
- Ekb(a.a, this);
- }
- function tPc(a, b) {
- this.d = DPc(a);
- this.c = b;
- this.a = 0.5 * b;
- }
- function A6d() {
- $rb.call(this);
- this.a = true;
- this.b = true;
- }
- function aLd(a) {
- return (a.i == null && TKd(a), a.i).length;
- }
- function oRd(a) {
- return JD(a, 99) && (BD(a, 18).Bb & ote) != 0;
- }
- function w2d(a, b) {
- ++a.j;
- t3d(a, a.i, b);
- v2d(a, BD(b, 332));
- }
- function vId(a, b) {
- b = a.nk(null, b);
- return uId(a, null, b);
- }
- function ytd(a, b) {
- a.hi() && (b = Dtd(a, b));
- return a.Wh(b);
- }
- function mdb(a, b, c2) {
- var d;
- d = ldb(a, b);
- zdb(c2, d);
- return d;
- }
- function ldb(a, b) {
- var c2;
- c2 = new jdb();
- c2.j = a;
- c2.d = b;
- return c2;
- }
- function Qb(a) {
- if (a == null) {
- throw vbb(new Geb());
- }
- return a;
- }
- function Fc(a) {
- var b;
- b = a.j;
- return !b ? a.j = new Cw(a) : b;
- }
- function Vi(a) {
- var b;
- b = a.f;
- return !b ? a.f = new Rj(a) : b;
- }
- function ci(a) {
- var b;
- return b = a.k, !b ? a.k = new th(a) : b;
- }
- function Uc(a) {
- var b;
- return b = a.k, !b ? a.k = new th(a) : b;
- }
- function Pc(a) {
- var b;
- return b = a.g, !b ? a.g = new lh(a) : b;
- }
- function Yi(a) {
- var b;
- return b = a.i, !b ? a.i = new Ci(a) : b;
- }
- function qo(a) {
- var b;
- b = a.d;
- return !b ? a.d = new ap(a) : b;
- }
- function Fb(a) {
- Qb(a);
- return JD(a, 475) ? BD(a, 475) : fcb(a);
- }
- function Ix(a) {
- if (JD(a, 607)) {
- return a;
- }
- return new by(a);
- }
- function qj(a, b) {
- Pb(b, a.c.b.c.gc());
- return new Fj(a, b);
- }
- function Dfe(a, b, c2) {
- wfe();
- return new zge(a, b, c2);
- }
- function NC(a, b, c2) {
- qCb(c2 == null || FC(a, c2));
- return a[b] = c2;
- }
- function bv(a, b) {
- var c2;
- c2 = a.a.gc();
- Pb(b, c2);
- return c2 - 1 - b;
- }
- function Afb(a, b) {
- a.a += String.fromCharCode(b);
- return a;
- }
- function Kfb(a, b) {
- a.a += String.fromCharCode(b);
- return a;
- }
- function ovb(a, b) {
- uCb(b);
- while (a.c < a.d) {
- a.ze(b, a.c++);
- }
- }
- function Ohb(a, b) {
- return ND(b) ? Phb(a, b) : Wd(irb(a.f, b));
- }
- function ZPb(a, b) {
- QPb();
- return a == jtd(b) ? ltd(b) : jtd(b);
- }
- function isd(a, b) {
- Qpd(a, new yC(b.f != null ? b.f : "" + b.g));
- }
- function ksd(a, b) {
- Qpd(a, new yC(b.f != null ? b.f : "" + b.g));
- }
- function dVb(a) {
- this.b = new Rkb();
- this.a = new Rkb();
- this.c = a;
- }
- function H1b(a) {
- this.c = new d7c();
- this.a = new Rkb();
- this.b = a;
- }
- function pRb(a) {
- _Qb.call(this);
- this.a = new d7c();
- this.c = a;
- }
- function yC(a) {
- if (a == null) {
- throw vbb(new Geb());
- }
- this.a = a;
- }
- function HA(a) {
- fA();
- this.b = new Rkb();
- this.a = a;
- sA(this, a);
- }
- function v4c(a) {
- this.c = a;
- this.a = new Psb();
- this.b = new Psb();
- }
- function GB() {
- GB = ccb;
- EB = new HB(false);
- FB = new HB(true);
- }
- function im() {
- im = ccb;
- Ql();
- hm = new ux((mmb(), mmb(), jmb));
- }
- function yx() {
- yx = ccb;
- Ql();
- xx = new zx((mmb(), mmb(), lmb));
- }
- function NFd() {
- NFd = ccb;
- MFd = BZd();
- !!(jGd(), PFd) && DZd();
- }
- function aac(a, b) {
- I9b();
- return BD(Mpb(a, b.d), 15).Fc(b);
- }
- function pTb(a, b, c2, d) {
- return c2 == 0 || (c2 - d) / c2 < a.e || b >= a.g;
- }
- function NHc(a, b, c2) {
- var d;
- d = THc(a, b, c2);
- return MHc(a, d);
- }
- function Qpd(a, b) {
- var c2;
- c2 = a.a.length;
- tB(a, c2);
- vB(a, c2, b);
- }
- function gCb(a, b) {
- var c2;
- c2 = console[a];
- c2.call(console, b);
- }
- function Bvd(a, b) {
- var c2;
- ++a.j;
- c2 = a.Vi();
- a.Ii(a.oi(c2, b));
- }
- function E1c(a, b, c2) {
- BD(b.b, 65);
- Hkb(b.a, new L1c(a, c2, b));
- }
- function oXd(a, b, c2) {
- VVd.call(this, b);
- this.a = a;
- this.b = c2;
- }
- function Dge(a, b, c2) {
- xfe.call(this, a);
- this.a = b;
- this.b = c2;
- }
- function dYd(a, b, c2) {
- this.a = a;
- lVd.call(this, b);
- this.b = c2;
- }
- function f0d(a, b, c2) {
- this.a = a;
- mxd.call(this, 8, b, null, c2);
- }
- function z1d(a) {
- this.a = (uCb(Rve), Rve);
- this.b = a;
- new oUd();
- }
- function ct(a) {
- this.c = a;
- this.b = this.c.a;
- this.a = this.c.e;
- }
- function usb(a) {
- this.c = a;
- this.b = a.a.d.a;
- ypb(a.a.e, this);
- }
- function uib(a) {
- yCb(a.c != -1);
- a.d.$c(a.c);
- a.b = a.c;
- a.c = -1;
- }
- function U6c(a) {
- return $wnd.Math.sqrt(a.a * a.a + a.b * a.b);
- }
- function Uvb(a, b) {
- return _vb(b, a.a.c.length), Ikb(a.a, b);
- }
- function Hb(a, b) {
- return PD(a) === PD(b) || a != null && pb(a, b);
- }
- function oAb(a) {
- if (0 >= a) {
- return new yAb();
- }
- return pAb(a - 1);
- }
- function Nfe(a) {
- if (!bfe)
- return false;
- return Qhb(bfe, a);
- }
- function Ehe(a) {
- if (a)
- return a.dc();
- return !a.Kc().Ob();
- }
- function Q_b(a) {
- if (!a.a && !!a.c) {
- return a.c.b;
- }
- return a.a;
- }
- function LHd(a) {
- !a.a && (a.a = new xMd(m5, a, 4));
- return a.a;
- }
- function LQd(a) {
- !a.d && (a.d = new xMd(j5, a, 1));
- return a.d;
- }
- function uCb(a) {
- if (a == null) {
- throw vbb(new Geb());
- }
- return a;
- }
- function Qzb(a) {
- if (!a.c) {
- a.d = true;
- Szb(a);
- } else {
- a.c.He();
- }
- }
- function Tzb(a) {
- if (!a.c) {
- Uzb(a);
- a.d = true;
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
} else {
- Tzb(a.c);
- }
- }
- function Kpb(a) {
- Ae(a.a);
- a.b = KC(SI, Uhe, 1, a.b.length, 5, 1);
- }
- function qlc(a, b) {
- return beb(b.j.c.length, a.j.c.length);
- }
- function igd(a, b) {
- a.c < 0 || a.b.b < a.c ? Fsb(a.b, b) : a.a._e(b);
- }
- function Did(a, b) {
- var c2;
- c2 = a.Yg(b);
- c2 >= 0 ? a.Bh(c2) : vid(a, b);
- }
- function WHc(a) {
- var b, c2;
- b = a.c.i.c;
- c2 = a.d.i.c;
- return b == c2;
- }
- function Wwd(a) {
- if (a.p != 4)
- throw vbb(new Ydb());
- return a.e;
- }
- function Vwd(a) {
- if (a.p != 3)
- throw vbb(new Ydb());
- return a.e;
- }
- function Ywd(a) {
- if (a.p != 6)
- throw vbb(new Ydb());
- return a.f;
- }
- function fxd(a) {
- if (a.p != 6)
- throw vbb(new Ydb());
- return a.k;
- }
- function cxd(a) {
- if (a.p != 3)
- throw vbb(new Ydb());
- return a.j;
- }
- function dxd(a) {
- if (a.p != 4)
- throw vbb(new Ydb());
- return a.j;
- }
- function AYd(a) {
- !a.b && (a.b = new RYd(new NYd()));
- return a.b;
- }
- function $1d(a) {
- a.c == -2 && e2d(a, X0d(a.g, a.b));
- return a.c;
- }
- function pdb(a, b) {
- var c2;
- c2 = ldb("", a);
- c2.n = b;
- c2.i = 1;
- return c2;
- }
- function MNb(a, b) {
- $Nb(BD(b.b, 65), a);
- Hkb(b.a, new RNb(a));
- }
- function Cnd(a, b) {
- wtd((!a.a && (a.a = new fTd(a, a)), a.a), b);
- }
- function Qzd(a, b) {
- this.b = a;
- Pyd.call(this, a, b);
- Ozd(this);
- }
- function Yzd(a, b) {
- this.b = a;
- czd.call(this, a, b);
- Wzd(this);
- }
- function Ms(a, b, c2, d) {
- Wo.call(this, a, b);
- this.d = c2;
- this.a = d;
- }
- function $o(a, b, c2, d) {
- Wo.call(this, a, c2);
- this.a = b;
- this.f = d;
- }
- function iy(a, b) {
- Pp.call(this, umb(Qb(a), Qb(b)));
- this.a = b;
- }
- function cae() {
- fod.call(this, Ewe, (p8d(), o8d));
- $9d(this);
- }
- function AZd() {
- fod.call(this, _ve, (LFd(), KFd));
- uZd(this);
- }
- function T0c() {
- $r.call(this, "DELAUNAY_TRIANGULATION", 0);
- }
- function vfb(a) {
- return String.fromCharCode.apply(null, a);
- }
- function Rhb(a, b, c2) {
- return ND(b) ? Shb(a, b, c2) : jrb(a.f, b, c2);
- }
- function tmb(a) {
- mmb();
- return !a ? (ipb(), ipb(), hpb) : a.ve();
- }
- function d2c(a, b, c2) {
- Y1c();
- return c2.pg(a, BD(b.cd(), 146));
- }
- function ix(a, b) {
- ex();
- return new gx(new il(a), new Uk(b));
- }
- function Iu(a) {
- Xj(a, Mie);
- return Oy(wbb(wbb(5, a), a / 10 | 0));
- }
- function Vm() {
- Vm = ccb;
- Um = new wx(OC(GC(CK, 1), zie, 42, 0, []));
- }
- function hob(a) {
- !a.d && (a.d = new lnb(a.c.Cc()));
- return a.d;
- }
- function eob(a) {
- !a.a && (a.a = new Gob(a.c.vc()));
- return a.a;
- }
- function gob(a) {
- !a.b && (a.b = new zob(a.c.ec()));
- return a.b;
- }
- function keb(a, b) {
- while (b-- > 0) {
- a = a << 1 | (a < 0 ? 1 : 0);
- }
- return a;
- }
- function wtb(a, b) {
- return PD(a) === PD(b) || a != null && pb(a, b);
- }
- function Gbc(a, b) {
- return Bcb(), BD(b.b, 19).a < a ? true : false;
- }
- function Hbc(a, b) {
- return Bcb(), BD(b.a, 19).a < a ? true : false;
- }
- function Mpb(a, b) {
- return tqb(a.a, b) ? a.b[BD(b, 22).g] : null;
- }
- function kcb(a, b, c2, d) {
- a.a = qfb(a.a, 0, b) + ("" + d) + pfb(a.a, c2);
- }
- function OJb(a, b) {
- a.u.Hc((rcd(), ncd)) && MJb(a, b);
- QJb(a, b);
- }
- function bfb(a, b) {
- BCb(b, a.length);
- return a.charCodeAt(b);
- }
- function vtb() {
- hz.call(this, "There is no more element.");
- }
- function xkb(a) {
- this.d = a;
- this.a = this.d.b;
- this.b = this.d.c;
- }
- function kEb(a) {
- a.b = false;
- a.c = false;
- a.d = false;
- a.a = false;
- }
- function Znd(a, b, c2, d) {
- Ynd(a, b, c2, false);
- LPd(a, d);
- return a;
- }
- function h3c(a) {
- a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.a = -1;
- return a;
- }
- function Old(a) {
- !a.c && (a.c = new y5d(z2, a, 5, 8));
- return a.c;
- }
- function Nld(a) {
- !a.b && (a.b = new y5d(z2, a, 4, 7));
- return a.b;
- }
- function Kkd(a) {
- !a.n && (a.n = new cUd(D2, a, 1, 7));
- return a.n;
- }
- function Yod(a) {
- !a.c && (a.c = new cUd(F2, a, 9, 9));
- return a.c;
- }
- function a2d(a) {
- a.e == Gwe && g2d(a, a1d(a.g, a.b));
- return a.e;
- }
- function b2d(a) {
- a.f == Gwe && h2d(a, b1d(a.g, a.b));
- return a.f;
- }
- function Ah(a) {
- var b;
- b = a.b;
- !b && (a.b = b = new Ph(a));
- return b;
- }
- function Ae(a) {
- var b;
- for (b = a.Kc(); b.Ob(); ) {
- b.Pb();
- b.Qb();
- }
- }
- function Fg(a) {
- ag(a.d);
- if (a.d.d != a.c) {
- throw vbb(new Apb());
- }
- }
- function Xx(a, b) {
- this.b = a;
- this.c = b;
- this.a = new Gqb(this.b);
- }
- function Zeb(a, b, c2) {
- this.a = Zie;
- this.d = a;
- this.b = b;
- this.c = c2;
- }
- function Mub(a, b) {
- this.d = (uCb(a), a);
- this.a = 16449;
- this.c = b;
- }
- function nqd(a, b) {
- ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y")));
- }
- function Aqd(a, b) {
- ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y")));
- }
- function JAb(a, b) {
- Uzb(a);
- return new YAb(a, new qBb(b, a.a));
- }
- function NAb(a, b) {
- Uzb(a);
- return new YAb(a, new IBb(b, a.a));
- }
- function OAb(a, b) {
- Uzb(a);
- return new bAb(a, new wBb(b, a.a));
- }
- function PAb(a, b) {
- Uzb(a);
- return new vAb(a, new CBb(b, a.a));
- }
- function Cy(a, b) {
- return new Ay(BD(Qb(a), 62), BD(Qb(b), 62));
- }
- function PWb(a, b) {
- LWb();
- return Kdb((uCb(a), a), (uCb(b), b));
- }
- function fPb() {
- cPb();
- return OC(GC(GO, 1), Kie, 481, 0, [bPb]);
- }
- function o_c() {
- i_c();
- return OC(GC(N_, 1), Kie, 482, 0, [h_c]);
- }
- function x_c() {
- s_c();
- return OC(GC(O_, 1), Kie, 551, 0, [r_c]);
- }
- function X0c() {
- R0c();
- return OC(GC(W_, 1), Kie, 530, 0, [Q0c]);
- }
- function cEc(a) {
- this.a = new Rkb();
- this.e = KC(WD, nie, 48, a, 0, 2);
- }
- function l$b(a, b, c2, d) {
- this.a = a;
- this.e = b;
- this.d = c2;
- this.c = d;
- }
- function QIc(a, b, c2, d) {
- this.a = a;
- this.c = b;
- this.b = c2;
- this.d = d;
- }
- function rKc(a, b, c2, d) {
- this.c = a;
- this.b = b;
- this.a = c2;
- this.d = d;
- }
- function WKc(a, b, c2, d) {
- this.c = a;
- this.b = b;
- this.d = c2;
- this.a = d;
- }
- function J6c(a, b, c2, d) {
- this.c = a;
- this.d = b;
- this.b = c2;
- this.a = d;
- }
- function gPc(a, b, c2, d) {
- this.a = a;
- this.d = b;
- this.c = c2;
- this.b = d;
- }
- function Blc(a, b, c2, d) {
- $r.call(this, a, b);
- this.a = c2;
- this.b = d;
- }
- function Ggd(a, b, c2, d) {
- this.a = a;
- this.c = b;
- this.d = c2;
- this.b = d;
- }
- function pec(a, b, c2) {
- Pmc(a.a, c2);
- dmc(c2);
- enc(a.b, c2);
- xmc(b, c2);
- }
- function Pid(a, b, c2) {
- var d, e;
- d = QEd(a);
- e = b.Kh(c2, d);
- return e;
- }
- function KPb(a, b) {
- var c2, d;
- c2 = a / b;
- d = QD(c2);
- c2 > d && ++d;
- return d;
- }
- function Nnd(a) {
- var b, c2;
- c2 = (b = new UQd(), b);
- NQd(c2, a);
- return c2;
- }
- function Ond(a) {
- var b, c2;
- c2 = (b = new UQd(), b);
- RQd(c2, a);
- return c2;
- }
- function hqd(a, b) {
- var c2;
- c2 = Ohb(a.f, b);
- Yqd(b, c2);
- return null;
- }
- function JZb(a) {
- var b;
- b = P2b(a);
- if (b) {
- return b;
- }
- return null;
- }
- function Wod(a) {
- !a.b && (a.b = new cUd(B2, a, 12, 3));
- return a.b;
- }
- function YEd(a) {
- return a != null && hnb(GEd, a.toLowerCase());
- }
- function ied(a, b) {
- return Kdb(red(a) * qed(a), red(b) * qed(b));
- }
- function jed(a, b) {
- return Kdb(red(a) * qed(a), red(b) * qed(b));
- }
- function wEb(a, b) {
- return Kdb(a.d.c + a.d.b / 2, b.d.c + b.d.b / 2);
- }
- function UVb(a, b) {
- return Kdb(a.g.c + a.g.b / 2, b.g.c + b.g.b / 2);
- }
- function pQb(a, b, c2) {
- c2.a ? eld(a, b.b - a.f / 2) : dld(a, b.a - a.g / 2);
- }
- function prd(a, b, c2, d) {
- this.a = a;
- this.b = b;
- this.c = c2;
- this.d = d;
- }
- function ord(a, b, c2, d) {
- this.a = a;
- this.b = b;
- this.c = c2;
- this.d = d;
- }
- function JVd(a, b, c2, d) {
- this.e = a;
- this.a = b;
- this.c = c2;
- this.d = d;
- }
- function ZVd(a, b, c2, d) {
- this.a = a;
- this.c = b;
- this.d = c2;
- this.b = d;
- }
- function cXd(a, b, c2, d) {
- UVd();
- mWd.call(this, b, c2, d);
- this.a = a;
- }
- function jXd(a, b, c2, d) {
- UVd();
- mWd.call(this, b, c2, d);
- this.a = a;
- }
- function Ng(a, b) {
- this.a = a;
- Hg.call(this, a, BD(a.d, 15).Zc(b));
- }
- function ZBd(a) {
- this.f = a;
- this.c = this.f.e;
- a.f > 0 && YBd(this);
- }
- function lBb(a, b, c2, d) {
- this.b = a;
- this.c = d;
- nvb.call(this, b, c2);
- }
- function tib(a) {
- sCb(a.b < a.d.gc());
- return a.d.Xb(a.c = a.b++);
- }
- function Osb(a) {
- a.a.a = a.c;
- a.c.b = a.a;
- a.a.b = a.c.a = null;
- a.b = 0;
- }
- function u_b(a, b) {
- a.b = b.b;
- a.c = b.c;
- a.d = b.d;
- a.a = b.a;
- return a;
- }
- function Ry(a) {
- if (a.n) {
- a.e !== Sie && a._d();
- a.j = null;
- }
- return a;
- }
- function FD(a) {
- CCb(a == null || OD(a) && !(a.im === gcb));
- return a;
- }
- function p4b(a) {
- this.b = new Rkb();
- Gkb(this.b, this.b);
- this.a = a;
- }
- function QPb() {
- QPb = ccb;
- PPb = new Rkb();
- OPb = new Lqb();
- NPb = new Rkb();
- }
- function mmb() {
- mmb = ccb;
- jmb = new xmb();
- kmb = new Qmb();
- lmb = new Ymb();
- }
- function ipb() {
- ipb = ccb;
- fpb = new kpb();
- gpb = new kpb();
- hpb = new ppb();
- }
- function ODb() {
- ODb = ccb;
- LDb = new JDb();
- NDb = new oEb();
- MDb = new fEb();
- }
- function MCb() {
- if (HCb == 256) {
- GCb = ICb;
- ICb = new nb();
- HCb = 0;
- }
- ++HCb;
- }
- function nd(a) {
- var b;
- return b = a.f, !b ? a.f = new ne(a, a.c) : b;
- }
- function d2b(a) {
- return Qld(a) && Ccb(DD(hkd(a, (Nyc(), gxc))));
- }
- function mcc(a, b) {
- return Rc(a, BD(vNb(b, (Nyc(), Nxc)), 19), b);
- }
- function POc(a, b) {
- return vPc(a.j, b.s, b.c) + vPc(b.e, a.s, a.c);
- }
- function ooc(a, b) {
- if (!!a.e && !a.e.a) {
- moc(a.e, b);
- ooc(a.e, b);
- }
- }
- function noc(a, b) {
- if (!!a.d && !a.d.a) {
- moc(a.d, b);
- noc(a.d, b);
- }
- }
- function hed(a, b) {
- return -Kdb(red(a) * qed(a), red(b) * qed(b));
- }
- function cgd(a) {
- return BD(a.cd(), 146).tg() + ":" + fcb(a.dd());
- }
- function Zgc(a) {
- Hgc();
- var b;
- b = BD(a.g, 10);
- b.n.a = a.d.c + b.d.b;
- }
- function wgc(a, b, c2) {
- qgc();
- return iEb(BD(Ohb(a.e, b), 522), c2);
- }
- function Y2c(a, b) {
- rb(a);
- rb(b);
- return Xr(BD(a, 22), BD(b, 22));
- }
- function oic(a, b, c2) {
- a.i = 0;
- a.e = 0;
- if (b == c2) {
- return;
- }
- kic(a, b, c2);
- }
- function pic(a, b, c2) {
- a.i = 0;
- a.e = 0;
- if (b == c2) {
- return;
- }
- lic(a, b, c2);
- }
- function Spd(a, b, c2) {
- var d, e;
- d = Kcb(c2);
- e = new TB(d);
- cC(a, b, e);
- }
- function FSd(a, b, c2, d, e, f2) {
- ESd.call(this, a, b, c2, d, e, f2 ? -2 : -1);
- }
- function U5d(a, b, c2, d) {
- MLd.call(this, b, c2);
- this.b = a;
- this.a = d;
- }
- function QRc(a, b) {
- new Psb();
- this.a = new s7c();
- this.b = a;
- this.c = b;
- }
- function Hec(a, b) {
- BD(vNb(a, (wtc(), Qsc)), 15).Fc(b);
- return b;
- }
- function Rb(a, b) {
- if (a == null) {
- throw vbb(new Heb(b));
- }
- return a;
- }
- function WKd(a) {
- !a.q && (a.q = new cUd(n5, a, 11, 10));
- return a.q;
- }
- function ZKd(a) {
- !a.s && (a.s = new cUd(t5, a, 21, 17));
- return a.s;
- }
- function Vod(a) {
- !a.a && (a.a = new cUd(E2, a, 10, 11));
- return a.a;
- }
- function Dx(a) {
- return JD(a, 14) ? new Vqb(BD(a, 14)) : Ex(a.Kc());
- }
- function Ni(a) {
- return new aj(a, a.e.Hd().gc() * a.c.Hd().gc());
- }
- function Zi(a) {
- return new kj(a, a.e.Hd().gc() * a.c.Hd().gc());
- }
- function rz(a) {
- return !!a && !!a.hashCode ? a.hashCode() : FCb(a);
- }
- function Qhb(a, b) {
- return b == null ? !!irb(a.f, null) : Brb(a.g, b);
- }
- function Oq(a) {
- Qb(a);
- return mr(new Sr(ur(a.a.Kc(), new Sq())));
- }
- function vmb(a) {
- mmb();
- return JD(a, 54) ? new Yob(a) : new Inb(a);
- }
- function VDb(a, b, c2) {
- if (a.f) {
- return a.f.Ne(b, c2);
- }
- return false;
- }
- function Gfb(a, b) {
- a.a = qfb(a.a, 0, b) + "" + pfb(a.a, b + 1);
- return a;
- }
- function fVb(a, b) {
- var c2;
- c2 = Sqb(a.a, b);
- c2 && (b.d = null);
- return c2;
- }
- function zpb(a) {
- var b, c2;
- c2 = a;
- b = c2.$modCount | 0;
- c2.$modCount = b + 1;
- }
- function pu(a) {
- this.b = a;
- this.c = a;
- a.e = null;
- a.c = null;
- this.a = 1;
- }
- function hOb(a) {
- this.b = a;
- this.a = new Hxb(BD(Qb(new kOb()), 62));
- }
- function uEb(a) {
- this.c = a;
- this.b = new Hxb(BD(Qb(new xEb()), 62));
- }
- function SVb(a) {
- this.c = a;
- this.b = new Hxb(BD(Qb(new VVb()), 62));
- }
- function FYb() {
- this.a = new HXb();
- this.b = new LXb();
- this.d = new SYb();
- }
- function UZb() {
- this.a = new s7c();
- this.b = (Xj(3, Jie), new Skb(3));
- }
- function VMc() {
- this.b = new Tqb();
- this.d = new Psb();
- this.e = new twb();
- }
- function K6c(a) {
- this.c = a.c;
- this.d = a.d;
- this.b = a.b;
- this.a = a.a;
- }
- function Ay(a, b) {
- oi.call(this, new Qwb(a));
- this.a = a;
- this.b = b;
- }
- function eod() {
- bod(this, new $md());
- this.wb = (NFd(), MFd);
- LFd();
- }
- function eHc(a) {
- Odd(a, "No crossing minimization", 1);
- Qdd(a);
- }
- function Gz(a) {
- Az();
- $wnd.setTimeout(function() {
- throw a;
- }, 0);
- }
- function _Kd(a) {
- if (!a.u) {
- $Kd(a);
- a.u = new YOd(a, a);
- }
- return a.u;
- }
- function wjd(a) {
- var b;
- b = BD(Ajd(a, 16), 26);
- return !b ? a.zh() : b;
- }
- function Jsd(a, b) {
- return JD(b, 146) && dfb(a.b, BD(b, 146).tg());
- }
- function t0d(a, b) {
- return a.a ? b.Wg().Kc() : BD(b.Wg(), 69).Zh();
- }
- function u3b(a) {
- return a.k == (j0b(), h0b) && wNb(a, (wtc(), Csc));
- }
- function ux(a) {
- this.a = (mmb(), JD(a, 54) ? new Yob(a) : new Inb(a));
- }
- function Rz() {
- Rz = ccb;
- var a, b;
- b = !Xz();
- a = new dA();
- Qz = b ? new Yz() : a;
- }
- function Wy(a, b) {
- var c2;
- c2 = hdb(a.gm);
- return b == null ? c2 : c2 + ": " + b;
- }
- function Eob(a, b) {
- var c2;
- c2 = a.b.Qc(b);
- Fob(c2, a.b.gc());
- return c2;
- }
- function ytb(a, b) {
- if (a == null) {
- throw vbb(new Heb(b));
- }
- return a;
- }
- function irb(a, b) {
- return grb(a, b, hrb(a, b == null ? 0 : a.b.se(b)));
- }
- function ofb(a, b, c2) {
- return c2 >= 0 && dfb(a.substr(c2, b.length), b);
- }
- function H2d(a, b, c2, d, e, f2, g) {
- return new O7d(a.e, b, c2, d, e, f2, g);
- }
- function Cxd(a, b, c2, d, e, f2) {
- this.a = a;
- nxd.call(this, b, c2, d, e, f2);
- }
- function vyd(a, b, c2, d, e, f2) {
- this.a = a;
- nxd.call(this, b, c2, d, e, f2);
- }
- function $Ec(a, b) {
- this.g = a;
- this.d = OC(GC(OQ, 1), kne, 10, 0, [b]);
- }
- function KVd(a, b) {
- this.e = a;
- this.a = SI;
- this.b = R5d(b);
- this.c = b;
- }
- function cIb(a, b) {
- $Gb.call(this);
- THb(this);
- this.a = a;
- this.c = b;
- }
- function kBc(a, b, c2, d) {
- NC(a.c[b.g], c2.g, d);
- NC(a.c[c2.g], b.g, d);
- }
- function nBc(a, b, c2, d) {
- NC(a.c[b.g], b.g, c2);
- NC(a.b[b.g], b.g, d);
- }
- function cBc() {
- _Ac();
- return OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc]);
- }
- function crc() {
- _qc();
- return OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc]);
- }
- function Aqc() {
- xqc();
- return OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc]);
- }
- function Lpc() {
- Ipc();
- return OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc]);
- }
- function psc() {
- msc();
- return OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc]);
- }
- function EAc() {
- BAc();
- return OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc]);
- }
- function XIc() {
- UIc();
- return OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc]);
- }
- function KOc() {
- HOc();
- return OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc]);
- }
- function _Lc() {
- YLc();
- return OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc]);
- }
- function hMc() {
- eMc();
- return OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc]);
- }
- function IQc() {
- FQc();
- return OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc]);
- }
- function bUc() {
- $Tc();
- return OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc]);
- }
- function VTc() {
- STc();
- return OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc]);
- }
- function VUc() {
- PUc();
- return OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc]);
- }
- function jWc() {
- fWc();
- return OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc]);
- }
- function g1c() {
- a1c();
- return OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c]);
- }
- function F_c() {
- C_c();
- return OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c]);
- }
- function PEb() {
- MEb();
- return OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb]);
- }
- function XEb() {
- UEb();
- return OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb]);
- }
- function $Rb() {
- XRb();
- return OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb]);
- }
- function B5b() {
- y5b();
- return OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b]);
- }
- function lid(a, b, c2, d) {
- return c2 >= 0 ? a.jh(b, c2, d) : a.Sg(null, c2, d);
- }
- function hgd(a) {
- if (a.b.b == 0) {
- return a.a.$e();
- }
- return Lsb(a.b);
- }
- function Xwd(a) {
- if (a.p != 5)
- throw vbb(new Ydb());
- return Tbb(a.f);
- }
- function exd(a) {
- if (a.p != 5)
- throw vbb(new Ydb());
- return Tbb(a.k);
- }
- function pNd(a) {
- PD(a.a) === PD((NKd(), MKd)) && qNd(a);
- return a.a;
- }
- function by(a) {
- this.a = BD(Qb(a), 271);
- this.b = (mmb(), new Zob(a));
- }
- function bQc(a, b) {
- $Pc(this, new f7c(a.a, a.b));
- _Pc(this, Ru(b));
- }
- function FQc() {
- FQc = ccb;
- DQc = new GQc(jle, 0);
- EQc = new GQc(kle, 1);
- }
- function YLc() {
- YLc = ccb;
- XLc = new ZLc(kle, 0);
- WLc = new ZLc(jle, 1);
- }
- function Hp() {
- Gp.call(this, new Mqb(Cv(12)));
- Lb(true);
- this.a = 2;
- }
- function Hge(a, b, c2) {
- wfe();
- xfe.call(this, a);
- this.b = b;
- this.a = c2;
- }
- function cWd(a, b, c2) {
- UVd();
- VVd.call(this, b);
- this.a = a;
- this.b = c2;
- }
- function aIb(a) {
- $Gb.call(this);
- THb(this);
- this.a = a;
- this.c = true;
- }
- function isb(a) {
- var b;
- b = a.c.d.b;
- a.b = b;
- a.a = a.c.d;
- b.a = a.c.d.b = a;
- }
- function $Cb(a) {
- var b;
- NGb(a.a);
- MGb(a.a);
- b = new YGb(a.a);
- UGb(b);
- }
- function iKb(a, b) {
- hKb(a, true);
- Hkb(a.e.wf(), new mKb(a, true, b));
- }
- function tlb(a, b) {
- pCb(b);
- return vlb(a, KC(WD, oje, 25, b, 15, 1), b);
- }
- function YPb(a, b) {
- QPb();
- return a == Xod(jtd(b)) || a == Xod(ltd(b));
- }
- function Phb(a, b) {
- return b == null ? Wd(irb(a.f, null)) : Crb(a.g, b);
- }
- function Ksb(a) {
- return a.b == 0 ? null : (sCb(a.b != 0), Nsb(a, a.a.a));
- }
- function QD(a) {
- return Math.max(Math.min(a, Ohe), -2147483648) | 0;
- }
- function uz(a, b) {
- var c2 = tz[a.charCodeAt(0)];
- return c2 == null ? a : c2;
- }
- function Cx(a, b) {
- Rb(a, "set1");
- Rb(b, "set2");
- return new Px(a, b);
- }
- function QUb(a, b) {
- var c2;
- c2 = zUb(a.f, b);
- return P6c(V6c(c2), a.f.d);
- }
- function Jwb(a, b) {
- var c2, d;
- c2 = b;
- d = new fxb();
- Lwb(a, c2, d);
- return d.d;
- }
- function NJb(a, b, c2, d) {
- var e;
- e = new aHb();
- b.a[c2.g] = e;
- Npb(a.b, d, e);
- }
- function zid(a, b, c2) {
- var d;
- d = a.Yg(b);
- d >= 0 ? a.sh(d, c2) : uid(a, b, c2);
- }
- function hvd(a, b, c2) {
- evd();
- !!a && Rhb(dvd, a, b);
- !!a && Rhb(cvd, a, c2);
- }
- function g_c(a, b, c2) {
- this.i = new Rkb();
- this.b = a;
- this.g = b;
- this.a = c2;
- }
- function VZc(a, b, c2) {
- this.c = new Rkb();
- this.e = a;
- this.f = b;
- this.b = c2;
- }
- function b$c(a, b, c2) {
- this.a = new Rkb();
- this.e = a;
- this.f = b;
- this.c = c2;
- }
- function Zy(a, b) {
- Py(this);
- this.f = b;
- this.g = a;
- Ry(this);
- this._d();
- }
- function ZA(a, b) {
- var c2;
- c2 = a.q.getHours();
- a.q.setDate(b);
- YA(a, c2);
- }
- function no(a, b) {
- var c2;
- Qb(b);
- for (c2 = a.a; c2; c2 = c2.c) {
- b.Od(c2.g, c2.i);
- }
- }
- function Fx(a) {
- var b;
- b = new Uqb(Cv(a.length));
- nmb(b, a);
- return b;
- }
- function ecb(a) {
- function b() {
- }
- b.prototype = a || {};
- return new b();
- }
- function dkb(a, b) {
- if (Zjb(a, b)) {
- wkb(a);
- return true;
- }
- return false;
- }
- function aC(a, b) {
- if (b == null) {
- throw vbb(new Geb());
- }
- return bC(a, b);
- }
- function tdb(a) {
- if (a.qe()) {
- return null;
- }
- var b = a.n;
- return _bb[b];
- }
- function Mld(a) {
- if (a.Db >> 16 != 3)
- return null;
- return BD(a.Cb, 33);
- }
- function mpd(a) {
- if (a.Db >> 16 != 9)
- return null;
- return BD(a.Cb, 33);
- }
- function fmd(a) {
- if (a.Db >> 16 != 6)
- return null;
- return BD(a.Cb, 79);
- }
- function Ind(a) {
- if (a.Db >> 16 != 7)
- return null;
- return BD(a.Cb, 235);
- }
- function Fod(a) {
- if (a.Db >> 16 != 7)
- return null;
- return BD(a.Cb, 160);
- }
- function Xod(a) {
- if (a.Db >> 16 != 11)
- return null;
- return BD(a.Cb, 33);
- }
- function nid(a, b) {
- var c2;
- c2 = a.Yg(b);
- return c2 >= 0 ? a.lh(c2) : tid(a, b);
- }
- function Dtd(a, b) {
- var c2;
- c2 = new Bsb(b);
- Ve(c2, a);
- return new Tkb(c2);
- }
- function Uud(a) {
- var b;
- b = a.d;
- b = a.si(a.f);
- wtd(a, b);
- return b.Ob();
- }
- function t_b(a, b) {
- a.b += b.b;
- a.c += b.c;
- a.d += b.d;
- a.a += b.a;
- return a;
- }
- function A4b(a, b) {
- return $wnd.Math.abs(a) < $wnd.Math.abs(b) ? a : b;
- }
- function Zod(a) {
- return !a.a && (a.a = new cUd(E2, a, 10, 11)), a.a.i > 0;
- }
- function oDb() {
- this.a = new zsb();
- this.e = new Tqb();
- this.g = 0;
- this.i = 0;
- }
- function BGc(a) {
- this.a = a;
- this.b = KC(SX, nie, 1944, a.e.length, 0, 2);
- }
- function RHc(a, b, c2) {
- var d;
- d = SHc(a, b, c2);
- a.b = new BHc(d.c.length);
- }
- function eMc() {
- eMc = ccb;
- cMc = new fMc(vle, 0);
- dMc = new fMc("UP", 1);
- }
- function STc() {
- STc = ccb;
- QTc = new TTc(Yqe, 0);
- RTc = new TTc("FAN", 1);
- }
- function evd() {
- evd = ccb;
- dvd = new Lqb();
- cvd = new Lqb();
- ivd(hK, new jvd());
- }
- function Swd(a) {
- if (a.p != 0)
- throw vbb(new Ydb());
- return Kbb(a.f, 0);
- }
- function _wd(a) {
- if (a.p != 0)
- throw vbb(new Ydb());
- return Kbb(a.k, 0);
- }
- function MHd(a) {
- if (a.Db >> 16 != 3)
- return null;
- return BD(a.Cb, 147);
- }
- function ZJd(a) {
- if (a.Db >> 16 != 6)
- return null;
- return BD(a.Cb, 235);
- }
- function WId(a) {
- if (a.Db >> 16 != 17)
- return null;
- return BD(a.Cb, 26);
- }
- function rdb(a, b) {
- var c2 = a.a = a.a || [];
- return c2[b] || (c2[b] = a.le(b));
- }
- function hrb(a, b) {
- var c2;
- c2 = a.a.get(b);
- return c2 == null ? new Array() : c2;
- }
- function aB(a, b) {
- var c2;
- c2 = a.q.getHours();
- a.q.setMonth(b);
- YA(a, c2);
- }
- function Shb(a, b, c2) {
- return b == null ? jrb(a.f, null, c2) : Drb(a.g, b, c2);
- }
- function FLd(a, b, c2, d, e, f2) {
- return new pSd(a.e, b, a.aj(), c2, d, e, f2);
- }
- function Tfb(a, b, c2) {
- a.a = qfb(a.a, 0, b) + ("" + c2) + pfb(a.a, b);
- return a;
- }
- function bq(a, b, c2) {
- Ekb(a.a, (Vm(), Wj(b, c2), new Wo(b, c2)));
- return a;
- }
- function uu(a) {
- ot(a.c);
- a.e = a.a = a.c;
- a.c = a.c.c;
- ++a.d;
- return a.a.f;
- }
- function vu(a) {
- ot(a.e);
- a.c = a.a = a.e;
- a.e = a.e.e;
- --a.d;
- return a.a.f;
- }
- function RZb(a, b) {
- !!a.d && Lkb(a.d.e, a);
- a.d = b;
- !!a.d && Ekb(a.d.e, a);
- }
- function QZb(a, b) {
- !!a.c && Lkb(a.c.g, a);
- a.c = b;
- !!a.c && Ekb(a.c.g, a);
- }
- function $_b(a, b) {
- !!a.c && Lkb(a.c.a, a);
- a.c = b;
- !!a.c && Ekb(a.c.a, a);
- }
- function F0b(a, b) {
- !!a.i && Lkb(a.i.j, a);
- a.i = b;
- !!a.i && Ekb(a.i.j, a);
- }
- function jDb(a, b, c2) {
- this.a = b;
- this.c = a;
- this.b = (Qb(c2), new Tkb(c2));
- }
- function qXb(a, b, c2) {
- this.a = b;
- this.c = a;
- this.b = (Qb(c2), new Tkb(c2));
- }
- function aOb(a, b) {
- this.a = a;
- this.c = R6c(this.a);
- this.b = new K6c(b);
- }
- function IAb(a) {
- var b;
- Uzb(a);
- b = new Tqb();
- return JAb(a, new jBb(b));
- }
- function wCb(a, b) {
- if (a < 0 || a > b) {
- throw vbb(new qcb(Ake + a + Bke + b));
- }
- }
- function Ppb(a, b) {
- return vqb(a.a, b) ? Qpb(a, BD(b, 22).g, null) : null;
- }
- function WUb(a) {
- LUb();
- return Bcb(), BD(a.a, 81).d.e != 0 ? true : false;
- }
- function qs() {
- qs = ccb;
- ps = as((hs(), OC(GC(yG, 1), Kie, 538, 0, [gs])));
- }
- function SBc() {
- SBc = ccb;
- RBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
- }
- function ZBc() {
- ZBc = ccb;
- YBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
- }
- function oCc() {
- oCc = ccb;
- nCc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
- }
- function aJc() {
- aJc = ccb;
- _Ic = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
- }
- function FJc() {
- FJc = ccb;
- EJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
- }
- function ILc() {
- ILc = ccb;
- HLc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
- }
- function wMc() {
- wMc = ccb;
- vMc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
- }
- function fUc() {
- fUc = ccb;
- eUc = c3c(new j3c(), (yRc(), xRc), (qSc(), kSc));
- }
- function DOc(a, b, c2, d) {
- this.c = a;
- this.d = d;
- BOc(this, b);
- COc(this, c2);
- }
- function W3c(a) {
- this.c = new Psb();
- this.b = a.b;
- this.d = a.c;
- this.a = a.a;
- }
- function e7c(a) {
- this.a = $wnd.Math.cos(a);
- this.b = $wnd.Math.sin(a);
- }
- function BOc(a, b) {
- !!a.a && Lkb(a.a.k, a);
- a.a = b;
- !!a.a && Ekb(a.a.k, a);
- }
- function COc(a, b) {
- !!a.b && Lkb(a.b.f, a);
- a.b = b;
- !!a.b && Ekb(a.b.f, a);
- }
- function D1c(a, b) {
- E1c(a, a.b, a.c);
- BD(a.b.b, 65);
- !!b && BD(b.b, 65).b;
- }
- function BUd(a, b) {
- CUd(a, b);
- JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2);
- }
- function cJd(a, b) {
- JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
- pnd(a, b);
- }
- function lKd(a, b) {
- JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null);
- pnd(a, b);
- }
- function T2d(a, b) {
- return Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a);
- }
- function jsd(a, b) {
- var c2, d;
- c2 = b.c;
- d = c2 != null;
- d && Qpd(a, new yC(b.c));
- }
- function XOd(a) {
- var b, c2;
- c2 = (LFd(), b = new UQd(), b);
- NQd(c2, a);
- return c2;
- }
- function eTd(a) {
- var b, c2;
- c2 = (LFd(), b = new UQd(), b);
- NQd(c2, a);
- return c2;
- }
- function yCc(a, b) {
- var c2;
- c2 = new H1b(a);
- b.c[b.c.length] = c2;
- return c2;
- }
- function Aw(a, b) {
- var c2;
- c2 = BD(Hv(nd(a.a), b), 14);
- return !c2 ? 0 : c2.gc();
- }
- function UAb(a) {
- var b;
- Uzb(a);
- b = (ipb(), ipb(), gpb);
- return VAb(a, b);
- }
- function nr(a) {
- var b;
- while (true) {
- b = a.Pb();
- if (!a.Ob()) {
- return b;
- }
- }
- }
- function Ki(a, b) {
- Ii.call(this, new Mqb(Cv(a)));
- Xj(b, mie);
- this.a = b;
- }
- function Jib(a, b, c2) {
- xCb(b, c2, a.gc());
- this.c = a;
- this.a = b;
- this.b = c2 - b;
- }
- function Mkb(a, b, c2) {
- var d;
- xCb(b, c2, a.c.length);
- d = c2 - b;
- cCb(a.c, b, d);
- }
- function Fub(a, b) {
- Eub(a, Tbb(xbb(Obb(b, 24), nke)), Tbb(xbb(b, nke)));
- }
- function tCb(a, b) {
- if (a < 0 || a >= b) {
- throw vbb(new qcb(Ake + a + Bke + b));
- }
- }
- function BCb(a, b) {
- if (a < 0 || a >= b) {
- throw vbb(new Xfb(Ake + a + Bke + b));
- }
- }
- function Kub(a, b) {
- this.b = (uCb(a), a);
- this.a = (b & Rje) == 0 ? b | 64 | oie : b;
- }
- function kkb(a) {
- Vjb(this);
- dCb(this.a, geb($wnd.Math.max(8, a)) << 1);
- }
- function A0b(a) {
- return l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a]));
- }
- function Iyb() {
- Fyb();
- return OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb]);
- }
- function jHb() {
- gHb();
- return OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]);
- }
- function QHb() {
- NHb();
- return OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb]);
- }
- function HIb() {
- EIb();
- return OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb]);
- }
- function UXb() {
- RXb();
- return OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb]);
- }
- function BTb() {
- yTb();
- return OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb]);
- }
- function Bzc() {
- xzc();
- return OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc]);
- }
- function Xpc() {
- Rpc();
- return OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc]);
- }
- function eqc() {
- bqc();
- return OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc]);
- }
- function Jqc() {
- Gqc();
- return OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc]);
- }
- function Ikc() {
- Fkc();
- return OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]);
- }
- function hsc() {
- esc();
- return OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc]);
- }
- function $rc() {
- Xrc();
- return OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc]);
- }
- function NAc() {
- KAc();
- return OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc]);
- }
- function wAc() {
- tAc();
- return OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc]);
- }
- function WAc() {
- TAc();
- return OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc]);
- }
- function OBc() {
- LBc();
- return OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc]);
- }
- function wBc() {
- tBc();
- return OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc]);
- }
- function FBc() {
- CBc();
- return OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc]);
- }
- function uGc() {
- rGc();
- return OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc]);
- }
- function xVc() {
- tVc();
- return OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc]);
- }
- function tWc() {
- pWc();
- return OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc]);
- }
- function CYc() {
- zYc();
- return OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc]);
- }
- function wXc() {
- sXc();
- return OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc]);
- }
- function _$c() {
- Y$c();
- return OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c]);
- }
- function kbd() {
- hbd();
- return OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd]);
- }
- function tad() {
- qad();
- return OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad2]);
- }
- function o3d(a, b) {
- return p3d(a, b, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
- }
- function LZc(a, b, c2) {
- var d;
- d = MZc(a, b, false);
- return d.b <= b && d.a <= c2;
- }
- function tMc(a, b, c2) {
- var d;
- d = new sMc();
- d.b = b;
- d.a = c2;
- ++b.b;
- Ekb(a.d, d);
- }
- function fs(a, b) {
- var c2;
- c2 = (uCb(a), a).g;
- lCb(!!c2);
- uCb(b);
- return c2(b);
- }
- function av(a, b) {
- var c2, d;
- d = cv(a, b);
- c2 = a.a.Zc(d);
- return new qv(a, c2);
- }
- function cKd(a) {
- if (a.Db >> 16 != 6)
- return null;
- return BD(aid(a), 235);
- }
- function Uwd(a) {
- if (a.p != 2)
- throw vbb(new Ydb());
- return Tbb(a.f) & aje;
- }
- function bxd(a) {
- if (a.p != 2)
- throw vbb(new Ydb());
- return Tbb(a.k) & aje;
- }
- function Z1d(a) {
- a.a == (T0d(), S0d) && d2d(a, U0d(a.g, a.b));
- return a.a;
- }
- function _1d(a) {
- a.d == (T0d(), S0d) && f2d(a, Y0d(a.g, a.b));
- return a.d;
- }
- function mlb(a) {
- sCb(a.a < a.c.c.length);
- a.b = a.a++;
- return a.c.c[a.b];
- }
- function hEb(a, b) {
- a.b = a.b | b.b;
- a.c = a.c | b.c;
- a.d = a.d | b.d;
- a.a = a.a | b.a;
- }
- function xbb(a, b) {
- return zbb(dD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
- }
- function Mbb(a, b) {
- return zbb(jD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
- }
- function Vbb(a, b) {
- return zbb(rD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
- }
- function Dub(a) {
- return wbb(Nbb(Cbb(Cub(a, 32)), 32), Cbb(Cub(a, 32)));
- }
- function Mu(a) {
- Qb(a);
- return JD(a, 14) ? new Tkb(BD(a, 14)) : Nu(a.Kc());
- }
- function EWb(a, b) {
- AWb();
- return a.c == b.c ? Kdb(b.d, a.d) : Kdb(a.c, b.c);
- }
- function FWb(a, b) {
- AWb();
- return a.c == b.c ? Kdb(a.d, b.d) : Kdb(a.c, b.c);
- }
- function HWb(a, b) {
- AWb();
- return a.c == b.c ? Kdb(a.d, b.d) : Kdb(b.c, a.c);
- }
- function GWb(a, b) {
- AWb();
- return a.c == b.c ? Kdb(b.d, a.d) : Kdb(b.c, a.c);
- }
- function WGb(a, b) {
- var c2;
- c2 = Edb(ED(a.a.We((Y9c(), Q9c))));
- XGb(a, b, c2);
- }
- function Rgc(a, b) {
- var c2;
- c2 = BD(Ohb(a.g, b), 57);
- Hkb(b.d, new Qhc(a, c2));
- }
- function GYb(a, b) {
- var c2, d;
- c2 = d_b(a);
- d = d_b(b);
- return c2 < d ? -1 : c2 > d ? 1 : 0;
- }
- function bjc(a, b) {
- var c2, d;
- c2 = ajc(b);
- d = c2;
- return BD(Ohb(a.c, d), 19).a;
- }
- function iSc(a, b) {
- var c2;
- c2 = a + "";
- while (c2.length < b) {
- c2 = "0" + c2;
- }
- return c2;
- }
- function WRc(a) {
- return a.c == null || a.c.length == 0 ? "n_" + a.g : "n_" + a.c;
- }
- function oRb(a) {
- return a.c == null || a.c.length == 0 ? "n_" + a.b : "n_" + a.c;
- }
- function qz(a, b) {
- return !!a && !!a.equals ? a.equals(b) : PD(a) === PD(b);
- }
- function dkd(a, b) {
- if (b == 0) {
- return !!a.o && a.o.f != 0;
- }
- return mid(a, b);
- }
- function Tdd(a, b, c2) {
- var d;
- if (a.n && !!b && !!c2) {
- d = new kgd();
- Ekb(a.e, d);
- }
- }
- function cIc(a, b, c2) {
- var d;
- d = a.d[b.p];
- a.d[b.p] = a.d[c2.p];
- a.d[c2.p] = d;
- }
- function kxd(a, b, c2) {
- this.d = a;
- this.j = b;
- this.e = c2;
- this.o = -1;
- this.p = 3;
- }
- function lxd(a, b, c2) {
- this.d = a;
- this.k = b;
- this.f = c2;
- this.o = -1;
- this.p = 5;
- }
- function zge(a, b, c2) {
- xfe.call(this, 25);
- this.b = a;
- this.a = b;
- this.c = c2;
- }
- function $fe(a) {
- wfe();
- xfe.call(this, a);
- this.c = false;
- this.a = false;
- }
- function sSd(a, b, c2, d, e, f2) {
- rSd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function uSd(a, b, c2, d, e, f2) {
- tSd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function wSd(a, b, c2, d, e, f2) {
- vSd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function ySd(a, b, c2, d, e, f2) {
- xSd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function ASd(a, b, c2, d, e, f2) {
- zSd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function CSd(a, b, c2, d, e, f2) {
- BSd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function HSd(a, b, c2, d, e, f2) {
- GSd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function JSd(a, b, c2, d, e, f2) {
- ISd.call(this, a, b, c2, d, e);
- f2 && (this.o = -2);
- }
- function nWd(a, b, c2, d) {
- VVd.call(this, c2);
- this.b = a;
- this.c = b;
- this.d = d;
- }
- function x$c(a, b) {
- this.a = new Rkb();
- this.d = new Rkb();
- this.f = a;
- this.c = b;
- }
- function PTb() {
- this.c = new bUb();
- this.a = new FYb();
- this.b = new wZb();
- $Yb();
- }
- function b2c() {
- Y1c();
- this.b = new Lqb();
- this.a = new Lqb();
- this.c = new Rkb();
- }
- function j2d(a, b) {
- this.g = a;
- this.d = (T0d(), S0d);
- this.a = S0d;
- this.b = b;
- }
- function O1d(a, b) {
- this.f = a;
- this.a = (T0d(), R0d);
- this.c = R0d;
- this.b = b;
- }
- function h9d(a, b) {
- !a.c && (a.c = new u3d(a, 0));
- f3d(a.c, (Q8d(), I8d), b);
- }
- function $Tc() {
- $Tc = ccb;
- ZTc = new _Tc("DFS", 0);
- YTc = new _Tc("BFS", 1);
- }
- function Cc(a, b, c2) {
- var d;
- d = BD(a.Zb().xc(b), 14);
- return !!d && d.Hc(c2);
- }
- function Gc(a, b, c2) {
- var d;
- d = BD(a.Zb().xc(b), 14);
- return !!d && d.Mc(c2);
- }
- function Ofb(a, b, c2, d) {
- a.a += "" + qfb(b == null ? Xhe : fcb(b), c2, d);
- return a;
- }
- function Xnd(a, b, c2, d, e, f2) {
- Ynd(a, b, c2, f2);
- eLd(a, d);
- fLd(a, e);
- return a;
- }
- function Ysb(a) {
- sCb(a.b.b != a.d.a);
- a.c = a.b = a.b.b;
- --a.a;
- return a.c.c;
- }
- function Jgb(a) {
- while (a.d > 0 && a.a[--a.d] == 0)
- ;
- a.a[a.d++] == 0 && (a.e = 0);
- }
- function wwb(a) {
- return !a.a ? a.c : a.e.length == 0 ? a.a.a : a.a.a + ("" + a.e);
- }
- function RSd(a) {
- return !!a.a && QSd(a.a.a).i != 0 && !(!!a.b && QTd(a.b));
- }
- function cLd(a) {
- return !!a.u && VKd(a.u.a).i != 0 && !(!!a.n && FMd(a.n));
- }
- function $i(a) {
- return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 16, new ij(a));
- }
- function XA(a, b) {
- return ueb(Cbb(a.q.getTime()), Cbb(b.q.getTime()));
- }
- function k_b(a) {
- return BD(Qkb(a, KC(AQ, jne, 17, a.c.length, 0, 1)), 474);
- }
- function l_b(a) {
- return BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
- }
- function cKc(a) {
- FJc();
- return !OZb(a) && !(!OZb(a) && a.c.i.c == a.d.i.c);
- }
- function kDb(a, b, c2) {
- var d;
- d = (Qb(a), new Tkb(a));
- iDb(new jDb(d, b, c2));
- }
- function rXb(a, b, c2) {
- var d;
- d = (Qb(a), new Tkb(a));
- pXb(new qXb(d, b, c2));
- }
- function Nwb(a, b) {
- var c2;
- c2 = 1 - b;
- a.a[c2] = Owb(a.a[c2], c2);
- return Owb(a, b);
- }
- function YXc(a, b) {
- var c2;
- a.e = new QXc();
- c2 = gVc(b);
- Okb(c2, a.c);
- ZXc(a, c2, 0);
- }
- function o4c(a, b, c2, d) {
- var e;
- e = new w4c();
- e.a = b;
- e.b = c2;
- e.c = d;
- Dsb(a.a, e);
- }
- function p4c(a, b, c2, d) {
- var e;
- e = new w4c();
- e.a = b;
- e.b = c2;
- e.c = d;
- Dsb(a.b, e);
- }
- function i6d(a) {
- var b, c2, d;
- b = new A6d();
- c2 = s6d(b, a);
- z6d(b);
- d = c2;
- return d;
- }
- function vZd() {
- var a, b, c2;
- b = (c2 = (a = new UQd(), a), c2);
- Ekb(rZd, b);
- return b;
- }
- function H2c(a) {
- a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
- Ae(a.c);
- h3c(a.a);
- return a;
- }
- function tgc(a) {
- qgc();
- if (JD(a.g, 10)) {
- return BD(a.g, 10);
- }
- return null;
- }
- function Zw(a) {
- if (Ah(a).dc()) {
- return false;
- }
- Bh(a, new bx());
- return true;
- }
- function _y(b) {
- if (!("stack" in b)) {
- try {
- throw b;
- } catch (a) {
- }
- }
- return b;
- }
- function Pb(a, b) {
- if (a < 0 || a >= b) {
- throw vbb(new qcb(Ib(a, b)));
- }
- return a;
- }
- function Tb(a, b, c2) {
- if (a < 0 || b < a || b > c2) {
- throw vbb(new qcb(Kb(a, b, c2)));
- }
- }
- function eVb(a, b) {
- Qqb(a.a, b);
- if (b.d) {
- throw vbb(new hz(Hke));
- }
- b.d = a;
- }
- function xpb(a, b) {
- if (b.$modCount != a.$modCount) {
- throw vbb(new Apb());
- }
- }
- function $pb(a, b) {
- if (JD(b, 42)) {
- return Jd(a.a, BD(b, 42));
- }
- return false;
- }
- function dib(a, b) {
- if (JD(b, 42)) {
- return Jd(a.a, BD(b, 42));
- }
- return false;
- }
- function msb(a, b) {
- if (JD(b, 42)) {
- return Jd(a.a, BD(b, 42));
- }
- return false;
- }
- function qAb(a, b) {
- if (a.a <= a.b) {
- b.ud(a.a++);
- return true;
- }
- return false;
- }
- function Sbb(a) {
- var b;
- if (Fbb(a)) {
- b = a;
- return b == -0 ? 0 : b;
- }
- return oD(a);
- }
- function tAb(a) {
- var b;
- Tzb(a);
- b = new drb();
- _ub(a.a, new BAb(b));
- return b;
- }
- function Yzb(a) {
- var b;
- Tzb(a);
- b = new Gpb();
- _ub(a.a, new mAb(b));
- return b;
- }
- function Bib(a, b) {
- this.a = a;
- vib.call(this, a);
- wCb(b, a.gc());
- this.b = b;
- }
- function orb(a) {
- this.e = a;
- this.b = this.e.a.entries();
- this.a = new Array();
- }
- function Oi(a) {
- return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 273, new cj(a));
- }
- function Qu(a) {
- return new Skb((Xj(a, Mie), Oy(wbb(wbb(5, a), a / 10 | 0))));
- }
- function m_b(a) {
- return BD(Qkb(a, KC(aR, lne, 11, a.c.length, 0, 1)), 1943);
- }
- function sMb(a, b, c2) {
- return c2.f.c.length > 0 ? HMb(a.a, b, c2) : HMb(a.b, b, c2);
- }
- function SZb(a, b, c2) {
- !!a.d && Lkb(a.d.e, a);
- a.d = b;
- !!a.d && Dkb(a.d.e, c2, a);
- }
- function a5b(a, b) {
- i5b(b, a);
- k5b(a.d);
- k5b(BD(vNb(a, (Nyc(), wxc)), 207));
- }
- function _4b(a, b) {
- f5b(b, a);
- h5b(a.d);
- h5b(BD(vNb(a, (Nyc(), wxc)), 207));
- }
- function Ypd(a, b) {
- var c2, d;
- c2 = aC(a, b);
- d = null;
- !!c2 && (d = c2.fe());
- return d;
- }
- function Zpd(a, b) {
- var c2, d;
- c2 = tB(a, b);
- d = null;
- !!c2 && (d = c2.ie());
- return d;
- }
- function $pd(a, b) {
- var c2, d;
- c2 = aC(a, b);
- d = null;
- !!c2 && (d = c2.ie());
- return d;
- }
- function _pd(a, b) {
- var c2, d;
- c2 = aC(a, b);
- d = null;
- !!c2 && (d = aqd(c2));
- return d;
- }
- function Tqd(a, b, c2) {
- var d;
- d = Wpd(c2);
- ro(a.g, d, b);
- ro(a.i, b, c2);
- return b;
- }
- function Ez(a, b, c2) {
- var d;
- d = Cz();
- try {
- return Bz(a, b, c2);
- } finally {
- Fz(d);
- }
- }
- function C6d(a) {
- var b;
- b = a.Wg();
- this.a = JD(b, 69) ? BD(b, 69).Zh() : b.Kc();
- }
- function j3c() {
- D2c.call(this);
- this.j.c = KC(SI, Uhe, 1, 0, 5, 1);
- this.a = -1;
- }
- function mxd(a, b, c2, d) {
- this.d = a;
- this.n = b;
- this.g = c2;
- this.o = d;
- this.p = -1;
- }
- function jk(a, b, c2, d) {
- this.e = d;
- this.d = null;
- this.c = a;
- this.a = b;
- this.b = c2;
- }
- function uEc(a, b, c2) {
- this.d = new HEc(this);
- this.e = a;
- this.i = b;
- this.f = c2;
- }
- function msc() {
- msc = ccb;
- ksc = new nsc(gle, 0);
- lsc = new nsc("TOP_LEFT", 1);
- }
- function cDc() {
- cDc = ccb;
- bDc = ix(meb(1), meb(4));
- aDc = ix(meb(1), meb(2));
- }
- function z_c() {
- z_c = ccb;
- y_c = as((s_c(), OC(GC(O_, 1), Kie, 551, 0, [r_c])));
- }
- function q_c() {
- q_c = ccb;
- p_c = as((i_c(), OC(GC(N_, 1), Kie, 482, 0, [h_c])));
- }
- function Z0c() {
- Z0c = ccb;
- Y0c = as((R0c(), OC(GC(W_, 1), Kie, 530, 0, [Q0c])));
- }
- function hPb() {
- hPb = ccb;
- gPb = as((cPb(), OC(GC(GO, 1), Kie, 481, 0, [bPb])));
- }
- function yLb() {
- vLb();
- return OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb]);
- }
- function qxb() {
- lxb();
- return OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb]);
- }
- function UOb() {
- ROb();
- return OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb]);
- }
- function UMb() {
- RMb();
- return OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb]);
- }
- function sWb() {
- lWb();
- return OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb]);
- }
- function kbc() {
- gbc();
- return OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc]);
- }
- function Vc(a, b, c2, d) {
- return JD(c2, 54) ? new Cg(a, b, c2, d) : new qg(a, b, c2, d);
- }
- function Djc() {
- Ajc();
- return OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc]);
- }
- function okc(a) {
- var b;
- return a.j == (Ucd(), Rcd) && (b = pkc(a), uqb(b, zcd));
- }
- function Mdc(a, b) {
- var c2;
- c2 = b.a;
- QZb(c2, b.c.d);
- RZb(c2, b.d.d);
- q7c(c2.a, a.n);
- }
- function Smc(a, b) {
- return BD(Btb(QAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113);
- }
- function Tmc(a, b) {
- return BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113);
- }
- function _w(a) {
- return new Kub(rmb(BD(a.a.dd(), 14).gc(), a.a.cd()), 16);
- }
- function Qq(a) {
- if (JD(a, 14)) {
- return BD(a, 14).dc();
- }
- return !a.Kc().Ob();
- }
- function ugc(a) {
- qgc();
- if (JD(a.g, 145)) {
- return BD(a.g, 145);
- }
- return null;
- }
- function Ko(a) {
- if (a.e.g != a.b) {
- throw vbb(new Apb());
- }
- return !!a.c && a.d > 0;
- }
- function Xsb(a) {
- sCb(a.b != a.d.c);
- a.c = a.b;
- a.b = a.b.a;
- ++a.a;
- return a.c.c;
- }
- function Xjb(a, b) {
- uCb(b);
- NC(a.a, a.c, b);
- a.c = a.c + 1 & a.a.length - 1;
- _jb(a);
- }
- function Wjb(a, b) {
- uCb(b);
- a.b = a.b - 1 & a.a.length - 1;
- NC(a.a, a.b, b);
- _jb(a);
- }
- function A2c(a, b) {
- var c2;
- for (c2 = a.j.c.length; c2 < b; c2++) {
- Ekb(a.j, a.rg());
- }
- }
- function gBc(a, b, c2, d) {
- var e;
- e = d[b.g][c2.g];
- return Edb(ED(vNb(a.a, e)));
- }
- function goc(a, b, c2, d, e) {
- this.i = a;
- this.a = b;
- this.e = c2;
- this.j = d;
- this.f = e;
- }
- function DZc(a, b, c2, d, e) {
- this.a = a;
- this.e = b;
- this.f = c2;
- this.b = d;
- this.g = e;
- }
- function Fz(a) {
- a && Mz((Kz(), Jz));
- --xz;
- if (a) {
- if (zz != -1) {
- Hz(zz);
- zz = -1;
- }
- }
- }
- function Nzc() {
- Izc();
- return OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc]);
- }
- function ERc() {
- yRc();
- return OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc]);
- }
- function mXc() {
- iXc();
- return OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc]);
- }
- function wdd() {
- tdd();
- return OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd]);
- }
- function vbd() {
- rbd();
- return OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd]);
- }
- function Dad() {
- Aad();
- return OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad]);
- }
- function Ged() {
- Ded();
- return OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed]);
- }
- function sgd() {
- pgd();
- return OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd]);
- }
- function gvd(a) {
- evd();
- return Mhb(dvd, a) ? BD(Ohb(dvd, a), 331).ug() : null;
- }
- function cid(a, b, c2) {
- return b < 0 ? tid(a, c2) : BD(c2, 66).Nj().Sj(a, a.yh(), b);
- }
- function Sqd(a, b, c2) {
- var d;
- d = Wpd(c2);
- ro(a.d, d, b);
- Rhb(a.e, b, c2);
- return b;
- }
- function Uqd(a, b, c2) {
- var d;
- d = Wpd(c2);
- ro(a.j, d, b);
- Rhb(a.k, b, c2);
- return b;
- }
- function dtd(a) {
- var b, c2;
- b = (Fhd(), c2 = new Tld(), c2);
- !!a && Rld(b, a);
- return b;
- }
- function wud(a) {
- var b;
- b = a.ri(a.i);
- a.i > 0 && $fb(a.g, 0, b, 0, a.i);
- return b;
- }
- function qEd(a, b) {
- pEd();
- var c2;
- c2 = BD(Ohb(oEd, a), 55);
- return !c2 || c2.wj(b);
- }
- function Twd(a) {
- if (a.p != 1)
- throw vbb(new Ydb());
- return Tbb(a.f) << 24 >> 24;
- }
- function axd(a) {
- if (a.p != 1)
- throw vbb(new Ydb());
- return Tbb(a.k) << 24 >> 24;
- }
- function gxd(a) {
- if (a.p != 7)
- throw vbb(new Ydb());
- return Tbb(a.k) << 16 >> 16;
- }
- function Zwd(a) {
- if (a.p != 7)
- throw vbb(new Ydb());
- return Tbb(a.f) << 16 >> 16;
- }
- function sr(a) {
- var b;
- b = 0;
- while (a.Ob()) {
- a.Pb();
- b = wbb(b, 1);
- }
- return Oy(b);
- }
- function nx(a, b) {
- var c2;
- c2 = new Vfb();
- a.xd(c2);
- c2.a += "..";
- b.yd(c2);
- return c2.a;
- }
- function Sgc(a, b, c2) {
- var d;
- d = BD(Ohb(a.g, c2), 57);
- Ekb(a.a.c, new vgd(b, d));
- }
- function VCb(a, b, c2) {
- return Ddb(ED(Wd(irb(a.f, b))), ED(Wd(irb(a.f, c2))));
- }
- function E2d(a, b, c2) {
- return F2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
- }
- function L2d(a, b, c2) {
- return M2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
- }
- function q3d(a, b, c2) {
- return r3d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
- }
- function JJc(a, b) {
- return a == (j0b(), h0b) && b == h0b ? 4 : a == h0b || b == h0b ? 8 : 32;
- }
- function Nd(a, b) {
- return PD(b) === PD(a) ? "(this Map)" : b == null ? Xhe : fcb(b);
- }
- function kFd(a, b) {
- return BD(b == null ? Wd(irb(a.f, null)) : Crb(a.g, b), 281);
- }
- function Rqd(a, b, c2) {
- var d;
- d = Wpd(c2);
- Rhb(a.b, d, b);
- Rhb(a.c, b, c2);
- return b;
- }
- function Bfd(a, b) {
- var c2;
- c2 = b;
- while (c2) {
- O6c(a, c2.i, c2.j);
- c2 = Xod(c2);
- }
- return a;
- }
- function kt(a, b) {
- var c2;
- c2 = vmb(Nu(new wu(a, b)));
- ir(new wu(a, b));
- return c2;
- }
- function R6d(a, b) {
- Q6d();
- var c2;
- c2 = BD(a, 66).Mj();
- kVd(c2, b);
- return c2.Ok(b);
- }
- function TOc(a, b, c2, d, e) {
- var f2;
- f2 = OOc(e, c2, d);
- Ekb(b, tOc(e, f2));
- XOc(a, e, b);
- }
- function mic(a, b, c2) {
- a.i = 0;
- a.e = 0;
- if (b == c2) {
- return;
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- lic(a, b, c2);
- kic(a, b, c2);
- }
- function dB(a, b) {
- var c2;
- c2 = a.q.getHours();
- a.q.setFullYear(b + nje);
- YA(a, c2);
- }
- function dC(d, a, b) {
- if (b) {
- var c2 = b.ee();
- d.a[a] = c2(b);
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
} else {
- delete d.a[a];
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- }
- function vB(d, a, b) {
- if (b) {
- var c2 = b.ee();
- b = c2(b);
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
} else {
- b = void 0;
- }
- d.a[a] = b;
- }
- function pCb(a) {
- if (a < 0) {
- throw vbb(new Feb("Negative array size: " + a));
- }
- }
- function VKd(a) {
- if (!a.n) {
- $Kd(a);
- a.n = new JMd(a, j5, a);
- _Kd(a);
- }
- return a.n;
- }
- function Fqb(a) {
- sCb(a.a < a.c.a.length);
- a.b = a.a;
- Dqb(a);
- return a.c.b[a.b];
- }
- function Yjb(a) {
- if (a.b == a.c) {
- return;
- }
- a.a = KC(SI, Uhe, 1, 8, 5, 1);
- a.b = 0;
- a.c = 0;
- }
- function AQb(a) {
- this.b = new Lqb();
- this.c = new Lqb();
- this.d = new Lqb();
- this.a = a;
- }
- function lge(a, b) {
- wfe();
- xfe.call(this, a);
- this.a = b;
- this.c = -1;
- this.b = -1;
- }
- function lSd(a, b, c2, d) {
- kxd.call(this, 1, c2, d);
- this.c = a;
- this.b = b;
- }
- function mSd(a, b, c2, d) {
- lxd.call(this, 1, c2, d);
- this.c = a;
- this.b = b;
- }
- function O7d(a, b, c2, d, e, f2, g) {
- nxd.call(this, b, d, e, f2, g);
- this.c = a;
- this.a = c2;
- }
- function LVd(a, b, c2) {
- this.e = a;
- this.a = SI;
- this.b = R5d(b);
- this.c = b;
- this.d = c2;
- }
- function Lo(a) {
- this.e = a;
- this.c = this.e.a;
- this.b = this.e.g;
- this.d = this.e.i;
- }
- function nYd(a) {
- this.c = a;
- this.a = BD(wId(a), 148);
- this.b = this.a.Aj().Nh();
- }
- function Irb(a) {
- this.d = a;
- this.b = this.d.a.entries();
- this.a = this.b.next();
- }
- function $rb() {
- Lqb.call(this);
- Trb(this);
- this.d.b = this.d;
- this.d.a = this.d;
- }
- function mRb(a, b) {
- _Qb.call(this);
- this.a = a;
- this.b = b;
- Ekb(this.a.b, this);
- }
- function uFd(a, b) {
- var c2;
- return c2 = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c2);
- }
- function FFd(a, b) {
- var c2;
- return c2 = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c2);
- }
- function Fob(a, b) {
- var c2;
- for (c2 = 0; c2 < b; ++c2) {
- NC(a, c2, new Rob(BD(a[c2], 42)));
- }
- }
- function Lgb(a, b) {
- var c2;
- for (c2 = a.d - 1; c2 >= 0 && a.a[c2] === b[c2]; c2--)
- ;
- return c2 < 0;
- }
- function Ucc(a, b) {
- Occ();
- var c2;
- c2 = a.j.g - b.j.g;
- if (c2 != 0) {
- return c2;
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- return 0;
- }
- function Dtb(a, b) {
- uCb(b);
- if (a.a != null) {
- return Itb(b.Kb(a.a));
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
}
- return ztb;
- }
- function Gx(a) {
- var b;
- if (a) {
- return new Bsb(a);
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- b = new zsb();
- Jq(b, a);
- return b;
- }
- function GAb(a, b) {
- var c2;
- return b.b.Kb(SAb(a, b.c.Ee(), (c2 = new TBb(b), c2)));
- }
- function Hub(a) {
- zub();
- Eub(this, Tbb(xbb(Obb(a, 24), nke)), Tbb(xbb(a, nke)));
- }
- function REb() {
- REb = ccb;
- QEb = as((MEb(), OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb])));
- }
- function ZEb() {
- ZEb = ccb;
- YEb = as((UEb(), OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb])));
- }
- function aSb() {
- aSb = ccb;
- _Rb = as((XRb(), OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb])));
- }
- function D5b() {
- D5b = ccb;
- C5b = as((y5b(), OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b])));
- }
- function Cqc() {
- Cqc = ccb;
- Bqc = as((xqc(), OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc])));
- }
- function erc() {
- erc = ccb;
- drc = as((_qc(), OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc])));
- }
- function eBc() {
- eBc = ccb;
- dBc = as((_Ac(), OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc])));
- }
- function GAc() {
- GAc = ccb;
- FAc = as((BAc(), OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc])));
- }
- function Npc() {
- Npc = ccb;
- Mpc = as((Ipc(), OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc])));
- }
- function rsc() {
- rsc = ccb;
- qsc = as((msc(), OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc])));
- }
- function MOc() {
- MOc = ccb;
- LOc = as((HOc(), OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc])));
- }
- function ZIc() {
- ZIc = ccb;
- YIc = as((UIc(), OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc])));
- }
- function bMc() {
- bMc = ccb;
- aMc = as((YLc(), OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc])));
- }
- function jMc() {
- jMc = ccb;
- iMc = as((eMc(), OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc])));
- }
- function KQc() {
- KQc = ccb;
- JQc = as((FQc(), OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc])));
- }
- function dUc() {
- dUc = ccb;
- cUc = as(($Tc(), OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc])));
- }
- function XUc() {
- XUc = ccb;
- WUc = as((PUc(), OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc])));
- }
- function XTc() {
- XTc = ccb;
- WTc = as((STc(), OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc])));
- }
- function lWc() {
- lWc = ccb;
- kWc = as((fWc(), OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc])));
- }
- function i1c() {
- i1c = ccb;
- h1c = as((a1c(), OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c])));
- }
- function H_c() {
- H_c = ccb;
- G_c = as((C_c(), OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c])));
- }
- function UIc() {
- UIc = ccb;
- TIc = new VIc("UPPER", 0);
- SIc = new VIc("LOWER", 1);
- }
- function Lqd(a, b) {
- var c2;
- c2 = new eC();
- Spd(c2, "x", b.a);
- Spd(c2, "y", b.b);
- Qpd(a, c2);
- }
- function Oqd(a, b) {
- var c2;
- c2 = new eC();
- Spd(c2, "x", b.a);
- Spd(c2, "y", b.b);
- Qpd(a, c2);
- }
- function Jic(a, b) {
- var c2, d;
- d = false;
- do {
- c2 = Mic(a, b);
- d = d | c2;
- } while (c2);
- return d;
- }
- function zHc(a, b) {
- var c2, d;
- c2 = b;
- d = 0;
- while (c2 > 0) {
- d += a.a[c2];
- c2 -= c2 & -c2;
- }
- return d;
- }
- function Cfd(a, b) {
- var c2;
- c2 = b;
- while (c2) {
- O6c(a, -c2.i, -c2.j);
- c2 = Xod(c2);
- }
- return a;
- }
- function reb(a, b) {
- var c2, d;
- uCb(b);
- for (d = a.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- b.td(c2);
- }
- }
- function me(a, b) {
- var c2;
- c2 = b.cd();
- return new Wo(c2, a.e.pc(c2, BD(b.dd(), 14)));
- }
- function Gsb(a, b, c2, d) {
- var e;
- e = new jtb();
- e.c = b;
- e.b = c2;
- e.a = d;
- d.b = c2.a = e;
- ++a.b;
- }
- function Nkb(a, b, c2) {
- var d;
- d = (tCb(b, a.c.length), a.c[b]);
- a.c[b] = c2;
- return d;
- }
- function lFd(a, b, c2) {
- return BD(b == null ? jrb(a.f, null, c2) : Drb(a.g, b, c2), 281);
- }
- function fRb(a) {
- return !!a.c && !!a.d ? oRb(a.c) + "->" + oRb(a.d) : "e_" + FCb(a);
- }
- function FAb(a, b) {
- return (Uzb(a), WAb(new YAb(a, new qBb(b, a.a)))).sd(DAb);
- }
- function tUb() {
- qUb();
- return OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb]);
- }
- function _cd() {
- Ucd();
- return OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]);
- }
- function Dz(b) {
- Az();
- return function() {
- return Ez(b, this, arguments);
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
};
- }
- function sz() {
- if (Date.now) {
- return Date.now();
- }
- return (/* @__PURE__ */ new Date()).getTime();
- }
- function OZb(a) {
- if (!a.c || !a.d) {
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
return false;
}
- return !!a.c.i && a.c.i == a.d.i;
- }
- function pv(a) {
- if (!a.c.Sb()) {
- throw vbb(new utb());
- }
- a.a = true;
- return a.c.Ub();
- }
- function ko(a) {
- a.i = 0;
- Alb(a.b, null);
- Alb(a.c, null);
- a.a = null;
- a.e = null;
- ++a.g;
- }
- function ycb(a) {
- wcb.call(this, a == null ? Xhe : fcb(a), JD(a, 78) ? BD(a, 78) : null);
- }
- function PYb(a) {
- MYb();
- yXb(this);
- this.a = new Psb();
- NYb(this, a);
- Dsb(this.a, a);
- }
- function jYb() {
- Ckb(this);
- this.b = new f7c(Pje, Pje);
- this.a = new f7c(Qje, Qje);
- }
- function rAb(a, b) {
- this.c = 0;
- this.b = b;
- jvb.call(this, a, 17493);
- this.a = this.c;
- }
- function wyb(a) {
- oyb();
- if (lyb) {
- return;
- }
- this.c = a;
- this.e = true;
- this.a = new Rkb();
- }
- function oyb() {
- oyb = ccb;
- lyb = true;
- jyb = false;
- kyb = false;
- nyb = false;
- myb = false;
- }
- function C3c(a, b) {
- if (JD(b, 149)) {
- return dfb(a.c, BD(b, 149).c);
- }
- return false;
- }
- function zUc(a, b) {
- var c2;
- c2 = 0;
- !!a && (c2 += a.f.a / 2);
- !!b && (c2 += b.f.a / 2);
- return c2;
- }
- function j4c(a, b) {
- var c2;
- c2 = BD(Wrb(a.d, b), 23);
- return c2 ? c2 : BD(Wrb(a.e, b), 23);
- }
- function Lzd(a) {
- this.b = a;
- Fyd.call(this, a);
- this.a = BD(Ajd(this.b.a, 4), 126);
- }
- function Uzd(a) {
- this.b = a;
- $yd.call(this, a);
- this.a = BD(Ajd(this.b.a, 4), 126);
- }
- function $Kd(a) {
- if (!a.t) {
- a.t = new YMd(a);
- vtd(new c0d(a), 0, a.t);
- }
- return a.t;
- }
- function kad() {
- ead();
- return OC(GC(t12, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad]);
- }
- function Wbd() {
- Tbd();
- return OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd]);
- }
- function Q5c() {
- N5c();
- return OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c]);
- }
- function Q_c() {
- N_c();
- return OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c]);
- }
- function _zc() {
- Vzc();
- return OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc]);
- }
- function sqc() {
- mqc();
- return OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc]);
- }
- function n$c() {
- k$c();
- return OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c]);
- }
- function _jc() {
- Xjc();
- return OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc]);
- }
- function Ftc() {
- Ctc();
- return OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc]);
- }
- function T0d() {
- T0d = ccb;
- var a, b;
- R0d = (LFd(), b = new MPd(), b);
- S0d = (a = new OJd(), a);
- }
- function yUd(a) {
- var b;
- if (!a.c) {
- b = a.r;
- JD(b, 88) && (a.c = BD(b, 26));
- }
- return a.c;
- }
- function zc(a) {
- a.e = 3;
- a.d = a.Yb();
- if (a.e != 2) {
- a.e = 0;
- return true;
- }
return false;
- }
- function RC(a) {
- var b, c2, d;
- b = a & Eje;
- c2 = a >> 22 & Eje;
- d = a < 0 ? Fje : 0;
- return TC(b, c2, d);
- }
- function uy(a) {
- var b, c2, d, e;
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- Qzb(b);
- }
- }
- function Tc(a, b) {
- var c2, d;
- c2 = BD(Iv(a.c, b), 14);
- if (c2) {
- d = c2.gc();
- c2.$b();
- a.d -= d;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
}
- }
- function tjb(a, b) {
- var c2, d;
- c2 = b.cd();
- d = Awb(a, c2);
- return !!d && wtb(d.e, b.dd());
- }
- function Qgb(a, b) {
- if (b == 0 || a.e == 0) {
- return a;
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
}
- return b > 0 ? ihb(a, b) : lhb(a, -b);
- }
- function Rgb2(a, b) {
- if (b == 0 || a.e == 0) {
- return a;
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- return b > 0 ? lhb(a, b) : ihb(a, -b);
- }
- function Rr(a) {
- if (Qr(a)) {
- a.c = a.a;
- return a.a.Pb();
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
} else {
- throw vbb(new utb());
- }
- }
- function Yac(a) {
- var b, c2;
- b = a.c.i;
- c2 = a.d.i;
- return b.k == (j0b(), e0b) && c2.k == e0b;
- }
- function kZb(a) {
- var b;
- b = new UZb();
- tNb(b, a);
- yNb(b, (Nyc(), jxc), null);
- return b;
- }
- function hid(a, b, c2) {
- var d;
- return d = a.Yg(b), d >= 0 ? a._g(d, c2, true) : sid(a, b, c2);
- }
- function uHb(a, b, c2, d) {
- var e;
- for (e = 0; e < rHb; e++) {
- nHb(a.a[b.g][e], c2, d[b.g]);
- }
- }
- function vHb(a, b, c2, d) {
- var e;
- for (e = 0; e < sHb; e++) {
- mHb(a.a[e][b.g], c2, d[b.g]);
- }
- }
- function vSd(a, b, c2, d, e) {
- kxd.call(this, b, d, e);
- this.c = a;
- this.a = c2;
- }
- function zSd(a, b, c2, d, e) {
- lxd.call(this, b, d, e);
- this.c = a;
- this.a = c2;
- }
- function ISd(a, b, c2, d, e) {
- oxd.call(this, b, d, e);
- this.c = a;
- this.a = c2;
- }
- function qSd(a, b, c2, d, e) {
- oxd.call(this, b, d, e);
- this.c = a;
- this.b = c2;
- }
- function mWd(a, b, c2) {
- VVd.call(this, c2);
- this.b = a;
- this.c = b;
- this.d = (CWd(), AWd);
- }
- function oxd(a, b, c2) {
- this.d = a;
- this.k = b ? 1 : 0;
- this.f = c2 ? 1 : 0;
- this.o = -1;
- this.p = 0;
- }
- function _6d(a, b, c2) {
- var d;
- d = new a7d(a.a);
- Ld(d, a.a.a);
- jrb(d.f, b, c2);
- a.a.a = d;
- }
- function lud(a, b) {
- a.qi(a.i + 1);
- mud(a, a.i, a.oi(a.i, b));
- a.bi(a.i++, b);
- a.ci();
- }
- function oud(a) {
- var b, c2;
- ++a.j;
- b = a.g;
- c2 = a.i;
- a.g = null;
- a.i = 0;
- a.di(c2, b);
- a.ci();
- }
- function Ou(a) {
- var b, c2;
- Qb(a);
- b = Iu(a.length);
- c2 = new Skb(b);
- nmb(c2, a);
- return c2;
- }
- function km(a) {
- var b;
- b = (Qb(a), a ? new Tkb(a) : Nu(a.Kc()));
- smb(b);
- return Dm(b);
- }
- function Kkb(a, b) {
- var c2;
- c2 = (tCb(b, a.c.length), a.c[b]);
- cCb(a.c, b, 1);
- return c2;
- }
- function Qc(a, b) {
- var c2;
- c2 = BD(a.c.xc(b), 14);
- !c2 && (c2 = a.ic(b));
- return a.pc(b, c2);
- }
- function cfb(a, b) {
- var c2, d;
- c2 = (uCb(a), a);
- d = (uCb(b), b);
- return c2 == d ? 0 : c2 < d ? -1 : 1;
- }
- function Fpb(a) {
- var b;
- b = a.e + a.f;
- if (isNaN(b) && Ldb(a.d)) {
- return a.d;
- }
- return b;
- }
- function uwb(a, b) {
- !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b);
- Nfb(a.a, b);
- return a;
- }
- function Sb(a, b) {
- if (a < 0 || a > b) {
- throw vbb(new qcb(Jb(a, b, "index")));
- }
- return a;
- }
- function zhb(a, b, c2, d) {
- var e;
- e = KC(WD, oje, 25, b, 15, 1);
- Ahb(e, a, b, c2, d);
- return e;
- }
- function _A(a, b) {
- var c2;
- c2 = a.q.getHours() + (b / 60 | 0);
- a.q.setMinutes(b);
- YA(a, c2);
- }
- function A$c(a, b) {
- return $wnd.Math.min(S6c(b.a, a.d.d.c), S6c(b.b, a.d.d.c));
- }
- function Thb(a, b) {
- return ND(b) ? b == null ? krb(a.f, null) : Erb(a.g, b) : krb(a.f, b);
- }
- function b1b(a) {
- this.c = a;
- this.a = new olb(this.c.a);
- this.b = new olb(this.c.b);
- }
- function kRb() {
- this.e = new Rkb();
- this.c = new Rkb();
- this.d = new Rkb();
- this.b = new Rkb();
- }
- function MFb() {
- this.g = new PFb();
- this.b = new PFb();
- this.a = new Rkb();
- this.k = new Rkb();
- }
- function Gjc(a, b, c2) {
- this.a = a;
- this.c = b;
- this.d = c2;
- Ekb(b.e, this);
- Ekb(c2.b, this);
- }
- function wBb(a, b) {
- fvb.call(this, b.rd(), b.qd() & -6);
- uCb(a);
- this.a = a;
- this.b = b;
- }
- function CBb(a, b) {
- jvb.call(this, b.rd(), b.qd() & -6);
- uCb(a);
- this.a = a;
- this.b = b;
- }
- function IBb(a, b) {
- nvb.call(this, b.rd(), b.qd() & -6);
- uCb(a);
- this.a = a;
- this.b = b;
- }
- function BQc(a, b, c2) {
- this.a = a;
- this.b = b;
- this.c = c2;
- Ekb(a.t, this);
- Ekb(b.i, this);
- }
- function SRc() {
- this.b = new Psb();
- this.a = new Psb();
- this.b = new Psb();
- this.a = new Psb();
- }
- function g6c() {
- g6c = ccb;
- f6c = new Lsd("org.eclipse.elk.labels.labelManager");
- }
- function Vac() {
- Vac = ccb;
- Uac = new Msd("separateLayerConnections", (gbc(), fbc));
- }
- function HOc() {
- HOc = ccb;
- GOc = new IOc("REGULAR", 0);
- FOc = new IOc("CRITICAL", 1);
- }
- function _Ac() {
- _Ac = ccb;
- $Ac = new aBc("STACKED", 0);
- ZAc = new aBc("SEQUENCED", 1);
- }
- function C_c() {
- C_c = ccb;
- B_c = new D_c("FIXED", 0);
- A_c = new D_c("CENTER_NODE", 1);
- }
- function PHc(a, b) {
- var c2;
- c2 = VHc(a, b);
- a.b = new BHc(c2.c.length);
- return OHc(a, c2);
- }
- function KAd(a, b, c2) {
- var d;
- ++a.e;
- --a.f;
- d = BD(a.d[b].$c(c2), 133);
- return d.dd();
- }
- function JJd(a) {
- var b;
- if (!a.a) {
- b = a.r;
- JD(b, 148) && (a.a = BD(b, 148));
- }
- return a.a;
- }
- function poc(a) {
- if (a.a) {
- if (a.e) {
- return poc(a.e);
- }
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
} else {
- return a;
- }
- return null;
- }
- function ODc(a, b) {
- if (a.p < b.p) {
- return 1;
- } else if (a.p > b.p) {
- return -1;
- }
- return 0;
- }
- function pvb(a, b) {
- uCb(b);
- if (a.c < a.d) {
- a.ze(b, a.c++);
- return true;
+ return this.conditionStack[0];
}
- return false;
- }
- function QYd(a, b) {
- if (Mhb(a.a, b)) {
- Thb(a.a, b);
- return true;
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
} else {
- return false;
- }
- }
- function fd(a) {
- var b, c2;
- b = a.cd();
- c2 = BD(a.dd(), 14);
- return $j(c2.Nc(), new ah(b));
- }
- function sqb(a) {
- var b;
- b = BD(ZBb(a.b, a.b.length), 9);
- return new xqb(a.a, b, a.c);
- }
- function _zb(a) {
- var b;
- Uzb(a);
- b = new fAb(a, a.a.e, a.a.d | 4);
- return new bAb(a, b);
- }
- function HAb(a) {
- var b;
- Tzb(a);
- b = 0;
- while (a.a.sd(new RBb())) {
- b = wbb(b, 1);
- }
- return b;
- }
- function UDc(a, b, c2) {
- var d, e;
- d = 0;
- for (e = 0; e < b.length; e++) {
- d += a.$f(b[e], d, c2);
- }
- }
- function QJb(a, b) {
- var c2;
- if (a.C) {
- c2 = BD(Mpb(a.b, b), 124).n;
- c2.d = a.C.d;
- c2.a = a.C.a;
- }
- }
- function Mi(a, b, c2) {
- Pb(b, a.e.Hd().gc());
- Pb(c2, a.c.Hd().gc());
- return a.a[b][c2];
- }
- function Ugb(a, b) {
- Hgb();
- this.e = a;
- this.d = 1;
- this.a = OC(GC(WD, 1), oje, 25, 15, [b]);
- }
- function dg(a, b, c2, d) {
- this.f = a;
- this.e = b;
- this.d = c2;
- this.b = d;
- this.c = !d ? null : d.d;
- }
- function o5b(a) {
- var b, c2, d, e;
- e = a.d;
- b = a.a;
- c2 = a.b;
- d = a.c;
- a.d = c2;
- a.a = d;
- a.b = e;
- a.c = b;
- }
- function Y2d(a, b, c2, d) {
- X2d(a, b, c2, M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0));
- }
- function tac(a, b) {
- Odd(b, "Label management", 1);
- RD(vNb(a, (g6c(), f6c)));
- Qdd(b);
- }
- function Skb(a) {
- Ckb(this);
- mCb(a >= 0, "Initial capacity must not be negative");
- }
- function lHb() {
- lHb = ccb;
- kHb = as((gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])));
- }
- function SHb() {
- SHb = ccb;
- RHb = as((NHb(), OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb])));
- }
- function JIb() {
- JIb = ccb;
- IIb = as((EIb(), OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb])));
- }
- function Kyb() {
- Kyb = ccb;
- Jyb = as((Fyb(), OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb])));
- }
- function DTb() {
- DTb = ccb;
- CTb = as((yTb(), OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb])));
- }
- function WXb() {
- WXb = ccb;
- VXb = as((RXb(), OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb])));
- }
- function Zpc() {
- Zpc = ccb;
- Ypc = as((Rpc(), OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc])));
- }
- function gqc() {
- gqc = ccb;
- fqc = as((bqc(), OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc])));
- }
- function Lqc() {
- Lqc = ccb;
- Kqc = as((Gqc(), OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc])));
- }
- function Kkc() {
- Kkc = ccb;
- Jkc = as((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc])));
- }
- function jsc() {
- jsc = ccb;
- isc = as((esc(), OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc])));
- }
- function asc() {
- asc = ccb;
- _rc = as((Xrc(), OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc])));
- }
- function Dzc() {
- Dzc = ccb;
- Czc = as((xzc(), OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc])));
- }
- function YAc() {
- YAc = ccb;
- XAc = as((TAc(), OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc])));
- }
- function yAc() {
- yAc = ccb;
- xAc = as((tAc(), OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc])));
- }
- function PAc() {
- PAc = ccb;
- OAc = as((KAc(), OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc])));
- }
- function QBc() {
- QBc = ccb;
- PBc = as((LBc(), OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc])));
- }
- function yBc() {
- yBc = ccb;
- xBc = as((tBc(), OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc])));
- }
- function HBc() {
- HBc = ccb;
- GBc = as((CBc(), OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc])));
- }
- function wGc() {
- wGc = ccb;
- vGc = as((rGc(), OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc])));
- }
- function zVc() {
- zVc = ccb;
- yVc = as((tVc(), OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc])));
- }
- function vWc() {
- vWc = ccb;
- uWc = as((pWc(), OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc])));
- }
- function EYc() {
- EYc = ccb;
- DYc = as((zYc(), OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc])));
- }
- function yXc() {
- yXc = ccb;
- xXc = as((sXc(), OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc])));
- }
- function b_c() {
- b_c = ccb;
- a_c = as((Y$c(), OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c])));
- }
- function mbd() {
- mbd = ccb;
- lbd = as((hbd(), OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd])));
- }
- function vad() {
- vad = ccb;
- uad = as((qad(), OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad2])));
- }
- function icd() {
- dcd();
- return OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd]);
- }
- function ikd(a, b) {
- return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), qAd(a.o, b);
- }
- function NAd(a) {
- !a.g && (a.g = new JCd());
- !a.g.d && (a.g.d = new MBd(a));
- return a.g.d;
- }
- function yAd(a) {
- !a.g && (a.g = new JCd());
- !a.g.a && (a.g.a = new SBd(a));
- return a.g.a;
- }
- function EAd(a) {
- !a.g && (a.g = new JCd());
- !a.g.b && (a.g.b = new GBd(a));
- return a.g.b;
- }
- function FAd(a) {
- !a.g && (a.g = new JCd());
- !a.g.c && (a.g.c = new iCd(a));
- return a.g.c;
- }
- function A2d(a, b, c2) {
- var d, e;
- e = new p4d(b, a);
- for (d = 0; d < c2; ++d) {
- d4d(e);
- }
- return e;
- }
- function Atd(a, b, c2) {
- var d, e;
- if (c2 != null) {
- for (d = 0; d < b; ++d) {
- e = c2[d];
- a.fi(d, e);
- }
- }
- }
- function uhb(a, b, c2, d) {
- var e;
- e = KC(WD, oje, 25, b + 1, 15, 1);
- vhb(e, a, b, c2, d);
- return e;
- }
- function KC(a, b, c2, d, e, f2) {
- var g;
- g = LC(e, d);
- e != 10 && OC(GC(a, f2), b, c2, e, g);
- return g;
- }
- function bYd(a, b, c2, d) {
- !!c2 && (d = c2.gh(b, bLd(c2.Tg(), a.c.Lj()), null, d));
- return d;
- }
- function cYd(a, b, c2, d) {
- !!c2 && (d = c2.ih(b, bLd(c2.Tg(), a.c.Lj()), null, d));
- return d;
- }
- function KNb(a, b, c2) {
- BD(a.b, 65);
- BD(a.b, 65);
- BD(a.b, 65);
- Hkb(a.a, new TNb(c2, b, a));
- }
- function ACb(a, b, c2) {
- if (a < 0 || b > c2 || b < a) {
- throw vbb(new Xfb(xke + a + zke + b + oke + c2));
- }
- }
- function zCb(a) {
- if (!a) {
- throw vbb(new Zdb("Unable to add element to queue"));
- }
- }
- function Vzb(a) {
- if (!a) {
- this.c = null;
- this.b = new Rkb();
- } else {
- this.c = a;
- this.b = null;
- }
- }
- function exb(a, b) {
- pjb.call(this, a, b);
- this.a = KC(dL, zie, 436, 2, 0, 1);
- this.b = true;
- }
- function _rb(a) {
- Whb.call(this, a, 0);
- Trb(this);
- this.d.b = this.d;
- this.d.a = this.d;
- }
- function VRc(a) {
- var b;
- b = a.b;
- if (b.b == 0) {
- return null;
- }
- return BD(Ut(b, 0), 188).b;
- }
- function Kwb(a, b) {
- var c2;
- c2 = new fxb();
- c2.c = true;
- c2.d = b.dd();
- return Lwb(a, b.cd(), c2);
- }
- function bB(a, b) {
- var c2;
- c2 = a.q.getHours() + (b / 3600 | 0);
- a.q.setSeconds(b);
- YA(a, c2);
- }
- function zGc(a, b, c2) {
- var d;
- d = a.b[c2.c.p][c2.p];
- d.b += b.b;
- d.c += b.c;
- d.a += b.a;
- ++d.a;
- }
- function S6c(a, b) {
- var c2, d;
- c2 = a.a - b.a;
- d = a.b - b.b;
- return $wnd.Math.sqrt(c2 * c2 + d * d);
- }
- function Ipc() {
- Ipc = ccb;
- Gpc = new Jpc("QUADRATIC", 0);
- Hpc = new Jpc("SCANLINE", 1);
- }
- function hCc() {
- hCc = ccb;
- gCc = c3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), pUb, J8b);
- }
- function l8c() {
- i8c();
- return OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c]);
- }
- function I7c() {
- F7c();
- return OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c]);
- }
- function Dpc() {
- Apc();
- return OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]);
- }
- function Brc() {
- yrc();
- return OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc]);
- }
- function orc() {
- lrc();
- return OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc]);
- }
- function rzc() {
- lzc();
- return OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc]);
- }
- function Wqc() {
- Sqc();
- return OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc]);
- }
- function uSc() {
- qSc();
- return OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc]);
- }
- function wcd() {
- rcd();
- return OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd]);
- }
- function Pad() {
- Mad();
- return OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had]);
- }
- function m0b() {
- j0b();
- return OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b]);
- }
- function mib(a) {
- yCb(!!a.c);
- xpb(a.e, a);
- a.c.Qb();
- a.c = null;
- a.b = kib(a);
- ypb(a.e, a);
- }
- function tsb(a) {
- xpb(a.c.a.e, a);
- sCb(a.b != a.c.a.d);
- a.a = a.b;
- a.b = a.b.a;
- return a.a;
- }
- function kSd(a) {
- var b;
- if (!a.a && a.b != -1) {
- b = a.c.Tg();
- a.a = XKd(b, a.b);
- }
- return a.a;
- }
- function wtd(a, b) {
- if (a.hi() && a.Hc(b)) {
- return false;
- } else {
- a.Yh(b);
- return true;
- }
- }
- function $Hb(a, b) {
- ytb(b, "Horizontal alignment cannot be null");
- a.b = b;
- return a;
- }
- function Lfe(a, b, c2) {
- wfe();
- var d;
- d = Kfe(a, b);
- c2 && !!d && Nfe(a) && (d = null);
- return d;
- }
- function vXb(a, b, c2) {
- var d, e;
- for (e = a.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 37);
- uXb(d, b, c2);
- }
- }
- function tXb(a, b) {
- var c2, d;
- for (d = b.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 37);
- sXb(a, c2, 0, 0);
- }
- }
- function ojc(a, b, c2) {
- var d;
- a.d[b.g] = c2;
- d = a.g.c;
- d[b.g] = $wnd.Math.max(d[b.g], c2 + 1);
- }
- function KZc(a, b) {
- var c2, d, e;
- e = a.r;
- d = a.d;
- c2 = MZc(a, b, true);
- return c2.b != e || c2.a != d;
- }
- function Jjc(a, b) {
- Vrb(a.e, b) || Xrb(a.e, b, new Pjc(b));
- return BD(Wrb(a.e, b), 113);
- }
- function Byb(a, b, c2, d) {
- uCb(a);
- uCb(b);
- uCb(c2);
- uCb(d);
- return new Lyb(a, b, new Vxb());
- }
- function dId(a, b, c2, d) {
- this.rj();
- this.a = b;
- this.b = a;
- this.c = new Y5d(this, b, c2, d);
- }
- function oSd(a, b, c2, d, e, f2) {
- mxd.call(this, b, d, e, f2);
- this.c = a;
- this.b = c2;
- }
- function ESd(a, b, c2, d, e, f2) {
- mxd.call(this, b, d, e, f2);
- this.c = a;
- this.a = c2;
- }
- function Bqd(a, b, c2) {
- var d, e, f2;
- d = aC(a, c2);
- e = null;
- !!d && (e = aqd(d));
- f2 = e;
- Vqd(b, c2, f2);
- }
- function Cqd(a, b, c2) {
- var d, e, f2;
- d = aC(a, c2);
- e = null;
- !!d && (e = aqd(d));
- f2 = e;
- Vqd(b, c2, f2);
- }
- function v1d(a, b, c2) {
- var d, e;
- e = (d = nUd(a.b, b), d);
- return !e ? null : V1d(p1d(a, e), c2);
- }
- function gid(a, b) {
- var c2;
- return c2 = a.Yg(b), c2 >= 0 ? a._g(c2, true, true) : sid(a, b, true);
- }
- function s6b(a, b) {
- return Kdb(Edb(ED(vNb(a, (wtc(), htc)))), Edb(ED(vNb(b, htc))));
- }
- function pUc() {
- pUc = ccb;
- oUc = b3c(b3c(g3c(new j3c(), (yRc(), vRc)), (qSc(), pSc)), lSc);
- }
- function IHc(a, b, c2) {
- var d;
- d = SHc(a, b, c2);
- a.b = new BHc(d.c.length);
- return KHc(a, d);
- }
- function qhe(a) {
- if (a.b <= 0)
- throw vbb(new utb());
- --a.b;
- a.a -= a.c.c;
- return meb(a.a);
- }
- function ptd(a) {
- var b;
- if (!a.a) {
- throw vbb(new vtb());
- }
- b = a.a;
- a.a = Xod(a.a);
- return b;
- }
- function dBb(a) {
- while (!a.a) {
- if (!HBb(a.c, new hBb(a))) {
- return false;
- }
- }
- return true;
- }
- function vr(a) {
- var b;
- Qb(a);
- if (JD(a, 198)) {
- b = BD(a, 198);
- return b;
- }
- return new wr(a);
- }
- function r3c(a) {
- p3c();
- BD(a.We((Y9c(), x9c)), 174).Fc((rcd(), ocd));
- a.Ye(w9c, null);
- }
- function p3c() {
- p3c = ccb;
- m3c = new v3c();
- o3c = new x3c();
- n3c = mn((Y9c(), w9c), m3c, b9c, o3c);
- }
- function fWc() {
- fWc = ccb;
- dWc = new hWc("LEAF_NUMBER", 0);
- eWc = new hWc("NODE_SIZE", 1);
- }
- function UMc(a, b, c2) {
- a.a = b;
- a.c = c2;
- a.b.a.$b();
- Osb(a.d);
- a.e.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- function yHc(a) {
- a.a = KC(WD, oje, 25, a.b + 1, 15, 1);
- a.c = KC(WD, oje, 25, a.b, 15, 1);
- a.d = 0;
- }
- function MWb(a, b) {
- if (a.a.ue(b.d, a.b) > 0) {
- Ekb(a.c, new dWb(b.c, b.d, a.d));
- a.b = b.d;
- }
- }
- function nud(a, b) {
- if (a.g == null || b >= a.i)
- throw vbb(new $zd(b, a.i));
- return a.g[b];
- }
- function pOd(a, b, c2) {
- Itd(a, c2);
- if (c2 != null && !a.wj(c2)) {
- throw vbb(new tcb());
- }
- return c2;
- }
- function KLd(a) {
- var b;
- if (a.Ek()) {
- for (b = a.i - 1; b >= 0; --b) {
- qud(a, b);
- }
- }
- return wud(a);
- }
- function Bwb(a) {
- var b, c2;
- if (!a.b) {
- return null;
- }
- c2 = a.b;
- while (b = c2.a[0]) {
- c2 = b;
- }
- return c2;
- }
- function ulb(a, b) {
- var c2, d;
- pCb(b);
- return c2 = (d = a.slice(0, b), PC(d, a)), c2.length = b, c2;
- }
- function Klb(a, b, c2, d) {
- var e;
- d = (ipb(), !d ? fpb : d);
- e = a.slice(b, c2);
- Llb(e, a, b, c2, -b, d);
- }
- function bid(a, b, c2, d, e) {
- return b < 0 ? sid(a, c2, d) : BD(c2, 66).Nj().Pj(a, a.yh(), b, d, e);
- }
- function hZd(a) {
- if (JD(a, 172)) {
- return "" + BD(a, 172).a;
- }
- return a == null ? null : fcb(a);
- }
- function iZd(a) {
- if (JD(a, 172)) {
- return "" + BD(a, 172).a;
- }
- return a == null ? null : fcb(a);
- }
- function nDb(a, b) {
- if (b.a) {
- throw vbb(new hz(Hke));
- }
- Qqb(a.a, b);
- b.a = a;
- !a.j && (a.j = b);
- }
- function qBb(a, b) {
- nvb.call(this, b.rd(), b.qd() & -16449);
- uCb(a);
- this.a = a;
- this.c = b;
- }
- function Ti(a, b) {
- var c2, d;
- d = b / a.c.Hd().gc() | 0;
- c2 = b % a.c.Hd().gc();
- return Mi(a, d, c2);
- }
- function NHb() {
- NHb = ccb;
- LHb = new OHb(jle, 0);
- KHb = new OHb(gle, 1);
- MHb = new OHb(kle, 2);
- }
- function lxb() {
- lxb = ccb;
- hxb = new mxb("All", 0);
- ixb = new rxb();
- jxb = new txb();
- kxb = new wxb();
- }
- function zxb() {
- zxb = ccb;
- yxb = as((lxb(), OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb])));
- }
- function uWb() {
- uWb = ccb;
- tWb = as((lWb(), OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb])));
- }
- function ALb() {
- ALb = ccb;
- zLb = as((vLb(), OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb])));
- }
- function WMb() {
- WMb = ccb;
- VMb = as((RMb(), OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb])));
- }
- function WOb() {
- WOb = ccb;
- VOb = as((ROb(), OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb])));
- }
- function GRc() {
- GRc = ccb;
- FRc = as((yRc(), OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc])));
- }
- function mbc() {
- mbc = ccb;
- lbc = as((gbc(), OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc])));
- }
- function oXc() {
- oXc = ccb;
- nXc = as((iXc(), OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc])));
- }
- function Fjc() {
- Fjc = ccb;
- Ejc = as((Ajc(), OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc])));
- }
- function Pzc() {
- Pzc = ccb;
- Ozc = as((Izc(), OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc])));
- }
- function ugd() {
- ugd = ccb;
- tgd = as((pgd(), OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd])));
- }
- function xbd() {
- xbd = ccb;
- wbd = as((rbd(), OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd])));
- }
- function Fad() {
- Fad = ccb;
- Ead = as((Aad(), OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad])));
- }
- function Ied() {
- Ied = ccb;
- Hed = as((Ded(), OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed])));
- }
- function ydd() {
- ydd = ccb;
- xdd = as((tdd(), OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd])));
- }
- function A9d() {
- A9d = ccb;
- Smd();
- x9d = Pje;
- w9d = Qje;
- z9d = new Ndb(Pje);
- y9d = new Ndb(Qje);
- }
- function _qc() {
- _qc = ccb;
- $qc = new arc(ane, 0);
- Zqc = new arc("IMPROVE_STRAIGHTNESS", 1);
- }
- function eIc(a, b) {
- FHc();
- return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length)));
- }
- function gIc(a, b) {
- FHc();
- return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length)));
- }
- function PC(a, b) {
- HC(b) != 10 && OC(rb(b), b.hm, b.__elementTypeId$, HC(b), a);
- return a;
- }
- function Lkb(a, b) {
- var c2;
- c2 = Jkb(a, b, 0);
- if (c2 == -1) {
- return false;
- }
- Kkb(a, c2);
- return true;
- }
- function Zrb(a, b) {
- var c2;
- c2 = BD(Thb(a.e, b), 387);
- if (c2) {
- jsb(c2);
- return c2.e;
- }
- return null;
- }
- function Jbb(a) {
- var b;
- if (Fbb(a)) {
- b = 0 - a;
- if (!isNaN(b)) {
- return b;
- }
- }
- return zbb(hD(a));
- }
- function Jkb(a, b, c2) {
- for (; c2 < a.c.length; ++c2) {
- if (wtb(b, a.c[c2])) {
- return c2;
- }
- }
- return -1;
- }
- function SAb(a, b, c2) {
- var d;
- Tzb(a);
- d = new NBb();
- d.a = b;
- a.a.Nb(new VBb(d, c2));
- return d.a;
- }
- function aAb(a) {
- var b;
- Tzb(a);
- b = KC(UD, Vje, 25, 0, 15, 1);
- _ub(a.a, new kAb(b));
- return b;
- }
- function ajc(a) {
- var b, c2;
- c2 = BD(Ikb(a.j, 0), 11);
- b = BD(vNb(c2, (wtc(), $sc)), 11);
- return b;
- }
- function yc(a) {
- var b;
- if (!xc(a)) {
- throw vbb(new utb());
- }
- a.e = 1;
- b = a.d;
- a.d = null;
- return b;
- }
- function wu(a, b) {
- var c2;
- this.f = a;
- this.b = b;
- c2 = BD(Ohb(a.b, b), 283);
- this.c = !c2 ? null : c2.b;
- }
- function Ygc() {
- Hgc();
- this.b = new Lqb();
- this.f = new Lqb();
- this.g = new Lqb();
- this.e = new Lqb();
- }
- function Tnc(a, b) {
- this.a = KC(OQ, kne, 10, a.a.c.length, 0, 1);
- Qkb(a.a, this.a);
- this.b = b;
- }
- function zoc(a) {
- var b;
- for (b = a.p + 1; b < a.c.a.c.length; ++b) {
- --BD(Ikb(a.c.a, b), 10).p;
- }
- }
- function Rwd(a) {
- var b;
- b = a.Ai();
- b != null && a.d != -1 && BD(b, 92).Ng(a);
- !!a.i && a.i.Fi();
- }
- function rFd(a) {
- Py(this);
- this.g = !a ? null : Wy(a, a.$d());
- this.f = a;
- Ry(this);
- this._d();
- }
- function pSd(a, b, c2, d, e, f2, g) {
- nxd.call(this, b, d, e, f2, g);
- this.c = a;
- this.b = c2;
- }
- function Ayb(a, b, c2, d, e) {
- uCb(a);
- uCb(b);
- uCb(c2);
- uCb(d);
- uCb(e);
- return new Lyb(a, b, d);
- }
- function B2c(a, b) {
- if (b < 0) {
- throw vbb(new qcb(ese + b));
- }
- A2c(a, b + 1);
- return Ikb(a.j, b);
- }
- function Ob(a, b, c2, d) {
- if (!a) {
- throw vbb(new Wdb(hc(b, OC(GC(SI, 1), Uhe, 1, 5, [c2, d]))));
- }
- }
- function dDb(a, b) {
- return wtb(b, Ikb(a.f, 0)) || wtb(b, Ikb(a.f, 1)) || wtb(b, Ikb(a.f, 2));
- }
- function ghd(a, b) {
- ecd(BD(BD(a.f, 33).We((Y9c(), t9c)), 98)) && NCd(Yod(BD(a.f, 33)), b);
- }
- function p1d(a, b) {
- var c2, d;
- c2 = BD(b, 675);
- d = c2.Oh();
- !d && c2.Rh(d = new Y1d(a, b));
- return d;
- }
- function q1d(a, b) {
- var c2, d;
- c2 = BD(b, 677);
- d = c2.pk();
- !d && c2.tk(d = new j2d(a, b));
- return d;
- }
- function QSd(a) {
- if (!a.b) {
- a.b = new UTd(a, j5, a);
- !a.a && (a.a = new fTd(a, a));
- }
- return a.b;
- }
- function yTb() {
- yTb = ccb;
- wTb = new zTb("XY", 0);
- vTb = new zTb("X", 1);
- xTb = new zTb("Y", 2);
- }
- function EIb() {
- EIb = ccb;
- DIb = new FIb("TOP", 0);
- CIb = new FIb(gle, 1);
- BIb = new FIb(mle, 2);
- }
- function esc() {
- esc = ccb;
- csc = new fsc(ane, 0);
- dsc = new fsc("TOP", 1);
- bsc = new fsc(mle, 2);
- }
- function BAc() {
- BAc = ccb;
- zAc = new CAc("INPUT_ORDER", 0);
- AAc = new CAc("PORT_DEGREE", 1);
- }
- function wD() {
- wD = ccb;
- sD = TC(Eje, Eje, 524287);
- tD = TC(0, 0, Gje);
- uD = RC(1);
- RC(2);
- vD = RC(0);
- }
- function WDc(a, b, c2) {
- a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- $Dc(a, b, c2);
- a.a.c.length == 0 || TDc(a, b);
- }
- function rfb(a) {
- var b, c2;
- c2 = a.length;
- b = KC(TD, $ie, 25, c2, 15, 1);
- ffb(a, 0, c2, b, 0);
- return b;
- }
- function Aid(a) {
- var b;
- if (!a.dh()) {
- b = aLd(a.Tg()) - a.Ah();
- a.ph().bk(b);
- }
- return a.Pg();
- }
- function xjd(a) {
- var b;
- b = CD(Ajd(a, 32));
- if (b == null) {
- yjd(a);
- b = CD(Ajd(a, 32));
- }
- return b;
- }
- function iid(a, b) {
- var c2;
- c2 = bLd(a.d, b);
- return c2 >= 0 ? fid(a, c2, true, true) : sid(a, b, true);
- }
- function vgc(a, b) {
- qgc();
- var c2, d;
- c2 = ugc(a);
- d = ugc(b);
- return !!c2 && !!d && !omb(c2.k, d.k);
- }
- function Gqd(a, b) {
- dld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
- }
- function Hqd(a, b) {
- eld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
- }
- function Iqd(a, b) {
- cld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
- }
- function Jqd(a, b) {
- ald(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
- }
- function agd(a) {
- (!this.q ? (mmb(), mmb(), kmb) : this.q).Ac(!a.q ? (mmb(), mmb(), kmb) : a.q);
- }
- function S2d(a, b) {
- return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
- }
- function U2d(a, b) {
- return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
- }
- function INb(a, b) {
- HNb = new tOb();
- FNb = b;
- GNb = a;
- BD(GNb.b, 65);
- KNb(GNb, HNb, null);
- JNb(GNb);
- }
- function uud(a, b, c2) {
- var d;
- d = a.g[b];
- mud(a, b, a.oi(b, c2));
- a.gi(b, c2, d);
- a.ci();
- return d;
- }
- function Ftd(a, b) {
- var c2;
- c2 = a.Xc(b);
- if (c2 >= 0) {
- a.$c(c2);
- return true;
- } else {
- return false;
- }
- }
- function YId(a) {
- var b;
- if (a.d != a.r) {
- b = wId(a);
- a.e = !!b && b.Cj() == Bve;
- a.d = b;
- }
- return a.e;
- }
- function fr(a, b) {
- var c2;
- Qb(a);
- Qb(b);
- c2 = false;
- while (b.Ob()) {
- c2 = c2 | a.Fc(b.Pb());
- }
- return c2;
- }
- function Wrb(a, b) {
- var c2;
- c2 = BD(Ohb(a.e, b), 387);
- if (c2) {
- Yrb(a, c2);
- return c2.e;
- }
- return null;
- }
- function UA(a) {
- var b, c2;
- b = a / 60 | 0;
- c2 = a % 60;
- if (c2 == 0) {
- return "" + b;
- }
- return "" + b + ":" + ("" + c2);
- }
- function LAb(a, b) {
- var c2, d;
- Uzb(a);
- d = new IBb(b, a.a);
- c2 = new fBb(d);
- return new YAb(a, c2);
- }
- function tB(d, a) {
- var b = d.a[a];
- var c2 = (rC(), qC)[typeof b];
- return c2 ? c2(b) : xC(typeof b);
- }
- function yzc(a) {
- switch (a.g) {
- case 0:
- return Ohe;
- case 1:
- return -1;
- default:
- return 0;
- }
- }
- function oD(a) {
- if (eD(a, (wD(), vD)) < 0) {
- return -aD(hD(a));
- }
- return a.l + a.m * Hje + a.h * Ije;
- }
- function HC(a) {
- return a.__elementTypeCategory$ == null ? 10 : a.__elementTypeCategory$;
- }
- function dub(a) {
- var b;
- b = a.b.c.length == 0 ? null : Ikb(a.b, 0);
- b != null && fub(a, 0);
- return b;
- }
- function uA(a, b) {
- while (b[0] < a.length && hfb(" \r\n", wfb(bfb(a, b[0]))) >= 0) {
- ++b[0];
- }
- }
- function sgb(a, b) {
- this.e = b;
- this.a = vgb(a);
- this.a < 54 ? this.f = Sbb(a) : this.c = ghb(a);
- }
- function vge(a, b, c2, d) {
- wfe();
- xfe.call(this, 26);
- this.c = a;
- this.a = b;
- this.d = c2;
- this.b = d;
- }
- function EA(a, b, c2) {
- var d, e;
- d = 10;
- for (e = 0; e < c2 - 1; e++) {
- b < d && (a.a += "0", a);
- d *= 10;
- }
- a.a += b;
- }
- function Hhe(a, b) {
- var c2;
- c2 = 0;
- while (a.e != a.i.gc()) {
- Qrd(b, Dyd(a), meb(c2));
- c2 != Ohe && ++c2;
- }
- }
- function xHc(a, b) {
- var c2;
- ++a.d;
- ++a.c[b];
- c2 = b + 1;
- while (c2 < a.a.length) {
- ++a.a[c2];
- c2 += c2 & -c2;
- }
- }
- function Qgc(a, b) {
- var c2, d, e;
- e = b.c.i;
- c2 = BD(Ohb(a.f, e), 57);
- d = c2.d.c - c2.e.c;
- p7c(b.a, d, 0);
- }
- function Scb(a) {
- var b, c2;
- b = a + 128;
- c2 = (Ucb(), Tcb)[b];
- !c2 && (c2 = Tcb[b] = new Mcb(a));
- return c2;
- }
- function es(a, b) {
- var c2;
- uCb(b);
- c2 = a[":" + b];
- nCb(!!c2, OC(GC(SI, 1), Uhe, 1, 5, [b]));
- return c2;
- }
- function Mz(a) {
- var b, c2;
- if (a.b) {
- c2 = null;
- do {
- b = a.b;
- a.b = null;
- c2 = Pz(b, c2);
- } while (a.b);
- a.b = c2;
- }
- }
- function Lz(a) {
- var b, c2;
- if (a.a) {
- c2 = null;
- do {
- b = a.a;
- a.a = null;
- c2 = Pz(b, c2);
- } while (a.a);
- a.a = c2;
- }
- }
- function Dqb(a) {
- var b;
- ++a.a;
- for (b = a.c.a.length; a.a < b; ++a.a) {
- if (a.c.b[a.a]) {
- return;
- }
- }
- }
- function S9b(a, b) {
- var c2, d;
- d = b.c;
- for (c2 = d + 1; c2 <= b.f; c2++) {
- a.a[c2] > a.a[d] && (d = c2);
- }
- return d;
- }
- function fic(a, b) {
- var c2;
- c2 = Jy(a.e.c, b.e.c);
- if (c2 == 0) {
- return Kdb(a.e.d, b.e.d);
- }
- return c2;
- }
- function Ogb(a, b) {
- if (b.e == 0) {
- return Ggb;
- }
- if (a.e == 0) {
- return Ggb;
- }
- return Dhb(), Ehb(a, b);
- }
- function nCb(a, b) {
- if (!a) {
- throw vbb(new Wdb(DCb("Enum constant undefined: %s", b)));
- }
- }
- function AWb() {
- AWb = ccb;
- xWb = new XWb();
- yWb = new _Wb();
- vWb = new dXb();
- wWb = new hXb();
- zWb = new lXb();
- }
- function UEb() {
- UEb = ccb;
- SEb = new VEb("BY_SIZE", 0);
- TEb = new VEb("BY_SIZE_AND_SHAPE", 1);
- }
- function XRb() {
- XRb = ccb;
- VRb = new YRb("EADES", 0);
- WRb = new YRb("FRUCHTERMAN_REINGOLD", 1);
- }
- function xqc() {
- xqc = ccb;
- vqc = new yqc("READING_DIRECTION", 0);
- wqc = new yqc("ROTATION", 1);
- }
- function uqc() {
- uqc = ccb;
- tqc = as((mqc(), OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc])));
- }
- function bAc() {
- bAc = ccb;
- aAc = as((Vzc(), OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc])));
- }
- function bkc() {
- bkc = ccb;
- akc = as((Xjc(), OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc])));
- }
- function Htc() {
- Htc = ccb;
- Gtc = as((Ctc(), OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc])));
- }
- function S_c() {
- S_c = ccb;
- R_c = as((N_c(), OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c])));
- }
- function S5c() {
- S5c = ccb;
- R5c = as((N5c(), OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c])));
- }
- function p$c() {
- p$c = ccb;
- o$c = as((k$c(), OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c])));
- }
- function vUb() {
- vUb = ccb;
- uUb = as((qUb(), OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb])));
- }
- function mad() {
- mad = ccb;
- lad = as((ead(), OC(GC(t12, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad])));
- }
- function Ybd() {
- Ybd = ccb;
- Xbd = as((Tbd(), OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd])));
- }
- function cdd() {
- cdd = ccb;
- bdd = as((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])));
- }
- function _1c(a, b) {
- var c2;
- c2 = BD(Ohb(a.a, b), 134);
- if (!c2) {
- c2 = new zNb();
- Rhb(a.a, b, c2);
- }
- return c2;
- }
- function hoc(a) {
- var b;
- b = BD(vNb(a, (wtc(), usc)), 305);
- if (b) {
- return b.a == a;
- }
- return false;
- }
- function ioc(a) {
- var b;
- b = BD(vNb(a, (wtc(), usc)), 305);
- if (b) {
- return b.i == a;
- }
- return false;
- }
- function Jub(a, b) {
- uCb(b);
- Iub(a);
- if (a.d.Ob()) {
- b.td(a.d.Pb());
- return true;
- }
- return false;
- }
- function Oy(a) {
- if (ybb(a, Ohe) > 0) {
- return Ohe;
- }
- if (ybb(a, Rie) < 0) {
- return Rie;
- }
- return Tbb(a);
- }
- function Cv(a) {
- if (a < 3) {
- Xj(a, Hie);
- return a + 1;
- }
- if (a < Iie) {
- return QD(a / 0.75 + 1);
- }
- return Ohe;
- }
- function XKd(a, b) {
- var c2;
- c2 = (a.i == null && TKd(a), a.i);
- return b >= 0 && b < c2.length ? c2[b] : null;
- }
- function cC(a, b, c2) {
- var d;
- if (b == null) {
- throw vbb(new Geb());
- }
- d = aC(a, b);
- dC(a, b, c2);
- return d;
- }
- function Emc(a) {
- a.a >= -0.01 && a.a <= ple && (a.a = 0);
- a.b >= -0.01 && a.b <= ple && (a.b = 0);
- return a;
- }
- function sfb(a, b) {
- return b == (ntb(), ntb(), mtb) ? a.toLocaleLowerCase() : a.toLowerCase();
- }
- function idb(a) {
- return ((a.i & 2) != 0 ? "interface " : (a.i & 1) != 0 ? "" : "class ") + (fdb(a), a.o);
- }
- function Pnd(a) {
- var b, c2;
- c2 = (b = new SSd(), b);
- wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), c2);
- }
- function Pdd(a, b) {
- var c2;
- c2 = b > 0 ? b - 1 : b;
- return Vdd(Wdd(Xdd(Ydd(new Zdd(), c2), a.n), a.j), a.k);
- }
- function u2d(a, b, c2, d) {
- var e;
- a.j = -1;
- Qxd(a, I2d(a, b, c2), (Q6d(), e = BD(b, 66).Mj(), e.Ok(d)));
- }
- function VWb(a) {
- this.g = a;
- this.f = new Rkb();
- this.a = $wnd.Math.min(this.g.c.c, this.g.d.c);
- }
- function mDb(a) {
- this.b = new Rkb();
- this.a = new Rkb();
- this.c = new Rkb();
- this.d = new Rkb();
- this.e = a;
- }
- function Cnc(a, b) {
- this.a = new Lqb();
- this.e = new Lqb();
- this.b = (xzc(), wzc);
- this.c = a;
- this.b = b;
- }
- function bIb(a, b, c2) {
- $Gb.call(this);
- THb(this);
- this.a = a;
- this.c = c2;
- this.b = b.d;
- this.f = b.e;
- }
- function yd(a) {
- this.d = a;
- this.c = a.c.vc().Kc();
- this.b = null;
- this.a = null;
- this.e = (hs(), gs);
- }
- function zud(a) {
- if (a < 0) {
- throw vbb(new Wdb("Illegal Capacity: " + a));
- }
- this.g = this.ri(a);
- }
- function avb(a, b) {
- if (0 > a || a > b) {
- throw vbb(new scb("fromIndex: 0, toIndex: " + a + oke + b));
- }
- }
- function Gs(a) {
- var b;
- if (a.a == a.b.a) {
- throw vbb(new utb());
- }
- b = a.a;
- a.c = b;
- a.a = a.a.e;
- return b;
- }
- function Zsb(a) {
- var b;
- yCb(!!a.c);
- b = a.c.a;
- Nsb(a.d, a.c);
- a.b == a.c ? a.b = b : --a.a;
- a.c = null;
- }
- function VAb(a, b) {
- var c2;
- Uzb(a);
- c2 = new lBb(a, a.a.rd(), a.a.qd() | 4, b);
- return new YAb(a, c2);
- }
- function ke(a, b) {
- var c2, d;
- c2 = BD(Hv(a.d, b), 14);
- if (!c2) {
- return null;
- }
- d = b;
- return a.e.pc(d, c2);
- }
- function xac(a, b) {
- var c2, d;
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 70);
- yNb(c2, (wtc(), Ssc), b);
- }
- }
- function t9b(a) {
- var b;
- b = Edb(ED(vNb(a, (Nyc(), Zwc))));
- if (b < 0) {
- b = 0;
- yNb(a, Zwc, b);
- }
- return b;
- }
- function ifc(a, b, c2) {
- var d;
- d = $wnd.Math.max(0, a.b / 2 - 0.5);
- cfc(c2, d, 1);
- Ekb(b, new rfc(c2, d));
- }
- function NMc(a, b, c2) {
- var d;
- d = a.a.e[BD(b.a, 10).p] - a.a.e[BD(c2.a, 10).p];
- return QD(Eeb(d));
- }
- function iZb(a, b, c2, d, e, f2) {
- var g;
- g = kZb(d);
- QZb(g, e);
- RZb(g, f2);
- Rc(a.a, d, new BZb(g, b, c2.f));
- }
- function Bid(a, b) {
- var c2;
- c2 = YKd(a.Tg(), b);
- if (!c2) {
- throw vbb(new Wdb(ite + b + lte));
- }
- return c2;
- }
- function ntd(a, b) {
- var c2;
- c2 = a;
- while (Xod(c2)) {
- c2 = Xod(c2);
- if (c2 == b) {
- return true;
- }
- }
- return false;
- }
- function Uw(a, b) {
- var c2, d, e;
- d = b.a.cd();
- c2 = BD(b.a.dd(), 14).gc();
- for (e = 0; e < c2; e++) {
- a.td(d);
- }
- }
- function Hkb(a, b) {
- var c2, d, e, f2;
- uCb(b);
- for (d = a.c, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- b.td(c2);
- }
- }
- function Nsb(a, b) {
- var c2;
- c2 = b.c;
- b.a.b = b.b;
- b.b.a = b.a;
- b.a = b.b = null;
- b.c = null;
- --a.b;
- return c2;
- }
- function wqb(a, b) {
- if (!!b && a.b[b.g] == b) {
- NC(a.b, b.g, null);
- --a.c;
- return true;
- }
- return false;
- }
- function lo(a, b) {
- return !!vo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))));
- }
- function w$b(a, b) {
- ecd(BD(vNb(BD(a.e, 10), (Nyc(), Vxc)), 98)) && (mmb(), Okb(BD(a.e, 10).j, b));
- }
- function THb(a) {
- a.b = (NHb(), KHb);
- a.f = (EIb(), CIb);
- a.d = (Xj(2, Jie), new Skb(2));
- a.e = new d7c();
- }
- function gHb() {
- gHb = ccb;
- dHb = new hHb("BEGIN", 0);
- eHb = new hHb(gle, 1);
- fHb = new hHb("END", 2);
- }
- function qad() {
- qad = ccb;
- nad = new rad(gle, 0);
- oad = new rad("HEAD", 1);
- pad2 = new rad("TAIL", 2);
- }
- function Fsd() {
- Csd();
- return OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd]);
- }
- function c6c() {
- _5c();
- return OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c]);
- }
- function Dlc() {
- Alc();
- return OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]);
- }
- function nAc() {
- kAc();
- return OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc]);
- }
- function kcd() {
- kcd = ccb;
- jcd = as((dcd(), OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd])));
- }
- function tHb() {
- tHb = ccb;
- sHb = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length;
- rHb = sHb;
- }
- function wed(a) {
- this.b = (Qb(a), new Tkb(a));
- this.a = new Rkb();
- this.d = new Rkb();
- this.e = new d7c();
- }
- function W6c(a) {
- var b;
- b = $wnd.Math.sqrt(a.a * a.a + a.b * a.b);
- if (b > 0) {
- a.a /= b;
- a.b /= b;
- }
- return a;
- }
- function bKd(a) {
- var b;
- if (a.w) {
- return a.w;
- } else {
- b = cKd(a);
- !!b && !b.kh() && (a.w = b);
- return b;
- }
- }
- function gZd(a) {
- var b;
- if (a == null) {
- return null;
- } else {
- b = BD(a, 190);
- return Umd(b, b.length);
- }
- }
- function qud(a, b) {
- if (a.g == null || b >= a.i)
- throw vbb(new $zd(b, a.i));
- return a.li(b, a.g[b]);
- }
- function Mmc(a) {
- var b, c2;
- b = a.a.d.j;
- c2 = a.c.d.j;
- while (b != c2) {
- rqb(a.b, b);
- b = Xcd(b);
- }
- rqb(a.b, b);
- }
- function Jmc(a) {
- var b;
- for (b = 0; b < a.c.length; b++) {
- (tCb(b, a.c.length), BD(a.c[b], 11)).p = b;
- }
- }
- function bEc(a, b, c2) {
- var d, e, f2;
- e = b[c2];
- for (d = 0; d < e.length; d++) {
- f2 = e[d];
- a.e[f2.c.p][f2.p] = d;
- }
- }
- function ZEc(a, b) {
- var c2, d, e, f2;
- for (d = a.d, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- REc(a.g, c2).a = b;
- }
- }
- function q7c(a, b) {
- var c2, d;
- for (d = Jsb(a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 8);
- P6c(c2, b);
- }
- return a;
- }
- function zUb(a, b) {
- var c2;
- c2 = c7c(R6c(BD(Ohb(a.g, b), 8)), E6c(BD(Ohb(a.f, b), 460).b));
- return c2;
- }
- function lib(a) {
- var b;
- xpb(a.e, a);
- sCb(a.b);
- a.c = a.a;
- b = BD(a.a.Pb(), 42);
- a.b = kib(a);
- return b;
- }
- function CD(a) {
- var b;
- CCb(a == null || Array.isArray(a) && (b = HC(a), !(b >= 14 && b <= 16)));
- return a;
- }
- function dcb(a, b, c2) {
- var d = function() {
- return a.apply(d, arguments);
- };
- b.apply(d, c2);
- return d;
- }
- function TLc(a, b, c2) {
- var d, e;
- d = b;
- do {
- e = Edb(a.p[d.p]) + c2;
- a.p[d.p] = e;
- d = a.a[d.p];
- } while (d != b);
- }
- function NQd(a, b) {
- var c2, d;
- d = a.a;
- c2 = OQd(a, b, null);
- d != b && !a.e && (c2 = QQd(a, b, c2));
- !!c2 && c2.Fi();
- }
- function ADb(a, b) {
- return Iy(), My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b);
- }
- function Ky(a, b) {
- Iy();
- My(Qie);
- return $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b);
- }
- function Akc(a, b) {
- gkc();
- return beb(a.b.c.length - a.e.c.length, b.b.c.length - b.e.c.length);
- }
- function oo(a, b) {
- return Kv(uo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)))));
- }
- function o0b() {
- o0b = ccb;
- n0b = as((j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b])));
- }
- function n8c() {
- n8c = ccb;
- m8c = as((i8c(), OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c])));
- }
- function K7c() {
- K7c = ccb;
- J7c = as((F7c(), OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c])));
- }
- function Fpc() {
- Fpc = ccb;
- Epc = as((Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])));
- }
- function Drc() {
- Drc = ccb;
- Crc = as((yrc(), OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc])));
- }
- function qrc() {
- qrc = ccb;
- prc = as((lrc(), OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc])));
- }
- function tzc() {
- tzc = ccb;
- szc = as((lzc(), OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc])));
- }
- function Yqc() {
- Yqc = ccb;
- Xqc = as((Sqc(), OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc])));
- }
- function wSc() {
- wSc = ccb;
- vSc = as((qSc(), OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc])));
- }
- function ycd() {
- ycd = ccb;
- xcd = as((rcd(), OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd])));
- }
- function Rad() {
- Rad = ccb;
- Qad = as((Mad(), OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had])));
- }
- function Lbd() {
- Hbd();
- return OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd]);
- }
- function vkd(a, b) {
- var c2;
- c2 = a.a;
- a.a = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 0, c2, a.a));
- }
- function wkd(a, b) {
- var c2;
- c2 = a.b;
- a.b = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c2, a.b));
- }
- function hmd(a, b) {
- var c2;
- c2 = a.b;
- a.b = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c2, a.b));
- }
- function ald(a, b) {
- var c2;
- c2 = a.f;
- a.f = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c2, a.f));
- }
- function cld(a, b) {
- var c2;
- c2 = a.g;
- a.g = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c2, a.g));
- }
- function dld(a, b) {
- var c2;
- c2 = a.i;
- a.i = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 5, c2, a.i));
- }
- function eld(a, b) {
- var c2;
- c2 = a.j;
- a.j = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 6, c2, a.j));
- }
- function omd(a, b) {
- var c2;
- c2 = a.j;
- a.j = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c2, a.j));
- }
- function imd(a, b) {
- var c2;
- c2 = a.c;
- a.c = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c2, a.c));
- }
- function pmd(a, b) {
- var c2;
- c2 = a.k;
- a.k = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 2, c2, a.k));
- }
- function qQd(a, b) {
- var c2;
- c2 = a.d;
- a.d = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 2, c2, a.d));
- }
- function AId(a, b) {
- var c2;
- c2 = a.s;
- a.s = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 4, c2, a.s));
- }
- function DId(a, b) {
- var c2;
- c2 = a.t;
- a.t = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 5, c2, a.t));
- }
- function _Jd(a, b) {
- var c2;
- c2 = a.F;
- a.F = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, c2, b));
- }
- function izd(a, b) {
- var c2;
- c2 = BD(Ohb((pEd(), oEd), a), 55);
- return c2 ? c2.xj(b) : KC(SI, Uhe, 1, b, 5, 1);
- }
- function Xpd(a, b) {
- var c2, d;
- c2 = b in a.a;
- if (c2) {
- d = aC(a, b).he();
- if (d) {
- return d.a;
- }
- }
- return null;
- }
- function ftd(a, b) {
- var c2, d, e;
- c2 = (d = (Fhd(), e = new Jod(), e), !!b && God(d, b), d);
- Hod(c2, a);
- return c2;
- }
- function LLd(a, b, c2) {
- Itd(a, c2);
- if (!a.Bk() && c2 != null && !a.wj(c2)) {
- throw vbb(new tcb());
- }
- return c2;
- }
- function Xdd(a, b) {
- a.n = b;
- if (a.n) {
- a.f = new Rkb();
- a.e = new Rkb();
- } else {
- a.f = null;
- a.e = null;
- }
- return a;
- }
- function ndb(a, b, c2, d, e, f2) {
- var g;
- g = ldb(a, b);
- zdb(c2, g);
- g.i = e ? 8 : 0;
- g.f = d;
- g.e = e;
- g.g = f2;
- return g;
- }
- function rSd(a, b, c2, d, e) {
- this.d = b;
- this.k = d;
- this.f = e;
- this.o = -1;
- this.p = 1;
- this.c = a;
- this.a = c2;
- }
- function tSd(a, b, c2, d, e) {
- this.d = b;
- this.k = d;
- this.f = e;
- this.o = -1;
- this.p = 2;
- this.c = a;
- this.a = c2;
- }
- function BSd(a, b, c2, d, e) {
- this.d = b;
- this.k = d;
- this.f = e;
- this.o = -1;
- this.p = 6;
- this.c = a;
- this.a = c2;
- }
- function GSd(a, b, c2, d, e) {
- this.d = b;
- this.k = d;
- this.f = e;
- this.o = -1;
- this.p = 7;
- this.c = a;
- this.a = c2;
- }
- function xSd(a, b, c2, d, e) {
- this.d = b;
- this.j = d;
- this.e = e;
- this.o = -1;
- this.p = 4;
- this.c = a;
- this.a = c2;
- }
- function rDb(a, b) {
- var c2, d, e, f2;
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- nDb(a.a, c2);
- }
- return a;
- }
- function pl(a) {
- var b, c2, d, e;
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- Qb(b);
- }
- return new vl(a);
- }
- function Uz(a) {
- var b = /function(?:\s+([\w$]+))?\s*\(/;
- var c2 = b.exec(a);
- return c2 && c2[1] || Xie;
- }
- function zdb(a, b) {
- if (!a) {
- return;
- }
- b.n = a;
- var d = tdb(b);
- if (!d) {
- _bb[a] = [b];
- return;
- }
- d.gm = b;
- }
- function vlb(a, b, c2) {
- var d, e;
- e = a.length;
- d = $wnd.Math.min(c2, e);
- $Bb(a, 0, b, 0, d, true);
- return b;
- }
- function RPb(a, b, c2) {
- var d, e;
- for (e = b.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 79);
- Qqb(a, BD(c2.Kb(d), 33));
- }
- }
- function Xbb() {
- Ybb();
- var a = Wbb;
- for (var b = 0; b < arguments.length; b++) {
- a.push(arguments[b]);
- }
- }
- function n7c(a, b) {
- var c2, d, e, f2;
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- Gsb(a, c2, a.c.b, a.c);
- }
- }
- function s$c(a, b) {
- a.b = $wnd.Math.max(a.b, b.d);
- a.e += b.r + (a.a.c.length == 0 ? 0 : a.c);
- Ekb(a.a, b);
- }
- function wkb(a) {
- yCb(a.c >= 0);
- if (ekb(a.d, a.c) < 0) {
- a.a = a.a - 1 & a.d.a.length - 1;
- a.b = a.d.c;
- }
- a.c = -1;
- }
- function pgb(a) {
- if (a.a < 54) {
- return a.f < 0 ? -1 : a.f > 0 ? 1 : 0;
- }
- return (!a.c && (a.c = fhb(a.f)), a.c).e;
- }
- function My(a) {
- if (!(a >= 0)) {
- throw vbb(new Wdb("tolerance (" + a + ") must be >= 0"));
- }
- return a;
- }
- function n4c() {
- if (!f4c) {
- f4c = new m4c();
- l4c(f4c, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()]));
- }
- return f4c;
- }
- function KAc() {
- KAc = ccb;
- JAc = new LAc(ole, 0);
- HAc = new LAc("INPUT", 1);
- IAc = new LAc("OUTPUT", 2);
- }
- function bqc() {
- bqc = ccb;
- $pc = new cqc("ARD", 0);
- aqc = new cqc("MSD", 1);
- _pc = new cqc("MANUAL", 2);
- }
- function rGc() {
- rGc = ccb;
- oGc = new sGc("BARYCENTER", 0);
- pGc = new sGc(Bne, 1);
- qGc = new sGc(Cne, 2);
- }
- function ztd(a, b) {
- var c2;
- c2 = a.gc();
- if (b < 0 || b > c2)
- throw vbb(new Cyd(b, c2));
- return new czd(a, b);
- }
- function JAd(a, b) {
- var c2;
- if (JD(b, 42)) {
- return a.c.Mc(b);
- } else {
- c2 = qAd(a, b);
- LAd(a, b);
- return c2;
- }
- }
- function $nd(a, b, c2) {
- yId(a, b);
- pnd(a, c2);
- AId(a, 0);
- DId(a, 1);
- CId(a, true);
- BId(a, true);
- return a;
- }
- function Xj(a, b) {
- if (a < 0) {
- throw vbb(new Wdb(b + " cannot be negative but was: " + a));
- }
- return a;
- }
- function Bt(a, b) {
- var c2, d;
- for (c2 = 0, d = a.gc(); c2 < d; ++c2) {
- if (wtb(b, a.Xb(c2))) {
- return c2;
- }
- }
- return -1;
- }
- function Nc(a) {
- var b, c2;
- for (c2 = a.c.Cc().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 14);
- b.$b();
- }
- a.c.$b();
- a.d = 0;
- }
- function Ri(a) {
- var b, c2, d, e;
- for (c2 = a.a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- Flb(b, b.length, null);
- }
- }
- function ieb(a) {
- var b, c2;
- if (a == 0) {
- return 32;
- } else {
- c2 = 0;
- for (b = 1; (b & a) == 0; b <<= 1) {
- ++c2;
- }
- return c2;
- }
- }
- function NGb(a) {
- var b, c2;
- for (c2 = new olb(ahd(a)); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 680);
- b.Gf();
- }
- }
- function CUb(a) {
- xUb();
- this.g = new Lqb();
- this.f = new Lqb();
- this.b = new Lqb();
- this.c = new Hp();
- this.i = a;
- }
- function XZb() {
- this.f = new d7c();
- this.d = new s0b();
- this.c = new d7c();
- this.a = new Rkb();
- this.b = new Rkb();
- }
- function c6d(a, b, c2, d) {
- this.rj();
- this.a = b;
- this.b = a;
- this.c = null;
- this.c = new d6d(this, b, c2, d);
- }
- function nxd(a, b, c2, d, e) {
- this.d = a;
- this.n = b;
- this.g = c2;
- this.o = d;
- this.p = -1;
- e || (this.o = -2 - d - 1);
- }
- function hJd() {
- FId.call(this);
- this.n = -1;
- this.g = null;
- this.i = null;
- this.j = null;
- this.Bb |= zte;
- }
- function Ldd() {
- Idd();
- return OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd]);
- }
- function uFb() {
- rFb();
- return OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb]);
- }
- function qeb() {
- qeb = ccb;
- peb = OC(GC(WD, 1), oje, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]);
- }
- function vCc() {
- vCc = ccb;
- uCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
- }
- function VCc() {
- VCc = ccb;
- UCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
- }
- function rDc() {
- rDc = ccb;
- qDc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
- }
- function yFc() {
- yFc = ccb;
- xFc = c3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb, y8b);
- }
- function Rpc() {
- Rpc = ccb;
- Ppc = new Tpc("LAYER_SWEEP", 0);
- Opc = new Tpc(Tne, 1);
- Qpc = new Tpc(ane, 2);
- }
- function RLc(a, b) {
- var c2, d;
- c2 = a.c;
- d = b.e[a.p];
- if (d > 0) {
- return BD(Ikb(c2.a, d - 1), 10);
- }
- return null;
- }
- function Lkd(a, b) {
- var c2;
- c2 = a.k;
- a.k = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c2, a.k));
- }
- function kmd(a, b) {
- var c2;
- c2 = a.f;
- a.f = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c2, a.f));
- }
- function lmd(a, b) {
- var c2;
- c2 = a.i;
- a.i = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, c2, a.i));
- }
- function Hod(a, b) {
- var c2;
- c2 = a.a;
- a.a = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c2, a.a));
- }
- function zpd(a, b) {
- var c2;
- c2 = a.b;
- a.b = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c2, a.b));
- }
- function UUd(a, b) {
- var c2;
- c2 = a.b;
- a.b = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c2, a.b));
- }
- function VUd(a, b) {
- var c2;
- c2 = a.c;
- a.c = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.c));
- }
- function Apd(a, b) {
- var c2;
- c2 = a.c;
- a.c = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.c));
- }
- function pQd(a, b) {
- var c2;
- c2 = a.c;
- a.c = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, c2, a.c));
- }
- function PHd(a, b) {
- var c2;
- c2 = a.d;
- a.d = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.d));
- }
- function jKd(a, b) {
- var c2;
- c2 = a.D;
- a.D = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c2, a.D));
- }
- function Rdd(a, b) {
- if (a.r > 0 && a.c < a.r) {
- a.c += b;
- !!a.i && a.i.d > 0 && a.g != 0 && Rdd(a.i, b / a.r * a.i.d);
- }
- }
- function dge(a, b, c2) {
- var d;
- a.b = b;
- a.a = c2;
- d = (a.a & 512) == 512 ? new hee() : new ude();
- a.c = ode(d, a.b, a.a);
- }
- function g3d(a, b) {
- return T6d(a.e, b) ? (Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a)) : new c8d(b, a);
- }
- function _o(a, b) {
- return Fv(vo(a.a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)))));
- }
- function Nyb(a, b, c2) {
- return Ayb(a, new Kzb(b), new Mzb(), new Ozb(c2), OC(GC(xL, 1), Kie, 132, 0, []));
- }
- function pAb(a) {
- var b, c2;
- if (0 > a) {
- return new yAb();
- }
- b = a + 1;
- c2 = new rAb(b, a);
- return new vAb(null, c2);
- }
- function umb(a, b) {
- mmb();
- var c2;
- c2 = new Mqb(1);
- ND(a) ? Shb(c2, a, b) : jrb(c2.f, a, b);
- return new iob(c2);
- }
- function aMb(a, b) {
- var c2, d;
- c2 = a.o + a.p;
- d = b.o + b.p;
- if (c2 < d) {
- return -1;
- }
- if (c2 == d) {
- return 0;
- }
- return 1;
- }
- function P2b(a) {
- var b;
- b = vNb(a, (wtc(), $sc));
- if (JD(b, 160)) {
- return O2b(BD(b, 160));
- }
- return null;
- }
- function Kp(a) {
- var b;
- a = $wnd.Math.max(a, 2);
- b = geb(a);
- if (a > b) {
- b <<= 1;
- return b > 0 ? b : Iie;
- }
- return b;
- }
- function xc(a) {
- Ub(a.e != 3);
- switch (a.e) {
- case 2:
- return false;
- case 0:
- return true;
- }
- return zc(a);
- }
- function T6c(a, b) {
- var c2;
- if (JD(b, 8)) {
- c2 = BD(b, 8);
- return a.a == c2.a && a.b == c2.b;
- } else {
- return false;
- }
- }
- function _Mb(a, b, c2) {
- var d, e, f2;
- f2 = b >> 5;
- e = b & 31;
- d = xbb(Pbb(a.n[c2][f2], Tbb(Nbb(e, 1))), 3);
- return d;
- }
- function IAd(a, b) {
- var c2, d;
- for (d = b.vc().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 42);
- HAd(a, c2.cd(), c2.dd());
- }
- }
- function N1c(a, b) {
- var c2;
- c2 = new tOb();
- BD(b.b, 65);
- BD(b.b, 65);
- BD(b.b, 65);
- Hkb(b.a, new T1c(a, c2, b));
- }
- function DUd(a, b) {
- var c2;
- c2 = a.b;
- a.b = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 21, c2, a.b));
- }
- function jmd(a, b) {
- var c2;
- c2 = a.d;
- a.d = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, c2, a.d));
- }
- function _Id(a, b) {
- var c2;
- c2 = a.j;
- a.j = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 13, c2, a.j));
- }
- function $jb(a, b, c2) {
- var d, e, f2;
- f2 = a.a.length - 1;
- for (e = a.b, d = 0; d < c2; e = e + 1 & f2, ++d) {
- NC(b, d, a.a[e]);
- }
- }
- function rqb(a, b) {
- var c2;
- uCb(b);
- c2 = b.g;
- if (!a.b[c2]) {
- NC(a.b, c2, b);
- ++a.c;
- return true;
- }
- return false;
- }
- function eub(a, b) {
- var c2;
- c2 = b == null ? -1 : Jkb(a.b, b, 0);
- if (c2 < 0) {
- return false;
- }
- fub(a, c2);
- return true;
- }
- function fub(a, b) {
- var c2;
- c2 = Kkb(a.b, a.b.c.length - 1);
- if (b < a.b.c.length) {
- Nkb(a.b, b, c2);
- bub(a, b);
- }
- }
- function eyb(a, b) {
- ((oyb(), lyb) ? null : b.c).length == 0 && qyb(b, new zyb());
- Shb(a.a, lyb ? null : b.c, b);
- }
- function M5b(a, b) {
- Odd(b, "Hierarchical port constraint processing", 1);
- N5b(a);
- P5b(a);
- Qdd(b);
- }
- function GOb(a, b) {
- var c2, d;
- for (d = b.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 266);
- a.b = true;
- Qqb(a.e, c2);
- c2.b = a;
- }
- }
- function Owb(a, b) {
- var c2, d;
- c2 = 1 - b;
- d = a.a[c2];
- a.a[c2] = d.a[b];
- d.a[b] = a;
- a.b = true;
- d.b = false;
- return d;
- }
- function Gec(a, b) {
- var c2, d;
- c2 = BD(vNb(a, (Nyc(), ayc)), 8);
- d = BD(vNb(b, ayc), 8);
- return Kdb(c2.b, d.b);
- }
- function jfc(a) {
- oEb.call(this);
- this.b = Edb(ED(vNb(a, (Nyc(), lyc))));
- this.a = BD(vNb(a, Swc), 218);
- }
- function XGc(a, b, c2) {
- uEc.call(this, a, b, c2);
- this.a = new Lqb();
- this.b = new Lqb();
- this.d = new $Gc(this);
- }
- function ku(a) {
- this.e = a;
- this.d = new Uqb(Cv(Ec(this.e).gc()));
- this.c = this.e.a;
- this.b = this.e.c;
- }
- function BHc(a) {
- this.b = a;
- this.a = KC(WD, oje, 25, a + 1, 15, 1);
- this.c = KC(WD, oje, 25, a, 15, 1);
- this.d = 0;
- }
- function THc(a, b, c2) {
- var d;
- d = new Rkb();
- UHc(a, b, d, c2, true, true);
- a.b = new BHc(d.c.length);
- return d;
- }
- function nMc(a, b) {
- var c2;
- c2 = BD(Ohb(a.c, b), 458);
- if (!c2) {
- c2 = new uMc();
- c2.c = b;
- Rhb(a.c, c2.c, c2);
- }
- return c2;
- }
- function $B(e, a) {
- var b = e.a;
- var c2 = 0;
- for (var d in b) {
- b.hasOwnProperty(d) && (a[c2++] = d);
- }
- return a;
- }
- function pRd(a) {
- var b;
- if (a.b == null) {
- return LRd(), LRd(), KRd;
- }
- b = a.Lk() ? a.Kk() : a.Jk();
- return b;
- }
- function r$c(a) {
- var b, c2;
- for (c2 = new Fyd(a); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 33);
- dld(b, 0);
- eld(b, 0);
- }
- }
- function HSb() {
- HSb = ccb;
- FSb = new Lsd(Ime);
- GSb = new Lsd(Jme);
- ESb = new Lsd(Kme);
- DSb = new Lsd(Lme);
- }
- function y5b() {
- y5b = ccb;
- x5b = new z5b("TO_INTERNAL_LTR", 0);
- w5b = new z5b("TO_INPUT_DIRECTION", 1);
- }
- function PUc() {
- PUc = ccb;
- NUc = new RUc("P1_NODE_PLACEMENT", 0);
- OUc = new RUc("P2_EDGE_ROUTING", 1);
- }
- function Fkc() {
- Fkc = ccb;
- Ekc = new Gkc("START", 0);
- Dkc = new Gkc("MIDDLE", 1);
- Ckc = new Gkc("END", 2);
- }
- function I9b() {
- I9b = ccb;
- H9b = new Msd("edgelabelcenterednessanalysis.includelabel", (Bcb(), zcb));
- }
- function Zyc(a, b) {
- MAb(JAb(new YAb(null, new Kub(new Pib(a.b), 1)), new bfd(a, b)), new ffd(a, b));
- }
- function $Xc() {
- this.c = new jVc(0);
- this.b = new jVc(Tqe);
- this.d = new jVc(Sqe);
- this.a = new jVc(cme);
- }
- function $Fc(a) {
- var b, c2;
- for (c2 = a.c.a.ec().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 214);
- eFc(b, new oHc(b.e));
- }
- }
- function ZFc(a) {
- var b, c2;
- for (c2 = a.c.a.ec().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 214);
- dFc(b, new nHc(b.f));
- }
- }
- function pnd(a, b) {
- var c2;
- c2 = a.zb;
- a.zb = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.zb));
- }
- function cod(a, b) {
- var c2;
- c2 = a.xb;
- a.xb = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, c2, a.xb));
- }
- function dod(a, b) {
- var c2;
- c2 = a.yb;
- a.yb = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c2, a.yb));
- }
- function Knd(a, b) {
- var c2, d;
- c2 = (d = new OJd(), d);
- c2.n = b;
- wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), c2);
- }
- function Qnd(a, b) {
- var c2, d;
- d = (c2 = new FUd(), c2);
- d.n = b;
- wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), d);
- }
- function ktb(a, b) {
- var c2, d;
- c2 = a.Pc();
- Klb(c2, 0, c2.length, b);
- for (d = 0; d < c2.length; d++) {
- a._c(d, c2[d]);
- }
- }
- function ye(a, b) {
- var c2, d, e;
- uCb(b);
- c2 = false;
- for (e = b.Kc(); e.Ob(); ) {
- d = e.Pb();
- c2 = c2 | a.Fc(d);
- }
- return c2;
- }
- function Bx(a) {
- var b, c2, d;
- b = 0;
- for (d = a.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- b += c2 != null ? tb(c2) : 0;
- b = ~~b;
- }
- return b;
- }
- function SA(a) {
- var b;
- if (a == 0) {
- return "UTC";
- }
- if (a < 0) {
- a = -a;
- b = "UTC+";
- } else {
- b = "UTC-";
- }
- return b + UA(a);
- }
- function Jq(a, b) {
- var c2;
- if (JD(b, 14)) {
- c2 = BD(b, 14);
- return a.Gc(c2);
- }
- return fr(a, BD(Qb(b), 20).Kc());
- }
- function Bnc(a, b, c2) {
- Cnc.call(this, b, c2);
- this.d = KC(OQ, kne, 10, a.a.c.length, 0, 1);
- Qkb(a.a, this.d);
- }
- function IMc(a) {
- a.a = null;
- a.e = null;
- a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.f.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.c = null;
- }
- function gKd(a, b) {
- if (b) {
- if (a.B == null) {
- a.B = a.D;
- a.D = null;
- }
- } else if (a.B != null) {
- a.D = a.B;
- a.B = null;
- }
- }
- function Poc(a, b) {
- return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new fpc(a)), b))));
- }
- function Soc(a, b) {
- return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new dpc(a)), b))));
- }
- function Q2b(a, b) {
- Odd(b, zne, 1);
- MAb(LAb(new YAb(null, new Kub(a.b, 16)), new U2b()), new W2b());
- Qdd(b);
- }
- function SXc(a, b) {
- var c2, d;
- c2 = BD(hkd(a, (ZWc(), SWc)), 19);
- d = BD(hkd(b, SWc), 19);
- return beb(c2.a, d.a);
- }
- function p7c(a, b, c2) {
- var d, e;
- for (e = Jsb(a, 0); e.b != e.d.c; ) {
- d = BD(Xsb(e), 8);
- d.a += b;
- d.b += c2;
- }
- return a;
- }
- function uo(a, b, c2) {
- var d;
- for (d = a.b[c2 & a.f]; d; d = d.b) {
- if (c2 == d.a && Hb(b, d.g)) {
- return d;
- }
- }
- return null;
- }
- function vo(a, b, c2) {
- var d;
- for (d = a.c[c2 & a.f]; d; d = d.d) {
- if (c2 == d.f && Hb(b, d.i)) {
- return d;
- }
- }
- return null;
- }
- function khb(a, b, c2) {
- var d, e, f2;
- d = 0;
- for (e = 0; e < c2; e++) {
- f2 = b[e];
- a[e] = f2 << 1 | d;
- d = f2 >>> 31;
- }
- d != 0 && (a[c2] = d);
- }
- function rmb(a, b) {
- mmb();
- var c2, d;
- d = new Rkb();
- for (c2 = 0; c2 < a; ++c2) {
- d.c[d.c.length] = b;
- }
- return new Yob(d);
- }
- function Zzb(a) {
- var b;
- b = Yzb(a);
- if (Bbb(b.a, 0)) {
- return Ltb(), Ltb(), Ktb;
- }
- return Ltb(), new Ptb(b.b);
- }
- function $zb(a) {
- var b;
- b = Yzb(a);
- if (Bbb(b.a, 0)) {
- return Ltb(), Ltb(), Ktb;
- }
- return Ltb(), new Ptb(b.c);
- }
- function uAb(a) {
- var b;
- b = tAb(a);
- if (Bbb(b.a, 0)) {
- return Utb(), Utb(), Ttb;
- }
- return Utb(), new Xtb(b.b);
- }
- function zZb(a) {
- if (a.b.c.i.k == (j0b(), e0b)) {
- return BD(vNb(a.b.c.i, (wtc(), $sc)), 11);
- }
- return a.b.c;
- }
- function AZb(a) {
- if (a.b.d.i.k == (j0b(), e0b)) {
- return BD(vNb(a.b.d.i, (wtc(), $sc)), 11);
- }
- return a.b.d;
- }
- function Vnd(a, b, c2, d, e, f2, g, h, i3, j, k, l, m) {
- aod(a, b, c2, d, e, f2, g, h, i3, j, k, l, m);
- MJd(a, false);
- return a;
- }
- function tJb(a, b, c2, d, e, f2, g) {
- $r.call(this, a, b);
- this.d = c2;
- this.e = d;
- this.c = e;
- this.b = f2;
- this.a = Ou(g);
- }
- function $bb(a, b) {
- typeof window === Jhe && typeof window["$gwt"] === Jhe && (window["$gwt"][a] = b);
- }
- function pWb(a, b) {
- lWb();
- return a == hWb && b == kWb || a == kWb && b == hWb || a == jWb && b == iWb || a == iWb && b == jWb;
- }
- function qWb(a, b) {
- lWb();
- return a == hWb && b == iWb || a == hWb && b == jWb || a == kWb && b == jWb || a == kWb && b == iWb;
- }
- function IJb(a, b) {
- return Iy(), My(ple), $wnd.Math.abs(0 - b) <= ple || 0 == b || isNaN(0) && isNaN(b) ? 0 : a / b;
- }
- function Rrc() {
- Orc();
- return OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc]);
- }
- function NKd() {
- NKd = ccb;
- KKd = new KPd();
- MKd = OC(GC(t5, 1), Mve, 170, 0, []);
- LKd = OC(GC(n5, 1), Nve, 59, 0, []);
- }
- function CBc() {
- CBc = ccb;
- BBc = new DBc("NO", 0);
- zBc = new DBc("GREEDY", 1);
- ABc = new DBc("LOOK_BACK", 2);
- }
- function z0b() {
- z0b = ccb;
- w0b = new m1b();
- u0b = new h1b();
- v0b = new q1b();
- t0b = new u1b();
- x0b = new y1b();
- y0b = new C1b();
- }
- function J9b(a) {
- var b, c2, d;
- d = 0;
- for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 29);
- b.p = d;
- ++d;
- }
- }
- function nfd(a, b) {
- var c2;
- c2 = sfd(a);
- return mfd(new f7c(c2.c, c2.d), new f7c(c2.b, c2.a), a.rf(), b, a.Hf());
- }
- function Udd(a, b) {
- var c2;
- if (a.b) {
- return null;
- } else {
- c2 = Pdd(a, a.g);
- Dsb(a.a, c2);
- c2.i = a;
- a.d = b;
- return c2;
- }
- }
- function kUc(a, b, c2) {
- Odd(c2, "DFS Treeifying phase", 1);
- jUc(a, b);
- hUc(a, b);
- a.a = null;
- a.b = null;
- Qdd(c2);
- }
- function zic(a, b, c2) {
- this.g = a;
- this.d = b;
- this.e = c2;
- this.a = new Rkb();
- xic(this);
- mmb();
- Okb(this.a, null);
- }
- function Aud(a) {
- this.i = a.gc();
- if (this.i > 0) {
- this.g = this.ri(this.i + (this.i / 8 | 0) + 1);
- a.Qc(this.g);
- }
- }
- function u3d(a, b) {
- k2d.call(this, D9, a, b);
- this.b = this;
- this.a = S6d(a.Tg(), XKd(this.e.Tg(), this.c));
- }
- function Ld(a, b) {
- var c2, d;
- uCb(b);
- for (d = b.vc().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 42);
- a.zc(c2.cd(), c2.dd());
- }
- }
- function G2d(a, b, c2) {
- var d;
- for (d = c2.Kc(); d.Ob(); ) {
- if (!E2d(a, b, d.Pb())) {
- return false;
- }
- }
- return true;
- }
- function sVd(a, b, c2, d, e) {
- var f2;
- if (c2) {
- f2 = bLd(b.Tg(), a.c);
- e = c2.gh(b, -1 - (f2 == -1 ? d : f2), null, e);
- }
- return e;
- }
- function tVd(a, b, c2, d, e) {
- var f2;
- if (c2) {
- f2 = bLd(b.Tg(), a.c);
- e = c2.ih(b, -1 - (f2 == -1 ? d : f2), null, e);
- }
- return e;
- }
- function Mgb(a) {
- var b;
- if (a.b == -2) {
- if (a.e == 0) {
- b = -1;
- } else {
- for (b = 0; a.a[b] == 0; b++)
- ;
- }
- a.b = b;
- }
- return a.b;
- }
- function Z4b(a) {
- switch (a.g) {
- case 2:
- return Ucd(), Tcd;
- case 4:
- return Ucd(), zcd;
- default:
- return a;
- }
- }
- function $4b(a) {
- switch (a.g) {
- case 1:
- return Ucd(), Rcd;
- case 3:
- return Ucd(), Acd;
- default:
- return a;
- }
- }
- function nkc(a) {
- var b, c2, d;
- return a.j == (Ucd(), Acd) && (b = pkc(a), c2 = uqb(b, zcd), d = uqb(b, Tcd), d || d && c2);
- }
- function oqb(a) {
- var b, c2;
- b = BD(a.e && a.e(), 9);
- c2 = BD(ZBb(b, b.length), 9);
- return new xqb(b, c2, b.length);
- }
- function l7b(a, b) {
- Odd(b, zne, 1);
- UGb(TGb(new YGb((a$b(), new l$b(a, false, false, new T$b())))));
- Qdd(b);
- }
- function Fcb(a, b) {
- Bcb();
- return ND(a) ? cfb(a, GD(b)) : LD(a) ? Ddb(a, ED(b)) : KD(a) ? Dcb(a, DD(b)) : a.wd(b);
- }
- function WZc(a, b) {
- b.q = a;
- a.d = $wnd.Math.max(a.d, b.r);
- a.b += b.d + (a.a.c.length == 0 ? 0 : a.c);
- Ekb(a.a, b);
- }
- function m6c(a, b) {
- var c2, d, e, f2;
- e = a.c;
- c2 = a.c + a.b;
- f2 = a.d;
- d = a.d + a.a;
- return b.a > e && b.a < c2 && b.b > f2 && b.b < d;
- }
- function Ynd(a, b, c2, d) {
- JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null);
- pnd(a, c2);
- !!b && hKd(a, b);
- d && a.xk(true);
- }
- function Yqd(a, b) {
- var c2;
- c2 = BD(b, 183);
- Spd(c2, "x", a.i);
- Spd(c2, "y", a.j);
- Spd(c2, Gte, a.g);
- Spd(c2, Fte, a.f);
- }
- function LFc() {
- LFc = ccb;
- KFc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b);
- }
- function dHc() {
- dHc = ccb;
- cHc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b);
- }
- function sXc() {
- sXc = ccb;
- qXc = new uXc(ane, 0);
- rXc = new uXc("POLAR_COORDINATE", 1);
- pXc = new uXc("ID", 2);
- }
- function TAc() {
- TAc = ccb;
- QAc = new UAc("EQUALLY", 0);
- RAc = new UAc(xle, 1);
- SAc = new UAc("NORTH_SOUTH", 2);
- }
- function pAc() {
- pAc = ccb;
- oAc = as((kAc(), OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc])));
- }
- function Flc() {
- Flc = ccb;
- Elc = as((Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc])));
- }
- function e6c() {
- e6c = ccb;
- d6c = as((_5c(), OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c])));
- }
- function Hsd() {
- Hsd = ccb;
- Gsd = as((Csd(), OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd])));
- }
- function XNb() {
- XNb = ccb;
- VNb = new Msd("debugSVG", (Bcb(), false));
- WNb = new Msd("overlapsExisted", true);
- }
- function Xyb(a, b) {
- return Ayb(new tzb(a), new vzb(b), new xzb(b), new zzb(), OC(GC(xL, 1), Kie, 132, 0, []));
- }
- function hyb() {
- var a;
- if (!dyb) {
- dyb = new gyb();
- a = new wyb("");
- uyb(a, ($xb(), Zxb));
- eyb(dyb, a);
- }
- return dyb;
- }
- function hr(a, b) {
- var c2;
- Qb(b);
- while (a.Ob()) {
- c2 = a.Pb();
- if (!QNc(BD(c2, 10))) {
- return false;
- }
- }
- return true;
- }
- function T3c(a, b) {
- var c2;
- c2 = h4c(n4c(), a);
- if (c2) {
- jkd(b, (Y9c(), F9c), c2);
- return true;
- } else {
- return false;
- }
- }
- function d3c(a, b) {
- var c2;
- for (c2 = 0; c2 < b.j.c.length; c2++) {
- BD(B2c(a, c2), 21).Gc(BD(B2c(b, c2), 14));
- }
- return a;
- }
- function M9b(a, b) {
- var c2, d;
- for (d = new olb(b.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- a.a[c2.p] = _$b(c2);
- }
- }
- function stb(a, b) {
- var c2, d;
- uCb(b);
- for (d = a.vc().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 42);
- b.Od(c2.cd(), c2.dd());
- }
- }
- function cId(a, b) {
- var c2;
- if (JD(b, 83)) {
- BD(a.c, 76).Xj();
- c2 = BD(b, 83);
- IAd(a, c2);
- } else {
- BD(a.c, 76).Wb(b);
- }
- }
- function Su(a) {
- return JD(a, 152) ? km(BD(a, 152)) : JD(a, 131) ? BD(a, 131).a : JD(a, 54) ? new ov(a) : new dv(a);
- }
- function fac(a, b) {
- return b < a.b.gc() ? BD(a.b.Xb(b), 10) : b == a.b.gc() ? a.a : BD(Ikb(a.e, b - a.b.gc() - 1), 10);
- }
- function crb(a, b) {
- a.a = wbb(a.a, 1);
- a.c = $wnd.Math.min(a.c, b);
- a.b = $wnd.Math.max(a.b, b);
- a.d = wbb(a.d, b);
- }
- function n3b(a, b) {
- var c2;
- Odd(b, "Edge and layer constraint edge reversal", 1);
- c2 = m3b(a);
- l3b(c2);
- Qdd(b);
- }
- function tAd(a) {
- var b;
- if (a.d == null) {
- ++a.e;
- a.f = 0;
- sAd(null);
- } else {
- ++a.e;
- b = a.d;
- a.d = null;
- a.f = 0;
- sAd(b);
- }
- }
- function zbb(a) {
- var b;
- b = a.h;
- if (b == 0) {
- return a.l + a.m * Hje;
- }
- if (b == Fje) {
- return a.l + a.m * Hje - Ije;
- }
- return a;
- }
- function aKb(a) {
- $Jb();
- if (a.A.Hc((tdd(), pdd))) {
- if (!a.B.Hc((Idd(), Ddd))) {
- return _Jb(a);
- }
- }
- return null;
- }
- function Zgb(a) {
- uCb(a);
- if (a.length == 0) {
- throw vbb(new Oeb("Zero length BigInteger"));
- }
- dhb(this, a);
- }
- function Vb(a) {
- if (!a) {
- throw vbb(new Zdb("no calls to next() since the last call to remove()"));
- }
- }
- function Cbb(a) {
- if (Kje < a && a < Ije) {
- return a < 0 ? $wnd.Math.ceil(a) : $wnd.Math.floor(a);
- }
- return zbb(fD(a));
- }
- function Yyb(a, b) {
- var c2, d, e;
- c2 = a.c.Ee();
- for (e = b.Kc(); e.Ob(); ) {
- d = e.Pb();
- a.a.Od(c2, d);
- }
- return a.b.Kb(c2);
- }
- function Uhd(a, b) {
- var c2, d, e;
- c2 = a.Jg();
- if (c2 != null && a.Mg()) {
- for (d = 0, e = c2.length; d < e; ++d) {
- c2[d].ui(b);
- }
- }
- }
- function f_b(a, b) {
- var c2, d;
- c2 = a;
- d = Q_b(c2).e;
- while (d) {
- c2 = d;
- if (c2 == b) {
- return true;
- }
- d = Q_b(c2).e;
- }
- return false;
- }
- function lDc(a, b, c2) {
- var d, e;
- d = a.a.f[b.p];
- e = a.a.f[c2.p];
- if (d < e) {
- return -1;
- }
- if (d == e) {
- return 0;
- }
- return 1;
- }
- function Si(a, b, c2) {
- var d, e;
- e = BD(tn(a.d, b), 19);
- d = BD(tn(a.b, c2), 19);
- return !e || !d ? null : Mi(a, e.a, d.a);
- }
- function cYc(a, b) {
- var c2, d;
- for (d = new Fyd(a); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 33);
- bld(c2, c2.i + b.b, c2.j + b.d);
- }
- }
- function qjc(a, b) {
- var c2, d;
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 70);
- Ekb(a.d, c2);
- ujc(a, c2);
- }
- }
- function pQc(a, b) {
- var c2, d;
- d = new Rkb();
- c2 = b;
- do {
- d.c[d.c.length] = c2;
- c2 = BD(Ohb(a.k, c2), 17);
- } while (c2);
- return d;
- }
- function Ajd(a, b) {
- var c2;
- if ((a.Db & b) != 0) {
- c2 = zjd(a, b);
- return c2 == -1 ? a.Eb : CD(a.Eb)[c2];
- } else {
- return null;
- }
- }
- function Lnd(a, b) {
- var c2, d;
- c2 = (d = new hLd(), d);
- c2.G = b;
- !a.rb && (a.rb = new jUd(a, d5, a));
- wtd(a.rb, c2);
- return c2;
- }
- function Mnd(a, b) {
- var c2, d;
- c2 = (d = new MPd(), d);
- c2.G = b;
- !a.rb && (a.rb = new jUd(a, d5, a));
- wtd(a.rb, c2);
- return c2;
- }
- function Hkd(a, b) {
- switch (b) {
- case 1:
- return !!a.n && a.n.i != 0;
- case 2:
- return a.k != null;
- }
- return dkd(a, b);
- }
- function gNc(a) {
- switch (a.a.g) {
- case 1:
- return new NNc();
- case 3:
- return new vQc();
- default:
- return new wNc();
- }
- }
- function MRd(a) {
- var b;
- if (a.g > 1 || a.Ob()) {
- ++a.a;
- a.g = 0;
- b = a.i;
- a.Ob();
- return b;
- } else {
- throw vbb(new utb());
- }
- }
- function kNc(a) {
- fNc();
- var b;
- if (!Lpb(eNc, a)) {
- b = new hNc();
- b.a = a;
- Opb(eNc, a, b);
- }
- return BD(Mpb(eNc, a), 635);
- }
- function Rbb(a) {
- var b, c2, d, e;
- e = a;
- d = 0;
- if (e < 0) {
- e += Ije;
- d = Fje;
- }
- c2 = QD(e / Hje);
- b = QD(e - c2 * Hje);
- return TC(b, c2, d);
- }
- function Ox(a) {
- var b, c2, d;
- d = 0;
- for (c2 = new Gqb(a.a); c2.a < c2.c.a.length; ) {
- b = Fqb(c2);
- a.b.Hc(b) && ++d;
- }
- return d;
- }
- function Ku(a) {
- var b, c2, d;
- b = 1;
- for (d = a.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- b = 31 * b + (c2 == null ? 0 : tb(c2));
- b = ~~b;
- }
- return b;
- }
- function Zwb(a, b) {
- var c2;
- this.c = a;
- c2 = new Rkb();
- Ewb(a, c2, b, a.b, null, false, null, false);
- this.a = new Bib(c2, 0);
- }
- function p4d(a, b) {
- this.b = a;
- this.e = b;
- this.d = b.j;
- this.f = (Q6d(), BD(a, 66).Oj());
- this.k = S6d(b.e.Tg(), a);
- }
- function xwb(a, b, c2) {
- this.b = (uCb(a), a);
- this.d = (uCb(b), b);
- this.e = (uCb(c2), c2);
- this.c = this.d + ("" + this.e);
- }
- function xRb() {
- this.a = BD(Ksd((wSb(), eSb)), 19).a;
- this.c = Edb(ED(Ksd(uSb)));
- this.b = Edb(ED(Ksd(qSb)));
- }
- function Nbd() {
- Nbd = ccb;
- Mbd = as((Hbd(), OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd])));
- }
- function wFb() {
- wFb = ccb;
- vFb = as((rFb(), OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb])));
- }
- function vLb() {
- vLb = ccb;
- uLb = new wLb("UP", 0);
- rLb = new wLb(vle, 1);
- sLb = new wLb(jle, 2);
- tLb = new wLb(kle, 3);
- }
- function rTc() {
- rTc = ccb;
- qTc = (STc(), QTc);
- pTc = new Nsd(Zqe, qTc);
- oTc = ($Tc(), ZTc);
- nTc = new Nsd($qe, oTc);
- }
- function Xrc() {
- Xrc = ccb;
- Vrc = new Yrc("ONE_SIDED", 0);
- Wrc = new Yrc("TWO_SIDED", 1);
- Urc = new Yrc("OFF", 2);
- }
- function TQc(a) {
- a.r = new Tqb();
- a.w = new Tqb();
- a.t = new Rkb();
- a.i = new Rkb();
- a.d = new Tqb();
- a.a = new I6c();
- a.c = new Lqb();
- }
- function uOc(a) {
- this.n = new Rkb();
- this.e = new Psb();
- this.j = new Psb();
- this.k = new Rkb();
- this.f = new Rkb();
- this.p = a;
- }
- function PEc(a, b) {
- if (a.c) {
- QEc(a, b, true);
- MAb(new YAb(null, new Kub(b, 16)), new bFc(a));
- }
- QEc(a, b, false);
- }
- function wFc(a, b, c2) {
- return a == (rGc(), qGc) ? new pFc() : Cub(b, 1) != 0 ? new iHc(c2.length) : new RGc(c2.length);
- }
- function tNb(a, b) {
- var c2;
- if (!b) {
- return a;
- }
- c2 = b.Ve();
- c2.dc() || (!a.q ? a.q = new Nqb(c2) : Ld(a.q, c2));
- return a;
- }
- function Erb(a, b) {
- var c2;
- c2 = a.a.get(b);
- if (c2 === void 0) {
- ++a.d;
- } else {
- urb(a.a, b);
- --a.c;
- zpb(a.b);
- }
- return c2;
- }
- function UYb(a, b) {
- var c2, d, e;
- c2 = b.p - a.p;
- if (c2 == 0) {
- d = a.f.a * a.f.b;
- e = b.f.a * b.f.b;
- return Kdb(d, e);
- }
- return c2;
- }
- function XLb(a, b) {
- var c2, d;
- c2 = a.f.c.length;
- d = b.f.c.length;
- if (c2 < d) {
- return -1;
- }
- if (c2 == d) {
- return 0;
- }
- return 1;
- }
- function KZb(a) {
- if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) {
- return BD(Ikb(a.b, 0), 70).a;
- }
- return JZb(a);
- }
- function Pq(a) {
- var b;
- if (a) {
- b = a;
- if (b.dc()) {
- throw vbb(new utb());
- }
- return b.Xb(b.gc() - 1);
- }
- return nr(a.Kc());
- }
- function vgb(a) {
- var b;
- ybb(a, 0) < 0 && (a = Lbb(a));
- return b = Tbb(Obb(a, 32)), 64 - (b != 0 ? heb(b) : heb(Tbb(a)) + 32);
- }
- function QNc(a) {
- var b;
- b = BD(vNb(a, (wtc(), Hsc)), 61);
- return a.k == (j0b(), e0b) && (b == (Ucd(), Tcd) || b == zcd);
- }
- function bZb(a, b, c2) {
- var d, e;
- e = BD(vNb(a, (Nyc(), jxc)), 74);
- if (e) {
- d = new s7c();
- o7c(d, 0, e);
- q7c(d, c2);
- ye(b, d);
- }
- }
- function M_b(a, b, c2) {
- var d, e, f2, g;
- g = Q_b(a);
- d = g.d;
- e = g.c;
- f2 = a.n;
- b && (f2.a = f2.a - d.b - e.a);
- c2 && (f2.b = f2.b - d.d - e.b);
- }
- function dcc(a, b) {
- var c2, d;
- c2 = a.j;
- d = b.j;
- return c2 != d ? c2.g - d.g : a.p == b.p ? 0 : c2 == (Ucd(), Acd) ? a.p - b.p : b.p - a.p;
- }
- function dmc(a) {
- var b, c2;
- bmc(a);
- for (c2 = new olb(a.d); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 101);
- !!b.i && cmc(b);
- }
- }
- function lBc(a, b, c2, d, e) {
- NC(a.c[b.g], c2.g, d);
- NC(a.c[c2.g], b.g, d);
- NC(a.b[b.g], c2.g, e);
- NC(a.b[c2.g], b.g, e);
- }
- function G1c(a, b, c2, d) {
- BD(c2.b, 65);
- BD(c2.b, 65);
- BD(d.b, 65);
- BD(d.b, 65);
- BD(d.b, 65);
- Hkb(d.a, new L1c(a, b, d));
- }
- function WDb(a, b) {
- a.d == (ead(), aad) || a.d == dad ? BD(b.a, 57).c.Fc(BD(b.b, 57)) : BD(b.b, 57).c.Fc(BD(b.a, 57));
- }
- function Gkd(a, b, c2, d) {
- if (c2 == 1) {
- return !a.n && (a.n = new cUd(D2, a, 1, 7)), Txd(a.n, b, d);
- }
- return ckd(a, b, c2, d);
- }
- function Gnd(a, b) {
- var c2, d;
- d = (c2 = new BYd(), c2);
- pnd(d, b);
- wtd((!a.A && (a.A = new K4d(u5, a, 7)), a.A), d);
- return d;
- }
- function Zqd(a, b, c2) {
- var d, e, f2, g;
- f2 = null;
- g = b;
- e = Ypd(g, Jte);
- d = new jrd(a, c2);
- f2 = (lqd(d.a, d.b, e), e);
- return f2;
- }
- function KJd(a) {
- var b;
- if (!a.a || (a.Bb & 1) == 0 && a.a.kh()) {
- b = wId(a);
- JD(b, 148) && (a.a = BD(b, 148));
- }
- return a.a;
- }
- function Be(a, b) {
- var c2, d;
- uCb(b);
- for (d = b.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- if (!a.Hc(c2)) {
- return false;
- }
- }
- return true;
- }
- function cD(a, b) {
- var c2, d, e;
- c2 = a.l + b.l;
- d = a.m + b.m + (c2 >> 22);
- e = a.h + b.h + (d >> 22);
- return TC(c2 & Eje, d & Eje, e & Fje);
- }
- function nD(a, b) {
- var c2, d, e;
- c2 = a.l - b.l;
- d = a.m - b.m + (c2 >> 22);
- e = a.h - b.h + (d >> 22);
- return TC(c2 & Eje, d & Eje, e & Fje);
- }
- function bdb(a) {
- var b;
- if (a < 128) {
- b = (ddb(), cdb)[a];
- !b && (b = cdb[a] = new Xcb(a));
- return b;
- }
- return new Xcb(a);
- }
- function ubb(a) {
- var b;
- if (JD(a, 78)) {
- return a;
- }
- b = a && a.__java$exception;
- if (!b) {
- b = new lz(a);
- Sz(b);
- }
- return b;
- }
- function btd(a) {
- if (JD(a, 186)) {
- return BD(a, 118);
- } else if (!a) {
- throw vbb(new Heb(gue));
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
} else {
- return null;
- }
- }
- function Zjb(a, b) {
- if (b == null) {
- return false;
- }
- while (a.a != a.b) {
- if (pb(b, vkb(a))) {
- return true;
- }
- }
- return false;
- }
- function kib(a) {
- if (a.a.Ob()) {
- return true;
- }
- if (a.a != a.d) {
- return false;
- }
- a.a = new orb(a.e.f);
- return a.a.Ob();
- }
- function Gkb(a, b) {
- var c2, d;
- c2 = b.Pc();
- d = c2.length;
- if (d == 0) {
- return false;
- }
- bCb(a.c, a.c.length, c2);
- return true;
- }
- function Vyb(a, b, c2) {
- var d, e;
- for (e = b.vc().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 42);
- a.yc(d.cd(), d.dd(), c2);
- }
- return a;
- }
- function yac(a, b) {
- var c2, d;
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 70);
- yNb(c2, (wtc(), Ssc), b);
- }
- }
- function FZc(a, b, c2) {
- var d, e;
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 33);
- bld(d, d.i + b, d.j + c2);
- }
- }
- function Nb(a, b) {
- if (!a) {
- throw vbb(new Wdb(hc("value already present: %s", OC(GC(SI, 1), Uhe, 1, 5, [b]))));
- }
- }
- function mEb(a, b) {
- if (!a || !b || a == b) {
- return false;
- }
- return CDb(a.d.c, b.d.c + b.d.b) && CDb(b.d.c, a.d.c + a.d.b);
- }
- function xyb() {
- oyb();
- if (lyb) {
- return new wyb(null);
- }
- return fyb(hyb(), "com.google.common.base.Strings");
- }
- function J2c(a, b) {
- var c2;
- c2 = Pu(b.a.gc());
- MAb(VAb(new YAb(null, new Kub(b, 1)), a.i), new W2c(a, c2));
- return c2;
- }
- function Hnd(a) {
- var b, c2;
- c2 = (b = new BYd(), b);
- pnd(c2, "T");
- wtd((!a.d && (a.d = new K4d(u5, a, 11)), a.d), c2);
- return c2;
- }
- function Etd(a) {
- var b, c2, d, e;
- b = 1;
- for (c2 = 0, e = a.gc(); c2 < e; ++c2) {
- d = a.ki(c2);
- b = 31 * b + (d == null ? 0 : tb(d));
- }
- return b;
- }
- function Wi(a, b, c2, d) {
- var e;
- Pb(b, a.e.Hd().gc());
- Pb(c2, a.c.Hd().gc());
- e = a.a[b][c2];
- NC(a.a[b], c2, d);
- return e;
- }
- function OC(a, b, c2, d, e) {
- e.gm = a;
- e.hm = b;
- e.im = gcb;
- e.__elementTypeId$ = c2;
- e.__elementTypeCategory$ = d;
- return e;
- }
- function p6c(a, b, c2, d, e) {
- i6c();
- return $wnd.Math.min(A6c(a, b, c2, d, e), A6c(c2, d, a, b, V6c(new f7c(e.a, e.b))));
- }
- function gbc() {
- gbc = ccb;
- fbc = new ibc(ane, 0);
- dbc = new ibc(Gne, 1);
- ebc = new ibc(Hne, 2);
- cbc = new ibc("BOTH", 3);
- }
- function Ajc() {
- Ajc = ccb;
- wjc = new Bjc(gle, 0);
- xjc = new Bjc(jle, 1);
- yjc = new Bjc(kle, 2);
- zjc = new Bjc("TOP", 3);
- }
- function lWb() {
- lWb = ccb;
- hWb = new oWb("Q1", 0);
- kWb = new oWb("Q4", 1);
- iWb = new oWb("Q2", 2);
- jWb = new oWb("Q3", 3);
- }
- function LBc() {
- LBc = ccb;
- JBc = new MBc("OFF", 0);
- KBc = new MBc("SINGLE_EDGE", 1);
- IBc = new MBc("MULTI_EDGE", 2);
- }
- function a1c() {
- a1c = ccb;
- _0c = new c1c("MINIMUM_SPANNING_TREE", 0);
- $0c = new c1c("MAXIMUM_SPANNING_TREE", 1);
- }
- function Y1c() {
- Y1c = ccb;
- W1c = new k2c();
- V1c = new f2c();
- }
- function URc(a) {
- var b, c2, d;
- b = new Psb();
- for (d = Jsb(a.d, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 188);
- Dsb(b, c2.c);
- }
- return b;
- }
- function dVc(a) {
- var b, c2, d, e;
- e = new Rkb();
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 33);
- b = gVc(c2);
- Gkb(e, b);
- }
- return e;
- }
- function xcc(a) {
- var b;
- PZb(a, true);
- b = _ie;
- wNb(a, (Nyc(), cyc)) && (b += BD(vNb(a, cyc), 19).a);
- yNb(a, cyc, meb(b));
- }
- function q1c(a, b, c2) {
- var d;
- Uhb(a.a);
- Hkb(c2.i, new B1c(a));
- d = new hDb(BD(Ohb(a.a, b.b), 65));
- p1c(a, d, b);
- c2.f = d;
- }
- function QLc(a, b) {
- var c2, d;
- c2 = a.c;
- d = b.e[a.p];
- if (d < c2.a.c.length - 1) {
- return BD(Ikb(c2.a, d + 1), 10);
- }
- return null;
- }
- function rr(a, b) {
- var c2, d;
- Rb(b, "predicate");
- for (d = 0; a.Ob(); d++) {
- c2 = a.Pb();
- if (b.Lb(c2)) {
- return d;
- }
- }
- return -1;
- }
- function ZEd(a, b) {
- var c2, d;
- d = 0;
- if (a < 64 && a <= b) {
- b = b < 64 ? b : 63;
- for (c2 = a; c2 <= b; c2++) {
- d = Mbb(d, Nbb(1, c2));
- }
- }
- return d;
- }
- function pmb(a) {
- mmb();
- var b, c2, d;
- d = 0;
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = c2.Pb();
- d = d + (b != null ? tb(b) : 0);
- d = d | 0;
- }
- return d;
- }
- function etd(a) {
- var b, c2;
- c2 = (Fhd(), b = new rmd(), b);
- !!a && wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c2);
- return c2;
- }
- function TA(a) {
- var b;
- b = new PA();
- b.a = a;
- b.b = RA(a);
- b.c = KC(ZI, nie, 2, 2, 6, 1);
- b.c[0] = SA(a);
- b.c[1] = SA(a);
- return b;
- }
- function fkd(a, b) {
- switch (b) {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
case 0:
- !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0));
- a.o.c.$b();
- return;
- }
- Cid(a, b);
- }
- function jEb(a, b, c2) {
- switch (c2.g) {
- case 2:
- a.b = b;
+ return 5;
break;
case 1:
- a.c = b;
- break;
- case 4:
- a.d = b;
break;
- case 3:
- a.a = b;
- }
- }
- function sbd(a) {
- switch (a.g) {
- case 1:
- return obd;
case 2:
- return nbd;
+ break;
case 3:
- return pbd;
- default:
- return qbd;
- }
- }
- function Zac(a) {
- switch (BD(vNb(a, (Nyc(), mxc)), 163).g) {
- case 2:
+ break;
case 4:
- return true;
- default:
- return false;
- }
- }
- function Trc() {
- Trc = ccb;
- Src = as((Orc(), OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc])));
- }
- function Ndd() {
- Ndd = ccb;
- Mdd = as((Idd(), OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd])));
- }
- function wUc() {
- wUc = ccb;
- vUc = e3c(b3c(b3c(g3c(e3c(new j3c(), (yRc(), vRc), (qSc(), pSc)), wRc), mSc), nSc), xRc, oSc);
- }
- function Gqc() {
- Gqc = ccb;
- Eqc = new Hqc(ane, 0);
- Dqc = new Hqc("INCOMING_ONLY", 1);
- Fqc = new Hqc("OUTGOING_ONLY", 2);
- }
- function rC() {
- rC = ccb;
- qC = { "boolean": sC, "number": tC, "string": vC, "object": uC, "function": uC, "undefined": wC };
- }
- function Whb(a, b) {
- mCb(a >= 0, "Negative initial capacity");
- mCb(b >= 0, "Non-positive load factor");
- Uhb(this);
- }
- function _Ed(a, b, c2) {
- if (a >= 128)
- return false;
- return a < 64 ? Kbb(xbb(Nbb(1, a), c2), 0) : Kbb(xbb(Nbb(1, a - 64), b), 0);
- }
- function bOb(a, b) {
- if (!a || !b || a == b) {
- return false;
- }
- return Jy(a.b.c, b.b.c + b.b.b) < 0 && Jy(b.b.c, a.b.c + a.b.b) < 0;
- }
- function I4b(a) {
- var b, c2, d;
- c2 = a.n;
- d = a.o;
- b = a.d;
- return new J6c(c2.a - b.b, c2.b - b.d, d.a + (b.b + b.c), d.b + (b.d + b.a));
- }
- function $ic(a) {
- var b, c2, d, e;
- for (c2 = a.a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- djc(a, b, (Ucd(), Rcd));
- djc(a, b, Acd);
- }
- }
- function Uy(a) {
- var b, c2, d, e;
- for (b = (a.j == null && (a.j = (Rz(), e = Qz.ce(a), Tz(e))), a.j), c2 = 0, d = b.length; c2 < d; ++c2)
- ;
- }
- function hD(a) {
- var b, c2, d;
- b = ~a.l + 1 & Eje;
- c2 = ~a.m + (b == 0 ? 1 : 0) & Eje;
- d = ~a.h + (b == 0 && c2 == 0 ? 1 : 0) & Fje;
- return TC(b, c2, d);
- }
- function C$c(a, b) {
- var c2, d;
- c2 = BD(BD(Ohb(a.g, b.a), 46).a, 65);
- d = BD(BD(Ohb(a.g, b.b), 46).a, 65);
- return _Nb(c2, d);
- }
- function xtd(a, b, c2) {
- var d;
- d = a.gc();
- if (b > d)
- throw vbb(new Cyd(b, d));
- a.hi() && (c2 = Dtd(a, c2));
- return a.Vh(b, c2);
- }
- function xNb(a, b, c2) {
- return c2 == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c2)), a;
- }
- function yNb(a, b, c2) {
- c2 == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c2));
- return a;
- }
- function TQb(a) {
- var b, c2;
- c2 = new kRb();
- tNb(c2, a);
- yNb(c2, (HSb(), FSb), a);
- b = new Lqb();
- VQb(a, c2, b);
- UQb(a, c2, b);
- return c2;
- }
- function j6c(a) {
- i6c();
- var b, c2, d;
- c2 = KC(m1, nie, 8, 2, 0, 1);
- d = 0;
- for (b = 0; b < 2; b++) {
- d += 0.5;
- c2[b] = r6c(d, a);
- }
- return c2;
- }
- function Mic(a, b) {
- var c2, d, e, f2;
- c2 = false;
- d = a.a[b].length;
- for (f2 = 0; f2 < d - 1; f2++) {
- e = f2 + 1;
- c2 = c2 | Nic(a, b, f2, e);
- }
- return c2;
- }
- function nNb(a, b, c2, d, e) {
- var f2, g;
- for (g = c2; g <= e; g++) {
- for (f2 = b; f2 <= d; f2++) {
- YMb(a, f2, g) || aNb(a, f2, g, true, false);
- }
- }
- }
- function rNd(a, b) {
- this.b = a;
- nNd.call(this, (BD(qud(ZKd((NFd(), MFd).o), 10), 18), b.i), b.g);
- this.a = (NKd(), MKd);
- }
- function hj(a, b) {
- this.c = a;
- this.d = b;
- this.b = this.d / this.c.c.Hd().gc() | 0;
- this.a = this.d % this.c.c.Hd().gc();
- }
- function jdb() {
- this.o = null;
- this.k = null;
- this.j = null;
- this.d = null;
- this.b = null;
- this.n = null;
- this.a = null;
- }
- function fB(a, b, c2) {
- this.q = new $wnd.Date();
- this.q.setFullYear(a + nje, b, c2);
- this.q.setHours(0, 0, 0, 0);
- YA(this, 0);
- }
- function tAc() {
- tAc = ccb;
- rAc = new uAc(ane, 0);
- qAc = new uAc("NODES_AND_EDGES", 1);
- sAc = new uAc("PREFER_EDGES", 2);
- }
- function RA(a) {
- var b;
- if (a == 0) {
- return "Etc/GMT";
- }
- if (a < 0) {
- a = -a;
- b = "Etc/GMT-";
- } else {
- b = "Etc/GMT+";
- }
- return b + UA(a);
- }
- function geb(a) {
- var b;
- if (a < 0) {
- return Rie;
- } else if (a == 0) {
- return 0;
- } else {
- for (b = Iie; (b & a) == 0; b >>= 1)
- ;
- return b;
- }
- }
- function $C(a) {
- var b, c2;
- c2 = heb(a.h);
- if (c2 == 32) {
- b = heb(a.m);
- return b == 32 ? heb(a.l) + 32 : b + 20 - 10;
- } else {
- return c2 - 12;
- }
- }
- function bkb(a) {
- var b;
- b = a.a[a.b];
- if (b == null) {
- return null;
- }
- NC(a.a, a.b, null);
- a.b = a.b + 1 & a.a.length - 1;
- return b;
- }
- function EDc(a) {
- var b, c2;
- b = a.t - a.k[a.o.p] * a.d + a.j[a.o.p] > a.f;
- c2 = a.u + a.e[a.o.p] * a.d > a.f * a.s * a.d;
- return b || c2;
- }
- function Iwb(a, b, c2) {
- var d, e;
- d = new exb(b, c2);
- e = new fxb();
- a.b = Gwb(a, a.b, d, e);
- e.b || ++a.c;
- a.b.b = false;
- return e.d;
- }
- function djc(a, b, c2) {
- var d, e, f2, g;
- g = CHc(b, c2);
- f2 = 0;
- for (e = g.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 11);
- Rhb(a.c, d, meb(f2++));
- }
- }
- function xVb(a) {
- var b, c2;
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- b.g.c = -b.g.c - b.g.b;
- }
- sVb(a);
- }
- function XDb(a) {
- var b, c2;
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- b.d.c = -b.d.c - b.d.b;
- }
- RDb(a);
- }
- function AUd(a) {
- var b;
- if (!a.c || (a.Bb & 1) == 0 && (a.c.Db & 64) != 0) {
- b = wId(a);
- JD(b, 88) && (a.c = BD(b, 26));
- }
- return a.c;
- }
- function ZC(a) {
- var b, c2, d;
- b = ~a.l + 1 & Eje;
- c2 = ~a.m + (b == 0 ? 1 : 0) & Eje;
- d = ~a.h + (b == 0 && c2 == 0 ? 1 : 0) & Fje;
- a.l = b;
- a.m = c2;
- a.h = d;
- }
- function l7c(a) {
- var b, c2, d, e, f2;
- b = new d7c();
- for (d = a, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- b.a += c2.a;
- b.b += c2.b;
- }
- return b;
- }
- function nmb(a, b) {
- mmb();
- var c2, d, e, f2, g;
- g = false;
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- g = g | a.Fc(c2);
- }
- return g;
- }
- function w6c(a) {
- i6c();
- var b, c2;
- c2 = -17976931348623157e292;
- for (b = 0; b < a.length; b++) {
- a[b] > c2 && (c2 = a[b]);
- }
- return c2;
- }
- function SHc(a, b, c2) {
- var d;
- d = new Rkb();
- UHc(a, b, d, (Ucd(), zcd), true, false);
- UHc(a, c2, d, Tcd, false, false);
- return d;
- }
- function crd(a, b, c2) {
- var d, e, f2, g;
- f2 = null;
- g = b;
- e = Ypd(g, "labels");
- d = new Hrd(a, c2);
- f2 = (Dqd(d.a, d.b, e), e);
- return f2;
- }
- function j1d(a, b, c2, d) {
- var e;
- e = r1d(a, b, c2, d);
- if (!e) {
- e = i1d(a, c2, d);
- if (!!e && !e1d(a, b, e)) {
- return null;
- }
- }
- return e;
- }
- function m1d(a, b, c2, d) {
- var e;
- e = s1d(a, b, c2, d);
- if (!e) {
- e = l1d(a, c2, d);
- if (!!e && !e1d(a, b, e)) {
- return null;
- }
- }
- return e;
- }
- function Xb(a, b) {
- var c2;
- for (c2 = 0; c2 < a.a.a.length; c2++) {
- if (!BD($lb(a.a, c2), 169).Lb(b)) {
- return false;
- }
- }
- return true;
- }
- function Cb(a, b, c2) {
- Qb(b);
- if (c2.Ob()) {
- Mfb(b, Fb(c2.Pb()));
- while (c2.Ob()) {
- Mfb(b, a.a);
- Mfb(b, Fb(c2.Pb()));
- }
- }
- return b;
- }
- function qmb(a) {
- mmb();
- var b, c2, d;
- d = 1;
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = c2.Pb();
- d = 31 * d + (b != null ? tb(b) : 0);
- d = d | 0;
- }
- return d;
- }
- function WC(a, b, c2, d, e) {
- var f2;
- f2 = lD(a, b);
- c2 && ZC(f2);
- if (e) {
- a = YC(a, b);
- d ? QC = hD(a) : QC = TC(a.l, a.m, a.h);
- }
- return f2;
- }
- function Xzb(b, c2) {
- var d;
- try {
- c2.Vd();
- } catch (a) {
- a = ubb(a);
- if (JD(a, 78)) {
- d = a;
- b.c[b.c.length] = d;
- } else
- throw vbb(a);
- }
- }
- function jRb(a, b, c2) {
- var d, e;
- if (JD(b, 144) && !!c2) {
- d = BD(b, 144);
- e = c2;
- return a.a[d.b][e.b] + a.a[e.b][d.b];
- }
- return 0;
- }
- function xld(a, b) {
- switch (b) {
+ break;
+ case 5:
+ break;
+ case 6:
+ return 19;
+ break;
case 7:
- return !!a.e && a.e.i != 0;
+ this.begin("LINE");
+ return 14;
+ break;
case 8:
- return !!a.d && a.d.i != 0;
- }
- return Ykd(a, b);
- }
- function YQb(a, b) {
- switch (b.g) {
- case 0:
- JD(a.b, 631) || (a.b = new xRb());
+ this.begin("ID");
+ return 50;
+ break;
+ case 9:
+ this.begin("ID");
+ return 52;
+ break;
+ case 10:
+ return 13;
+ break;
+ case 11:
+ this.begin("ID");
+ return 53;
+ break;
+ case 12:
+ yy_.yytext = yy_.yytext.trim();
+ this.begin("ALIAS");
+ return 70;
+ break;
+ case 13:
+ this.popState();
+ this.popState();
+ this.begin("LINE");
+ return 51;
+ break;
+ case 14:
+ this.popState();
+ this.popState();
+ return 5;
+ break;
+ case 15:
+ this.begin("LINE");
+ return 36;
+ break;
+ case 16:
+ this.begin("LINE");
+ return 37;
+ break;
+ case 17:
+ this.begin("LINE");
+ return 38;
+ break;
+ case 18:
+ this.begin("LINE");
+ return 39;
+ break;
+ case 19:
+ this.begin("LINE");
+ return 49;
+ break;
+ case 20:
+ this.begin("LINE");
+ return 41;
+ break;
+ case 21:
+ this.begin("LINE");
+ return 43;
+ break;
+ case 22:
+ this.begin("LINE");
+ return 48;
+ break;
+ case 23:
+ this.begin("LINE");
+ return 44;
+ break;
+ case 24:
+ this.begin("LINE");
+ return 47;
+ break;
+ case 25:
+ this.begin("LINE");
+ return 46;
+ break;
+ case 26:
+ this.popState();
+ return 15;
+ break;
+ case 27:
+ return 16;
+ break;
+ case 28:
+ return 65;
+ break;
+ case 29:
+ return 66;
+ break;
+ case 30:
+ return 59;
+ break;
+ case 31:
+ return 60;
+ break;
+ case 32:
+ return 61;
+ break;
+ case 33:
+ return 62;
+ break;
+ case 34:
+ return 57;
+ break;
+ case 35:
+ return 54;
+ break;
+ case 36:
+ this.begin("ID");
+ return 21;
+ break;
+ case 37:
+ this.begin("ID");
+ return 23;
+ break;
+ case 38:
+ return 29;
+ break;
+ case 39:
+ return 30;
+ break;
+ case 40:
+ this.begin("acc_title");
+ return 31;
+ break;
+ case 41:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 42:
+ this.begin("acc_descr");
+ return 33;
+ break;
+ case 43:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 44:
+ this.begin("acc_descr_multiline");
+ break;
+ case 45:
+ this.popState();
+ break;
+ case 46:
+ return "acc_descr_multiline_value";
+ break;
+ case 47:
+ return 6;
+ break;
+ case 48:
+ return 18;
+ break;
+ case 49:
+ return 20;
+ break;
+ case 50:
+ return 64;
+ break;
+ case 51:
+ return 5;
+ break;
+ case 52:
+ yy_.yytext = yy_.yytext.trim();
+ return 70;
+ break;
+ case 53:
+ return 73;
+ break;
+ case 54:
+ return 74;
+ break;
+ case 55:
+ return 75;
+ break;
+ case 56:
+ return 76;
+ break;
+ case 57:
+ return 71;
+ break;
+ case 58:
+ return 72;
+ break;
+ case 59:
+ return 77;
+ break;
+ case 60:
+ return 78;
+ break;
+ case 61:
+ return 79;
+ break;
+ case 62:
+ return 80;
+ break;
+ case 63:
+ return 81;
+ break;
+ case 64:
+ return 68;
+ break;
+ case 65:
+ return 69;
+ break;
+ case 66:
+ return 5;
+ break;
+ case 67:
+ return "INVALID";
break;
- case 1:
- JD(a.b, 632) || (a.b = new DRb());
- }
- }
- function Ghe(a, b) {
- while (a.g == null && !a.c ? Uud(a) : a.g == null || a.i != 0 && BD(a.g[a.i - 1], 47).Ob()) {
- Ord(b, Vud(a));
- }
- }
- function kic(a, b, c2) {
- a.g = qic(a, b, (Ucd(), zcd), a.b);
- a.d = qic(a, c2, zcd, a.b);
- if (a.g.c == 0 || a.d.c == 0) {
- return;
- }
- nic(a);
- }
- function lic(a, b, c2) {
- a.g = qic(a, b, (Ucd(), Tcd), a.j);
- a.d = qic(a, c2, Tcd, a.j);
- if (a.g.c == 0 || a.d.c == 0) {
- return;
- }
- nic(a);
- }
- function $yc(a, b, c2) {
- return !WAb(JAb(new YAb(null, new Kub(a.c, 16)), new Xxb(new dfd(b, c2)))).sd((EAb(), DAb));
- }
- function KAb(a) {
- var b;
- Tzb(a);
- b = new NBb();
- if (a.a.sd(b)) {
- return Atb(), new Ftb(uCb(b.a));
- }
- return Atb(), Atb(), ztb;
- }
- function nA(a) {
- var b;
- if (a.b <= 0) {
- return false;
- }
- b = hfb("MLydhHmsSDkK", wfb(bfb(a.c, 0)));
- return b > 1 || b >= 0 && a.b < 3;
- }
- function w7c(a) {
- var b, c2, d;
- b = new s7c();
- for (d = Jsb(a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 8);
- St(b, 0, new g7c(c2));
- }
- return b;
- }
- function qVb(a) {
- var b, c2;
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- b.f.$b();
- }
- LVb(a.b, a);
- rVb(a);
- }
- function tb(a) {
- return ND(a) ? LCb(a) : LD(a) ? Hdb(a) : KD(a) ? (uCb(a), a) ? 1231 : 1237 : ID(a) ? a.Hb() : MC(a) ? FCb(a) : rz(a);
- }
- function rb(a) {
- return ND(a) ? ZI : LD(a) ? BI : KD(a) ? wI : ID(a) ? a.gm : MC(a) ? a.gm : a.gm || Array.isArray(a) && GC(PH, 1) || PH;
- }
- function j_c(a) {
- switch (a.g) {
- case 0:
- return new Q1c();
- default:
- throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function S0c(a) {
- switch (a.g) {
- case 0:
- return new k1c();
- default:
- throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function ekd(a, b, c2) {
- switch (b) {
- case 0:
- !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0));
- cId(a.o, c2);
- return;
- }
- yid(a, b, c2);
- }
- function XRc(a, b, c2) {
- this.g = a;
- this.e = new d7c();
- this.f = new d7c();
- this.d = new Psb();
- this.b = new Psb();
- this.a = b;
- this.c = c2;
- }
- function PZc(a, b, c2, d) {
- this.b = new Rkb();
- this.n = new Rkb();
- this.i = d;
- this.j = c2;
- this.s = a;
- this.t = b;
- this.r = 0;
- this.d = 0;
- }
- function nib(a) {
- this.e = a;
- this.d = new Irb(this.e.g);
- this.a = this.d;
- this.b = kib(this);
- this.$modCount = a.$modCount;
- }
- function Pr(a) {
- while (!a.d || !a.d.Ob()) {
- if (!!a.b && !akb(a.b)) {
- a.d = BD(fkb(a.b), 47);
- } else {
- return null;
- }
- }
- return a.d;
- }
- function Xyc(a) {
- Ekb(a.c, (Y1c(), W1c));
- if (Ky(a.a, Edb(ED(Ksd((dzc(), bzc)))))) {
- return new Zed();
- }
- return new _ed(a);
- }
- function bRc(a) {
- switch (a.g) {
- case 1:
- return Sqe;
- default:
- case 2:
- return 0;
- case 3:
- return cme;
- case 4:
- return Tqe;
- }
- }
- function Ife() {
- wfe();
- var a;
- if (dfe)
- return dfe;
- a = Afe(Kfe("M", true));
- a = Bfe(Kfe("M", false), a);
- dfe = a;
- return dfe;
- }
- function Awb(a, b) {
- var c2, d, e;
- e = a.b;
- while (e) {
- c2 = a.a.ue(b, e.d);
- if (c2 == 0) {
- return e;
- }
- d = c2 < 0 ? 0 : 1;
- e = e.a[d];
- }
- return null;
- }
- function Tyb(a, b, c2) {
- var d, e;
- d = (Bcb(), _Pb(c2) ? true : false);
- e = BD(b.xc(d), 15);
- if (!e) {
- e = new Rkb();
- b.zc(d, e);
- }
- e.Fc(c2);
- }
- function dYc(a, b) {
- var c2, d;
- c2 = BD(hkd(a, (lZc(), UYc)), 19).a;
- d = BD(hkd(b, UYc), 19).a;
- return c2 == d ? -1 : c2 < d ? -1 : c2 > d ? 1 : 0;
- }
- function NYb(a, b) {
- if (OYb(a, b)) {
- Rc(a.b, BD(vNb(b, (wtc(), Esc)), 21), b);
- Dsb(a.a, b);
- return true;
- } else {
- return false;
- }
- }
- function d3b(a) {
- var b, c2;
- b = BD(vNb(a, (wtc(), gtc)), 10);
- if (b) {
- c2 = b.c;
- Lkb(c2.a, b);
- c2.a.c.length == 0 && Lkb(Q_b(b).b, c2);
- }
- }
- function syb(a) {
- if (lyb) {
- return KC(qL, tke, 572, 0, 0, 1);
- }
- return BD(Qkb(a.a, KC(qL, tke, 572, a.a.c.length, 0, 1)), 842);
- }
- function mn(a, b, c2, d) {
- Vm();
- return new wx(OC(GC(CK, 1), zie, 42, 0, [(Wj(a, b), new Wo(a, b)), (Wj(c2, d), new Wo(c2, d))]));
- }
- function Dnd(a, b, c2) {
- var d, e;
- e = (d = new SSd(), d);
- $nd(e, b, c2);
- wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), e);
- return e;
- }
- function Zmd(a) {
- var b, c2, d, e;
- e = icb(Rmd, a);
- c2 = e.length;
- d = KC(ZI, nie, 2, c2, 6, 1);
- for (b = 0; b < c2; ++b) {
- d[b] = e[b];
- }
- return d;
- }
- function l4c(a, b) {
- var c2, d, e, f2, g;
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- g = new v4c(a);
- c2.Qe(g);
- q4c(g);
- }
- Uhb(a.f);
- }
- function hw(a, b) {
- var c2;
- if (b === a) {
- return true;
- }
- if (JD(b, 224)) {
- c2 = BD(b, 224);
- return pb(a.Zb(), c2.Zb());
- }
- return false;
- }
- function aub(a, b) {
- var c2;
- if (b * 2 + 1 >= a.b.c.length) {
- return;
- }
- aub(a, 2 * b + 1);
- c2 = 2 * b + 2;
- c2 < a.b.c.length && aub(a, c2);
- bub(a, b);
- }
- function Ss(a, b, c2) {
- var d, e;
- this.g = a;
- this.c = b;
- this.a = this;
- this.d = this;
- e = Kp(c2);
- d = KC(BG, Gie, 330, e, 0, 1);
- this.b = d;
- }
- function whb(a, b, c2) {
- var d;
- for (d = c2 - 1; d >= 0 && a[d] === b[d]; d--)
- ;
- return d < 0 ? 0 : Gbb(xbb(a[d], Yje), xbb(b[d], Yje)) ? -1 : 1;
- }
- function UFc(a, b) {
- var c2, d;
- for (d = Jsb(a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 214);
- if (c2.e.length > 0) {
- b.td(c2);
- c2.i && _Fc(c2);
- }
- }
- }
- function nzd(a, b) {
- var c2, d;
- d = BD(Ajd(a.a, 4), 126);
- c2 = KC($3, hve, 415, b, 0, 1);
- d != null && $fb(d, 0, c2, 0, d.length);
- return c2;
- }
- function JEd(a, b) {
- var c2;
- c2 = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, b);
- a.e != null || (c2.c = a);
- return c2;
- }
- function Dc(a, b) {
- var c2, d;
- for (d = a.Zb().Cc().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 14);
- if (c2.Hc(b)) {
- return true;
- }
- }
- return false;
- }
- function oNb(a, b, c2, d, e) {
- var f2, g;
- for (g = c2; g <= e; g++) {
- for (f2 = b; f2 <= d; f2++) {
- if (YMb(a, f2, g)) {
- return true;
- }
- }
- }
- return false;
- }
- function Tt(a, b, c2) {
- var d, e, f2, g;
- uCb(c2);
- g = false;
- f2 = a.Zc(b);
- for (e = c2.Kc(); e.Ob(); ) {
- d = e.Pb();
- f2.Rb(d);
- g = true;
- }
- return g;
- }
- function Dv(a, b) {
- var c2;
- if (a === b) {
- return true;
- } else if (JD(b, 83)) {
- c2 = BD(b, 83);
- return Ax(Wm(a), c2.vc());
- }
- return false;
- }
- function Nhb(a, b, c2) {
- var d, e;
- for (e = c2.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 42);
- if (a.re(b, d.dd())) {
- return true;
- }
- }
- return false;
- }
- function Hic(a, b, c2) {
- if (!a.d[b.p][c2.p]) {
- Gic(a, b, c2);
- a.d[b.p][c2.p] = true;
- a.d[c2.p][b.p] = true;
- }
- return a.a[b.p][c2.p];
- }
- function Itd(a, b) {
- if (!a.ai() && b == null) {
- throw vbb(new Wdb("The 'no null' constraint is violated"));
- }
- return b;
- }
- function $Jd(a, b) {
- if (a.D == null && a.B != null) {
- a.D = a.B;
- a.B = null;
- }
- jKd(a, b == null ? null : (uCb(b), b));
- !!a.C && a.yk(null);
- }
- function XHc(a, b) {
- var c2;
- if (!a || a == b || !wNb(b, (wtc(), Psc))) {
- return false;
- }
- c2 = BD(vNb(b, (wtc(), Psc)), 10);
- return c2 != a;
- }
- function b4d(a) {
- switch (a.i) {
- case 2: {
- return true;
- }
- case 1: {
- return false;
- }
- case -1: {
- ++a.c;
- }
- default: {
- return a.pl();
- }
- }
- }
- function c4d(a) {
- switch (a.i) {
- case -2: {
- return true;
- }
- case -1: {
- return false;
- }
- case 1: {
- --a.c;
- }
- default: {
- return a.ql();
- }
- }
- }
- function Xdb(a) {
- Zy.call(this, "The given string does not match the expected format for individual spacings.", a);
- }
- function pgd() {
- pgd = ccb;
- mgd = new qgd("ELK", 0);
- ngd = new qgd("JSON", 1);
- lgd = new qgd("DOT", 2);
- ogd = new qgd("SVG", 3);
- }
- function pWc() {
- pWc = ccb;
- mWc = new rWc(ane, 0);
- nWc = new rWc("RADIAL_COMPACTION", 1);
- oWc = new rWc("WEDGE_COMPACTION", 2);
- }
- function Fyb() {
- Fyb = ccb;
- Cyb = new Gyb("CONCURRENT", 0);
- Dyb = new Gyb("IDENTITY_FINISH", 1);
- Eyb = new Gyb("UNORDERED", 2);
- }
- function nPb() {
- nPb = ccb;
- kPb = (cPb(), bPb);
- jPb = new Nsd(Tle, kPb);
- iPb = new Lsd(Ule);
- lPb = new Lsd(Vle);
- mPb = new Lsd(Wle);
- }
- function Occ() {
- Occ = ccb;
- Mcc = new Zcc();
- Ncc = new _cc();
- Lcc = new bdc();
- Kcc = new fdc();
- Jcc = new jdc();
- Icc = (uCb(Jcc), new bpb());
- }
- function tBc() {
- tBc = ccb;
- qBc = new uBc("CONSERVATIVE", 0);
- rBc = new uBc("CONSERVATIVE_SOFT", 1);
- sBc = new uBc("SLOPPY", 2);
- }
- function Zad() {
- Zad = ccb;
- Xad = new q0b(15);
- Wad = new Osd((Y9c(), f9c), Xad);
- Yad = C9c;
- Sad = s8c;
- Tad = Y8c;
- Vad = _8c;
- Uad = $8c;
- }
- function o7c(a, b, c2) {
- var d, e, f2;
- d = new Psb();
- for (f2 = Jsb(c2, 0); f2.b != f2.d.c; ) {
- e = BD(Xsb(f2), 8);
- Dsb(d, new g7c(e));
- }
- Tt(a, b, d);
- }
- function r7c(a) {
- var b, c2, d;
- b = 0;
- d = KC(m1, nie, 8, a.b, 0, 1);
- c2 = Jsb(a, 0);
- while (c2.b != c2.d.c) {
- d[b++] = BD(Xsb(c2), 8);
- }
- return d;
- }
- function $Pd(a) {
- var b;
- b = (!a.a && (a.a = new cUd(g5, a, 9, 5)), a.a);
- if (b.i != 0) {
- return nQd(BD(qud(b, 0), 678));
- }
- return null;
- }
- function Ly(a, b) {
- var c2;
- c2 = wbb(a, b);
- if (Gbb(Vbb(a, b), 0) | Ebb(Vbb(a, c2), 0)) {
- return c2;
- }
- return wbb(rie, Vbb(Pbb(c2, 63), 1));
- }
- function Yyc(a, b) {
- var c2;
- c2 = Ksd((dzc(), bzc)) != null && b.wg() != null ? Edb(ED(b.wg())) / Edb(ED(Ksd(bzc))) : 1;
- Rhb(a.b, b, c2);
- }
- function le(a, b) {
- var c2, d;
- c2 = BD(a.d.Bc(b), 14);
- if (!c2) {
- return null;
- }
- d = a.e.hc();
- d.Gc(c2);
- a.e.d -= c2.gc();
- c2.$b();
- return d;
- }
- function AHc(a, b) {
- var c2, d;
- d = a.c[b];
- if (d == 0) {
- return;
- }
- a.c[b] = 0;
- a.d -= d;
- c2 = b + 1;
- while (c2 < a.a.length) {
- a.a[c2] -= d;
- c2 += c2 & -c2;
- }
- }
- function rwb(a) {
- var b;
- b = a.a.c.length;
- if (b > 0) {
- return _vb(b - 1, a.a.c.length), Kkb(a.a, b - 1);
- } else {
- throw vbb(new Jpb());
- }
- }
- function C2c(a, b, c2) {
- if (b < 0) {
- throw vbb(new qcb(ese + b));
- }
- if (b < a.j.c.length) {
- Nkb(a.j, b, c2);
- } else {
- A2c(a, b);
- Ekb(a.j, c2);
- }
- }
- function oCb(a, b, c2) {
- if (a > b) {
- throw vbb(new Wdb(xke + a + yke + b));
- }
- if (a < 0 || b > c2) {
- throw vbb(new scb(xke + a + zke + b + oke + c2));
- }
- }
- function j5c(a) {
- if (!a.a || (a.a.i & 8) == 0) {
- throw vbb(new Zdb("Enumeration class expected for layout option " + a.f));
- }
- }
- function vud(a) {
- var b;
- ++a.j;
- if (a.i == 0) {
- a.g = null;
- } else if (a.i < a.g.length) {
- b = a.g;
- a.g = a.ri(a.i);
- $fb(b, 0, a.g, 0, a.i);
- }
- }
- function hkb(a, b) {
- var c2, d;
- c2 = a.a.length - 1;
- a.c = a.c - 1 & c2;
- while (b != a.c) {
- d = b + 1 & c2;
- NC(a.a, b, a.a[d]);
- b = d;
- }
- NC(a.a, a.c, null);
- }
- function ikb(a, b) {
- var c2, d;
- c2 = a.a.length - 1;
- while (b != a.b) {
- d = b - 1 & c2;
- NC(a.a, b, a.a[d]);
- b = d;
- }
- NC(a.a, a.b, null);
- a.b = a.b + 1 & c2;
- }
- function Fkb(a, b, c2) {
- var d, e;
- wCb(b, a.c.length);
- d = c2.Pc();
- e = d.length;
- if (e == 0) {
- return false;
- }
- bCb(a.c, b, d);
- return true;
- }
- function VEd(a) {
- var b, c2;
- if (a == null)
- return null;
- for (b = 0, c2 = a.length; b < c2; b++) {
- if (!gFd(a[b]))
- return a[b];
- }
- return null;
- }
- function grb(a, b, c2) {
- var d, e, f2, g;
- for (e = c2, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- if (a.b.re(b, d.cd())) {
- return d;
- }
- }
- return null;
- }
- function Hlb(a) {
- var b, c2, d, e, f2;
- f2 = 1;
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- f2 = 31 * f2 + (b != null ? tb(b) : 0);
- f2 = f2 | 0;
- }
- return f2;
- }
- function as(a) {
- var b, c2, d, e, f2;
- b = {};
- for (d = a, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- b[":" + (c2.f != null ? c2.f : "" + c2.g)] = c2;
- }
- return b;
- }
- function gr(a) {
- var b;
- Qb(a);
- Mb(true, "numberToAdvance must be nonnegative");
- for (b = 0; b < 0 && Qr(a); b++) {
- Rr(a);
- }
- return b;
- }
- function eDc(a) {
- var b, c2, d;
- d = 0;
- for (c2 = new Sr(ur(a.a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- b.c.i == b.d.i || ++d;
- }
- return d;
- }
- function HZb(a, b) {
- var c2, d, e;
- c2 = a;
- e = 0;
- do {
- if (c2 == b) {
- return e;
- }
- d = c2.e;
- if (!d) {
- throw vbb(new Vdb());
- }
- c2 = Q_b(d);
- ++e;
- } while (true);
- }
- function w$c(a, b) {
- var c2, d, e;
- e = b - a.f;
- for (d = new olb(a.d); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 443);
- _Zc(c2, c2.e, c2.f + e);
- }
- a.f = b;
- }
- function aRc(a, b, c2) {
- if ($wnd.Math.abs(b - a) < Rqe || $wnd.Math.abs(c2 - a) < Rqe) {
- return true;
- }
- return b - a > Rqe ? a - c2 > Rqe : c2 - a > Rqe;
- }
- function pHb(a, b) {
- if (!a) {
- return 0;
- }
- if (b && !a.j) {
- return 0;
- }
- if (JD(a, 124)) {
- if (BD(a, 124).a.b == 0) {
- return 0;
- }
- }
- return a.Re();
- }
- function qHb(a, b) {
- if (!a) {
- return 0;
- }
- if (b && !a.k) {
- return 0;
- }
- if (JD(a, 124)) {
- if (BD(a, 124).a.a == 0) {
- return 0;
- }
- }
- return a.Se();
- }
- function fhb(a) {
- Hgb();
- if (a < 0) {
- if (a != -1) {
- return new Tgb(-1, -a);
- }
- return Bgb;
- } else
- return a <= 10 ? Dgb[QD(a)] : new Tgb(1, a);
- }
- function xC(a) {
- rC();
- throw vbb(new MB("Unexpected typeof result '" + a + "'; please report this bug to the GWT team"));
- }
- function lz(a) {
- jz();
- Py(this);
- Ry(this);
- this.e = a;
- Sy(this, a);
- this.g = a == null ? Xhe : fcb(a);
- this.a = "";
- this.b = a;
- this.a = "";
- }
- function F$c() {
- this.a = new G$c();
- this.f = new I$c(this);
- this.b = new K$c(this);
- this.i = new M$c(this);
- this.e = new O$c(this);
- }
- function ss() {
- rs.call(this, new _rb(Cv(16)));
- Xj(2, mie);
- this.b = 2;
- this.a = new Ms(null, null, 0, null);
- As(this.a, this.a);
- }
- function xzc() {
- xzc = ccb;
- uzc = new zzc("DUMMY_NODE_OVER", 0);
- vzc = new zzc("DUMMY_NODE_UNDER", 1);
- wzc = new zzc("EQUAL", 2);
- }
- function LUb() {
- LUb = ccb;
- JUb = Fx(OC(GC(t12, 1), Kie, 103, 0, [(ead(), aad), bad]));
- KUb = Fx(OC(GC(t12, 1), Kie, 103, 0, [dad, _9c]));
- }
- function VQc(a) {
- return (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b;
- }
- function DOb(a) {
- var b, c2, d, e;
- d = a.b.a;
- for (c2 = d.a.ec().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 561);
- e = new MPb(b, a.e, a.f);
- Ekb(a.g, e);
- }
- }
- function yId(a, b) {
- var c2, d, e;
- d = a.nk(b, null);
- e = null;
- if (b) {
- e = (LFd(), c2 = new UQd(), c2);
- NQd(e, a.r);
- }
- d = xId(a, e, d);
- !!d && d.Fi();
- }
- function VFc(a, b) {
- var c2, d;
- d = Cub(a.d, 1) != 0;
- c2 = true;
- while (c2) {
- c2 = false;
- c2 = b.c.Tf(b.e, d);
- c2 = c2 | dGc(a, b, d, false);
- d = !d;
- }
- $Fc(a);
- }
- function wZc(a, b) {
- var c2, d, e;
- d = false;
- c2 = b.q.d;
- if (b.d < a.b) {
- e = ZZc(b.q, a.b);
- if (b.q.d > e) {
- $Zc(b.q, e);
- d = c2 != b.q.d;
- }
- }
- return d;
- }
- function PVc(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- i3 = b.i;
- j = b.j;
- d = a.f;
- e = d.i;
- f2 = d.j;
- g = i3 - e;
- h = j - f2;
- c2 = $wnd.Math.sqrt(g * g + h * h);
- return c2;
- }
- function Rnd(a, b) {
- var c2, d;
- d = jid(a);
- if (!d) {
- c2 = (IEd(), PEd(b));
- d = new s0d(c2);
- wtd(d.Vk(), a);
- }
- return d;
- }
- function Sc(a, b) {
- var c2, d;
- c2 = BD(a.c.Bc(b), 14);
- if (!c2) {
- return a.jc();
- }
- d = a.hc();
- d.Gc(c2);
- a.d -= c2.gc();
- c2.$b();
- return a.mc(d);
- }
- function j7c(a, b) {
- var c2;
- for (c2 = 0; c2 < b.length; c2++) {
- if (a == (BCb(c2, b.length), b.charCodeAt(c2))) {
- return true;
- }
- }
- return false;
- }
- function E_b(a, b) {
- var c2;
- for (c2 = 0; c2 < b.length; c2++) {
- if (a == (BCb(c2, b.length), b.charCodeAt(c2))) {
- return true;
- }
- }
- return false;
- }
- function hFd(a) {
- var b, c2;
- if (a == null)
- return false;
- for (b = 0, c2 = a.length; b < c2; b++) {
- if (!gFd(a[b]))
- return false;
- }
- return true;
- }
- function Ngb(a) {
- var b;
- if (a.c != 0) {
- return a.c;
- }
- for (b = 0; b < a.a.length; b++) {
- a.c = a.c * 33 + (a.a[b] & -1);
- }
- a.c = a.c * a.e;
- return a.c;
- }
- function vkb(a) {
- var b;
- sCb(a.a != a.b);
- b = a.d.a[a.a];
- mkb(a.b == a.d.c && b != null);
- a.c = a.a;
- a.a = a.a + 1 & a.d.a.length - 1;
- return b;
- }
- function phe(a) {
- var b;
- if (!(a.c.c < 0 ? a.a >= a.c.b : a.a <= a.c.b)) {
- throw vbb(new utb());
- }
- b = a.a;
- a.a += a.c.c;
- ++a.b;
- return meb(b);
- }
- function BWb(a) {
- var b;
- b = new VWb(a);
- rXb(a.a, zWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [b])));
- !!b.d && Ekb(b.f, b.d);
- return b.f;
- }
- function Z1b(a) {
- var b;
- b = new q_b(a.a);
- tNb(b, a);
- yNb(b, (wtc(), $sc), a);
- b.o.a = a.g;
- b.o.b = a.f;
- b.n.a = a.i;
- b.n.b = a.j;
- return b;
- }
- function A9b(a, b, c2, d) {
- var e, f2;
- for (f2 = a.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 70);
- e.n.a = b.a + (d.a - e.o.a) / 2;
- e.n.b = b.b;
- b.b += e.o.b + c2;
- }
- }
- function UDb(a, b, c2) {
- var d, e;
- for (e = b.a.a.ec().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 57);
- if (VDb(a, d, c2)) {
- return true;
- }
- }
- return false;
- }
- function JDc(a) {
- var b, c2;
- for (c2 = new olb(a.r); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- if (a.n[b.p] <= 0) {
- return b;
- }
}
- return null;
- }
- function cVc(a) {
- var b, c2, d, e;
- e = new Tqb();
- for (d = new olb(a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 33);
- b = fVc(c2);
- ye(e, b);
- }
- return e;
- }
- function zFc(a) {
- var b;
- b = k3c(xFc);
- BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Krc)) && e3c(b, (qUb(), nUb), (S8b(), H8b));
- return b;
- }
- function qKb(a, b, c2) {
- var d;
- d = new AJb(a, b);
- Rc(a.r, b.Hf(), d);
- if (c2 && !tcd(a.u)) {
- d.c = new aIb(a.d);
- Hkb(b.wf(), new tKb(d));
- }
- }
- function ybb(a, b) {
- var c2;
- if (Fbb(a) && Fbb(b)) {
- c2 = a - b;
- if (!isNaN(c2)) {
- return c2;
- }
- }
- return eD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b);
- }
- function bFd(a, b) {
- return b < a.length && (BCb(b, a.length), a.charCodeAt(b) != 63) && (BCb(b, a.length), a.charCodeAt(b) != 35);
- }
- function Kic(a, b, c2, d) {
- var e, f2;
- a.a = b;
- f2 = d ? 0 : 1;
- a.f = (e = new Iic(a.c, a.a, c2, f2), new jjc(c2, a.a, e, a.e, a.b, a.c == (rGc(), pGc)));
- }
- function Tmd(a, b, c2) {
- var d, e;
- e = a.a;
- a.a = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 1, e, b);
- !c2 ? c2 = d : c2.Ei(d);
- }
- return c2;
- }
- function GQd(a, b, c2) {
- var d, e;
- e = a.b;
- a.b = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 3, e, b);
- !c2 ? c2 = d : c2.Ei(d);
- }
- return c2;
- }
- function IQd(a, b, c2) {
- var d, e;
- e = a.f;
- a.f = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 0, e, b);
- !c2 ? c2 = d : c2.Ei(d);
- }
- return c2;
- }
- function xid(a, b) {
- var c2, d, e, f2;
- f2 = (e = a ? jid(a) : null, q6d((d = b, e ? e.Xk() : null, d)));
- if (f2 == b) {
- c2 = jid(a);
- !!c2 && c2.Xk();
- }
- return f2;
- }
- function x6c(a, b) {
- var c2, d, e;
- e = 1;
- c2 = a;
- d = b >= 0 ? b : -b;
- while (d > 0) {
- if (d % 2 == 0) {
- c2 *= c2;
- d = d / 2 | 0;
+ }, "anonymous"),
+ rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:create\b)/i, /^(?:destroy\b)/i, /^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:par_over\b)/i, /^(?:and\b)/i, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:<<->>)/i, /^(?:-->>)/i, /^(?:<<-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [45, 46], "inclusive": false }, "acc_descr": { "rules": [43], "inclusive": false }, "acc_title": { "rules": [41], "inclusive": false }, "ID": { "rules": [2, 3, 12], "inclusive": false }, "ALIAS": { "rules": [2, 3, 13, 14], "inclusive": false }, "LINE": { "rules": [2, 3, 26], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser12.parser = parser12;
+ sequenceDiagram_default = parser12;
+ }
+ });
+
+ // src/diagrams/sequence/sequenceDb.ts
+ function insertLinks(actor, links3) {
+ if (actor.links == null) {
+ actor.links = links3;
+ } else {
+ for (const key in links3) {
+ actor.links[key] = links3[key];
+ }
+ }
+ }
+ function insertProperties(actor, properties) {
+ if (actor.properties == null) {
+ actor.properties = properties;
+ } else {
+ for (const key in properties) {
+ actor.properties[key] = properties[key];
+ }
+ }
+ }
+ function boxEnd() {
+ state3.records.currentBox = void 0;
+ }
+ var state3, addBox, addActor, activationCount, addMessage, addSignal, hasAtLeastOneBox, hasAtLeastOneBoxWithTitle, getMessages, getBoxes, getActors, getCreatedActors, getDestroyedActors, getActor, getActorKeys, enableSequenceNumbers, disableSequenceNumbers, showSequenceNumbers, setWrap2, extractWrap, autoWrap2, clear17, parseMessage, parseBoxData, LINETYPE2, ARROWTYPE2, PLACEMENT2, addNote, addLinks, addALink, addProperties, addDetails, getActorProperty, apply2, sequenceDb_default;
+ var init_sequenceDb = __esm({
+ "src/diagrams/sequence/sequenceDb.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_logger();
+ init_imperativeState();
+ init_common();
+ init_commonDb();
+ state3 = new ImperativeState(() => ({
+ prevActor: void 0,
+ actors: /* @__PURE__ */ new Map(),
+ createdActors: /* @__PURE__ */ new Map(),
+ destroyedActors: /* @__PURE__ */ new Map(),
+ boxes: [],
+ messages: [],
+ notes: [],
+ sequenceNumbersEnabled: false,
+ wrapEnabled: void 0,
+ currentBox: void 0,
+ lastCreated: void 0,
+ lastDestroyed: void 0
+ }));
+ addBox = /* @__PURE__ */ __name(function(data5) {
+ state3.records.boxes.push({
+ name: data5.text,
+ wrap: data5.wrap ?? autoWrap2(),
+ fill: data5.color,
+ actorKeys: []
+ });
+ state3.records.currentBox = state3.records.boxes.slice(-1)[0];
+ }, "addBox");
+ addActor = /* @__PURE__ */ __name(function(id27, name, description, type3) {
+ let assignedBox = state3.records.currentBox;
+ const old = state3.records.actors.get(id27);
+ if (old) {
+ if (state3.records.currentBox && old.box && state3.records.currentBox !== old.box) {
+ throw new Error(
+ `A same participant should only be defined in one Box: ${old.name} can't be in '${old.box.name}' and in '${state3.records.currentBox.name}' at the same time.`
+ );
+ }
+ assignedBox = old.box ? old.box : state3.records.currentBox;
+ old.box = assignedBox;
+ if (old && name === old.name && description == null) {
+ return;
+ }
+ }
+ if (description?.text == null) {
+ description = { text: name, type: type3 };
+ }
+ if (type3 == null || description.text == null) {
+ description = { text: name, type: type3 };
+ }
+ state3.records.actors.set(id27, {
+ box: assignedBox,
+ name,
+ description: description.text,
+ wrap: description.wrap ?? autoWrap2(),
+ prevActor: state3.records.prevActor,
+ links: {},
+ properties: {},
+ actorCnt: null,
+ rectData: null,
+ type: type3 ?? "participant"
+ });
+ if (state3.records.prevActor) {
+ const prevActorInRecords = state3.records.actors.get(state3.records.prevActor);
+ if (prevActorInRecords) {
+ prevActorInRecords.nextActor = id27;
+ }
+ }
+ if (state3.records.currentBox) {
+ state3.records.currentBox.actorKeys.push(id27);
+ }
+ state3.records.prevActor = id27;
+ }, "addActor");
+ activationCount = /* @__PURE__ */ __name((part) => {
+ let i2;
+ let count = 0;
+ if (!part) {
+ return 0;
+ }
+ for (i2 = 0; i2 < state3.records.messages.length; i2++) {
+ if (state3.records.messages[i2].type === LINETYPE2.ACTIVE_START && state3.records.messages[i2].from === part) {
+ count++;
+ }
+ if (state3.records.messages[i2].type === LINETYPE2.ACTIVE_END && state3.records.messages[i2].from === part) {
+ count--;
+ }
+ }
+ return count;
+ }, "activationCount");
+ addMessage = /* @__PURE__ */ __name(function(idFrom, idTo, message, answer) {
+ state3.records.messages.push({
+ from: idFrom,
+ to: idTo,
+ message: message.text,
+ wrap: message.wrap ?? autoWrap2(),
+ answer
+ });
+ }, "addMessage");
+ addSignal = /* @__PURE__ */ __name(function(idFrom, idTo, message, messageType, activate = false) {
+ if (messageType === LINETYPE2.ACTIVE_END) {
+ const cnt4 = activationCount(idFrom ?? "");
+ if (cnt4 < 1) {
+ const error3 = new Error("Trying to inactivate an inactive participant (" + idFrom + ")");
+ error3.hash = {
+ text: "->>-",
+ token: "->>-",
+ line: "1",
+ loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
+ expected: ["'ACTIVE_PARTICIPANT'"]
+ };
+ throw error3;
+ }
+ }
+ state3.records.messages.push({
+ from: idFrom,
+ to: idTo,
+ message: message?.text ?? "",
+ wrap: message?.wrap ?? autoWrap2(),
+ type: messageType,
+ activate
+ });
+ return true;
+ }, "addSignal");
+ hasAtLeastOneBox = /* @__PURE__ */ __name(function() {
+ return state3.records.boxes.length > 0;
+ }, "hasAtLeastOneBox");
+ hasAtLeastOneBoxWithTitle = /* @__PURE__ */ __name(function() {
+ return state3.records.boxes.some((b2) => b2.name);
+ }, "hasAtLeastOneBoxWithTitle");
+ getMessages = /* @__PURE__ */ __name(function() {
+ return state3.records.messages;
+ }, "getMessages");
+ getBoxes = /* @__PURE__ */ __name(function() {
+ return state3.records.boxes;
+ }, "getBoxes");
+ getActors = /* @__PURE__ */ __name(function() {
+ return state3.records.actors;
+ }, "getActors");
+ getCreatedActors = /* @__PURE__ */ __name(function() {
+ return state3.records.createdActors;
+ }, "getCreatedActors");
+ getDestroyedActors = /* @__PURE__ */ __name(function() {
+ return state3.records.destroyedActors;
+ }, "getDestroyedActors");
+ getActor = /* @__PURE__ */ __name(function(id27) {
+ return state3.records.actors.get(id27);
+ }, "getActor");
+ getActorKeys = /* @__PURE__ */ __name(function() {
+ return [...state3.records.actors.keys()];
+ }, "getActorKeys");
+ enableSequenceNumbers = /* @__PURE__ */ __name(function() {
+ state3.records.sequenceNumbersEnabled = true;
+ }, "enableSequenceNumbers");
+ disableSequenceNumbers = /* @__PURE__ */ __name(function() {
+ state3.records.sequenceNumbersEnabled = false;
+ }, "disableSequenceNumbers");
+ showSequenceNumbers = /* @__PURE__ */ __name(() => state3.records.sequenceNumbersEnabled, "showSequenceNumbers");
+ setWrap2 = /* @__PURE__ */ __name(function(wrapSetting) {
+ state3.records.wrapEnabled = wrapSetting;
+ }, "setWrap");
+ extractWrap = /* @__PURE__ */ __name((text2) => {
+ if (text2 === void 0) {
+ return {};
+ }
+ text2 = text2.trim();
+ const wrap3 = /^:?wrap:/.exec(text2) !== null ? true : /^:?nowrap:/.exec(text2) !== null ? false : void 0;
+ const cleanedText = (wrap3 === void 0 ? text2 : text2.replace(/^:?(?:no)?wrap:/, "")).trim();
+ return { cleanedText, wrap: wrap3 };
+ }, "extractWrap");
+ autoWrap2 = /* @__PURE__ */ __name(() => {
+ if (state3.records.wrapEnabled !== void 0) {
+ return state3.records.wrapEnabled;
+ }
+ return getConfig2().sequence?.wrap ?? false;
+ }, "autoWrap");
+ clear17 = /* @__PURE__ */ __name(function() {
+ state3.reset();
+ clear();
+ }, "clear");
+ parseMessage = /* @__PURE__ */ __name(function(str2) {
+ const trimmedStr = str2.trim();
+ const { wrap: wrap3, cleanedText } = extractWrap(trimmedStr);
+ const message = {
+ text: cleanedText,
+ wrap: wrap3
+ };
+ log.debug(`parseMessage: ${JSON.stringify(message)}`);
+ return message;
+ }, "parseMessage");
+ parseBoxData = /* @__PURE__ */ __name(function(str2) {
+ const match2 = /^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(str2);
+ let color2 = match2?.[1] ? match2[1].trim() : "transparent";
+ let title2 = match2?.[2] ? match2[2].trim() : void 0;
+ if (window?.CSS) {
+ if (!window.CSS.supports("color", color2)) {
+ color2 = "transparent";
+ title2 = str2.trim();
+ }
+ } else {
+ const style3 = new Option().style;
+ style3.color = color2;
+ if (style3.color !== color2) {
+ color2 = "transparent";
+ title2 = str2.trim();
+ }
+ }
+ const { wrap: wrap3, cleanedText } = extractWrap(title2);
+ return {
+ text: cleanedText ? sanitizeText(cleanedText, getConfig2()) : void 0,
+ color: color2,
+ wrap: wrap3
+ };
+ }, "parseBoxData");
+ LINETYPE2 = {
+ SOLID: 0,
+ DOTTED: 1,
+ NOTE: 2,
+ SOLID_CROSS: 3,
+ DOTTED_CROSS: 4,
+ SOLID_OPEN: 5,
+ DOTTED_OPEN: 6,
+ LOOP_START: 10,
+ LOOP_END: 11,
+ ALT_START: 12,
+ ALT_ELSE: 13,
+ ALT_END: 14,
+ OPT_START: 15,
+ OPT_END: 16,
+ ACTIVE_START: 17,
+ ACTIVE_END: 18,
+ PAR_START: 19,
+ PAR_AND: 20,
+ PAR_END: 21,
+ RECT_START: 22,
+ RECT_END: 23,
+ SOLID_POINT: 24,
+ DOTTED_POINT: 25,
+ AUTONUMBER: 26,
+ CRITICAL_START: 27,
+ CRITICAL_OPTION: 28,
+ CRITICAL_END: 29,
+ BREAK_START: 30,
+ BREAK_END: 31,
+ PAR_OVER_START: 32,
+ BIDIRECTIONAL_SOLID: 33,
+ BIDIRECTIONAL_DOTTED: 34
+ };
+ ARROWTYPE2 = {
+ FILLED: 0,
+ OPEN: 1
+ };
+ PLACEMENT2 = {
+ LEFTOF: 0,
+ RIGHTOF: 1,
+ OVER: 2
+ };
+ addNote = /* @__PURE__ */ __name(function(actor, placement, message) {
+ const note3 = {
+ actor,
+ placement,
+ message: message.text,
+ wrap: message.wrap ?? autoWrap2()
+ };
+ const actors2 = [].concat(actor, actor);
+ state3.records.notes.push(note3);
+ state3.records.messages.push({
+ from: actors2[0],
+ to: actors2[1],
+ message: message.text,
+ wrap: message.wrap ?? autoWrap2(),
+ type: LINETYPE2.NOTE,
+ placement
+ });
+ }, "addNote");
+ addLinks = /* @__PURE__ */ __name(function(actorId, text2) {
+ const actor = getActor(actorId);
+ try {
+ let sanitizedText = sanitizeText(text2.text, getConfig2());
+ sanitizedText = sanitizedText.replace(/&/g, "&");
+ sanitizedText = sanitizedText.replace(/=/g, "=");
+ const links3 = JSON.parse(sanitizedText);
+ insertLinks(actor, links3);
+ } catch (e3) {
+ log.error("error while parsing actor link text", e3);
+ }
+ }, "addLinks");
+ addALink = /* @__PURE__ */ __name(function(actorId, text2) {
+ const actor = getActor(actorId);
+ try {
+ const links3 = {};
+ let sanitizedText = sanitizeText(text2.text, getConfig2());
+ const sep2 = sanitizedText.indexOf("@");
+ sanitizedText = sanitizedText.replace(/&/g, "&");
+ sanitizedText = sanitizedText.replace(/=/g, "=");
+ const label = sanitizedText.slice(0, sep2 - 1).trim();
+ const link3 = sanitizedText.slice(sep2 + 1).trim();
+ links3[label] = link3;
+ insertLinks(actor, links3);
+ } catch (e3) {
+ log.error("error while parsing actor link text", e3);
+ }
+ }, "addALink");
+ __name(insertLinks, "insertLinks");
+ addProperties = /* @__PURE__ */ __name(function(actorId, text2) {
+ const actor = getActor(actorId);
+ try {
+ const sanitizedText = sanitizeText(text2.text, getConfig2());
+ const properties = JSON.parse(sanitizedText);
+ insertProperties(actor, properties);
+ } catch (e3) {
+ log.error("error while parsing actor properties text", e3);
+ }
+ }, "addProperties");
+ __name(insertProperties, "insertProperties");
+ __name(boxEnd, "boxEnd");
+ addDetails = /* @__PURE__ */ __name(function(actorId, text2) {
+ const actor = getActor(actorId);
+ const elem = document.getElementById(text2.text);
+ try {
+ const text3 = elem.innerHTML;
+ const details = JSON.parse(text3);
+ if (details.properties) {
+ insertProperties(actor, details.properties);
+ }
+ if (details.links) {
+ insertLinks(actor, details.links);
+ }
+ } catch (e3) {
+ log.error("error while parsing actor details text", e3);
+ }
+ }, "addDetails");
+ getActorProperty = /* @__PURE__ */ __name(function(actor, key) {
+ if (actor?.properties !== void 0) {
+ return actor.properties[key];
+ }
+ return void 0;
+ }, "getActorProperty");
+ apply2 = /* @__PURE__ */ __name(function(param) {
+ if (Array.isArray(param)) {
+ param.forEach(function(item) {
+ apply2(item);
+ });
+ } else {
+ switch (param.type) {
+ case "sequenceIndex":
+ state3.records.messages.push({
+ from: void 0,
+ to: void 0,
+ message: {
+ start: param.sequenceIndex,
+ step: param.sequenceIndexStep,
+ visible: param.sequenceVisible
+ },
+ wrap: false,
+ type: param.signalType
+ });
+ break;
+ case "addParticipant":
+ addActor(param.actor, param.actor, param.description, param.draw);
+ break;
+ case "createParticipant":
+ if (state3.records.actors.has(param.actor)) {
+ throw new Error(
+ "It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior"
+ );
+ }
+ state3.records.lastCreated = param.actor;
+ addActor(param.actor, param.actor, param.description, param.draw);
+ state3.records.createdActors.set(param.actor, state3.records.messages.length);
+ break;
+ case "destroyParticipant":
+ state3.records.lastDestroyed = param.actor;
+ state3.records.destroyedActors.set(param.actor, state3.records.messages.length);
+ break;
+ case "activeStart":
+ addSignal(param.actor, void 0, void 0, param.signalType);
+ break;
+ case "activeEnd":
+ addSignal(param.actor, void 0, void 0, param.signalType);
+ break;
+ case "addNote":
+ addNote(param.actor, param.placement, param.text);
+ break;
+ case "addLinks":
+ addLinks(param.actor, param.text);
+ break;
+ case "addALink":
+ addALink(param.actor, param.text);
+ break;
+ case "addProperties":
+ addProperties(param.actor, param.text);
+ break;
+ case "addDetails":
+ addDetails(param.actor, param.text);
+ break;
+ case "addMessage":
+ if (state3.records.lastCreated) {
+ if (param.to !== state3.records.lastCreated) {
+ throw new Error(
+ "The created participant " + state3.records.lastCreated.name + " does not have an associated creating message after its declaration. Please check the sequence diagram."
+ );
} else {
- e *= c2;
- d -= 1;
+ state3.records.lastCreated = void 0;
}
- }
- return b < 0 ? 1 / e : e;
- }
- function y6c(a, b) {
- var c2, d, e;
- e = 1;
- c2 = a;
- d = b >= 0 ? b : -b;
- while (d > 0) {
- if (d % 2 == 0) {
- c2 *= c2;
- d = d / 2 | 0;
+ } else if (state3.records.lastDestroyed) {
+ if (param.to !== state3.records.lastDestroyed && param.from !== state3.records.lastDestroyed) {
+ throw new Error(
+ "The destroyed participant " + state3.records.lastDestroyed.name + " does not have an associated destroying message after its declaration. Please check the sequence diagram."
+ );
} else {
- e *= c2;
- d -= 1;
- }
- }
- return b < 0 ? 1 / e : e;
- }
- function sAd(a) {
- var b, c2;
- if (a != null) {
- for (c2 = 0; c2 < a.length; ++c2) {
- b = a[c2];
- if (b) {
- BD(b.g, 367);
- b.i;
- }
+ state3.records.lastDestroyed = void 0;
}
}
+ addSignal(param.from, param.to, param.msg, param.signalType, param.activate);
+ break;
+ case "boxStart":
+ addBox(param.boxData);
+ break;
+ case "boxEnd":
+ boxEnd();
+ break;
+ case "loopStart":
+ addSignal(void 0, void 0, param.loopText, param.signalType);
+ break;
+ case "loopEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "rectStart":
+ addSignal(void 0, void 0, param.color, param.signalType);
+ break;
+ case "rectEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "optStart":
+ addSignal(void 0, void 0, param.optText, param.signalType);
+ break;
+ case "optEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "altStart":
+ addSignal(void 0, void 0, param.altText, param.signalType);
+ break;
+ case "else":
+ addSignal(void 0, void 0, param.altText, param.signalType);
+ break;
+ case "altEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "setAccTitle":
+ setAccTitle(param.text);
+ break;
+ case "parStart":
+ addSignal(void 0, void 0, param.parText, param.signalType);
+ break;
+ case "and":
+ addSignal(void 0, void 0, param.parText, param.signalType);
+ break;
+ case "parEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "criticalStart":
+ addSignal(void 0, void 0, param.criticalText, param.signalType);
+ break;
+ case "option":
+ addSignal(void 0, void 0, param.optionText, param.signalType);
+ break;
+ case "criticalEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ case "breakStart":
+ addSignal(void 0, void 0, param.breakText, param.signalType);
+ break;
+ case "breakEnd":
+ addSignal(void 0, void 0, void 0, param.signalType);
+ break;
+ }
+ }
+ }, "apply");
+ sequenceDb_default = {
+ addActor,
+ addMessage,
+ addSignal,
+ addLinks,
+ addDetails,
+ addProperties,
+ autoWrap: autoWrap2,
+ setWrap: setWrap2,
+ enableSequenceNumbers,
+ disableSequenceNumbers,
+ showSequenceNumbers,
+ getMessages,
+ getActors,
+ getCreatedActors,
+ getDestroyedActors,
+ getActor,
+ getActorKeys,
+ getActorProperty,
+ getAccTitle,
+ getBoxes,
+ getDiagramTitle,
+ setDiagramTitle,
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().sequence, "getConfig"),
+ clear: clear17,
+ parseMessage,
+ parseBoxData,
+ LINETYPE: LINETYPE2,
+ ARROWTYPE: ARROWTYPE2,
+ PLACEMENT: PLACEMENT2,
+ addNote,
+ setAccTitle,
+ apply: apply2,
+ setAccDescription,
+ getAccDescription,
+ hasAtLeastOneBox,
+ hasAtLeastOneBoxWithTitle
+ };
+ }
+ });
+
+ // src/diagrams/sequence/styles.js
+ var getStyles9, styles_default8;
+ var init_styles8 = __esm({
+ "src/diagrams/sequence/styles.js"() {
+ "use strict";
+ getStyles9 = /* @__PURE__ */ __name((options3) => `.actor {
+ stroke: ${options3.actorBorder};
+ fill: ${options3.actorBkg};
+ }
+
+ text.actor > tspan {
+ fill: ${options3.actorTextColor};
+ stroke: none;
+ }
+
+ .actor-line {
+ stroke: ${options3.actorLineColor};
+ }
+
+ .messageLine0 {
+ stroke-width: 1.5;
+ stroke-dasharray: none;
+ stroke: ${options3.signalColor};
+ }
+
+ .messageLine1 {
+ stroke-width: 1.5;
+ stroke-dasharray: 2, 2;
+ stroke: ${options3.signalColor};
+ }
+
+ #arrowhead path {
+ fill: ${options3.signalColor};
+ stroke: ${options3.signalColor};
+ }
+
+ .sequenceNumber {
+ fill: ${options3.sequenceNumberColor};
+ }
+
+ #sequencenumber {
+ fill: ${options3.signalColor};
+ }
+
+ #crosshead path {
+ fill: ${options3.signalColor};
+ stroke: ${options3.signalColor};
+ }
+
+ .messageText {
+ fill: ${options3.signalTextColor};
+ stroke: none;
+ }
+
+ .labelBox {
+ stroke: ${options3.labelBoxBorderColor};
+ fill: ${options3.labelBoxBkgColor};
+ }
+
+ .labelText, .labelText > tspan {
+ fill: ${options3.labelTextColor};
+ stroke: none;
+ }
+
+ .loopText, .loopText > tspan {
+ fill: ${options3.loopTextColor};
+ stroke: none;
+ }
+
+ .loopLine {
+ stroke-width: 2px;
+ stroke-dasharray: 2, 2;
+ stroke: ${options3.labelBoxBorderColor};
+ fill: ${options3.labelBoxBorderColor};
+ }
+
+ .note {
+ //stroke: #decc93;
+ stroke: ${options3.noteBorderColor};
+ fill: ${options3.noteBkgColor};
+ }
+
+ .noteText, .noteText > tspan {
+ fill: ${options3.noteTextColor};
+ stroke: none;
+ }
+
+ .activation0 {
+ fill: ${options3.activationBkgColor};
+ stroke: ${options3.activationBorderColor};
+ }
+
+ .activation1 {
+ fill: ${options3.activationBkgColor};
+ stroke: ${options3.activationBorderColor};
+ }
+
+ .activation2 {
+ fill: ${options3.activationBkgColor};
+ stroke: ${options3.activationBorderColor};
+ }
+
+ .actorPopupMenu {
+ position: absolute;
+ }
+
+ .actorPopupMenuPanel {
+ position: absolute;
+ fill: ${options3.actorBkg};
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+ filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
+}
+ .actor-man line {
+ stroke: ${options3.actorBorder};
+ fill: ${options3.actorBkg};
+ }
+ .actor-man circle, line {
+ stroke: ${options3.actorBorder};
+ fill: ${options3.actorBkg};
+ stroke-width: 2px;
+ }
+`, "getStyles");
+ styles_default8 = getStyles9;
+ }
+ });
+
+ // src/diagrams/sequence/svgDraw.js
+ var import_sanitize_url5, ACTOR_TYPE_WIDTH, TOP_ACTOR_CLASS, BOTTOM_ACTOR_CLASS, ACTOR_BOX_CLASS, ACTOR_MAN_FIGURE_CLASS, drawRect4, drawPopup, popupMenuToggle, drawKatex, drawText3, drawLabel, actorCnt, fixLifeLineHeights, drawActorTypeParticipant, drawActorTypeActor, drawActor, drawBox, anchorElement, drawActivation, drawLoop, drawBackgroundRect2, insertDatabaseIcon2, insertComputerIcon2, insertClockIcon2, insertArrowHead2, insertArrowFilledHead2, insertSequenceNumber, insertArrowCrossHead2, getTextObj3, getNoteRect2, _drawTextCandidateFunc2, _drawMenuItemTextCandidateFunc, svgDraw_default2;
+ var init_svgDraw2 = __esm({
+ "src/diagrams/sequence/svgDraw.js"() {
+ "use strict";
+ init_common();
+ init_svgDrawCommon();
+ init_utils2();
+ import_sanitize_url5 = __toESM(require_dist(), 1);
+ init_config();
+ ACTOR_TYPE_WIDTH = 18 * 2;
+ TOP_ACTOR_CLASS = "actor-top";
+ BOTTOM_ACTOR_CLASS = "actor-bottom";
+ ACTOR_BOX_CLASS = "actor-box";
+ ACTOR_MAN_FIGURE_CLASS = "actor-man";
+ drawRect4 = /* @__PURE__ */ __name(function(elem, rectData) {
+ return drawRect(elem, rectData);
+ }, "drawRect");
+ drawPopup = /* @__PURE__ */ __name(function(elem, actor, minMenuWidth, textAttrs, forceMenus) {
+ if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {
+ return { height: 0, width: 0 };
+ }
+ const links3 = actor.links;
+ const actorCnt2 = actor.actorCnt;
+ const rectData = actor.rectData;
+ var displayValue = "none";
+ if (forceMenus) {
+ displayValue = "block !important";
+ }
+ const g2 = elem.append("g");
+ g2.attr("id", "actor" + actorCnt2 + "_popup");
+ g2.attr("class", "actorPopupMenu");
+ g2.attr("display", displayValue);
+ var actorClass = "";
+ if (rectData.class !== void 0) {
+ actorClass = " " + rectData.class;
+ }
+ let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;
+ const rectElem = g2.append("rect");
+ rectElem.attr("class", "actorPopupMenuPanel" + actorClass);
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.height);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", menuWidth);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (links3 != null) {
+ var linkY = 20;
+ for (let key in links3) {
+ var linkElem = g2.append("a");
+ var sanitizedLink = (0, import_sanitize_url5.sanitizeUrl)(links3[key]);
+ linkElem.attr("xlink:href", sanitizedLink);
+ linkElem.attr("target", "_blank");
+ _drawMenuItemTextCandidateFunc(textAttrs)(
+ key,
+ linkElem,
+ rectData.x + 10,
+ rectData.height + linkY,
+ menuWidth,
+ 20,
+ { class: "actor" },
+ textAttrs
+ );
+ linkY += 30;
+ }
+ }
+ rectElem.attr("height", linkY);
+ return { height: rectData.height + linkY, width: menuWidth };
+ }, "drawPopup");
+ popupMenuToggle = /* @__PURE__ */ __name(function(popId) {
+ return "var pu = document.getElementById('" + popId + "'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }";
+ }, "popupMenuToggle");
+ drawKatex = /* @__PURE__ */ __name(async function(elem, textData, msgModel = null) {
+ let textElem = elem.append("foreignObject");
+ const lines = await renderKatex(textData.text, getConfig());
+ const divElem = textElem.append("xhtml:div").attr("style", "width: fit-content;").attr("xmlns", "http://www.w3.org/1999/xhtml").html(lines);
+ const dim = divElem.node().getBoundingClientRect();
+ textElem.attr("height", Math.round(dim.height)).attr("width", Math.round(dim.width));
+ if (textData.class === "noteText") {
+ const rectElem = elem.node().firstChild;
+ rectElem.setAttribute("height", dim.height + 2 * textData.textMargin);
+ const rectDim = rectElem.getBBox();
+ textElem.attr("x", Math.round(rectDim.x + rectDim.width / 2 - dim.width / 2)).attr("y", Math.round(rectDim.y + rectDim.height / 2 - dim.height / 2));
+ } else if (msgModel) {
+ let { startx, stopx, starty } = msgModel;
+ if (startx > stopx) {
+ const temp = startx;
+ startx = stopx;
+ stopx = temp;
+ }
+ textElem.attr("x", Math.round(startx + Math.abs(startx - stopx) / 2 - dim.width / 2));
+ if (textData.class === "loopText") {
+ textElem.attr("y", Math.round(starty));
+ } else {
+ textElem.attr("y", Math.round(starty - dim.height));
+ }
+ }
+ return [textElem];
+ }, "drawKatex");
+ drawText3 = /* @__PURE__ */ __name(function(elem, textData) {
+ let prevTextHeight = 0;
+ let textHeight = 0;
+ const lines = textData.text.split(common_default.lineBreakRegex);
+ const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);
+ let textElems = [];
+ let dy = 0;
+ let yfunc = /* @__PURE__ */ __name(() => textData.y, "yfunc");
+ if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
+ switch (textData.valign) {
+ case "top":
+ case "start":
+ yfunc = /* @__PURE__ */ __name(() => Math.round(textData.y + textData.textMargin), "yfunc");
+ break;
+ case "middle":
+ case "center":
+ yfunc = /* @__PURE__ */ __name(() => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2), "yfunc");
+ break;
+ case "bottom":
+ case "end":
+ yfunc = /* @__PURE__ */ __name(() => Math.round(
+ textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin
+ ), "yfunc");
+ break;
+ }
+ }
+ if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {
+ switch (textData.anchor) {
+ case "left":
+ case "start":
+ textData.x = Math.round(textData.x + textData.textMargin);
+ textData.anchor = "start";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ case "middle":
+ case "center":
+ textData.x = Math.round(textData.x + textData.width / 2);
+ textData.anchor = "middle";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ case "right":
+ case "end":
+ textData.x = Math.round(textData.x + textData.width - textData.textMargin);
+ textData.anchor = "end";
+ textData.dominantBaseline = "middle";
+ textData.alignmentBaseline = "middle";
+ break;
+ }
+ }
+ for (let [i2, line2] of lines.entries()) {
+ if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {
+ dy = i2 * _textFontSize;
+ }
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", yfunc());
+ if (textData.anchor !== void 0) {
+ textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline);
+ }
+ if (textData.fontFamily !== void 0) {
+ textElem.style("font-family", textData.fontFamily);
+ }
+ if (_textFontSizePx !== void 0) {
+ textElem.style("font-size", _textFontSizePx);
+ }
+ if (textData.fontWeight !== void 0) {
+ textElem.style("font-weight", textData.fontWeight);
+ }
+ if (textData.fill !== void 0) {
+ textElem.attr("fill", textData.fill);
+ }
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ if (textData.dy !== void 0) {
+ textElem.attr("dy", textData.dy);
+ } else if (dy !== 0) {
+ textElem.attr("dy", dy);
+ }
+ const text2 = line2 || ZERO_WIDTH_SPACE;
+ if (textData.tspan) {
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x);
+ if (textData.fill !== void 0) {
+ span.attr("fill", textData.fill);
}
- function YZc(a) {
- var b, c2, d;
- d = 0;
- for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 187);
- d = $wnd.Math.max(d, b.g);
- }
- return d;
- }
- function eGc(a) {
- var b, c2, d;
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 214);
- b = c2.c.Rf() ? c2.f : c2.a;
- !!b && mHc(b, c2.j);
- }
- }
- function hbd() {
- hbd = ccb;
- fbd = new ibd("INHERIT", 0);
- ebd = new ibd("INCLUDE_CHILDREN", 1);
- gbd = new ibd("SEPARATE_CHILDREN", 2);
- }
- function Jkd(a, b) {
- switch (b) {
- case 1:
- !a.n && (a.n = new cUd(D2, a, 1, 7));
- Uxd(a.n);
- return;
- case 2:
- Lkd(a, null);
- return;
- }
- fkd(a, b);
- }
- function Dm(a) {
- var b;
- switch (a.gc()) {
- case 0:
- return hm;
- case 1:
- return new my(Qb(a.Xb(0)));
- default:
- b = a;
- return new ux(b);
- }
- }
- function Vn(a) {
- Ql();
- switch (a.gc()) {
- case 0:
- return yx(), xx;
- case 1:
- return new oy(a.Kc().Pb());
- default:
- return new zx(a);
- }
- }
- function Up(a) {
- Ql();
- switch (a.c) {
- case 0:
- return yx(), xx;
- case 1:
- return new oy(qr(new Gqb(a)));
- default:
- return new Tp(a);
- }
- }
- function Hv(b, c2) {
- Qb(b);
- try {
- return b.xc(c2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 205) || JD(a, 173)) {
- return null;
- } else
- throw vbb(a);
- }
- }
- function Iv(b, c2) {
- Qb(b);
- try {
- return b.Bc(c2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 205) || JD(a, 173)) {
- return null;
- } else
- throw vbb(a);
- }
- }
- function Ck(b, c2) {
- Qb(b);
- try {
- return b.Hc(c2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 205) || JD(a, 173)) {
- return false;
- } else
- throw vbb(a);
- }
- }
- function Dk(b, c2) {
- Qb(b);
- try {
- return b.Mc(c2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 205) || JD(a, 173)) {
- return false;
- } else
- throw vbb(a);
+ span.text(text2);
+ } else {
+ textElem.text(text2);
+ }
+ if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
+ textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
+ prevTextHeight = textHeight;
+ }
+ textElems.push(textElem);
+ }
+ return textElems;
+ }, "drawText");
+ drawLabel = /* @__PURE__ */ __name(function(elem, txtObject) {
+ function genPoints(x5, y5, width3, height2, cut) {
+ return x5 + "," + y5 + " " + (x5 + width3) + "," + y5 + " " + (x5 + width3) + "," + (y5 + height2 - cut) + " " + (x5 + width3 - cut * 1.2) + "," + (y5 + height2) + " " + x5 + "," + (y5 + height2);
+ }
+ __name(genPoints, "genPoints");
+ const polygon2 = elem.append("polygon");
+ polygon2.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
+ polygon2.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.height / 2;
+ drawText3(elem, txtObject);
+ return polygon2;
+ }, "drawLabel");
+ actorCnt = -1;
+ fixLifeLineHeights = /* @__PURE__ */ __name((diagram24, actors2, actorKeys, conf8) => {
+ if (!diagram24.select) {
+ return;
+ }
+ actorKeys.forEach((actorKey) => {
+ const actor = actors2.get(actorKey);
+ const actorDOM = diagram24.select("#actor" + actor.actorCnt);
+ if (!conf8.mirrorActors && actor.stopy) {
+ actorDOM.attr("y2", actor.stopy + actor.height / 2);
+ } else if (conf8.mirrorActors) {
+ actorDOM.attr("y2", actor.stopy);
+ }
+ });
+ }, "fixLifeLineHeights");
+ drawActorTypeParticipant = /* @__PURE__ */ __name(function(elem, actor, conf8, isFooter) {
+ const actorY = isFooter ? actor.stopy : actor.starty;
+ const center4 = actor.x + actor.width / 2;
+ const centerY = actorY + 5;
+ const boxplusLineGroup = elem.append("g").lower();
+ var g2 = boxplusLineGroup;
+ if (!isFooter) {
+ actorCnt++;
+ if (Object.keys(actor.links || {}).length && !conf8.forceMenus) {
+ g2.attr("onclick", popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor", "pointer");
+ }
+ g2.append("line").attr("id", "actor" + actorCnt).attr("x1", center4).attr("y1", centerY).attr("x2", center4).attr("y2", 2e3).attr("class", "actor-line 200").attr("stroke-width", "0.5px").attr("stroke", "#999").attr("name", actor.name);
+ g2 = boxplusLineGroup.append("g");
+ actor.actorCnt = actorCnt;
+ if (actor.links != null) {
+ g2.attr("id", "root-" + actorCnt);
+ }
+ }
+ const rect4 = getNoteRect();
+ var cssclass = "actor";
+ if (actor.properties?.class) {
+ cssclass = actor.properties.class;
+ } else {
+ rect4.fill = "#eaeaea";
+ }
+ if (isFooter) {
+ cssclass += ` ${BOTTOM_ACTOR_CLASS}`;
+ } else {
+ cssclass += ` ${TOP_ACTOR_CLASS}`;
+ }
+ rect4.x = actor.x;
+ rect4.y = actorY;
+ rect4.width = actor.width;
+ rect4.height = actor.height;
+ rect4.class = cssclass;
+ rect4.rx = 3;
+ rect4.ry = 3;
+ rect4.name = actor.name;
+ const rectElem = drawRect4(g2, rect4);
+ actor.rectData = rect4;
+ if (actor.properties?.icon) {
+ const iconSrc = actor.properties.icon.trim();
+ if (iconSrc.charAt(0) === "@") {
+ drawEmbeddedImage(g2, rect4.x + rect4.width - 20, rect4.y + 10, iconSrc.substr(1));
+ } else {
+ drawImage(g2, rect4.x + rect4.width - 20, rect4.y + 10, iconSrc);
+ }
+ }
+ _drawTextCandidateFunc2(conf8, hasKatex(actor.description))(
+ actor.description,
+ g2,
+ rect4.x,
+ rect4.y,
+ rect4.width,
+ rect4.height,
+ { class: `actor ${ACTOR_BOX_CLASS}` },
+ conf8
+ );
+ let height2 = actor.height;
+ if (rectElem.node) {
+ const bounds4 = rectElem.node().getBBox();
+ actor.height = bounds4.height;
+ height2 = bounds4.height;
+ }
+ return height2;
+ }, "drawActorTypeParticipant");
+ drawActorTypeActor = /* @__PURE__ */ __name(function(elem, actor, conf8, isFooter) {
+ const actorY = isFooter ? actor.stopy : actor.starty;
+ const center4 = actor.x + actor.width / 2;
+ const centerY = actorY + 80;
+ const line2 = elem.append("g").lower();
+ if (!isFooter) {
+ actorCnt++;
+ line2.append("line").attr("id", "actor" + actorCnt).attr("x1", center4).attr("y1", centerY).attr("x2", center4).attr("y2", 2e3).attr("class", "actor-line 200").attr("stroke-width", "0.5px").attr("stroke", "#999").attr("name", actor.name);
+ actor.actorCnt = actorCnt;
+ }
+ const actElem = elem.append("g");
+ let cssClass = ACTOR_MAN_FIGURE_CLASS;
+ if (isFooter) {
+ cssClass += ` ${BOTTOM_ACTOR_CLASS}`;
+ } else {
+ cssClass += ` ${TOP_ACTOR_CLASS}`;
+ }
+ actElem.attr("class", cssClass);
+ actElem.attr("name", actor.name);
+ const rect4 = getNoteRect();
+ rect4.x = actor.x;
+ rect4.y = actorY;
+ rect4.fill = "#eaeaea";
+ rect4.width = actor.width;
+ rect4.height = actor.height;
+ rect4.class = "actor";
+ rect4.rx = 3;
+ rect4.ry = 3;
+ actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center4).attr("y1", actorY + 25).attr("x2", center4).attr("y2", actorY + 45);
+ actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center4 - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 33).attr("x2", center4 + ACTOR_TYPE_WIDTH / 2).attr("y2", actorY + 33);
+ actElem.append("line").attr("x1", center4 - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 60).attr("x2", center4).attr("y2", actorY + 45);
+ actElem.append("line").attr("x1", center4).attr("y1", actorY + 45).attr("x2", center4 + ACTOR_TYPE_WIDTH / 2 - 2).attr("y2", actorY + 60);
+ const circle6 = actElem.append("circle");
+ circle6.attr("cx", actor.x + actor.width / 2);
+ circle6.attr("cy", actorY + 10);
+ circle6.attr("r", 15);
+ circle6.attr("width", actor.width);
+ circle6.attr("height", actor.height);
+ const bounds4 = actElem.node().getBBox();
+ actor.height = bounds4.height;
+ _drawTextCandidateFunc2(conf8, hasKatex(actor.description))(
+ actor.description,
+ actElem,
+ rect4.x,
+ rect4.y + 35,
+ rect4.width,
+ rect4.height,
+ { class: `actor ${ACTOR_MAN_FIGURE_CLASS}` },
+ conf8
+ );
+ return actor.height;
+ }, "drawActorTypeActor");
+ drawActor = /* @__PURE__ */ __name(async function(elem, actor, conf8, isFooter) {
+ switch (actor.type) {
+ case "actor":
+ return await drawActorTypeActor(elem, actor, conf8, isFooter);
+ case "participant":
+ return await drawActorTypeParticipant(elem, actor, conf8, isFooter);
+ }
+ }, "drawActor");
+ drawBox = /* @__PURE__ */ __name(function(elem, box, conf8) {
+ const boxplusTextGroup = elem.append("g");
+ const g2 = boxplusTextGroup;
+ drawBackgroundRect2(g2, box);
+ if (box.name) {
+ _drawTextCandidateFunc2(conf8)(
+ box.name,
+ g2,
+ box.x,
+ box.y + (box.textMaxHeight || 0) / 2,
+ box.width,
+ 0,
+ { class: "text" },
+ conf8
+ );
+ }
+ g2.lower();
+ }, "drawBox");
+ anchorElement = /* @__PURE__ */ __name(function(elem) {
+ return elem.append("g");
+ }, "anchorElement");
+ drawActivation = /* @__PURE__ */ __name(function(elem, bounds4, verticalPos, conf8, actorActivations2) {
+ const rect4 = getNoteRect();
+ const g2 = bounds4.anchored;
+ rect4.x = bounds4.startx;
+ rect4.y = bounds4.starty;
+ rect4.class = "activation" + actorActivations2 % 3;
+ rect4.width = bounds4.stopx - bounds4.startx;
+ rect4.height = verticalPos - bounds4.starty;
+ drawRect4(g2, rect4);
+ }, "drawActivation");
+ drawLoop = /* @__PURE__ */ __name(async function(elem, loopModel, labelText, conf8) {
+ const {
+ boxMargin,
+ boxTextMargin,
+ labelBoxHeight,
+ labelBoxWidth,
+ messageFontFamily: fontFamily,
+ messageFontSize: fontSize,
+ messageFontWeight: fontWeight
+ } = conf8;
+ const g2 = elem.append("g");
+ const drawLoopLine = /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {
+ return g2.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine");
+ }, "drawLoopLine");
+ drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
+ drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
+ drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
+ drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
+ if (loopModel.sections !== void 0) {
+ loopModel.sections.forEach(function(item) {
+ drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(
+ "stroke-dasharray",
+ "3, 3"
+ );
+ });
+ }
+ let txt = getTextObj();
+ txt.text = labelText;
+ txt.x = loopModel.startx;
+ txt.y = loopModel.starty;
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.tspan = false;
+ txt.width = labelBoxWidth || 50;
+ txt.height = labelBoxHeight || 20;
+ txt.textMargin = boxTextMargin;
+ txt.class = "labelText";
+ drawLabel(g2, txt);
+ txt = getTextObj3();
+ txt.text = loopModel.title;
+ txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
+ txt.y = loopModel.starty + boxMargin + boxTextMargin;
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.textMargin = boxTextMargin;
+ txt.class = "loopText";
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.wrap = true;
+ let textElem = hasKatex(txt.text) ? await drawKatex(g2, txt, loopModel) : drawText3(g2, txt);
+ if (loopModel.sectionTitles !== void 0) {
+ for (const [idx, item] of Object.entries(loopModel.sectionTitles)) {
+ if (item.message) {
+ txt.text = item.message;
+ txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
+ txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
+ txt.class = "loopText";
+ txt.anchor = "middle";
+ txt.valign = "middle";
+ txt.tspan = false;
+ txt.fontFamily = fontFamily;
+ txt.fontSize = fontSize;
+ txt.fontWeight = fontWeight;
+ txt.wrap = loopModel.wrap;
+ if (hasKatex(txt.text)) {
+ loopModel.starty = loopModel.sections[idx].y;
+ await drawKatex(g2, txt, loopModel);
+ } else {
+ drawText3(g2, txt);
}
+ let sectionHeight = Math.round(
+ textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
+ );
+ loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
}
- function Gv(b, c2) {
- Qb(b);
- try {
- return b._b(c2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 205) || JD(a, 173)) {
- return false;
- } else
- throw vbb(a);
- }
- }
- function KXb(a, b) {
- var c2;
- if (a.a.c.length > 0) {
- c2 = BD(Ikb(a.a, a.a.c.length - 1), 570);
- if (NYb(c2, b)) {
- return;
- }
- }
- Ekb(a.a, new PYb(b));
- }
- function $gc(a) {
- Hgc();
- var b, c2;
- b = a.d.c - a.e.c;
- c2 = BD(a.g, 145);
- Hkb(c2.b, new shc(b));
- Hkb(c2.c, new uhc(b));
- reb(c2.i, new whc(b));
- }
- function gic(a) {
- var b;
- b = new Ufb();
- b.a += "VerticalSegment ";
- Pfb(b, a.e);
- b.a += " ";
- Qfb(b, Eb(new Gb(), new olb(a.k)));
- return b.a;
- }
- function u4c(a) {
- var b;
- b = BD(Wrb(a.c.c, ""), 229);
- if (!b) {
- b = new W3c(d4c(c4c(new e4c(), ""), "Other"));
- Xrb(a.c.c, "", b);
- }
- return b;
- }
- function qnd(a) {
- var b;
- if ((a.Db & 64) != 0)
- return Eid(a);
- b = new Jfb(Eid(a));
- b.a += " (name: ";
- Efb(b, a.zb);
- b.a += ")";
- return b.a;
- }
- function Jnd(a, b, c2) {
- var d, e;
- e = a.sb;
- a.sb = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 4, e, b);
- !c2 ? c2 = d : c2.Ei(d);
- }
- return c2;
- }
- function _ic(a, b) {
- var c2, d, e;
- c2 = 0;
- for (e = V_b(a, b).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 11);
- c2 += vNb(d, (wtc(), gtc)) != null ? 1 : 0;
- }
- return c2;
- }
- function vPc(a, b, c2) {
- var d, e, f2;
- d = 0;
- for (f2 = Jsb(a, 0); f2.b != f2.d.c; ) {
- e = Edb(ED(Xsb(f2)));
- if (e > c2) {
- break;
- } else
- e >= b && ++d;
- }
- return d;
- }
- function RTd(a, b, c2) {
- var d, e;
- d = new pSd(a.e, 3, 13, null, (e = b.c, e ? e : (jGd(), YFd)), HLd(a, b), false);
- !c2 ? c2 = d : c2.Ei(d);
- return c2;
- }
- function STd(a, b, c2) {
- var d, e;
- d = new pSd(a.e, 4, 13, (e = b.c, e ? e : (jGd(), YFd)), null, HLd(a, b), false);
- !c2 ? c2 = d : c2.Ei(d);
- return c2;
- }
- function zId(a, b, c2) {
- var d, e;
- e = a.r;
- a.r = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 8, e, a.r);
- !c2 ? c2 = d : c2.Ei(d);
- }
- return c2;
- }
- function o1d(a, b) {
- var c2, d;
- c2 = BD(b, 676);
- d = c2.vk();
- !d && c2.wk(d = JD(b, 88) ? new C1d(a, BD(b, 26)) : new O1d(a, BD(b, 148)));
- return d;
- }
- function kud(a, b, c2) {
- var d;
- a.qi(a.i + 1);
- d = a.oi(b, c2);
- b != a.i && $fb(a.g, b, a.g, b + 1, a.i - b);
- NC(a.g, b, d);
- ++a.i;
- a.bi(b, c2);
- a.ci();
- }
- function vwb(a, b) {
- var c2;
- if (b.a) {
- c2 = b.a.a.length;
- !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b);
- Ofb(a.a, b.a, b.d.length, c2);
- }
- return a;
- }
- function __d(a, b) {
- var c2, d, e, f2;
- b.vi(a.a);
- f2 = BD(Ajd(a.a, 8), 1936);
- if (f2 != null) {
- for (c2 = f2, d = 0, e = c2.length; d < e; ++d) {
- null.jm();
- }
- }
- }
- function TAb(a, b) {
- var c2;
- c2 = new NBb();
- if (!a.a.sd(c2)) {
- Tzb(a);
- return Atb(), Atb(), ztb;
- }
- return Atb(), new Ftb(uCb(SAb(a, c2.a, b)));
- }
- function CHc(a, b) {
- switch (b.g) {
- case 2:
- case 1:
- return V_b(a, b);
- case 3:
- case 4:
- return Su(V_b(a, b));
- }
- return mmb(), mmb(), jmb;
- }
- function pb(a, b) {
- return ND(a) ? dfb(a, b) : LD(a) ? Fdb(a, b) : KD(a) ? (uCb(a), PD(a) === PD(b)) : ID(a) ? a.Fb(b) : MC(a) ? mb(a, b) : qz(a, b);
- }
- function r6d(a) {
- return !a ? null : (a.i & 1) != 0 ? a == sbb ? wI : a == WD ? JI : a == VD ? FI : a == UD ? BI : a == XD ? MI : a == rbb ? UI : a == SD ? xI : yI : a;
- }
- function Fhb(a, b, c2, d, e) {
- if (b == 0 || d == 0) {
- return;
- }
- b == 1 ? e[d] = Hhb(e, c2, d, a[0]) : d == 1 ? e[b] = Hhb(e, a, b, c2[0]) : Ghb(a, c2, e, b, d);
- }
- function c6b(a, b) {
- var c2;
- if (a.c.length == 0) {
- return;
- }
- c2 = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
- Nlb(c2, new o6b());
- _5b(c2, b);
- }
- function i6b(a, b) {
- var c2;
- if (a.c.length == 0) {
- return;
+ }
+ }
+ loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
+ return g2;
+ }, "drawLoop");
+ drawBackgroundRect2 = /* @__PURE__ */ __name(function(elem, bounds4) {
+ drawBackgroundRect(elem, bounds4);
+ }, "drawBackgroundRect");
+ insertDatabaseIcon2 = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
+ );
+ }, "insertDatabaseIcon");
+ insertComputerIcon2 = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
+ );
+ }, "insertComputerIcon");
+ insertClockIcon2 = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
+ "d",
+ "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
+ );
+ }, "insertClockIcon");
+ insertArrowHead2 = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 7.9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto-start-reverse").append("path").attr("d", "M -1 0 L 10 5 L 0 10 z");
+ }, "insertArrowHead");
+ insertArrowFilledHead2 = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 15.5).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
+ }, "insertArrowFilledHead");
+ insertSequenceNumber = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6);
+ }, "insertSequenceNumber");
+ insertArrowCrossHead2 = /* @__PURE__ */ __name(function(elem) {
+ const defs2 = elem.append("defs");
+ const marker = defs2.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 4.5);
+ marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7");
+ }, "insertArrowCrossHead");
+ getTextObj3 = /* @__PURE__ */ __name(function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ anchor: void 0,
+ style: "#666",
+ width: void 0,
+ height: void 0,
+ textMargin: 0,
+ rx: 0,
+ ry: 0,
+ tspan: true,
+ valign: void 0
+ };
+ }, "getTextObj");
+ getNoteRect2 = /* @__PURE__ */ __name(function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: "#EDF2AE",
+ stroke: "#666",
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+ }, "getNoteRect");
+ _drawTextCandidateFunc2 = /* @__PURE__ */ function() {
+ function byText(content, g2, x5, y5, width3, height2, textAttrs) {
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5 + height2 / 2 + 5).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byText, "byText");
+ function byTspan(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const { actorFontSize, actorFontFamily, actorFontWeight } = conf8;
+ const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);
+ const lines = content.split(common_default.lineBreakRegex);
+ for (let i2 = 0; i2 < lines.length; i2++) {
+ const dy = i2 * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
+ text2.append("tspan").attr("x", x5 + width3 / 2).attr("dy", dy).text(lines[i2]);
+ text2.attr("y", y5 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text2, textAttrs);
+ }
+ }
+ __name(byTspan, "byTspan");
+ function byFo(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const s2 = g2.append("switch");
+ const f3 = s2.append("foreignObject").attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2);
+ const text2 = f3.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s2, x5, y5, width3, height2, textAttrs, conf8);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byFo, "byFo");
+ async function byKatex(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const dim = await calculateMathMLDimensions(content, getConfig());
+ const s2 = g2.append("switch");
+ const f3 = s2.append("foreignObject").attr("x", x5 + width3 / 2 - dim.width / 2).attr("y", y5 + height2 / 2 - dim.height / 2).attr("width", dim.width).attr("height", dim.height);
+ const text2 = f3.append("xhtml:div").style("height", "100%").style("width", "100%");
+ text2.append("div").style("text-align", "center").style("vertical-align", "middle").html(await renderKatex(content, getConfig()));
+ byTspan(content, s2, x5, y5, width3, height2, textAttrs, conf8);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byKatex, "byKatex");
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ __name(_setTextAttrs, "_setTextAttrs");
+ return function(conf8, hasKatex2 = false) {
+ if (hasKatex2) {
+ return byKatex;
+ }
+ return conf8.textPlacement === "fo" ? byFo : conf8.textPlacement === "old" ? byText : byTspan;
+ };
+ }();
+ _drawMenuItemTextCandidateFunc = /* @__PURE__ */ function() {
+ function byText(content, g2, x5, y5, width3, height2, textAttrs) {
+ const text2 = g2.append("text").attr("x", x5).attr("y", y5).style("text-anchor", "start").text(content);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byText, "byText");
+ function byTspan(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const { actorFontSize, actorFontFamily, actorFontWeight } = conf8;
+ const lines = content.split(common_default.lineBreakRegex);
+ for (let i2 = 0; i2 < lines.length; i2++) {
+ const dy = i2 * actorFontSize - actorFontSize * (lines.length - 1) / 2;
+ const text2 = g2.append("text").attr("x", x5).attr("y", y5).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
+ text2.append("tspan").attr("x", x5).attr("dy", dy).text(lines[i2]);
+ text2.attr("y", y5 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text2, textAttrs);
+ }
+ }
+ __name(byTspan, "byTspan");
+ function byFo(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const s2 = g2.append("switch");
+ const f3 = s2.append("foreignObject").attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2);
+ const text2 = f3.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, s2, x5, y5, width3, height2, textAttrs, conf8);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byFo, "byFo");
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (fromTextAttrsDict.hasOwnProperty(key)) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ __name(_setTextAttrs, "_setTextAttrs");
+ return function(conf8) {
+ return conf8.textPlacement === "fo" ? byFo : conf8.textPlacement === "old" ? byText : byTspan;
+ };
+ }();
+ svgDraw_default2 = {
+ drawRect: drawRect4,
+ drawText: drawText3,
+ drawLabel,
+ drawActor,
+ drawBox,
+ drawPopup,
+ anchorElement,
+ drawActivation,
+ drawLoop,
+ drawBackgroundRect: drawBackgroundRect2,
+ insertArrowHead: insertArrowHead2,
+ insertArrowFilledHead: insertArrowFilledHead2,
+ insertSequenceNumber,
+ insertArrowCrossHead: insertArrowCrossHead2,
+ insertDatabaseIcon: insertDatabaseIcon2,
+ insertComputerIcon: insertComputerIcon2,
+ insertClockIcon: insertClockIcon2,
+ getTextObj: getTextObj3,
+ getNoteRect: getNoteRect2,
+ fixLifeLineHeights,
+ sanitizeUrl: import_sanitize_url5.sanitizeUrl
+ };
+ }
+ });
+
+ // src/diagrams/sequence/sequenceRenderer.ts
+ async function boundMessage(_diagram, msgModel) {
+ bounds.bumpVerticalPos(10);
+ const { startx, stopx, message } = msgModel;
+ const lines = common_default.splitBreaks(message).length;
+ const isKatexMsg = hasKatex(message);
+ const textDims = isKatexMsg ? await calculateMathMLDimensions(message, getConfig2()) : utils_default2.calculateTextDimensions(message, messageFont2(conf4));
+ if (!isKatexMsg) {
+ const lineHeight = textDims.height / lines;
+ msgModel.height += lineHeight;
+ bounds.bumpVerticalPos(lineHeight);
+ }
+ let lineStartY;
+ let totalOffset = textDims.height - 10;
+ const textWidth = textDims.width;
+ if (startx === stopx) {
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ if (!conf4.rightAngles) {
+ totalOffset += conf4.boxMargin;
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ }
+ totalOffset += 30;
+ const dx = common_default.getMax(textWidth / 2, conf4.width / 2);
+ bounds.insert(
+ startx - dx,
+ bounds.getVerticalPos() - 10 + totalOffset,
+ stopx + dx,
+ bounds.getVerticalPos() + 30 + totalOffset
+ );
+ } else {
+ totalOffset += conf4.boxMargin;
+ lineStartY = bounds.getVerticalPos() + totalOffset;
+ bounds.insert(startx, lineStartY - 10, stopx, lineStartY);
+ }
+ bounds.bumpVerticalPos(totalOffset);
+ msgModel.height += totalOffset;
+ msgModel.stopy = msgModel.starty + msgModel.height;
+ bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
+ return lineStartY;
+ }
+ function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
+ bounds.bumpVerticalPos(preMargin);
+ let heightAdjust = postMargin;
+ if (msg.id && msg.message && loopWidths[msg.id]) {
+ const loopWidth = loopWidths[msg.id].width;
+ const textConf = messageFont2(conf4);
+ msg.message = utils_default2.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf4.wrapPadding, textConf);
+ msg.width = loopWidth;
+ msg.wrap = true;
+ const textDims = utils_default2.calculateTextDimensions(msg.message, textConf);
+ const totalOffset = common_default.getMax(textDims.height, conf4.labelBoxHeight);
+ heightAdjust = postMargin + totalOffset;
+ log.debug(`${totalOffset} - ${msg.message}`);
+ }
+ addLoopFn(msg);
+ bounds.bumpVerticalPos(heightAdjust);
+ }
+ function adjustCreatedDestroyedData(msg, msgModel, lineStartY, index, actors2, createdActors, destroyedActors) {
+ function receiverAdjustment(actor, adjustment) {
+ if (actor.x < actors2.get(msg.from).x) {
+ bounds.insert(
+ msgModel.stopx - adjustment,
+ msgModel.starty,
+ msgModel.startx,
+ msgModel.stopy + actor.height / 2 + conf4.noteMargin
+ );
+ msgModel.stopx = msgModel.stopx + adjustment;
+ } else {
+ bounds.insert(
+ msgModel.startx,
+ msgModel.starty,
+ msgModel.stopx + adjustment,
+ msgModel.stopy + actor.height / 2 + conf4.noteMargin
+ );
+ msgModel.stopx = msgModel.stopx - adjustment;
+ }
+ }
+ __name(receiverAdjustment, "receiverAdjustment");
+ function senderAdjustment(actor, adjustment) {
+ if (actor.x < actors2.get(msg.to).x) {
+ bounds.insert(
+ msgModel.startx - adjustment,
+ msgModel.starty,
+ msgModel.stopx,
+ msgModel.stopy + actor.height / 2 + conf4.noteMargin
+ );
+ msgModel.startx = msgModel.startx + adjustment;
+ } else {
+ bounds.insert(
+ msgModel.stopx,
+ msgModel.starty,
+ msgModel.startx + adjustment,
+ msgModel.stopy + actor.height / 2 + conf4.noteMargin
+ );
+ msgModel.startx = msgModel.startx - adjustment;
+ }
+ }
+ __name(senderAdjustment, "senderAdjustment");
+ if (createdActors.get(msg.to) == index) {
+ const actor = actors2.get(msg.to);
+ const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;
+ receiverAdjustment(actor, adjustment);
+ actor.starty = lineStartY - actor.height / 2;
+ bounds.bumpVerticalPos(actor.height / 2);
+ } else if (destroyedActors.get(msg.from) == index) {
+ const actor = actors2.get(msg.from);
+ if (conf4.mirrorActors) {
+ const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 : actor.width / 2;
+ senderAdjustment(actor, adjustment);
+ }
+ actor.stopy = lineStartY - actor.height / 2;
+ bounds.bumpVerticalPos(actor.height / 2);
+ } else if (destroyedActors.get(msg.to) == index) {
+ const actor = actors2.get(msg.to);
+ if (conf4.mirrorActors) {
+ const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;
+ receiverAdjustment(actor, adjustment);
+ }
+ actor.stopy = lineStartY - actor.height / 2;
+ bounds.bumpVerticalPos(actor.height / 2);
+ }
+ }
+ async function getMaxMessageWidthPerActor(actors2, messages, diagObj) {
+ const maxMessageWidthPerActor = {};
+ for (const msg of messages) {
+ if (actors2.get(msg.to) && actors2.get(msg.from)) {
+ const actor = actors2.get(msg.to);
+ if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {
+ continue;
+ }
+ if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {
+ continue;
+ }
+ const isNote = msg.placement !== void 0;
+ const isMessage = !isNote;
+ const textFont = isNote ? noteFont(conf4) : messageFont2(conf4);
+ const wrappedMessage = msg.wrap ? utils_default2.wrapLabel(msg.message, conf4.width - 2 * conf4.wrapPadding, textFont) : msg.message;
+ const messageDimensions = hasKatex(wrappedMessage) ? await calculateMathMLDimensions(msg.message, getConfig2()) : utils_default2.calculateTextDimensions(wrappedMessage, textFont);
+ const messageWidth = messageDimensions.width + 2 * conf4.wrapPadding;
+ if (isMessage && msg.from === actor.nextActor) {
+ maxMessageWidthPerActor[msg.to] = common_default.getMax(
+ maxMessageWidthPerActor[msg.to] || 0,
+ messageWidth
+ );
+ } else if (isMessage && msg.from === actor.prevActor) {
+ maxMessageWidthPerActor[msg.from] = common_default.getMax(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth
+ );
+ } else if (isMessage && msg.from === msg.to) {
+ maxMessageWidthPerActor[msg.from] = common_default.getMax(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth / 2
+ );
+ maxMessageWidthPerActor[msg.to] = common_default.getMax(
+ maxMessageWidthPerActor[msg.to] || 0,
+ messageWidth / 2
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
+ maxMessageWidthPerActor[msg.from] = common_default.getMax(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
+ maxMessageWidthPerActor[actor.prevActor] = common_default.getMax(
+ maxMessageWidthPerActor[actor.prevActor] || 0,
+ messageWidth
+ );
+ } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {
+ if (actor.prevActor) {
+ maxMessageWidthPerActor[actor.prevActor] = common_default.getMax(
+ maxMessageWidthPerActor[actor.prevActor] || 0,
+ messageWidth / 2
+ );
+ }
+ if (actor.nextActor) {
+ maxMessageWidthPerActor[msg.from] = common_default.getMax(
+ maxMessageWidthPerActor[msg.from] || 0,
+ messageWidth / 2
+ );
+ }
+ }
+ }
+ }
+ log.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor);
+ return maxMessageWidthPerActor;
+ }
+ async function calculateActorMargins(actors2, actorToMessageWidth, boxes) {
+ let maxHeight = 0;
+ for (const prop of actors2.keys()) {
+ const actor = actors2.get(prop);
+ if (actor.wrap) {
+ actor.description = utils_default2.wrapLabel(
+ actor.description,
+ conf4.width - 2 * conf4.wrapPadding,
+ actorFont(conf4)
+ );
+ }
+ const actDims = hasKatex(actor.description) ? await calculateMathMLDimensions(actor.description, getConfig2()) : utils_default2.calculateTextDimensions(actor.description, actorFont(conf4));
+ actor.width = actor.wrap ? conf4.width : common_default.getMax(conf4.width, actDims.width + 2 * conf4.wrapPadding);
+ actor.height = actor.wrap ? common_default.getMax(actDims.height, conf4.height) : conf4.height;
+ maxHeight = common_default.getMax(maxHeight, actor.height);
+ }
+ for (const actorKey in actorToMessageWidth) {
+ const actor = actors2.get(actorKey);
+ if (!actor) {
+ continue;
+ }
+ const nextActor = actors2.get(actor.nextActor);
+ if (!nextActor) {
+ const messageWidth2 = actorToMessageWidth[actorKey];
+ const actorWidth2 = messageWidth2 + conf4.actorMargin - actor.width / 2;
+ actor.margin = common_default.getMax(actorWidth2, conf4.actorMargin);
+ continue;
+ }
+ const messageWidth = actorToMessageWidth[actorKey];
+ const actorWidth = messageWidth + conf4.actorMargin - actor.width / 2 - nextActor.width / 2;
+ actor.margin = common_default.getMax(actorWidth, conf4.actorMargin);
+ }
+ let maxBoxHeight = 0;
+ boxes.forEach((box) => {
+ const textFont = messageFont2(conf4);
+ let totalWidth = box.actorKeys.reduce((total, aKey) => {
+ return total += actors2.get(aKey).width + (actors2.get(aKey).margin || 0);
+ }, 0);
+ totalWidth -= 2 * conf4.boxTextMargin;
+ if (box.wrap) {
+ box.name = utils_default2.wrapLabel(box.name, totalWidth - 2 * conf4.wrapPadding, textFont);
+ }
+ const boxMsgDimensions = utils_default2.calculateTextDimensions(box.name, textFont);
+ maxBoxHeight = common_default.getMax(boxMsgDimensions.height, maxBoxHeight);
+ const minWidth = common_default.getMax(totalWidth, boxMsgDimensions.width + 2 * conf4.wrapPadding);
+ box.margin = conf4.boxTextMargin;
+ if (totalWidth < minWidth) {
+ const missing = (minWidth - totalWidth) / 2;
+ box.margin += missing;
+ }
+ });
+ boxes.forEach((box) => box.textMaxHeight = maxBoxHeight);
+ return common_default.getMax(maxHeight, conf4.height);
+ }
+ var conf4, bounds, drawNote, messageFont2, noteFont, actorFont, drawMessage, addActorRenderingData, drawActors, drawActorsPopup, setConf4, actorActivations, activationBounds, draw11, getRequiredPopupWidth, buildNoteModel, buildMessageModel, calculateLoopBounds, sequenceRenderer_default;
+ var init_sequenceRenderer = __esm({
+ "src/diagrams/sequence/sequenceRenderer.ts"() {
+ "use strict";
+ init_src32();
+ init_svgDraw2();
+ init_logger();
+ init_common();
+ init_svgDrawCommon();
+ init_diagramAPI();
+ init_assignWithDepth();
+ init_utils2();
+ init_setupGraphViewbox();
+ conf4 = {};
+ bounds = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ activations: [],
+ models: {
+ getHeight: /* @__PURE__ */ __name(function() {
+ return Math.max.apply(
+ null,
+ this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)
+ ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h2) => acc + h2)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h2) => acc + h2)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h2) => acc + h2));
+ }, "getHeight"),
+ clear: /* @__PURE__ */ __name(function() {
+ this.actors = [];
+ this.boxes = [];
+ this.loops = [];
+ this.messages = [];
+ this.notes = [];
+ }, "clear"),
+ addBox: /* @__PURE__ */ __name(function(boxModel) {
+ this.boxes.push(boxModel);
+ }, "addBox"),
+ addActor: /* @__PURE__ */ __name(function(actorModel) {
+ this.actors.push(actorModel);
+ }, "addActor"),
+ addLoop: /* @__PURE__ */ __name(function(loopModel) {
+ this.loops.push(loopModel);
+ }, "addLoop"),
+ addMessage: /* @__PURE__ */ __name(function(msgModel) {
+ this.messages.push(msgModel);
+ }, "addMessage"),
+ addNote: /* @__PURE__ */ __name(function(noteModel) {
+ this.notes.push(noteModel);
+ }, "addNote"),
+ lastActor: /* @__PURE__ */ __name(function() {
+ return this.actors[this.actors.length - 1];
+ }, "lastActor"),
+ lastLoop: /* @__PURE__ */ __name(function() {
+ return this.loops[this.loops.length - 1];
+ }, "lastLoop"),
+ lastMessage: /* @__PURE__ */ __name(function() {
+ return this.messages[this.messages.length - 1];
+ }, "lastMessage"),
+ lastNote: /* @__PURE__ */ __name(function() {
+ return this.notes[this.notes.length - 1];
+ }, "lastNote"),
+ actors: [],
+ boxes: [],
+ loops: [],
+ messages: [],
+ notes: []
+ },
+ init: /* @__PURE__ */ __name(function() {
+ this.sequenceItems = [];
+ this.activations = [];
+ this.models.clear();
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ };
+ this.verticalPos = 0;
+ setConf4(getConfig2());
+ }, "init"),
+ updateVal: /* @__PURE__ */ __name(function(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ }, "updateVal"),
+ updateBounds: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {
+ const _self = this;
+ let cnt4 = 0;
+ function updateFn(type3) {
+ return /* @__PURE__ */ __name(function updateItemBounds(item) {
+ cnt4++;
+ const n2 = _self.sequenceItems.length - cnt4 + 1;
+ _self.updateVal(item, "starty", starty - n2 * conf4.boxMargin, Math.min);
+ _self.updateVal(item, "stopy", stopy + n2 * conf4.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "startx", startx - n2 * conf4.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopx", stopx + n2 * conf4.boxMargin, Math.max);
+ if (!(type3 === "activation")) {
+ _self.updateVal(item, "startx", startx - n2 * conf4.boxMargin, Math.min);
+ _self.updateVal(item, "stopx", stopx + n2 * conf4.boxMargin, Math.max);
+ _self.updateVal(bounds.data, "starty", starty - n2 * conf4.boxMargin, Math.min);
+ _self.updateVal(bounds.data, "stopy", stopy + n2 * conf4.boxMargin, Math.max);
+ }
+ }, "updateItemBounds");
+ }
+ __name(updateFn, "updateFn");
+ this.sequenceItems.forEach(updateFn());
+ this.activations.forEach(updateFn("activation"));
+ }, "updateBounds"),
+ insert: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {
+ const _startx = common_default.getMin(startx, stopx);
+ const _stopx = common_default.getMax(startx, stopx);
+ const _starty = common_default.getMin(starty, stopy);
+ const _stopy = common_default.getMax(starty, stopy);
+ this.updateVal(bounds.data, "startx", _startx, Math.min);
+ this.updateVal(bounds.data, "starty", _starty, Math.min);
+ this.updateVal(bounds.data, "stopx", _stopx, Math.max);
+ this.updateVal(bounds.data, "stopy", _stopy, Math.max);
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
+ }, "insert"),
+ newActivation: /* @__PURE__ */ __name(function(message, diagram24, actors2) {
+ const actorRect = actors2.get(message.from);
+ const stackedSize = actorActivations(message.from).length || 0;
+ const x5 = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf4.activationWidth / 2;
+ this.activations.push({
+ startx: x5,
+ starty: this.verticalPos + 2,
+ stopx: x5 + conf4.activationWidth,
+ stopy: void 0,
+ actor: message.from,
+ anchored: svgDraw_default2.anchorElement(diagram24)
+ });
+ }, "newActivation"),
+ endActivation: /* @__PURE__ */ __name(function(message) {
+ const lastActorActivationIdx = this.activations.map(function(activation) {
+ return activation.actor;
+ }).lastIndexOf(message.from);
+ return this.activations.splice(lastActorActivationIdx, 1)[0];
+ }, "endActivation"),
+ createLoop: /* @__PURE__ */ __name(function(title2 = { message: void 0, wrap: false, width: void 0 }, fill) {
+ return {
+ startx: void 0,
+ starty: this.verticalPos,
+ stopx: void 0,
+ stopy: void 0,
+ title: title2.message,
+ wrap: title2.wrap,
+ width: title2.width,
+ height: 0,
+ fill
+ };
+ }, "createLoop"),
+ newLoop: /* @__PURE__ */ __name(function(title2 = { message: void 0, wrap: false, width: void 0 }, fill) {
+ this.sequenceItems.push(this.createLoop(title2, fill));
+ }, "newLoop"),
+ endLoop: /* @__PURE__ */ __name(function() {
+ return this.sequenceItems.pop();
+ }, "endLoop"),
+ isLoopOverlap: /* @__PURE__ */ __name(function() {
+ return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false;
+ }, "isLoopOverlap"),
+ addSectionToLoop: /* @__PURE__ */ __name(function(message) {
+ const loop = this.sequenceItems.pop();
+ loop.sections = loop.sections || [];
+ loop.sectionTitles = loop.sectionTitles || [];
+ loop.sections.push({ y: bounds.getVerticalPos(), height: 0 });
+ loop.sectionTitles.push(message);
+ this.sequenceItems.push(loop);
+ }, "addSectionToLoop"),
+ saveVerticalPos: /* @__PURE__ */ __name(function() {
+ if (this.isLoopOverlap()) {
+ this.savedVerticalPos = this.verticalPos;
+ }
+ }, "saveVerticalPos"),
+ resetVerticalPos: /* @__PURE__ */ __name(function() {
+ if (this.isLoopOverlap()) {
+ this.verticalPos = this.savedVerticalPos;
+ }
+ }, "resetVerticalPos"),
+ bumpVerticalPos: /* @__PURE__ */ __name(function(bump) {
+ this.verticalPos = this.verticalPos + bump;
+ this.data.stopy = common_default.getMax(this.data.stopy, this.verticalPos);
+ }, "bumpVerticalPos"),
+ getVerticalPos: /* @__PURE__ */ __name(function() {
+ return this.verticalPos;
+ }, "getVerticalPos"),
+ getBounds: /* @__PURE__ */ __name(function() {
+ return { bounds: this.data, models: this.models };
+ }, "getBounds")
+ };
+ drawNote = /* @__PURE__ */ __name(async function(elem, noteModel) {
+ bounds.bumpVerticalPos(conf4.boxMargin);
+ noteModel.height = conf4.boxMargin;
+ noteModel.starty = bounds.getVerticalPos();
+ const rect4 = getNoteRect();
+ rect4.x = noteModel.startx;
+ rect4.y = noteModel.starty;
+ rect4.width = noteModel.width || conf4.width;
+ rect4.class = "note";
+ const g2 = elem.append("g");
+ const rectElem = svgDraw_default2.drawRect(g2, rect4);
+ const textObj = getTextObj();
+ textObj.x = noteModel.startx;
+ textObj.y = noteModel.starty;
+ textObj.width = rect4.width;
+ textObj.dy = "1em";
+ textObj.text = noteModel.message;
+ textObj.class = "noteText";
+ textObj.fontFamily = conf4.noteFontFamily;
+ textObj.fontSize = conf4.noteFontSize;
+ textObj.fontWeight = conf4.noteFontWeight;
+ textObj.anchor = conf4.noteAlign;
+ textObj.textMargin = conf4.noteMargin;
+ textObj.valign = "center";
+ const textElem = hasKatex(textObj.text) ? await drawKatex(g2, textObj) : drawText3(g2, textObj);
+ const textHeight = Math.round(
+ textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
+ );
+ rectElem.attr("height", textHeight + 2 * conf4.noteMargin);
+ noteModel.height += textHeight + 2 * conf4.noteMargin;
+ bounds.bumpVerticalPos(textHeight + 2 * conf4.noteMargin);
+ noteModel.stopy = noteModel.starty + textHeight + 2 * conf4.noteMargin;
+ noteModel.stopx = noteModel.startx + rect4.width;
+ bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
+ bounds.models.addNote(noteModel);
+ }, "drawNote");
+ messageFont2 = /* @__PURE__ */ __name((cnf) => {
+ return {
+ fontFamily: cnf.messageFontFamily,
+ fontSize: cnf.messageFontSize,
+ fontWeight: cnf.messageFontWeight
+ };
+ }, "messageFont");
+ noteFont = /* @__PURE__ */ __name((cnf) => {
+ return {
+ fontFamily: cnf.noteFontFamily,
+ fontSize: cnf.noteFontSize,
+ fontWeight: cnf.noteFontWeight
+ };
+ }, "noteFont");
+ actorFont = /* @__PURE__ */ __name((cnf) => {
+ return {
+ fontFamily: cnf.actorFontFamily,
+ fontSize: cnf.actorFontSize,
+ fontWeight: cnf.actorFontWeight
+ };
+ }, "actorFont");
+ __name(boundMessage, "boundMessage");
+ drawMessage = /* @__PURE__ */ __name(async function(diagram24, msgModel, lineStartY, diagObj) {
+ const { startx, stopx, starty, message, type: type3, sequenceIndex, sequenceVisible } = msgModel;
+ const textDims = utils_default2.calculateTextDimensions(message, messageFont2(conf4));
+ const textObj = getTextObj();
+ textObj.x = startx;
+ textObj.y = starty + 10;
+ textObj.width = stopx - startx;
+ textObj.class = "messageText";
+ textObj.dy = "1em";
+ textObj.text = message;
+ textObj.fontFamily = conf4.messageFontFamily;
+ textObj.fontSize = conf4.messageFontSize;
+ textObj.fontWeight = conf4.messageFontWeight;
+ textObj.anchor = conf4.messageAlign;
+ textObj.valign = "center";
+ textObj.textMargin = conf4.wrapPadding;
+ textObj.tspan = false;
+ if (hasKatex(textObj.text)) {
+ await drawKatex(diagram24, textObj, { startx, stopx, starty: lineStartY });
+ } else {
+ drawText3(diagram24, textObj);
+ }
+ const textWidth = textDims.width;
+ let line2;
+ if (startx === stopx) {
+ if (conf4.rightAngles) {
+ line2 = diagram24.append("path").attr(
+ "d",
+ `M ${startx},${lineStartY} H ${startx + common_default.getMax(conf4.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`
+ );
+ } else {
+ line2 = diagram24.append("path").attr(
+ "d",
+ "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20)
+ );
+ }
+ } else {
+ line2 = diagram24.append("line");
+ line2.attr("x1", startx);
+ line2.attr("y1", lineStartY);
+ line2.attr("x2", stopx);
+ line2.attr("y2", lineStartY);
+ }
+ if (type3 === diagObj.db.LINETYPE.DOTTED || type3 === diagObj.db.LINETYPE.DOTTED_CROSS || type3 === diagObj.db.LINETYPE.DOTTED_POINT || type3 === diagObj.db.LINETYPE.DOTTED_OPEN || type3 === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED) {
+ line2.style("stroke-dasharray", "3, 3");
+ line2.attr("class", "messageLine1");
+ } else {
+ line2.attr("class", "messageLine0");
+ }
+ let url = "";
+ if (conf4.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ line2.attr("stroke-width", 2);
+ line2.attr("stroke", "none");
+ line2.style("fill", "none");
+ if (type3 === diagObj.db.LINETYPE.SOLID || type3 === diagObj.db.LINETYPE.DOTTED) {
+ line2.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (type3 === diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID || type3 === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED) {
+ line2.attr("marker-start", "url(" + url + "#arrowhead)");
+ line2.attr("marker-end", "url(" + url + "#arrowhead)");
+ }
+ if (type3 === diagObj.db.LINETYPE.SOLID_POINT || type3 === diagObj.db.LINETYPE.DOTTED_POINT) {
+ line2.attr("marker-end", "url(" + url + "#filled-head)");
+ }
+ if (type3 === diagObj.db.LINETYPE.SOLID_CROSS || type3 === diagObj.db.LINETYPE.DOTTED_CROSS) {
+ line2.attr("marker-end", "url(" + url + "#crosshead)");
+ }
+ if (sequenceVisible || conf4.showSequenceNumbers) {
+ line2.attr("marker-start", "url(" + url + "#sequencenumber)");
+ diagram24.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex);
+ }
+ }, "drawMessage");
+ addActorRenderingData = /* @__PURE__ */ __name(function(diagram24, actors2, createdActors, actorKeys, verticalPos, messages, isFooter) {
+ let prevWidth = 0;
+ let prevMargin = 0;
+ let prevBox = void 0;
+ let maxHeight = 0;
+ for (const actorKey of actorKeys) {
+ const actor = actors2.get(actorKey);
+ const box = actor.box;
+ if (prevBox && prevBox != box) {
+ if (!isFooter) {
+ bounds.models.addBox(prevBox);
+ }
+ prevMargin += conf4.boxMargin + prevBox.margin;
+ }
+ if (box && box != prevBox) {
+ if (!isFooter) {
+ box.x = prevWidth + prevMargin;
+ box.y = verticalPos;
+ }
+ prevMargin += box.margin;
+ }
+ actor.width = actor.width || conf4.width;
+ actor.height = common_default.getMax(actor.height || conf4.height, conf4.height);
+ actor.margin = actor.margin || conf4.actorMargin;
+ maxHeight = common_default.getMax(maxHeight, actor.height);
+ if (createdActors.get(actor.name)) {
+ prevMargin += actor.width / 2;
+ }
+ actor.x = prevWidth + prevMargin;
+ actor.starty = bounds.getVerticalPos();
+ bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
+ prevWidth += actor.width + prevMargin;
+ if (actor.box) {
+ actor.box.width = prevWidth + box.margin - actor.box.x;
+ }
+ prevMargin = actor.margin;
+ prevBox = actor.box;
+ bounds.models.addActor(actor);
+ }
+ if (prevBox && !isFooter) {
+ bounds.models.addBox(prevBox);
+ }
+ bounds.bumpVerticalPos(maxHeight);
+ }, "addActorRenderingData");
+ drawActors = /* @__PURE__ */ __name(async function(diagram24, actors2, actorKeys, isFooter) {
+ if (!isFooter) {
+ for (const actorKey of actorKeys) {
+ const actor = actors2.get(actorKey);
+ await svgDraw_default2.drawActor(diagram24, actor, conf4, false);
+ }
+ } else {
+ let maxHeight = 0;
+ bounds.bumpVerticalPos(conf4.boxMargin * 2);
+ for (const actorKey of actorKeys) {
+ const actor = actors2.get(actorKey);
+ if (!actor.stopy) {
+ actor.stopy = bounds.getVerticalPos();
+ }
+ const height2 = await svgDraw_default2.drawActor(diagram24, actor, conf4, true);
+ maxHeight = common_default.getMax(maxHeight, height2);
+ }
+ bounds.bumpVerticalPos(maxHeight + conf4.boxMargin);
+ }
+ }, "drawActors");
+ drawActorsPopup = /* @__PURE__ */ __name(function(diagram24, actors2, actorKeys, doc) {
+ let maxHeight = 0;
+ let maxWidth = 0;
+ for (const actorKey of actorKeys) {
+ const actor = actors2.get(actorKey);
+ const minMenuWidth = getRequiredPopupWidth(actor);
+ const menuDimensions = svgDraw_default2.drawPopup(
+ diagram24,
+ actor,
+ minMenuWidth,
+ conf4,
+ conf4.forceMenus,
+ doc
+ );
+ if (menuDimensions.height > maxHeight) {
+ maxHeight = menuDimensions.height;
+ }
+ if (menuDimensions.width + actor.x > maxWidth) {
+ maxWidth = menuDimensions.width + actor.x;
+ }
+ }
+ return { maxHeight, maxWidth };
+ }, "drawActorsPopup");
+ setConf4 = /* @__PURE__ */ __name(function(cnf) {
+ assignWithDepth_default(conf4, cnf);
+ if (cnf.fontFamily) {
+ conf4.actorFontFamily = conf4.noteFontFamily = conf4.messageFontFamily = cnf.fontFamily;
+ }
+ if (cnf.fontSize) {
+ conf4.actorFontSize = conf4.noteFontSize = conf4.messageFontSize = cnf.fontSize;
+ }
+ if (cnf.fontWeight) {
+ conf4.actorFontWeight = conf4.noteFontWeight = conf4.messageFontWeight = cnf.fontWeight;
+ }
+ }, "setConf");
+ actorActivations = /* @__PURE__ */ __name(function(actor) {
+ return bounds.activations.filter(function(activation) {
+ return activation.actor === actor;
+ });
+ }, "actorActivations");
+ activationBounds = /* @__PURE__ */ __name(function(actor, actors2) {
+ const actorObj = actors2.get(actor);
+ const activations = actorActivations(actor);
+ const left3 = activations.reduce(
+ function(acc, activation) {
+ return common_default.getMin(acc, activation.startx);
+ },
+ actorObj.x + actorObj.width / 2 - 1
+ );
+ const right3 = activations.reduce(
+ function(acc, activation) {
+ return common_default.getMax(acc, activation.stopx);
+ },
+ actorObj.x + actorObj.width / 2 + 1
+ );
+ return [left3, right3];
+ }, "activationBounds");
+ __name(adjustLoopHeightForWrap, "adjustLoopHeightForWrap");
+ __name(adjustCreatedDestroyedData, "adjustCreatedDestroyedData");
+ draw11 = /* @__PURE__ */ __name(async function(_text, id27, _version, diagObj) {
+ const { securityLevel, sequence } = getConfig2();
+ conf4 = sequence;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ bounds.init();
+ log.debug(diagObj.db);
+ const diagram24 = securityLevel === "sandbox" ? root4.select(`[id="${id27}"]`) : select_default2(`[id="${id27}"]`);
+ const actors2 = diagObj.db.getActors();
+ const createdActors = diagObj.db.getCreatedActors();
+ const destroyedActors = diagObj.db.getDestroyedActors();
+ const boxes = diagObj.db.getBoxes();
+ let actorKeys = diagObj.db.getActorKeys();
+ const messages = diagObj.db.getMessages();
+ const title2 = diagObj.db.getDiagramTitle();
+ const hasBoxes = diagObj.db.hasAtLeastOneBox();
+ const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();
+ const maxMessageWidthPerActor = await getMaxMessageWidthPerActor(actors2, messages, diagObj);
+ conf4.height = await calculateActorMargins(actors2, maxMessageWidthPerActor, boxes);
+ svgDraw_default2.insertComputerIcon(diagram24);
+ svgDraw_default2.insertDatabaseIcon(diagram24);
+ svgDraw_default2.insertClockIcon(diagram24);
+ if (hasBoxes) {
+ bounds.bumpVerticalPos(conf4.boxMargin);
+ if (hasBoxTitles) {
+ bounds.bumpVerticalPos(boxes[0].textMaxHeight);
+ }
+ }
+ if (conf4.hideUnusedParticipants === true) {
+ const newActors = /* @__PURE__ */ new Set();
+ messages.forEach((message) => {
+ newActors.add(message.from);
+ newActors.add(message.to);
+ });
+ actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));
+ }
+ addActorRenderingData(diagram24, actors2, createdActors, actorKeys, 0, messages, false);
+ const loopWidths = await calculateLoopBounds(messages, actors2, maxMessageWidthPerActor, diagObj);
+ svgDraw_default2.insertArrowHead(diagram24);
+ svgDraw_default2.insertArrowCrossHead(diagram24);
+ svgDraw_default2.insertArrowFilledHead(diagram24);
+ svgDraw_default2.insertSequenceNumber(diagram24);
+ function activeEnd(msg, verticalPos) {
+ const activationData = bounds.endActivation(msg);
+ if (activationData.starty + 18 > verticalPos) {
+ activationData.starty = verticalPos - 6;
+ verticalPos += 12;
+ }
+ svgDraw_default2.drawActivation(
+ diagram24,
+ activationData,
+ verticalPos,
+ conf4,
+ actorActivations(msg.from).length
+ );
+ bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
+ }
+ __name(activeEnd, "activeEnd");
+ let sequenceIndex = 1;
+ let sequenceIndexStep = 1;
+ const messagesToDraw = [];
+ const backgrounds = [];
+ let index = 0;
+ for (const msg of messages) {
+ let loopModel, noteModel, msgModel;
+ switch (msg.type) {
+ case diagObj.db.LINETYPE.NOTE:
+ bounds.resetVerticalPos();
+ noteModel = msg.noteModel;
+ await drawNote(diagram24, noteModel);
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_START:
+ bounds.newActivation(msg, diagram24, actors2);
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_END:
+ activeEnd(msg, bounds.getVerticalPos());
+ break;
+ case diagObj.db.LINETYPE.LOOP_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin,
+ conf4.boxMargin + conf4.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.LOOP_END:
+ loopModel = bounds.endLoop();
+ await svgDraw_default2.drawLoop(diagram24, loopModel, "loop", conf4);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.RECT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin,
+ conf4.boxMargin,
+ (message) => bounds.newLoop(void 0, message.message)
+ );
+ break;
+ case diagObj.db.LINETYPE.RECT_END:
+ loopModel = bounds.endLoop();
+ backgrounds.push(loopModel);
+ bounds.models.addLoop(loopModel);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ break;
+ case diagObj.db.LINETYPE.OPT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin,
+ conf4.boxMargin + conf4.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.OPT_END:
+ loopModel = bounds.endLoop();
+ await svgDraw_default2.drawLoop(diagram24, loopModel, "opt", conf4);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.ALT_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin,
+ conf4.boxMargin + conf4.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.ALT_ELSE:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin + conf4.boxTextMargin,
+ conf4.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.ALT_END:
+ loopModel = bounds.endLoop();
+ await svgDraw_default2.drawLoop(diagram24, loopModel, "alt", conf4);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.PAR_START:
+ case diagObj.db.LINETYPE.PAR_OVER_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin,
+ conf4.boxMargin + conf4.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ bounds.saveVerticalPos();
+ break;
+ case diagObj.db.LINETYPE.PAR_AND:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin + conf4.boxTextMargin,
+ conf4.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.PAR_END:
+ loopModel = bounds.endLoop();
+ await svgDraw_default2.drawLoop(diagram24, loopModel, "par", conf4);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.AUTONUMBER:
+ sequenceIndex = msg.message.start || sequenceIndex;
+ sequenceIndexStep = msg.message.step || sequenceIndexStep;
+ if (msg.message.visible) {
+ diagObj.db.enableSequenceNumbers();
+ } else {
+ diagObj.db.disableSequenceNumbers();
}
- c2 = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
- Nlb(c2, new t6b());
- _5b(c2, b);
- }
- function Ekd(a, b, c2, d) {
- switch (b) {
- case 1:
- return !a.n && (a.n = new cUd(D2, a, 1, 7)), a.n;
- case 2:
- return a.k;
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin,
+ conf4.boxMargin + conf4.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_OPTION:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin + conf4.boxTextMargin,
+ conf4.boxMargin,
+ (message) => bounds.addSectionToLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.CRITICAL_END:
+ loopModel = bounds.endLoop();
+ await svgDraw_default2.drawLoop(diagram24, loopModel, "critical", conf4);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ case diagObj.db.LINETYPE.BREAK_START:
+ adjustLoopHeightForWrap(
+ loopWidths,
+ msg,
+ conf4.boxMargin,
+ conf4.boxMargin + conf4.boxTextMargin,
+ (message) => bounds.newLoop(message)
+ );
+ break;
+ case diagObj.db.LINETYPE.BREAK_END:
+ loopModel = bounds.endLoop();
+ await svgDraw_default2.drawLoop(diagram24, loopModel, "break", conf4);
+ bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
+ bounds.models.addLoop(loopModel);
+ break;
+ default:
+ try {
+ msgModel = msg.msgModel;
+ msgModel.starty = bounds.getVerticalPos();
+ msgModel.sequenceIndex = sequenceIndex;
+ msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();
+ const lineStartY = await boundMessage(diagram24, msgModel);
+ adjustCreatedDestroyedData(
+ msg,
+ msgModel,
+ lineStartY,
+ index,
+ actors2,
+ createdActors,
+ destroyedActors
+ );
+ messagesToDraw.push({ messageModel: msgModel, lineStartY });
+ bounds.models.addMessage(msgModel);
+ } catch (e3) {
+ log.error("error while drawing message", e3);
+ }
+ }
+ if ([
+ diagObj.db.LINETYPE.SOLID_OPEN,
+ diagObj.db.LINETYPE.DOTTED_OPEN,
+ diagObj.db.LINETYPE.SOLID,
+ diagObj.db.LINETYPE.DOTTED,
+ diagObj.db.LINETYPE.SOLID_CROSS,
+ diagObj.db.LINETYPE.DOTTED_CROSS,
+ diagObj.db.LINETYPE.SOLID_POINT,
+ diagObj.db.LINETYPE.DOTTED_POINT,
+ diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,
+ diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED
+ ].includes(msg.type)) {
+ sequenceIndex = sequenceIndex + sequenceIndexStep;
+ }
+ index++;
+ }
+ log.debug("createdActors", createdActors);
+ log.debug("destroyedActors", destroyedActors);
+ await drawActors(diagram24, actors2, actorKeys, false);
+ for (const e3 of messagesToDraw) {
+ await drawMessage(diagram24, e3.messageModel, e3.lineStartY, diagObj);
+ }
+ if (conf4.mirrorActors) {
+ await drawActors(diagram24, actors2, actorKeys, true);
+ }
+ backgrounds.forEach((e3) => svgDraw_default2.drawBackgroundRect(diagram24, e3));
+ fixLifeLineHeights(diagram24, actors2, actorKeys, conf4);
+ for (const box2 of bounds.models.boxes) {
+ box2.height = bounds.getVerticalPos() - box2.y;
+ bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height);
+ box2.startx = box2.x;
+ box2.starty = box2.y;
+ box2.stopx = box2.startx + box2.width;
+ box2.stopy = box2.starty + box2.height;
+ box2.stroke = "rgb(0,0,0, 0.5)";
+ svgDraw_default2.drawBox(diagram24, box2, conf4);
+ }
+ if (hasBoxes) {
+ bounds.bumpVerticalPos(conf4.boxMargin);
+ }
+ const requiredBoxSize = drawActorsPopup(diagram24, actors2, actorKeys, doc);
+ const { bounds: box } = bounds.getBounds();
+ if (box.startx === void 0) {
+ box.startx = 0;
+ }
+ if (box.starty === void 0) {
+ box.starty = 0;
+ }
+ if (box.stopx === void 0) {
+ box.stopx = 0;
+ }
+ if (box.stopy === void 0) {
+ box.stopy = 0;
+ }
+ let boxHeight = box.stopy - box.starty;
+ if (boxHeight < requiredBoxSize.maxHeight) {
+ boxHeight = requiredBoxSize.maxHeight;
+ }
+ let height2 = boxHeight + 2 * conf4.diagramMarginY;
+ if (conf4.mirrorActors) {
+ height2 = height2 - conf4.boxMargin + conf4.bottomMarginAdj;
+ }
+ let boxWidth = box.stopx - box.startx;
+ if (boxWidth < requiredBoxSize.maxWidth) {
+ boxWidth = requiredBoxSize.maxWidth;
+ }
+ const width3 = boxWidth + 2 * conf4.diagramMarginX;
+ if (title2) {
+ diagram24.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 2 * conf4.diagramMarginX).attr("y", -25);
+ }
+ configureSvgSize(diagram24, height2, width3, conf4.useMaxWidth);
+ const extraVertForTitle = title2 ? 40 : 0;
+ diagram24.attr(
+ "viewBox",
+ box.startx - conf4.diagramMarginX + " -" + (conf4.diagramMarginY + extraVertForTitle) + " " + width3 + " " + (height2 + extraVertForTitle)
+ );
+ log.debug(`models:`, bounds.models);
+ }, "draw");
+ __name(getMaxMessageWidthPerActor, "getMaxMessageWidthPerActor");
+ getRequiredPopupWidth = /* @__PURE__ */ __name(function(actor) {
+ let requiredPopupWidth = 0;
+ const textFont = actorFont(conf4);
+ for (const key in actor.links) {
+ const labelDimensions = utils_default2.calculateTextDimensions(key, textFont);
+ const labelWidth = labelDimensions.width + 2 * conf4.wrapPadding + 2 * conf4.boxMargin;
+ if (requiredPopupWidth < labelWidth) {
+ requiredPopupWidth = labelWidth;
+ }
+ }
+ return requiredPopupWidth;
+ }, "getRequiredPopupWidth");
+ __name(calculateActorMargins, "calculateActorMargins");
+ buildNoteModel = /* @__PURE__ */ __name(async function(msg, actors2, diagObj) {
+ const fromActor = actors2.get(msg.from);
+ const toActor = actors2.get(msg.to);
+ const startx = fromActor.x;
+ const stopx = toActor.x;
+ const shouldWrap = msg.wrap && msg.message;
+ let textDimensions = hasKatex(msg.message) ? await calculateMathMLDimensions(msg.message, getConfig2()) : utils_default2.calculateTextDimensions(
+ shouldWrap ? utils_default2.wrapLabel(msg.message, conf4.width, noteFont(conf4)) : msg.message,
+ noteFont(conf4)
+ );
+ const noteModel = {
+ width: shouldWrap ? conf4.width : common_default.getMax(conf4.width, textDimensions.width + 2 * conf4.noteMargin),
+ height: 0,
+ startx: fromActor.x,
+ stopx: 0,
+ starty: 0,
+ stopy: 0,
+ message: msg.message
+ };
+ if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
+ noteModel.width = shouldWrap ? common_default.getMax(conf4.width, textDimensions.width) : common_default.getMax(
+ fromActor.width / 2 + toActor.width / 2,
+ textDimensions.width + 2 * conf4.noteMargin
+ );
+ noteModel.startx = startx + (fromActor.width + conf4.actorMargin) / 2;
+ } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
+ noteModel.width = shouldWrap ? common_default.getMax(conf4.width, textDimensions.width + 2 * conf4.noteMargin) : common_default.getMax(
+ fromActor.width / 2 + toActor.width / 2,
+ textDimensions.width + 2 * conf4.noteMargin
+ );
+ noteModel.startx = startx - noteModel.width + (fromActor.width - conf4.actorMargin) / 2;
+ } else if (msg.to === msg.from) {
+ textDimensions = utils_default2.calculateTextDimensions(
+ shouldWrap ? utils_default2.wrapLabel(msg.message, common_default.getMax(conf4.width, fromActor.width), noteFont(conf4)) : msg.message,
+ noteFont(conf4)
+ );
+ noteModel.width = shouldWrap ? common_default.getMax(conf4.width, fromActor.width) : common_default.getMax(fromActor.width, conf4.width, textDimensions.width + 2 * conf4.noteMargin);
+ noteModel.startx = startx + (fromActor.width - noteModel.width) / 2;
+ } else {
+ noteModel.width = Math.abs(startx + fromActor.width / 2 - (stopx + toActor.width / 2)) + conf4.actorMargin;
+ noteModel.startx = startx < stopx ? startx + fromActor.width / 2 - conf4.actorMargin / 2 : stopx + toActor.width / 2 - conf4.actorMargin / 2;
+ }
+ if (shouldWrap) {
+ noteModel.message = utils_default2.wrapLabel(
+ msg.message,
+ noteModel.width - 2 * conf4.wrapPadding,
+ noteFont(conf4)
+ );
+ }
+ log.debug(
+ `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`
+ );
+ return noteModel;
+ }, "buildNoteModel");
+ buildMessageModel = /* @__PURE__ */ __name(function(msg, actors2, diagObj) {
+ if (![
+ diagObj.db.LINETYPE.SOLID_OPEN,
+ diagObj.db.LINETYPE.DOTTED_OPEN,
+ diagObj.db.LINETYPE.SOLID,
+ diagObj.db.LINETYPE.DOTTED,
+ diagObj.db.LINETYPE.SOLID_CROSS,
+ diagObj.db.LINETYPE.DOTTED_CROSS,
+ diagObj.db.LINETYPE.SOLID_POINT,
+ diagObj.db.LINETYPE.DOTTED_POINT,
+ diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,
+ diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED
+ ].includes(msg.type)) {
+ return {};
+ }
+ const [fromLeft, fromRight] = activationBounds(msg.from, actors2);
+ const [toLeft, toRight] = activationBounds(msg.to, actors2);
+ const isArrowToRight = fromLeft <= toLeft;
+ let startx = isArrowToRight ? fromRight : fromLeft;
+ let stopx = isArrowToRight ? toLeft : toRight;
+ const isArrowToActivation = Math.abs(toLeft - toRight) > 2;
+ const adjustValue = /* @__PURE__ */ __name((value2) => {
+ return isArrowToRight ? -value2 : value2;
+ }, "adjustValue");
+ if (msg.from === msg.to) {
+ stopx = startx;
+ } else {
+ if (msg.activate && !isArrowToActivation) {
+ stopx += adjustValue(conf4.activationWidth / 2 - 1);
+ }
+ if (![diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN].includes(msg.type)) {
+ stopx += adjustValue(3);
+ }
+ if ([diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID, diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(
+ msg.type
+ )) {
+ startx -= adjustValue(3);
+ }
+ }
+ const allBounds = [fromLeft, fromRight, toLeft, toRight];
+ const boundedWidth = Math.abs(startx - stopx);
+ if (msg.wrap && msg.message) {
+ msg.message = utils_default2.wrapLabel(
+ msg.message,
+ common_default.getMax(boundedWidth + 2 * conf4.wrapPadding, conf4.width),
+ messageFont2(conf4)
+ );
+ }
+ const msgDims = utils_default2.calculateTextDimensions(msg.message, messageFont2(conf4));
+ return {
+ width: common_default.getMax(
+ msg.wrap ? 0 : msgDims.width + 2 * conf4.wrapPadding,
+ boundedWidth + 2 * conf4.wrapPadding,
+ conf4.width
+ ),
+ height: 0,
+ startx,
+ stopx,
+ starty: 0,
+ stopy: 0,
+ message: msg.message,
+ type: msg.type,
+ wrap: msg.wrap,
+ fromBounds: Math.min.apply(null, allBounds),
+ toBounds: Math.max.apply(null, allBounds)
+ };
+ }, "buildMessageModel");
+ calculateLoopBounds = /* @__PURE__ */ __name(async function(messages, actors2, _maxWidthPerActor, diagObj) {
+ const loops = {};
+ const stack = [];
+ let current, noteModel, msgModel;
+ for (const msg of messages) {
+ msg.id = utils_default2.random({ length: 10 });
+ switch (msg.type) {
+ case diagObj.db.LINETYPE.LOOP_START:
+ case diagObj.db.LINETYPE.ALT_START:
+ case diagObj.db.LINETYPE.OPT_START:
+ case diagObj.db.LINETYPE.PAR_START:
+ case diagObj.db.LINETYPE.PAR_OVER_START:
+ case diagObj.db.LINETYPE.CRITICAL_START:
+ case diagObj.db.LINETYPE.BREAK_START:
+ stack.push({
+ id: msg.id,
+ msg: msg.message,
+ from: Number.MAX_SAFE_INTEGER,
+ to: Number.MIN_SAFE_INTEGER,
+ width: 0
+ });
+ break;
+ case diagObj.db.LINETYPE.ALT_ELSE:
+ case diagObj.db.LINETYPE.PAR_AND:
+ case diagObj.db.LINETYPE.CRITICAL_OPTION:
+ if (msg.message) {
+ current = stack.pop();
+ loops[current.id] = current;
+ loops[msg.id] = current;
+ stack.push(current);
}
- return bkd(a, b, c2, d);
- }
- function ead() {
- ead = ccb;
- cad = new iad(ole, 0);
- bad = new iad(kle, 1);
- aad = new iad(jle, 2);
- _9c = new iad(vle, 3);
- dad = new iad("UP", 4);
- }
- function RXb() {
- RXb = ccb;
- QXb = new SXb(ane, 0);
- PXb = new SXb("INSIDE_PORT_SIDE_GROUPS", 1);
- OXb = new SXb("FORCE_MODEL_ORDER", 2);
- }
- function xCb(a, b, c2) {
- if (a < 0 || b > c2) {
- throw vbb(new qcb(xke + a + zke + b + ", size: " + c2));
+ break;
+ case diagObj.db.LINETYPE.LOOP_END:
+ case diagObj.db.LINETYPE.ALT_END:
+ case diagObj.db.LINETYPE.OPT_END:
+ case diagObj.db.LINETYPE.PAR_END:
+ case diagObj.db.LINETYPE.CRITICAL_END:
+ case diagObj.db.LINETYPE.BREAK_END:
+ current = stack.pop();
+ loops[current.id] = current;
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_START:
+ {
+ const actorRect = actors2.get(msg.from ? msg.from : msg.to.actor);
+ const stackedSize = actorActivations(msg.from ? msg.from : msg.to.actor).length;
+ const x5 = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf4.activationWidth / 2;
+ const toAdd = {
+ startx: x5,
+ stopx: x5 + conf4.activationWidth,
+ actor: msg.from,
+ enabled: true
+ };
+ bounds.activations.push(toAdd);
}
- if (a > b) {
- throw vbb(new Wdb(xke + a + yke + b));
+ break;
+ case diagObj.db.LINETYPE.ACTIVE_END:
+ {
+ const lastActorActivationIdx = bounds.activations.map((a2) => a2.actor).lastIndexOf(msg.from);
+ bounds.activations.splice(lastActorActivationIdx, 1).splice(0, 1);
}
- }
- function eid(a, b, c2) {
- if (b < 0) {
- vid(a, c2);
- } else {
- if (!c2.Ij()) {
- throw vbb(new Wdb(ite + c2.ne() + jte));
- }
- BD(c2, 66).Nj().Vj(a, a.yh(), b);
- }
- }
- function Jlb(a, b, c2, d, e, f2, g, h) {
- var i3;
- i3 = c2;
- while (f2 < g) {
- i3 >= d || b < c2 && h.ue(a[b], a[i3]) <= 0 ? NC(e, f2++, a[b++]) : NC(e, f2++, a[i3++]);
- }
- }
- function yZb(a, b, c2, d, e, f2) {
- this.e = new Rkb();
- this.f = (KAc(), JAc);
- Ekb(this.e, a);
- this.d = b;
- this.a = c2;
- this.b = d;
- this.f = e;
- this.c = f2;
- }
- function VOd(a, b) {
- var c2, d;
- for (d = new Fyd(a); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 26);
- if (PD(b) === PD(c2)) {
- return true;
+ break;
+ }
+ const isNote = msg.placement !== void 0;
+ if (isNote) {
+ noteModel = await buildNoteModel(msg, actors2, diagObj);
+ msg.noteModel = noteModel;
+ stack.forEach((stk) => {
+ current = stk;
+ current.from = common_default.getMin(current.from, noteModel.startx);
+ current.to = common_default.getMax(current.to, noteModel.startx + noteModel.width);
+ current.width = common_default.getMax(current.width, Math.abs(current.from - current.to)) - conf4.labelBoxWidth;
+ });
+ } else {
+ msgModel = buildMessageModel(msg, actors2, diagObj);
+ msg.msgModel = msgModel;
+ if (msgModel.startx && msgModel.stopx && stack.length > 0) {
+ stack.forEach((stk) => {
+ current = stk;
+ if (msgModel.startx === msgModel.stopx) {
+ const from2 = actors2.get(msg.from);
+ const to = actors2.get(msg.to);
+ current.from = common_default.getMin(
+ from2.x - msgModel.width / 2,
+ from2.x - from2.width / 2,
+ current.from
+ );
+ current.to = common_default.getMax(
+ to.x + msgModel.width / 2,
+ to.x + from2.width / 2,
+ current.to
+ );
+ current.width = common_default.getMax(current.width, Math.abs(current.to - current.from)) - conf4.labelBoxWidth;
+ } else {
+ current.from = common_default.getMin(msgModel.startx, current.from);
+ current.to = common_default.getMax(msgModel.stopx, current.to);
+ current.width = common_default.getMax(current.width, msgModel.width) - conf4.labelBoxWidth;
}
- }
- return false;
+ });
}
- function uJb(a) {
- qJb();
- var b, c2, d, e;
- for (c2 = wJb(), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- if (Jkb(b.a, a, 0) != -1) {
- return b;
- }
- }
- return pJb;
+ }
+ }
+ bounds.activations = [];
+ log.debug("Loop type widths:", loops);
+ return loops;
+ }, "calculateLoopBounds");
+ sequenceRenderer_default = {
+ bounds,
+ drawActors,
+ drawActorsPopup,
+ setConf: setConf4,
+ draw: draw11
+ };
+ }
+ });
+
+ // src/diagrams/sequence/sequenceDiagram.ts
+ var sequenceDiagram_exports = {};
+ __export(sequenceDiagram_exports, {
+ diagram: () => diagram11
+ });
+ var diagram11;
+ var init_sequenceDiagram2 = __esm({
+ "src/diagrams/sequence/sequenceDiagram.ts"() {
+ "use strict";
+ init_sequenceDiagram();
+ init_sequenceDb();
+ init_styles8();
+ init_sequenceRenderer();
+ diagram11 = {
+ parser: sequenceDiagram_default,
+ db: sequenceDb_default,
+ renderer: sequenceRenderer_default,
+ styles: styles_default8,
+ init: /* @__PURE__ */ __name(({ wrap: wrap3 }) => {
+ sequenceDb_default.setWrap(wrap3);
+ }, "init")
+ };
+ }
+ });
+
+ // src/diagrams/class/parser/classDiagram.jison
+ var parser13, classDiagram_default;
+ var init_classDiagram = __esm({
+ "src/diagrams/class/parser/classDiagram.jison"() {
+ "use strict";
+ parser13 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 17], $V1 = [1, 18], $V2 = [1, 19], $V3 = [1, 39], $V4 = [1, 40], $V5 = [1, 25], $V6 = [1, 23], $V7 = [1, 24], $V8 = [1, 31], $V9 = [1, 32], $Va = [1, 33], $Vb = [1, 34], $Vc = [1, 35], $Vd = [1, 36], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 28], $Vh = [1, 29], $Vi = [1, 43], $Vj = [1, 30], $Vk = [1, 42], $Vl = [1, 44], $Vm = [1, 41], $Vn = [1, 45], $Vo = [1, 9], $Vp = [1, 8, 9], $Vq = [1, 56], $Vr = [1, 57], $Vs = [1, 58], $Vt = [1, 59], $Vu = [1, 60], $Vv = [1, 61], $Vw = [1, 62], $Vx = [1, 8, 9, 39], $Vy = [1, 74], $Vz = [1, 8, 9, 12, 13, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], $VA = [1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 46, 59, 60, 61, 62, 63, 64, 65, 70, 72, 74, 80, 95, 97, 98], $VB = [13, 74, 80, 95, 97, 98], $VC = [13, 64, 65, 74, 80, 95, 97, 98], $VD = [13, 59, 60, 61, 62, 63, 74, 80, 95, 97, 98], $VE = [1, 93], $VF = [1, 110], $VG = [1, 108], $VH = [1, 102], $VI = [1, 103], $VJ = [1, 104], $VK = [1, 105], $VL = [1, 106], $VM = [1, 107], $VN = [1, 109], $VO = [1, 8, 9, 37, 39, 42], $VP = [1, 8, 9, 21], $VQ = [1, 8, 9, 78], $VR = [1, 8, 9, 21, 73, 74, 78, 80, 81, 82, 83, 84, 85];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "statements": 5, "graphConfig": 6, "CLASS_DIAGRAM": 7, "NEWLINE": 8, "EOF": 9, "statement": 10, "classLabel": 11, "SQS": 12, "STR": 13, "SQE": 14, "namespaceName": 15, "alphaNumToken": 16, "className": 17, "classLiteralName": 18, "GENERICTYPE": 19, "relationStatement": 20, "LABEL": 21, "namespaceStatement": 22, "classStatement": 23, "memberStatement": 24, "annotationStatement": 25, "clickStatement": 26, "styleStatement": 27, "cssClassStatement": 28, "noteStatement": 29, "direction": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "namespaceIdentifier": 36, "STRUCT_START": 37, "classStatements": 38, "STRUCT_STOP": 39, "NAMESPACE": 40, "classIdentifier": 41, "STYLE_SEPARATOR": 42, "members": 43, "CLASS": 44, "ANNOTATION_START": 45, "ANNOTATION_END": 46, "MEMBER": 47, "SEPARATOR": 48, "relation": 49, "NOTE_FOR": 50, "noteText": 51, "NOTE": 52, "direction_tb": 53, "direction_bt": 54, "direction_rl": 55, "direction_lr": 56, "relationType": 57, "lineType": 58, "AGGREGATION": 59, "EXTENSION": 60, "COMPOSITION": 61, "DEPENDENCY": 62, "LOLLIPOP": 63, "LINE": 64, "DOTTED_LINE": 65, "CALLBACK": 66, "LINK": 67, "LINK_TARGET": 68, "CLICK": 69, "CALLBACK_NAME": 70, "CALLBACK_ARGS": 71, "HREF": 72, "STYLE": 73, "ALPHA": 74, "stylesOpt": 75, "CSSCLASS": 76, "style": 77, "COMMA": 78, "styleComponent": 79, "NUM": 80, "COLON": 81, "UNIT": 82, "SPACE": 83, "BRKT": 84, "PCT": 85, "commentToken": 86, "textToken": 87, "graphCodeTokens": 88, "textNoTagsToken": 89, "TAGSTART": 90, "TAGEND": 91, "==": 92, "--": 93, "DEFAULT": 94, "MINUS": 95, "keywords": 96, "UNICODE_TEXT": 97, "BQUOTE_STR": 98, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 7: "CLASS_DIAGRAM", 8: "NEWLINE", 9: "EOF", 12: "SQS", 13: "STR", 14: "SQE", 19: "GENERICTYPE", 21: "LABEL", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 37: "STRUCT_START", 39: "STRUCT_STOP", 40: "NAMESPACE", 42: "STYLE_SEPARATOR", 44: "CLASS", 45: "ANNOTATION_START", 46: "ANNOTATION_END", 47: "MEMBER", 48: "SEPARATOR", 50: "NOTE_FOR", 52: "NOTE", 53: "direction_tb", 54: "direction_bt", 55: "direction_rl", 56: "direction_lr", 59: "AGGREGATION", 60: "EXTENSION", 61: "COMPOSITION", 62: "DEPENDENCY", 63: "LOLLIPOP", 64: "LINE", 65: "DOTTED_LINE", 66: "CALLBACK", 67: "LINK", 68: "LINK_TARGET", 69: "CLICK", 70: "CALLBACK_NAME", 71: "CALLBACK_ARGS", 72: "HREF", 73: "STYLE", 74: "ALPHA", 76: "CSSCLASS", 78: "COMMA", 80: "NUM", 81: "COLON", 82: "UNIT", 83: "SPACE", 84: "BRKT", 85: "PCT", 88: "graphCodeTokens", 90: "TAGSTART", 91: "TAGEND", 92: "==", 93: "--", 94: "DEFAULT", 95: "MINUS", 96: "keywords", 97: "UNICODE_TEXT", 98: "BQUOTE_STR" },
+ productions_: [0, [3, 1], [3, 1], [4, 1], [6, 4], [5, 1], [5, 2], [5, 3], [11, 3], [15, 1], [15, 2], [17, 1], [17, 1], [17, 2], [17, 2], [17, 2], [10, 1], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [22, 4], [22, 5], [36, 2], [38, 1], [38, 2], [38, 3], [23, 1], [23, 3], [23, 4], [23, 6], [41, 2], [41, 3], [25, 4], [43, 1], [43, 2], [24, 1], [24, 2], [24, 1], [24, 1], [20, 3], [20, 4], [20, 4], [20, 5], [29, 3], [29, 2], [30, 1], [30, 1], [30, 1], [30, 1], [49, 3], [49, 2], [49, 2], [49, 1], [57, 1], [57, 1], [57, 1], [57, 1], [57, 1], [58, 1], [58, 1], [26, 3], [26, 4], [26, 3], [26, 4], [26, 4], [26, 5], [26, 3], [26, 4], [26, 4], [26, 5], [26, 4], [26, 5], [26, 5], [26, 6], [27, 3], [28, 3], [75, 1], [75, 3], [77, 1], [77, 2], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [86, 1], [86, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [89, 1], [89, 1], [89, 1], [89, 1], [16, 1], [16, 1], [16, 1], [16, 1], [18, 1], [51, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 8:
+ this.$ = $$[$0 - 1];
+ break;
+ case 9:
+ case 11:
+ case 12:
+ this.$ = $$[$0];
+ break;
+ case 10:
+ case 13:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
+ case 14:
+ case 15:
+ this.$ = $$[$0 - 1] + "~" + $$[$0] + "~";
+ break;
+ case 16:
+ yy.addRelation($$[$0]);
+ break;
+ case 17:
+ $$[$0 - 1].title = yy.cleanupLabel($$[$0]);
+ yy.addRelation($$[$0 - 1]);
+ break;
+ case 27:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 28:
+ case 29:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 30:
+ yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 31:
+ yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]);
+ break;
+ case 32:
+ this.$ = $$[$0];
+ yy.addNamespace($$[$0]);
+ break;
+ case 33:
+ this.$ = [$$[$0]];
+ break;
+ case 34:
+ this.$ = [$$[$0 - 1]];
+ break;
+ case 35:
+ $$[$0].unshift($$[$0 - 2]);
+ this.$ = $$[$0];
+ break;
+ case 37:
+ yy.setCssClass($$[$0 - 2], $$[$0]);
+ break;
+ case 38:
+ yy.addMembers($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 39:
+ yy.setCssClass($$[$0 - 5], $$[$0 - 3]);
+ yy.addMembers($$[$0 - 5], $$[$0 - 1]);
+ break;
+ case 40:
+ this.$ = $$[$0];
+ yy.addClass($$[$0]);
+ break;
+ case 41:
+ this.$ = $$[$0 - 1];
+ yy.addClass($$[$0 - 1]);
+ yy.setClassLabel($$[$0 - 1], $$[$0]);
+ break;
+ case 42:
+ yy.addAnnotation($$[$0], $$[$0 - 2]);
+ break;
+ case 43:
+ this.$ = [$$[$0]];
+ break;
+ case 44:
+ $$[$0].push($$[$0 - 1]);
+ this.$ = $$[$0];
+ break;
+ case 45:
+ break;
+ case 46:
+ yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));
+ break;
+ case 47:
+ break;
+ case 48:
+ break;
+ case 49:
+ this.$ = { "id1": $$[$0 - 2], "id2": $$[$0], relation: $$[$0 - 1], relationTitle1: "none", relationTitle2: "none" };
+ break;
+ case 50:
+ this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: "none" };
+ break;
+ case 51:
+ this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: "none", relationTitle2: $$[$0 - 1] };
+ break;
+ case 52:
+ this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };
+ break;
+ case 53:
+ yy.addNote($$[$0], $$[$0 - 1]);
+ break;
+ case 54:
+ yy.addNote($$[$0]);
+ break;
+ case 55:
+ yy.setDirection("TB");
+ break;
+ case 56:
+ yy.setDirection("BT");
+ break;
+ case 57:
+ yy.setDirection("RL");
+ break;
+ case 58:
+ yy.setDirection("LR");
+ break;
+ case 59:
+ this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };
+ break;
+ case 60:
+ this.$ = { type1: "none", type2: $$[$0], lineType: $$[$0 - 1] };
+ break;
+ case 61:
+ this.$ = { type1: $$[$0 - 1], type2: "none", lineType: $$[$0] };
+ break;
+ case 62:
+ this.$ = { type1: "none", type2: "none", lineType: $$[$0] };
+ break;
+ case 63:
+ this.$ = yy.relationType.AGGREGATION;
+ break;
+ case 64:
+ this.$ = yy.relationType.EXTENSION;
+ break;
+ case 65:
+ this.$ = yy.relationType.COMPOSITION;
+ break;
+ case 66:
+ this.$ = yy.relationType.DEPENDENCY;
+ break;
+ case 67:
+ this.$ = yy.relationType.LOLLIPOP;
+ break;
+ case 68:
+ this.$ = yy.lineType.LINE;
+ break;
+ case 69:
+ this.$ = yy.lineType.DOTTED_LINE;
+ break;
+ case 70:
+ case 76:
+ this.$ = $$[$0 - 2];
+ yy.setClickEvent($$[$0 - 1], $$[$0]);
+ break;
+ case 71:
+ case 77:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 2], $$[$0]);
+ break;
+ case 72:
+ this.$ = $$[$0 - 2];
+ yy.setLink($$[$0 - 1], $$[$0]);
+ break;
+ case 73:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 74:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 2], $$[$0]);
+ break;
+ case 75:
+ this.$ = $$[$0 - 4];
+ yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
+ yy.setTooltip($$[$0 - 3], $$[$0 - 1]);
+ break;
+ case 78:
+ this.$ = $$[$0 - 3];
+ yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
+ break;
+ case 79:
+ this.$ = $$[$0 - 4];
+ yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 80:
+ this.$ = $$[$0 - 3];
+ yy.setLink($$[$0 - 2], $$[$0]);
+ break;
+ case 81:
+ this.$ = $$[$0 - 4];
+ yy.setLink($$[$0 - 3], $$[$0 - 1], $$[$0]);
+ break;
+ case 82:
+ this.$ = $$[$0 - 4];
+ yy.setLink($$[$0 - 3], $$[$0 - 1]);
+ yy.setTooltip($$[$0 - 3], $$[$0]);
+ break;
+ case 83:
+ this.$ = $$[$0 - 5];
+ yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);
+ yy.setTooltip($$[$0 - 4], $$[$0 - 1]);
+ break;
+ case 84:
+ this.$ = $$[$0 - 2];
+ yy.setCssStyle($$[$0 - 1], $$[$0]);
+ break;
+ case 85:
+ yy.setCssClass($$[$0 - 1], $$[$0]);
+ break;
+ case 86:
+ this.$ = [$$[$0]];
+ break;
+ case 87:
+ $$[$0 - 2].push($$[$0]);
+ this.$ = $$[$0 - 2];
+ break;
+ case 89:
+ this.$ = $$[$0 - 1] + $$[$0];
+ break;
}
- function jFd(a) {
- if (a >= 65 && a <= 70) {
- return a - 65 + 10;
- }
- if (a >= 97 && a <= 102) {
- return a - 97 + 10;
- }
- if (a >= 48 && a <= 57) {
- return a - 48;
- }
- return 0;
+ }, "anonymous"),
+ table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: [1, 6], 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o2($Vo, [2, 5], { 8: [1, 46] }), { 8: [1, 47] }, o2($Vp, [2, 16], { 21: [1, 48] }), o2($Vp, [2, 18]), o2($Vp, [2, 19]), o2($Vp, [2, 20]), o2($Vp, [2, 21]), o2($Vp, [2, 22]), o2($Vp, [2, 23]), o2($Vp, [2, 24]), o2($Vp, [2, 25]), o2($Vp, [2, 26]), { 32: [1, 49] }, { 34: [1, 50] }, o2($Vp, [2, 29]), o2($Vp, [2, 45], { 49: 51, 57: 54, 58: 55, 13: [1, 52], 21: [1, 53], 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }), { 37: [1, 63] }, o2($Vx, [2, 36], { 37: [1, 65], 42: [1, 64] }), o2($Vp, [2, 47]), o2($Vp, [2, 48]), { 16: 66, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 67, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 68, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 69, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 74: [1, 70] }, { 13: [1, 71] }, { 16: 37, 17: 72, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: $Vy, 51: 73 }, o2($Vp, [2, 55]), o2($Vp, [2, 56]), o2($Vp, [2, 57]), o2($Vp, [2, 58]), o2($Vz, [2, 11], { 16: 37, 18: 38, 17: 75, 19: [1, 76], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), o2($Vz, [2, 12], { 19: [1, 77] }), { 15: 78, 16: 79, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 80, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o2($VA, [2, 112]), o2($VA, [2, 113]), o2($VA, [2, 114]), o2($VA, [2, 115]), o2([1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], [2, 116]), o2($Vo, [2, 6], { 10: 5, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 17: 20, 36: 21, 41: 22, 16: 37, 18: 38, 5: 81, 31: $V0, 33: $V1, 35: $V2, 40: $V3, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), { 5: 82, 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o2($Vp, [2, 17]), o2($Vp, [2, 27]), o2($Vp, [2, 28]), { 13: [1, 84], 16: 37, 17: 83, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 49: 85, 57: 54, 58: 55, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }, o2($Vp, [2, 46]), { 58: 86, 64: $Vv, 65: $Vw }, o2($VB, [2, 62], { 57: 87, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o2($VC, [2, 63]), o2($VC, [2, 64]), o2($VC, [2, 65]), o2($VC, [2, 66]), o2($VC, [2, 67]), o2($VD, [2, 68]), o2($VD, [2, 69]), { 8: [1, 89], 23: 90, 38: 88, 41: 22, 44: $V4 }, { 16: 91, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 43: 92, 47: $VE }, { 46: [1, 94] }, { 13: [1, 95] }, { 13: [1, 96] }, { 70: [1, 97], 72: [1, 98] }, { 21: $VF, 73: $VG, 74: $VH, 75: 99, 77: 100, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, { 74: [1, 111] }, { 13: $Vy, 51: 112 }, o2($Vp, [2, 54]), o2($Vp, [2, 117]), o2($Vz, [2, 13]), o2($Vz, [2, 14]), o2($Vz, [2, 15]), { 37: [2, 32] }, { 15: 113, 16: 79, 37: [2, 9], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, o2($VO, [2, 40], { 11: 114, 12: [1, 115] }), o2($Vo, [2, 7]), { 9: [1, 116] }, o2($VP, [2, 49]), { 16: 37, 17: 117, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: [1, 119], 16: 37, 17: 118, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o2($VB, [2, 61], { 57: 120, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o2($VB, [2, 60]), { 39: [1, 121] }, { 23: 90, 38: 122, 41: 22, 44: $V4 }, { 8: [1, 123], 39: [2, 33] }, o2($Vx, [2, 37], { 37: [1, 124] }), { 39: [1, 125] }, { 39: [2, 43], 43: 126, 47: $VE }, { 16: 37, 17: 127, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o2($Vp, [2, 70], { 13: [1, 128] }), o2($Vp, [2, 72], { 13: [1, 130], 68: [1, 129] }), o2($Vp, [2, 76], { 13: [1, 131], 71: [1, 132] }), { 13: [1, 133] }, o2($Vp, [2, 84], { 78: [1, 134] }), o2($VQ, [2, 86], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o2($VR, [2, 88]), o2($VR, [2, 90]), o2($VR, [2, 91]), o2($VR, [2, 92]), o2($VR, [2, 93]), o2($VR, [2, 94]), o2($VR, [2, 95]), o2($VR, [2, 96]), o2($VR, [2, 97]), o2($VR, [2, 98]), o2($Vp, [2, 85]), o2($Vp, [2, 53]), { 37: [2, 10] }, o2($VO, [2, 41]), { 13: [1, 136] }, { 1: [2, 4] }, o2($VP, [2, 51]), o2($VP, [2, 50]), { 16: 37, 17: 137, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o2($VB, [2, 59]), o2($Vp, [2, 30]), { 39: [1, 138] }, { 23: 90, 38: 139, 39: [2, 34], 41: 22, 44: $V4 }, { 43: 140, 47: $VE }, o2($Vx, [2, 38]), { 39: [2, 44] }, o2($Vp, [2, 42]), o2($Vp, [2, 71]), o2($Vp, [2, 73]), o2($Vp, [2, 74], { 68: [1, 141] }), o2($Vp, [2, 77]), o2($Vp, [2, 78], { 13: [1, 142] }), o2($Vp, [2, 80], { 13: [1, 144], 68: [1, 143] }), { 21: $VF, 73: $VG, 74: $VH, 77: 145, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, o2($VR, [2, 89]), { 14: [1, 146] }, o2($VP, [2, 52]), o2($Vp, [2, 31]), { 39: [2, 35] }, { 39: [1, 147] }, o2($Vp, [2, 75]), o2($Vp, [2, 79]), o2($Vp, [2, 81]), o2($Vp, [2, 82], { 68: [1, 148] }), o2($VQ, [2, 87], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o2($VO, [2, 8]), o2($Vx, [2, 39]), o2($Vp, [2, 83])],
+ defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 78: [2, 32], 113: [2, 10], 116: [2, 4], 126: [2, 44], 139: [2, 35] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function QHd(a) {
- var b;
- if ((a.Db & 64) != 0)
- return Eid(a);
- b = new Jfb(Eid(a));
- b.a += " (source: ";
- Efb(b, a.d);
- b.a += ")";
- return b.a;
- }
- function OQd(a, b, c2) {
- var d, e;
- e = a.a;
- a.a = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 5, e, a.a);
- !c2 ? c2 = d : Qwd(c2, d);
- }
- return c2;
- }
- function BId(a, b) {
- var c2;
- c2 = (a.Bb & 256) != 0;
- b ? a.Bb |= 256 : a.Bb &= -257;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 2, c2, b));
- }
- function eLd(a, b) {
- var c2;
- c2 = (a.Bb & 256) != 0;
- b ? a.Bb |= 256 : a.Bb &= -257;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c2, b));
- }
- function LPd(a, b) {
- var c2;
- c2 = (a.Bb & 256) != 0;
- b ? a.Bb |= 256 : a.Bb &= -257;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c2, b));
- }
- function CId(a, b) {
- var c2;
- c2 = (a.Bb & 512) != 0;
- b ? a.Bb |= 512 : a.Bb &= -513;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 3, c2, b));
- }
- function fLd(a, b) {
- var c2;
- c2 = (a.Bb & 512) != 0;
- b ? a.Bb |= 512 : a.Bb &= -513;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 9, c2, b));
- }
- function N7d(a, b) {
- var c2;
- if (a.b == -1 && !!a.a) {
- c2 = a.a.Gj();
- a.b = !c2 ? bLd(a.c.Tg(), a.a) : a.c.Xg(a.a.aj(), c2);
- }
- return a.c.Og(a.b, b);
- }
- function meb(a) {
- var b, c2;
- if (a > -129 && a < 128) {
- b = a + 128;
- c2 = (oeb(), neb)[b];
- !c2 && (c2 = neb[b] = new _db(a));
- return c2;
- }
- return new _db(a);
- }
- function Web(a) {
- var b, c2;
- if (a > -129 && a < 128) {
- b = a + 128;
- c2 = (Yeb(), Xeb)[b];
- !c2 && (c2 = Xeb[b] = new Qeb(a));
- return c2;
- }
- return new Qeb(a);
- }
- function L5b(a) {
- var b, c2;
- b = a.k;
- if (b == (j0b(), e0b)) {
- c2 = BD(vNb(a, (wtc(), Hsc)), 61);
- return c2 == (Ucd(), Acd) || c2 == Rcd;
- }
- return false;
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function i1d(a, b, c2) {
- var d, e, f2;
- f2 = (e = nUd(a.b, b), e);
- if (f2) {
- d = BD(V1d(p1d(a, f2), ""), 26);
- if (d) {
- return r1d(a, d, b, c2);
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
}
+ token2 = self2.symbols_[token2] || token2;
}
- return null;
+ return token2;
}
- function l1d(a, b, c2) {
- var d, e, f2;
- f2 = (e = nUd(a.b, b), e);
- if (f2) {
- d = BD(V1d(p1d(a, f2), ""), 26);
- if (d) {
- return s1d(a, d, b, c2);
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
}
+ action = table[state5] && table[state5][symbol];
}
- return null;
- }
- function cTd(a, b) {
- var c2, d;
- for (d = new Fyd(a); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 138);
- if (PD(b) === PD(c2)) {
- return true;
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
}
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
}
- return false;
- }
- function vtd(a, b, c2) {
- var d;
- d = a.gc();
- if (b > d)
- throw vbb(new Cyd(b, d));
- if (a.hi() && a.Hc(c2)) {
- throw vbb(new Wdb(kue));
- }
- a.Xh(b, c2);
- }
- function iqd(a, b) {
- var c2;
- c2 = oo(a.i, b);
- if (c2 == null) {
- throw vbb(new cqd("Node did not exist in input."));
- }
- Yqd(b, c2);
- return null;
- }
- function $hd(a, b) {
- var c2;
- c2 = YKd(a, b);
- if (JD(c2, 322)) {
- return BD(c2, 34);
- }
- throw vbb(new Wdb(ite + b + "' is not a valid attribute"));
- }
- function V2d(a, b, c2) {
- var d, e;
- e = JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
- for (d = 0; d < c2; ++d) {
- d4d(e);
- }
- return e;
- }
- function ede(a) {
- var b, c2, d;
- d = 0;
- c2 = a.length;
- for (b = 0; b < c2; b++) {
- a[b] == 32 || a[b] == 13 || a[b] == 10 || a[b] == 9 || (a[d++] = a[b]);
- }
- return d;
- }
- function lYb(a) {
- var b, c2, d;
- b = new Rkb();
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 594);
- Gkb(b, BD(c2.jf(), 14));
- }
- return b;
- }
- function SSc(a) {
- var b, c2, d;
- b = BD(vNb(a, (mTc(), gTc)), 15);
- for (d = b.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 188);
- Dsb(c2.b.d, c2);
- Dsb(c2.c.b, c2);
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
}
- }
- function b5b(a) {
- switch (BD(vNb(a, (wtc(), Osc)), 303).g) {
+ switch (action[0]) {
case 1:
- yNb(a, Osc, (esc(), bsc));
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
break;
case 2:
- yNb(a, Osc, (esc(), dsc));
- }
- }
- function _Fc(a) {
- var b;
- if (a.g) {
- b = a.c.Rf() ? a.f : a.a;
- bGc(b.a, a.o, true);
- bGc(b.a, a.o, false);
- yNb(a.o, (Nyc(), Vxc), (dcd(), Zbd));
- }
- }
- function loc(a) {
- var b;
- if (!a.a) {
- throw vbb(new Zdb("Cannot offset an unassigned cut."));
- }
- b = a.c - a.b;
- a.b += b;
- noc(a, b);
- ooc(a, b);
- }
- function ckb(a) {
- var b;
- b = a.a[a.c - 1 & a.a.length - 1];
- if (b == null) {
- return null;
- }
- a.c = a.c - 1 & a.a.length - 1;
- NC(a.a, a.c, null);
- return b;
- }
- function zGb(a) {
- var b, c2;
- for (c2 = a.p.a.ec().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 213);
- if (b.f && a.b[b.c] < -1e-10) {
- return b;
- }
- }
- return null;
- }
- function bLb(a, b) {
- switch (a.b.g) {
- case 0:
- case 1:
- return b;
- case 2:
- case 3:
- return new J6c(b.d, 0, b.a, b.b);
- default:
- return null;
- }
- }
- function had(a) {
- switch (a.g) {
- case 2:
- return bad;
- case 1:
- return aad;
- case 4:
- return _9c;
- case 3:
- return dad;
- default:
- return cad;
- }
- }
- function Vcd(a) {
- switch (a.g) {
- case 1:
- return Tcd;
- case 2:
- return Acd;
- case 3:
- return zcd;
- case 4:
- return Rcd;
- default:
- return Scd;
- }
- }
- function Wcd(a) {
- switch (a.g) {
- case 1:
- return Rcd;
- case 2:
- return Tcd;
- case 3:
- return Acd;
- case 4:
- return zcd;
- default:
- return Scd;
- }
- }
- function Xcd(a) {
- switch (a.g) {
- case 1:
- return zcd;
- case 2:
- return Rcd;
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
case 3:
- return Tcd;
- case 4:
- return Acd;
- default:
- return Scd;
- }
- }
- function DPc(a) {
- switch (a) {
- case 0:
- return new OPc();
- case 1:
- return new EPc();
- case 2:
- return new JPc();
- default:
- throw vbb(new Vdb());
- }
- }
- function Kdb(a, b) {
- if (a < b) {
- return -1;
- }
- if (a > b) {
- return 1;
- }
- if (a == b) {
- return a == 0 ? Kdb(1 / a, 1 / b) : 0;
+ return true;
}
- return isNaN(a) ? isNaN(b) ? 0 : 1 : -1;
- }
- function f4b(a, b) {
- Odd(b, "Sort end labels", 1);
- MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new q4b()), new s4b()), new u4b());
- Qdd(b);
}
- function Wxd(a, b, c2) {
- var d, e;
- if (a.ej()) {
- e = a.fj();
- d = sud(a, b, c2);
- a.$i(a.Zi(7, meb(c2), d, b, e));
- return d;
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
} else {
- return sud(a, b, c2);
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- }
- function vAd(a, b) {
- var c2, d, e;
- if (a.d == null) {
- ++a.e;
- --a.f;
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
} else {
- e = b.cd();
- c2 = b.Sh();
- d = (c2 & Ohe) % a.d.length;
- KAd(a, d, xAd(a, d, c2, e));
- }
- }
- function ZId(a, b) {
- var c2;
- c2 = (a.Bb & zte) != 0;
- b ? a.Bb |= zte : a.Bb &= -1025;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 10, c2, b));
- }
- function dJd(a, b) {
- var c2;
- c2 = (a.Bb & Rje) != 0;
- b ? a.Bb |= Rje : a.Bb &= -4097;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 12, c2, b));
- }
- function eJd(a, b) {
- var c2;
- c2 = (a.Bb & Cve) != 0;
- b ? a.Bb |= Cve : a.Bb &= -8193;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 15, c2, b));
- }
- function fJd(a, b) {
- var c2;
- c2 = (a.Bb & Dve) != 0;
- b ? a.Bb |= Dve : a.Bb &= -2049;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 11, c2, b));
- }
- function jOb(a, b) {
- var c2;
- c2 = Kdb(a.b.c, b.b.c);
- if (c2 != 0) {
- return c2;
- }
- c2 = Kdb(a.a.a, b.a.a);
- if (c2 != 0) {
- return c2;
- }
- return Kdb(a.a.b, b.a.b);
- }
- function jqd(a, b) {
- var c2;
- c2 = Ohb(a.k, b);
- if (c2 == null) {
- throw vbb(new cqd("Port did not exist in input."));
- }
- Yqd(b, c2);
- return null;
- }
- function k6d(a) {
- var b, c2;
- for (c2 = l6d(bKd(a)).Kc(); c2.Ob(); ) {
- b = GD(c2.Pb());
- if (Dmd(a, b)) {
- return uFd((tFd(), sFd), b);
- }
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- return null;
- }
- function n3d(a, b) {
- var c2, d, e, f2, g;
- g = S6d(a.e.Tg(), b);
- f2 = 0;
- c2 = BD(a.g, 119);
- for (e = 0; e < a.i; ++e) {
- d = c2[e];
- g.rl(d.ak()) && ++f2;
- }
- return f2;
- }
- function Vsd(a, b, c2) {
- var d, e;
- d = BD(b.We(a.a), 35);
- e = BD(c2.We(a.a), 35);
- return d != null && e != null ? Fcb(d, e) : d != null ? -1 : e != null ? 1 : 0;
- }
- function ved(a, b, c2) {
- var d, e;
- if (a.c) {
- Efd(a.c, b, c2);
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
} else {
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 157);
- ved(d, b, c2);
- }
- }
- }
- function RUb(a, b) {
- var c2, d;
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 46);
- Lkb(a.b.b, c2.b);
- fVb(BD(c2.a, 189), BD(c2.b, 81));
- }
- }
- function tr(a) {
- var b, c2;
- c2 = Kfb(new Ufb(), 91);
- b = true;
- while (a.Ob()) {
- b || (c2.a += She, c2);
- b = false;
- Pfb(c2, a.Pb());
- }
- return (c2.a += "]", c2).a;
- }
- function aJd(a, b) {
- var c2;
- c2 = (a.Bb & oie) != 0;
- b ? a.Bb |= oie : a.Bb &= -16385;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 16, c2, b));
- }
- function MJd(a, b) {
- var c2;
- c2 = (a.Bb & ote) != 0;
- b ? a.Bb |= ote : a.Bb &= -32769;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c2, b));
- }
- function CUd(a, b) {
- var c2;
- c2 = (a.Bb & ote) != 0;
- b ? a.Bb |= ote : a.Bb &= -32769;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c2, b));
- }
- function EUd(a, b) {
- var c2;
- c2 = (a.Bb & Tje) != 0;
- b ? a.Bb |= Tje : a.Bb &= -65537;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 20, c2, b));
- }
- function Tee(a) {
- var b;
- b = KC(TD, $ie, 25, 2, 15, 1);
- a -= Tje;
- b[0] = (a >> 10) + Uje & aje;
- b[1] = (a & 1023) + 56320 & aje;
- return zfb(b, 0, b.length);
- }
- function a_b(a) {
- var b, c2;
- c2 = BD(vNb(a, (Nyc(), Lwc)), 103);
- if (c2 == (ead(), cad)) {
- b = Edb(ED(vNb(a, owc)));
- return b >= 1 ? bad : _9c;
- }
- return c2;
- }
- function rec(a) {
- switch (BD(vNb(a, (Nyc(), Swc)), 218).g) {
- case 1:
- return new Fmc();
- case 3:
- return new wnc();
- default:
- return new zmc();
- }
- }
- function Uzb(a) {
- if (a.c) {
- Uzb(a.c);
- } else if (a.d) {
- throw vbb(new Zdb("Stream already terminated, can't be modified or used"));
- }
- }
- function Mkd(a) {
- var b;
- if ((a.Db & 64) != 0)
- return Eid(a);
- b = new Jfb(Eid(a));
- b.a += " (identifier: ";
- Efb(b, a.k);
- b.a += ")";
- return b.a;
- }
- function ctd(a, b, c2) {
- var d, e;
- d = (Fhd(), e = new xkd(), e);
- vkd(d, b);
- wkd(d, c2);
- !!a && wtd((!a.a && (a.a = new xMd(y2, a, 5)), a.a), d);
- return d;
- }
- function ttb(a, b, c2, d) {
- var e, f2;
- uCb(d);
- uCb(c2);
- e = a.xc(b);
- f2 = e == null ? c2 : Myb(BD(e, 15), BD(c2, 14));
- f2 == null ? a.Bc(b) : a.zc(b, f2);
- return f2;
- }
- function pqb(a) {
- var b, c2, d, e;
- c2 = (b = BD(gdb((d = a.gm, e = d.f, e == CI ? d : e)), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
- rqb(c2, a);
- return c2;
- }
- function hDc(a, b, c2) {
- var d, e;
- for (e = a.a.ec().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 10);
- if (Be(c2, BD(Ikb(b, d.p), 14))) {
- return d;
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
}
}
- return null;
- }
- function Db(b, c2, d) {
- var e;
- try {
- Cb(b, c2, d);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 597)) {
- e = a;
- throw vbb(new ycb(e));
- } else
- throw vbb(a);
- }
- return c2;
- }
- function Qbb(a, b) {
- var c2;
- if (Fbb(a) && Fbb(b)) {
- c2 = a - b;
- if (Kje < c2 && c2 < Ije) {
- return c2;
- }
- }
- return zbb(nD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
- }
- function wbb(a, b) {
- var c2;
- if (Fbb(a) && Fbb(b)) {
- c2 = a + b;
- if (Kje < c2 && c2 < Ije) {
- return c2;
- }
- }
- return zbb(cD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
- }
- function Ibb(a, b) {
- var c2;
- if (Fbb(a) && Fbb(b)) {
- c2 = a * b;
- if (Kje < c2 && c2 < Ije) {
- return c2;
- }
- }
- return zbb(gD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
- }
- function V_b(a, b) {
- var c2;
- a.i || N_b(a);
- c2 = BD(Mpb(a.g, b), 46);
- return !c2 ? (mmb(), mmb(), jmb) : new Jib(a.j, BD(c2.a, 19).a, BD(c2.b, 19).a);
- }
- function Drb(a, b, c2) {
- var d;
- d = a.a.get(b);
- a.a.set(b, c2 === void 0 ? null : c2);
- if (d === void 0) {
- ++a.c;
- zpb(a.b);
- } else {
- ++a.d;
- }
- return d;
- }
- function kNb(a, b, c2) {
- a.n = IC(XD, [nie, Sje], [364, 25], 14, [c2, QD($wnd.Math.ceil(b / 32))], 2);
- a.o = b;
- a.p = c2;
- a.j = b - 1 >> 1;
- a.k = c2 - 1 >> 1;
- }
- function Gub() {
- zub();
- var a, b, c2;
- c2 = yub++ + Date.now();
- a = QD($wnd.Math.floor(c2 * lke)) & nke;
- b = QD(c2 - a * mke);
- this.a = a ^ 1502;
- this.b = b ^ kke;
- }
- function O_b(a) {
- var b, c2, d;
- b = new Rkb();
- for (d = new olb(a.j); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 11);
- Ekb(b, c2.b);
- }
- return Qb(b), new sl(b);
- }
- function R_b(a) {
- var b, c2, d;
- b = new Rkb();
- for (d = new olb(a.j); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 11);
- Ekb(b, c2.e);
- }
- return Qb(b), new sl(b);
- }
- function U_b(a) {
- var b, c2, d;
- b = new Rkb();
- for (d = new olb(a.j); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 11);
- Ekb(b, c2.g);
- }
- return Qb(b), new sl(b);
- }
- function n6d(a) {
- var b, c2;
- for (c2 = o6d(bKd(WId(a))).Kc(); c2.Ob(); ) {
- b = GD(c2.Pb());
- if (Dmd(a, b))
- return FFd((EFd(), DFd), b);
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- return null;
- }
- function wm(a) {
- var b, c2, d;
- for (c2 = 0, d = a.length; c2 < d; c2++) {
- if (a[c2] == null) {
- throw vbb(new Heb("at index " + c2));
- }
- }
- b = a;
- return new amb(b);
- }
- function wid(a, b) {
- var c2;
- c2 = YKd(a.Tg(), b);
- if (JD(c2, 99)) {
- return BD(c2, 18);
- }
- throw vbb(new Wdb(ite + b + "' is not a valid reference"));
- }
- function Tdb(a) {
- var b;
- b = Hcb(a);
- if (b > 34028234663852886e22) {
- return Pje;
- } else if (b < -34028234663852886e22) {
- return Qje;
- }
- return b;
- }
- function aeb(a) {
- a -= a >> 1 & 1431655765;
- a = (a >> 2 & 858993459) + (a & 858993459);
- a = (a >> 4) + a & 252645135;
- a += a >> 8;
- a += a >> 16;
- return a & 63;
- }
- function Ev(a) {
- var b, c2, d, e;
- b = new cq(a.Hd().gc());
- e = 0;
- for (d = vr(a.Hd().Kc()); d.Ob(); ) {
- c2 = d.Pb();
- bq(b, c2, meb(e++));
- }
- return fn(b.a);
- }
- function Uyb(a, b) {
- var c2, d, e;
- e = new Lqb();
- for (d = b.vc().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 42);
- Rhb(e, c2.cd(), Yyb(a, BD(c2.dd(), 15)));
- }
- return e;
- }
- function EZc(a, b) {
- a.n.c.length == 0 && Ekb(a.n, new VZc(a.s, a.t, a.i));
- Ekb(a.b, b);
- QZc(BD(Ikb(a.n, a.n.c.length - 1), 211), b);
- GZc(a, b);
- }
- function LFb(a) {
- if (a.c != a.b.b || a.i != a.g.b) {
- a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- Gkb(a.a, a.b);
- Gkb(a.a, a.g);
- a.c = a.b.b;
- a.i = a.g.b;
- }
- return a.a;
- }
- function Ycc(a, b) {
- var c2, d, e;
- e = 0;
- for (d = BD(b.Kb(a), 20).Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 17);
- Ccb(DD(vNb(c2, (wtc(), ltc)))) || ++e;
- }
- return e;
- }
- function efc(a, b) {
- var c2, d, e;
- d = tgc(b);
- e = Edb(ED(pBc(d, (Nyc(), lyc))));
- c2 = $wnd.Math.max(0, e / 2 - 0.5);
- cfc(b, c2, 1);
- Ekb(a, new Dfc(b, c2));
- }
- function Ctc() {
- Ctc = ccb;
- Btc = new Dtc(ane, 0);
- xtc = new Dtc("FIRST", 1);
- ytc = new Dtc(Gne, 2);
- ztc = new Dtc("LAST", 3);
- Atc = new Dtc(Hne, 4);
- }
- function Aad() {
- Aad = ccb;
- zad = new Bad(ole, 0);
- xad = new Bad("POLYLINE", 1);
- wad = new Bad("ORTHOGONAL", 2);
- yad = new Bad("SPLINES", 3);
- }
- function zYc() {
- zYc = ccb;
- xYc = new AYc("ASPECT_RATIO_DRIVEN", 0);
- yYc = new AYc("MAX_SCALE_DRIVEN", 1);
- wYc = new AYc("AREA_DRIVEN", 2);
- }
- function Y$c() {
- Y$c = ccb;
- V$c = new Z$c("P1_STRUCTURE", 0);
- W$c = new Z$c("P2_PROCESSING_ORDER", 1);
- X$c = new Z$c("P3_EXECUTION", 2);
- }
- function tVc() {
- tVc = ccb;
- sVc = new uVc("OVERLAP_REMOVAL", 0);
- qVc = new uVc("COMPACTION", 1);
- rVc = new uVc("GRAPH_SIZE_CALCULATION", 2);
- }
- function Jy(a, b) {
- Iy();
- return My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b));
- }
- function yOc(a, b) {
- var c2, d;
- c2 = Jsb(a, 0);
- while (c2.b != c2.d.c) {
- d = Gdb(ED(Xsb(c2)));
- if (d == b) {
- return;
- } else if (d > b) {
- Ysb(c2);
- break;
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
}
+ return false;
}
- Vsb(c2, b);
- }
- function t4c(a, b) {
- var c2, d, e, f2, g;
- c2 = b.f;
- Xrb(a.c.d, c2, b);
- if (b.g != null) {
- for (e = b.g, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- Xrb(a.c.e, d, b);
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
}
}
- }
- function Ilb(a, b, c2, d) {
- var e, f2, g;
- for (e = b + 1; e < c2; ++e) {
- for (f2 = e; f2 > b && d.ue(a[f2 - 1], a[f2]) > 0; --f2) {
- g = a[f2];
- NC(a, f2, a[f2 - 1]);
- NC(a, f2 - 1, g);
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
}
+ return false;
}
- }
- function did(a, b, c2, d) {
- if (b < 0) {
- uid(a, c2, d);
+ if (this._input === "") {
+ return this.EOF;
} else {
- if (!c2.Ij()) {
- throw vbb(new Wdb(ite + c2.ne() + jte));
- }
- BD(c2, 66).Nj().Tj(a, a.yh(), b, d);
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- }
- function xFb(a, b) {
- if (b == a.d) {
- return a.e;
- } else if (b == a.e) {
- return a.d;
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
} else {
- throw vbb(new Wdb("Node " + b + " not part of edge " + a));
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
}
- }
- function iEb(a, b) {
- switch (b.g) {
- case 2:
- return a.b;
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: {},
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ return 53;
+ break;
case 1:
- return a.c;
- case 4:
- return a.d;
- case 3:
- return a.a;
- default:
- return false;
- }
- }
- function GVb(a, b) {
- switch (b.g) {
+ return 54;
+ break;
case 2:
- return a.b;
- case 1:
- return a.c;
- case 4:
- return a.d;
- case 3:
- return a.a;
- default:
- return false;
- }
- }
- function Xkd(a, b, c2, d) {
- switch (b) {
- case 3:
- return a.f;
- case 4:
- return a.g;
- case 5:
- return a.i;
- case 6:
- return a.j;
- }
- return Ekd(a, b, c2, d);
- }
- function Ljc(a) {
- if (a.k != (j0b(), h0b)) {
- return false;
- }
- return FAb(new YAb(null, new Lub(new Sr(ur(U_b(a).a.Kc(), new Sq())))), new Mjc());
- }
- function MEd(a) {
- if (a.e == null) {
- return a;
- } else
- !a.c && (a.c = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, null));
- return a.c;
- }
- function VC(a, b) {
- if (a.h == Gje && a.m == 0 && a.l == 0) {
- b && (QC = TC(0, 0, 0));
- return SC((wD(), uD));
- }
- b && (QC = TC(a.l, a.m, a.h));
- return TC(0, 0, 0);
- }
- function fcb(a) {
- var b;
- if (Array.isArray(a) && a.im === gcb) {
- return hdb(rb(a)) + "@" + (b = tb(a) >>> 0, b.toString(16));
- }
- return a.toString();
- }
- function Rpb(a) {
- var b;
- this.a = (b = BD(a.e && a.e(), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
- this.b = KC(SI, Uhe, 1, this.a.a.length, 5, 1);
- }
- function _Ob(a) {
- var b, c2, d;
- this.a = new zsb();
- for (d = new olb(a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 14);
- b = new MOb();
- GOb(b, c2);
- Qqb(this.a, b);
- }
- }
- function cKb(a) {
- $Jb();
- var b, c2, d, e;
- b = a.o.b;
- for (d = BD(BD(Qc(a.r, (Ucd(), Rcd)), 21), 84).Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 111);
- e = c2.e;
- e.b += b;
- }
- }
- function ag(a) {
- var b;
- if (a.b) {
- ag(a.b);
- if (a.b.d != a.c) {
- throw vbb(new Apb());
- }
- } else if (a.d.dc()) {
- b = BD(a.f.c.xc(a.e), 14);
- !!b && (a.d = b);
- }
- }
- function fFd(a) {
- var b;
- if (a == null)
- return true;
- b = a.length;
- return b > 0 && (BCb(b - 1, a.length), a.charCodeAt(b - 1) == 58) && !OEd(a, CEd, DEd);
- }
- function OEd(a, b, c2) {
- var d, e;
- for (d = 0, e = a.length; d < e; d++) {
- if (_Ed((BCb(d, a.length), a.charCodeAt(d)), b, c2))
- return true;
- }
- return false;
- }
- function JOb(a, b) {
- var c2, d;
- for (d = a.e.a.ec().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 266);
- if (t6c(b, c2.d) || o6c(b, c2.d)) {
- return true;
- }
- }
- return false;
- }
- function Q9b(a, b) {
- var c2, d, e;
- d = N9b(a, b);
- e = d[d.length - 1] / 2;
- for (c2 = 0; c2 < d.length; c2++) {
- if (d[c2] >= e) {
- return b.c + c2;
- }
- }
- return b.c + b.b.gc();
- }
- function NCd(a, b) {
- LCd();
- var c2, d, e, f2;
- d = KLd(a);
- e = b;
- Klb(d, 0, d.length, e);
- for (c2 = 0; c2 < d.length; c2++) {
- f2 = MCd(a, d[c2], c2);
- c2 != f2 && Wxd(a, c2, f2);
- }
- }
- function EHb(a, b) {
- var c2, d, e, f2, g, h;
- d = 0;
- c2 = 0;
- for (f2 = b, g = 0, h = f2.length; g < h; ++g) {
- e = f2[g];
- if (e > 0) {
- d += e;
- ++c2;
- }
- }
- c2 > 1 && (d += a.d * (c2 - 1));
- return d;
- }
- function Htd(a) {
- var b, c2, d;
- d = new Hfb();
- d.a += "[";
- for (b = 0, c2 = a.gc(); b < c2; ) {
- Efb(d, xfb(a.ki(b)));
- ++b < c2 && (d.a += She, d);
- }
- d.a += "]";
- return d.a;
- }
- function fsd(a) {
- var b, c2, d, e, f2;
- f2 = hsd(a);
- c2 = Fhe(a.c);
- d = !c2;
- if (d) {
- e = new wB();
- cC(f2, "knownLayouters", e);
- b = new qsd(e);
- reb(a.c, b);
- }
- return f2;
- }
- function Ce(a, b) {
- var c2, d, e;
- uCb(b);
- c2 = false;
- for (d = new olb(a); d.a < d.c.c.length; ) {
- e = mlb(d);
- if (ze(b, e, false)) {
- nlb(d);
- c2 = true;
- }
- }
- return c2;
- }
- function UGb(a) {
- var b, c2, d;
- d = Edb(ED(a.a.We((Y9c(), Q9c))));
- for (c2 = new olb(a.a.xf()); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 680);
- XGb(a, b, d);
- }
- }
- function MUb(a, b) {
- var c2, d;
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 46);
- Ekb(a.b.b, BD(c2.b, 81));
- eVb(BD(c2.a, 189), BD(c2.b, 81));
- }
- }
- function XCc(a, b, c2) {
- var d, e;
- e = a.a.b;
- for (d = e.c.length; d < c2; d++) {
- Dkb(e, 0, new H1b(a.a));
- }
- $_b(b, BD(Ikb(e, e.c.length - c2), 29));
- a.b[b.p] = c2;
- }
- function JTb(a, b, c2) {
- var d;
- d = c2;
- !d && (d = Ydd(new Zdd(), 0));
- Odd(d, Vme, 2);
- qZb(a.b, b, Udd(d, 1));
- LTb(a, b, Udd(d, 1));
- _Yb(b, Udd(d, 1));
- Qdd(d);
- }
- function eKc(a, b, c2, d, e) {
- FJc();
- AFb(DFb(CFb(BFb(EFb(new FFb(), 0), e.d.e - a), b), e.d));
- AFb(DFb(CFb(BFb(EFb(new FFb(), 0), c2 - e.a.e), e.a), d));
- }
- function e$c(a, b, c2, d, e, f2) {
- this.a = a;
- this.c = b;
- this.b = c2;
- this.f = d;
- this.d = e;
- this.e = f2;
- this.c > 0 && this.b > 0 && q$c(this.c, this.b, this.a);
- }
- function ezc(a) {
- dzc();
- this.c = Ou(OC(GC(h0, 1), Uhe, 831, 0, [Uyc]));
- this.b = new Lqb();
- this.a = a;
- Rhb(this.b, bzc, 1);
- Hkb(czc, new Xed(this));
- }
- function I2c(a, b) {
- var c2;
- if (a.d) {
- if (Mhb(a.b, b)) {
- return BD(Ohb(a.b, b), 51);
- } else {
- c2 = b.Kf();
- Rhb(a.b, b, c2);
- return c2;
- }
- } else {
- return b.Kf();
- }
- }
- function Kgb(a, b) {
- var c2;
- if (PD(a) === PD(b)) {
- return true;
- }
- if (JD(b, 91)) {
- c2 = BD(b, 91);
- return a.e == c2.e && a.d == c2.d && Lgb(a, c2.a);
- }
- return false;
- }
- function Zcd(a) {
- Ucd();
- switch (a.g) {
- case 4:
- return Acd;
- case 1:
- return zcd;
- case 3:
- return Rcd;
- case 2:
- return Tcd;
- default:
- return Scd;
- }
- }
- function Ykd(a, b) {
- switch (b) {
- case 3:
- return a.f != 0;
- case 4:
- return a.g != 0;
- case 5:
- return a.i != 0;
- case 6:
- return a.j != 0;
- }
- return Hkd(a, b);
- }
- function gWc(a) {
- switch (a.g) {
- case 0:
- return new FXc();
- case 1:
- return new IXc();
- default:
- throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function QUc(a) {
- switch (a.g) {
- case 0:
- return new CXc();
- case 1:
- return new MXc();
- default:
- throw vbb(new Wdb(Dne + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function b1c(a) {
- switch (a.g) {
- case 0:
- return new s1c();
- case 1:
- return new w1c();
- default:
- throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function qWc(a) {
- switch (a.g) {
- case 1:
- return new SVc();
- case 2:
- return new KVc();
- default:
- throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function ryb(a) {
- var b, c2;
- if (a.b) {
- return a.b;
- }
- c2 = lyb ? null : a.d;
- while (c2) {
- b = lyb ? null : c2.b;
- if (b) {
- return b;
- }
- c2 = lyb ? null : c2.d;
- }
- return $xb(), Zxb;
- }
- function hhb(a) {
- var b, c2, d;
- if (a.e == 0) {
- return 0;
- }
- b = a.d << 5;
- c2 = a.a[a.d - 1];
- if (a.e < 0) {
- d = Mgb(a);
- if (d == a.d - 1) {
- --c2;
- c2 = c2 | 0;
- }
- }
- b -= heb(c2);
- return b;
- }
- function bhb(a) {
- var b, c2, d;
- if (a < Fgb.length) {
- return Fgb[a];
- }
- c2 = a >> 5;
- b = a & 31;
- d = KC(WD, oje, 25, c2 + 1, 15, 1);
- d[c2] = 1 << b;
- return new Vgb(1, c2 + 1, d);
- }
- function O2b(a) {
- var b, c2, d;
- c2 = a.zg();
- if (c2) {
- b = a.Ug();
- if (JD(b, 160)) {
- d = O2b(BD(b, 160));
- if (d != null) {
- return d + "." + c2;
- }
- }
- return c2;
- }
- return null;
- }
- function ze(a, b, c2) {
- var d, e;
- for (e = a.Kc(); e.Ob(); ) {
- d = e.Pb();
- if (PD(b) === PD(d) || b != null && pb(b, d)) {
- c2 && e.Qb();
- return true;
- }
- }
- return false;
- }
- function zvd(a, b, c2) {
- var d, e;
- ++a.j;
- if (c2.dc()) {
- return false;
- } else {
- for (e = c2.Kc(); e.Ob(); ) {
- d = e.Pb();
- a.Hi(b, a.oi(b, d));
- ++b;
- }
- return true;
- }
- }
- function yA(a, b, c2, d) {
- var e, f2;
- f2 = c2 - b;
- if (f2 < 3) {
- while (f2 < 3) {
- a *= 10;
- ++f2;
- }
- } else {
- e = 1;
- while (f2 > 3) {
- e *= 10;
- --f2;
- }
- a = (a + (e >> 1)) / e | 0;
- }
- d.i = a;
- return true;
- }
- function XUb(a) {
- LUb();
- return Bcb(), GVb(BD(a.a, 81).j, BD(a.b, 103)) || BD(a.a, 81).d.e != 0 && GVb(BD(a.a, 81).j, BD(a.b, 103)) ? true : false;
- }
- function s3c(a) {
- p3c();
- if (BD(a.We((Y9c(), b9c)), 174).Hc((Idd(), Gdd))) {
- BD(a.We(x9c), 174).Fc((rcd(), qcd));
- BD(a.We(b9c), 174).Mc(Gdd);
- }
- }
- function Gxd(a, b) {
- var c2, d;
- if (!b) {
- return false;
- } else {
- for (c2 = 0; c2 < a.i; ++c2) {
- d = BD(a.g[c2], 366);
- if (d.Di(b)) {
- return false;
- }
- }
- return wtd(a, b);
- }
- }
- function pvd(a) {
- var b, c2, d, e;
- b = new wB();
- for (e = new Dnb(a.b.Kc()); e.b.Ob(); ) {
- d = BD(e.b.Pb(), 686);
- c2 = lsd(d);
- uB(b, b.a.length, c2);
- }
- return b.a;
- }
- function cLb(a) {
- var b;
- !a.c && (a.c = new VKb());
- Okb(a.d, new jLb());
- _Kb(a);
- b = UKb(a);
- MAb(new YAb(null, new Kub(a.d, 16)), new CLb(a));
- return b;
- }
- function mKd(a) {
- var b;
- if ((a.Db & 64) != 0)
- return qnd(a);
- b = new Jfb(qnd(a));
- b.a += " (instanceClassName: ";
- Efb(b, a.D);
- b.a += ")";
- return b.a;
- }
- function Pqd(a, b) {
- var c2, d, e, f2;
- if (b) {
- e = Xpd(b, "x");
- c2 = new bsd(a);
- hmd(c2.a, (uCb(e), e));
- f2 = Xpd(b, "y");
- d = new csd(a);
- imd(d.a, (uCb(f2), f2));
- }
- }
- function Eqd(a, b) {
- var c2, d, e, f2;
- if (b) {
- e = Xpd(b, "x");
- c2 = new Yrd(a);
- omd(c2.a, (uCb(e), e));
- f2 = Xpd(b, "y");
- d = new _rd(a);
- pmd(d.a, (uCb(f2), f2));
- }
- }
- function bLd(a, b) {
- var c2, d, e;
- c2 = (a.i == null && TKd(a), a.i);
- d = b.aj();
- if (d != -1) {
- for (e = c2.length; d < e; ++d) {
- if (c2[d] == b) {
- return d;
- }
- }
- }
- return -1;
- }
- function tNd(a) {
- var b, c2, d, e, f2;
- c2 = BD(a.g, 674);
- for (d = a.i - 1; d >= 0; --d) {
- b = c2[d];
- for (e = 0; e < d; ++e) {
- f2 = c2[e];
- if (uNd(a, b, f2)) {
- tud(a, d);
- break;
- }
- }
- }
- }
- function jCb(b) {
- var c2 = b.e;
- function d(a) {
- if (!a || a.length == 0) {
- return "";
- }
- return " " + a.join("\n ");
- }
- return c2 && (c2.stack || d(b[Yie]));
- }
- function nm(a) {
- im();
- var b;
- b = a.Pc();
- switch (b.length) {
- case 0:
- return hm;
- case 1:
- return new my(Qb(b[0]));
- default:
- return new ux(wm(b));
- }
- }
- function W_b(a, b) {
- switch (b.g) {
- case 1:
- return Nq(a.j, (z0b(), u0b));
- case 2:
- return Nq(a.j, (z0b(), w0b));
- default:
- return mmb(), mmb(), jmb;
- }
- }
- function $kd(a, b) {
- switch (b) {
+ return 55;
+ break;
case 3:
- ald(a, 0);
- return;
+ return 56;
+ break;
case 4:
- cld(a, 0);
- return;
+ break;
case 5:
- dld(a, 0);
- return;
+ break;
case 6:
- eld(a, 0);
- return;
- }
- Jkd(a, b);
- }
- function dzc() {
- dzc = ccb;
- Vyc();
- bzc = (Nyc(), vyc);
- czc = Ou(OC(GC(Q3, 1), zqe, 146, 0, [kyc, lyc, nyc, oyc, ryc, syc, tyc, uyc, xyc, zyc, myc, pyc, wyc]));
- }
- function Y9b(a) {
- var b, c2;
- b = a.d == (Apc(), vpc);
- c2 = U9b(a);
- b && !c2 || !b && c2 ? yNb(a.a, (Nyc(), mwc), (F7c(), D7c)) : yNb(a.a, (Nyc(), mwc), (F7c(), C7c));
- }
- function XAb(a, b) {
- var c2;
- c2 = BD(GAb(a, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- return c2.Qc(aBb(c2.gc()));
- }
- function Ded() {
- Ded = ccb;
- Ced = new Eed("SIMPLE", 0);
- zed = new Eed("GROUP_DEC", 1);
- Bed = new Eed("GROUP_MIXED", 2);
- Aed = new Eed("GROUP_INC", 3);
- }
- function CWd() {
- CWd = ccb;
- AWd = new DWd();
- tWd = new GWd();
- uWd = new JWd();
- vWd = new MWd();
- wWd = new PWd();
- xWd = new SWd();
- yWd = new VWd();
- zWd = new YWd();
- BWd = new _Wd();
- }
- function FHb(a, b, c2) {
- tHb();
- oHb.call(this);
- this.a = IC(oN, [nie, ile], [595, 212], 0, [sHb, rHb], 2);
- this.c = new I6c();
- this.g = a;
- this.f = b;
- this.d = c2;
- }
- function pNb(a, b) {
- this.n = IC(XD, [nie, Sje], [364, 25], 14, [b, QD($wnd.Math.ceil(a / 32))], 2);
- this.o = a;
- this.p = b;
- this.j = a - 1 >> 1;
- this.k = b - 1 >> 1;
- }
- function r3b(a, b) {
- Odd(b, "End label post-processing", 1);
- MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new w3b()), new y3b()), new A3b());
- Qdd(b);
- }
- function NLc(a, b, c2) {
- var d, e;
- d = Edb(a.p[b.i.p]) + Edb(a.d[b.i.p]) + b.n.b + b.a.b;
- e = Edb(a.p[c2.i.p]) + Edb(a.d[c2.i.p]) + c2.n.b + c2.a.b;
- return e - d;
- }
- function xhb(a, b, c2) {
- var d, e;
- d = xbb(c2, Yje);
- for (e = 0; ybb(d, 0) != 0 && e < b; e++) {
- d = wbb(d, xbb(a[e], Yje));
- a[e] = Tbb(d);
- d = Obb(d, 32);
- }
- return Tbb(d);
- }
- function $Ed(a) {
- var b, c2, d, e;
- e = 0;
- for (c2 = 0, d = a.length; c2 < d; c2++) {
- b = (BCb(c2, a.length), a.charCodeAt(c2));
- b < 64 && (e = Mbb(e, Nbb(1, b)));
- }
- return e;
- }
- function S9d(a) {
- var b;
- return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b));
- }
- function T9d(a) {
- var b;
- return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b));
- }
- function xud(a, b) {
- var c2;
- if (a.i > 0) {
- if (b.length < a.i) {
- c2 = izd(rb(b).c, a.i);
- b = c2;
- }
- $fb(a.g, 0, b, 0, a.i);
- }
- b.length > a.i && NC(b, a.i, null);
- return b;
- }
- function Sxd(a, b, c2) {
- var d, e, f2;
- if (a.ej()) {
- d = a.i;
- f2 = a.fj();
- kud(a, d, b);
- e = a.Zi(3, null, b, d, f2);
- !c2 ? c2 = e : c2.Ei(e);
- } else {
- kud(a, a.i, b);
- }
- return c2;
- }
- function HMd(a, b, c2) {
- var d, e;
- d = new pSd(a.e, 4, 10, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), null, HLd(a, b), false);
- !c2 ? c2 = d : c2.Ei(d);
- return c2;
- }
- function GMd(a, b, c2) {
- var d, e;
- d = new pSd(a.e, 3, 10, null, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), HLd(a, b), false);
- !c2 ? c2 = d : c2.Ei(d);
- return c2;
- }
- function _Jb(a) {
- $Jb();
- var b;
- b = new g7c(BD(a.e.We((Y9c(), _8c)), 8));
- if (a.B.Hc((Idd(), Bdd))) {
- b.a <= 0 && (b.a = 20);
- b.b <= 0 && (b.b = 20);
- }
- return b;
- }
- function Lzc(a) {
- Izc();
- var b;
- (!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Cxc)) ? b = BD(vNb(a, Cxc), 197) : b = BD(vNb(Q_b(a), Dxc), 197);
- return b;
- }
- function pBc(a, b) {
- var c2, d;
- d = null;
- if (wNb(a, (Nyc(), qyc))) {
- c2 = BD(vNb(a, qyc), 94);
- c2.Xe(b) && (d = c2.We(b));
- }
- d == null && (d = vNb(Q_b(a), b));
- return d;
- }
- function Ze(a, b) {
- var c2, d, e;
- if (JD(b, 42)) {
- c2 = BD(b, 42);
- d = c2.cd();
- e = Hv(a.Rc(), d);
- return Hb(e, c2.dd()) && (e != null || a.Rc()._b(d));
- }
- return false;
- }
- function qAd(a, b) {
- var c2, d, e;
- if (a.f > 0) {
- a.qj();
- d = b == null ? 0 : tb(b);
- e = (d & Ohe) % a.d.length;
- c2 = xAd(a, e, d, b);
- return c2 != -1;
- } else {
- return false;
- }
- }
- function AAd(a, b) {
- var c2, d, e;
- if (a.f > 0) {
- a.qj();
- d = b == null ? 0 : tb(b);
- e = (d & Ohe) % a.d.length;
- c2 = wAd(a, e, d, b);
- if (c2) {
- return c2.dd();
- }
- }
- return null;
- }
- function R2d(a, b) {
- var c2, d, e, f2;
- f2 = S6d(a.e.Tg(), b);
- c2 = BD(a.g, 119);
- for (e = 0; e < a.i; ++e) {
- d = c2[e];
- if (f2.rl(d.ak())) {
- return false;
- }
- }
- return true;
- }
- function B6d(a) {
- if (a.b == null) {
- while (a.a.Ob()) {
- a.b = a.a.Pb();
- if (!BD(a.b, 49).Zg()) {
- return true;
- }
- }
- a.b = null;
- return false;
- } else {
- return true;
- }
- }
- function Myd(b, c2) {
- b.mj();
- try {
- b.d.Vc(b.e++, c2);
- b.f = b.d.j;
- b.g = -1;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- throw vbb(new Apb());
- } else
- throw vbb(a);
- }
- }
- function IA(a, b) {
- GA();
- var c2, d;
- c2 = LA((KA(), KA(), JA));
- d = null;
- b == c2 && (d = BD(Phb(FA, a), 615));
- if (!d) {
- d = new HA(a);
- b == c2 && Shb(FA, a, d);
- }
- return d;
- }
- function Epb(a, b) {
- var c2, d;
- a.a = wbb(a.a, 1);
- a.c = $wnd.Math.min(a.c, b);
- a.b = $wnd.Math.max(a.b, b);
- a.d += b;
- c2 = b - a.f;
- d = a.e + c2;
- a.f = d - a.e - c2;
- a.e = d;
- }
- function ogb(a, b) {
- var c2;
- a.c = b;
- a.a = hhb(b);
- a.a < 54 && (a.f = (c2 = b.d > 1 ? Mbb(Nbb(b.a[1], 32), xbb(b.a[0], Yje)) : xbb(b.a[0], Yje), Sbb(Ibb(b.e, c2))));
- }
- function Hbb(a, b) {
- var c2;
- if (Fbb(a) && Fbb(b)) {
- c2 = a % b;
- if (Kje < c2 && c2 < Ije) {
- return c2;
- }
- }
- return zbb((UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, true), QC));
- }
- function p5b(a, b) {
- var c2;
- m5b(b);
- c2 = BD(vNb(a, (Nyc(), Rwc)), 276);
- !!c2 && yNb(a, Rwc, Tqc(c2));
- n5b(a.c);
- n5b(a.f);
- o5b(a.d);
- o5b(BD(vNb(a, wxc), 207));
- }
- function rHc(a) {
- this.e = KC(WD, oje, 25, a.length, 15, 1);
- this.c = KC(sbb, dle, 25, a.length, 16, 1);
- this.b = KC(sbb, dle, 25, a.length, 16, 1);
- this.f = 0;
- }
- function BDc(a) {
- var b, c2;
- a.j = KC(UD, Vje, 25, a.p.c.length, 15, 1);
- for (c2 = new olb(a.p); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- a.j[b.p] = b.o.b / a.i;
- }
- }
- function yic(a) {
- var b;
- if (a.c == 0) {
- return;
- }
- b = BD(Ikb(a.a, a.b), 287);
- b.b == 1 ? (++a.b, a.b < a.a.c.length && Cic(BD(Ikb(a.a, a.b), 287))) : --b.b;
- --a.c;
- }
- function eac(a) {
- var b;
- b = a.a;
- do {
- b = BD(Rr(new Sr(ur(U_b(b).a.Kc(), new Sq()))), 17).d.i;
- b.k == (j0b(), g0b) && Ekb(a.e, b);
- } while (b.k == (j0b(), g0b));
- }
- function idd() {
- idd = ccb;
- fdd = new q0b(15);
- edd = new Osd((Y9c(), f9c), fdd);
- hdd = new Osd(T9c, 15);
- gdd = new Osd(E9c, meb(0));
- ddd = new Osd(r8c, tme);
- }
- function tdd() {
- tdd = ccb;
- rdd = new udd("PORTS", 0);
- sdd = new udd("PORT_LABELS", 1);
- qdd = new udd("NODE_LABELS", 2);
- pdd = new udd("MINIMUM_SIZE", 3);
- }
- function Ree(a, b) {
- var c2, d;
- d = b.length;
- for (c2 = 0; c2 < d; c2 += 2)
- Ufe(a, (BCb(c2, b.length), b.charCodeAt(c2)), (BCb(c2 + 1, b.length), b.charCodeAt(c2 + 1)));
- }
- function _Zc(a, b, c2) {
- var d, e, f2, g;
- f2 = b - a.e;
- g = c2 - a.f;
- for (e = new olb(a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 187);
- OZc(d, d.s + f2, d.t + g);
- }
- a.e = b;
- a.f = c2;
- }
- function jUc(a, b) {
- var c2, d, e, f2;
- f2 = b.b.b;
- a.a = new Psb();
- a.b = KC(WD, oje, 25, f2, 15, 1);
- c2 = 0;
- for (e = Jsb(b.b, 0); e.b != e.d.c; ) {
- d = BD(Xsb(e), 86);
- d.g = c2++;
- }
- }
- function ihb(a, b) {
- var c2, d, e, f2;
- c2 = b >> 5;
- b &= 31;
- e = a.d + c2 + (b == 0 ? 0 : 1);
- d = KC(WD, oje, 25, e, 15, 1);
- jhb(d, a.a, c2, b);
- f2 = new Vgb(a.e, e, d);
- Jgb(f2);
- return f2;
- }
- function Ofe(a, b, c2) {
- var d, e;
- d = BD(Phb(Zee, b), 117);
- e = BD(Phb($ee, b), 117);
- if (c2) {
- Shb(Zee, a, d);
- Shb($ee, a, e);
- } else {
- Shb($ee, a, d);
- Shb(Zee, a, e);
- }
- }
- function Cwb(a, b, c2) {
- var d, e, f2;
- e = null;
- f2 = a.b;
- while (f2) {
- d = a.a.ue(b, f2.d);
- if (c2 && d == 0) {
- return f2;
- }
- if (d >= 0) {
- f2 = f2.a[1];
- } else {
- e = f2;
- f2 = f2.a[0];
- }
- }
- return e;
- }
- function Dwb(a, b, c2) {
- var d, e, f2;
- e = null;
- f2 = a.b;
- while (f2) {
- d = a.a.ue(b, f2.d);
- if (c2 && d == 0) {
- return f2;
- }
- if (d <= 0) {
- f2 = f2.a[0];
- } else {
- e = f2;
- f2 = f2.a[1];
- }
- }
- return e;
- }
- function Nic(a, b, c2, d) {
- var e, f2, g;
- e = false;
- if (fjc(a.f, c2, d)) {
- ijc(a.f, a.a[b][c2], a.a[b][d]);
- f2 = a.a[b];
- g = f2[d];
- f2[d] = f2[c2];
- f2[c2] = g;
- e = true;
- }
- return e;
- }
- function QHc(a, b, c2, d, e) {
- var f2, g, h;
- g = e;
- while (b.b != b.c) {
- f2 = BD(fkb(b), 10);
- h = BD(V_b(f2, d).Xb(0), 11);
- a.d[h.p] = g++;
- c2.c[c2.c.length] = h;
- }
- return g;
- }
- function hBc(a, b, c2) {
- var d, e, f2, g, h;
- g = a.k;
- h = b.k;
- d = c2[g.g][h.g];
- e = ED(pBc(a, d));
- f2 = ED(pBc(b, d));
- return $wnd.Math.max((uCb(e), e), (uCb(f2), f2));
- }
- function zZc(a, b, c2) {
- var d, e, f2, g;
- d = c2 / a.c.length;
- e = 0;
- for (g = new olb(a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 200);
- w$c(f2, f2.f + d * e);
- t$c(f2, b, d);
- ++e;
- }
- }
- function hnc(a, b, c2) {
- var d, e, f2, g;
- e = BD(Ohb(a.b, c2), 177);
- d = 0;
- for (g = new olb(b.j); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 113);
- e[f2.d.p] && ++d;
- }
- return d;
- }
- function mzd(a) {
- var b, c2;
- b = BD(Ajd(a.a, 4), 126);
- if (b != null) {
- c2 = KC($3, hve, 415, b.length, 0, 1);
- $fb(b, 0, c2, 0, b.length);
- return c2;
- } else {
- return jzd;
- }
- }
- function Cz() {
- var a;
- if (xz != 0) {
- a = sz();
- if (a - yz > 2e3) {
- yz = a;
- zz = $wnd.setTimeout(Iz, 10);
- }
- }
- if (xz++ == 0) {
- Lz((Kz(), Jz));
- return true;
- }
- return false;
- }
- function wCc(a, b) {
- var c2, d, e;
- for (d = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- e = c2.d.i;
- if (e.c == b) {
- return false;
- }
- }
- return true;
- }
- function Ek(b, c2) {
- var d, e;
- if (JD(c2, 245)) {
- e = BD(c2, 245);
- try {
- d = b.vd(e);
- return d == 0;
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 205))
- throw vbb(a);
- }
- }
- return false;
- }
- function Xz() {
- if (Error.stackTraceLimit > 0) {
- $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64;
- return true;
- }
- return "stack" in new Error();
- }
- function BDb(a, b) {
- return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) > 0;
- }
- function DDb(a, b) {
- return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) < 0;
- }
- function CDb(a, b) {
- return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) <= 0;
- }
- function ydb(a, b) {
- var c2 = 0;
- while (!b[c2] || b[c2] == "") {
- c2++;
- }
- var d = b[c2++];
- for (; c2 < b.length; c2++) {
- if (!b[c2] || b[c2] == "") {
- continue;
- }
- d += a + b[c2];
- }
- return d;
- }
- function zfb(a, b, c2) {
- var d, e, f2, g;
- f2 = b + c2;
- ACb(b, f2, a.length);
- g = "";
- for (e = b; e < f2; ) {
- d = $wnd.Math.min(e + 1e4, f2);
- g += vfb(a.slice(e, d));
- e = d;
- }
- return g;
- }
- function N9d(a) {
- var b, c2, d, e, f2;
- if (a == null)
- return null;
- f2 = new Rkb();
- for (c2 = Zmd(a), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- Ekb(f2, Qge(b, true));
- }
- return f2;
- }
- function Q9d(a) {
- var b, c2, d, e, f2;
- if (a == null)
- return null;
- f2 = new Rkb();
- for (c2 = Zmd(a), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- Ekb(f2, Qge(b, true));
- }
- return f2;
- }
- function R9d(a) {
- var b, c2, d, e, f2;
- if (a == null)
- return null;
- f2 = new Rkb();
- for (c2 = Zmd(a), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- Ekb(f2, Qge(b, true));
- }
- return f2;
- }
- function ted(a, b) {
- var c2, d, e;
- if (a.c) {
- cld(a.c, b);
- } else {
- c2 = b - red(a);
- for (e = new olb(a.d); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 157);
- ted(d, red(d) + c2);
- }
- }
- }
- function sed(a, b) {
- var c2, d, e;
- if (a.c) {
- ald(a.c, b);
- } else {
- c2 = b - qed(a);
- for (e = new olb(a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 157);
- sed(d, qed(d) + c2);
- }
- }
- }
- function t6d(a, b) {
- var c2, d, e, f2;
- e = new Skb(b.gc());
- for (d = b.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- f2 = s6d(a, BD(c2, 56));
- !!f2 && (e.c[e.c.length] = f2, true);
- }
- return e;
- }
- function LAd(a, b) {
- var c2, d, e;
- a.qj();
- d = b == null ? 0 : tb(b);
- e = (d & Ohe) % a.d.length;
- c2 = wAd(a, e, d, b);
- if (c2) {
- JAd(a, c2);
- return c2.dd();
- } else {
- return null;
- }
- }
- function rde(a) {
- var b, c2;
- c2 = sde(a);
- b = null;
- while (a.c == 2) {
- nde(a);
- if (!b) {
- b = (wfe(), wfe(), new Lge(2));
- Kge(b, c2);
- c2 = b;
- }
- c2.$l(sde(a));
- }
- return c2;
- }
- function Wpd(a) {
- var b, c2, d;
- d = null;
- b = Vte in a.a;
- c2 = !b;
- if (c2) {
- throw vbb(new cqd("Every element must have an id."));
- }
- d = Vpd(aC(a, Vte));
- return d;
- }
- function jid(a) {
- var b, c2, d;
- d = a.Zg();
- if (!d) {
- b = 0;
- for (c2 = a.eh(); c2; c2 = c2.eh()) {
- if (++b > Wje) {
- return c2.fh();
- }
- d = c2.Zg();
- if (!!d || c2 == a) {
- break;
- }
- }
- }
- return d;
- }
- function fvd(a) {
- evd();
- if (JD(a, 156)) {
- return BD(Ohb(cvd, hK), 288).vg(a);
- }
- if (Mhb(cvd, rb(a))) {
- return BD(Ohb(cvd, rb(a)), 288).vg(a);
- }
- return null;
- }
- function fZd(a) {
- if (efb(kse, a)) {
- return Bcb(), Acb;
- } else if (efb(lse, a)) {
- return Bcb(), zcb;
- } else {
- throw vbb(new Wdb("Expecting true or false"));
- }
- }
- function uDc(a, b) {
- if (b.c == a) {
- return b.d;
- } else if (b.d == a) {
- return b.c;
- }
- throw vbb(new Wdb("Input edge is not connected to the input port."));
- }
- function Igb(a, b) {
- if (a.e > b.e) {
- return 1;
- }
- if (a.e < b.e) {
- return -1;
- }
- if (a.d > b.d) {
- return a.e;
- }
- if (a.d < b.d) {
- return -b.e;
- }
- return a.e * whb(a.a, b.a, a.d);
- }
- function Zcb(a) {
- if (a >= 48 && a < 48 + $wnd.Math.min(10, 10)) {
- return a - 48;
- }
- if (a >= 97 && a < 97) {
- return a - 97 + 10;
- }
- if (a >= 65 && a < 65) {
- return a - 65 + 10;
- }
- return -1;
- }
- function Ue(a, b) {
- var c2;
- if (PD(b) === PD(a)) {
- return true;
- }
- if (!JD(b, 21)) {
- return false;
- }
- c2 = BD(b, 21);
- if (c2.gc() != a.gc()) {
- return false;
- }
- return a.Ic(c2);
- }
- function ekb(a, b) {
- var c2, d, e, f2;
- d = a.a.length - 1;
- c2 = b - a.b & d;
- f2 = a.c - b & d;
- e = a.c - a.b & d;
- mkb(c2 < e);
- if (c2 >= f2) {
- hkb(a, b);
- return -1;
- } else {
- ikb(a, b);
- return 1;
- }
- }
- function lA(a, b) {
- var c2, d;
- c2 = (BCb(b, a.length), a.charCodeAt(b));
- d = b + 1;
- while (d < a.length && (BCb(d, a.length), a.charCodeAt(d) == c2)) {
- ++d;
- }
- return d - b;
- }
- function sJb(a) {
- switch (a.g) {
+ this.begin("acc_title");
+ return 31;
+ break;
+ case 7:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 8:
+ this.begin("acc_descr");
+ return 33;
+ break;
+ case 9:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 10:
+ this.begin("acc_descr_multiline");
+ break;
+ case 11:
+ this.popState();
+ break;
case 12:
+ return "acc_descr_multiline_value";
+ break;
case 13:
+ return 8;
+ break;
case 14:
+ break;
case 15:
+ return 7;
+ break;
case 16:
+ return 7;
+ break;
case 17:
+ return "EDGE_STATE";
+ break;
case 18:
+ this.begin("callback_name");
+ break;
case 19:
+ this.popState();
+ break;
case 20:
- return true;
- default:
- return false;
- }
- }
- function bC(f2, a) {
- var b = f2.a;
- var c2;
- a = String(a);
- b.hasOwnProperty(a) && (c2 = b[a]);
- var d = (rC(), qC)[typeof c2];
- var e = d ? d(c2) : xC(typeof c2);
- return e;
- }
- function b3c(a, b) {
- if (a.a < 0) {
- throw vbb(new Zdb("Did not call before(...) or after(...) before calling add(...)."));
- }
- i3c(a, a.a, b);
- return a;
- }
- function VOc(a, b, c2, d) {
- var e, f2;
- if (b.c.length == 0) {
- return;
- }
- e = ROc(c2, d);
- f2 = QOc(b);
- MAb(VAb(new YAb(null, new Kub(f2, 1)), new cPc()), new gPc(a, c2, e, d));
- }
- function Cjd(a, b, c2) {
- var d;
- if ((a.Db & b) != 0) {
- if (c2 == null) {
- Bjd(a, b);
- } else {
- d = zjd(a, b);
- d == -1 ? a.Eb = c2 : NC(CD(a.Eb), d, c2);
- }
- } else
- c2 != null && vjd(a, b, c2);
- }
- function yjd(a) {
- var b, c2;
- if ((a.Db & 32) == 0) {
- c2 = (b = BD(Ajd(a, 16), 26), aLd(!b ? a.zh() : b) - aLd(a.zh()));
- c2 != 0 && Cjd(a, 32, KC(SI, Uhe, 1, c2, 5, 1));
- }
- return a;
- }
- function W1d(a) {
- var b;
- a.b || X1d(a, (b = h1d(a.e, a.a), !b || !dfb(lse, AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "qualified"))));
- return a.c;
- }
- function dTd(a, b, c2) {
- var d, e, f2;
- d = BD(qud(QSd(a.a), b), 87);
- f2 = (e = d.c, e ? e : (jGd(), YFd));
- (f2.kh() ? xid(a.b, BD(f2, 49)) : f2) == c2 ? KQd(d) : NQd(d, c2);
- return f2;
- }
- function fCb(a, b) {
- (!b && console.groupCollapsed != null ? console.groupCollapsed : console.group != null ? console.group : console.log).call(console, a);
- }
- function NNb(a, b, c2, d) {
- d == a ? (BD(c2.b, 65), BD(c2.b, 65), BD(d.b, 65), BD(d.b, 65).c.b) : (BD(c2.b, 65), BD(c2.b, 65), BD(d.b, 65), BD(d.b, 65).c.b);
- KNb(d, b, a);
- }
- function EOb(a) {
- var c2, d;
- for (c2 = new olb(a.g); c2.a < c2.c.c.length; ) {
- BD(mlb(c2), 562);
- }
- d = new ENb(a.g, Edb(a.a), a.c);
- ELb(d);
- a.g = d.b;
- a.d = d.a;
- }
- function ymc(a, b, c2) {
- b.b = $wnd.Math.max(b.b, -c2.a);
- b.c = $wnd.Math.max(b.c, c2.a - a.a);
- b.d = $wnd.Math.max(b.d, -c2.b);
- b.a = $wnd.Math.max(b.a, c2.b - a.b);
- }
- function MIc(a, b) {
- if (a.e < b.e) {
- return -1;
- } else if (a.e > b.e) {
- return 1;
- } else if (a.f < b.f) {
- return -1;
- } else if (a.f > b.f) {
- return 1;
- }
- return tb(a) - tb(b);
- }
- function efb(a, b) {
- uCb(a);
- if (b == null) {
- return false;
- }
- if (dfb(a, b)) {
- return true;
- }
- return a.length == b.length && dfb(a.toLowerCase(), b.toLowerCase());
- }
- function x6d(a, b) {
- var c2, d, e, f2;
- for (d = 0, e = b.gc(); d < e; ++d) {
- c2 = b.il(d);
- if (JD(c2, 99) && (BD(c2, 18).Bb & ote) != 0) {
- f2 = b.jl(d);
- f2 != null && s6d(a, BD(f2, 56));
- }
- }
- }
- function p1c(a, b, c2) {
- var d, e, f2;
- for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 221);
- d = new hDb(BD(Ohb(a.a, e.b), 65));
- Ekb(b.a, d);
- p1c(a, d, e);
- }
- }
- function Aeb(a) {
- var b, c2;
- if (ybb(a, -129) > 0 && ybb(a, 128) < 0) {
- b = Tbb(a) + 128;
- c2 = (Ceb(), Beb)[b];
- !c2 && (c2 = Beb[b] = new teb(a));
- return c2;
- }
- return new teb(a);
- }
- function _0d(a, b) {
- var c2, d;
- c2 = b.Hh(a.a);
- if (c2) {
- d = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), fue));
- if (d != null) {
- return d;
- }
- }
- return b.ne();
- }
- function a1d(a, b) {
- var c2, d;
- c2 = b.Hh(a.a);
- if (c2) {
- d = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), fue));
- if (d != null) {
- return d;
- }
- }
- return b.ne();
- }
- function FMc(a, b) {
- wMc();
- var c2, d;
- for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- if (c2.d.i == b || c2.c.i == b) {
- return c2;
- }
- }
- return null;
- }
- function HUb(a, b, c2) {
- this.c = a;
- this.f = new Rkb();
- this.e = new d7c();
- this.j = new IVb();
- this.n = new IVb();
- this.b = b;
- this.g = new J6c(b.c, b.d, b.b, b.a);
- this.a = c2;
- }
- function gVb(a) {
- var b, c2, d, e;
- this.a = new zsb();
- this.d = new Tqb();
- this.e = 0;
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- !this.f && (this.f = b);
- eVb(this, b);
- }
- }
- function Xgb(a) {
- Hgb();
- if (a.length == 0) {
- this.e = 0;
- this.d = 1;
- this.a = OC(GC(WD, 1), oje, 25, 15, [0]);
- } else {
- this.e = 1;
- this.d = a.length;
- this.a = a;
- Jgb(this);
- }
- }
- function mIb(a, b, c2) {
- oHb.call(this);
- this.a = KC(oN, ile, 212, (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length, 0, 1);
- this.b = a;
- this.d = b;
- this.c = c2;
- }
- function Kjc(a) {
- this.d = new Rkb();
- this.e = new $rb();
- this.c = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
- this.b = a;
- }
- function Vbc(a) {
- var b, c2, d, e, f2, g;
- g = BD(vNb(a, (wtc(), $sc)), 11);
- yNb(g, qtc, a.i.n.b);
- b = k_b(a.e);
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- RZb(c2, g);
- }
- }
- function Wbc(a) {
- var b, c2, d, e, f2, g;
- c2 = BD(vNb(a, (wtc(), $sc)), 11);
- yNb(c2, qtc, a.i.n.b);
- b = k_b(a.g);
- for (e = b, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- QZb(d, c2);
- }
- }
- function vcc(a) {
- var b, c2;
- if (wNb(a.d.i, (Nyc(), Nxc))) {
- b = BD(vNb(a.c.i, Nxc), 19);
- c2 = BD(vNb(a.d.i, Nxc), 19);
- return beb(b.a, c2.a) > 0;
- } else {
- return false;
- }
- }
- function q2c(a) {
- var b;
- if (PD(hkd(a, (Y9c(), J8c))) === PD((hbd(), fbd))) {
- if (!Xod(a)) {
- jkd(a, J8c, gbd);
- } else {
- b = BD(hkd(Xod(a), J8c), 334);
- jkd(a, J8c, b);
- }
- }
- }
- function ijc(a, b, c2) {
- var d, e;
- bIc(a.e, b, c2, (Ucd(), Tcd));
- bIc(a.i, b, c2, zcd);
- if (a.a) {
- e = BD(vNb(b, (wtc(), $sc)), 11);
- d = BD(vNb(c2, $sc), 11);
- cIc(a.g, e, d);
- }
- }
- function OEc(a, b, c2) {
- var d, e, f2;
- d = b.c.p;
- f2 = b.p;
- a.b[d][f2] = new $Ec(a, b);
- if (c2) {
- a.a[d][f2] = new FEc(b);
- e = BD(vNb(b, (wtc(), Psc)), 10);
- !!e && Rc(a.d, e, b);
- }
- }
- function TPb(a, b) {
- var c2, d, e;
- Ekb(PPb, a);
- b.Fc(a);
- c2 = BD(Ohb(OPb, a), 21);
- if (c2) {
- for (e = c2.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 33);
- Jkb(PPb, d, 0) != -1 || TPb(d, b);
- }
- }
- }
- function tyb(a, b, c2) {
- var d;
- (jyb ? (ryb(a), true) : kyb ? ($xb(), true) : nyb ? ($xb(), true) : myb && ($xb(), false)) && (d = new iyb(b), d.b = c2, pyb(a, d), void 0);
- }
- function xKb(a, b) {
- var c2;
- c2 = !a.A.Hc((tdd(), sdd)) || a.q == (dcd(), $bd);
- a.u.Hc((rcd(), ncd)) ? c2 ? vKb(a, b) : zKb(a, b) : a.u.Hc(pcd) && (c2 ? wKb(a, b) : AKb(a, b));
- }
- function b0d(a, b) {
- var c2, d;
- ++a.j;
- if (b != null) {
- c2 = (d = a.a.Cb, JD(d, 97) ? BD(d, 97).Jg() : null);
- if (xlb(b, c2)) {
- Cjd(a.a, 4, c2);
- return;
- }
- }
- Cjd(a.a, 4, BD(b, 126));
- }
- function dYb(a, b, c2) {
- return new J6c($wnd.Math.min(a.a, b.a) - c2 / 2, $wnd.Math.min(a.b, b.b) - c2 / 2, $wnd.Math.abs(a.a - b.a) + c2, $wnd.Math.abs(a.b - b.b) + c2);
- }
- function k4b(a, b) {
- var c2, d;
- c2 = beb(a.a.c.p, b.a.c.p);
- if (c2 != 0) {
- return c2;
- }
- d = beb(a.a.d.i.p, b.a.d.i.p);
- if (d != 0) {
- return d;
- }
- return beb(b.a.d.p, a.a.d.p);
- }
- function _Dc(a, b, c2) {
- var d, e, f2, g;
- f2 = b.j;
- g = c2.j;
- if (f2 != g) {
- return f2.g - g.g;
- } else {
- d = a.f[b.p];
- e = a.f[c2.p];
- return d == 0 && e == 0 ? 0 : d == 0 ? -1 : e == 0 ? 1 : Kdb(d, e);
- }
- }
- function HFb(a, b, c2) {
- var d, e, f2;
- if (c2[b.d]) {
- return;
- }
- c2[b.d] = true;
- for (e = new olb(LFb(b)); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 213);
- f2 = xFb(d, b);
- HFb(a, f2, c2);
- }
- }
- function umc(a, b, c2) {
- var d;
- d = c2[a.g][b];
- switch (a.g) {
- case 1:
- case 3:
- return new f7c(0, d);
- case 2:
- case 4:
- return new f7c(d, 0);
- default:
- return null;
- }
- }
- function r2c(b, c2, d) {
- var e, f2;
- f2 = BD(hgd(c2.f), 209);
- try {
- f2.Ze(b, d);
- igd(c2.f, f2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 102)) {
- e = a;
- throw vbb(e);
- } else
- throw vbb(a);
- }
- }
- function Vqd(a, b, c2) {
- var d, e, f2, g, h, i3;
- d = null;
- h = k4c(n4c(), b);
- f2 = null;
- if (h) {
- e = null;
- i3 = o5c(h, c2);
- g = null;
- i3 != null && (g = a.Ye(h, i3));
- e = g;
- f2 = e;
- }
- d = f2;
- return d;
- }
- function TTd(a, b, c2, d) {
- var e, f2, g;
- e = new pSd(a.e, 1, 13, (g = b.c, g ? g : (jGd(), YFd)), (f2 = c2.c, f2 ? f2 : (jGd(), YFd)), HLd(a, b), false);
- !d ? d = e : d.Ei(e);
- return d;
- }
- function UEd(a, b, c2, d) {
- var e;
- e = a.length;
- if (b >= e)
- return e;
- for (b = b > 0 ? b : 0; b < e; b++) {
- if (_Ed((BCb(b, a.length), a.charCodeAt(b)), c2, d))
- break;
- }
- return b;
- }
- function Qkb(a, b) {
- var c2, d;
- d = a.c.length;
- b.length < d && (b = eCb(new Array(d), b));
- for (c2 = 0; c2 < d; ++c2) {
- NC(b, c2, a.c[c2]);
- }
- b.length > d && NC(b, d, null);
- return b;
- }
- function _lb(a, b) {
- var c2, d;
- d = a.a.length;
- b.length < d && (b = eCb(new Array(d), b));
- for (c2 = 0; c2 < d; ++c2) {
- NC(b, c2, a.a[c2]);
- }
- b.length > d && NC(b, d, null);
- return b;
- }
- function Xrb(a, b, c2) {
- var d, e, f2;
- e = BD(Ohb(a.e, b), 387);
- if (!e) {
- d = new lsb(a, b, c2);
- Rhb(a.e, b, d);
- isb(d);
- return null;
- } else {
- f2 = ijb(e, c2);
- Yrb(a, e);
- return f2;
- }
- }
- function P9d(a) {
- var b;
- if (a == null)
- return null;
- b = ide(Qge(a, true));
- if (b == null) {
- throw vbb(new n8d("Invalid hexBinary value: '" + a + "'"));
- }
- return b;
- }
- function ghb(a) {
- Hgb();
- if (ybb(a, 0) < 0) {
- if (ybb(a, -1) != 0) {
- return new Wgb(-1, Jbb(a));
- }
- return Bgb;
- } else
- return ybb(a, 10) <= 0 ? Dgb[Tbb(a)] : new Wgb(1, a);
- }
- function wJb() {
- qJb();
- return OC(GC(DN, 1), Kie, 159, 0, [nJb, mJb, oJb, eJb, dJb, fJb, iJb, hJb, gJb, lJb, kJb, jJb, bJb, aJb, cJb, $Ib, ZIb, _Ib, XIb, WIb, YIb, pJb]);
- }
- function vjc(a) {
- var b;
- this.d = new Rkb();
- this.j = new d7c();
- this.g = new d7c();
- b = a.g.b;
- this.f = BD(vNb(Q_b(b), (Nyc(), Lwc)), 103);
- this.e = Edb(ED(c_b(b, ryc)));
- }
- function Pjc(a) {
- this.b = new Rkb();
- this.e = new Rkb();
- this.d = a;
- this.a = !WAb(JAb(new YAb(null, new Lub(new b1b(a.b))), new Xxb(new Qjc()))).sd((EAb(), DAb));
- }
- function N5c() {
- N5c = ccb;
- L5c = new O5c("PARENTS", 0);
- K5c = new O5c("NODES", 1);
- I5c = new O5c("EDGES", 2);
- M5c = new O5c("PORTS", 3);
- J5c = new O5c("LABELS", 4);
- }
- function Tbd() {
- Tbd = ccb;
- Qbd = new Ubd("DISTRIBUTED", 0);
- Sbd = new Ubd("JUSTIFIED", 1);
- Obd = new Ubd("BEGIN", 2);
- Pbd = new Ubd(gle, 3);
- Rbd = new Ubd("END", 4);
- }
- function UMd(a) {
- var b;
- b = a.yi(null);
- switch (b) {
- case 10:
- return 0;
- case 15:
- return 1;
- case 14:
- return 2;
- case 11:
- return 3;
+ this.popState();
+ this.begin("callback_args");
+ break;
case 21:
- return 4;
- }
- return -1;
- }
- function cYb(a) {
- switch (a.g) {
- case 1:
- return ead(), dad;
- case 4:
- return ead(), aad;
- case 2:
- return ead(), bad;
- case 3:
- return ead(), _9c;
- }
- return ead(), cad;
- }
- function kA(a, b, c2) {
- var d;
- d = c2.q.getFullYear() - nje + nje;
- d < 0 && (d = -d);
- switch (b) {
- case 1:
- a.a += d;
+ return 70;
break;
- case 2:
- EA(a, d % 100, 2);
+ case 22:
+ this.popState();
break;
- default:
- EA(a, d, b);
- }
- }
- function Jsb(a, b) {
- var c2, d;
- wCb(b, a.b);
- if (b >= a.b >> 1) {
- d = a.c;
- for (c2 = a.b; c2 > b; --c2) {
- d = d.b;
- }
- } else {
- d = a.a.a;
- for (c2 = 0; c2 < b; ++c2) {
- d = d.a;
- }
- }
- return new $sb(a, b, d);
- }
- function MEb() {
- MEb = ccb;
- LEb = new NEb("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST", 0);
- KEb = new NEb("CORNER_CASES_THAN_SINGLE_SIDE_LAST", 1);
- }
- function h4b(a) {
- var b, c2, d, e;
- d = c4b(a);
- Okb(d, a4b);
- e = a.d;
- e.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (c2 = new olb(d); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 456);
- Gkb(e, b.b);
- }
- }
- function gkd(a) {
- var b, c2, d;
- d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o);
- for (c2 = d.c.Kc(); c2.e != c2.i.gc(); ) {
- b = BD(c2.nj(), 42);
- b.dd();
- }
- return FAd(d);
- }
- function N5b(a) {
- var b;
- if (!ecd(BD(vNb(a, (Nyc(), Vxc)), 98))) {
- return;
- }
- b = a.b;
- O5b((tCb(0, b.c.length), BD(b.c[0], 29)));
- O5b(BD(Ikb(b, b.c.length - 1), 29));
- }
- function Roc(a, b) {
- var c2, d, e, f2;
- c2 = 0;
- for (e = new olb(b.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- f2 = d.o.a + d.d.c + d.d.b + a.j;
- c2 = $wnd.Math.max(c2, f2);
- }
- return c2;
- }
- function XEd(a) {
- var b, c2, d, e;
- e = 0;
- for (c2 = 0, d = a.length; c2 < d; c2++) {
- b = (BCb(c2, a.length), a.charCodeAt(c2));
- b >= 64 && b < 128 && (e = Mbb(e, Nbb(1, b - 64)));
- }
- return e;
- }
- function c_b(a, b) {
- var c2, d;
- d = null;
- if (wNb(a, (Y9c(), O9c))) {
- c2 = BD(vNb(a, O9c), 94);
- c2.Xe(b) && (d = c2.We(b));
- }
- d == null && !!Q_b(a) && (d = vNb(Q_b(a), b));
- return d;
- }
- function oQc(a, b) {
- var c2, d, e;
- e = b.d.i;
- d = e.k;
- if (d == (j0b(), h0b) || d == d0b) {
- return;
- }
- c2 = new Sr(ur(U_b(e).a.Kc(), new Sq()));
- Qr(c2) && Rhb(a.k, b, BD(Rr(c2), 17));
- }
- function mid(a, b) {
- var c2, d, e;
- d = XKd(a.Tg(), b);
- c2 = b - a.Ah();
- return c2 < 0 ? (e = a.Yg(d), e >= 0 ? a.lh(e) : tid(a, d)) : c2 < 0 ? tid(a, d) : BD(d, 66).Nj().Sj(a, a.yh(), c2);
- }
- function Ksd(a) {
- var b;
- if (JD(a.a, 4)) {
- b = fvd(a.a);
- if (b == null) {
- throw vbb(new Zdb(mse + a.b + "'. " + ise + (fdb(Y3), Y3.k) + jse));
- }
- return b;
- } else {
- return a.a;
- }
- }
- function L9d(a) {
- var b;
- if (a == null)
- return null;
- b = bde(Qge(a, true));
- if (b == null) {
- throw vbb(new n8d("Invalid base64Binary value: '" + a + "'"));
- }
- return b;
- }
- function Dyd(b) {
- var c2;
- try {
- c2 = b.i.Xb(b.e);
- b.mj();
- b.g = b.e++;
- return c2;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- b.mj();
- throw vbb(new utb());
- } else
- throw vbb(a);
- }
- }
- function Zyd(b) {
- var c2;
- try {
- c2 = b.c.ki(b.e);
- b.mj();
- b.g = b.e++;
- return c2;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- b.mj();
- throw vbb(new utb());
- } else
- throw vbb(a);
- }
- }
- function CPb() {
- CPb = ccb;
- BPb = (Y9c(), K9c);
- vPb = G8c;
- qPb = r8c;
- wPb = f9c;
- zPb = (fFb(), bFb);
- yPb = _Eb;
- APb = dFb;
- xPb = $Eb;
- sPb = (nPb(), jPb);
- rPb = iPb;
- tPb = lPb;
- uPb = mPb;
- }
- function NWb(a) {
- LWb();
- this.c = new Rkb();
- this.d = a;
- switch (a.g) {
- case 0:
- case 2:
- this.a = tmb(KWb);
- this.b = Pje;
+ case 23:
+ return 71;
break;
- case 3:
- case 1:
- this.a = KWb;
- this.b = Qje;
- }
- }
- function ued(a, b, c2) {
- var d, e;
- if (a.c) {
- dld(a.c, a.c.i + b);
- eld(a.c, a.c.j + c2);
- } else {
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 157);
- ued(d, b, c2);
- }
- }
- }
- function KEd(a, b) {
- var c2, d;
- if (a.j.length != b.j.length)
- return false;
- for (c2 = 0, d = a.j.length; c2 < d; c2++) {
- if (!dfb(a.j[c2], b.j[c2]))
- return false;
- }
- return true;
- }
- function gA(a, b, c2) {
- var d;
- if (b.a.length > 0) {
- Ekb(a.b, new WA(b.a, c2));
- d = b.a.length;
- 0 < d ? b.a = b.a.substr(0, 0) : 0 > d && (b.a += yfb(KC(TD, $ie, 25, -d, 15, 1)));
- }
- }
- function JKb(a, b) {
- var c2, d, e;
- c2 = a.o;
- for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 111);
- d.e.a = DKb(d, c2.a);
- d.e.b = c2.b * Edb(ED(d.b.We(BKb)));
- }
- }
- function S5b(a, b) {
- var c2, d, e, f2;
- e = a.k;
- c2 = Edb(ED(vNb(a, (wtc(), htc))));
- f2 = b.k;
- d = Edb(ED(vNb(b, htc)));
- return f2 != (j0b(), e0b) ? -1 : e != e0b ? 1 : c2 == d ? 0 : c2 < d ? -1 : 1;
- }
- function B$c(a, b) {
- var c2, d;
- c2 = BD(BD(Ohb(a.g, b.a), 46).a, 65);
- d = BD(BD(Ohb(a.g, b.b), 46).a, 65);
- return S6c(b.a, b.b) - S6c(b.a, E6c(c2.b)) - S6c(b.b, E6c(d.b));
- }
- function aZb(a, b) {
- var c2;
- c2 = BD(vNb(a, (Nyc(), jxc)), 74);
- if (Lq(b, ZYb)) {
- if (!c2) {
- c2 = new s7c();
- yNb(a, jxc, c2);
- } else {
- Osb(c2);
- }
- } else
- !!c2 && yNb(a, jxc, null);
- return c2;
- }
- function a0b(a) {
- var b;
- b = new Ufb();
- b.a += "n";
- a.k != (j0b(), h0b) && Qfb(Qfb((b.a += "(", b), Zr(a.k).toLowerCase()), ")");
- Qfb((b.a += "_", b), P_b(a));
- return b.a;
- }
- function Kdc(a, b) {
- Odd(b, "Self-Loop post-processing", 1);
- MAb(JAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new Qdc()), new Sdc()), new Udc()), new Wdc());
- Qdd(b);
- }
- function kid(a, b, c2, d) {
- var e;
- if (c2 >= 0) {
- return a.hh(b, c2, d);
- } else {
- !!a.eh() && (d = (e = a.Vg(), e >= 0 ? a.Qg(d) : a.eh().ih(a, -1 - e, null, d)));
- return a.Sg(b, c2, d);
- }
- }
- function zld(a, b) {
- switch (b) {
- case 7:
- !a.e && (a.e = new y5d(B2, a, 7, 4));
- Uxd(a.e);
- return;
- case 8:
- !a.d && (a.d = new y5d(B2, a, 8, 5));
- Uxd(a.d);
- return;
- }
- $kd(a, b);
- }
- function Ut(b, c2) {
- var d;
- d = b.Zc(c2);
- try {
- return d.Pb();
- } catch (a) {
- a = ubb(a);
- if (JD(a, 109)) {
- throw vbb(new qcb("Can't get element " + c2));
- } else
- throw vbb(a);
- }
- }
- function Tgb(a, b) {
- this.e = a;
- if (b < Zje) {
- this.d = 1;
- this.a = OC(GC(WD, 1), oje, 25, 15, [b | 0]);
- } else {
- this.d = 2;
- this.a = OC(GC(WD, 1), oje, 25, 15, [b % Zje | 0, b / Zje | 0]);
- }
- }
- function omb(a, b) {
- mmb();
- var c2, d, e, f2;
- c2 = a;
- f2 = b;
- if (JD(a, 21) && !JD(b, 21)) {
- c2 = b;
- f2 = a;
- }
- for (e = c2.Kc(); e.Ob(); ) {
- d = e.Pb();
- if (f2.Hc(d)) {
- return false;
- }
- }
- return true;
- }
- function Txd(a, b, c2) {
- var d, e, f2, g;
- d = a.Xc(b);
- if (d != -1) {
- if (a.ej()) {
- f2 = a.fj();
- g = tud(a, d);
- e = a.Zi(4, g, null, d, f2);
- !c2 ? c2 = e : c2.Ei(e);
- } else {
- tud(a, d);
- }
- }
- return c2;
- }
- function uwd(a, b, c2) {
- var d, e, f2, g;
- d = a.Xc(b);
- if (d != -1) {
- if (a.ej()) {
- f2 = a.fj();
- g = Evd(a, d);
- e = a.Zi(4, g, null, d, f2);
- !c2 ? c2 = e : c2.Ei(e);
- } else {
- Evd(a, d);
- }
- }
- return c2;
- }
- function PJb(a, b) {
- var c2;
- c2 = BD(Mpb(a.b, b), 124).n;
- switch (b.g) {
- case 1:
- a.t >= 0 && (c2.d = a.t);
+ case 24:
+ this.popState();
break;
- case 3:
- a.t >= 0 && (c2.a = a.t);
- }
- if (a.C) {
- c2.b = a.C.b;
- c2.c = a.C.c;
- }
- }
- function RMb() {
- RMb = ccb;
- OMb = new SMb(xle, 0);
- NMb = new SMb(yle, 1);
- PMb = new SMb(zle, 2);
- QMb = new SMb(Ale, 3);
- OMb.a = false;
- NMb.a = true;
- PMb.a = false;
- QMb.a = true;
- }
- function ROb() {
- ROb = ccb;
- OOb = new SOb(xle, 0);
- NOb = new SOb(yle, 1);
- POb = new SOb(zle, 2);
- QOb = new SOb(Ale, 3);
- OOb.a = false;
- NOb.a = true;
- POb.a = false;
- QOb.a = true;
- }
- function dac(a) {
- var b;
- b = a.a;
- do {
- b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i;
- b.k == (j0b(), g0b) && a.b.Fc(b);
- } while (b.k == (j0b(), g0b));
- a.b = Su(a.b);
- }
- function CDc(a) {
- var b, c2, d;
- d = a.c.a;
- a.p = (Qb(d), new Tkb(d));
- for (c2 = new olb(d); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- b.p = GDc(b).a;
- }
- mmb();
- Okb(a.p, new PDc());
- }
- function eVc(a) {
- var b, c2, d, e;
- d = 0;
- e = gVc(a);
- if (e.c.length == 0) {
- return 1;
- } else {
- for (c2 = new olb(e); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 33);
- d += eVc(b);
- }
- }
- return d;
- }
- function JJb(a, b) {
- var c2, d, e;
- e = 0;
- d = BD(BD(Qc(a.r, b), 21), 84).Kc();
- while (d.Ob()) {
- c2 = BD(d.Pb(), 111);
- e += c2.d.b + c2.b.rf().a + c2.d.c;
- d.Ob() && (e += a.w);
- }
- return e;
- }
- function RKb(a, b) {
- var c2, d, e;
- e = 0;
- d = BD(BD(Qc(a.r, b), 21), 84).Kc();
- while (d.Ob()) {
- c2 = BD(d.Pb(), 111);
- e += c2.d.d + c2.b.rf().b + c2.d.a;
- d.Ob() && (e += a.w);
- }
- return e;
- }
- function SOc(a, b, c2, d) {
- if (b.a < d.a) {
- return true;
- } else if (b.a == d.a) {
- if (b.b < d.b) {
- return true;
- } else if (b.b == d.b) {
- if (a.b > c2.b) {
- return true;
- }
- }
- }
- return false;
- }
- function AD(a, b) {
- if (ND(a)) {
- return !!zD[b];
- } else if (a.hm) {
- return !!a.hm[b];
- } else if (LD(a)) {
- return !!yD[b];
- } else if (KD(a)) {
- return !!xD[b];
- }
- return false;
- }
- function jkd(a, b, c2) {
- c2 == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c2));
- return a;
- }
- function jKb(a, b, c2, d) {
- var e, f2;
- f2 = b.Xe((Y9c(), W8c)) ? BD(b.We(W8c), 21) : a.j;
- e = uJb(f2);
- if (e == (qJb(), pJb)) {
- return;
- }
- if (c2 && !sJb(e)) {
- return;
- }
- UHb(lKb(a, e, d), b);
- }
- function fid(a, b, c2, d) {
- var e, f2, g;
- f2 = XKd(a.Tg(), b);
- e = b - a.Ah();
- return e < 0 ? (g = a.Yg(f2), g >= 0 ? a._g(g, c2, true) : sid(a, f2, c2)) : BD(f2, 66).Nj().Pj(a, a.yh(), e, c2, d);
- }
- function u6d(a, b, c2, d) {
- var e, f2, g;
- if (c2.mh(b)) {
- Q6d();
- if (YId(b)) {
- e = BD(c2.ah(b), 153);
- x6d(a, e);
- } else {
- f2 = (g = b, !g ? null : BD(d, 49).xh(g));
- !!f2 && v6d(c2.ah(b), f2);
- }
- }
- }
- function H3b(a) {
- switch (a.g) {
- case 1:
- return vLb(), uLb;
- case 3:
- return vLb(), rLb;
- case 2:
- return vLb(), tLb;
- case 4:
- return vLb(), sLb;
- default:
- return null;
- }
- }
- function kCb(a) {
- switch (typeof a) {
- case Mhe:
- return LCb(a);
- case Lhe:
- return QD(a);
- case Khe:
- return Bcb(), a ? 1231 : 1237;
- default:
- return a == null ? 0 : FCb(a);
- }
- }
- function Gic(a, b, c2) {
- if (a.e) {
- switch (a.b) {
- case 1:
- oic(a.c, b, c2);
- break;
- case 0:
- pic(a.c, b, c2);
- }
- } else {
- mic(a.c, b, c2);
- }
- a.a[b.p][c2.p] = a.c.i;
- a.a[c2.p][b.p] = a.c.e;
- }
- function lHc(a) {
- var b, c2;
- if (a == null) {
- return null;
- }
- c2 = KC(OQ, nie, 193, a.length, 0, 2);
- for (b = 0; b < c2.length; b++) {
- c2[b] = BD(ulb(a[b], a[b].length), 193);
- }
- return c2;
- }
- function d4d(a) {
- var b;
- if (b4d(a)) {
- a4d(a);
- if (a.Lk()) {
- b = b3d(a.e, a.b, a.c, a.a, a.j);
- a.j = b;
- }
- a.g = a.a;
- ++a.a;
- ++a.c;
- a.i = 0;
- return a.j;
- } else {
- throw vbb(new utb());
- }
- }
- function fMb(a, b) {
- var c2, d, e, f2;
- f2 = a.o;
- c2 = a.p;
- f2 < c2 ? f2 *= f2 : c2 *= c2;
- d = f2 + c2;
- f2 = b.o;
- c2 = b.p;
- f2 < c2 ? f2 *= f2 : c2 *= c2;
- e = f2 + c2;
- if (d < e) {
- return -1;
- }
- if (d == e) {
- return 0;
- }
- return 1;
- }
- function HLd(a, b) {
- var c2, d, e;
- e = rud(a, b);
- if (e >= 0)
- return e;
- if (a.Fk()) {
- for (d = 0; d < a.i; ++d) {
- c2 = a.Gk(BD(a.g[d], 56));
- if (PD(c2) === PD(b)) {
- return d;
- }
- }
- }
- return -1;
- }
- function Gtd(a, b, c2) {
- var d, e;
- e = a.gc();
- if (b >= e)
- throw vbb(new Cyd(b, e));
- if (a.hi()) {
- d = a.Xc(c2);
- if (d >= 0 && d != b) {
- throw vbb(new Wdb(kue));
- }
- }
- return a.mi(b, c2);
- }
- function gx(a, b) {
- this.a = BD(Qb(a), 245);
- this.b = BD(Qb(b), 245);
- if (a.vd(b) > 0 || a == (Lk(), Kk) || b == (_k(), $k)) {
- throw vbb(new Wdb("Invalid range: " + nx(a, b)));
- }
- }
- function mYb(a) {
- var b, c2;
- this.b = new Rkb();
- this.c = a;
- this.a = false;
- for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- this.a = this.a | b.k == (j0b(), h0b);
- }
- }
- function GFb(a, b) {
- var c2, d, e;
- c2 = nGb(new pGb(), a);
- for (e = new olb(b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 121);
- AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0), c2), d));
- }
- return c2;
- }
- function Nac(a, b, c2) {
- var d, e, f2;
- for (e = new Sr(ur((b ? R_b(a) : U_b(a)).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- f2 = b ? d.c.i : d.d.i;
- f2.k == (j0b(), f0b) && $_b(f2, c2);
- }
- }
- function Izc() {
- Izc = ccb;
- Gzc = new Kzc(ane, 0);
- Hzc = new Kzc("PORT_POSITION", 1);
- Fzc = new Kzc("NODE_SIZE_WHERE_SPACE_PERMITS", 2);
- Ezc = new Kzc("NODE_SIZE", 3);
- }
- function F7c() {
- F7c = ccb;
- z7c = new G7c("AUTOMATIC", 0);
- C7c = new G7c(jle, 1);
- D7c = new G7c(kle, 2);
- E7c = new G7c("TOP", 3);
- A7c = new G7c(mle, 4);
- B7c = new G7c(gle, 5);
- }
- function Hhb(a, b, c2, d) {
- Dhb();
- var e, f2;
- e = 0;
- for (f2 = 0; f2 < c2; f2++) {
- e = wbb(Ibb(xbb(b[f2], Yje), xbb(d, Yje)), xbb(Tbb(e), Yje));
- a[f2] = Tbb(e);
- e = Pbb(e, 32);
- }
- return Tbb(e);
- }
- function zHb(a, b, c2) {
- var d, e;
- e = 0;
- for (d = 0; d < rHb; d++) {
- e = $wnd.Math.max(e, pHb(a.a[b.g][d], c2));
- }
- b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.b));
- return e;
- }
- function Bub(a, b) {
- var c2, d;
- lCb(b > 0);
- if ((b & -b) == b) {
- return QD(b * Cub(a, 31) * 4656612873077393e-25);
- }
- do {
- c2 = Cub(a, 31);
- d = c2 % b;
- } while (c2 - d + (b - 1) < 0);
- return QD(d);
- }
- function LCb(a) {
- JCb();
- var b, c2, d;
- c2 = ":" + a;
- d = ICb[c2];
- if (d != null) {
- return QD((uCb(d), d));
- }
- d = GCb[c2];
- b = d == null ? KCb(a) : QD((uCb(d), d));
- MCb();
- ICb[c2] = b;
- return b;
- }
- function qZb(a, b, c2) {
- Odd(c2, "Compound graph preprocessor", 1);
- a.a = new Hp();
- vZb(a, b, null);
- pZb(a, b);
- uZb(a);
- yNb(b, (wtc(), zsc), a.a);
- a.a = null;
- Uhb(a.b);
- Qdd(c2);
- }
- function X$b(a, b, c2) {
- switch (c2.g) {
- case 1:
- a.a = b.a / 2;
- a.b = 0;
+ case 25:
+ return "STR";
break;
- case 2:
- a.a = b.a;
- a.b = b.b / 2;
+ case 26:
+ this.begin("string");
break;
- case 3:
- a.a = b.a / 2;
- a.b = b.b;
+ case 27:
+ return 73;
break;
- case 4:
- a.a = 0;
- a.b = b.b / 2;
- }
- }
- function tkc(a) {
- var b, c2, d;
- for (d = BD(Qc(a.a, (Xjc(), Vjc)), 15).Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 101);
- b = Bkc(c2);
- kkc(a, c2, b[0], (Fkc(), Ckc), 0);
- kkc(a, c2, b[1], Ekc, 1);
- }
- }
- function ukc(a) {
- var b, c2, d;
- for (d = BD(Qc(a.a, (Xjc(), Wjc)), 15).Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 101);
- b = Bkc(c2);
- kkc(a, c2, b[0], (Fkc(), Ckc), 0);
- kkc(a, c2, b[1], Ekc, 1);
- }
- }
- function tXc(a) {
- switch (a.g) {
- case 0:
- return null;
- case 1:
- return new $Xc();
- case 2:
- return new QXc();
- default:
- throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function OZc(a, b, c2) {
- var d, e;
- FZc(a, b - a.s, c2 - a.t);
- for (e = new olb(a.n); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 211);
- SZc(d, d.e + b - a.s);
- TZc(d, d.f + c2 - a.t);
- }
- a.s = b;
- a.t = c2;
- }
- function JFb(a) {
- var b, c2, d, e, f2;
- c2 = 0;
- for (e = new olb(a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 121);
- d.d = c2++;
- }
- b = IFb(a);
- f2 = null;
- b.c.length > 1 && (f2 = GFb(a, b));
- return f2;
- }
- function dmd(a) {
- var b;
- if (!!a.f && a.f.kh()) {
- b = BD(a.f, 49);
- a.f = BD(xid(a, b), 82);
- a.f != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.f));
- }
- return a.f;
- }
- function emd(a) {
- var b;
- if (!!a.i && a.i.kh()) {
- b = BD(a.i, 49);
- a.i = BD(xid(a, b), 82);
- a.i != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 7, b, a.i));
- }
- return a.i;
- }
- function zUd(a) {
- var b;
- if (!!a.b && (a.b.Db & 64) != 0) {
- b = a.b;
- a.b = BD(xid(a, b), 18);
- a.b != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 21, b, a.b));
- }
- return a.b;
- }
- function uAd(a, b) {
- var c2, d, e;
- if (a.d == null) {
- ++a.e;
- ++a.f;
- } else {
- d = b.Sh();
- BAd(a, a.f + 1);
- e = (d & Ohe) % a.d.length;
- c2 = a.d[e];
- !c2 && (c2 = a.d[e] = a.uj());
- c2.Fc(b);
- ++a.f;
- }
- }
- function m3d(a, b, c2) {
- var d;
- if (b.Kj()) {
- return false;
- } else if (b.Zj() != -2) {
- d = b.zj();
- return d == null ? c2 == null : pb(d, c2);
- } else
- return b.Hj() == a.e.Tg() && c2 == null;
- }
- function wo() {
- var a;
- Xj(16, Hie);
- a = Kp(16);
- this.b = KC(GF, Gie, 317, a, 0, 1);
- this.c = KC(GF, Gie, 317, a, 0, 1);
- this.a = null;
- this.e = null;
- this.i = 0;
- this.f = a - 1;
- this.g = 0;
- }
- function b0b(a) {
- n_b.call(this);
- this.k = (j0b(), h0b);
- this.j = (Xj(6, Jie), new Skb(6));
- this.b = (Xj(2, Jie), new Skb(2));
- this.d = new L_b();
- this.f = new s0b();
- this.a = a;
- }
- function Scc(a) {
- var b, c2;
- if (a.c.length <= 1) {
- return;
- }
- b = Pcc(a, (Ucd(), Rcd));
- Rcc(a, BD(b.a, 19).a, BD(b.b, 19).a);
- c2 = Pcc(a, Tcd);
- Rcc(a, BD(c2.a, 19).a, BD(c2.b, 19).a);
- }
- function Vzc() {
- Vzc = ccb;
- Uzc = new Xzc("SIMPLE", 0);
- Rzc = new Xzc(Tne, 1);
- Szc = new Xzc("LINEAR_SEGMENTS", 2);
- Qzc = new Xzc("BRANDES_KOEPF", 3);
- Tzc = new Xzc(Aqe, 4);
- }
- function XDc(a, b, c2) {
- if (!ecd(BD(vNb(b, (Nyc(), Vxc)), 98))) {
- WDc(a, b, Y_b(b, c2));
- WDc(a, b, Y_b(b, (Ucd(), Rcd)));
- WDc(a, b, Y_b(b, Acd));
- mmb();
- Okb(b.j, new jEc(a));
- }
- }
- function HVc(a, b, c2, d) {
- var e, f2, g;
- e = d ? BD(Qc(a.a, b), 21) : BD(Qc(a.b, b), 21);
- for (g = e.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 33);
- if (BVc(a, c2, f2)) {
- return true;
- }
- }
- return false;
- }
- function FMd(a) {
- var b, c2;
- for (c2 = new Fyd(a); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 87);
- if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) {
- return true;
- }
- }
- return false;
- }
- function QTd(a) {
- var b, c2;
- for (c2 = new Fyd(a); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 87);
- if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) {
- return true;
- }
- }
- return false;
- }
- function FDc(a) {
- var b, c2, d;
- b = 0;
- for (d = new olb(a.c.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- b += sr(new Sr(ur(U_b(c2).a.Kc(), new Sq())));
- }
- return b / a.c.a.c.length;
- }
- function UPc(a) {
- var b, c2;
- a.c || XPc(a);
- c2 = new s7c();
- b = new olb(a.a);
- mlb(b);
- while (b.a < b.c.c.length) {
- Dsb(c2, BD(mlb(b), 407).a);
- }
- sCb(c2.b != 0);
- Nsb(c2, c2.c.b);
- return c2;
- }
- function J0c() {
- J0c = ccb;
- I0c = (A0c(), z0c);
- G0c = new q0b(8);
- new Osd((Y9c(), f9c), G0c);
- new Osd(T9c, 8);
- H0c = x0c;
- E0c = n0c;
- F0c = o0c;
- D0c = new Osd(y8c, (Bcb(), false));
- }
- function uld(a, b, c2, d) {
- switch (b) {
- case 7:
- return !a.e && (a.e = new y5d(B2, a, 7, 4)), a.e;
- case 8:
- return !a.d && (a.d = new y5d(B2, a, 8, 5)), a.d;
- }
- return Xkd(a, b, c2, d);
- }
- function JQd(a) {
- var b;
- if (!!a.a && a.a.kh()) {
- b = BD(a.a, 49);
- a.a = BD(xid(a, b), 138);
- a.a != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 5, b, a.a));
- }
- return a.a;
- }
- function yde(a) {
- if (a < 48)
- return -1;
- if (a > 102)
- return -1;
- if (a <= 57)
- return a - 48;
- if (a < 65)
- return -1;
- if (a <= 70)
- return a - 65 + 10;
- if (a < 97)
- return -1;
- return a - 97 + 10;
- }
- function Wj(a, b) {
- if (a == null) {
- throw vbb(new Heb("null key in entry: null=" + b));
- } else if (b == null) {
- throw vbb(new Heb("null value in entry: " + a + "=null"));
- }
- }
- function kr(a, b) {
- var c2, d;
- while (a.Ob()) {
- if (!b.Ob()) {
- return false;
- }
- c2 = a.Pb();
- d = b.Pb();
- if (!(PD(c2) === PD(d) || c2 != null && pb(c2, d))) {
- return false;
- }
- }
- return !b.Ob();
- }
- function jIb(a, b) {
- var c2;
- c2 = OC(GC(UD, 1), Vje, 25, 15, [pHb(a.a[0], b), pHb(a.a[1], b), pHb(a.a[2], b)]);
- if (a.d) {
- c2[0] = $wnd.Math.max(c2[0], c2[2]);
- c2[2] = c2[0];
- }
- return c2;
- }
- function kIb(a, b) {
- var c2;
- c2 = OC(GC(UD, 1), Vje, 25, 15, [qHb(a.a[0], b), qHb(a.a[1], b), qHb(a.a[2], b)]);
- if (a.d) {
- c2[0] = $wnd.Math.max(c2[0], c2[2]);
- c2[2] = c2[0];
- }
- return c2;
- }
- function mqc() {
- mqc = ccb;
- iqc = new oqc("GREEDY", 0);
- hqc = new oqc(Une, 1);
- kqc = new oqc(Tne, 2);
- lqc = new oqc("MODEL_ORDER", 3);
- jqc = new oqc("GREEDY_MODEL_ORDER", 4);
- }
- function iUc(a, b) {
- var c2, d, e;
- a.b[b.g] = 1;
- for (d = Jsb(b.d, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 188);
- e = c2.c;
- a.b[e.g] == 1 ? Dsb(a.a, c2) : a.b[e.g] == 2 ? a.b[e.g] = 1 : iUc(a, e);
- }
- }
- function V9b(a, b) {
- var c2, d, e;
- e = new Skb(b.gc());
- for (d = b.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 286);
- c2.c == c2.f ? K9b(a, c2, c2.c) : L9b(a, c2) || (e.c[e.c.length] = c2, true);
- }
- return e;
- }
- function IZc(a, b, c2) {
- var d, e, f2, g, h;
- h = a.r + b;
- a.r += b;
- a.d += c2;
- d = c2 / a.n.c.length;
- e = 0;
- for (g = new olb(a.n); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 211);
- RZc(f2, h, d, e);
- ++e;
- }
- }
- function tEb(a) {
- var b, c2, d;
- zwb(a.b.a);
- a.a = KC(PM, Uhe, 57, a.c.c.a.b.c.length, 0, 1);
- b = 0;
- for (d = new olb(a.c.c.a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 57);
- c2.f = b++;
- }
- }
- function RVb(a) {
- var b, c2, d;
- zwb(a.b.a);
- a.a = KC(IP, Uhe, 81, a.c.a.a.b.c.length, 0, 1);
- b = 0;
- for (d = new olb(a.c.a.a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 81);
- c2.i = b++;
- }
- }
- function P1c(a, b, c2) {
- var d;
- Odd(c2, "Shrinking tree compaction", 1);
- if (Ccb(DD(vNb(b, (XNb(), VNb))))) {
- N1c(a, b.f);
- INb(b.f, (d = b.c, d));
- } else {
- INb(b.f, b.c);
- }
- Qdd(c2);
- }
- function mr(a) {
- var b;
- b = gr(a);
- if (!Qr(a)) {
- throw vbb(new qcb("position (0) must be less than the number of elements that remained (" + b + ")"));
- }
- return Rr(a);
- }
- function hNb(b, c2, d) {
- var e;
- try {
- return YMb(b, c2 + b.j, d + b.k);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- e = a;
- throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
- } else
- throw vbb(a);
- }
- }
- function iNb(b, c2, d) {
- var e;
- try {
- return ZMb(b, c2 + b.j, d + b.k);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- e = a;
- throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
- } else
- throw vbb(a);
- }
- }
- function jNb(b, c2, d) {
- var e;
- try {
- return $Mb(b, c2 + b.j, d + b.k);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- e = a;
- throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
- } else
- throw vbb(a);
- }
- }
- function s5b(a) {
- switch (a.g) {
- case 1:
- return Ucd(), Tcd;
- case 4:
- return Ucd(), Acd;
- case 3:
- return Ucd(), zcd;
- case 2:
- return Ucd(), Rcd;
- default:
- return Ucd(), Scd;
- }
- }
- function cjc(a, b, c2) {
- if (b.k == (j0b(), h0b) && c2.k == g0b) {
- a.d = _ic(b, (Ucd(), Rcd));
- a.b = _ic(b, Acd);
- }
- if (c2.k == h0b && b.k == g0b) {
- a.d = _ic(c2, (Ucd(), Acd));
- a.b = _ic(c2, Rcd);
- }
- }
- function gjc(a, b) {
- var c2, d, e;
- e = V_b(a, b);
- for (d = e.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 11);
- if (vNb(c2, (wtc(), gtc)) != null || a1b(new b1b(c2.b))) {
- return true;
- }
- }
- return false;
- }
- function QZc(a, b) {
- dld(b, a.e + a.d + (a.c.c.length == 0 ? 0 : a.b));
- eld(b, a.f);
- a.a = $wnd.Math.max(a.a, b.f);
- a.d += b.g + (a.c.c.length == 0 ? 0 : a.b);
- Ekb(a.c, b);
- return true;
- }
- function XZc(a, b, c2) {
- var d, e, f2, g;
- g = 0;
- d = c2 / a.a.c.length;
- for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 187);
- OZc(e, e.s, e.t + g * d);
- IZc(e, a.d - e.r + b, d);
- ++g;
- }
- }
- function H4b(a) {
- var b, c2, d, e, f2;
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- b = 0;
- for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- e.p = b++;
- }
- }
- }
- function r6c(a, b) {
- var c2, d, e, f2, g, h;
- e = b.length - 1;
- g = 0;
- h = 0;
- for (d = 0; d <= e; d++) {
- f2 = b[d];
- c2 = k6c(e, d) * x6c(1 - a, e - d) * x6c(a, d);
- g += f2.a * c2;
- h += f2.b * c2;
- }
- return new f7c(g, h);
- }
- function jud(a, b) {
- var c2, d, e, f2, g;
- c2 = b.gc();
- a.qi(a.i + c2);
- f2 = b.Kc();
- g = a.i;
- a.i += c2;
- for (d = g; d < a.i; ++d) {
- e = f2.Pb();
- mud(a, d, a.oi(d, e));
- a.bi(d, e);
- a.ci();
- }
- return c2 != 0;
- }
- function twd(a, b, c2) {
- var d, e, f2;
- if (a.ej()) {
- d = a.Vi();
- f2 = a.fj();
- ++a.j;
- a.Hi(d, a.oi(d, b));
- e = a.Zi(3, null, b, d, f2);
- !c2 ? c2 = e : c2.Ei(e);
- } else {
- Avd(a, a.Vi(), b);
- }
- return c2;
- }
- function WOd(a, b, c2) {
- var d, e, f2;
- d = BD(qud(VKd(a.a), b), 87);
- f2 = (e = d.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd));
- ((f2.Db & 64) != 0 ? xid(a.b, f2) : f2) == c2 ? KQd(d) : NQd(d, c2);
- return f2;
- }
- function Ewb(a, b, c2, d, e, f2, g, h) {
- var i3, j;
- if (!d) {
- return;
- }
- i3 = d.a[0];
- !!i3 && Ewb(a, b, c2, i3, e, f2, g, h);
- Fwb(a, c2, d.d, e, f2, g, h) && b.Fc(d);
- j = d.a[1];
- !!j && Ewb(a, b, c2, j, e, f2, g, h);
- }
- function eAb(a, b) {
- var c2;
- if (!a.a) {
- c2 = KC(UD, Vje, 25, 0, 15, 1);
- _ub(a.b.a, new iAb(c2));
- c2.sort(dcb(Ylb.prototype.te, Ylb, []));
- a.a = new Avb(c2, a.d);
- }
- return pvb(a.a, b);
- }
- function YMb(b, c2, d) {
- try {
- return Bbb(_Mb(b, c2, d), 1);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 320)) {
- throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
- } else
- throw vbb(a);
- }
- }
- function ZMb(b, c2, d) {
- try {
- return Bbb(_Mb(b, c2, d), 0);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 320)) {
- throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
- } else
- throw vbb(a);
- }
- }
- function $Mb(b, c2, d) {
- try {
- return Bbb(_Mb(b, c2, d), 2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 320)) {
- throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
- } else
- throw vbb(a);
- }
- }
- function Nyd(b, c2) {
- if (b.g == -1) {
- throw vbb(new Ydb());
- }
- b.mj();
- try {
- b.d._c(b.g, c2);
- b.f = b.d.j;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- throw vbb(new Apb());
- } else
- throw vbb(a);
- }
- }
- function rJc(a, b, c2) {
- Odd(c2, "Linear segments node placement", 1);
- a.b = BD(vNb(b, (wtc(), otc)), 304);
- sJc(a, b);
- nJc(a, b);
- kJc(a, b);
- qJc(a);
- a.a = null;
- a.b = null;
- Qdd(c2);
- }
- function Ee(a, b) {
- var c2, d, e, f2;
- f2 = a.gc();
- b.length < f2 && (b = eCb(new Array(f2), b));
- e = b;
- d = a.Kc();
- for (c2 = 0; c2 < f2; ++c2) {
- NC(e, c2, d.Pb());
- }
- b.length > f2 && NC(b, f2, null);
- return b;
- }
- function Lu(a, b) {
- var c2, d;
- d = a.gc();
- if (b == null) {
- for (c2 = 0; c2 < d; c2++) {
- if (a.Xb(c2) == null) {
- return c2;
- }
- }
- } else {
- for (c2 = 0; c2 < d; c2++) {
- if (pb(b, a.Xb(c2))) {
- return c2;
- }
- }
- }
- return -1;
- }
- function Jd(a, b) {
- var c2, d, e;
- c2 = b.cd();
- e = b.dd();
- d = a.xc(c2);
- if (!(PD(e) === PD(d) || e != null && pb(e, d))) {
- return false;
- }
- if (d == null && !a._b(c2)) {
- return false;
- }
- return true;
- }
- function YC(a, b) {
- var c2, d, e;
- if (b <= 22) {
- c2 = a.l & (1 << b) - 1;
- d = e = 0;
- } else if (b <= 44) {
- c2 = a.l;
- d = a.m & (1 << b - 22) - 1;
- e = 0;
- } else {
- c2 = a.l;
- d = a.m;
- e = a.h & (1 << b - 44) - 1;
- }
- return TC(c2, d, e);
- }
- function yKb(a, b) {
- switch (b.g) {
- case 1:
- return a.f.n.d + a.t;
- case 3:
- return a.f.n.a + a.t;
- case 2:
- return a.f.n.c + a.s;
- case 4:
- return a.f.n.b + a.s;
- default:
- return 0;
- }
- }
- function aLb(a, b) {
- var c2, d;
- d = b.c;
- c2 = b.a;
- switch (a.b.g) {
- case 0:
- c2.d = a.e - d.a - d.d;
+ case 28:
+ this.begin("namespace");
+ return 40;
break;
- case 1:
- c2.d += a.e;
+ case 29:
+ this.popState();
+ return 8;
break;
- case 2:
- c2.c = a.e - d.a - d.d;
+ case 30:
break;
- case 3:
- c2.c = a.e + d.d;
- }
- }
- function ZOb(a, b, c2, d) {
- var e, f2;
- this.a = b;
- this.c = d;
- e = a.a;
- YOb(this, new f7c(-e.c, -e.d));
- P6c(this.b, c2);
- f2 = d / 2;
- b.a ? b7c(this.b, 0, f2) : b7c(this.b, f2, 0);
- Ekb(a.c, this);
- }
- function iXc() {
- iXc = ccb;
- hXc = new kXc(ane, 0);
- fXc = new kXc(Vne, 1);
- gXc = new kXc("EDGE_LENGTH_BY_POSITION", 2);
- eXc = new kXc("CROSSING_MINIMIZATION_BY_POSITION", 3);
- }
- function Wqd(a, b) {
- var c2, d;
- c2 = BD(oo(a.g, b), 33);
- if (c2) {
- return c2;
- }
- d = BD(oo(a.j, b), 118);
- if (d) {
- return d;
- }
- throw vbb(new cqd("Referenced shape does not exist: " + b));
- }
- function rTb(a, b) {
- if (a.c == b) {
- return a.d;
- } else if (a.d == b) {
- return a.c;
- } else {
- throw vbb(new Wdb("Node 'one' must be either source or target of edge 'edge'."));
- }
- }
- function TMc(a, b) {
- if (a.c.i == b) {
- return a.d.i;
- } else if (a.d.i == b) {
- return a.c.i;
- } else {
- throw vbb(new Wdb("Node " + b + " is neither source nor target of edge " + a));
- }
- }
- function _lc(a, b) {
- var c2;
- switch (b.g) {
- case 2:
- case 4:
- c2 = a.a;
- a.c.d.n.b < c2.d.n.b && (c2 = a.c);
- amc(a, b, (Ajc(), zjc), c2);
+ case 31:
+ this.begin("namespace-body");
+ return 37;
break;
- case 1:
- case 3:
- amc(a, b, (Ajc(), wjc), null);
- }
- }
- function smc(a, b, c2, d, e, f2) {
- var g, h, i3, j, k;
- g = qmc(b, c2, f2);
- h = c2 == (Ucd(), Acd) || c2 == Tcd ? -1 : 1;
- j = a[c2.g];
- for (k = 0; k < j.length; k++) {
- i3 = j[k];
- i3 > 0 && (i3 += e);
- j[k] = g;
- g += h * (i3 + d);
- }
- }
- function Uoc(a) {
- var b, c2, d;
- d = a.f;
- a.n = KC(UD, Vje, 25, d, 15, 1);
- a.d = KC(UD, Vje, 25, d, 15, 1);
- for (b = 0; b < d; b++) {
- c2 = BD(Ikb(a.c.b, b), 29);
- a.n[b] = Roc(a, c2);
- a.d[b] = Qoc(a, c2);
- }
- }
- function zjd(a, b) {
- var c2, d, e;
- e = 0;
- for (d = 2; d < b; d <<= 1) {
- (a.Db & d) != 0 && ++e;
- }
- if (e == 0) {
- for (c2 = b <<= 1; c2 <= 128; c2 <<= 1) {
- if ((a.Db & c2) != 0) {
- return 0;
- }
- }
- return -1;
- } else {
- return e;
- }
- }
- function s3d(a, b) {
- var c2, d, e, f2, g;
- g = S6d(a.e.Tg(), b);
- f2 = null;
- c2 = BD(a.g, 119);
- for (e = 0; e < a.i; ++e) {
- d = c2[e];
- if (g.rl(d.ak())) {
- !f2 && (f2 = new yud());
- wtd(f2, d);
- }
- }
- !!f2 && Yxd(a, f2);
- }
- function H9d(a) {
- var b, c2, d;
- if (!a)
- return null;
- if (a.dc())
- return "";
- d = new Hfb();
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = c2.Pb();
- Efb(d, GD(b));
- d.a += " ";
- }
- return lcb(d, d.a.length - 1);
- }
- function Ty(a, b, c2) {
- var d, e, f2, g, h;
- Uy(a);
- for (e = (a.k == null && (a.k = KC(_I, nie, 78, 0, 0, 1)), a.k), f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- Ty(d);
- }
- h = a.f;
- !!h && Ty(h);
- }
- function LC(a, b) {
- var c2 = new Array(b);
- var d;
- switch (a) {
- case 14:
- case 15:
- d = 0;
+ case 32:
+ this.popState();
+ return 39;
break;
- case 16:
- d = false;
+ case 33:
+ return "EOF_IN_STRUCT";
break;
- default:
- return c2;
- }
- for (var e = 0; e < b; ++e) {
- c2[e] = d;
- }
- return c2;
- }
- function PDb(a) {
- var b, c2, d;
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- b.c.$b();
- }
- fad(a.d) ? d = a.a.c : d = a.a.d;
- Hkb(d, new dEb(a));
- a.c.Me(a);
- QDb(a);
- }
- function sRb(a) {
- var b, c2, d, e;
- for (c2 = new olb(a.e.c); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 282);
- for (e = new olb(b.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 447);
- lRb(d);
- }
- cRb(b);
- }
- }
- function a$c(a) {
- var b, c2, d, e, f2;
- d = 0;
- f2 = 0;
- e = 0;
- for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 187);
- f2 = $wnd.Math.max(f2, b.r);
- d += b.d + (e > 0 ? a.c : 0);
- ++e;
- }
- a.b = d;
- a.d = f2;
- }
- function BZc(a, b) {
- var c2, d, e, f2, g;
- d = 0;
- e = 0;
- c2 = 0;
- for (g = new olb(b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 200);
- d = $wnd.Math.max(d, f2.e);
- e += f2.b + (c2 > 0 ? a.g : 0);
- ++c2;
- }
- a.c = e;
- a.d = d;
- }
- function AHb(a, b) {
- var c2;
- c2 = OC(GC(UD, 1), Vje, 25, 15, [zHb(a, (gHb(), dHb), b), zHb(a, eHb, b), zHb(a, fHb, b)]);
- if (a.f) {
- c2[0] = $wnd.Math.max(c2[0], c2[2]);
- c2[2] = c2[0];
- }
- return c2;
- }
- function lNb(b, c2, d) {
- var e;
- try {
- aNb(b, c2 + b.j, d + b.k, false, true);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- e = a;
- throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
- } else
- throw vbb(a);
- }
- }
- function mNb(b, c2, d) {
- var e;
- try {
- aNb(b, c2 + b.j, d + b.k, true, false);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- e = a;
- throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
- } else
- throw vbb(a);
- }
- }
- function d5b(a) {
- var b;
- if (!wNb(a, (Nyc(), xxc))) {
- return;
- }
- b = BD(vNb(a, xxc), 21);
- if (b.Hc((Hbd(), zbd))) {
- b.Mc(zbd);
- b.Fc(Bbd);
- } else if (b.Hc(Bbd)) {
- b.Mc(Bbd);
- b.Fc(zbd);
- }
- }
- function e5b(a) {
- var b;
- if (!wNb(a, (Nyc(), xxc))) {
- return;
- }
- b = BD(vNb(a, xxc), 21);
- if (b.Hc((Hbd(), Gbd))) {
- b.Mc(Gbd);
- b.Fc(Ebd);
- } else if (b.Hc(Ebd)) {
- b.Mc(Ebd);
- b.Fc(Gbd);
- }
- }
- function udc(a, b, c2) {
- Odd(c2, "Self-Loop ordering", 1);
- MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new ydc()), new Adc()), new Cdc()), new Edc()), new Gdc(a));
- Qdd(c2);
- }
- function ikc(a, b, c2, d) {
- var e, f2;
- for (e = b; e < a.c.length; e++) {
- f2 = (tCb(e, a.c.length), BD(a.c[e], 11));
- if (c2.Mb(f2)) {
- d.c[d.c.length] = f2;
- } else {
- return e;
- }
- }
- return a.c.length;
- }
- function Kmc(a, b, c2, d) {
- var e, f2, g, h;
- a.a == null && Nmc(a, b);
- g = b.b.j.c.length;
- f2 = c2.d.p;
- h = d.d.p;
- e = h - 1;
- e < 0 && (e = g - 1);
- return f2 <= e ? a.a[e] - a.a[f2] : a.a[g - 1] - a.a[f2] + a.a[e];
- }
- function ehd(a) {
- var b, c2;
- if (!a.b) {
- a.b = Qu(BD(a.f, 33).Ag().i);
- for (c2 = new Fyd(BD(a.f, 33).Ag()); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 137);
- Ekb(a.b, new dhd(b));
- }
- }
- return a.b;
- }
- function fhd(a) {
- var b, c2;
- if (!a.e) {
- a.e = Qu(Yod(BD(a.f, 33)).i);
- for (c2 = new Fyd(Yod(BD(a.f, 33))); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 118);
- Ekb(a.e, new thd(b));
- }
- }
- return a.e;
- }
- function ahd(a) {
- var b, c2;
- if (!a.a) {
- a.a = Qu(Vod(BD(a.f, 33)).i);
- for (c2 = new Fyd(Vod(BD(a.f, 33))); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 33);
- Ekb(a.a, new hhd(a, b));
- }
- }
- return a.a;
- }
- function dKd(b) {
- var c2;
- if (!b.C && (b.D != null || b.B != null)) {
- c2 = eKd(b);
- if (c2) {
- b.yk(c2);
- } else {
- try {
- b.yk(null);
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 60))
- throw vbb(a);
- }
- }
- }
- return b.C;
- }
- function GJb(a) {
- switch (a.q.g) {
- case 5:
- DJb(a, (Ucd(), Acd));
- DJb(a, Rcd);
+ case 34:
+ return 8;
break;
- case 4:
- EJb(a, (Ucd(), Acd));
- EJb(a, Rcd);
+ case 35:
break;
- default:
- FJb(a, (Ucd(), Acd));
- FJb(a, Rcd);
- }
- }
- function PKb(a) {
- switch (a.q.g) {
- case 5:
- MKb(a, (Ucd(), zcd));
- MKb(a, Tcd);
+ case 36:
+ return "EDGE_STATE";
break;
- case 4:
- NKb(a, (Ucd(), zcd));
- NKb(a, Tcd);
+ case 37:
+ this.begin("class");
+ return 44;
break;
- default:
- OKb(a, (Ucd(), zcd));
- OKb(a, Tcd);
- }
- }
- function EXb(a, b) {
- var c2, d, e;
- e = new d7c();
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 37);
- uXb(c2, e.a, 0);
- e.a += c2.f.a + b;
- e.b = $wnd.Math.max(e.b, c2.f.b);
- }
- e.b > 0 && (e.b += b);
- return e;
- }
- function GXb(a, b) {
- var c2, d, e;
- e = new d7c();
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 37);
- uXb(c2, 0, e.b);
- e.b += c2.f.b + b;
- e.a = $wnd.Math.max(e.a, c2.f.a);
- }
- e.a > 0 && (e.a += b);
- return e;
- }
- function d_b(a) {
- var b, c2, d;
- d = Ohe;
- for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- wNb(b, (wtc(), Zsc)) && (d = $wnd.Math.min(d, BD(vNb(b, Zsc), 19).a));
- }
- return d;
- }
- function pHc(a, b) {
- var c2, d;
- if (b.length == 0) {
- return 0;
- }
- c2 = NHc(a.a, b[0], (Ucd(), Tcd));
- c2 += NHc(a.a, b[b.length - 1], zcd);
- for (d = 0; d < b.length; d++) {
- c2 += qHc(a, d, b);
- }
- return c2;
- }
- function vQc() {
- hQc();
- this.c = new Rkb();
- this.i = new Rkb();
- this.e = new zsb();
- this.f = new zsb();
- this.g = new zsb();
- this.j = new Rkb();
- this.a = new Rkb();
- this.b = new Lqb();
- this.k = new Lqb();
- }
- function aKd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 6) {
- return a.Cb.ih(a, 5, o5, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? a.zh() : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function Wz(a) {
- Rz();
- var b = a.e;
- if (b && b.stack) {
- var c2 = b.stack;
- var d = b + "\n";
- c2.substring(0, d.length) == d && (c2 = c2.substring(d.length));
- return c2.split("\n");
- }
- return [];
- }
- function jeb(a) {
- var b;
- b = (qeb(), peb);
- return b[a >>> 28] | b[a >> 24 & 15] << 4 | b[a >> 20 & 15] << 8 | b[a >> 16 & 15] << 12 | b[a >> 12 & 15] << 16 | b[a >> 8 & 15] << 20 | b[a >> 4 & 15] << 24 | b[a & 15] << 28;
- }
- function _jb(a) {
- var b, c2, d;
- if (a.b != a.c) {
- return;
- }
- d = a.a.length;
- c2 = geb($wnd.Math.max(8, d)) << 1;
- if (a.b != 0) {
- b = _Bb(a.a, c2);
- $jb(a, b, d);
- a.a = b;
- a.b = 0;
- } else {
- dCb(a.a, c2);
- }
- a.c = d;
- }
- function DKb(a, b) {
- var c2;
- c2 = a.b;
- return c2.Xe((Y9c(), s9c)) ? c2.Hf() == (Ucd(), Tcd) ? -c2.rf().a - Edb(ED(c2.We(s9c))) : b + Edb(ED(c2.We(s9c))) : c2.Hf() == (Ucd(), Tcd) ? -c2.rf().a : b;
- }
- function P_b(a) {
- var b;
- if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) {
- return BD(Ikb(a.b, 0), 70).a;
- }
- b = JZb(a);
- if (b != null) {
- return b;
- }
- return "" + (!a.c ? -1 : Jkb(a.c.a, a, 0));
- }
- function C0b(a) {
- var b;
- if (a.f.c.length != 0 && !!BD(Ikb(a.f, 0), 70).a) {
- return BD(Ikb(a.f, 0), 70).a;
- }
- b = JZb(a);
- if (b != null) {
- return b;
- }
- return "" + (!a.i ? -1 : Jkb(a.i.j, a, 0));
- }
- function Ogc(a, b) {
- var c2, d;
- if (b < 0 || b >= a.gc()) {
- return null;
- }
- for (c2 = b; c2 < a.gc(); ++c2) {
- d = BD(a.Xb(c2), 128);
- if (c2 == a.gc() - 1 || !d.o) {
- return new vgd(meb(c2), d);
- }
- }
- return null;
- }
- function uoc(a, b, c2) {
- var d, e, f2, g, h;
- f2 = a.c;
- h = c2 ? b : a;
- d = c2 ? a : b;
- for (e = h.p + 1; e < d.p; ++e) {
- g = BD(Ikb(f2.a, e), 10);
- if (!(g.k == (j0b(), d0b) || voc(g))) {
- return false;
- }
- }
- return true;
- }
- function u$c(a) {
- var b, c2, d, e, f2;
- f2 = 0;
- e = Qje;
- d = 0;
- for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 187);
- f2 += b.r + (d > 0 ? a.c : 0);
- e = $wnd.Math.max(e, b.d);
- ++d;
- }
- a.e = f2;
- a.b = e;
- }
- function shd(a) {
- var b, c2;
- if (!a.b) {
- a.b = Qu(BD(a.f, 118).Ag().i);
- for (c2 = new Fyd(BD(a.f, 118).Ag()); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 137);
- Ekb(a.b, new dhd(b));
- }
- }
- return a.b;
- }
- function Ctd(a, b) {
- var c2, d, e;
- if (b.dc()) {
- return LCd(), LCd(), KCd;
- } else {
- c2 = new zyd(a, b.gc());
- for (e = new Fyd(a); e.e != e.i.gc(); ) {
- d = Dyd(e);
- b.Hc(d) && wtd(c2, d);
- }
- return c2;
- }
- }
- function bkd(a, b, c2, d) {
- if (b == 0) {
- return d ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), FAd(a.o));
- }
- return fid(a, b, c2, d);
- }
- function Tnd(a) {
- var b, c2;
- if (a.rb) {
- for (b = 0, c2 = a.rb.i; b < c2; ++b) {
- Cmd(qud(a.rb, b));
- }
- }
- if (a.vb) {
- for (b = 0, c2 = a.vb.i; b < c2; ++b) {
- Cmd(qud(a.vb, b));
- }
- }
- u1d((O6d(), M6d), a);
- a.Bb |= 1;
- }
- function _nd(a, b, c2, d, e, f2, g, h, i3, j, k, l, m, n) {
- aod(a, b, d, null, e, f2, g, h, i3, j, m, true, n);
- CUd(a, k);
- JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2);
- !!c2 && DUd(a, c2);
- EUd(a, l);
- return a;
- }
- function jZd(b) {
- var c2, d;
- if (b == null) {
- return null;
- }
- d = 0;
- try {
- d = Icb(b, Rie, Ohe) & aje;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- c2 = rfb(b);
- d = c2[0];
- } else
- throw vbb(a);
- }
- return bdb(d);
- }
- function kZd(b) {
- var c2, d;
- if (b == null) {
- return null;
- }
- d = 0;
- try {
- d = Icb(b, Rie, Ohe) & aje;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- c2 = rfb(b);
- d = c2[0];
- } else
- throw vbb(a);
- }
- return bdb(d);
- }
- function bD(a, b) {
- var c2, d, e;
- e = a.h - b.h;
- if (e < 0) {
- return false;
- }
- c2 = a.l - b.l;
- d = a.m - b.m + (c2 >> 22);
- e += d >> 22;
- if (e < 0) {
- return false;
- }
- a.l = c2 & Eje;
- a.m = d & Eje;
- a.h = e & Fje;
- return true;
- }
- function Fwb(a, b, c2, d, e, f2, g) {
- var h, i3;
- if (b.Ae() && (i3 = a.a.ue(c2, d), i3 < 0 || !e && i3 == 0)) {
- return false;
- }
- if (b.Be() && (h = a.a.ue(c2, f2), h > 0 || !g && h == 0)) {
- return false;
- }
- return true;
- }
- function Vcc(a, b) {
- Occ();
- var c2;
- c2 = a.j.g - b.j.g;
- if (c2 != 0) {
- return 0;
- }
- switch (a.j.g) {
- case 2:
- return Ycc(b, Ncc) - Ycc(a, Ncc);
- case 4:
- return Ycc(a, Mcc) - Ycc(b, Mcc);
- }
- return 0;
- }
- function Tqc(a) {
- switch (a.g) {
- case 0:
- return Mqc;
- case 1:
- return Nqc;
- case 2:
- return Oqc;
- case 3:
- return Pqc;
- case 4:
- return Qqc;
- case 5:
- return Rqc;
- default:
- return null;
- }
- }
- function End(a, b, c2) {
- var d, e;
- d = (e = new rUd(), yId(e, b), pnd(e, c2), wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), e), e);
- AId(d, 0);
- DId(d, 1);
- CId(d, true);
- BId(d, true);
- return d;
- }
- function tud(a, b) {
- var c2, d;
- if (b >= a.i)
- throw vbb(new $zd(b, a.i));
- ++a.j;
- c2 = a.g[b];
- d = a.i - b - 1;
- d > 0 && $fb(a.g, b + 1, a.g, b, d);
- NC(a.g, --a.i, null);
- a.fi(b, c2);
- a.ci();
- return c2;
- }
- function UId(a, b) {
- var c2, d;
- if (a.Db >> 16 == 17) {
- return a.Cb.ih(a, 21, c5, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? a.zh() : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function iDb(a) {
- var b, c2, d, e;
- mmb();
- Okb(a.c, a.a);
- for (e = new olb(a.c); e.a < e.c.c.length; ) {
- d = mlb(e);
- for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 679);
- b.Ke(d);
- }
- }
- }
- function pXb(a) {
- var b, c2, d, e;
- mmb();
- Okb(a.c, a.a);
- for (e = new olb(a.c); e.a < e.c.c.length; ) {
- d = mlb(e);
- for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 369);
- b.Ke(d);
- }
- }
- }
- function AGb(a) {
- var b, c2, d, e, f2;
- e = Ohe;
- f2 = null;
- for (d = new olb(a.d); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 213);
- if (c2.d.j ^ c2.e.j) {
- b = c2.e.e - c2.d.e - c2.a;
- if (b < e) {
- e = b;
- f2 = c2;
- }
- }
- }
- return f2;
- }
- function OSb() {
- OSb = ccb;
- MSb = new Nsd(Mme, (Bcb(), false));
- ISb = new Nsd(Nme, 100);
- KSb = (yTb(), wTb);
- JSb = new Nsd(Ome, KSb);
- LSb = new Nsd(Pme, qme);
- NSb = new Nsd(Qme, meb(Ohe));
- }
- function ric(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- j = 0;
- for (e = a.a[b], f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- k = CHc(d, c2);
- for (i3 = k.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 11);
- Rhb(a.f, h, meb(j++));
- }
- }
- }
- function uqd(a, b, c2) {
- var d, e, f2, g;
- if (c2) {
- e = c2.a.length;
- d = new Yge(e);
- for (g = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g.Ob(); ) {
- f2 = BD(g.Pb(), 19);
- Rc(a, b, Vpd(tB(c2, f2.a)));
- }
- }
- }
- function vqd(a, b, c2) {
- var d, e, f2, g;
- if (c2) {
- e = c2.a.length;
- d = new Yge(e);
- for (g = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g.Ob(); ) {
- f2 = BD(g.Pb(), 19);
- Rc(a, b, Vpd(tB(c2, f2.a)));
- }
- }
- }
- function Bkc(a) {
- gkc();
- var b;
- b = BD(Ee(Ec(a.k), KC(F1, bne, 61, 2, 0, 1)), 122);
- Klb(b, 0, b.length, null);
- if (b[0] == (Ucd(), Acd) && b[1] == Tcd) {
- NC(b, 0, Tcd);
- NC(b, 1, Acd);
- }
- return b;
- }
- function JHc(a, b, c2) {
- var d, e, f2;
- e = HHc(a, b, c2);
- f2 = KHc(a, e);
- yHc(a.b);
- cIc(a, b, c2);
- mmb();
- Okb(e, new hIc(a));
- d = KHc(a, e);
- yHc(a.b);
- cIc(a, c2, b);
- return new vgd(meb(f2), meb(d));
- }
- function jJc() {
- jJc = ccb;
- gJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
- hJc = new Msd("linearSegments.inputPrio", meb(0));
- iJc = new Msd("linearSegments.outputPrio", meb(0));
- }
- function yRc() {
- yRc = ccb;
- uRc = new ARc("P1_TREEIFICATION", 0);
- vRc = new ARc("P2_NODE_ORDERING", 1);
- wRc = new ARc("P3_NODE_PLACEMENT", 2);
- xRc = new ARc("P4_EDGE_ROUTING", 3);
- }
- function ZWc() {
- ZWc = ccb;
- UWc = (Y9c(), C9c);
- XWc = T9c;
- NWc = Y8c;
- OWc = _8c;
- PWc = b9c;
- MWc = W8c;
- QWc = e9c;
- TWc = x9c;
- KWc = (HWc(), wWc);
- LWc = xWc;
- RWc = zWc;
- SWc = BWc;
- VWc = CWc;
- WWc = DWc;
- YWc = FWc;
- }
- function rbd() {
- rbd = ccb;
- qbd = new tbd("UNKNOWN", 0);
- nbd = new tbd("ABOVE", 1);
- obd = new tbd("BELOW", 2);
- pbd = new tbd("INLINE", 3);
- new Msd("org.eclipse.elk.labelSide", qbd);
- }
- function rud(a, b) {
- var c2;
- if (a.ni() && b != null) {
- for (c2 = 0; c2 < a.i; ++c2) {
- if (pb(b, a.g[c2])) {
- return c2;
- }
- }
- } else {
- for (c2 = 0; c2 < a.i; ++c2) {
- if (PD(a.g[c2]) === PD(b)) {
- return c2;
- }
- }
- }
- return -1;
- }
- function DZb(a, b, c2) {
- var d, e;
- if (b.c == (KAc(), IAc) && c2.c == HAc) {
- return -1;
- } else if (b.c == HAc && c2.c == IAc) {
- return 1;
- }
- d = HZb(b.a, a.a);
- e = HZb(c2.a, a.a);
- return b.c == IAc ? e - d : d - e;
- }
- function Z_b(a, b, c2) {
- if (!!c2 && (b < 0 || b > c2.a.c.length)) {
- throw vbb(new Wdb("index must be >= 0 and <= layer node count"));
- }
- !!a.c && Lkb(a.c.a, a);
- a.c = c2;
- !!c2 && Dkb(c2.a, b, a);
- }
- function p7b(a, b) {
- var c2, d, e;
- for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- e = BD(b.Kb(c2), 10);
- return new cc(Qb(e.n.b + e.o.b / 2));
- }
- return wb(), wb(), vb;
- }
- function rMc(a, b) {
- this.c = new Lqb();
- this.a = a;
- this.b = b;
- this.d = BD(vNb(a, (wtc(), otc)), 304);
- PD(vNb(a, (Nyc(), yxc))) === PD((_qc(), Zqc)) ? this.e = new bNc() : this.e = new WMc();
- }
- function $dd(a, b) {
- var c2, d, e, f2;
- f2 = 0;
- for (d = new olb(a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 33);
- f2 += $wnd.Math.pow(c2.g * c2.f - b, 2);
- }
- e = $wnd.Math.sqrt(f2 / (a.c.length - 1));
- return e;
- }
- function bgd(a, b) {
- var c2, d;
- d = null;
- if (a.Xe((Y9c(), O9c))) {
- c2 = BD(a.We(O9c), 94);
- c2.Xe(b) && (d = c2.We(b));
- }
- d == null && !!a.yf() && (d = a.yf().We(b));
- d == null && (d = Ksd(b));
- return d;
- }
- function Vt(b, c2) {
- var d, e;
- d = b.Zc(c2);
- try {
- e = d.Pb();
- d.Qb();
- return e;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 109)) {
- throw vbb(new qcb("Can't remove element " + c2));
- } else
- throw vbb(a);
- }
- }
- function qA(a, b) {
- var c2, d, e;
- d = new eB();
- e = new fB(d.q.getFullYear() - nje, d.q.getMonth(), d.q.getDate());
- c2 = pA(a, b, e);
- if (c2 == 0 || c2 < b.length) {
- throw vbb(new Wdb(b));
- }
- return e;
- }
- function _tb(a, b) {
- var c2, d, e;
- uCb(b);
- lCb(b != a);
- e = a.b.c.length;
- for (d = b.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- Ekb(a.b, uCb(c2));
- }
- if (e != a.b.c.length) {
- aub(a, 0);
- return true;
- }
- return false;
- }
- function bTb() {
- bTb = ccb;
- VSb = (Y9c(), O8c);
- new Osd(B8c, (Bcb(), true));
- YSb = Y8c;
- ZSb = _8c;
- $Sb = b9c;
- XSb = W8c;
- _Sb = e9c;
- aTb = x9c;
- USb = (OSb(), MSb);
- SSb = JSb;
- TSb = LSb;
- WSb = NSb;
- RSb = ISb;
- }
- function MZb(a, b) {
- if (b == a.c) {
- return a.d;
- } else if (b == a.d) {
- return a.c;
- } else {
- throw vbb(new Wdb("'port' must be either the source port or target port of the edge."));
- }
- }
- function C3b(a, b, c2) {
- var d, e;
- e = a.o;
- d = a.d;
- switch (b.g) {
- case 1:
- return -d.d - c2;
- case 3:
- return e.b + d.a + c2;
- case 2:
- return e.a + d.c + c2;
- case 4:
- return -d.b - c2;
- default:
- return 0;
- }
- }
- function H6b(a, b, c2, d) {
- var e, f2, g, h;
- $_b(b, BD(d.Xb(0), 29));
- h = d.bd(1, d.gc());
- for (f2 = BD(c2.Kb(b), 20).Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 17);
- g = e.c.i == b ? e.d.i : e.c.i;
- H6b(a, g, c2, h);
- }
- }
- function Xec(a) {
- var b;
- b = new Lqb();
- if (wNb(a, (wtc(), ttc))) {
- return BD(vNb(a, ttc), 83);
- }
- MAb(JAb(new YAb(null, new Kub(a.j, 16)), new Zec()), new _ec(b));
- yNb(a, ttc, b);
- return b;
- }
- function cmd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 6) {
- return a.Cb.ih(a, 6, B2, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Lhd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function Eod(a, b) {
- var c2, d;
- if (a.Db >> 16 == 7) {
- return a.Cb.ih(a, 1, C2, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Nhd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function lpd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 9) {
- return a.Cb.ih(a, 9, E2, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Phd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function mQd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 5) {
- return a.Cb.ih(a, 9, h5, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), VFd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function KHd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 3) {
- return a.Cb.ih(a, 0, k5, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), OFd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function Snd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 7) {
- return a.Cb.ih(a, 6, o5, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), cGd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function ird() {
- this.a = new bqd();
- this.g = new wo();
- this.j = new wo();
- this.b = new Lqb();
- this.d = new wo();
- this.i = new wo();
- this.k = new Lqb();
- this.c = new Lqb();
- this.e = new Lqb();
- this.f = new Lqb();
- }
- function MCd(a, b, c2) {
- var d, e, f2;
- c2 < 0 && (c2 = 0);
- f2 = a.i;
- for (e = c2; e < f2; e++) {
- d = qud(a, e);
- if (b == null) {
- if (d == null) {
- return e;
- }
- } else if (PD(b) === PD(d) || pb(b, d)) {
- return e;
- }
- }
- return -1;
- }
- function b1d(a, b) {
- var c2, d;
- c2 = b.Hh(a.a);
- if (!c2) {
- return null;
- } else {
- d = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Awe));
- return dfb(Bwe, d) ? u1d(a, bKd(b.Hj())) : d;
- }
- }
- function p6d(a, b) {
- var c2, d;
- if (b) {
- if (b == a) {
- return true;
- }
- c2 = 0;
- for (d = BD(b, 49).eh(); !!d && d != b; d = d.eh()) {
- if (++c2 > Wje) {
- return p6d(a, d);
- }
- if (d == a) {
- return true;
- }
- }
- }
- return false;
- }
- function HKb(a) {
- CKb();
- switch (a.q.g) {
- case 5:
- EKb(a, (Ucd(), Acd));
- EKb(a, Rcd);
+ case 38:
+ this.popState();
+ return 8;
break;
- case 4:
- FKb(a, (Ucd(), Acd));
- FKb(a, Rcd);
+ case 39:
break;
- default:
- GKb(a, (Ucd(), Acd));
- GKb(a, Rcd);
- }
- }
- function LKb(a) {
- CKb();
- switch (a.q.g) {
- case 5:
- IKb(a, (Ucd(), zcd));
- IKb(a, Tcd);
+ case 40:
+ this.popState();
+ this.popState();
+ return 39;
break;
- case 4:
- JKb(a, (Ucd(), zcd));
- JKb(a, Tcd);
+ case 41:
+ this.begin("class-body");
+ return 37;
+ break;
+ case 42:
+ this.popState();
+ return 39;
+ break;
+ case 43:
+ return "EOF_IN_STRUCT";
+ break;
+ case 44:
+ return "EDGE_STATE";
+ break;
+ case 45:
+ return "OPEN_IN_STRUCT";
+ break;
+ case 46:
+ break;
+ case 47:
+ return "MEMBER";
+ break;
+ case 48:
+ return 76;
+ break;
+ case 49:
+ return 66;
+ break;
+ case 50:
+ return 67;
+ break;
+ case 51:
+ return 69;
+ break;
+ case 52:
+ return 50;
+ break;
+ case 53:
+ return 52;
+ break;
+ case 54:
+ return 45;
+ break;
+ case 55:
+ return 46;
+ break;
+ case 56:
+ return 72;
+ break;
+ case 57:
+ this.popState();
+ break;
+ case 58:
+ return "GENERICTYPE";
+ break;
+ case 59:
+ this.begin("generic");
+ break;
+ case 60:
+ this.popState();
+ break;
+ case 61:
+ return "BQUOTE_STR";
+ break;
+ case 62:
+ this.begin("bqstring");
+ break;
+ case 63:
+ return 68;
+ break;
+ case 64:
+ return 68;
+ break;
+ case 65:
+ return 68;
+ break;
+ case 66:
+ return 68;
+ break;
+ case 67:
+ return 60;
+ break;
+ case 68:
+ return 60;
+ break;
+ case 69:
+ return 62;
+ break;
+ case 70:
+ return 62;
+ break;
+ case 71:
+ return 61;
+ break;
+ case 72:
+ return 59;
+ break;
+ case 73:
+ return 63;
+ break;
+ case 74:
+ return 64;
+ break;
+ case 75:
+ return 65;
+ break;
+ case 76:
+ return 21;
+ break;
+ case 77:
+ return 42;
+ break;
+ case 78:
+ return 95;
+ break;
+ case 79:
+ return "DOT";
+ break;
+ case 80:
+ return "PLUS";
+ break;
+ case 81:
+ return 81;
+ break;
+ case 82:
+ return 78;
+ break;
+ case 83:
+ return 84;
+ break;
+ case 84:
+ return 84;
+ break;
+ case 85:
+ return 85;
+ break;
+ case 86:
+ return "EQUALS";
+ break;
+ case 87:
+ return "EQUALS";
+ break;
+ case 88:
+ return 74;
+ break;
+ case 89:
+ return 12;
+ break;
+ case 90:
+ return 14;
+ break;
+ case 91:
+ return "PUNCTUATION";
+ break;
+ case 92:
+ return 80;
+ break;
+ case 93:
+ return 97;
+ break;
+ case 94:
+ return 83;
+ break;
+ case 95:
+ return 83;
+ break;
+ case 96:
+ return 9;
break;
- default:
- KKb(a, (Ucd(), zcd));
- KKb(a, Tcd);
- }
- }
- function XQb(a) {
- var b, c2;
- b = BD(vNb(a, (wSb(), pSb)), 19);
- if (b) {
- c2 = b.a;
- c2 == 0 ? yNb(a, (HSb(), GSb), new Gub()) : yNb(a, (HSb(), GSb), new Hub(c2));
- } else {
- yNb(a, (HSb(), GSb), new Hub(1));
- }
- }
- function V$b(a, b) {
- var c2;
- c2 = a.i;
- switch (b.g) {
- case 1:
- return -(a.n.b + a.o.b);
- case 2:
- return a.n.a - c2.o.a;
- case 3:
- return a.n.b - c2.o.b;
- case 4:
- return -(a.n.a + a.o.a);
- }
- return 0;
- }
- function hbc(a, b) {
- switch (a.g) {
- case 0:
- return b == (Ctc(), ytc) ? dbc : ebc;
- case 1:
- return b == (Ctc(), ytc) ? dbc : cbc;
- case 2:
- return b == (Ctc(), ytc) ? cbc : ebc;
- default:
- return cbc;
- }
- }
- function v$c(a, b) {
- var c2, d, e;
- Lkb(a.a, b);
- a.e -= b.r + (a.a.c.length == 0 ? 0 : a.c);
- e = ere;
- for (d = new olb(a.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 187);
- e = $wnd.Math.max(e, c2.d);
- }
- a.b = e;
- }
- function Lld(a, b) {
- var c2, d;
- if (a.Db >> 16 == 3) {
- return a.Cb.ih(a, 12, E2, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Khd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function Uod(a, b) {
- var c2, d;
- if (a.Db >> 16 == 11) {
- return a.Cb.ih(a, 10, E2, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Ohd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function PSd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 10) {
- return a.Cb.ih(a, 11, c5, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), aGd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function qUd(a, b) {
- var c2, d;
- if (a.Db >> 16 == 10) {
- return a.Cb.ih(a, 12, n5, b);
- }
- return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), dGd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
- }
- function wId(a) {
- var b;
- if ((a.Bb & 1) == 0 && !!a.r && a.r.kh()) {
- b = BD(a.r, 49);
- a.r = BD(xid(a, b), 138);
- a.r != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.r));
- }
- return a.r;
- }
- function yHb(a, b, c2) {
- var d;
- d = OC(GC(UD, 1), Vje, 25, 15, [BHb(a, (gHb(), dHb), b, c2), BHb(a, eHb, b, c2), BHb(a, fHb, b, c2)]);
- if (a.f) {
- d[0] = $wnd.Math.max(d[0], d[2]);
- d[2] = d[0];
- }
- return d;
- }
- function O9b(a, b) {
- var c2, d, e;
- e = V9b(a, b);
- if (e.c.length == 0) {
- return;
- }
- Okb(e, new pac());
- c2 = e.c.length;
- for (d = 0; d < c2; d++) {
- K9b(a, (tCb(d, e.c.length), BD(e.c[d], 286)), R9b(a, e, d));
- }
- }
- function qkc(a) {
- var b, c2, d, e;
- for (e = BD(Qc(a.a, (Xjc(), Sjc)), 15).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 101);
- for (c2 = Ec(d.k).Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 61);
- kkc(a, d, b, (Fkc(), Dkc), 1);
- }
- }
- }
- function voc(a) {
- var b, c2;
- if (a.k == (j0b(), g0b)) {
- for (c2 = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- if (!OZb(b) && a.c == LZb(b, a).c) {
- return true;
- }
- }
}
- return false;
- }
- function JNc(a) {
- var b, c2;
- if (a.k == (j0b(), g0b)) {
- for (c2 = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- if (!OZb(b) && b.c.i.c == b.d.i.c) {
- return true;
- }
- }
+ }, "anonymous"),
+ rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:\[\*\])/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:["])/, /^(?:[^"]*)/, /^(?:["])/, /^(?:style\b)/, /^(?:namespace\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:\[\*\])/, /^(?:class\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[}])/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\[\*\])/, /^(?:[{])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:href\b)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:~)/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?::)/, /^(?:,)/, /^(?:#)/, /^(?:#)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\w+)/, /^(?:\[)/, /^(?:\])/, /^(?:[!"#$%&'*+,-.`?\\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:\s)/, /^(?:$)/],
+ conditions: { "namespace-body": { "rules": [26, 32, 33, 34, 35, 36, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "namespace": { "rules": [26, 28, 29, 30, 31, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "class-body": { "rules": [26, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "class": { "rules": [26, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_descr_multiline": { "rules": [11, 12, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_descr": { "rules": [9, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_title": { "rules": [7, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "callback_args": { "rules": [22, 23, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "callback_name": { "rules": [19, 20, 21, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "href": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "struct": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "generic": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "bqstring": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "string": { "rules": [24, 25, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 26, 27, 28, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser13.parser = parser13;
+ classDiagram_default = parser13;
+ }
+ });
+
+ // src/diagrams/class/classTypes.ts
+ var visibilityValues, ClassMember;
+ var init_classTypes = __esm({
+ "src/diagrams/class/classTypes.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ visibilityValues = ["#", "+", "~", "-", ""];
+ ClassMember = class {
+ static {
+ __name(this, "ClassMember");
+ }
+ constructor(input, memberType) {
+ this.memberType = memberType;
+ this.visibility = "";
+ this.classifier = "";
+ const sanitizedInput = sanitizeText(input, getConfig2());
+ this.parseMember(sanitizedInput);
+ }
+ getDisplayDetails() {
+ let displayText = this.visibility + parseGenericTypes(this.id);
+ if (this.memberType === "method") {
+ displayText += `(${parseGenericTypes(this.parameters.trim())})`;
+ if (this.returnType) {
+ displayText += " : " + parseGenericTypes(this.returnType);
+ }
+ }
+ displayText = displayText.trim();
+ const cssStyle = this.parseClassifier();
+ return {
+ displayText,
+ cssStyle
+ };
+ }
+ parseMember(input) {
+ let potentialClassifier = "";
+ if (this.memberType === "method") {
+ const methodRegEx = /([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/;
+ const match2 = methodRegEx.exec(input);
+ if (match2) {
+ const detectedVisibility = match2[1] ? match2[1].trim() : "";
+ if (visibilityValues.includes(detectedVisibility)) {
+ this.visibility = detectedVisibility;
}
- return false;
- }
- function HUc(a, b) {
- var c2, d, e, f2;
- Odd(b, "Dull edge routing", 1);
- for (f2 = Jsb(a.b, 0); f2.b != f2.d.c; ) {
- e = BD(Xsb(f2), 86);
- for (d = Jsb(e.d, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 188);
- Osb(c2.a);
+ this.id = match2[2].trim();
+ this.parameters = match2[3] ? match2[3].trim() : "";
+ potentialClassifier = match2[4] ? match2[4].trim() : "";
+ this.returnType = match2[5] ? match2[5].trim() : "";
+ if (potentialClassifier === "") {
+ const lastChar = this.returnType.substring(this.returnType.length - 1);
+ if (/[$*]/.exec(lastChar)) {
+ potentialClassifier = lastChar;
+ this.returnType = this.returnType.substring(0, this.returnType.length - 1);
}
}
}
- function xqd(a, b) {
- var c2, d, e, f2, g;
- if (b) {
- e = b.a.length;
- c2 = new Yge(e);
- for (g = (c2.b - c2.a) * c2.c < 0 ? (Xge(), Wge) : new she(c2); g.Ob(); ) {
- f2 = BD(g.Pb(), 19);
- d = Zpd(b, f2.a);
- !!d && ard(a, d);
- }
- }
+ } else {
+ const length2 = input.length;
+ const firstChar = input.substring(0, 1);
+ const lastChar = input.substring(length2 - 1);
+ if (visibilityValues.includes(firstChar)) {
+ this.visibility = firstChar;
+ }
+ if (/[$*]/.exec(lastChar)) {
+ potentialClassifier = lastChar;
+ }
+ this.id = input.substring(
+ this.visibility === "" ? 0 : 1,
+ potentialClassifier === "" ? length2 : length2 - 1
+ );
+ }
+ this.classifier = potentialClassifier;
+ }
+ parseClassifier() {
+ switch (this.classifier) {
+ case "*":
+ return "font-style:italic;";
+ case "$":
+ return "text-decoration:underline;";
+ default:
+ return "";
+ }
+ }
+ };
+ }
+ });
+
+ // src/diagrams/class/classDb.ts
+ var MERMAID_DOM_ID_PREFIX2, relations2, classes2, notes, classCounter, namespaces, namespaceCounter, functions2, sanitizeText5, splitClassNameAndType, setClassLabel, addClass3, lookUpDomId2, clear18, getClass, getClasses3, getRelations, getNotes, addRelation, addAnnotation, addMember, addMembers, addNote2, cleanupLabel, setCssClass, setTooltip2, getTooltip2, setLink3, setClickEvent3, setClickFunc, bindFunctions3, lineType, relationType, setupToolTips2, direction2, getDirection3, setDirection3, addNamespace, getNamespace, getNamespaces, addClassesToNamespace, setCssStyle, classDb_default;
+ var init_classDb = __esm({
+ "src/diagrams/class/classDb.ts"() {
+ "use strict";
+ init_src32();
+ init_logger();
+ init_diagramAPI();
+ init_common();
+ init_utils2();
+ init_commonDb();
+ init_classTypes();
+ MERMAID_DOM_ID_PREFIX2 = "classId-";
+ relations2 = [];
+ classes2 = /* @__PURE__ */ new Map();
+ notes = [];
+ classCounter = 0;
+ namespaces = /* @__PURE__ */ new Map();
+ namespaceCounter = 0;
+ functions2 = [];
+ sanitizeText5 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, getConfig2()), "sanitizeText");
+ splitClassNameAndType = /* @__PURE__ */ __name(function(_id) {
+ const id27 = common_default.sanitizeText(_id, getConfig2());
+ let genericType = "";
+ let className = id27;
+ if (id27.indexOf("~") > 0) {
+ const split = id27.split("~");
+ className = sanitizeText5(split[0]);
+ genericType = sanitizeText5(split[1]);
+ }
+ return { className, type: genericType };
+ }, "splitClassNameAndType");
+ setClassLabel = /* @__PURE__ */ __name(function(_id, label) {
+ const id27 = common_default.sanitizeText(_id, getConfig2());
+ if (label) {
+ label = sanitizeText5(label);
+ }
+ const { className } = splitClassNameAndType(id27);
+ classes2.get(className).label = label;
+ }, "setClassLabel");
+ addClass3 = /* @__PURE__ */ __name(function(_id) {
+ const id27 = common_default.sanitizeText(_id, getConfig2());
+ const { className, type: type3 } = splitClassNameAndType(id27);
+ if (classes2.has(className)) {
+ return;
+ }
+ const name = common_default.sanitizeText(className, getConfig2());
+ classes2.set(name, {
+ id: name,
+ type: type3,
+ label: name,
+ cssClasses: [],
+ methods: [],
+ members: [],
+ annotations: [],
+ styles: [],
+ domId: MERMAID_DOM_ID_PREFIX2 + name + "-" + classCounter
+ });
+ classCounter++;
+ }, "addClass");
+ lookUpDomId2 = /* @__PURE__ */ __name(function(_id) {
+ const id27 = common_default.sanitizeText(_id, getConfig2());
+ if (classes2.has(id27)) {
+ return classes2.get(id27).domId;
+ }
+ throw new Error("Class not found: " + id27);
+ }, "lookUpDomId");
+ clear18 = /* @__PURE__ */ __name(function() {
+ relations2 = [];
+ classes2 = /* @__PURE__ */ new Map();
+ notes = [];
+ functions2 = [];
+ functions2.push(setupToolTips2);
+ namespaces = /* @__PURE__ */ new Map();
+ namespaceCounter = 0;
+ direction2 = "TB";
+ clear();
+ }, "clear");
+ getClass = /* @__PURE__ */ __name(function(id27) {
+ return classes2.get(id27);
+ }, "getClass");
+ getClasses3 = /* @__PURE__ */ __name(function() {
+ return classes2;
+ }, "getClasses");
+ getRelations = /* @__PURE__ */ __name(function() {
+ return relations2;
+ }, "getRelations");
+ getNotes = /* @__PURE__ */ __name(function() {
+ return notes;
+ }, "getNotes");
+ addRelation = /* @__PURE__ */ __name(function(relation) {
+ log.debug("Adding relation: " + JSON.stringify(relation));
+ addClass3(relation.id1);
+ addClass3(relation.id2);
+ relation.id1 = splitClassNameAndType(relation.id1).className;
+ relation.id2 = splitClassNameAndType(relation.id2).className;
+ relation.relationTitle1 = common_default.sanitizeText(relation.relationTitle1.trim(), getConfig2());
+ relation.relationTitle2 = common_default.sanitizeText(relation.relationTitle2.trim(), getConfig2());
+ relations2.push(relation);
+ }, "addRelation");
+ addAnnotation = /* @__PURE__ */ __name(function(className, annotation) {
+ const validatedClassName = splitClassNameAndType(className).className;
+ classes2.get(validatedClassName).annotations.push(annotation);
+ }, "addAnnotation");
+ addMember = /* @__PURE__ */ __name(function(className, member) {
+ addClass3(className);
+ const validatedClassName = splitClassNameAndType(className).className;
+ const theClass = classes2.get(validatedClassName);
+ if (typeof member === "string") {
+ const memberString = member.trim();
+ if (memberString.startsWith("<<") && memberString.endsWith(">>")) {
+ theClass.annotations.push(sanitizeText5(memberString.substring(2, memberString.length - 2)));
+ } else if (memberString.indexOf(")") > 0) {
+ theClass.methods.push(new ClassMember(memberString, "method"));
+ } else if (memberString) {
+ theClass.members.push(new ClassMember(memberString, "attribute"));
+ }
+ }
+ }, "addMember");
+ addMembers = /* @__PURE__ */ __name(function(className, members) {
+ if (Array.isArray(members)) {
+ members.reverse();
+ members.forEach((member) => addMember(className, member));
+ }
+ }, "addMembers");
+ addNote2 = /* @__PURE__ */ __name(function(text2, className) {
+ const note3 = {
+ id: `note${notes.length}`,
+ class: className,
+ text: text2
+ };
+ notes.push(note3);
+ }, "addNote");
+ cleanupLabel = /* @__PURE__ */ __name(function(label) {
+ if (label.startsWith(":")) {
+ label = label.substring(1);
+ }
+ return sanitizeText5(label.trim());
+ }, "cleanupLabel");
+ setCssClass = /* @__PURE__ */ __name(function(ids, className) {
+ ids.split(",").forEach(function(_id) {
+ let id27 = _id;
+ if (/\d/.exec(_id[0])) {
+ id27 = MERMAID_DOM_ID_PREFIX2 + id27;
+ }
+ const classNode = classes2.get(id27);
+ if (classNode) {
+ classNode.cssClasses.push(className);
+ }
+ });
+ }, "setCssClass");
+ setTooltip2 = /* @__PURE__ */ __name(function(ids, tooltip) {
+ ids.split(",").forEach(function(id27) {
+ if (tooltip !== void 0) {
+ classes2.get(id27).tooltip = sanitizeText5(tooltip);
+ }
+ });
+ }, "setTooltip");
+ getTooltip2 = /* @__PURE__ */ __name(function(id27, namespace) {
+ if (namespace && namespaces.has(namespace)) {
+ return namespaces.get(namespace).classes.get(id27).tooltip;
+ }
+ return classes2.get(id27).tooltip;
+ }, "getTooltip");
+ setLink3 = /* @__PURE__ */ __name(function(ids, linkStr, target) {
+ const config6 = getConfig2();
+ ids.split(",").forEach(function(_id) {
+ let id27 = _id;
+ if (/\d/.exec(_id[0])) {
+ id27 = MERMAID_DOM_ID_PREFIX2 + id27;
+ }
+ const theClass = classes2.get(id27);
+ if (theClass) {
+ theClass.link = utils_default2.formatUrl(linkStr, config6);
+ if (config6.securityLevel === "sandbox") {
+ theClass.linkTarget = "_top";
+ } else if (typeof target === "string") {
+ theClass.linkTarget = sanitizeText5(target);
+ } else {
+ theClass.linkTarget = "_blank";
}
- function DZd() {
- tZd();
- var a, b;
- xZd((NFd(), MFd));
- wZd(MFd);
- Tnd(MFd);
- FQd = (jGd(), YFd);
- for (b = new olb(rZd); b.a < b.c.c.length; ) {
- a = BD(mlb(b), 241);
- QQd(a, YFd, null);
- }
- return true;
+ }
+ });
+ setCssClass(ids, "clickable");
+ }, "setLink");
+ setClickEvent3 = /* @__PURE__ */ __name(function(ids, functionName, functionArgs) {
+ ids.split(",").forEach(function(id27) {
+ setClickFunc(id27, functionName, functionArgs);
+ classes2.get(id27).haveCallback = true;
+ });
+ setCssClass(ids, "clickable");
+ }, "setClickEvent");
+ setClickFunc = /* @__PURE__ */ __name(function(_domId, functionName, functionArgs) {
+ const domId = common_default.sanitizeText(_domId, getConfig2());
+ const config6 = getConfig2();
+ if (config6.securityLevel !== "loose") {
+ return;
+ }
+ if (functionName === void 0) {
+ return;
+ }
+ const id27 = domId;
+ if (classes2.has(id27)) {
+ const elemId = lookUpDomId2(id27);
+ let argList = [];
+ if (typeof functionArgs === "string") {
+ argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
+ for (let i2 = 0; i2 < argList.length; i2++) {
+ let item = argList[i2].trim();
+ if (item.startsWith('"') && item.endsWith('"')) {
+ item = item.substr(1, item.length - 2);
+ }
+ argList[i2] = item;
+ }
+ }
+ if (argList.length === 0) {
+ argList.push(elemId);
+ }
+ functions2.push(function() {
+ const elem = document.querySelector(`[id="${elemId}"]`);
+ if (elem !== null) {
+ elem.addEventListener(
+ "click",
+ function() {
+ utils_default2.runFunc(functionName, ...argList);
+ },
+ false
+ );
}
- function eD(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- i3 = a.h >> 19;
- j = b.h >> 19;
- if (i3 != j) {
- return j - i3;
- }
- e = a.h;
- h = b.h;
- if (e != h) {
- return e - h;
- }
- d = a.m;
- g = b.m;
- if (d != g) {
- return d - g;
- }
- c2 = a.l;
- f2 = b.l;
- return c2 - f2;
- }
- function fFb() {
- fFb = ccb;
- eFb = (rFb(), oFb);
- dFb = new Nsd(Yke, eFb);
- cFb = (UEb(), TEb);
- bFb = new Nsd(Zke, cFb);
- aFb = (MEb(), LEb);
- _Eb = new Nsd($ke, aFb);
- $Eb = new Nsd(_ke, (Bcb(), true));
- }
- function cfc(a, b, c2) {
- var d, e;
- d = b * c2;
- if (JD(a.g, 145)) {
- e = ugc(a);
- if (e.f.d) {
- e.f.a || (a.d.a += d + ple);
- } else {
- a.d.d -= d + ple;
- a.d.a += d + ple;
- }
- } else if (JD(a.g, 10)) {
- a.d.d -= d;
- a.d.a += 2 * d;
- }
- }
- function vmc(a, b, c2) {
- var d, e, f2, g, h;
- e = a[c2.g];
- for (h = new olb(b.d); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 101);
- f2 = g.i;
- if (!!f2 && f2.i == c2) {
- d = g.d[c2.g];
- e[d] = $wnd.Math.max(e[d], f2.j.b);
- }
- }
- }
- function AZc(a, b) {
- var c2, d, e, f2, g;
- d = 0;
- e = 0;
- c2 = 0;
- for (g = new olb(b.d); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 443);
- a$c(f2);
- d = $wnd.Math.max(d, f2.b);
- e += f2.d + (c2 > 0 ? a.g : 0);
- ++c2;
- }
- b.b = d;
- b.e = e;
- }
- function to(a) {
- var b, c2, d;
- d = a.b;
- if (Lp(a.i, d.length)) {
- c2 = d.length * 2;
- a.b = KC(GF, Gie, 317, c2, 0, 1);
- a.c = KC(GF, Gie, 317, c2, 0, 1);
- a.f = c2 - 1;
- a.i = 0;
- for (b = a.a; b; b = b.c) {
- po(a, b, b);
- }
- ++a.g;
- }
- }
- function cNb(a, b, c2, d) {
- var e, f2, g, h;
- for (e = 0; e < b.o; e++) {
- f2 = e - b.j + c2;
- for (g = 0; g < b.p; g++) {
- h = g - b.k + d;
- YMb(b, e, g) ? jNb(a, f2, h) || lNb(a, f2, h) : $Mb(b, e, g) && (hNb(a, f2, h) || mNb(a, f2, h));
- }
- }
- }
- function Ooc(a, b, c2) {
- var d;
- d = b.c.i;
- if (d.k == (j0b(), g0b)) {
- yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
- yNb(a, Wsc, BD(vNb(d, Wsc), 11));
- } else {
- yNb(a, (wtc(), Vsc), b.c);
- yNb(a, Wsc, c2.d);
- }
- }
- function l6c(a, b, c2) {
- i6c();
- var d, e, f2, g, h, i3;
- g = b / 2;
- f2 = c2 / 2;
- d = $wnd.Math.abs(a.a);
- e = $wnd.Math.abs(a.b);
- h = 1;
- i3 = 1;
- d > g && (h = g / d);
- e > f2 && (i3 = f2 / e);
- Y6c(a, $wnd.Math.min(h, i3));
- return a;
- }
- function ond() {
- Smd();
- var b, c2;
- try {
- c2 = BD(mUd((yFd(), xFd), yte), 2014);
- if (c2) {
- return c2;
- }
- } catch (a) {
- a = ubb(a);
- if (JD(a, 102)) {
- b = a;
- uvd((h0d(), b));
- } else
- throw vbb(a);
- }
- return new knd();
- }
- function Y9d() {
- A9d();
- var b, c2;
- try {
- c2 = BD(mUd((yFd(), xFd), Ewe), 2024);
- if (c2) {
- return c2;
- }
- } catch (a) {
- a = ubb(a);
- if (JD(a, 102)) {
- b = a;
- uvd((h0d(), b));
- } else
- throw vbb(a);
- }
- return new U9d();
- }
- function qZd() {
- Smd();
- var b, c2;
- try {
- c2 = BD(mUd((yFd(), xFd), _ve), 1941);
- if (c2) {
- return c2;
- }
- } catch (a) {
- a = ubb(a);
- if (JD(a, 102)) {
- b = a;
- uvd((h0d(), b));
- } else
- throw vbb(a);
- }
- return new mZd();
- }
- function HQd(a, b, c2) {
- var d, e;
- e = a.e;
- a.e = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 4, e, b);
- !c2 ? c2 = d : c2.Ei(d);
- }
- e != b && (b ? c2 = QQd(a, MQd(a, b), c2) : c2 = QQd(a, a.a, c2));
- return c2;
- }
- function nB() {
- eB.call(this);
- this.e = -1;
- this.a = false;
- this.p = Rie;
- this.k = -1;
- this.c = -1;
- this.b = -1;
- this.g = false;
- this.f = -1;
- this.j = -1;
- this.n = -1;
- this.i = -1;
- this.d = -1;
- this.o = Rie;
- }
- function qEb(a, b) {
- var c2, d, e;
- d = a.b.d.d;
- a.a || (d += a.b.d.a);
- e = b.b.d.d;
- b.a || (e += b.b.d.a);
- c2 = Kdb(d, e);
- if (c2 == 0) {
- if (!a.a && b.a) {
- return -1;
- } else if (!b.a && a.a) {
- return 1;
+ });
+ }
+ }, "setClickFunc");
+ bindFunctions3 = /* @__PURE__ */ __name(function(element3) {
+ functions2.forEach(function(fun) {
+ fun(element3);
+ });
+ }, "bindFunctions");
+ lineType = {
+ LINE: 0,
+ DOTTED_LINE: 1
+ };
+ relationType = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3,
+ LOLLIPOP: 4
+ };
+ setupToolTips2 = /* @__PURE__ */ __name(function(element3) {
+ let tooltipElem = select_default2(".mermaidTooltip");
+ if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
+ tooltipElem = select_default2("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
+ }
+ const svg = select_default2(element3).select("svg");
+ const nodes6 = svg.selectAll("g.node");
+ nodes6.on("mouseover", function() {
+ const el = select_default2(this);
+ const title2 = el.attr("title");
+ if (title2 === null) {
+ return;
+ }
+ const rect4 = this.getBoundingClientRect();
+ tooltipElem.transition().duration(200).style("opacity", ".9");
+ tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect4.left + (rect4.right - rect4.left) / 2 + "px").style("top", window.scrollY + rect4.top - 14 + document.body.scrollTop + "px");
+ tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
"));
+ el.classed("hover", true);
+ }).on("mouseout", function() {
+ tooltipElem.transition().duration(500).style("opacity", 0);
+ const el = select_default2(this);
+ el.classed("hover", false);
+ });
+ }, "setupToolTips");
+ functions2.push(setupToolTips2);
+ direction2 = "TB";
+ getDirection3 = /* @__PURE__ */ __name(() => direction2, "getDirection");
+ setDirection3 = /* @__PURE__ */ __name((dir2) => {
+ direction2 = dir2;
+ }, "setDirection");
+ addNamespace = /* @__PURE__ */ __name(function(id27) {
+ if (namespaces.has(id27)) {
+ return;
+ }
+ namespaces.set(id27, {
+ id: id27,
+ classes: /* @__PURE__ */ new Map(),
+ children: {},
+ domId: MERMAID_DOM_ID_PREFIX2 + id27 + "-" + namespaceCounter
+ });
+ namespaceCounter++;
+ }, "addNamespace");
+ getNamespace = /* @__PURE__ */ __name(function(name) {
+ return namespaces.get(name);
+ }, "getNamespace");
+ getNamespaces = /* @__PURE__ */ __name(function() {
+ return namespaces;
+ }, "getNamespaces");
+ addClassesToNamespace = /* @__PURE__ */ __name(function(id27, classNames) {
+ if (!namespaces.has(id27)) {
+ return;
+ }
+ for (const name of classNames) {
+ const { className } = splitClassNameAndType(name);
+ classes2.get(className).parent = id27;
+ namespaces.get(id27).classes.set(className, classes2.get(className));
+ }
+ }, "addClassesToNamespace");
+ setCssStyle = /* @__PURE__ */ __name(function(id27, styles3) {
+ const thisClass = classes2.get(id27);
+ if (!styles3 || !thisClass) {
+ return;
+ }
+ for (const s2 of styles3) {
+ if (s2.includes(",")) {
+ thisClass.styles.push(...s2.split(","));
+ } else {
+ thisClass.styles.push(s2);
+ }
+ }
+ }, "setCssStyle");
+ classDb_default = {
+ setAccTitle,
+ getAccTitle,
+ getAccDescription,
+ setAccDescription,
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().class, "getConfig"),
+ addClass: addClass3,
+ bindFunctions: bindFunctions3,
+ clear: clear18,
+ getClass,
+ getClasses: getClasses3,
+ getNotes,
+ addAnnotation,
+ addNote: addNote2,
+ getRelations,
+ addRelation,
+ getDirection: getDirection3,
+ setDirection: setDirection3,
+ addMember,
+ addMembers,
+ cleanupLabel,
+ lineType,
+ relationType,
+ setClickEvent: setClickEvent3,
+ setCssClass,
+ setLink: setLink3,
+ getTooltip: getTooltip2,
+ setTooltip: setTooltip2,
+ lookUpDomId: lookUpDomId2,
+ setDiagramTitle,
+ getDiagramTitle,
+ setClassLabel,
+ addNamespace,
+ addClassesToNamespace,
+ getNamespace,
+ getNamespaces,
+ setCssStyle
+ };
+ }
+ });
+
+ // src/diagrams/class/styles.js
+ var getStyles10, styles_default9;
+ var init_styles9 = __esm({
+ "src/diagrams/class/styles.js"() {
+ "use strict";
+ getStyles10 = /* @__PURE__ */ __name((options3) => `g.classGroup text {
+ fill: ${options3.nodeBorder || options3.classText};
+ stroke: none;
+ font-family: ${options3.fontFamily};
+ font-size: 10px;
+
+ .title {
+ font-weight: bolder;
+ }
+
+}
+
+.nodeLabel, .edgeLabel {
+ color: ${options3.classText};
+}
+.edgeLabel .label rect {
+ fill: ${options3.mainBkg};
+}
+.label text {
+ fill: ${options3.classText};
+}
+.edgeLabel .label span {
+ background: ${options3.mainBkg};
+}
+
+.classTitle {
+ font-weight: bolder;
+}
+.node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.nodeBorder};
+ stroke-width: 1px;
+ }
+
+
+.divider {
+ stroke: ${options3.nodeBorder};
+ stroke-width: 1;
+}
+
+g.clickable {
+ cursor: pointer;
+}
+
+g.classGroup rect {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.nodeBorder};
+}
+
+g.classGroup line {
+ stroke: ${options3.nodeBorder};
+ stroke-width: 1;
+}
+
+.classLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${options3.mainBkg};
+ opacity: 0.5;
+}
+
+.classLabel .label {
+ fill: ${options3.nodeBorder};
+ font-size: 10px;
+}
+
+.relation {
+ stroke: ${options3.lineColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.dashed-line{
+ stroke-dasharray: 3;
+}
+
+.dotted-line{
+ stroke-dasharray: 1 2;
+}
+
+#compositionStart, .composition {
+ fill: ${options3.lineColor} !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#compositionEnd, .composition {
+ fill: ${options3.lineColor} !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${options3.lineColor} !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+ fill: ${options3.lineColor} !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionStart, .extension {
+ fill: transparent !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#extensionEnd, .extension {
+ fill: transparent !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationStart, .aggregation {
+ fill: transparent !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#aggregationEnd, .aggregation {
+ fill: transparent !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopStart, .lollipop {
+ fill: ${options3.mainBkg} !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+#lollipopEnd, .lollipop {
+ fill: ${options3.mainBkg} !important;
+ stroke: ${options3.lineColor} !important;
+ stroke-width: 1;
+}
+
+.edgeTerminals {
+ font-size: 11px;
+ line-height: initial;
+}
+
+.classTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options3.textColor};
+}
+`, "getStyles");
+ styles_default9 = getStyles10;
+ }
+ });
+
+ // src/diagrams/class/svgDraw.js
+ var edgeCount, drawEdge, drawClass, getClassTitleString, drawNote2, addTspan, svgDraw_default3;
+ var init_svgDraw3 = __esm({
+ "src/diagrams/class/svgDraw.js"() {
+ "use strict";
+ init_src32();
+ init_utils2();
+ init_logger();
+ init_common();
+ edgeCount = 0;
+ drawEdge = /* @__PURE__ */ __name(function(elem, path4, relation, conf8, diagObj) {
+ const getRelationType = /* @__PURE__ */ __name(function(type3) {
+ switch (type3) {
+ case diagObj.db.relationType.AGGREGATION:
+ return "aggregation";
+ case diagObj.db.relationType.EXTENSION:
+ return "extension";
+ case diagObj.db.relationType.COMPOSITION:
+ return "composition";
+ case diagObj.db.relationType.DEPENDENCY:
+ return "dependency";
+ case diagObj.db.relationType.LOLLIPOP:
+ return "lollipop";
+ }
+ }, "getRelationType");
+ path4.points = path4.points.filter((p3) => !Number.isNaN(p3.y));
+ const lineData = path4.points;
+ const lineFunction = line_default().x(function(d2) {
+ return d2.x;
+ }).y(function(d2) {
+ return d2.y;
+ }).curve(basis_default2);
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation");
+ let url = "";
+ if (conf8.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ if (relation.relation.lineType == 1) {
+ svgPath.attr("class", "relation dashed-line");
+ }
+ if (relation.relation.lineType == 10) {
+ svgPath.attr("class", "relation dotted-line");
+ }
+ if (relation.relation.type1 !== "none") {
+ svgPath.attr(
+ "marker-start",
+ "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)"
+ );
+ }
+ if (relation.relation.type2 !== "none") {
+ svgPath.attr(
+ "marker-end",
+ "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)"
+ );
+ }
+ let x5, y5;
+ const l2 = path4.points.length;
+ let labelPosition = utils_default2.calcLabelPosition(path4.points);
+ x5 = labelPosition.x;
+ y5 = labelPosition.y;
+ let p1_card_x, p1_card_y;
+ let p2_card_x, p2_card_y;
+ if (l2 % 2 !== 0 && l2 > 1) {
+ let cardinality_1_point = utils_default2.calcCardinalityPosition(
+ relation.relation.type1 !== "none",
+ path4.points,
+ path4.points[0]
+ );
+ let cardinality_2_point = utils_default2.calcCardinalityPosition(
+ relation.relation.type2 !== "none",
+ path4.points,
+ path4.points[l2 - 1]
+ );
+ log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point));
+ log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point));
+ p1_card_x = cardinality_1_point.x;
+ p1_card_y = cardinality_1_point.y;
+ p2_card_x = cardinality_2_point.x;
+ p2_card_y = cardinality_2_point.y;
+ }
+ if (relation.title !== void 0) {
+ const g2 = elem.append("g").attr("class", "classLabel");
+ const label = g2.append("text").attr("class", "label").attr("x", x5).attr("y", y5).attr("fill", "red").attr("text-anchor", "middle").text(relation.title);
+ window.label = label;
+ const bounds4 = label.node().getBBox();
+ g2.insert("rect", ":first-child").attr("class", "box").attr("x", bounds4.x - conf8.padding / 2).attr("y", bounds4.y - conf8.padding / 2).attr("width", bounds4.width + conf8.padding).attr("height", bounds4.height + conf8.padding);
+ }
+ log.info("Rendering relation " + JSON.stringify(relation));
+ if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") {
+ const g2 = elem.append("g").attr("class", "cardinality");
+ g2.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1);
+ }
+ if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") {
+ const g2 = elem.append("g").attr("class", "cardinality");
+ g2.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2);
+ }
+ edgeCount++;
+ }, "drawEdge");
+ drawClass = /* @__PURE__ */ __name(function(elem, classDef, conf8, diagObj) {
+ log.debug("Rendering class ", classDef, conf8);
+ const id27 = classDef.id;
+ const classInfo = {
+ id: id27,
+ label: classDef.id,
+ width: 0,
+ height: 0
+ };
+ const g2 = elem.append("g").attr("id", diagObj.db.lookUpDomId(id27)).attr("class", "classGroup");
+ let title2;
+ if (classDef.link) {
+ title2 = g2.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf8.textHeight + conf8.padding).attr("x", 0);
+ } else {
+ title2 = g2.append("text").attr("y", conf8.textHeight + conf8.padding).attr("x", 0);
+ }
+ let isFirst = true;
+ classDef.annotations.forEach(function(member) {
+ const titleText2 = title2.append("tspan").text("\xAB" + member + "\xBB");
+ if (!isFirst) {
+ titleText2.attr("dy", conf8.textHeight);
+ }
+ isFirst = false;
+ });
+ let classTitleString = getClassTitleString(classDef);
+ const classTitle = title2.append("tspan").text(classTitleString).attr("class", "title");
+ if (!isFirst) {
+ classTitle.attr("dy", conf8.textHeight);
+ }
+ const titleHeight = title2.node().getBBox().height;
+ let membersLine;
+ let membersBox;
+ let methodsLine;
+ if (classDef.members.length > 0) {
+ membersLine = g2.append("line").attr("x1", 0).attr("y1", conf8.padding + titleHeight + conf8.dividerMargin / 2).attr("y2", conf8.padding + titleHeight + conf8.dividerMargin / 2);
+ const members = g2.append("text").attr("x", conf8.padding).attr("y", titleHeight + conf8.dividerMargin + conf8.textHeight).attr("fill", "white").attr("class", "classText");
+ isFirst = true;
+ classDef.members.forEach(function(member) {
+ addTspan(members, member, isFirst, conf8);
+ isFirst = false;
+ });
+ membersBox = members.node().getBBox();
+ }
+ if (classDef.methods.length > 0) {
+ methodsLine = g2.append("line").attr("x1", 0).attr("y1", conf8.padding + titleHeight + conf8.dividerMargin + membersBox.height).attr("y2", conf8.padding + titleHeight + conf8.dividerMargin + membersBox.height);
+ const methods = g2.append("text").attr("x", conf8.padding).attr("y", titleHeight + 2 * conf8.dividerMargin + membersBox.height + conf8.textHeight).attr("fill", "white").attr("class", "classText");
+ isFirst = true;
+ classDef.methods.forEach(function(method) {
+ addTspan(methods, method, isFirst, conf8);
+ isFirst = false;
+ });
+ }
+ const classBox = g2.node().getBBox();
+ var cssClassStr = " ";
+ if (classDef.cssClasses.length > 0) {
+ cssClassStr = cssClassStr + classDef.cssClasses.join(" ");
+ }
+ const rect4 = g2.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf8.padding).attr("height", classBox.height + conf8.padding + 0.5 * conf8.dividerMargin).attr("class", cssClassStr);
+ const rectWidth = rect4.node().getBBox().width;
+ title2.node().childNodes.forEach(function(x5) {
+ x5.setAttribute("x", (rectWidth - x5.getBBox().width) / 2);
+ });
+ if (classDef.tooltip) {
+ title2.insert("title").text(classDef.tooltip);
+ }
+ if (membersLine) {
+ membersLine.attr("x2", rectWidth);
+ }
+ if (methodsLine) {
+ methodsLine.attr("x2", rectWidth);
+ }
+ classInfo.width = rectWidth;
+ classInfo.height = classBox.height + conf8.padding + 0.5 * conf8.dividerMargin;
+ return classInfo;
+ }, "drawClass");
+ getClassTitleString = /* @__PURE__ */ __name(function(classDef) {
+ let classTitleString = classDef.id;
+ if (classDef.type) {
+ classTitleString += "<" + parseGenericTypes(classDef.type) + ">";
+ }
+ return classTitleString;
+ }, "getClassTitleString");
+ drawNote2 = /* @__PURE__ */ __name(function(elem, note3, conf8, _diagObj) {
+ log.debug("Rendering note ", note3, conf8);
+ const id27 = note3.id;
+ const noteInfo = {
+ id: id27,
+ text: note3.text,
+ width: 0,
+ height: 0
+ };
+ const g2 = elem.append("g").attr("id", id27).attr("class", "classGroup");
+ let text2 = g2.append("text").attr("y", conf8.textHeight + conf8.padding).attr("x", 0);
+ const lines = JSON.parse(`"${note3.text}"`).split("\n");
+ lines.forEach(function(line2) {
+ log.debug(`Adding line: ${line2}`);
+ text2.append("tspan").text(line2).attr("class", "title").attr("dy", conf8.textHeight);
+ });
+ const noteBox = g2.node().getBBox();
+ const rect4 = g2.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf8.padding).attr(
+ "height",
+ noteBox.height + lines.length * conf8.textHeight + conf8.padding + 0.5 * conf8.dividerMargin
+ );
+ const rectWidth = rect4.node().getBBox().width;
+ text2.node().childNodes.forEach(function(x5) {
+ x5.setAttribute("x", (rectWidth - x5.getBBox().width) / 2);
+ });
+ noteInfo.width = rectWidth;
+ noteInfo.height = noteBox.height + lines.length * conf8.textHeight + conf8.padding + 0.5 * conf8.dividerMargin;
+ return noteInfo;
+ }, "drawNote");
+ addTspan = /* @__PURE__ */ __name(function(textEl, member, isFirst, conf8) {
+ const { displayText, cssStyle } = member.getDisplayDetails();
+ const tSpan = textEl.append("tspan").attr("x", conf8.padding).text(displayText);
+ if (cssStyle !== "") {
+ tSpan.attr("style", member.cssStyle);
+ }
+ if (!isFirst) {
+ tSpan.attr("dy", conf8.textHeight);
+ }
+ }, "addTspan");
+ svgDraw_default3 = {
+ getClassTitleString,
+ drawClass,
+ drawEdge,
+ drawNote: drawNote2
+ };
+ }
+ });
+
+ // src/diagrams/class/classRenderer.js
+ var idCache, padding, getGraphId, insertMarkers3, draw12, classRenderer_default;
+ var init_classRenderer = __esm({
+ "src/diagrams/class/classRenderer.js"() {
+ "use strict";
+ init_src32();
+ init_dagre();
+ init_graphlib();
+ init_logger();
+ init_svgDraw3();
+ init_setupGraphViewbox();
+ init_diagramAPI();
+ idCache = {};
+ padding = 20;
+ getGraphId = /* @__PURE__ */ __name(function(label) {
+ const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);
+ if (foundEntry) {
+ return foundEntry[0];
+ }
+ }, "getGraphId");
+ insertMarkers3 = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
+ elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
+ elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
+ }, "insertMarkers");
+ draw12 = /* @__PURE__ */ __name(function(text2, id27, _version, diagObj) {
+ const conf8 = getConfig2().class;
+ idCache = {};
+ log.info("Rendering diagram " + text2);
+ const securityLevel = getConfig2().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const diagram24 = root4.select(`[id='${id27}']`);
+ insertMarkers3(diagram24);
+ const g2 = new Graph({
+ multigraph: true
+ });
+ g2.setGraph({
+ isMultiGraph: true
+ });
+ g2.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const classes6 = diagObj.db.getClasses();
+ const keys3 = [...classes6.keys()];
+ for (const key of keys3) {
+ const classDef = classes6.get(key);
+ const node2 = svgDraw_default3.drawClass(diagram24, classDef, conf8, diagObj);
+ idCache[node2.id] = node2;
+ g2.setNode(node2.id, node2);
+ log.info("Org height: " + node2.height);
+ }
+ const relations3 = diagObj.db.getRelations();
+ relations3.forEach(function(relation) {
+ log.info(
+ // cspell:ignore tjoho
+ "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
+ );
+ g2.setEdge(
+ getGraphId(relation.id1),
+ getGraphId(relation.id2),
+ {
+ relation
+ },
+ relation.title || "DEFAULT"
+ );
+ });
+ const notes2 = diagObj.db.getNotes();
+ notes2.forEach(function(note3) {
+ log.debug(`Adding note: ${JSON.stringify(note3)}`);
+ const node2 = svgDraw_default3.drawNote(diagram24, note3, conf8, diagObj);
+ idCache[node2.id] = node2;
+ g2.setNode(node2.id, node2);
+ if (note3.class && classes6.has(note3.class)) {
+ g2.setEdge(
+ note3.id,
+ getGraphId(note3.class),
+ {
+ relation: {
+ id1: note3.id,
+ id2: note3.class,
+ relation: {
+ type1: "none",
+ type2: "none",
+ lineType: 10
+ }
}
- }
- return c2;
+ },
+ "DEFAULT"
+ );
+ }
+ });
+ layout(g2);
+ g2.nodes().forEach(function(v3) {
+ if (v3 !== void 0 && g2.node(v3) !== void 0) {
+ log.debug("Node " + v3 + ": " + JSON.stringify(g2.node(v3)));
+ root4.select("#" + (diagObj.db.lookUpDomId(v3) || v3)).attr(
+ "transform",
+ "translate(" + (g2.node(v3).x - g2.node(v3).width / 2) + "," + (g2.node(v3).y - g2.node(v3).height / 2) + " )"
+ );
+ }
+ });
+ g2.edges().forEach(function(e3) {
+ if (e3 !== void 0 && g2.edge(e3) !== void 0) {
+ log.debug("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(g2.edge(e3)));
+ svgDraw_default3.drawEdge(diagram24, g2.edge(e3), g2.edge(e3).relation, conf8, diagObj);
+ }
+ });
+ const svgBounds = diagram24.node().getBBox();
+ const width3 = svgBounds.width + padding * 2;
+ const height2 = svgBounds.height + padding * 2;
+ configureSvgSize(diagram24, height2, width3, conf8.useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width3} ${height2}`;
+ log.debug(`viewBox ${vBox}`);
+ diagram24.attr("viewBox", vBox);
+ }, "draw");
+ classRenderer_default = {
+ draw: draw12
+ };
+ }
+ });
+
+ // src/diagrams/class/classDiagram.ts
+ var classDiagram_exports = {};
+ __export(classDiagram_exports, {
+ diagram: () => diagram12
+ });
+ var diagram12;
+ var init_classDiagram2 = __esm({
+ "src/diagrams/class/classDiagram.ts"() {
+ "use strict";
+ init_classDiagram();
+ init_classDb();
+ init_styles9();
+ init_classRenderer();
+ diagram12 = {
+ parser: classDiagram_default,
+ db: classDb_default,
+ renderer: classRenderer_default,
+ styles: styles_default9,
+ init: /* @__PURE__ */ __name((cnf) => {
+ if (!cnf.class) {
+ cnf.class = {};
+ }
+ cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ classDb_default.clear();
+ }, "init")
+ };
+ }
+ });
+
+ // src/dagre-wrapper/markers.js
+ var insertMarkers4, extension2, composition2, aggregation2, dependency2, lollipop2, point7, circle4, cross2, barb2, markers2, markers_default2;
+ var init_markers2 = __esm({
+ "src/dagre-wrapper/markers.js"() {
+ "use strict";
+ init_logger();
+ insertMarkers4 = /* @__PURE__ */ __name((elem, markerArray, type3, id27) => {
+ markerArray.forEach((markerName) => {
+ markers2[markerName](elem, type3, id27);
+ });
+ }, "insertMarkers");
+ extension2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ log.trace("Making markers for ", id27);
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-extensionStart").attr("class", "marker extension " + type3).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-extensionEnd").attr("class", "marker extension " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
+ }, "extension");
+ composition2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-compositionStart").attr("class", "marker composition " + type3).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-compositionEnd").attr("class", "marker composition " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ }, "composition");
+ aggregation2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-aggregationStart").attr("class", "marker aggregation " + type3).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-aggregationEnd").attr("class", "marker aggregation " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ }, "aggregation");
+ dependency2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-dependencyStart").attr("class", "marker dependency " + type3).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-dependencyEnd").attr("class", "marker dependency " + type3).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
+ }, "dependency");
+ lollipop2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-lollipopStart").attr("class", "marker lollipop " + type3).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-lollipopEnd").attr("class", "marker lollipop " + type3).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
+ }, "lollipop");
+ point7 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-pointEnd").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", 6).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-pointStart").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ }, "point");
+ circle4 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-circleEnd").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-circleStart").attr("class", "marker " + type3).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
+ }, "circle");
+ cross2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-crossEnd").attr("class", "marker cross " + type3).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+ elem.append("marker").attr("id", id27 + "_" + type3 + "-crossStart").attr("class", "marker cross " + type3).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
+ }, "cross");
+ barb2 = /* @__PURE__ */ __name((elem, type3, id27) => {
+ elem.append("defs").append("marker").attr("id", id27 + "_" + type3 + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
+ }, "barb");
+ markers2 = {
+ extension: extension2,
+ composition: composition2,
+ aggregation: aggregation2,
+ dependency: dependency2,
+ lollipop: lollipop2,
+ point: point7,
+ circle: circle4,
+ cross: cross2,
+ barb: barb2
+ };
+ markers_default2 = insertMarkers4;
+ }
+ });
+
+ // src/dagre-wrapper/mermaid-graphlib.js
+ var clusterDb2, descendants2, parents2, clear19, isDescendant3, edgeInCluster2, copy3, extractDescendants2, findNonClusterChild2, getAnchorId2, adjustClustersAndEdges2, extractor2, sorter2, sortNodesByHierarchy2;
+ var init_mermaid_graphlib2 = __esm({
+ "src/dagre-wrapper/mermaid-graphlib.js"() {
+ "use strict";
+ init_logger();
+ init_json();
+ init_graphlib();
+ clusterDb2 = {};
+ descendants2 = {};
+ parents2 = {};
+ clear19 = /* @__PURE__ */ __name(() => {
+ descendants2 = {};
+ parents2 = {};
+ clusterDb2 = {};
+ }, "clear");
+ isDescendant3 = /* @__PURE__ */ __name((id27, ancestorId) => {
+ log.trace("In isDescendant", ancestorId, " ", id27, " = ", descendants2[ancestorId].includes(id27));
+ if (descendants2[ancestorId].includes(id27)) {
+ return true;
+ }
+ return false;
+ }, "isDescendant");
+ edgeInCluster2 = /* @__PURE__ */ __name((edge, clusterId) => {
+ log.info("Descendants of ", clusterId, " is ", descendants2[clusterId]);
+ log.info("Edge is ", edge);
+ if (edge.v === clusterId) {
+ return false;
+ }
+ if (edge.w === clusterId) {
+ return false;
+ }
+ if (!descendants2[clusterId]) {
+ log.debug("Tilt, ", clusterId, ",not in descendants");
+ return false;
+ }
+ return descendants2[clusterId].includes(edge.v) || isDescendant3(edge.v, clusterId) || isDescendant3(edge.w, clusterId) || descendants2[clusterId].includes(edge.w);
+ }, "edgeInCluster");
+ copy3 = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {
+ log.warn(
+ "Copying children of ",
+ clusterId,
+ "root",
+ rootId,
+ "data",
+ graph.node(clusterId),
+ rootId
+ );
+ const nodes6 = graph.children(clusterId) || [];
+ if (clusterId !== rootId) {
+ nodes6.push(clusterId);
+ }
+ log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes6);
+ nodes6.forEach((node2) => {
+ if (graph.children(node2).length > 0) {
+ copy3(node2, graph, newGraph, rootId);
+ } else {
+ const data5 = graph.node(node2);
+ log.info("cp ", node2, " to ", rootId, " with parent ", clusterId);
+ newGraph.setNode(node2, data5);
+ if (rootId !== graph.parent(node2)) {
+ log.warn("Setting parent", node2, graph.parent(node2));
+ newGraph.setParent(node2, graph.parent(node2));
+ }
+ if (clusterId !== rootId && node2 !== clusterId) {
+ log.debug("Setting parent", node2, clusterId);
+ newGraph.setParent(node2, clusterId);
+ } else {
+ log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
+ log.debug(
+ "Not Setting parent for node=",
+ node2,
+ "cluster!==rootId",
+ clusterId !== rootId,
+ "node!==clusterId",
+ node2 !== clusterId
+ );
}
- function eOb(a, b) {
- var c2, d, e;
- d = a.b.b.d;
- a.a || (d += a.b.b.a);
- e = b.b.b.d;
- b.a || (e += b.b.b.a);
- c2 = Kdb(d, e);
- if (c2 == 0) {
- if (!a.a && b.a) {
- return -1;
- } else if (!b.a && a.a) {
- return 1;
- }
+ const edges5 = graph.edges(node2);
+ log.debug("Copying Edges", edges5);
+ edges5.forEach((edge) => {
+ log.info("Edge", edge);
+ const data6 = graph.edge(edge.v, edge.w, edge.name);
+ log.info("Edge data", data6, rootId);
+ try {
+ if (edgeInCluster2(edge, rootId)) {
+ log.info("Copying as ", edge.v, edge.w, data6, edge.name);
+ newGraph.setEdge(edge.v, edge.w, data6, edge.name);
+ log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
+ } else {
+ log.info(
+ "Skipping copy of edge ",
+ edge.v,
+ "-->",
+ edge.w,
+ " rootId: ",
+ rootId,
+ " clusterId:",
+ clusterId
+ );
+ }
+ } catch (e3) {
+ log.error(e3);
}
- return c2;
- }
- function PVb(a, b) {
- var c2, d, e;
- d = a.b.g.d;
- a.a || (d += a.b.g.a);
- e = b.b.g.d;
- b.a || (e += b.b.g.a);
- c2 = Kdb(d, e);
- if (c2 == 0) {
- if (!a.a && b.a) {
- return -1;
- } else if (!b.a && a.a) {
- return 1;
+ });
+ }
+ log.debug("Removing node", node2);
+ graph.removeNode(node2);
+ });
+ }, "copy");
+ extractDescendants2 = /* @__PURE__ */ __name((id27, graph) => {
+ const children2 = graph.children(id27);
+ let res = [...children2];
+ for (const child of children2) {
+ parents2[child] = id27;
+ res = [...res, ...extractDescendants2(child, graph)];
+ }
+ return res;
+ }, "extractDescendants");
+ findNonClusterChild2 = /* @__PURE__ */ __name((id27, graph) => {
+ log.trace("Searching", id27);
+ const children2 = graph.children(id27);
+ log.trace("Searching children of id ", id27, children2);
+ if (children2.length < 1) {
+ log.trace("This is a valid node", id27);
+ return id27;
+ }
+ for (const child of children2) {
+ const _id = findNonClusterChild2(child, graph);
+ if (_id) {
+ log.trace("Found replacement for", id27, " => ", _id);
+ return _id;
+ }
+ }
+ }, "findNonClusterChild");
+ getAnchorId2 = /* @__PURE__ */ __name((id27) => {
+ if (!clusterDb2[id27]) {
+ return id27;
+ }
+ if (!clusterDb2[id27].externalConnections) {
+ return id27;
+ }
+ if (clusterDb2[id27]) {
+ return clusterDb2[id27].id;
+ }
+ return id27;
+ }, "getAnchorId");
+ adjustClustersAndEdges2 = /* @__PURE__ */ __name((graph, depth) => {
+ if (!graph || depth > 10) {
+ log.debug("Opting out, no graph ");
+ return;
+ } else {
+ log.debug("Opting in, graph ");
+ }
+ graph.nodes().forEach(function(id27) {
+ const children2 = graph.children(id27);
+ if (children2.length > 0) {
+ log.warn(
+ "Cluster identified",
+ id27,
+ " Replacement id in edges: ",
+ findNonClusterChild2(id27, graph)
+ );
+ descendants2[id27] = extractDescendants2(id27, graph);
+ clusterDb2[id27] = { id: findNonClusterChild2(id27, graph), clusterData: graph.node(id27) };
+ }
+ });
+ graph.nodes().forEach(function(id27) {
+ const children2 = graph.children(id27);
+ const edges5 = graph.edges();
+ if (children2.length > 0) {
+ log.debug("Cluster identified", id27, descendants2);
+ edges5.forEach((edge) => {
+ if (edge.v !== id27 && edge.w !== id27) {
+ const d1 = isDescendant3(edge.v, id27);
+ const d2 = isDescendant3(edge.w, id27);
+ if (d1 ^ d2) {
+ log.warn("Edge: ", edge, " leaves cluster ", id27);
+ log.warn("Descendants of XXX ", id27, ": ", descendants2[id27]);
+ clusterDb2[id27].externalConnections = true;
}
}
- return c2;
- }
- function ZTb() {
- ZTb = ccb;
- WTb = c3c(e3c(e3c(e3c(new j3c(), (qUb(), oUb), (S8b(), m8b)), oUb, q8b), pUb, x8b), pUb, a8b);
- YTb = e3c(e3c(new j3c(), oUb, S7b), oUb, b8b);
- XTb = c3c(new j3c(), pUb, d8b);
- }
- function s3b(a) {
- var b, c2, d, e, f2;
- b = BD(vNb(a, (wtc(), Csc)), 83);
- f2 = a.n;
- for (d = b.Cc().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 306);
- e = c2.i;
- e.c += f2.a;
- e.d += f2.b;
- c2.c ? VHb(c2) : XHb(c2);
- }
- yNb(a, Csc, null);
- }
- function qmc(a, b, c2) {
- var d, e;
- e = a.b;
- d = e.d;
- switch (b.g) {
- case 1:
- return -d.d - c2;
- case 2:
- return e.o.a + d.c + c2;
- case 3:
- return e.o.b + d.a + c2;
- case 4:
- return -d.b - c2;
- default:
- return -1;
- }
+ });
+ } else {
+ log.debug("Not a cluster ", id27, descendants2);
+ }
+ });
+ for (let id27 of Object.keys(clusterDb2)) {
+ const nonClusterChild = clusterDb2[id27].id;
+ const parent4 = graph.parent(nonClusterChild);
+ if (parent4 !== id27 && clusterDb2[parent4] && !clusterDb2[parent4].externalConnections) {
+ clusterDb2[id27].id = parent4;
+ }
+ }
+ graph.edges().forEach(function(e3) {
+ const edge = graph.edge(e3);
+ log.warn("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(e3));
+ log.warn("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(graph.edge(e3)));
+ let v3 = e3.v;
+ let w3 = e3.w;
+ log.warn(
+ "Fix XXX",
+ clusterDb2,
+ "ids:",
+ e3.v,
+ e3.w,
+ "Translating: ",
+ clusterDb2[e3.v],
+ " --- ",
+ clusterDb2[e3.w]
+ );
+ if (clusterDb2[e3.v] && clusterDb2[e3.w] && clusterDb2[e3.v] === clusterDb2[e3.w]) {
+ log.warn("Fixing and trixing link to self - removing XXX", e3.v, e3.w, e3.name);
+ log.warn("Fixing and trixing - removing XXX", e3.v, e3.w, e3.name);
+ v3 = getAnchorId2(e3.v);
+ w3 = getAnchorId2(e3.w);
+ graph.removeEdge(e3.v, e3.w, e3.name);
+ const specialId = e3.w + "---" + e3.v;
+ graph.setNode(specialId, {
+ domId: specialId,
+ id: specialId,
+ labelStyle: "",
+ labelText: edge.label,
+ padding: 0,
+ shape: "labelRect",
+ style: ""
+ });
+ const edge1 = structuredClone(edge);
+ const edge2 = structuredClone(edge);
+ edge1.label = "";
+ edge1.arrowTypeEnd = "none";
+ edge2.label = "";
+ edge1.fromCluster = e3.v;
+ edge2.toCluster = e3.v;
+ graph.setEdge(v3, specialId, edge1, e3.name + "-cyclic-special");
+ graph.setEdge(specialId, w3, edge2, e3.name + "-cyclic-special");
+ } else if (clusterDb2[e3.v] || clusterDb2[e3.w]) {
+ log.warn("Fixing and trixing - removing XXX", e3.v, e3.w, e3.name);
+ v3 = getAnchorId2(e3.v);
+ w3 = getAnchorId2(e3.w);
+ graph.removeEdge(e3.v, e3.w, e3.name);
+ if (v3 !== e3.v) {
+ const parent4 = graph.parent(v3);
+ clusterDb2[parent4].externalConnections = true;
+ edge.fromCluster = e3.v;
+ }
+ if (w3 !== e3.w) {
+ const parent4 = graph.parent(w3);
+ clusterDb2[parent4].externalConnections = true;
+ edge.toCluster = e3.w;
+ }
+ log.warn("Fix Replacing with XXX", v3, w3, e3.name);
+ graph.setEdge(v3, w3, edge, e3.name);
+ }
+ });
+ log.warn("Adjusted Graph", write(graph));
+ extractor2(graph, 0);
+ log.trace(clusterDb2);
+ }, "adjustClustersAndEdges");
+ extractor2 = /* @__PURE__ */ __name((graph, depth) => {
+ log.warn("extractor - ", depth, write(graph), graph.children("D"));
+ if (depth > 10) {
+ log.error("Bailing out");
+ return;
+ }
+ let nodes6 = graph.nodes();
+ let hasChildren = false;
+ for (const node2 of nodes6) {
+ const children2 = graph.children(node2);
+ hasChildren = hasChildren || children2.length > 0;
+ }
+ if (!hasChildren) {
+ log.debug("Done, no node has children", graph.nodes());
+ return;
+ }
+ log.debug("Nodes = ", nodes6, depth);
+ for (const node2 of nodes6) {
+ log.debug(
+ "Extracting node",
+ node2,
+ clusterDb2,
+ clusterDb2[node2] && !clusterDb2[node2].externalConnections,
+ !graph.parent(node2),
+ graph.node(node2),
+ graph.children("D"),
+ " Depth ",
+ depth
+ );
+ if (!clusterDb2[node2]) {
+ log.debug("Not a cluster", node2, depth);
+ } else if (!clusterDb2[node2].externalConnections && // !graph.parent(node) &&
+ graph.children(node2) && graph.children(node2).length > 0) {
+ log.warn(
+ "Cluster without external connections, without a parent and with children",
+ node2,
+ depth
+ );
+ const graphSettings = graph.graph();
+ let dir2 = graphSettings.rankdir === "TB" ? "LR" : "TB";
+ if (clusterDb2[node2]?.clusterData?.dir) {
+ dir2 = clusterDb2[node2].clusterData.dir;
+ log.warn("Fixing dir", clusterDb2[node2].clusterData.dir, dir2);
+ }
+ const clusterGraph = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: dir2,
+ // Todo: set proper spacing
+ nodesep: 50,
+ ranksep: 50,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ log.warn("Old graph before copy", write(graph));
+ copy3(node2, graph, clusterGraph, node2);
+ graph.setNode(node2, {
+ clusterNode: true,
+ id: node2,
+ clusterData: clusterDb2[node2].clusterData,
+ labelText: clusterDb2[node2].labelText,
+ graph: clusterGraph
+ });
+ log.warn("New graph after copy node: (", node2, ")", write(clusterGraph));
+ log.debug("Old graph after copy", write(graph));
+ } else {
+ log.warn(
+ "Cluster ** ",
+ node2,
+ " **not meeting the criteria !externalConnections:",
+ !clusterDb2[node2].externalConnections,
+ " no parent: ",
+ !graph.parent(node2),
+ " children ",
+ graph.children(node2) && graph.children(node2).length > 0,
+ graph.children("D"),
+ depth
+ );
+ log.debug(clusterDb2);
+ }
+ }
+ nodes6 = graph.nodes();
+ log.warn("New list of nodes", nodes6);
+ for (const node2 of nodes6) {
+ const data5 = graph.node(node2);
+ log.warn(" Now next level", node2, data5);
+ if (data5.clusterNode) {
+ extractor2(data5.graph, depth + 1);
+ }
+ }
+ }, "extractor");
+ sorter2 = /* @__PURE__ */ __name((graph, nodes6) => {
+ if (nodes6.length === 0) {
+ return [];
+ }
+ let result = Object.assign(nodes6);
+ nodes6.forEach((node2) => {
+ const children2 = graph.children(node2);
+ const sorted = sorter2(graph, children2);
+ result = [...result, ...sorted];
+ });
+ return result;
+ }, "sorter");
+ sortNodesByHierarchy2 = /* @__PURE__ */ __name((graph) => sorter2(graph, graph.children()), "sortNodesByHierarchy");
+ }
+ });
+
+ // src/dagre-wrapper/clusters.js
+ var rect3, noteGroup2, roundedWithTitle2, divider2, shapes4, clusterElems2, insertCluster2, clear20;
+ var init_clusters2 = __esm({
+ "src/dagre-wrapper/clusters.js"() {
+ "use strict";
+ init_intersect_rect();
+ init_logger();
+ init_createLabel();
+ init_createText();
+ init_src32();
+ init_diagramAPI();
+ init_common();
+ init_subGraphTitleMargins();
+ rect3 = /* @__PURE__ */ __name((parent4, node2) => {
+ log.info("Creating subgraph rect for ", node2.id, node2);
+ const siteConfig2 = getConfig2();
+ const shapeSvg = parent4.insert("g").attr("class", "cluster" + (node2.class ? " " + node2.class : "")).attr("id", node2.id);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const useHtmlLabels = evaluate(siteConfig2.flowchart.htmlLabels);
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
+ const text2 = node2.labelType === "markdown" ? createText(label, node2.labelText, { style: node2.labelStyle, useHtmlLabels }, siteConfig2) : label.node().appendChild(createLabel_default(node2.labelText, node2.labelStyle, void 0, true));
+ let bbox = text2.getBBox();
+ if (evaluate(siteConfig2.flowchart.htmlLabels)) {
+ const div = text2.children[0];
+ const dv = select_default2(text2);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ const padding3 = 0 * node2.padding;
+ const halfPadding = padding3 / 2;
+ const width3 = node2.width <= bbox.width + padding3 ? bbox.width + padding3 : node2.width;
+ if (node2.width <= bbox.width + padding3) {
+ node2.diff = (bbox.width - node2.width) / 2 - node2.padding / 2;
+ } else {
+ node2.diff = -node2.padding / 2;
+ }
+ log.trace("Data ", node2, JSON.stringify(node2));
+ rect4.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", node2.x - width3 / 2).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", width3).attr("height", node2.height + padding3);
+ const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig2);
+ if (useHtmlLabels) {
+ label.attr(
+ "transform",
+ // This puts the label on top of the box instead of inside it
+ `translate(${node2.x - bbox.width / 2}, ${node2.y - node2.height / 2 + subGraphTitleTopMargin})`
+ );
+ } else {
+ label.attr(
+ "transform",
+ // This puts the label on top of the box instead of inside it
+ `translate(${node2.x}, ${node2.y - node2.height / 2 + subGraphTitleTopMargin})`
+ );
+ }
+ const rectBox = rect4.node().getBBox();
+ node2.width = rectBox.width;
+ node2.height = rectBox.height;
+ node2.intersect = function(point8) {
+ return intersect_rect_default(node2, point8);
+ };
+ return shapeSvg;
+ }, "rect");
+ noteGroup2 = /* @__PURE__ */ __name((parent4, node2) => {
+ const shapeSvg = parent4.insert("g").attr("class", "note-cluster").attr("id", node2.id);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const padding3 = 0 * node2.padding;
+ const halfPadding = padding3 / 2;
+ rect4.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", node2.x - node2.width / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", node2.width + padding3).attr("height", node2.height + padding3).attr("fill", "none");
+ const rectBox = rect4.node().getBBox();
+ node2.width = rectBox.width;
+ node2.height = rectBox.height;
+ node2.intersect = function(point8) {
+ return intersect_rect_default(node2, point8);
+ };
+ return shapeSvg;
+ }, "noteGroup");
+ roundedWithTitle2 = /* @__PURE__ */ __name((parent4, node2) => {
+ const siteConfig2 = getConfig2();
+ const shapeSvg = parent4.insert("g").attr("class", node2.classes).attr("id", node2.id);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
+ const innerRect = shapeSvg.append("rect");
+ const text2 = label.node().appendChild(createLabel_default(node2.labelText, node2.labelStyle, void 0, true));
+ let bbox = text2.getBBox();
+ if (evaluate(siteConfig2.flowchart.htmlLabels)) {
+ const div = text2.children[0];
+ const dv = select_default2(text2);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ bbox = text2.getBBox();
+ const padding3 = 0 * node2.padding;
+ const halfPadding = padding3 / 2;
+ const width3 = node2.width <= bbox.width + node2.padding ? bbox.width + node2.padding : node2.width;
+ if (node2.width <= bbox.width + node2.padding) {
+ node2.diff = (bbox.width + node2.padding * 0 - node2.width) / 2;
+ } else {
+ node2.diff = -node2.padding / 2;
+ }
+ rect4.attr("class", "outer").attr("x", node2.x - width3 / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", width3 + padding3).attr("height", node2.height + padding3);
+ innerRect.attr("class", "inner").attr("x", node2.x - width3 / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding + bbox.height - 1).attr("width", width3 + padding3).attr("height", node2.height + padding3 - bbox.height - 3);
+ const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig2);
+ label.attr(
+ "transform",
+ `translate(${node2.x - bbox.width / 2}, ${node2.y - node2.height / 2 - node2.padding / 3 + (evaluate(siteConfig2.flowchart.htmlLabels) ? 5 : 3) + subGraphTitleTopMargin})`
+ );
+ const rectBox = rect4.node().getBBox();
+ node2.height = rectBox.height;
+ node2.intersect = function(point8) {
+ return intersect_rect_default(node2, point8);
+ };
+ return shapeSvg;
+ }, "roundedWithTitle");
+ divider2 = /* @__PURE__ */ __name((parent4, node2) => {
+ const shapeSvg = parent4.insert("g").attr("class", node2.classes).attr("id", node2.id);
+ const rect4 = shapeSvg.insert("rect", ":first-child");
+ const padding3 = 0 * node2.padding;
+ const halfPadding = padding3 / 2;
+ rect4.attr("class", "divider").attr("x", node2.x - node2.width / 2 - halfPadding).attr("y", node2.y - node2.height / 2).attr("width", node2.width + padding3).attr("height", node2.height + padding3);
+ const rectBox = rect4.node().getBBox();
+ node2.width = rectBox.width;
+ node2.height = rectBox.height;
+ node2.diff = -node2.padding / 2;
+ node2.intersect = function(point8) {
+ return intersect_rect_default(node2, point8);
+ };
+ return shapeSvg;
+ }, "divider");
+ shapes4 = { rect: rect3, roundedWithTitle: roundedWithTitle2, noteGroup: noteGroup2, divider: divider2 };
+ clusterElems2 = {};
+ insertCluster2 = /* @__PURE__ */ __name((elem, node2) => {
+ log.trace("Inserting cluster");
+ const shape = node2.shape || "rect";
+ clusterElems2[node2.id] = shapes4[shape](elem, node2);
+ }, "insertCluster");
+ clear20 = /* @__PURE__ */ __name(() => {
+ clusterElems2 = {};
+ }, "clear");
+ }
+ });
+
+ // src/dagre-wrapper/edgeMarker.ts
+ var addEdgeMarkers2, arrowTypesMap2, addEdgeMarker2;
+ var init_edgeMarker2 = __esm({
+ "src/dagre-wrapper/edgeMarker.ts"() {
+ "use strict";
+ init_logger();
+ addEdgeMarkers2 = /* @__PURE__ */ __name((svgPath, edge, url, id27, diagramType) => {
+ if (edge.arrowTypeStart) {
+ addEdgeMarker2(svgPath, "start", edge.arrowTypeStart, url, id27, diagramType);
+ }
+ if (edge.arrowTypeEnd) {
+ addEdgeMarker2(svgPath, "end", edge.arrowTypeEnd, url, id27, diagramType);
+ }
+ }, "addEdgeMarkers");
+ arrowTypesMap2 = {
+ arrow_cross: "cross",
+ arrow_point: "point",
+ arrow_barb: "barb",
+ arrow_circle: "circle",
+ aggregation: "aggregation",
+ extension: "extension",
+ composition: "composition",
+ dependency: "dependency",
+ lollipop: "lollipop"
+ };
+ addEdgeMarker2 = /* @__PURE__ */ __name((svgPath, position5, arrowType, url, id27, diagramType) => {
+ const endMarkerType = arrowTypesMap2[arrowType];
+ if (!endMarkerType) {
+ log.warn(`Unknown arrow type: ${arrowType}`);
+ return;
+ }
+ const suffix = position5 === "start" ? "Start" : "End";
+ svgPath.attr(`marker-${position5}`, `url(${url}#${id27}_${diagramType}-${endMarkerType}${suffix})`);
+ }, "addEdgeMarker");
+ }
+ });
+
+ // src/dagre-wrapper/edges.js
+ function setTerminalWidth2(fo, value2) {
+ if (getConfig2().flowchart.htmlLabels && fo) {
+ fo.style.width = value2.length * 9 + "px";
+ fo.style.height = "12px";
+ }
+ }
+ var edgeLabels2, terminalLabels2, clear21, insertEdgeLabel2, positionEdgeLabel2, outsideNode2, intersection2, cutPathAtIntersect2, insertEdge2;
+ var init_edges2 = __esm({
+ "src/dagre-wrapper/edges.js"() {
+ "use strict";
+ init_logger();
+ init_createLabel();
+ init_createText();
+ init_src32();
+ init_diagramAPI();
+ init_utils2();
+ init_common();
+ init_lineWithOffset();
+ init_subGraphTitleMargins();
+ init_edgeMarker2();
+ edgeLabels2 = {};
+ terminalLabels2 = {};
+ clear21 = /* @__PURE__ */ __name(() => {
+ edgeLabels2 = {};
+ terminalLabels2 = {};
+ }, "clear");
+ insertEdgeLabel2 = /* @__PURE__ */ __name((elem, edge) => {
+ const config6 = getConfig2();
+ const useHtmlLabels = evaluate(config6.flowchart.htmlLabels);
+ const labelElement = edge.labelType === "markdown" ? createText(
+ elem,
+ edge.label,
+ {
+ style: edge.labelStyle,
+ useHtmlLabels,
+ addSvgBackground: true
+ },
+ config6
+ ) : createLabel_default(edge.label, edge.labelStyle);
+ const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
+ const label = edgeLabel.insert("g").attr("class", "label");
+ label.node().appendChild(labelElement);
+ let bbox = labelElement.getBBox();
+ if (useHtmlLabels) {
+ const div = labelElement.children[0];
+ const dv = select_default2(labelElement);
+ bbox = div.getBoundingClientRect();
+ dv.attr("width", bbox.width);
+ dv.attr("height", bbox.height);
+ }
+ label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
+ edgeLabels2[edge.id] = edgeLabel;
+ edge.width = bbox.width;
+ edge.height = bbox.height;
+ let fo;
+ if (edge.startLabelLeft) {
+ const startLabelElement = createLabel_default(edge.startLabelLeft, edge.labelStyle);
+ const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = startEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner2.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels2[edge.id]) {
+ terminalLabels2[edge.id] = {};
+ }
+ terminalLabels2[edge.id].startLeft = startEdgeLabelLeft;
+ setTerminalWidth2(fo, edge.startLabelLeft);
+ }
+ if (edge.startLabelRight) {
+ const startLabelElement = createLabel_default(edge.startLabelRight, edge.labelStyle);
+ const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = startEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = startEdgeLabelRight.node().appendChild(startLabelElement);
+ inner2.node().appendChild(startLabelElement);
+ const slBox = startLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ if (!terminalLabels2[edge.id]) {
+ terminalLabels2[edge.id] = {};
+ }
+ terminalLabels2[edge.id].startRight = startEdgeLabelRight;
+ setTerminalWidth2(fo, edge.startLabelRight);
+ }
+ if (edge.endLabelLeft) {
+ const endLabelElement = createLabel_default(edge.endLabelLeft, edge.labelStyle);
+ const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = endEdgeLabelLeft.insert("g").attr("class", "inner");
+ fo = inner2.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelLeft.node().appendChild(endLabelElement);
+ if (!terminalLabels2[edge.id]) {
+ terminalLabels2[edge.id] = {};
+ }
+ terminalLabels2[edge.id].endLeft = endEdgeLabelLeft;
+ setTerminalWidth2(fo, edge.endLabelLeft);
+ }
+ if (edge.endLabelRight) {
+ const endLabelElement = createLabel_default(edge.endLabelRight, edge.labelStyle);
+ const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
+ const inner2 = endEdgeLabelRight.insert("g").attr("class", "inner");
+ fo = inner2.node().appendChild(endLabelElement);
+ const slBox = endLabelElement.getBBox();
+ inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
+ endEdgeLabelRight.node().appendChild(endLabelElement);
+ if (!terminalLabels2[edge.id]) {
+ terminalLabels2[edge.id] = {};
+ }
+ terminalLabels2[edge.id].endRight = endEdgeLabelRight;
+ setTerminalWidth2(fo, edge.endLabelRight);
+ }
+ return labelElement;
+ }, "insertEdgeLabel");
+ __name(setTerminalWidth2, "setTerminalWidth");
+ positionEdgeLabel2 = /* @__PURE__ */ __name((edge, paths) => {
+ log.debug("Moving label abc88 ", edge.id, edge.label, edgeLabels2[edge.id], paths);
+ let path4 = paths.updatedPath ? paths.updatedPath : paths.originalPath;
+ const siteConfig2 = getConfig2();
+ const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig2);
+ if (edge.label) {
+ const el = edgeLabels2[edge.id];
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcLabelPosition(path4);
+ log.debug(
+ "Moving label " + edge.label + " from (",
+ x5,
+ ",",
+ y5,
+ ") to (",
+ pos.x,
+ ",",
+ pos.y,
+ ") abc88"
+ );
+ if (paths.updatedPath) {
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ }
+ el.attr("transform", `translate(${x5}, ${y5 + subGraphTitleTotalMargin / 2})`);
+ }
+ if (edge.startLabelLeft) {
+ const el = terminalLabels2[edge.id].startLeft;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path4);
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ if (edge.startLabelRight) {
+ const el = terminalLabels2[edge.id].startRight;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(
+ edge.arrowTypeStart ? 10 : 0,
+ "start_right",
+ path4
+ );
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ if (edge.endLabelLeft) {
+ const el = terminalLabels2[edge.id].endLeft;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path4);
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ if (edge.endLabelRight) {
+ const el = terminalLabels2[edge.id].endRight;
+ let x5 = edge.x;
+ let y5 = edge.y;
+ if (path4) {
+ const pos = utils_default2.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path4);
+ x5 = pos.x;
+ y5 = pos.y;
+ }
+ el.attr("transform", `translate(${x5}, ${y5})`);
+ }
+ }, "positionEdgeLabel");
+ outsideNode2 = /* @__PURE__ */ __name((node2, point8) => {
+ const x5 = node2.x;
+ const y5 = node2.y;
+ const dx = Math.abs(point8.x - x5);
+ const dy = Math.abs(point8.y - y5);
+ const w3 = node2.width / 2;
+ const h2 = node2.height / 2;
+ if (dx >= w3 || dy >= h2) {
+ return true;
+ }
+ return false;
+ }, "outsideNode");
+ intersection2 = /* @__PURE__ */ __name((node2, outsidePoint, insidePoint) => {
+ log.debug(`intersection calc abc89:
+ outsidePoint: ${JSON.stringify(outsidePoint)}
+ insidePoint : ${JSON.stringify(insidePoint)}
+ node : x:${node2.x} y:${node2.y} w:${node2.width} h:${node2.height}`);
+ const x5 = node2.x;
+ const y5 = node2.y;
+ const dx = Math.abs(x5 - insidePoint.x);
+ const w3 = node2.width / 2;
+ let r2 = insidePoint.x < outsidePoint.x ? w3 - dx : w3 + dx;
+ const h2 = node2.height / 2;
+ const Q2 = Math.abs(outsidePoint.y - insidePoint.y);
+ const R2 = Math.abs(outsidePoint.x - insidePoint.x);
+ if (Math.abs(y5 - outsidePoint.y) * w3 > Math.abs(x5 - outsidePoint.x) * h2) {
+ let q2 = insidePoint.y < outsidePoint.y ? outsidePoint.y - h2 - y5 : y5 - h2 - outsidePoint.y;
+ r2 = R2 * q2 / Q2;
+ const res = {
+ x: insidePoint.x < outsidePoint.x ? insidePoint.x + r2 : insidePoint.x - R2 + r2,
+ y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q2 - q2 : insidePoint.y - Q2 + q2
+ };
+ if (r2 === 0) {
+ res.x = outsidePoint.x;
+ res.y = outsidePoint.y;
+ }
+ if (R2 === 0) {
+ res.x = outsidePoint.x;
+ }
+ if (Q2 === 0) {
+ res.y = outsidePoint.y;
+ }
+ log.debug(`abc89 topp/bott calc, Q ${Q2}, q ${q2}, R ${R2}, r ${r2}`, res);
+ return res;
+ } else {
+ if (insidePoint.x < outsidePoint.x) {
+ r2 = outsidePoint.x - w3 - x5;
+ } else {
+ r2 = x5 - w3 - outsidePoint.x;
+ }
+ let q2 = Q2 * r2 / R2;
+ let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R2 - r2 : insidePoint.x - R2 + r2;
+ let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q2 : insidePoint.y - q2;
+ log.debug(`sides calc abc89, Q ${Q2}, q ${q2}, R ${R2}, r ${r2}`, { _x, _y });
+ if (r2 === 0) {
+ _x = outsidePoint.x;
+ _y = outsidePoint.y;
+ }
+ if (R2 === 0) {
+ _x = outsidePoint.x;
+ }
+ if (Q2 === 0) {
+ _y = outsidePoint.y;
+ }
+ return { x: _x, y: _y };
+ }
+ }, "intersection");
+ cutPathAtIntersect2 = /* @__PURE__ */ __name((_points, boundaryNode) => {
+ log.debug("abc88 cutPathAtIntersect", _points, boundaryNode);
+ let points = [];
+ let lastPointOutside = _points[0];
+ let isInside = false;
+ _points.forEach((point8) => {
+ if (!outsideNode2(boundaryNode, point8) && !isInside) {
+ const inter = intersection2(boundaryNode, lastPointOutside, point8);
+ let pointPresent = false;
+ points.forEach((p3) => {
+ pointPresent = pointPresent || p3.x === inter.x && p3.y === inter.y;
+ });
+ if (!points.some((e3) => e3.x === inter.x && e3.y === inter.y)) {
+ points.push(inter);
}
- function BXc(a) {
- var b, c2, d, e, f2;
- d = 0;
- e = dme;
- if (a.b) {
- for (b = 0; b < 360; b++) {
- c2 = b * 0.017453292519943295;
- zXc(a, a.d, 0, 0, dre, c2);
- f2 = a.b.ig(a.d);
- if (f2 < e) {
- d = c2;
- e = f2;
- }
- }
- }
- zXc(a, a.d, 0, 0, dre, d);
- }
- function E$c(a, b) {
- var c2, d, e, f2;
- f2 = new Lqb();
- b.e = null;
- b.f = null;
- for (d = new olb(b.i); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 65);
- e = BD(Ohb(a.g, c2.a), 46);
- c2.a = D6c(c2.b);
- Rhb(f2, c2.a, e);
- }
- a.g = f2;
- }
- function t$c(a, b, c2) {
- var d, e, f2, g, h, i3;
- e = b - a.e;
- f2 = e / a.d.c.length;
- g = 0;
- for (i3 = new olb(a.d); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 443);
- d = a.b - h.b + c2;
- _Zc(h, h.e + g * f2, h.f);
- XZc(h, f2, d);
- ++g;
- }
- }
- function YBd(a) {
- var b;
- a.f.qj();
- if (a.b != -1) {
- ++a.b;
- b = a.f.d[a.a];
- if (a.b < b.i) {
- return;
- }
- ++a.a;
- }
- for (; a.a < a.f.d.length; ++a.a) {
- b = a.f.d[a.a];
- if (!!b && b.i != 0) {
- a.b = 0;
- return;
- }
- }
- a.b = -1;
- }
- function j0d(a, b) {
- var c2, d, e;
- e = b.c.length;
- c2 = l0d(a, e == 0 ? "" : (tCb(0, b.c.length), GD(b.c[0])));
- for (d = 1; d < e && !!c2; ++d) {
- c2 = BD(c2, 49).oh((tCb(d, b.c.length), GD(b.c[d])));
- }
- return c2;
- }
- function rEc(a, b) {
- var c2, d;
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- a.c[c2.c.p][c2.p].a = Aub(a.i);
- a.c[c2.c.p][c2.p].d = Edb(a.c[c2.c.p][c2.p].a);
- a.c[c2.c.p][c2.p].b = 1;
- }
- }
- function _dd(a, b) {
- var c2, d, e, f2;
- f2 = 0;
- for (d = new olb(a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 157);
- f2 += $wnd.Math.pow(red(c2) * qed(c2) - b, 2);
- }
- e = $wnd.Math.sqrt(f2 / (a.c.length - 1));
- return e;
- }
- function LHc(a, b, c2, d) {
- var e, f2, g;
- f2 = GHc(a, b, c2, d);
- g = MHc(a, f2);
- bIc(a, b, c2, d);
- yHc(a.b);
- mmb();
- Okb(f2, new lIc(a));
- e = MHc(a, f2);
- bIc(a, c2, b, d);
- yHc(a.b);
- return new vgd(meb(g), meb(e));
- }
- function cJc(a, b, c2) {
- var d, e;
- Odd(c2, "Interactive node placement", 1);
- a.a = BD(vNb(b, (wtc(), otc)), 304);
- for (e = new olb(b.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- bJc(a, d);
- }
- Qdd(c2);
- }
- function MVc(a, b) {
- var c2;
- Odd(b, "General Compactor", 1);
- b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
- c2 = qWc(BD(hkd(a, (ZWc(), LWc)), 380));
- c2.hg(a);
- b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
- }
- function Dfd(a, b, c2) {
- var d, e;
- nmd(a, a.j + b, a.k + c2);
- for (e = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 469);
- ukd(d, d.a + b, d.b + c2);
- }
- gmd(a, a.b + b, a.c + c2);
- }
- function vld(a, b, c2, d) {
- switch (c2) {
- case 7:
- return !a.e && (a.e = new y5d(B2, a, 7, 4)), Sxd(a.e, b, d);
- case 8:
- return !a.d && (a.d = new y5d(B2, a, 8, 5)), Sxd(a.d, b, d);
- }
- return Fkd(a, b, c2, d);
+ isInside = true;
+ } else {
+ lastPointOutside = point8;
+ if (!isInside) {
+ points.push(point8);
}
- function wld(a, b, c2, d) {
- switch (c2) {
- case 7:
- return !a.e && (a.e = new y5d(B2, a, 7, 4)), Txd(a.e, b, d);
- case 8:
- return !a.d && (a.d = new y5d(B2, a, 8, 5)), Txd(a.d, b, d);
+ }
+ });
+ return points;
+ }, "cutPathAtIntersect");
+ insertEdge2 = /* @__PURE__ */ __name(function(elem, e3, edge, clusterDb3, diagramType, graph, id27) {
+ let points = edge.points;
+ log.debug("abc88 InsertEdge: edge=", edge, "e=", e3);
+ let pointsHasChanged = false;
+ const tail = graph.node(e3.v);
+ var head2 = graph.node(e3.w);
+ if (head2?.intersect && tail?.intersect) {
+ points = points.slice(1, edge.points.length - 1);
+ points.unshift(tail.intersect(points[0]));
+ points.push(head2.intersect(points[points.length - 1]));
+ }
+ if (edge.toCluster) {
+ log.debug("to cluster abc88", clusterDb3[edge.toCluster]);
+ points = cutPathAtIntersect2(edge.points, clusterDb3[edge.toCluster].node);
+ pointsHasChanged = true;
+ }
+ if (edge.fromCluster) {
+ log.debug("from cluster abc88", clusterDb3[edge.fromCluster]);
+ points = cutPathAtIntersect2(points.reverse(), clusterDb3[edge.fromCluster].node).reverse();
+ pointsHasChanged = true;
+ }
+ const lineData = points.filter((p3) => !Number.isNaN(p3.y));
+ let curve = basis_default2;
+ if (edge.curve && (diagramType === "graph" || diagramType === "flowchart")) {
+ curve = edge.curve;
+ }
+ const { x: x5, y: y5 } = getLineFunctionsWithOffset(edge);
+ const lineFunction = line_default().x(x5).y(y5).curve(curve);
+ let strokeClasses;
+ switch (edge.thickness) {
+ case "normal":
+ strokeClasses = "edge-thickness-normal";
+ break;
+ case "thick":
+ strokeClasses = "edge-thickness-thick";
+ break;
+ case "invisible":
+ strokeClasses = "edge-thickness-thick";
+ break;
+ default:
+ strokeClasses = "";
+ }
+ switch (edge.pattern) {
+ case "solid":
+ strokeClasses += " edge-pattern-solid";
+ break;
+ case "dotted":
+ strokeClasses += " edge-pattern-dotted";
+ break;
+ case "dashed":
+ strokeClasses += " edge-pattern-dashed";
+ break;
+ }
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style);
+ let url = "";
+ if (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ addEdgeMarkers2(svgPath, edge, url, id27, diagramType);
+ let paths = {};
+ if (pointsHasChanged) {
+ paths.updatedPath = points;
+ }
+ paths.originalPath = edge.points;
+ return paths;
+ }, "insertEdge");
+ }
+ });
+
+ // src/dagre-wrapper/index.js
+ var recursiveRender2, render5;
+ var init_dagre_wrapper = __esm({
+ "src/dagre-wrapper/index.js"() {
+ "use strict";
+ init_dagre();
+ init_json();
+ init_markers2();
+ init_util();
+ init_mermaid_graphlib2();
+ init_nodes2();
+ init_clusters2();
+ init_edges2();
+ init_logger();
+ init_subGraphTitleMargins();
+ init_diagramAPI();
+ recursiveRender2 = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id27, parentCluster, siteConfig2) => {
+ log.info("Graph in recursive render: XXX", write(graph), parentCluster);
+ const dir2 = graph.graph().rankdir;
+ log.trace("Dir in recursive render - dir:", dir2);
+ const elem = _elem.insert("g").attr("class", "root");
+ if (!graph.nodes()) {
+ log.info("No nodes found for", graph);
+ } else {
+ log.info("Recursive render XXX", graph.nodes());
+ }
+ if (graph.edges().length > 0) {
+ log.trace("Recursive edges", graph.edge(graph.edges()[0]));
+ }
+ const clusters = elem.insert("g").attr("class", "clusters");
+ const edgePaths = elem.insert("g").attr("class", "edgePaths");
+ const edgeLabels3 = elem.insert("g").attr("class", "edgeLabels");
+ const nodes6 = elem.insert("g").attr("class", "nodes");
+ await Promise.all(
+ graph.nodes().map(async function(v3) {
+ const node2 = graph.node(v3);
+ if (parentCluster !== void 0) {
+ const data5 = JSON.parse(JSON.stringify(parentCluster.clusterData));
+ log.info("Setting data for cluster XXX (", v3, ") ", data5, parentCluster);
+ graph.setNode(parentCluster.id, data5);
+ if (!graph.parent(v3)) {
+ log.trace("Setting parent", v3, parentCluster.id);
+ graph.setParent(v3, parentCluster.id, data5);
+ }
+ }
+ log.info("(Insert) Node XXX" + v3 + ": " + JSON.stringify(graph.node(v3)));
+ if (node2?.clusterNode) {
+ log.info("Cluster identified", v3, node2.width, graph.node(v3));
+ const { ranksep, nodesep } = graph.graph();
+ node2.graph.setGraph({
+ ...node2.graph.graph(),
+ ranksep,
+ nodesep
+ });
+ const o2 = await recursiveRender2(
+ nodes6,
+ node2.graph,
+ diagramType,
+ id27,
+ graph.node(v3),
+ siteConfig2
+ );
+ const newEl = o2.elem;
+ updateNodeBounds(node2, newEl);
+ node2.diff = o2.diff || 0;
+ log.info("Node bounds (abc123)", v3, node2, node2.width, node2.x, node2.y);
+ setNodeElem(newEl, node2);
+ log.warn("Recursive render complete ", newEl, node2);
+ } else {
+ if (graph.children(v3).length > 0) {
+ log.info("Cluster - the non recursive path XXX", v3, node2.id, node2, graph);
+ log.info(findNonClusterChild2(node2.id, graph));
+ clusterDb2[node2.id] = { id: findNonClusterChild2(node2.id, graph), node: node2 };
+ } else {
+ log.info("Node - the non recursive path", v3, node2.id, node2);
+ await insertNode(nodes6, graph.node(v3), dir2);
}
- return Gkd(a, b, c2, d);
}
- function lqd(a, b, c2) {
- var d, e, f2, g, h;
- if (c2) {
- f2 = c2.a.length;
- d = new Yge(f2);
- for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- e = Zpd(c2, g.a);
- !!e && drd(a, e, b);
- }
+ })
+ );
+ graph.edges().forEach(async function(e3) {
+ const edge = graph.edge(e3.v, e3.w, e3.name);
+ log.info("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(e3));
+ log.info("Edge " + e3.v + " -> " + e3.w + ": ", e3, " ", JSON.stringify(graph.edge(e3)));
+ log.info("Fix", clusterDb2, "ids:", e3.v, e3.w, "Translating: ", clusterDb2[e3.v], clusterDb2[e3.w]);
+ await insertEdgeLabel2(edgeLabels3, edge);
+ });
+ graph.edges().forEach(function(e3) {
+ log.info("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(e3));
+ });
+ log.info("Graph before layout:", JSON.stringify(write(graph)));
+ log.info("#############################################");
+ log.info("### Layout ###");
+ log.info("#############################################");
+ log.info(graph);
+ layout(graph);
+ log.info("Graph after layout:", JSON.stringify(write(graph)));
+ let diff2 = 0;
+ const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig2);
+ sortNodesByHierarchy2(graph).forEach(function(v3) {
+ const node2 = graph.node(v3);
+ log.info("Position " + v3 + ": " + JSON.stringify(graph.node(v3)));
+ log.info(
+ "Position " + v3 + ": (" + node2.x,
+ "," + node2.y,
+ ") width: ",
+ node2.width,
+ " height: ",
+ node2.height
+ );
+ if (node2?.clusterNode) {
+ node2.y += subGraphTitleTotalMargin;
+ positionNode(node2);
+ } else {
+ if (graph.children(v3).length > 0) {
+ node2.height += subGraphTitleTotalMargin;
+ insertCluster2(clusters, node2);
+ clusterDb2[node2.id].node = node2;
+ } else {
+ node2.y += subGraphTitleTotalMargin / 2;
+ positionNode(node2);
+ }
+ }
+ });
+ graph.edges().forEach(function(e3) {
+ const edge = graph.edge(e3);
+ log.info("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(edge), edge);
+ edge.points.forEach((point8) => point8.y += subGraphTitleTotalMargin / 2);
+ const paths = insertEdge2(edgePaths, e3, edge, clusterDb2, diagramType, graph, id27);
+ positionEdgeLabel2(edge, paths);
+ });
+ graph.nodes().forEach(function(v3) {
+ const n2 = graph.node(v3);
+ log.info(v3, n2.type, n2.diff);
+ if (n2.type === "group") {
+ diff2 = n2.diff;
+ }
+ });
+ return { elem, diff: diff2 };
+ }, "recursiveRender");
+ render5 = /* @__PURE__ */ __name(async (elem, graph, markers3, diagramType, id27) => {
+ markers_default2(elem, markers3, diagramType, id27);
+ clear4();
+ clear21();
+ clear20();
+ clear19();
+ log.warn("Graph at first:", JSON.stringify(write(graph)));
+ adjustClustersAndEdges2(graph);
+ log.warn("Graph after:", JSON.stringify(write(graph)));
+ const siteConfig2 = getConfig2();
+ await recursiveRender2(elem, graph, diagramType, id27, void 0, siteConfig2);
+ }, "render");
+ }
+ });
+
+ // src/diagrams/class/classRenderer-v2.ts
+ function getArrowMarker(type3) {
+ let marker;
+ switch (type3) {
+ case 0:
+ marker = "aggregation";
+ break;
+ case 1:
+ marker = "extension";
+ break;
+ case 2:
+ marker = "composition";
+ break;
+ case 3:
+ marker = "dependency";
+ break;
+ case 4:
+ marker = "lollipop";
+ break;
+ default:
+ marker = "none";
+ }
+ return marker;
+ }
+ var sanitizeText6, conf5, addNamespaces, addClasses, addNotes, addRelations, setConf5, draw13, classRenderer_v2_default;
+ var init_classRenderer_v2 = __esm({
+ "src/diagrams/class/classRenderer-v2.ts"() {
+ "use strict";
+ init_src32();
+ init_graphlib();
+ init_logger();
+ init_diagramAPI();
+ init_dagre_wrapper();
+ init_utils2();
+ init_utils2();
+ init_setupGraphViewbox();
+ init_common();
+ sanitizeText6 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, getConfig2()), "sanitizeText");
+ conf5 = {
+ dividerMargin: 10,
+ padding: 5,
+ textHeight: 10,
+ curve: void 0
+ };
+ addNamespaces = /* @__PURE__ */ __name(function(namespaces2, g2, _id, diagObj) {
+ log.info("keys:", [...namespaces2.keys()]);
+ log.info(namespaces2);
+ namespaces2.forEach(function(vertex) {
+ const shape = "rect";
+ const node2 = {
+ shape,
+ id: vertex.id,
+ domId: vertex.domId,
+ labelText: sanitizeText6(vertex.id),
+ labelStyle: "",
+ style: "fill: none; stroke: black",
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: getConfig2().flowchart?.padding ?? getConfig2().class?.padding
+ };
+ g2.setNode(vertex.id, node2);
+ addClasses(vertex.classes, g2, _id, diagObj, vertex.id);
+ log.info("setNode", node2);
+ });
+ }, "addNamespaces");
+ addClasses = /* @__PURE__ */ __name(function(classes6, g2, _id, diagObj, parent4) {
+ log.info("keys:", [...classes6.keys()]);
+ log.info(classes6);
+ [...classes6.values()].filter((vertex) => vertex.parent === parent4).forEach(function(vertex) {
+ const cssClassStr = vertex.cssClasses.join(" ");
+ const styles3 = getStylesFromArray(vertex.styles);
+ const vertexText = vertex.label ?? vertex.id;
+ const radius2 = 0;
+ const shape = "class_box";
+ const node2 = {
+ labelStyle: styles3.labelStyle,
+ shape,
+ labelText: sanitizeText6(vertexText),
+ classData: vertex,
+ rx: radius2,
+ ry: radius2,
+ class: cssClassStr,
+ style: styles3.style,
+ id: vertex.id,
+ domId: vertex.domId,
+ tooltip: diagObj.db.getTooltip(vertex.id, parent4) || "",
+ haveCallback: vertex.haveCallback,
+ link: vertex.link,
+ width: vertex.type === "group" ? 500 : void 0,
+ type: vertex.type,
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: getConfig2().flowchart?.padding ?? getConfig2().class?.padding
+ };
+ g2.setNode(vertex.id, node2);
+ if (parent4) {
+ g2.setParent(vertex.id, parent4);
+ }
+ log.info("setNode", node2);
+ });
+ }, "addClasses");
+ addNotes = /* @__PURE__ */ __name(function(notes2, g2, startEdgeId, classes6) {
+ log.info(notes2);
+ notes2.forEach(function(note3, i2) {
+ const vertex = note3;
+ const cssNoteStr = "";
+ const styles3 = { labelStyle: "", style: "" };
+ const vertexText = vertex.text;
+ const radius2 = 0;
+ const shape = "note";
+ const node2 = {
+ labelStyle: styles3.labelStyle,
+ shape,
+ labelText: sanitizeText6(vertexText),
+ noteData: vertex,
+ rx: radius2,
+ ry: radius2,
+ class: cssNoteStr,
+ style: styles3.style,
+ id: vertex.id,
+ domId: vertex.id,
+ tooltip: "",
+ type: "note",
+ // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
+ padding: getConfig2().flowchart?.padding ?? getConfig2().class?.padding
+ };
+ g2.setNode(vertex.id, node2);
+ log.info("setNode", node2);
+ if (!vertex.class || !classes6.has(vertex.class)) {
+ return;
+ }
+ const edgeId = startEdgeId + i2;
+ const edgeData2 = {
+ id: `edgeNote${edgeId}`,
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: "dotted",
+ // Set link type for rendering
+ arrowhead: "none",
+ //Set edge extra labels
+ startLabelRight: "",
+ endLabelLeft: "",
+ //Set relation arrow types
+ arrowTypeStart: "none",
+ arrowTypeEnd: "none",
+ style: "fill:none",
+ labelStyle: "",
+ curve: interpolateToCurve(conf5.curve, linear_default)
+ };
+ g2.setEdge(vertex.id, vertex.class, edgeData2, edgeId);
+ });
+ }, "addNotes");
+ addRelations = /* @__PURE__ */ __name(function(relations3, g2) {
+ const conf8 = getConfig2().flowchart;
+ let cnt4 = 0;
+ relations3.forEach(function(edge) {
+ cnt4++;
+ const edgeData2 = {
+ //Set relationship style and line type
+ classes: "relation",
+ pattern: edge.relation.lineType == 1 ? "dashed" : "solid",
+ id: getEdgeId(edge.id1, edge.id2, {
+ prefix: "id",
+ counter: cnt4
+ }),
+ // Set link type for rendering
+ arrowhead: edge.type === "arrow_open" ? "none" : "normal",
+ //Set edge extra labels
+ startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1,
+ endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2,
+ //Set relation arrow types
+ arrowTypeStart: getArrowMarker(edge.relation.type1),
+ arrowTypeEnd: getArrowMarker(edge.relation.type2),
+ style: "fill:none",
+ labelStyle: "",
+ curve: interpolateToCurve(conf8?.curve, linear_default)
+ };
+ log.info(edgeData2, edge);
+ if (edge.style !== void 0) {
+ const styles3 = getStylesFromArray(edge.style);
+ edgeData2.style = styles3.style;
+ edgeData2.labelStyle = styles3.labelStyle;
+ }
+ edge.text = edge.title;
+ if (edge.text === void 0) {
+ if (edge.style !== void 0) {
+ edgeData2.arrowheadStyle = "fill: #333";
+ }
+ } else {
+ edgeData2.arrowheadStyle = "fill: #333";
+ edgeData2.labelpos = "c";
+ if (getConfig2().flowchart?.htmlLabels ?? getConfig2().htmlLabels) {
+ edgeData2.labelType = "html";
+ edgeData2.label = '' + edge.text + "";
+ } else {
+ edgeData2.labelType = "text";
+ edgeData2.label = edge.text.replace(common_default.lineBreakRegex, "\n");
+ if (edge.style === void 0) {
+ edgeData2.style = edgeData2.style || "stroke: #333; stroke-width: 1.5px;fill:none";
}
+ edgeData2.labelStyle = edgeData2.labelStyle.replace("color:", "fill:");
}
- function HAd(a, b, c2) {
- var d, e, f2, g, h;
- a.qj();
- f2 = b == null ? 0 : tb(b);
- if (a.f > 0) {
- g = (f2 & Ohe) % a.d.length;
- e = wAd(a, g, f2, b);
- if (e) {
- h = e.ed(c2);
- return h;
+ }
+ g2.setEdge(edge.id1, edge.id2, edgeData2, cnt4);
+ });
+ }, "addRelations");
+ setConf5 = /* @__PURE__ */ __name(function(cnf) {
+ conf5 = {
+ ...conf5,
+ ...cnf
+ };
+ }, "setConf");
+ draw13 = /* @__PURE__ */ __name(async function(text2, id27, _version, diagObj) {
+ log.info("Drawing class - ", id27);
+ const conf8 = getConfig2().flowchart ?? getConfig2().class;
+ const securityLevel = getConfig2().securityLevel;
+ log.info("config:", conf8);
+ const nodeSpacing = conf8?.nodeSpacing ?? 50;
+ const rankSpacing = conf8?.rankSpacing ?? 50;
+ const g2 = new Graph({
+ multigraph: true,
+ compound: true
+ }).setGraph({
+ rankdir: diagObj.db.getDirection(),
+ nodesep: nodeSpacing,
+ ranksep: rankSpacing,
+ marginx: 8,
+ marginy: 8
+ }).setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const namespaces2 = diagObj.db.getNamespaces();
+ const classes6 = diagObj.db.getClasses();
+ const relations3 = diagObj.db.getRelations();
+ const notes2 = diagObj.db.getNotes();
+ log.info(relations3);
+ addNamespaces(namespaces2, g2, id27, diagObj);
+ addClasses(classes6, g2, id27, diagObj);
+ addRelations(relations3, g2);
+ addNotes(notes2, g2, relations3.length + 1, classes6);
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = root4.select(`[id="${id27}"]`);
+ const element3 = root4.select("#" + id27 + " g");
+ await render5(
+ element3,
+ g2,
+ ["aggregation", "extension", "composition", "dependency", "lollipop"],
+ "classDiagram",
+ id27
+ );
+ utils_default2.insertTitle(svg, "classTitleText", conf8?.titleTopMargin ?? 5, diagObj.db.getDiagramTitle());
+ setupGraphViewbox(g2, svg, conf8?.diagramPadding, conf8?.useMaxWidth);
+ if (!conf8?.htmlLabels) {
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ const labels = doc.querySelectorAll('[id="' + id27 + '"] .edgeLabel .label');
+ for (const label of labels) {
+ const dim = label.getBBox();
+ const rect4 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect4.setAttribute("rx", 0);
+ rect4.setAttribute("ry", 0);
+ rect4.setAttribute("width", dim.width);
+ rect4.setAttribute("height", dim.height);
+ label.insertBefore(rect4, label.firstChild);
+ }
+ }
+ }, "draw");
+ __name(getArrowMarker, "getArrowMarker");
+ classRenderer_v2_default = {
+ setConf: setConf5,
+ draw: draw13
+ };
+ }
+ });
+
+ // src/diagrams/class/classDiagram-v2.ts
+ var classDiagram_v2_exports = {};
+ __export(classDiagram_v2_exports, {
+ diagram: () => diagram13
+ });
+ var diagram13;
+ var init_classDiagram_v2 = __esm({
+ "src/diagrams/class/classDiagram-v2.ts"() {
+ "use strict";
+ init_classDiagram();
+ init_classDb();
+ init_styles9();
+ init_classRenderer_v2();
+ diagram13 = {
+ parser: classDiagram_default,
+ db: classDb_default,
+ renderer: classRenderer_v2_default,
+ styles: styles_default9,
+ init: /* @__PURE__ */ __name((cnf) => {
+ if (!cnf.class) {
+ cnf.class = {};
+ }
+ cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ classDb_default.clear();
+ }, "init")
+ };
+ }
+ });
+
+ // src/diagrams/state/parser/stateDiagram.jison
+ var parser14, stateDiagram_default;
+ var init_stateDiagram = __esm({
+ "src/diagrams/state/parser/stateDiagram.jison"() {
+ "use strict";
+ parser14 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 16], $V7 = [1, 17], $V8 = [1, 18], $V9 = [1, 19], $Va = [1, 32], $Vb = [1, 20], $Vc = [1, 21], $Vd = [1, 22], $Ve = [1, 23], $Vf = [1, 24], $Vg = [1, 26], $Vh = [1, 27], $Vi = [1, 28], $Vj = [1, 29], $Vk = [1, 30], $Vl = [1, 31], $Vm = [1, 34], $Vn = [1, 35], $Vo = [1, 36], $Vp = [1, 37], $Vq = [1, 33], $Vr = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54], $Vs = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54], $Vt = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "classDefStatement": 10, "styleStatement": 11, "cssClassStatement": 12, "idStatement": 13, "DESCR": 14, "-->": 15, "HIDE_EMPTY": 16, "scale": 17, "WIDTH": 18, "COMPOSIT_STATE": 19, "STRUCT_START": 20, "STRUCT_STOP": 21, "STATE_DESCR": 22, "AS": 23, "ID": 24, "FORK": 25, "JOIN": 26, "CHOICE": 27, "CONCURRENT": 28, "note": 29, "notePosition": 30, "NOTE_TEXT": 31, "direction": 32, "acc_title": 33, "acc_title_value": 34, "acc_descr": 35, "acc_descr_value": 36, "acc_descr_multiline_value": 37, "classDef": 38, "CLASSDEF_ID": 39, "CLASSDEF_STYLEOPTS": 40, "DEFAULT": 41, "style": 42, "STYLE_IDS": 43, "STYLEDEF_STYLEOPTS": 44, "class": 45, "CLASSENTITY_IDS": 46, "STYLECLASS": 47, "direction_tb": 48, "direction_bt": 49, "direction_rl": 50, "direction_lr": 51, "eol": 52, ";": 53, "EDGE_STATE": 54, "STYLE_SEPARATOR": 55, "left_of": 56, "right_of": 57, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 14: "DESCR", 15: "-->", 16: "HIDE_EMPTY", 17: "scale", 18: "WIDTH", 19: "COMPOSIT_STATE", 20: "STRUCT_START", 21: "STRUCT_STOP", 22: "STATE_DESCR", 23: "AS", 24: "ID", 25: "FORK", 26: "JOIN", 27: "CHOICE", 28: "CONCURRENT", 29: "note", 31: "NOTE_TEXT", 33: "acc_title", 34: "acc_title_value", 35: "acc_descr", 36: "acc_descr_value", 37: "acc_descr_multiline_value", 38: "classDef", 39: "CLASSDEF_ID", 40: "CLASSDEF_STYLEOPTS", 41: "DEFAULT", 42: "style", 43: "STYLE_IDS", 44: "STYLEDEF_STYLEOPTS", 45: "class", 46: "CLASSENTITY_IDS", 47: "STYLECLASS", 48: "direction_tb", 49: "direction_bt", 50: "direction_rl", 51: "direction_lr", 53: ";", 54: "EDGE_STATE", 55: "STYLE_SEPARATOR", 56: "left_of", 57: "right_of" },
+ productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 3], [9, 4], [9, 1], [9, 2], [9, 1], [9, 4], [9, 3], [9, 6], [9, 1], [9, 1], [9, 1], [9, 1], [9, 4], [9, 4], [9, 1], [9, 2], [9, 2], [9, 1], [10, 3], [10, 3], [11, 3], [12, 3], [32, 1], [32, 1], [32, 1], [32, 1], [52, 1], [52, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 3:
+ yy.setRootDoc($$[$0]);
+ return $$[$0];
+ break;
+ case 4:
+ this.$ = [];
+ break;
+ case 5:
+ if ($$[$0] != "nl") {
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
}
- }
- d = a.tj(f2, b, c2);
- a.c.Fc(d);
- return null;
+ break;
+ case 6:
+ case 7:
+ this.$ = $$[$0];
+ break;
+ case 8:
+ this.$ = "nl";
+ break;
+ case 12:
+ this.$ = $$[$0];
+ break;
+ case 13:
+ const stateStmt = $$[$0 - 1];
+ stateStmt.description = yy.trimColon($$[$0]);
+ this.$ = stateStmt;
+ break;
+ case 14:
+ this.$ = { stmt: "relation", state1: $$[$0 - 2], state2: $$[$0] };
+ break;
+ case 15:
+ const relDescription = yy.trimColon($$[$0]);
+ this.$ = { stmt: "relation", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };
+ break;
+ case 19:
+ this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: "", doc: $$[$0 - 1] };
+ break;
+ case 20:
+ var id27 = $$[$0];
+ var description = $$[$0 - 2].trim();
+ if ($$[$0].match(":")) {
+ var parts = $$[$0].split(":");
+ id27 = parts[0];
+ description = [description, parts[1]];
+ }
+ this.$ = { stmt: "state", id: id27, type: "default", description };
+ break;
+ case 21:
+ this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: $$[$0 - 5], doc: $$[$0 - 1] };
+ break;
+ case 22:
+ this.$ = { stmt: "state", id: $$[$0], type: "fork" };
+ break;
+ case 23:
+ this.$ = { stmt: "state", id: $$[$0], type: "join" };
+ break;
+ case 24:
+ this.$ = { stmt: "state", id: $$[$0], type: "choice" };
+ break;
+ case 25:
+ this.$ = { stmt: "state", id: yy.getDividerId(), type: "divider" };
+ break;
+ case 26:
+ this.$ = { stmt: "state", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };
+ break;
+ case 29:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 30:
+ case 31:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 32:
+ case 33:
+ this.$ = { stmt: "classDef", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };
+ break;
+ case 34:
+ this.$ = { stmt: "style", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };
+ break;
+ case 35:
+ this.$ = { stmt: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };
+ break;
+ case 36:
+ yy.setDirection("TB");
+ this.$ = { stmt: "dir", value: "TB" };
+ break;
+ case 37:
+ yy.setDirection("BT");
+ this.$ = { stmt: "dir", value: "BT" };
+ break;
+ case 38:
+ yy.setDirection("RL");
+ this.$ = { stmt: "dir", value: "RL" };
+ break;
+ case 39:
+ yy.setDirection("LR");
+ this.$ = { stmt: "dir", value: "LR" };
+ break;
+ case 42:
+ case 43:
+ this.$ = { stmt: "state", id: $$[$0].trim(), type: "default", description: "" };
+ break;
+ case 44:
+ this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
+ break;
+ case 45:
+ this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
+ break;
}
- function t1d(a, b) {
- var c2, d, e, f2;
- switch (o1d(a, b)._k()) {
- case 3:
- case 2: {
- c2 = OKd(b);
- for (e = 0, f2 = c2.i; e < f2; ++e) {
- d = BD(qud(c2, e), 34);
- if ($1d(q1d(a, d)) == 5) {
- return d;
- }
- }
- break;
+ }, "anonymous"),
+ table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o2([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o2($Vr, [2, 5]), { 9: 38, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o2($Vr, [2, 7]), o2($Vr, [2, 8]), o2($Vr, [2, 9]), o2($Vr, [2, 10]), o2($Vr, [2, 11]), o2($Vr, [2, 12], { 14: [1, 39], 15: [1, 40] }), o2($Vr, [2, 16]), { 18: [1, 41] }, o2($Vr, [2, 18], { 20: [1, 42] }), { 23: [1, 43] }, o2($Vr, [2, 22]), o2($Vr, [2, 23]), o2($Vr, [2, 24]), o2($Vr, [2, 25]), { 30: 44, 31: [1, 45], 56: [1, 46], 57: [1, 47] }, o2($Vr, [2, 28]), { 34: [1, 48] }, { 36: [1, 49] }, o2($Vr, [2, 31]), { 39: [1, 50], 41: [1, 51] }, { 43: [1, 52] }, { 46: [1, 53] }, o2($Vs, [2, 42], { 55: [1, 54] }), o2($Vs, [2, 43], { 55: [1, 55] }), o2($Vr, [2, 36]), o2($Vr, [2, 37]), o2($Vr, [2, 38]), o2($Vr, [2, 39]), o2($Vr, [2, 6]), o2($Vr, [2, 13]), { 13: 56, 24: $Va, 54: $Vq }, o2($Vr, [2, 17]), o2($Vt, $V3, { 7: 57 }), { 24: [1, 58] }, { 24: [1, 59] }, { 23: [1, 60] }, { 24: [2, 46] }, { 24: [2, 47] }, o2($Vr, [2, 29]), o2($Vr, [2, 30]), { 40: [1, 61] }, { 40: [1, 62] }, { 44: [1, 63] }, { 47: [1, 64] }, { 24: [1, 65] }, { 24: [1, 66] }, o2($Vr, [2, 14], { 14: [1, 67] }), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 68], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o2($Vr, [2, 20], { 20: [1, 69] }), { 31: [1, 70] }, { 24: [1, 71] }, o2($Vr, [2, 32]), o2($Vr, [2, 33]), o2($Vr, [2, 34]), o2($Vr, [2, 35]), o2($Vs, [2, 44]), o2($Vs, [2, 45]), o2($Vr, [2, 15]), o2($Vr, [2, 19]), o2($Vt, $V3, { 7: 72 }), o2($Vr, [2, 26]), o2($Vr, [2, 27]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 73], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o2($Vr, [2, 21])],
+ defaultActions: { 5: [2, 1], 6: [2, 2], 46: [2, 46], 47: [2, 47] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
+ }
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
}
+ token2 = self2.symbols_[token2] || token2;
}
- return null;
+ return token2;
}
- function Qs(a) {
- var b, c2, d, e, f2;
- if (Lp(a.f, a.b.length)) {
- d = KC(BG, Gie, 330, a.b.length * 2, 0, 1);
- a.b = d;
- e = d.length - 1;
- for (c2 = a.a; c2 != a; c2 = c2.Rd()) {
- f2 = BD(c2, 330);
- b = f2.d & e;
- f2.a = d[b];
- d[b] = f2;
- }
- }
- }
- function DJb(a, b) {
- var c2, d, e, f2;
- f2 = 0;
- for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 111);
- f2 = $wnd.Math.max(f2, d.e.a + d.b.rf().a);
- }
- c2 = BD(Mpb(a.b, b), 124);
- c2.n.b = 0;
- c2.a.a = f2;
- }
- function MKb(a, b) {
- var c2, d, e, f2;
- c2 = 0;
- for (f2 = BD(BD(Qc(a.r, b), 21), 84).Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 111);
- c2 = $wnd.Math.max(c2, e.e.b + e.b.rf().b);
- }
- d = BD(Mpb(a.b, b), 124);
- d.n.d = 0;
- d.a.b = c2;
- }
- function INc(a) {
- var b, c2;
- c2 = BD(vNb(a, (wtc(), Ksc)), 21);
- b = k3c(zNc);
- c2.Hc((Orc(), Lrc)) && d3c(b, CNc);
- c2.Hc(Nrc) && d3c(b, ENc);
- c2.Hc(Erc) && d3c(b, ANc);
- c2.Hc(Grc) && d3c(b, BNc);
- return b;
- }
- function j1c(a, b) {
- var c2;
- Odd(b, "Delaunay triangulation", 1);
- c2 = new Rkb();
- Hkb(a.i, new n1c(c2));
- Ccb(DD(vNb(a, (XNb(), VNb)))) && "null10bw";
- !a.e ? a.e = NCb(c2) : ye(a.e, NCb(c2));
- Qdd(b);
- }
- function q6c(a) {
- if (a < 0) {
- throw vbb(new Wdb("The input must be positive"));
- } else
- return a < h6c.length ? Sbb(h6c[a]) : $wnd.Math.sqrt(dre * a) * (y6c(a, a) / x6c(2.718281828459045, a));
- }
- function pud(a, b) {
- var c2;
- if (a.ni() && b != null) {
- for (c2 = 0; c2 < a.i; ++c2) {
- if (pb(b, a.g[c2])) {
- return true;
- }
- }
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
} else {
- for (c2 = 0; c2 < a.i; ++c2) {
- if (PD(a.g[c2]) === PD(b)) {
- return true;
- }
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
}
+ action = table[state5] && table[state5][symbol];
}
- return false;
- }
- function jr(a, b) {
- if (b == null) {
- while (a.a.Ob()) {
- if (BD(a.a.Pb(), 42).dd() == null) {
- return true;
- }
- }
- } else {
- while (a.a.Ob()) {
- if (pb(b, BD(a.a.Pb(), 42).dd())) {
- return true;
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
}
}
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
}
- return false;
- }
- function zy(a, b) {
- var c2, d, e;
- if (b === a) {
- return true;
- } else if (JD(b, 664)) {
- e = BD(b, 1947);
- return Ue((d = a.g, !d ? a.g = new vi(a) : d), (c2 = e.g, !c2 ? e.g = new vi(e) : c2));
- } else {
- return false;
- }
- }
- function Tz(a) {
- var b, c2, d, e;
- b = "Sz";
- c2 = "ez";
- e = $wnd.Math.min(a.length, 5);
- for (d = e - 1; d >= 0; d--) {
- if (dfb(a[d].d, b) || dfb(a[d].d, c2)) {
- a.length >= d + 1 && a.splice(0, d + 1);
- break;
- }
- }
- return a;
- }
- function Abb(a, b) {
- var c2;
- if (Fbb(a) && Fbb(b)) {
- c2 = a / b;
- if (Kje < c2 && c2 < Ije) {
- return c2 < 0 ? $wnd.Math.ceil(c2) : $wnd.Math.floor(c2);
- }
- }
- return zbb(UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, false));
- }
- function LZb(a, b) {
- if (b == a.c.i) {
- return a.d.i;
- } else if (b == a.d.i) {
- return a.c.i;
- } else {
- throw vbb(new Wdb("'node' must either be the source node or target node of the edge."));
- }
- }
- function C2b(a) {
- var b, c2, d, e;
- e = BD(vNb(a, (wtc(), xsc)), 37);
- if (e) {
- d = new d7c();
- b = Q_b(a.c.i);
- while (b != e) {
- c2 = b.e;
- b = Q_b(c2);
- O6c(P6c(P6c(d, c2.n), b.c), b.d.b, b.d.d);
- }
- return d;
- }
- return w2b;
- }
- function Ldc(a) {
- var b;
- b = BD(vNb(a, (wtc(), ntc)), 403);
- MAb(LAb(new YAb(null, new Kub(b.d, 16)), new Ydc()), new $dc(a));
- MAb(JAb(new YAb(null, new Kub(b.d, 16)), new aec()), new cec(a));
- }
- function woc(a, b) {
- var c2, d, e, f2;
- e = b ? U_b(a) : R_b(a);
- for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- f2 = LZb(c2, a);
- if (f2.k == (j0b(), g0b) && f2.c != a.c) {
- return f2;
- }
- }
- return null;
- }
- function HDc(a) {
- var b, c2, d;
- for (c2 = new olb(a.p); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- if (b.k != (j0b(), h0b)) {
- continue;
- }
- d = b.o.b;
- a.i = $wnd.Math.min(a.i, d);
- a.g = $wnd.Math.max(a.g, d);
- }
- }
- function oEc(a, b, c2) {
- var d, e, f2;
- for (f2 = new olb(b); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 10);
- a.c[d.c.p][d.p].e = false;
- }
- for (e = new olb(b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- nEc(a, d, c2);
- }
- }
- function WOc(a, b, c2) {
- var d, e;
- d = vPc(b.j, c2.s, c2.c) + vPc(c2.e, b.s, b.c);
- e = vPc(c2.j, b.s, b.c) + vPc(b.e, c2.s, c2.c);
- if (d == e) {
- if (d > 0) {
- a.b += 2;
- a.a += d;
- }
- } else {
- a.b += 1;
- a.a += $wnd.Math.min(d, e);
- }
- }
- function Rpd(a, b) {
- var c2, d;
- d = false;
- if (ND(b)) {
- d = true;
- Qpd(a, new yC(GD(b)));
- }
- if (!d) {
- if (JD(b, 236)) {
- d = true;
- Qpd(a, (c2 = Kcb(BD(b, 236)), new TB(c2)));
- }
- }
- if (!d) {
- throw vbb(new vcb(Ute));
- }
- }
- function IMd(a, b, c2, d) {
- var e, f2, g;
- e = new pSd(a.e, 1, 10, (g = b.c, JD(g, 88) ? BD(g, 26) : (jGd(), _Fd)), (f2 = c2.c, JD(f2, 88) ? BD(f2, 26) : (jGd(), _Fd)), HLd(a, b), false);
- !d ? d = e : d.Ei(e);
- return d;
- }
- function T_b(a) {
- var b, c2;
- switch (BD(vNb(Q_b(a), (Nyc(), ixc)), 420).g) {
- case 0:
- b = a.n;
- c2 = a.o;
- return new f7c(b.a + c2.a / 2, b.b + c2.b / 2);
- case 1:
- return new g7c(a.n);
- default:
- return null;
- }
- }
- function lrc() {
- lrc = ccb;
- irc = new mrc(ane, 0);
- hrc = new mrc("LEFTUP", 1);
- krc = new mrc("RIGHTUP", 2);
- grc = new mrc("LEFTDOWN", 3);
- jrc = new mrc("RIGHTDOWN", 4);
- frc = new mrc("BALANCED", 5);
- }
- function FFc(a, b, c2) {
- var d, e, f2;
- d = Kdb(a.a[b.p], a.a[c2.p]);
- if (d == 0) {
- e = BD(vNb(b, (wtc(), Qsc)), 15);
- f2 = BD(vNb(c2, Qsc), 15);
- if (e.Hc(c2)) {
- return -1;
- } else if (f2.Hc(b)) {
- return 1;
- }
- }
- return d;
- }
- function jXc(a) {
- switch (a.g) {
- case 1:
- return new XVc();
- case 2:
- return new ZVc();
- case 3:
- return new VVc();
- case 0:
- return null;
- default:
- throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function Ikd(a, b, c2) {
- switch (b) {
- case 1:
- !a.n && (a.n = new cUd(D2, a, 1, 7));
- Uxd(a.n);
- !a.n && (a.n = new cUd(D2, a, 1, 7));
- ytd(a.n, BD(c2, 14));
- return;
- case 2:
- Lkd(a, GD(c2));
- return;
- }
- ekd(a, b, c2);
- }
- function Zkd(a, b, c2) {
- switch (b) {
- case 3:
- ald(a, Edb(ED(c2)));
- return;
- case 4:
- cld(a, Edb(ED(c2)));
- return;
- case 5:
- dld(a, Edb(ED(c2)));
- return;
- case 6:
- eld(a, Edb(ED(c2)));
- return;
- }
- Ikd(a, b, c2);
- }
- function Fnd(a, b, c2) {
- var d, e, f2;
- f2 = (d = new rUd(), d);
- e = xId(f2, b, null);
- !!e && e.Fi();
- pnd(f2, c2);
- wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), f2);
- AId(f2, 0);
- DId(f2, 1);
- CId(f2, true);
- BId(f2, true);
- }
- function mUd(a, b) {
- var c2, d, e;
- c2 = Crb(a.g, b);
- if (JD(c2, 235)) {
- e = BD(c2, 235);
- e.Qh() == null && void 0;
- return e.Nh();
- } else if (JD(c2, 498)) {
- d = BD(c2, 1938);
- e = d.b;
- return e;
- } else {
- return null;
- }
- }
- function Ui(a, b, c2, d) {
- var e, f2;
- Qb(b);
- Qb(c2);
- f2 = BD(tn(a.d, b), 19);
- Ob(!!f2, "Row %s not in %s", b, a.e);
- e = BD(tn(a.b, c2), 19);
- Ob(!!e, "Column %s not in %s", c2, a.c);
- return Wi(a, f2.a, e.a, d);
- }
- function JC(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l;
- k = e[f2];
- j = f2 == g - 1;
- h = j ? d : 0;
- l = LC(h, k);
- d != 10 && OC(GC(a, g - f2), b[f2], c2[f2], h, l);
- if (!j) {
- ++f2;
- for (i3 = 0; i3 < k; ++i3) {
- l[i3] = JC(a, b, c2, d, e, f2, g);
- }
- }
- return l;
- }
- function Eyd(b) {
- if (b.g == -1) {
- throw vbb(new Ydb());
- }
- b.mj();
- try {
- b.i.$c(b.g);
- b.f = b.i.j;
- b.g < b.e && --b.e;
- b.g = -1;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- throw vbb(new Apb());
- } else
- throw vbb(a);
- }
- }
- function hYb(a, b) {
- a.b.a = $wnd.Math.min(a.b.a, b.c);
- a.b.b = $wnd.Math.min(a.b.b, b.d);
- a.a.a = $wnd.Math.max(a.a.a, b.c);
- a.a.b = $wnd.Math.max(a.a.b, b.d);
- return a.c[a.c.length] = b, true;
- }
- function nZb(a) {
- var b, c2, d, e;
- e = -1;
- d = 0;
- for (c2 = new olb(a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 243);
- if (b.c == (KAc(), HAc)) {
- e = d == 0 ? 0 : d - 1;
- break;
- } else
- d == a.c.length - 1 && (e = d);
- d += 1;
- }
- return e;
- }
- function UZc(a) {
- var b, c2, d, e;
- e = 0;
- b = 0;
- for (d = new olb(a.c); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 33);
- dld(c2, a.e + e);
- eld(c2, a.f);
- e += c2.g + a.b;
- b = $wnd.Math.max(b, c2.f + a.b);
- }
- a.d = e - a.b;
- a.a = b - a.b;
- }
- function bEb(a) {
- var b, c2, d;
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- d = b.d.c;
- b.d.c = b.d.d;
- b.d.d = d;
- d = b.d.b;
- b.d.b = b.d.a;
- b.d.a = d;
- d = b.b.a;
- b.b.a = b.b.b;
- b.b.b = d;
- }
- RDb(a);
- }
- function BVb(a) {
- var b, c2, d;
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- d = b.g.c;
- b.g.c = b.g.d;
- b.g.d = d;
- d = b.g.b;
- b.g.b = b.g.a;
- b.g.a = d;
- d = b.e.a;
- b.e.a = b.e.b;
- b.e.b = d;
- }
- sVb(a);
- }
- function Lmc(a) {
- var b, c2, d, e, f2;
- f2 = Ec(a.k);
- for (c2 = (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- if (b != Scd && !f2.Hc(b)) {
- return b;
- }
- }
- return null;
- }
- function znc(a, b) {
- var c2, d;
- d = BD(Etb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Pnc()))), 11);
- if (d) {
- c2 = BD(Ikb(d.e, 0), 17);
- if (c2) {
- return BD(vNb(c2, (wtc(), Zsc)), 19).a;
- }
- }
- return yzc(a.b);
- }
- function CCc(a, b) {
- var c2, d, e, f2;
- for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- Blb(a.d);
- for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- zCc(a, e, c2.d.i);
- }
- }
- }
- function NZc(a, b) {
- var c2, d;
- Lkb(a.b, b);
- for (d = new olb(a.n); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 211);
- if (Jkb(c2.c, b, 0) != -1) {
- Lkb(c2.c, b);
- UZc(c2);
- c2.c.c.length == 0 && Lkb(a.n, c2);
- break;
- }
- }
- HZc(a);
- }
- function $Zc(a, b) {
- var c2, d, e, f2, g;
- g = a.f;
- e = 0;
- f2 = 0;
- for (d = new olb(a.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 187);
- OZc(c2, a.e, g);
- KZc(c2, b);
- f2 = $wnd.Math.max(f2, c2.r);
- g += c2.d + a.c;
- e = g;
- }
- a.d = f2;
- a.b = e;
- }
- function hVc(a) {
- var b, c2;
- c2 = $sd(a);
- if (Qq(c2)) {
- return null;
- } else {
- b = (Qb(c2), BD(mr(new Sr(ur(c2.a.Kc(), new Sq()))), 79));
- return atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
- }
- }
- function XId(a) {
- var b;
- if (!a.o) {
- b = a.Lj();
- b ? a.o = new dYd(a, a, null) : a.rk() ? a.o = new uVd(a, null) : $1d(q1d((O6d(), M6d), a)) == 1 ? a.o = new nYd(a) : a.o = new sYd(a, null);
- }
- return a.o;
- }
- function w6d(a, b, c2, d) {
- var e, f2, g, h, i3;
- if (c2.mh(b)) {
- e = (g = b, !g ? null : BD(d, 49).xh(g));
- if (e) {
- i3 = c2.ah(b);
- h = b.t;
- if (h > 1 || h == -1) {
- f2 = BD(i3, 15);
- e.Wb(t6d(a, f2));
- } else {
- e.Wb(s6d(a, BD(i3, 56)));
- }
- }
- }
- }
- function Zbb(b, c2, d, e) {
- Ybb();
- var f2 = Wbb;
- function g() {
- for (var a = 0; a < f2.length; a++) {
- f2[a]();
- }
- }
- if (b) {
- try {
- Ihe(g)();
- } catch (a) {
- b(c2, a);
- }
- } else {
- Ihe(g)();
- }
- }
- function Kgc(a) {
- var b, c2, d, e, f2;
- for (d = new nib(new eib(a.b).a); d.b; ) {
- c2 = lib(d);
- b = BD(c2.cd(), 10);
- f2 = BD(BD(c2.dd(), 46).a, 10);
- e = BD(BD(c2.dd(), 46).b, 8);
- P6c(X6c(b.n), P6c(R6c(f2.n), e));
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
}
- }
- function llc(a) {
- switch (BD(vNb(a.b, (Nyc(), Vwc)), 375).g) {
- case 1:
- MAb(NAb(LAb(new YAb(null, new Kub(a.d, 16)), new Glc()), new Ilc()), new Klc());
- break;
- case 2:
- nlc(a);
- break;
- case 0:
- mlc(a);
- }
- }
- function KXc(a, b, c2) {
- var d;
- Odd(c2, "Straight Line Edge Routing", 1);
- c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
- d = BD(hkd(b, (MUc(), LUc)), 33);
- LXc(a, d);
- c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
- }
- function i8c() {
- i8c = ccb;
- h8c = new j8c("V_TOP", 0);
- g8c = new j8c("V_CENTER", 1);
- f8c = new j8c("V_BOTTOM", 2);
- d8c = new j8c("H_LEFT", 3);
- c8c = new j8c("H_CENTER", 4);
- e8c = new j8c("H_RIGHT", 5);
- }
- function gLd(a) {
- var b;
- if ((a.Db & 64) != 0)
- return mKd(a);
- b = new Jfb(mKd(a));
- b.a += " (abstract: ";
- Ffb(b, (a.Bb & 256) != 0);
- b.a += ", interface: ";
- Ffb(b, (a.Bb & 512) != 0);
- b.a += ")";
- return b.a;
- }
- function l3d(a, b, c2, d) {
- var e, f2, g, h;
- if (oid(a.e)) {
- e = b.ak();
- h = b.dd();
- f2 = c2.dd();
- g = H2d(a, 1, e, h, f2, e.$j() ? M2d(a, e, f2, JD(e, 99) && (BD(e, 18).Bb & Tje) != 0) : -1, true);
- d ? d.Ei(g) : d = g;
- }
- return d;
- }
- function kz(a) {
- var b;
- if (a.c == null) {
- b = PD(a.b) === PD(iz) ? null : a.b;
- a.d = b == null ? Xhe : MD(b) ? nz(FD(b)) : ND(b) ? Vie : hdb(rb(b));
- a.a = a.a + ": " + (MD(b) ? mz(FD(b)) : b + "");
- a.c = "(" + a.d + ") " + a.a;
- }
- }
- function Wgb(a, b) {
- this.e = a;
- if (Bbb(xbb(b, -4294967296), 0)) {
- this.d = 1;
- this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b)]);
- } else {
- this.d = 2;
- this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b), Tbb(Obb(b, 32))]);
- }
- }
- function yrb() {
- function b() {
- try {
- return (/* @__PURE__ */ new Map()).entries().next().done;
- } catch (a) {
- return false;
- }
- }
- if (typeof Map === Nhe && Map.prototype.entries && b()) {
- return Map;
- } else {
- return zrb();
- }
- }
- function VPc(a, b) {
- var c2, d, e, f2;
- f2 = new Bib(a.e, 0);
- c2 = 0;
- while (f2.b < f2.d.gc()) {
- d = Edb((sCb(f2.b < f2.d.gc()), ED(f2.d.Xb(f2.c = f2.b++))));
- e = d - b;
- if (e > Oqe) {
- return c2;
- } else
- e > -1e-6 && ++c2;
- }
- return c2;
- }
- function PQd(a, b) {
- var c2;
- if (b != a.b) {
- c2 = null;
- !!a.b && (c2 = lid(a.b, a, -4, c2));
- !!b && (c2 = kid(b, a, -4, c2));
- c2 = GQd(a, b, c2);
- !!c2 && c2.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
- }
- function SQd(a, b) {
- var c2;
- if (b != a.f) {
- c2 = null;
- !!a.f && (c2 = lid(a.f, a, -1, c2));
- !!b && (c2 = kid(b, a, -1, c2));
- c2 = IQd(a, b, c2);
- !!c2 && c2.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, b, b));
- }
- function E9d(a) {
- var b, c2, d;
- if (a == null)
- return null;
- c2 = BD(a, 15);
- if (c2.dc())
- return "";
- d = new Hfb();
- for (b = c2.Kc(); b.Ob(); ) {
- Efb(d, (Q8d(), GD(b.Pb())));
- d.a += " ";
- }
- return lcb(d, d.a.length - 1);
- }
- function I9d(a) {
- var b, c2, d;
- if (a == null)
- return null;
- c2 = BD(a, 15);
- if (c2.dc())
- return "";
- d = new Hfb();
- for (b = c2.Kc(); b.Ob(); ) {
- Efb(d, (Q8d(), GD(b.Pb())));
- d.a += " ";
- }
- return lcb(d, d.a.length - 1);
- }
- function qEc(a, b, c2) {
- var d, e;
- d = a.c[b.c.p][b.p];
- e = a.c[c2.c.p][c2.p];
- if (d.a != null && e.a != null) {
- return Ddb(d.a, e.a);
- } else if (d.a != null) {
- return -1;
- } else if (e.a != null) {
- return 1;
- }
- return 0;
- }
- function zqd(a, b) {
- var c2, d, e, f2, g, h;
- if (b) {
- f2 = b.a.length;
- c2 = new Yge(f2);
- for (h = (c2.b - c2.a) * c2.c < 0 ? (Xge(), Wge) : new she(c2); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- e = Zpd(b, g.a);
- d = new Crd(a);
- Aqd(d.a, e);
- }
- }
- }
- function Qqd(a, b) {
- var c2, d, e, f2, g, h;
- if (b) {
- f2 = b.a.length;
- c2 = new Yge(f2);
- for (h = (c2.b - c2.a) * c2.c < 0 ? (Xge(), Wge) : new she(c2); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- e = Zpd(b, g.a);
- d = new lrd(a);
- nqd(d.a, e);
- }
- }
- }
- function eFd(b) {
- var c2;
- if (b != null && b.length > 0 && bfb(b, b.length - 1) == 33) {
- try {
- c2 = PEd(qfb(b, 0, b.length - 1));
- return c2.e == null;
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 32))
- throw vbb(a);
- }
- }
- return false;
- }
- function h3d(a, b, c2) {
- var d, e, f2;
- d = b.ak();
- f2 = b.dd();
- e = d.$j() ? H2d(a, 3, d, null, f2, M2d(a, d, f2, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, 1, d, d.zj(), f2, -1, true);
- c2 ? c2.Ei(e) : c2 = e;
- return c2;
- }
- function Vee() {
- var a, b, c2;
- b = 0;
- for (a = 0; a < "X".length; a++) {
- c2 = Uee((BCb(a, "X".length), "X".charCodeAt(a)));
- if (c2 == 0)
- throw vbb(new mde("Unknown Option: " + "X".substr(a)));
- b |= c2;
- }
- return b;
- }
- function mZb(a, b, c2) {
- var d, e, f2;
- d = Q_b(b);
- e = a_b(d);
- f2 = new H0b();
- F0b(f2, b);
- switch (c2.g) {
+ switch (action[0]) {
case 1:
- G0b(f2, Wcd(Zcd(e)));
- break;
- case 2:
- G0b(f2, Zcd(e));
- }
- yNb(f2, (Nyc(), Uxc), ED(vNb(a, Uxc)));
- return f2;
- }
- function U9b(a) {
- var b, c2;
- b = BD(Rr(new Sr(ur(R_b(a.a).a.Kc(), new Sq()))), 17);
- c2 = BD(Rr(new Sr(ur(U_b(a.a).a.Kc(), new Sq()))), 17);
- return Ccb(DD(vNb(b, (wtc(), ltc)))) || Ccb(DD(vNb(c2, ltc)));
- }
- function Xjc() {
- Xjc = ccb;
- Tjc = new Yjc("ONE_SIDE", 0);
- Vjc = new Yjc("TWO_SIDES_CORNER", 1);
- Wjc = new Yjc("TWO_SIDES_OPPOSING", 2);
- Ujc = new Yjc("THREE_SIDES", 3);
- Sjc = new Yjc("FOUR_SIDES", 4);
- }
- function jkc(a, b, c2, d, e) {
- var f2, g;
- f2 = BD(GAb(JAb(b.Oc(), new _kc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- g = BD(Si(a.b, c2, d), 15);
- e == 0 ? g.Wc(0, f2) : g.Gc(f2);
- }
- function KDc(a, b) {
- var c2, d, e, f2, g;
- for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- for (d = new Sr(ur(R_b(e).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- g = c2.c.i.p;
- a.n[g] = a.n[g] - 1;
- }
- }
- }
- function cnc(a, b) {
- var c2, d, e, f2, g;
- for (f2 = new olb(b.d); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 101);
- g = BD(Ohb(a.c, e), 112).o;
- for (d = new Gqb(e.b); d.a < d.c.a.length; ) {
- c2 = BD(Fqb(d), 61);
- ojc(e, c2, g);
- }
- }
- }
- function HJc(a) {
- var b, c2;
- for (c2 = new olb(a.e.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 29);
- YJc(a, b);
- }
- MAb(JAb(LAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new YKc()), new tLc()), new vLc()), new xLc(a));
- }
- function Qwd(a, b) {
- if (!b) {
- return false;
- } else {
- if (a.Di(b)) {
- return false;
- }
- if (!a.i) {
- if (JD(b, 143)) {
- a.i = BD(b, 143);
- return true;
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
} else {
- a.i = new Hxd();
- return a.i.Ei(b);
- }
- } else {
- return a.i.Ei(b);
- }
- }
- }
- function B9d(a) {
- a = Qge(a, true);
- if (dfb(kse, a) || dfb("1", a)) {
- return Bcb(), Acb;
- } else if (dfb(lse, a) || dfb("0", a)) {
- return Bcb(), zcb;
- }
- throw vbb(new n8d("Invalid boolean value: '" + a + "'"));
- }
- function Kd(a, b, c2) {
- var d, e, f2;
- for (e = a.vc().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 42);
- f2 = d.cd();
- if (PD(b) === PD(f2) || b != null && pb(b, f2)) {
- if (c2) {
- d = new pjb(d.cd(), d.dd());
- e.Qb();
- }
- return d;
- }
- }
- return null;
- }
- function dKb(a) {
- $Jb();
- var b, c2, d;
- if (!a.B.Hc((Idd(), Add))) {
- return;
- }
- d = a.f.i;
- b = new K6c(a.a.c);
- c2 = new p0b();
- c2.b = b.c - d.c;
- c2.d = b.d - d.d;
- c2.c = d.c + d.b - (b.c + b.b);
- c2.a = d.d + d.a - (b.d + b.a);
- a.e.Ff(c2);
- }
- function LNb(a, b, c2, d) {
- var e, f2, g;
- g = $wnd.Math.min(c2, ONb(BD(a.b, 65), b, c2, d));
- for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 221);
- e != b && (g = $wnd.Math.min(g, LNb(e, b, g, d)));
- }
- return g;
- }
- function WZb(a) {
- var b, c2, d, e;
- e = KC(OQ, nie, 193, a.b.c.length, 0, 2);
- d = new Bib(a.b, 0);
- while (d.b < d.d.gc()) {
- b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 29));
- c2 = d.b - 1;
- e[c2] = l_b(b.a);
- }
- return e;
- }
- function K3b(a, b, c2, d, e) {
- var f2, g, h, i3;
- g = eLb(dLb(iLb(H3b(c2)), d), C3b(a, c2, e));
- for (i3 = Y_b(a, c2).Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 11);
- if (b[h.p]) {
- f2 = b[h.p].i;
- Ekb(g.d, new BLb(f2, bLb(g, f2)));
- }
- }
- cLb(g);
- }
- function sic(a, b) {
- this.f = new Lqb();
- this.b = new Lqb();
- this.j = new Lqb();
- this.a = a;
- this.c = b;
- this.c > 0 && ric(this, this.c - 1, (Ucd(), zcd));
- this.c < this.a.length - 1 && ric(this, this.c + 1, (Ucd(), Tcd));
- }
- function SEc(a) {
- a.length > 0 && a[0].length > 0 && (this.c = Ccb(DD(vNb(Q_b(a[0][0]), (wtc(), Rsc)))));
- this.a = KC(CX, nie, 2018, a.length, 0, 2);
- this.b = KC(FX, nie, 2019, a.length, 0, 2);
- this.d = new ss();
- }
- function tKc(a) {
- if (a.c.length == 0) {
- return false;
- }
- if ((tCb(0, a.c.length), BD(a.c[0], 17)).c.i.k == (j0b(), g0b)) {
- return true;
- }
- return FAb(NAb(new YAb(null, new Kub(a, 16)), new wKc()), new yKc());
- }
- function rRc(a, b, c2) {
- Odd(c2, "Tree layout", 1);
- H2c(a.b);
- K2c(a.b, (yRc(), uRc), uRc);
- K2c(a.b, vRc, vRc);
- K2c(a.b, wRc, wRc);
- K2c(a.b, xRc, xRc);
- a.a = F2c(a.b, b);
- sRc(a, b, Udd(c2, 1));
- Qdd(c2);
- return b;
- }
- function HXc(a, b) {
- var c2, d, e, f2, g, h, i3;
- h = gVc(b);
- f2 = b.f;
- i3 = b.g;
- g = $wnd.Math.sqrt(f2 * f2 + i3 * i3);
- e = 0;
- for (d = new olb(h); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 33);
- e += HXc(a, c2);
- }
- return $wnd.Math.max(e, g);
- }
- function dcd() {
- dcd = ccb;
- ccd = new gcd(ole, 0);
- bcd = new gcd("FREE", 1);
- acd = new gcd("FIXED_SIDE", 2);
- Zbd = new gcd("FIXED_ORDER", 3);
- _bd = new gcd("FIXED_RATIO", 4);
- $bd = new gcd("FIXED_POS", 5);
- }
- function c1d(a, b) {
- var c2, d, e;
- c2 = b.Hh(a.a);
- if (c2) {
- e = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Cwe));
- for (d = 1; d < (O6d(), N6d).length; ++d) {
- if (dfb(N6d[d], e)) {
- return d;
- }
- }
- }
- return 0;
- }
- function Qlb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- uwb(f2, "" + b);
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function Wlb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- uwb(f2, "" + b);
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function Md(a) {
- var b, c2, d;
- d = new xwb(She, "{", "}");
- for (c2 = a.vc().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 42);
- uwb(d, Nd(a, b.cd()) + "=" + Nd(a, b.dd()));
- }
- return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e);
- }
- function EGb(a) {
- var b, c2, d, e;
- while (!akb(a.o)) {
- c2 = BD(fkb(a.o), 46);
- d = BD(c2.a, 121);
- b = BD(c2.b, 213);
- e = xFb(b, d);
- if (b.e == d) {
- NFb(e.g, b);
- d.e = e.e + b.a;
- } else {
- NFb(e.b, b);
- d.e = e.e - b.a;
- }
- Ekb(a.e.a, d);
- }
- }
- function F6b(a, b) {
- var c2, d, e;
- c2 = null;
- for (e = BD(b.Kb(a), 20).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 17);
- if (!c2) {
- c2 = d.c.i == a ? d.d.i : d.c.i;
- } else {
- if ((d.c.i == a ? d.d.i : d.c.i) != c2) {
- return false;
- }
- }
- }
- return true;
- }
- function uPc(a, b) {
- var c2, d, e, f2, g;
- c2 = WNc(a, false, b);
- for (e = new olb(c2); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 129);
- d.d == 0 ? (BOc(d, null), COc(d, null)) : (f2 = d.a, g = d.b, BOc(d, g), COc(d, f2), void 0);
- }
- }
- function qQc(a) {
- var b, c2;
- b = new j3c();
- d3c(b, cQc);
- c2 = BD(vNb(a, (wtc(), Ksc)), 21);
- c2.Hc((Orc(), Nrc)) && d3c(b, gQc);
- c2.Hc(Erc) && d3c(b, dQc);
- c2.Hc(Lrc) && d3c(b, fQc);
- c2.Hc(Grc) && d3c(b, eQc);
- return b;
- }
- function Xac(a) {
- var b, c2, d, e;
- Wac(a);
- for (c2 = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- d = b.c.i == a;
- e = d ? b.d : b.c;
- d ? RZb(b, null) : QZb(b, null);
- yNb(b, (wtc(), ctc), e);
- _ac(a, e.i);
- }
- }
- function wmc(a, b, c2, d) {
- var e, f2;
- f2 = b.i;
- e = c2[f2.g][a.d[f2.g]];
- switch (f2.g) {
- case 1:
- e -= d + b.j.b;
- b.g.b = e;
- break;
- case 3:
- e += d;
- b.g.b = e;
- break;
- case 4:
- e -= d + b.j.a;
- b.g.a = e;
- break;
- case 2:
- e += d;
- b.g.a = e;
- }
- }
- function aVc(a) {
- var b, c2, d;
- for (c2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 33);
- d = $sd(b);
- if (!Qr(new Sr(ur(d.a.Kc(), new Sq())))) {
- return b;
- }
- }
- return null;
- }
- function Cod() {
- var a;
- if (yod)
- return BD(nUd((yFd(), xFd), yte), 2016);
- a = BD(JD(Phb((yFd(), xFd), yte), 555) ? Phb(xFd, yte) : new Bod(), 555);
- yod = true;
- zod(a);
- Aod(a);
- Tnd(a);
- Shb(xFd, yte, a);
- return a;
- }
- function t3d(a, b, c2) {
- var d, e;
- if (a.j == 0)
- return c2;
- e = BD(LLd(a, b, c2), 72);
- d = c2.ak();
- if (!d.Ij() || !a.a.rl(d)) {
- throw vbb(new hz("Invalid entry feature '" + d.Hj().zb + "." + d.ne() + "'"));
- }
- return e;
- }
- function Qi(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- for (h = a.a, i3 = 0, j = h.length; i3 < j; ++i3) {
- g = h[i3];
- for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- if (PD(b) === PD(c2) || b != null && pb(b, c2)) {
- return true;
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
}
- }
- }
- return false;
- }
- function qhb(a) {
- var b, c2, d;
- if (ybb(a, 0) >= 0) {
- c2 = Abb(a, Jje);
- d = Hbb(a, Jje);
- } else {
- b = Pbb(a, 1);
- c2 = Abb(b, 5e8);
- d = Hbb(b, 5e8);
- d = wbb(Nbb(d, 1), xbb(a, 1));
- }
- return Mbb(Nbb(d, 32), xbb(c2, Yje));
- }
- function oQb(a, b, c2) {
- var d, e;
- d = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 8));
- switch (c2.g) {
- case 0:
- d.b = 0;
break;
case 2:
- d.b = a.f;
- break;
- case 3:
- d.a = 0;
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
break;
- default:
- d.a = a.g;
- }
- e = Jsb(b, 0);
- Vsb(e, d);
- return b;
- }
- function pmc(a, b, c2, d) {
- var e, f2, g, h, i3;
- i3 = a.b;
- f2 = b.d;
- g = f2.j;
- h = umc(g, i3.d[g.g], c2);
- e = P6c(R6c(f2.n), f2.a);
- switch (f2.j.g) {
- case 1:
case 3:
- h.a += e.a;
- break;
- case 2:
- case 4:
- h.b += e.b;
- }
- Gsb(d, h, d.c.b, d.c);
- }
- function yJc(a, b, c2) {
- var d, e, f2, g;
- g = Jkb(a.e, b, 0);
- f2 = new zJc();
- f2.b = c2;
- d = new Bib(a.e, g);
- while (d.b < d.d.gc()) {
- e = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 10));
- e.p = c2;
- Ekb(f2.e, e);
- uib(d);
- }
- return f2;
- }
- function sYc(a, b, c2, d) {
- var e, f2, g, h, i3;
- e = null;
- f2 = 0;
- for (h = new olb(b); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 33);
- i3 = g.i + g.g;
- if (a < g.j + g.f + d) {
- !e ? e = g : c2.i - i3 < c2.i - f2 && (e = g);
- f2 = e.i + e.g;
- }
- }
- return !e ? 0 : f2 + d;
- }
- function tYc(a, b, c2, d) {
- var e, f2, g, h, i3;
- f2 = null;
- e = 0;
- for (h = new olb(b); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 33);
- i3 = g.j + g.f;
- if (a < g.i + g.g + d) {
- !f2 ? f2 = g : c2.j - i3 < c2.j - e && (f2 = g);
- e = f2.j + f2.f;
- }
- }
- return !f2 ? 0 : e + d;
- }
- function mA(a) {
- var b, c2, d;
- b = false;
- d = a.b.c.length;
- for (c2 = 0; c2 < d; c2++) {
- if (nA(BD(Ikb(a.b, c2), 434))) {
- if (!b && c2 + 1 < d && nA(BD(Ikb(a.b, c2 + 1), 434))) {
- b = true;
- BD(Ikb(a.b, c2), 434).a = true;
- }
- } else {
- b = false;
- }
- }
- }
- function Ahb(a, b, c2, d, e) {
- var f2, g;
- f2 = 0;
- for (g = 0; g < e; g++) {
- f2 = wbb(f2, Qbb(xbb(b[g], Yje), xbb(d[g], Yje)));
- a[g] = Tbb(f2);
- f2 = Obb(f2, 32);
- }
- for (; g < c2; g++) {
- f2 = wbb(f2, xbb(b[g], Yje));
- a[g] = Tbb(f2);
- f2 = Obb(f2, 32);
- }
- }
- function Jhb(a, b) {
- Dhb();
- var c2, d;
- d = (Hgb(), Cgb);
- c2 = a;
- for (; b > 1; b >>= 1) {
- (b & 1) != 0 && (d = Ogb(d, c2));
- c2.d == 1 ? c2 = Ogb(c2, c2) : c2 = new Xgb(Lhb(c2.a, c2.d, KC(WD, oje, 25, c2.d << 1, 15, 1)));
- }
- d = Ogb(d, c2);
- return d;
- }
- function zub() {
- zub = ccb;
- var a, b, c2, d;
- wub = KC(UD, Vje, 25, 25, 15, 1);
- xub = KC(UD, Vje, 25, 33, 15, 1);
- d = 152587890625e-16;
- for (b = 32; b >= 0; b--) {
- xub[b] = d;
- d *= 0.5;
- }
- c2 = 1;
- for (a = 24; a >= 0; a--) {
- wub[a] = c2;
- c2 *= 0.5;
- }
- }
- function S1b(a) {
- var b, c2;
- if (Ccb(DD(hkd(a, (Nyc(), fxc))))) {
- for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 79);
- if (Qld(b)) {
- if (Ccb(DD(hkd(b, gxc)))) {
- return true;
- }
- }
- }
+ return true;
}
- return false;
}
- function kjc(a, b) {
- var c2, d, e;
- if (Qqb(a.f, b)) {
- b.b = a;
- d = b.c;
- Jkb(a.j, d, 0) != -1 || Ekb(a.j, d);
- e = b.d;
- Jkb(a.j, e, 0) != -1 || Ekb(a.j, e);
- c2 = b.a.b;
- if (c2.c.length != 0) {
- !a.i && (a.i = new vjc(a));
- qjc(a.i, c2);
- }
- }
- }
- function rmc(a) {
- var b, c2, d, e, f2;
- c2 = a.c.d;
- d = c2.j;
- e = a.d.d;
- f2 = e.j;
- if (d == f2) {
- return c2.p < e.p ? 0 : 1;
- } else if (Xcd(d) == f2) {
- return 0;
- } else if (Vcd(d) == f2) {
- return 1;
- } else {
- b = a.b;
- return uqb(b.b, Xcd(d)) ? 0 : 1;
- }
- }
- function lzc() {
- lzc = ccb;
- jzc = new nzc(Aqe, 0);
- hzc = new nzc("LONGEST_PATH", 1);
- fzc = new nzc("COFFMAN_GRAHAM", 2);
- gzc = new nzc(Tne, 3);
- kzc = new nzc("STRETCH_WIDTH", 4);
- izc = new nzc("MIN_WIDTH", 5);
- }
- function E3c(a) {
- var b;
- this.d = new Lqb();
- this.c = a.c;
- this.e = a.d;
- this.b = a.b;
- this.f = new jgd(a.e);
- this.a = a.a;
- !a.f ? this.g = (b = BD(gdb(O3), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.g = a.f;
- }
- function grd(a, b) {
- var c2, d, e, f2, g, h;
- e = a;
- g = $pd(e, "layoutOptions");
- !g && (g = $pd(e, Dte));
- if (g) {
- h = g;
- d = null;
- !!h && (d = (f2 = $B(h, KC(ZI, nie, 2, 0, 6, 1)), new mC(h, f2)));
- if (d) {
- c2 = new Drd(h, b);
- reb(d, c2);
- }
- }
- }
- function atd(a) {
- if (JD(a, 239)) {
- return BD(a, 33);
- } else if (JD(a, 186)) {
- return mpd(BD(a, 118));
- } else if (!a) {
- throw vbb(new Heb(gue));
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
} else {
- throw vbb(new cgb("Only support nodes and ports."));
- }
- }
- function CA(a, b, c2, d) {
- if (b >= 0 && dfb(a.substr(b, "GMT".length), "GMT")) {
- c2[0] = b + 3;
- return tA(a, c2, d);
- }
- if (b >= 0 && dfb(a.substr(b, "UTC".length), "UTC")) {
- c2[0] = b + 3;
- return tA(a, c2, d);
- }
- return tA(a, c2, d);
- }
- function tjc(a, b) {
- var c2, d, e, f2, g;
- f2 = a.g.a;
- g = a.g.b;
- for (d = new olb(a.d); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 70);
- e = c2.n;
- e.a = f2;
- a.i == (Ucd(), Acd) ? e.b = g + a.j.b - c2.o.b : e.b = g;
- P6c(e, b);
- f2 += c2.o.a + a.e;
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- }
- function Odd(a, b, c2) {
- if (a.b) {
- throw vbb(new Zdb("The task is already done."));
- } else if (a.p != null) {
- return false;
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
} else {
- a.p = b;
- a.r = c2;
- a.k && (a.o = (Zfb(), Ibb(Cbb(Date.now()), _ie)));
- return true;
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- }
- function hsd(a) {
- var b, c2, d, e, f2, g, h;
- h = new eC();
- c2 = a.tg();
- e = c2 != null;
- e && Upd(h, Vte, a.tg());
- d = a.ne();
- f2 = d != null;
- f2 && Upd(h, fue, a.ne());
- b = a.sg();
- g = b != null;
- g && Upd(h, "description", a.sg());
- return h;
- }
- function uId(a, b, c2) {
- var d, e, f2;
- f2 = a.q;
- a.q = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- e = new nSd(a, 1, 9, f2, b);
- !c2 ? c2 = e : c2.Ei(e);
- }
- if (!b) {
- !!a.r && (c2 = a.nk(null, c2));
- } else {
- d = b.c;
- d != a.r && (c2 = a.nk(d, c2));
- }
- return c2;
- }
- function IYd(a, b, c2) {
- var d, e, f2, g, h;
- c2 = (h = b, kid(h, a.e, -1 - a.c, c2));
- g = AYd(a.a);
- for (f2 = (d = new nib(new eib(g.a).a), new ZYd(d)); f2.a.b; ) {
- e = BD(lib(f2.a).cd(), 87);
- c2 = QQd(e, MQd(e, a.a), c2);
- }
- return c2;
- }
- function JYd(a, b, c2) {
- var d, e, f2, g, h;
- c2 = (h = b, lid(h, a.e, -1 - a.c, c2));
- g = AYd(a.a);
- for (f2 = (d = new nib(new eib(g.a).a), new ZYd(d)); f2.a.b; ) {
- e = BD(lib(f2.a).cd(), 87);
- c2 = QQd(e, MQd(e, a.a), c2);
- }
- return c2;
- }
- function jhb(a, b, c2, d) {
- var e, f2, g;
- if (d == 0) {
- $fb(b, 0, a, c2, a.length - c2);
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
} else {
- g = 32 - d;
- a[a.length - 1] = 0;
- for (f2 = a.length - 1; f2 > c2; f2--) {
- a[f2] |= b[f2 - c2 - 1] >>> g;
- a[f2 - 1] = b[f2 - c2 - 1] << d;
- }
- }
- for (e = 0; e < c2; e++) {
- a[e] = 0;
- }
- }
- function LJb(a) {
- var b, c2, d, e, f2;
- b = 0;
- c2 = 0;
- for (f2 = a.Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 111);
- b = $wnd.Math.max(b, d.d.b);
- c2 = $wnd.Math.max(c2, d.d.c);
- }
- for (e = a.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 111);
- d.d.b = b;
- d.d.c = c2;
- }
- }
- function TKb(a) {
- var b, c2, d, e, f2;
- c2 = 0;
- b = 0;
- for (f2 = a.Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 111);
- c2 = $wnd.Math.max(c2, d.d.d);
- b = $wnd.Math.max(b, d.d.a);
- }
- for (e = a.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 111);
- d.d.d = c2;
- d.d.a = b;
- }
- }
- function rpc(a, b) {
- var c2, d, e, f2;
- f2 = new Rkb();
- e = 0;
- d = b.Kc();
- while (d.Ob()) {
- c2 = meb(BD(d.Pb(), 19).a + e);
- while (c2.a < a.f && !Voc(a, c2.a)) {
- c2 = meb(c2.a + 1);
- ++e;
- }
- if (c2.a >= a.f) {
- break;
- }
- f2.c[f2.c.length] = c2;
- }
- return f2;
- }
- function sfd(a) {
- var b, c2, d, e;
- b = null;
- for (e = new olb(a.wf()); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 181);
- c2 = new J6c(d.qf().a, d.qf().b, d.rf().a, d.rf().b);
- !b ? b = c2 : H6c(b, c2);
- }
- !b && (b = new I6c());
- return b;
- }
- function Fkd(a, b, c2, d) {
- var e, f2;
- if (c2 == 1) {
- return !a.n && (a.n = new cUd(D2, a, 1, 7)), Sxd(a.n, b, d);
- }
- return f2 = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c2), 66), f2.Nj().Qj(a, yjd(a), c2 - aLd(a.zh()), b, d);
- }
- function iud(a, b, c2) {
- var d, e, f2, g, h;
- d = c2.gc();
- a.qi(a.i + d);
- h = a.i - b;
- h > 0 && $fb(a.g, b, a.g, b + d, h);
- g = c2.Kc();
- a.i += d;
- for (e = 0; e < d; ++e) {
- f2 = g.Pb();
- mud(a, b, a.oi(b, f2));
- a.bi(b, f2);
- a.ci();
- ++b;
- }
- return d != 0;
- }
- function xId(a, b, c2) {
- var d;
- if (b != a.q) {
- !!a.q && (c2 = lid(a.q, a, -10, c2));
- !!b && (c2 = kid(b, a, -10, c2));
- c2 = uId(a, b, c2);
- } else if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- d = new nSd(a, 1, 9, b, b);
- !c2 ? c2 = d : c2.Ei(d);
- }
- return c2;
- }
- function Yj(a, b, c2, d) {
- Mb((c2 & oie) == 0, "flatMap does not support SUBSIZED characteristic");
- Mb((c2 & 4) == 0, "flatMap does not support SORTED characteristic");
- Qb(a);
- Qb(b);
- return new jk(a, c2, d, b);
- }
- function Qy(a, b) {
- vCb(b, "Cannot suppress a null exception.");
- mCb(b != a, "Exception can not suppress itself.");
- if (a.i) {
- return;
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- a.k == null ? a.k = OC(GC(_I, 1), nie, 78, 0, [b]) : a.k[a.k.length] = b;
- }
- function oA(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- g = c2.length;
- f2 = 0;
- e = -1;
- j = sfb(a.substr(b), (ntb(), ltb));
- for (h = 0; h < g; ++h) {
- i3 = c2[h].length;
- if (i3 > f2 && nfb(j, sfb(c2[h], ltb))) {
- e = h;
- f2 = i3;
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
}
}
- e >= 0 && (d[0] = b + f2);
- return e;
- }
- function MIb(a, b) {
- var c2;
- c2 = NIb(a.b.Hf(), b.b.Hf());
- if (c2 != 0) {
- return c2;
- }
- switch (a.b.Hf().g) {
- case 1:
- case 2:
- return beb(a.b.sf(), b.b.sf());
- case 3:
- case 4:
- return beb(b.b.sf(), a.b.sf());
- }
- return 0;
- }
- function iRb(a) {
- var b, c2, d;
- d = a.e.c.length;
- a.a = IC(WD, [nie, oje], [48, 25], 15, [d, d], 2);
- for (c2 = new olb(a.c); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 282);
- a.a[b.c.b][b.d.b] += BD(vNb(b, (wSb(), oSb)), 19).a;
- }
- }
- function H1c(a, b, c2) {
- Odd(c2, "Grow Tree", 1);
- a.b = b.f;
- if (Ccb(DD(vNb(b, (XNb(), VNb))))) {
- a.c = new tOb();
- D1c(a, null);
- } else {
- a.c = new tOb();
- }
- a.a = false;
- F1c(a, b.f);
- yNb(b, WNb, (Bcb(), a.a ? true : false));
- Qdd(c2);
- }
- function Umd(a, b) {
- var c2, d, e, f2, g;
- if (a == null) {
- return null;
- } else {
- g = KC(TD, $ie, 25, 2 * b, 15, 1);
- for (d = 0, e = 0; d < b; ++d) {
- c2 = a[d] >> 4 & 15;
- f2 = a[d] & 15;
- g[e++] = Qmd[c2];
- g[e++] = Qmd[f2];
- }
- return zfb(g, 0, g.length);
- }
- }
- function j3d(a, b, c2) {
- var d, e, f2;
- d = b.ak();
- f2 = b.dd();
- e = d.$j() ? H2d(a, 4, d, f2, null, M2d(a, d, f2, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, d.Kj() ? 2 : 1, d, f2, d.zj(), -1, true);
- c2 ? c2.Ei(e) : c2 = e;
- return c2;
- }
- function wfb(a) {
- var b, c2;
- if (a >= Tje) {
- b = Uje + (a - Tje >> 10 & 1023) & aje;
- c2 = 56320 + (a - Tje & 1023) & aje;
- return String.fromCharCode(b) + ("" + String.fromCharCode(c2));
- } else {
- return String.fromCharCode(a & aje);
- }
- }
- function bKb(a, b) {
- $Jb();
- var c2, d, e, f2;
- e = BD(BD(Qc(a.r, b), 21), 84);
- if (e.gc() >= 2) {
- d = BD(e.Kc().Pb(), 111);
- c2 = a.u.Hc((rcd(), mcd));
- f2 = a.u.Hc(qcd);
- return !d.a && !c2 && (e.gc() == 2 || f2);
- } else {
- return false;
- }
- }
- function IVc(a, b, c2, d, e) {
- var f2, g, h;
- f2 = JVc(a, b, c2, d, e);
- h = false;
- while (!f2) {
- AVc(a, e, true);
- h = true;
- f2 = JVc(a, b, c2, d, e);
- }
- h && AVc(a, e, false);
- g = dVc(e);
- if (g.c.length != 0) {
- !!a.d && a.d.lg(g);
- IVc(a, e, c2, d, g);
- }
- }
- function Mad() {
- Mad = ccb;
- Kad = new Nad(ane, 0);
- Iad = new Nad("DIRECTED", 1);
- Lad = new Nad("UNDIRECTED", 2);
- Gad = new Nad("ASSOCIATION", 3);
- Jad = new Nad("GENERALIZATION", 4);
- Had = new Nad("DEPENDENCY", 5);
- }
- function kfd(a, b) {
- var c2;
- if (!mpd(a)) {
- throw vbb(new Zdb(Sse));
- }
- c2 = mpd(a);
- switch (b.g) {
- case 1:
- return -(a.j + a.f);
- case 2:
- return a.i - c2.g;
- case 3:
- return a.j - c2.f;
- case 4:
- return -(a.i + a.g);
- }
- return 0;
- }
- function cub(a, b) {
- var c2, d;
- uCb(b);
- d = a.b.c.length;
- Ekb(a.b, b);
- while (d > 0) {
- c2 = d;
- d = (d - 1) / 2 | 0;
- if (a.a.ue(Ikb(a.b, d), b) <= 0) {
- Nkb(a.b, c2, b);
- return true;
- }
- Nkb(a.b, c2, Ikb(a.b, d));
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- Nkb(a.b, d, b);
- return true;
- }
- function BHb(a, b, c2, d) {
- var e, f2;
- e = 0;
- if (!c2) {
- for (f2 = 0; f2 < sHb; f2++) {
- e = $wnd.Math.max(e, qHb(a.a[f2][b.g], d));
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
}
- } else {
- e = qHb(a.a[c2.g][b.g], d);
- }
- b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.a));
- return e;
- }
- function knc(a, b) {
- var c2, d, e, f2, g, h;
- e = a.i;
- f2 = b.i;
- if (!e || !f2) {
return false;
}
- if (e.i != f2.i || e.i == (Ucd(), zcd) || e.i == (Ucd(), Tcd)) {
- return false;
- }
- g = e.g.a;
- c2 = g + e.j.a;
- h = f2.g.a;
- d = h + f2.j.a;
- return g <= d && c2 >= h;
- }
- function Tpd(a, b, c2, d) {
- var e;
- e = false;
- if (ND(d)) {
- e = true;
- Upd(b, c2, GD(d));
- }
- if (!e) {
- if (KD(d)) {
- e = true;
- Tpd(a, b, c2, d);
- }
- }
- if (!e) {
- if (JD(d, 236)) {
- e = true;
- Spd(b, c2, BD(d, 236));
- }
- }
- if (!e) {
- throw vbb(new vcb(Ute));
- }
- }
- function W0d(a, b) {
- var c2, d, e;
- c2 = b.Hh(a.a);
- if (c2) {
- e = AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Sve);
- if (e != null) {
- for (d = 1; d < (O6d(), K6d).length; ++d) {
- if (dfb(K6d[d], e)) {
- return d;
- }
- }
- }
- }
- return 0;
- }
- function X0d(a, b) {
- var c2, d, e;
- c2 = b.Hh(a.a);
- if (c2) {
- e = AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Sve);
- if (e != null) {
- for (d = 1; d < (O6d(), L6d).length; ++d) {
- if (dfb(L6d[d], e)) {
- return d;
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
}
+ } else if (!this.options.flex) {
+ break;
}
}
}
- return 0;
- }
- function Ve(a, b) {
- var c2, d, e, f2;
- uCb(b);
- f2 = a.a.gc();
- if (f2 < b.gc()) {
- for (c2 = a.a.ec().Kc(); c2.Ob(); ) {
- d = c2.Pb();
- b.Hc(d) && c2.Qb();
- }
- } else {
- for (e = b.Kc(); e.Ob(); ) {
- d = e.Pb();
- a.a.Bc(d) != null;
- }
- }
- return f2 != a.a.gc();
- }
- function bYb(a) {
- var b, c2;
- c2 = R6c(l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])));
- b = a.i.d;
- switch (a.j.g) {
- case 1:
- c2.b -= b.d;
- break;
- case 2:
- c2.a += b.c;
- break;
- case 3:
- c2.b += b.a;
- break;
- case 4:
- c2.a -= b.b;
- }
- return c2;
- }
- function P9b(a) {
- var b;
- b = (I9b(), BD(Rr(new Sr(ur(R_b(a).a.Kc(), new Sq()))), 17).c.i);
- while (b.k == (j0b(), g0b)) {
- yNb(b, (wtc(), Tsc), (Bcb(), true));
- b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i;
- }
- }
- function bIc(a, b, c2, d) {
- var e, f2, g, h;
- h = CHc(b, d);
- for (g = h.Kc(); g.Ob(); ) {
- e = BD(g.Pb(), 11);
- a.d[e.p] = a.d[e.p] + a.c[c2.p];
- }
- h = CHc(c2, d);
- for (f2 = h.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 11);
- a.d[e.p] = a.d[e.p] - a.c[b.p];
- }
- }
- function Efd(a, b, c2) {
- var d, e;
- for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 33);
- bld(d, d.i + b, d.j + c2);
- }
- reb((!a.b && (a.b = new cUd(B2, a, 12, 3)), a.b), new Kfd(b, c2));
- }
- function Mwb(a, b, c2, d) {
- var e, f2;
- f2 = b;
- e = f2.d == null || a.a.ue(c2.d, f2.d) > 0 ? 1 : 0;
- while (f2.a[e] != c2) {
- f2 = f2.a[e];
- e = a.a.ue(c2.d, f2.d) > 0 ? 1 : 0;
- }
- f2.a[e] = d;
- d.b = c2.b;
- d.a[0] = c2.a[0];
- d.a[1] = c2.a[1];
- c2.a[0] = null;
- c2.a[1] = null;
- }
- function ucd(a) {
- rcd();
- var b, c2;
- b = qqb(ncd, OC(GC(E1, 1), Kie, 273, 0, [pcd]));
- if (Ox(Cx(b, a)) > 1) {
- return false;
- }
- c2 = qqb(mcd, OC(GC(E1, 1), Kie, 273, 0, [lcd, qcd]));
- if (Ox(Cx(c2, a)) > 1) {
- return false;
- }
- return true;
- }
- function fod(a, b) {
- var c2;
- c2 = Phb((yFd(), xFd), a);
- JD(c2, 498) ? Shb(xFd, a, new bUd(this, b)) : Shb(xFd, a, this);
- bod(this, b);
- if (b == (LFd(), KFd)) {
- this.wb = BD(this, 1939);
- BD(b, 1941);
- } else {
- this.wb = (NFd(), MFd);
- }
- }
- function lZd(b) {
- var c2, d, e;
- if (b == null) {
- return null;
- }
- c2 = null;
- for (d = 0; d < Pmd.length; ++d) {
- try {
- return DQd(Pmd[d], b);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 32)) {
- e = a;
- c2 = e;
- } else
- throw vbb(a);
- }
- }
- throw vbb(new rFd(c2));
- }
- function Dpb() {
- Dpb = ccb;
- Bpb = OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]);
- Cpb = OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]);
- }
- function yyb(a) {
- var b, c2, d;
- b = dfb(typeof b, uke) ? null : new iCb();
- if (!b) {
- return;
- }
- $xb();
- c2 = (d = 900, d >= _ie ? "error" : d >= 900 ? "warn" : d >= 800 ? "info" : "log");
- gCb(c2, a.a);
- !!a.b && hCb(b, c2, a.b, "Exception: ", true);
- }
- function vNb(a, b) {
- var c2, d;
- d = (!a.q && (a.q = new Lqb()), Ohb(a.q, b));
- if (d != null) {
- return d;
- }
- c2 = b.wg();
- JD(c2, 4) && (c2 == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c2)), a);
- return c2;
- }
- function qUb() {
- qUb = ccb;
- lUb = new rUb("P1_CYCLE_BREAKING", 0);
- mUb = new rUb("P2_LAYERING", 1);
- nUb = new rUb("P3_NODE_ORDERING", 2);
- oUb = new rUb("P4_NODE_PLACEMENT", 3);
- pUb = new rUb("P5_EDGE_ROUTING", 4);
- }
- function SUb(a, b) {
- var c2, d, e, f2, g;
- e = b == 1 ? KUb : JUb;
- for (d = e.a.ec().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 103);
- for (g = BD(Qc(a.f.c, c2), 21).Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 46);
- Lkb(a.b.b, f2.b);
- Lkb(a.b.a, BD(f2.b, 81).d);
- }
- }
- }
- function IWb(a, b) {
- AWb();
- var c2;
- if (a.c == b.c) {
- if (a.b == b.b || pWb(a.b, b.b)) {
- c2 = mWb(a.b) ? 1 : -1;
- if (a.a && !b.a) {
- return c2;
- } else if (!a.a && b.a) {
- return -c2;
- }
- }
- return beb(a.b.g, b.b.g);
- } else {
- return Kdb(a.c, b.c);
- }
- }
- function y6b(a, b) {
- var c2;
- Odd(b, "Hierarchical port position processing", 1);
- c2 = a.b;
- c2.c.length > 0 && x6b((tCb(0, c2.c.length), BD(c2.c[0], 29)), a);
- c2.c.length > 1 && x6b(BD(Ikb(c2, c2.c.length - 1), 29), a);
- Qdd(b);
- }
- function RVc(a, b) {
- var c2, d, e;
- if (CVc(a, b)) {
- return true;
- }
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 33);
- e = hVc(c2);
- if (BVc(a, c2, e)) {
- return true;
- }
- if (PVc(a, c2) - a.g <= a.a) {
- return true;
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
}
- }
- return false;
- }
- function d0c() {
- d0c = ccb;
- c0c = (A0c(), z0c);
- __c = v0c;
- $_c = t0c;
- Y_c = p0c;
- Z_c = r0c;
- X_c = new q0b(8);
- W_c = new Osd((Y9c(), f9c), X_c);
- a0c = new Osd(T9c, 8);
- b0c = x0c;
- T_c = k0c;
- U_c = m0c;
- V_c = new Osd(y8c, (Bcb(), false));
- }
- function X7c() {
- X7c = ccb;
- U7c = new q0b(15);
- T7c = new Osd((Y9c(), f9c), U7c);
- W7c = new Osd(T9c, 15);
- V7c = new Osd(D9c, meb(0));
- O7c = I8c;
- Q7c = Y8c;
- S7c = b9c;
- L7c = new Osd(r8c, pse);
- P7c = O8c;
- R7c = _8c;
- M7c = t8c;
- N7c = w8c;
- }
- function jtd(a) {
- if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
- throw vbb(new Wdb(iue));
- }
- return atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
- }
- function ktd(a) {
- if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
- throw vbb(new Wdb(iue));
- }
- return btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
- }
- function mtd(a) {
- if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
- throw vbb(new Wdb(iue));
- }
- return btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
- }
- function ltd(a) {
- if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
- throw vbb(new Wdb(iue));
- }
- return atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
- }
- function Dvd(a, b, c2) {
- var d, e, f2;
- ++a.j;
- e = a.Vi();
- if (b >= e || b < 0)
- throw vbb(new qcb(lue + b + mue + e));
- if (c2 >= e || c2 < 0)
- throw vbb(new qcb(nue + c2 + mue + e));
- b != c2 ? d = (f2 = a.Ti(c2), a.Hi(b, f2), f2) : d = a.Oi(c2);
- return d;
- }
- function m6d(a) {
- var b, c2, d;
- d = a;
- if (a) {
- b = 0;
- for (c2 = a.Ug(); c2; c2 = c2.Ug()) {
- if (++b > Wje) {
- return m6d(c2);
- }
- d = c2;
- if (c2 == a) {
- throw vbb(new Zdb("There is a cycle in the containment hierarchy of " + a));
- }
- }
- }
- return d;
- }
- function Fe(a) {
- var b, c2, d;
- d = new xwb(She, "[", "]");
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = c2.Pb();
- uwb(d, PD(b) === PD(a) ? "(this Collection)" : b == null ? Xhe : fcb(b));
- }
- return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e);
- }
- function CVc(a, b) {
- var c2, d;
- d = false;
- if (b.gc() < 2) {
return false;
}
- for (c2 = 0; c2 < b.gc(); c2++) {
- c2 < b.gc() - 1 ? d = d | BVc(a, BD(b.Xb(c2), 33), BD(b.Xb(c2 + 1), 33)) : d = d | BVc(a, BD(b.Xb(c2), 33), BD(b.Xb(0), 33));
- }
- return d;
- }
- function Ymd(a, b) {
- var c2;
- if (b != a.a) {
- c2 = null;
- !!a.a && (c2 = BD(a.a, 49).ih(a, 4, o5, c2));
- !!b && (c2 = BD(b, 49).gh(a, 4, o5, c2));
- c2 = Tmd(a, b, c2);
- !!c2 && c2.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, b, b));
- }
- function RQd(a, b) {
- var c2;
- if (b != a.e) {
- !!a.e && QYd(AYd(a.e), a);
- !!b && (!b.b && (b.b = new RYd(new NYd())), PYd(b.b, a));
- c2 = HQd(a, b, null);
- !!c2 && c2.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b));
- }
- function ufb(a) {
- var b, c2, d;
- c2 = a.length;
- d = 0;
- while (d < c2 && (BCb(d, a.length), a.charCodeAt(d) <= 32)) {
- ++d;
- }
- b = c2;
- while (b > d && (BCb(b - 1, a.length), a.charCodeAt(b - 1) <= 32)) {
- --b;
- }
- return d > 0 || b < c2 ? a.substr(d, b - d) : a;
- }
- function ujc(a, b) {
- var c2;
- c2 = b.o;
- if (fad(a.f)) {
- a.j.a = $wnd.Math.max(a.j.a, c2.a);
- a.j.b += c2.b;
- a.d.c.length > 1 && (a.j.b += a.e);
- } else {
- a.j.a += c2.a;
- a.j.b = $wnd.Math.max(a.j.b, c2.b);
- a.d.c.length > 1 && (a.j.a += a.e);
- }
- }
- function gkc() {
- gkc = ccb;
- dkc = OC(GC(F1, 1), bne, 61, 0, [(Ucd(), Acd), zcd, Rcd]);
- ckc = OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd]);
- ekc = OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd, Acd]);
- fkc = OC(GC(F1, 1), bne, 61, 0, [Tcd, Acd, zcd]);
- }
- function omc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- g = a.c.d;
- h = a.d.d;
- if (g.j == h.j) {
- return;
- }
- k = a.b;
- e = g.j;
- i3 = null;
- while (e != h.j) {
- i3 = b == 0 ? Xcd(e) : Vcd(e);
- f2 = umc(e, k.d[e.g], c2);
- j = umc(i3, k.d[i3.g], c2);
- Dsb(d, P6c(f2, j));
- e = i3;
- }
- }
- function oFc(a, b, c2, d) {
- var e, f2, g, h, i3;
- g = JHc(a.a, b, c2);
- h = BD(g.a, 19).a;
- f2 = BD(g.b, 19).a;
- if (d) {
- i3 = BD(vNb(b, (wtc(), gtc)), 10);
- e = BD(vNb(c2, gtc), 10);
- if (!!i3 && !!e) {
- mic(a.b, i3, e);
- h += a.b.i;
- f2 += a.b.e;
- }
- }
- return h > f2;
- }
- function oHc(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- this.a = lHc(a);
- this.b = new Rkb();
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- f2 = new Rkb();
- Ekb(this.b, f2);
- for (h = b, i3 = 0, j = h.length; i3 < j; ++i3) {
- g = h[i3];
- Ekb(f2, new Tkb(g.j));
- }
- }
- }
- function qHc(a, b, c2) {
- var d, e, f2;
- f2 = 0;
- d = c2[b];
- if (b < c2.length - 1) {
- e = c2[b + 1];
- if (a.b[b]) {
- f2 = KIc(a.d, d, e);
- f2 += NHc(a.a, d, (Ucd(), zcd));
- f2 += NHc(a.a, e, Tcd);
- } else {
- f2 = IHc(a.a, d, e);
- }
- }
- a.c[b] && (f2 += PHc(a.a, d));
- return f2;
- }
- function jZb(a, b, c2, d, e) {
- var f2, g, h, i3;
- i3 = null;
- for (h = new olb(d); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 441);
- if (g != c2 && Jkb(g.e, e, 0) != -1) {
- i3 = g;
- break;
- }
- }
- f2 = kZb(e);
- QZb(f2, c2.b);
- RZb(f2, i3.b);
- Rc(a.a, e, new BZb(f2, b, c2.f));
- }
- function nic(a) {
- while (a.g.c != 0 && a.d.c != 0) {
- if (wic(a.g).c > wic(a.d).c) {
- a.i += a.g.c;
- yic(a.d);
- } else if (wic(a.d).c > wic(a.g).c) {
- a.e += a.d.c;
- yic(a.g);
- } else {
- a.i += vic(a.g);
- a.e += vic(a.d);
- yic(a.g);
- yic(a.d);
- }
- }
- }
- function XOc(a, b, c2) {
- var d, e, f2, g;
- f2 = b.q;
- g = b.r;
- new DOc((HOc(), FOc), b, f2, 1);
- new DOc(FOc, f2, g, 1);
- for (e = new olb(c2); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 112);
- if (d != f2 && d != b && d != g) {
- pPc(a.a, d, b);
- pPc(a.a, d, g);
- }
- }
- }
- function XQc(a, b, c2, d) {
- a.a.d = $wnd.Math.min(b, c2);
- a.a.a = $wnd.Math.max(b, d) - a.a.d;
- if (b < c2) {
- a.b = 0.5 * (b + c2);
- a.g = Qqe * a.b + 0.9 * b;
- a.f = Qqe * a.b + 0.9 * c2;
+ if (this._input === "") {
+ return this.EOF;
} else {
- a.b = 0.5 * (b + d);
- a.g = Qqe * a.b + 0.9 * d;
- a.f = Qqe * a.b + 0.9 * b;
- }
- }
- function acb() {
- _bb = {};
- !Array.isArray && (Array.isArray = function(a) {
- return Object.prototype.toString.call(a) === "[object Array]";
- });
- function b() {
- return (/* @__PURE__ */ new Date()).getTime();
- }
- !Date.now && (Date.now = b);
- }
- function $Tb(a, b) {
- var c2, d;
- d = BD(vNb(b, (Nyc(), Vxc)), 98);
- yNb(b, (wtc(), dtc), d);
- c2 = b.e;
- !!c2 && (MAb(new YAb(null, new Kub(c2.a, 16)), new dUb(a)), MAb(LAb(new YAb(null, new Kub(c2.b, 16)), new fUb()), new hUb(a)));
- }
- function _$b(a) {
- var b, c2, d, e;
- if (gad(BD(vNb(a.b, (Nyc(), Lwc)), 103))) {
- return 0;
- }
- b = 0;
- for (d = new olb(a.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- if (c2.k == (j0b(), h0b)) {
- e = c2.o.a;
- b = $wnd.Math.max(b, e);
- }
- }
- return b;
- }
- function c5b(a) {
- switch (BD(vNb(a, (Nyc(), mxc)), 163).g) {
- case 1:
- yNb(a, mxc, (Ctc(), ztc));
- break;
- case 2:
- yNb(a, mxc, (Ctc(), Atc));
- break;
- case 3:
- yNb(a, mxc, (Ctc(), xtc));
- break;
- case 4:
- yNb(a, mxc, (Ctc(), ytc));
- }
- }
- function yrc() {
- yrc = ccb;
- wrc = new zrc(ane, 0);
- trc = new zrc(jle, 1);
- xrc = new zrc(kle, 2);
- vrc = new zrc("LEFT_RIGHT_CONSTRAINT_LOCKING", 3);
- urc = new zrc("LEFT_RIGHT_CONNECTION_LOCKING", 4);
- rrc = new zrc(Vne, 5);
- }
- function qRc(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- h = c2.a / 2;
- f2 = c2.b / 2;
- d = $wnd.Math.abs(b.a - a.a);
- e = $wnd.Math.abs(b.b - a.b);
- i3 = 1;
- j = 1;
- d > h && (i3 = h / d);
- e > f2 && (j = f2 / e);
- g = $wnd.Math.min(i3, j);
- a.a += g * (b.a - a.a);
- a.b += g * (b.b - a.b);
- }
- function sZc(a, b, c2, d, e) {
- var f2, g;
- g = false;
- f2 = BD(Ikb(c2.b, 0), 33);
- while (yZc(a, b, f2, d, e)) {
- g = true;
- NZc(c2, f2);
- if (c2.b.c.length == 0) {
- break;
- }
- f2 = BD(Ikb(c2.b, 0), 33);
- }
- c2.b.c.length == 0 && v$c(c2.j, c2);
- g && a$c(b.q);
- return g;
- }
- function t6c(a, b) {
- i6c();
- var c2, d, e, f2;
- if (b.b < 2) {
- return false;
- }
- f2 = Jsb(b, 0);
- c2 = BD(Xsb(f2), 8);
- d = c2;
- while (f2.b != f2.d.c) {
- e = BD(Xsb(f2), 8);
- if (s6c(a, d, e)) {
- return true;
- }
- d = e;
- }
- if (s6c(a, d, c2)) {
- return true;
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- return false;
- }
- function ckd(a, b, c2, d) {
- var e, f2;
- if (c2 == 0) {
- return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), bId(a.o, b, d);
- }
- return f2 = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c2), 66), f2.Nj().Rj(a, yjd(a), c2 - aLd(a.zh()), b, d);
- }
- function bod(a, b) {
- var c2;
- if (b != a.sb) {
- c2 = null;
- !!a.sb && (c2 = BD(a.sb, 49).ih(a, 1, i5, c2));
- !!b && (c2 = BD(b, 49).gh(a, 1, i5, c2));
- c2 = Jnd(a, b, c2);
- !!c2 && c2.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b));
- }
- function yqd(a, b) {
- var c2, d, e, f2;
- if (b) {
- e = Xpd(b, "x");
- c2 = new zrd(a);
- hmd(c2.a, (uCb(e), e));
- f2 = Xpd(b, "y");
- d = new Ard(a);
- imd(d.a, (uCb(f2), f2));
- } else {
- throw vbb(new cqd("All edge sections need an end point."));
- }
- }
- function wqd(a, b) {
- var c2, d, e, f2;
- if (b) {
- e = Xpd(b, "x");
- c2 = new wrd(a);
- omd(c2.a, (uCb(e), e));
- f2 = Xpd(b, "y");
- d = new xrd(a);
- pmd(d.a, (uCb(f2), f2));
- } else {
- throw vbb(new cqd("All edge sections need a start point."));
- }
- }
- function pyb(a, b) {
- var c2, d, e, f2, g, h, i3;
- for (d = syb(a), f2 = 0, h = d.length; f2 < h; ++f2) {
- yyb(b);
- }
- i3 = !lyb && a.e ? lyb ? null : a.d : null;
- while (i3) {
- for (c2 = syb(i3), e = 0, g = c2.length; e < g; ++e) {
- yyb(b);
- }
- i3 = !lyb && i3.e ? lyb ? null : i3.d : null;
- }
- }
- function j0b() {
- j0b = ccb;
- h0b = new k0b("NORMAL", 0);
- g0b = new k0b("LONG_EDGE", 1);
- e0b = new k0b("EXTERNAL_PORT", 2);
- i0b = new k0b("NORTH_SOUTH_PORT", 3);
- f0b = new k0b("LABEL", 4);
- d0b = new k0b("BREAKING_POINT", 5);
- }
- function g4b(a) {
- var b, c2, d, e;
- b = false;
- if (wNb(a, (wtc(), Csc))) {
- c2 = BD(vNb(a, Csc), 83);
- for (e = new olb(a.j); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 11);
- if (e4b(d)) {
- if (!b) {
- d4b(Q_b(a));
- b = true;
- }
- h4b(BD(c2.xc(d), 306));
- }
- }
- }
- }
- function qec(a, b, c2) {
- var d;
- Odd(c2, "Self-Loop routing", 1);
- d = rec(b);
- RD(vNb(b, (g6c(), f6c)));
- MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new uec()), new wec()), new yec()), new Aec()), new Cec(a, d));
- Qdd(c2);
- }
- function gsd(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- j = hsd(a);
- c2 = a.e;
- f2 = c2 != null;
- f2 && Upd(j, eue, a.e);
- h = a.k;
- g = !!h;
- g && Upd(j, "type", Zr(a.k));
- d = Fhe(a.j);
- e = !d;
- if (e) {
- i3 = new wB();
- cC(j, Mte, i3);
- b = new ssd(i3);
- reb(a.j, b);
- }
- return j;
- }
- function Jv(a) {
- var b, c2, d, e;
- e = Kfb((Xj(a.gc(), "size"), new Vfb()), 123);
- d = true;
- for (c2 = Wm(a).Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 42);
- d || (e.a += She, e);
- d = false;
- Pfb(Kfb(Pfb(e, b.cd()), 61), b.dd());
- }
- return (e.a += "}", e).a;
- }
- function kD(a, b) {
- var c2, d, e;
- b &= 63;
- if (b < 22) {
- c2 = a.l << b;
- d = a.m << b | a.l >> 22 - b;
- e = a.h << b | a.m >> 22 - b;
- } else if (b < 44) {
- c2 = 0;
- d = a.l << b - 22;
- e = a.m << b - 22 | a.l >> 44 - b;
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
} else {
- c2 = 0;
- d = 0;
- e = a.l << b - 44;
- }
- return TC(c2 & Eje, d & Eje, e & Fje);
- }
- function Hcb(a) {
- Gcb == null && (Gcb = new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$"));
- if (!Gcb.test(a)) {
- throw vbb(new Oeb(Oje + a + '"'));
- }
- return parseFloat(a);
- }
- function IFb(a) {
- var b, c2, d, e;
- b = new Rkb();
- c2 = KC(sbb, dle, 25, a.a.c.length, 16, 1);
- Glb(c2, c2.length);
- for (e = new olb(a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 121);
- if (!c2[d.d]) {
- b.c[b.c.length] = d;
- HFb(a, d, c2);
- }
- }
- return b;
- }
- function Nmc(a, b) {
- var c2, d, e, f2;
- f2 = b.b.j;
- a.a = KC(WD, oje, 25, f2.c.length, 15, 1);
- e = 0;
- for (d = 0; d < f2.c.length; d++) {
- c2 = (tCb(d, f2.c.length), BD(f2.c[d], 11));
- c2.e.c.length == 0 && c2.g.c.length == 0 ? e += 1 : e += 3;
- a.a[d] = e;
- }
- }
- function Sqc() {
- Sqc = ccb;
- Nqc = new Uqc("ALWAYS_UP", 0);
- Mqc = new Uqc("ALWAYS_DOWN", 1);
- Pqc = new Uqc("DIRECTION_UP", 2);
- Oqc = new Uqc("DIRECTION_DOWN", 3);
- Rqc = new Uqc("SMART_UP", 4);
- Qqc = new Uqc("SMART_DOWN", 5);
- }
- function k6c(a, b) {
- if (a < 0 || b < 0) {
- throw vbb(new Wdb("k and n must be positive"));
- } else if (b > a) {
- throw vbb(new Wdb("k must be smaller than n"));
- } else
- return b == 0 || b == a ? 1 : a == 0 ? 0 : q6c(a) / (q6c(b) * q6c(a - b));
- }
- function jfd(a, b) {
- var c2, d, e, f2;
- c2 = new _ud(a);
- while (c2.g == null && !c2.c ? Uud(c2) : c2.g == null || c2.i != 0 && BD(c2.g[c2.i - 1], 47).Ob()) {
- f2 = BD(Vud(c2), 56);
- if (JD(f2, 160)) {
- d = BD(f2, 160);
- for (e = 0; e < b.length; e++) {
- b[e].og(d);
- }
- }
- }
- }
- function fld(a) {
- var b;
- if ((a.Db & 64) != 0)
- return Mkd(a);
- b = new Jfb(Mkd(a));
- b.a += " (height: ";
- Bfb(b, a.f);
- b.a += ", width: ";
- Bfb(b, a.g);
- b.a += ", x: ";
- Bfb(b, a.i);
- b.a += ", y: ";
- Bfb(b, a.j);
- b.a += ")";
- return b.a;
- }
- function un(a) {
- var b, c2, d, e, f2, g, h;
- b = new $rb();
- for (d = a, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- g = Qb(c2.cd());
- h = Xrb(b, g, Qb(c2.dd()));
- if (h != null) {
- throw vbb(new Wdb("duplicate key: " + g));
- }
- }
- this.b = (mmb(), new iob(b));
- }
- function Rlb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- uwb(f2, String.fromCharCode(b));
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function SRb() {
- SRb = ccb;
- MRb = (XRb(), WRb);
- LRb = new Nsd(mme, MRb);
- meb(1);
- KRb = new Nsd(nme, meb(300));
- meb(0);
- PRb = new Nsd(ome, meb(0));
- QRb = new Nsd(pme, qme);
- NRb = new Nsd(rme, 5);
- RRb = WRb;
- ORb = VRb;
- }
- function NUb(a, b) {
- var c2, d, e, f2, g;
- e = b == 1 ? KUb : JUb;
- for (d = e.a.ec().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 103);
- for (g = BD(Qc(a.f.c, c2), 21).Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 46);
- Ekb(a.b.b, BD(f2.b, 81));
- Ekb(a.b.a, BD(f2.b, 81).d);
- }
- }
- }
- function kVd(a, b) {
- var c2;
- if (b != null && !a.c.Yj().wj(b)) {
- c2 = JD(b, 56) ? BD(b, 56).Tg().zb : hdb(rb(b));
- throw vbb(new Cdb(ite + a.c.ne() + "'s type '" + a.c.Yj().ne() + "' does not permit a value of type '" + c2 + "'"));
- }
- }
- function cZb(a, b, c2) {
- var d, e;
- e = new Bib(a.b, 0);
- while (e.b < e.d.gc()) {
- d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70));
- if (PD(vNb(d, (wtc(), btc))) !== PD(b)) {
- continue;
- }
- Y$b(d.n, Q_b(a.c.i), c2);
- uib(e);
- Ekb(b.b, d);
- }
- }
- function vdc(a, b) {
- if (b.a) {
- switch (BD(vNb(b.b, (wtc(), dtc)), 98).g) {
- case 0:
- case 1:
- llc(b);
- case 2:
- MAb(new YAb(null, new Kub(b.d, 16)), new Idc());
- wkc(a.a, b);
- }
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
} else {
- MAb(new YAb(null, new Kub(b.d, 16)), new Idc());
- }
- }
- function Znc(a) {
- var b, c2;
- c2 = $wnd.Math.sqrt((a.k == null && (a.k = Soc(a, new bpc())), Edb(a.k) / (a.b * (a.g == null && (a.g = Poc(a, new _oc())), Edb(a.g)))));
- b = Tbb(Cbb($wnd.Math.round(c2)));
- b = $wnd.Math.min(b, a.f);
- return b;
- }
- function H0b() {
- z0b();
- n_b.call(this);
- this.j = (Ucd(), Scd);
- this.a = new d7c();
- new L_b();
- this.f = (Xj(2, Jie), new Skb(2));
- this.e = (Xj(4, Jie), new Skb(4));
- this.g = (Xj(4, Jie), new Skb(4));
- this.b = new Z0b(this.e, this.g);
- }
- function j3b(a, b) {
- var c2, d;
- if (Ccb(DD(vNb(b, (wtc(), ltc))))) {
- return false;
- }
- d = b.c.i;
- if (a == (Ctc(), xtc)) {
- if (d.k == (j0b(), f0b)) {
- return false;
- }
- }
- c2 = BD(vNb(d, (Nyc(), mxc)), 163);
- if (c2 == ytc) {
- return false;
+ return this.conditionStack[0];
}
- return true;
- }
- function k3b(a, b) {
- var c2, d;
- if (Ccb(DD(vNb(b, (wtc(), ltc))))) {
- return false;
- }
- d = b.d.i;
- if (a == (Ctc(), ztc)) {
- if (d.k == (j0b(), f0b)) {
- return false;
- }
- }
- c2 = BD(vNb(d, (Nyc(), mxc)), 163);
- if (c2 == Atc) {
- return false;
- }
- return true;
- }
- function L3b(a, b) {
- var c2, d, e, f2, g, h, i3;
- g = a.d;
- i3 = a.o;
- h = new J6c(-g.b, -g.d, g.b + i3.a + g.c, g.d + i3.b + g.a);
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- !!c2 && H6c(h, c2.i);
- }
- g.b = -h.c;
- g.d = -h.d;
- g.c = h.b - g.b - i3.a;
- g.a = h.a - g.d - i3.b;
- }
- function N_c() {
- N_c = ccb;
- I_c = new O_c("CENTER_DISTANCE", 0);
- J_c = new O_c("CIRCLE_UNDERLAP", 1);
- M_c = new O_c("RECTANGLE_UNDERLAP", 2);
- K_c = new O_c("INVERTED_OVERLAP", 3);
- L_c = new O_c("MINIMUM_ROOT_DISTANCE", 4);
- }
- function jde(a) {
- hde();
- var b, c2, d, e, f2;
- if (a == null)
- return null;
- d = a.length;
- e = d * 2;
- b = KC(TD, $ie, 25, e, 15, 1);
- for (c2 = 0; c2 < d; c2++) {
- f2 = a[c2];
- f2 < 0 && (f2 += 256);
- b[c2 * 2] = gde[f2 >> 4];
- b[c2 * 2 + 1] = gde[f2 & 15];
- }
- return zfb(b, 0, b.length);
- }
- function fn(a) {
- Vm();
- var b, c2, d;
- d = a.c.length;
- switch (d) {
- case 0:
- return Um;
- case 1:
- b = BD(qr(new olb(a)), 42);
- return ln(b.cd(), b.dd());
- default:
- c2 = BD(Qkb(a, KC(CK, zie, 42, a.c.length, 0, 1)), 165);
- return new wx(c2);
- }
- }
- function ITb(a) {
- var b, c2, d, e, f2, g;
- b = new jkb();
- c2 = new jkb();
- Wjb(b, a);
- Wjb(c2, a);
- while (c2.b != c2.c) {
- e = BD(fkb(c2), 37);
- for (g = new olb(e.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- if (f2.e) {
- d = f2.e;
- Wjb(b, d);
- Wjb(c2, d);
- }
- }
- }
- return b;
- }
- function Y_b(a, b) {
- switch (b.g) {
- case 1:
- return Nq(a.j, (z0b(), v0b));
- case 2:
- return Nq(a.j, (z0b(), t0b));
- case 3:
- return Nq(a.j, (z0b(), x0b));
- case 4:
- return Nq(a.j, (z0b(), y0b));
- default:
- return mmb(), mmb(), jmb;
- }
- }
- function tic(a, b) {
- var c2, d, e;
- c2 = uic(b, a.e);
- d = BD(Ohb(a.g.f, c2), 19).a;
- e = a.a.c.length - 1;
- if (a.a.c.length != 0 && BD(Ikb(a.a, e), 287).c == d) {
- ++BD(Ikb(a.a, e), 287).a;
- ++BD(Ikb(a.a, e), 287).b;
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
} else {
- Ekb(a.a, new Dic(d));
- }
- }
- function VGc(a, b, c2) {
- var d, e;
- d = UGc(a, b, c2);
- if (d != 0) {
- return d;
- }
- if (wNb(b, (wtc(), Zsc)) && wNb(c2, Zsc)) {
- e = beb(BD(vNb(b, Zsc), 19).a, BD(vNb(c2, Zsc), 19).a);
- e < 0 ? WGc(a, b, c2) : e > 0 && WGc(a, c2, b);
- return e;
- }
- return TGc(a, b, c2);
- }
- function MSc(a, b, c2) {
- var d, e, f2, g;
- if (b.b != 0) {
- d = new Psb();
- for (g = Jsb(b, 0); g.b != g.d.c; ) {
- f2 = BD(Xsb(g), 86);
- ye(d, URc(f2));
- e = f2.e;
- e.a = BD(vNb(f2, (mTc(), kTc)), 19).a;
- e.b = BD(vNb(f2, lTc), 19).a;
- }
- MSc(a, d, Udd(c2, d.b / a.a | 0));
- }
- }
- function JZc(a, b) {
- var c2, d, e, f2, g;
- if (a.e <= b) {
- return a.g;
- }
- if (LZc(a, a.g, b)) {
- return a.g;
- }
- f2 = a.r;
- d = a.g;
- g = a.r;
- e = (f2 - d) / 2 + d;
- while (d + 1 < f2) {
- c2 = MZc(a, e, false);
- if (c2.b <= e && c2.a <= b) {
- g = e;
- f2 = e;
- } else {
- d = e;
- }
- e = (f2 - d) / 2 + d;
- }
- return g;
- }
- function t2c(a, b, c2) {
- var d;
- d = o2c(a, b, true);
- Odd(c2, "Recursive Graph Layout", d);
- jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new q3c()]));
- ikd(b, (Y9c(), F9c)) || jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new U3c()]));
- u2c(a, b, null, c2);
- Qdd(c2);
- }
- function Qdd(a) {
- var b;
- if (a.p == null) {
- throw vbb(new Zdb("The task has not begun yet."));
- }
- if (!a.b) {
- if (a.k) {
- b = (Zfb(), Ibb(Cbb(Date.now()), _ie));
- a.q = Sbb(Qbb(b, a.o)) * 1e-9;
- }
- a.c < a.r && Rdd(a, a.r - a.c);
- a.b = true;
- }
- }
- function ofd(a) {
- var b, c2, d;
- d = new s7c();
- Dsb(d, new f7c(a.j, a.k));
- for (c2 = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 469);
- Dsb(d, new f7c(b.a, b.b));
- }
- Dsb(d, new f7c(a.b, a.c));
- return d;
- }
- function qqd(a, b, c2, d, e) {
- var f2, g, h, i3, j, k;
- if (e) {
- i3 = e.a.length;
- f2 = new Yge(i3);
- for (k = (f2.b - f2.a) * f2.c < 0 ? (Xge(), Wge) : new she(f2); k.Ob(); ) {
- j = BD(k.Pb(), 19);
- h = Zpd(e, j.a);
- g = new prd(a, b, c2, d);
- rqd(g.a, g.b, g.c, g.d, h);
- }
- }
- }
- function Ax(b, c2) {
- var d;
- if (PD(b) === PD(c2)) {
- return true;
- }
- if (JD(c2, 21)) {
- d = BD(c2, 21);
- try {
- return b.gc() == d.gc() && b.Ic(d);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 173) || JD(a, 205)) {
- return false;
- } else
- throw vbb(a);
- }
- }
- return false;
- }
- function UHb(a, b) {
- var c2;
- Ekb(a.d, b);
- c2 = b.rf();
- if (a.c) {
- a.e.a = $wnd.Math.max(a.e.a, c2.a);
- a.e.b += c2.b;
- a.d.c.length > 1 && (a.e.b += a.a);
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
} else {
- a.e.a += c2.a;
- a.e.b = $wnd.Math.max(a.e.b, c2.b);
- a.d.c.length > 1 && (a.e.a += a.a);
- }
- }
- function cmc(a) {
- var b, c2, d, e;
- e = a.i;
- b = e.b;
- d = e.j;
- c2 = e.g;
- switch (e.a.g) {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
case 0:
- c2.a = (a.g.b.o.a - d.a) / 2;
+ return 41;
break;
case 1:
- c2.a = b.d.n.a + b.d.a.a;
+ return 48;
break;
case 2:
- c2.a = b.d.n.a + b.d.a.a - d.a;
+ return 49;
break;
case 3:
- c2.b = b.d.n.b + b.d.a.b;
- }
- }
- function Q6c(a, b, c2, d, e) {
- if (d < b || e < c2) {
- throw vbb(new Wdb("The highx must be bigger then lowx and the highy must be bigger then lowy"));
- }
- a.a < b ? a.a = b : a.a > d && (a.a = d);
- a.b < c2 ? a.b = c2 : a.b > e && (a.b = e);
- return a;
- }
- function lsd(a) {
- if (JD(a, 149)) {
- return esd(BD(a, 149));
- } else if (JD(a, 229)) {
- return fsd(BD(a, 229));
- } else if (JD(a, 23)) {
- return gsd(BD(a, 23));
- } else {
- throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [a])))));
- }
- }
- function mhb(a, b, c2, d, e) {
- var f2, g, h;
- f2 = true;
- for (g = 0; g < d; g++) {
- f2 = f2 & c2[g] == 0;
- }
- if (e == 0) {
- $fb(c2, d, a, 0, b);
- g = b;
- } else {
- h = 32 - e;
- f2 = f2 & c2[g] << h == 0;
- for (g = 0; g < b - 1; g++) {
- a[g] = c2[g + d] >>> e | c2[g + d + 1] << h;
- }
- a[g] = c2[g + d] >>> e;
- ++g;
- }
- return f2;
- }
- function zMc(a, b, c2, d) {
- var e, f2, g;
- if (b.k == (j0b(), g0b)) {
- for (f2 = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- g = e.c.i.k;
- if (g == g0b && a.c.a[e.c.i.c.p] == d && a.c.a[b.c.p] == c2) {
- return true;
- }
- }
- }
- return false;
- }
- function mD(a, b) {
- var c2, d, e, f2;
- b &= 63;
- c2 = a.h & Fje;
- if (b < 22) {
- f2 = c2 >>> b;
- e = a.m >> b | c2 << 22 - b;
- d = a.l >> b | a.m << 22 - b;
- } else if (b < 44) {
- f2 = 0;
- e = c2 >>> b - 22;
- d = a.m >> b - 22 | a.h << 44 - b;
- } else {
- f2 = 0;
- e = 0;
- d = c2 >>> b - 44;
- }
- return TC(d & Eje, e & Eje, f2 & Fje);
- }
- function Iic(a, b, c2, d) {
- var e;
- this.b = d;
- this.e = a == (rGc(), pGc);
- e = b[c2];
- this.d = IC(sbb, [nie, dle], [177, 25], 16, [e.length, e.length], 2);
- this.a = IC(WD, [nie, oje], [48, 25], 15, [e.length, e.length], 2);
- this.c = new sic(b, c2);
- }
- function ljc(a) {
- var b, c2, d;
- a.k = new Ki((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, a.j.c.length);
- for (d = new olb(a.j); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 113);
- b = c2.d.j;
- Rc(a.k, b, c2);
- }
- a.e = Zjc(Ec(a.k));
- }
- function UQc(a, b) {
- var c2, d, e;
- Qqb(a.d, b);
- c2 = new _Qc();
- Rhb(a.c, b, c2);
- c2.f = VQc(b.c);
- c2.a = VQc(b.d);
- c2.d = (hQc(), e = b.c.i.k, e == (j0b(), h0b) || e == d0b);
- c2.e = (d = b.d.i.k, d == h0b || d == d0b);
- c2.b = b.c.j == (Ucd(), Tcd);
- c2.c = b.d.j == zcd;
- }
- function BGb(a) {
- var b, c2, d, e, f2;
- f2 = Ohe;
- e = Ohe;
- for (d = new olb(LFb(a)); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 213);
- b = c2.e.e - c2.d.e;
- c2.e == a && b < e ? e = b : b < f2 && (f2 = b);
- }
- e == Ohe && (e = -1);
- f2 == Ohe && (f2 = -1);
- return new vgd(meb(e), meb(f2));
- }
- function zQb(a, b) {
- var c2, d, e;
- e = dme;
- d = (ROb(), OOb);
- e = $wnd.Math.abs(a.b);
- c2 = $wnd.Math.abs(b.f - a.b);
- if (c2 < e) {
- e = c2;
- d = POb;
- }
- c2 = $wnd.Math.abs(a.a);
- if (c2 < e) {
- e = c2;
- d = QOb;
- }
- c2 = $wnd.Math.abs(b.g - a.a);
- if (c2 < e) {
- e = c2;
- d = NOb;
- }
- return d;
- }
- function L9b(a, b) {
- var c2, d, e, f2;
- c2 = b.a.o.a;
- f2 = new Jib(Q_b(b.a).b, b.c, b.f + 1);
- for (e = new vib(f2); e.b < e.d.gc(); ) {
- d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 29));
- if (d.c.a >= c2) {
- K9b(a, b, d.p);
- return true;
- }
- }
- return false;
- }
- function Iod(a) {
- var b;
- if ((a.Db & 64) != 0)
- return fld(a);
- b = new Wfb(dte);
- !a.a || Qfb(Qfb((b.a += ' "', b), a.a), '"');
- Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
- return b.a;
- }
- function Z2d(a, b, c2) {
- var d, e, f2, g, h;
- h = S6d(a.e.Tg(), b);
- e = BD(a.g, 119);
- d = 0;
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (h.rl(f2.ak())) {
- if (d == c2) {
- Xxd(a, g);
- return Q6d(), BD(b, 66).Oj() ? f2 : f2.dd();
- }
- ++d;
- }
- }
- throw vbb(new qcb(gve + c2 + mue + d));
- }
- function sde(a) {
- var b, c2, d;
- b = a.c;
- if (b == 2 || b == 7 || b == 1) {
- return wfe(), wfe(), ffe;
- } else {
- d = qde(a);
- c2 = null;
- while ((b = a.c) != 2 && b != 7 && b != 1) {
- if (!c2) {
- c2 = (wfe(), wfe(), new Lge(1));
- Kge(c2, d);
- d = c2;
- }
- Kge(c2, qde(a));
- }
- return d;
- }
- }
- function Kb(a, b, c2) {
- if (a < 0 || a > c2) {
- return Jb(a, c2, "start index");
- }
- if (b < 0 || b > c2) {
- return Jb(b, c2, "end index");
- }
- return hc("end index (%s) must not be less than start index (%s)", OC(GC(SI, 1), Uhe, 1, 5, [meb(b), meb(a)]));
- }
- function Pz(b, c2) {
- var d, e, f2, g;
- for (e = 0, f2 = b.length; e < f2; e++) {
- g = b[e];
- try {
- g[1] ? g[0].jm() && (c2 = Oz(c2, g)) : g[0].jm();
- } catch (a) {
- a = ubb(a);
- if (JD(a, 78)) {
- d = a;
- Az();
- Gz(JD(d, 477) ? BD(d, 477).ae() : d);
- } else
- throw vbb(a);
- }
- }
- return c2;
- }
- function K9b(a, b, c2) {
- var d, e, f2;
- c2 != b.c + b.b.gc() && Z9b(b.a, fac(b, c2 - b.c));
- f2 = b.a.c.p;
- a.a[f2] = $wnd.Math.max(a.a[f2], b.a.o.a);
- for (e = BD(vNb(b.a, (wtc(), ktc)), 15).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 70);
- yNb(d, H9b, (Bcb(), true));
- }
- }
- function Wec(a, b) {
- var c2, d, e;
- e = Vec(b);
- yNb(b, (wtc(), Xsc), e);
- if (e) {
- d = Ohe;
- !!irb(a.f, e) && (d = BD(Wd(irb(a.f, e)), 19).a);
- c2 = BD(Ikb(b.g, 0), 17);
- Ccb(DD(vNb(c2, ltc))) || Rhb(a, e, meb($wnd.Math.min(BD(vNb(c2, Zsc), 19).a, d)));
- }
- }
- function iCc(a, b, c2) {
- var d, e, f2, g, h;
- b.p = -1;
- for (h = W_b(b, (KAc(), IAc)).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 11);
- for (e = new olb(g.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- f2 = d.d.i;
- b != f2 && (f2.p < 0 ? c2.Fc(d) : f2.p > 0 && iCc(a, f2, c2));
- }
- }
- b.p = 0;
- }
- function p5c(a) {
- var b;
- this.c = new Psb();
- this.f = a.e;
- this.e = a.d;
- this.i = a.g;
- this.d = a.c;
- this.b = a.b;
- this.k = a.j;
- this.a = a.a;
- !a.i ? this.j = (b = BD(gdb(e1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.j = a.i;
- this.g = a.f;
- }
- function Wb(a) {
- var b, c2, d, e;
- b = Kfb(Qfb(new Wfb("Predicates."), "and"), 40);
- c2 = true;
- for (e = new vib(a); e.b < e.d.gc(); ) {
- d = (sCb(e.b < e.d.gc()), e.d.Xb(e.c = e.b++));
- c2 || (b.a += ",", b);
- b.a += "" + d;
- c2 = false;
- }
- return (b.a += ")", b).a;
- }
- function Rcc(a, b, c2) {
- var d, e, f2;
- if (c2 <= b + 2) {
- return;
- }
- e = (c2 - b) / 2 | 0;
- for (d = 0; d < e; ++d) {
- f2 = (tCb(b + d, a.c.length), BD(a.c[b + d], 11));
- Nkb(a, b + d, (tCb(c2 - d - 1, a.c.length), BD(a.c[c2 - d - 1], 11)));
- tCb(c2 - d - 1, a.c.length);
- a.c[c2 - d - 1] = f2;
- }
- }
- function hjc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- f2 = a.d.p;
- h = f2.e;
- i3 = f2.r;
- a.g = new dIc(i3);
- g = a.d.o.c.p;
- d = g > 0 ? h[g - 1] : KC(OQ, kne, 10, 0, 0, 1);
- e = h[g];
- j = g < h.length - 1 ? h[g + 1] : KC(OQ, kne, 10, 0, 0, 1);
- k = b == c2 - 1;
- k ? RHc(a.g, e, j) : RHc(a.g, d, e);
- }
- function pjc(a) {
- var b;
- this.j = new Rkb();
- this.f = new Tqb();
- this.b = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
- this.d = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
- this.g = a;
- }
- function QVc(a, b) {
- var c2, d, e;
- if (b.c.length != 0) {
- c2 = RVc(a, b);
- e = false;
- while (!c2) {
- AVc(a, b, true);
- e = true;
- c2 = RVc(a, b);
- }
- e && AVc(a, b, false);
- d = dVc(b);
- !!a.b && a.b.lg(d);
- a.a = PVc(a, (tCb(0, b.c.length), BD(b.c[0], 33)));
- QVc(a, d);
- }
- }
- function Cid(a, b) {
- var c2, d, e;
- d = XKd(a.Tg(), b);
- c2 = b - a.Ah();
- if (c2 < 0) {
- if (!d) {
- throw vbb(new Wdb(mte + b + nte));
- } else if (d.Ij()) {
- e = a.Yg(d);
- e >= 0 ? a.Bh(e) : vid(a, d);
- } else {
- throw vbb(new Wdb(ite + d.ne() + jte));
- }
- } else {
- eid(a, c2, d);
- }
- }
- function aqd(a) {
- var b, c2;
- c2 = null;
- b = false;
- if (JD(a, 204)) {
- b = true;
- c2 = BD(a, 204).a;
- }
- if (!b) {
- if (JD(a, 258)) {
- b = true;
- c2 = "" + BD(a, 258).a;
- }
- }
- if (!b) {
- if (JD(a, 483)) {
- b = true;
- c2 = "" + BD(a, 483).a;
- }
- }
- if (!b) {
- throw vbb(new vcb(Ute));
- }
- return c2;
- }
- function ORd(a, b) {
- var c2, d;
- if (a.f) {
- while (b.Ob()) {
- c2 = BD(b.Pb(), 72);
- d = c2.ak();
- if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c2.dd() != null) {
- b.Ub();
- return true;
- }
- }
- return false;
- } else {
- return b.Ob();
- }
- }
- function QRd(a, b) {
- var c2, d;
- if (a.f) {
- while (b.Sb()) {
- c2 = BD(b.Ub(), 72);
- d = c2.ak();
- if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c2.dd() != null) {
- b.Pb();
- return true;
- }
- }
- return false;
- } else {
- return b.Sb();
- }
- }
- function I2d(a, b, c2) {
- var d, e, f2, g, h, i3;
- i3 = S6d(a.e.Tg(), b);
- d = 0;
- h = a.i;
- e = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (i3.rl(f2.ak())) {
- if (c2 == d) {
- return g;
- }
- ++d;
- h = g + 1;
- }
- }
- if (c2 == d) {
- return h;
- } else {
- throw vbb(new qcb(gve + c2 + mue + d));
- }
- }
- function d9b(a, b) {
- var c2, d, e, f2;
- if (a.f.c.length == 0) {
- return null;
- } else {
- f2 = new I6c();
- for (d = new olb(a.f); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 70);
- e = c2.o;
- f2.b = $wnd.Math.max(f2.b, e.a);
- f2.a += e.b;
- }
- f2.a += (a.f.c.length - 1) * b;
- return f2;
- }
- }
- function QJc(a, b, c2) {
- var d, e, f2;
- for (e = new Sr(ur(O_b(c2).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- if (!(!OZb(d) && !(!OZb(d) && d.c.i.c == d.d.i.c))) {
- continue;
- }
- f2 = IJc(a, d, c2, new vKc());
- f2.c.length > 1 && (b.c[b.c.length] = f2, true);
- }
- }
- function TJc(a) {
- var b, c2, d, e;
- c2 = new Psb();
- ye(c2, a.o);
- d = new twb();
- while (c2.b != 0) {
- b = BD(c2.b == 0 ? null : (sCb(c2.b != 0), Nsb(c2, c2.a.a)), 508);
- e = KJc(a, b, true);
- e && Ekb(d.a, b);
- }
- while (d.a.c.length != 0) {
- b = BD(rwb(d), 508);
- KJc(a, b, false);
- }
- }
- function _5c() {
- _5c = ccb;
- $5c = new a6c(ole, 0);
- T5c = new a6c("BOOLEAN", 1);
- X5c = new a6c("INT", 2);
- Z5c = new a6c("STRING", 3);
- U5c = new a6c("DOUBLE", 4);
- V5c = new a6c("ENUM", 5);
- W5c = new a6c("ENUMSET", 6);
- Y5c = new a6c("OBJECT", 7);
- }
- function H6c(a, b) {
- var c2, d, e, f2, g;
- d = $wnd.Math.min(a.c, b.c);
- f2 = $wnd.Math.min(a.d, b.d);
- e = $wnd.Math.max(a.c + a.b, b.c + b.b);
- g = $wnd.Math.max(a.d + a.a, b.d + b.a);
- if (e < d) {
- c2 = d;
- d = e;
- e = c2;
- }
- if (g < f2) {
- c2 = f2;
- f2 = g;
- g = c2;
- }
- G6c(a, d, f2, e - d, g - f2);
- }
- function O6d() {
- O6d = ccb;
- L6d = OC(GC(ZI, 1), nie, 2, 6, [swe, twe, uwe, vwe, wwe, xwe, eue]);
- K6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "empty", twe, Qve, "elementOnly"]);
- N6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "preserve", "replace", ywe]);
- M6d = new y1d();
- }
- function Y$b(a, b, c2) {
- var d, e, f2;
- if (b == c2) {
- return;
- }
- d = b;
- do {
- P6c(a, d.c);
- e = d.e;
- if (e) {
- f2 = d.d;
- O6c(a, f2.b, f2.d);
- P6c(a, e.n);
- d = Q_b(e);
- }
- } while (e);
- d = c2;
- do {
- c7c(a, d.c);
- e = d.e;
- if (e) {
- f2 = d.d;
- b7c(a, f2.b, f2.d);
- c7c(a, e.n);
- d = Q_b(e);
- }
- } while (e);
- }
- function qic(a, b, c2, d) {
- var e, f2, g, h, i3;
- if (d.f.c + d.g.c == 0) {
- for (g = a.a[a.c], h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- Rhb(d, f2, new zic(a, f2, c2));
- }
- }
- e = BD(Wd(irb(d.f, b)), 663);
- e.b = 0;
- e.c = e.f;
- e.c == 0 || Cic(BD(Ikb(e.a, e.b), 287));
- return e;
- }
- function Apc() {
- Apc = ccb;
- wpc = new Bpc("MEDIAN_LAYER", 0);
- ypc = new Bpc("TAIL_LAYER", 1);
- vpc = new Bpc("HEAD_LAYER", 2);
- xpc = new Bpc("SPACE_EFFICIENT_LAYER", 3);
- zpc = new Bpc("WIDEST_LAYER", 4);
- upc = new Bpc("CENTER_LAYER", 5);
- }
- function rJb(a) {
- switch (a.g) {
- case 0:
- case 1:
- case 2:
- return Ucd(), Acd;
- case 3:
+ return 50;
+ break;
case 4:
+ return 51;
+ break;
case 5:
- return Ucd(), Rcd;
+ break;
case 6:
+ {
+ }
+ break;
case 7:
+ return 5;
+ break;
case 8:
- return Ucd(), Tcd;
+ break;
case 9:
+ break;
case 10:
+ break;
case 11:
- return Ucd(), zcd;
- default:
- return Ucd(), Scd;
- }
- }
- function sKc(a, b) {
- var c2;
- if (a.c.length == 0) {
- return false;
- }
- c2 = Lzc((tCb(0, a.c.length), BD(a.c[0], 17)).c.i);
- FJc();
- if (c2 == (Izc(), Fzc) || c2 == Ezc) {
- return true;
- }
- return FAb(NAb(new YAb(null, new Kub(a, 16)), new AKc()), new CKc(b));
- }
- function cRc(a, b, c2) {
- var d, e, f2;
- if (!a.b[b.g]) {
- a.b[b.g] = true;
- d = c2;
- !d && (d = new SRc());
- Dsb(d.b, b);
- for (f2 = a.a[b.g].Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 188);
- e.b != b && cRc(a, e.b, d);
- e.c != b && cRc(a, e.c, d);
- Dsb(d.a, e);
- }
- return d;
- }
- return null;
- }
- function qSc() {
- qSc = ccb;
- pSc = new rSc("ROOT_PROC", 0);
- lSc = new rSc("FAN_PROC", 1);
- nSc = new rSc("NEIGHBORS_PROC", 2);
- mSc = new rSc("LEVEL_HEIGHT", 3);
- oSc = new rSc("NODE_POSITION_PROC", 4);
- kSc = new rSc("DETREEIFYING_PROC", 5);
- }
- function kqd(a, b) {
- if (JD(b, 239)) {
- return eqd(a, BD(b, 33));
- } else if (JD(b, 186)) {
- return fqd(a, BD(b, 118));
- } else if (JD(b, 439)) {
- return dqd(a, BD(b, 202));
- } else {
- throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b])))));
- }
- }
- function xu(a, b, c2) {
- var d, e;
- this.f = a;
- d = BD(Ohb(a.b, b), 283);
- e = !d ? 0 : d.a;
- Sb(c2, e);
- if (c2 >= (e / 2 | 0)) {
- this.e = !d ? null : d.c;
- this.d = e;
- while (c2++ < e) {
- vu(this);
- }
- } else {
- this.c = !d ? null : d.b;
- while (c2-- > 0) {
- uu(this);
- }
- }
- this.b = b;
- this.a = null;
- }
- function rEb(a, b) {
- var c2, d;
- b.a ? sEb(a, b) : (c2 = BD(Exb(a.b, b.b), 57), !!c2 && c2 == a.a[b.b.f] && !!c2.a && c2.a != b.b.a && c2.c.Fc(b.b), d = BD(Dxb(a.b, b.b), 57), !!d && a.a[d.f] == b.b && !!d.a && d.a != b.b.a && b.b.c.Fc(d), Fxb(a.b, b.b), void 0);
- }
- function FJb(a, b) {
- var c2, d;
- c2 = BD(Mpb(a.b, b), 124);
- if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
- c2.n.b = 0;
- c2.n.c = 0;
- return;
- }
- c2.n.b = a.C.b;
- c2.n.c = a.C.c;
- a.A.Hc((tdd(), sdd)) && KJb(a, b);
- d = JJb(a, b);
- KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w);
- c2.a.a = d;
- }
- function OKb(a, b) {
- var c2, d;
- c2 = BD(Mpb(a.b, b), 124);
- if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
- c2.n.d = 0;
- c2.n.a = 0;
- return;
- }
- c2.n.d = a.C.d;
- c2.n.a = a.C.a;
- a.A.Hc((tdd(), sdd)) && SKb(a, b);
- d = RKb(a, b);
- KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w);
- c2.a.b = d;
- }
- function cOb(a, b) {
- var c2, d, e, f2;
- f2 = new Rkb();
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 65);
- Ekb(f2, new oOb(c2, true));
- Ekb(f2, new oOb(c2, false));
- }
- e = new hOb(a);
- zwb(e.a.a);
- kDb(f2, a.b, new amb(OC(GC(JM, 1), Uhe, 679, 0, [e])));
- }
- function rQb(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- i3 = a.a;
- n = a.b;
- j = b.a;
- o2 = b.b;
- k = c2.a;
- p = c2.b;
- l = d.a;
- q = d.b;
- f2 = i3 * o2 - n * j;
- g = k * q - p * l;
- e = (i3 - j) * (p - q) - (n - o2) * (k - l);
- h = (f2 * (k - l) - g * (i3 - j)) / e;
- m = (f2 * (p - q) - g * (n - o2)) / e;
- return new f7c(h, m);
- }
- function TBc(a, b) {
- var c2, d, e;
- if (a.d[b.p]) {
- return;
- }
- a.d[b.p] = true;
- a.a[b.p] = true;
- for (d = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- if (OZb(c2)) {
- continue;
- }
- e = c2.d.i;
- a.a[e.p] ? Ekb(a.b, c2) : TBc(a, e);
- }
- a.a[b.p] = false;
- }
- function pCc(a, b, c2) {
- var d;
- d = 0;
- switch (BD(vNb(b, (Nyc(), mxc)), 163).g) {
- case 2:
- d = 2 * -c2 + a.a;
- ++a.a;
break;
- case 1:
- d = -c2;
+ case 12:
+ this.pushState("SCALE");
+ return 17;
break;
- case 3:
- d = c2;
+ case 13:
+ return 18;
break;
- case 4:
- d = 2 * c2 + a.b;
- ++a.b;
- }
- wNb(b, (wtc(), Zsc)) && (d += BD(vNb(b, Zsc), 19).a);
- return d;
- }
- function jOc(a, b, c2) {
- var d, e, f2;
- c2.zc(b, a);
- Ekb(a.n, b);
- f2 = a.p.eg(b);
- b.j == a.p.fg() ? yOc(a.e, f2) : yOc(a.j, f2);
- lOc(a);
- for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(e); ) {
- d = BD(Rr(e), 11);
- c2._b(d) || jOc(a, d, c2);
- }
- }
- function rfd(a) {
- var b, c2, d;
- c2 = BD(hkd(a, (Y9c(), Y8c)), 21);
- if (c2.Hc((tdd(), pdd))) {
- d = BD(hkd(a, b9c), 21);
- b = new g7c(BD(hkd(a, _8c), 8));
- if (d.Hc((Idd(), Bdd))) {
- b.a <= 0 && (b.a = 20);
- b.b <= 0 && (b.b = 20);
- }
- return b;
- } else {
- return new d7c();
- }
- }
- function PKd(a) {
- var b, c2, d;
- if (!a.b) {
- d = new $Nd();
- for (c2 = new $yd(SKd(a)); c2.e != c2.i.gc(); ) {
- b = BD(Zyd(c2), 18);
- (b.Bb & ote) != 0 && wtd(d, b);
- }
- vud(d);
- a.b = new nNd((BD(qud(ZKd((NFd(), MFd).o), 8), 18), d.i), d.g);
- $Kd(a).b &= -9;
- }
- return a.b;
- }
- function Rmc(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- i3 = BD(Ee(Ec(b.k), KC(F1, bne, 61, 2, 0, 1)), 122);
- j = b.g;
- c2 = Tmc(b, i3[0]);
- e = Smc(b, i3[1]);
- d = Kmc(a, j, c2, e);
- f2 = Tmc(b, i3[1]);
- h = Smc(b, i3[0]);
- g = Kmc(a, j, f2, h);
- if (d <= g) {
- b.a = c2;
- b.c = e;
- } else {
- b.a = f2;
- b.c = h;
- }
- }
- function ESc(a, b, c2) {
- var d, e, f2;
- Odd(c2, "Processor set neighbors", 1);
- a.a = b.b.b == 0 ? 1 : b.b.b;
- e = null;
- d = Jsb(b.b, 0);
- while (!e && d.b != d.d.c) {
- f2 = BD(Xsb(d), 86);
- Ccb(DD(vNb(f2, (mTc(), jTc)))) && (e = f2);
- }
- !!e && FSc(a, new ZRc(e), c2);
- Qdd(c2);
- }
- function PEd(a) {
- IEd();
- var b, c2, d, e;
- d = hfb(a, wfb(35));
- b = d == -1 ? a : a.substr(0, d);
- c2 = d == -1 ? null : a.substr(d + 1);
- e = kFd(HEd, b);
- if (!e) {
- e = aFd(b);
- lFd(HEd, b, e);
- c2 != null && (e = JEd(e, c2));
- } else
- c2 != null && (e = JEd(e, (uCb(c2), c2)));
- return e;
- }
- function smb(a) {
- var h;
- mmb();
- var b, c2, d, e, f2, g;
- if (JD(a, 54)) {
- for (e = 0, d = a.gc() - 1; e < d; ++e, --d) {
- h = a.Xb(e);
- a._c(e, a.Xb(d));
- a._c(d, h);
- }
- } else {
- b = a.Yc();
- f2 = a.Zc(a.gc());
- while (b.Tb() < f2.Vb()) {
- c2 = b.Pb();
- g = f2.Ub();
- b.Wb(g);
- f2.Wb(c2);
- }
- }
- }
- function I3b(a, b) {
- var c2, d, e;
- Odd(b, "End label pre-processing", 1);
- c2 = Edb(ED(vNb(a, (Nyc(), nyc))));
- d = Edb(ED(vNb(a, ryc)));
- e = gad(BD(vNb(a, Lwc), 103));
- MAb(LAb(new YAb(null, new Kub(a.b, 16)), new Q3b()), new S3b(c2, d, e));
- Qdd(b);
- }
- function NFc(a, b) {
- var c2, d, e, f2, g, h;
- h = 0;
- f2 = new jkb();
- Wjb(f2, b);
- while (f2.b != f2.c) {
- g = BD(fkb(f2), 214);
- h += pHc(g.d, g.e);
- for (e = new olb(g.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 37);
- c2 = BD(Ikb(a.b, d.p), 214);
- c2.s || (h += NFc(a, c2));
- }
- }
- return h;
- }
- function YQc(a, b, c2) {
- var d, e;
- TQc(this);
- b == (FQc(), DQc) ? Qqb(this.r, a.c) : Qqb(this.w, a.c);
- c2 == DQc ? Qqb(this.r, a.d) : Qqb(this.w, a.d);
- UQc(this, a);
- d = VQc(a.c);
- e = VQc(a.d);
- XQc(this, d, e, e);
- this.o = (hQc(), $wnd.Math.abs(d - e) < 0.2);
- }
- function a0d(a, b, c2) {
- var d, e, f2, g, h, i3;
- h = BD(Ajd(a.a, 8), 1936);
- if (h != null) {
- for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
- null.jm();
- }
- }
- d = c2;
- if ((a.a.Db & 1) == 0) {
- i3 = new f0d(a, c2, b);
- d.ui(i3);
- }
- JD(d, 672) ? BD(d, 672).wi(a.a) : d.ti() == a.a && d.vi(null);
- }
- function dae() {
- var a;
- if (Z9d)
- return BD(nUd((yFd(), xFd), Ewe), 1945);
- eae();
- a = BD(JD(Phb((yFd(), xFd), Ewe), 586) ? Phb(xFd, Ewe) : new cae(), 586);
- Z9d = true;
- aae(a);
- bae(a);
- Rhb((JFd(), IFd), a, new fae());
- Tnd(a);
- Shb(xFd, Ewe, a);
- return a;
- }
- function xA(a, b, c2, d) {
- var e;
- e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b);
- e < 0 && (e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b));
- if (e < 0) {
- return false;
- }
- d.d = e;
- return true;
- }
- function AA(a, b, c2, d) {
- var e;
- e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b);
- e < 0 && (e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b));
- if (e < 0) {
- return false;
- }
- d.d = e;
- return true;
- }
- function NVb(a) {
- var b, c2, d;
- KVb(a);
- d = new Rkb();
- for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- Ekb(d, new ZVb(b, true));
- Ekb(d, new ZVb(b, false));
- }
- RVb(a.c);
- rXb(d, a.b, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [a.c])));
- MVb(a);
- }
- function c4b(a) {
- var b, c2, d, e;
- c2 = new Lqb();
- for (e = new olb(a.d); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 181);
- b = BD(d.We((wtc(), Dsc)), 17);
- !!irb(c2.f, b) || Rhb(c2, b, new p4b(b));
- Ekb(BD(Wd(irb(c2.f, b)), 456).b, d);
- }
- return new Tkb(new $ib(c2));
- }
- function Gac(a, b) {
- var c2, d, e, f2, g;
- d = new kkb(a.j.c.length);
- c2 = null;
- for (f2 = new olb(a.j); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 11);
- if (e.j != c2) {
- d.b == d.c || Hac(d, c2, b);
- Yjb(d);
- c2 = e.j;
- }
- g = N3b(e);
- !!g && (Xjb(d, g), true);
- }
- d.b == d.c || Hac(d, c2, b);
- }
- function wbc(a, b) {
- var c2, d, e;
- d = new Bib(a.b, 0);
- while (d.b < d.d.gc()) {
- c2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 70));
- e = BD(vNb(c2, (Nyc(), Qwc)), 272);
- if (e == (qad(), oad)) {
- uib(d);
- Ekb(b.b, c2);
- wNb(c2, (wtc(), Dsc)) || yNb(c2, Dsc, a);
- }
- }
- }
- function GDc(a) {
- var b, c2, d, e, f2;
- b = sr(new Sr(ur(U_b(a).a.Kc(), new Sq())));
- for (e = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- c2 = d.c.i;
- f2 = sr(new Sr(ur(U_b(c2).a.Kc(), new Sq())));
- b = $wnd.Math.max(b, f2);
- }
- return meb(b);
- }
- function rUc(a, b, c2) {
- var d, e, f2, g;
- Odd(c2, "Processor arrange node", 1);
- e = null;
- f2 = new Psb();
- d = Jsb(b.b, 0);
- while (!e && d.b != d.d.c) {
- g = BD(Xsb(d), 86);
- Ccb(DD(vNb(g, (mTc(), jTc)))) && (e = g);
- }
- Gsb(f2, e, f2.c.b, f2.c);
- qUc(a, f2, Udd(c2, 1));
- Qdd(c2);
- }
- function Ffd(a, b, c2) {
- var d, e, f2;
- d = BD(hkd(a, (Y9c(), w8c)), 21);
- e = 0;
- f2 = 0;
- b.a > c2.a && (d.Hc((i8c(), c8c)) ? e = (b.a - c2.a) / 2 : d.Hc(e8c) && (e = b.a - c2.a));
- b.b > c2.b && (d.Hc((i8c(), g8c)) ? f2 = (b.b - c2.b) / 2 : d.Hc(f8c) && (f2 = b.b - c2.b));
- Efd(a, e, f2);
- }
- function aod(a, b, c2, d, e, f2, g, h, i3, j, k, l, m) {
- JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
- pnd(a, c2);
- a.f = g;
- dJd(a, h);
- fJd(a, i3);
- ZId(a, j);
- eJd(a, k);
- CId(a, l);
- aJd(a, m);
- BId(a, true);
- AId(a, e);
- a.ok(f2);
- yId(a, b);
- d != null && (a.i = null, _Id(a, d));
- }
- function PRd(a) {
- var b, c2;
- if (a.f) {
- while (a.n > 0) {
- b = BD(a.k.Xb(a.n - 1), 72);
- c2 = b.ak();
- if (JD(c2, 99) && (BD(c2, 18).Bb & ote) != 0 && (!a.e || c2.Gj() != x2 || c2.aj() != 0) && b.dd() != null) {
- return true;
- } else {
- --a.n;
- }
- }
- return false;
- } else {
- return a.n > 0;
- }
- }
- function Jb(a, b, c2) {
- if (a < 0) {
- return hc(The, OC(GC(SI, 1), Uhe, 1, 5, [c2, meb(a)]));
- } else if (b < 0) {
- throw vbb(new Wdb(Vhe + b));
- } else {
- return hc("%s (%s) must not be greater than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, [c2, meb(a), meb(b)]));
- }
- }
- function Llb(a, b, c2, d, e, f2) {
- var g, h, i3, j;
- g = d - c2;
- if (g < 7) {
- Ilb(b, c2, d, f2);
- return;
- }
- i3 = c2 + e;
- h = d + e;
- j = i3 + (h - i3 >> 1);
- Llb(b, a, i3, j, -e, f2);
- Llb(b, a, j, h, -e, f2);
- if (f2.ue(a[j - 1], a[j]) <= 0) {
- while (c2 < d) {
- NC(b, c2++, a[i3++]);
- }
- return;
- }
- Jlb(a, i3, j, h, b, c2, d, f2);
- }
- function nEb(a, b) {
- var c2, d, e;
- e = new Rkb();
- for (d = new olb(a.c.a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 57);
- if (b.Lb(c2)) {
- Ekb(e, new BEb(c2, true));
- Ekb(e, new BEb(c2, false));
- }
- }
- tEb(a.e);
- kDb(e, a.d, new amb(OC(GC(JM, 1), Uhe, 679, 0, [a.e])));
- }
- function gnc(a, b) {
- var c2, d, e, f2, g, h, i3;
- i3 = b.d;
- e = b.b.j;
- for (h = new olb(i3); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 101);
- f2 = KC(sbb, dle, 25, e.c.length, 16, 1);
- Rhb(a.b, g, f2);
- c2 = g.a.d.p - 1;
- d = g.c.d.p;
- while (c2 != d) {
- c2 = (c2 + 1) % e.c.length;
- f2[c2] = true;
- }
- }
- }
- function tOc(a, b) {
- a.r = new uOc(a.p);
- sOc(a.r, a);
- ye(a.r.j, a.j);
- Osb(a.j);
- Dsb(a.j, b);
- Dsb(a.r.e, b);
- lOc(a);
- lOc(a.r);
- while (a.f.c.length != 0) {
- AOc(BD(Ikb(a.f, 0), 129));
- }
- while (a.k.c.length != 0) {
- AOc(BD(Ikb(a.k, 0), 129));
- }
- return a.r;
- }
- function yid(a, b, c2) {
- var d, e, f2;
- e = XKd(a.Tg(), b);
- d = b - a.Ah();
- if (d < 0) {
- if (!e) {
- throw vbb(new Wdb(mte + b + nte));
- } else if (e.Ij()) {
- f2 = a.Yg(e);
- f2 >= 0 ? a.sh(f2, c2) : uid(a, e, c2);
- } else {
- throw vbb(new Wdb(ite + e.ne() + jte));
- }
- } else {
- did(a, d, e, c2);
- }
- }
- function q6d(b) {
- var c2, d, e, f2;
- d = BD(b, 49).qh();
- if (d) {
- try {
- e = null;
- c2 = nUd((yFd(), xFd), LEd(MEd(d)));
- if (c2) {
- f2 = c2.rh();
- !!f2 && (e = f2.Wk(tfb(d.e)));
- }
- if (!!e && e != b) {
- return q6d(e);
- }
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 60))
- throw vbb(a);
- }
- }
- return b;
- }
- function jrb(a, b, c2) {
- var d, e, f2, g;
- g = b == null ? 0 : a.b.se(b);
- e = (d = a.a.get(g), d == null ? new Array() : d);
- if (e.length == 0) {
- a.a.set(g, e);
- } else {
- f2 = grb(a, b, e);
- if (f2) {
- return f2.ed(c2);
- }
- }
- NC(e, e.length, new pjb(b, c2));
- ++a.c;
- zpb(a.b);
- return null;
- }
- function YUc(a, b) {
- var c2, d;
- H2c(a.a);
- K2c(a.a, (PUc(), NUc), NUc);
- K2c(a.a, OUc, OUc);
- d = new j3c();
- e3c(d, OUc, (tVc(), sVc));
- PD(hkd(b, (ZWc(), LWc))) !== PD((pWc(), mWc)) && e3c(d, OUc, qVc);
- e3c(d, OUc, rVc);
- E2c(a.a, d);
- c2 = F2c(a.a, b);
- return c2;
- }
- function uC(a) {
- if (!a) {
- return OB(), NB;
- }
- var b = a.valueOf ? a.valueOf() : a;
- if (b !== a) {
- var c2 = qC[typeof b];
- return c2 ? c2(b) : xC(typeof b);
- } else if (a instanceof Array || a instanceof $wnd.Array) {
- return new xB(a);
- } else {
- return new fC(a);
- }
- }
- function RJb(a, b, c2) {
- var d, e, f2;
- f2 = a.o;
- d = BD(Mpb(a.p, c2), 244);
- e = d.i;
- e.b = gIb(d);
- e.a = fIb(d);
- e.b = $wnd.Math.max(e.b, f2.a);
- e.b > f2.a && !b && (e.b = f2.a);
- e.c = -(e.b - f2.a) / 2;
- switch (c2.g) {
- case 1:
- e.d = -e.a;
+ case 14:
+ this.popState();
break;
- case 3:
- e.d = f2.b;
- }
- hIb(d);
- iIb(d);
- }
- function SJb(a, b, c2) {
- var d, e, f2;
- f2 = a.o;
- d = BD(Mpb(a.p, c2), 244);
- e = d.i;
- e.b = gIb(d);
- e.a = fIb(d);
- e.a = $wnd.Math.max(e.a, f2.b);
- e.a > f2.b && !b && (e.a = f2.b);
- e.d = -(e.a - f2.b) / 2;
- switch (c2.g) {
- case 4:
- e.c = -e.b;
+ case 15:
+ this.begin("acc_title");
+ return 33;
break;
- case 2:
- e.c = f2.a;
- }
- hIb(d);
- iIb(d);
- }
- function Jgc(a, b) {
- var c2, d, e, f2, g;
- if (b.dc()) {
- return;
- }
- e = BD(b.Xb(0), 128);
- if (b.gc() == 1) {
- Igc(a, e, e, 1, 0, b);
- return;
- }
- c2 = 1;
- while (c2 < b.gc()) {
- if (e.j || !e.o) {
- f2 = Ogc(b, c2);
- if (f2) {
- d = BD(f2.a, 19).a;
- g = BD(f2.b, 128);
- Igc(a, e, g, c2, d, b);
- c2 = d + 1;
- e = g;
- }
- }
- }
- }
- function mlc(a) {
- var b, c2, d, e, f2, g;
- g = new Tkb(a.d);
- Okb(g, new Qlc());
- b = (Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]));
- c2 = 0;
- for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 101);
- d = b[c2 % b.length];
- olc(e, d);
- ++c2;
- }
- }
- function o6c(a, b) {
- i6c();
- var c2, d, e, f2;
- if (b.b < 2) {
- return false;
- }
- f2 = Jsb(b, 0);
- c2 = BD(Xsb(f2), 8);
- d = c2;
- while (f2.b != f2.d.c) {
- e = BD(Xsb(f2), 8);
- if (!(m6c(a, d) && m6c(a, e))) {
- return false;
- }
- d = e;
- }
- if (!(m6c(a, d) && m6c(a, c2))) {
- return false;
- }
- return true;
- }
- function hrd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- k = null;
- l = a;
- g = Xpd(l, "x");
- c2 = new Krd(b);
- Gqd(c2.a, g);
- h = Xpd(l, "y");
- d = new Lrd(b);
- Hqd(d.a, h);
- i3 = Xpd(l, Gte);
- e = new Mrd(b);
- Iqd(e.a, i3);
- j = Xpd(l, Fte);
- f2 = new Nrd(b);
- k = (Jqd(f2.a, j), j);
- return k;
- }
- function XMd(a, b) {
- TMd(a, b);
- (a.b & 1) != 0 && (a.a.a = null);
- (a.b & 2) != 0 && (a.a.f = null);
- if ((a.b & 4) != 0) {
- a.a.g = null;
- a.a.i = null;
- }
- if ((a.b & 16) != 0) {
- a.a.d = null;
- a.a.e = null;
- }
- (a.b & 8) != 0 && (a.a.b = null);
- if ((a.b & 32) != 0) {
- a.a.j = null;
- a.a.c = null;
- }
- }
- function l0d(b, c2) {
- var d, e, f2;
- f2 = 0;
- if (c2.length > 0) {
- try {
- f2 = Icb(c2, Rie, Ohe);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- e = a;
- throw vbb(new rFd(e));
- } else
- throw vbb(a);
- }
- }
- d = (!b.a && (b.a = new z0d(b)), b.a);
- return f2 < d.i && f2 >= 0 ? BD(qud(d, f2), 56) : null;
- }
- function Ib(a, b) {
- if (a < 0) {
- return hc(The, OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a)]));
- } else if (b < 0) {
- throw vbb(new Wdb(Vhe + b));
- } else {
- return hc("%s (%s) must be less than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a), meb(b)]));
- }
- }
- function Slb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
- Nfb(f2.a, "" + b);
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function Tlb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
- Nfb(f2.a, "" + b);
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function Ulb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
- Nfb(f2.a, "" + b);
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function Xlb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
- Nfb(f2.a, "" + b);
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function bub(a, b) {
- var c2, d, e, f2, g, h;
- c2 = a.b.c.length;
- e = Ikb(a.b, b);
- while (b * 2 + 1 < c2) {
- d = (f2 = 2 * b + 1, g = f2 + 1, h = f2, g < c2 && a.a.ue(Ikb(a.b, g), Ikb(a.b, f2)) < 0 && (h = g), h);
- if (a.a.ue(e, Ikb(a.b, d)) < 0) {
- break;
- }
- Nkb(a.b, b, Ikb(a.b, d));
- b = d;
- }
- Nkb(a.b, b, e);
- }
- function $Bb(a, b, c2, d, e, f2) {
- var g, h, i3, j, k;
- if (PD(a) === PD(c2)) {
- a = a.slice(b, b + e);
- b = 0;
- }
- i3 = c2;
- for (h = b, j = b + e; h < j; ) {
- g = $wnd.Math.min(h + 1e4, j);
- e = g - h;
- k = a.slice(h, g);
- k.splice(0, 0, d, f2 ? e : 0);
- Array.prototype.splice.apply(i3, k);
- h = g;
- d += e;
- }
- }
- function xGb(a, b, c2) {
- var d, e;
- d = c2.d;
- e = c2.e;
- if (a.g[d.d] <= a.i[b.d] && a.i[b.d] <= a.i[d.d] && a.g[e.d] <= a.i[b.d] && a.i[b.d] <= a.i[e.d]) {
- if (a.i[d.d] < a.i[e.d]) {
- return false;
- }
- return true;
- }
- if (a.i[d.d] < a.i[e.d]) {
- return true;
- }
- return false;
- }
- function cRb(a) {
- var b, c2, d, e, f2, g, h;
- d = a.a.c.length;
- if (d > 0) {
- g = a.c.d;
- h = a.d.d;
- e = Y6c(c7c(new f7c(h.a, h.b), g), 1 / (d + 1));
- f2 = new f7c(g.a, g.b);
- for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 559);
- b.d.a = f2.a;
- b.d.b = f2.b;
- P6c(f2, e);
- }
- }
- }
- function YNb(a, b, c2) {
- var d, e, f2, g, h, i3;
- i3 = Pje;
- for (f2 = new olb(wOb(a.b)); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 168);
- for (h = new olb(wOb(b.b)); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 168);
- d = p6c(e.a, e.b, g.a, g.b, c2);
- i3 = $wnd.Math.min(i3, d);
- }
- }
- return i3;
- }
- function G0b(a, b) {
- if (!b) {
- throw vbb(new Geb());
- }
- a.j = b;
- if (!a.d) {
- switch (a.j.g) {
- case 1:
- a.a.a = a.o.a / 2;
- a.a.b = 0;
- break;
- case 2:
- a.a.a = a.o.a;
- a.a.b = a.o.b / 2;
- break;
- case 3:
- a.a.a = a.o.a / 2;
- a.a.b = a.o.b;
- break;
- case 4:
- a.a.a = 0;
- a.a.b = a.o.b / 2;
- }
- }
- }
- function dfc(a, b) {
- var c2, d, e;
- if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) {
- return Pje;
- }
- e = ugc(b);
- if (e) {
- return $wnd.Math.max(0, a.b / 2 - 0.5);
- }
- c2 = tgc(b);
- if (c2) {
- d = Edb(ED(pBc(c2, (Nyc(), vyc))));
- return $wnd.Math.max(0, d / 2 - 0.5);
- }
- return Pje;
- }
- function ffc(a, b) {
- var c2, d, e;
- if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) {
- return Pje;
- }
- e = ugc(b);
- if (e) {
- return $wnd.Math.max(0, a.b / 2 - 0.5);
- }
- c2 = tgc(b);
- if (c2) {
- d = Edb(ED(pBc(c2, (Nyc(), vyc))));
- return $wnd.Math.max(0, d / 2 - 0.5);
- }
- return Pje;
- }
- function xic(a) {
- var b, c2, d, e, f2, g;
- g = CHc(a.d, a.e);
- for (f2 = g.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 11);
- d = a.e == (Ucd(), Tcd) ? e.e : e.g;
- for (c2 = new olb(d); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 17);
- if (!OZb(b) && b.c.i.c != b.d.i.c) {
- tic(a, b);
- ++a.f;
- ++a.c;
- }
- }
- }
- }
- function tpc(a, b) {
- var c2, d;
- if (b.dc()) {
- return mmb(), mmb(), jmb;
- }
- d = new Rkb();
- Ekb(d, meb(Rie));
- for (c2 = 1; c2 < a.f; ++c2) {
- a.a == null && Toc(a);
- a.a[c2] && Ekb(d, meb(c2));
- }
- if (d.c.length == 1) {
- return mmb(), mmb(), jmb;
- }
- Ekb(d, meb(Ohe));
- return spc(b, d);
- }
- function MJc(a, b) {
- var c2, d, e, f2, g, h, i3;
- g = b.c.i.k != (j0b(), h0b);
- i3 = g ? b.d : b.c;
- c2 = MZb(b, i3).i;
- e = BD(Ohb(a.k, i3), 121);
- d = a.i[c2.p].a;
- if (S_b(i3.i) < (!c2.c ? -1 : Jkb(c2.c.a, c2, 0))) {
- f2 = e;
- h = d;
- } else {
- f2 = d;
- h = e;
- }
- AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 4), f2), h));
- }
- function oqd(a, b, c2) {
- var d, e, f2, g, h, i3;
- if (c2) {
- e = c2.a.length;
- d = new Yge(e);
- for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- i3 = Wqd(a, Vpd(tB(c2, g.a)));
- if (i3) {
- f2 = (!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b);
- wtd(f2, i3);
- }
- }
- }
- }
- function pqd(a, b, c2) {
- var d, e, f2, g, h, i3;
- if (c2) {
- e = c2.a.length;
- d = new Yge(e);
- for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- i3 = Wqd(a, Vpd(tB(c2, g.a)));
- if (i3) {
- f2 = (!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c);
- wtd(f2, i3);
- }
- }
- }
- }
- function po(a, b, c2) {
- var d, e;
- d = b.a & a.f;
- b.b = a.b[d];
- a.b[d] = b;
- e = b.f & a.f;
- b.d = a.c[e];
- a.c[e] = b;
- if (!c2) {
- b.e = a.e;
- b.c = null;
- !a.e ? a.a = b : a.e.c = b;
- a.e = b;
- } else {
- b.e = c2.e;
- !b.e ? a.a = b : b.e.c = b;
- b.c = c2.c;
- !b.c ? a.e = b : b.c.e = b;
- }
- ++a.i;
- ++a.g;
- }
- function qr(a) {
- var b, c2, d;
- b = a.Pb();
- if (!a.Ob()) {
- return b;
- }
- d = Pfb(Qfb(new Ufb(), "expected one element but was: <"), b);
- for (c2 = 0; c2 < 4 && a.Ob(); c2++) {
- Pfb((d.a += She, d), a.Pb());
- }
- a.Ob() && (d.a += ", ...", d);
- d.a += ">";
- throw vbb(new Wdb(d.a));
- }
- function lt(a, b) {
- var c2;
- b.d ? b.d.b = b.b : a.a = b.b;
- b.b ? b.b.d = b.d : a.e = b.d;
- if (!b.e && !b.c) {
- c2 = BD(Thb(a.b, b.a), 283);
- c2.a = 0;
- ++a.c;
- } else {
- c2 = BD(Ohb(a.b, b.a), 283);
- --c2.a;
- !b.e ? c2.b = b.c : b.e.c = b.c;
- !b.c ? c2.c = b.e : b.c.e = b.e;
- }
- --a.d;
- }
- function OA(a) {
- var b, c2;
- c2 = -a.a;
- b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 48, 48]);
- if (c2 < 0) {
- b[0] = 45;
- c2 = -c2;
- }
- b[1] = b[1] + ((c2 / 60 | 0) / 10 | 0) & aje;
- b[2] = b[2] + (c2 / 60 | 0) % 10 & aje;
- b[3] = b[3] + (c2 % 60 / 10 | 0) & aje;
- b[4] = b[4] + c2 % 10 & aje;
- return zfb(b, 0, b.length);
- }
- function uRb(a, b, c2) {
- var d, e;
- d = b.d;
- e = c2.d;
- while (d.a - e.a == 0 && d.b - e.b == 0) {
- d.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
- d.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
- e.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
- e.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
- }
- }
- function N_b(a) {
- var b, c2, d, e;
- a.g = new Rpb(BD(Qb(F1), 290));
- d = 0;
- c2 = (Ucd(), Acd);
- b = 0;
- for (; b < a.j.c.length; b++) {
- e = BD(Ikb(a.j, b), 11);
- if (e.j != c2) {
- d != b && Npb(a.g, c2, new vgd(meb(d), meb(b)));
- c2 = e.j;
- d = b;
- }
- }
- Npb(a.g, c2, new vgd(meb(d), meb(b)));
- }
- function d4b(a) {
- var b, c2, d, e, f2, g, h;
- d = 0;
- for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 29);
- for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- e.p = d++;
- for (h = new olb(e.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- g.p = d++;
- }
- }
- }
- }
- function qPc(a, b, c2, d, e) {
- var f2, g, h, i3, j;
- if (b) {
- for (h = b.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 10);
- for (j = X_b(g, (KAc(), IAc), c2).Kc(); j.Ob(); ) {
- i3 = BD(j.Pb(), 11);
- f2 = BD(Wd(irb(e.f, i3)), 112);
- if (!f2) {
- f2 = new uOc(a.d);
- d.c[d.c.length] = f2;
- jOc(f2, i3, e);
- }
- }
- }
- }
- }
- function vid(a, b) {
- var c2, d, e;
- e = e1d((O6d(), M6d), a.Tg(), b);
- if (e) {
- Q6d();
- BD(e, 66).Oj() || (e = _1d(q1d(M6d, e)));
- d = (c2 = a.Yg(e), BD(c2 >= 0 ? a._g(c2, true, true) : sid(a, e, true), 153));
- BD(d, 215).ol(b);
- } else {
- throw vbb(new Wdb(ite + b.ne() + jte));
- }
- }
- function ugb(a) {
- var b, c2;
- if (a > -140737488355328 && a < 140737488355328) {
- if (a == 0) {
- return 0;
- }
- b = a < 0;
- b && (a = -a);
- c2 = QD($wnd.Math.floor($wnd.Math.log(a) / 0.6931471805599453));
- (!b || a != $wnd.Math.pow(2, c2)) && ++c2;
- return c2;
- }
- return vgb(Cbb(a));
- }
- function QOc(a) {
- var b, c2, d, e, f2, g, h;
- f2 = new zsb();
- for (c2 = new olb(a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 129);
- g = b.a;
- h = b.b;
- if (f2.a._b(g) || f2.a._b(h)) {
- continue;
- }
- e = g;
- d = h;
- if (g.e.b + g.j.b > 2 && h.e.b + h.j.b <= 2) {
- e = h;
- d = g;
- }
- f2.a.zc(e, f2);
- e.q = d;
- }
- return f2;
- }
- function K5b(a, b) {
- var c2, d, e;
- d = new b0b(a);
- tNb(d, b);
- yNb(d, (wtc(), Gsc), b);
- yNb(d, (Nyc(), Vxc), (dcd(), $bd));
- yNb(d, mwc, (F7c(), B7c));
- __b(d, (j0b(), e0b));
- c2 = new H0b();
- F0b(c2, d);
- G0b(c2, (Ucd(), Tcd));
- e = new H0b();
- F0b(e, d);
- G0b(e, zcd);
- return d;
- }
- function Spc(a) {
- switch (a.g) {
- case 0:
- return new fGc((rGc(), oGc));
- case 1:
- return new CFc();
- case 2:
- return new fHc();
- default:
- throw vbb(new Wdb("No implementation is available for the crossing minimizer " + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function tDc(a, b) {
- var c2, d, e, f2, g;
- a.c[b.p] = true;
- Ekb(a.a, b);
- for (g = new olb(b.j); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 11);
- for (d = new b1b(f2.b); llb(d.a) || llb(d.b); ) {
- c2 = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17);
- e = uDc(f2, c2).i;
- a.c[e.p] || tDc(a, e);
- }
- }
- }
- function _Uc(a) {
- var b, c2, d, e, f2, g, h;
- g = 0;
- for (c2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 33);
- h = b.g;
- e = b.f;
- d = $wnd.Math.sqrt(h * h + e * e);
- g = $wnd.Math.max(d, g);
- f2 = _Uc(b);
- g = $wnd.Math.max(f2, g);
- }
- return g;
- }
- function rcd() {
- rcd = ccb;
- pcd = new scd("OUTSIDE", 0);
- ncd = new scd("INSIDE", 1);
- ocd = new scd("NEXT_TO_PORT_IF_POSSIBLE", 2);
- mcd = new scd("ALWAYS_SAME_SIDE", 3);
- lcd = new scd("ALWAYS_OTHER_SAME_SIDE", 4);
- qcd = new scd("SPACE_EFFICIENT", 5);
- }
- function drd(a, b, c2) {
- var d, e, f2, h, i3, j;
- d = Tqd(a, (e = (Fhd(), f2 = new apd(), f2), !!c2 && $od(e, c2), e), b);
- Lkd(d, _pd(b, Vte));
- grd(b, d);
- brd(b, d);
- hrd(b, d);
- h = b;
- i3 = Ypd(h, "ports");
- j = new Jrd(a, d);
- Fqd(j.a, j.b, i3);
- crd(a, b, d);
- Zqd(a, b, d);
- return d;
- }
- function NA(a) {
- var b, c2;
- c2 = -a.a;
- b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 58, 48, 48]);
- if (c2 < 0) {
- b[0] = 45;
- c2 = -c2;
- }
- b[1] = b[1] + ((c2 / 60 | 0) / 10 | 0) & aje;
- b[2] = b[2] + (c2 / 60 | 0) % 10 & aje;
- b[4] = b[4] + (c2 % 60 / 10 | 0) & aje;
- b[5] = b[5] + c2 % 10 & aje;
- return zfb(b, 0, b.length);
- }
- function QA(a) {
- var b;
- b = OC(GC(TD, 1), $ie, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]);
- if (a <= 0) {
- b[3] = 43;
- a = -a;
- }
- b[4] = b[4] + ((a / 60 | 0) / 10 | 0) & aje;
- b[5] = b[5] + (a / 60 | 0) % 10 & aje;
- b[7] = b[7] + (a % 60 / 10 | 0) & aje;
- b[8] = b[8] + a % 10 & aje;
- return zfb(b, 0, b.length);
- }
- function Vlb(a) {
- var b, c2, d, e, f2;
- if (a == null) {
- return Xhe;
- }
- f2 = new xwb(She, "[", "]");
- for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
- Nfb(f2.a, "" + Ubb(b));
- }
- return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
- }
- function DGb(a, b) {
- var c2, d, e;
- e = Ohe;
- for (d = new olb(LFb(b)); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 213);
- if (c2.f && !a.c[c2.c]) {
- a.c[c2.c] = true;
- e = $wnd.Math.min(e, DGb(a, xFb(c2, b)));
- }
- }
- a.i[b.d] = a.j;
- a.g[b.d] = $wnd.Math.min(e, a.j++);
- return a.g[b.d];
- }
- function EKb(a, b) {
- var c2, d, e;
- for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 111);
- d.e.b = (c2 = d.b, c2.Xe((Y9c(), s9c)) ? c2.Hf() == (Ucd(), Acd) ? -c2.rf().b - Edb(ED(c2.We(s9c))) : Edb(ED(c2.We(s9c))) : c2.Hf() == (Ucd(), Acd) ? -c2.rf().b : 0);
- }
- }
- function LPb(a) {
- var b, c2, d, e, f2, g, h;
- c2 = IOb(a.e);
- f2 = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5);
- b = c2.a - f2.a;
- e = c2.b - f2.b;
- for (h = 0; h < a.c; h++) {
- d = b;
- for (g = 0; g < a.d; g++) {
- JOb(a.e, new J6c(d, e, a.a, a.b)) && aNb(a, g, h, false, true);
- d += a.a;
- }
- e += a.b;
- }
- }
- function s2c(a) {
- var b, c2, d;
- if (Ccb(DD(hkd(a, (Y9c(), M8c))))) {
- d = new Rkb();
- for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 79);
- Qld(b) && Ccb(DD(hkd(b, N8c))) && (d.c[d.c.length] = b, true);
- }
- return d;
- } else {
- return mmb(), mmb(), jmb;
- }
- }
- function Vpd(a) {
- var b, c2;
- c2 = false;
- if (JD(a, 204)) {
- c2 = true;
- return BD(a, 204).a;
- }
- if (!c2) {
- if (JD(a, 258)) {
- b = BD(a, 258).a % 1 == 0;
- if (b) {
- c2 = true;
- return meb(Idb(BD(a, 258).a));
- }
- }
- }
- throw vbb(new cqd("Id must be a string or an integer: '" + a + "'."));
- }
- function k0d(a, b) {
- var c2, d, e, f2, g, h;
- f2 = null;
- for (e = new x0d((!a.a && (a.a = new z0d(a)), a.a)); u0d(e); ) {
- c2 = BD(Vud(e), 56);
- d = (g = c2.Tg(), h = (OKd(g), g.o), !h || !c2.mh(h) ? null : h6d(KJd(h), c2.ah(h)));
- if (d != null) {
- if (dfb(d, b)) {
- f2 = c2;
- break;
- }
- }
- }
- return f2;
- }
- function Bw(a, b, c2) {
- var d, e, f2, g, h;
- Xj(c2, "occurrences");
- if (c2 == 0) {
- return h = BD(Hv(nd(a.a), b), 14), !h ? 0 : h.gc();
- }
- g = BD(Hv(nd(a.a), b), 14);
- if (!g) {
- return 0;
- }
- f2 = g.gc();
- if (c2 >= f2) {
- g.$b();
- } else {
- e = g.Kc();
- for (d = 0; d < c2; d++) {
- e.Pb();
- e.Qb();
- }
- }
- return f2;
- }
- function ax(a, b, c2) {
- var d, e, f2, g;
- Xj(c2, "oldCount");
- Xj(0, "newCount");
- d = BD(Hv(nd(a.a), b), 14);
- if ((!d ? 0 : d.gc()) == c2) {
- Xj(0, "count");
- e = (f2 = BD(Hv(nd(a.a), b), 14), !f2 ? 0 : f2.gc());
- g = -e;
- g > 0 ? zh() : g < 0 && Bw(a, b, -g);
- return true;
- } else {
- return false;
- }
- }
- function fIb(a) {
- var b, c2, d, e, f2, g, h;
- h = 0;
- if (a.b == 0) {
- g = jIb(a, true);
- b = 0;
- for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- if (c2 > 0) {
- h += c2;
- ++b;
- }
- }
- b > 1 && (h += a.c * (b - 1));
- } else {
- h = Mtb(Zzb(OAb(JAb(Plb(a.a), new xIb()), new zIb())));
- }
- return h > 0 ? h + a.n.d + a.n.a : 0;
- }
- function gIb(a) {
- var b, c2, d, e, f2, g, h;
- h = 0;
- if (a.b == 0) {
- h = Mtb(Zzb(OAb(JAb(Plb(a.a), new tIb()), new vIb())));
- } else {
- g = kIb(a, true);
- b = 0;
- for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- if (c2 > 0) {
- h += c2;
- ++b;
- }
- }
- b > 1 && (h += a.c * (b - 1));
- }
- return h > 0 ? h + a.n.b + a.n.c : 0;
- }
- function MJb(a, b) {
- var c2, d, e, f2;
- f2 = BD(Mpb(a.b, b), 124);
- c2 = f2.a;
- for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 111);
- !!d.c && (c2.a = $wnd.Math.max(c2.a, ZHb(d.c)));
- }
- if (c2.a > 0) {
- switch (b.g) {
- case 2:
- f2.n.c = a.s;
- break;
- case 4:
- f2.n.b = a.s;
- }
- }
- }
- function NQb(a, b) {
- var c2, d, e;
- c2 = BD(vNb(b, (wSb(), oSb)), 19).a - BD(vNb(a, oSb), 19).a;
- if (c2 == 0) {
- d = c7c(R6c(BD(vNb(a, (HSb(), DSb)), 8)), BD(vNb(a, ESb), 8));
- e = c7c(R6c(BD(vNb(b, DSb), 8)), BD(vNb(b, ESb), 8));
- return Kdb(d.a * d.b, e.a * e.b);
- }
- return c2;
- }
- function iRc(a, b) {
- var c2, d, e;
- c2 = BD(vNb(b, (JTc(), ETc)), 19).a - BD(vNb(a, ETc), 19).a;
- if (c2 == 0) {
- d = c7c(R6c(BD(vNb(a, (mTc(), VSc)), 8)), BD(vNb(a, WSc), 8));
- e = c7c(R6c(BD(vNb(b, VSc), 8)), BD(vNb(b, WSc), 8));
- return Kdb(d.a * d.b, e.a * e.b);
- }
- return c2;
- }
- function TZb(a) {
- var b, c2;
- c2 = new Ufb();
- c2.a += "e_";
- b = KZb(a);
- b != null && (c2.a += "" + b, c2);
- if (!!a.c && !!a.d) {
- Qfb((c2.a += " ", c2), C0b(a.c));
- Qfb(Pfb((c2.a += "[", c2), a.c.i), "]");
- Qfb((c2.a += gne, c2), C0b(a.d));
- Qfb(Pfb((c2.a += "[", c2), a.d.i), "]");
- }
- return c2.a;
- }
- function zRc(a) {
- switch (a.g) {
- case 0:
- return new lUc();
- case 1:
- return new sUc();
- case 2:
- return new CUc();
- case 3:
- return new IUc();
- default:
- throw vbb(new Wdb("No implementation is available for the layout phase " + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function mfd(a, b, c2, d, e) {
- var f2;
- f2 = 0;
- switch (e.g) {
- case 1:
- f2 = $wnd.Math.max(0, b.b + a.b - (c2.b + d));
+ case 16:
+ this.popState();
+ return "acc_title_value";
break;
- case 3:
- f2 = $wnd.Math.max(0, -a.b - d);
+ case 17:
+ this.begin("acc_descr");
+ return 35;
break;
- case 2:
- f2 = $wnd.Math.max(0, -a.a - d);
+ case 18:
+ this.popState();
+ return "acc_descr_value";
break;
- case 4:
- f2 = $wnd.Math.max(0, b.a + a.a - (c2.a + d));
- }
- return f2;
- }
- function mqd(a, b, c2) {
- var d, e, f2, g, h;
- if (c2) {
- e = c2.a.length;
- d = new Yge(e);
- for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- f2 = Zpd(c2, g.a);
- Lte in f2.a || Mte in f2.a ? $qd(a, f2, b) : erd(a, f2, b);
- otd(BD(Ohb(a.b, Wpd(f2)), 79));
- }
- }
- }
- function LJd(a) {
- var b, c2;
- switch (a.b) {
- case -1: {
- return true;
- }
- case 0: {
- c2 = a.t;
- if (c2 > 1 || c2 == -1) {
- a.b = -1;
- return true;
- } else {
- b = wId(a);
- if (!!b && (Q6d(), b.Cj() == Bve)) {
- a.b = -1;
- return true;
- } else {
- a.b = 1;
- return false;
- }
- }
- }
- default:
- case 1: {
- return false;
- }
- }
- }
- function k1d(a, b) {
- var c2, d, e, f2, g;
- d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s);
- f2 = null;
- for (e = 0, g = d.i; e < g; ++e) {
- c2 = BD(qud(d, e), 170);
- switch ($1d(q1d(a, c2))) {
- case 2:
- case 3: {
- !f2 && (f2 = new Rkb());
- f2.c[f2.c.length] = c2;
- }
- }
- }
- return !f2 ? (mmb(), mmb(), jmb) : f2;
- }
- function tde(a, b) {
- var c2, d, e, f2;
- nde(a);
- if (a.c != 0 || a.a != 123)
- throw vbb(new mde(tvd((h0d(), Fue))));
- f2 = b == 112;
- d = a.d;
- c2 = gfb(a.i, 125, d);
- if (c2 < 0)
- throw vbb(new mde(tvd((h0d(), Gue))));
- e = qfb(a.i, d, c2);
- a.d = c2 + 1;
- return Lfe(e, f2, (a.e & 512) == 512);
- }
- function QTb(a) {
- var b;
- b = BD(vNb(a, (Nyc(), Iwc)), 314);
- if (b == (Rpc(), Ppc)) {
- throw vbb(new z2c("The hierarchy aware processor " + b + " in child node " + a + " is only allowed if the root node specifies the same hierarchical processor."));
- }
- }
- function dhc(a, b) {
- Hgc();
- var c2, d, e, f2, g, h;
- c2 = null;
- for (g = b.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 128);
- if (f2.o) {
- continue;
- }
- d = F6c(f2.a);
- e = C6c(f2.a);
- h = new hic(d, e, null, BD(f2.d.a.ec().Kc().Pb(), 17));
- Ekb(h.c, f2.a);
- a.c[a.c.length] = h;
- !!c2 && Ekb(c2.d, h);
- c2 = h;
- }
- }
- function hKd(a, b) {
- var c2, d, e;
- if (!b) {
- jKd(a, null);
- _Jd(a, null);
- } else if ((b.i & 4) != 0) {
- d = "[]";
- for (c2 = b.c; ; c2 = c2.c) {
- if ((c2.i & 4) == 0) {
- e = jfb((fdb(c2), c2.o + d));
- jKd(a, e);
- _Jd(a, e);
- break;
- }
- d += "[]";
- }
- } else {
- e = jfb((fdb(b), b.o));
- jKd(a, e);
- _Jd(a, e);
- }
- a.yk(b);
- }
- function b3d(a, b, c2, d, e) {
- var f2, g, h, i3;
- i3 = a3d(a, BD(e, 56));
- if (PD(i3) !== PD(e)) {
- h = BD(a.g[c2], 72);
- f2 = R6d(b, i3);
- mud(a, c2, t3d(a, c2, f2));
- if (oid(a.e)) {
- g = H2d(a, 9, f2.ak(), e, i3, d, false);
- Qwd(g, new pSd(a.e, 9, a.c, h, f2, d, false));
- Rwd(g);
- }
- return i3;
- }
- return e;
- }
- function xCc(a, b, c2) {
- var d, e, f2, g, h, i3;
- d = BD(Qc(a.c, b), 15);
- e = BD(Qc(a.c, c2), 15);
- f2 = d.Zc(d.gc());
- g = e.Zc(e.gc());
- while (f2.Sb() && g.Sb()) {
- h = BD(f2.Ub(), 19);
- i3 = BD(g.Ub(), 19);
- if (h != i3) {
- return beb(h.a, i3.a);
- }
- }
- return !f2.Ob() && !g.Ob() ? 0 : f2.Ob() ? 1 : -1;
- }
- function m5c(c2, d) {
- var e, f2, g;
- try {
- g = fs(c2.a, d);
- return g;
- } catch (b) {
- b = ubb(b);
- if (JD(b, 32)) {
- try {
- f2 = Icb(d, Rie, Ohe);
- e = gdb(c2.a);
- if (f2 >= 0 && f2 < e.length) {
- return e[f2];
- }
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 127))
- throw vbb(a);
- }
- return null;
- } else
- throw vbb(b);
- }
- }
- function tid(a, b) {
- var c2, d, e;
- e = e1d((O6d(), M6d), a.Tg(), b);
- if (e) {
- Q6d();
- BD(e, 66).Oj() || (e = _1d(q1d(M6d, e)));
- d = (c2 = a.Yg(e), BD(c2 >= 0 ? a._g(c2, true, true) : sid(a, e, true), 153));
- return BD(d, 215).ll(b);
- } else {
- throw vbb(new Wdb(ite + b.ne() + lte));
- }
- }
- function BZd() {
- tZd();
- var a;
- if (sZd)
- return BD(nUd((yFd(), xFd), _ve), 1939);
- rEd(CK, new J_d());
- CZd();
- a = BD(JD(Phb((yFd(), xFd), _ve), 547) ? Phb(xFd, _ve) : new AZd(), 547);
- sZd = true;
- yZd(a);
- zZd(a);
- Rhb((JFd(), IFd), a, new EZd());
- Shb(xFd, _ve, a);
- return a;
- }
- function v2d(a, b) {
- var c2, d, e, f2;
- a.j = -1;
- if (oid(a.e)) {
- c2 = a.i;
- f2 = a.i != 0;
- lud(a, b);
- d = new pSd(a.e, 3, a.c, null, b, c2, f2);
- e = b.Qk(a.e, a.c, null);
- e = h3d(a, b, e);
- if (!e) {
- Uhd(a.e, d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- } else {
- lud(a, b);
- e = b.Qk(a.e, a.c, null);
- !!e && e.Fi();
- }
- }
- function rA(a, b) {
- var c2, d, e;
- e = 0;
- d = b[0];
- if (d >= a.length) {
- return -1;
- }
- c2 = (BCb(d, a.length), a.charCodeAt(d));
- while (c2 >= 48 && c2 <= 57) {
- e = e * 10 + (c2 - 48);
- ++d;
- if (d >= a.length) {
- break;
- }
- c2 = (BCb(d, a.length), a.charCodeAt(d));
- }
- d > b[0] ? b[0] = d : e = -1;
- return e;
- }
- function vMb(a) {
- var b, c2, d, e, f2;
- e = BD(a.a, 19).a;
- f2 = BD(a.b, 19).a;
- c2 = e;
- d = f2;
- b = $wnd.Math.max($wnd.Math.abs(e), $wnd.Math.abs(f2));
- if (e <= 0 && e == f2) {
- c2 = 0;
- d = f2 - 1;
- } else {
- if (e == -b && f2 != b) {
- c2 = f2;
- d = e;
- f2 >= 0 && ++c2;
- } else {
- c2 = -f2;
- d = e;
- }
- }
- return new vgd(meb(c2), meb(d));
- }
- function fNb(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- for (e = 0; e < b.o; e++) {
- f2 = e - b.j + c2;
- for (g = 0; g < b.p; g++) {
- h = g - b.k + d;
- if ((i3 = f2, j = h, i3 += a.j, j += a.k, i3 >= 0 && j >= 0 && i3 < a.o && j < a.p) && (!ZMb(b, e, g) && hNb(a, f2, h) || YMb(b, e, g) && !iNb(a, f2, h))) {
- return true;
- }
- }
- }
- return false;
- }
- function LNc(a, b, c2) {
- var d, e, f2, g, h;
- g = a.c;
- h = a.d;
- f2 = l7c(OC(GC(m1, 1), nie, 8, 0, [g.i.n, g.n, g.a])).b;
- e = (f2 + l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).b) / 2;
- d = null;
- g.j == (Ucd(), zcd) ? d = new f7c(b + g.i.c.c.a + c2, e) : d = new f7c(b - c2, e);
- St(a.a, 0, d);
- }
- function Qld(a) {
- var b, c2, d, e;
- b = null;
- for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) {
- c2 = BD(Rr(d), 82);
- e = atd(c2);
- if (!b) {
- b = e;
- } else if (b != e) {
- return false;
- }
- }
- return true;
- }
- function sud(a, b, c2) {
- var d;
- ++a.j;
- if (b >= a.i)
- throw vbb(new qcb(lue + b + mue + a.i));
- if (c2 >= a.i)
- throw vbb(new qcb(nue + c2 + mue + a.i));
- d = a.g[c2];
- if (b != c2) {
- b < c2 ? $fb(a.g, b, a.g, b + 1, c2 - b) : $fb(a.g, c2 + 1, a.g, c2, b - c2);
- NC(a.g, b, d);
- a.ei(b, d, c2);
- a.ci();
- }
- return d;
- }
- function Rc(a, b, c2) {
- var d;
- d = BD(a.c.xc(b), 14);
- if (!d) {
- d = a.ic(b);
- if (d.Fc(c2)) {
- ++a.d;
- a.c.zc(b, d);
- return true;
- } else {
- throw vbb(new ycb("New Collection violated the Collection spec"));
- }
- } else if (d.Fc(c2)) {
- ++a.d;
- return true;
- } else {
- return false;
- }
- }
- function heb(a) {
- var b, c2, d;
- if (a < 0) {
- return 0;
- } else if (a == 0) {
- return 32;
- } else {
- d = -(a >> 16);
- b = d >> 16 & 16;
- c2 = 16 - b;
- a = a >> b;
- d = a - 256;
- b = d >> 16 & 8;
- c2 += b;
- a <<= b;
- d = a - Rje;
- b = d >> 16 & 4;
- c2 += b;
- a <<= b;
- d = a - oie;
- b = d >> 16 & 2;
- c2 += b;
- a <<= b;
- d = a >> 14;
- b = d & ~(d >> 1);
- return c2 + 2 - b;
- }
- }
- function $Pb(a) {
- QPb();
- var b, c2, d, e;
- PPb = new Rkb();
- OPb = new Lqb();
- NPb = new Rkb();
- b = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a);
- SPb(b);
- for (e = new Fyd(b); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 33);
- if (Jkb(PPb, d, 0) == -1) {
- c2 = new Rkb();
- Ekb(NPb, c2);
- TPb(d, c2);
- }
- }
- return NPb;
- }
- function BQb(a, b, c2) {
- var d, e, f2, g;
- a.a = c2.b.d;
- if (JD(b, 352)) {
- e = itd(BD(b, 79), false, false);
- f2 = ofd(e);
- d = new FQb(a);
- reb(f2, d);
- ifd(f2, e);
- b.We((Y9c(), Q8c)) != null && reb(BD(b.We(Q8c), 74), d);
- } else {
- g = BD(b, 470);
- g.Hg(g.Dg() + a.a.a);
- g.Ig(g.Eg() + a.a.b);
- }
- }
- function _5b(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- j = Edb(ED(vNb(b, (Nyc(), zyc))));
- i3 = a[0].n.a + a[0].o.a + a[0].d.c + j;
- for (h = 1; h < a.length; h++) {
- d = a[h].n;
- e = a[h].o;
- c2 = a[h].d;
- f2 = d.a - c2.b - i3;
- f2 < 0 && (d.a -= f2);
- g = b.f;
- g.a = $wnd.Math.max(g.a, d.a + e.a);
- i3 = d.a + e.a + c2.c + j;
- }
- }
- function D$c(a, b) {
- var c2, d, e, f2, g, h;
- d = BD(BD(Ohb(a.g, b.a), 46).a, 65);
- e = BD(BD(Ohb(a.g, b.b), 46).a, 65);
- f2 = d.b;
- g = e.b;
- c2 = z6c(f2, g);
- if (c2 >= 0) {
- return c2;
- }
- h = U6c(c7c(new f7c(g.c + g.b / 2, g.d + g.a / 2), new f7c(f2.c + f2.b / 2, f2.d + f2.a / 2)));
- return -(xOb(f2, g) - 1) * h;
- }
- function ufd(a, b, c2) {
- var d;
- MAb(new YAb(null, (!c2.a && (c2.a = new cUd(A2, c2, 6, 6)), new Kub(c2.a, 16))), new Mfd(a, b));
- MAb(new YAb(null, (!c2.n && (c2.n = new cUd(D2, c2, 1, 7)), new Kub(c2.n, 16))), new Ofd(a, b));
- d = BD(hkd(c2, (Y9c(), Q8c)), 74);
- !!d && p7c(d, a, b);
- }
- function sid(a, b, c2) {
- var d, e, f2;
- f2 = e1d((O6d(), M6d), a.Tg(), b);
- if (f2) {
- Q6d();
- BD(f2, 66).Oj() || (f2 = _1d(q1d(M6d, f2)));
- e = (d = a.Yg(f2), BD(d >= 0 ? a._g(d, true, true) : sid(a, f2, true), 153));
- return BD(e, 215).hl(b, c2);
- } else {
- throw vbb(new Wdb(ite + b.ne() + lte));
- }
- }
- function wAd(a, b, c2, d) {
- var e, f2, g, h, i3;
- e = a.d[b];
- if (e) {
- f2 = e.g;
- i3 = e.i;
- if (d != null) {
- for (h = 0; h < i3; ++h) {
- g = BD(f2[h], 133);
- if (g.Sh() == c2 && pb(d, g.cd())) {
- return g;
- }
- }
- } else {
- for (h = 0; h < i3; ++h) {
- g = BD(f2[h], 133);
- if (PD(g.cd()) === PD(d)) {
- return g;
- }
- }
- }
- }
- return null;
- }
- function Pgb(a, b) {
- var c2;
- if (b < 0) {
- throw vbb(new ocb("Negative exponent"));
- }
- if (b == 0) {
- return Cgb;
- } else if (b == 1 || Kgb(a, Cgb) || Kgb(a, Ggb)) {
- return a;
- }
- if (!Sgb(a, 0)) {
- c2 = 1;
- while (!Sgb(a, c2)) {
- ++c2;
- }
- return Ogb(bhb(c2 * b), Pgb(Rgb2(a, c2), b));
- }
- return Jhb(a, b);
- }
- function xlb(a, b) {
- var c2, d, e;
- if (PD(a) === PD(b)) {
- return true;
- }
- if (a == null || b == null) {
- return false;
- }
- if (a.length != b.length) {
- return false;
- }
- for (c2 = 0; c2 < a.length; ++c2) {
- d = a[c2];
- e = b[c2];
- if (!(PD(d) === PD(e) || d != null && pb(d, e))) {
- return false;
- }
- }
- return true;
- }
- function CVb(a) {
- nVb();
- var b, c2, d;
- this.b = mVb;
- this.c = (ead(), cad);
- this.f = (iVb(), hVb);
- this.a = a;
- zVb(this, new DVb());
- sVb(this);
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 81);
- if (!c2.d) {
- b = new gVb(OC(GC(IP, 1), Uhe, 81, 0, [c2]));
- Ekb(a.a, b);
- }
- }
- }
- function D3b(a, b, c2) {
- var d, e, f2, g, h, i3;
- if (!a || a.c.length == 0) {
- return null;
- }
- f2 = new cIb(b, !c2);
- for (e = new olb(a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 70);
- UHb(f2, (a$b(), new v$b(d)));
- }
- g = f2.i;
- g.a = (i3 = f2.n, f2.e.b + i3.d + i3.a);
- g.b = (h = f2.n, f2.e.a + h.b + h.c);
- return f2;
- }
- function O5b(a) {
- var b, c2, d, e, f2, g, h;
- h = l_b(a.a);
- Nlb(h, new T5b());
- c2 = null;
- for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- if (d.k != (j0b(), e0b)) {
+ case 19:
+ this.begin("acc_descr_multiline");
break;
- }
- b = BD(vNb(d, (wtc(), Hsc)), 61);
- if (b != (Ucd(), Tcd) && b != zcd) {
- continue;
- }
- !!c2 && BD(vNb(c2, Qsc), 15).Fc(d);
- c2 = d;
- }
- }
- function YOc(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- i3 = (tCb(b, a.c.length), BD(a.c[b], 329));
- Kkb(a, b);
- if (i3.b / 2 >= c2) {
- d = b;
- j = (i3.c + i3.a) / 2;
- g = j - c2;
- if (i3.c <= j - c2) {
- e = new bPc(i3.c, g);
- Dkb(a, d++, e);
- }
- h = j + c2;
- if (h <= i3.a) {
- f2 = new bPc(h, i3.a);
- wCb(d, a.c.length);
- aCb(a.c, d, f2);
- }
- }
- }
- function u0d(a) {
- var b;
- if (!a.c && a.g == null) {
- a.d = a.si(a.f);
- wtd(a, a.d);
- b = a.d;
- } else {
- if (a.g == null) {
- return true;
- } else if (a.i == 0) {
- return false;
- } else {
- b = BD(a.g[a.i - 1], 47);
- }
- }
- if (b == a.b && null.km >= null.jm()) {
- Vud(a);
- return u0d(a);
- } else {
- return b.Ob();
- }
- }
- function KTb(a, b, c2) {
- var d, e, f2, g, h;
- h = c2;
- !h && (h = Ydd(new Zdd(), 0));
- Odd(h, Vme, 1);
- aUb(a.c, b);
- g = EYb(a.a, b);
- if (g.gc() == 1) {
- MTb(BD(g.Xb(0), 37), h);
- } else {
- f2 = 1 / g.gc();
- for (e = g.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 37);
- MTb(d, Udd(h, f2));
- }
- }
- CYb(a.a, g, b);
- NTb(b);
- Qdd(h);
- }
- function qYb(a) {
- this.a = a;
- if (a.c.i.k == (j0b(), e0b)) {
- this.c = a.c;
- this.d = BD(vNb(a.c.i, (wtc(), Hsc)), 61);
- } else if (a.d.i.k == e0b) {
- this.c = a.d;
- this.d = BD(vNb(a.d.i, (wtc(), Hsc)), 61);
- } else {
- throw vbb(new Wdb("Edge " + a + " is not an external edge."));
- }
- }
- function oQd(a, b) {
- var c2, d, e;
- e = a.b;
- a.b = b;
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, e, a.b));
- if (!b) {
- pnd(a, null);
- qQd(a, 0);
- pQd(a, null);
- } else if (b != a) {
- pnd(a, b.zb);
- qQd(a, b.d);
- c2 = (d = b.c, d == null ? b.zb : d);
- pQd(a, c2 == null || dfb(c2, b.zb) ? null : c2);
- }
- }
- function NRd(a) {
- var b, c2;
- if (a.f) {
- while (a.n < a.o) {
- b = BD(!a.j ? a.k.Xb(a.n) : a.j.pi(a.n), 72);
- c2 = b.ak();
- if (JD(c2, 99) && (BD(c2, 18).Bb & ote) != 0 && (!a.e || c2.Gj() != x2 || c2.aj() != 0) && b.dd() != null) {
- return true;
- } else {
- ++a.n;
- }
- }
- return false;
- } else {
- return a.n < a.o;
- }
- }
- function _i(a, b) {
- var c2;
- this.e = (im(), Qb(a), im(), nm(a));
- this.c = (Qb(b), nm(b));
- Lb(this.e.Hd().dc() == this.c.Hd().dc());
- this.d = Ev(this.e);
- this.b = Ev(this.c);
- c2 = IC(SI, [nie, Uhe], [5, 1], 5, [this.e.Hd().gc(), this.c.Hd().gc()], 2);
- this.a = c2;
- Ri(this);
- }
- function vz(b) {
- !tz && (tz = wz()), tz;
- var d = b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(a) {
- return uz(a);
- });
- return '"' + d + '"';
- }
- function cEb(a) {
- ODb();
- var b, c2;
- this.b = LDb;
- this.c = NDb;
- this.g = (FDb(), EDb);
- this.d = (ead(), cad);
- this.a = a;
- RDb(this);
- for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- !b.a && pDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), a);
- b.e = new K6c(b.d);
- }
- }
- function HQb(a) {
- var b, c2, d, e, f2, g;
- e = a.e.c.length;
- d = KC(yK, eme, 15, e, 0, 1);
- for (g = new olb(a.e); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 144);
- d[f2.b] = new Psb();
- }
- for (c2 = new olb(a.c); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 282);
- d[b.c.b].Fc(b);
- d[b.d.b].Fc(b);
- }
- return d;
- }
- function fDc(a) {
- var b, c2, d, e, f2, g, h;
- h = Pu(a.c.length);
- for (e = new olb(a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- g = new Tqb();
- f2 = U_b(d);
- for (c2 = new Sr(ur(f2.a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- b.c.i == b.d.i || Qqb(g, b.d.i);
- }
- h.c[h.c.length] = g;
- }
- return h;
- }
- function ozd(a, b) {
- var c2, d, e, f2, g;
- c2 = BD(Ajd(a.a, 4), 126);
- g = c2 == null ? 0 : c2.length;
- if (b >= g)
- throw vbb(new Cyd(b, g));
- e = c2[b];
- if (g == 1) {
- d = null;
- } else {
- d = KC($3, hve, 415, g - 1, 0, 1);
- $fb(c2, 0, d, 0, b);
- f2 = g - b - 1;
- f2 > 0 && $fb(c2, b + 1, d, b, f2);
- }
- b0d(a, d);
- a0d(a, b, e);
- return e;
- }
- function m8d() {
- m8d = ccb;
- k8d = BD(qud(ZKd((r8d(), q8d).qb), 6), 34);
- h8d = BD(qud(ZKd(q8d.qb), 3), 34);
- i8d = BD(qud(ZKd(q8d.qb), 4), 34);
- j8d = BD(qud(ZKd(q8d.qb), 5), 18);
- XId(k8d);
- XId(h8d);
- XId(i8d);
- XId(j8d);
- l8d = new amb(OC(GC(t5, 1), Mve, 170, 0, [k8d, h8d]));
- }
- function AJb(a, b) {
- var c2;
- this.d = new H_b();
- this.b = b;
- this.e = new g7c(b.qf());
- c2 = a.u.Hc((rcd(), ocd));
- a.u.Hc(ncd) ? a.D ? this.a = c2 && !b.If() : this.a = true : a.u.Hc(pcd) ? c2 ? this.a = !(b.zf().Kc().Ob() || b.Bf().Kc().Ob()) : this.a = false : this.a = false;
- }
- function IKb(a, b) {
- var c2, d, e, f2;
- c2 = a.o.a;
- for (f2 = BD(BD(Qc(a.r, b), 21), 84).Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 111);
- e.e.a = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Tcd) ? -d.rf().a - Edb(ED(d.We(s9c))) : c2 + Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Tcd) ? -d.rf().a : c2);
- }
- }
- function Q1b(a, b) {
- var c2, d, e, f2;
- c2 = BD(vNb(a, (Nyc(), Lwc)), 103);
- f2 = BD(hkd(b, $xc), 61);
- e = BD(vNb(a, Vxc), 98);
- if (e != (dcd(), bcd) && e != ccd) {
- if (f2 == (Ucd(), Scd)) {
- f2 = lfd(b, c2);
- f2 == Scd && (f2 = Zcd(c2));
- }
- } else {
- d = M1b(b);
- d > 0 ? f2 = Zcd(c2) : f2 = Wcd(Zcd(c2));
- }
- jkd(b, $xc, f2);
- }
- function olc(a, b) {
- var c2, d, e, f2, g;
- g = a.j;
- b.a != b.b && Okb(g, new Ulc());
- e = g.c.length / 2 | 0;
- for (d = 0; d < e; d++) {
- f2 = (tCb(d, g.c.length), BD(g.c[d], 113));
- f2.c && G0b(f2.d, b.a);
- }
- for (c2 = e; c2 < g.c.length; c2++) {
- f2 = (tCb(c2, g.c.length), BD(g.c[c2], 113));
- f2.c && G0b(f2.d, b.b);
- }
- }
- function TGc(a, b, c2) {
- var d, e, f2;
- d = a.c[b.c.p][b.p];
- e = a.c[c2.c.p][c2.p];
- if (d.a != null && e.a != null) {
- f2 = Ddb(d.a, e.a);
- f2 < 0 ? WGc(a, b, c2) : f2 > 0 && WGc(a, c2, b);
- return f2;
- } else if (d.a != null) {
- WGc(a, b, c2);
- return -1;
- } else if (e.a != null) {
- WGc(a, c2, b);
- return 1;
- }
- return 0;
- }
- function swd(a, b) {
- var c2, d, e, f2;
- if (a.ej()) {
- c2 = a.Vi();
- f2 = a.fj();
- ++a.j;
- a.Hi(c2, a.oi(c2, b));
- d = a.Zi(3, null, b, c2, f2);
- if (a.bj()) {
- e = a.cj(b, null);
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- } else {
- a.$i(d);
- }
- } else {
- Bvd(a, b);
- if (a.bj()) {
- e = a.cj(b, null);
- !!e && e.Fi();
- }
- }
- }
- function D2d(a, b) {
- var c2, d, e, f2, g;
- g = S6d(a.e.Tg(), b);
- e = new yud();
- c2 = BD(a.g, 119);
- for (f2 = a.i; --f2 >= 0; ) {
- d = c2[f2];
- g.rl(d.ak()) && wtd(e, d);
- }
- !Yxd(a, e) && oid(a.e) && GLd(a, b.$j() ? H2d(a, 6, b, (mmb(), jmb), null, -1, false) : H2d(a, b.Kj() ? 2 : 1, b, null, null, -1, false));
- }
- function Dhb() {
- Dhb = ccb;
- var a, b;
- Bhb = KC(cJ, nie, 91, 32, 0, 1);
- Chb = KC(cJ, nie, 91, 32, 0, 1);
- a = 1;
- for (b = 0; b <= 18; b++) {
- Bhb[b] = ghb(a);
- Chb[b] = ghb(Nbb(a, b));
- a = Ibb(a, 5);
- }
- for (; b < Chb.length; b++) {
- Bhb[b] = Ogb(Bhb[b - 1], Bhb[1]);
- Chb[b] = Ogb(Chb[b - 1], (Hgb(), Egb));
- }
- }
- function K4b(a, b) {
- var c2, d, e, f2, g;
- if (a.a == (yrc(), wrc)) {
- return true;
- }
- f2 = b.a.c;
- c2 = b.a.c + b.a.b;
- if (b.j) {
- d = b.A;
- g = d.c.c.a - d.o.a / 2;
- e = f2 - (d.n.a + d.o.a);
- if (e > g) {
- return false;
- }
- }
- if (b.q) {
- d = b.C;
- g = d.c.c.a - d.o.a / 2;
- e = d.n.a - c2;
- if (e > g) {
- return false;
- }
- }
- return true;
- }
- function wcc(a, b) {
- var c2;
- Odd(b, "Partition preprocessing", 1);
- c2 = BD(GAb(JAb(LAb(JAb(new YAb(null, new Kub(a.a, 16)), new Acc()), new Ccc()), new Ecc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- MAb(c2.Oc(), new Gcc());
- Qdd(b);
- }
- function DMc(a) {
- wMc();
- var b, c2, d, e, f2, g, h;
- c2 = new $rb();
- for (e = new olb(a.e.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- for (g = new olb(d.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- h = a.g[f2.p];
- b = BD(Wrb(c2, h), 15);
- if (!b) {
- b = new Rkb();
- Xrb(c2, h, b);
- }
- b.Fc(f2);
- }
- }
- return c2;
- }
- function dRc(a, b) {
- var c2, d, e, f2, g;
- e = b.b.b;
- a.a = KC(yK, eme, 15, e, 0, 1);
- a.b = KC(sbb, dle, 25, e, 16, 1);
- for (g = Jsb(b.b, 0); g.b != g.d.c; ) {
- f2 = BD(Xsb(g), 86);
- a.a[f2.g] = new Psb();
- }
- for (d = Jsb(b.a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 188);
- a.a[c2.b.g].Fc(c2);
- a.a[c2.c.g].Fc(c2);
- }
- }
- function qmd(a) {
- var b;
- if ((a.Db & 64) != 0)
- return Eid(a);
- b = new Jfb(Eid(a));
- b.a += " (startX: ";
- Bfb(b, a.j);
- b.a += ", startY: ";
- Bfb(b, a.k);
- b.a += ", endX: ";
- Bfb(b, a.b);
- b.a += ", endY: ";
- Bfb(b, a.c);
- b.a += ", identifier: ";
- Efb(b, a.d);
- b.a += ")";
- return b.a;
- }
- function EId(a) {
- var b;
- if ((a.Db & 64) != 0)
- return qnd(a);
- b = new Jfb(qnd(a));
- b.a += " (ordered: ";
- Ffb(b, (a.Bb & 256) != 0);
- b.a += ", unique: ";
- Ffb(b, (a.Bb & 512) != 0);
- b.a += ", lowerBound: ";
- Cfb(b, a.s);
- b.a += ", upperBound: ";
- Cfb(b, a.t);
- b.a += ")";
- return b.a;
- }
- function Wnd(a, b, c2, d, e, f2, g, h) {
- var i3;
- JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
- pnd(a, c2);
- a.f = d;
- dJd(a, e);
- fJd(a, f2);
- ZId(a, g);
- eJd(a, false);
- CId(a, true);
- aJd(a, h);
- BId(a, true);
- AId(a, 0);
- a.b = 0;
- DId(a, 1);
- i3 = xId(a, b, null);
- !!i3 && i3.Fi();
- MJd(a, false);
- return a;
- }
- function fyb(a, b) {
- var c2, d, e, f2;
- c2 = BD(Phb(a.a, b), 512);
- if (!c2) {
- d = new wyb(b);
- e = (oyb(), lyb) ? null : d.c;
- f2 = qfb(e, 0, $wnd.Math.max(0, kfb(e, wfb(46))));
- vyb(d, fyb(a, f2));
- (lyb ? null : d.c).length == 0 && qyb(d, new zyb());
- Shb(a.a, lyb ? null : d.c, d);
- return d;
- }
- return c2;
- }
- function BOb(a, b) {
- var c2;
- a.b = b;
- a.g = new Rkb();
- c2 = COb(a.b);
- a.e = c2;
- a.f = c2;
- a.c = Ccb(DD(vNb(a.b, (fFb(), $Eb))));
- a.a = ED(vNb(a.b, (Y9c(), r8c)));
- a.a == null && (a.a = 1);
- Edb(a.a) > 1 ? a.e *= Edb(a.a) : a.f /= Edb(a.a);
- DOb(a);
- EOb(a);
- AOb(a);
- yNb(a.b, (CPb(), uPb), a.g);
- }
- function Y5b(a, b, c2) {
- var d, e, f2, g, h, i3;
- d = 0;
- i3 = c2;
- if (!b) {
- d = c2 * (a.c.length - 1);
- i3 *= -1;
- }
- for (f2 = new olb(a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- yNb(e, (Nyc(), mwc), (F7c(), B7c));
- e.o.a = d;
- for (h = Y_b(e, (Ucd(), zcd)).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 11);
- g.n.a = d;
- }
- d += i3;
- }
- }
- function Qxd(a, b, c2) {
- var d, e, f2;
- if (a.ej()) {
- f2 = a.fj();
- kud(a, b, c2);
- d = a.Zi(3, null, c2, b, f2);
- if (a.bj()) {
- e = a.cj(c2, null);
- a.ij() && (e = a.jj(c2, e));
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- } else {
- a.$i(d);
- }
- } else {
- kud(a, b, c2);
- if (a.bj()) {
- e = a.cj(c2, null);
- !!e && e.Fi();
- }
- }
- }
- function ILd(a, b, c2) {
- var d, e, f2, g, h, i3;
- h = a.Gk(c2);
- if (h != c2) {
- g = a.g[b];
- i3 = h;
- mud(a, b, a.oi(b, i3));
- f2 = g;
- a.gi(b, i3, f2);
- if (a.rk()) {
- d = c2;
- e = a.dj(d, null);
- !BD(h, 49).eh() && (e = a.cj(i3, e));
- !!e && e.Fi();
- }
- oid(a.e) && GLd(a, a.Zi(9, c2, h, b, false));
- return h;
- } else {
- return c2;
- }
- }
- function pVb(a, b) {
- var c2, d, e, f2;
- for (d = new olb(a.a.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 189);
- c2.g = true;
- }
- for (f2 = new olb(a.a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 81);
- e.k = Ccb(DD(a.e.Kb(new vgd(e, b))));
- e.d.g = e.d.g & Ccb(DD(a.e.Kb(new vgd(e, b))));
- }
- return a;
- }
- function pkc(a) {
- var b, c2, d, e, f2;
- c2 = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
- f2 = BD(vNb(a, (wtc(), gtc)), 10);
- if (f2) {
- for (e = new olb(f2.j); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 11);
- PD(vNb(d, $sc)) === PD(a) && a1b(new b1b(d.b)) && rqb(c2, d.j);
- }
- }
- return c2;
- }
- function zCc(a, b, c2) {
- var d, e, f2, g, h;
- if (a.d[c2.p]) {
- return;
- }
- for (e = new Sr(ur(U_b(c2).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- h = d.d.i;
- for (g = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(g); ) {
- f2 = BD(Rr(g), 17);
- f2.c.i == b && (a.a[f2.p] = true);
- }
- zCc(a, b, h);
- }
- a.d[c2.p] = true;
- }
- function Bjd(a, b) {
- var c2, d, e, f2, g, h, i3;
- d = aeb(a.Db & 254);
- if (d == 1) {
- a.Eb = null;
- } else {
- f2 = CD(a.Eb);
- if (d == 2) {
- e = zjd(a, b);
- a.Eb = f2[e == 0 ? 1 : 0];
- } else {
- g = KC(SI, Uhe, 1, d - 1, 5, 1);
- for (c2 = 2, h = 0, i3 = 0; c2 <= 128; c2 <<= 1) {
- c2 == b ? ++h : (a.Db & c2) != 0 && (g[i3++] = f2[h++]);
- }
- a.Eb = g;
- }
- }
- a.Db &= ~b;
- }
- function n1d(a, b) {
- var c2, d, e, f2, g;
- d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s);
- f2 = null;
- for (e = 0, g = d.i; e < g; ++e) {
- c2 = BD(qud(d, e), 170);
- switch ($1d(q1d(a, c2))) {
- case 4:
- case 5:
- case 6: {
- !f2 && (f2 = new Rkb());
- f2.c[f2.c.length] = c2;
- break;
- }
- }
- }
- return !f2 ? (mmb(), mmb(), jmb) : f2;
- }
- function Uee(a) {
- var b;
- b = 0;
- switch (a) {
- case 105:
- b = 2;
+ case 20:
+ this.popState();
break;
- case 109:
- b = 8;
+ case 21:
+ return "acc_descr_multiline_value";
+ break;
+ case 22:
+ this.pushState("CLASSDEF");
+ return 38;
+ break;
+ case 23:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return "DEFAULT_CLASSDEF_ID";
+ break;
+ case 24:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return 39;
+ break;
+ case 25:
+ this.popState();
+ return 40;
+ break;
+ case 26:
+ this.pushState("CLASS");
+ return 45;
+ break;
+ case 27:
+ this.popState();
+ this.pushState("CLASS_STYLE");
+ return 46;
+ break;
+ case 28:
+ this.popState();
+ return 47;
+ break;
+ case 29:
+ this.pushState("STYLE");
+ return 42;
+ break;
+ case 30:
+ this.popState();
+ this.pushState("STYLEDEF_STYLES");
+ return 43;
+ break;
+ case 31:
+ this.popState();
+ return 44;
+ break;
+ case 32:
+ this.pushState("SCALE");
+ return 17;
+ break;
+ case 33:
+ return 18;
+ break;
+ case 34:
+ this.popState();
+ break;
+ case 35:
+ this.pushState("STATE");
+ break;
+ case 36:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 25;
+ break;
+ case 37:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 26;
+ break;
+ case 38:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -10).trim();
+ return 27;
+ break;
+ case 39:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 25;
+ break;
+ case 40:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 26;
+ break;
+ case 41:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -10).trim();
+ return 27;
+ break;
+ case 42:
+ return 48;
+ break;
+ case 43:
+ return 49;
+ break;
+ case 44:
+ return 50;
+ break;
+ case 45:
+ return 51;
+ break;
+ case 46:
+ this.pushState("STATE_STRING");
+ break;
+ case 47:
+ this.pushState("STATE_ID");
+ return "AS";
+ break;
+ case 48:
+ this.popState();
+ return "ID";
+ break;
+ case 49:
+ this.popState();
+ break;
+ case 50:
+ return "STATE_DESCR";
+ break;
+ case 51:
+ return 19;
+ break;
+ case 52:
+ this.popState();
+ break;
+ case 53:
+ this.popState();
+ this.pushState("struct");
+ return 20;
+ break;
+ case 54:
+ break;
+ case 55:
+ this.popState();
+ return 21;
+ break;
+ case 56:
+ break;
+ case 57:
+ this.begin("NOTE");
+ return 29;
+ break;
+ case 58:
+ this.popState();
+ this.pushState("NOTE_ID");
+ return 56;
+ break;
+ case 59:
+ this.popState();
+ this.pushState("NOTE_ID");
+ return 57;
+ break;
+ case 60:
+ this.popState();
+ this.pushState("FLOATING_NOTE");
+ break;
+ case 61:
+ this.popState();
+ this.pushState("FLOATING_NOTE_ID");
+ return "AS";
+ break;
+ case 62:
+ break;
+ case 63:
+ return "NOTE_TEXT";
+ break;
+ case 64:
+ this.popState();
+ return "ID";
+ break;
+ case 65:
+ this.popState();
+ this.pushState("NOTE_TEXT");
+ return 24;
break;
- case 115:
- b = 4;
+ case 66:
+ this.popState();
+ yy_.yytext = yy_.yytext.substr(2).trim();
+ return 31;
break;
- case 120:
- b = 16;
+ case 67:
+ this.popState();
+ yy_.yytext = yy_.yytext.slice(0, -8).trim();
+ return 31;
break;
- case 117:
- b = 32;
+ case 68:
+ return 6;
break;
- case 119:
- b = 64;
+ case 69:
+ return 6;
break;
case 70:
- b = 256;
+ return 16;
+ break;
+ case 71:
+ return 54;
break;
case 72:
- b = 128;
+ return 24;
break;
- case 88:
- b = 512;
+ case 73:
+ yy_.yytext = yy_.yytext.trim();
+ return 14;
+ break;
+ case 74:
+ return 15;
+ break;
+ case 75:
+ return 28;
+ break;
+ case 76:
+ return 55;
+ break;
+ case 77:
+ return 5;
+ break;
+ case 78:
+ return "INVALID";
break;
- case 44:
- b = zte;
- }
- return b;
- }
- function Ghb(a, b, c2, d, e) {
- var f2, g, h, i3;
- if (PD(a) === PD(b) && d == e) {
- Lhb(a, d, c2);
- return;
- }
- for (h = 0; h < d; h++) {
- g = 0;
- f2 = a[h];
- for (i3 = 0; i3 < e; i3++) {
- g = wbb(wbb(Ibb(xbb(f2, Yje), xbb(b[i3], Yje)), xbb(c2[h + i3], Yje)), xbb(Tbb(g), Yje));
- c2[h + i3] = Tbb(g);
- g = Pbb(g, 32);
- }
- c2[h + e] = Tbb(g);
- }
- }
- function COb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- k = 0;
- j = 0;
- e = a.a;
- h = e.a.gc();
- for (d = e.a.ec().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 561);
- b = (c2.b && LOb(c2), c2.a);
- l = b.a;
- g = b.b;
- k += l + g;
- j += l * g;
- }
- i3 = $wnd.Math.sqrt(400 * h * j - 4 * j + k * k) + k;
- f2 = 2 * (100 * h - 1);
- if (f2 == 0) {
- return i3;
- }
- return i3 / f2;
- }
- function mOc(a, b) {
- if (b.b != 0) {
- isNaN(a.s) ? a.s = Edb((sCb(b.b != 0), ED(b.a.a.c))) : a.s = $wnd.Math.min(a.s, Edb((sCb(b.b != 0), ED(b.a.a.c))));
- isNaN(a.c) ? a.c = Edb((sCb(b.b != 0), ED(b.c.b.c))) : a.c = $wnd.Math.max(a.c, Edb((sCb(b.b != 0), ED(b.c.b.c))));
}
- }
- function Pld(a) {
- var b, c2, d, e;
- b = null;
- for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) {
- c2 = BD(Rr(d), 82);
- e = atd(c2);
- if (!b) {
- b = Xod(e);
- } else if (b != Xod(e)) {
- return true;
- }
+ }, "anonymous"),
+ rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:style\s+)/i, /^(?:[\w,]+\s+)/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:\})/i, /^(?:[\n])/i, /^(?:note\s+)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:")/i, /^(?:\s*as\s*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n]*)/i, /^(?:\s*[^:\n\s\-]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:[\s\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "LINE": { "rules": [9, 10], "inclusive": false }, "struct": { "rules": [9, 10, 22, 26, 29, 35, 42, 43, 44, 45, 54, 55, 56, 57, 71, 72, 73, 74, 75], "inclusive": false }, "FLOATING_NOTE_ID": { "rules": [64], "inclusive": false }, "FLOATING_NOTE": { "rules": [61, 62, 63], "inclusive": false }, "NOTE_TEXT": { "rules": [66, 67], "inclusive": false }, "NOTE_ID": { "rules": [65], "inclusive": false }, "NOTE": { "rules": [58, 59, 60], "inclusive": false }, "STYLEDEF_STYLEOPTS": { "rules": [], "inclusive": false }, "STYLEDEF_STYLES": { "rules": [31], "inclusive": false }, "STYLE_IDS": { "rules": [], "inclusive": false }, "STYLE": { "rules": [30], "inclusive": false }, "CLASS_STYLE": { "rules": [28], "inclusive": false }, "CLASS": { "rules": [27], "inclusive": false }, "CLASSDEFID": { "rules": [25], "inclusive": false }, "CLASSDEF": { "rules": [23, 24], "inclusive": false }, "acc_descr_multiline": { "rules": [20, 21], "inclusive": false }, "acc_descr": { "rules": [18], "inclusive": false }, "acc_title": { "rules": [16], "inclusive": false }, "SCALE": { "rules": [13, 14, 33, 34], "inclusive": false }, "ALIAS": { "rules": [], "inclusive": false }, "STATE_ID": { "rules": [48], "inclusive": false }, "STATE_STRING": { "rules": [49, 50], "inclusive": false }, "FORK_STATE": { "rules": [], "inclusive": false }, "STATE": { "rules": [9, 10, 36, 37, 38, 39, 40, 41, 46, 47, 51, 52, 53], "inclusive": false }, "ID": { "rules": [9, 10], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 17, 19, 22, 26, 29, 32, 35, 53, 57, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser14.parser = parser14;
+ stateDiagram_default = parser14;
+ }
+ });
+
+ // src/diagrams/state/stateCommon.ts
+ var DEFAULT_DIAGRAM_DIRECTION, DEFAULT_NESTED_DOC_DIR, STMT_STATE, STMT_RELATION, STMT_CLASSDEF, STMT_STYLEDEF, STMT_APPLYCLASS, DEFAULT_STATE_TYPE, DIVIDER_TYPE, G_EDGE_STYLE, G_EDGE_ARROWHEADSTYLE, G_EDGE_LABELPOS, G_EDGE_LABELTYPE, G_EDGE_THICKNESS, SHAPE_STATE, SHAPE_STATE_WITH_DESC, SHAPE_START, SHAPE_END, SHAPE_DIVIDER, SHAPE_GROUP, SHAPE_NOTE, SHAPE_NOTEGROUP, CSS_DIAGRAM, CSS_STATE, CSS_DIAGRAM_STATE, CSS_EDGE, CSS_NOTE, CSS_NOTE_EDGE, CSS_EDGE_NOTE_EDGE, CSS_DIAGRAM_NOTE, CSS_CLUSTER, CSS_DIAGRAM_CLUSTER, CSS_CLUSTER_ALT, CSS_DIAGRAM_CLUSTER_ALT, PARENT2, NOTE, DOMID_STATE, DOMID_TYPE_SPACER, NOTE_ID, PARENT_ID;
+ var init_stateCommon = __esm({
+ "src/diagrams/state/stateCommon.ts"() {
+ "use strict";
+ DEFAULT_DIAGRAM_DIRECTION = "LR";
+ DEFAULT_NESTED_DOC_DIR = "TB";
+ STMT_STATE = "state";
+ STMT_RELATION = "relation";
+ STMT_CLASSDEF = "classDef";
+ STMT_STYLEDEF = "style";
+ STMT_APPLYCLASS = "applyClass";
+ DEFAULT_STATE_TYPE = "default";
+ DIVIDER_TYPE = "divider";
+ G_EDGE_STYLE = "fill:none";
+ G_EDGE_ARROWHEADSTYLE = "fill: #333";
+ G_EDGE_LABELPOS = "c";
+ G_EDGE_LABELTYPE = "text";
+ G_EDGE_THICKNESS = "normal";
+ SHAPE_STATE = "rect";
+ SHAPE_STATE_WITH_DESC = "rectWithTitle";
+ SHAPE_START = "stateStart";
+ SHAPE_END = "stateEnd";
+ SHAPE_DIVIDER = "divider";
+ SHAPE_GROUP = "roundedWithTitle";
+ SHAPE_NOTE = "note";
+ SHAPE_NOTEGROUP = "noteGroup";
+ CSS_DIAGRAM = "statediagram";
+ CSS_STATE = "state";
+ CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;
+ CSS_EDGE = "transition";
+ CSS_NOTE = "note";
+ CSS_NOTE_EDGE = "note-edge";
+ CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;
+ CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;
+ CSS_CLUSTER = "cluster";
+ CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;
+ CSS_CLUSTER_ALT = "cluster-alt";
+ CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;
+ PARENT2 = "parent";
+ NOTE = "note";
+ DOMID_STATE = "state";
+ DOMID_TYPE_SPACER = "----";
+ NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;
+ PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT2}`;
+ }
+ });
+
+ // src/diagrams/state/dataFetcher.js
+ function stateDomId(itemId = "", counter2 = 0, type3 = "", typeSpacer = DOMID_TYPE_SPACER) {
+ const typeStr = type3 !== null && type3.length > 0 ? `${typeSpacer}${type3}` : "";
+ return `${DOMID_STATE}-${itemId}${typeStr}-${counter2}`;
+ }
+ function insertOrUpdateNode(nodes6, nodeData2, classes6) {
+ if (!nodeData2.id || nodeData2.id === "" || nodeData2.id === "") {
+ return;
+ }
+ if (nodeData2.cssClasses) {
+ if (!Array.isArray(nodeData2.cssCompiledStyles)) {
+ nodeData2.cssCompiledStyles = [];
+ }
+ nodeData2.cssClasses.split(" ").forEach((cssClass) => {
+ if (classes6.get(cssClass)) {
+ const classDef = classes6.get(cssClass);
+ nodeData2.cssCompiledStyles = [...nodeData2.cssCompiledStyles, ...classDef.styles];
+ }
+ });
+ }
+ const existingNodeData = nodes6.find((node2) => node2.id === nodeData2.id);
+ if (existingNodeData) {
+ Object.assign(existingNodeData, nodeData2);
+ } else {
+ nodes6.push(nodeData2);
+ }
+ }
+ function getClassesFromDbInfo(dbInfoItem) {
+ return dbInfoItem?.classes?.join(" ") ?? "";
+ }
+ function getStylesFromDbInfo(dbInfoItem) {
+ return dbInfoItem?.styles ?? [];
+ }
+ var nodeDb, graphItemCount, setupDoc, getDir, dataFetcher, reset2;
+ var init_dataFetcher = __esm({
+ "src/diagrams/state/dataFetcher.js"() {
+ "use strict";
+ init_diagramAPI();
+ init_logger();
+ init_common();
+ init_stateCommon();
+ nodeDb = /* @__PURE__ */ new Map();
+ graphItemCount = 0;
+ __name(stateDomId, "stateDomId");
+ setupDoc = /* @__PURE__ */ __name((parentParsedItem, doc, diagramStates, nodes6, edges5, altFlag, look, classes6) => {
+ log.trace("items", doc);
+ doc.forEach((item) => {
+ switch (item.stmt) {
+ case STMT_STATE:
+ dataFetcher(parentParsedItem, item, diagramStates, nodes6, edges5, altFlag, look, classes6);
+ break;
+ case DEFAULT_STATE_TYPE:
+ dataFetcher(parentParsedItem, item, diagramStates, nodes6, edges5, altFlag, look, classes6);
+ break;
+ case STMT_RELATION:
+ {
+ dataFetcher(
+ parentParsedItem,
+ item.state1,
+ diagramStates,
+ nodes6,
+ edges5,
+ altFlag,
+ look,
+ classes6
+ );
+ dataFetcher(
+ parentParsedItem,
+ item.state2,
+ diagramStates,
+ nodes6,
+ edges5,
+ altFlag,
+ look,
+ classes6
+ );
+ const edgeData2 = {
+ id: "edge" + graphItemCount,
+ start: item.state1.id,
+ end: item.state2.id,
+ arrowhead: "normal",
+ arrowTypeEnd: "arrow_barb",
+ style: G_EDGE_STYLE,
+ labelStyle: "",
+ label: common_default.sanitizeText(item.description, getConfig2()),
+ arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
+ labelpos: G_EDGE_LABELPOS,
+ labelType: G_EDGE_LABELTYPE,
+ thickness: G_EDGE_THICKNESS,
+ classes: CSS_EDGE,
+ look
+ };
+ edges5.push(edgeData2);
+ graphItemCount++;
}
- return false;
- }
- function Rxd(a, b) {
- var c2, d, e, f2;
- if (a.ej()) {
- c2 = a.i;
- f2 = a.fj();
- lud(a, b);
- d = a.Zi(3, null, b, c2, f2);
- if (a.bj()) {
- e = a.cj(b, null);
- a.ij() && (e = a.jj(b, e));
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- } else {
- a.$i(d);
- }
- } else {
- lud(a, b);
- if (a.bj()) {
- e = a.cj(b, null);
- !!e && e.Fi();
- }
- }
- }
- function rwd(a, b, c2) {
- var d, e, f2;
- if (a.ej()) {
- f2 = a.fj();
- ++a.j;
- a.Hi(b, a.oi(b, c2));
- d = a.Zi(3, null, c2, b, f2);
- if (a.bj()) {
- e = a.cj(c2, null);
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
+ break;
+ }
+ });
+ }, "setupDoc");
+ getDir = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {
+ let dir2 = defaultDir;
+ if (parsedItem.doc) {
+ for (const parsedItemDoc of parsedItem.doc) {
+ if (parsedItemDoc.stmt === "dir") {
+ dir2 = parsedItemDoc.value;
+ }
+ }
+ }
+ return dir2;
+ }, "getDir");
+ __name(insertOrUpdateNode, "insertOrUpdateNode");
+ __name(getClassesFromDbInfo, "getClassesFromDbInfo");
+ __name(getStylesFromDbInfo, "getStylesFromDbInfo");
+ dataFetcher = /* @__PURE__ */ __name((parent4, parsedItem, diagramStates, nodes6, edges5, altFlag, look, classes6) => {
+ const itemId = parsedItem.id;
+ const dbState = diagramStates.get(itemId);
+ const classStr = getClassesFromDbInfo(dbState);
+ const style3 = getStylesFromDbInfo(dbState);
+ log.info("dataFetcher parsedItem", parsedItem, dbState, style3);
+ if (itemId !== "root") {
+ let shape = SHAPE_STATE;
+ if (parsedItem.start === true) {
+ shape = SHAPE_START;
+ } else if (parsedItem.start === false) {
+ shape = SHAPE_END;
+ }
+ if (parsedItem.type !== DEFAULT_STATE_TYPE) {
+ shape = parsedItem.type;
+ }
+ if (!nodeDb.get(itemId)) {
+ nodeDb.set(itemId, {
+ id: itemId,
+ shape,
+ description: common_default.sanitizeText(itemId, getConfig2()),
+ cssClasses: `${classStr} ${CSS_DIAGRAM_STATE}`,
+ cssStyles: style3
+ });
+ }
+ const newNode = nodeDb.get(itemId);
+ if (parsedItem.description) {
+ if (Array.isArray(newNode.description)) {
+ newNode.shape = SHAPE_STATE_WITH_DESC;
+ newNode.description.push(parsedItem.description);
+ } else {
+ if (newNode.description?.length > 0) {
+ newNode.shape = SHAPE_STATE_WITH_DESC;
+ if (newNode.description === itemId) {
+ newNode.description = [parsedItem.description];
} else {
- a.$i(d);
+ newNode.description = [newNode.description, parsedItem.description];
}
} else {
- ++a.j;
- a.Hi(b, a.oi(b, c2));
- if (a.bj()) {
- e = a.cj(c2, null);
- !!e && e.Fi();
- }
- }
- }
- function Wee(a) {
- var b, c2, d, e;
- e = a.length;
- b = null;
- for (d = 0; d < e; d++) {
- c2 = (BCb(d, a.length), a.charCodeAt(d));
- if (hfb(".*+?{[()|\\^$", wfb(c2)) >= 0) {
- if (!b) {
- b = new Ifb();
- d > 0 && Efb(b, a.substr(0, d));
- }
- b.a += "\\";
- Afb(b, c2 & aje);
- } else
- !!b && Afb(b, c2 & aje);
- }
- return b ? b.a : a;
- }
- function l5c(a) {
- var b;
- if (!a.a) {
- throw vbb(new Zdb("IDataType class expected for layout option " + a.f));
- }
- b = gvd(a.a);
- if (b == null) {
- throw vbb(new Zdb("Couldn't create new instance of property '" + a.f + "'. " + ise + (fdb(Y3), Y3.k) + jse));
- }
- return BD(b, 414);
- }
- function aid(a) {
- var b, c2, d, e, f2;
- f2 = a.eh();
- if (f2) {
- if (f2.kh()) {
- e = xid(a, f2);
- if (e != f2) {
- c2 = a.Vg();
- d = (b = a.Vg(), b >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - b, null, null));
- a.Rg(BD(e, 49), c2);
- !!d && d.Fi();
- a.Lg() && a.Mg() && c2 > -1 && Uhd(a, new nSd(a, 9, c2, f2, e));
- return e;
- }
- }
- }
- return f2;
- }
- function nTb(a) {
- var b, c2, d, e, f2, g, h, i3;
- g = 0;
- f2 = a.f.e;
- for (d = 0; d < f2.c.length; ++d) {
- h = (tCb(d, f2.c.length), BD(f2.c[d], 144));
- for (e = d + 1; e < f2.c.length; ++e) {
- i3 = (tCb(e, f2.c.length), BD(f2.c[e], 144));
- c2 = S6c(h.d, i3.d);
- b = c2 - a.a[h.b][i3.b];
- g += a.i[h.b][i3.b] * b * b;
- }
- }
- return g;
- }
- function _ac(a, b) {
- var c2;
- if (wNb(b, (Nyc(), mxc))) {
- return;
- }
- c2 = hbc(BD(vNb(b, Uac), 360), BD(vNb(a, mxc), 163));
- yNb(b, Uac, c2);
- if (Qr(new Sr(ur(O_b(b).a.Kc(), new Sq())))) {
- return;
- }
- switch (c2.g) {
- case 1:
- yNb(b, mxc, (Ctc(), xtc));
- break;
- case 2:
- yNb(b, mxc, (Ctc(), ztc));
- }
- }
- function wkc(a, b) {
- var c2;
- mkc(a);
- a.a = (c2 = new Ji(), MAb(new YAb(null, new Kub(b.d, 16)), new Vkc(c2)), c2);
- rkc(a, BD(vNb(b.b, (Nyc(), Wwc)), 376));
- tkc(a);
- skc(a);
- qkc(a);
- ukc(a);
- vkc(a, b);
- MAb(LAb(new YAb(null, $i(Yi(a.b).a)), new Lkc()), new Nkc());
- b.a = false;
- a.a = null;
- }
- function Bod() {
- fod.call(this, yte, (Fhd(), Ehd));
- this.p = null;
- this.a = null;
- this.f = null;
- this.n = null;
- this.g = null;
- this.c = null;
- this.i = null;
- this.j = null;
- this.d = null;
- this.b = null;
- this.e = null;
- this.k = null;
- this.o = null;
- this.s = null;
- this.q = false;
- this.r = false;
- }
- function Csd() {
- Csd = ccb;
- Bsd = new Dsd(Wne, 0);
- ysd = new Dsd("INSIDE_SELF_LOOPS", 1);
- zsd = new Dsd("MULTI_EDGES", 2);
- xsd = new Dsd("EDGE_LABELS", 3);
- Asd = new Dsd("PORTS", 4);
- vsd = new Dsd("COMPOUND", 5);
- usd = new Dsd("CLUSTERS", 6);
- wsd = new Dsd("DISCONNECTED", 7);
- }
- function Sgb(a, b) {
- var c2, d, e;
- if (b == 0) {
- return (a.a[0] & 1) != 0;
- }
- if (b < 0) {
- throw vbb(new ocb("Negative bit address"));
- }
- e = b >> 5;
- if (e >= a.d) {
- return a.e < 0;
- }
- c2 = a.a[e];
- b = 1 << (b & 31);
- if (a.e < 0) {
- d = Mgb(a);
- if (e < d) {
- return false;
- } else
- d == e ? c2 = -c2 : c2 = ~c2;
- }
- return (c2 & b) != 0;
- }
- function O1c(a, b, c2, d) {
- var e;
- BD(c2.b, 65);
- BD(c2.b, 65);
- BD(d.b, 65);
- BD(d.b, 65);
- e = c7c(R6c(BD(c2.b, 65).c), BD(d.b, 65).c);
- $6c(e, YNb(BD(c2.b, 65), BD(d.b, 65), e));
- BD(d.b, 65);
- BD(d.b, 65);
- BD(d.b, 65).c.a + e.a;
- BD(d.b, 65).c.b + e.b;
- BD(d.b, 65);
- Hkb(d.a, new T1c(a, b, d));
- }
- function vNd(a, b) {
- var c2, d, e, f2, g, h, i3;
- f2 = b.e;
- if (f2) {
- c2 = aid(f2);
- d = BD(a.g, 674);
- for (g = 0; g < a.i; ++g) {
- i3 = d[g];
- if (JQd(i3) == c2) {
- e = (!i3.d && (i3.d = new xMd(j5, i3, 1)), i3.d);
- h = BD(c2.ah(Nid(f2, f2.Cb, f2.Db >> 16)), 15).Xc(f2);
- if (h < e.i) {
- return vNd(a, BD(qud(e, h), 87));
- }
- }
- }
+ newNode.shape = SHAPE_STATE;
+ newNode.description = parsedItem.description;
}
- return b;
}
- function bcb(a, b, c2) {
- var d = _bb, h;
- var e = d[a];
- var f2 = e instanceof Array ? e[0] : null;
- if (e && !f2) {
- _2 = e;
- } else {
- _2 = (h = b && b.prototype, !h && (h = _bb[b]), ecb(h));
- _2.hm = c2;
- !b && (_2.im = gcb);
- d[a] = _2;
- }
- for (var g = 3; g < arguments.length; ++g) {
- arguments[g].prototype = _2;
+ newNode.description = common_default.sanitizeTextOrArray(newNode.description, getConfig2());
+ }
+ if (newNode.description?.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {
+ if (newNode.type === "group") {
+ newNode.shape = SHAPE_GROUP;
+ } else {
+ newNode.shape = SHAPE_STATE;
+ }
+ }
+ if (!newNode.type && parsedItem.doc) {
+ log.info("Setting cluster for XCX", itemId, getDir(parsedItem));
+ newNode.type = "group";
+ newNode.isGroup = true;
+ newNode.dir = getDir(parsedItem);
+ newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;
+ newNode.cssClasses = `${newNode.cssClasses} ${CSS_DIAGRAM_CLUSTER} ${altFlag ? CSS_DIAGRAM_CLUSTER_ALT : ""}`;
+ }
+ const nodeData2 = {
+ labelStyle: "",
+ shape: newNode.shape,
+ label: newNode.description,
+ cssClasses: newNode.cssClasses,
+ cssCompiledStyles: [],
+ cssStyles: newNode.cssStyles,
+ id: itemId,
+ dir: newNode.dir,
+ domId: stateDomId(itemId, graphItemCount),
+ type: newNode.type,
+ isGroup: newNode.type === "group",
+ padding: 8,
+ rx: 10,
+ ry: 10,
+ look
+ };
+ if (nodeData2.shape === SHAPE_DIVIDER) {
+ nodeData2.label = "";
+ }
+ if (parent4 && parent4.id !== "root") {
+ log.trace("Setting node ", itemId, " to be child of its parent ", parent4.id);
+ nodeData2.parentId = parent4.id;
+ }
+ nodeData2.centerLabel = true;
+ if (parsedItem.note) {
+ const noteData = {
+ labelStyle: "",
+ shape: SHAPE_NOTE,
+ label: parsedItem.note.text,
+ cssClasses: CSS_DIAGRAM_NOTE,
+ // useHtmlLabels: false,
+ cssStyles: [],
+ cssCompilesStyles: [],
+ id: itemId + NOTE_ID + "-" + graphItemCount,
+ domId: stateDomId(itemId, graphItemCount, NOTE),
+ type: newNode.type,
+ isGroup: newNode.type === "group",
+ padding: getConfig2().flowchart.padding,
+ look,
+ position: parsedItem.note.position
+ };
+ const parentNodeId = itemId + PARENT_ID;
+ const groupData = {
+ labelStyle: "",
+ shape: SHAPE_NOTEGROUP,
+ label: parsedItem.note.text,
+ cssClasses: newNode.cssClasses,
+ cssStyles: [],
+ id: itemId + PARENT_ID,
+ domId: stateDomId(itemId, graphItemCount, PARENT2),
+ type: "group",
+ isGroup: true,
+ padding: 16,
+ //getConfig().flowchart.padding
+ look,
+ position: parsedItem.note.position
+ };
+ graphItemCount++;
+ groupData.id = parentNodeId;
+ noteData.parentId = parentNodeId;
+ insertOrUpdateNode(nodes6, groupData, classes6);
+ insertOrUpdateNode(nodes6, noteData, classes6);
+ insertOrUpdateNode(nodes6, nodeData2, classes6);
+ let from2 = itemId;
+ let to = noteData.id;
+ if (parsedItem.note.position === "left of") {
+ from2 = noteData.id;
+ to = itemId;
+ }
+ edges5.push({
+ id: from2 + "-" + to,
+ start: from2,
+ end: to,
+ arrowhead: "none",
+ arrowTypeEnd: "",
+ style: G_EDGE_STYLE,
+ labelStyle: "",
+ classes: CSS_EDGE_NOTE_EDGE,
+ arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
+ labelpos: G_EDGE_LABELPOS,
+ labelType: G_EDGE_LABELTYPE,
+ thickness: G_EDGE_THICKNESS,
+ look
+ });
+ } else {
+ insertOrUpdateNode(nodes6, nodeData2, classes6);
+ }
+ }
+ if (parsedItem.doc) {
+ log.trace("Adding nodes children ");
+ setupDoc(parsedItem, parsedItem.doc, diagramStates, nodes6, edges5, !altFlag, look, classes6);
+ }
+ }, "dataFetcher");
+ reset2 = /* @__PURE__ */ __name(() => {
+ nodeDb.clear();
+ graphItemCount = 0;
+ }, "reset");
+ }
+ });
+
+ // src/diagrams/state/stateRenderer-v3-unified.ts
+ var getDir2, getClasses4, draw14, stateRenderer_v3_unified_default;
+ var init_stateRenderer_v3_unified = __esm({
+ "src/diagrams/state/stateRenderer-v3-unified.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_logger();
+ init_insertElementsForSize();
+ init_render();
+ init_setupViewPortForSVG();
+ init_utils2();
+ init_stateCommon();
+ getDir2 = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {
+ if (!parsedItem.doc) {
+ return defaultDir;
+ }
+ let dir2 = defaultDir;
+ for (const parsedItemDoc of parsedItem.doc) {
+ if (parsedItemDoc.stmt === "dir") {
+ dir2 = parsedItemDoc.value;
+ }
+ }
+ return dir2;
+ }, "getDir");
+ getClasses4 = /* @__PURE__ */ __name(function(text2, diagramObj) {
+ diagramObj.db.extract(diagramObj.db.getRootDocV2());
+ return diagramObj.db.getClasses();
+ }, "getClasses");
+ draw14 = /* @__PURE__ */ __name(async function(text2, id27, _version, diag) {
+ log.info("REF0:");
+ log.info("Drawing state diagram (v2)", id27);
+ const { securityLevel, state: conf8, layout: layout6 } = getConfig2();
+ diag.db.extract(diag.db.getRootDocV2());
+ const data4Layout = diag.db.getData();
+ const svg = getDiagramElement(id27, securityLevel);
+ data4Layout.type = diag.type;
+ data4Layout.layoutAlgorithm = layout6;
+ data4Layout.nodeSpacing = conf8?.nodeSpacing || 50;
+ data4Layout.rankSpacing = conf8?.rankSpacing || 50;
+ data4Layout.markers = ["barb"];
+ data4Layout.diagramId = id27;
+ await render4(data4Layout, svg);
+ const padding3 = 8;
+ utils_default2.insertTitle(
+ svg,
+ "statediagramTitleText",
+ conf8?.titleTopMargin ?? 25,
+ diag.db.getDiagramTitle()
+ );
+ setupViewPortForSVG(svg, padding3, CSS_DIAGRAM, conf8?.useMaxWidth ?? true);
+ }, "draw");
+ stateRenderer_v3_unified_default = {
+ getClasses: getClasses4,
+ draw: draw14,
+ getDir: getDir2
+ };
+ }
+ });
+
+ // src/diagrams/state/stateDb.js
+ function newClassesList() {
+ return /* @__PURE__ */ new Map();
+ }
+ function startIdIfNeeded(id27 = "") {
+ let fixedId = id27;
+ if (id27 === START_NODE) {
+ startEndCount++;
+ fixedId = `${START_TYPE}${startEndCount}`;
+ }
+ return fixedId;
+ }
+ function startTypeIfNeeded(id27 = "", type3 = DEFAULT_STATE_TYPE) {
+ return id27 === START_NODE ? START_TYPE : type3;
+ }
+ function endIdIfNeeded(id27 = "") {
+ let fixedId = id27;
+ if (id27 === END_NODE) {
+ startEndCount++;
+ fixedId = `${END_TYPE}${startEndCount}`;
+ }
+ return fixedId;
+ }
+ function endTypeIfNeeded(id27 = "", type3 = DEFAULT_STATE_TYPE) {
+ return id27 === END_NODE ? END_TYPE : type3;
+ }
+ function addRelationObjs(item1, item2, relationTitle) {
+ let id1 = startIdIfNeeded(item1.id.trim());
+ let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);
+ let id27 = startIdIfNeeded(item2.id.trim());
+ let type22 = startTypeIfNeeded(item2.id.trim(), item2.type);
+ addState(
+ id1,
+ type1,
+ item1.doc,
+ item1.description,
+ item1.note,
+ item1.classes,
+ item1.styles,
+ item1.textStyles
+ );
+ addState(
+ id27,
+ type22,
+ item2.doc,
+ item2.description,
+ item2.note,
+ item2.classes,
+ item2.styles,
+ item2.textStyles
+ );
+ currentDocument.relations.push({
+ id1,
+ id2: id27,
+ relationTitle: common_default.sanitizeText(relationTitle, getConfig2())
+ });
+ }
+ var START_NODE, START_TYPE, END_NODE, END_TYPE, COLOR_KEYWORD, FILL_KEYWORD, BG_FILL, STYLECLASS_SEP, nodes, edges2, direction3, rootDoc, classes3, newDoc, documents, currentDocument, startEndCount, dividerCnt, lineType2, relationType2, clone2, setRootDoc, getRootDoc, docTranslator, getRootDocV2, extract, addState, clear22, getState, getStates, logDocuments, getRelations2, addRelation2, addDescription, cleanupLabel2, getDividerId, addStyleClass, getClasses5, setCssClass2, setStyle, setTextStyle, getDirection4, setDirection4, trimColon, getData2, stateDb_default;
+ var init_stateDb = __esm({
+ "src/diagrams/state/stateDb.js"() {
+ "use strict";
+ init_logger();
+ init_utils2();
+ init_common();
+ init_diagramAPI();
+ init_commonDb();
+ init_dataFetcher();
+ init_stateRenderer_v3_unified();
+ init_stateCommon();
+ START_NODE = "[*]";
+ START_TYPE = "start";
+ END_NODE = START_NODE;
+ END_TYPE = "end";
+ COLOR_KEYWORD = "color";
+ FILL_KEYWORD = "fill";
+ BG_FILL = "bgFill";
+ STYLECLASS_SEP = ",";
+ __name(newClassesList, "newClassesList");
+ nodes = [];
+ edges2 = [];
+ direction3 = DEFAULT_DIAGRAM_DIRECTION;
+ rootDoc = [];
+ classes3 = newClassesList();
+ newDoc = /* @__PURE__ */ __name(() => {
+ return {
+ /** @type {{ id1: string, id2: string, relationTitle: string }[]} */
+ relations: [],
+ states: /* @__PURE__ */ new Map(),
+ documents: {}
+ };
+ }, "newDoc");
+ documents = {
+ root: newDoc()
+ };
+ currentDocument = documents.root;
+ startEndCount = 0;
+ dividerCnt = 0;
+ lineType2 = {
+ LINE: 0,
+ DOTTED_LINE: 1
+ };
+ relationType2 = {
+ AGGREGATION: 0,
+ EXTENSION: 1,
+ COMPOSITION: 2,
+ DEPENDENCY: 3
+ };
+ clone2 = /* @__PURE__ */ __name((o2) => JSON.parse(JSON.stringify(o2)), "clone");
+ setRootDoc = /* @__PURE__ */ __name((o2) => {
+ log.info("Setting root doc", o2);
+ rootDoc = o2;
+ }, "setRootDoc");
+ getRootDoc = /* @__PURE__ */ __name(() => rootDoc, "getRootDoc");
+ docTranslator = /* @__PURE__ */ __name((parent4, node2, first3) => {
+ if (node2.stmt === STMT_RELATION) {
+ docTranslator(parent4, node2.state1, true);
+ docTranslator(parent4, node2.state2, false);
+ } else {
+ if (node2.stmt === STMT_STATE) {
+ if (node2.id === "[*]") {
+ node2.id = first3 ? parent4.id + "_start" : parent4.id + "_end";
+ node2.start = first3;
+ } else {
+ node2.id = node2.id.trim();
+ }
+ }
+ if (node2.doc) {
+ const doc = [];
+ let currentDoc = [];
+ let i2;
+ for (i2 = 0; i2 < node2.doc.length; i2++) {
+ if (node2.doc[i2].type === DIVIDER_TYPE) {
+ const newNode = clone2(node2.doc[i2]);
+ newNode.doc = clone2(currentDoc);
+ doc.push(newNode);
+ currentDoc = [];
+ } else {
+ currentDoc.push(node2.doc[i2]);
}
- f2 && (_2.gm = f2);
}
- function Qr(a) {
- var b;
- while (!BD(Qb(a.a), 47).Ob()) {
- a.d = Pr(a);
- if (!a.d) {
- return false;
- }
- a.a = BD(a.d.Pb(), 47);
- if (JD(a.a, 39)) {
- b = BD(a.a, 39);
- a.a = b.a;
- !a.b && (a.b = new jkb());
- Wjb(a.b, a.d);
- if (b.b) {
- while (!akb(b.b)) {
- Wjb(a.b, BD(gkb(b.b), 47));
- }
- }
- a.d = b.d;
- }
- }
- return true;
+ if (doc.length > 0 && currentDoc.length > 0) {
+ const newNode = {
+ stmt: STMT_STATE,
+ id: generateId(),
+ type: "divider",
+ doc: clone2(currentDoc)
+ };
+ doc.push(clone2(newNode));
+ node2.doc = doc;
}
- function krb(a, b) {
- var c2, d, e, f2, g;
- f2 = b == null ? 0 : a.b.se(b);
- d = (c2 = a.a.get(f2), c2 == null ? new Array() : c2);
- for (g = 0; g < d.length; g++) {
- e = d[g];
- if (a.b.re(b, e.cd())) {
- if (d.length == 1) {
- d.length = 0;
- trb(a.a, f2);
- } else {
- d.splice(g, 1);
- }
- --a.c;
- zpb(a.b);
- return e.dd();
- }
+ node2.doc.forEach((docNode) => docTranslator(node2, docNode, true));
+ }
+ }
+ }, "docTranslator");
+ getRootDocV2 = /* @__PURE__ */ __name(() => {
+ docTranslator({ id: "root" }, { id: "root", doc: rootDoc }, true);
+ return { id: "root", doc: rootDoc };
+ }, "getRootDocV2");
+ extract = /* @__PURE__ */ __name((_doc) => {
+ let doc;
+ if (_doc.doc) {
+ doc = _doc.doc;
+ } else {
+ doc = _doc;
+ }
+ log.info(doc);
+ clear22(true);
+ log.info("Extract initial document:", doc);
+ doc.forEach((item) => {
+ log.warn("Statement", item.stmt);
+ switch (item.stmt) {
+ case STMT_STATE:
+ addState(
+ item.id.trim(),
+ item.type,
+ item.doc,
+ item.description,
+ item.note,
+ item.classes,
+ item.styles,
+ item.textStyles
+ );
+ break;
+ case STMT_RELATION:
+ addRelation2(item.state1, item.state2, item.description);
+ break;
+ case STMT_CLASSDEF:
+ addStyleClass(item.id.trim(), item.classes);
+ break;
+ case STMT_STYLEDEF:
+ {
+ const ids = item.id.trim().split(",");
+ const styles3 = item.styleClass.split(",");
+ ids.forEach((id27) => {
+ let foundState = getState(id27);
+ if (foundState === void 0) {
+ const trimmedId = id27.trim();
+ addState(trimmedId);
+ foundState = getState(trimmedId);
+ }
+ foundState.styles = styles3.map((s2) => s2.replace(/;/g, "")?.trim());
+ });
}
- return null;
+ break;
+ case STMT_APPLYCLASS:
+ setCssClass2(item.id.trim(), item.styleClass);
+ break;
+ }
+ });
+ const diagramStates = getStates();
+ const config6 = getConfig2();
+ const look = config6.look;
+ reset2();
+ dataFetcher(void 0, getRootDocV2(), diagramStates, nodes, edges2, true, look, classes3);
+ nodes.forEach((node2) => {
+ if (Array.isArray(node2.label)) {
+ node2.description = node2.label.slice(1);
+ if (node2.isGroup && node2.description.length > 0) {
+ throw new Error(
+ "Group nodes can only have label. Remove the additional description for node [" + node2.id + "]"
+ );
}
- function GGb(a, b) {
- var c2, d, e, f2;
- e = 1;
- b.j = true;
- f2 = null;
- for (d = new olb(LFb(b)); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 213);
- if (!a.c[c2.c]) {
- a.c[c2.c] = true;
- f2 = xFb(c2, b);
- if (c2.f) {
- e += GGb(a, f2);
- } else if (!f2.j && c2.a == c2.e.e - c2.d.e) {
- c2.f = true;
- Qqb(a.p, c2);
- e += GGb(a, f2);
- }
- }
- }
- return e;
- }
- function MVb(a) {
- var b, c2, d;
- for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- d = (uCb(0), 0);
- if (d > 0) {
- !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d += $wnd.Math.max(0, d / 2 - 0.5));
- !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a -= d - 1);
- }
- }
- }
- function N3b(a) {
- var b, c2, d, e, f2;
- e = new Rkb();
- f2 = O3b(a, e);
- b = BD(vNb(a, (wtc(), gtc)), 10);
- if (b) {
- for (d = new olb(b.j); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 11);
- PD(vNb(c2, $sc)) === PD(a) && (f2 = $wnd.Math.max(f2, O3b(c2, e)));
- }
- }
- e.c.length == 0 || yNb(a, Ysc, f2);
- return f2 != -1 ? e : null;
- }
- function a9b(a, b, c2) {
- var d, e, f2, g, h, i3;
- f2 = BD(Ikb(b.e, 0), 17).c;
- d = f2.i;
- e = d.k;
- i3 = BD(Ikb(c2.g, 0), 17).d;
- g = i3.i;
- h = g.k;
- e == (j0b(), g0b) ? yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11)) : yNb(a, (wtc(), Vsc), f2);
- h == g0b ? yNb(a, (wtc(), Wsc), BD(vNb(g, Wsc), 11)) : yNb(a, (wtc(), Wsc), i3);
- }
- function Rs(a, b) {
- var c2, d, e, f2;
- f2 = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
- c2 = f2 & a.b.length - 1;
- e = null;
- for (d = a.b[c2]; d; e = d, d = d.a) {
- if (d.d == f2 && Hb(d.i, b)) {
- !e ? a.b[c2] = d.a : e.a = d.a;
- Bs(d.c, d.f);
- As(d.b, d.e);
- --a.f;
- ++a.e;
- return true;
- }
- }
- return false;
+ node2.label = node2.label[0];
+ }
+ });
+ }, "extract");
+ addState = /* @__PURE__ */ __name(function(id27, type3 = DEFAULT_STATE_TYPE, doc = null, descr = null, note3 = null, classes6 = null, styles3 = null, textStyles = null) {
+ const trimmedId = id27?.trim();
+ if (!currentDocument.states.has(trimmedId)) {
+ log.info("Adding state ", trimmedId, descr);
+ currentDocument.states.set(trimmedId, {
+ id: trimmedId,
+ descriptions: [],
+ type: type3,
+ doc,
+ note: note3,
+ classes: [],
+ styles: [],
+ textStyles: []
+ });
+ } else {
+ if (!currentDocument.states.get(trimmedId).doc) {
+ currentDocument.states.get(trimmedId).doc = doc;
+ }
+ if (!currentDocument.states.get(trimmedId).type) {
+ currentDocument.states.get(trimmedId).type = type3;
+ }
+ }
+ if (descr) {
+ log.info("Setting state description", trimmedId, descr);
+ if (typeof descr === "string") {
+ addDescription(trimmedId, descr.trim());
+ }
+ if (typeof descr === "object") {
+ descr.forEach((des) => addDescription(trimmedId, des.trim()));
+ }
+ }
+ if (note3) {
+ const doc2 = currentDocument.states.get(trimmedId);
+ doc2.note = note3;
+ doc2.note.text = common_default.sanitizeText(doc2.note.text, getConfig2());
+ }
+ if (classes6) {
+ log.info("Setting state classes", trimmedId, classes6);
+ const classesList = typeof classes6 === "string" ? [classes6] : classes6;
+ classesList.forEach((cssClass) => setCssClass2(trimmedId, cssClass.trim()));
+ }
+ if (styles3) {
+ log.info("Setting state styles", trimmedId, styles3);
+ const stylesList = typeof styles3 === "string" ? [styles3] : styles3;
+ stylesList.forEach((style3) => setStyle(trimmedId, style3.trim()));
+ }
+ if (textStyles) {
+ log.info("Setting state styles", trimmedId, styles3);
+ const textStylesList = typeof textStyles === "string" ? [textStyles] : textStyles;
+ textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));
+ }
+ }, "addState");
+ clear22 = /* @__PURE__ */ __name(function(saveCommon) {
+ nodes = [];
+ edges2 = [];
+ documents = {
+ root: newDoc()
+ };
+ currentDocument = documents.root;
+ startEndCount = 0;
+ classes3 = newClassesList();
+ if (!saveCommon) {
+ clear();
+ }
+ }, "clear");
+ getState = /* @__PURE__ */ __name(function(id27) {
+ return currentDocument.states.get(id27);
+ }, "getState");
+ getStates = /* @__PURE__ */ __name(function() {
+ return currentDocument.states;
+ }, "getStates");
+ logDocuments = /* @__PURE__ */ __name(function() {
+ log.info("Documents = ", documents);
+ }, "logDocuments");
+ getRelations2 = /* @__PURE__ */ __name(function() {
+ return currentDocument.relations;
+ }, "getRelations");
+ __name(startIdIfNeeded, "startIdIfNeeded");
+ __name(startTypeIfNeeded, "startTypeIfNeeded");
+ __name(endIdIfNeeded, "endIdIfNeeded");
+ __name(endTypeIfNeeded, "endTypeIfNeeded");
+ __name(addRelationObjs, "addRelationObjs");
+ addRelation2 = /* @__PURE__ */ __name(function(item1, item2, title2) {
+ if (typeof item1 === "object") {
+ addRelationObjs(item1, item2, title2);
+ } else {
+ const id1 = startIdIfNeeded(item1.trim());
+ const type1 = startTypeIfNeeded(item1);
+ const id27 = endIdIfNeeded(item2.trim());
+ const type22 = endTypeIfNeeded(item2);
+ addState(id1, type1);
+ addState(id27, type22);
+ currentDocument.relations.push({
+ id1,
+ id2: id27,
+ title: common_default.sanitizeText(title2, getConfig2())
+ });
+ }
+ }, "addRelation");
+ addDescription = /* @__PURE__ */ __name(function(id27, descr) {
+ const theState = currentDocument.states.get(id27);
+ const _descr = descr.startsWith(":") ? descr.replace(":", "").trim() : descr;
+ theState.descriptions.push(common_default.sanitizeText(_descr, getConfig2()));
+ }, "addDescription");
+ cleanupLabel2 = /* @__PURE__ */ __name(function(label) {
+ if (label.substring(0, 1) === ":") {
+ return label.substr(2).trim();
+ } else {
+ return label.trim();
+ }
+ }, "cleanupLabel");
+ getDividerId = /* @__PURE__ */ __name(() => {
+ dividerCnt++;
+ return "divider-id-" + dividerCnt;
+ }, "getDividerId");
+ addStyleClass = /* @__PURE__ */ __name(function(id27, styleAttributes = "") {
+ if (!classes3.has(id27)) {
+ classes3.set(id27, { id: id27, styles: [], textStyles: [] });
+ }
+ const foundClass = classes3.get(id27);
+ if (styleAttributes !== void 0 && styleAttributes !== null) {
+ styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {
+ const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim();
+ if (RegExp(COLOR_KEYWORD).exec(attrib)) {
+ const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);
+ const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);
+ foundClass.textStyles.push(newStyle2);
+ }
+ foundClass.styles.push(fixedAttrib);
+ });
+ }
+ }, "addStyleClass");
+ getClasses5 = /* @__PURE__ */ __name(function() {
+ return classes3;
+ }, "getClasses");
+ setCssClass2 = /* @__PURE__ */ __name(function(itemIds, cssClassName) {
+ itemIds.split(",").forEach(function(id27) {
+ let foundState = getState(id27);
+ if (foundState === void 0) {
+ const trimmedId = id27.trim();
+ addState(trimmedId);
+ foundState = getState(trimmedId);
+ }
+ foundState.classes.push(cssClassName);
+ });
+ }, "setCssClass");
+ setStyle = /* @__PURE__ */ __name(function(itemId, styleText) {
+ const item = getState(itemId);
+ if (item !== void 0) {
+ item.styles.push(styleText);
+ }
+ }, "setStyle");
+ setTextStyle = /* @__PURE__ */ __name(function(itemId, cssClassName) {
+ const item = getState(itemId);
+ if (item !== void 0) {
+ item.textStyles.push(cssClassName);
+ }
+ }, "setTextStyle");
+ getDirection4 = /* @__PURE__ */ __name(() => direction3, "getDirection");
+ setDirection4 = /* @__PURE__ */ __name((dir2) => {
+ direction3 = dir2;
+ }, "setDirection");
+ trimColon = /* @__PURE__ */ __name((str2) => str2 && str2[0] === ":" ? str2.substr(1).trim() : str2.trim(), "trimColon");
+ getData2 = /* @__PURE__ */ __name(() => {
+ const config6 = getConfig2();
+ return { nodes, edges: edges2, other: {}, config: config6, direction: getDir2(getRootDocV2()) };
+ }, "getData");
+ stateDb_default = {
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().state, "getConfig"),
+ getData: getData2,
+ addState,
+ clear: clear22,
+ getState,
+ getStates,
+ getRelations: getRelations2,
+ getClasses: getClasses5,
+ getDirection: getDirection4,
+ addRelation: addRelation2,
+ getDividerId,
+ setDirection: setDirection4,
+ cleanupLabel: cleanupLabel2,
+ lineType: lineType2,
+ relationType: relationType2,
+ logDocuments,
+ getRootDoc,
+ setRootDoc,
+ getRootDocV2,
+ extract,
+ trimColon,
+ getAccTitle,
+ setAccTitle,
+ getAccDescription,
+ setAccDescription,
+ addStyleClass,
+ setCssClass: setCssClass2,
+ addDescription,
+ setDiagramTitle,
+ getDiagramTitle
+ };
+ }
+ });
+
+ // src/diagrams/state/styles.js
+ var getStyles11, styles_default10;
+ var init_styles10 = __esm({
+ "src/diagrams/state/styles.js"() {
+ "use strict";
+ getStyles11 = /* @__PURE__ */ __name((options3) => `
+defs #statediagram-barbEnd {
+ fill: ${options3.transitionColor};
+ stroke: ${options3.transitionColor};
+ }
+g.stateGroup text {
+ fill: ${options3.nodeBorder};
+ stroke: none;
+ font-size: 10px;
+}
+g.stateGroup text {
+ fill: ${options3.textColor};
+ stroke: none;
+ font-size: 10px;
+
+}
+g.stateGroup .state-title {
+ font-weight: bolder;
+ fill: ${options3.stateLabelColor};
+}
+
+g.stateGroup rect {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.nodeBorder};
+}
+
+g.stateGroup line {
+ stroke: ${options3.lineColor};
+ stroke-width: 1;
+}
+
+.transition {
+ stroke: ${options3.transitionColor};
+ stroke-width: 1;
+ fill: none;
+}
+
+.stateGroup .composit {
+ fill: ${options3.background};
+ border-bottom: 1px
+}
+
+.stateGroup .alt-composit {
+ fill: #e0e0e0;
+ border-bottom: 1px
+}
+
+.state-note {
+ stroke: ${options3.noteBorderColor};
+ fill: ${options3.noteBkgColor};
+
+ text {
+ fill: ${options3.noteTextColor};
+ stroke: none;
+ font-size: 10px;
+ }
+}
+
+.stateLabel .box {
+ stroke: none;
+ stroke-width: 0;
+ fill: ${options3.mainBkg};
+ opacity: 0.5;
+}
+
+.edgeLabel .label rect {
+ fill: ${options3.labelBackgroundColor};
+ opacity: 0.5;
+}
+.edgeLabel {
+ background-color: ${options3.edgeLabelBackground};
+ p {
+ background-color: ${options3.edgeLabelBackground};
+ }
+ rect {
+ opacity: 0.5;
+ background-color: ${options3.edgeLabelBackground};
+ fill: ${options3.edgeLabelBackground};
+ }
+ text-align: center;
+}
+.edgeLabel .label text {
+ fill: ${options3.transitionLabelColor || options3.tertiaryTextColor};
+}
+.label div .edgeLabel {
+ color: ${options3.transitionLabelColor || options3.tertiaryTextColor};
+}
+
+.stateLabel text {
+ fill: ${options3.stateLabelColor};
+ font-size: 10px;
+ font-weight: bold;
+}
+
+.node circle.state-start {
+ fill: ${options3.specialStateColor};
+ stroke: ${options3.specialStateColor};
+}
+
+.node .fork-join {
+ fill: ${options3.specialStateColor};
+ stroke: ${options3.specialStateColor};
+}
+
+.node circle.state-end {
+ fill: ${options3.innerEndBackground};
+ stroke: ${options3.background};
+ stroke-width: 1.5
+}
+.end-state-inner {
+ fill: ${options3.compositeBackground || options3.background};
+ // stroke: ${options3.background};
+ stroke-width: 1.5
+}
+
+.node rect {
+ fill: ${options3.stateBkg || options3.mainBkg};
+ stroke: ${options3.stateBorder || options3.nodeBorder};
+ stroke-width: 1px;
+}
+.node polygon {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.stateBorder || options3.nodeBorder};;
+ stroke-width: 1px;
+}
+#statediagram-barbEnd {
+ fill: ${options3.lineColor};
+}
+
+.statediagram-cluster rect {
+ fill: ${options3.compositeTitleBackground};
+ stroke: ${options3.stateBorder || options3.nodeBorder};
+ stroke-width: 1px;
+}
+
+.cluster-label, .nodeLabel {
+ color: ${options3.stateLabelColor};
+ // line-height: 1;
+}
+
+.statediagram-cluster rect.outer {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state .divider {
+ stroke: ${options3.stateBorder || options3.nodeBorder};
+}
+
+.statediagram-state .title-state {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-cluster.statediagram-cluster .inner {
+ fill: ${options3.compositeBackground || options3.background};
+}
+.statediagram-cluster.statediagram-cluster-alt .inner {
+ fill: ${options3.altBackground ? options3.altBackground : "#efefef"};
+}
+
+.statediagram-cluster .inner {
+ rx:0;
+ ry:0;
+}
+
+.statediagram-state rect.basic {
+ rx: 5px;
+ ry: 5px;
+}
+.statediagram-state rect.divider {
+ stroke-dasharray: 10,10;
+ fill: ${options3.altBackground ? options3.altBackground : "#efefef"};
+}
+
+.note-edge {
+ stroke-dasharray: 5;
+}
+
+.statediagram-note rect {
+ fill: ${options3.noteBkgColor};
+ stroke: ${options3.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+.statediagram-note rect {
+ fill: ${options3.noteBkgColor};
+ stroke: ${options3.noteBorderColor};
+ stroke-width: 1px;
+ rx: 0;
+ ry: 0;
+}
+
+.statediagram-note text {
+ fill: ${options3.noteTextColor};
+}
+
+.statediagram-note .nodeLabel {
+ color: ${options3.noteTextColor};
+}
+.statediagram .edgeLabel {
+ color: red; // ${options3.noteTextColor};
+}
+
+#dependencyStart, #dependencyEnd {
+ fill: ${options3.lineColor};
+ stroke: ${options3.lineColor};
+ stroke-width: 1;
+}
+
+.statediagramTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options3.textColor};
+}
+`, "getStyles");
+ styles_default10 = getStyles11;
+ }
+ });
+
+ // src/diagrams/state/id-cache.js
+ var idCache2, set3, get4, keys2, size2, id_cache_default;
+ var init_id_cache = __esm({
+ "src/diagrams/state/id-cache.js"() {
+ "use strict";
+ idCache2 = {};
+ set3 = /* @__PURE__ */ __name((key, val) => {
+ idCache2[key] = val;
+ }, "set");
+ get4 = /* @__PURE__ */ __name((k2) => idCache2[k2], "get");
+ keys2 = /* @__PURE__ */ __name(() => Object.keys(idCache2), "keys");
+ size2 = /* @__PURE__ */ __name(() => keys2().length, "size");
+ id_cache_default = {
+ get: get4,
+ set: set3,
+ keys: keys2,
+ size: size2
+ };
+ }
+ });
+
+ // src/diagrams/state/shapes.js
+ var drawStartState, drawDivider, drawSimpleState, drawDescrState, addTitleAndBox, drawEndState, drawForkJoinState, _drawLongText, drawNote3, drawState, edgeCount2, drawEdge2;
+ var init_shapes = __esm({
+ "src/diagrams/state/shapes.js"() {
+ "use strict";
+ init_src32();
+ init_id_cache();
+ init_stateDb();
+ init_utils2();
+ init_common();
+ init_diagramAPI();
+ init_logger();
+ drawStartState = /* @__PURE__ */ __name((g2) => g2.append("circle").attr("class", "start-state").attr("r", getConfig2().state.sizeUnit).attr("cx", getConfig2().state.padding + getConfig2().state.sizeUnit).attr("cy", getConfig2().state.padding + getConfig2().state.sizeUnit), "drawStartState");
+ drawDivider = /* @__PURE__ */ __name((g2) => g2.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig2().state.textHeight).attr("class", "divider").attr("x2", getConfig2().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider");
+ drawSimpleState = /* @__PURE__ */ __name((g2, stateDef) => {
+ const state5 = g2.append("text").attr("x", 2 * getConfig2().state.padding).attr("y", getConfig2().state.textHeight + 2 * getConfig2().state.padding).attr("font-size", getConfig2().state.fontSize).attr("class", "state-title").text(stateDef.id);
+ const classBox = state5.node().getBBox();
+ g2.insert("rect", ":first-child").attr("x", getConfig2().state.padding).attr("y", getConfig2().state.padding).attr("width", classBox.width + 2 * getConfig2().state.padding).attr("height", classBox.height + 2 * getConfig2().state.padding).attr("rx", getConfig2().state.radius);
+ return state5;
+ }, "drawSimpleState");
+ drawDescrState = /* @__PURE__ */ __name((g2, stateDef) => {
+ const addTspan2 = /* @__PURE__ */ __name(function(textEl, txt, isFirst2) {
+ const tSpan = textEl.append("tspan").attr("x", 2 * getConfig2().state.padding).text(txt);
+ if (!isFirst2) {
+ tSpan.attr("dy", getConfig2().state.textHeight);
+ }
+ }, "addTspan");
+ const title2 = g2.append("text").attr("x", 2 * getConfig2().state.padding).attr("y", getConfig2().state.textHeight + 1.3 * getConfig2().state.padding).attr("font-size", getConfig2().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]);
+ const titleBox = title2.node().getBBox();
+ const titleHeight = titleBox.height;
+ const description = g2.append("text").attr("x", getConfig2().state.padding).attr(
+ "y",
+ titleHeight + getConfig2().state.padding * 0.4 + getConfig2().state.dividerMargin + getConfig2().state.textHeight
+ ).attr("class", "state-description");
+ let isFirst = true;
+ let isSecond = true;
+ stateDef.descriptions.forEach(function(descr) {
+ if (!isFirst) {
+ addTspan2(description, descr, isSecond);
+ isSecond = false;
+ }
+ isFirst = false;
+ });
+ const descrLine = g2.append("line").attr("x1", getConfig2().state.padding).attr("y1", getConfig2().state.padding + titleHeight + getConfig2().state.dividerMargin / 2).attr("y2", getConfig2().state.padding + titleHeight + getConfig2().state.dividerMargin / 2).attr("class", "descr-divider");
+ const descrBox = description.node().getBBox();
+ const width3 = Math.max(descrBox.width, titleBox.width);
+ descrLine.attr("x2", width3 + 3 * getConfig2().state.padding);
+ g2.insert("rect", ":first-child").attr("x", getConfig2().state.padding).attr("y", getConfig2().state.padding).attr("width", width3 + 2 * getConfig2().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig2().state.padding).attr("rx", getConfig2().state.radius);
+ return g2;
+ }, "drawDescrState");
+ addTitleAndBox = /* @__PURE__ */ __name((g2, stateDef, altBkg) => {
+ const pad3 = getConfig2().state.padding;
+ const dblPad = 2 * getConfig2().state.padding;
+ const orgBox = g2.node().getBBox();
+ const orgWidth = orgBox.width;
+ const orgX = orgBox.x;
+ const title2 = g2.append("text").attr("x", 0).attr("y", getConfig2().state.titleShift).attr("font-size", getConfig2().state.fontSize).attr("class", "state-title").text(stateDef.id);
+ const titleBox = title2.node().getBBox();
+ const titleWidth = titleBox.width + dblPad;
+ let width3 = Math.max(titleWidth, orgWidth);
+ if (width3 === orgWidth) {
+ width3 = width3 + dblPad;
+ }
+ let startX2;
+ const graphBox = g2.node().getBBox();
+ if (stateDef.doc) {
+ }
+ startX2 = orgX - pad3;
+ if (titleWidth > orgWidth) {
+ startX2 = (orgWidth - width3) / 2 + pad3;
+ }
+ if (Math.abs(orgX - graphBox.x) < pad3 && titleWidth > orgWidth) {
+ startX2 = orgX - (titleWidth - orgWidth) / 2;
+ }
+ const lineY = 1 - getConfig2().state.textHeight;
+ g2.insert("rect", ":first-child").attr("x", startX2).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width3).attr(
+ "height",
+ graphBox.height + getConfig2().state.textHeight + getConfig2().state.titleShift + 1
+ ).attr("rx", "0");
+ title2.attr("x", startX2 + pad3);
+ if (titleWidth <= orgWidth) {
+ title2.attr("x", orgX + (width3 - dblPad) / 2 - titleWidth / 2 + pad3);
+ }
+ g2.insert("rect", ":first-child").attr("x", startX2).attr(
+ "y",
+ getConfig2().state.titleShift - getConfig2().state.textHeight - getConfig2().state.padding
+ ).attr("width", width3).attr("height", getConfig2().state.textHeight * 3).attr("rx", getConfig2().state.radius);
+ g2.insert("rect", ":first-child").attr("x", startX2).attr(
+ "y",
+ getConfig2().state.titleShift - getConfig2().state.textHeight - getConfig2().state.padding
+ ).attr("width", width3).attr("height", graphBox.height + 3 + 2 * getConfig2().state.textHeight).attr("rx", getConfig2().state.radius);
+ return g2;
+ }, "addTitleAndBox");
+ drawEndState = /* @__PURE__ */ __name((g2) => {
+ g2.append("circle").attr("class", "end-state-outer").attr("r", getConfig2().state.sizeUnit + getConfig2().state.miniPadding).attr(
+ "cx",
+ getConfig2().state.padding + getConfig2().state.sizeUnit + getConfig2().state.miniPadding
+ ).attr(
+ "cy",
+ getConfig2().state.padding + getConfig2().state.sizeUnit + getConfig2().state.miniPadding
+ );
+ return g2.append("circle").attr("class", "end-state-inner").attr("r", getConfig2().state.sizeUnit).attr("cx", getConfig2().state.padding + getConfig2().state.sizeUnit + 2).attr("cy", getConfig2().state.padding + getConfig2().state.sizeUnit + 2);
+ }, "drawEndState");
+ drawForkJoinState = /* @__PURE__ */ __name((g2, stateDef) => {
+ let width3 = getConfig2().state.forkWidth;
+ let height2 = getConfig2().state.forkHeight;
+ if (stateDef.parentId) {
+ let tmp = width3;
+ width3 = height2;
+ height2 = tmp;
+ }
+ return g2.append("rect").style("stroke", "black").style("fill", "black").attr("width", width3).attr("height", height2).attr("x", getConfig2().state.padding).attr("y", getConfig2().state.padding);
+ }, "drawForkJoinState");
+ _drawLongText = /* @__PURE__ */ __name((_text, x5, y5, g2) => {
+ let textHeight = 0;
+ const textElem = g2.append("text");
+ textElem.style("text-anchor", "start");
+ textElem.attr("class", "noteText");
+ let text2 = _text.replace(/\r\n/g, "
");
+ text2 = text2.replace(/\n/g, "
");
+ const lines = text2.split(common_default.lineBreakRegex);
+ let tHeight = 1.25 * getConfig2().state.noteMargin;
+ for (const line2 of lines) {
+ const txt = line2.trim();
+ if (txt.length > 0) {
+ const span = textElem.append("tspan");
+ span.text(txt);
+ if (tHeight === 0) {
+ const textBounds = span.node().getBBox();
+ tHeight += textBounds.height;
+ }
+ textHeight += tHeight;
+ span.attr("x", x5 + getConfig2().state.noteMargin);
+ span.attr("y", y5 + textHeight + 1.25 * getConfig2().state.noteMargin);
+ }
+ }
+ return { textWidth: textElem.node().getBBox().width, textHeight };
+ }, "_drawLongText");
+ drawNote3 = /* @__PURE__ */ __name((text2, g2) => {
+ g2.attr("class", "state-note");
+ const note3 = g2.append("rect").attr("x", 0).attr("y", getConfig2().state.padding);
+ const rectElem = g2.append("g");
+ const { textWidth, textHeight } = _drawLongText(text2, 0, 0, rectElem);
+ note3.attr("height", textHeight + 2 * getConfig2().state.noteMargin);
+ note3.attr("width", textWidth + getConfig2().state.noteMargin * 2);
+ return note3;
+ }, "drawNote");
+ drawState = /* @__PURE__ */ __name(function(elem, stateDef) {
+ const id27 = stateDef.id;
+ const stateInfo = {
+ id: id27,
+ label: stateDef.id,
+ width: 0,
+ height: 0
+ };
+ const g2 = elem.append("g").attr("id", id27).attr("class", "stateGroup");
+ if (stateDef.type === "start") {
+ drawStartState(g2);
+ }
+ if (stateDef.type === "end") {
+ drawEndState(g2);
+ }
+ if (stateDef.type === "fork" || stateDef.type === "join") {
+ drawForkJoinState(g2, stateDef);
+ }
+ if (stateDef.type === "note") {
+ drawNote3(stateDef.note.text, g2);
+ }
+ if (stateDef.type === "divider") {
+ drawDivider(g2);
+ }
+ if (stateDef.type === "default" && stateDef.descriptions.length === 0) {
+ drawSimpleState(g2, stateDef);
+ }
+ if (stateDef.type === "default" && stateDef.descriptions.length > 0) {
+ drawDescrState(g2, stateDef);
+ }
+ const stateBox = g2.node().getBBox();
+ stateInfo.width = stateBox.width + 2 * getConfig2().state.padding;
+ stateInfo.height = stateBox.height + 2 * getConfig2().state.padding;
+ id_cache_default.set(id27, stateInfo);
+ return stateInfo;
+ }, "drawState");
+ edgeCount2 = 0;
+ drawEdge2 = /* @__PURE__ */ __name(function(elem, path4, relation) {
+ const getRelationType = /* @__PURE__ */ __name(function(type3) {
+ switch (type3) {
+ case stateDb_default.relationType.AGGREGATION:
+ return "aggregation";
+ case stateDb_default.relationType.EXTENSION:
+ return "extension";
+ case stateDb_default.relationType.COMPOSITION:
+ return "composition";
+ case stateDb_default.relationType.DEPENDENCY:
+ return "dependency";
+ }
+ }, "getRelationType");
+ path4.points = path4.points.filter((p3) => !Number.isNaN(p3.y));
+ const lineData = path4.points;
+ const lineFunction = line_default().x(function(d2) {
+ return d2.x;
+ }).y(function(d2) {
+ return d2.y;
+ }).curve(basis_default2);
+ const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount2).attr("class", "transition");
+ let url = "";
+ if (getConfig2().state.arrowMarkerAbsolute) {
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
+ url = url.replace(/\(/g, "\\(");
+ url = url.replace(/\)/g, "\\)");
+ }
+ svgPath.attr(
+ "marker-end",
+ "url(" + url + "#" + getRelationType(stateDb_default.relationType.DEPENDENCY) + "End)"
+ );
+ if (relation.title !== void 0) {
+ const label = elem.append("g").attr("class", "stateLabel");
+ const { x: x5, y: y5 } = utils_default2.calcLabelPosition(path4.points);
+ const rows = common_default.getRows(relation.title);
+ let titleHeight = 0;
+ const titleRows = [];
+ let maxWidth = 0;
+ let minX = 0;
+ for (let i2 = 0; i2 <= rows.length; i2++) {
+ const title2 = label.append("text").attr("text-anchor", "middle").text(rows[i2]).attr("x", x5).attr("y", y5 + titleHeight);
+ const boundsTmp = title2.node().getBBox();
+ maxWidth = Math.max(maxWidth, boundsTmp.width);
+ minX = Math.min(minX, boundsTmp.x);
+ log.info(boundsTmp.x, x5, y5 + titleHeight);
+ if (titleHeight === 0) {
+ const titleBox = title2.node().getBBox();
+ titleHeight = titleBox.height;
+ log.info("Title height", titleHeight, y5);
+ }
+ titleRows.push(title2);
+ }
+ let boxHeight = titleHeight * rows.length;
+ if (rows.length > 1) {
+ const heightAdj = (rows.length - 1) * titleHeight * 0.5;
+ titleRows.forEach((title2, i2) => title2.attr("y", y5 + i2 * titleHeight - heightAdj));
+ boxHeight = titleHeight * rows.length;
+ }
+ const bounds4 = label.node().getBBox();
+ label.insert("rect", ":first-child").attr("class", "box").attr("x", x5 - maxWidth / 2 - getConfig2().state.padding / 2).attr("y", y5 - boxHeight / 2 - getConfig2().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig2().state.padding).attr("height", boxHeight + getConfig2().state.padding);
+ log.info(bounds4);
+ }
+ edgeCount2++;
+ }, "drawEdge");
+ }
+ });
+
+ // src/diagrams/state/stateRenderer.js
+ var conf6, transformationLog, setConf6, insertMarkers5, draw15, getLabelWidth, renderDoc, stateRenderer_default;
+ var init_stateRenderer = __esm({
+ "src/diagrams/state/stateRenderer.js"() {
+ "use strict";
+ init_src32();
+ init_dagre();
+ init_graphlib();
+ init_logger();
+ init_common();
+ init_shapes();
+ init_diagramAPI();
+ init_setupGraphViewbox();
+ transformationLog = {};
+ setConf6 = /* @__PURE__ */ __name(function() {
+ }, "setConf");
+ insertMarkers5 = /* @__PURE__ */ __name(function(elem) {
+ elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
+ }, "insertMarkers");
+ draw15 = /* @__PURE__ */ __name(function(text2, id27, _version, diagObj) {
+ conf6 = getConfig2().state;
+ const securityLevel = getConfig2().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
+ log.debug("Rendering diagram " + text2);
+ const diagram24 = root4.select(`[id='${id27}']`);
+ insertMarkers5(diagram24);
+ const rootDoc2 = diagObj.db.getRootDoc();
+ renderDoc(rootDoc2, diagram24, void 0, false, root4, doc, diagObj);
+ const padding3 = conf6.padding;
+ const bounds4 = diagram24.node().getBBox();
+ const width3 = bounds4.width + padding3 * 2;
+ const height2 = bounds4.height + padding3 * 2;
+ const svgWidth = width3 * 1.75;
+ configureSvgSize(diagram24, height2, svgWidth, conf6.useMaxWidth);
+ diagram24.attr(
+ "viewBox",
+ `${bounds4.x - conf6.padding} ${bounds4.y - conf6.padding} ` + width3 + " " + height2
+ );
+ }, "draw");
+ getLabelWidth = /* @__PURE__ */ __name((text2) => {
+ return text2 ? text2.length * conf6.fontSizeFactor : 1;
+ }, "getLabelWidth");
+ renderDoc = /* @__PURE__ */ __name((doc, diagram24, parentId, altBkg, root4, domDocument, diagObj) => {
+ const graph = new Graph({
+ compound: true,
+ multigraph: true
+ });
+ let i2;
+ let edgeFreeDoc = true;
+ for (i2 = 0; i2 < doc.length; i2++) {
+ if (doc[i2].stmt === "relation") {
+ edgeFreeDoc = false;
+ break;
+ }
+ }
+ if (parentId) {
+ graph.setGraph({
+ rankdir: "LR",
+ multigraph: true,
+ compound: true,
+ // acyclicer: 'greedy',
+ ranker: "tight-tree",
+ ranksep: edgeFreeDoc ? 1 : conf6.edgeLengthFactor,
+ nodeSep: edgeFreeDoc ? 1 : 50,
+ isMultiGraph: true
+ // ranksep: 5,
+ // nodesep: 1
+ });
+ } else {
+ graph.setGraph({
+ rankdir: "TB",
+ multigraph: true,
+ compound: true,
+ // isCompound: true,
+ // acyclicer: 'greedy',
+ // ranker: 'longest-path'
+ ranksep: edgeFreeDoc ? 1 : conf6.edgeLengthFactor,
+ nodeSep: edgeFreeDoc ? 1 : 50,
+ ranker: "tight-tree",
+ // ranker: 'network-simplex'
+ isMultiGraph: true
+ });
+ }
+ graph.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ diagObj.db.extract(doc);
+ const states = diagObj.db.getStates();
+ const relations3 = diagObj.db.getRelations();
+ const keys3 = Object.keys(states);
+ let first3 = true;
+ for (const key of keys3) {
+ const stateDef = states[key];
+ if (parentId) {
+ stateDef.parentId = parentId;
+ }
+ let node2;
+ if (stateDef.doc) {
+ let sub2 = diagram24.append("g").attr("id", stateDef.id).attr("class", "stateGroup");
+ node2 = renderDoc(stateDef.doc, sub2, stateDef.id, !altBkg, root4, domDocument, diagObj);
+ if (first3) {
+ sub2 = addTitleAndBox(sub2, stateDef, altBkg);
+ let boxBounds = sub2.node().getBBox();
+ node2.width = boxBounds.width;
+ node2.height = boxBounds.height + conf6.padding / 2;
+ transformationLog[stateDef.id] = { y: conf6.compositTitleSize };
+ } else {
+ let boxBounds = sub2.node().getBBox();
+ node2.width = boxBounds.width;
+ node2.height = boxBounds.height;
}
- function lD(a, b) {
- var c2, d, e, f2, g;
- b &= 63;
- c2 = a.h;
- d = (c2 & Gje) != 0;
- d && (c2 |= -1048576);
- if (b < 22) {
- g = c2 >> b;
- f2 = a.m >> b | c2 << 22 - b;
- e = a.l >> b | a.m << 22 - b;
- } else if (b < 44) {
- g = d ? Fje : 0;
- f2 = c2 >> b - 22;
- e = a.m >> b - 22 | c2 << 44 - b;
- } else {
- g = d ? Fje : 0;
- f2 = d ? Eje : 0;
- e = c2 >> b - 44;
- }
- return TC(e & Eje, f2 & Eje, g & Fje);
- }
- function XOb(a) {
- var b, c2, d, e, f2, g;
- this.c = new Rkb();
- this.d = a;
- d = Pje;
- e = Pje;
- b = Qje;
- c2 = Qje;
- for (g = Jsb(a, 0); g.b != g.d.c; ) {
- f2 = BD(Xsb(g), 8);
- d = $wnd.Math.min(d, f2.a);
- e = $wnd.Math.min(e, f2.b);
- b = $wnd.Math.max(b, f2.a);
- c2 = $wnd.Math.max(c2, f2.b);
- }
- this.a = new J6c(d, e, b - d, c2 - e);
- }
- function Dac(a, b) {
- var c2, d, e, f2, g, h;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- for (h = new olb(e.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- g.k == (j0b(), f0b) && zac(g, b);
- for (d = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- yac(c2, b);
- }
- }
- }
- }
- function Xoc(a) {
- var b, c2, d;
- this.c = a;
- d = BD(vNb(a, (Nyc(), Lwc)), 103);
- b = Edb(ED(vNb(a, owc)));
- c2 = Edb(ED(vNb(a, Dyc)));
- d == (ead(), aad) || d == bad || d == cad ? this.b = b * c2 : this.b = 1 / (b * c2);
- this.j = Edb(ED(vNb(a, wyc)));
- this.e = Edb(ED(vNb(a, vyc)));
- this.f = a.b.c.length;
- }
- function ADc(a) {
- var b, c2;
- a.e = KC(WD, oje, 25, a.p.c.length, 15, 1);
- a.k = KC(WD, oje, 25, a.p.c.length, 15, 1);
- for (c2 = new olb(a.p); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- a.e[b.p] = sr(new Sr(ur(R_b(b).a.Kc(), new Sq())));
- a.k[b.p] = sr(new Sr(ur(U_b(b).a.Kc(), new Sq())));
- }
- }
- function DDc(a) {
- var b, c2, d, e, f2, g;
- e = 0;
- a.q = new Rkb();
- b = new Tqb();
- for (g = new olb(a.p); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- f2.p = e;
- for (d = new Sr(ur(U_b(f2).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- Qqb(b, c2.d.i);
- }
- b.a.Bc(f2) != null;
- Ekb(a.q, new Vqb(b));
- b.a.$b();
- ++e;
- }
- }
- function JTc() {
- JTc = ccb;
- CTc = new q0b(20);
- BTc = new Osd((Y9c(), f9c), CTc);
- HTc = new Osd(T9c, 20);
- uTc = new Osd(r8c, tme);
- ETc = new Osd(D9c, meb(1));
- GTc = new Osd(H9c, (Bcb(), true));
- vTc = y8c;
- xTc = Y8c;
- yTc = _8c;
- zTc = b9c;
- wTc = W8c;
- ATc = e9c;
- DTc = x9c;
- ITc = (rTc(), pTc);
- FTc = nTc;
- }
- function RBd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- if (a.a.f > 0 && JD(b, 42)) {
- a.a.qj();
- j = BD(b, 42);
- i3 = j.cd();
- f2 = i3 == null ? 0 : tb(i3);
- g = DAd(a.a, f2);
- c2 = a.a.d[g];
- if (c2) {
- d = BD(c2.g, 367);
- k = c2.i;
- for (h = 0; h < k; ++h) {
- e = d[h];
- if (e.Sh() == f2 && e.Fb(j)) {
- RBd(a, j);
- return true;
- }
- }
- }
- }
- return false;
+ } else {
+ node2 = drawState(diagram24, stateDef, graph);
+ }
+ if (stateDef.note) {
+ const noteDef = {
+ descriptions: [],
+ id: stateDef.id + "-note",
+ note: stateDef.note,
+ type: "note"
+ };
+ const note3 = drawState(diagram24, noteDef, graph);
+ if (stateDef.note.position === "left of") {
+ graph.setNode(node2.id + "-note", note3);
+ graph.setNode(node2.id, node2);
+ } else {
+ graph.setNode(node2.id, node2);
+ graph.setNode(node2.id + "-note", note3);
}
- function skc(a) {
- var b, c2, d, e;
- for (e = BD(Qc(a.a, (Xjc(), Ujc)), 15).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 101);
- c2 = (b = Ec(d.k), b.Hc((Ucd(), Acd)) ? b.Hc(zcd) ? b.Hc(Rcd) ? b.Hc(Tcd) ? null : dkc : fkc : ekc : ckc);
- kkc(a, d, c2[0], (Fkc(), Ckc), 0);
- kkc(a, d, c2[1], Dkc, 1);
- kkc(a, d, c2[2], Ekc, 1);
- }
- }
- function enc(a, b) {
- var c2, d;
- c2 = fnc(b);
- inc(a, b, c2);
- uPc(a.a, BD(vNb(Q_b(b.b), (wtc(), jtc)), 230));
- dnc(a);
- cnc(a, b);
- d = KC(WD, oje, 25, b.b.j.c.length, 15, 1);
- lnc(a, b, (Ucd(), Acd), d, c2);
- lnc(a, b, zcd, d, c2);
- lnc(a, b, Rcd, d, c2);
- lnc(a, b, Tcd, d, c2);
- a.a = null;
- a.c = null;
- a.b = null;
- }
- function OYc() {
- OYc = ccb;
- LYc = (zYc(), yYc);
- KYc = new Nsd(Bre, LYc);
- IYc = new Nsd(Cre, (Bcb(), true));
- meb(-1);
- FYc = new Nsd(Dre, meb(-1));
- meb(-1);
- GYc = new Nsd(Ere, meb(-1));
- JYc = new Nsd(Fre, false);
- MYc = new Nsd(Gre, true);
- HYc = new Nsd(Hre, false);
- NYc = new Nsd(Ire, -1);
- }
- function yld(a, b, c2) {
- switch (b) {
- case 7:
- !a.e && (a.e = new y5d(B2, a, 7, 4));
- Uxd(a.e);
- !a.e && (a.e = new y5d(B2, a, 7, 4));
- ytd(a.e, BD(c2, 14));
- return;
- case 8:
- !a.d && (a.d = new y5d(B2, a, 8, 5));
- Uxd(a.d);
- !a.d && (a.d = new y5d(B2, a, 8, 5));
- ytd(a.d, BD(c2, 14));
- return;
- }
- Zkd(a, b, c2);
+ graph.setParent(node2.id, node2.id + "-group");
+ graph.setParent(node2.id + "-note", node2.id + "-group");
+ } else {
+ graph.setNode(node2.id, node2);
+ }
+ }
+ log.debug("Count=", graph.nodeCount(), graph);
+ let cnt4 = 0;
+ relations3.forEach(function(relation) {
+ cnt4++;
+ log.debug("Setting edge", relation);
+ graph.setEdge(
+ relation.id1,
+ relation.id2,
+ {
+ relation,
+ width: getLabelWidth(relation.title),
+ height: conf6.labelHeight * common_default.getRows(relation.title).length,
+ labelpos: "c"
+ },
+ "id" + cnt4
+ );
+ });
+ layout(graph);
+ log.debug("Graph after layout", graph.nodes());
+ const svgElem = diagram24.node();
+ graph.nodes().forEach(function(v3) {
+ if (v3 !== void 0 && graph.node(v3) !== void 0) {
+ log.warn("Node " + v3 + ": " + JSON.stringify(graph.node(v3)));
+ root4.select("#" + svgElem.id + " #" + v3).attr(
+ "transform",
+ "translate(" + (graph.node(v3).x - graph.node(v3).width / 2) + "," + (graph.node(v3).y + (transformationLog[v3] ? transformationLog[v3].y : 0) - graph.node(v3).height / 2) + " )"
+ );
+ root4.select("#" + svgElem.id + " #" + v3).attr("data-x-shift", graph.node(v3).x - graph.node(v3).width / 2);
+ const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v3 + " .divider");
+ dividers.forEach((divider3) => {
+ const parent4 = divider3.parentElement;
+ let pWidth = 0;
+ let pShift = 0;
+ if (parent4) {
+ if (parent4.parentElement) {
+ pWidth = parent4.parentElement.getBBox().width;
+ }
+ pShift = parseInt(parent4.getAttribute("data-x-shift"), 10);
+ if (Number.isNaN(pShift)) {
+ pShift = 0;
+ }
+ }
+ divider3.setAttribute("x1", 0 - pShift + 8);
+ divider3.setAttribute("x2", pWidth - pShift - 8);
+ });
+ } else {
+ log.debug("No Node " + v3 + ": " + JSON.stringify(graph.node(v3)));
+ }
+ });
+ let stateBox = svgElem.getBBox();
+ graph.edges().forEach(function(e3) {
+ if (e3 !== void 0 && graph.edge(e3) !== void 0) {
+ log.debug("Edge " + e3.v + " -> " + e3.w + ": " + JSON.stringify(graph.edge(e3)));
+ drawEdge2(diagram24, graph.edge(e3), graph.edge(e3).relation);
+ }
+ });
+ stateBox = svgElem.getBBox();
+ const stateInfo = {
+ id: parentId ? parentId : "root",
+ label: parentId ? parentId : "root",
+ width: 0,
+ height: 0
+ };
+ stateInfo.width = stateBox.width + 2 * conf6.padding;
+ stateInfo.height = stateBox.height + 2 * conf6.padding;
+ log.debug("Doc rendered", stateInfo, graph);
+ return stateInfo;
+ }, "renderDoc");
+ stateRenderer_default = {
+ setConf: setConf6,
+ draw: draw15
+ };
+ }
+ });
+
+ // src/diagrams/state/stateDiagram.ts
+ var stateDiagram_exports = {};
+ __export(stateDiagram_exports, {
+ diagram: () => diagram14
+ });
+ var diagram14;
+ var init_stateDiagram2 = __esm({
+ "src/diagrams/state/stateDiagram.ts"() {
+ "use strict";
+ init_stateDiagram();
+ init_stateDb();
+ init_styles10();
+ init_stateRenderer();
+ diagram14 = {
+ parser: stateDiagram_default,
+ db: stateDb_default,
+ renderer: stateRenderer_default,
+ styles: styles_default10,
+ init: /* @__PURE__ */ __name((cnf) => {
+ if (!cnf.state) {
+ cnf.state = {};
+ }
+ cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ stateDb_default.clear();
+ }, "init")
+ };
+ }
+ });
+
+ // src/diagrams/state/stateDiagram-v2.ts
+ var stateDiagram_v2_exports = {};
+ __export(stateDiagram_v2_exports, {
+ diagram: () => diagram15
+ });
+ var diagram15;
+ var init_stateDiagram_v2 = __esm({
+ "src/diagrams/state/stateDiagram-v2.ts"() {
+ "use strict";
+ init_stateDiagram();
+ init_stateDb();
+ init_styles10();
+ init_stateRenderer_v3_unified();
+ diagram15 = {
+ parser: stateDiagram_default,
+ db: stateDb_default,
+ renderer: stateRenderer_v3_unified_default,
+ styles: styles_default10,
+ init: /* @__PURE__ */ __name((cnf) => {
+ if (!cnf.state) {
+ cnf.state = {};
+ }
+ cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ stateDb_default.clear();
+ }, "init")
+ };
+ }
+ });
+
+ // src/diagrams/user-journey/parser/journey.jison
+ var parser15, journey_default;
+ var init_journey = __esm({
+ "src/diagrams/user-journey/parser/journey.jison"() {
+ "use strict";
+ parser15 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "taskName": 18, "taskData": 19, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "journey", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 18: "taskName", 19: "taskData" },
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ break;
+ case 2:
+ this.$ = [];
+ break;
+ case 3:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 4:
+ case 5:
+ this.$ = $$[$0];
+ break;
+ case 6:
+ case 7:
+ this.$ = [];
+ break;
+ case 8:
+ yy.setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 9:
+ this.$ = $$[$0].trim();
+ yy.setAccTitle(this.$);
+ break;
+ case 10:
+ case 11:
+ this.$ = $$[$0].trim();
+ yy.setAccDescription(this.$);
+ break;
+ case 12:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 13:
+ yy.addTask($$[$0 - 1], $$[$0]);
+ this.$ = "task";
+ break;
}
- function At(a, b) {
- var c2, d, e, f2, g;
- if (PD(b) === PD(a)) {
- return true;
- }
- if (!JD(b, 15)) {
- return false;
- }
- g = BD(b, 15);
- if (a.gc() != g.gc()) {
- return false;
- }
- f2 = g.Kc();
- for (d = a.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- e = f2.Pb();
- if (!(PD(c2) === PD(e) || c2 != null && pb(c2, e))) {
- return false;
- }
- }
- return true;
+ }, "anonymous"),
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o2($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o2($V0, [2, 7], { 1: [2, 1] }), o2($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o2($V0, [2, 5]), o2($V0, [2, 6]), o2($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o2($V0, [2, 11]), o2($V0, [2, 12]), { 19: [1, 18] }, o2($V0, [2, 4]), o2($V0, [2, 9]), o2($V0, [2, 10]), o2($V0, [2, 13])],
+ defaultActions: {},
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function U6b(a, b) {
- var c2, d, e, f2;
- f2 = BD(GAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new $6b()), new a7b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- f2.Jc(new c7b());
- c2 = 0;
- for (e = f2.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 11);
- d.p == -1 && T6b(a, d, c2++);
- }
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function Wzc(a) {
- switch (a.g) {
- case 0:
- return new KLc();
- case 1:
- return new dJc();
- case 2:
- return new tJc();
- case 3:
- return new CMc();
- case 4:
- return new $Jc();
- default:
- throw vbb(new Wdb("No implementation is available for the node placer " + (a.f != null ? a.f : "" + a.g)));
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
}
+ return token2;
}
- function nqc(a) {
- switch (a.g) {
- case 0:
- return new aCc();
- case 1:
- return new VBc();
- case 2:
- return new kCc();
- case 3:
- return new rCc();
- case 4:
- return new eCc();
- default:
- throw vbb(new Wdb("No implementation is available for the cycle breaker " + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function HWc() {
- HWc = ccb;
- BWc = new Nsd(lre, meb(0));
- CWc = new Nsd(mre, 0);
- yWc = (pWc(), mWc);
- xWc = new Nsd(nre, yWc);
- meb(0);
- wWc = new Nsd(ore, meb(1));
- EWc = (sXc(), qXc);
- DWc = new Nsd(pre, EWc);
- GWc = (fWc(), eWc);
- FWc = new Nsd(qre, GWc);
- AWc = (iXc(), hXc);
- zWc = new Nsd(rre, AWc);
- }
- function XXb(a, b, c2) {
- var d;
- d = null;
- !!b && (d = b.d);
- hYb(a, new cWb(b.n.a - d.b + c2.a, b.n.b - d.d + c2.b));
- hYb(a, new cWb(b.n.a - d.b + c2.a, b.n.b + b.o.b + d.a + c2.b));
- hYb(a, new cWb(b.n.a + b.o.a + d.c + c2.a, b.n.b - d.d + c2.b));
- hYb(a, new cWb(b.n.a + b.o.a + d.c + c2.a, b.n.b + b.o.b + d.a + c2.b));
- }
- function T6b(a, b, c2) {
- var d, e, f2;
- b.p = c2;
- for (f2 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(f2); ) {
- d = BD(Rr(f2), 11);
- d.p == -1 && T6b(a, d, c2);
- }
- if (b.i.k == (j0b(), g0b)) {
- for (e = new olb(b.i.j); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 11);
- d != b && d.p == -1 && T6b(a, d, c2);
- }
- }
- }
- function rPc(a) {
- var b, c2, d, e, f2;
- e = BD(GAb(IAb(UAb(a)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- d = dme;
- if (e.gc() >= 2) {
- c2 = e.Kc();
- b = ED(c2.Pb());
- while (c2.Ob()) {
- f2 = b;
- b = ED(c2.Pb());
- d = $wnd.Math.min(d, (uCb(b), b) - (uCb(f2), f2));
- }
- }
- return d;
- }
- function gUc(a, b) {
- var c2, d, e, f2, g;
- d = new Psb();
- Gsb(d, b, d.c.b, d.c);
- do {
- c2 = (sCb(d.b != 0), BD(Nsb(d, d.a.a), 86));
- a.b[c2.g] = 1;
- for (f2 = Jsb(c2.d, 0); f2.b != f2.d.c; ) {
- e = BD(Xsb(f2), 188);
- g = e.c;
- a.b[g.g] == 1 ? Dsb(a.a, e) : a.b[g.g] == 2 ? a.b[g.g] = 1 : Gsb(d, g, d.c.b, d.c);
- }
- } while (d.b != 0);
- }
- function Ju(a, b) {
- var c2, d, e;
- if (PD(b) === PD(Qb(a))) {
- return true;
- }
- if (!JD(b, 15)) {
- return false;
- }
- d = BD(b, 15);
- e = a.gc();
- if (e != d.gc()) {
- return false;
- }
- if (JD(d, 54)) {
- for (c2 = 0; c2 < e; c2++) {
- if (!Hb(a.Xb(c2), d.Xb(c2))) {
- return false;
- }
- }
- return true;
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
} else {
- return kr(a.Kc(), d.Kc());
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
}
- }
- function Aac(a, b) {
- var c2, d;
- if (a.c.length != 0) {
- if (a.c.length == 2) {
- zac((tCb(0, a.c.length), BD(a.c[0], 10)), (rbd(), nbd));
- zac((tCb(1, a.c.length), BD(a.c[1], 10)), obd);
- } else {
- for (d = new olb(a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- zac(c2, b);
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
}
}
- a.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- }
- function uKc(a) {
- var b, c2;
- if (a.c.length != 2) {
- throw vbb(new Zdb("Order only allowed for two paths."));
- }
- b = (tCb(0, a.c.length), BD(a.c[0], 17));
- c2 = (tCb(1, a.c.length), BD(a.c[1], 17));
- if (b.d.i != c2.c.i) {
- a.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.c[a.c.length] = c2;
- a.c[a.c.length] = b;
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
}
- }
- function EMc(a, b) {
- var c2, d, e, f2, g, h;
- d = new $rb();
- g = Gx(new amb(a.g));
- for (f2 = g.a.ec().Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 10);
- if (!e) {
- Sdd(b, "There are no classes in a balanced layout.");
- break;
- }
- h = a.j[e.p];
- c2 = BD(Wrb(d, h), 15);
- if (!c2) {
- c2 = new Rkb();
- Xrb(d, h, c2);
- }
- c2.Fc(e);
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
}
- return d;
- }
- function Dqd(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- if (c2) {
- f2 = c2.a.length;
- d = new Yge(f2);
- for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- i3 = Zpd(c2, g.a);
- if (i3) {
- j = ftd(_pd(i3, Ite), b);
- Rhb(a.f, j, i3);
- e = Vte in i3.a;
- e && Lkd(j, _pd(i3, Vte));
- grd(i3, j);
- hrd(i3, j);
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
}
- }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
}
}
- function ndc(a, b) {
- var c2, d, e, f2, g;
- Odd(b, "Port side processing", 1);
- for (g = new olb(a.a); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 10);
- odc(e);
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- odc(e);
- }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- Qdd(b);
- }
- function bfc(a, b, c2) {
- var d, e, f2, g, h;
- e = a.f;
- !e && (e = BD(a.a.a.ec().Kc().Pb(), 57));
- cfc(e, b, c2);
- if (a.a.a.gc() == 1) {
- return;
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- d = b * c2;
- for (g = a.a.a.ec().Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 57);
- if (f2 != e) {
- h = ugc(f2);
- if (h.f.d) {
- f2.d.d += d + ple;
- f2.d.a -= d + ple;
- } else
- h.f.a && (f2.d.a -= d + ple);
- }
- }
- }
- function tQb(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n;
- g = c2 - a;
- h = d - b;
- f2 = $wnd.Math.atan2(g, h);
- i3 = f2 + cme;
- j = f2 - cme;
- k = e * $wnd.Math.sin(i3) + a;
- m = e * $wnd.Math.cos(i3) + b;
- l = e * $wnd.Math.sin(j) + a;
- n = e * $wnd.Math.cos(j) + b;
- return Ou(OC(GC(m1, 1), nie, 8, 0, [new f7c(k, m), new f7c(l, n)]));
- }
- function OLc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l;
- e = c2;
- k = b;
- f2 = k;
- do {
- f2 = a.a[f2.p];
- h = (l = a.g[f2.p], Edb(a.p[l.p]) + Edb(a.d[f2.p]) - f2.d.d);
- i3 = RLc(f2, d);
- if (i3) {
- g = (j = a.g[i3.p], Edb(a.p[j.p]) + Edb(a.d[i3.p]) + i3.o.b + i3.d.a);
- e = $wnd.Math.min(e, h - (g + jBc(a.k, f2, i3)));
- }
- } while (k != f2);
- return e;
- }
- function PLc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l;
- e = c2;
- k = b;
- f2 = k;
- do {
- f2 = a.a[f2.p];
- g = (l = a.g[f2.p], Edb(a.p[l.p]) + Edb(a.d[f2.p]) + f2.o.b + f2.d.a);
- i3 = QLc(f2, d);
- if (i3) {
- h = (j = a.g[i3.p], Edb(a.p[j.p]) + Edb(a.d[i3.p]) - i3.d.d);
- e = $wnd.Math.min(e, h - (g + jBc(a.k, f2, i3)));
- }
- } while (k != f2);
- return e;
- }
- function hkd(a, b) {
- var c2, d;
- d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), AAd(a.o, b));
- if (d != null) {
- return d;
- }
- c2 = b.wg();
- JD(c2, 4) && (c2 == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c2)), a);
- return c2;
- }
- function Hbd() {
- Hbd = ccb;
- zbd = new Ibd("H_LEFT", 0);
- ybd = new Ibd("H_CENTER", 1);
- Bbd = new Ibd("H_RIGHT", 2);
- Gbd = new Ibd("V_TOP", 3);
- Fbd = new Ibd("V_CENTER", 4);
- Ebd = new Ibd("V_BOTTOM", 5);
- Cbd = new Ibd("INSIDE", 6);
- Dbd = new Ibd("OUTSIDE", 7);
- Abd = new Ibd("H_PRIORITY", 8);
- }
- function o6d(a) {
- var b, c2, d, e, f2, g, h;
- b = a.Hh(_ve);
- if (b) {
- h = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "settingDelegates"));
- if (h != null) {
- c2 = new Rkb();
- for (e = mfb(h, "\\w+"), f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- c2.c[c2.c.length] = d;
- }
- return c2;
- }
- }
- return mmb(), mmb(), jmb;
- }
- function sGb(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (!b.f) {
- throw vbb(new Wdb("The input edge is not a tree edge."));
- }
- f2 = null;
- e = Ohe;
- for (d = new olb(a.d); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 213);
- h = c2.d;
- i3 = c2.e;
- if (xGb(a, h, b) && !xGb(a, i3, b)) {
- g = i3.e - h.e - c2.a;
- if (g < e) {
- e = g;
- f2 = c2;
- }
- }
- }
- return f2;
- }
- function qTb(a) {
- var b, c2, d, e, f2, g;
- if (a.f.e.c.length <= 1) {
- return;
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
}
- b = 0;
- e = nTb(a);
- c2 = Pje;
- do {
- b > 0 && (e = c2);
- for (g = new olb(a.f.e); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 144);
- if (Ccb(DD(vNb(f2, (bTb(), USb))))) {
- continue;
- }
- d = mTb(a, f2);
- P6c(X6c(f2.d), d);
- }
- c2 = nTb(a);
- } while (!pTb(a, b++, e, c2));
- }
- function $ac(a, b) {
- var c2, d, e;
- Odd(b, "Layer constraint preprocessing", 1);
- c2 = new Rkb();
- e = new Bib(a.a, 0);
- while (e.b < e.d.gc()) {
- d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 10));
- if (Zac(d)) {
- Xac(d);
- c2.c[c2.c.length] = d;
- uib(e);
- }
- }
- c2.c.length == 0 || yNb(a, (wtc(), Lsc), c2);
- Qdd(b);
- }
- function sjc(a, b) {
- var c2, d, e, f2, g;
- f2 = a.g.a;
- g = a.g.b;
- for (d = new olb(a.d); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 70);
- e = c2.n;
- a.a == (Ajc(), xjc) || a.i == (Ucd(), zcd) ? e.a = f2 : a.a == yjc || a.i == (Ucd(), Tcd) ? e.a = f2 + a.j.a - c2.o.a : e.a = f2 + (a.j.a - c2.o.a) / 2;
- e.b = g;
- P6c(e, b);
- g += c2.o.b + a.e;
- }
- }
- function LSc(a, b, c2) {
- var d, e, f2, g;
- Odd(c2, "Processor set coordinates", 1);
- a.a = b.b.b == 0 ? 1 : b.b.b;
- f2 = null;
- d = Jsb(b.b, 0);
- while (!f2 && d.b != d.d.c) {
- g = BD(Xsb(d), 86);
- if (Ccb(DD(vNb(g, (mTc(), jTc))))) {
- f2 = g;
- e = g.e;
- e.a = BD(vNb(g, kTc), 19).a;
- e.b = 0;
- }
- }
- MSc(a, URc(f2), Udd(c2, 1));
- Qdd(c2);
- }
- function xSc(a, b, c2) {
- var d, e, f2;
- Odd(c2, "Processor determine the height for each level", 1);
- a.a = b.b.b == 0 ? 1 : b.b.b;
- e = null;
- d = Jsb(b.b, 0);
- while (!e && d.b != d.d.c) {
- f2 = BD(Xsb(d), 86);
- Ccb(DD(vNb(f2, (mTc(), jTc)))) && (e = f2);
- }
- !!e && ySc(a, Ou(OC(GC(q$, 1), fme, 86, 0, [e])), c2);
- Qdd(c2);
- }
- function brd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- j = a;
- i3 = $pd(j, "individualSpacings");
- if (i3) {
- d = ikd(b, (Y9c(), O9c));
- g = !d;
- if (g) {
- e = new _fd();
- jkd(b, O9c, e);
- }
- h = BD(hkd(b, O9c), 373);
- l = i3;
- f2 = null;
- !!l && (f2 = (k = $B(l, KC(ZI, nie, 2, 0, 6, 1)), new mC(l, k)));
- if (f2) {
- c2 = new Frd(l, h);
- reb(f2, c2);
- }
- }
- }
- function frd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- i3 = null;
- l = a;
- k = null;
- if (cue in l.a || due in l.a || Ote in l.a) {
- j = null;
- m = etd(b);
- g = $pd(l, cue);
- c2 = new Ird(m);
- Eqd(c2.a, g);
- h = $pd(l, due);
- d = new asd(m);
- Pqd(d.a, h);
- f2 = Ypd(l, Ote);
- e = new dsd(m);
- j = (Qqd(e.a, f2), f2);
- k = j;
- }
- i3 = k;
- return i3;
- }
- function $w(a, b) {
- var c2, d, e;
- if (b === a) {
- return true;
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- if (JD(b, 543)) {
- e = BD(b, 835);
- if (a.a.d != e.a.d || Ah(a).gc() != Ah(e).gc()) {
- return false;
- }
- for (d = Ah(e).Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 416);
- if (Aw(a, c2.a.cd()) != BD(c2.a.dd(), 14).gc()) {
- return false;
- }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
}
- return true;
+ return false;
}
return false;
- }
- function BMb(a) {
- var b, c2, d, e;
- d = BD(a.a, 19).a;
- e = BD(a.b, 19).a;
- b = d;
- c2 = e;
- if (d == 0 && e == 0) {
- c2 -= 1;
- } else {
- if (d == -1 && e <= 0) {
- b = 0;
- c2 -= 2;
- } else {
- if (d <= 0 && e > 0) {
- b -= 1;
- c2 -= 1;
- } else {
- if (d >= 0 && e < 0) {
- b += 1;
- c2 += 1;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
} else {
- if (d > 0 && e >= 0) {
- b -= 1;
- c2 += 1;
- } else {
- b += 1;
- c2 -= 1;
- }
+ return false;
}
+ } else if (!this.options.flex) {
+ break;
}
}
}
- return new vgd(meb(b), meb(c2));
- }
- function PIc(a, b) {
- if (a.c < b.c) {
- return -1;
- } else if (a.c > b.c) {
- return 1;
- } else if (a.b < b.b) {
- return -1;
- } else if (a.b > b.b) {
- return 1;
- } else if (a.a != b.a) {
- return tb(a.a) - tb(b.a);
- } else if (a.d == (UIc(), TIc) && b.d == SIc) {
- return -1;
- } else if (a.d == SIc && b.d == TIc) {
- return 1;
- }
- return 0;
- }
- function aNc(a, b) {
- var c2, d, e, f2, g;
- f2 = b.a;
- f2.c.i == b.b ? g = f2.d : g = f2.c;
- f2.c.i == b.b ? d = f2.c : d = f2.d;
- e = NLc(a.a, g, d);
- if (e > 0 && e < dme) {
- c2 = OLc(a.a, d.i, e, a.c);
- TLc(a.a, d.i, -c2);
- return c2 > 0;
- } else if (e < 0 && -e < dme) {
- c2 = PLc(a.a, d.i, -e, a.c);
- TLc(a.a, d.i, c2);
- return c2 > 0;
- }
- return false;
- }
- function RZc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l;
- e = (b - a.d) / a.c.c.length;
- f2 = 0;
- a.a += c2;
- a.d = b;
- for (l = new olb(a.c); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 33);
- j = k.g;
- i3 = k.f;
- dld(k, k.i + f2 * e);
- eld(k, k.j + d * c2);
- cld(k, k.g + e);
- ald(k, a.a);
- ++f2;
- h = k.g;
- g = k.f;
- Ffd(k, new f7c(h, g), new f7c(j, i3));
- }
- }
- function Xmd(a) {
- var b, c2, d, e, f2, g, h;
- if (a == null) {
- return null;
- }
- h = a.length;
- e = (h + 1) / 2 | 0;
- g = KC(SD, wte, 25, e, 15, 1);
- h % 2 != 0 && (g[--e] = jnd((BCb(h - 1, a.length), a.charCodeAt(h - 1))));
- for (c2 = 0, d = 0; c2 < e; ++c2) {
- b = jnd(bfb(a, d++));
- f2 = jnd(bfb(a, d++));
- g[c2] = (b << 4 | f2) << 24 >> 24;
- }
- return g;
- }
- function vdb(a) {
- if (a.pe()) {
- var b = a.c;
- b.qe() ? a.o = "[" + b.n : !b.pe() ? a.o = "[L" + b.ne() + ";" : a.o = "[" + b.ne();
- a.b = b.me() + "[]";
- a.k = b.oe() + "[]";
- return;
- }
- var c2 = a.j;
- var d = a.d;
- d = d.split("/");
- a.o = ydb(".", [c2, ydb("$", d)]);
- a.b = ydb(".", [c2, ydb(".", d)]);
- a.k = d[d.length - 1];
- }
- function qGb(a, b) {
- var c2, d, e, f2, g;
- g = null;
- for (f2 = new olb(a.e.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 121);
- if (e.b.a.c.length == e.g.a.c.length) {
- d = e.e;
- g = BGb(e);
- for (c2 = e.e - BD(g.a, 19).a + 1; c2 < e.e + BD(g.b, 19).a; c2++) {
- b[c2] < b[d] && (d = c2);
- }
- if (b[d] < b[e.e]) {
- --b[e.e];
- ++b[d];
- e.e = d;
- }
- }
- }
- }
- function SLc(a) {
- var b, c2, d, e, f2, g, h, i3;
- e = Pje;
- d = Qje;
- for (c2 = new olb(a.e.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 29);
- for (g = new olb(b.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- i3 = Edb(a.p[f2.p]);
- h = i3 + Edb(a.b[a.g[f2.p].p]);
- e = $wnd.Math.min(e, i3);
- d = $wnd.Math.max(d, h);
- }
- }
- return d - e;
- }
- function r1d(a, b, c2, d) {
- var e, f2, g, h, j;
- e = f1d(a, b);
- for (h = 0, j = e.gc(); h < j; ++h) {
- f2 = BD(e.Xb(h), 170);
- if (dfb(d, a2d(q1d(a, f2)))) {
- g = b2d(q1d(a, f2));
- if (c2 == null) {
- if (g == null) {
- return f2;
- }
- } else if (dfb(c2, g)) {
- return f2;
- } else
- ;
- }
- }
- return null;
- }
- function s1d(a, b, c2, d) {
- var e, f2, g, h, j;
- e = g1d(a, b);
- for (h = 0, j = e.gc(); h < j; ++h) {
- f2 = BD(e.Xb(h), 170);
- if (dfb(d, a2d(q1d(a, f2)))) {
- g = b2d(q1d(a, f2));
- if (c2 == null) {
- if (g == null) {
- return f2;
- }
- } else if (dfb(c2, g)) {
- return f2;
- } else
- ;
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
}
+ return false;
}
- return null;
- }
- function p3d(a, b, c2) {
- var d, e, f2, g, h, i3;
- g = new yud();
- h = S6d(a.e.Tg(), b);
- d = BD(a.g, 119);
- Q6d();
- if (BD(b, 66).Oj()) {
- for (f2 = 0; f2 < a.i; ++f2) {
- e = d[f2];
- h.rl(e.ak()) && wtd(g, e);
- }
+ if (this._input === "") {
+ return this.EOF;
} else {
- for (f2 = 0; f2 < a.i; ++f2) {
- e = d[f2];
- if (h.rl(e.ak())) {
- i3 = e.dd();
- wtd(g, c2 ? b3d(a, b, f2, g.i, i3) : i3);
- }
- }
- }
- return wud(g);
- }
- function T9b(a, b) {
- var c2, d, e, f2, g;
- c2 = new Rpb(EW);
- for (e = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- Opb(c2, d, new Rkb());
- }
- MAb(NAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new hac()), new jac()), new lac(b)), new nac(c2));
- return c2;
- }
- function AVc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- for (f2 = b.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 33);
- k = e.i + e.g / 2;
- m = e.j + e.f / 2;
- i3 = a.f;
- g = i3.i + i3.g / 2;
- h = i3.j + i3.f / 2;
- j = k - g;
- l = m - h;
- d = $wnd.Math.sqrt(j * j + l * l);
- j *= a.e / d;
- l *= a.e / d;
- if (c2) {
- k -= j;
- m -= l;
- } else {
- k += j;
- m += l;
- }
- dld(e, k - e.g / 2);
- eld(e, m - e.f / 2);
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- }
- function Yfe(a) {
- var b, c2, d;
- if (a.c)
- return;
- if (a.b == null)
- return;
- for (b = a.b.length - 4; b >= 0; b -= 2) {
- for (c2 = 0; c2 <= b; c2 += 2) {
- if (a.b[c2] > a.b[c2 + 2] || a.b[c2] === a.b[c2 + 2] && a.b[c2 + 1] > a.b[c2 + 3]) {
- d = a.b[c2 + 2];
- a.b[c2 + 2] = a.b[c2];
- a.b[c2] = d;
- d = a.b[c2 + 3];
- a.b[c2 + 3] = a.b[c2 + 1];
- a.b[c2 + 1] = d;
- }
- }
- }
- a.c = true;
- }
- function UUb(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- g = b == 1 ? KUb : JUb;
- for (f2 = g.a.ec().Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 103);
- for (i3 = BD(Qc(a.f.c, e), 21).Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 46);
- d = BD(h.b, 81);
- j = BD(h.a, 189);
- c2 = j.c;
- switch (e.g) {
- case 2:
- case 1:
- d.g.d += c2;
- break;
- case 4:
- case 3:
- d.g.c += c2;
- }
- }
- }
- }
- function PFc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- j = -1;
- k = 0;
- for (g = a, h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- c2 = new Dnc(j == -1 ? a[0] : a[j], b, (xzc(), wzc));
- for (d = 0; d < f2.length; d++) {
- for (e = d + 1; e < f2.length; e++) {
- wNb(f2[d], (wtc(), Zsc)) && wNb(f2[e], Zsc) && ync(c2, f2[d], f2[e]) > 0 && ++k;
- }
- }
- ++j;
- }
- return k;
- }
- function Eid(a) {
- var b, c2;
- c2 = new Wfb(hdb(a.gm));
- c2.a += "@";
- Qfb(c2, (b = tb(a) >>> 0, b.toString(16)));
- if (a.kh()) {
- c2.a += " (eProxyURI: ";
- Pfb(c2, a.qh());
- if (a.$g()) {
- c2.a += " eClass: ";
- Pfb(c2, a.$g());
- }
- c2.a += ")";
- } else if (a.$g()) {
- c2.a += " (eClass: ";
- Pfb(c2, a.$g());
- c2.a += ")";
- }
- return c2.a;
- }
- function TDb(a) {
- var b, c2, d, e;
- if (a.e) {
- throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke)));
- }
- a.d == (ead(), cad) && SDb(a, aad);
- for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 307);
- b.g = b.i;
- }
- for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 57);
- d.i = Qje;
- }
- a.b.Le(a);
- return a;
- }
- function TPc(a, b) {
- var c2, d, e, f2, g;
- if (b < 2 * a.b) {
- throw vbb(new Wdb("The knot vector must have at least two time the dimension elements."));
- }
- a.f = 1;
- for (e = 0; e < a.b; e++) {
- Ekb(a.e, 0);
- }
- g = b + 1 - 2 * a.b;
- c2 = g;
- for (f2 = 1; f2 < g; f2++) {
- Ekb(a.e, f2 / c2);
- }
- if (a.d) {
- for (d = 0; d < a.b; d++) {
- Ekb(a.e, 1);
- }
- }
- }
- function ard(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- j = b;
- k = BD(_o(qo(a.i), j), 33);
- if (!k) {
- e = _pd(j, Vte);
- h = "Unable to find elk node for json object '" + e;
- i3 = h + "' Panic!";
- throw vbb(new cqd(i3));
- }
- f2 = Ypd(j, "edges");
- c2 = new krd(a, k);
- mqd(c2.a, c2.b, f2);
- g = Ypd(j, Jte);
- d = new vrd(a);
- xqd(d.a, g);
- }
- function xAd(a, b, c2, d) {
- var e, f2, g, h, i3;
- if (d != null) {
- e = a.d[b];
- if (e) {
- f2 = e.g;
- i3 = e.i;
- for (h = 0; h < i3; ++h) {
- g = BD(f2[h], 133);
- if (g.Sh() == c2 && pb(d, g.cd())) {
- return h;
- }
- }
- }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
} else {
- e = a.d[b];
- if (e) {
- f2 = e.g;
- i3 = e.i;
- for (h = 0; h < i3; ++h) {
- g = BD(f2[h], 133);
- if (PD(g.cd()) === PD(d)) {
- return h;
- }
- }
- }
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
}
- return -1;
- }
- function nUd(a, b) {
- var c2, d, e;
- c2 = b == null ? Wd(irb(a.f, null)) : Crb(a.g, b);
- if (JD(c2, 235)) {
- e = BD(c2, 235);
- e.Qh() == null && void 0;
- return e;
- } else if (JD(c2, 498)) {
- d = BD(c2, 1938);
- e = d.a;
- !!e && (e.yb == null ? void 0 : b == null ? jrb(a.f, null, e) : Drb(a.g, b, e));
- return e;
- } else {
- return null;
- }
- }
- function ide(a) {
- hde();
- var b, c2, d, e, f2, g, h;
- if (a == null)
- return null;
- e = a.length;
- if (e % 2 != 0)
- return null;
- b = rfb(a);
- f2 = e / 2 | 0;
- c2 = KC(SD, wte, 25, f2, 15, 1);
- for (d = 0; d < f2; d++) {
- g = fde[b[d * 2]];
- if (g == -1)
- return null;
- h = fde[b[d * 2 + 1]];
- if (h == -1)
- return null;
- c2[d] = (g << 4 | h) << 24 >> 24;
- }
- return c2;
- }
- function lKb(a, b, c2) {
- var d, e, f2;
- e = BD(Mpb(a.i, b), 306);
- if (!e) {
- e = new bIb(a.d, b, c2);
- Npb(a.i, b, e);
- if (sJb(b)) {
- CHb(a.a, b.c, b.b, e);
- } else {
- f2 = rJb(b);
- d = BD(Mpb(a.p, f2), 244);
- switch (f2.g) {
- case 1:
- case 3:
- e.j = true;
- lIb(d, b.b, e);
- break;
- case 4:
- case 2:
- e.k = true;
- lIb(d, b.c, e);
- }
- }
- }
- return e;
- }
- function r3d(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- h = new yud();
- i3 = S6d(a.e.Tg(), b);
- e = BD(a.g, 119);
- Q6d();
- if (BD(b, 66).Oj()) {
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- i3.rl(f2.ak()) && wtd(h, f2);
- }
- } else {
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (i3.rl(f2.ak())) {
- j = f2.dd();
- wtd(h, d ? b3d(a, b, g, h.i, j) : j);
- }
- }
- }
- return xud(h, c2);
- }
- function YCc(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- e = a.b[b.p];
- if (e >= 0) {
- return e;
- } else {
- f2 = 1;
- for (h = new olb(b.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- for (d = new olb(g.g); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 17);
- j = c2.d.i;
- if (b != j) {
- i3 = YCc(a, j);
- f2 = $wnd.Math.max(f2, i3 + 1);
- }
- }
- }
- XCc(a, b, f2);
- return f2;
- }
- }
- function YGc(a, b, c2) {
- var d, e, f2;
- for (d = 1; d < a.c.length; d++) {
- f2 = (tCb(d, a.c.length), BD(a.c[d], 10));
- e = d;
- while (e > 0 && b.ue((tCb(e - 1, a.c.length), BD(a.c[e - 1], 10)), f2) > 0) {
- Nkb(a, e, (tCb(e - 1, a.c.length), BD(a.c[e - 1], 10)));
- --e;
- }
- tCb(e, a.c.length);
- a.c[e] = f2;
- }
- c2.a = new Lqb();
- c2.b = new Lqb();
- }
- function n5c(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- k = (d = BD(b.e && b.e(), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0));
- i3 = mfb(c2, "[\\[\\]\\s,]+");
- for (f2 = i3, g = 0, h = f2.length; g < h; ++g) {
- e = f2[g];
- if (ufb(e).length == 0) {
- continue;
- }
- j = m5c(a, e);
- if (j == null) {
- return null;
- } else {
- rqb(k, BD(j, 22));
- }
- }
- return k;
- }
- function KVb(a) {
- var b, c2, d;
- for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- d = (uCb(0), 0);
- if (d > 0) {
- !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d -= $wnd.Math.max(0, d / 2 - 0.5));
- !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a += $wnd.Math.max(0, d - 1));
- }
- }
- }
- function Hac(a, b, c2) {
- var d, e;
- if ((a.c - a.b & a.a.length - 1) == 2) {
- if (b == (Ucd(), Acd) || b == zcd) {
- xac(BD(bkb(a), 15), (rbd(), nbd));
- xac(BD(bkb(a), 15), obd);
- } else {
- xac(BD(bkb(a), 15), (rbd(), obd));
- xac(BD(bkb(a), 15), nbd);
- }
- } else {
- for (e = new xkb(a); e.a != e.b; ) {
- d = BD(vkb(e), 15);
- xac(d, c2);
- }
- }
- }
- function htd(a, b) {
- var c2, d, e, f2, g, h, i3;
- e = Nu(new qtd(a));
- h = new Bib(e, e.c.length);
- f2 = Nu(new qtd(b));
- i3 = new Bib(f2, f2.c.length);
- g = null;
- while (h.b > 0 && i3.b > 0) {
- c2 = (sCb(h.b > 0), BD(h.a.Xb(h.c = --h.b), 33));
- d = (sCb(i3.b > 0), BD(i3.a.Xb(i3.c = --i3.b), 33));
- if (c2 == d) {
- g = c2;
- } else {
- break;
- }
- }
- return g;
- }
- function Cub(a, b) {
- var c2, d, e, f2, g, h;
- f2 = a.a * kke + a.b * 1502;
- h = a.b * kke + 11;
- c2 = $wnd.Math.floor(h * lke);
- f2 += c2;
- h -= c2 * mke;
- f2 %= mke;
- a.a = f2;
- a.b = h;
- if (b <= 24) {
- return $wnd.Math.floor(a.a * wub[b]);
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
} else {
- e = a.a * (1 << b - 24);
- g = $wnd.Math.floor(a.b * xub[b]);
- d = e + g;
- d >= 2147483648 && (d -= Zje);
- return d;
- }
- }
- function Zic(a, b, c2) {
- var d, e, f2, g;
- if (bjc(a, b) > bjc(a, c2)) {
- d = V_b(c2, (Ucd(), zcd));
- a.d = d.dc() ? 0 : B0b(BD(d.Xb(0), 11));
- g = V_b(b, Tcd);
- a.b = g.dc() ? 0 : B0b(BD(g.Xb(0), 11));
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
} else {
- e = V_b(c2, (Ucd(), Tcd));
- a.d = e.dc() ? 0 : B0b(BD(e.Xb(0), 11));
- f2 = V_b(b, zcd);
- a.b = f2.dc() ? 0 : B0b(BD(f2.Xb(0), 11));
- }
- }
- function l6d(a) {
- var b, c2, d, e, f2, g, h;
- if (a) {
- b = a.Hh(_ve);
- if (b) {
- g = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "conversionDelegates"));
- if (g != null) {
- h = new Rkb();
- for (d = mfb(g, "\\w+"), e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- h.c[h.c.length] = c2;
- }
- return h;
- }
- }
- }
- return mmb(), mmb(), jmb;
- }
- function FKb(a, b) {
- var c2, d, e, f2;
- c2 = a.o.a;
- for (f2 = BD(BD(Qc(a.r, b), 21), 84).Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 111);
- e.e.a = c2 * Edb(ED(e.b.We(BKb)));
- e.e.b = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Acd) ? -d.rf().b - Edb(ED(d.We(s9c))) : Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Acd) ? -d.rf().b : 0);
- }
- }
- function Woc(a) {
- var b, c2, d, e, f2, g, h, i3;
- b = true;
- e = null;
- f2 = null;
- j:
- for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- for (d = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- if (!!e && e != h) {
- b = false;
- break j;
- }
- e = h;
- g = c2.c.i;
- if (!!f2 && f2 != g) {
- b = false;
- break j;
- }
- f2 = g;
- }
- }
- return b;
- }
- function OOc(a, b, c2) {
- var d, e, f2, g, h, i3;
- f2 = -1;
- h = -1;
- for (g = 0; g < b.c.length; g++) {
- e = (tCb(g, b.c.length), BD(b.c[g], 329));
- if (e.c > a.c) {
- break;
- } else if (e.a >= a.s) {
- f2 < 0 && (f2 = g);
- h = g;
- }
- }
- i3 = (a.s + a.c) / 2;
- if (f2 >= 0) {
- d = NOc(a, b, f2, h);
- i3 = $Oc((tCb(d, b.c.length), BD(b.c[d], 329)));
- YOc(b, d, c2);
- }
- return i3;
- }
- function lZc() {
- lZc = ccb;
- RYc = new Osd((Y9c(), r8c), 1.3);
- VYc = I8c;
- gZc = new q0b(15);
- fZc = new Osd(f9c, gZc);
- jZc = new Osd(T9c, 15);
- SYc = w8c;
- _Yc = Y8c;
- aZc = _8c;
- bZc = b9c;
- $Yc = W8c;
- cZc = e9c;
- hZc = x9c;
- eZc = (OYc(), KYc);
- ZYc = IYc;
- dZc = JYc;
- iZc = MYc;
- WYc = HYc;
- XYc = O8c;
- YYc = P8c;
- UYc = GYc;
- TYc = FYc;
- kZc = NYc;
- }
- function Bnd(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- g = (f2 = new RHd(), f2);
- PHd(g, (uCb(b), b));
- j = (!g.b && (g.b = new sId((jGd(), fGd), x6, g)), g.b);
- for (i3 = 1; i3 < c2.length; i3 += 2) {
- HAd(j, c2[i3 - 1], c2[i3]);
- }
- d = (!a.Ab && (a.Ab = new cUd(a5, a, 0, 3)), a.Ab);
- for (h = 0; h < 0; ++h) {
- e = LHd(BD(qud(d, d.i - 1), 590));
- d = e;
- }
- wtd(d, g);
- }
- function MPb(a, b, c2) {
- var d, e, f2;
- sNb.call(this, new Rkb());
- this.a = b;
- this.b = c2;
- this.e = a;
- d = (a.b && LOb(a), a.a);
- this.d = KPb(d.a, this.a);
- this.c = KPb(d.b, this.b);
- kNb(this, this.d, this.c);
- LPb(this);
- for (f2 = this.e.e.a.ec().Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 266);
- e.c.c.length > 0 && JPb(this, e);
- }
- }
- function IQb(a, b, c2, d, e, f2) {
- var g, h, i3;
- if (!e[b.b]) {
- e[b.b] = true;
- g = d;
- !g && (g = new kRb());
- Ekb(g.e, b);
- for (i3 = f2[b.b].Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 282);
- if (h.d == c2 || h.c == c2) {
- continue;
- }
- h.c != b && IQb(a, h.c, b, g, e, f2);
- h.d != b && IQb(a, h.d, b, g, e, f2);
- Ekb(g.c, h);
- Gkb(g.d, h.b);
- }
- return g;
- }
- return null;
- }
- function e4b(a) {
- var b, c2, d, e, f2, g, h;
- b = 0;
- for (e = new olb(a.e); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- c2 = FAb(new YAb(null, new Kub(d.b, 16)), new w4b());
- c2 && ++b;
- }
- for (g = new olb(a.g); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 17);
- h = FAb(new YAb(null, new Kub(f2.b, 16)), new y4b());
- h && ++b;
- }
- return b >= 2;
- }
- function gec(a, b) {
- var c2, d, e, f2;
- Odd(b, "Self-Loop pre-processing", 1);
- for (d = new olb(a.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- if (Ljc(c2)) {
- e = (f2 = new Kjc(c2), yNb(c2, (wtc(), ntc), f2), Hjc(f2), f2);
- MAb(NAb(LAb(new YAb(null, new Kub(e.d, 16)), new jec()), new lec()), new nec());
- eec(e);
- }
- }
- Qdd(b);
- }
- function vnc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k;
- f2 = a.c.d.j;
- g = BD(Ut(c2, 0), 8);
- for (k = 1; k < c2.b; k++) {
- j = BD(Ut(c2, k), 8);
- Gsb(d, g, d.c.b, d.c);
- h = Y6c(P6c(new g7c(g), j), 0.5);
- i3 = Y6c(new e7c(bRc(f2)), e);
- P6c(h, i3);
- Gsb(d, h, d.c.b, d.c);
- g = j;
- f2 = b == 0 ? Xcd(f2) : Vcd(f2);
- }
- Dsb(d, (sCb(c2.b != 0), BD(c2.c.b.c, 8)));
- }
- function Jbd(a) {
- Hbd();
- var b, c2, d;
- c2 = qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Dbd]));
- if (Ox(Cx(c2, a)) > 1) {
- return false;
- }
- b = qqb(zbd, OC(GC(B1, 1), Kie, 93, 0, [ybd, Bbd]));
- if (Ox(Cx(b, a)) > 1) {
- return false;
- }
- d = qqb(Gbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Ebd]));
- if (Ox(Cx(d, a)) > 1) {
- return false;
- }
- return true;
- }
- function U0d(a, b) {
- var c2, d, e;
- c2 = b.Hh(a.a);
- if (c2) {
- e = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), "affiliation"));
- if (e != null) {
- d = kfb(e, wfb(35));
- return d == -1 ? l1d(a, u1d(a, bKd(b.Hj())), e) : d == 0 ? l1d(a, null, e.substr(1)) : l1d(a, e.substr(0, d), e.substr(d + 1));
- }
- }
- return null;
- }
- function ic(b) {
- var c2, d, e;
- try {
- return b == null ? Xhe : fcb(b);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 102)) {
- c2 = a;
- e = hdb(rb(b)) + "@" + (d = (Zfb(), kCb(b)) >>> 0, d.toString(16));
- tyb(xyb(), ($xb(), "Exception during lenientFormat for " + e), c2);
- return "<" + e + " threw " + hdb(c2.gm) + ">";
- } else
- throw vbb(a);
- }
- }
- function mzc(a) {
- switch (a.g) {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
case 0:
- return new xDc();
+ break;
case 1:
- return new ZCc();
+ break;
case 2:
- return new DCc();
+ return 10;
+ break;
case 3:
- return new QCc();
+ break;
case 4:
- return new LDc();
+ break;
case 5:
- return new iDc();
- default:
- throw vbb(new Wdb("No implementation is available for the layerer " + (a.f != null ? a.f : "" + a.g)));
- }
- }
- function AQc(a, b, c2) {
- var d, e, f2;
- for (f2 = new olb(a.t); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 268);
- if (d.b.s < 0 && d.c > 0) {
- d.b.n -= d.c;
- d.b.n <= 0 && d.b.u > 0 && Dsb(b, d.b);
- }
- }
- for (e = new olb(a.i); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 268);
- if (d.a.s < 0 && d.c > 0) {
- d.a.u -= d.c;
- d.a.u <= 0 && d.a.n > 0 && Dsb(c2, d.a);
- }
- }
- }
- function Vud(a) {
- var b, c2, d, e, f2;
- if (a.g == null) {
- a.d = a.si(a.f);
- wtd(a, a.d);
- if (a.c) {
- f2 = a.f;
- return f2;
- }
- }
- b = BD(a.g[a.i - 1], 47);
- e = b.Pb();
- a.e = b;
- c2 = a.si(e);
- if (c2.Ob()) {
- a.d = c2;
- wtd(a, c2);
- } else {
- a.d = null;
- while (!b.Ob()) {
- NC(a.g, --a.i, null);
- if (a.i == 0) {
- break;
- }
- d = BD(a.g[a.i - 1], 47);
- b = d;
- }
+ return 4;
+ break;
+ case 6:
+ return 11;
+ break;
+ case 7:
+ this.begin("acc_title");
+ return 12;
+ break;
+ case 8:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 9:
+ this.begin("acc_descr");
+ return 14;
+ break;
+ case 10:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 11:
+ this.begin("acc_descr_multiline");
+ break;
+ case 12:
+ this.popState();
+ break;
+ case 13:
+ return "acc_descr_multiline_value";
+ break;
+ case 14:
+ return 17;
+ break;
+ case 15:
+ return 18;
+ break;
+ case 16:
+ return 19;
+ break;
+ case 17:
+ return ":";
+ break;
+ case 18:
+ return 6;
+ break;
+ case 19:
+ return "INVALID";
+ break;
}
- return e;
- }
- function r2d(a, b) {
- var c2, d, e, f2, g, h;
- d = b;
- e = d.ak();
- if (T6d(a.e, e)) {
- if (e.hi() && E2d(a, e, d.dd())) {
- return false;
- }
+ }, "anonymous"),
+ rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser15.parser = parser15;
+ journey_default = parser15;
+ }
+ });
+
+ // src/diagrams/user-journey/journeyDb.js
+ var currentSection2, sections3, tasks2, rawTasks2, clear23, addSection3, getSections3, getTasks2, updateActors, addTask2, addTaskOrg2, compileTasks2, getActors2, journeyDb_default;
+ var init_journeyDb = __esm({
+ "src/diagrams/user-journey/journeyDb.js"() {
+ "use strict";
+ init_diagramAPI();
+ init_commonDb();
+ currentSection2 = "";
+ sections3 = [];
+ tasks2 = [];
+ rawTasks2 = [];
+ clear23 = /* @__PURE__ */ __name(function() {
+ sections3.length = 0;
+ tasks2.length = 0;
+ currentSection2 = "";
+ rawTasks2.length = 0;
+ clear();
+ }, "clear");
+ addSection3 = /* @__PURE__ */ __name(function(txt) {
+ currentSection2 = txt;
+ sections3.push(txt);
+ }, "addSection");
+ getSections3 = /* @__PURE__ */ __name(function() {
+ return sections3;
+ }, "getSections");
+ getTasks2 = /* @__PURE__ */ __name(function() {
+ let allItemsProcessed = compileTasks2();
+ const maxDepth = 100;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks2();
+ iterationCount++;
+ }
+ tasks2.push(...rawTasks2);
+ return tasks2;
+ }, "getTasks");
+ updateActors = /* @__PURE__ */ __name(function() {
+ const tempActors = [];
+ tasks2.forEach((task) => {
+ if (task.people) {
+ tempActors.push(...task.people);
+ }
+ });
+ const unique = new Set(tempActors);
+ return [...unique].sort();
+ }, "updateActors");
+ addTask2 = /* @__PURE__ */ __name(function(descr, taskData) {
+ const pieces = taskData.substr(1).split(":");
+ let score = 0;
+ let peeps = [];
+ if (pieces.length === 1) {
+ score = Number(pieces[0]);
+ peeps = [];
+ } else {
+ score = Number(pieces[0]);
+ peeps = pieces[1].split(",");
+ }
+ const peopleList = peeps.map((s2) => s2.trim());
+ const rawTask = {
+ section: currentSection2,
+ type: currentSection2,
+ people: peopleList,
+ task: descr,
+ score
+ };
+ rawTasks2.push(rawTask);
+ }, "addTask");
+ addTaskOrg2 = /* @__PURE__ */ __name(function(descr) {
+ const newTask = {
+ section: currentSection2,
+ type: currentSection2,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ tasks2.push(newTask);
+ }, "addTaskOrg");
+ compileTasks2 = /* @__PURE__ */ __name(function() {
+ const compileTask = /* @__PURE__ */ __name(function(pos) {
+ return rawTasks2[pos].processed;
+ }, "compileTask");
+ let allProcessed = true;
+ for (const [i2, rawTask] of rawTasks2.entries()) {
+ compileTask(i2);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+ }, "compileTasks");
+ getActors2 = /* @__PURE__ */ __name(function() {
+ return updateActors();
+ }, "getActors");
+ journeyDb_default = {
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().journey, "getConfig"),
+ clear: clear23,
+ setDiagramTitle,
+ getDiagramTitle,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addSection: addSection3,
+ getSections: getSections3,
+ getTasks: getTasks2,
+ addTask: addTask2,
+ addTaskOrg: addTaskOrg2,
+ getActors: getActors2
+ };
+ }
+ });
+
+ // src/diagrams/user-journey/styles.js
+ var getStyles12, styles_default11;
+ var init_styles11 = __esm({
+ "src/diagrams/user-journey/styles.js"() {
+ "use strict";
+ getStyles12 = /* @__PURE__ */ __name((options3) => `.label {
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ color: ${options3.textColor};
+ }
+ .mouth {
+ stroke: #666;
+ }
+
+ line {
+ stroke: ${options3.textColor}
+ }
+
+ .legend {
+ fill: ${options3.textColor};
+ }
+
+ .label text {
+ fill: #333;
+ }
+ .label {
+ color: ${options3.textColor}
+ }
+
+ .face {
+ ${options3.faceColor ? `fill: ${options3.faceColor}` : "fill: #FFF8DC"};
+ stroke: #999;
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.nodeBorder};
+ stroke-width: 1px;
+ }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options3.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options3.lineColor};
+ stroke-width: 1.5px;
+ }
+
+ .flowchart-link {
+ stroke: ${options3.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options3.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ }
+ text-align: center;
+ }
+
+ .cluster rect {
+ }
+
+ .cluster text {
+ fill: ${options3.titleColor};
+ }
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
+ font-family: var(--mermaid-font-family);
+ font-size: 12px;
+ background: ${options3.tertiaryColor};
+ border: 1px solid ${options3.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .task-type-0, .section-type-0 {
+ ${options3.fillType0 ? `fill: ${options3.fillType0}` : ""};
+ }
+ .task-type-1, .section-type-1 {
+ ${options3.fillType0 ? `fill: ${options3.fillType1}` : ""};
+ }
+ .task-type-2, .section-type-2 {
+ ${options3.fillType0 ? `fill: ${options3.fillType2}` : ""};
+ }
+ .task-type-3, .section-type-3 {
+ ${options3.fillType0 ? `fill: ${options3.fillType3}` : ""};
+ }
+ .task-type-4, .section-type-4 {
+ ${options3.fillType0 ? `fill: ${options3.fillType4}` : ""};
+ }
+ .task-type-5, .section-type-5 {
+ ${options3.fillType0 ? `fill: ${options3.fillType5}` : ""};
+ }
+ .task-type-6, .section-type-6 {
+ ${options3.fillType0 ? `fill: ${options3.fillType6}` : ""};
+ }
+ .task-type-7, .section-type-7 {
+ ${options3.fillType0 ? `fill: ${options3.fillType7}` : ""};
+ }
+
+ .actor-0 {
+ ${options3.actor0 ? `fill: ${options3.actor0}` : ""};
+ }
+ .actor-1 {
+ ${options3.actor1 ? `fill: ${options3.actor1}` : ""};
+ }
+ .actor-2 {
+ ${options3.actor2 ? `fill: ${options3.actor2}` : ""};
+ }
+ .actor-3 {
+ ${options3.actor3 ? `fill: ${options3.actor3}` : ""};
+ }
+ .actor-4 {
+ ${options3.actor4 ? `fill: ${options3.actor4}` : ""};
+ }
+ .actor-5 {
+ ${options3.actor5 ? `fill: ${options3.actor5}` : ""};
+ }
+`, "getStyles");
+ styles_default11 = getStyles12;
+ }
+ });
+
+ // src/diagrams/user-journey/svgDraw.js
+ var drawRect5, drawFace, drawCircle, drawText4, drawLabel2, drawSection, taskCount, drawTask, drawBackgroundRect3, _drawTextCandidateFunc3, initGraphics, svgDraw_default4;
+ var init_svgDraw4 = __esm({
+ "src/diagrams/user-journey/svgDraw.js"() {
+ "use strict";
+ init_src32();
+ init_svgDrawCommon();
+ drawRect5 = /* @__PURE__ */ __name(function(elem, rectData) {
+ return drawRect(elem, rectData);
+ }, "drawRect");
+ drawFace = /* @__PURE__ */ __name(function(element3, faceData) {
+ const radius2 = 15;
+ const circleElement = element3.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius2).attr("stroke-width", 2).attr("overflow", "visible");
+ const face = element3.append("g");
+ face.append("circle").attr("cx", faceData.cx - radius2 / 3).attr("cy", faceData.cy - radius2 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ face.append("circle").attr("cx", faceData.cx + radius2 / 3).attr("cy", faceData.cy - radius2 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function smile(face2) {
+ const arc = arc_default().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius2 / 2).outerRadius(radius2 / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
+ }
+ __name(smile, "smile");
+ function sad(face2) {
+ const arc = arc_default().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius2 / 2).outerRadius(radius2 / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
+ }
+ __name(sad, "sad");
+ function ambivalent(face2) {
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ __name(ambivalent, "ambivalent");
+ if (faceData.score > 3) {
+ smile(face);
+ } else if (faceData.score < 3) {
+ sad(face);
+ } else {
+ ambivalent(face);
+ }
+ return circleElement;
+ }, "drawFace");
+ drawCircle = /* @__PURE__ */ __name(function(element3, circleData) {
+ const circleElement = element3.append("circle");
+ circleElement.attr("cx", circleData.cx);
+ circleElement.attr("cy", circleData.cy);
+ circleElement.attr("class", "actor-" + circleData.pos);
+ circleElement.attr("fill", circleData.fill);
+ circleElement.attr("stroke", circleData.stroke);
+ circleElement.attr("r", circleData.r);
+ if (circleElement.class !== void 0) {
+ circleElement.attr("class", circleElement.class);
+ }
+ if (circleData.title !== void 0) {
+ circleElement.append("title").text(circleData.title);
+ }
+ return circleElement;
+ }, "drawCircle");
+ drawText4 = /* @__PURE__ */ __name(function(elem, textData) {
+ return drawText(elem, textData);
+ }, "drawText");
+ drawLabel2 = /* @__PURE__ */ __name(function(elem, txtObject) {
+ function genPoints(x5, y5, width3, height2, cut) {
+ return x5 + "," + y5 + " " + (x5 + width3) + "," + y5 + " " + (x5 + width3) + "," + (y5 + height2 - cut) + " " + (x5 + width3 - cut * 1.2) + "," + (y5 + height2) + " " + x5 + "," + (y5 + height2);
+ }
+ __name(genPoints, "genPoints");
+ const polygon2 = elem.append("polygon");
+ polygon2.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
+ polygon2.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.labelMargin;
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
+ drawText4(elem, txtObject);
+ }, "drawLabel");
+ drawSection = /* @__PURE__ */ __name(function(elem, section, conf8) {
+ const g2 = elem.append("g");
+ const rect4 = getNoteRect();
+ rect4.x = section.x;
+ rect4.y = section.y;
+ rect4.fill = section.fill;
+ rect4.width = conf8.width * section.taskCount + // width of the tasks
+ conf8.diagramMarginX * (section.taskCount - 1);
+ rect4.height = conf8.height;
+ rect4.class = "journey-section section-type-" + section.num;
+ rect4.rx = 3;
+ rect4.ry = 3;
+ drawRect5(g2, rect4);
+ _drawTextCandidateFunc3(conf8)(
+ section.text,
+ g2,
+ rect4.x,
+ rect4.y,
+ rect4.width,
+ rect4.height,
+ { class: "journey-section section-type-" + section.num },
+ conf8,
+ section.colour
+ );
+ }, "drawSection");
+ taskCount = -1;
+ drawTask = /* @__PURE__ */ __name(function(elem, task, conf8) {
+ const center4 = task.x + conf8.width / 2;
+ const g2 = elem.append("g");
+ taskCount++;
+ const maxHeight = 300 + 5 * 30;
+ g2.append("line").attr("id", "task" + taskCount).attr("x1", center4).attr("y1", task.y).attr("x2", center4).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
+ drawFace(g2, {
+ cx: center4,
+ cy: 300 + (5 - task.score) * 30,
+ score: task.score
+ });
+ const rect4 = getNoteRect();
+ rect4.x = task.x;
+ rect4.y = task.y;
+ rect4.fill = task.fill;
+ rect4.width = conf8.width;
+ rect4.height = conf8.height;
+ rect4.class = "task task-type-" + task.num;
+ rect4.rx = 3;
+ rect4.ry = 3;
+ drawRect5(g2, rect4);
+ let xPos = task.x + 14;
+ task.people.forEach((person) => {
+ const colour = task.actors[person].color;
+ const circle6 = {
+ cx: xPos,
+ cy: task.y,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ title: person,
+ pos: task.actors[person].position
+ };
+ drawCircle(g2, circle6);
+ xPos += 10;
+ });
+ _drawTextCandidateFunc3(conf8)(
+ task.task,
+ g2,
+ rect4.x,
+ rect4.y,
+ rect4.width,
+ rect4.height,
+ { class: "task" },
+ conf8,
+ task.colour
+ );
+ }, "drawTask");
+ drawBackgroundRect3 = /* @__PURE__ */ __name(function(elem, bounds4) {
+ drawBackgroundRect(elem, bounds4);
+ }, "drawBackgroundRect");
+ _drawTextCandidateFunc3 = /* @__PURE__ */ function() {
+ function byText(content, g2, x5, y5, width3, height2, textAttrs, colour) {
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5 + height2 / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byText, "byText");
+ function byTspan(content, g2, x5, y5, width3, height2, textAttrs, conf8, colour) {
+ const { taskFontSize, taskFontFamily } = conf8;
+ const lines = content.split(/
/gi);
+ for (let i2 = 0; i2 < lines.length; i2++) {
+ const dy = i2 * taskFontSize - taskFontSize * (lines.length - 1) / 2;
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
+ text2.append("tspan").attr("x", x5 + width3 / 2).attr("dy", dy).text(lines[i2]);
+ text2.attr("y", y5 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text2, textAttrs);
+ }
+ }
+ __name(byTspan, "byTspan");
+ function byFo(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const body = g2.append("switch");
+ const f3 = body.append("foreignObject").attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2).attr("position", "fixed");
+ const text2 = f3.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text2.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, body, x5, y5, width3, height2, textAttrs, conf8);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byFo, "byFo");
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (key in fromTextAttrsDict) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ __name(_setTextAttrs, "_setTextAttrs");
+ return function(conf8) {
+ return conf8.textPlacement === "fo" ? byFo : conf8.textPlacement === "old" ? byText : byTspan;
+ };
+ }();
+ initGraphics = /* @__PURE__ */ __name(function(graphics) {
+ graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
+ }, "initGraphics");
+ svgDraw_default4 = {
+ drawRect: drawRect5,
+ drawCircle,
+ drawSection,
+ drawText: drawText4,
+ drawLabel: drawLabel2,
+ drawTask,
+ drawBackgroundRect: drawBackgroundRect3,
+ initGraphics
+ };
+ }
+ });
+
+ // src/diagrams/user-journey/journeyRenderer.ts
+ function drawActorLegend(diagram24) {
+ const conf8 = getConfig2().journey;
+ let yPos = 60;
+ Object.keys(actors).forEach((person) => {
+ const colour = actors[person].color;
+ const circleData = {
+ cx: 20,
+ cy: yPos,
+ r: 7,
+ fill: colour,
+ stroke: "#000",
+ pos: actors[person].position
+ };
+ svgDraw_default4.drawCircle(diagram24, circleData);
+ const labelData = {
+ x: 40,
+ y: yPos + 7,
+ fill: "#666",
+ text: person,
+ textMargin: conf8.boxTextMargin | 5
+ };
+ svgDraw_default4.drawText(diagram24, labelData);
+ yPos += 20;
+ });
+ }
+ var setConf7, actors, conf7, LEFT_MARGIN, draw16, bounds2, fills, textColours, drawTasks, journeyRenderer_default;
+ var init_journeyRenderer = __esm({
+ "src/diagrams/user-journey/journeyRenderer.ts"() {
+ "use strict";
+ init_src32();
+ init_svgDraw4();
+ init_diagramAPI();
+ init_setupGraphViewbox();
+ setConf7 = /* @__PURE__ */ __name(function(cnf) {
+ const keys3 = Object.keys(cnf);
+ keys3.forEach(function(key) {
+ conf7[key] = cnf[key];
+ });
+ }, "setConf");
+ actors = {};
+ __name(drawActorLegend, "drawActorLegend");
+ conf7 = getConfig2().journey;
+ LEFT_MARGIN = conf7.leftMargin;
+ draw16 = /* @__PURE__ */ __name(function(text2, id27, version4, diagObj) {
+ const conf8 = getConfig2().journey;
+ const securityLevel = getConfig2().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ bounds2.init();
+ const diagram24 = root4.select("#" + id27);
+ svgDraw_default4.initGraphics(diagram24);
+ const tasks4 = diagObj.db.getTasks();
+ const title2 = diagObj.db.getDiagramTitle();
+ const actorNames = diagObj.db.getActors();
+ for (const member in actors) {
+ delete actors[member];
+ }
+ let actorPos = 0;
+ actorNames.forEach((actorName) => {
+ actors[actorName] = {
+ color: conf8.actorColours[actorPos % conf8.actorColours.length],
+ position: actorPos
+ };
+ actorPos++;
+ });
+ drawActorLegend(diagram24);
+ bounds2.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
+ drawTasks(diagram24, tasks4, 0);
+ const box = bounds2.getBounds();
+ if (title2) {
+ diagram24.append("text").text(title2).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25);
+ }
+ const height2 = box.stopy - box.starty + 2 * conf8.diagramMarginY;
+ const width3 = LEFT_MARGIN + box.stopx + 2 * conf8.diagramMarginX;
+ configureSvgSize(diagram24, height2, width3, conf8.useMaxWidth);
+ diagram24.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf8.height * 4).attr("x2", width3 - LEFT_MARGIN - 4).attr("y2", conf8.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ const extraVertForTitle = title2 ? 70 : 0;
+ diagram24.attr("viewBox", `${box.startx} -25 ${width3} ${height2 + extraVertForTitle}`);
+ diagram24.attr("preserveAspectRatio", "xMinYMin meet");
+ diagram24.attr("height", height2 + extraVertForTitle + 25);
+ }, "draw");
+ bounds2 = {
+ data: {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ },
+ verticalPos: 0,
+ sequenceItems: [],
+ init: /* @__PURE__ */ __name(function() {
+ this.sequenceItems = [];
+ this.data = {
+ startx: void 0,
+ stopx: void 0,
+ starty: void 0,
+ stopy: void 0
+ };
+ this.verticalPos = 0;
+ }, "init"),
+ updateVal: /* @__PURE__ */ __name(function(obj, key, val, fun) {
+ if (obj[key] === void 0) {
+ obj[key] = val;
+ } else {
+ obj[key] = fun(val, obj[key]);
+ }
+ }, "updateVal"),
+ updateBounds: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {
+ const conf8 = getConfig2().journey;
+ const _self = this;
+ let cnt4 = 0;
+ function updateFn(type3) {
+ return /* @__PURE__ */ __name(function updateItemBounds(item) {
+ cnt4++;
+ const n2 = _self.sequenceItems.length - cnt4 + 1;
+ _self.updateVal(item, "starty", starty - n2 * conf8.boxMargin, Math.min);
+ _self.updateVal(item, "stopy", stopy + n2 * conf8.boxMargin, Math.max);
+ _self.updateVal(bounds2.data, "startx", startx - n2 * conf8.boxMargin, Math.min);
+ _self.updateVal(bounds2.data, "stopx", stopx + n2 * conf8.boxMargin, Math.max);
+ if (!(type3 === "activation")) {
+ _self.updateVal(item, "startx", startx - n2 * conf8.boxMargin, Math.min);
+ _self.updateVal(item, "stopx", stopx + n2 * conf8.boxMargin, Math.max);
+ _self.updateVal(bounds2.data, "starty", starty - n2 * conf8.boxMargin, Math.min);
+ _self.updateVal(bounds2.data, "stopy", stopy + n2 * conf8.boxMargin, Math.max);
+ }
+ }, "updateItemBounds");
+ }
+ __name(updateFn, "updateFn");
+ this.sequenceItems.forEach(updateFn());
+ }, "updateBounds"),
+ insert: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {
+ const _startx = Math.min(startx, stopx);
+ const _stopx = Math.max(startx, stopx);
+ const _starty = Math.min(starty, stopy);
+ const _stopy = Math.max(starty, stopy);
+ this.updateVal(bounds2.data, "startx", _startx, Math.min);
+ this.updateVal(bounds2.data, "starty", _starty, Math.min);
+ this.updateVal(bounds2.data, "stopx", _stopx, Math.max);
+ this.updateVal(bounds2.data, "stopy", _stopy, Math.max);
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
+ }, "insert"),
+ bumpVerticalPos: /* @__PURE__ */ __name(function(bump) {
+ this.verticalPos = this.verticalPos + bump;
+ this.data.stopy = this.verticalPos;
+ }, "bumpVerticalPos"),
+ getVerticalPos: /* @__PURE__ */ __name(function() {
+ return this.verticalPos;
+ }, "getVerticalPos"),
+ getBounds: /* @__PURE__ */ __name(function() {
+ return this.data;
+ }, "getBounds")
+ };
+ fills = conf7.sectionFills;
+ textColours = conf7.sectionColours;
+ drawTasks = /* @__PURE__ */ __name(function(diagram24, tasks4, verticalPos) {
+ const conf8 = getConfig2().journey;
+ let lastSection = "";
+ const sectionVHeight = conf8.height * 2 + conf8.diagramMarginY;
+ const taskPos = verticalPos + sectionVHeight;
+ let sectionNumber = 0;
+ let fill = "#CCC";
+ let colour = "black";
+ let num = 0;
+ for (const [i2, task] of tasks4.entries()) {
+ if (lastSection !== task.section) {
+ fill = fills[sectionNumber % fills.length];
+ num = sectionNumber % fills.length;
+ colour = textColours[sectionNumber % textColours.length];
+ let taskInSectionCount = 0;
+ const currentSection4 = task.section;
+ for (let taskIndex = i2; taskIndex < tasks4.length; taskIndex++) {
+ if (tasks4[taskIndex].section == currentSection4) {
+ taskInSectionCount = taskInSectionCount + 1;
} else {
- h = S6d(a.e.Tg(), e);
- c2 = BD(a.g, 119);
- for (f2 = 0; f2 < a.i; ++f2) {
- g = c2[f2];
- if (h.rl(g.ak())) {
- if (pb(g, d)) {
- return false;
- } else {
- BD(Gtd(a, f2, b), 72);
- return true;
- }
- }
- }
- }
- return wtd(a, b);
- }
- function r9b(a, b, c2, d) {
- var e, f2, g, h;
- e = new b0b(a);
- __b(e, (j0b(), f0b));
- yNb(e, (wtc(), $sc), b);
- yNb(e, ktc, d);
- yNb(e, (Nyc(), Vxc), (dcd(), $bd));
- yNb(e, Vsc, b.c);
- yNb(e, Wsc, b.d);
- zbc(b, e);
- h = $wnd.Math.floor(c2 / 2);
- for (g = new olb(e.j); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 11);
- f2.n.b = h;
- }
- return e;
- }
- function wac(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- i3 = Pu(a.c - a.b & a.a.length - 1);
- j = null;
- k = null;
- for (f2 = new xkb(a); f2.a != f2.b; ) {
- e = BD(vkb(f2), 10);
- c2 = (h = BD(vNb(e, (wtc(), Vsc)), 11), !h ? null : h.i);
- d = (g = BD(vNb(e, Wsc), 11), !g ? null : g.i);
- if (j != c2 || k != d) {
- Aac(i3, b);
- j = c2;
- k = d;
- }
- i3.c[i3.c.length] = e;
- }
- Aac(i3, b);
- }
- function HNc(a) {
- var b, c2, d, e, f2, g, h;
- b = 0;
- for (d = new olb(a.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- for (f2 = new Sr(ur(U_b(c2).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- if (a == e.d.i.c && e.c.j == (Ucd(), Tcd)) {
- g = A0b(e.c).b;
- h = A0b(e.d).b;
- b = $wnd.Math.max(b, $wnd.Math.abs(h - g));
- }
- }
- }
- return b;
- }
- function aWc(a, b, c2) {
- var d, e, f2;
- Odd(c2, "Remove overlaps", 1);
- c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
- d = BD(hkd(b, (MUc(), LUc)), 33);
- a.f = d;
- a.a = tXc(BD(hkd(b, (ZWc(), WWc)), 293));
- e = ED(hkd(b, (Y9c(), T9c)));
- FVc(a, (uCb(e), e));
- f2 = gVc(d);
- _Vc(a, b, f2, c2);
- c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
- }
- function aYb(a, b, c2) {
- switch (c2.g) {
- case 1:
- return new f7c(b.a, $wnd.Math.min(a.d.b, b.b));
- case 2:
- return new f7c($wnd.Math.max(a.c.a, b.a), b.b);
- case 3:
- return new f7c(b.a, $wnd.Math.max(a.c.b, b.b));
- case 4:
- return new f7c($wnd.Math.min(b.a, a.d.a), b.b);
+ break;
}
- return new f7c(b.a, b.b);
}
- function mFc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m;
- l = d ? (Ucd(), Tcd) : (Ucd(), zcd);
- e = false;
- for (i3 = b[c2], j = 0, k = i3.length; j < k; ++j) {
- h = i3[j];
- if (ecd(BD(vNb(h, (Nyc(), Vxc)), 98))) {
- continue;
- }
- g = h.e;
- m = !V_b(h, l).dc() && !!g;
- if (m) {
- f2 = WZb(g);
- a.b = new sic(f2, d ? 0 : f2.length - 1);
- }
- e = e | nFc(a, h, l, m);
- }
- return e;
+ const section = {
+ x: i2 * conf8.taskMargin + i2 * conf8.width + LEFT_MARGIN,
+ y: 50,
+ text: task.section,
+ fill,
+ num,
+ colour,
+ taskCount: taskInSectionCount
+ };
+ svgDraw_default4.drawSection(diagram24, section, conf8);
+ lastSection = task.section;
+ sectionNumber++;
+ }
+ const taskActors = task.people.reduce((acc, actorName) => {
+ if (actors[actorName]) {
+ acc[actorName] = actors[actorName];
+ }
+ return acc;
+ }, {});
+ task.x = i2 * conf8.taskMargin + i2 * conf8.width + LEFT_MARGIN;
+ task.y = taskPos;
+ task.width = conf8.diagramMarginX;
+ task.height = conf8.diagramMarginY;
+ task.colour = colour;
+ task.fill = fill;
+ task.num = num;
+ task.actors = taskActors;
+ svgDraw_default4.drawTask(diagram24, task, conf8);
+ bounds2.insert(task.x, task.y, task.x + task.width + conf8.taskMargin, 300 + 5 * 30);
+ }
+ }, "drawTasks");
+ journeyRenderer_default = {
+ setConf: setConf7,
+ draw: draw16
+ };
+ }
+ });
+
+ // src/diagrams/user-journey/journeyDiagram.ts
+ var journeyDiagram_exports = {};
+ __export(journeyDiagram_exports, {
+ diagram: () => diagram16
+ });
+ var diagram16;
+ var init_journeyDiagram = __esm({
+ "src/diagrams/user-journey/journeyDiagram.ts"() {
+ "use strict";
+ init_journey();
+ init_journeyDb();
+ init_styles11();
+ init_journeyRenderer();
+ diagram16 = {
+ parser: journey_default,
+ db: journeyDb_default,
+ renderer: journeyRenderer_default,
+ styles: styles_default11,
+ init: /* @__PURE__ */ __name((cnf) => {
+ journeyRenderer_default.setConf(cnf.journey);
+ journeyDb_default.clear();
+ }, "init")
+ };
+ }
+ });
+
+ // src/diagrams/timeline/parser/timeline.jison
+ var parser16, timeline_default;
+ var init_timeline = __esm({
+ "src/diagrams/timeline/parser/timeline.jison"() {
+ "use strict";
+ parser16 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "period_statement": 18, "event_statement": 19, "period": 20, "event": 21, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "timeline", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 20: "period", 21: "event" },
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ break;
+ case 2:
+ this.$ = [];
+ break;
+ case 3:
+ $$[$0 - 1].push($$[$0]);
+ this.$ = $$[$0 - 1];
+ break;
+ case 4:
+ case 5:
+ this.$ = $$[$0];
+ break;
+ case 6:
+ case 7:
+ this.$ = [];
+ break;
+ case 8:
+ yy.getCommonDb().setDiagramTitle($$[$0].substr(6));
+ this.$ = $$[$0].substr(6);
+ break;
+ case 9:
+ this.$ = $$[$0].trim();
+ yy.getCommonDb().setAccTitle(this.$);
+ break;
+ case 10:
+ case 11:
+ this.$ = $$[$0].trim();
+ yy.getCommonDb().setAccDescription(this.$);
+ break;
+ case 12:
+ yy.addSection($$[$0].substr(8));
+ this.$ = $$[$0].substr(8);
+ break;
+ case 15:
+ yy.addTask($$[$0], 0, "");
+ this.$ = $$[$0];
+ break;
+ case 16:
+ yy.addEvent($$[$0].substr(2));
+ this.$ = $$[$0];
+ break;
}
- function $sd(a) {
- var b, c2, d;
- b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i);
- Ekb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d));
- for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 118);
- Ekb(b, (!c2.d && (c2.d = new y5d(B2, c2, 8, 5)), c2.d));
- }
- return Qb(b), new sl(b);
+ }, "anonymous"),
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o2($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o2($V0, [2, 7], { 1: [2, 1] }), o2($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o2($V0, [2, 5]), o2($V0, [2, 6]), o2($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o2($V0, [2, 11]), o2($V0, [2, 12]), o2($V0, [2, 13]), o2($V0, [2, 14]), o2($V0, [2, 15]), o2($V0, [2, 16]), o2($V0, [2, 4]), o2($V0, [2, 9]), o2($V0, [2, 10])],
+ defaultActions: {},
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function _sd(a) {
- var b, c2, d;
- b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i);
- Ekb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e));
- for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 118);
- Ekb(b, (!c2.e && (c2.e = new y5d(B2, c2, 7, 4)), c2.e));
- }
- return Qb(b), new sl(b);
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function M9d(a) {
- var b, c2, d, e;
- if (a == null) {
- return null;
- } else {
- d = Qge(a, true);
- e = Nwe.length;
- if (dfb(d.substr(d.length - e, e), Nwe)) {
- c2 = d.length;
- if (c2 == 4) {
- b = (BCb(0, d.length), d.charCodeAt(0));
- if (b == 43) {
- return x9d;
- } else if (b == 45) {
- return w9d;
- }
- } else if (c2 == 3) {
- return x9d;
- }
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
}
- return Hcb(d);
+ token2 = self2.symbols_[token2] || token2;
}
+ return token2;
}
- function aKc(a) {
- var b, c2, d, e;
- b = 0;
- c2 = 0;
- for (e = new olb(a.j); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 11);
- b = Tbb(wbb(b, HAb(JAb(new YAb(null, new Kub(d.e, 16)), new nLc()))));
- c2 = Tbb(wbb(c2, HAb(JAb(new YAb(null, new Kub(d.g, 16)), new pLc()))));
- if (b > 1 || c2 > 1) {
- return 2;
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
}
+ action = table[state5] && table[state5][symbol];
}
- if (b + c2 == 1) {
- return 2;
- }
- return 0;
- }
- function WQb(a, b, c2) {
- var d, e, f2, g, h;
- Odd(c2, "ELK Force", 1);
- Ccb(DD(hkd(b, (wSb(), jSb)))) || $Cb((d = new _Cb((Pgd(), new bhd(b))), d));
- h = TQb(b);
- XQb(h);
- YQb(a, BD(vNb(h, fSb), 424));
- g = LQb(a.a, h);
- for (f2 = g.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 231);
- tRb(a.b, e, Udd(c2, 1 / g.gc()));
- }
- h = KQb(g);
- SQb(h);
- Qdd(c2);
- }
- function yoc(a, b) {
- var c2, d, e, f2, g;
- Odd(b, "Breaking Point Processor", 1);
- xoc(a);
- if (Ccb(DD(vNb(a, (Nyc(), Jyc))))) {
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- c2 = 0;
- for (g = new olb(d.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- f2.p = c2++;
- }
- }
- soc(a);
- toc(a, true);
- toc(a, false);
- }
- Qdd(b);
- }
- function $1c(a, b, c2) {
- var d, e, f2, g, h, i3;
- h = a.c;
- for (g = (!c2.q ? (mmb(), mmb(), kmb) : c2.q).vc().Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 42);
- d = !WAb(JAb(new YAb(null, new Kub(h, 16)), new Xxb(new m2c(b, f2)))).sd((EAb(), DAb));
- if (d) {
- i3 = f2.dd();
- if (JD(i3, 4)) {
- e = fvd(i3);
- e != null && (i3 = e);
- }
- b.Ye(BD(f2.cd(), 146), i3);
- }
- }
- }
- function MQd(a, b) {
- var c2, d, e, f2, g;
- if (!b) {
- return null;
- } else {
- f2 = JD(a.Cb, 88) || JD(a.Cb, 99);
- g = !f2 && JD(a.Cb, 322);
- for (d = new Fyd((!b.a && (b.a = new KYd(b, j5, b)), b.a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 87);
- e = KQd(c2);
- if (f2 ? JD(e, 88) : g ? JD(e, 148) : !!e) {
- return e;
- }
- }
- return f2 ? (jGd(), _Fd) : (jGd(), YFd);
- }
- }
- function g3b(a, b) {
- var c2, d, e, f2, g, h;
- Odd(b, "Constraints Postprocessor", 1);
- g = 0;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- h = 0;
- for (d = new olb(e.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- if (c2.k == (j0b(), h0b)) {
- yNb(c2, (Nyc(), nxc), meb(g));
- yNb(c2, Gwc, meb(h));
- ++h;
- }
- }
- ++g;
- }
- Qdd(b);
- }
- function eRc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- i3 = new f7c(c2, d);
- c7c(i3, BD(vNb(b, (mTc(), WSc)), 8));
- for (k = Jsb(b.b, 0); k.b != k.d.c; ) {
- j = BD(Xsb(k), 86);
- P6c(j.e, i3);
- Dsb(a.b, j);
- }
- for (h = Jsb(b.a, 0); h.b != h.d.c; ) {
- g = BD(Xsb(h), 188);
- for (f2 = Jsb(g.a, 0); f2.b != f2.d.c; ) {
- e = BD(Xsb(f2), 8);
- P6c(e, i3);
- }
- Dsb(a.a, g);
- }
- }
- function uid(a, b, c2) {
- var d, e, f2;
- f2 = e1d((O6d(), M6d), a.Tg(), b);
- if (f2) {
- Q6d();
- if (!BD(f2, 66).Oj()) {
- f2 = _1d(q1d(M6d, f2));
- if (!f2) {
- throw vbb(new Wdb(ite + b.ne() + jte));
- }
- }
- e = (d = a.Yg(f2), BD(d >= 0 ? a._g(d, true, true) : sid(a, f2, true), 153));
- BD(e, 215).ml(b, c2);
- } else {
- throw vbb(new Wdb(ite + b.ne() + jte));
- }
- }
- function ROc(a, b) {
- var c2, d, e, f2, g;
- c2 = new Rkb();
- e = LAb(new YAb(null, new Kub(a, 16)), new iPc());
- f2 = LAb(new YAb(null, new Kub(a, 16)), new kPc());
- g = aAb(_zb(OAb(ty(OC(GC(xM, 1), Uhe, 833, 0, [e, f2])), new mPc())));
- for (d = 1; d < g.length; d++) {
- g[d] - g[d - 1] >= 2 * b && Ekb(c2, new bPc(g[d - 1] + b, g[d] - b));
- }
- return c2;
- }
- function AXc(a, b, c2) {
- Odd(c2, "Eades radial", 1);
- c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
- a.d = BD(hkd(b, (MUc(), LUc)), 33);
- a.c = Edb(ED(hkd(b, (ZWc(), VWc))));
- a.e = tXc(BD(hkd(b, WWc), 293));
- a.a = gWc(BD(hkd(b, YWc), 426));
- a.b = jXc(BD(hkd(b, RWc), 340));
- BXc(a);
- c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
- }
- function Fqd(a, b, c2) {
- var d, e, f2, g, h, j, k, l;
- if (c2) {
- f2 = c2.a.length;
- d = new Yge(f2);
- for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- e = Zpd(c2, g.a);
- !!e && (j = Uqd(a, (k = (Fhd(), l = new ppd(), l), !!b && npd(k, b), k), e), Lkd(j, _pd(e, Vte)), grd(e, j), hrd(e, j), crd(a, e, j));
- }
- }
- }
- function UKd(a) {
- var b, c2, d, e, f2, g;
- if (!a.j) {
- g = new HPd();
- b = KKd;
- f2 = b.a.zc(a, b);
- if (f2 == null) {
- for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 26);
- e = UKd(c2);
- ytd(g, e);
- wtd(g, c2);
- }
- b.a.Bc(a) != null;
- }
- vud(g);
- a.j = new nNd((BD(qud(ZKd((NFd(), MFd).o), 11), 18), g.i), g.g);
- $Kd(a).b &= -33;
- }
- return a.j;
- }
- function O9d(a) {
- var b, c2, d, e;
- if (a == null) {
- return null;
- } else {
- d = Qge(a, true);
- e = Nwe.length;
- if (dfb(d.substr(d.length - e, e), Nwe)) {
- c2 = d.length;
- if (c2 == 4) {
- b = (BCb(0, d.length), d.charCodeAt(0));
- if (b == 43) {
- return z9d;
- } else if (b == 45) {
- return y9d;
- }
- } else if (c2 == 3) {
- return z9d;
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
}
}
- return new Odb(d);
- }
- }
- function _C(a) {
- var b, c2, d;
- c2 = a.l;
- if ((c2 & c2 - 1) != 0) {
- return -1;
- }
- d = a.m;
- if ((d & d - 1) != 0) {
- return -1;
- }
- b = a.h;
- if ((b & b - 1) != 0) {
- return -1;
- }
- if (b == 0 && d == 0 && c2 == 0) {
- return -1;
- }
- if (b == 0 && d == 0 && c2 != 0) {
- return ieb(c2);
- }
- if (b == 0 && d != 0 && c2 == 0) {
- return ieb(d) + 22;
- }
- if (b != 0 && d == 0 && c2 == 0) {
- return ieb(b) + 44;
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
}
- return -1;
- }
- function qbc(a, b) {
- var c2, d, e, f2, g;
- Odd(b, "Edge joining", 1);
- c2 = Ccb(DD(vNb(a, (Nyc(), Byc))));
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- g = new Bib(d.a, 0);
- while (g.b < g.d.gc()) {
- f2 = (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 10));
- if (f2.k == (j0b(), g0b)) {
- sbc(f2, c2);
- uib(g);
- }
- }
- }
- Qdd(b);
- }
- function c_c(a, b, c2) {
- var d, e;
- H2c(a.b);
- K2c(a.b, (Y$c(), V$c), (R0c(), Q0c));
- K2c(a.b, W$c, b.g);
- K2c(a.b, X$c, b.a);
- a.a = F2c(a.b, b);
- Odd(c2, "Compaction by shrinking a tree", a.a.c.length);
- if (b.i.c.length > 1) {
- for (e = new olb(a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 51);
- d.pf(b, Udd(c2, 1));
- }
- }
- Qdd(c2);
- }
- function mo(a, b) {
- var c2, d, e, f2, g;
- e = b.a & a.f;
- f2 = null;
- for (d = a.b[e]; true; d = d.b) {
- if (d == b) {
- !f2 ? a.b[e] = b.b : f2.b = b.b;
- break;
- }
- f2 = d;
- }
- g = b.f & a.f;
- f2 = null;
- for (c2 = a.c[g]; true; c2 = c2.d) {
- if (c2 == b) {
- !f2 ? a.c[g] = b.d : f2.d = b.d;
- break;
- }
- f2 = c2;
- }
- !b.e ? a.a = b.c : b.e.c = b.c;
- !b.c ? a.e = b.e : b.c.e = b.e;
- --a.i;
- ++a.g;
- }
- function eNb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- c2 = a.o;
- b = a.p;
- g = Ohe;
- e = Rie;
- h = Ohe;
- f2 = Rie;
- for (j = 0; j < c2; ++j) {
- for (k = 0; k < b; ++k) {
- if (YMb(a, j, k)) {
- g = $wnd.Math.min(g, j);
- e = $wnd.Math.max(e, j);
- h = $wnd.Math.min(h, k);
- f2 = $wnd.Math.max(f2, k);
- }
- }
- }
- i3 = e - g + 1;
- d = f2 - h + 1;
- return new Ggd(meb(g), meb(h), meb(i3), meb(d));
- }
- function DWb(a, b) {
- var c2, d, e, f2;
- f2 = new Bib(a, 0);
- c2 = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 140));
- while (f2.b < f2.d.gc()) {
- d = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 140));
- e = new dWb(d.c, c2.d, b);
- sCb(f2.b > 0);
- f2.a.Xb(f2.c = --f2.b);
- Aib(f2, e);
- sCb(f2.b < f2.d.gc());
- f2.d.Xb(f2.c = f2.b++);
- e.a = false;
- c2 = d;
- }
- }
- function Y2b(a) {
- var b, c2, d, e, f2, g;
- e = BD(vNb(a, (wtc(), vsc)), 11);
- for (g = new olb(a.j); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 11);
- for (d = new olb(f2.g); d.a < d.c.c.length; ) {
- b = BD(mlb(d), 17);
- RZb(b, e);
- return f2;
- }
- for (c2 = new olb(f2.e); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 17);
- QZb(b, e);
- return f2;
- }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
}
- return null;
- }
- function iA(a, b, c2) {
- var d, e;
- d = Cbb(c2.q.getTime());
- if (ybb(d, 0) < 0) {
- e = _ie - Tbb(Hbb(Jbb(d), _ie));
- e == _ie && (e = 0);
- } else {
- e = Tbb(Hbb(d, _ie));
- }
- if (b == 1) {
- e = $wnd.Math.min((e + 50) / 100 | 0, 9);
- Kfb(a, 48 + e & aje);
- } else if (b == 2) {
- e = $wnd.Math.min((e + 5) / 10 | 0, 99);
- EA(a, e, 2);
- } else {
- EA(a, e, 3);
- b > 3 && EA(a, 0, b - 3);
- }
- }
- function cUb(a) {
- var b, c2, d, e;
- if (PD(vNb(a, (Nyc(), axc))) === PD((hbd(), ebd))) {
- return !a.e && PD(vNb(a, Cwc)) !== PD((Xrc(), Urc));
- }
- d = BD(vNb(a, Dwc), 292);
- e = Ccb(DD(vNb(a, Hwc))) || PD(vNb(a, Iwc)) === PD((Rpc(), Opc));
- b = BD(vNb(a, Bwc), 19).a;
- c2 = a.a.c.length;
- return !e && d != (Xrc(), Urc) && (b == 0 || b > c2);
- }
- function lkc(a) {
- var b, c2;
- c2 = 0;
- for (; c2 < a.c.length; c2++) {
- if (Ojc((tCb(c2, a.c.length), BD(a.c[c2], 113))) > 0) {
- break;
- }
- }
- if (c2 > 0 && c2 < a.c.length - 1) {
- return c2;
- }
- b = 0;
- for (; b < a.c.length; b++) {
- if (Ojc((tCb(b, a.c.length), BD(a.c[b], 113))) > 0) {
- break;
- }
- }
- if (b > 0 && c2 < a.c.length - 1) {
- return b;
- }
- return a.c.length / 2 | 0;
- }
- function mmd(a, b) {
- var c2, d;
- if (b != a.Cb || a.Db >> 16 != 6 && !!b) {
- if (p6d(a, b))
- throw vbb(new Wdb(ste + qmd(a)));
- d = null;
- !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? cmd(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
- !!b && (d = kid(b, a, 6, d));
- d = bmd(a, b, d);
- !!d && d.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 6, b, b));
- }
- function npd(a, b) {
- var c2, d;
- if (b != a.Cb || a.Db >> 16 != 9 && !!b) {
- if (p6d(a, b))
- throw vbb(new Wdb(ste + opd(a)));
- d = null;
- !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? lpd(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
- !!b && (d = kid(b, a, 9, d));
- d = kpd(a, b, d);
- !!d && d.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 9, b, b));
- }
- function Rld(a, b) {
- var c2, d;
- if (b != a.Cb || a.Db >> 16 != 3 && !!b) {
- if (p6d(a, b))
- throw vbb(new Wdb(ste + Sld(a)));
- d = null;
- !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? Lld(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
- !!b && (d = kid(b, a, 12, d));
- d = Kld(a, b, d);
- !!d && d.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
- }
- function VId(b) {
- var c2, d, e, f2, g;
- e = wId(b);
- g = b.j;
- if (g == null && !!e) {
- return b.$j() ? null : e.zj();
- } else if (JD(e, 148)) {
- d = e.Aj();
- if (d) {
- f2 = d.Nh();
- if (f2 != b.i) {
- c2 = BD(e, 148);
- if (c2.Ej()) {
- try {
- b.g = f2.Kh(c2, g);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 78)) {
- b.g = null;
- } else
- throw vbb(a);
- }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
}
- b.i = f2;
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
}
- }
- return b.g;
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
}
- return null;
}
- function wOb(a) {
- var b;
- b = new Rkb();
- Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d)));
- Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c, a.d + a.a)));
- Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c + a.b, a.d)));
- Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a)));
- return b;
- }
- function IJc(a, b, c2, d) {
- var e, f2, g;
- g = LZb(b, c2);
- d.c[d.c.length] = b;
- if (a.j[g.p] == -1 || a.j[g.p] == 2 || a.a[b.p]) {
- return d;
- }
- a.j[g.p] = -1;
- for (f2 = new Sr(ur(O_b(g).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- if (!(!OZb(e) && !(!OZb(e) && e.c.i.c == e.d.i.c)) || e == b) {
- continue;
- }
- return IJc(a, e, g, d);
- }
- return d;
- }
- function vQb(a, b, c2) {
- var d, e, f2;
- for (f2 = b.a.ec().Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 79);
- d = BD(Ohb(a.b, e), 266);
- !d && (Xod(jtd(e)) == Xod(ltd(e)) ? uQb(a, e, c2) : jtd(e) == Xod(ltd(e)) ? Ohb(a.c, e) == null && Ohb(a.b, ltd(e)) != null && xQb(a, e, c2, false) : Ohb(a.d, e) == null && Ohb(a.b, jtd(e)) != null && xQb(a, e, c2, true));
- }
- }
- function jcc(a, b) {
- var c2, d, e, f2, g, h, i3;
- for (e = a.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 10);
- h = new H0b();
- F0b(h, d);
- G0b(h, (Ucd(), zcd));
- yNb(h, (wtc(), ftc), (Bcb(), true));
- for (g = b.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 10);
- i3 = new H0b();
- F0b(i3, f2);
- G0b(i3, Tcd);
- yNb(i3, ftc, true);
- c2 = new UZb();
- yNb(c2, ftc, true);
- QZb(c2, h);
- RZb(c2, i3);
- }
- }
- }
- function jnc(a, b, c2, d) {
- var e, f2, g, h;
- e = hnc(a, b, c2);
- f2 = hnc(a, c2, b);
- g = BD(Ohb(a.c, b), 112);
- h = BD(Ohb(a.c, c2), 112);
- if (e < f2) {
- new DOc((HOc(), GOc), g, h, f2 - e);
- } else if (f2 < e) {
- new DOc((HOc(), GOc), h, g, e - f2);
- } else if (e != 0 || !(!b.i || !c2.i) && d[b.i.c][c2.i.c]) {
- new DOc((HOc(), GOc), g, h, 0);
- new DOc(GOc, h, g, 0);
- }
- }
- function Qoc(a, b) {
- var c2, d, e, f2, g, h, i3;
- e = 0;
- for (g = new olb(b.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- e += f2.o.b + f2.d.a + f2.d.d + a.e;
- for (d = new Sr(ur(R_b(f2).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- if (c2.c.i.k == (j0b(), i0b)) {
- i3 = c2.c.i;
- h = BD(vNb(i3, (wtc(), $sc)), 10);
- e += h.o.b + h.d.a + h.d.d;
- }
- }
- }
- return e;
- }
- function WNc(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- f2 = new Rkb();
- j = new Psb();
- g = new Psb();
- XNc(a, j, g, b);
- VNc(a, j, g, b, c2);
- for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 112);
- for (e = new olb(h.k); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 129);
- (!b || d.c == (HOc(), FOc)) && h.g > d.b.g && (f2.c[f2.c.length] = d, true);
- }
- }
- return f2;
- }
- function k$c() {
- k$c = ccb;
- g$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_RIGHT", 0);
- f$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_BELOW", 1);
- i$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT", 2);
- h$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW", 3);
- j$c = new l$c("WHOLE_DRAWING", 4);
- }
- function Xqd(a, b) {
- if (JD(b, 239)) {
- return iqd(a, BD(b, 33));
- } else if (JD(b, 186)) {
- return jqd(a, BD(b, 118));
- } else if (JD(b, 354)) {
- return hqd(a, BD(b, 137));
- } else if (JD(b, 352)) {
- return gqd(a, BD(b, 79));
- } else if (b) {
- return null;
- } else {
- throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b])))));
- }
- }
- function aic(a) {
- var b, c2, d, e, f2, g, h;
- f2 = new Psb();
- for (e = new olb(a.d.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 121);
- d.b.a.c.length == 0 && (Gsb(f2, d, f2.c.b, f2.c), true);
- }
- if (f2.b > 1) {
- b = nGb((c2 = new pGb(), ++a.b, c2), a.d);
- for (h = Jsb(f2, 0); h.b != h.d.c; ) {
- g = BD(Xsb(h), 121);
- AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 0), b), g));
- }
- }
- }
- function $od(a, b) {
- var c2, d;
- if (b != a.Cb || a.Db >> 16 != 11 && !!b) {
- if (p6d(a, b))
- throw vbb(new Wdb(ste + _od(a)));
- d = null;
- !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? Uod(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
- !!b && (d = kid(b, a, 10, d));
- d = Tod(a, b, d);
- !!d && d.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, b, b));
- }
- function uZb(a) {
- var b, c2, d, e;
- for (d = new nib(new eib(a.b).a); d.b; ) {
- c2 = lib(d);
- e = BD(c2.cd(), 11);
- b = BD(c2.dd(), 10);
- yNb(b, (wtc(), $sc), e);
- yNb(e, gtc, b);
- yNb(e, Nsc, (Bcb(), true));
- G0b(e, BD(vNb(b, Hsc), 61));
- vNb(b, Hsc);
- yNb(e.i, (Nyc(), Vxc), (dcd(), acd));
- BD(vNb(Q_b(e.i), Ksc), 21).Fc((Orc(), Krc));
- }
- }
- function G4b(a, b, c2) {
- var d, e, f2, g, h, i3;
- f2 = 0;
- g = 0;
- if (a.c) {
- for (i3 = new olb(a.d.i.j); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 11);
- f2 += h.e.c.length;
- }
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
} else {
- f2 = 1;
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- if (a.d) {
- for (i3 = new olb(a.c.i.j); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 11);
- g += h.g.c.length;
- }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
} else {
- g = 1;
- }
- e = QD(Eeb(g - f2));
- d = (c2 + b) / 2 + (c2 - b) * (0.4 * e);
- return d;
- }
- function Zjc(a) {
- Xjc();
- var b, c2;
- if (a.Hc((Ucd(), Scd))) {
- throw vbb(new Wdb("Port sides must not contain UNDEFINED"));
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- switch (a.gc()) {
- case 1:
- return Tjc;
- case 2:
- b = a.Hc(zcd) && a.Hc(Tcd);
- c2 = a.Hc(Acd) && a.Hc(Rcd);
- return b || c2 ? Wjc : Vjc;
- case 3:
- return Ujc;
- case 4:
- return Sjc;
- default:
- return null;
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- }
- function Hoc(a, b, c2) {
- var d, e, f2, g, h;
- Odd(c2, "Breaking Point Removing", 1);
- a.a = BD(vNb(b, (Nyc(), Swc)), 218);
- for (f2 = new olb(b.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- for (h = new olb(Mu(e.a)); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- if (hoc(g)) {
- d = BD(vNb(g, (wtc(), usc)), 305);
- !d.d && Ioc(a, d);
- }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
}
}
- Qdd(c2);
- }
- function s6c(a, b, c2) {
- i6c();
- if (m6c(a, b) && m6c(a, c2)) {
- return false;
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- return u6c(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d), b, c2) || u6c(new f7c(a.c + a.b, a.d), new f7c(a.c + a.b, a.d + a.a), b, c2) || u6c(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a), b, c2) || u6c(new f7c(a.c, a.d + a.a), new f7c(a.c, a.d), b, c2);
- }
- function x1d(a, b) {
- var c2, d, e, f2;
- if (!a.dc()) {
- for (c2 = 0, d = a.gc(); c2 < d; ++c2) {
- f2 = GD(a.Xb(c2));
- if (f2 == null ? b == null : dfb(f2.substr(0, 3), "!##") ? b != null && (e = b.length, !dfb(f2.substr(f2.length - e, e), b) || f2.length != b.length + 3) && !dfb(Ewe, b) : dfb(f2, Fwe) && !dfb(Ewe, b) || dfb(f2, b)) {
- return true;
- }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
}
+ return false;
}
return false;
- }
- function J3b(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- g = a.j.c.length;
- i3 = KC(tN, ile, 306, g, 0, 1);
- for (h = 0; h < g; h++) {
- f2 = BD(Ikb(a.j, h), 11);
- f2.p = h;
- i3[h] = D3b(N3b(f2), c2, d);
- }
- F3b(a, i3, c2, b, d);
- j = new Lqb();
- for (e = 0; e < i3.length; e++) {
- !!i3[e] && Rhb(j, BD(Ikb(a.j, e), 11), i3[e]);
- }
- if (j.f.c + j.g.c != 0) {
- yNb(a, (wtc(), Csc), j);
- L3b(a, i3);
- }
- }
- function Lgc(a, b, c2) {
- var d, e, f2;
- for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 57);
- f2 = tgc(d);
- if (f2) {
- if (f2.k == (j0b(), e0b)) {
- switch (BD(vNb(f2, (wtc(), Hsc)), 61).g) {
- case 4:
- f2.n.a = b.a;
- break;
- case 2:
- f2.n.a = c2.a - (f2.o.a + f2.d.c);
- break;
- case 1:
- f2.n.b = b.b;
- break;
- case 3:
- f2.n.b = c2.b - (f2.o.b + f2.d.a);
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
}
+ } else if (!this.options.flex) {
+ break;
}
}
}
- }
- function kAc() {
- kAc = ccb;
- iAc = new lAc(ane, 0);
- dAc = new lAc("NIKOLOV", 1);
- gAc = new lAc("NIKOLOV_PIXEL", 2);
- eAc = new lAc("NIKOLOV_IMPROVED", 3);
- fAc = new lAc("NIKOLOV_IMPROVED_PIXEL", 4);
- cAc = new lAc("DUMMYNODE_PERCENTAGE", 5);
- hAc = new lAc("NODECOUNT_PERCENTAGE", 6);
- jAc = new lAc("NO_BOUNDARY", 7);
- }
- function led(a, b, c2) {
- var d, e, f2, g, h;
- e = BD(hkd(b, (X7c(), V7c)), 19);
- !e && (e = meb(0));
- f2 = BD(hkd(c2, V7c), 19);
- !f2 && (f2 = meb(0));
- if (e.a > f2.a) {
- return -1;
- } else if (e.a < f2.a) {
- return 1;
- } else {
- if (a.a) {
- d = Kdb(b.j, c2.j);
- if (d != 0) {
- return d;
- }
- d = Kdb(b.i, c2.i);
- if (d != 0) {
- return d;
- }
- }
- g = b.g * b.f;
- h = c2.g * c2.f;
- return Kdb(g, h);
- }
- }
- function BAd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- ++a.e;
- i3 = a.d == null ? 0 : a.d.length;
- if (b > i3) {
- k = a.d;
- a.d = KC(y4, jve, 63, 2 * i3 + 4, 0, 1);
- for (f2 = 0; f2 < i3; ++f2) {
- j = k[f2];
- if (j) {
- d = j.g;
- l = j.i;
- for (h = 0; h < l; ++h) {
- e = BD(d[h], 133);
- g = DAd(a, e.Sh());
- c2 = a.d[g];
- !c2 && (c2 = a.d[g] = a.uj());
- c2.Fc(e);
- }
- }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
}
- return true;
- } else {
return false;
}
- }
- function o2d(a, b, c2) {
- var d, e, f2, g, h, i3;
- e = c2;
- f2 = e.ak();
- if (T6d(a.e, f2)) {
- if (f2.hi()) {
- d = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- h = d[g];
- if (pb(h, e) && g != b) {
- throw vbb(new Wdb(kue));
- }
- }
- }
+ if (this._input === "") {
+ return this.EOF;
} else {
- i3 = S6d(a.e.Tg(), f2);
- d = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- h = d[g];
- if (i3.rl(h.ak())) {
- throw vbb(new Wdb(Hwe));
- }
- }
- }
- vtd(a, b, c2);
- }
- function OYb(a, b) {
- var c2, d, e, f2, g, h;
- c2 = BD(vNb(b, (wtc(), Esc)), 21);
- g = BD(Qc((xXb(), wXb), c2), 21);
- h = BD(Qc(LYb, c2), 21);
- for (f2 = g.Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 21);
- if (!BD(Qc(a.b, d), 15).dc()) {
- return false;
- }
- }
- for (e = h.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 21);
- if (!BD(Qc(a.b, d), 15).dc()) {
- return false;
- }
- }
- return true;
- }
- function scc(a, b) {
- var c2, d, e, f2, g, h;
- Odd(b, "Partition postprocessing", 1);
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- h = new olb(e.j);
- while (h.a < h.c.c.length) {
- g = BD(mlb(h), 11);
- Ccb(DD(vNb(g, (wtc(), ftc)))) && nlb(h);
- }
- }
- }
- Qdd(b);
- }
- function ZZc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- if (a.a.c.length == 1) {
- return JZc(BD(Ikb(a.a, 0), 187), b);
- }
- g = YZc(a);
- i3 = 0;
- j = a.d;
- f2 = g;
- k = a.d;
- h = (j - f2) / 2 + f2;
- while (f2 + 1 < j) {
- i3 = 0;
- for (d = new olb(a.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 187);
- i3 += (e = MZc(c2, h, false), e.a);
- }
- if (i3 < b) {
- k = h;
- j = h;
- } else {
- f2 = h;
- }
- h = (j - f2) / 2 + f2;
- }
- return k;
- }
- function fD(a) {
- var b, c2, d, e, f2;
- if (isNaN(a)) {
- return wD(), vD;
- }
- if (a < -9223372036854776e3) {
- return wD(), tD;
- }
- if (a >= 9223372036854776e3) {
- return wD(), sD;
- }
- e = false;
- if (a < 0) {
- e = true;
- a = -a;
- }
- d = 0;
- if (a >= Ije) {
- d = QD(a / Ije);
- a -= d * Ije;
- }
- c2 = 0;
- if (a >= Hje) {
- c2 = QD(a / Hje);
- a -= c2 * Hje;
- }
- b = QD(a);
- f2 = TC(b, c2, d);
- e && ZC(f2);
- return f2;
- }
- function rKb(a, b) {
- var c2, d, e, f2;
- c2 = !b || !a.u.Hc((rcd(), ncd));
- f2 = 0;
- for (e = new olb(a.e.Cf()); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 838);
- if (d.Hf() == (Ucd(), Scd)) {
- throw vbb(new Wdb("Label and node size calculator can only be used with ports that have port sides assigned."));
- }
- d.vf(f2++);
- qKb(a, d, c2);
- }
- }
- function V0d(a, b) {
- var c2, d, e, f2, g;
- e = b.Hh(a.a);
- if (e) {
- d = (!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b);
- c2 = GD(AAd(d, cwe));
- if (c2 != null) {
- f2 = c2.lastIndexOf("#");
- g = f2 == -1 ? w1d(a, b.Aj(), c2) : f2 == 0 ? v1d(a, null, c2.substr(1)) : v1d(a, c2.substr(0, f2), c2.substr(f2 + 1));
- if (JD(g, 148)) {
- return BD(g, 148);
- }
- }
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- return null;
- }
- function Z0d(a, b) {
- var c2, d, e, f2, g;
- d = b.Hh(a.a);
- if (d) {
- c2 = (!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b);
- f2 = GD(AAd(c2, zwe));
- if (f2 != null) {
- e = f2.lastIndexOf("#");
- g = e == -1 ? w1d(a, b.Aj(), f2) : e == 0 ? v1d(a, null, f2.substr(1)) : v1d(a, f2.substr(0, e), f2.substr(e + 1));
- if (JD(g, 148)) {
- return BD(g, 148);
- }
- }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
}
- return null;
- }
- function RDb(a) {
- var b, c2, d, e, f2;
- for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 307);
- b.j = null;
- for (f2 = b.a.a.ec().Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 57);
- X6c(d.b);
- (!b.j || d.d.c < b.j.d.c) && (b.j = d);
- }
- for (e = b.a.a.ec().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 57);
- d.b.a = d.d.c - b.j.d.c;
- d.b.b = d.d.d - b.j.d.d;
- }
- }
- return a;
- }
- function sVb(a) {
- var b, c2, d, e, f2;
- for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 189);
- b.f = null;
- for (f2 = b.a.a.ec().Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 81);
- X6c(d.e);
- (!b.f || d.g.c < b.f.g.c) && (b.f = d);
- }
- for (e = b.a.a.ec().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 81);
- d.e.a = d.g.c - b.f.g.c;
- d.e.b = d.g.d - b.f.g.d;
- }
- }
- return a;
- }
- function EMb(a) {
- var b, c2, d;
- c2 = BD(a.a, 19).a;
- d = BD(a.b, 19).a;
- b = $wnd.Math.max($wnd.Math.abs(c2), $wnd.Math.abs(d));
- if (c2 < b && d == -b) {
- return new vgd(meb(c2 + 1), meb(d));
- }
- if (c2 == b && d < b) {
- return new vgd(meb(c2), meb(d + 1));
- }
- if (c2 >= -b && d == b) {
- return new vgd(meb(c2 - 1), meb(d));
- }
- return new vgd(meb(c2), meb(d - 1));
- }
- function W8b() {
- S8b();
- return OC(GC(AS, 1), Kie, 77, 0, [Y7b, V7b, Z7b, n8b, G8b, r8b, M8b, w8b, E8b, i8b, A8b, v8b, F8b, e8b, O8b, P7b, z8b, I8b, o8b, H8b, Q8b, C8b, Q7b, D8b, R8b, K8b, P8b, p8b, b8b, q8b, m8b, N8b, T7b, _7b, t8b, S7b, u8b, k8b, f8b, x8b, h8b, W7b, U7b, l8b, g8b, y8b, L8b, R7b, B8b, j8b, s8b, c8b, a8b, J8b, $7b, d8b, X7b]);
- }
- function Yic(a, b, c2) {
- a.d = 0;
- a.b = 0;
- b.k == (j0b(), i0b) && c2.k == i0b && BD(vNb(b, (wtc(), $sc)), 10) == BD(vNb(c2, $sc), 10) && (ajc(b).j == (Ucd(), Acd) ? Zic(a, b, c2) : Zic(a, c2, b));
- b.k == i0b && c2.k == g0b ? ajc(b).j == (Ucd(), Acd) ? a.d = 1 : a.b = 1 : c2.k == i0b && b.k == g0b && (ajc(c2).j == (Ucd(), Acd) ? a.b = 1 : a.d = 1);
- cjc(a, b, c2);
- }
- function esd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- l = hsd(a);
- b = a.a;
- i3 = b != null;
- i3 && Upd(l, "category", a.a);
- e = Fhe(new Pib(a.d));
- g = !e;
- if (g) {
- j = new wB();
- cC(l, "knownOptions", j);
- c2 = new msd(j);
- reb(new Pib(a.d), c2);
- }
- f2 = Fhe(a.g);
- h = !f2;
- if (h) {
- k = new wB();
- cC(l, "supportedFeatures", k);
- d = new osd(k);
- reb(a.g, d);
- }
- return l;
- }
- function ty(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- d = false;
- b = 336;
- c2 = 0;
- f2 = new Xp(a.length);
- for (h = a, i3 = 0, j = h.length; i3 < j; ++i3) {
- g = h[i3];
- d = d | (Uzb(g), false);
- e = (Tzb(g), g.a);
- Ekb(f2.a, Qb(e));
- b &= e.qd();
- c2 = Ly(c2, e.rd());
- }
- return BD(BD(Rzb(new YAb(null, Yj(new Kub((im(), nm(f2.a)), 16), new vy(), b, c2)), new xy(a)), 670), 833);
- }
- function UWb(a, b) {
- var c2;
- if (!!a.d && (b.c != a.e.c || qWb(a.e.b, b.b))) {
- Ekb(a.f, a.d);
- a.a = a.d.c + a.d.b;
- a.d = null;
- a.e = null;
- }
- nWb(b.b) ? a.c = b : a.b = b;
- if (b.b == (lWb(), hWb) && !b.a || b.b == iWb && b.a || b.b == jWb && b.a || b.b == kWb && !b.a) {
- if (!!a.c && !!a.b) {
- c2 = new J6c(a.a, a.c.d, b.c - a.a, a.b.d - a.c.d);
- a.d = c2;
- a.e = b;
- }
- }
- }
- function L2c(a) {
- var b;
- D2c.call(this);
- this.i = new Z2c();
- this.g = a;
- this.f = BD(a.e && a.e(), 9).length;
- if (this.f == 0) {
- throw vbb(new Wdb("There must be at least one phase in the phase enumeration."));
- }
- this.c = (b = BD(gdb(this.g), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
- this.a = new j3c();
- this.b = new Lqb();
- }
- function God(a, b) {
- var c2, d;
- if (b != a.Cb || a.Db >> 16 != 7 && !!b) {
- if (p6d(a, b))
- throw vbb(new Wdb(ste + Iod(a)));
- d = null;
- !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? Eod(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
- !!b && (d = BD(b, 49).gh(a, 1, C2, d));
- d = Dod(a, b, d);
- !!d && d.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, b, b));
- }
- function NHd(a, b) {
- var c2, d;
- if (b != a.Cb || a.Db >> 16 != 3 && !!b) {
- if (p6d(a, b))
- throw vbb(new Wdb(ste + QHd(a)));
- d = null;
- !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? KHd(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
- !!b && (d = BD(b, 49).gh(a, 0, k5, d));
- d = JHd(a, b, d);
- !!d && d.Fi();
- } else
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
- }
- function Ehb(a, b) {
- Dhb();
- var c2, d, e, f2, g, h, i3, j, k;
- if (b.d > a.d) {
- h = a;
- a = b;
- b = h;
- }
- if (b.d < 63) {
- return Ihb(a, b);
- }
- g = (a.d & -2) << 4;
- j = Rgb2(a, g);
- k = Rgb2(b, g);
- d = yhb(a, Qgb(j, g));
- e = yhb(b, Qgb(k, g));
- i3 = Ehb(j, k);
- c2 = Ehb(d, e);
- f2 = Ehb(yhb(j, d), yhb(e, k));
- f2 = thb(thb(f2, i3), c2);
- f2 = Qgb(f2, g);
- i3 = Qgb(i3, g << 1);
- return thb(thb(i3, f2), c2);
- }
- function aGc(a, b, c2) {
- var d, e, f2, g, h;
- g = CHc(a, c2);
- h = KC(OQ, kne, 10, b.length, 0, 1);
- d = 0;
- for (f2 = g.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 11);
- Ccb(DD(vNb(e, (wtc(), Nsc)))) && (h[d++] = BD(vNb(e, gtc), 10));
- }
- if (d < b.length) {
- throw vbb(new Zdb("Expected " + b.length + " hierarchical ports, but found only " + d + "."));
- }
- return h;
- }
- function Und(a, b) {
- var c2, d, e, f2, g, h;
- if (!a.tb) {
- f2 = (!a.rb && (a.rb = new jUd(a, d5, a)), a.rb);
- h = new Mqb(f2.i);
- for (e = new Fyd(f2); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 138);
- g = d.ne();
- c2 = BD(g == null ? jrb(h.f, null, d) : Drb(h.g, g, d), 138);
- !!c2 && (g == null ? jrb(h.f, null, c2) : Drb(h.g, g, c2));
- }
- a.tb = h;
- }
- return BD(Phb(a.tb, b), 138);
- }
- function YKd(a, b) {
- var c2, d, e, f2, g;
- (a.i == null && TKd(a), a.i).length;
- if (!a.p) {
- g = new Mqb((3 * a.g.i / 2 | 0) + 1);
- for (e = new $yd(a.g); e.e != e.i.gc(); ) {
- d = BD(Zyd(e), 170);
- f2 = d.ne();
- c2 = BD(f2 == null ? jrb(g.f, null, d) : Drb(g.g, f2, d), 170);
- !!c2 && (f2 == null ? jrb(g.f, null, c2) : Drb(g.g, f2, c2));
- }
- a.p = g;
- }
- return BD(Phb(a.p, b), 170);
- }
- function hCb(a, b, c2, d, e) {
- var f2, g, h, i3, j;
- fCb(d + Wy(c2, c2.$d()), e);
- gCb(b, jCb(c2));
- f2 = c2.f;
- !!f2 && hCb(a, b, f2, "Caused by: ", false);
- for (h = (c2.k == null && (c2.k = KC(_I, nie, 78, 0, 0, 1)), c2.k), i3 = 0, j = h.length; i3 < j; ++i3) {
- g = h[i3];
- hCb(a, b, g, "Suppressed: ", false);
- }
- console.groupEnd != null && console.groupEnd.call(console);
- }
- function dGc(a, b, c2, d) {
- var e, f2, g, h, i3;
- i3 = b.e;
- h = i3.length;
- g = b.q._f(i3, c2 ? 0 : h - 1, c2);
- e = i3[c2 ? 0 : h - 1];
- g = g | cGc(a, e, c2, d);
- for (f2 = c2 ? 1 : h - 2; c2 ? f2 < h : f2 >= 0; f2 += c2 ? 1 : -1) {
- g = g | b.c.Sf(i3, f2, c2, d && !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, (wtc(), mtc)))));
- g = g | b.q._f(i3, f2, c2);
- g = g | cGc(a, i3[f2], c2, d);
- }
- Qqb(a.c, b);
- return g;
- }
- function o3b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- for (k = m_b(a.j), l = 0, m = k.length; l < m; ++l) {
- j = k[l];
- if (c2 == (KAc(), HAc) || c2 == JAc) {
- i3 = k_b(j.g);
- for (e = i3, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- k3b(b, d) && PZb(d, true);
- }
- }
- if (c2 == IAc || c2 == JAc) {
- h = k_b(j.e);
- for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- j3b(b, d) && PZb(d, true);
- }
- }
- }
- }
- function Qmc(a) {
- var b, c2;
- b = null;
- c2 = null;
- switch (Lmc(a).g) {
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ break;
case 1:
- b = (Ucd(), zcd);
- c2 = Tcd;
break;
case 2:
- b = (Ucd(), Rcd);
- c2 = Acd;
+ return 10;
break;
case 3:
- b = (Ucd(), Tcd);
- c2 = zcd;
break;
case 4:
- b = (Ucd(), Acd);
- c2 = Rcd;
- }
- mjc(a, BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113));
- njc(a, BD(Btb(QAb(BD(Qc(a.k, c2), 15).Oc(), Hmc)), 113));
- }
- function a6b(a) {
- var b, c2, d, e, f2, g;
- e = BD(Ikb(a.j, 0), 11);
- if (e.e.c.length + e.g.c.length == 0) {
- a.n.a = 0;
- } else {
- g = 0;
- for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(e), new R0b(e)]))); Qr(d); ) {
- c2 = BD(Rr(d), 11);
- g += c2.i.n.a + c2.n.a + c2.a.a;
- }
- b = BD(vNb(a, (Nyc(), Txc)), 8);
- f2 = !b ? 0 : b.a;
- a.n.a = g / (e.e.c.length + e.g.c.length) - f2;
- }
- }
- function F1c(a, b) {
- var c2, d, e;
- for (d = new olb(b.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 221);
- $Nb(BD(c2.b, 65), c7c(R6c(BD(b.b, 65).c), BD(b.b, 65).a));
- e = xOb(BD(b.b, 65).b, BD(c2.b, 65).b);
- e > 1 && (a.a = true);
- ZNb(BD(c2.b, 65), P6c(R6c(BD(b.b, 65).c), Y6c(c7c(R6c(BD(c2.b, 65).a), BD(b.b, 65).a), e)));
- D1c(a, b);
- F1c(a, c2);
- }
- }
- function rVb(a) {
- var b, c2, d, e, f2, g, h;
- for (f2 = new olb(a.a.a); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 189);
- d.e = 0;
- d.d.a.$b();
- }
- for (e = new olb(a.a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 189);
- for (c2 = d.a.a.ec().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 81);
- for (h = b.f.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 81);
- if (g.d != d) {
- Qqb(d.d, g);
- ++g.d.e;
- }
- }
- }
+ break;
+ case 5:
+ return 4;
+ break;
+ case 6:
+ return 11;
+ break;
+ case 7:
+ this.begin("acc_title");
+ return 12;
+ break;
+ case 8:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 9:
+ this.begin("acc_descr");
+ return 14;
+ break;
+ case 10:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 11:
+ this.begin("acc_descr_multiline");
+ break;
+ case 12:
+ this.popState();
+ break;
+ case 13:
+ return "acc_descr_multiline_value";
+ break;
+ case 14:
+ return 17;
+ break;
+ case 15:
+ return 21;
+ break;
+ case 16:
+ return 20;
+ break;
+ case 17:
+ return 6;
+ break;
+ case 18:
+ return "INVALID";
+ break;
}
+ }, "anonymous"),
+ rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^:\n]+)/i, /^(?::\s[^:\n]+)/i, /^(?:[^#:\n]+)/i, /^(?:$)/i, /^(?:.)/i],
+ conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser16.parser = parser16;
+ timeline_default = parser16;
+ }
+ });
+
+ // src/diagrams/timeline/timelineDb.js
+ var timelineDb_exports = {};
+ __export(timelineDb_exports, {
+ addEvent: () => addEvent,
+ addSection: () => addSection4,
+ addTask: () => addTask3,
+ addTaskOrg: () => addTaskOrg3,
+ clear: () => clear24,
+ default: () => timelineDb_default,
+ getCommonDb: () => getCommonDb2,
+ getSections: () => getSections4,
+ getTasks: () => getTasks3
+ });
+ var currentSection3, currentTaskId, sections4, tasks3, rawTasks3, getCommonDb2, clear24, addSection4, getSections4, getTasks3, addTask3, addEvent, addTaskOrg3, compileTasks3, timelineDb_default;
+ var init_timelineDb = __esm({
+ "src/diagrams/timeline/timelineDb.js"() {
+ "use strict";
+ init_commonDb();
+ currentSection3 = "";
+ currentTaskId = 0;
+ sections4 = [];
+ tasks3 = [];
+ rawTasks3 = [];
+ getCommonDb2 = /* @__PURE__ */ __name(() => commonDb_exports, "getCommonDb");
+ clear24 = /* @__PURE__ */ __name(function() {
+ sections4.length = 0;
+ tasks3.length = 0;
+ currentSection3 = "";
+ rawTasks3.length = 0;
+ clear();
+ }, "clear");
+ addSection4 = /* @__PURE__ */ __name(function(txt) {
+ currentSection3 = txt;
+ sections4.push(txt);
+ }, "addSection");
+ getSections4 = /* @__PURE__ */ __name(function() {
+ return sections4;
+ }, "getSections");
+ getTasks3 = /* @__PURE__ */ __name(function() {
+ let allItemsProcessed = compileTasks3();
+ const maxDepth = 100;
+ let iterationCount = 0;
+ while (!allItemsProcessed && iterationCount < maxDepth) {
+ allItemsProcessed = compileTasks3();
+ iterationCount++;
+ }
+ tasks3.push(...rawTasks3);
+ return tasks3;
+ }, "getTasks");
+ addTask3 = /* @__PURE__ */ __name(function(period, length2, event3) {
+ const rawTask = {
+ id: currentTaskId++,
+ section: currentSection3,
+ type: currentSection3,
+ task: period,
+ score: length2 ? length2 : 0,
+ //if event is defined, then add it the events array
+ events: event3 ? [event3] : []
+ };
+ rawTasks3.push(rawTask);
+ }, "addTask");
+ addEvent = /* @__PURE__ */ __name(function(event3) {
+ const currentTask = rawTasks3.find((task) => task.id === currentTaskId - 1);
+ currentTask.events.push(event3);
+ }, "addEvent");
+ addTaskOrg3 = /* @__PURE__ */ __name(function(descr) {
+ const newTask = {
+ section: currentSection3,
+ type: currentSection3,
+ description: descr,
+ task: descr,
+ classes: []
+ };
+ tasks3.push(newTask);
+ }, "addTaskOrg");
+ compileTasks3 = /* @__PURE__ */ __name(function() {
+ const compileTask = /* @__PURE__ */ __name(function(pos) {
+ return rawTasks3[pos].processed;
+ }, "compileTask");
+ let allProcessed = true;
+ for (const [i2, rawTask] of rawTasks3.entries()) {
+ compileTask(i2);
+ allProcessed = allProcessed && rawTask.processed;
+ }
+ return allProcessed;
+ }, "compileTasks");
+ timelineDb_default = {
+ clear: clear24,
+ getCommonDb: getCommonDb2,
+ addSection: addSection4,
+ getSections: getSections4,
+ getTasks: getTasks3,
+ addTask: addTask3,
+ addTaskOrg: addTaskOrg3,
+ addEvent
+ };
+ }
+ });
+
+ // src/diagrams/timeline/svgDraw.js
+ function wrap2(text2, width3) {
+ text2.each(function() {
+ var text3 = select_default2(this), words = text3.text().split(/(\s+|
)/).reverse(), word, line2 = [], lineHeight = 1.1, y5 = text3.attr("y"), dy = parseFloat(text3.attr("dy")), tspan = text3.text(null).append("tspan").attr("x", 0).attr("y", y5).attr("dy", dy + "em");
+ for (let j2 = 0; j2 < words.length; j2++) {
+ word = words[words.length - 1 - j2];
+ line2.push(word);
+ tspan.text(line2.join(" ").trim());
+ if (tspan.node().getComputedTextLength() > width3 || word === "
") {
+ line2.pop();
+ tspan.text(line2.join(" ").trim());
+ if (word === "
") {
+ line2 = [""];
+ } else {
+ line2 = [word];
+ }
+ tspan = text3.append("tspan").attr("x", 0).attr("y", y5).attr("dy", lineHeight + "em").text(word);
+ }
+ }
+ });
+ }
+ var MAX_SECTIONS, drawRect6, drawFace2, drawCircle2, drawText5, drawLabel3, drawSection2, taskCount2, drawTask2, drawBackgroundRect4, getTextObj4, getNoteRect3, _drawTextCandidateFunc4, initGraphics2, drawNode, getVirtualNodeHeight, defaultBkg, svgDraw_default5;
+ var init_svgDraw5 = __esm({
+ "src/diagrams/timeline/svgDraw.js"() {
+ "use strict";
+ init_src32();
+ MAX_SECTIONS = 12;
+ drawRect6 = /* @__PURE__ */ __name(function(elem, rectData) {
+ const rectElem = elem.append("rect");
+ rectElem.attr("x", rectData.x);
+ rectElem.attr("y", rectData.y);
+ rectElem.attr("fill", rectData.fill);
+ rectElem.attr("stroke", rectData.stroke);
+ rectElem.attr("width", rectData.width);
+ rectElem.attr("height", rectData.height);
+ rectElem.attr("rx", rectData.rx);
+ rectElem.attr("ry", rectData.ry);
+ if (rectData.class !== void 0) {
+ rectElem.attr("class", rectData.class);
+ }
+ return rectElem;
+ }, "drawRect");
+ drawFace2 = /* @__PURE__ */ __name(function(element3, faceData) {
+ const radius2 = 15;
+ const circleElement = element3.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius2).attr("stroke-width", 2).attr("overflow", "visible");
+ const face = element3.append("g");
+ face.append("circle").attr("cx", faceData.cx - radius2 / 3).attr("cy", faceData.cy - radius2 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ face.append("circle").attr("cx", faceData.cx + radius2 / 3).attr("cy", faceData.cy - radius2 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
+ function smile(face2) {
+ const arc = arc_default().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius2 / 2).outerRadius(radius2 / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
+ }
+ __name(smile, "smile");
+ function sad(face2) {
+ const arc = arc_default().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius2 / 2).outerRadius(radius2 / 2.2);
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
+ }
+ __name(sad, "sad");
+ function ambivalent(face2) {
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
+ }
+ __name(ambivalent, "ambivalent");
+ if (faceData.score > 3) {
+ smile(face);
+ } else if (faceData.score < 3) {
+ sad(face);
+ } else {
+ ambivalent(face);
+ }
+ return circleElement;
+ }, "drawFace");
+ drawCircle2 = /* @__PURE__ */ __name(function(element3, circleData) {
+ const circleElement = element3.append("circle");
+ circleElement.attr("cx", circleData.cx);
+ circleElement.attr("cy", circleData.cy);
+ circleElement.attr("class", "actor-" + circleData.pos);
+ circleElement.attr("fill", circleData.fill);
+ circleElement.attr("stroke", circleData.stroke);
+ circleElement.attr("r", circleData.r);
+ if (circleElement.class !== void 0) {
+ circleElement.attr("class", circleElement.class);
+ }
+ if (circleData.title !== void 0) {
+ circleElement.append("title").text(circleData.title);
+ }
+ return circleElement;
+ }, "drawCircle");
+ drawText5 = /* @__PURE__ */ __name(function(elem, textData) {
+ const nText = textData.text.replace(/
/gi, " ");
+ const textElem = elem.append("text");
+ textElem.attr("x", textData.x);
+ textElem.attr("y", textData.y);
+ textElem.attr("class", "legend");
+ textElem.style("text-anchor", textData.anchor);
+ if (textData.class !== void 0) {
+ textElem.attr("class", textData.class);
+ }
+ const span = textElem.append("tspan");
+ span.attr("x", textData.x + textData.textMargin * 2);
+ span.text(nText);
+ return textElem;
+ }, "drawText");
+ drawLabel3 = /* @__PURE__ */ __name(function(elem, txtObject) {
+ function genPoints(x5, y5, width3, height2, cut) {
+ return x5 + "," + y5 + " " + (x5 + width3) + "," + y5 + " " + (x5 + width3) + "," + (y5 + height2 - cut) + " " + (x5 + width3 - cut * 1.2) + "," + (y5 + height2) + " " + x5 + "," + (y5 + height2);
+ }
+ __name(genPoints, "genPoints");
+ const polygon2 = elem.append("polygon");
+ polygon2.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
+ polygon2.attr("class", "labelBox");
+ txtObject.y = txtObject.y + txtObject.labelMargin;
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
+ drawText5(elem, txtObject);
+ }, "drawLabel");
+ drawSection2 = /* @__PURE__ */ __name(function(elem, section, conf8) {
+ const g2 = elem.append("g");
+ const rect4 = getNoteRect3();
+ rect4.x = section.x;
+ rect4.y = section.y;
+ rect4.fill = section.fill;
+ rect4.width = conf8.width;
+ rect4.height = conf8.height;
+ rect4.class = "journey-section section-type-" + section.num;
+ rect4.rx = 3;
+ rect4.ry = 3;
+ drawRect6(g2, rect4);
+ _drawTextCandidateFunc4(conf8)(
+ section.text,
+ g2,
+ rect4.x,
+ rect4.y,
+ rect4.width,
+ rect4.height,
+ { class: "journey-section section-type-" + section.num },
+ conf8,
+ section.colour
+ );
+ }, "drawSection");
+ taskCount2 = -1;
+ drawTask2 = /* @__PURE__ */ __name(function(elem, task, conf8) {
+ const center4 = task.x + conf8.width / 2;
+ const g2 = elem.append("g");
+ taskCount2++;
+ const maxHeight = 300 + 5 * 30;
+ g2.append("line").attr("id", "task" + taskCount2).attr("x1", center4).attr("y1", task.y).attr("x2", center4).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
+ drawFace2(g2, {
+ cx: center4,
+ cy: 300 + (5 - task.score) * 30,
+ score: task.score
+ });
+ const rect4 = getNoteRect3();
+ rect4.x = task.x;
+ rect4.y = task.y;
+ rect4.fill = task.fill;
+ rect4.width = conf8.width;
+ rect4.height = conf8.height;
+ rect4.class = "task task-type-" + task.num;
+ rect4.rx = 3;
+ rect4.ry = 3;
+ drawRect6(g2, rect4);
+ _drawTextCandidateFunc4(conf8)(
+ task.task,
+ g2,
+ rect4.x,
+ rect4.y,
+ rect4.width,
+ rect4.height,
+ { class: "task" },
+ conf8,
+ task.colour
+ );
+ }, "drawTask");
+ drawBackgroundRect4 = /* @__PURE__ */ __name(function(elem, bounds4) {
+ const rectElem = drawRect6(elem, {
+ x: bounds4.startx,
+ y: bounds4.starty,
+ width: bounds4.stopx - bounds4.startx,
+ height: bounds4.stopy - bounds4.starty,
+ fill: bounds4.fill,
+ class: "rect"
+ });
+ rectElem.lower();
+ }, "drawBackgroundRect");
+ getTextObj4 = /* @__PURE__ */ __name(function() {
+ return {
+ x: 0,
+ y: 0,
+ fill: void 0,
+ "text-anchor": "start",
+ width: 100,
+ height: 100,
+ textMargin: 0,
+ rx: 0,
+ ry: 0
+ };
+ }, "getTextObj");
+ getNoteRect3 = /* @__PURE__ */ __name(function() {
+ return {
+ x: 0,
+ y: 0,
+ width: 100,
+ anchor: "start",
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+ }, "getNoteRect");
+ _drawTextCandidateFunc4 = /* @__PURE__ */ function() {
+ function byText(content, g2, x5, y5, width3, height2, textAttrs, colour) {
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5 + height2 / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byText, "byText");
+ function byTspan(content, g2, x5, y5, width3, height2, textAttrs, conf8, colour) {
+ const { taskFontSize, taskFontFamily } = conf8;
+ const lines = content.split(/
/gi);
+ for (let i2 = 0; i2 < lines.length; i2++) {
+ const dy = i2 * taskFontSize - taskFontSize * (lines.length - 1) / 2;
+ const text2 = g2.append("text").attr("x", x5 + width3 / 2).attr("y", y5).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
+ text2.append("tspan").attr("x", x5 + width3 / 2).attr("dy", dy).text(lines[i2]);
+ text2.attr("y", y5 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
+ _setTextAttrs(text2, textAttrs);
+ }
+ }
+ __name(byTspan, "byTspan");
+ function byFo(content, g2, x5, y5, width3, height2, textAttrs, conf8) {
+ const body = g2.append("switch");
+ const f3 = body.append("foreignObject").attr("x", x5).attr("y", y5).attr("width", width3).attr("height", height2).attr("position", "fixed");
+ const text2 = f3.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
+ text2.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
+ byTspan(content, body, x5, y5, width3, height2, textAttrs, conf8);
+ _setTextAttrs(text2, textAttrs);
+ }
+ __name(byFo, "byFo");
+ function _setTextAttrs(toText, fromTextAttrsDict) {
+ for (const key in fromTextAttrsDict) {
+ if (key in fromTextAttrsDict) {
+ toText.attr(key, fromTextAttrsDict[key]);
+ }
+ }
+ }
+ __name(_setTextAttrs, "_setTextAttrs");
+ return function(conf8) {
+ return conf8.textPlacement === "fo" ? byFo : conf8.textPlacement === "old" ? byText : byTspan;
+ };
+ }();
+ initGraphics2 = /* @__PURE__ */ __name(function(graphics) {
+ graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
+ }, "initGraphics");
+ __name(wrap2, "wrap");
+ drawNode = /* @__PURE__ */ __name(function(elem, node2, fullSection, conf8) {
+ const section = fullSection % MAX_SECTIONS - 1;
+ const nodeElem = elem.append("g");
+ node2.section = section;
+ nodeElem.attr(
+ "class",
+ (node2.class ? node2.class + " " : "") + "timeline-node " + ("section-" + section)
+ );
+ const bkgElem = nodeElem.append("g");
+ const textElem = nodeElem.append("g");
+ const txt = textElem.append("text").text(node2.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap2, node2.width);
+ const bbox = txt.node().getBBox();
+ const fontSize = conf8.fontSize?.replace ? conf8.fontSize.replace("px", "") : conf8.fontSize;
+ node2.height = bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
+ node2.height = Math.max(node2.height, node2.maxHeight);
+ node2.width = node2.width + 2 * node2.padding;
+ textElem.attr("transform", "translate(" + node2.width / 2 + ", " + node2.padding / 2 + ")");
+ defaultBkg(bkgElem, node2, section, conf8);
+ return node2;
+ }, "drawNode");
+ getVirtualNodeHeight = /* @__PURE__ */ __name(function(elem, node2, conf8) {
+ const textElem = elem.append("g");
+ const txt = textElem.append("text").text(node2.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap2, node2.width);
+ const bbox = txt.node().getBBox();
+ const fontSize = conf8.fontSize?.replace ? conf8.fontSize.replace("px", "") : conf8.fontSize;
+ textElem.remove();
+ return bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
+ }, "getVirtualNodeHeight");
+ defaultBkg = /* @__PURE__ */ __name(function(elem, node2, section) {
+ const rd = 5;
+ elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + node2.type).attr(
+ "d",
+ `M0 ${node2.height - rd} v${-node2.height + 2 * rd} q0,-5 5,-5 h${node2.width - 2 * rd} q5,0 5,5 v${node2.height - rd} H0 Z`
+ );
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node2.height).attr("x2", node2.width).attr("y2", node2.height);
+ }, "defaultBkg");
+ svgDraw_default5 = {
+ drawRect: drawRect6,
+ drawCircle: drawCircle2,
+ drawSection: drawSection2,
+ drawText: drawText5,
+ drawLabel: drawLabel3,
+ drawTask: drawTask2,
+ drawBackgroundRect: drawBackgroundRect4,
+ getTextObj: getTextObj4,
+ getNoteRect: getNoteRect3,
+ initGraphics: initGraphics2,
+ drawNode,
+ getVirtualNodeHeight
+ };
+ }
+ });
+
+ // src/diagrams/timeline/timelineRenderer.ts
+ var draw18, drawTasks2, drawEvents, timelineRenderer_default;
+ var init_timelineRenderer = __esm({
+ "src/diagrams/timeline/timelineRenderer.ts"() {
+ "use strict";
+ init_src32();
+ init_svgDraw5();
+ init_logger();
+ init_diagramAPI();
+ init_setupGraphViewbox();
+ draw18 = /* @__PURE__ */ __name(function(text2, id27, version4, diagObj) {
+ const conf8 = getConfig2();
+ const LEFT_MARGIN2 = conf8.leftMargin ?? 50;
+ log.debug("timeline", diagObj.db);
+ const securityLevel = conf8.securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = root4.select("#" + id27);
+ svg.append("g");
+ const tasks4 = diagObj.db.getTasks();
+ const title2 = diagObj.db.getCommonDb().getDiagramTitle();
+ log.debug("task", tasks4);
+ svgDraw_default5.initGraphics(svg);
+ const sections5 = diagObj.db.getSections();
+ log.debug("sections", sections5);
+ let maxSectionHeight = 0;
+ let maxTaskHeight = 0;
+ let depthY = 0;
+ let sectionBeginY = 0;
+ let masterX = 50 + LEFT_MARGIN2;
+ let masterY = 50;
+ sectionBeginY = 50;
+ let sectionNumber = 0;
+ let hasSections = true;
+ sections5.forEach(function(section) {
+ const sectionNode = {
+ number: sectionNumber,
+ descr: section,
+ section: sectionNumber,
+ width: 150,
+ padding: 20,
+ maxHeight: maxSectionHeight
+ };
+ const sectionHeight = svgDraw_default5.getVirtualNodeHeight(svg, sectionNode, conf8);
+ log.debug("sectionHeight before draw", sectionHeight);
+ maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);
+ });
+ let maxEventCount = 0;
+ let maxEventLineLength = 0;
+ log.debug("tasks.length", tasks4.length);
+ for (const [i2, task] of tasks4.entries()) {
+ const taskNode = {
+ number: i2,
+ descr: task,
+ section: task.section,
+ width: 150,
+ padding: 20,
+ maxHeight: maxTaskHeight
+ };
+ const taskHeight = svgDraw_default5.getVirtualNodeHeight(svg, taskNode, conf8);
+ log.debug("taskHeight before draw", taskHeight);
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);
+ maxEventCount = Math.max(maxEventCount, task.events.length);
+ let maxEventLineLengthTemp = 0;
+ for (const event3 of task.events) {
+ const eventNode = {
+ descr: event3,
+ section: task.section,
+ number: task.section,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ maxEventLineLengthTemp += svgDraw_default5.getVirtualNodeHeight(svg, eventNode, conf8);
+ }
+ maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);
+ }
+ log.debug("maxSectionHeight before draw", maxSectionHeight);
+ log.debug("maxTaskHeight before draw", maxTaskHeight);
+ if (sections5 && sections5.length > 0) {
+ sections5.forEach((section) => {
+ const tasksForSection = tasks4.filter((task) => task.section === section);
+ const sectionNode = {
+ number: sectionNumber,
+ descr: section,
+ section: sectionNumber,
+ width: 200 * Math.max(tasksForSection.length, 1) - 50,
+ padding: 20,
+ maxHeight: maxSectionHeight
+ };
+ log.debug("sectionNode", sectionNode);
+ const sectionNodeWrapper = svg.append("g");
+ const node2 = svgDraw_default5.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf8);
+ log.debug("sectionNode output", node2);
+ sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`);
+ masterY += maxSectionHeight + 50;
+ if (tasksForSection.length > 0) {
+ drawTasks2(
+ svg,
+ tasksForSection,
+ sectionNumber,
+ masterX,
+ masterY,
+ maxTaskHeight,
+ conf8,
+ maxEventCount,
+ maxEventLineLength,
+ maxSectionHeight,
+ false
+ );
}
- function bcc(a) {
- var b, c2, d, e, f2, g, h, i3;
- i3 = a.j.c.length;
- c2 = 0;
- b = i3;
- e = 2 * i3;
- for (h = new olb(a.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- switch (g.j.g) {
- case 2:
- case 4:
- g.p = -1;
- break;
- case 1:
- case 3:
- d = g.e.c.length;
- f2 = g.g.c.length;
- d > 0 && f2 > 0 ? g.p = b++ : d > 0 ? g.p = c2++ : f2 > 0 ? g.p = e++ : g.p = c2++;
- }
- }
- mmb();
- Okb(a.j, new fcc());
- }
- function Vec(a) {
- var b, c2;
- c2 = null;
- b = BD(Ikb(a.g, 0), 17);
- do {
- c2 = b.d.i;
- if (wNb(c2, (wtc(), Wsc))) {
- return BD(vNb(c2, Wsc), 11).i;
- }
- if (c2.k != (j0b(), h0b) && Qr(new Sr(ur(U_b(c2).a.Kc(), new Sq())))) {
- b = BD(Rr(new Sr(ur(U_b(c2).a.Kc(), new Sq()))), 17);
- } else if (c2.k != h0b) {
- return null;
- }
- } while (!!c2 && c2.k != (j0b(), h0b));
- return c2;
- }
- function Omc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- h = b.j;
- g = b.g;
- i3 = BD(Ikb(h, h.c.length - 1), 113);
- k = (tCb(0, h.c.length), BD(h.c[0], 113));
- j = Kmc(a, g, i3, k);
- for (f2 = 1; f2 < h.c.length; f2++) {
- c2 = (tCb(f2 - 1, h.c.length), BD(h.c[f2 - 1], 113));
- e = (tCb(f2, h.c.length), BD(h.c[f2], 113));
- d = Kmc(a, g, c2, e);
- if (d > j) {
- i3 = c2;
- k = e;
- j = d;
- }
- }
- b.a = k;
- b.c = i3;
- }
- function sEb(a, b) {
- var c2, d;
- d = Axb(a.b, b.b);
- if (!d) {
- throw vbb(new Zdb("Invalid hitboxes for scanline constraint calculation."));
- }
- (mEb(b.b, BD(Cxb(a.b, b.b), 57)) || mEb(b.b, BD(Bxb(a.b, b.b), 57))) && (Zfb(), b.b + " has overlap.");
- a.a[b.b.f] = BD(Exb(a.b, b.b), 57);
- c2 = BD(Dxb(a.b, b.b), 57);
- !!c2 && (a.a[c2.f] = b.b);
- }
- function AFb(a) {
- if (!a.a.d || !a.a.e) {
- throw vbb(new Zdb((fdb(fN), fN.k + " must have a source and target " + (fdb(jN), jN.k) + " specified.")));
- }
- if (a.a.d == a.a.e) {
- throw vbb(new Zdb("Network simplex does not support self-loops: " + a.a + " " + a.a.d + " " + a.a.e));
- }
- NFb(a.a.d.g, a.a);
- NFb(a.a.e.b, a.a);
- return a.a;
- }
- function HHc(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- j = new Hxb(new tIc(a));
- for (g = OC(GC(aR, 1), lne, 11, 0, [b, c2]), h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- Iwb(j.a, f2, (Bcb(), zcb)) == null;
- for (e = new b1b(f2.b); llb(e.a) || llb(e.b); ) {
- d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
- d.c == d.d || Axb(j, f2 == d.c ? d.d : d.c);
- }
- }
- return Qb(j), new Tkb(j);
- }
- function oPc(a, b, c2) {
- var d, e, f2, g, h, i3;
- d = 0;
- if (b.b != 0 && c2.b != 0) {
- f2 = Jsb(b, 0);
- g = Jsb(c2, 0);
- h = Edb(ED(Xsb(f2)));
- i3 = Edb(ED(Xsb(g)));
- e = true;
- do {
- if (h > i3 - a.b && h < i3 + a.b) {
- return -1;
- } else
- h > i3 - a.a && h < i3 + a.a && ++d;
- h <= i3 && f2.b != f2.d.c ? h = Edb(ED(Xsb(f2))) : i3 <= h && g.b != g.d.c ? i3 = Edb(ED(Xsb(g))) : e = false;
- } while (e);
- }
- return d;
- }
- function F3b(a, b, c2, d, e) {
- var f2, g, h, i3;
- i3 = (f2 = BD(gdb(F1), 9), new xqb(f2, BD(_Bb(f2, f2.length), 9), 0));
- for (h = new olb(a.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- if (b[g.p]) {
- G3b(g, b[g.p], d);
- rqb(i3, g.j);
- }
- }
- if (e) {
- K3b(a, b, (Ucd(), zcd), 2 * c2, d);
- K3b(a, b, Tcd, 2 * c2, d);
- } else {
- K3b(a, b, (Ucd(), Acd), 2 * c2, d);
- K3b(a, b, Rcd, 2 * c2, d);
- }
- }
- function Szb(a) {
- var b, c2, d, e, f2;
- f2 = new Rkb();
- Hkb(a.b, new XBb(f2));
- a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- if (f2.c.length != 0) {
- b = (tCb(0, f2.c.length), BD(f2.c[0], 78));
- for (c2 = 1, d = f2.c.length; c2 < d; ++c2) {
- e = (tCb(c2, f2.c.length), BD(f2.c[c2], 78));
- e != b && Qy(b, e);
- }
- if (JD(b, 60)) {
- throw vbb(BD(b, 60));
- }
- if (JD(b, 289)) {
- throw vbb(BD(b, 289));
- }
- }
- }
- function DCb(a, b) {
- var c2, d, e, f2;
- a = a == null ? Xhe : (uCb(a), a);
- c2 = new Vfb();
- f2 = 0;
- d = 0;
- while (d < b.length) {
- e = a.indexOf("%s", f2);
- if (e == -1) {
- break;
- }
- Qfb(c2, a.substr(f2, e - f2));
- Pfb(c2, b[d++]);
- f2 = e + 2;
- }
- Qfb(c2, a.substr(f2));
- if (d < b.length) {
- c2.a += " [";
- Pfb(c2, b[d++]);
- while (d < b.length) {
- c2.a += She;
- Pfb(c2, b[d++]);
- }
- c2.a += "]";
- }
- return c2.a;
- }
- function KCb(a) {
- var b, c2, d, e;
- b = 0;
- d = a.length;
- e = d - 4;
- c2 = 0;
- while (c2 < e) {
- b = (BCb(c2 + 3, a.length), a.charCodeAt(c2 + 3) + (BCb(c2 + 2, a.length), 31 * (a.charCodeAt(c2 + 2) + (BCb(c2 + 1, a.length), 31 * (a.charCodeAt(c2 + 1) + (BCb(c2, a.length), 31 * (a.charCodeAt(c2) + 31 * b)))))));
- b = b | 0;
- c2 += 4;
- }
- while (c2 < d) {
- b = b * 31 + bfb(a, c2++);
- }
- b = b | 0;
- return b;
- }
- function Rac(a) {
- var b, c2;
- for (c2 = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- if (b.d.i.k != (j0b(), f0b)) {
- throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."));
- }
- }
- }
- function jQc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m;
- i3 = 0;
- for (k = new olb(a.a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 10);
- h = 0;
- for (f2 = new Sr(ur(R_b(j).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- l = A0b(e.c).b;
- m = A0b(e.d).b;
- h = $wnd.Math.max(h, $wnd.Math.abs(m - l));
- }
- i3 = $wnd.Math.max(i3, h);
- }
- g = d * $wnd.Math.min(1, b / c2) * i3;
- return g;
- }
- function See(a) {
- var b;
- b = new Ifb();
- (a & 256) != 0 && (b.a += "F", b);
- (a & 128) != 0 && (b.a += "H", b);
- (a & 512) != 0 && (b.a += "X", b);
- (a & 2) != 0 && (b.a += "i", b);
- (a & 8) != 0 && (b.a += "m", b);
- (a & 4) != 0 && (b.a += "s", b);
- (a & 32) != 0 && (b.a += "u", b);
- (a & 64) != 0 && (b.a += "w", b);
- (a & 16) != 0 && (b.a += "x", b);
- (a & zte) != 0 && (b.a += ",", b);
- return jfb(b.a);
- }
- function F5b(a, b) {
- var c2, d, e, f2;
- Odd(b, "Resize child graph to fit parent.", 1);
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- Gkb(a.a, c2.a);
- c2.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- $_b(e, null);
- }
- a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- G5b(a);
- !!a.e && E5b(a.e, a);
- Qdd(b);
- }
- function eec(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- d = a.b;
- f2 = d.e;
- g = ecd(BD(vNb(d, (Nyc(), Vxc)), 98));
- c2 = !!f2 && BD(vNb(f2, (wtc(), Ksc)), 21).Hc((Orc(), Hrc));
- if (g || c2) {
- return;
- }
- for (j = (h = new $ib(a.e).a.vc().Kc(), new djb(h)); j.a.Ob(); ) {
- i3 = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113));
- if (i3.a) {
- e = i3.d;
- F0b(e, null);
- i3.c = true;
- a.a = true;
- }
- }
- }
- function QFc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
- m = -1;
- n = 0;
- for (j = a, k = 0, l = j.length; k < l; ++k) {
- i3 = j[k];
- for (f2 = i3, g = 0, h = f2.length; g < h; ++g) {
- e = f2[g];
- b = new Unc(m == -1 ? a[0] : a[m], Xec(e));
- for (c2 = 0; c2 < e.j.c.length; c2++) {
- for (d = c2 + 1; d < e.j.c.length; d++) {
- Rnc(b, BD(Ikb(e.j, c2), 11), BD(Ikb(e.j, d), 11)) > 0 && ++n;
- }
- }
- }
- ++m;
- }
- return n;
+ masterX += 200 * Math.max(tasksForSection.length, 1);
+ masterY = sectionBeginY;
+ sectionNumber++;
+ });
+ } else {
+ hasSections = false;
+ drawTasks2(
+ svg,
+ tasks4,
+ sectionNumber,
+ masterX,
+ masterY,
+ maxTaskHeight,
+ conf8,
+ maxEventCount,
+ maxEventLineLength,
+ maxSectionHeight,
+ true
+ );
+ }
+ const box = svg.node().getBBox();
+ log.debug("bounds", box);
+ if (title2) {
+ svg.append("text").text(title2).attr("x", box.width / 2 - LEFT_MARGIN2).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
+ }
+ depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;
+ const lineWrapper = svg.append("g").attr("class", "lineWrapper");
+ lineWrapper.append("line").attr("x1", LEFT_MARGIN2).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN2).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
+ setupGraphViewbox(
+ void 0,
+ svg,
+ conf8.timeline?.padding ?? 50,
+ conf8.timeline?.useMaxWidth ?? false
+ );
+ }, "draw");
+ drawTasks2 = /* @__PURE__ */ __name(function(diagram24, tasks4, sectionColor, masterX, masterY, maxTaskHeight, conf8, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {
+ for (const task of tasks4) {
+ const taskNode = {
+ descr: task.task,
+ section: sectionColor,
+ number: sectionColor,
+ width: 150,
+ padding: 20,
+ maxHeight: maxTaskHeight
+ };
+ log.debug("taskNode", taskNode);
+ const taskWrapper = diagram24.append("g").attr("class", "taskWrapper");
+ const node2 = svgDraw_default5.drawNode(taskWrapper, taskNode, sectionColor, conf8);
+ const taskHeight = node2.height;
+ log.debug("taskHeight after draw", taskHeight);
+ taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight);
+ if (task.events) {
+ const lineWrapper = diagram24.append("g").attr("class", "lineWrapper");
+ let lineLength = maxTaskHeight;
+ masterY += 100;
+ lineLength = lineLength + drawEvents(diagram24, task.events, sectionColor, masterX, masterY, conf8);
+ masterY -= 100;
+ lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr(
+ "y2",
+ masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120
+ ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
+ }
+ masterX = masterX + 200;
+ if (isWithoutSections && !conf8.timeline?.disableMulticolor) {
+ sectionColor++;
+ }
+ }
+ masterY = masterY - 10;
+ }, "drawTasks");
+ drawEvents = /* @__PURE__ */ __name(function(diagram24, events, sectionColor, masterX, masterY, conf8) {
+ let maxEventHeight = 0;
+ const eventBeginY = masterY;
+ masterY = masterY + 100;
+ for (const event3 of events) {
+ const eventNode = {
+ descr: event3,
+ section: sectionColor,
+ number: sectionColor,
+ width: 150,
+ padding: 20,
+ maxHeight: 50
+ };
+ log.debug("eventNode", eventNode);
+ const eventWrapper = diagram24.append("g").attr("class", "eventWrapper");
+ const node2 = svgDraw_default5.drawNode(eventWrapper, eventNode, sectionColor, conf8);
+ const eventHeight = node2.height;
+ maxEventHeight = maxEventHeight + eventHeight;
+ eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
+ masterY = masterY + 10 + eventHeight;
+ }
+ masterY = eventBeginY;
+ return maxEventHeight;
+ }, "drawEvents");
+ timelineRenderer_default = {
+ setConf: /* @__PURE__ */ __name(() => {
+ }, "setConf"),
+ draw: draw18
+ };
+ }
+ });
+
+ // src/diagrams/timeline/styles.js
+ var genSections, getStyles13, styles_default12;
+ var init_styles12 = __esm({
+ "src/diagrams/timeline/styles.js"() {
+ "use strict";
+ init_dist();
+ genSections = /* @__PURE__ */ __name((options3) => {
+ let sections5 = "";
+ for (let i2 = 0; i2 < options3.THEME_COLOR_LIMIT; i2++) {
+ options3["lineColor" + i2] = options3["lineColor" + i2] || options3["cScaleInv" + i2];
+ if (is_dark_default(options3["lineColor" + i2])) {
+ options3["lineColor" + i2] = lighten_default(options3["lineColor" + i2], 20);
+ } else {
+ options3["lineColor" + i2] = darken_default(options3["lineColor" + i2], 20);
+ }
+ }
+ for (let i2 = 0; i2 < options3.THEME_COLOR_LIMIT; i2++) {
+ const sw = "" + (17 - 3 * i2);
+ sections5 += `
+ .section-${i2 - 1} rect, .section-${i2 - 1} path, .section-${i2 - 1} circle, .section-${i2 - 1} path {
+ fill: ${options3["cScale" + i2]};
+ }
+ .section-${i2 - 1} text {
+ fill: ${options3["cScaleLabel" + i2]};
+ }
+ .node-icon-${i2 - 1} {
+ font-size: 40px;
+ color: ${options3["cScaleLabel" + i2]};
+ }
+ .section-edge-${i2 - 1}{
+ stroke: ${options3["cScale" + i2]};
+ }
+ .edge-depth-${i2 - 1}{
+ stroke-width: ${sw};
+ }
+ .section-${i2 - 1} line {
+ stroke: ${options3["cScaleInv" + i2]} ;
+ stroke-width: 3;
+ }
+
+ .lineWrapper line{
+ stroke: ${options3["cScaleLabel" + i2]} ;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
+ }
+ return sections5;
+ }, "genSections");
+ getStyles13 = /* @__PURE__ */ __name((options3) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${genSections(options3)}
+ .section-root rect, .section-root path, .section-root circle {
+ fill: ${options3.git0};
+ }
+ .section-root text {
+ fill: ${options3.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .eventWrapper {
+ filter: brightness(120%);
+ }
+`, "getStyles");
+ styles_default12 = getStyles13;
+ }
+ });
+
+ // src/diagrams/timeline/timeline-definition.ts
+ var timeline_definition_exports = {};
+ __export(timeline_definition_exports, {
+ diagram: () => diagram18
+ });
+ var diagram18;
+ var init_timeline_definition = __esm({
+ "src/diagrams/timeline/timeline-definition.ts"() {
+ "use strict";
+ init_timeline();
+ init_timelineDb();
+ init_timelineRenderer();
+ init_styles12();
+ diagram18 = {
+ db: timelineDb_exports,
+ renderer: timelineRenderer_default,
+ parser: timeline_default,
+ styles: styles_default12
+ };
+ }
+ });
+
+ // src/diagrams/mindmap/parser/mindmap.jison
+ var parser17, mindmap_default;
+ var init_mindmap = __esm({
+ "src/diagrams/mindmap/parser/mindmap.jison"() {
+ "use strict";
+ parser17 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" },
+ productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 6:
+ case 7:
+ return yy;
+ break;
+ case 8:
+ yy.getLogger().trace("Stop NL ");
+ break;
+ case 9:
+ yy.getLogger().trace("Stop EOF ");
+ break;
+ case 11:
+ yy.getLogger().trace("Stop NL2 ");
+ break;
+ case 12:
+ yy.getLogger().trace("Stop EOF2 ");
+ break;
+ case 15:
+ yy.getLogger().info("Node: ", $$[$0].id);
+ yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 16:
+ yy.getLogger().trace("Icon: ", $$[$0]);
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 17:
+ case 21:
+ yy.decorateNode({ class: $$[$0] });
+ break;
+ case 18:
+ yy.getLogger().trace("SPACELIST");
+ break;
+ case 19:
+ yy.getLogger().trace("Node: ", $$[$0].id);
+ yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);
+ break;
+ case 20:
+ yy.decorateNode({ icon: $$[$0] });
+ break;
+ case 25:
+ yy.getLogger().trace("node found ..", $$[$0 - 2]);
+ this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
+ case 26:
+ this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };
+ break;
+ case 27:
+ yy.getLogger().trace("node found ..", $$[$0 - 3]);
+ this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
+ break;
}
- function hUc(a, b) {
- var c2, d, e, f2, g;
- g = BD(vNb(b, (JTc(), FTc)), 425);
- for (f2 = Jsb(b.b, 0); f2.b != f2.d.c; ) {
- e = BD(Xsb(f2), 86);
- if (a.b[e.g] == 0) {
- switch (g.g) {
- case 0:
- iUc(a, e);
- break;
- case 1:
- gUc(a, e);
- }
- a.b[e.g] = 2;
- }
- }
- for (d = Jsb(a.a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 188);
- ze(c2.b.d, c2, true);
- ze(c2.c.b, c2, true);
- }
- yNb(b, (mTc(), gTc), a.a);
+ }, "anonymous"),
+ table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o2($V7, [2, 3]), { 1: [2, 2] }, o2($V7, [2, 4]), o2($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o2($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o2($Vb, [2, 18]), o2($Vb, [2, 19]), o2($Vb, [2, 20]), o2($Vb, [2, 21]), o2($Vb, [2, 23]), o2($Vb, [2, 24]), o2($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o2($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o2($Vf, [2, 8]), o2($Vf, [2, 9]), o2($Vf, [2, 10]), o2($Vb, [2, 15]), o2($Vb, [2, 16]), o2($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o2($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o2($Vf, [2, 11]), o2($Vf, [2, 12]), { 21: [1, 37] }, o2($Vb, [2, 25]), o2($Vb, [2, 27])],
+ defaultActions: { 2: [2, 1], 6: [2, 2] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- function S6d(a, b) {
- Q6d();
- var c2, d, e, f2;
- if (!b) {
- return P6d;
- } else if (b == (Q8d(), N8d) || (b == v8d || b == t8d || b == u8d) && a != s8d) {
- return new Z6d(a, b);
- } else {
- d = BD(b, 677);
- c2 = d.pk();
- if (!c2) {
- a2d(q1d((O6d(), M6d), b));
- c2 = d.pk();
- }
- f2 = (!c2.i && (c2.i = new Lqb()), c2.i);
- e = BD(Wd(irb(f2.f, a)), 1942);
- !e && Rhb(f2, a, e = new Z6d(a, b));
- return e;
- }
- }
- function Tbc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- i3 = BD(vNb(a, (wtc(), $sc)), 11);
- j = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).a;
- k = a.i.n.b;
- c2 = k_b(a.e);
- for (e = c2, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- RZb(d, i3);
- Fsb(d.a, new f7c(j, k));
- if (b) {
- h = BD(vNb(d, (Nyc(), jxc)), 74);
- if (!h) {
- h = new s7c();
- yNb(d, jxc, h);
- }
- Dsb(h, new f7c(j, k));
- }
- }
- }
- function Ubc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- e = BD(vNb(a, (wtc(), $sc)), 11);
- j = l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).a;
- k = a.i.n.b;
- c2 = k_b(a.g);
- for (g = c2, h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- QZb(f2, e);
- Esb(f2.a, new f7c(j, k));
- if (b) {
- d = BD(vNb(f2, (Nyc(), jxc)), 74);
- if (!d) {
- d = new s7c();
- yNb(f2, jxc, d);
- }
- Dsb(d, new f7c(j, k));
- }
- }
- }
- function TFc(a, b) {
- var c2, d, e, f2, g, h;
- a.b = new Rkb();
- a.d = BD(vNb(b, (wtc(), jtc)), 230);
- a.e = Dub(a.d);
- f2 = new Psb();
- e = Ou(OC(GC(KQ, 1), cne, 37, 0, [b]));
- g = 0;
- while (g < e.c.length) {
- d = (tCb(g, e.c.length), BD(e.c[g], 37));
- d.p = g++;
- c2 = new fFc(d, a.a, a.b);
- Gkb(e, c2.b);
- Ekb(a.b, c2);
- c2.s && (h = Jsb(f2, 0), Vsb(h, c2));
- }
- a.c = new Tqb();
- return f2;
- }
- function HJb(a, b) {
- var c2, d, e, f2, g, h;
- for (g = BD(BD(Qc(a.r, b), 21), 84).Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 111);
- c2 = f2.c ? ZHb(f2.c) : 0;
- if (c2 > 0) {
- if (f2.a) {
- h = f2.b.rf().a;
- if (c2 > h) {
- e = (c2 - h) / 2;
- f2.d.b = e;
- f2.d.c = e;
- }
- } else {
- f2.d.c = a.s + c2;
- }
- } else if (tcd(a.u)) {
- d = sfd(f2.b);
- d.c < 0 && (f2.d.b = -d.c);
- d.c + d.b > f2.b.rf().a && (f2.d.c = d.c + d.b - f2.b.rf().a);
- }
- }
- }
- function Eec(a, b) {
- var c2, d, e, f2;
- Odd(b, "Semi-Interactive Crossing Minimization Processor", 1);
- c2 = false;
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- f2 = TAb(VAb(JAb(JAb(new YAb(null, new Kub(d.a, 16)), new Jec()), new Lec()), new Nec()), new Rec());
- c2 = c2 | f2.a != null;
- }
- c2 && yNb(a, (wtc(), Rsc), (Bcb(), true));
- Qdd(b);
- }
- function sRc(a, b, c2) {
- var d, e, f2, g, h;
- e = c2;
- !e && (e = new Zdd());
- Odd(e, "Layout", a.a.c.length);
- if (Ccb(DD(vNb(b, (JTc(), vTc))))) {
- Zfb();
- for (d = 0; d < a.a.c.length; d++) {
- h = (d < 10 ? "0" : "") + d++;
- " Slot " + h + ": " + hdb(rb(BD(Ikb(a.a, d), 51)));
- }
- }
- for (g = new olb(a.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 51);
- f2.pf(b, Udd(e, 1));
- }
- Qdd(e);
- }
- function yMb(a) {
- var b, c2;
- b = BD(a.a, 19).a;
- c2 = BD(a.b, 19).a;
- if (b >= 0) {
- if (b == c2) {
- return new vgd(meb(-b - 1), meb(-b - 1));
- }
- if (b == -c2) {
- return new vgd(meb(-b), meb(c2 + 1));
- }
- }
- if ($wnd.Math.abs(b) > $wnd.Math.abs(c2)) {
- if (b < 0) {
- return new vgd(meb(-b), meb(c2));
- }
- return new vgd(meb(-b), meb(c2 + 1));
- }
- return new vgd(meb(b + 1), meb(c2));
- }
- function q5b(a) {
- var b, c2;
- c2 = BD(vNb(a, (Nyc(), mxc)), 163);
- b = BD(vNb(a, (wtc(), Osc)), 303);
- if (c2 == (Ctc(), ytc)) {
- yNb(a, mxc, Btc);
- yNb(a, Osc, (esc(), dsc));
- } else if (c2 == Atc) {
- yNb(a, mxc, Btc);
- yNb(a, Osc, (esc(), bsc));
- } else if (b == (esc(), dsc)) {
- yNb(a, mxc, ytc);
- yNb(a, Osc, csc);
- } else if (b == bsc) {
- yNb(a, mxc, Atc);
- yNb(a, Osc, csc);
- }
- }
- function FNc() {
- FNc = ccb;
- DNc = new RNc();
- zNc = e3c(new j3c(), (qUb(), nUb), (S8b(), o8b));
- CNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
- ENc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
- ANc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
- BNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
- }
- function hQc() {
- hQc = ccb;
- cQc = e3c(c3c(new j3c(), (qUb(), pUb), (S8b(), c8b)), nUb, o8b);
- gQc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
- dQc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
- fQc = e3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
- eQc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
- }
- function GNc(a, b, c2, d, e) {
- var f2, g;
- if ((!OZb(b) && b.c.i.c == b.d.i.c || !T6c(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])), c2)) && !OZb(b)) {
- b.c == e ? St(b.a, 0, new g7c(c2)) : Dsb(b.a, new g7c(c2));
- if (d && !Rqb(a.a, c2)) {
- g = BD(vNb(b, (Nyc(), jxc)), 74);
- if (!g) {
- g = new s7c();
- yNb(b, jxc, g);
- }
- f2 = new g7c(c2);
- Gsb(g, f2, g.c.b, g.c);
- Qqb(a.a, f2);
- }
- }
- }
- function Qac(a) {
- var b, c2;
- for (c2 = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- if (b.c.i.k != (j0b(), f0b)) {
- throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."));
- }
- }
- }
- function vjd(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- e = aeb(a.Db & 254);
- if (e == 0) {
- a.Eb = c2;
- } else {
- if (e == 1) {
- h = KC(SI, Uhe, 1, 2, 5, 1);
- f2 = zjd(a, b);
- if (f2 == 0) {
- h[0] = c2;
- h[1] = a.Eb;
- } else {
- h[0] = a.Eb;
- h[1] = c2;
- }
- } else {
- h = KC(SI, Uhe, 1, e + 1, 5, 1);
- g = CD(a.Eb);
- for (d = 2, i3 = 0, j = 0; d <= 128; d <<= 1) {
- d == b ? h[j++] = c2 : (a.Db & d) != 0 && (h[j++] = g[i3++]);
- }
- }
- a.Eb = h;
- }
- a.Db |= b;
- }
- function ENb(a, b, c2) {
- var d, e, f2, g;
- this.b = new Rkb();
- e = 0;
- d = 0;
- for (g = new olb(a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 167);
- c2 && rMb(f2);
- Ekb(this.b, f2);
- e += f2.o;
- d += f2.p;
- }
- if (this.b.c.length > 0) {
- f2 = BD(Ikb(this.b, 0), 167);
- e += f2.o;
- d += f2.p;
- }
- e *= 2;
- d *= 2;
- b > 1 ? e = QD($wnd.Math.ceil(e * b)) : d = QD($wnd.Math.ceil(d / b));
- this.a = new pNb(e, d);
- }
- function Igc(a, b, c2, d, e, f2) {
- var g, h, i3, j, k, l, m, n, o2, p, q, r;
- k = d;
- if (b.j && b.o) {
- n = BD(Ohb(a.f, b.A), 57);
- p = n.d.c + n.d.b;
- --k;
- } else {
- p = b.a.c + b.a.b;
- }
- l = e;
- if (c2.q && c2.o) {
- n = BD(Ohb(a.f, c2.C), 57);
- j = n.d.c;
- ++l;
- } else {
- j = c2.a.c;
- }
- q = j - p;
- i3 = $wnd.Math.max(2, l - k);
- h = q / i3;
- o2 = p + h;
- for (m = k; m < l; ++m) {
- g = BD(f2.Xb(m), 128);
- r = g.a.b;
- g.a.c = o2 - r / 2;
- o2 += h;
- }
- }
- function UHc(a, b, c2, d, e, f2) {
- var g, h, i3, j, k, l;
- j = c2.c.length;
- f2 && (a.c = KC(WD, oje, 25, b.length, 15, 1));
- for (g = e ? 0 : b.length - 1; e ? g < b.length : g >= 0; g += e ? 1 : -1) {
- h = b[g];
- i3 = d == (Ucd(), zcd) ? e ? V_b(h, d) : Su(V_b(h, d)) : e ? Su(V_b(h, d)) : V_b(h, d);
- f2 && (a.c[h.p] = i3.gc());
- for (l = i3.Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 11);
- a.d[k.p] = j++;
- }
- Gkb(c2, i3);
- }
- }
- function aQc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- f2 = Edb(ED(a.b.Kc().Pb()));
- j = Edb(ED(Pq(b.b)));
- d = Y6c(R6c(a.a), j - c2);
- e = Y6c(R6c(b.a), c2 - f2);
- k = P6c(d, e);
- Y6c(k, 1 / (j - f2));
- this.a = k;
- this.b = new Rkb();
- h = true;
- g = a.b.Kc();
- g.Pb();
- while (g.Ob()) {
- i3 = Edb(ED(g.Pb()));
- if (h && i3 - c2 > Oqe) {
- this.b.Fc(c2);
- h = false;
- }
- this.b.Fc(i3);
- }
- h && this.b.Fc(c2);
- }
- function vGb(a) {
- var b, c2, d, e;
- yGb(a, a.n);
- if (a.d.c.length > 0) {
- Blb(a.c);
- while (GGb(a, BD(mlb(new olb(a.e.a)), 121)) < a.e.a.c.length) {
- b = AGb(a);
- e = b.e.e - b.d.e - b.a;
- b.e.j && (e = -e);
- for (d = new olb(a.e.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 121);
- c2.j && (c2.e += e);
- }
- Blb(a.c);
- }
- Blb(a.c);
- DGb(a, BD(mlb(new olb(a.e.a)), 121));
- rGb(a);
- }
- }
- function rkc(a, b) {
- var c2, d, e, f2, g;
- for (e = BD(Qc(a.a, (Xjc(), Tjc)), 15).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 101);
- c2 = BD(Ikb(d.j, 0), 113).d.j;
- f2 = new Tkb(d.j);
- Okb(f2, new Xkc());
- switch (b.g) {
- case 1:
- jkc(a, f2, c2, (Fkc(), Dkc), 1);
- break;
- case 0:
- g = lkc(f2);
- jkc(a, new Jib(f2, 0, g), c2, (Fkc(), Dkc), 0);
- jkc(a, new Jib(f2, g, f2.c.length), c2, Dkc, 1);
- }
- }
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- function c2c(a, b) {
- Y1c();
- var c2, d;
- c2 = j4c(n4c(), b.tg());
- if (c2) {
- d = c2.j;
- if (JD(a, 239)) {
- return Zod(BD(a, 33)) ? uqb(d, (N5c(), K5c)) || uqb(d, L5c) : uqb(d, (N5c(), K5c));
- } else if (JD(a, 352)) {
- return uqb(d, (N5c(), I5c));
- } else if (JD(a, 186)) {
- return uqb(d, (N5c(), M5c));
- } else if (JD(a, 354)) {
- return uqb(d, (N5c(), J5c));
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
}
+ token2 = self2.symbols_[token2] || token2;
}
- return true;
+ return token2;
}
- function c3d(a, b, c2) {
- var d, e, f2, g, h, i3;
- e = c2;
- f2 = e.ak();
- if (T6d(a.e, f2)) {
- if (f2.hi()) {
- d = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- h = d[g];
- if (pb(h, e) && g != b) {
- throw vbb(new Wdb(kue));
- }
- }
- }
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
} else {
- i3 = S6d(a.e.Tg(), f2);
- d = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- h = d[g];
- if (i3.rl(h.ak()) && g != b) {
- throw vbb(new Wdb(Hwe));
- }
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
}
+ action = table[state5] && table[state5][symbol];
}
- return BD(Gtd(a, b, c2), 72);
- }
- function Sy(d, b) {
- if (b instanceof Object) {
- try {
- b.__java$exception = d;
- if (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && $doc.documentMode < 9) {
- return;
- }
- var c2 = d;
- Object.defineProperties(b, { cause: { get: function() {
- var a = c2.Zd();
- return a && a.Xd();
- } }, suppressed: { get: function() {
- return c2.Yd();
- } } });
- } catch (a) {
- }
- }
- }
- function lhb(a, b) {
- var c2, d, e, f2, g;
- d = b >> 5;
- b &= 31;
- if (d >= a.d) {
- return a.e < 0 ? (Hgb(), Bgb) : (Hgb(), Ggb);
- }
- f2 = a.d - d;
- e = KC(WD, oje, 25, f2 + 1, 15, 1);
- mhb(e, f2, a.a, d, b);
- if (a.e < 0) {
- for (c2 = 0; c2 < d && a.a[c2] == 0; c2++)
- ;
- if (c2 < d || b > 0 && a.a[c2] << 32 - b != 0) {
- for (c2 = 0; c2 < f2 && e[c2] == -1; c2++) {
- e[c2] = 0;
- }
- c2 == f2 && ++f2;
- ++e[c2];
- }
- }
- g = new Vgb(a.e, f2, e);
- Jgb(g);
- return g;
- }
- function UPb(a) {
- var b, c2, d, e;
- e = mpd(a);
- c2 = new kQb(e);
- d = new mQb(e);
- b = new Rkb();
- Gkb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d));
- Gkb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e));
- return BD(GAb(NAb(JAb(new YAb(null, new Kub(b, 16)), c2), d), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
- }
- function p2d(a, b, c2, d) {
- var e, f2, g, h, i3;
- h = (Q6d(), BD(b, 66).Oj());
- if (T6d(a.e, b)) {
- if (b.hi() && F2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
- throw vbb(new Wdb(kue));
- }
- } else {
- i3 = S6d(a.e.Tg(), b);
- e = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (i3.rl(f2.ak())) {
- throw vbb(new Wdb(Hwe));
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
}
}
- }
- vtd(a, I2d(a, b, c2), h ? BD(d, 72) : R6d(b, d));
- }
- function T6d(a, b) {
- Q6d();
- var c2, d, e;
- if (b.$j()) {
- return true;
- } else if (b.Zj() == -2) {
- if (b == (m8d(), k8d) || b == h8d || b == i8d || b == j8d) {
- return true;
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
} else {
- e = a.Tg();
- if (bLd(e, b) >= 0) {
- return false;
- } else {
- c2 = e1d((O6d(), M6d), e, b);
- if (!c2) {
- return true;
- } else {
- d = c2.Zj();
- return (d > 1 || d == -1) && $1d(q1d(M6d, c2)) != 3;
- }
- }
- }
- } else {
- return false;
- }
- }
- function R1b(a, b, c2, d) {
- var e, f2, g, h, i3;
- h = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
- i3 = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
- if (Xod(h) == Xod(i3)) {
- return null;
- }
- if (ntd(i3, h)) {
- return null;
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
}
- g = Mld(b);
- if (g == c2) {
- return d;
- } else {
- f2 = BD(Ohb(a.a, g), 10);
- if (f2) {
- e = f2.e;
- if (e) {
- return e;
- }
- }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
}
- return null;
- }
- function Cac(a, b) {
- var c2;
- c2 = BD(vNb(a, (Nyc(), Rwc)), 276);
- Odd(b, "Label side selection (" + c2 + ")", 1);
- switch (c2.g) {
- case 0:
- Dac(a, (rbd(), nbd));
- break;
+ switch (action[0]) {
case 1:
- Dac(a, (rbd(), obd));
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
break;
case 2:
- Bac(a, (rbd(), nbd));
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
break;
case 3:
- Bac(a, (rbd(), obd));
- break;
- case 4:
- Eac(a, (rbd(), nbd));
- break;
- case 5:
- Eac(a, (rbd(), obd));
+ return true;
}
- Qdd(b);
}
- function bGc(a, b, c2) {
- var d, e, f2, g, h, i3;
- d = RFc(c2, a.length);
- g = a[d];
- if (g[0].k != (j0b(), e0b)) {
- return;
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- f2 = SFc(c2, g.length);
- i3 = b.j;
- for (e = 0; e < i3.c.length; e++) {
- h = (tCb(e, i3.c.length), BD(i3.c[e], 11));
- if ((c2 ? h.j == (Ucd(), zcd) : h.j == (Ucd(), Tcd)) && Ccb(DD(vNb(h, (wtc(), Nsc))))) {
- Nkb(i3, e, BD(vNb(g[f2], (wtc(), $sc)), 11));
- f2 += c2 ? 1 : -1;
- }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- }
- function rQc(a, b) {
- var c2, d, e, f2, g;
- g = new Rkb();
- c2 = b;
- do {
- f2 = BD(Ohb(a.b, c2), 128);
- f2.B = c2.c;
- f2.D = c2.d;
- g.c[g.c.length] = f2;
- c2 = BD(Ohb(a.k, c2), 17);
- } while (c2);
- d = (tCb(0, g.c.length), BD(g.c[0], 128));
- d.j = true;
- d.A = BD(d.d.a.ec().Kc().Pb(), 17).c.i;
- e = BD(Ikb(g, g.c.length - 1), 128);
- e.q = true;
- e.C = BD(e.d.a.ec().Kc().Pb(), 17).d.i;
- return g;
- }
- function $wd(a) {
- if (a.g == null) {
- switch (a.p) {
- case 0:
- a.g = Swd(a) ? (Bcb(), Acb) : (Bcb(), zcb);
- break;
- case 1:
- a.g = Scb(Twd(a));
- break;
- case 2:
- a.g = bdb(Uwd(a));
- break;
- case 3:
- a.g = Vwd(a);
- break;
- case 4:
- a.g = new Ndb(Wwd(a));
- break;
- case 6:
- a.g = Aeb(Ywd(a));
- break;
- case 5:
- a.g = meb(Xwd(a));
- break;
- case 7:
- a.g = Web(Zwd(a));
- }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- return a.g;
- }
- function hxd(a) {
- if (a.n == null) {
- switch (a.p) {
- case 0:
- a.n = _wd(a) ? (Bcb(), Acb) : (Bcb(), zcb);
- break;
- case 1:
- a.n = Scb(axd(a));
- break;
- case 2:
- a.n = bdb(bxd(a));
- break;
- case 3:
- a.n = cxd(a);
- break;
- case 4:
- a.n = new Ndb(dxd(a));
- break;
- case 6:
- a.n = Aeb(fxd(a));
- break;
- case 5:
- a.n = meb(exd(a));
- break;
- case 7:
- a.n = Web(gxd(a));
- }
- }
- return a.n;
- }
- function QDb(a) {
- var b, c2, d, e, f2, g, h;
- for (f2 = new olb(a.a.a); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 307);
- d.g = 0;
- d.i = 0;
- d.e.a.$b();
- }
- for (e = new olb(a.a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 307);
- for (c2 = d.a.a.ec().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 57);
- for (h = b.c.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 57);
- if (g.a != d) {
- Qqb(d.e, g);
- ++g.a.g;
- ++g.a.i;
- }
- }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
}
}
- }
- function gOb(a, b) {
- var c2, d, e, f2, g, h;
- h = Axb(a.a, b.b);
- if (!h) {
- throw vbb(new Zdb("Invalid hitboxes for scanline overlap calculation."));
- }
- g = false;
- for (f2 = (d = new Ywb(new cxb(new Gjb(a.a.a).a).b), new Njb(d)); sib(f2.a.a); ) {
- e = (c2 = Wwb(f2.a), BD(c2.cd(), 65));
- if (bOb(b.b, e)) {
- T$c(a.b.a, b.b, e);
- g = true;
- } else {
- if (g) {
- break;
- }
- }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
}
- }
- function G5b(a) {
- var b, c2, d, e, f2;
- e = BD(vNb(a, (Nyc(), Fxc)), 21);
- f2 = BD(vNb(a, Ixc), 21);
- c2 = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
- b = new g7c(c2);
- if (e.Hc((tdd(), pdd))) {
- d = BD(vNb(a, Hxc), 8);
- if (f2.Hc((Idd(), Bdd))) {
- d.a <= 0 && (d.a = 20);
- d.b <= 0 && (d.b = 20);
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
}
- b.a = $wnd.Math.max(c2.a, d.a);
- b.b = $wnd.Math.max(c2.b, d.b);
+ return false;
}
- H5b(a, c2, b);
- }
- function toc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- e = b ? new Coc() : new Eoc();
- f2 = false;
- do {
- f2 = false;
- j = b ? Su(a.b) : a.b;
- for (i3 = j.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 29);
- m = Mu(h.a);
- b || new ov(m);
- for (l = new olb(m); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 10);
- if (e.Mb(k)) {
- d = k;
- c2 = BD(vNb(k, (wtc(), usc)), 305);
- g = b ? c2.b : c2.k;
- f2 = roc(d, g, b, false);
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
}
+ } else if (!this.options.flex) {
+ break;
}
}
- } while (f2);
- }
- function WCc(a, b, c2) {
- var d, e, f2, g, h;
- Odd(c2, "Longest path layering", 1);
- a.a = b;
- h = a.a.a;
- a.b = KC(WD, oje, 25, h.c.length, 15, 1);
- d = 0;
- for (g = new olb(h); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 10);
- e.p = d;
- a.b[d] = -1;
- ++d;
- }
- for (f2 = new olb(h); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- YCc(a, e);
- }
- h.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.a = null;
- a.b = null;
- Qdd(c2);
- }
- function QVb(a, b) {
- var c2, d, e;
- b.a ? (Axb(a.b, b.b), a.a[b.b.i] = BD(Exb(a.b, b.b), 81), c2 = BD(Dxb(a.b, b.b), 81), !!c2 && (a.a[c2.i] = b.b), void 0) : (d = BD(Exb(a.b, b.b), 81), !!d && d == a.a[b.b.i] && !!d.d && d.d != b.b.d && d.f.Fc(b.b), e = BD(Dxb(a.b, b.b), 81), !!e && a.a[e.i] == b.b && !!e.d && e.d != b.b.d && b.b.f.Fc(e), Fxb(a.b, b.b), void 0);
- }
- function zbc(a, b) {
- var c2, d, e, f2, g, h;
- f2 = a.d;
- h = Edb(ED(vNb(a, (Nyc(), Zwc))));
- if (h < 0) {
- h = 0;
- yNb(a, Zwc, h);
- }
- b.o.b = h;
- g = $wnd.Math.floor(h / 2);
- d = new H0b();
- G0b(d, (Ucd(), Tcd));
- F0b(d, b);
- d.n.b = g;
- e = new H0b();
- G0b(e, zcd);
- F0b(e, b);
- e.n.b = g;
- RZb(a, d);
- c2 = new UZb();
- tNb(c2, a);
- yNb(c2, jxc, null);
- QZb(c2, e);
- RZb(c2, f2);
- ybc(b, a, c2);
- wbc(a, c2);
- return c2;
- }
- function uNc(a) {
- var b, c2;
- c2 = BD(vNb(a, (wtc(), Ksc)), 21);
- b = new j3c();
- if (c2.Hc((Orc(), Irc))) {
- d3c(b, oNc);
- d3c(b, qNc);
- }
- if (c2.Hc(Krc) || Ccb(DD(vNb(a, (Nyc(), $wc))))) {
- d3c(b, qNc);
- c2.Hc(Lrc) && d3c(b, rNc);
- }
- c2.Hc(Hrc) && d3c(b, nNc);
- c2.Hc(Nrc) && d3c(b, sNc);
- c2.Hc(Jrc) && d3c(b, pNc);
- c2.Hc(Erc) && d3c(b, lNc);
- c2.Hc(Grc) && d3c(b, mNc);
- return b;
- }
- function Ihb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- d = a.d;
- f2 = b.d;
- h = d + f2;
- i3 = a.e != b.e ? -1 : 1;
- if (h == 2) {
- k = Ibb(xbb(a.a[0], Yje), xbb(b.a[0], Yje));
- m = Tbb(k);
- l = Tbb(Pbb(k, 32));
- return l == 0 ? new Ugb(i3, m) : new Vgb(i3, 2, OC(GC(WD, 1), oje, 25, 15, [m, l]));
- }
- c2 = a.a;
- e = b.a;
- g = KC(WD, oje, 25, h, 15, 1);
- Fhb(c2, d, e, f2, g);
- j = new Vgb(i3, h, g);
- Jgb(j);
- return j;
- }
- function Gwb(a, b, c2, d) {
- var e, f2;
- if (!b) {
- return c2;
- } else {
- e = a.a.ue(c2.d, b.d);
- if (e == 0) {
- d.d = ijb(b, c2.e);
- d.b = true;
- return b;
- }
- f2 = e < 0 ? 0 : 1;
- b.a[f2] = Gwb(a, b.a[f2], c2, d);
- if (Hwb(b.a[f2])) {
- if (Hwb(b.a[1 - f2])) {
- b.b = true;
- b.a[0].b = false;
- b.a[1].b = false;
- } else {
- Hwb(b.a[f2].a[f2]) ? b = Owb(b, 1 - f2) : Hwb(b.a[f2].a[1 - f2]) && (b = Nwb(b, 1 - f2));
- }
- }
- }
- return b;
- }
- function wHb(a, b, c2) {
- var d, e, f2, g;
- e = a.i;
- d = a.n;
- vHb(a, (gHb(), dHb), e.c + d.b, c2);
- vHb(a, fHb, e.c + e.b - d.c - c2[2], c2);
- g = e.b - d.b - d.c;
- if (c2[0] > 0) {
- c2[0] += a.d;
- g -= c2[0];
- }
- if (c2[2] > 0) {
- c2[2] += a.d;
- g -= c2[2];
- }
- f2 = $wnd.Math.max(0, g);
- c2[1] = $wnd.Math.max(c2[1], g);
- vHb(a, eHb, e.c + d.b + c2[0] - (c2[1] - g) / 2, c2);
- if (b == eHb) {
- a.c.b = f2;
- a.c.c = e.c + d.b + (f2 - g) / 2;
- }
- }
- function AYb() {
- this.c = KC(UD, Vje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
- this.b = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1);
- this.a = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1);
- zlb(this.c, Pje);
- zlb(this.b, Qje);
- zlb(this.a, Qje);
- }
- function Ufe(a, b, c2) {
- var d, e, f2, g;
- if (b <= c2) {
- e = b;
- f2 = c2;
- } else {
- e = c2;
- f2 = b;
- }
- d = 0;
- if (a.b == null) {
- a.b = KC(WD, oje, 25, 2, 15, 1);
- a.b[0] = e;
- a.b[1] = f2;
- a.c = true;
- } else {
- d = a.b.length;
- if (a.b[d - 1] + 1 == e) {
- a.b[d - 1] = f2;
- return;
- }
- g = KC(WD, oje, 25, d + 2, 15, 1);
- $fb(a.b, 0, g, 0, d);
- a.b = g;
- a.b[d - 1] >= e && (a.c = false, a.a = false);
- a.b[d++] = e;
- a.b[d] = f2;
- a.c || Yfe(a);
- }
- }
- function inc(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- j = b.d;
- a.a = new Skb(j.c.length);
- a.c = new Lqb();
- for (h = new olb(j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 101);
- f2 = new uOc(null);
- Ekb(a.a, f2);
- Rhb(a.c, g, f2);
- }
- a.b = new Lqb();
- gnc(a, b);
- for (d = 0; d < j.c.length - 1; d++) {
- i3 = BD(Ikb(b.d, d), 101);
- for (e = d + 1; e < j.c.length; e++) {
- jnc(a, i3, BD(Ikb(b.d, e), 101), c2);
- }
- }
- }
- function ySc(a, b, c2) {
- var d, e, f2, g, h, i3;
- if (!Qq(b)) {
- i3 = Udd(c2, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0);
- Odd(i3, Xqe, 1);
- h = new BSc();
- g = 0;
- for (f2 = b.Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 86);
- h = pl(OC(GC(KI, 1), Uhe, 20, 0, [h, new ZRc(d)]));
- g < d.f.b && (g = d.f.b);
- }
- for (e = b.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 86);
- yNb(d, (mTc(), bTc), g);
- }
- Qdd(i3);
- ySc(a, h, c2);
- }
- }
- function bJc(a, b) {
- var c2, d, e, f2, g, h, i3;
- c2 = Qje;
- h = (j0b(), h0b);
- for (e = new olb(b.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- f2 = d.k;
- if (f2 != h0b) {
- g = ED(vNb(d, (wtc(), atc)));
- if (g == null) {
- c2 = $wnd.Math.max(c2, 0);
- d.n.b = c2 + iBc(a.a, f2, h);
- } else {
- d.n.b = (uCb(g), g);
- }
- }
- i3 = iBc(a.a, f2, h);
- d.n.b < c2 + i3 + d.d.d && (d.n.b = c2 + i3 + d.d.d);
- c2 = d.n.b + d.o.b + d.d.a;
- h = f2;
- }
- }
- function uQb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- f2 = itd(b, false, false);
- j = ofd(f2);
- l = Edb(ED(hkd(b, (CPb(), vPb))));
- e = sQb(j, l + a.a);
- k = new XOb(e);
- tNb(k, b);
- Rhb(a.b, b, k);
- c2.c[c2.c.length] = k;
- i3 = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n);
- for (h = new Fyd(i3); h.e != h.i.gc(); ) {
- g = BD(Dyd(h), 137);
- d = wQb(a, g, true, 0, 0);
- c2.c[c2.c.length] = d;
- }
- return k;
- }
- function JVc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k;
- !!a.d && a.d.lg(e);
- f2 = BD(e.Xb(0), 33);
- if (HVc(a, c2, f2, false)) {
- return true;
- }
- g = BD(e.Xb(e.gc() - 1), 33);
- if (HVc(a, d, g, true)) {
- return true;
}
- if (CVc(a, e)) {
- return true;
- }
- for (k = e.Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 33);
- for (i3 = b.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 33);
- if (BVc(a, j, h)) {
- return true;
- }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
}
+ return false;
}
- return false;
- }
- function qid(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- m = b.c.length;
- l = (j = a.Yg(c2), BD(j >= 0 ? a._g(j, false, true) : sid(a, c2, false), 58));
- n:
- for (f2 = l.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 56);
- for (k = 0; k < m; ++k) {
- g = (tCb(k, b.c.length), BD(b.c[k], 72));
- i3 = g.dd();
- h = g.ak();
- d = e.bh(h, false);
- if (i3 == null ? d != null : !pb(i3, d)) {
- continue n;
- }
- }
- return e;
- }
- return null;
- }
- function V6b(a, b, c2, d) {
- var e, f2, g, h;
- e = BD(Y_b(b, (Ucd(), Tcd)).Kc().Pb(), 11);
- f2 = BD(Y_b(b, zcd).Kc().Pb(), 11);
- for (h = new olb(a.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- while (g.e.c.length != 0) {
- RZb(BD(Ikb(g.e, 0), 17), e);
- }
- while (g.g.c.length != 0) {
- QZb(BD(Ikb(g.g, 0), 17), f2);
- }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- c2 || yNb(b, (wtc(), Vsc), null);
- d || yNb(b, (wtc(), Wsc), null);
- }
- function itd(a, b, c2) {
- var d, e;
- if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
- return etd(a);
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
} else {
- d = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
- if (b) {
- Uxd((!d.a && (d.a = new xMd(y2, d, 5)), d.a));
- omd(d, 0);
- pmd(d, 0);
- hmd(d, 0);
- imd(d, 0);
- }
- if (c2) {
- e = (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a);
- while (e.i > 1) {
- Xxd(e, e.i - 1);
- }
- }
- return d;
- }
- }
- function Z2b(a, b) {
- var c2, d, e, f2, g, h, i3;
- Odd(b, "Comment post-processing", 1);
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- d = new Rkb();
- for (h = new olb(e.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- i3 = BD(vNb(g, (wtc(), vtc)), 15);
- c2 = BD(vNb(g, tsc), 15);
- if (!!i3 || !!c2) {
- $2b(g, i3, c2);
- !!i3 && Gkb(d, i3);
- !!c2 && Gkb(d, c2);
- }
- }
- Gkb(e.a, d);
- }
- Qdd(b);
- }
- function Eac(a, b) {
- var c2, d, e, f2, g, h, i3;
- c2 = new jkb();
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- i3 = true;
- d = 0;
- for (h = new olb(e.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- switch (g.k.g) {
- case 4:
- ++d;
- case 1:
- Xjb(c2, g);
- break;
- case 0:
- Gac(g, b);
- default:
- c2.b == c2.c || Fac(c2, d, i3, false, b);
- i3 = false;
- d = 0;
- }
- }
- c2.b == c2.c || Fac(c2, d, i3, true, b);
- }
- }
- function Ebc(a, b) {
- var c2, d, e, f2, g, h, i3;
- e = new Rkb();
- for (c2 = 0; c2 <= a.i; c2++) {
- d = new H1b(b);
- d.p = a.i - c2;
- e.c[e.c.length] = d;
- }
- for (h = new olb(a.o); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- $_b(g, BD(Ikb(e, a.i - a.f[g.p]), 29));
- }
- f2 = new olb(e);
- while (f2.a < f2.c.c.length) {
- i3 = BD(mlb(f2), 29);
- i3.a.c.length == 0 && nlb(f2);
- }
- b.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- Gkb(b.b, e);
- }
- function KHc(a, b) {
- var c2, d, e, f2, g, h;
- c2 = 0;
- for (h = new olb(b); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- AHc(a.b, a.d[g.p]);
- for (e = new b1b(g.b); llb(e.a) || llb(e.b); ) {
- d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
- f2 = aIc(a, g == d.c ? d.d : d.c);
- if (f2 > a.d[g.p]) {
- c2 += zHc(a.b, f2);
- Wjb(a.a, meb(f2));
- }
- }
- while (!akb(a.a)) {
- xHc(a.b, BD(fkb(a.a), 19).a);
- }
- }
- return c2;
- }
- function o2c(a, b, c2) {
- var d, e, f2, g;
- f2 = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
- for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 33);
- (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i == 0 || (f2 += o2c(a, d, false));
- }
- if (c2) {
- g = Xod(b);
- while (g) {
- f2 += (!g.a && (g.a = new cUd(E2, g, 10, 11)), g.a).i;
- g = Xod(g);
- }
- }
- return f2;
- }
- function Xxd(a, b) {
- var c2, d, e, f2;
- if (a.ej()) {
- d = null;
- e = a.fj();
- a.ij() && (d = a.kj(a.pi(b), null));
- c2 = a.Zi(4, f2 = tud(a, b), null, b, e);
- if (a.bj() && f2 != null) {
- d = a.dj(f2, d);
- if (!d) {
- a.$i(c2);
- } else {
- d.Ei(c2);
- d.Fi();
- }
- } else {
- if (!d) {
- a.$i(c2);
- } else {
- d.Ei(c2);
- d.Fi();
- }
- }
- return f2;
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
} else {
- f2 = tud(a, b);
- if (a.bj() && f2 != null) {
- d = a.dj(f2, null);
- !!d && d.Fi();
- }
- return f2;
- }
- }
- function UKb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- j = a.a;
- b = new Tqb();
- i3 = 0;
- for (d = new olb(a.d); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 222);
- k = 0;
- ktb(c2.b, new XKb());
- for (g = Jsb(c2.b, 0); g.b != g.d.c; ) {
- f2 = BD(Xsb(g), 222);
- if (b.a._b(f2)) {
- e = c2.c;
- h = f2.c;
- k < h.d + h.a + j && k + e.a + j > h.d && (k = h.d + h.a + j);
- }
- }
- c2.c.d = k;
- b.a.zc(c2, b);
- i3 = $wnd.Math.max(i3, c2.c.d + c2.c.a);
- }
- return i3;
- }
- function Orc() {
- Orc = ccb;
- Frc = new Prc("COMMENTS", 0);
- Hrc = new Prc("EXTERNAL_PORTS", 1);
- Irc = new Prc("HYPEREDGES", 2);
- Jrc = new Prc("HYPERNODES", 3);
- Krc = new Prc("NON_FREE_PORTS", 4);
- Lrc = new Prc("NORTH_SOUTH_PORTS", 5);
- Nrc = new Prc(Wne, 6);
- Erc = new Prc("CENTER_LABELS", 7);
- Grc = new Prc("END_LABELS", 8);
- Mrc = new Prc("PARTITIONS", 9);
- }
- function gVc(a) {
- var b, c2, d, e, f2;
- e = new Rkb();
- b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a));
- for (d = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 79);
- if (!JD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 186)) {
- f2 = atd(BD(qud((!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c), 0), 82));
- b.a._b(f2) || (e.c[e.c.length] = f2, true);
- }
- }
- return e;
- }
- function fVc(a) {
- var b, c2, d, e, f2, g;
- f2 = new Tqb();
- b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a));
- for (e = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 79);
- if (!JD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 186)) {
- g = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82));
- b.a._b(g) || (c2 = f2.a.zc(g, f2), c2 == null);
- }
- }
- return f2;
- }
- function zA(a, b, c2, d, e) {
- if (d < 0) {
- d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b);
- d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b));
- if (d < 0) {
- return false;
- }
- c2.k = d;
- return true;
- } else if (d > 0) {
- c2.k = d - 1;
- return true;
- }
- return false;
- }
- function BA(a, b, c2, d, e) {
- if (d < 0) {
- d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b);
- d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b));
- if (d < 0) {
- return false;
- }
- c2.k = d;
- return true;
- } else if (d > 0) {
- c2.k = d - 1;
- return true;
- }
- return false;
- }
- function DA(a, b, c2, d, e, f2) {
- var g, h, i3, j;
- h = 32;
- if (d < 0) {
- if (b[0] >= a.length) {
- return false;
- }
- h = bfb(a, b[0]);
- if (h != 43 && h != 45) {
- return false;
- }
- ++b[0];
- d = rA(a, b);
- if (d < 0) {
- return false;
- }
- h == 45 && (d = -d);
- }
- if (h == 32 && b[0] - c2 == 2 && e.b == 2) {
- i3 = new eB();
- j = i3.q.getFullYear() - nje + nje - 80;
- g = j % 100;
- f2.a = d == g;
- d += (j / 100 | 0) * 100 + (d < g ? 100 : 0);
- }
- f2.p = d;
- return true;
- }
- function L1b(a, b) {
- var c2, d, e, f2, g;
- if (!Xod(a)) {
- return;
+ return this.conditionStack[0];
}
- g = BD(vNb(b, (Nyc(), Fxc)), 174);
- PD(hkd(a, Vxc)) === PD((dcd(), ccd)) && jkd(a, Vxc, bcd);
- d = (Pgd(), new bhd(Xod(a)));
- f2 = new hhd(!Xod(a) ? null : new bhd(Xod(a)), a);
- e = PGb(d, f2, false, true);
- rqb(g, (tdd(), pdd));
- c2 = BD(vNb(b, Hxc), 8);
- c2.a = $wnd.Math.max(e.a, c2.a);
- c2.b = $wnd.Math.max(e.b, c2.b);
- }
- function Pac(a, b, c2) {
- var d, e, f2, g, h, i3;
- for (g = BD(vNb(a, (wtc(), Lsc)), 15).Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 10);
- switch (BD(vNb(f2, (Nyc(), mxc)), 163).g) {
- case 2:
- $_b(f2, b);
- break;
- case 4:
- $_b(f2, c2);
- }
- for (e = new Sr(ur(O_b(f2).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- if (!!d.c && !!d.d) {
- continue;
- }
- h = !d.d;
- i3 = BD(vNb(d, ctc), 11);
- h ? RZb(d, i3) : QZb(d, i3);
- }
- }
- }
- function Alc() {
- Alc = ccb;
- tlc = new Blc(xle, 0, (Ucd(), Acd), Acd);
- wlc = new Blc(zle, 1, Rcd, Rcd);
- slc = new Blc(yle, 2, zcd, zcd);
- zlc = new Blc(Ale, 3, Tcd, Tcd);
- vlc = new Blc("NORTH_WEST_CORNER", 4, Tcd, Acd);
- ulc = new Blc("NORTH_EAST_CORNER", 5, Acd, zcd);
- ylc = new Blc("SOUTH_WEST_CORNER", 6, Rcd, Tcd);
- xlc = new Blc("SOUTH_EAST_CORNER", 7, zcd, Rcd);
- }
- function i6c() {
- i6c = ccb;
- h6c = OC(GC(XD, 1), Sje, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, { l: 3506176, m: 794077, h: 1 }, { l: 884736, m: 916411, h: 20 }, { l: 3342336, m: 3912489, h: 363 }, { l: 589824, m: 3034138, h: 6914 }, { l: 3407872, m: 1962506, h: 138294 }]);
- $wnd.Math.pow(2, -65);
- }
- function Pcc(a, b) {
- var c2, d, e, f2, g;
- if (a.c.length == 0) {
- return new vgd(meb(0), meb(0));
- }
- c2 = (tCb(0, a.c.length), BD(a.c[0], 11)).j;
- g = 0;
- f2 = b.g;
- d = b.g + 1;
- while (g < a.c.length - 1 && c2.g < f2) {
- ++g;
- c2 = (tCb(g, a.c.length), BD(a.c[g], 11)).j;
- }
- e = g;
- while (e < a.c.length - 1 && c2.g < d) {
- ++e;
- c2 = (tCb(g, a.c.length), BD(a.c[g], 11)).j;
- }
- return new vgd(meb(g), meb(e));
- }
- function R9b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- f2 = b.c.length;
- g = (tCb(c2, b.c.length), BD(b.c[c2], 286));
- h = g.a.o.a;
- l = g.c;
- m = 0;
- for (j = g.c; j <= g.f; j++) {
- if (h <= a.a[j]) {
- return j;
- }
- k = a.a[j];
- i3 = null;
- for (e = c2 + 1; e < f2; e++) {
- d = (tCb(e, b.c.length), BD(b.c[e], 286));
- d.c <= j && d.f >= j && (i3 = d);
- }
- !!i3 && (k = $wnd.Math.max(k, i3.a.o.a));
- if (k > m) {
- l = j;
- m = k;
- }
- }
- return l;
- }
- function ode(a, b, c2) {
- var d, e, f2;
- a.e = c2;
- a.d = 0;
- a.b = 0;
- a.f = 1;
- a.i = b;
- (a.e & 16) == 16 && (a.i = Xee(a.i));
- a.j = a.i.length;
- nde(a);
- f2 = rde(a);
- if (a.d != a.j)
- throw vbb(new mde(tvd((h0d(), sue))));
- if (a.g) {
- for (d = 0; d < a.g.a.c.length; d++) {
- e = BD(Uvb(a.g, d), 584);
- if (a.f <= e.a)
- throw vbb(new mde(tvd((h0d(), tue))));
- }
- a.g.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- return f2;
- }
- function _Pd(a, b) {
- var c2, d, e;
- if (b == null) {
- for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 678);
- e = c2.c;
- if ((e == null ? c2.zb : e) == null) {
- return c2;
- }
- }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
} else {
- for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 678);
- if (dfb(b, (e = c2.c, e == null ? c2.zb : e))) {
- return c2;
- }
- }
- }
- return null;
- }
- function KIb(a, b) {
- var c2;
- c2 = null;
- switch (b.g) {
- case 1:
- a.e.Xe((Y9c(), o9c)) && (c2 = BD(a.e.We(o9c), 249));
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ yy.getLogger().trace("Found comment", yy_.yytext);
+ return 6;
break;
- case 3:
- a.e.Xe((Y9c(), p9c)) && (c2 = BD(a.e.We(p9c), 249));
+ case 1:
+ return 8;
break;
case 2:
- a.e.Xe((Y9c(), n9c)) && (c2 = BD(a.e.We(n9c), 249));
+ this.begin("CLASS");
+ break;
+ case 3:
+ this.popState();
+ return 16;
break;
case 4:
- a.e.Xe((Y9c(), q9c)) && (c2 = BD(a.e.We(q9c), 249));
- }
- !c2 && (c2 = BD(a.e.We((Y9c(), l9c)), 249));
- return c2;
- }
- function OCc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- b.p = 1;
- f2 = b.c;
- for (l = W_b(b, (KAc(), IAc)).Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 11);
- for (e = new olb(k.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- j = d.d.i;
- if (b != j) {
- g = j.c;
- if (g.p <= f2.p) {
- h = f2.p + 1;
- if (h == c2.b.c.length) {
- i3 = new H1b(c2);
- i3.p = h;
- Ekb(c2.b, i3);
- $_b(j, i3);
- } else {
- i3 = BD(Ikb(c2.b, h), 29);
- $_b(j, i3);
- }
- OCc(a, j, c2);
- }
- }
- }
- }
- }
- function ZXc(a, b, c2) {
- var d, e, f2, g, h, i3;
- e = c2;
- f2 = 0;
- for (h = new olb(b); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 33);
- jkd(g, (ZWc(), SWc), meb(e++));
- i3 = gVc(g);
- d = $wnd.Math.atan2(g.j + g.f / 2, g.i + g.g / 2);
- d += d < 0 ? dre : 0;
- d < 0.7853981633974483 || d > vre ? Okb(i3, a.b) : d <= vre && d > wre ? Okb(i3, a.d) : d <= wre && d > xre ? Okb(i3, a.c) : d <= xre && Okb(i3, a.a);
- f2 = ZXc(a, i3, f2);
- }
- return e;
- }
- function Hgb() {
- Hgb = ccb;
- var a;
- Cgb = new Ugb(1, 1);
- Egb = new Ugb(1, 10);
- Ggb = new Ugb(0, 0);
- Bgb = new Ugb(-1, 1);
- Dgb = OC(GC(cJ, 1), nie, 91, 0, [Ggb, Cgb, new Ugb(1, 2), new Ugb(1, 3), new Ugb(1, 4), new Ugb(1, 5), new Ugb(1, 6), new Ugb(1, 7), new Ugb(1, 8), new Ugb(1, 9), Egb]);
- Fgb = KC(cJ, nie, 91, 32, 0, 1);
- for (a = 0; a < Fgb.length; a++) {
- Fgb[a] = ghb(Nbb(1, a));
- }
- }
- function B9b(a, b, c2, d, e, f2) {
- var g, h, i3, j;
- h = !WAb(JAb(a.Oc(), new Xxb(new F9b()))).sd((EAb(), DAb));
- g = a;
- f2 == (ead(), dad) && (g = JD(g, 152) ? km(BD(g, 152)) : JD(g, 131) ? BD(g, 131).a : JD(g, 54) ? new ov(g) : new dv(g));
- for (j = g.Kc(); j.Ob(); ) {
- i3 = BD(j.Pb(), 70);
- i3.n.a = b.a;
- h ? i3.n.b = b.b + (d.b - i3.o.b) / 2 : e ? i3.n.b = b.b : i3.n.b = b.b + d.b - i3.o.b;
- b.a += i3.o.a + c2;
- }
- }
- function UOc(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- e = (d.c + d.a) / 2;
- Osb(b.j);
- Dsb(b.j, e);
- Osb(c2.e);
- Dsb(c2.e, e);
- j = new aPc();
- for (h = new olb(a.f); h.a < h.c.c.length; ) {
- f2 = BD(mlb(h), 129);
- i3 = f2.a;
- WOc(j, b, i3);
- WOc(j, c2, i3);
- }
- for (g = new olb(a.k); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 129);
- i3 = f2.b;
- WOc(j, b, i3);
- WOc(j, c2, i3);
- }
- j.b += 2;
- j.a += POc(b, a.q);
- j.a += POc(a.q, c2);
- return j;
- }
- function FSc(a, b, c2) {
- var d, e, f2, g, h;
- if (!Qq(b)) {
- h = Udd(c2, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0);
- Odd(h, Xqe, 1);
- g = new ISc();
- f2 = null;
- for (e = b.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 86);
- g = pl(OC(GC(KI, 1), Uhe, 20, 0, [g, new ZRc(d)]));
- if (f2) {
- yNb(f2, (mTc(), hTc), d);
- yNb(d, _Sc, f2);
- if (VRc(d) == VRc(f2)) {
- yNb(f2, iTc, d);
- yNb(d, aTc, f2);
- }
- }
- f2 = d;
- }
- Qdd(h);
- FSc(a, g, c2);
- }
- }
- function VHb(a) {
- var b, c2, d, e, f2, g, h;
- c2 = a.i;
- b = a.n;
- h = c2.d;
- a.f == (EIb(), CIb) ? h += (c2.a - a.e.b) / 2 : a.f == BIb && (h += c2.a - a.e.b);
- for (e = new olb(a.d); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 181);
- g = d.rf();
- f2 = new d7c();
- f2.b = h;
- h += g.b + a.a;
- switch (a.b.g) {
- case 0:
- f2.a = c2.c + b.b;
- break;
- case 1:
- f2.a = c2.c + b.b + (c2.b - g.a) / 2;
- break;
- case 2:
- f2.a = c2.c + c2.b - b.c - g.a;
- }
- d.tf(f2);
- }
- }
- function XHb(a) {
- var b, c2, d, e, f2, g, h;
- c2 = a.i;
- b = a.n;
- h = c2.c;
- a.b == (NHb(), KHb) ? h += (c2.b - a.e.a) / 2 : a.b == MHb && (h += c2.b - a.e.a);
- for (e = new olb(a.d); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 181);
- g = d.rf();
- f2 = new d7c();
- f2.a = h;
- h += g.a + a.a;
- switch (a.f.g) {
- case 0:
- f2.b = c2.d + b.d;
- break;
- case 1:
- f2.b = c2.d + b.d + (c2.a - g.b) / 2;
- break;
- case 2:
- f2.b = c2.d + c2.a - b.a - g.b;
- }
- d.tf(f2);
- }
- }
- function D4b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2;
- k = c2.a.c;
- g = c2.a.c + c2.a.b;
- f2 = BD(Ohb(c2.c, b), 459);
- n = f2.f;
- o2 = f2.a;
- i3 = new f7c(k, n);
- l = new f7c(g, o2);
- e = k;
- c2.p || (e += a.c);
- e += c2.F + c2.v * a.b;
- j = new f7c(e, n);
- m = new f7c(e, o2);
- n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i3, j]));
- h = c2.d.a.gc() > 1;
- if (h) {
- d = new f7c(e, c2.b);
- Dsb(b.a, d);
- }
- n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l]));
- }
- function jdd(a) {
- r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Rse), "ELK Randomizer"), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new mdd())));
- p4c(a, Rse, ame, fdd);
- p4c(a, Rse, wme, 15);
- p4c(a, Rse, yme, meb(0));
- p4c(a, Rse, _le, tme);
- }
- function hde() {
- hde = ccb;
- var a, b, c2, d, e, f2;
- fde = KC(SD, wte, 25, 255, 15, 1);
- gde = KC(TD, $ie, 25, 16, 15, 1);
- for (b = 0; b < 255; b++) {
- fde[b] = -1;
- }
- for (c2 = 57; c2 >= 48; c2--) {
- fde[c2] = c2 - 48 << 24 >> 24;
- }
- for (d = 70; d >= 65; d--) {
- fde[d] = d - 65 + 10 << 24 >> 24;
- }
- for (e = 102; e >= 97; e--) {
- fde[e] = e - 97 + 10 << 24 >> 24;
- }
- for (f2 = 0; f2 < 10; f2++)
- gde[f2] = 48 + f2 & aje;
- for (a = 10; a <= 15; a++)
- gde[a] = 65 + a - 10 & aje;
- }
- function BVc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- h = b.i - a.g / 2;
- i3 = c2.i - a.g / 2;
- j = b.j - a.g / 2;
- k = c2.j - a.g / 2;
- f2 = b.g + a.g / 2;
- g = c2.g + a.g / 2;
- d = b.f + a.g / 2;
- e = c2.f + a.g / 2;
- if (h < i3 + g && i3 < h && j < k + e && k < j) {
- return true;
- } else if (i3 < h + f2 && h < i3 && k < j + d && j < k) {
- return true;
- } else if (h < i3 + g && i3 < h && j < k && k < j + d) {
- return true;
- } else if (i3 < h + f2 && h < i3 && j < k + e && k < j) {
- return true;
- }
- return false;
- }
- function NTb(a) {
- var b, c2, d, e, f2;
- e = BD(vNb(a, (Nyc(), Fxc)), 21);
- f2 = BD(vNb(a, Ixc), 21);
- c2 = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
- b = new g7c(c2);
- if (e.Hc((tdd(), pdd))) {
- d = BD(vNb(a, Hxc), 8);
- if (f2.Hc((Idd(), Bdd))) {
- d.a <= 0 && (d.a = 20);
- d.b <= 0 && (d.b = 20);
- }
- b.a = $wnd.Math.max(c2.a, d.a);
- b.b = $wnd.Math.max(c2.b, d.b);
- }
- Ccb(DD(vNb(a, Gxc))) || OTb(a, c2, b);
- }
- function NJc(a, b) {
- var c2, d, e, f2;
- for (f2 = V_b(b, (Ucd(), Rcd)).Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 11);
- c2 = BD(vNb(d, (wtc(), gtc)), 10);
- !!c2 && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[b.p].d), a.i[c2.p].a));
- }
- for (e = V_b(b, Acd).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 11);
- c2 = BD(vNb(d, (wtc(), gtc)), 10);
- !!c2 && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[c2.p].d), a.i[b.p].a));
- }
- }
- function QKd(a) {
- var b, c2, d, e, f2, g;
- if (!a.c) {
- g = new wNd();
- b = KKd;
- f2 = b.a.zc(a, b);
- if (f2 == null) {
- for (d = new Fyd(VKd(a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 87);
- e = KQd(c2);
- JD(e, 88) && ytd(g, QKd(BD(e, 26)));
- wtd(g, c2);
- }
- b.a.Bc(a) != null;
- b.a.gc() == 0 && void 0;
- }
- tNd(g);
- vud(g);
- a.c = new nNd((BD(qud(ZKd((NFd(), MFd).o), 15), 18), g.i), g.g);
- $Kd(a).b &= -33;
- }
- return a.c;
- }
- function eee(a) {
- var b;
- if (a.c != 10)
- throw vbb(new mde(tvd((h0d(), uue))));
- b = a.a;
- switch (b) {
- case 110:
- b = 10;
+ this.popState();
break;
- case 114:
- b = 13;
+ case 5:
+ yy.getLogger().trace("Begin icon");
+ this.begin("ICON");
break;
- case 116:
- b = 9;
+ case 6:
+ yy.getLogger().trace("SPACELINE");
+ return 6;
break;
- case 92:
- case 124:
- case 46:
- case 94:
- case 45:
- case 63:
- case 42:
- case 43:
- case 123:
- case 125:
- case 40:
- case 41:
- case 91:
- case 93:
+ case 7:
+ return 7;
break;
- default:
- throw vbb(new mde(tvd((h0d(), Yue))));
- }
- return b;
- }
- function qD(a) {
- var b, c2, d, e, f2;
- if (a.l == 0 && a.m == 0 && a.h == 0) {
- return "0";
- }
- if (a.h == Gje && a.m == 0 && a.l == 0) {
- return "-9223372036854775808";
- }
- if (a.h >> 19 != 0) {
- return "-" + qD(hD(a));
- }
- c2 = a;
- d = "";
- while (!(c2.l == 0 && c2.m == 0 && c2.h == 0)) {
- e = RC(Jje);
- c2 = UC(c2, e, true);
- b = "" + pD(QC);
- if (!(c2.l == 0 && c2.m == 0 && c2.h == 0)) {
- f2 = 9 - b.length;
- for (; f2 > 0; f2--) {
- b = "0" + b;
- }
- }
- d = b + d;
- }
- return d;
- }
- function xrb() {
- if (!Object.create || !Object.getOwnPropertyNames) {
- return false;
- }
- var a = "__proto__";
- var b = /* @__PURE__ */ Object.create(null);
- if (b[a] !== void 0) {
- return false;
- }
- var c2 = Object.getOwnPropertyNames(b);
- if (c2.length != 0) {
- return false;
- }
- b[a] = 42;
- if (b[a] !== 42) {
- return false;
- }
- if (Object.getOwnPropertyNames(b).length == 0) {
- return false;
- }
- return true;
- }
- function Pgc(a) {
- var b, c2, d, e, f2, g, h;
- b = false;
- c2 = 0;
- for (e = new olb(a.d.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- d.p = c2++;
- for (g = new olb(d.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- !b && !Qq(O_b(f2)) && (b = true);
- }
- }
- h = qqb((ead(), cad), OC(GC(t12, 1), Kie, 103, 0, [aad, bad]));
- if (!b) {
- rqb(h, dad);
- rqb(h, _9c);
- }
- a.a = new mDb(h);
- Uhb(a.f);
- Uhb(a.b);
- Uhb(a.e);
- Uhb(a.g);
- }
- function _Xb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- d = c2.c;
- e = c2.d;
- h = A0b(b.c);
- i3 = A0b(b.d);
- if (d == b.c) {
- h = aYb(a, h, e);
- i3 = bYb(b.d);
- } else {
- h = bYb(b.c);
- i3 = aYb(a, i3, e);
- }
- j = new t7c(b.a);
- Gsb(j, h, j.a, j.a.a);
- Gsb(j, i3, j.c.b, j.c);
- g = b.c == d;
- l = new BYb();
- for (f2 = 0; f2 < j.b - 1; ++f2) {
- k = new vgd(BD(Ut(j, f2), 8), BD(Ut(j, f2 + 1), 8));
- g && f2 == 0 || !g && f2 == j.b - 2 ? l.b = k : Ekb(l.a, k);
- }
- return l;
- }
- function O$b(a, b) {
- var c2, d, e, f2;
- f2 = a.j.g - b.j.g;
- if (f2 != 0) {
- return f2;
- }
- c2 = BD(vNb(a, (Nyc(), Wxc)), 19);
- d = BD(vNb(b, Wxc), 19);
- if (!!c2 && !!d) {
- e = c2.a - d.a;
- if (e != 0) {
- return e;
- }
- }
- switch (a.j.g) {
- case 1:
- return Kdb(a.n.a, b.n.a);
- case 2:
- return Kdb(a.n.b, b.n.b);
- case 3:
- return Kdb(b.n.a, a.n.a);
- case 4:
- return Kdb(b.n.b, a.n.b);
- default:
- throw vbb(new Zdb(ine));
- }
- }
- function G6b(a, b, c2, d) {
- var e, f2, g, h, i3;
- if (sr((D6b(), new Sr(ur(O_b(b).a.Kc(), new Sq())))) >= a.a) {
- return -1;
- }
- if (!F6b(b, c2)) {
- return -1;
- }
- if (Qq(BD(d.Kb(b), 20))) {
- return 1;
- }
- e = 0;
- for (g = BD(d.Kb(b), 20).Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 17);
- i3 = f2.c.i == b ? f2.d.i : f2.c.i;
- h = G6b(a, i3, c2, d);
- if (h == -1) {
- return -1;
- }
- e = $wnd.Math.max(e, h);
- if (e > a.c - 1) {
- return -1;
- }
- }
- return e + 1;
- }
- function Btd(a, b) {
- var c2, d, e, f2, g, h;
- if (PD(b) === PD(a)) {
- return true;
- }
- if (!JD(b, 15)) {
- return false;
- }
- d = BD(b, 15);
- h = a.gc();
- if (d.gc() != h) {
- return false;
- }
- g = d.Kc();
- if (a.ni()) {
- for (c2 = 0; c2 < h; ++c2) {
- e = a.ki(c2);
- f2 = g.Pb();
- if (e == null ? f2 != null : !pb(e, f2)) {
- return false;
- }
- }
- } else {
- for (c2 = 0; c2 < h; ++c2) {
- e = a.ki(c2);
- f2 = g.Pb();
- if (PD(e) !== PD(f2)) {
- return false;
- }
- }
- }
- return true;
- }
- function rAd(a, b) {
- var c2, d, e, f2, g, h;
- if (a.f > 0) {
- a.qj();
- if (b != null) {
- for (f2 = 0; f2 < a.d.length; ++f2) {
- c2 = a.d[f2];
- if (c2) {
- d = BD(c2.g, 367);
- h = c2.i;
- for (g = 0; g < h; ++g) {
- e = d[g];
- if (pb(b, e.dd())) {
- return true;
- }
- }
- }
- }
- } else {
- for (f2 = 0; f2 < a.d.length; ++f2) {
- c2 = a.d[f2];
- if (c2) {
- d = BD(c2.g, 367);
- h = c2.i;
- for (g = 0; g < h; ++g) {
- e = d[g];
- if (PD(b) === PD(e.dd())) {
- return true;
- }
- }
- }
- }
- }
- }
- return false;
- }
- function e6b(a, b, c2) {
- var d, e, f2, g;
- Odd(c2, "Orthogonally routing hierarchical port edges", 1);
- a.a = 0;
- d = h6b(b);
- k6b(b, d);
- j6b(a, b, d);
- f6b(b);
- e = BD(vNb(b, (Nyc(), Vxc)), 98);
- f2 = b.b;
- d6b((tCb(0, f2.c.length), BD(f2.c[0], 29)), e, b);
- d6b(BD(Ikb(f2, f2.c.length - 1), 29), e, b);
- g = b.b;
- b6b((tCb(0, g.c.length), BD(g.c[0], 29)));
- b6b(BD(Ikb(g, g.c.length - 1), 29));
- Qdd(c2);
- }
- function jnd(a) {
- switch (a) {
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57: {
- return a - 48 << 24 >> 24;
- }
- case 97:
- case 98:
- case 99:
- case 100:
- case 101:
- case 102: {
- return a - 97 + 10 << 24 >> 24;
- }
- case 65:
- case 66:
- case 67:
- case 68:
- case 69:
- case 70: {
- return a - 65 + 10 << 24 >> 24;
- }
- default: {
- throw vbb(new Oeb("Invalid hexadecimal"));
- }
- }
- }
- function AUc(a, b, c2) {
- var d, e, f2, g;
- Odd(c2, "Processor order nodes", 2);
- a.a = Edb(ED(vNb(b, (JTc(), HTc))));
- e = new Psb();
- for (g = Jsb(b.b, 0); g.b != g.d.c; ) {
- f2 = BD(Xsb(g), 86);
- Ccb(DD(vNb(f2, (mTc(), jTc)))) && (Gsb(e, f2, e.c.b, e.c), true);
- }
- d = (sCb(e.b != 0), BD(e.a.a.c, 86));
- yUc(a, d);
- !c2.b && Rdd(c2, 1);
- BUc(a, d, 0 - Edb(ED(vNb(d, (mTc(), bTc)))) / 2, 0);
- !c2.b && Rdd(c2, 1);
- Qdd(c2);
- }
- function rFb() {
- rFb = ccb;
- qFb = new sFb("SPIRAL", 0);
- lFb = new sFb("LINE_BY_LINE", 1);
- mFb = new sFb("MANHATTAN", 2);
- kFb = new sFb("JITTER", 3);
- oFb = new sFb("QUADRANTS_LINE_BY_LINE", 4);
- pFb = new sFb("QUADRANTS_MANHATTAN", 5);
- nFb = new sFb("QUADRANTS_JITTER", 6);
- jFb = new sFb("COMBINE_LINE_BY_LINE_MANHATTAN", 7);
- iFb = new sFb("COMBINE_JITTER_MANHATTAN", 8);
- }
- function roc(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- i3 = woc(a, c2);
- j = woc(b, c2);
- e = false;
- while (!!i3 && !!j) {
- if (d || uoc(i3, j, c2)) {
- g = woc(i3, c2);
- h = woc(j, c2);
- zoc(b);
- zoc(a);
- f2 = i3.c;
- sbc(i3, false);
- sbc(j, false);
- if (c2) {
- Z_b(b, j.p, f2);
- b.p = j.p;
- Z_b(a, i3.p + 1, f2);
- a.p = i3.p;
- } else {
- Z_b(a, i3.p, f2);
- a.p = i3.p;
- Z_b(b, j.p + 1, f2);
- b.p = j.p;
- }
- $_b(i3, null);
- $_b(j, null);
- i3 = g;
- j = h;
- e = true;
- } else {
+ case 8:
+ return 15;
break;
- }
- }
- return e;
- }
- function VDc(a, b, c2, d) {
- var e, f2, g, h, i3;
- e = false;
- f2 = false;
- for (h = new olb(d.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- PD(vNb(g, (wtc(), $sc))) === PD(c2) && (g.g.c.length == 0 ? g.e.c.length == 0 || (e = true) : f2 = true);
- }
- i3 = 0;
- e && e ^ f2 ? i3 = c2.j == (Ucd(), Acd) ? -a.e[d.c.p][d.p] : b - a.e[d.c.p][d.p] : f2 && e ^ f2 ? i3 = a.e[d.c.p][d.p] + 1 : e && f2 && (i3 = c2.j == (Ucd(), Acd) ? 0 : b / 2);
- return i3;
- }
- function NEd(a, b, c2, d, e, f2, g, h) {
- var i3, j, k;
- i3 = 0;
- b != null && (i3 ^= LCb(b.toLowerCase()));
- c2 != null && (i3 ^= LCb(c2));
- d != null && (i3 ^= LCb(d));
- g != null && (i3 ^= LCb(g));
- h != null && (i3 ^= LCb(h));
- for (j = 0, k = f2.length; j < k; j++) {
- i3 ^= LCb(f2[j]);
- }
- a ? i3 |= 256 : i3 &= -257;
- e ? i3 |= 16 : i3 &= -17;
- this.f = i3;
- this.i = b == null ? null : (uCb(b), b);
- this.a = c2;
- this.d = d;
- this.j = f2;
- this.g = g;
- this.e = h;
- }
- function X_b(a, b, c2) {
- var d, e;
- e = null;
- switch (b.g) {
- case 1:
- e = (z0b(), u0b);
+ case 9:
+ yy.getLogger().trace("end icon");
+ this.popState();
break;
- case 2:
- e = (z0b(), w0b);
- }
- d = null;
- switch (c2.g) {
- case 1:
- d = (z0b(), v0b);
+ case 10:
+ yy.getLogger().trace("Exploding node");
+ this.begin("NODE");
+ return 19;
break;
- case 2:
- d = (z0b(), t0b);
+ case 11:
+ yy.getLogger().trace("Cloud");
+ this.begin("NODE");
+ return 19;
break;
- case 3:
- d = (z0b(), x0b);
+ case 12:
+ yy.getLogger().trace("Explosion Bang");
+ this.begin("NODE");
+ return 19;
break;
- case 4:
- d = (z0b(), y0b);
- }
- return !!e && !!d ? Nq(a.j, new Yb(new amb(OC(GC(_D, 1), Uhe, 169, 0, [BD(Qb(e), 169), BD(Qb(d), 169)])))) : (mmb(), mmb(), jmb);
- }
- function t5b(a) {
- var b, c2, d;
- b = BD(vNb(a, (Nyc(), Hxc)), 8);
- yNb(a, Hxc, new f7c(b.b, b.a));
- switch (BD(vNb(a, mwc), 248).g) {
- case 1:
- yNb(a, mwc, (F7c(), E7c));
+ case 13:
+ yy.getLogger().trace("Cloud Bang");
+ this.begin("NODE");
+ return 19;
break;
- case 2:
- yNb(a, mwc, (F7c(), A7c));
+ case 14:
+ this.begin("NODE");
+ return 19;
break;
- case 3:
- yNb(a, mwc, (F7c(), C7c));
+ case 15:
+ this.begin("NODE");
+ return 19;
break;
- case 4:
- yNb(a, mwc, (F7c(), D7c));
- }
- if ((!a.q ? (mmb(), mmb(), kmb) : a.q)._b(ayc)) {
- c2 = BD(vNb(a, ayc), 8);
- d = c2.a;
- c2.a = c2.b;
- c2.b = d;
- }
- }
- function jjc(a, b, c2, d, e, f2) {
- this.b = c2;
- this.d = e;
- if (a >= b.length) {
- throw vbb(new qcb("Greedy SwitchDecider: Free layer not in graph."));
- }
- this.c = b[a];
- this.e = new dIc(d);
- THc(this.e, this.c, (Ucd(), Tcd));
- this.i = new dIc(d);
- THc(this.i, this.c, zcd);
- this.f = new ejc(this.c);
- this.a = !f2 && e.i && !e.s && this.c[0].k == (j0b(), e0b);
- this.a && hjc(this, a, b.length);
- }
- function hKb(a, b) {
- var c2, d, e, f2, g, h;
- f2 = !a.B.Hc((Idd(), zdd));
- g = a.B.Hc(Cdd);
- a.a = new FHb(g, f2, a.c);
- !!a.n && u_b(a.a.n, a.n);
- lIb(a.g, (gHb(), eHb), a.a);
- if (!b) {
- d = new mIb(1, f2, a.c);
- d.n.a = a.k;
- Npb(a.p, (Ucd(), Acd), d);
- e = new mIb(1, f2, a.c);
- e.n.d = a.k;
- Npb(a.p, Rcd, e);
- h = new mIb(0, f2, a.c);
- h.n.c = a.k;
- Npb(a.p, Tcd, h);
- c2 = new mIb(0, f2, a.c);
- c2.n.b = a.k;
- Npb(a.p, zcd, c2);
- }
- }
- function Vgc(a) {
- var b, c2, d;
- b = BD(vNb(a.d, (Nyc(), Swc)), 218);
- switch (b.g) {
- case 2:
- c2 = Ngc(a);
+ case 16:
+ this.begin("NODE");
+ return 19;
break;
- case 3:
- c2 = (d = new Rkb(), MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Shc()), new Uhc()), new Whc()), new ehc()), new Yhc(d)), d);
+ case 17:
+ this.begin("NODE");
+ return 19;
break;
- default:
- throw vbb(new Zdb("Compaction not supported for " + b + " edges."));
- }
- Ugc(a, c2);
- reb(new Pib(a.g), new Ehc(a));
- }
- function a2c(a, b) {
- var c2;
- c2 = new zNb();
- !!b && tNb(c2, BD(Ohb(a.a, C2), 94));
- JD(b, 470) && tNb(c2, BD(Ohb(a.a, G2), 94));
- if (JD(b, 354)) {
- tNb(c2, BD(Ohb(a.a, D2), 94));
- return c2;
- }
- JD(b, 82) && tNb(c2, BD(Ohb(a.a, z2), 94));
- if (JD(b, 239)) {
- tNb(c2, BD(Ohb(a.a, E2), 94));
- return c2;
- }
- if (JD(b, 186)) {
- tNb(c2, BD(Ohb(a.a, F2), 94));
- return c2;
- }
- JD(b, 352) && tNb(c2, BD(Ohb(a.a, B2), 94));
- return c2;
- }
- function wSb() {
- wSb = ccb;
- oSb = new Osd((Y9c(), D9c), meb(1));
- uSb = new Osd(T9c, 80);
- tSb = new Osd(M9c, 5);
- bSb = new Osd(r8c, tme);
- pSb = new Osd(E9c, meb(1));
- sSb = new Osd(H9c, (Bcb(), true));
- lSb = new q0b(50);
- kSb = new Osd(f9c, lSb);
- dSb = O8c;
- mSb = t9c;
- cSb = new Osd(B8c, false);
- jSb = e9c;
- iSb = b9c;
- hSb = Y8c;
- gSb = W8c;
- nSb = x9c;
- fSb = (SRb(), LRb);
- vSb = QRb;
- eSb = KRb;
- qSb = NRb;
- rSb = PRb;
- }
- function ZXb(a) {
- var b, c2, d, e, f2, g, h, i3;
- i3 = new jYb();
- for (h = new olb(a.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- if (g.k == (j0b(), e0b)) {
- continue;
- }
- XXb(i3, g, new d7c());
- for (f2 = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- if (e.c.i.k == e0b || e.d.i.k == e0b) {
- continue;
- }
- for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 8);
- b = c2;
- hYb(i3, new cWb(b.a, b.b));
- }
- }
- }
- return i3;
- }
- function A0c() {
- A0c = ccb;
- z0c = new Lsd(Qre);
- y0c = (R0c(), Q0c);
- x0c = new Nsd(Vre, y0c);
- w0c = (a1c(), _0c);
- v0c = new Nsd(Rre, w0c);
- u0c = (N_c(), J_c);
- t0c = new Nsd(Sre, u0c);
- p0c = new Nsd(Tre, null);
- s0c = (C_c(), A_c);
- r0c = new Nsd(Ure, s0c);
- l0c = (i_c(), h_c);
- k0c = new Nsd(Wre, l0c);
- m0c = new Nsd(Xre, (Bcb(), false));
- n0c = new Nsd(Yre, meb(64));
- o0c = new Nsd(Zre, true);
- q0c = B_c;
- }
- function Toc(a) {
- var b, c2, d, e, f2, g;
- if (a.a != null) {
- return;
- }
- a.a = KC(sbb, dle, 25, a.c.b.c.length, 16, 1);
- a.a[0] = false;
- if (wNb(a.c, (Nyc(), Lyc))) {
- d = BD(vNb(a.c, Lyc), 15);
- for (c2 = d.Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 19).a;
- b > 0 && b < a.a.length && (a.a[b] = false);
- }
- } else {
- g = new olb(a.c.b);
- g.a < g.c.c.length && mlb(g);
- e = 1;
- while (g.a < g.c.c.length) {
- f2 = BD(mlb(g), 29);
- a.a[e++] = Woc(f2);
- }
- }
- }
- function TMd(a, b) {
- var c2, d, e, f2;
- e = a.b;
- switch (b) {
- case 1: {
- a.b |= 1;
- a.b |= 4;
- a.b |= 8;
- break;
- }
- case 2: {
- a.b |= 2;
- a.b |= 4;
- a.b |= 8;
- break;
- }
- case 4: {
- a.b |= 1;
- a.b |= 2;
- a.b |= 4;
- a.b |= 8;
- break;
- }
- case 3: {
- a.b |= 16;
- a.b |= 8;
- break;
- }
- case 0: {
- a.b |= 32;
- a.b |= 16;
- a.b |= 8;
- a.b |= 1;
- a.b |= 2;
- a.b |= 4;
- break;
- }
- }
- if (a.b != e && !!a.c) {
- for (d = new Fyd(a.c); d.e != d.i.gc(); ) {
- f2 = BD(Dyd(d), 473);
- c2 = $Kd(f2);
- XMd(c2, b);
- }
- }
- }
- function cGc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2;
- e = false;
- for (g = b, h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- Ccb((Bcb(), f2.e ? true : false)) && !BD(Ikb(a.b, f2.e.p), 214).s && (e = e | (j = f2.e, k = BD(Ikb(a.b, j.p), 214), l = k.e, m = SFc(c2, l.length), n = l[m][0], n.k == (j0b(), e0b) ? l[m] = aGc(f2, l[m], c2 ? (Ucd(), Tcd) : (Ucd(), zcd)) : k.c.Tf(l, c2), o2 = dGc(a, k, c2, d), bGc(k.e, k.o, c2), o2));
- }
- return e;
- }
- function p2c(a, b) {
- var c2, d, e, f2, g;
- f2 = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
- for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 33);
- if (PD(hkd(d, (Y9c(), J8c))) !== PD((hbd(), gbd))) {
- g = BD(hkd(b, F9c), 149);
- c2 = BD(hkd(d, F9c), 149);
- (g == c2 || !!g && C3c(g, c2)) && (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i != 0 && (f2 += p2c(a, d));
- }
- }
- return f2;
- }
- function nlc(a) {
- var b, c2, d, e, f2, g, h;
- d = 0;
- h = 0;
- for (g = new olb(a.d); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 101);
- e = BD(GAb(JAb(new YAb(null, new Kub(f2.j, 16)), new Ylc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- c2 = null;
- if (d <= h) {
- c2 = (Ucd(), Acd);
- d += e.gc();
- } else if (h < d) {
- c2 = (Ucd(), Rcd);
- h += e.gc();
- }
- b = c2;
- MAb(NAb(e.Oc(), new Mlc()), new Olc(b));
- }
- }
- function mkc(a) {
- var b, c2, d, e, f2, g, h, i3;
- a.b = new _i(new amb((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]))), new amb((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]))));
- for (g = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- for (c2 = OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- Ui(a.b, f2, b, new Rkb());
- }
- }
- }
- function KJb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- g = BD(BD(Qc(a.r, b), 21), 84);
- h = a.u.Hc((rcd(), pcd));
- c2 = a.u.Hc(mcd);
- d = a.u.Hc(lcd);
- j = a.u.Hc(qcd);
- l = a.B.Hc((Idd(), Hdd));
- k = !c2 && !d && (j || g.gc() == 2);
- HJb(a, b);
- e = null;
- i3 = null;
- if (h) {
- f2 = g.Kc();
- e = BD(f2.Pb(), 111);
- i3 = e;
- while (f2.Ob()) {
- i3 = BD(f2.Pb(), 111);
- }
- e.d.b = 0;
- i3.d.c = 0;
- k && !e.a && (e.d.c = 0);
- }
- if (l) {
- LJb(g);
- if (h) {
- e.d.b = 0;
- i3.d.c = 0;
- }
- }
- }
- function SKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- g = BD(BD(Qc(a.r, b), 21), 84);
- h = a.u.Hc((rcd(), pcd));
- c2 = a.u.Hc(mcd);
- d = a.u.Hc(lcd);
- i3 = a.u.Hc(qcd);
- l = a.B.Hc((Idd(), Hdd));
- j = !c2 && !d && (i3 || g.gc() == 2);
- QKb(a, b);
- k = null;
- e = null;
- if (h) {
- f2 = g.Kc();
- k = BD(f2.Pb(), 111);
- e = k;
- while (f2.Ob()) {
- e = BD(f2.Pb(), 111);
- }
- k.d.d = 0;
- e.d.a = 0;
- j && !k.a && (k.d.a = 0);
- }
- if (l) {
- TKb(g);
- if (h) {
- k.d.d = 0;
- e.d.a = 0;
- }
- }
- }
- function oJc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- e = b.k;
- if (b.p >= 0) {
- return false;
- } else {
- b.p = c2.b;
- Ekb(c2.e, b);
- }
- if (e == (j0b(), g0b) || e == i0b) {
- for (g = new olb(b.j); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 11);
- for (k = (d = new olb(new R0b(f2).a.g), new U0b(d)); llb(k.a); ) {
- j = BD(mlb(k.a), 17).d;
- h = j.i;
- i3 = h.k;
- if (b.c != h.c) {
- if (i3 == g0b || i3 == i0b) {
- if (oJc(a, h, c2)) {
- return true;
- }
- }
- }
- }
- }
- }
- return true;
- }
- function gJd(a) {
- var b;
- if ((a.Db & 64) != 0)
- return EId(a);
- b = new Jfb(EId(a));
- b.a += " (changeable: ";
- Ffb(b, (a.Bb & zte) != 0);
- b.a += ", volatile: ";
- Ffb(b, (a.Bb & Dve) != 0);
- b.a += ", transient: ";
- Ffb(b, (a.Bb & Rje) != 0);
- b.a += ", defaultValueLiteral: ";
- Efb(b, a.j);
- b.a += ", unsettable: ";
- Ffb(b, (a.Bb & Cve) != 0);
- b.a += ", derived: ";
- Ffb(b, (a.Bb & oie) != 0);
- b.a += ")";
- return b.a;
- }
- function AOb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- e = eNb(a.d);
- g = BD(vNb(a.b, (CPb(), wPb)), 116);
- h = g.b + g.c;
- i3 = g.d + g.a;
- k = e.d.a * a.e + h;
- j = e.b.a * a.f + i3;
- $Ob(a.b, new f7c(k, j));
- for (m = new olb(a.g); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 562);
- b = l.g - e.a.a;
- c2 = l.i - e.c.a;
- d = P6c(Z6c(new f7c(b, c2), l.a, l.b), Y6c(b7c(R6c(HOb(l.e)), l.d * l.a, l.c * l.b), -0.5));
- f2 = IOb(l.e);
- KOb(l.e, c7c(d, f2));
- }
- }
- function tmc(a, b, c2, d) {
- var e, f2, g, h, i3;
- i3 = KC(UD, nie, 104, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 0, 2);
- for (f2 = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), g = 0, h = f2.length; g < h; ++g) {
- e = f2[g];
- i3[e.g] = KC(UD, Vje, 25, a.c[e.g], 15, 1);
- }
- vmc(i3, a, Acd);
- vmc(i3, a, Rcd);
- smc(i3, a, Acd, b, c2, d);
- smc(i3, a, zcd, b, c2, d);
- smc(i3, a, Rcd, b, c2, d);
- smc(i3, a, Tcd, b, c2, d);
- return i3;
- }
- function UGc(a, b, c2) {
- if (Mhb(a.a, b)) {
- if (Rqb(BD(Ohb(a.a, b), 53), c2)) {
- return 1;
- }
- } else {
- Rhb(a.a, b, new Tqb());
- }
- if (Mhb(a.a, c2)) {
- if (Rqb(BD(Ohb(a.a, c2), 53), b)) {
- return -1;
- }
- } else {
- Rhb(a.a, c2, new Tqb());
- }
- if (Mhb(a.b, b)) {
- if (Rqb(BD(Ohb(a.b, b), 53), c2)) {
- return -1;
- }
- } else {
- Rhb(a.b, b, new Tqb());
- }
- if (Mhb(a.b, c2)) {
- if (Rqb(BD(Ohb(a.b, c2), 53), b)) {
- return 1;
- }
- } else {
- Rhb(a.b, c2, new Tqb());
- }
- return 0;
- }
- function x2d(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- if (c2 == null) {
- e = BD(a.g, 119);
- for (h = 0; h < a.i; ++h) {
- g = e[h];
- if (g.ak() == b) {
- return Txd(a, g, d);
- }
- }
- }
- f2 = (Q6d(), BD(b, 66).Oj() ? BD(c2, 72) : R6d(b, c2));
- if (oid(a.e)) {
- j = !R2d(a, b);
- d = Sxd(a, f2, d);
- i3 = b.$j() ? H2d(a, 3, b, null, c2, M2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0), j) : H2d(a, 1, b, b.zj(), c2, -1, j);
- d ? d.Ei(i3) : d = i3;
- } else {
- d = Sxd(a, f2, d);
- }
- return d;
- }
- function CJb(a) {
- var b, c2, d, e, f2, g;
- if (a.q == (dcd(), _bd) || a.q == $bd) {
- return;
- }
- e = a.f.n.d + _Gb(BD(Mpb(a.b, (Ucd(), Acd)), 124)) + a.c;
- b = a.f.n.a + _Gb(BD(Mpb(a.b, Rcd), 124)) + a.c;
- d = BD(Mpb(a.b, zcd), 124);
- g = BD(Mpb(a.b, Tcd), 124);
- f2 = $wnd.Math.max(0, d.n.d - e);
- f2 = $wnd.Math.max(f2, g.n.d - e);
- c2 = $wnd.Math.max(0, d.n.a - b);
- c2 = $wnd.Math.max(c2, g.n.a - b);
- d.n.d = f2;
- g.n.d = f2;
- d.n.a = c2;
- g.n.a = c2;
- }
- function rdc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- Odd(b, "Restoring reversed edges", 1);
- for (i3 = new olb(a.b); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 29);
- for (k = new olb(h.a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 10);
- for (m = new olb(j.j); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 11);
- g = k_b(l.g);
- for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- Ccb(DD(vNb(c2, (wtc(), ltc)))) && PZb(c2, false);
- }
- }
- }
- }
- Qdd(b);
- }
- function m4c() {
- this.b = new $rb();
- this.d = new $rb();
- this.e = new $rb();
- this.c = new $rb();
- this.a = new Lqb();
- this.f = new Lqb();
- hvd(m1, new x4c(), new z4c());
- hvd(l1, new V4c(), new X4c());
- hvd(i1, new Z4c(), new _4c());
- hvd(j1, new b5c(), new d5c());
- hvd(i2, new f5c(), new h5c());
- hvd(DJ, new B4c(), new D4c());
- hvd(xK, new F4c(), new H4c());
- hvd(jK, new J4c(), new L4c());
- hvd(uK, new N4c(), new P4c());
- hvd(kL, new R4c(), new T4c());
- }
- function R5d(a) {
- var b, c2, d, e, f2, g;
- f2 = 0;
- b = wId(a);
- !!b.Bj() && (f2 |= 4);
- (a.Bb & Cve) != 0 && (f2 |= 2);
- if (JD(a, 99)) {
- c2 = BD(a, 18);
- e = zUd(c2);
- (c2.Bb & ote) != 0 && (f2 |= 32);
- if (e) {
- aLd(WId(e));
- f2 |= 8;
- g = e.t;
- (g > 1 || g == -1) && (f2 |= 16);
- (e.Bb & ote) != 0 && (f2 |= 64);
- }
- (c2.Bb & Tje) != 0 && (f2 |= Dve);
- f2 |= zte;
- } else {
- if (JD(b, 457)) {
- f2 |= 512;
- } else {
- d = b.Bj();
- !!d && (d.i & 1) != 0 && (f2 |= 256);
- }
- }
- (a.Bb & 512) != 0 && (f2 |= 128);
- return f2;
- }
- function hc(a, b) {
- var c2, d, e, f2, g;
- a = a == null ? Xhe : (uCb(a), a);
- for (e = 0; e < b.length; e++) {
- b[e] = ic(b[e]);
- }
- c2 = new Vfb();
- g = 0;
- d = 0;
- while (d < b.length) {
- f2 = a.indexOf("%s", g);
- if (f2 == -1) {
- break;
- }
- c2.a += "" + qfb(a == null ? Xhe : (uCb(a), a), g, f2);
- Pfb(c2, b[d++]);
- g = f2 + 2;
- }
- Ofb(c2, a, g, a.length);
- if (d < b.length) {
- c2.a += " [";
- Pfb(c2, b[d++]);
- while (d < b.length) {
- c2.a += She;
- Pfb(c2, b[d++]);
- }
- c2.a += "]";
- }
- return c2.a;
- }
- function m3b(a) {
- var b, c2, d, e, f2;
- f2 = new Skb(a.a.c.length);
- for (e = new olb(a.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- c2 = BD(vNb(d, (Nyc(), mxc)), 163);
- b = null;
- switch (c2.g) {
- case 1:
- case 2:
- b = (Gqc(), Fqc);
- break;
- case 3:
- case 4:
- b = (Gqc(), Dqc);
- }
- if (b) {
- yNb(d, (wtc(), Bsc), (Gqc(), Fqc));
- b == Dqc ? o3b(d, c2, (KAc(), HAc)) : b == Fqc && o3b(d, c2, (KAc(), IAc));
- } else {
- f2.c[f2.c.length] = d;
- }
- }
- return f2;
- }
- function MHc(a, b) {
- var c2, d, e, f2, g, h, i3;
- c2 = 0;
- for (i3 = new olb(b); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 11);
- AHc(a.b, a.d[h.p]);
- g = 0;
- for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) {
- d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
- if (WHc(d)) {
- f2 = aIc(a, h == d.c ? d.d : d.c);
- if (f2 > a.d[h.p]) {
- c2 += zHc(a.b, f2);
- Wjb(a.a, meb(f2));
- }
- } else {
- ++g;
- }
- }
- c2 += a.b.d * g;
- while (!akb(a.a)) {
- xHc(a.b, BD(fkb(a.a), 19).a);
- }
- }
- return c2;
- }
- function Y6d(a, b) {
- var c2;
- if (a.f == W6d) {
- c2 = $1d(q1d((O6d(), M6d), b));
- return a.e ? c2 == 4 && b != (m8d(), k8d) && b != (m8d(), h8d) && b != (m8d(), i8d) && b != (m8d(), j8d) : c2 == 2;
- }
- if (!!a.d && (a.d.Hc(b) || a.d.Hc(_1d(q1d((O6d(), M6d), b))) || a.d.Hc(e1d((O6d(), M6d), a.b, b)))) {
- return true;
- }
- if (a.f) {
- if (x1d((O6d(), a.f), b2d(q1d(M6d, b)))) {
- c2 = $1d(q1d(M6d, b));
- return a.e ? c2 == 4 : c2 == 2;
- }
- }
- return false;
- }
- function iVc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l;
- g = BD(hkd(c2, (Y9c(), C9c)), 8);
- i3 = g.a;
- k = g.b + a;
- e = $wnd.Math.atan2(k, i3);
- e < 0 && (e += dre);
- e += b;
- e > dre && (e -= dre);
- h = BD(hkd(d, C9c), 8);
- j = h.a;
- l = h.b + a;
- f2 = $wnd.Math.atan2(l, j);
- f2 < 0 && (f2 += dre);
- f2 += b;
- f2 > dre && (f2 -= dre);
- return Iy(), My(1e-10), $wnd.Math.abs(e - f2) <= 1e-10 || e == f2 || isNaN(e) && isNaN(f2) ? 0 : e < f2 ? -1 : e > f2 ? 1 : Ny(isNaN(e), isNaN(f2));
- }
- function YDb(a) {
- var b, c2, d, e, f2, g, h;
- h = new Lqb();
- for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
- b = BD(mlb(d), 57);
- Rhb(h, b, new Rkb());
- }
- for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
- b = BD(mlb(e), 57);
- b.i = Qje;
- for (g = b.c.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 57);
- BD(Wd(irb(h.f, f2)), 15).Fc(b);
- }
- }
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- b.c.$b();
- b.c = BD(Wd(irb(h.f, b)), 15);
- }
- QDb(a);
- }
- function yVb(a) {
- var b, c2, d, e, f2, g, h;
- h = new Lqb();
- for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
- b = BD(mlb(d), 81);
- Rhb(h, b, new Rkb());
- }
- for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
- b = BD(mlb(e), 81);
- b.o = Qje;
- for (g = b.f.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 81);
- BD(Wd(irb(h.f, f2)), 15).Fc(b);
- }
- }
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- b.f.$b();
- b.f = BD(Wd(irb(h.f, b)), 15);
- }
- rVb(a);
- }
- function dNb(a, b, c2, d) {
- var e, f2;
- cNb(a, b, c2, d);
- qNb(b, a.j - b.j + c2);
- rNb(b, a.k - b.k + d);
- for (f2 = new olb(b.f); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 324);
- switch (e.a.g) {
- case 0:
- nNb(a, b.g + e.b.a, 0, b.g + e.c.a, b.i - 1);
- break;
- case 1:
- nNb(a, b.g + b.o, b.i + e.b.a, a.o - 1, b.i + e.c.a);
- break;
- case 2:
- nNb(a, b.g + e.b.a, b.i + b.p, b.g + e.c.a, a.p - 1);
- break;
- default:
- nNb(a, 0, b.i + e.b.a, b.g - 1, b.i + e.c.a);
- }
- }
- }
- function aNb(b, c2, d, e, f2) {
- var g, h, i3;
- try {
- if (c2 >= b.o) {
- throw vbb(new rcb());
- }
- i3 = c2 >> 5;
- h = c2 & 31;
- g = Nbb(1, Tbb(Nbb(h, 1)));
- f2 ? b.n[d][i3] = Mbb(b.n[d][i3], g) : b.n[d][i3] = xbb(b.n[d][i3], Lbb(g));
- g = Nbb(g, 1);
- e ? b.n[d][i3] = Mbb(b.n[d][i3], g) : b.n[d][i3] = xbb(b.n[d][i3], Lbb(g));
- } catch (a) {
- a = ubb(a);
- if (JD(a, 320)) {
- throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
- } else
- throw vbb(a);
- }
- }
- function BUc(a, b, c2, d) {
- var e, f2, g;
- if (b) {
- f2 = Edb(ED(vNb(b, (mTc(), fTc)))) + d;
- g = c2 + Edb(ED(vNb(b, bTc))) / 2;
- yNb(b, kTc, meb(Tbb(Cbb($wnd.Math.round(f2)))));
- yNb(b, lTc, meb(Tbb(Cbb($wnd.Math.round(g)))));
- b.d.b == 0 || BUc(a, BD(pr((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86), c2 + Edb(ED(vNb(b, bTc))) + a.a, d + Edb(ED(vNb(b, cTc))));
- vNb(b, iTc) != null && BUc(a, BD(vNb(b, iTc), 86), c2, d);
- }
- }
- function N9b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- i3 = Q_b(b.a);
- e = Edb(ED(vNb(i3, (Nyc(), pyc)))) * 2;
- k = Edb(ED(vNb(i3, wyc)));
- j = $wnd.Math.max(e, k);
- f2 = KC(UD, Vje, 25, b.f - b.c + 1, 15, 1);
- d = -j;
- c2 = 0;
- for (h = b.b.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 10);
- d += a.a[g.c.p] + j;
- f2[c2++] = d;
- }
- d += a.a[b.a.c.p] + j;
- f2[c2++] = d;
- for (m = new olb(b.e); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- d += a.a[l.c.p] + j;
- f2[c2++] = d;
- }
- return f2;
- }
- function GHc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m;
- m = new Hxb(new pIc(a));
- for (h = OC(GC(OQ, 1), kne, 10, 0, [b, c2]), i3 = 0, j = h.length; i3 < j; ++i3) {
- g = h[i3];
- for (l = CHc(g, d).Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 11);
- for (f2 = new b1b(k.b); llb(f2.a) || llb(f2.b); ) {
- e = BD(llb(f2.a) ? mlb(f2.a) : mlb(f2.b), 17);
- if (!OZb(e)) {
- Iwb(m.a, k, (Bcb(), zcb)) == null;
- WHc(e) && Axb(m, k == e.c ? e.d : e.c);
- }
- }
- }
- }
- return Qb(m), new Tkb(m);
- }
- function zhd(a, b) {
- var c2, d, e, f2;
- f2 = BD(hkd(a, (Y9c(), A9c)), 61).g - BD(hkd(b, A9c), 61).g;
- if (f2 != 0) {
- return f2;
- }
- c2 = BD(hkd(a, v9c), 19);
- d = BD(hkd(b, v9c), 19);
- if (!!c2 && !!d) {
- e = c2.a - d.a;
- if (e != 0) {
- return e;
- }
- }
- switch (BD(hkd(a, A9c), 61).g) {
- case 1:
- return Kdb(a.i, b.i);
- case 2:
- return Kdb(a.j, b.j);
- case 3:
- return Kdb(b.i, a.i);
- case 4:
- return Kdb(b.j, a.j);
- default:
- throw vbb(new Zdb(ine));
- }
- }
- function _od(a) {
- var b, c2, d;
- if ((a.Db & 64) != 0)
- return fld(a);
- b = new Wfb(ete);
- c2 = a.k;
- if (!c2) {
- !a.n && (a.n = new cUd(D2, a, 1, 7));
- if (a.n.i > 0) {
- d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
- !d || Qfb(Qfb((b.a += ' "', b), d), '"');
- }
- } else {
- Qfb(Qfb((b.a += ' "', b), c2), '"');
- }
- Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
- return b.a;
- }
- function opd(a) {
- var b, c2, d;
- if ((a.Db & 64) != 0)
- return fld(a);
- b = new Wfb(fte);
- c2 = a.k;
- if (!c2) {
- !a.n && (a.n = new cUd(D2, a, 1, 7));
- if (a.n.i > 0) {
- d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
- !d || Qfb(Qfb((b.a += ' "', b), d), '"');
- }
- } else {
- Qfb(Qfb((b.a += ' "', b), c2), '"');
- }
- Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
- return b.a;
- }
- function h4c(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (b == null || b.length == 0) {
- return null;
- }
- e = BD(Phb(a.a, b), 149);
- if (!e) {
- for (d = (h = new $ib(a.b).a.vc().Kc(), new djb(h)); d.a.Ob(); ) {
- c2 = (f2 = BD(d.a.Pb(), 42), BD(f2.dd(), 149));
- g = c2.c;
- i3 = b.length;
- if (dfb(g.substr(g.length - i3, i3), b) && (b.length == g.length || bfb(g, g.length - b.length - 1) == 46)) {
- if (e) {
- return null;
- }
- e = c2;
- }
- }
- !!e && Shb(a.a, b, e);
- }
- return e;
- }
- function QLb(a, b) {
- var c2, d, e, f2;
- c2 = new VLb();
- d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
- e = d.gc();
- d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
- f2 = d.gc();
- if (e < f2) {
- return -1;
- }
- if (e == f2) {
- return 0;
- }
- return 1;
- }
- function r5b(a) {
- var b, c2, d;
- if (!wNb(a, (Nyc(), xxc))) {
- return;
- }
- d = BD(vNb(a, xxc), 21);
- if (d.dc()) {
- return;
- }
- c2 = (b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
- d.Hc((Hbd(), Cbd)) ? rqb(c2, Cbd) : rqb(c2, Dbd);
- d.Hc(Abd) || rqb(c2, Abd);
- d.Hc(zbd) ? rqb(c2, Gbd) : d.Hc(ybd) ? rqb(c2, Fbd) : d.Hc(Bbd) && rqb(c2, Ebd);
- d.Hc(Gbd) ? rqb(c2, zbd) : d.Hc(Fbd) ? rqb(c2, ybd) : d.Hc(Ebd) && rqb(c2, Bbd);
- yNb(a, xxc, c2);
- }
- function kHc(a) {
- var b, c2, d, e, f2, g, h;
- e = BD(vNb(a, (wtc(), Psc)), 10);
- d = a.j;
- c2 = (tCb(0, d.c.length), BD(d.c[0], 11));
- for (g = new olb(e.j); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 11);
- if (PD(f2) === PD(vNb(c2, $sc))) {
- if (f2.j == (Ucd(), Acd) && a.p > e.p) {
- G0b(f2, Rcd);
- if (f2.d) {
- h = f2.o.b;
- b = f2.a.b;
- f2.a.b = h - b;
- }
- } else if (f2.j == Rcd && e.p > a.p) {
- G0b(f2, Acd);
- if (f2.d) {
- h = f2.o.b;
- b = f2.a.b;
- f2.a.b = -(h - b);
- }
- }
+ case 18:
+ return 13;
break;
- }
- }
- return e;
- }
- function NOc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2;
- f2 = c2;
- if (c2 < d) {
- m = (n = new uOc(a.p), o2 = new uOc(a.p), ye(n.e, a.e), n.q = a.q, n.r = o2, lOc(n), ye(o2.j, a.j), o2.r = n, lOc(o2), new vgd(n, o2));
- l = BD(m.a, 112);
- k = BD(m.b, 112);
- e = (tCb(f2, b.c.length), BD(b.c[f2], 329));
- g = UOc(a, l, k, e);
- for (j = c2 + 1; j <= d; j++) {
- h = (tCb(j, b.c.length), BD(b.c[j], 329));
- i3 = UOc(a, l, k, h);
- if (SOc(h, i3, e, g)) {
- e = h;
- g = i3;
- }
- }
- }
- return f2;
- }
- function wQb(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l;
- if (!(JD(b, 239) || JD(b, 354) || JD(b, 186))) {
- throw vbb(new Wdb("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));
- }
- g = a.a / 2;
- i3 = b.i + d - g;
- k = b.j + e - g;
- j = i3 + b.g + a.a;
- l = k + b.f + a.a;
- f2 = new s7c();
- Dsb(f2, new f7c(i3, k));
- Dsb(f2, new f7c(i3, l));
- Dsb(f2, new f7c(j, l));
- Dsb(f2, new f7c(j, k));
- h = new XOb(f2);
- tNb(h, b);
- c2 && Rhb(a.b, b, h);
- return h;
- }
- function uXb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- f2 = new f7c(b, c2);
- for (k = new olb(a.a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 10);
- P6c(j.n, f2);
- for (m = new olb(j.j); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 11);
- for (e = new olb(l.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- q7c(d.a, f2);
- g = BD(vNb(d, (Nyc(), jxc)), 74);
- !!g && q7c(g, f2);
- for (i3 = new olb(d.b); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 70);
- P6c(h.n, f2);
- }
- }
- }
- }
- }
- function g_b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- f2 = new f7c(b, c2);
- for (k = new olb(a.a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 10);
- P6c(j.n, f2);
- for (m = new olb(j.j); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 11);
- for (e = new olb(l.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- q7c(d.a, f2);
- g = BD(vNb(d, (Nyc(), jxc)), 74);
- !!g && q7c(g, f2);
- for (i3 = new olb(d.b); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 70);
- P6c(h.n, f2);
- }
- }
- }
- }
- }
- function N1b(a) {
- if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0) {
- throw vbb(new z2c("Edges must have a source."));
- } else if ((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 0) {
- throw vbb(new z2c("Edges must have a target."));
- } else {
- !a.b && (a.b = new y5d(z2, a, 4, 7));
- if (!(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1))) {
- throw vbb(new z2c("Hyperedges are not supported."));
- }
- }
- }
- function OFc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- l = 0;
- f2 = new jkb();
- Wjb(f2, b);
- while (f2.b != f2.c) {
- i3 = BD(fkb(f2), 214);
- j = 0;
- k = BD(vNb(b.j, (Nyc(), ywc)), 339);
- g = Edb(ED(vNb(b.j, uwc)));
- h = Edb(ED(vNb(b.j, vwc)));
- if (k != (tAc(), rAc)) {
- j += g * PFc(i3.e, k);
- j += h * QFc(i3.e);
- }
- l += pHc(i3.d, i3.e) + j;
- for (e = new olb(i3.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 37);
- c2 = BD(Ikb(a.b, d.p), 214);
- c2.s || (l += NFc(a, c2));
- }
- }
- return l;
- }
- function dhb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- n = b.length;
- i3 = n;
- BCb(0, b.length);
- if (b.charCodeAt(0) == 45) {
- l = -1;
- m = 1;
- --n;
- } else {
- l = 1;
- m = 0;
- }
- f2 = (phb(), ohb)[10];
- e = n / f2 | 0;
- q = n % f2;
- q != 0 && ++e;
- h = KC(WD, oje, 25, e, 15, 1);
- c2 = nhb[8];
- g = 0;
- o2 = m + (q == 0 ? f2 : q);
- for (p = m; p < i3; p = o2, o2 = p + f2) {
- d = Icb(b.substr(p, o2 - p), Rie, Ohe);
- j = (Dhb(), Hhb(h, h, g, c2));
- j += xhb(h, g, d);
- h[g++] = j;
- }
- k = g;
- a.e = l;
- a.d = k;
- a.a = h;
- Jgb(a);
- }
- function SGb(a, b, c2, d, e, f2, g) {
- a.c = d.qf().a;
- a.d = d.qf().b;
- if (e) {
- a.c += e.qf().a;
- a.d += e.qf().b;
- }
- a.b = b.rf().a;
- a.a = b.rf().b;
- if (!e) {
- c2 ? a.c -= g + b.rf().a : a.c += d.rf().a + g;
- } else {
- switch (e.Hf().g) {
- case 0:
- case 2:
- a.c += e.rf().a + g + f2.a + g;
- break;
- case 4:
- a.c -= g + f2.a + g + b.rf().a;
- break;
- case 1:
- a.c += e.rf().a + g;
- a.d -= g + f2.b + g + b.rf().b;
- break;
- case 3:
- a.c += e.rf().a + g;
- a.d += e.rf().b + g + f2.b + g;
- }
- }
- }
- function gac(a, b) {
- var c2, d;
- this.b = new Rkb();
- this.e = new Rkb();
- this.a = a;
- this.d = b;
- dac(this);
- eac(this);
- this.b.dc() ? this.c = a.c.p : this.c = BD(this.b.Xb(0), 10).c.p;
- this.e.c.length == 0 ? this.f = a.c.p : this.f = BD(Ikb(this.e, this.e.c.length - 1), 10).c.p;
- for (d = BD(vNb(a, (wtc(), ktc)), 15).Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 70);
- if (wNb(c2, (Nyc(), Owc))) {
- this.d = BD(vNb(c2, Owc), 227);
- break;
- }
- }
- }
- function Anc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- d = BD(Ohb(a.a, b), 53);
- f2 = BD(Ohb(a.a, c2), 53);
- e = BD(Ohb(a.e, b), 53);
- g = BD(Ohb(a.e, c2), 53);
- d.a.zc(c2, d);
- g.a.zc(b, g);
- for (k = f2.a.ec().Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 10);
- d.a.zc(j, d);
- Qqb(BD(Ohb(a.e, j), 53), b);
- ye(BD(Ohb(a.e, j), 53), e);
- }
- for (i3 = e.a.ec().Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 10);
- g.a.zc(h, g);
- Qqb(BD(Ohb(a.a, h), 53), c2);
- ye(BD(Ohb(a.a, h), 53), f2);
- }
- }
- function WGc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- d = BD(Ohb(a.a, b), 53);
- f2 = BD(Ohb(a.a, c2), 53);
- e = BD(Ohb(a.b, b), 53);
- g = BD(Ohb(a.b, c2), 53);
- d.a.zc(c2, d);
- g.a.zc(b, g);
- for (k = f2.a.ec().Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 10);
- d.a.zc(j, d);
- Qqb(BD(Ohb(a.b, j), 53), b);
- ye(BD(Ohb(a.b, j), 53), e);
- }
- for (i3 = e.a.ec().Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 10);
- g.a.zc(h, g);
- Qqb(BD(Ohb(a.a, h), 53), c2);
- ye(BD(Ohb(a.a, h), 53), f2);
- }
- }
- function doc(a, b) {
- var c2, d, e;
- Odd(b, "Breaking Point Insertion", 1);
- d = new Xoc(a);
- switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) {
- case 2:
- e = new hpc();
- case 0:
- e = new Ync();
+ case 19:
+ return 22;
break;
- default:
- e = new kpc();
- }
- c2 = e.Vf(a, d);
- Ccb(DD(vNb(a, Iyc))) && (c2 = coc(a, c2));
- if (!e.Wf() && wNb(a, Myc)) {
- switch (BD(vNb(a, Myc), 338).g) {
- case 2:
- c2 = tpc(d, c2);
- break;
- case 1:
- c2 = rpc(d, c2);
- }
- }
- if (c2.dc()) {
- Qdd(b);
- return;
- }
- aoc(a, c2);
- Qdd(b);
- }
- function $qd(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- k = null;
- m = b;
- l = Rqd(a, dtd(c2), m);
- Lkd(l, _pd(m, Vte));
- g = Ypd(m, Lte);
- d = new mrd(a, l);
- oqd(d.a, d.b, g);
- h = Ypd(m, Mte);
- e = new nrd(a, l);
- pqd(e.a, e.b, h);
- if ((!l.b && (l.b = new y5d(z2, l, 4, 7)), l.b).i == 0 || (!l.c && (l.c = new y5d(z2, l, 5, 8)), l.c).i == 0) {
- f2 = _pd(m, Vte);
- i3 = Zte + f2;
- j = i3 + $te;
- throw vbb(new cqd(j));
- }
- grd(m, l);
- _qd(a, m, l);
- k = crd(a, m, l);
- return k;
- }
- function yGb(a, b) {
- var c2, d, e, f2, g, h, i3;
- e = KC(WD, oje, 25, a.e.a.c.length, 15, 1);
- for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 121);
- e[f2.d] += f2.b.a.c.length;
- }
- h = Ru(b);
- while (h.b != 0) {
- f2 = BD(h.b == 0 ? null : (sCb(h.b != 0), Nsb(h, h.a.a)), 121);
- for (d = vr(new olb(f2.g.a)); d.Ob(); ) {
- c2 = BD(d.Pb(), 213);
- i3 = c2.e;
- i3.e = $wnd.Math.max(i3.e, f2.e + c2.a);
- --e[i3.d];
- e[i3.d] == 0 && (Gsb(h, i3, h.c.b, h.c), true);
- }
- }
- }
- function CGb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- c2 = Rie;
- e = Ohe;
- for (h = new olb(a.e.a); h.a < h.c.c.length; ) {
- f2 = BD(mlb(h), 121);
- e = $wnd.Math.min(e, f2.e);
- c2 = $wnd.Math.max(c2, f2.e);
- }
- b = KC(WD, oje, 25, c2 - e + 1, 15, 1);
- for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 121);
- f2.e -= e;
- ++b[f2.e];
- }
- d = 0;
- if (a.k != null) {
- for (j = a.k, k = 0, l = j.length; k < l; ++k) {
- i3 = j[k];
- b[d++] += i3;
- if (b.length == d) {
- break;
- }
- }
- }
- return b;
- }
- function ixd(a) {
- switch (a.d) {
- case 9:
- case 8: {
- return true;
- }
- case 3:
- case 5:
- case 4:
- case 6: {
- return false;
- }
- case 7: {
- return BD(hxd(a), 19).a == a.o;
- }
- case 1:
- case 2: {
- if (a.o == -2) {
- return false;
- } else {
- switch (a.p) {
- case 0:
- case 1:
- case 2:
- case 6:
- case 5:
- case 7: {
- return Bbb(a.k, a.f);
- }
- case 3:
- case 4: {
- return a.j == a.e;
- }
- default: {
- return a.n == null ? a.g == null : pb(a.n, a.g);
- }
- }
- }
- }
- default: {
- return false;
- }
- }
- }
- function $ad(a) {
- r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Qse), "ELK Fixed"), "Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."), new bbd())));
- p4c(a, Qse, ame, Xad);
- p4c(a, Qse, uqe, Ksd(Yad));
- p4c(a, Qse, use, Ksd(Sad));
- p4c(a, Qse, Fme, Ksd(Tad));
- p4c(a, Qse, Tme, Ksd(Vad));
- p4c(a, Qse, bqe, Ksd(Uad));
- }
- function ro(a, b, c2) {
- var d, e, f2, g, h;
- d = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
- h = Tbb(Ibb(Eie, keb(Tbb(Ibb(c2 == null ? 0 : tb(c2), Fie)), 15)));
- f2 = uo(a, b, d);
- if (!!f2 && h == f2.f && Hb(c2, f2.i)) {
- return c2;
- }
- g = vo(a, c2, h);
- if (g) {
- throw vbb(new Wdb("value already present: " + c2));
- }
- e = new $o(b, d, c2, h);
- if (f2) {
- mo(a, f2);
- po(a, e, f2);
- f2.e = null;
- f2.c = null;
- return f2.i;
- } else {
- po(a, e, null);
- to(a);
- return null;
- }
- }
- function E4b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2;
- k = c2.a.c;
- g = c2.a.c + c2.a.b;
- f2 = BD(Ohb(c2.c, b), 459);
- n = f2.f;
- o2 = f2.a;
- f2.b ? i3 = new f7c(g, n) : i3 = new f7c(k, n);
- f2.c ? l = new f7c(k, o2) : l = new f7c(g, o2);
- e = k;
- c2.p || (e += a.c);
- e += c2.F + c2.v * a.b;
- j = new f7c(e, n);
- m = new f7c(e, o2);
- n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i3, j]));
- h = c2.d.a.gc() > 1;
- if (h) {
- d = new f7c(e, c2.b);
- Dsb(b.a, d);
- }
- n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l]));
- }
- function Nid(a, b, c2) {
- var d, e, f2, g, h, i3;
- if (!b) {
- return null;
- } else {
- if (c2 <= -1) {
- d = XKd(b.Tg(), -1 - c2);
- if (JD(d, 99)) {
- return BD(d, 18);
- } else {
- g = BD(b.ah(d), 153);
- for (h = 0, i3 = g.gc(); h < i3; ++h) {
- if (PD(g.jl(h)) === PD(a)) {
- e = g.il(h);
- if (JD(e, 99)) {
- f2 = BD(e, 18);
- if ((f2.Bb & ote) != 0) {
- return f2;
- }
- }
- }
- }
- throw vbb(new Zdb("The containment feature could not be located"));
- }
- } else {
- return zUd(BD(XKd(a.Tg(), c2), 18));
- }
- }
- }
- function Xee(a) {
- var b, c2, d, e, f2;
- d = a.length;
- b = new Ifb();
- f2 = 0;
- while (f2 < d) {
- c2 = bfb(a, f2++);
- if (c2 == 9 || c2 == 10 || c2 == 12 || c2 == 13 || c2 == 32)
- continue;
- if (c2 == 35) {
- while (f2 < d) {
- c2 = bfb(a, f2++);
- if (c2 == 13 || c2 == 10)
- break;
- }
- continue;
- }
- if (c2 == 92 && f2 < d) {
- if ((e = (BCb(f2, a.length), a.charCodeAt(f2))) == 35 || e == 9 || e == 10 || e == 12 || e == 13 || e == 32) {
- Afb(b, e & aje);
- ++f2;
- } else {
- b.a += "\\";
- Afb(b, e & aje);
- ++f2;
- }
- } else
- Afb(b, c2 & aje);
- }
- return b.a;
- }
- function GVc(a, b) {
- var c2, d, e;
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 33);
- Rc(a.a, c2, c2);
- Rc(a.b, c2, c2);
- e = gVc(c2);
- if (e.c.length != 0) {
- !!a.d && a.d.lg(e);
- Rc(a.a, c2, (tCb(0, e.c.length), BD(e.c[0], 33)));
- Rc(a.b, c2, BD(Ikb(e, e.c.length - 1), 33));
- while (dVc(e).c.length != 0) {
- e = dVc(e);
- !!a.d && a.d.lg(e);
- Rc(a.a, c2, (tCb(0, e.c.length), BD(e.c[0], 33)));
- Rc(a.b, c2, BD(Ikb(e, e.c.length - 1), 33));
- }
- }
- }
- }
- function fnc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- c2 = 0;
- for (h = new olb(a.d); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 101);
- !!g.i && (g.i.c = c2++);
- }
- b = IC(sbb, [nie, dle], [177, 25], 16, [c2, c2], 2);
- k = a.d;
- for (e = 0; e < k.c.length; e++) {
- i3 = (tCb(e, k.c.length), BD(k.c[e], 101));
- if (i3.i) {
- for (f2 = e + 1; f2 < k.c.length; f2++) {
- j = (tCb(f2, k.c.length), BD(k.c[f2], 101));
- if (j.i) {
- d = knc(i3, j);
- b[i3.i.c][j.i.c] = d;
- b[j.i.c][i3.i.c] = d;
- }
- }
- }
- }
- return b;
- }
- function ht(a, b, c2, d) {
- var e, f2, g;
- g = new qu(b, c2);
- if (!a.a) {
- a.a = a.e = g;
- Rhb(a.b, b, new pu(g));
- ++a.c;
- } else if (!d) {
- a.e.b = g;
- g.d = a.e;
- a.e = g;
- e = BD(Ohb(a.b, b), 283);
- if (!e) {
- Rhb(a.b, b, e = new pu(g));
- ++a.c;
- } else {
- ++e.a;
- f2 = e.c;
- f2.c = g;
- g.e = f2;
- e.c = g;
- }
- } else {
- e = BD(Ohb(a.b, b), 283);
- ++e.a;
- g.d = d.d;
- g.e = d.e;
- g.b = d;
- g.c = d;
- !d.e ? BD(Ohb(a.b, b), 283).b = g : d.e.c = g;
- !d.d ? a.a = g : d.d.b = g;
- d.d = g;
- d.e = g;
- }
- ++a.d;
- return g;
- }
- function mfb(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- c2 = new RegExp(b, "g");
- i3 = KC(ZI, nie, 2, 0, 6, 1);
- d = 0;
- j = a;
- f2 = null;
- while (true) {
- h = c2.exec(j);
- if (h == null || j == "") {
- i3[d] = j;
+ case 20:
+ return 11;
break;
- } else {
- g = h.index;
- i3[d] = j.substr(0, g);
- j = qfb(j, g + h[0].length, j.length);
- c2.lastIndex = 0;
- if (f2 == j) {
- i3[d] = j.substr(0, 1);
- j = j.substr(1);
- }
- f2 = j;
- ++d;
- }
- }
- if (a.length > 0) {
- e = i3.length;
- while (e > 0 && i3[e - 1] == "") {
- --e;
- }
- e < i3.length && (i3.length = e);
- }
- return i3;
- }
- function f1d(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- l = _Kd(b);
- j = null;
- e = false;
- for (h = 0, k = VKd(l.a).i; h < k; ++h) {
- g = BD(nOd(l, h, (f2 = BD(qud(VKd(l.a), h), 87), i3 = f2.c, JD(i3, 88) ? BD(i3, 26) : (jGd(), _Fd))), 26);
- c2 = f1d(a, g);
- if (!c2.dc()) {
- if (!j) {
- j = c2;
- } else {
- if (!e) {
- e = true;
- j = new pFd(j);
- }
- j.Gc(c2);
- }
- }
- }
- d = k1d(a, b);
- if (d.dc()) {
- return !j ? (mmb(), mmb(), jmb) : j;
- } else {
- if (!j) {
- return d;
- } else {
- e || (j = new pFd(j));
- j.Gc(d);
- return j;
- }
- }
- }
- function g1d(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- l = _Kd(b);
- j = null;
- d = false;
- for (h = 0, k = VKd(l.a).i; h < k; ++h) {
- f2 = BD(nOd(l, h, (e = BD(qud(VKd(l.a), h), 87), i3 = e.c, JD(i3, 88) ? BD(i3, 26) : (jGd(), _Fd))), 26);
- c2 = g1d(a, f2);
- if (!c2.dc()) {
- if (!j) {
- j = c2;
- } else {
- if (!d) {
- d = true;
- j = new pFd(j);
- }
- j.Gc(c2);
- }
- }
- }
- g = n1d(a, b);
- if (g.dc()) {
- return !j ? (mmb(), mmb(), jmb) : j;
- } else {
- if (!j) {
- return g;
- } else {
- d || (j = new pFd(j));
- j.Gc(g);
- return j;
- }
- }
- }
- function B2d(a, b, c2) {
- var d, e, f2, g, h, i3;
- if (JD(b, 72)) {
- return Txd(a, b, c2);
- } else {
- h = null;
- f2 = null;
- d = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- e = d[g];
- if (pb(b, e.dd())) {
- f2 = e.ak();
- if (JD(f2, 99) && (BD(f2, 18).Bb & ote) != 0) {
- h = e;
- break;
- }
- }
- }
- if (h) {
- if (oid(a.e)) {
- i3 = f2.$j() ? H2d(a, 4, f2, b, null, M2d(a, f2, b, JD(f2, 99) && (BD(f2, 18).Bb & Tje) != 0), true) : H2d(a, f2.Kj() ? 2 : 1, f2, b, f2.zj(), -1, true);
- c2 ? c2.Ei(i3) : c2 = i3;
- }
- c2 = B2d(a, h, c2);
- }
- return c2;
- }
- }
- function pKb(a) {
- var b, c2, d, e;
- d = a.o;
- $Jb();
- if (a.A.dc() || pb(a.A, ZJb)) {
- e = d.a;
- } else {
- e = gIb(a.f);
- if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) {
- e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, (Ucd(), Acd)), 244)));
- e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, Rcd), 244)));
- }
- b = aKb(a);
- !!b && (e = $wnd.Math.max(e, b.a));
- }
- Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? d.a = $wnd.Math.max(d.a, e) : d.a = e;
- c2 = a.f.i;
- c2.c = 0;
- c2.b = e;
- hIb(a.f);
- }
- function $0d(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- c2 = b.Hh(a.a);
- if (c2) {
- i3 = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), "memberTypes"));
- if (i3 != null) {
- j = new Rkb();
- for (f2 = mfb(i3, "\\w"), g = 0, h = f2.length; g < h; ++g) {
- e = f2[g];
- d = e.lastIndexOf("#");
- k = d == -1 ? w1d(a, b.Aj(), e) : d == 0 ? v1d(a, null, e.substr(1)) : v1d(a, e.substr(0, d), e.substr(d + 1));
- JD(k, 148) && Ekb(j, BD(k, 148));
- }
- return j;
- }
- }
- return mmb(), mmb(), jmb;
- }
- function tRb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- Odd(c2, kme, 1);
- a.bf(b);
- f2 = 0;
- while (a.df(f2)) {
- for (k = new olb(b.e); k.a < k.c.c.length; ) {
- i3 = BD(mlb(k), 144);
- for (h = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [b.e, b.d, b.b]))); Qr(h); ) {
- g = BD(Rr(h), 357);
- if (g != i3) {
- e = a.af(g, i3);
- !!e && P6c(i3.a, e);
- }
- }
- }
- for (j = new olb(b.e); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 144);
- d = i3.a;
- Q6c(d, -a.d, -a.d, a.d, a.d);
- P6c(i3.d, d);
- X6c(d);
- }
- a.cf();
- ++f2;
- }
- Qdd(c2);
- }
- function $2d(a, b, c2) {
- var d, e, f2, g;
- g = S6d(a.e.Tg(), b);
- d = BD(a.g, 119);
- Q6d();
- if (BD(b, 66).Oj()) {
- for (f2 = 0; f2 < a.i; ++f2) {
- e = d[f2];
- if (g.rl(e.ak())) {
- if (pb(e, c2)) {
- Xxd(a, f2);
- return true;
- }
- }
- }
- } else if (c2 != null) {
- for (f2 = 0; f2 < a.i; ++f2) {
- e = d[f2];
- if (g.rl(e.ak())) {
- if (pb(c2, e.dd())) {
- Xxd(a, f2);
- return true;
- }
- }
- }
- } else {
- for (f2 = 0; f2 < a.i; ++f2) {
- e = d[f2];
- if (g.rl(e.ak())) {
- if (e.dd() == null) {
- Xxd(a, f2);
- return true;
- }
- }
- }
- }
- return false;
- }
- function sDc(a, b) {
- var c2, d, e, f2, g;
- a.c == null || a.c.length < b.c.length ? a.c = KC(sbb, dle, 25, b.c.length, 16, 1) : Blb(a.c);
- a.a = new Rkb();
- d = 0;
- for (g = new olb(b); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 10);
- e.p = d++;
- }
- c2 = new Psb();
- for (f2 = new olb(b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- if (!a.c[e.p]) {
- tDc(a, e);
- c2.b == 0 || (sCb(c2.b != 0), BD(c2.a.a.c, 15)).gc() < a.a.c.length ? Esb(c2, a.a) : Fsb(c2, a.a);
- a.a = new Rkb();
- }
- }
- return c2;
- }
- function jYc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2;
- g = BD(qud(b, 0), 33);
- dld(g, 0);
- eld(g, 0);
- m = new Rkb();
- m.c[m.c.length] = g;
- h = g;
- f2 = new d$c(a.a, g.g, g.f, (k$c(), j$c));
- for (n = 1; n < b.i; n++) {
- o2 = BD(qud(b, n), 33);
- i3 = kYc(a, g$c, o2, h, f2, m, c2);
- j = kYc(a, f$c, o2, h, f2, m, c2);
- k = kYc(a, i$c, o2, h, f2, m, c2);
- l = kYc(a, h$c, o2, h, f2, m, c2);
- e = mYc(a, i3, j, k, l, o2, h, d);
- dld(o2, e.d);
- eld(o2, e.e);
- c$c(e, j$c);
- f2 = e;
- h = o2;
- m.c[m.c.length] = o2;
- }
- return f2;
- }
- function K0c(a) {
- r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), ase), "ELK SPOrE Overlap Removal"), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new N0c())));
- p4c(a, ase, Qre, Ksd(I0c));
- p4c(a, ase, ame, G0c);
- p4c(a, ase, wme, 8);
- p4c(a, ase, Vre, Ksd(H0c));
- p4c(a, ase, Yre, Ksd(E0c));
- p4c(a, ase, Zre, Ksd(F0c));
- p4c(a, ase, Zpe, (Bcb(), false));
- }
- function sXb(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n;
- g = O6c(b.c, c2, d);
- for (l = new olb(b.a); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 10);
- P6c(k.n, g);
- for (n = new olb(k.j); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 11);
- for (f2 = new olb(m.g); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 17);
- q7c(e.a, g);
- h = BD(vNb(e, (Nyc(), jxc)), 74);
- !!h && q7c(h, g);
- for (j = new olb(e.b); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 70);
- P6c(i3.n, g);
- }
- }
- }
- Ekb(a.a, k);
- k.a = a;
- }
- }
- function g9b(a, b) {
- var c2, d, e, f2, g;
- Odd(b, "Node and Port Label Placement and Node Sizing", 1);
- MGb((a$b(), new l$b(a, true, true, new j9b())));
- if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
- f2 = BD(vNb(a, (Nyc(), Yxc)), 21);
- e = f2.Hc((rcd(), ocd));
- g = Ccb(DD(vNb(a, Zxc)));
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- MAb(JAb(new YAb(null, new Kub(c2.a, 16)), new l9b()), new n9b(f2, e, g));
- }
- }
- Qdd(b);
- }
- function Y0d(a, b) {
- var c2, d, e, f2, g, h;
- c2 = b.Hh(a.a);
- if (c2) {
- h = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), eue));
- if (h != null) {
- e = kfb(h, wfb(35));
- d = b.Hj();
- if (e == -1) {
- g = u1d(a, bKd(d));
- f2 = h;
- } else if (e == 0) {
- g = null;
- f2 = h.substr(1);
- } else {
- g = h.substr(0, e);
- f2 = h.substr(e + 1);
- }
- switch ($1d(q1d(a, b))) {
- case 2:
- case 3: {
- return j1d(a, d, g, f2);
- }
- case 0:
- case 4:
- case 5:
- case 6: {
- return m1d(a, d, g, f2);
- }
- }
- }
- }
- return null;
- }
- function q2d(a, b, c2) {
- var d, e, f2, g, h;
- g = (Q6d(), BD(b, 66).Oj());
- if (T6d(a.e, b)) {
- if (b.hi() && F2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
- return false;
- }
- } else {
- h = S6d(a.e.Tg(), b);
- d = BD(a.g, 119);
- for (f2 = 0; f2 < a.i; ++f2) {
- e = d[f2];
- if (h.rl(e.ak())) {
- if (g ? pb(e, c2) : c2 == null ? e.dd() == null : pb(c2, e.dd())) {
- return false;
- } else {
- BD(Gtd(a, f2, g ? BD(c2, 72) : R6d(b, c2)), 72);
- return true;
- }
- }
- }
- }
- return wtd(a, g ? BD(c2, 72) : R6d(b, c2));
- }
- function uVb(a) {
- var b, c2, d, e, f2, g, h, i3;
- if (a.d) {
- throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke)));
- }
- a.c == (ead(), cad) && tVb(a, aad);
- for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 189);
- b.e = 0;
- }
- for (g = new olb(a.a.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 81);
- f2.o = Qje;
- for (e = f2.f.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 81);
- ++d.d.e;
- }
- }
- JVb(a);
- for (i3 = new olb(a.a.b); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 81);
- h.k = true;
- }
- return a;
- }
- function Ijc(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- h = new pjc(a);
- c2 = new Psb();
- Gsb(c2, b, c2.c.b, c2.c);
- while (c2.b != 0) {
- d = BD(c2.b == 0 ? null : (sCb(c2.b != 0), Nsb(c2, c2.a.a)), 113);
- d.d.p = 1;
- for (g = new olb(d.e); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 409);
- kjc(h, e);
- j = e.d;
- j.d.p == 0 && (Gsb(c2, j, c2.c.b, c2.c), true);
- }
- for (f2 = new olb(d.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 409);
- kjc(h, e);
- i3 = e.c;
- i3.d.p == 0 && (Gsb(c2, i3, c2.c.b, c2.c), true);
- }
- }
- return h;
- }
- function hfd(a) {
- var b, c2, d, e, f2;
- d = Edb(ED(hkd(a, (Y9c(), G9c))));
- if (d == 1) {
- return;
- }
- _kd(a, d * a.g, d * a.f);
- c2 = Mq(Rq((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), new Hfd()));
- for (f2 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n), (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), c2]))); Qr(f2); ) {
- e = BD(Rr(f2), 470);
- e.Gg(d * e.Dg(), d * e.Eg());
- e.Fg(d * e.Cg(), d * e.Bg());
- b = BD(e.We(r9c), 8);
- if (b) {
- b.a *= d;
- b.b *= d;
- }
- }
- }
- function Mac(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m;
- for (g = new olb(a.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- m = l_b(f2.a);
- for (j = m, k = 0, l = j.length; k < l; ++k) {
- i3 = j[k];
- switch (BD(vNb(i3, (Nyc(), mxc)), 163).g) {
- case 1:
- Qac(i3);
- $_b(i3, b);
- Nac(i3, true, d);
- break;
- case 3:
- Rac(i3);
- $_b(i3, c2);
- Nac(i3, false, e);
- }
- }
- }
- h = new Bib(a.b, 0);
- while (h.b < h.d.gc()) {
- (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)).a.c.length == 0 && uib(h);
- }
- }
- function d1d(a, b) {
- var c2, d, e, f2, g, h, i3;
- c2 = b.Hh(a.a);
- if (c2) {
- i3 = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Dwe));
- if (i3 != null) {
- d = new Rkb();
- for (f2 = mfb(i3, "\\w"), g = 0, h = f2.length; g < h; ++g) {
- e = f2[g];
- dfb(e, "##other") ? Ekb(d, "!##" + u1d(a, bKd(b.Hj()))) : dfb(e, "##local") ? (d.c[d.c.length] = null, true) : dfb(e, Bwe) ? Ekb(d, u1d(a, bKd(b.Hj()))) : (d.c[d.c.length] = e, true);
- }
- return d;
- }
- }
- return mmb(), mmb(), jmb;
- }
- function kMb(a, b) {
- var c2, d, e, f2;
- c2 = new pMb();
- d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
- e = d.gc();
- d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
- f2 = d.gc();
- e = e == 1 ? 1 : 0;
- f2 = f2 == 1 ? 1 : 0;
- if (e < f2) {
- return -1;
- }
- if (e == f2) {
- return 0;
- }
- return 1;
- }
- function hZb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- h = a.i;
- e = Ccb(DD(vNb(h, (Nyc(), fxc))));
- k = 0;
- d = 0;
- for (j = new olb(a.g); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 17);
- g = OZb(i3);
- f2 = g && e && Ccb(DD(vNb(i3, gxc)));
- m = i3.d.i;
- g && f2 ? ++d : g && !f2 ? ++k : Q_b(m).e == h ? ++d : ++k;
- }
- for (c2 = new olb(a.e); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 17);
- g = OZb(b);
- f2 = g && e && Ccb(DD(vNb(b, gxc)));
- l = b.c.i;
- g && f2 ? ++k : g && !f2 ? ++d : Q_b(l).e == h ? ++k : ++d;
- }
- return k - d;
- }
- function ULc(a, b, c2, d) {
- this.e = a;
- this.k = BD(vNb(a, (wtc(), otc)), 304);
- this.g = KC(OQ, kne, 10, b, 0, 1);
- this.b = KC(BI, nie, 333, b, 7, 1);
- this.a = KC(OQ, kne, 10, b, 0, 1);
- this.d = KC(BI, nie, 333, b, 7, 1);
- this.j = KC(OQ, kne, 10, b, 0, 1);
- this.i = KC(BI, nie, 333, b, 7, 1);
- this.p = KC(BI, nie, 333, b, 7, 1);
- this.n = KC(wI, nie, 476, b, 8, 1);
- Alb(this.n, (Bcb(), false));
- this.f = KC(wI, nie, 476, b, 8, 1);
- Alb(this.f, true);
- this.o = c2;
- this.c = d;
- }
- function X9b(a, b) {
- var c2, d, e, f2, g, h;
- if (b.dc()) {
- return;
- }
- if (BD(b.Xb(0), 286).d == (Apc(), xpc)) {
- O9b(a, b);
- } else {
- for (d = b.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 286);
- switch (c2.d.g) {
- case 5:
- K9b(a, c2, Q9b(a, c2));
- break;
- case 0:
- K9b(a, c2, (g = c2.f - c2.c + 1, h = (g - 1) / 2 | 0, c2.c + h));
- break;
- case 4:
- K9b(a, c2, S9b(a, c2));
- break;
- case 2:
- Y9b(c2);
- K9b(a, c2, (f2 = U9b(c2), f2 ? c2.c : c2.f));
- break;
- case 1:
- Y9b(c2);
- K9b(a, c2, (e = U9b(c2), e ? c2.f : c2.c));
- }
- P9b(c2.a);
- }
- }
- }
- function C4b(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (b.e) {
- return;
- }
- b.e = true;
- for (d = b.d.a.ec().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 17);
- if (b.o && b.d.a.gc() <= 1) {
- g = b.a.c;
- h = b.a.c + b.a.b;
- i3 = new f7c(g + (h - g) / 2, b.b);
- Dsb(BD(b.d.a.ec().Kc().Pb(), 17).a, i3);
- continue;
- }
- e = BD(Ohb(b.c, c2), 459);
- if (e.b || e.c) {
- E4b(a, c2, b);
- continue;
- }
- f2 = a.d == (tBc(), sBc) && (e.d || e.e) && K4b(a, b) && b.d.a.gc() <= 1;
- f2 ? F4b(c2, b) : D4b(a, c2, b);
- }
- b.k && reb(b.d, new X4b());
- }
- function zXc(a, b, c2, d, e, f2) {
- var g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- m = f2;
- h = (d + e) / 2 + m;
- q = c2 * $wnd.Math.cos(h);
- r = c2 * $wnd.Math.sin(h);
- s = q - b.g / 2;
- t4 = r - b.f / 2;
- dld(b, s);
- eld(b, t4);
- l = a.a.jg(b);
- p = 2 * $wnd.Math.acos(c2 / c2 + a.c);
- if (p < e - d) {
- n = p / l;
- g = (d + e - p) / 2;
- } else {
- n = (e - d) / l;
- g = d;
- }
- o2 = gVc(b);
- if (a.e) {
- a.e.kg(a.d);
- a.e.lg(o2);
- }
- for (j = new olb(o2); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 33);
- k = a.a.jg(i3);
- zXc(a, i3, c2 + a.c, g, g + n * k, f2);
- g += n * k;
- }
- }
- function jA(a, b, c2) {
- var d;
- d = c2.q.getMonth();
- switch (b) {
- case 5:
- Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[d]);
+ case 21:
+ this.begin("NSTR2");
break;
- case 4:
- Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[d]);
+ case 22:
+ return "NODE_DESCR";
break;
- case 3:
- Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[d]);
+ case 23:
+ this.popState();
break;
- default:
- EA(a, d + 1, b);
- }
- }
- function uGb(a, b) {
- var c2, d, e, f2, g;
- Odd(b, "Network simplex", 1);
- if (a.e.a.c.length < 1) {
- Qdd(b);
- return;
- }
- for (f2 = new olb(a.e.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 121);
- e.e = 0;
- }
- g = a.e.a.c.length >= 40;
- g && FGb(a);
- wGb(a);
- vGb(a);
- c2 = zGb(a);
- d = 0;
- while (!!c2 && d < a.f) {
- tGb(a, c2, sGb(a, c2));
- c2 = zGb(a);
- ++d;
- }
- g && EGb(a);
- a.a ? qGb(a, CGb(a)) : CGb(a);
- a.b = null;
- a.d = null;
- a.p = null;
- a.c = null;
- a.g = null;
- a.i = null;
- a.n = null;
- a.o = null;
- Qdd(b);
- }
- function JQb(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m;
- i3 = new f7c(c2, d);
- c7c(i3, BD(vNb(b, (HSb(), ESb)), 8));
- for (m = new olb(b.e); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 144);
- P6c(l.d, i3);
- Ekb(a.e, l);
- }
- for (h = new olb(b.c); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 282);
- for (f2 = new olb(g.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 559);
- P6c(e.d, i3);
- }
- Ekb(a.c, g);
- }
- for (k = new olb(b.d); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 447);
- P6c(j.d, i3);
- Ekb(a.d, j);
- }
- }
- function _Bc(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- for (i3 = new olb(b.j); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 11);
- for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) {
- d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
- c2 = d.c == h ? d.d : d.c;
- f2 = c2.i;
- if (b == f2) {
- continue;
- }
- j = BD(vNb(d, (Nyc(), cyc)), 19).a;
- j < 0 && (j = 0);
- g = f2.p;
- if (a.b[g] == 0) {
- if (d.d == c2) {
- a.a[g] -= j + 1;
- a.a[g] <= 0 && a.c[g] > 0 && Dsb(a.f, f2);
- } else {
- a.c[g] -= j + 1;
- a.c[g] <= 0 && a.a[g] > 0 && Dsb(a.e, f2);
- }
- }
- }
- }
- }
- function _Kb(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- h = new Hxb(BD(Qb(new nLb()), 62));
- j = Qje;
- for (c2 = new olb(a.d); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 222);
- j = b.c.c;
- while (h.a.c != 0) {
- i3 = BD(zjb(Bwb(h.a)), 222);
- if (i3.c.c + i3.c.b < j) {
- Jwb(h.a, i3) != null;
- } else {
- break;
- }
- }
- for (g = (e = new Ywb(new cxb(new Gjb(h.a).a).b), new Njb(e)); sib(g.a.a); ) {
- f2 = (d = Wwb(g.a), BD(d.cd(), 222));
- Dsb(f2.b, b);
- Dsb(b.b, f2);
- }
- Iwb(h.a, b, (Bcb(), zcb)) == null;
- }
- }
- function QEc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- f2 = new Skb(b.c.length);
- for (j = new olb(b); j.a < j.c.c.length; ) {
- g = BD(mlb(j), 10);
- Ekb(f2, a.b[g.c.p][g.p]);
- }
- LEc(a, f2, c2);
- l = null;
- while (l = MEc(f2)) {
- NEc(a, BD(l.a, 233), BD(l.b, 233), f2);
- }
- b.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (e = new olb(f2); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 233);
- for (h = d.d, i3 = 0, k = h.length; i3 < k; ++i3) {
- g = h[i3];
- b.c[b.c.length] = g;
- a.a[g.c.p][g.p].a = REc(d.g, d.d[0]).a;
- }
- }
- }
- function JRc(a, b) {
- var c2, d, e, f2;
- if (0 < (JD(a, 14) ? BD(a, 14).gc() : sr(a.Kc()))) {
- e = b;
- if (1 < e) {
- --e;
- f2 = new KRc();
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 86);
- f2 = pl(OC(GC(KI, 1), Uhe, 20, 0, [f2, new ZRc(c2)]));
- }
- return JRc(f2, e);
- }
- if (e < 0) {
- f2 = new NRc();
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 86);
- f2 = pl(OC(GC(KI, 1), Uhe, 20, 0, [f2, new ZRc(c2)]));
- }
- if (0 < (JD(f2, 14) ? BD(f2, 14).gc() : sr(f2.Kc()))) {
- return JRc(f2, e);
- }
- }
- }
- return BD(pr(a.Kc()), 86);
- }
- function Idd() {
- Idd = ccb;
- Bdd = new Jdd("DEFAULT_MINIMUM_SIZE", 0);
- Ddd = new Jdd("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING", 1);
- Add = new Jdd("COMPUTE_PADDING", 2);
- Edd = new Jdd("OUTSIDE_NODE_LABELS_OVERHANG", 3);
- Fdd = new Jdd("PORTS_OVERHANG", 4);
- Hdd = new Jdd("UNIFORM_PORT_SPACING", 5);
- Gdd = new Jdd("SPACE_EFFICIENT_PORT_LABELS", 6);
- Cdd = new Jdd("FORCE_TABULAR_NODE_LABELS", 7);
- zdd = new Jdd("ASYMMETRICAL", 8);
- }
- function s6d(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- if (!b) {
- return null;
- } else {
- c2 = (f2 = b.Tg(), !f2 ? null : bKd(f2).Nh().Jh(f2));
- if (c2) {
- Xrb(a, b, c2);
- e = b.Tg();
- for (i3 = 0, j = (e.i == null && TKd(e), e.i).length; i3 < j; ++i3) {
- h = (d = (e.i == null && TKd(e), e.i), i3 >= 0 && i3 < d.length ? d[i3] : null);
- if (h.Ij() && !h.Jj()) {
- if (JD(h, 322)) {
- u6d(a, BD(h, 34), b, c2);
- } else {
- g = BD(h, 18);
- (g.Bb & ote) != 0 && w6d(a, g, b, c2);
- }
- }
- }
- b.kh() && BD(c2, 49).vh(BD(b, 49).qh());
- }
- return c2;
- }
- }
- function tGb(a, b, c2) {
- var d, e, f2;
- if (!b.f) {
- throw vbb(new Wdb("Given leave edge is no tree edge."));
- }
- if (c2.f) {
- throw vbb(new Wdb("Given enter edge is a tree edge already."));
- }
- b.f = false;
- Sqb(a.p, b);
- c2.f = true;
- Qqb(a.p, c2);
- d = c2.e.e - c2.d.e - c2.a;
- xGb(a, c2.e, b) || (d = -d);
- for (f2 = new olb(a.e.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 121);
- xGb(a, e, b) || (e.e += d);
- }
- a.j = 1;
- Blb(a.c);
- DGb(a, BD(mlb(new olb(a.e.a)), 121));
- rGb(a);
- }
- function x6b(a, b) {
- var c2, d, e, f2, g, h;
- h = BD(vNb(b, (Nyc(), Vxc)), 98);
- if (!(h == (dcd(), _bd) || h == $bd)) {
- return;
- }
- e = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a).b;
- for (g = new olb(a.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- if (f2.k != (j0b(), e0b)) {
- continue;
- }
- c2 = BD(vNb(f2, (wtc(), Hsc)), 61);
- if (c2 != (Ucd(), zcd) && c2 != Tcd) {
- continue;
- }
- d = Edb(ED(vNb(f2, htc)));
- h == _bd && (d *= e);
- f2.n.b = d - BD(vNb(f2, Txc), 8).b;
- M_b(f2, false, true);
- }
- }
- function YDc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n;
- bEc(a, b, c2);
- f2 = b[c2];
- n = d ? (Ucd(), Tcd) : (Ucd(), zcd);
- if (ZDc(b.length, c2, d)) {
- e = b[d ? c2 - 1 : c2 + 1];
- UDc(a, e, d ? (KAc(), IAc) : (KAc(), HAc));
- for (i3 = f2, k = 0, m = i3.length; k < m; ++k) {
- g = i3[k];
- XDc(a, g, n);
- }
- UDc(a, f2, d ? (KAc(), HAc) : (KAc(), IAc));
- for (h = e, j = 0, l = h.length; j < l; ++j) {
- g = h[j];
- !!g.e || XDc(a, g, Wcd(n));
- }
- } else {
- for (h = f2, j = 0, l = h.length; j < l; ++j) {
- g = h[j];
- XDc(a, g, n);
- }
- }
- return false;
- }
- function nFc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- i3 = V_b(b, c2);
- (c2 == (Ucd(), Rcd) || c2 == Tcd) && (i3 = JD(i3, 152) ? km(BD(i3, 152)) : JD(i3, 131) ? BD(i3, 131).a : JD(i3, 54) ? new ov(i3) : new dv(i3));
- g = false;
- do {
- e = false;
- for (f2 = 0; f2 < i3.gc() - 1; f2++) {
- j = BD(i3.Xb(f2), 11);
- h = BD(i3.Xb(f2 + 1), 11);
- if (oFc(a, j, h, d)) {
- g = true;
- cIc(a.a, BD(i3.Xb(f2), 11), BD(i3.Xb(f2 + 1), 11));
- k = BD(i3.Xb(f2 + 1), 11);
- i3._c(f2 + 1, BD(i3.Xb(f2), 11));
- i3._c(f2, k);
- e = true;
- }
- }
- } while (e);
- return g;
- }
- function W2d(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2;
- if (oid(a.e)) {
- if (b != c2) {
- e = BD(a.g, 119);
- n = e[c2];
- g = n.ak();
- if (T6d(a.e, g)) {
- o2 = S6d(a.e.Tg(), g);
- i3 = -1;
- h = -1;
- d = 0;
- for (j = 0, l = b > c2 ? b : c2; j <= l; ++j) {
- if (j == c2) {
- h = d++;
- } else {
- f2 = e[j];
- k = o2.rl(f2.ak());
- j == b && (i3 = j == l && !k ? d - 1 : d);
- k && ++d;
- }
- }
- m = BD(Wxd(a, b, c2), 72);
- h != i3 && GLd(a, new ESd(a.e, 7, g, meb(h), n.dd(), i3));
- return m;
- }
- }
- } else {
- return BD(sud(a, b, c2), 72);
- }
- return BD(Wxd(a, b, c2), 72);
- }
- function Qcc(a, b) {
- var c2, d, e, f2, g, h, i3;
- Odd(b, "Port order processing", 1);
- i3 = BD(vNb(a, (Nyc(), _xc)), 421);
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- g = BD(vNb(e, Vxc), 98);
- h = e.j;
- if (g == (dcd(), Zbd) || g == _bd || g == $bd) {
- mmb();
- Okb(h, Icc);
- } else if (g != bcd && g != ccd) {
- mmb();
- Okb(h, Lcc);
- Scc(h);
- i3 == (BAc(), AAc) && Okb(h, Kcc);
- }
- e.i = true;
- N_b(e);
- }
- }
- Qdd(b);
- }
- function vDc(a) {
- var b, c2, d, e, f2, g, h, i3;
- i3 = new Lqb();
- b = new KFb();
- for (g = a.Kc(); g.Ob(); ) {
- e = BD(g.Pb(), 10);
- h = nGb(oGb(new pGb(), e), b);
- jrb(i3.f, e, h);
- }
- for (f2 = a.Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 10);
- for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- if (OZb(c2)) {
- continue;
- }
- AFb(DFb(CFb(BFb(EFb(new FFb(), $wnd.Math.max(1, BD(vNb(c2, (Nyc(), dyc)), 19).a)), 1), BD(Ohb(i3, c2.c.i), 121)), BD(Ohb(i3, c2.d.i), 121)));
- }
- }
- return b;
- }
- function tNc() {
- tNc = ccb;
- oNc = e3c(new j3c(), (qUb(), oUb), (S8b(), k8b));
- qNc = e3c(new j3c(), nUb, o8b);
- rNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
- nNc = c3c(e3c(e3c(new j3c(), nUb, e8b), oUb, f8b), pUb, g8b);
- sNc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
- pNc = c3c(new j3c(), pUb, l8b);
- lNc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
- mNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
- }
- function XC(a, b, c2, d, e, f2) {
- var g, h, i3, j, k, l, m;
- j = $C(b) - $C(a);
- g = kD(b, j);
- i3 = TC(0, 0, 0);
- while (j >= 0) {
- h = bD(a, g);
- if (h) {
- j < 22 ? (i3.l |= 1 << j, void 0) : j < 44 ? (i3.m |= 1 << j - 22, void 0) : (i3.h |= 1 << j - 44, void 0);
- if (a.l == 0 && a.m == 0 && a.h == 0) {
- break;
- }
- }
- k = g.m;
- l = g.h;
- m = g.l;
- g.h = l >>> 1;
- g.m = k >>> 1 | (l & 1) << 21;
- g.l = m >>> 1 | (k & 1) << 21;
- --j;
- }
- c2 && ZC(i3);
- if (f2) {
- if (d) {
- QC = hD(a);
- e && (QC = nD(QC, (wD(), uD)));
- } else {
- QC = TC(a.l, a.m, a.h);
- }
- }
- return i3;
- }
- function TDc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- j = a.e[b.c.p][b.p] + 1;
- i3 = b.c.a.c.length + 1;
- for (h = new olb(a.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- l = 0;
- f2 = 0;
- for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(g), new R0b(g)]))); Qr(e); ) {
- d = BD(Rr(e), 11);
- if (d.i.c == b.c) {
- l += aEc(a, d.i) + 1;
- ++f2;
- }
- }
- c2 = l / f2;
- k = g.j;
- k == (Ucd(), zcd) ? c2 < j ? a.f[g.p] = a.c - c2 : a.f[g.p] = a.b + (i3 - c2) : k == Tcd && (c2 < j ? a.f[g.p] = a.b + c2 : a.f[g.p] = a.c - (i3 - c2));
- }
- }
- function Icb(a, b, c2) {
- var d, e, f2, g, h;
- if (a == null) {
- throw vbb(new Oeb(Xhe));
- }
- f2 = a.length;
- g = f2 > 0 && (BCb(0, a.length), a.charCodeAt(0) == 45 || (BCb(0, a.length), a.charCodeAt(0) == 43)) ? 1 : 0;
- for (d = g; d < f2; d++) {
- if (Zcb((BCb(d, a.length), a.charCodeAt(d))) == -1) {
- throw vbb(new Oeb(Oje + a + '"'));
- }
- }
- h = parseInt(a, 10);
- e = h < b;
- if (isNaN(h)) {
- throw vbb(new Oeb(Oje + a + '"'));
- } else if (e || h > c2) {
- throw vbb(new Oeb(Oje + a + '"'));
- }
- return h;
- }
- function dnc(a) {
- var b, c2, d, e, f2, g, h;
- g = new Psb();
- for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 112);
- pOc(e, e.f.c.length);
- qOc(e, e.k.c.length);
- if (e.i == 0) {
- e.o = 0;
- Gsb(g, e, g.c.b, g.c);
- }
- }
- while (g.b != 0) {
- e = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 112);
- d = e.o + 1;
- for (c2 = new olb(e.f); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 129);
- h = b.a;
- rOc(h, $wnd.Math.max(h.o, d));
- qOc(h, h.i - 1);
- h.i == 0 && (Gsb(g, h, g.c.b, g.c), true);
- }
- }
- }
- function v2c(a) {
- var b, c2, d, e, f2, g, h, i3;
- for (g = new olb(a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 79);
- d = atd(BD(qud((!f2.b && (f2.b = new y5d(z2, f2, 4, 7)), f2.b), 0), 82));
- h = d.i;
- i3 = d.j;
- e = BD(qud((!f2.a && (f2.a = new cUd(A2, f2, 6, 6)), f2.a), 0), 202);
- nmd(e, e.j + h, e.k + i3);
- gmd(e, e.b + h, e.c + i3);
- for (c2 = new Fyd((!e.a && (e.a = new xMd(y2, e, 5)), e.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 469);
- ukd(b, b.a + h, b.b + i3);
- }
- p7c(BD(hkd(f2, (Y9c(), Q8c)), 74), h, i3);
- }
- }
- function fee(a) {
- var b;
- switch (a) {
- case 100:
- return kee(nxe, true);
- case 68:
- return kee(nxe, false);
- case 119:
- return kee(oxe, true);
- case 87:
- return kee(oxe, false);
- case 115:
- return kee(pxe, true);
- case 83:
- return kee(pxe, false);
- case 99:
- return kee(qxe, true);
- case 67:
- return kee(qxe, false);
- case 105:
- return kee(rxe, true);
- case 73:
- return kee(rxe, false);
- default:
- throw vbb(new hz((b = a, mxe + b.toString(16))));
- }
- }
- function $Xb(a) {
- var b, c2, d, e, f2;
- e = BD(Ikb(a.a, 0), 10);
- b = new b0b(a);
- Ekb(a.a, b);
- b.o.a = $wnd.Math.max(1, e.o.a);
- b.o.b = $wnd.Math.max(1, e.o.b);
- b.n.a = e.n.a;
- b.n.b = e.n.b;
- switch (BD(vNb(e, (wtc(), Hsc)), 61).g) {
- case 4:
- b.n.a += 2;
+ case 24:
+ yy.getLogger().trace("Starting NSTR");
+ this.begin("NSTR");
break;
- case 1:
- b.n.b += 2;
+ case 25:
+ yy.getLogger().trace("description:", yy_.yytext);
+ return "NODE_DESCR";
break;
- case 2:
- b.n.a -= 2;
+ case 26:
+ this.popState();
break;
- case 3:
- b.n.b -= 2;
- }
- d = new H0b();
- F0b(d, b);
- c2 = new UZb();
- f2 = BD(Ikb(e.j, 0), 11);
- QZb(c2, f2);
- RZb(c2, d);
- P6c(X6c(d.n), f2.n);
- P6c(X6c(d.a), f2.a);
- return b;
- }
- function Fac(a, b, c2, d, e) {
- if (c2 && (!d || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.b], 10).k == (j0b(), f0b)) {
- zac(BD(a.a[a.b], 10), (rbd(), nbd));
- } else if (d && (!c2 || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.c - 1 & a.a.length - 1], 10).k == (j0b(), f0b)) {
- zac(BD(a.a[a.c - 1 & a.a.length - 1], 10), (rbd(), obd));
- } else if ((a.c - a.b & a.a.length - 1) == 2) {
- zac(BD(bkb(a), 10), (rbd(), nbd));
- zac(BD(bkb(a), 10), obd);
- } else {
- wac(a, e);
- }
- Yjb(a);
- }
- function pRc(a, b, c2) {
- var d, e, f2, g, h;
- f2 = 0;
- for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 33);
- g = "";
- (!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n).i == 0 || (g = BD(qud((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n), 0), 137).a);
- h = new XRc(f2++, b, g);
- tNb(h, d);
- yNb(h, (mTc(), dTc), d);
- h.e.b = d.j + d.f / 2;
- h.f.a = $wnd.Math.max(d.g, 1);
- h.e.a = d.i + d.g / 2;
- h.f.b = $wnd.Math.max(d.f, 1);
- Dsb(b.b, h);
- jrb(c2.f, d, h);
- }
- }
- function B2b(a) {
- var b, c2, d, e, f2;
- d = BD(vNb(a, (wtc(), $sc)), 33);
- f2 = BD(hkd(d, (Nyc(), Fxc)), 174).Hc((tdd(), sdd));
- if (!a.e) {
- e = BD(vNb(a, Ksc), 21);
- b = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
- if (e.Hc((Orc(), Hrc))) {
- jkd(d, Vxc, (dcd(), $bd));
- Afd(d, b.a, b.b, false, true);
- } else {
- Ccb(DD(hkd(d, Gxc))) || Afd(d, b.a, b.b, true, true);
- }
- }
- f2 ? jkd(d, Fxc, pqb(sdd)) : jkd(d, Fxc, (c2 = BD(gdb(I1), 9), new xqb(c2, BD(_Bb(c2, c2.length), 9), 0)));
- }
- function tA(a, b, c2) {
- var d, e, f2, g;
- if (b[0] >= a.length) {
- c2.o = 0;
- return true;
- }
- switch (bfb(a, b[0])) {
- case 43:
- e = 1;
+ case 27:
+ this.popState();
+ yy.getLogger().trace("node end ))");
+ return "NODE_DEND";
break;
- case 45:
- e = -1;
+ case 28:
+ this.popState();
+ yy.getLogger().trace("node end )");
+ return "NODE_DEND";
break;
- default:
- c2.o = 0;
- return true;
- }
- ++b[0];
- f2 = b[0];
- g = rA(a, b);
- if (g == 0 && b[0] == f2) {
- return false;
- }
- if (b[0] < a.length && bfb(a, b[0]) == 58) {
- d = g * 60;
- ++b[0];
- f2 = b[0];
- g = rA(a, b);
- if (g == 0 && b[0] == f2) {
- return false;
- }
- d += g;
- } else {
- d = g;
- d < 24 && b[0] - f2 <= 2 ? d *= 60 : d = d % 100 + (d / 100 | 0) * 60;
- }
- d *= e;
- c2.o = -d;
- return true;
- }
- function Hjc(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- g = new Rkb();
- for (d = new Sr(ur(U_b(a.b).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- OZb(c2) && Ekb(g, new Gjc(c2, Jjc(a, c2.c), Jjc(a, c2.d)));
- }
- for (j = (f2 = new $ib(a.e).a.vc().Kc(), new djb(f2)); j.a.Ob(); ) {
- h = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113));
- h.d.p = 0;
- }
- for (i3 = (e = new $ib(a.e).a.vc().Kc(), new djb(e)); i3.a.Ob(); ) {
- h = (b = BD(i3.a.Pb(), 42), BD(b.dd(), 113));
- h.d.p == 0 && Ekb(a.d, Ijc(a, h));
- }
- }
- function W1b(a) {
- var b, c2, d, e, f2, g, h;
- f2 = mpd(a);
- for (e = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 79);
- h = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82));
- if (!ntd(h, f2)) {
- return true;
- }
- }
- for (c2 = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 79);
- g = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
- if (!ntd(g, f2)) {
- return true;
- }
- }
- return false;
- }
- function Dmc(a) {
- var b, c2, d, e, f2, g, h, i3;
- i3 = new s7c();
- b = Jsb(a, 0);
- h = null;
- c2 = BD(Xsb(b), 8);
- e = BD(Xsb(b), 8);
- while (b.b != b.d.c) {
- h = c2;
- c2 = e;
- e = BD(Xsb(b), 8);
- f2 = Emc(c7c(new f7c(h.a, h.b), c2));
- g = Emc(c7c(new f7c(e.a, e.b), c2));
- d = 10;
- d = $wnd.Math.min(d, $wnd.Math.abs(f2.a + f2.b) / 2);
- d = $wnd.Math.min(d, $wnd.Math.abs(g.a + g.b) / 2);
- f2.a = Eeb(f2.a) * d;
- f2.b = Eeb(f2.b) * d;
- g.a = Eeb(g.a) * d;
- g.b = Eeb(g.b) * d;
- Dsb(i3, P6c(f2, c2));
- Dsb(i3, P6c(g, c2));
- }
- return i3;
- }
- function _hd(a, b, c2, d) {
- var e, f2, g, h, i3;
- g = a.eh();
- i3 = a.Zg();
- e = null;
- if (i3) {
- if (!!b && (Nid(a, b, c2).Bb & Tje) == 0) {
- d = Txd(i3.Vk(), a, d);
- a.uh(null);
- e = b.fh();
- } else {
- i3 = null;
- }
- } else {
- !!g && (i3 = g.fh());
- !!b && (e = b.fh());
- }
- i3 != e && !!i3 && i3.Zk(a);
- h = a.Vg();
- a.Rg(b, c2);
- i3 != e && !!e && e.Yk(a);
- if (a.Lg() && a.Mg()) {
- if (!!g && h >= 0 && h != c2) {
- f2 = new nSd(a, 1, h, g, null);
- !d ? d = f2 : d.Ei(f2);
- }
- if (c2 >= 0) {
- f2 = new nSd(a, 1, c2, h == c2 ? g : null, b);
- !d ? d = f2 : d.Ei(f2);
- }
- }
- return d;
- }
- function LEd(a) {
- var b, c2, d;
- if (a.b == null) {
- d = new Hfb();
- if (a.i != null) {
- Efb(d, a.i);
- d.a += ":";
- }
- if ((a.f & 256) != 0) {
- if ((a.f & 256) != 0 && a.a != null) {
- YEd(a.i) || (d.a += "//", d);
- Efb(d, a.a);
- }
- if (a.d != null) {
- d.a += "/";
- Efb(d, a.d);
- }
- (a.f & 16) != 0 && (d.a += "/", d);
- for (b = 0, c2 = a.j.length; b < c2; b++) {
- b != 0 && (d.a += "/", d);
- Efb(d, a.j[b]);
- }
- if (a.g != null) {
- d.a += "?";
- Efb(d, a.g);
- }
- } else {
- Efb(d, a.a);
- }
- if (a.e != null) {
- d.a += "#";
- Efb(d, a.e);
- }
- a.b = d.a;
- }
- return a.b;
- }
- function E5b(a, b) {
- var c2, d, e, f2, g, h;
- for (e = new olb(b.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- f2 = vNb(d, (wtc(), $sc));
- if (JD(f2, 11)) {
- g = BD(f2, 11);
- h = b_b(b, d, g.o.a, g.o.b);
- g.n.a = h.a;
- g.n.b = h.b;
- G0b(g, BD(vNb(d, Hsc), 61));
- }
- }
- c2 = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a);
- if (BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
- yNb(a, (Nyc(), Vxc), (dcd(), $bd));
- BD(vNb(Q_b(a), Ksc), 21).Fc(Krc);
- j_b(a, c2, false);
- } else {
- j_b(a, c2, true);
- }
- }
- function YFc(a, b, c2) {
- var d, e, f2, g, h, i3;
- Odd(c2, "Minimize Crossings " + a.a, 1);
- d = b.b.c.length == 0 || !WAb(JAb(new YAb(null, new Kub(b.b, 16)), new Xxb(new xGc()))).sd((EAb(), DAb));
- i3 = b.b.c.length == 1 && BD(Ikb(b.b, 0), 29).a.c.length == 1;
- f2 = PD(vNb(b, (Nyc(), axc))) === PD((hbd(), ebd));
- if (d || i3 && !f2) {
- Qdd(c2);
- return;
- }
- e = TFc(a, b);
- g = (h = BD(Ut(e, 0), 214), h.c.Rf() ? h.c.Lf() ? new kGc(a) : new mGc(a) : new iGc(a));
- UFc(e, g);
- eGc(a);
- Qdd(c2);
- }
- function so(a, b, c2, d) {
- var e, f2, g, h, i3;
- i3 = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
- e = Tbb(Ibb(Eie, keb(Tbb(Ibb(c2 == null ? 0 : tb(c2), Fie)), 15)));
- h = vo(a, b, i3);
- g = uo(a, c2, e);
- if (!!h && e == h.a && Hb(c2, h.g)) {
- return c2;
- } else if (!!g && !d) {
- throw vbb(new Wdb("key already present: " + c2));
- }
- !!h && mo(a, h);
- !!g && mo(a, g);
- f2 = new $o(c2, e, b, i3);
- po(a, f2, g);
- if (g) {
- g.e = null;
- g.c = null;
- }
- if (h) {
- h.e = null;
- h.c = null;
- }
- to(a);
- return !h ? null : h.g;
- }
- function Lhb(a, b, c2) {
- var d, e, f2, g, h;
- for (f2 = 0; f2 < b; f2++) {
- d = 0;
- for (h = f2 + 1; h < b; h++) {
- d = wbb(wbb(Ibb(xbb(a[f2], Yje), xbb(a[h], Yje)), xbb(c2[f2 + h], Yje)), xbb(Tbb(d), Yje));
- c2[f2 + h] = Tbb(d);
- d = Pbb(d, 32);
- }
- c2[f2 + b] = Tbb(d);
- }
- khb(c2, c2, b << 1);
- d = 0;
- for (e = 0, g = 0; e < b; ++e, g++) {
- d = wbb(wbb(Ibb(xbb(a[e], Yje), xbb(a[e], Yje)), xbb(c2[g], Yje)), xbb(Tbb(d), Yje));
- c2[g] = Tbb(d);
- d = Pbb(d, 32);
- ++g;
- d = wbb(d, xbb(c2[g], Yje));
- c2[g] = Tbb(d);
- d = Pbb(d, 32);
- }
- return c2;
- }
- function ZJc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- if (Qq(b)) {
- return;
- }
- i3 = Edb(ED(pBc(c2.c, (Nyc(), zyc))));
- j = BD(pBc(c2.c, yyc), 142);
- !j && (j = new H_b());
- d = c2.a;
- e = null;
- for (h = b.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 11);
- k = 0;
- if (!e) {
- k = j.d;
- } else {
- k = i3;
- k += e.o.b;
- }
- f2 = nGb(oGb(new pGb(), g), a.f);
- Rhb(a.k, g, f2);
- AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(k))), d), f2));
- e = g;
- d = f2;
- }
- AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(j.a + e.o.b))), d), c2.d));
- }
- function uZc(a, b, c2, d, e, f2, g, h) {
- var i3, j, k, l, m, n;
- n = false;
- m = f2 - c2.s;
- k = c2.t - b.f + (j = MZc(c2, m, false), j.a);
- if (d.g + h > m) {
- return false;
- }
- l = (i3 = MZc(d, m, false), i3.a);
- if (k + h + l <= b.b) {
- KZc(c2, f2 - c2.s);
- c2.c = true;
- KZc(d, f2 - c2.s);
- OZc(d, c2.s, c2.t + c2.d + h);
- d.k = true;
- WZc(c2.q, d);
- n = true;
- if (e) {
- s$c(b, d);
- d.j = b;
- if (a.c.length > g) {
- v$c((tCb(g, a.c.length), BD(a.c[g], 200)), d);
- (tCb(g, a.c.length), BD(a.c[g], 200)).a.c.length == 0 && Kkb(a, g);
- }
- }
- }
- return n;
- }
- function kcc(a, b) {
- var c2, d, e, f2, g, h;
- Odd(b, "Partition midprocessing", 1);
- e = new Hp();
- MAb(JAb(new YAb(null, new Kub(a.a, 16)), new occ()), new qcc(e));
- if (e.d == 0) {
- return;
- }
- h = BD(GAb(UAb((f2 = e.i, new YAb(null, (!f2 ? e.i = new zf(e, e.c) : f2).Nc()))), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- d = h.Kc();
- c2 = BD(d.Pb(), 19);
- while (d.Ob()) {
- g = BD(d.Pb(), 19);
- jcc(BD(Qc(e, c2), 21), BD(Qc(e, g), 21));
- c2 = g;
- }
- Qdd(b);
- }
- function DYb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- if (b.p == 0) {
- b.p = 1;
- g = c2;
- if (!g) {
- e = new Rkb();
- f2 = (d = BD(gdb(F1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0));
- g = new vgd(e, f2);
- }
- BD(g.a, 15).Fc(b);
- b.k == (j0b(), e0b) && BD(g.b, 21).Fc(BD(vNb(b, (wtc(), Hsc)), 61));
- for (i3 = new olb(b.j); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 11);
- for (k = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(h), new R0b(h)]))); Qr(k); ) {
- j = BD(Rr(k), 11);
- DYb(a, j.i, g);
- }
- }
- return g;
- }
- return null;
- }
- function Dmd(a, b) {
- var c2, d, e, f2, g;
- if (a.Ab) {
- if (a.Ab) {
- g = a.Ab.i;
- if (g > 0) {
- e = BD(a.Ab.g, 1934);
- if (b == null) {
- for (f2 = 0; f2 < g; ++f2) {
- c2 = e[f2];
- if (c2.d == null) {
- return c2;
- }
- }
- } else {
- for (f2 = 0; f2 < g; ++f2) {
- c2 = e[f2];
- if (dfb(b, c2.d)) {
- return c2;
- }
- }
- }
- }
- } else {
- if (b == null) {
- for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 590);
- if (c2.d == null) {
- return c2;
- }
- }
- } else {
- for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 590);
- if (dfb(b, c2.d)) {
- return c2;
- }
- }
- }
- }
- }
- return null;
- }
- function gRc(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- j = DD(vNb(b, (JTc(), GTc)));
- if (j == null || (uCb(j), j)) {
- dRc(a, b);
- e = new Rkb();
- for (i3 = Jsb(b.b, 0); i3.b != i3.d.c; ) {
- g = BD(Xsb(i3), 86);
- c2 = cRc(a, g, null);
- if (c2) {
- tNb(c2, b);
- e.c[e.c.length] = c2;
- }
- }
- a.a = null;
- a.b = null;
- if (e.c.length > 1) {
- for (d = new olb(e); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 135);
- f2 = 0;
- for (h = Jsb(c2.b, 0); h.b != h.d.c; ) {
- g = BD(Xsb(h), 86);
- g.g = f2++;
- }
- }
- }
- return e;
- }
- return Ou(OC(GC(n$, 1), fme, 135, 0, [b]));
- }
- function rqd(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, p, q, r, s, t4, u2, v;
- n = Sqd(a, etd(b), e);
- jmd(n, _pd(e, Vte));
- o = null;
- p = e;
- q = $pd(p, Yte);
- r = new urd(n);
- wqd(r.a, q);
- s = $pd(p, "endPoint");
- t4 = new yrd(n);
- yqd(t4.a, s);
- u2 = Ypd(p, Ote);
- v = new Brd(n);
- zqd(v.a, u2);
- l = _pd(e, Qte);
- f2 = new qrd(a, n);
- sqd(f2.a, f2.b, l);
- m = _pd(e, Pte);
- g = new rrd(a, n);
- tqd(g.a, g.b, m);
- j = Ypd(e, Ste);
- h = new srd(c2, n);
- uqd(h.b, h.a, j);
- k = Ypd(e, Rte);
- i3 = new trd(d, n);
- vqd(i3.b, i3.a, k);
- }
- function i_b(a, b, c2) {
- var d, e, f2, g, h;
- h = null;
- switch (b.g) {
- case 1:
- for (e = new olb(a.j); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 11);
- if (Ccb(DD(vNb(d, (wtc(), Msc))))) {
- return d;
- }
- }
- h = new H0b();
- yNb(h, (wtc(), Msc), (Bcb(), true));
+ case 29:
+ this.popState();
+ yy.getLogger().trace("node end ...", yy_.yytext);
+ return "NODE_DEND";
break;
- case 2:
- for (g = new olb(a.j); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 11);
- if (Ccb(DD(vNb(f2, (wtc(), etc))))) {
- return f2;
- }
- }
- h = new H0b();
- yNb(h, (wtc(), etc), (Bcb(), true));
- }
- if (h) {
- F0b(h, a);
- G0b(h, c2);
- X$b(h.n, a.o, c2);
- }
- return h;
- }
- function O3b(a, b) {
- var c2, d, e, f2, g, h;
- h = -1;
- g = new Psb();
- for (d = new b1b(a.b); llb(d.a) || llb(d.b); ) {
- c2 = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17);
- h = $wnd.Math.max(h, Edb(ED(vNb(c2, (Nyc(), Zwc)))));
- c2.c == a ? MAb(JAb(new YAb(null, new Kub(c2.b, 16)), new U3b()), new W3b(g)) : MAb(JAb(new YAb(null, new Kub(c2.b, 16)), new Y3b()), new $3b(g));
- for (f2 = Jsb(g, 0); f2.b != f2.d.c; ) {
- e = BD(Xsb(f2), 70);
- wNb(e, (wtc(), Dsc)) || yNb(e, Dsc, c2);
- }
- Gkb(b, g);
- Osb(g);
- }
- return h;
- }
- function _bc(a, b, c2, d, e) {
- var f2, g, h, i3;
- f2 = new b0b(a);
- __b(f2, (j0b(), i0b));
- yNb(f2, (Nyc(), Vxc), (dcd(), $bd));
- yNb(f2, (wtc(), $sc), b.c.i);
- g = new H0b();
- yNb(g, $sc, b.c);
- G0b(g, e);
- F0b(g, f2);
- yNb(b.c, gtc, f2);
- h = new b0b(a);
- __b(h, i0b);
- yNb(h, Vxc, $bd);
- yNb(h, $sc, b.d.i);
- i3 = new H0b();
- yNb(i3, $sc, b.d);
- G0b(i3, e);
- F0b(i3, h);
- yNb(b.d, gtc, h);
- QZb(b, g);
- RZb(b, i3);
- wCb(0, c2.c.length);
- aCb(c2.c, 0, f2);
- d.c[d.c.length] = h;
- yNb(f2, ysc, meb(1));
- yNb(h, ysc, meb(1));
- }
- function BPc(a, b, c2, d, e) {
- var f2, g, h, i3, j;
- h = e ? d.b : d.a;
- if (Rqb(a.a, d)) {
- return;
- }
- j = h > c2.s && h < c2.c;
- i3 = false;
- if (c2.e.b != 0 && c2.j.b != 0) {
- i3 = i3 | ($wnd.Math.abs(h - Edb(ED(Hsb(c2.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Hsb(c2.j)))) < qme);
- i3 = i3 | ($wnd.Math.abs(h - Edb(ED(Isb(c2.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Isb(c2.j)))) < qme);
- }
- if (j || i3) {
- g = BD(vNb(b, (Nyc(), jxc)), 74);
- if (!g) {
- g = new s7c();
- yNb(b, jxc, g);
- }
- f2 = new g7c(d);
- Gsb(g, f2, g.c.b, g.c);
- Qqb(a.a, f2);
- }
- }
- function gNb(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- if (fNb(a, b, c2, d)) {
- return true;
- } else {
- for (g = new olb(b.f); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 324);
- h = false;
- i3 = a.j - b.j + c2;
- j = i3 + b.o;
- k = a.k - b.k + d;
- e = k + b.p;
- switch (f2.a.g) {
- case 0:
- h = oNb(a, i3 + f2.b.a, 0, i3 + f2.c.a, k - 1);
- break;
- case 1:
- h = oNb(a, j, k + f2.b.a, a.o - 1, k + f2.c.a);
- break;
- case 2:
- h = oNb(a, i3 + f2.b.a, e, i3 + f2.c.a, a.p - 1);
- break;
- default:
- h = oNb(a, 0, k + f2.b.a, i3 - 1, k + f2.c.a);
- }
- if (h) {
- return true;
- }
- }
- }
- return false;
- }
- function LMc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- for (g = new olb(b.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- for (j = new olb(f2.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- k = new Rkb();
- h = 0;
- for (d = new Sr(ur(R_b(i3).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- if (OZb(c2) || !OZb(c2) && c2.c.i.c == c2.d.i.c) {
- continue;
- }
- e = BD(vNb(c2, (Nyc(), eyc)), 19).a;
- if (e > h) {
- h = e;
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- e == h && Ekb(k, new vgd(c2.c.i, c2));
- }
- mmb();
- Okb(k, a.c);
- Dkb(a.b, i3.p, k);
- }
- }
- }
- function MMc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- for (g = new olb(b.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- for (j = new olb(f2.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- k = new Rkb();
- h = 0;
- for (d = new Sr(ur(U_b(i3).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- if (OZb(c2) || !OZb(c2) && c2.c.i.c == c2.d.i.c) {
- continue;
- }
- e = BD(vNb(c2, (Nyc(), eyc)), 19).a;
- if (e > h) {
- h = e;
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- e == h && Ekb(k, new vgd(c2.d.i, c2));
- }
- mmb();
- Okb(k, a.c);
- Dkb(a.f, i3.p, k);
- }
- }
- }
- function Y7c(a) {
- r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), qse), "ELK Box"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges."), new _7c())));
- p4c(a, qse, ame, U7c);
- p4c(a, qse, wme, 15);
- p4c(a, qse, vme, meb(0));
- p4c(a, qse, Jre, Ksd(O7c));
- p4c(a, qse, Fme, Ksd(Q7c));
- p4c(a, qse, Eme, Ksd(S7c));
- p4c(a, qse, _le, pse);
- p4c(a, qse, Ame, Ksd(P7c));
- p4c(a, qse, Tme, Ksd(R7c));
- p4c(a, qse, rse, Ksd(M7c));
- p4c(a, qse, lqe, Ksd(N7c));
- }
- function W$b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- e = a.i;
- g = e.o.a;
- f2 = e.o.b;
- if (g <= 0 && f2 <= 0) {
- return Ucd(), Scd;
- }
- j = a.n.a;
- k = a.n.b;
- h = a.o.a;
- c2 = a.o.b;
- switch (b.g) {
- case 2:
- case 1:
- if (j < 0) {
- return Ucd(), Tcd;
- } else if (j + h > g) {
- return Ucd(), zcd;
- }
- break;
- case 4:
- case 3:
- if (k < 0) {
- return Ucd(), Acd;
- } else if (k + c2 > f2) {
- return Ucd(), Rcd;
- }
- }
- i3 = (j + h / 2) / g;
- d = (k + c2 / 2) / f2;
- return i3 + d <= 1 && i3 - d <= 0 ? (Ucd(), Tcd) : i3 + d >= 1 && i3 - d >= 0 ? (Ucd(), zcd) : d < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd);
- }
- function pJc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- c2 = false;
- k = Edb(ED(vNb(b, (Nyc(), vyc))));
- o2 = Qie * k;
- for (e = new olb(b.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- j = new olb(d.a);
- f2 = BD(mlb(j), 10);
- l = xJc(a.a[f2.p]);
- while (j.a < j.c.c.length) {
- h = BD(mlb(j), 10);
- m = xJc(a.a[h.p]);
- if (l != m) {
- n = jBc(a.b, f2, h);
- g = f2.n.b + f2.o.b + f2.d.a + l.a + n;
- i3 = h.n.b - h.d.d + m.a;
- if (g > i3 + o2) {
- p = l.g + m.g;
- m.a = (m.g * m.a + l.g * l.a) / p;
- m.g = p;
- l.f = m;
- c2 = true;
- }
- }
- f2 = h;
- l = m;
- }
- }
- return c2;
- }
- function VGb(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m;
- m = new I6c();
- for (j = b.Kc(); j.Ob(); ) {
- h = BD(j.Pb(), 839);
- for (l = new olb(h.wf()); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 181);
- if (PD(k.We((Y9c(), C8c))) === PD((qad(), pad2))) {
- SGb(m, k, false, d, e, f2, g);
- H6c(a, m);
- }
- }
- }
- for (i3 = c2.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 839);
- for (l = new olb(h.wf()); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 181);
- if (PD(k.We((Y9c(), C8c))) === PD((qad(), oad))) {
- SGb(m, k, true, d, e, f2, g);
- H6c(a, m);
- }
- }
- }
- }
- function oRc(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- for (g = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); g.e != g.i.gc(); ) {
- f2 = BD(Dyd(g), 33);
- for (e = new Sr(ur(_sd(f2).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 79);
- if (!Pld(d) && !Pld(d) && !Qld(d)) {
- i3 = BD(Wd(irb(c2.f, f2)), 86);
- j = BD(Ohb(c2, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 86);
- if (!!i3 && !!j) {
- h = new QRc(i3, j);
- yNb(h, (mTc(), dTc), d);
- tNb(h, d);
- Dsb(i3.d, h);
- Dsb(j.b, h);
- Dsb(b.a, h);
- }
- }
- }
- }
- }
- function QKb(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- for (i3 = BD(BD(Qc(a.r, b), 21), 84).Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 111);
- e = h.c ? YHb(h.c) : 0;
- if (e > 0) {
- if (h.a) {
- j = h.b.rf().b;
- if (e > j) {
- if (a.v || h.c.d.c.length == 1) {
- g = (e - j) / 2;
- h.d.d = g;
- h.d.a = g;
- } else {
- c2 = BD(Ikb(h.c.d, 0), 181).rf().b;
- d = (c2 - j) / 2;
- h.d.d = $wnd.Math.max(0, d);
- h.d.a = e - d - j;
- }
- }
- } else {
- h.d.a = a.t + e;
- }
- } else if (tcd(a.u)) {
- f2 = sfd(h.b);
- f2.d < 0 && (h.d.d = -f2.d);
- f2.d + f2.a > h.b.rf().b && (h.d.a = f2.d + f2.a - h.b.rf().b);
- }
- }
- }
- function FC(a, b) {
- var c2;
- switch (HC(a)) {
- case 6:
- return ND(b);
- case 7:
- return LD(b);
- case 8:
- return KD(b);
- case 3:
- return Array.isArray(b) && (c2 = HC(b), !(c2 >= 14 && c2 <= 16));
- case 11:
- return b != null && typeof b === Nhe;
- case 12:
- return b != null && (typeof b === Jhe || typeof b == Nhe);
- case 0:
- return AD(b, a.__elementTypeId$);
- case 2:
- return OD(b) && !(b.im === gcb);
- case 1:
- return OD(b) && !(b.im === gcb) || AD(b, a.__elementTypeId$);
- default:
- return true;
- }
- }
- function xOb(a, b) {
- var c2, d, e, f2;
- d = $wnd.Math.min($wnd.Math.abs(a.c - (b.c + b.b)), $wnd.Math.abs(a.c + a.b - b.c));
- f2 = $wnd.Math.min($wnd.Math.abs(a.d - (b.d + b.a)), $wnd.Math.abs(a.d + a.a - b.d));
- c2 = $wnd.Math.abs(a.c + a.b / 2 - (b.c + b.b / 2));
- if (c2 > a.b / 2 + b.b / 2) {
- return 1;
- }
- e = $wnd.Math.abs(a.d + a.a / 2 - (b.d + b.a / 2));
- if (e > a.a / 2 + b.a / 2) {
- return 1;
- }
- if (c2 == 0 && e == 0) {
- return 0;
- }
- if (c2 == 0) {
- return f2 / e + 1;
- }
- if (e == 0) {
- return d / c2 + 1;
- }
- return $wnd.Math.min(d / c2, f2 / e) + 1;
- }
- function mgb(a, b) {
- var c2, d, e, f2, g, h;
- e = pgb(a);
- h = pgb(b);
- if (e == h) {
- if (a.e == b.e && a.a < 54 && b.a < 54) {
- return a.f < b.f ? -1 : a.f > b.f ? 1 : 0;
- }
- d = a.e - b.e;
- c2 = (a.d > 0 ? a.d : $wnd.Math.floor((a.a - 1) * Xje) + 1) - (b.d > 0 ? b.d : $wnd.Math.floor((b.a - 1) * Xje) + 1);
- if (c2 > d + 1) {
- return e;
- } else if (c2 < d - 1) {
- return -e;
- } else {
- f2 = (!a.c && (a.c = fhb(a.f)), a.c);
- g = (!b.c && (b.c = fhb(b.f)), b.c);
- d < 0 ? f2 = Ogb(f2, Khb(-d)) : d > 0 && (g = Ogb(g, Khb(d)));
- return Igb(f2, g);
- }
- } else
- return e < h ? -1 : 1;
- }
- function mTb(a, b) {
- var c2, d, e, f2, g, h, i3;
- f2 = 0;
- h = 0;
- i3 = 0;
- for (e = new olb(a.f.e); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 144);
- if (b == d) {
- continue;
- }
- g = a.i[b.b][d.b];
- f2 += g;
- c2 = S6c(b.d, d.d);
- c2 > 0 && a.d != (yTb(), xTb) && (h += g * (d.d.a + a.a[b.b][d.b] * (b.d.a - d.d.a) / c2));
- c2 > 0 && a.d != (yTb(), vTb) && (i3 += g * (d.d.b + a.a[b.b][d.b] * (b.d.b - d.d.b) / c2));
- }
- switch (a.d.g) {
- case 1:
- return new f7c(h / f2, b.d.b);
- case 2:
- return new f7c(b.d.a, i3 / f2);
- default:
- return new f7c(h / f2, i3 / f2);
- }
- }
- function Wcc(a, b) {
- Occ();
- var c2, d, e, f2, g;
- g = BD(vNb(a.i, (Nyc(), Vxc)), 98);
- f2 = a.j.g - b.j.g;
- if (f2 != 0 || !(g == (dcd(), Zbd) || g == _bd || g == $bd)) {
- return 0;
- }
- if (g == (dcd(), Zbd)) {
- c2 = BD(vNb(a, Wxc), 19);
- d = BD(vNb(b, Wxc), 19);
- if (!!c2 && !!d) {
- e = c2.a - d.a;
- if (e != 0) {
- return e;
- }
- }
- }
- switch (a.j.g) {
- case 1:
- return Kdb(a.n.a, b.n.a);
- case 2:
- return Kdb(a.n.b, b.n.b);
- case 3:
- return Kdb(b.n.a, a.n.a);
- case 4:
- return Kdb(b.n.b, a.n.b);
- default:
- throw vbb(new Zdb(ine));
- }
- }
- function tfd(a) {
- var b, c2, d, e, f2, g;
- c2 = (!a.a && (a.a = new xMd(y2, a, 5)), a.a).i + 2;
- g = new Skb(c2);
- Ekb(g, new f7c(a.j, a.k));
- MAb(new YAb(null, (!a.a && (a.a = new xMd(y2, a, 5)), new Kub(a.a, 16))), new Qfd(g));
- Ekb(g, new f7c(a.b, a.c));
- b = 1;
- while (b < g.c.length - 1) {
- d = (tCb(b - 1, g.c.length), BD(g.c[b - 1], 8));
- e = (tCb(b, g.c.length), BD(g.c[b], 8));
- f2 = (tCb(b + 1, g.c.length), BD(g.c[b + 1], 8));
- d.a == e.a && e.a == f2.a || d.b == e.b && e.b == f2.b ? Kkb(g, b) : ++b;
- }
- return g;
- }
- function Xgc(a, b) {
- var c2, d, e, f2, g, h, i3;
- c2 = vDb(yDb(wDb(xDb(new zDb(), b), new K6c(b.e)), Ggc), a.a);
- b.j.c.length == 0 || nDb(BD(Ikb(b.j, 0), 57).a, c2);
- i3 = new lEb();
- Rhb(a.e, c2, i3);
- g = new Tqb();
- h = new Tqb();
- for (f2 = new olb(b.k); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 17);
- Qqb(g, e.c);
- Qqb(h, e.d);
- }
- d = g.a.gc() - h.a.gc();
- if (d < 0) {
- jEb(i3, true, (ead(), aad));
- jEb(i3, false, bad);
- } else if (d > 0) {
- jEb(i3, false, (ead(), aad));
- jEb(i3, true, bad);
- }
- Hkb(b.g, new $hc(a, c2));
- Rhb(a.g, b, c2);
- }
- function Neb() {
- Neb = ccb;
- var a;
- Jeb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
- Keb = KC(WD, oje, 25, 37, 15, 1);
- Leb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]);
- Meb = KC(XD, Sje, 25, 37, 14, 1);
- for (a = 2; a <= 36; a++) {
- Keb[a] = QD($wnd.Math.pow(a, Jeb[a]));
- Meb[a] = Abb(rie, Keb[a]);
- }
- }
- function pfd(a) {
- var b;
- if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) {
- throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i));
- }
- b = new s7c();
- !!btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)), false));
- !!btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)), true));
- return b;
- }
- function _Mc(a, b) {
- var c2, d, e, f2, g;
- b.d ? e = a.a.c == (YLc(), XLc) ? R_b(b.b) : U_b(b.b) : e = a.a.c == (YLc(), WLc) ? R_b(b.b) : U_b(b.b);
- f2 = false;
- for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- g = Ccb(a.a.f[a.a.g[b.b.p].p]);
- if (!g && !OZb(c2) && c2.c.i.c == c2.d.i.c) {
- continue;
- }
- if (Ccb(a.a.n[a.a.g[b.b.p].p]) || Ccb(a.a.n[a.a.g[b.b.p].p])) {
- continue;
- }
- f2 = true;
- if (Rqb(a.b, a.a.g[TMc(c2, b.b).p])) {
- b.c = true;
- b.a = c2;
- return b;
- }
- }
- b.c = f2;
- b.a = null;
- return b;
- }
- function bed(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l;
- mmb();
- Okb(a, new Red());
- h = new Bib(a, 0);
- l = new Rkb();
- f2 = 0;
- while (h.b < h.d.gc()) {
- g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 157));
- if (l.c.length != 0 && red(g) * qed(g) > f2 * 2) {
- k = new wed(l);
- j = red(g) / qed(g);
- i3 = fed(k, b, new p0b(), c2, d, e, j);
- P6c(X6c(k.e), i3);
- l.c = KC(SI, Uhe, 1, 0, 5, 1);
- f2 = 0;
- l.c[l.c.length] = k;
- l.c[l.c.length] = g;
- f2 = red(k) * qed(k) + red(g) * qed(g);
- } else {
- l.c[l.c.length] = g;
- f2 += red(g) * qed(g);
- }
- }
- return l;
- }
- function qwd(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- d = c2.gc();
- if (d == 0) {
- return false;
- } else {
- if (a.ej()) {
- i3 = a.fj();
- zvd(a, b, c2);
- g = d == 1 ? a.Zi(3, null, c2.Kc().Pb(), b, i3) : a.Zi(5, null, c2, b, i3);
- if (a.bj()) {
- h = d < 100 ? null : new Ixd(d);
- f2 = b + d;
- for (e = b; e < f2; ++e) {
- j = a.Oi(e);
- h = a.cj(j, h);
- h = h;
- }
- if (!h) {
- a.$i(g);
- } else {
- h.Ei(g);
- h.Fi();
- }
- } else {
- a.$i(g);
- }
- } else {
- zvd(a, b, c2);
- if (a.bj()) {
- h = d < 100 ? null : new Ixd(d);
- f2 = b + d;
- for (e = b; e < f2; ++e) {
- h = a.cj(a.Oi(e), h);
- }
- !!h && h.Fi();
- }
- }
- return true;
- }
- }
- function wwd(a, b, c2) {
- var d, e, f2, g, h;
- if (a.ej()) {
- e = null;
- f2 = a.fj();
- d = a.Zi(1, h = (g = a.Ui(b, a.oi(b, c2)), g), c2, b, f2);
- if (a.bj() && !(a.ni() && !!h ? pb(h, c2) : PD(h) === PD(c2))) {
- !!h && (e = a.dj(h, e));
- e = a.cj(c2, e);
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- } else {
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- }
- return h;
- } else {
- h = (g = a.Ui(b, a.oi(b, c2)), g);
- if (a.bj() && !(a.ni() && !!h ? pb(h, c2) : PD(h) === PD(c2))) {
- e = null;
- !!h && (e = a.dj(h, null));
- e = a.cj(c2, e);
- !!e && e.Fi();
- }
- return h;
- }
- }
- function rRb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- a.e = b;
- a.f = BD(vNb(b, (HSb(), GSb)), 230);
- iRb(b);
- a.d = $wnd.Math.max(b.e.c.length * 16 + b.c.c.length, 256);
- if (!Ccb(DD(vNb(b, (wSb(), dSb))))) {
- k = a.e.e.c.length;
- for (i3 = new olb(b.e); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 144);
- j = h.d;
- j.a = Aub(a.f) * k;
- j.b = Aub(a.f) * k;
- }
- }
- c2 = b.b;
- for (f2 = new olb(b.c); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 282);
- d = BD(vNb(e, rSb), 19).a;
- if (d > 0) {
- for (g = 0; g < d; g++) {
- Ekb(c2, new aRb(e));
- }
- cRb(e);
- }
- }
- }
- function zac(a, b) {
- var c2, d, e, f2, g, h;
- if (a.k == (j0b(), f0b)) {
- c2 = WAb(JAb(BD(vNb(a, (wtc(), ktc)), 15).Oc(), new Xxb(new Kac()))).sd((EAb(), DAb)) ? b : (rbd(), pbd);
- yNb(a, Ssc, c2);
- if (c2 != (rbd(), obd)) {
- d = BD(vNb(a, $sc), 17);
- h = Edb(ED(vNb(d, (Nyc(), Zwc))));
- g = 0;
- if (c2 == nbd) {
- g = a.o.b - $wnd.Math.ceil(h / 2);
- } else if (c2 == pbd) {
- a.o.b -= Edb(ED(vNb(Q_b(a), nyc)));
- g = (a.o.b - $wnd.Math.ceil(h)) / 2;
- }
- for (f2 = new olb(a.j); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 11);
- e.n.b = g;
- }
- }
- }
- }
- function Uge() {
- Uge = ccb;
- g5d();
- Tge = new Vge();
- OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Xwe)])]);
- OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]);
- OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Zwe)]), OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]);
- new Ygb("-1");
- OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge("\\c+")])]);
- new Ygb("0");
- new Ygb("0");
- new Ygb("1");
- new Ygb("0");
- new Ygb(hxe);
- }
- function KQd(a) {
- var b, c2;
- if (!!a.c && a.c.kh()) {
- c2 = BD(a.c, 49);
- a.c = BD(xid(a, c2), 138);
- if (a.c != c2) {
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 2, c2, a.c));
- if (JD(a.Cb, 399)) {
- a.Db >> 16 == -15 && a.Cb.nh() && Rwd(new oSd(a.Cb, 9, 13, c2, a.c, HLd(QSd(BD(a.Cb, 59)), a)));
- } else if (JD(a.Cb, 88)) {
- if (a.Db >> 16 == -23 && a.Cb.nh()) {
- b = a.c;
- JD(b, 88) || (b = (jGd(), _Fd));
- JD(c2, 88) || (c2 = (jGd(), _Fd));
- Rwd(new oSd(a.Cb, 9, 10, c2, b, HLd(VKd(BD(a.Cb, 26)), a)));
- }
- }
- }
- }
- return a.c;
- }
- function f7b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- Odd(b, "Hypernodes processing", 1);
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- for (h = new olb(d.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- if (Ccb(DD(vNb(g, (Nyc(), exc)))) && g.j.c.length <= 2) {
- l = 0;
- k = 0;
- c2 = 0;
- f2 = 0;
- for (j = new olb(g.j); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 11);
- switch (i3.j.g) {
- case 1:
- ++l;
- break;
- case 2:
- ++k;
- break;
- case 3:
- ++c2;
- break;
- case 4:
- ++f2;
- }
- }
- l == 0 && c2 == 0 && e7b(a, g, f2 <= k);
- }
- }
- }
- Qdd(b);
- }
- function i7b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- Odd(b, "Layer constraint edge reversal", 1);
- for (g = new olb(a.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- k = -1;
- c2 = new Rkb();
- j = l_b(f2.a);
- for (e = 0; e < j.length; e++) {
- d = BD(vNb(j[e], (wtc(), Osc)), 303);
- if (k == -1) {
- d != (esc(), dsc) && (k = e);
- } else {
- if (d == (esc(), dsc)) {
- $_b(j[e], null);
- Z_b(j[e], k++, f2);
- }
- }
- d == (esc(), bsc) && Ekb(c2, j[e]);
- }
- for (i3 = new olb(c2); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- $_b(h, null);
- $_b(h, f2);
- }
- }
- Qdd(b);
- }
- function W6b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- Odd(c2, "Hyperedge merging", 1);
- U6b(a, b);
- i3 = new Bib(b.b, 0);
- while (i3.b < i3.d.gc()) {
- h = (sCb(i3.b < i3.d.gc()), BD(i3.d.Xb(i3.c = i3.b++), 29));
- k = h.a;
- if (k.c.length == 0) {
- continue;
- }
- d = null;
- e = null;
- f2 = null;
- g = null;
- for (j = 0; j < k.c.length; j++) {
- d = (tCb(j, k.c.length), BD(k.c[j], 10));
- e = d.k;
- if (e == (j0b(), g0b) && g == g0b) {
- l = S6b(d, f2);
- if (l.a) {
- V6b(d, f2, l.b, l.c);
- tCb(j, k.c.length);
- cCb(k.c, j, 1);
- --j;
- d = f2;
- e = g;
- }
- }
- f2 = d;
- g = e;
- }
- }
- Qdd(c2);
- }
- function WFc(a, b) {
- var c2, d, e;
- d = Cub(a.d, 1) != 0;
- !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc)));
- dGc(a, b, d, true);
- Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false));
- if (Ccb(DD(vNb(b.j, Jsc)))) {
- yNb(b.j, Jsc, (Bcb(), false));
- yNb(b.j, mtc, true);
- }
- c2 = OFc(a, b);
- do {
- $Fc(a);
- if (c2 == 0) {
- return 0;
- }
- d = !d;
- e = c2;
- dGc(a, b, d, false);
- c2 = OFc(a, b);
- } while (e > c2);
- return e;
- }
- function XFc(a, b) {
- var c2, d, e;
- d = Cub(a.d, 1) != 0;
- !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc)));
- dGc(a, b, d, true);
- Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false));
- if (Ccb(DD(vNb(b.j, Jsc)))) {
- yNb(b.j, Jsc, (Bcb(), false));
- yNb(b.j, mtc, true);
- }
- c2 = NFc(a, b);
- do {
- $Fc(a);
- if (c2 == 0) {
- return 0;
- }
- d = !d;
- e = c2;
- dGc(a, b, d, false);
- c2 = NFc(a, b);
- } while (e > c2);
- return e;
- }
- function uNd(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2;
- if (b == c2) {
- return true;
- } else {
- b = vNd(a, b);
- c2 = vNd(a, c2);
- d = JQd(b);
- if (d) {
- k = JQd(c2);
- if (k != d) {
- if (!k) {
- return false;
- } else {
- i3 = d.Dj();
- o2 = k.Dj();
- return i3 == o2 && i3 != null;
- }
- } else {
- g = (!b.d && (b.d = new xMd(j5, b, 1)), b.d);
- f2 = g.i;
- m = (!c2.d && (c2.d = new xMd(j5, c2, 1)), c2.d);
- if (f2 == m.i) {
- for (j = 0; j < f2; ++j) {
- e = BD(qud(g, j), 87);
- l = BD(qud(m, j), 87);
- if (!uNd(a, e, l)) {
- return false;
- }
- }
- }
- return true;
- }
- } else {
- h = b.e;
- n = c2.e;
- return h == n;
- }
- }
- }
- function X2d(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l;
- if (T6d(a.e, b)) {
- l = S6d(a.e.Tg(), b);
- f2 = BD(a.g, 119);
- k = null;
- i3 = -1;
- h = -1;
- e = 0;
- for (j = 0; j < a.i; ++j) {
- g = f2[j];
- if (l.rl(g.ak())) {
- e == c2 && (i3 = j);
- if (e == d) {
- h = j;
- k = g.dd();
- }
- ++e;
- }
- }
- if (i3 == -1) {
- throw vbb(new qcb(lue + c2 + mue + e));
- }
- if (h == -1) {
- throw vbb(new qcb(nue + d + mue + e));
- }
- Wxd(a, i3, h);
- oid(a.e) && GLd(a, H2d(a, 7, b, meb(d), k, c2, true));
- return k;
- } else {
- throw vbb(new Wdb("The feature must be many-valued to support move"));
- }
- }
- function b_b(a, b, c2, d) {
- var e, f2, g, h, i3;
- i3 = new g7c(b.n);
- i3.a += b.o.a / 2;
- i3.b += b.o.b / 2;
- h = Edb(ED(vNb(b, (Nyc(), Uxc))));
- f2 = a.f;
- g = a.d;
- e = a.c;
- switch (BD(vNb(b, (wtc(), Hsc)), 61).g) {
- case 1:
- i3.a += g.b + e.a - c2 / 2;
- i3.b = -d - h;
- b.n.b = -(g.d + h + e.b);
- break;
- case 2:
- i3.a = f2.a + g.b + g.c + h;
- i3.b += g.d + e.b - d / 2;
- b.n.a = f2.a + g.c + h - e.a;
- break;
- case 3:
- i3.a += g.b + e.a - c2 / 2;
- i3.b = f2.b + g.d + g.a + h;
- b.n.b = f2.b + g.a + h - e.b;
- break;
- case 4:
- i3.a = -c2 - h;
- i3.b += g.d + e.b - d / 2;
- b.n.a = -(g.b + h + e.a);
- }
- return i3;
- }
- function P1b(a) {
- var b, c2, d, e, f2, g;
- d = new XZb();
- tNb(d, a);
- PD(vNb(d, (Nyc(), Lwc))) === PD((ead(), cad)) && yNb(d, Lwc, a_b(d));
- if (vNb(d, (g6c(), f6c)) == null) {
- g = BD(m6d(a), 160);
- yNb(d, f6c, RD(g.We(f6c)));
- }
- yNb(d, (wtc(), $sc), a);
- yNb(d, Ksc, (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)));
- e = OGb((!Xod(a) ? null : (Pgd(), new bhd(Xod(a))), Pgd(), new hhd(!Xod(a) ? null : new bhd(Xod(a)), a)), bad);
- f2 = BD(vNb(d, Kxc), 116);
- c2 = d.d;
- t_b(c2, f2);
- t_b(c2, e);
- return d;
- }
- function ybc(a, b, c2) {
- var d, e;
- d = b.c.i;
- e = c2.d.i;
- if (d.k == (j0b(), g0b)) {
- yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
- yNb(a, Wsc, BD(vNb(d, Wsc), 11));
- yNb(a, Usc, DD(vNb(d, Usc)));
- } else if (d.k == f0b) {
- yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
- yNb(a, Wsc, BD(vNb(d, Wsc), 11));
- yNb(a, Usc, (Bcb(), true));
- } else if (e.k == f0b) {
- yNb(a, (wtc(), Vsc), BD(vNb(e, Vsc), 11));
- yNb(a, Wsc, BD(vNb(e, Wsc), 11));
- yNb(a, Usc, (Bcb(), true));
- } else {
- yNb(a, (wtc(), Vsc), b.c);
- yNb(a, Wsc, c2.d);
- }
- }
- function FGb(a) {
- var b, c2, d, e, f2, g, h;
- a.o = new jkb();
- d = new Psb();
- for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 121);
- LFb(f2).c.length == 1 && (Gsb(d, f2, d.c.b, d.c), true);
- }
- while (d.b != 0) {
- f2 = BD(d.b == 0 ? null : (sCb(d.b != 0), Nsb(d, d.a.a)), 121);
- if (LFb(f2).c.length == 0) {
- continue;
- }
- b = BD(Ikb(LFb(f2), 0), 213);
- c2 = f2.g.a.c.length > 0;
- h = xFb(b, f2);
- c2 ? OFb(h.b, b) : OFb(h.g, b);
- LFb(h).c.length == 1 && (Gsb(d, h, d.c.b, d.c), true);
- e = new vgd(f2, b);
- Wjb(a.o, e);
- Lkb(a.e.a, f2);
- }
- }
- function _Nb(a, b) {
- var c2, d, e, f2, g, h, i3;
- d = $wnd.Math.abs(D6c(a.b).a - D6c(b.b).a);
- h = $wnd.Math.abs(D6c(a.b).b - D6c(b.b).b);
- e = 0;
- i3 = 0;
- c2 = 1;
- g = 1;
- if (d > a.b.b / 2 + b.b.b / 2) {
- e = $wnd.Math.min($wnd.Math.abs(a.b.c - (b.b.c + b.b.b)), $wnd.Math.abs(a.b.c + a.b.b - b.b.c));
- c2 = 1 - e / d;
- }
- if (h > a.b.a / 2 + b.b.a / 2) {
- i3 = $wnd.Math.min($wnd.Math.abs(a.b.d - (b.b.d + b.b.a)), $wnd.Math.abs(a.b.d + a.b.a - b.b.d));
- g = 1 - i3 / h;
- }
- f2 = $wnd.Math.min(c2, g);
- return (1 - f2) * $wnd.Math.sqrt(d * d + h * h);
- }
- function lQc(a) {
- var b, c2, d, e;
- nQc(a, a.e, a.f, (FQc(), DQc), true, a.c, a.i);
- nQc(a, a.e, a.f, DQc, false, a.c, a.i);
- nQc(a, a.e, a.f, EQc, true, a.c, a.i);
- nQc(a, a.e, a.f, EQc, false, a.c, a.i);
- mQc(a, a.c, a.e, a.f, a.i);
- d = new Bib(a.i, 0);
- while (d.b < d.d.gc()) {
- b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 128));
- e = new Bib(a.i, d.b);
- while (e.b < e.d.gc()) {
- c2 = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 128));
- kQc(b, c2);
- }
- }
- wQc(a.i, BD(vNb(a.d, (wtc(), jtc)), 230));
- zQc(a.i);
- }
- function fKd(a, b) {
- var c2, d;
- if (b != null) {
- d = dKd(a);
- if (d) {
- if ((d.i & 1) != 0) {
- if (d == sbb) {
- return KD(b);
- } else if (d == WD) {
- return JD(b, 19);
- } else if (d == VD) {
- return JD(b, 155);
- } else if (d == SD) {
- return JD(b, 217);
- } else if (d == TD) {
- return JD(b, 172);
- } else if (d == UD) {
- return LD(b);
- } else if (d == rbb) {
- return JD(b, 184);
- } else if (d == XD) {
- return JD(b, 162);
- }
- } else {
- return pEd(), c2 = BD(Ohb(oEd, d), 55), !c2 || c2.wj(b);
- }
- } else if (JD(b, 56)) {
- return a.uk(BD(b, 56));
- }
- }
- return false;
- }
- function ade() {
- ade = ccb;
- var a, b, c2, d, e, f2, g, h, i3;
- $ce = KC(SD, wte, 25, 255, 15, 1);
- _ce = KC(TD, $ie, 25, 64, 15, 1);
- for (b = 0; b < 255; b++) {
- $ce[b] = -1;
- }
- for (c2 = 90; c2 >= 65; c2--) {
- $ce[c2] = c2 - 65 << 24 >> 24;
- }
- for (d = 122; d >= 97; d--) {
- $ce[d] = d - 97 + 26 << 24 >> 24;
- }
- for (e = 57; e >= 48; e--) {
- $ce[e] = e - 48 + 52 << 24 >> 24;
- }
- $ce[43] = 62;
- $ce[47] = 63;
- for (f2 = 0; f2 <= 25; f2++)
- _ce[f2] = 65 + f2 & aje;
- for (g = 26, i3 = 0; g <= 51; ++g, i3++)
- _ce[g] = 97 + i3 & aje;
- for (a = 52, h = 0; a <= 61; ++a, h++)
- _ce[a] = 48 + h & aje;
- _ce[62] = 43;
- _ce[63] = 47;
- }
- function FXb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- if (a.dc()) {
- return new d7c();
- }
- j = 0;
- l = 0;
- for (e = a.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 37);
- f2 = d.f;
- j = $wnd.Math.max(j, f2.a);
- l += f2.a * f2.b;
- }
- j = $wnd.Math.max(j, $wnd.Math.sqrt(l) * Edb(ED(vNb(BD(a.Kc().Pb(), 37), (Nyc(), owc)))));
- m = 0;
- n = 0;
- i3 = 0;
- c2 = b;
- for (h = a.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 37);
- k = g.f;
- if (m + k.a > j) {
- m = 0;
- n += i3 + b;
- i3 = 0;
- }
- uXb(g, m, n);
- c2 = $wnd.Math.max(c2, m + k.a);
- i3 = $wnd.Math.max(i3, k.b);
- m += k.a + b;
- }
- return new f7c(c2 + b, n + i3 + b);
- }
- function mQc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l;
- for (g = new olb(b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 17);
- i3 = f2.c;
- if (c2.a._b(i3)) {
- j = (FQc(), DQc);
- } else if (d.a._b(i3)) {
- j = (FQc(), EQc);
- } else {
- throw vbb(new Wdb("Source port must be in one of the port sets."));
- }
- k = f2.d;
- if (c2.a._b(k)) {
- l = (FQc(), DQc);
- } else if (d.a._b(k)) {
- l = (FQc(), EQc);
- } else {
- throw vbb(new Wdb("Target port must be in one of the port sets."));
- }
- h = new YQc(f2, j, l);
- Rhb(a.b, f2, h);
- e.c[e.c.length] = h;
- }
- }
- function lfd(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (!mpd(a)) {
- throw vbb(new Zdb(Sse));
- }
- d = mpd(a);
- f2 = d.g;
- e = d.f;
- if (f2 <= 0 && e <= 0) {
- return Ucd(), Scd;
- }
- h = a.i;
- i3 = a.j;
- switch (b.g) {
- case 2:
- case 1:
- if (h < 0) {
- return Ucd(), Tcd;
- } else if (h + a.g > f2) {
- return Ucd(), zcd;
- }
- break;
- case 4:
- case 3:
- if (i3 < 0) {
- return Ucd(), Acd;
- } else if (i3 + a.f > e) {
- return Ucd(), Rcd;
- }
- }
- g = (h + a.g / 2) / f2;
- c2 = (i3 + a.f / 2) / e;
- return g + c2 <= 1 && g - c2 <= 0 ? (Ucd(), Tcd) : g + c2 >= 1 && g - c2 >= 0 ? (Ucd(), zcd) : c2 < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd);
- }
- function vhb(a, b, c2, d, e) {
- var f2, g;
- f2 = wbb(xbb(b[0], Yje), xbb(d[0], Yje));
- a[0] = Tbb(f2);
- f2 = Obb(f2, 32);
- if (c2 >= e) {
- for (g = 1; g < e; g++) {
- f2 = wbb(f2, wbb(xbb(b[g], Yje), xbb(d[g], Yje)));
- a[g] = Tbb(f2);
- f2 = Obb(f2, 32);
- }
- for (; g < c2; g++) {
- f2 = wbb(f2, xbb(b[g], Yje));
- a[g] = Tbb(f2);
- f2 = Obb(f2, 32);
- }
- } else {
- for (g = 1; g < c2; g++) {
- f2 = wbb(f2, wbb(xbb(b[g], Yje), xbb(d[g], Yje)));
- a[g] = Tbb(f2);
- f2 = Obb(f2, 32);
- }
- for (; g < e; g++) {
- f2 = wbb(f2, xbb(d[g], Yje));
- a[g] = Tbb(f2);
- f2 = Obb(f2, 32);
- }
- }
- ybb(f2, 0) != 0 && (a[g] = Tbb(f2));
- }
- function _fe(a) {
- wfe();
- var b, c2, d, e, f2, g;
- if (a.e != 4 && a.e != 5)
- throw vbb(new Wdb("Token#complementRanges(): must be RANGE: " + a.e));
- f2 = a;
- Yfe(f2);
- Vfe(f2);
- d = f2.b.length + 2;
- f2.b[0] == 0 && (d -= 2);
- c2 = f2.b[f2.b.length - 1];
- c2 == lxe && (d -= 2);
- e = new $fe(4);
- e.b = KC(WD, oje, 25, d, 15, 1);
- g = 0;
- if (f2.b[0] > 0) {
- e.b[g++] = 0;
- e.b[g++] = f2.b[0] - 1;
- }
- for (b = 1; b < f2.b.length - 2; b += 2) {
- e.b[g++] = f2.b[b] + 1;
- e.b[g++] = f2.b[b + 1] - 1;
- }
- if (c2 != lxe) {
- e.b[g++] = c2 + 1;
- e.b[g] = lxe;
- }
- e.a = true;
- return e;
- }
- function Pxd(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- d = c2.gc();
- if (d == 0) {
- return false;
- } else {
- if (a.ej()) {
- j = a.fj();
- iud(a, b, c2);
- g = d == 1 ? a.Zi(3, null, c2.Kc().Pb(), b, j) : a.Zi(5, null, c2, b, j);
- if (a.bj()) {
- h = d < 100 ? null : new Ixd(d);
- f2 = b + d;
- for (e = b; e < f2; ++e) {
- k = a.g[e];
- h = a.cj(k, h);
- h = a.jj(k, h);
- }
- if (!h) {
- a.$i(g);
- } else {
- h.Ei(g);
- h.Fi();
- }
- } else {
- a.$i(g);
- }
- } else {
- iud(a, b, c2);
- if (a.bj()) {
- h = d < 100 ? null : new Ixd(d);
- f2 = b + d;
- for (e = b; e < f2; ++e) {
- i3 = a.g[e];
- h = a.cj(i3, h);
- }
- !!h && h.Fi();
- }
- }
- return true;
- }
- }
- function YNc(a, b, c2, d) {
- var e, f2, g, h, i3;
- for (g = new olb(a.k); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 129);
- if (!d || e.c == (HOc(), FOc)) {
- i3 = e.b;
- if (i3.g < 0 && e.d > 0) {
- pOc(i3, i3.d - e.d);
- e.c == (HOc(), FOc) && nOc(i3, i3.a - e.d);
- i3.d <= 0 && i3.i > 0 && (Gsb(b, i3, b.c.b, b.c), true);
- }
- }
- }
- for (f2 = new olb(a.f); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 129);
- if (!d || e.c == (HOc(), FOc)) {
- h = e.a;
- if (h.g < 0 && e.d > 0) {
- qOc(h, h.i - e.d);
- e.c == (HOc(), FOc) && oOc(h, h.b - e.d);
- h.i <= 0 && h.d > 0 && (Gsb(c2, h, c2.c.b, c2.c), true);
- }
- }
- }
- }
- function gSc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- Odd(c2, "Processor compute fanout", 1);
- Uhb(a.b);
- Uhb(a.a);
- h = null;
- f2 = Jsb(b.b, 0);
- while (!h && f2.b != f2.d.c) {
- j = BD(Xsb(f2), 86);
- Ccb(DD(vNb(j, (mTc(), jTc)))) && (h = j);
- }
- i3 = new Psb();
- Gsb(i3, h, i3.c.b, i3.c);
- fSc(a, i3);
- for (k = Jsb(b.b, 0); k.b != k.d.c; ) {
- j = BD(Xsb(k), 86);
- g = GD(vNb(j, (mTc(), $Sc)));
- e = Phb(a.b, g) != null ? BD(Phb(a.b, g), 19).a : 0;
- yNb(j, ZSc, meb(e));
- d = 1 + (Phb(a.a, g) != null ? BD(Phb(a.a, g), 19).a : 0);
- yNb(j, XSc, meb(d));
- }
- Qdd(c2);
- }
- function WPc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2;
- m = VPc(a, c2);
- for (i3 = 0; i3 < b; i3++) {
- Aib(e, c2);
- n = new Rkb();
- o2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407));
- for (k = m + i3; k < a.b; k++) {
- h = o2;
- o2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407));
- Ekb(n, new aQc(h, o2, c2));
- }
- for (l = m + i3; l < a.b; l++) {
- sCb(d.b > 0);
- d.a.Xb(d.c = --d.b);
- l > m + i3 && uib(d);
- }
- for (g = new olb(n); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 407);
- Aib(d, f2);
- }
- if (i3 < b - 1) {
- for (j = m + i3; j < a.b; j++) {
- sCb(d.b > 0);
- d.a.Xb(d.c = --d.b);
- }
- }
- }
- }
- function Jfe() {
- wfe();
- var a, b, c2, d, e, f2;
- if (gfe)
- return gfe;
- a = new $fe(4);
- Xfe(a, Kfe(vxe, true));
- Zfe(a, Kfe("M", true));
- Zfe(a, Kfe("C", true));
- f2 = new $fe(4);
- for (d = 0; d < 11; d++) {
- Ufe(f2, d, d);
- }
- b = new $fe(4);
- Xfe(b, Kfe("M", true));
- Ufe(b, 4448, 4607);
- Ufe(b, 65438, 65439);
- e = new Lge(2);
- Kge(e, a);
- Kge(e, ffe);
- c2 = new Lge(2);
- c2.$l(Bfe(f2, Kfe("L", true)));
- c2.$l(b);
- c2 = new lge(3, c2);
- c2 = new rge(e, c2);
- gfe = c2;
- return gfe;
- }
- function S3c(a) {
- var b, c2;
- b = GD(hkd(a, (Y9c(), o8c)));
- if (T3c(b, a)) {
- return;
- }
- if (!ikd(a, F9c) && ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i != 0 || Ccb(DD(hkd(a, M8c))))) {
- if (b == null || ufb(b).length == 0) {
- if (!T3c(sne, a)) {
- c2 = Qfb(Qfb(new Wfb("Unable to load default layout algorithm "), sne), " for unconfigured node ");
- yfd(a, c2);
- throw vbb(new y2c(c2.a));
- }
- } else {
- c2 = Qfb(Qfb(new Wfb("Layout algorithm '"), b), "' not found for ");
- yfd(a, c2);
- throw vbb(new y2c(c2.a));
- }
- }
- }
- function hIb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
- c2 = a.i;
- b = a.n;
- if (a.b == 0) {
- n = c2.c + b.b;
- m = c2.b - b.b - b.c;
- for (g = a.a, i3 = 0, k = g.length; i3 < k; ++i3) {
- e = g[i3];
- mHb(e, n, m);
- }
- } else {
- d = kIb(a, false);
- mHb(a.a[0], c2.c + b.b, d[0]);
- mHb(a.a[2], c2.c + c2.b - b.c - d[2], d[2]);
- l = c2.b - b.b - b.c;
- if (d[0] > 0) {
- l -= d[0] + a.c;
- d[0] += a.c;
- }
- d[2] > 0 && (l -= d[2] + a.c);
- d[1] = $wnd.Math.max(d[1], l);
- mHb(a.a[1], c2.c + b.b + d[0] - (d[1] - l) / 2, d[1]);
- }
- for (f2 = a.a, h = 0, j = f2.length; h < j; ++h) {
- e = f2[h];
- JD(e, 326) && BD(e, 326).Te();
- }
- }
- function KMc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- l = new JMc();
- l.d = 0;
- for (g = new olb(a.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- l.d += f2.a.c.length;
- }
- d = 0;
- e = 0;
- l.a = KC(WD, oje, 25, a.b.c.length, 15, 1);
- j = 0;
- k = 0;
- l.e = KC(WD, oje, 25, l.d, 15, 1);
- for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 29);
- b.p = d++;
- l.a[b.p] = e++;
- k = 0;
- for (i3 = new olb(b.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- h.p = j++;
- l.e[h.p] = k++;
- }
- }
- l.c = new OMc(l);
- l.b = Pu(l.d);
- LMc(l, a);
- l.f = Pu(l.d);
- MMc(l, a);
- return l;
- }
- function GZc(a, b) {
- var c2, d, e, f2;
- f2 = BD(Ikb(a.n, a.n.c.length - 1), 211).d;
- a.p = $wnd.Math.min(a.p, b.g);
- a.r = $wnd.Math.max(a.r, f2);
- a.g = $wnd.Math.max(a.g, b.g + (a.b.c.length == 1 ? 0 : a.i));
- a.o = $wnd.Math.min(a.o, b.f);
- a.e += b.f + (a.b.c.length == 1 ? 0 : a.i);
- a.f = $wnd.Math.max(a.f, b.f);
- e = a.n.c.length > 0 ? (a.n.c.length - 1) * a.i : 0;
- for (d = new olb(a.n); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 211);
- e += c2.a;
- }
- a.d = e;
- a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length);
- u$c(a.j);
- }
- function LQb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- k = DD(vNb(b, (wSb(), sSb)));
- if (k == null || (uCb(k), k)) {
- l = KC(sbb, dle, 25, b.e.c.length, 16, 1);
- g = HQb(b);
- e = new Psb();
- for (j = new olb(b.e); j.a < j.c.c.length; ) {
- h = BD(mlb(j), 144);
- c2 = IQb(a, h, null, null, l, g);
- if (c2) {
- tNb(c2, b);
- Gsb(e, c2, e.c.b, e.c);
- }
- }
- if (e.b > 1) {
- for (d = Jsb(e, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 231);
- f2 = 0;
- for (i3 = new olb(c2.e); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 144);
- h.b = f2++;
- }
- }
- }
- return e;
- }
- return Ou(OC(GC($O, 1), fme, 231, 0, [b]));
- }
- function TKd(a) {
- var b, c2, d, e, f2, g, h;
- if (!a.g) {
- h = new zNd();
- b = KKd;
- g = b.a.zc(a, b);
- if (g == null) {
- for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 26);
- ytd(h, TKd(c2));
- }
- b.a.Bc(a) != null;
- b.a.gc() == 0 && void 0;
- }
- e = h.i;
- for (f2 = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); f2.e != f2.i.gc(); ++e) {
- bJd(BD(Dyd(f2), 449), e);
- }
- ytd(h, (!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s));
- vud(h);
- a.g = new rNd(a, h);
- a.i = BD(h.g, 247);
- a.i == null && (a.i = MKd);
- a.p = null;
- $Kd(a).b &= -5;
- }
- return a.g;
- }
- function iIb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- d = a.i;
- c2 = a.n;
- if (a.b == 0) {
- b = jIb(a, false);
- nHb(a.a[0], d.d + c2.d, b[0]);
- nHb(a.a[2], d.d + d.a - c2.a - b[2], b[2]);
- m = d.a - c2.d - c2.a;
- l = m;
- if (b[0] > 0) {
- b[0] += a.c;
- l -= b[0];
- }
- b[2] > 0 && (l -= b[2] + a.c);
- b[1] = $wnd.Math.max(b[1], l);
- nHb(a.a[1], d.d + c2.d + b[0] - (b[1] - l) / 2, b[1]);
- } else {
- o2 = d.d + c2.d;
- n = d.a - c2.d - c2.a;
- for (g = a.a, i3 = 0, k = g.length; i3 < k; ++i3) {
- e = g[i3];
- nHb(e, o2, n);
- }
- }
- for (f2 = a.a, h = 0, j = f2.length; h < j; ++h) {
- e = f2[h];
- JD(e, 326) && BD(e, 326).Ue();
- }
- }
- function boc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- k = KC(WD, oje, 25, a.b.c.length + 1, 15, 1);
- j = new Tqb();
- d = 0;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- k[d++] = j.a.gc();
- for (i3 = new olb(e.a); i3.a < i3.c.c.length; ) {
- g = BD(mlb(i3), 10);
- for (c2 = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- j.a.zc(b, j);
- }
- }
- for (h = new olb(e.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- for (c2 = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- j.a.Bc(b) != null;
- }
- }
- }
- return k;
- }
- function F2d(a, b, c2, d) {
- var e, f2, g, h, i3;
- i3 = S6d(a.e.Tg(), b);
- e = BD(a.g, 119);
- Q6d();
- if (BD(b, 66).Oj()) {
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (i3.rl(f2.ak()) && pb(f2, c2)) {
- return true;
- }
- }
- } else if (c2 != null) {
- for (h = 0; h < a.i; ++h) {
- f2 = e[h];
- if (i3.rl(f2.ak()) && pb(c2, f2.dd())) {
- return true;
- }
- }
- if (d) {
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (i3.rl(f2.ak()) && PD(c2) === PD(a3d(a, BD(f2.dd(), 56)))) {
- return true;
- }
- }
- }
- } else {
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (i3.rl(f2.ak()) && f2.dd() == null) {
- return false;
- }
- }
- }
- return false;
- }
- function e3d(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- j = S6d(a.e.Tg(), b);
- g = BD(a.g, 119);
- if (T6d(a.e, b)) {
- if (b.hi()) {
- f2 = M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
- if (f2 >= 0 && f2 != c2) {
- throw vbb(new Wdb(kue));
- }
- }
- e = 0;
- for (i3 = 0; i3 < a.i; ++i3) {
- h = g[i3];
- if (j.rl(h.ak())) {
- if (e == c2) {
- return BD(Gtd(a, i3, (Q6d(), BD(b, 66).Oj() ? BD(d, 72) : R6d(b, d))), 72);
- }
- ++e;
- }
- }
- throw vbb(new qcb(gve + c2 + mue + e));
- } else {
- for (i3 = 0; i3 < a.i; ++i3) {
- h = g[i3];
- if (j.rl(h.ak())) {
- return Q6d(), BD(b, 66).Oj() ? h : h.dd();
- }
- }
- return null;
- }
- }
- function ONb(a, b, c2, d) {
- var e, f2, g, h;
- h = c2;
- for (g = new olb(b.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 221);
- e = BD(f2.b, 65);
- if (Jy(a.b.c, e.b.c + e.b.b) <= 0 && Jy(e.b.c, a.b.c + a.b.b) <= 0 && Jy(a.b.d, e.b.d + e.b.a) <= 0 && Jy(e.b.d, a.b.d + a.b.a) <= 0) {
- if (Jy(e.b.c, a.b.c + a.b.b) == 0 && d.a < 0 || Jy(e.b.c + e.b.b, a.b.c) == 0 && d.a > 0 || Jy(e.b.d, a.b.d + a.b.a) == 0 && d.b < 0 || Jy(e.b.d + e.b.a, a.b.d) == 0 && d.b > 0) {
- h = 0;
- break;
- }
- } else {
- h = $wnd.Math.min(h, YNb(a, e, d));
- }
- h = $wnd.Math.min(h, ONb(a, f2, h, d));
- }
- return h;
- }
- function ifd(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (a.b < 2) {
- throw vbb(new Wdb("The vector chain must contain at least a source and a target point."));
- }
- e = (sCb(a.b != 0), BD(a.a.a.c, 8));
- nmd(b, e.a, e.b);
- i3 = new Oyd((!b.a && (b.a = new xMd(y2, b, 5)), b.a));
- g = Jsb(a, 1);
- while (g.a < a.b - 1) {
- h = BD(Xsb(g), 8);
- if (i3.e != i3.i.gc()) {
- c2 = BD(Dyd(i3), 469);
- } else {
- c2 = (Fhd(), d = new xkd(), d);
- Myd(i3, c2);
- }
- ukd(c2, h.a, h.b);
- }
- while (i3.e != i3.i.gc()) {
- Dyd(i3);
- Eyd(i3);
- }
- f2 = (sCb(a.b != 0), BD(a.c.b.c, 8));
- gmd(b, f2.a, f2.b);
- }
- function $lc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- c2 = 0;
- for (e = new olb((tCb(0, a.c.length), BD(a.c[0], 101)).g.b.j); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 11);
- d.p = c2++;
- }
- b == (Ucd(), Acd) ? Okb(a, new gmc()) : Okb(a, new kmc());
- h = 0;
- k = a.c.length - 1;
- while (h < k) {
- g = (tCb(h, a.c.length), BD(a.c[h], 101));
- j = (tCb(k, a.c.length), BD(a.c[k], 101));
- f2 = b == Acd ? g.c : g.a;
- i3 = b == Acd ? j.a : j.c;
- amc(g, b, (Ajc(), yjc), f2);
- amc(j, b, xjc, i3);
- ++h;
- --k;
- }
- h == k && amc((tCb(h, a.c.length), BD(a.c[h], 101)), b, (Ajc(), wjc), null);
- }
- function UVc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- l = a.a.i + a.a.g / 2;
- m = a.a.i + a.a.g / 2;
- o2 = b.i + b.g / 2;
- q = b.j + b.f / 2;
- h = new f7c(o2, q);
- j = BD(hkd(b, (Y9c(), C9c)), 8);
- j.a = j.a + l;
- j.b = j.b + m;
- f2 = (h.b - j.b) / (h.a - j.a);
- d = h.b - f2 * h.a;
- p = c2.i + c2.g / 2;
- r = c2.j + c2.f / 2;
- i3 = new f7c(p, r);
- k = BD(hkd(c2, C9c), 8);
- k.a = k.a + l;
- k.b = k.b + m;
- g = (i3.b - k.b) / (i3.a - k.a);
- e = i3.b - g * i3.a;
- n = (d - e) / (g - f2);
- if (j.a < n && h.a < n || n < j.a && n < h.a) {
- return false;
- } else if (k.a < n && i3.a < n || n < k.a && n < i3.a) {
- return false;
- }
- return true;
- }
- function gqd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- m = BD(Ohb(a.c, b), 183);
- if (!m) {
- throw vbb(new cqd("Edge did not exist in input."));
- }
- j = Wpd(m);
- f2 = Fhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a));
- h = !f2;
- if (h) {
- n = new wB();
- c2 = new Rrd(a, j, n);
- Dhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), c2);
- cC(m, Nte, n);
- }
- e = ikd(b, (Y9c(), Q8c));
- if (e) {
- k = BD(hkd(b, Q8c), 74);
- g = !k || Ehe(k);
- i3 = !g;
- if (i3) {
- l = new wB();
- d = new Zrd(l);
- reb(k, d);
- cC(m, "junctionPoints", l);
- }
- }
- Upd(m, "container", Mld(b).k);
- return null;
- }
- function eDb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- this.a = a;
- this.b = b;
- this.c = c2;
- this.e = Ou(OC(GC(GM, 1), Uhe, 168, 0, [new aDb(a, b), new aDb(b, c2), new aDb(c2, a)]));
- this.f = Ou(OC(GC(m1, 1), nie, 8, 0, [a, b, c2]));
- this.d = (d = c7c(R6c(this.b), this.a), e = c7c(R6c(this.c), this.a), f2 = c7c(R6c(this.c), this.b), g = d.a * (this.a.a + this.b.a) + d.b * (this.a.b + this.b.b), h = e.a * (this.a.a + this.c.a) + e.b * (this.a.b + this.c.b), i3 = 2 * (d.a * f2.b - d.b * f2.a), j = (e.b * g - d.b * h) / i3, k = (d.a * h - e.a * g) / i3, new f7c(j, k));
- }
- function nvd(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2;
- m = new yC(a.p);
- cC(b, fue, m);
- if (c2 && !(!a.f ? null : vmb(a.f)).a.dc()) {
- k = new wB();
- cC(b, "logs", k);
- h = 0;
- for (o2 = new Dnb((!a.f ? null : vmb(a.f)).b.Kc()); o2.b.Ob(); ) {
- n = GD(o2.b.Pb());
- l = new yC(n);
- tB(k, h);
- vB(k, h, l);
- ++h;
- }
- }
- if (d) {
- j = new TB(a.q);
- cC(b, "executionTime", j);
- }
- if (!vmb(a.a).a.dc()) {
- g = new wB();
- cC(b, Jte, g);
- h = 0;
- for (f2 = new Dnb(vmb(a.a).b.Kc()); f2.b.Ob(); ) {
- e = BD(f2.b.Pb(), 1949);
- i3 = new eC();
- tB(g, h);
- vB(g, h, i3);
- nvd(e, i3, c2, d);
- ++h;
- }
- }
- }
- function PZb(a, b) {
- var c2, d, e, f2, g, h;
- f2 = a.c;
- g = a.d;
- QZb(a, null);
- RZb(a, null);
- b && Ccb(DD(vNb(g, (wtc(), Msc)))) ? QZb(a, i_b(g.i, (KAc(), IAc), (Ucd(), zcd))) : QZb(a, g);
- b && Ccb(DD(vNb(f2, (wtc(), etc)))) ? RZb(a, i_b(f2.i, (KAc(), HAc), (Ucd(), Tcd))) : RZb(a, f2);
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 70);
- e = BD(vNb(c2, (Nyc(), Qwc)), 272);
- e == (qad(), pad2) ? yNb(c2, Qwc, oad) : e == oad && yNb(c2, Qwc, pad2);
- }
- h = Ccb(DD(vNb(a, (wtc(), ltc))));
- yNb(a, ltc, (Bcb(), h ? false : true));
- a.a = w7c(a.a);
- }
- function VQb(a, b, c2) {
- var d, e, f2, g, h, i3;
- d = 0;
- for (f2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); f2.e != f2.i.gc(); ) {
- e = BD(Dyd(f2), 33);
- g = "";
- (!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n).i == 0 || (g = BD(qud((!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n), 0), 137).a);
- h = new pRb(g);
- tNb(h, e);
- yNb(h, (HSb(), FSb), e);
- h.b = d++;
- h.d.a = e.i + e.g / 2;
- h.d.b = e.j + e.f / 2;
- h.e.a = $wnd.Math.max(e.g, 1);
- h.e.b = $wnd.Math.max(e.f, 1);
- Ekb(b.e, h);
- jrb(c2.f, e, h);
- i3 = BD(hkd(e, (wSb(), mSb)), 98);
- i3 == (dcd(), ccd) && (i3 = bcd);
- }
- }
- function XJc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- c2 = nGb(new pGb(), a.f);
- j = a.i[b.c.i.p];
- n = a.i[b.d.i.p];
- i3 = b.c;
- m = b.d;
- h = i3.a.b;
- l = m.a.b;
- j.b || (h += i3.n.b);
- n.b || (l += m.n.b);
- k = QD($wnd.Math.max(0, h - l));
- g = QD($wnd.Math.max(0, l - h));
- o2 = (p = $wnd.Math.max(1, BD(vNb(b, (Nyc(), eyc)), 19).a), q = JJc(b.c.i.k, b.d.i.k), p * q);
- e = AFb(DFb(CFb(BFb(EFb(new FFb(), o2), g), c2), BD(Ohb(a.k, b.c), 121)));
- f2 = AFb(DFb(CFb(BFb(EFb(new FFb(), o2), k), c2), BD(Ohb(a.k, b.d), 121)));
- d = new qKc(e, f2);
- a.c[b.p] = d;
- }
- function NEc(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- g = new _Ec(a, b, c2);
- i3 = new Bib(d, 0);
- e = false;
- while (i3.b < i3.d.gc()) {
- h = (sCb(i3.b < i3.d.gc()), BD(i3.d.Xb(i3.c = i3.b++), 233));
- if (h == b || h == c2) {
- uib(i3);
- } else if (!e && Edb(REc(h.g, h.d[0]).a) > Edb(REc(g.g, g.d[0]).a)) {
- sCb(i3.b > 0);
- i3.a.Xb(i3.c = --i3.b);
- Aib(i3, g);
- e = true;
- } else if (!!h.e && h.e.gc() > 0) {
- f2 = (!h.e && (h.e = new Rkb()), h.e).Mc(b);
- j = (!h.e && (h.e = new Rkb()), h.e).Mc(c2);
- if (f2 || j) {
- (!h.e && (h.e = new Rkb()), h.e).Fc(g);
- ++g.c;
- }
- }
- }
- e || (d.c[d.c.length] = g, true);
- }
- function odc(a) {
- var b, c2, d;
- if (fcd(BD(vNb(a, (Nyc(), Vxc)), 98))) {
- for (c2 = new olb(a.j); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 11);
- b.j == (Ucd(), Scd) && (d = BD(vNb(b, (wtc(), gtc)), 10), d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, zcd) : G0b(b, Tcd));
- }
- } else {
- for (c2 = new olb(a.j); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 11);
- d = BD(vNb(b, (wtc(), gtc)), 10);
- d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, (Ucd(), zcd)) : G0b(b, (Ucd(), Tcd));
- }
- yNb(a, Vxc, (dcd(), acd));
- }
- }
- function age(a) {
- var b, c2, d;
- switch (a) {
- case 91:
- case 93:
- case 45:
- case 94:
- case 44:
- case 92:
- d = "\\" + String.fromCharCode(a & aje);
- break;
- case 12:
- d = "\\f";
- break;
- case 10:
- d = "\\n";
- break;
- case 13:
- d = "\\r";
- break;
- case 9:
- d = "\\t";
- break;
- case 27:
- d = "\\e";
- break;
- default:
- if (a < 32) {
- c2 = (b = a >>> 0, "0" + b.toString(16));
- d = "\\x" + qfb(c2, c2.length - 2, c2.length);
- } else if (a >= Tje) {
- c2 = (b = a >>> 0, "0" + b.toString(16));
- d = "\\v" + qfb(c2, c2.length - 6, c2.length);
- } else
- d = "" + String.fromCharCode(a & aje);
- }
- return d;
- }
- function yhb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- g = a.e;
- i3 = b.e;
- if (i3 == 0) {
- return a;
- }
- if (g == 0) {
- return b.e == 0 ? b : new Vgb(-b.e, b.d, b.a);
- }
- f2 = a.d;
- h = b.d;
- if (f2 + h == 2) {
- c2 = xbb(a.a[0], Yje);
- d = xbb(b.a[0], Yje);
- g < 0 && (c2 = Jbb(c2));
- i3 < 0 && (d = Jbb(d));
- return ghb(Qbb(c2, d));
- }
- e = f2 != h ? f2 > h ? 1 : -1 : whb(a.a, b.a, f2);
- if (e == -1) {
- l = -i3;
- k = g == i3 ? zhb(b.a, h, a.a, f2) : uhb(b.a, h, a.a, f2);
- } else {
- l = g;
- if (g == i3) {
- if (e == 0) {
- return Hgb(), Ggb;
- }
- k = zhb(a.a, f2, b.a, h);
- } else {
- k = uhb(a.a, f2, b.a, h);
- }
- }
- j = new Vgb(l, k.length, k);
- Jgb(j);
- return j;
- }
- function YPc(a) {
- var b, c2, d, e, f2, g;
- this.e = new Rkb();
- this.a = new Rkb();
- for (c2 = a.b - 1; c2 < 3; c2++) {
- St(a, 0, BD(Ut(a, 0), 8));
- }
- if (a.b < 4) {
- throw vbb(new Wdb("At (least dimension + 1) control points are necessary!"));
- } else {
- this.b = 3;
- this.d = true;
- this.c = false;
- TPc(this, a.b + this.b - 1);
- g = new Rkb();
- f2 = new olb(this.e);
- for (b = 0; b < this.b - 1; b++) {
- Ekb(g, ED(mlb(f2)));
- }
- for (e = Jsb(a, 0); e.b != e.d.c; ) {
- d = BD(Xsb(e), 8);
- Ekb(g, ED(mlb(f2)));
- Ekb(this.a, new bQc(d, g));
- tCb(0, g.c.length);
- g.c.splice(0, 1);
- }
- }
- }
- function Bac(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- for (h = new olb(e.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- if (g.k == (j0b(), f0b)) {
- i3 = (j = BD(Rr(new Sr(ur(R_b(g).a.Kc(), new Sq()))), 17), k = BD(Rr(new Sr(ur(U_b(g).a.Kc(), new Sq()))), 17), !Ccb(DD(vNb(j, (wtc(), ltc)))) || !Ccb(DD(vNb(k, ltc)))) ? b : sbd(b);
- zac(g, i3);
- }
- for (d = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- i3 = Ccb(DD(vNb(c2, (wtc(), ltc)))) ? sbd(b) : b;
- yac(c2, i3);
- }
- }
- }
- }
- function yZc(a, b, c2, d, e) {
- var f2, g, h;
- if (c2.f >= b.o && c2.f <= b.f || b.a * 0.5 <= c2.f && b.a * 1.5 >= c2.f) {
- g = BD(Ikb(b.n, b.n.c.length - 1), 211);
- if (g.e + g.d + c2.g + e <= d && (f2 = BD(Ikb(b.n, b.n.c.length - 1), 211), f2.f - a.f + c2.f <= a.b || a.a.c.length == 1)) {
- EZc(b, c2);
- return true;
- } else if (b.s + c2.g <= d && (b.t + b.d + c2.f + e <= a.b || a.a.c.length == 1)) {
- Ekb(b.b, c2);
- h = BD(Ikb(b.n, b.n.c.length - 1), 211);
- Ekb(b.n, new VZc(b.s, h.f + h.a + b.i, b.i));
- QZc(BD(Ikb(b.n, b.n.c.length - 1), 211), c2);
- GZc(b, c2);
- return true;
- }
- }
- return false;
- }
- function Zxd(a, b, c2) {
- var d, e, f2, g;
- if (a.ej()) {
- e = null;
- f2 = a.fj();
- d = a.Zi(1, g = uud(a, b, c2), c2, b, f2);
- if (a.bj() && !(a.ni() && g != null ? pb(g, c2) : PD(g) === PD(c2))) {
- g != null && (e = a.dj(g, e));
- e = a.cj(c2, e);
- a.ij() && (e = a.lj(g, c2, e));
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- } else {
- a.ij() && (e = a.lj(g, c2, e));
- if (!e) {
- a.$i(d);
- } else {
- e.Ei(d);
- e.Fi();
- }
- }
- return g;
- } else {
- g = uud(a, b, c2);
- if (a.bj() && !(a.ni() && g != null ? pb(g, c2) : PD(g) === PD(c2))) {
- e = null;
- g != null && (e = a.dj(g, null));
- e = a.cj(c2, e);
- !!e && e.Fi();
- }
- return g;
- }
- }
- function YA(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- b %= 24;
- if (a.q.getHours() != b) {
- d = new $wnd.Date(a.q.getTime());
- d.setDate(d.getDate() + 1);
- h = a.q.getTimezoneOffset() - d.getTimezoneOffset();
- if (h > 0) {
- i3 = h / 60 | 0;
- j = h % 60;
- e = a.q.getDate();
- c2 = a.q.getHours();
- c2 + i3 >= 24 && ++e;
- f2 = new $wnd.Date(a.q.getFullYear(), a.q.getMonth(), e, b + i3, a.q.getMinutes() + j, a.q.getSeconds(), a.q.getMilliseconds());
- a.q.setTime(f2.getTime());
- }
- }
- g = a.q.getTime();
- a.q.setTime(g + 36e5);
- a.q.getHours() != b && a.q.setTime(g);
- }
- function opc(a, b) {
- var c2, d, e, f2, g;
- Odd(b, "Path-Like Graph Wrapping", 1);
- if (a.b.c.length == 0) {
- Qdd(b);
- return;
- }
- e = new Xoc(a);
- g = (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i) * e.f);
- c2 = g / (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i));
- if (e.b > c2) {
- Qdd(b);
- return;
- }
- switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) {
- case 2:
- f2 = new hpc();
+ case 30:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
break;
- case 0:
- f2 = new Ync();
+ case 31:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
break;
- default:
- f2 = new kpc();
- }
- d = f2.Vf(a, e);
- if (!f2.Wf()) {
- switch (BD(vNb(a, Myc), 338).g) {
- case 2:
- d = tpc(e, d);
- break;
- case 1:
- d = rpc(e, d);
- }
- }
- npc(a, e, d);
- Qdd(b);
- }
- function MFc(a, b) {
- var c2, d, e, f2;
- Fub(a.d, a.e);
- a.c.a.$b();
- if (Edb(ED(vNb(b.j, (Nyc(), uwc)))) != 0 || Edb(ED(vNb(b.j, uwc))) != 0) {
- c2 = dme;
- PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true));
- f2 = BD(vNb(b.j, Ayc), 19).a;
- for (e = 0; e < f2; e++) {
- d = WFc(a, b);
- if (d < c2) {
- c2 = d;
- ZFc(a);
- if (c2 == 0) {
- break;
- }
- }
- }
- } else {
- c2 = Ohe;
- PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true));
- f2 = BD(vNb(b.j, Ayc), 19).a;
- for (e = 0; e < f2; e++) {
- d = XFc(a, b);
- if (d < c2) {
- c2 = d;
- ZFc(a);
- if (c2 == 0) {
- break;
- }
- }
- }
- }
- }
- function spc(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- g = new Rkb();
- h = 0;
- c2 = 0;
- i3 = 0;
- while (h < b.c.length - 1 && c2 < a.gc()) {
- d = BD(a.Xb(c2), 19).a + i3;
- while ((tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a < d) {
- ++h;
- }
- j = 0;
- f2 = d - (tCb(h, b.c.length), BD(b.c[h], 19)).a;
- e = (tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a - d;
- f2 > e && ++j;
- Ekb(g, (tCb(h + j, b.c.length), BD(b.c[h + j], 19)));
- i3 += (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a - d;
- ++c2;
- while (c2 < a.gc() && BD(a.Xb(c2), 19).a + i3 <= (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a) {
- ++c2;
- }
- h += 1 + j;
- }
- return g;
- }
- function RKd(a) {
- var b, c2, d, e, f2, g, h;
- if (!a.d) {
- h = new XNd();
- b = KKd;
- f2 = b.a.zc(a, b);
- if (f2 == null) {
- for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 26);
- ytd(h, RKd(c2));
- }
- b.a.Bc(a) != null;
- b.a.gc() == 0 && void 0;
- }
- g = h.i;
- for (e = (!a.q && (a.q = new cUd(n5, a, 11, 10)), new Fyd(a.q)); e.e != e.i.gc(); ++g) {
- BD(Dyd(e), 399);
- }
- ytd(h, (!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q));
- vud(h);
- a.d = new nNd((BD(qud(ZKd((NFd(), MFd).o), 9), 18), h.i), h.g);
- a.e = BD(h.g, 673);
- a.e == null && (a.e = LKd);
- $Kd(a).b &= -17;
- }
- return a.d;
- }
- function M2d(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- j = S6d(a.e.Tg(), b);
- i3 = 0;
- e = BD(a.g, 119);
- Q6d();
- if (BD(b, 66).Oj()) {
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (j.rl(f2.ak())) {
- if (pb(f2, c2)) {
- return i3;
- }
- ++i3;
- }
- }
- } else if (c2 != null) {
- for (h = 0; h < a.i; ++h) {
- f2 = e[h];
- if (j.rl(f2.ak())) {
- if (pb(c2, f2.dd())) {
- return i3;
- }
- ++i3;
- }
- }
- if (d) {
- i3 = 0;
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (j.rl(f2.ak())) {
- if (PD(c2) === PD(a3d(a, BD(f2.dd(), 56)))) {
- return i3;
- }
- ++i3;
- }
- }
- }
- } else {
- for (g = 0; g < a.i; ++g) {
- f2 = e[g];
- if (j.rl(f2.ak())) {
- if (f2.dd() == null) {
- return i3;
- }
- ++i3;
- }
- }
- }
- return -1;
- }
- function aed(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n;
- mmb();
- Okb(a, new Jed());
- g = Ru(a);
- n = new Rkb();
- m = new Rkb();
- h = null;
- i3 = 0;
- while (g.b != 0) {
- f2 = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 157);
- if (!h || red(h) * qed(h) / 2 < red(f2) * qed(f2)) {
- h = f2;
- n.c[n.c.length] = f2;
- } else {
- i3 += red(f2) * qed(f2);
- m.c[m.c.length] = f2;
- if (m.c.length > 1 && (i3 > red(h) * qed(h) / 2 || g.b == 0)) {
- l = new wed(m);
- k = red(h) / qed(h);
- j = fed(l, b, new p0b(), c2, d, e, k);
- P6c(X6c(l.e), j);
- h = l;
- n.c[n.c.length] = l;
- i3 = 0;
- m.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- }
- }
- Gkb(n, m);
- return n;
- }
- function y6d(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p;
- if (c2.mh(b)) {
- k = (n = b, !n ? null : BD(d, 49).xh(n));
- if (k) {
- p = c2.bh(b, a.a);
- o2 = b.t;
- if (o2 > 1 || o2 == -1) {
- l = BD(p, 69);
- m = BD(k, 69);
- if (l.dc()) {
- m.$b();
- } else {
- g = !!zUd(b);
- f2 = 0;
- for (h = a.a ? l.Kc() : l.Zh(); h.Ob(); ) {
- j = BD(h.Pb(), 56);
- e = BD(Wrb(a, j), 56);
- if (!e) {
- if (a.b && !g) {
- m.Xh(f2, j);
- ++f2;
- }
- } else {
- if (g) {
- i3 = m.Xc(e);
- i3 == -1 ? m.Xh(f2, e) : f2 != i3 && m.ji(f2, e);
- } else {
- m.Xh(f2, e);
- }
- ++f2;
- }
- }
- }
- } else {
- if (p == null) {
- k.Wb(null);
- } else {
- e = Wrb(a, p);
- e == null ? a.b && !zUd(b) && k.Wb(p) : k.Wb(e);
- }
- }
- }
- }
- }
- function E6b(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- c2 = new L6b();
- for (e = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- if (OZb(d)) {
- continue;
- }
- h = d.c.i;
- if (F6b(h, C6b)) {
- j = G6b(a, h, C6b, B6b);
- if (j == -1) {
- continue;
- }
- c2.b = $wnd.Math.max(c2.b, j);
- !c2.a && (c2.a = new Rkb());
- Ekb(c2.a, h);
- }
- }
- for (g = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(g); ) {
- f2 = BD(Rr(g), 17);
- if (OZb(f2)) {
- continue;
- }
- i3 = f2.d.i;
- if (F6b(i3, B6b)) {
- j = G6b(a, i3, B6b, C6b);
- if (j == -1) {
- continue;
- }
- c2.d = $wnd.Math.max(c2.d, j);
- !c2.c && (c2.c = new Rkb());
- Ekb(c2.c, i3);
- }
- }
- return c2;
- }
- function Khb(a) {
- Dhb();
- var b, c2, d, e;
- b = QD(a);
- if (a < Chb.length) {
- return Chb[b];
- } else if (a <= 50) {
- return Pgb((Hgb(), Egb), b);
- } else if (a <= _ie) {
- return Qgb(Pgb(Bhb[1], b), b);
- }
- if (a > 1e6) {
- throw vbb(new ocb("power of ten too big"));
- }
- if (a <= Ohe) {
- return Qgb(Pgb(Bhb[1], b), b);
- }
- d = Pgb(Bhb[1], Ohe);
- e = d;
- c2 = Cbb(a - Ohe);
- b = QD(a % Ohe);
- while (ybb(c2, Ohe) > 0) {
- e = Ogb(e, d);
- c2 = Qbb(c2, Ohe);
- }
- e = Ogb(e, Pgb(Bhb[1], b));
- e = Qgb(e, Ohe);
- c2 = Cbb(a - Ohe);
- while (ybb(c2, Ohe) > 0) {
- e = Qgb(e, Ohe);
- c2 = Qbb(c2, Ohe);
- }
- e = Qgb(e, b);
- return e;
- }
- function X5b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- Odd(b, "Hierarchical port dummy size processing", 1);
- i3 = new Rkb();
- k = new Rkb();
- d = Edb(ED(vNb(a, (Nyc(), myc))));
- c2 = d * 2;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- i3.c = KC(SI, Uhe, 1, 0, 5, 1);
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (h = new olb(e.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- if (g.k == (j0b(), e0b)) {
- j = BD(vNb(g, (wtc(), Hsc)), 61);
- j == (Ucd(), Acd) ? (i3.c[i3.c.length] = g, true) : j == Rcd && (k.c[k.c.length] = g, true);
- }
- }
- Y5b(i3, true, c2);
- Y5b(k, false, c2);
- }
- Qdd(b);
- }
- function Oac(a, b) {
- var c2, d, e, f2, g, h, i3;
- Odd(b, "Layer constraint postprocessing", 1);
- i3 = a.b;
- if (i3.c.length != 0) {
- d = (tCb(0, i3.c.length), BD(i3.c[0], 29));
- g = BD(Ikb(i3, i3.c.length - 1), 29);
- c2 = new H1b(a);
- f2 = new H1b(a);
- Mac(a, d, g, c2, f2);
- c2.a.c.length == 0 || (wCb(0, i3.c.length), aCb(i3.c, 0, c2));
- f2.a.c.length == 0 || (i3.c[i3.c.length] = f2, true);
- }
- if (wNb(a, (wtc(), Lsc))) {
- e = new H1b(a);
- h = new H1b(a);
- Pac(a, e, h);
- e.a.c.length == 0 || (wCb(0, i3.c.length), aCb(i3.c, 0, e));
- h.a.c.length == 0 || (i3.c[i3.c.length] = h, true);
- }
- Qdd(b);
- }
- function b6b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- if (h.k != (j0b(), e0b)) {
- continue;
- }
- e = BD(vNb(h, (wtc(), Hsc)), 61);
- if (e == (Ucd(), zcd) || e == Tcd) {
- for (d = new Sr(ur(O_b(h).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- b = c2.a;
- if (b.b == 0) {
- continue;
- }
- j = c2.c;
- if (j.i == h) {
- f2 = (sCb(b.b != 0), BD(b.a.a.c, 8));
- f2.b = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a])).b;
- }
- k = c2.d;
- if (k.i == h) {
- g = (sCb(b.b != 0), BD(b.c.b.c, 8));
- g.b = l7c(OC(GC(m1, 1), nie, 8, 0, [k.i.n, k.n, k.a])).b;
- }
- }
- }
- }
- }
- function Tec(a, b) {
- var c2, d, e, f2, g, h, i3;
- Odd(b, "Sort By Input Model " + vNb(a, (Nyc(), ywc)), 1);
- e = 0;
- for (d = new olb(a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- i3 = e == 0 ? 0 : e - 1;
- h = BD(Ikb(a.b, i3), 29);
- for (g = new olb(c2.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- if (PD(vNb(f2, Vxc)) !== PD((dcd(), Zbd)) && PD(vNb(f2, Vxc)) !== PD($bd)) {
- mmb();
- Okb(f2.j, new Tnc(h, Xec(f2)));
- Sdd(b, "Node " + f2 + " ports: " + f2.j);
- }
- }
- mmb();
- Okb(c2.a, new Bnc(h, BD(vNb(a, ywc), 339), BD(vNb(a, wwc), 378)));
- Sdd(b, "Layer " + e + ": " + c2);
- ++e;
- }
- Qdd(b);
- }
- function U1b(a, b) {
- var c2, d, e, f2;
- f2 = P1b(b);
- MAb(new YAb(null, (!b.c && (b.c = new cUd(F2, b, 9, 9)), new Kub(b.c, 16))), new i2b(f2));
- e = BD(vNb(f2, (wtc(), Ksc)), 21);
- O1b(b, e);
- if (e.Hc((Orc(), Hrc))) {
- for (d = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 118);
- Y1b(a, b, f2, c2);
- }
- }
- BD(hkd(b, (Nyc(), Fxc)), 174).gc() != 0 && L1b(b, f2);
- Ccb(DD(vNb(f2, Mxc))) && e.Fc(Mrc);
- wNb(f2, hyc) && Wyc(new ezc(Edb(ED(vNb(f2, hyc)))), f2);
- PD(hkd(b, axc)) === PD((hbd(), ebd)) ? V1b(a, b, f2) : T1b(a, b, f2);
- return f2;
- }
- function hic(a, b, c2, d) {
- var e, f2, g;
- this.j = new Rkb();
- this.k = new Rkb();
- this.b = new Rkb();
- this.c = new Rkb();
- this.e = new I6c();
- this.i = new s7c();
- this.f = new lEb();
- this.d = new Rkb();
- this.g = new Rkb();
- Ekb(this.b, a);
- Ekb(this.b, b);
- this.e.c = $wnd.Math.min(a.a, b.a);
- this.e.d = $wnd.Math.min(a.b, b.b);
- this.e.b = $wnd.Math.abs(a.a - b.a);
- this.e.a = $wnd.Math.abs(a.b - b.b);
- e = BD(vNb(d, (Nyc(), jxc)), 74);
- if (e) {
- for (g = Jsb(e, 0); g.b != g.d.c; ) {
- f2 = BD(Xsb(g), 8);
- ADb(f2.a, a.a) && Dsb(this.i, f2);
- }
- }
- !!c2 && Ekb(this.j, c2);
- Ekb(this.k, d);
- }
- function oTb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- k = new gub(new ETb(c2));
- h = KC(sbb, dle, 25, a.f.e.c.length, 16, 1);
- Glb(h, h.length);
- c2[b.b] = 0;
- for (j = new olb(a.f.e); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 144);
- i3.b != b.b && (c2[i3.b] = Ohe);
- zCb(cub(k, i3));
- }
- while (k.b.c.length != 0) {
- l = BD(dub(k), 144);
- h[l.b] = true;
- for (f2 = au(new bu(a.b, l), 0); f2.c; ) {
- e = BD(uu(f2), 282);
- m = rTb(e, l);
- if (h[m.b]) {
- continue;
- }
- wNb(e, (bTb(), RSb)) ? g = Edb(ED(vNb(e, RSb))) : g = a.c;
- d = c2[l.b] + g;
- if (d < c2[m.b]) {
- c2[m.b] = d;
- eub(k, m);
- zCb(cub(k, m));
- }
- }
- }
- }
- function xMc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- e = true;
- for (g = new olb(a.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- j = Qje;
- k = null;
- for (i3 = new olb(f2.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- l = Edb(b.p[h.p]) + Edb(b.d[h.p]) - h.d.d;
- d = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a;
- if (l > j && d > j) {
- k = h;
- j = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a;
- } else {
- e = false;
- c2.n && Sdd(c2, "bk node placement breaks on " + h + " which should have been after " + k);
- break;
- }
- }
- if (!e) {
+ case 32:
+ this.popState();
+ yy.getLogger().trace("node end (-");
+ return "NODE_DEND";
break;
- }
- }
- c2.n && Sdd(c2, b + " is feasible: " + e);
- return e;
- }
- function XNc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- h = -1;
- for (k = new olb(a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 112);
- j.g = h--;
- e = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.f, 16)), new ZNc()), new _Nc())).d);
- f2 = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.k, 16)), new bOc()), new dOc())).d);
- g = e;
- i3 = f2;
- if (!d) {
- g = Tbb(tAb(PAb(new YAb(null, new Kub(j.f, 16)), new fOc())).d);
- i3 = Tbb(tAb(PAb(new YAb(null, new Kub(j.k, 16)), new hOc())).d);
- }
- j.d = g;
- j.a = e;
- j.i = i3;
- j.b = f2;
- i3 == 0 ? (Gsb(c2, j, c2.c.b, c2.c), true) : g == 0 && (Gsb(b, j, b.c.b, b.c), true);
- }
- }
- function $8b(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- if (c2.d.i == b.i) {
- return;
- }
- e = new b0b(a);
- __b(e, (j0b(), g0b));
- yNb(e, (wtc(), $sc), c2);
- yNb(e, (Nyc(), Vxc), (dcd(), $bd));
- d.c[d.c.length] = e;
- g = new H0b();
- F0b(g, e);
- G0b(g, (Ucd(), Tcd));
- h = new H0b();
- F0b(h, e);
- G0b(h, zcd);
- k = c2.d;
- RZb(c2, g);
- f2 = new UZb();
- tNb(f2, c2);
- yNb(f2, jxc, null);
- QZb(f2, h);
- RZb(f2, k);
- j = new Bib(c2.b, 0);
- while (j.b < j.d.gc()) {
- i3 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70));
- if (PD(vNb(i3, Qwc)) === PD((qad(), oad))) {
- yNb(i3, Dsc, c2);
- uib(j);
- Ekb(f2.b, i3);
- }
- }
- a9b(e, g, h);
- }
- function Z8b(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- if (c2.c.i == b.i) {
- return;
- }
- e = new b0b(a);
- __b(e, (j0b(), g0b));
- yNb(e, (wtc(), $sc), c2);
- yNb(e, (Nyc(), Vxc), (dcd(), $bd));
- d.c[d.c.length] = e;
- g = new H0b();
- F0b(g, e);
- G0b(g, (Ucd(), Tcd));
- h = new H0b();
- F0b(h, e);
- G0b(h, zcd);
- RZb(c2, g);
- f2 = new UZb();
- tNb(f2, c2);
- yNb(f2, jxc, null);
- QZb(f2, h);
- RZb(f2, b);
- a9b(e, g, h);
- j = new Bib(c2.b, 0);
- while (j.b < j.d.gc()) {
- i3 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70));
- k = BD(vNb(i3, Qwc), 272);
- if (k == (qad(), oad)) {
- wNb(i3, Dsc) || yNb(i3, Dsc, c2);
- uib(j);
- Ekb(f2.b, i3);
- }
- }
- }
- function dDc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- m = new Rkb();
- r = Gx(d);
- q = b * a.a;
- l = 0;
- o2 = 0;
- f2 = new Tqb();
- g = new Tqb();
- h = new Rkb();
- s = 0;
- t4 = 0;
- n = 0;
- p = 0;
- j = 0;
- k = 0;
- while (r.a.gc() != 0) {
- i3 = hDc(r, e, g);
- if (i3) {
- r.a.Bc(i3) != null;
- h.c[h.c.length] = i3;
- f2.a.zc(i3, f2);
- o2 = a.f[i3.p];
- s += a.e[i3.p] - o2 * a.b;
- l = a.c[i3.p];
- t4 += l * a.b;
- k += o2 * a.b;
- p += a.e[i3.p];
- }
- if (!i3 || r.a.gc() == 0 || s >= q && a.e[i3.p] > o2 * a.b || t4 >= c2 * q) {
- m.c[m.c.length] = h;
- h = new Rkb();
- ye(g, f2);
- f2.a.$b();
- j -= k;
- n = $wnd.Math.max(n, j * a.b + p);
- j += t4;
- s = t4;
- t4 = 0;
- k = 0;
- p = 0;
- }
- }
- return new vgd(n, m);
- }
- function q4c(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
- for (c2 = (j = new $ib(a.c.b).a.vc().Kc(), new djb(j)); c2.a.Ob(); ) {
- b = (h = BD(c2.a.Pb(), 42), BD(h.dd(), 149));
- e = b.a;
- e == null && (e = "");
- d = i4c(a.c, e);
- !d && e.length == 0 && (d = u4c(a));
- !!d && !ze(d.c, b, false) && Dsb(d.c, b);
- }
- for (g = Jsb(a.a, 0); g.b != g.d.c; ) {
- f2 = BD(Xsb(g), 478);
- k = j4c(a.c, f2.a);
- n = j4c(a.c, f2.b);
- !!k && !!n && Dsb(k.c, new vgd(n, f2.c));
- }
- Osb(a.a);
- for (m = Jsb(a.b, 0); m.b != m.d.c; ) {
- l = BD(Xsb(m), 478);
- b = g4c(a.c, l.a);
- i3 = j4c(a.c, l.b);
- !!b && !!i3 && B3c(b, i3, l.c);
- }
- Osb(a.b);
- }
- function qvd(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- f2 = new fC(a);
- g = new ird();
- e = (ko(g.g), ko(g.j), Uhb(g.b), ko(g.d), ko(g.i), Uhb(g.k), Uhb(g.c), Uhb(g.e), n = drd(g, f2, null), ard(g, f2), n);
- if (b) {
- j = new fC(b);
- h = rvd(j);
- jfd(e, OC(GC(g2, 1), Uhe, 527, 0, [h]));
- }
- m = false;
- l = false;
- if (c2) {
- j = new fC(c2);
- que in j.a && (m = aC(j, que).ge().a);
- rue in j.a && (l = aC(j, rue).ge().a);
- }
- k = Vdd(Xdd(new Zdd(), m), l);
- t2c(new w2c(), e, k);
- que in f2.a && cC(f2, que, null);
- if (m || l) {
- i3 = new eC();
- nvd(k, i3, m, l);
- cC(f2, que, i3);
- }
- d = new Prd(g);
- Ghe(new _ud(e), d);
- }
- function pA(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- g = new nB();
- j = OC(GC(WD, 1), oje, 25, 15, [0]);
- e = -1;
- f2 = 0;
- d = 0;
- for (i3 = 0; i3 < a.b.c.length; ++i3) {
- k = BD(Ikb(a.b, i3), 434);
- if (k.b > 0) {
- if (e < 0 && k.a) {
- e = i3;
- f2 = j[0];
- d = 0;
- }
- if (e >= 0) {
- h = k.b;
- if (i3 == e) {
- h -= d++;
- if (h == 0) {
- return 0;
- }
- }
- if (!wA(b, j, k, h, g)) {
- i3 = e - 1;
- j[0] = f2;
- continue;
- }
- } else {
- e = -1;
- if (!wA(b, j, k, 0, g)) {
- return 0;
- }
- }
- } else {
- e = -1;
- if (bfb(k.c, 0) == 32) {
- l = j[0];
- uA(b, j);
- if (j[0] > l) {
- continue;
- }
- } else if (ofb(b, k.c, j[0])) {
- j[0] += k.c.length;
- continue;
- }
- return 0;
- }
- }
- if (!mB(g, c2)) {
- return 0;
- }
- return j[0];
- }
- function SKd(a) {
- var b, c2, d, e, f2, g, h, i3;
- if (!a.f) {
- i3 = new CNd();
- h = new CNd();
- b = KKd;
- g = b.a.zc(a, b);
- if (g == null) {
- for (f2 = new Fyd(_Kd(a)); f2.e != f2.i.gc(); ) {
- e = BD(Dyd(f2), 26);
- ytd(i3, SKd(e));
- }
- b.a.Bc(a) != null;
- b.a.gc() == 0 && void 0;
- }
- for (d = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 170);
- JD(c2, 99) && wtd(h, BD(c2, 18));
- }
- vud(h);
- a.r = new UNd(a, (BD(qud(ZKd((NFd(), MFd).o), 6), 18), h.i), h.g);
- ytd(i3, a.r);
- vud(i3);
- a.f = new nNd((BD(qud(ZKd(MFd.o), 5), 18), i3.i), i3.g);
- $Kd(a).b &= -3;
- }
- return a.f;
- }
- function rMb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- g = a.o;
- d = KC(WD, oje, 25, g, 15, 1);
- e = KC(WD, oje, 25, g, 15, 1);
- c2 = a.p;
- b = KC(WD, oje, 25, c2, 15, 1);
- f2 = KC(WD, oje, 25, c2, 15, 1);
- for (j = 0; j < g; j++) {
- l = 0;
- while (l < c2 && !YMb(a, j, l)) {
- ++l;
- }
- d[j] = l;
- }
- for (k = 0; k < g; k++) {
- l = c2 - 1;
- while (l >= 0 && !YMb(a, k, l)) {
- --l;
- }
- e[k] = l;
- }
- for (n = 0; n < c2; n++) {
- h = 0;
- while (h < g && !YMb(a, h, n)) {
- ++h;
- }
- b[n] = h;
- }
- for (o2 = 0; o2 < c2; o2++) {
- h = g - 1;
- while (h >= 0 && !YMb(a, h, o2)) {
- --h;
- }
- f2[o2] = h;
- }
- for (i3 = 0; i3 < g; i3++) {
- for (m = 0; m < c2; m++) {
- i3 < f2[m] && i3 > b[m] && m < e[i3] && m > d[i3] && aNb(a, i3, m, false, true);
- }
- }
- }
- function lRb(a) {
- var b, c2, d, e, f2, g, h, i3;
- c2 = Ccb(DD(vNb(a, (wSb(), cSb))));
- f2 = a.a.c.d;
- h = a.a.d.d;
- if (c2) {
- g = Y6c(c7c(new f7c(h.a, h.b), f2), 0.5);
- i3 = Y6c(R6c(a.e), 0.5);
- b = c7c(P6c(new f7c(f2.a, f2.b), g), i3);
- a7c(a.d, b);
- } else {
- e = Edb(ED(vNb(a.a, tSb)));
- d = a.d;
- if (f2.a >= h.a) {
- if (f2.b >= h.b) {
- d.a = h.a + (f2.a - h.a) / 2 + e;
- d.b = h.b + (f2.b - h.b) / 2 - e - a.e.b;
- } else {
- d.a = h.a + (f2.a - h.a) / 2 + e;
- d.b = f2.b + (h.b - f2.b) / 2 + e;
- }
- } else {
- if (f2.b >= h.b) {
- d.a = f2.a + (h.a - f2.a) / 2 + e;
- d.b = h.b + (f2.b - h.b) / 2 + e;
- } else {
- d.a = f2.a + (h.a - f2.a) / 2 + e;
- d.b = f2.b + (h.b - f2.b) / 2 - e - a.e.b;
- }
- }
- }
- }
- function Qge(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (a == null) {
- return null;
- }
- f2 = a.length;
- if (f2 == 0) {
- return "";
- }
- i3 = KC(TD, $ie, 25, f2, 15, 1);
- ACb(0, f2, a.length);
- ACb(0, f2, i3.length);
- ffb(a, 0, f2, i3, 0);
- c2 = null;
- h = b;
- for (e = 0, g = 0; e < f2; e++) {
- d = i3[e];
- lde();
- if (d <= 32 && (kde[d] & 2) != 0) {
- if (h) {
- !c2 && (c2 = new Jfb(a));
- Gfb(c2, e - g++);
- } else {
- h = b;
- if (d != 32) {
- !c2 && (c2 = new Jfb(a));
- kcb(c2, e - g, e - g + 1, String.fromCharCode(32));
- }
- }
- } else {
- h = false;
- }
- }
- if (h) {
- if (!c2) {
- return a.substr(0, f2 - 1);
- } else {
- f2 = c2.a.length;
- return f2 > 0 ? qfb(c2.a, 0, f2 - 1) : "";
- }
- } else {
- return !c2 ? a : c2.a;
- }
- }
- function DPb(a) {
- r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Yle), "ELK DisCo"), "Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."), new GPb())));
- p4c(a, Yle, Zle, Ksd(BPb));
- p4c(a, Yle, $le, Ksd(vPb));
- p4c(a, Yle, _le, Ksd(qPb));
- p4c(a, Yle, ame, Ksd(wPb));
- p4c(a, Yle, Zke, Ksd(zPb));
- p4c(a, Yle, $ke, Ksd(yPb));
- p4c(a, Yle, Yke, Ksd(APb));
- p4c(a, Yle, _ke, Ksd(xPb));
- p4c(a, Yle, Tle, Ksd(sPb));
- p4c(a, Yle, Ule, Ksd(rPb));
- p4c(a, Yle, Vle, Ksd(tPb));
- p4c(a, Yle, Wle, Ksd(uPb));
- }
- function Zbc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m;
- f2 = new b0b(a);
- __b(f2, (j0b(), i0b));
- yNb(f2, (Nyc(), Vxc), (dcd(), $bd));
- e = 0;
- if (b) {
- g = new H0b();
- yNb(g, (wtc(), $sc), b);
- yNb(f2, $sc, b.i);
- G0b(g, (Ucd(), Tcd));
- F0b(g, f2);
- m = k_b(b.e);
- for (j = m, k = 0, l = j.length; k < l; ++k) {
- i3 = j[k];
- RZb(i3, g);
- }
- yNb(b, gtc, f2);
- ++e;
- }
- if (c2) {
- h = new H0b();
- yNb(f2, (wtc(), $sc), c2.i);
- yNb(h, $sc, c2);
- G0b(h, (Ucd(), zcd));
- F0b(h, f2);
- m = k_b(c2.g);
- for (j = m, k = 0, l = j.length; k < l; ++k) {
- i3 = j[k];
- QZb(i3, h);
- }
- yNb(c2, gtc, f2);
- ++e;
- }
- yNb(f2, (wtc(), ysc), meb(e));
- d.c[d.c.length] = f2;
- return f2;
- }
- function Smd() {
- Smd = ccb;
- Qmd = OC(GC(TD, 1), $ie, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]);
- Rmd = new RegExp("[ \n\r\f]+");
- try {
- Pmd = OC(GC(c6, 1), Uhe, 2015, 0, [new EQd((GA(), IA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", LA((KA(), KA(), JA))))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss'.'SSS", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm", LA((null, JA)))), new EQd(IA("yyyy-MM-dd", LA((null, JA))))]);
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 78))
- throw vbb(a);
- }
- }
- function qgb(a) {
- var b, c2, d, e;
- d = shb((!a.c && (a.c = fhb(a.f)), a.c), 0);
- if (a.e == 0 || a.a == 0 && a.f != -1 && a.e < 0) {
- return d;
- }
- b = pgb(a) < 0 ? 1 : 0;
- c2 = a.e;
- e = (d.length + 1 + $wnd.Math.abs(QD(a.e)), new Vfb());
- b == 1 && (e.a += "-", e);
- if (a.e > 0) {
- c2 -= d.length - b;
- if (c2 >= 0) {
- e.a += "0.";
- for (; c2 > egb.length; c2 -= egb.length) {
- Rfb(e, egb);
- }
- Sfb(e, egb, QD(c2));
- Qfb(e, d.substr(b));
- } else {
- c2 = b - c2;
- Qfb(e, qfb(d, b, QD(c2)));
- e.a += ".";
- Qfb(e, pfb(d, QD(c2)));
- }
- } else {
- Qfb(e, d.substr(b));
- for (; c2 < -egb.length; c2 += egb.length) {
- Rfb(e, egb);
- }
- Sfb(e, egb, QD(-c2));
- }
- return e.a;
- }
- function v6c(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m;
- i3 = c7c(new f7c(c2.a, c2.b), a);
- j = i3.a * b.b - i3.b * b.a;
- k = b.a * d.b - b.b * d.a;
- l = (i3.a * d.b - i3.b * d.a) / k;
- m = j / k;
- if (k == 0) {
- if (j == 0) {
- e = P6c(new f7c(c2.a, c2.b), Y6c(new f7c(d.a, d.b), 0.5));
- f2 = S6c(a, e);
- g = S6c(P6c(new f7c(a.a, a.b), b), e);
- h = $wnd.Math.sqrt(d.a * d.a + d.b * d.b) * 0.5;
- if (f2 < g && f2 <= h) {
- return new f7c(a.a, a.b);
- }
- if (g <= h) {
- return P6c(new f7c(a.a, a.b), b);
- }
- return null;
- } else {
- return null;
- }
- } else {
- return l >= 0 && l <= 1 && m >= 0 && m <= 1 ? P6c(new f7c(a.a, a.b), Y6c(new f7c(b.a, b.b), l)) : null;
- }
- }
- function OTb(a, b, c2) {
- var d, e, f2, g, h;
- d = BD(vNb(a, (Nyc(), zwc)), 21);
- c2.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c2.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c2.a - b.a));
- c2.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c2.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c2.b - b.b));
- if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c2.a > b.a || c2.b > b.b)) {
- for (h = new olb(a.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- if (g.k == (j0b(), e0b)) {
- e = BD(vNb(g, Hsc), 61);
- e == (Ucd(), zcd) ? g.n.a += c2.a - b.a : e == Rcd && (g.n.b += c2.b - b.b);
- }
- }
- }
- f2 = a.d;
- a.f.a = c2.a - f2.b - f2.c;
- a.f.b = c2.b - f2.d - f2.a;
- }
- function H5b(a, b, c2) {
- var d, e, f2, g, h;
- d = BD(vNb(a, (Nyc(), zwc)), 21);
- c2.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c2.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c2.a - b.a));
- c2.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c2.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c2.b - b.b));
- if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c2.a > b.a || c2.b > b.b)) {
- for (g = new olb(a.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- if (f2.k == (j0b(), e0b)) {
- e = BD(vNb(f2, Hsc), 61);
- e == (Ucd(), zcd) ? f2.n.a += c2.a - b.a : e == Rcd && (f2.n.b += c2.b - b.b);
- }
- }
- }
- h = a.d;
- a.f.a = c2.a - h.b - h.c;
- a.f.b = c2.b - h.d - h.a;
- }
- function kMc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- b = DMc(a);
- for (k = (h = new Pib(b).a.vc().Kc(), new Vib(h)); k.a.Ob(); ) {
- j = (e = BD(k.a.Pb(), 42), BD(e.cd(), 10));
- l = 0;
- m = 0;
- l = j.d.d;
- m = j.o.b + j.d.a;
- a.d[j.p] = 0;
- c2 = j;
- while ((f2 = a.a[c2.p]) != j) {
- d = FMc(c2, f2);
- i3 = 0;
- a.c == (YLc(), WLc) ? i3 = d.d.n.b + d.d.a.b - d.c.n.b - d.c.a.b : i3 = d.c.n.b + d.c.a.b - d.d.n.b - d.d.a.b;
- g = Edb(a.d[c2.p]) + i3;
- a.d[f2.p] = g;
- l = $wnd.Math.max(l, f2.d.d - g);
- m = $wnd.Math.max(m, g + f2.o.b + f2.d.a);
- c2 = f2;
- }
- c2 = j;
- do {
- a.d[c2.p] = Edb(a.d[c2.p]) + l;
- c2 = a.a[c2.p];
- } while (c2 != j);
- a.b[j.p] = l + m;
- }
- }
- function LOb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- a.b = false;
- l = Pje;
- i3 = Qje;
- m = Pje;
- j = Qje;
- for (d = a.e.a.ec().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 266);
- e = c2.a;
- l = $wnd.Math.min(l, e.c);
- i3 = $wnd.Math.max(i3, e.c + e.b);
- m = $wnd.Math.min(m, e.d);
- j = $wnd.Math.max(j, e.d + e.a);
- for (g = new olb(c2.c); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 395);
- b = f2.a;
- if (b.a) {
- k = e.d + f2.b.b;
- h = k + f2.c;
- m = $wnd.Math.min(m, k);
- j = $wnd.Math.max(j, h);
- } else {
- k = e.c + f2.b.a;
- h = k + f2.c;
- l = $wnd.Math.min(l, k);
- i3 = $wnd.Math.max(i3, h);
- }
- }
- }
- a.a = new f7c(i3 - l, j - m);
- a.c = new f7c(l + a.d.a, m + a.d.b);
- }
- function xZc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- l = new Rkb();
- k = new x$c(0, c2);
- f2 = 0;
- s$c(k, new PZc(0, 0, k, c2));
- e = 0;
- for (j = new Fyd(a); j.e != j.i.gc(); ) {
- i3 = BD(Dyd(j), 33);
- d = BD(Ikb(k.a, k.a.c.length - 1), 187);
- h = e + i3.g + (BD(Ikb(k.a, 0), 187).b.c.length == 0 ? 0 : c2);
- if (h > b) {
- e = 0;
- f2 += k.b + c2;
- l.c[l.c.length] = k;
- k = new x$c(f2, c2);
- d = new PZc(0, k.f, k, c2);
- s$c(k, d);
- e = 0;
- }
- if (d.b.c.length == 0 || i3.f >= d.o && i3.f <= d.f || d.a * 0.5 <= i3.f && d.a * 1.5 >= i3.f) {
- EZc(d, i3);
- } else {
- g = new PZc(d.s + d.r + c2, k.f, k, c2);
- s$c(k, g);
- EZc(g, i3);
- }
- e = i3.i + i3.g;
- }
- l.c[l.c.length] = k;
- return l;
- }
- function OKd(a) {
- var b, c2, d, e, f2, g, h, i3;
- if (!a.a) {
- a.o = null;
- i3 = new GNd(a);
- b = new KNd();
- c2 = KKd;
- h = c2.a.zc(a, c2);
- if (h == null) {
- for (g = new Fyd(_Kd(a)); g.e != g.i.gc(); ) {
- f2 = BD(Dyd(g), 26);
- ytd(i3, OKd(f2));
- }
- c2.a.Bc(a) != null;
- c2.a.gc() == 0 && void 0;
- }
- for (e = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 170);
- JD(d, 322) && wtd(b, BD(d, 34));
- }
- vud(b);
- a.k = new PNd(a, (BD(qud(ZKd((NFd(), MFd).o), 7), 18), b.i), b.g);
- ytd(i3, a.k);
- vud(i3);
- a.a = new nNd((BD(qud(ZKd(MFd.o), 4), 18), i3.i), i3.g);
- $Kd(a).b &= -2;
- }
- return a.a;
- }
- function vZc(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m;
- l = false;
- i3 = ZZc(c2.q, b.f + b.b - c2.q.f);
- m = e - (c2.q.e + i3 - g);
- if (m < d.g) {
- return false;
- }
- j = f2 == a.c.length - 1 && m >= (tCb(f2, a.c.length), BD(a.c[f2], 200)).e;
- k = (h = MZc(d, m, false), h.a);
- if (k > b.b && !j) {
- return false;
- }
- if (j || k <= b.b) {
- if (j && k > b.b) {
- c2.d = k;
- KZc(c2, JZc(c2, k));
- } else {
- $Zc(c2.q, i3);
- c2.c = true;
- }
- KZc(d, e - (c2.s + c2.r));
- OZc(d, c2.q.e + c2.q.d, b.f);
- s$c(b, d);
- if (a.c.length > f2) {
- v$c((tCb(f2, a.c.length), BD(a.c[f2], 200)), d);
- (tCb(f2, a.c.length), BD(a.c[f2], 200)).a.c.length == 0 && Kkb(a, f2);
- }
- l = true;
- }
- return l;
- }
- function C2d(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- k = S6d(a.e.Tg(), b);
- e = 0;
- f2 = BD(a.g, 119);
- i3 = null;
- Q6d();
- if (BD(b, 66).Oj()) {
- for (h = 0; h < a.i; ++h) {
- g = f2[h];
- if (k.rl(g.ak())) {
- if (pb(g, c2)) {
- i3 = g;
- break;
- }
- ++e;
- }
- }
- } else if (c2 != null) {
- for (h = 0; h < a.i; ++h) {
- g = f2[h];
- if (k.rl(g.ak())) {
- if (pb(c2, g.dd())) {
- i3 = g;
- break;
- }
- ++e;
- }
- }
- } else {
- for (h = 0; h < a.i; ++h) {
- g = f2[h];
- if (k.rl(g.ak())) {
- if (g.dd() == null) {
- i3 = g;
- break;
- }
- ++e;
- }
- }
- }
- if (i3) {
- if (oid(a.e)) {
- j = b.$j() ? new O7d(a.e, 4, b, c2, null, e, true) : H2d(a, b.Kj() ? 2 : 1, b, c2, b.zj(), -1, true);
- d ? d.Ei(j) : d = j;
- }
- d = B2d(a, i3, d);
- }
- return d;
- }
- function kYc(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m, n, o2, p;
- o2 = 0;
- p = 0;
- i3 = e.c;
- h = e.b;
- k = c2.f;
- n = c2.g;
- switch (b.g) {
- case 0:
- o2 = d.i + d.g + g;
- a.c ? p = tYc(o2, f2, d, g) : p = d.j;
- m = $wnd.Math.max(i3, o2 + n);
- j = $wnd.Math.max(h, p + k);
+ case 33:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
break;
- case 1:
- p = d.j + d.f + g;
- a.c ? o2 = sYc(p, f2, d, g) : o2 = d.i;
- m = $wnd.Math.max(i3, o2 + n);
- j = $wnd.Math.max(h, p + k);
+ case 34:
+ this.popState();
+ yy.getLogger().trace("node end ((");
+ return "NODE_DEND";
break;
- case 2:
- o2 = i3 + g;
- p = 0;
- m = i3 + g + n;
- j = $wnd.Math.max(h, k);
+ case 35:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
break;
- case 3:
- o2 = 0;
- p = h + g;
- m = $wnd.Math.max(i3, n);
- j = h + g + k;
+ case 36:
+ yy.getLogger().trace("Long description:", yy_.yytext);
+ return 20;
break;
- default:
- throw vbb(new Wdb("IllegalPlacementOption."));
- }
- l = new e$c(a.a, m, j, b, o2, p);
- return l;
- }
- function R2b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- h = a.d;
- l = BD(vNb(a, (wtc(), vtc)), 15);
- b = BD(vNb(a, tsc), 15);
- if (!l && !b) {
- return;
}
- f2 = Edb(ED(pBc(a, (Nyc(), iyc))));
- g = Edb(ED(pBc(a, jyc)));
- m = 0;
- if (l) {
- j = 0;
- for (e = l.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 10);
- j = $wnd.Math.max(j, d.o.b);
- m += d.o.a;
- }
- m += f2 * (l.gc() - 1);
- h.d += j + g;
- }
- c2 = 0;
- if (b) {
- j = 0;
- for (e = b.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 10);
- j = $wnd.Math.max(j, d.o.b);
- c2 += d.o.a;
- }
- c2 += f2 * (b.gc() - 1);
- h.a += j + g;
- }
- i3 = $wnd.Math.max(m, c2);
- if (i3 > a.o.a) {
- k = (i3 - a.o.a) / 2;
- h.b = $wnd.Math.max(h.b, k);
- h.c = $wnd.Math.max(h.c, k);
- }
- }
- function rvd(a) {
- var b, c2, d, e, f2, g, h, i3;
- f2 = new b2c();
- Z1c(f2, (Y1c(), V1c));
- for (d = (e = $B(a, KC(ZI, nie, 2, 0, 6, 1)), new vib(new amb(new mC(a, e).b))); d.b < d.d.gc(); ) {
- c2 = (sCb(d.b < d.d.gc()), GD(d.d.Xb(d.c = d.b++)));
- g = k4c(lvd, c2);
- if (g) {
- b = aC(a, c2);
- b.je() ? h = b.je().a : b.ge() ? h = "" + b.ge().a : b.he() ? h = "" + b.he().a : h = b.Ib();
- i3 = o5c(g, h);
- if (i3 != null) {
- (uqb(g.j, (N5c(), K5c)) || uqb(g.j, L5c)) && xNb(_1c(f2, E2), g, i3);
- uqb(g.j, I5c) && xNb(_1c(f2, B2), g, i3);
- uqb(g.j, M5c) && xNb(_1c(f2, F2), g, i3);
- uqb(g.j, J5c) && xNb(_1c(f2, D2), g, i3);
- }
- }
- }
- return f2;
- }
- function J2d(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- i3 = S6d(a.e.Tg(), b);
- f2 = BD(a.g, 119);
- if (T6d(a.e, b)) {
- e = 0;
- for (h = 0; h < a.i; ++h) {
- g = f2[h];
- if (i3.rl(g.ak())) {
- if (e == c2) {
- Q6d();
- if (BD(b, 66).Oj()) {
- return g;
- } else {
- j = g.dd();
- j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j));
- return j;
- }
- }
- ++e;
- }
- }
- throw vbb(new qcb(gve + c2 + mue + e));
- } else {
- e = 0;
- for (h = 0; h < a.i; ++h) {
- g = f2[h];
- if (i3.rl(g.ak())) {
- Q6d();
- if (BD(b, 66).Oj()) {
- return g;
- } else {
- j = g.dd();
- j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j));
- return j;
- }
- }
- ++e;
- }
- return b.zj();
- }
- }
- function K2d(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- e = BD(a.g, 119);
- if (T6d(a.e, b)) {
- return Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a);
- } else {
- j = S6d(a.e.Tg(), b);
- d = 0;
- for (h = 0; h < a.i; ++h) {
- f2 = e[h];
- g = f2.ak();
- if (j.rl(g)) {
- Q6d();
- if (BD(b, 66).Oj()) {
- return f2;
- } else if (g == (m8d(), k8d) || g == h8d) {
- i3 = new Wfb(fcb(f2.dd()));
- while (++h < a.i) {
- f2 = e[h];
- g = f2.ak();
- (g == k8d || g == h8d) && Qfb(i3, fcb(f2.dd()));
- }
- return j6d(BD(b.Yj(), 148), i3.a);
- } else {
- k = f2.dd();
- k != null && c2 && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (k = b3d(a, b, h, d, k));
- return k;
- }
- }
- ++d;
- }
- return b.zj();
- }
- }
- function MZc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- f2 = 0;
- g = a.t;
- e = 0;
- d = 0;
- i3 = 0;
- m = 0;
- l = 0;
- if (c2) {
- a.n.c = KC(SI, Uhe, 1, 0, 5, 1);
- Ekb(a.n, new VZc(a.s, a.t, a.i));
- }
- h = 0;
- for (k = new olb(a.b); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 33);
- if (f2 + j.g + (h > 0 ? a.i : 0) > b && i3 > 0) {
- f2 = 0;
- g += i3 + a.i;
- e = $wnd.Math.max(e, m);
- d += i3 + a.i;
- i3 = 0;
- m = 0;
- if (c2) {
- ++l;
- Ekb(a.n, new VZc(a.s, g, a.i));
- }
- h = 0;
- }
- m += j.g + (h > 0 ? a.i : 0);
- i3 = $wnd.Math.max(i3, j.f);
- c2 && QZc(BD(Ikb(a.n, l), 211), j);
- f2 += j.g + (h > 0 ? a.i : 0);
- ++h;
- }
- e = $wnd.Math.max(e, m);
- d += i3;
- if (c2) {
- a.r = e;
- a.d = d;
- u$c(a.j);
- }
- return new J6c(a.s, a.t, e, d);
- }
- function $fb(a, b, c2, d, e) {
- Zfb();
- var f2, g, h, i3, j, k, l, m, n;
- vCb(a, "src");
- vCb(c2, "dest");
- m = rb(a);
- i3 = rb(c2);
- rCb((m.i & 4) != 0, "srcType is not an array");
- rCb((i3.i & 4) != 0, "destType is not an array");
- l = m.c;
- g = i3.c;
- rCb((l.i & 1) != 0 ? l == g : (g.i & 1) == 0, "Array types don't match");
- n = a.length;
- j = c2.length;
- if (b < 0 || d < 0 || e < 0 || b + e > n || d + e > j) {
- throw vbb(new pcb());
- }
- if ((l.i & 1) == 0 && m != i3) {
- k = CD(a);
- f2 = CD(c2);
- if (PD(a) === PD(c2) && b < d) {
- b += e;
- for (h = d + e; h-- > d; ) {
- NC(f2, h, k[--b]);
- }
- } else {
- for (h = d + e; d < h; ) {
- NC(f2, d++, k[b++]);
- }
- }
- } else
- e > 0 && $Bb(a, b, c2, d, e, true);
- }
- function phb() {
- phb = ccb;
- nhb = OC(GC(WD, 1), oje, 25, 15, [Rie, 1162261467, Iie, 1220703125, 362797056, 1977326743, Iie, 387420489, Jje, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, Iie, 1291467969, 1544804416, 1838265625, 60466176]);
- ohb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
- }
- function soc(a) {
- var b, c2, d, e, f2, g, h, i3;
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- for (g = new olb(Mu(d.a)); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- if (ioc(f2)) {
- c2 = BD(vNb(f2, (wtc(), usc)), 305);
- if (!c2.g && !!c2.d) {
- b = c2;
- i3 = c2.d;
- while (i3) {
- roc(i3.i, i3.k, false, true);
- zoc(b.a);
- zoc(i3.i);
- zoc(i3.k);
- zoc(i3.b);
- RZb(i3.c, b.c.d);
- RZb(b.c, null);
- $_b(b.a, null);
- $_b(i3.i, null);
- $_b(i3.k, null);
- $_b(i3.b, null);
- h = new goc(b.i, i3.a, b.e, i3.j, i3.f);
- h.k = b.k;
- h.n = b.n;
- h.b = b.b;
- h.c = i3.c;
- h.g = b.g;
- h.d = i3.d;
- yNb(b.i, usc, h);
- yNb(i3.a, usc, h);
- i3 = i3.d;
- b = h;
- }
- }
- }
- }
- }
- }
- function Xfe(a, b) {
- var c2, d, e, f2, g;
- g = BD(b, 136);
- Yfe(a);
- Yfe(g);
- if (g.b == null)
- return;
- a.c = true;
- if (a.b == null) {
- a.b = KC(WD, oje, 25, g.b.length, 15, 1);
- $fb(g.b, 0, a.b, 0, g.b.length);
- return;
- }
- f2 = KC(WD, oje, 25, a.b.length + g.b.length, 15, 1);
- for (c2 = 0, d = 0, e = 0; c2 < a.b.length || d < g.b.length; ) {
- if (c2 >= a.b.length) {
- f2[e++] = g.b[d++];
- f2[e++] = g.b[d++];
- } else if (d >= g.b.length) {
- f2[e++] = a.b[c2++];
- f2[e++] = a.b[c2++];
- } else if (g.b[d] < a.b[c2] || g.b[d] === a.b[c2] && g.b[d + 1] < a.b[c2 + 1]) {
- f2[e++] = g.b[d++];
- f2[e++] = g.b[d++];
- } else {
- f2[e++] = a.b[c2++];
- f2[e++] = a.b[c2++];
- }
- }
- a.b = f2;
- }
- function S6b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- c2 = Ccb(DD(vNb(a, (wtc(), Usc))));
- h = Ccb(DD(vNb(b, Usc)));
- d = BD(vNb(a, Vsc), 11);
- i3 = BD(vNb(b, Vsc), 11);
- e = BD(vNb(a, Wsc), 11);
- j = BD(vNb(b, Wsc), 11);
- k = !!d && d == i3;
- l = !!e && e == j;
- if (!c2 && !h) {
- return new Z6b(BD(mlb(new olb(a.j)), 11).p == BD(mlb(new olb(b.j)), 11).p, k, l);
- }
- f2 = (!Ccb(DD(vNb(a, Usc))) || Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || Ccb(DD(vNb(b, Tsc))));
- g = (!Ccb(DD(vNb(a, Usc))) || !Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || !Ccb(DD(vNb(b, Tsc))));
- return new Z6b(k && f2 || l && g, k, l);
- }
- function HZc(a) {
- var b, c2, d, e, f2, g, h, i3;
- d = 0;
- c2 = 0;
- i3 = new Psb();
- b = 0;
- for (h = new olb(a.n); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 211);
- if (g.c.c.length == 0) {
- Gsb(i3, g, i3.c.b, i3.c);
- } else {
- d = $wnd.Math.max(d, g.d);
- c2 += g.a + (b > 0 ? a.i : 0);
- }
- ++b;
- }
- Ce(a.n, i3);
- a.d = c2;
- a.r = d;
- a.g = 0;
- a.f = 0;
- a.e = 0;
- a.o = Pje;
- a.p = Pje;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 33);
- a.p = $wnd.Math.min(a.p, e.g);
- a.g = $wnd.Math.max(a.g, e.g);
- a.f = $wnd.Math.max(a.f, e.f);
- a.o = $wnd.Math.min(a.o, e.f);
- a.e += e.f + a.i;
- }
- a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length);
- u$c(a.j);
- }
- function Sld(a) {
- var b, c2, d, e;
- if ((a.Db & 64) != 0)
- return Mkd(a);
- b = new Wfb(_se);
- d = a.k;
- if (!d) {
- !a.n && (a.n = new cUd(D2, a, 1, 7));
- if (a.n.i > 0) {
- e = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
- !e || Qfb(Qfb((b.a += ' "', b), e), '"');
- }
- } else {
- Qfb(Qfb((b.a += ' "', b), d), '"');
- }
- c2 = (!a.b && (a.b = new y5d(z2, a, 4, 7)), !(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1)));
- c2 ? (b.a += " [", b) : (b.a += " ", b);
- Qfb(b, Eb(new Gb(), new Fyd(a.b)));
- c2 && (b.a += "]", b);
- b.a += gne;
- c2 && (b.a += "[", b);
- Qfb(b, Eb(new Gb(), new Fyd(a.c)));
- c2 && (b.a += "]", b);
- return b.a;
- }
- function TQd(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (a.a) {
- h = a.a.ne();
- i3 = null;
- if (h != null) {
- b.a += "" + h;
- } else {
- g = a.a.Dj();
- if (g != null) {
- f2 = hfb(g, wfb(91));
- if (f2 != -1) {
- i3 = g.substr(f2);
- b.a += "" + qfb(g == null ? Xhe : (uCb(g), g), 0, f2);
- } else {
- b.a += "" + g;
- }
- }
- }
- if (!!a.d && a.d.i != 0) {
- e = true;
- b.a += "<";
- for (d = new Fyd(a.d); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 87);
- e ? e = false : (b.a += She, b);
- TQd(c2, b);
- }
- b.a += ">";
- }
- i3 != null && (b.a += "" + i3, b);
- } else if (a.e) {
- h = a.e.zb;
- h != null && (b.a += "" + h, b);
- } else {
- b.a += "?";
- if (a.b) {
- b.a += " super ";
- TQd(a.b, b);
- } else {
- if (a.f) {
- b.a += " extends ";
- TQd(a.f, b);
- }
- }
- }
- }
- function Z9b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
- v = a.c;
- w2 = b.c;
- c2 = Jkb(v.a, a, 0);
- d = Jkb(w2.a, b, 0);
- t4 = BD(W_b(a, (KAc(), HAc)).Kc().Pb(), 11);
- C = BD(W_b(a, IAc).Kc().Pb(), 11);
- u2 = BD(W_b(b, HAc).Kc().Pb(), 11);
- D3 = BD(W_b(b, IAc).Kc().Pb(), 11);
- r = k_b(t4.e);
- A = k_b(C.g);
- s = k_b(u2.e);
- B = k_b(D3.g);
- Z_b(a, d, w2);
- for (g = s, k = 0, o2 = g.length; k < o2; ++k) {
- e = g[k];
- RZb(e, t4);
- }
- for (h = B, l = 0, p = h.length; l < p; ++l) {
- e = h[l];
- QZb(e, C);
- }
- Z_b(b, c2, v);
- for (i3 = r, m = 0, q = i3.length; m < q; ++m) {
- e = i3[m];
- RZb(e, u2);
- }
- for (f2 = A, j = 0, n = f2.length; j < n; ++j) {
- e = f2[j];
- QZb(e, D3);
- }
- }
- function $$b(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- f2 = a_b(d);
- h = Ccb(DD(vNb(d, (Nyc(), uxc))));
- if ((h || Ccb(DD(vNb(a, exc)))) && !fcd(BD(vNb(a, Vxc), 98))) {
- e = Zcd(f2);
- i3 = i_b(a, c2, c2 == (KAc(), IAc) ? e : Wcd(e));
- } else {
- i3 = new H0b();
- F0b(i3, a);
- if (b) {
- k = i3.n;
- k.a = b.a - a.n.a;
- k.b = b.b - a.n.b;
- Q6c(k, 0, 0, a.o.a, a.o.b);
- G0b(i3, W$b(i3, f2));
- } else {
- e = Zcd(f2);
- G0b(i3, c2 == (KAc(), IAc) ? e : Wcd(e));
- }
- g = BD(vNb(d, (wtc(), Ksc)), 21);
- j = i3.j;
- switch (f2.g) {
- case 2:
- case 1:
- (j == (Ucd(), Acd) || j == Rcd) && g.Fc((Orc(), Lrc));
- break;
- case 4:
- case 3:
- (j == (Ucd(), zcd) || j == Tcd) && g.Fc((Orc(), Lrc));
- }
- }
- return i3;
- }
- function pPc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- if ($wnd.Math.abs(b.s - b.c) < qme || $wnd.Math.abs(c2.s - c2.c) < qme) {
- return 0;
- }
- d = oPc(a, b.j, c2.e);
- e = oPc(a, c2.j, b.e);
- f2 = d == -1 || e == -1;
- g = 0;
- if (f2) {
- if (d == -1) {
- new DOc((HOc(), FOc), c2, b, 1);
- ++g;
- }
- if (e == -1) {
- new DOc((HOc(), FOc), b, c2, 1);
- ++g;
- }
- } else {
- h = vPc(b.j, c2.s, c2.c);
- h += vPc(c2.e, b.s, b.c);
- i3 = vPc(c2.j, b.s, b.c);
- i3 += vPc(b.e, c2.s, c2.c);
- j = d + 16 * h;
- k = e + 16 * i3;
- if (j < k) {
- new DOc((HOc(), GOc), b, c2, k - j);
- } else if (j > k) {
- new DOc((HOc(), GOc), c2, b, j - k);
- } else if (j > 0 && k > 0) {
- new DOc((HOc(), GOc), b, c2, 0);
- new DOc(GOc, c2, b, 0);
- }
- }
- return g;
- }
- function TUb(a, b) {
- var c2, d, e, f2, g, h;
- for (g = new nib(new eib(a.f.b).a); g.b; ) {
- f2 = lib(g);
- e = BD(f2.cd(), 594);
- if (b == 1) {
- if (e.gf() != (ead(), dad) && e.gf() != _9c) {
- continue;
- }
- } else {
- if (e.gf() != (ead(), aad) && e.gf() != bad) {
- continue;
- }
- }
- d = BD(BD(f2.dd(), 46).b, 81);
- h = BD(BD(f2.dd(), 46).a, 189);
- c2 = h.c;
- switch (e.gf().g) {
- case 2:
- d.g.c = a.e.a;
- d.g.b = $wnd.Math.max(1, d.g.b + c2);
- break;
- case 1:
- d.g.c = d.g.c + c2;
- d.g.b = $wnd.Math.max(1, d.g.b - c2);
- break;
- case 4:
- d.g.d = a.e.b;
- d.g.a = $wnd.Math.max(1, d.g.a + c2);
- break;
- case 3:
- d.g.d = d.g.d + c2;
- d.g.a = $wnd.Math.max(1, d.g.a - c2);
- }
- }
- }
- function nJc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- h = KC(WD, oje, 25, b.b.c.length, 15, 1);
- j = KC(NQ, Kie, 267, b.b.c.length, 0, 1);
- i3 = KC(OQ, kne, 10, b.b.c.length, 0, 1);
- for (l = a.a, m = 0, n = l.length; m < n; ++m) {
- k = l[m];
- p = 0;
- for (g = new olb(k.e); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 10);
- d = G1b(e.c);
- ++h[d];
- o2 = Edb(ED(vNb(b, (Nyc(), lyc))));
- h[d] > 0 && !!i3[d] && (o2 = jBc(a.b, i3[d], e));
- p = $wnd.Math.max(p, e.c.c.b + o2);
- }
- for (f2 = new olb(k.e); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- e.n.b = p + e.d.d;
- c2 = e.c;
- c2.c.b = p + e.d.d + e.o.b + e.d.a;
- j[Jkb(c2.b.b, c2, 0)] = e.k;
- i3[Jkb(c2.b.b, c2, 0)] = e;
- }
- }
- }
- function LXc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- for (d = new Sr(ur(_sd(b).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 79);
- if (!JD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 186)) {
- i3 = atd(BD(qud((!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c), 0), 82));
- if (!Pld(c2)) {
- g = b.i + b.g / 2;
- h = b.j + b.f / 2;
- k = i3.i + i3.g / 2;
- l = i3.j + i3.f / 2;
- m = new d7c();
- m.a = k - g;
- m.b = l - h;
- f2 = new f7c(m.a, m.b);
- l6c(f2, b.g, b.f);
- m.a -= f2.a;
- m.b -= f2.b;
- g = k - m.a;
- h = l - m.b;
- j = new f7c(m.a, m.b);
- l6c(j, i3.g, i3.f);
- m.a -= j.a;
- m.b -= j.b;
- k = g + m.a;
- l = h + m.b;
- e = itd(c2, true, true);
- omd(e, g);
- pmd(e, h);
- hmd(e, k);
- imd(e, l);
- LXc(a, i3);
- }
- }
- }
- }
- function e0c(a) {
- r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Pre), "ELK SPOrE Compaction"), "ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."), new h0c())));
- p4c(a, Pre, Qre, Ksd(c0c));
- p4c(a, Pre, Rre, Ksd(__c));
- p4c(a, Pre, Sre, Ksd($_c));
- p4c(a, Pre, Tre, Ksd(Y_c));
- p4c(a, Pre, Ure, Ksd(Z_c));
- p4c(a, Pre, ame, X_c);
- p4c(a, Pre, wme, 8);
- p4c(a, Pre, Vre, Ksd(b0c));
- p4c(a, Pre, Wre, Ksd(T_c));
- p4c(a, Pre, Xre, Ksd(U_c));
- p4c(a, Pre, Zpe, (Bcb(), false));
- }
- function JLc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- Odd(b, "Simple node placement", 1);
- l = BD(vNb(a, (wtc(), otc)), 304);
- h = 0;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 29);
- g = d.c;
- g.b = 0;
- c2 = null;
- for (j = new olb(d.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- !!c2 && (g.b += hBc(i3, c2, l.c));
- g.b += i3.d.d + i3.o.b + i3.d.a;
- c2 = i3;
- }
- h = $wnd.Math.max(h, g.b);
- }
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- g = d.c;
- k = (h - g.b) / 2;
- c2 = null;
- for (j = new olb(d.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- !!c2 && (k += hBc(i3, c2, l.c));
- k += i3.d.d;
- i3.n.b = k;
- k += i3.o.b + i3.d.a;
- c2 = i3;
- }
- }
- Qdd(b);
- }
- function s2d(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l;
- if (d.gc() == 0) {
- return false;
- }
- i3 = (Q6d(), BD(b, 66).Oj());
- g = i3 ? d : new zud(d.gc());
- if (T6d(a.e, b)) {
- if (b.hi()) {
- for (k = d.Kc(); k.Ob(); ) {
- j = k.Pb();
- if (!F2d(a, b, j, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
- f2 = R6d(b, j);
- g.Fc(f2);
- }
- }
- } else if (!i3) {
- for (k = d.Kc(); k.Ob(); ) {
- j = k.Pb();
- f2 = R6d(b, j);
- g.Fc(f2);
- }
- }
- } else {
- l = S6d(a.e.Tg(), b);
- e = BD(a.g, 119);
- for (h = 0; h < a.i; ++h) {
- f2 = e[h];
- if (l.rl(f2.ak())) {
- throw vbb(new Wdb(Hwe));
- }
- }
- if (d.gc() > 1) {
- throw vbb(new Wdb(Hwe));
- }
- if (!i3) {
- f2 = R6d(b, d.Kc().Pb());
- g.Fc(f2);
- }
- }
- return xtd(a, I2d(a, b, c2), g);
- }
- function Pmc(a, b) {
- var c2, d, e, f2;
- Jmc(b.b.j);
- MAb(NAb(new YAb(null, new Kub(b.d, 16)), new $mc()), new anc());
- for (f2 = new olb(b.d); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 101);
- switch (e.e.g) {
- case 0:
- c2 = BD(Ikb(e.j, 0), 113).d.j;
- mjc(e, BD(Btb(RAb(BD(Qc(e.k, c2), 15).Oc(), Hmc)), 113));
- njc(e, BD(Btb(QAb(BD(Qc(e.k, c2), 15).Oc(), Hmc)), 113));
- break;
- case 1:
- d = Bkc(e);
- mjc(e, BD(Btb(RAb(BD(Qc(e.k, d[0]), 15).Oc(), Hmc)), 113));
- njc(e, BD(Btb(QAb(BD(Qc(e.k, d[1]), 15).Oc(), Hmc)), 113));
- break;
- case 2:
- Rmc(a, e);
- break;
- case 3:
- Qmc(e);
- break;
- case 4:
- Omc(a, e);
- }
- Mmc(e);
- }
- a.a = null;
- }
- function $Mc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- d = a.a.o == (eMc(), dMc) ? Pje : Qje;
- h = _Mc(a, new ZMc(b, c2));
- if (!h.a && h.c) {
- Dsb(a.d, h);
- return d;
- } else if (h.a) {
- e = h.a.c;
- i3 = h.a.d;
- if (c2) {
- j = a.a.c == (YLc(), XLc) ? i3 : e;
- f2 = a.a.c == XLc ? e : i3;
- g = a.a.g[f2.i.p];
- k = Edb(a.a.p[g.p]) + Edb(a.a.d[f2.i.p]) + f2.n.b + f2.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b;
- } else {
- j = a.a.c == (YLc(), WLc) ? i3 : e;
- f2 = a.a.c == WLc ? e : i3;
- k = Edb(a.a.p[a.a.g[f2.i.p].p]) + Edb(a.a.d[f2.i.p]) + f2.n.b + f2.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b;
- }
- a.a.n[a.a.g[e.i.p].p] = (Bcb(), true);
- a.a.n[a.a.g[i3.i.p].p] = true;
- return k;
- }
- return d;
- }
- function f3d(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- if (T6d(a.e, b)) {
- i3 = (Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a));
- D2d(i3.c, i3.b);
- b7d(i3, BD(c2, 14));
- } else {
- k = S6d(a.e.Tg(), b);
- d = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- e = d[g];
- f2 = e.ak();
- if (k.rl(f2)) {
- if (f2 == (m8d(), k8d) || f2 == h8d) {
- j = m3d(a, b, c2);
- h = g;
- j ? Xxd(a, g) : ++g;
- while (g < a.i) {
- e = d[g];
- f2 = e.ak();
- f2 == k8d || f2 == h8d ? Xxd(a, g) : ++g;
- }
- j || BD(Gtd(a, h, R6d(b, c2)), 72);
- } else
- m3d(a, b, c2) ? Xxd(a, g) : BD(Gtd(a, g, (Q6d(), BD(b, 66).Oj() ? BD(c2, 72) : R6d(b, c2))), 72);
- return;
- }
- }
- m3d(a, b, c2) || wtd(a, (Q6d(), BD(b, 66).Oj() ? BD(c2, 72) : R6d(b, c2)));
- }
- }
- function IMb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- if (!pb(c2, a.b)) {
- a.b = c2;
- f2 = new LMb();
- g = BD(GAb(NAb(new YAb(null, new Kub(c2.f, 16)), f2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
- a.e = true;
- a.f = true;
- a.c = true;
- a.d = true;
- e = g.Hc((RMb(), OMb));
- d = g.Hc(PMb);
- e && !d && (a.f = false);
- !e && d && (a.d = false);
- e = g.Hc(NMb);
- d = g.Hc(QMb);
- e && !d && (a.c = false);
- !e && d && (a.e = false);
- }
- k = BD(a.a.Ce(b, c2), 46);
- i3 = BD(k.a, 19).a;
- j = BD(k.b, 19).a;
- h = false;
- i3 < 0 ? a.c || (h = true) : a.e || (h = true);
- j < 0 ? a.d || (h = true) : a.f || (h = true);
- return h ? IMb(a, k, c2) : k;
- }
- function oKb(a) {
- var b, c2, d, e;
- e = a.o;
- $Jb();
- if (a.A.dc() || pb(a.A, ZJb)) {
- b = e.b;
- } else {
- b = fIb(a.f);
- if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) {
- b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, (Ucd(), zcd)), 244)));
- b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, Tcd), 244)));
- }
- c2 = aKb(a);
- !!c2 && (b = $wnd.Math.max(b, c2.b));
- if (a.A.Hc(rdd)) {
- if (a.q == (dcd(), _bd) || a.q == $bd) {
- b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, (Ucd(), zcd)), 124)));
- b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, Tcd), 124)));
- }
- }
- }
- Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? e.b = $wnd.Math.max(e.b, b) : e.b = b;
- d = a.f.i;
- d.d = 0;
- d.a = b;
- iIb(a.f);
- }
- function $Ic(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- for (l = 0; l < b.length; l++) {
- for (h = a.Kc(); h.Ob(); ) {
- f2 = BD(h.Pb(), 225);
- f2.Of(l, b);
- }
- for (m = 0; m < b[l].length; m++) {
- for (i3 = a.Kc(); i3.Ob(); ) {
- f2 = BD(i3.Pb(), 225);
- f2.Pf(l, m, b);
- }
- p = b[l][m].j;
- for (n = 0; n < p.c.length; n++) {
- for (j = a.Kc(); j.Ob(); ) {
- f2 = BD(j.Pb(), 225);
- f2.Qf(l, m, n, b);
- }
- o2 = (tCb(n, p.c.length), BD(p.c[n], 11));
- c2 = 0;
- for (e = new b1b(o2.b); llb(e.a) || llb(e.b); ) {
- d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
- for (k = a.Kc(); k.Ob(); ) {
- f2 = BD(k.Pb(), 225);
- f2.Nf(l, m, n, c2++, d, b);
- }
- }
- }
- }
- }
- for (g = a.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 225);
- f2.Mf();
- }
- }
- function J4b(a, b) {
- var c2, d, e, f2, g, h, i3;
- a.b = Edb(ED(vNb(b, (Nyc(), myc))));
- a.c = Edb(ED(vNb(b, pyc)));
- a.d = BD(vNb(b, Xwc), 336);
- a.a = BD(vNb(b, swc), 275);
- H4b(b);
- h = BD(GAb(JAb(JAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new N4b()), new P4b()), new R4b()), new T4b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- for (e = h.Kc(); e.Ob(); ) {
- c2 = BD(e.Pb(), 17);
- g = BD(vNb(c2, (wtc(), rtc)), 15);
- g.Jc(new V4b(a));
- yNb(c2, rtc, null);
- }
- for (d = h.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 17);
- i3 = BD(vNb(c2, (wtc(), stc)), 17);
- f2 = BD(vNb(c2, ptc), 15);
- B4b(a, f2, i3);
- yNb(c2, ptc, null);
- }
- }
- function uZd(a) {
- a.b = null;
- a.a = null;
- a.o = null;
- a.q = null;
- a.v = null;
- a.w = null;
- a.B = null;
- a.p = null;
- a.Q = null;
- a.R = null;
- a.S = null;
- a.T = null;
- a.U = null;
- a.V = null;
- a.W = null;
- a.bb = null;
- a.eb = null;
- a.ab = null;
- a.H = null;
- a.db = null;
- a.c = null;
- a.d = null;
- a.f = null;
- a.n = null;
- a.r = null;
- a.s = null;
- a.u = null;
- a.G = null;
- a.J = null;
- a.e = null;
- a.j = null;
- a.i = null;
- a.g = null;
- a.k = null;
- a.t = null;
- a.F = null;
- a.I = null;
- a.L = null;
- a.M = null;
- a.O = null;
- a.P = null;
- a.$ = null;
- a.N = null;
- a.Z = null;
- a.cb = null;
- a.K = null;
- a.D = null;
- a.A = null;
- a.C = null;
- a._ = null;
- a.fb = null;
- a.X = null;
- a.Y = null;
- a.gb = false;
- a.hb = false;
- }
- function bKc(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- if (a.k != (j0b(), h0b)) {
- return false;
- }
- if (a.j.c.length <= 1) {
- return false;
- }
- f2 = BD(vNb(a, (Nyc(), Vxc)), 98);
- if (f2 == (dcd(), $bd)) {
- return false;
- }
- e = (Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? d = BD(vNb(a, Cxc), 197) : d = BD(vNb(Q_b(a), Dxc), 197), d);
- if (e == Gzc) {
- return false;
- }
- if (!(e == Fzc || e == Ezc)) {
- g = Edb(ED(pBc(a, zyc)));
- b = BD(vNb(a, yyc), 142);
- !b && (b = new J_b(g, g, g, g));
- j = V_b(a, (Ucd(), Tcd));
- i3 = b.d + b.a + (j.gc() - 1) * g;
- if (i3 > a.o.b) {
- return false;
- }
- c2 = V_b(a, zcd);
- h = b.d + b.a + (c2.gc() - 1) * g;
- if (h > a.o.b) {
- return false;
- }
- }
- return true;
- }
- function thb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- g = a.e;
- i3 = b.e;
- if (g == 0) {
- return b;
- }
- if (i3 == 0) {
- return a;
- }
- f2 = a.d;
- h = b.d;
- if (f2 + h == 2) {
- c2 = xbb(a.a[0], Yje);
- d = xbb(b.a[0], Yje);
- if (g == i3) {
- k = wbb(c2, d);
- o2 = Tbb(k);
- n = Tbb(Pbb(k, 32));
- return n == 0 ? new Ugb(g, o2) : new Vgb(g, 2, OC(GC(WD, 1), oje, 25, 15, [o2, n]));
- }
- return ghb(g < 0 ? Qbb(d, c2) : Qbb(c2, d));
- } else if (g == i3) {
- m = g;
- l = f2 >= h ? uhb(a.a, f2, b.a, h) : uhb(b.a, h, a.a, f2);
- } else {
- e = f2 != h ? f2 > h ? 1 : -1 : whb(a.a, b.a, f2);
- if (e == 0) {
- return Hgb(), Ggb;
- }
- if (e == 1) {
- m = g;
- l = zhb(a.a, f2, b.a, h);
- } else {
- m = i3;
- l = zhb(b.a, h, a.a, f2);
- }
- }
- j = new Vgb(m, l.length, l);
- Jgb(j);
- return j;
- }
- function oZb(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m, n;
- l = Ccb(DD(vNb(b, (Nyc(), vxc))));
- m = null;
- f2 == (KAc(), HAc) && d.c.i == c2 ? m = d.c : f2 == IAc && d.d.i == c2 && (m = d.d);
- j = g;
- if (!j || !l || !!m) {
- k = (Ucd(), Scd);
- m ? k = m.j : fcd(BD(vNb(c2, Vxc), 98)) && (k = f2 == HAc ? Tcd : zcd);
- i3 = lZb(a, b, c2, f2, k, d);
- h = kZb((Q_b(c2), d));
- if (f2 == HAc) {
- QZb(h, BD(Ikb(i3.j, 0), 11));
- RZb(h, e);
- } else {
- QZb(h, e);
- RZb(h, BD(Ikb(i3.j, 0), 11));
- }
- j = new yZb(d, h, i3, BD(vNb(i3, (wtc(), $sc)), 11), f2, !m);
- } else {
- Ekb(j.e, d);
- n = $wnd.Math.max(Edb(ED(vNb(j.d, Zwc))), Edb(ED(vNb(d, Zwc))));
- yNb(j.d, Zwc, n);
- }
- Rc(a.a, d, new BZb(j.d, b, f2));
- return j;
- }
- function V1d(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- k = null;
- !!a.d && (k = BD(Phb(a.d, b), 138));
- if (!k) {
- f2 = a.a.Mh();
- l = f2.i;
- if (!a.d || Vhb(a.d) != l) {
- i3 = new Lqb();
- !!a.d && Ld(i3, a.d);
- j = i3.f.c + i3.g.c;
- for (h = j; h < l; ++h) {
- d = BD(qud(f2, h), 138);
- e = o1d(a.e, d).ne();
- c2 = BD(e == null ? jrb(i3.f, null, d) : Drb(i3.g, e, d), 138);
- !!c2 && c2 != d && (e == null ? jrb(i3.f, null, c2) : Drb(i3.g, e, c2));
- }
- if (i3.f.c + i3.g.c != l) {
- for (g = 0; g < j; ++g) {
- d = BD(qud(f2, g), 138);
- e = o1d(a.e, d).ne();
- c2 = BD(e == null ? jrb(i3.f, null, d) : Drb(i3.g, e, d), 138);
- !!c2 && c2 != d && (e == null ? jrb(i3.f, null, c2) : Drb(i3.g, e, c2));
- }
- }
- a.d = i3;
- }
- k = BD(Phb(a.d, b), 138);
- }
- return k;
- }
- function lZb(a, b, c2, d, e, f2) {
- var g, h, i3, j, k, l;
- g = null;
- j = d == (KAc(), HAc) ? f2.c : f2.d;
- i3 = a_b(b);
- if (j.i == c2) {
- g = BD(Ohb(a.b, j), 10);
- if (!g) {
- g = Z$b(j, BD(vNb(c2, (Nyc(), Vxc)), 98), e, hZb(j), null, j.n, j.o, i3, b);
- yNb(g, (wtc(), $sc), j);
- Rhb(a.b, j, g);
- }
- } else {
- g = Z$b((k = new zNb(), l = Edb(ED(vNb(b, (Nyc(), lyc)))) / 2, xNb(k, Uxc, l), k), BD(vNb(c2, Vxc), 98), e, d == HAc ? -1 : 1, null, new d7c(), new f7c(0, 0), i3, b);
- h = mZb(g, c2, d);
- yNb(g, (wtc(), $sc), h);
- Rhb(a.b, h, g);
- }
- BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc));
- fcd(BD(vNb(b, (Nyc(), Vxc)), 98)) ? yNb(b, Vxc, (dcd(), acd)) : yNb(b, Vxc, (dcd(), bcd));
- return g;
- }
- function vNc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- Odd(b, "Orthogonal edge routing", 1);
- j = Edb(ED(vNb(a, (Nyc(), wyc))));
- c2 = Edb(ED(vNb(a, myc)));
- d = Edb(ED(vNb(a, pyc)));
- m = new tPc(0, c2);
- q = 0;
- g = new Bib(a.b, 0);
- h = null;
- k = null;
- i3 = null;
- l = null;
- do {
- k = g.b < g.d.gc() ? (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 29)) : null;
- l = !k ? null : k.a;
- if (h) {
- h_b(h, q);
- q += h.c.a;
- }
- p = !h ? q : q + d;
- o2 = sPc(m, a, i3, l, p);
- e = !h || Kq(i3, (FNc(), DNc));
- f2 = !k || Kq(l, (FNc(), DNc));
- if (o2 > 0) {
- n = (o2 - 1) * c2;
- !!h && (n += d);
- !!k && (n += d);
- n < j && !e && !f2 && (n = j);
- q += n;
- } else
- !e && !f2 && (q += j);
- h = k;
- i3 = l;
- } while (k);
- a.f.a = q;
- Qdd(b);
- }
- function IEd() {
- IEd = ccb;
- var a;
- HEd = new mFd();
- BEd = KC(ZI, nie, 2, 0, 6, 1);
- uEd = Mbb(ZEd(33, 58), ZEd(1, 26));
- vEd = Mbb(ZEd(97, 122), ZEd(65, 90));
- wEd = ZEd(48, 57);
- sEd = Mbb(uEd, 0);
- tEd = Mbb(vEd, wEd);
- xEd = Mbb(Mbb(0, ZEd(1, 6)), ZEd(33, 38));
- yEd = Mbb(Mbb(wEd, ZEd(65, 70)), ZEd(97, 102));
- EEd = Mbb(sEd, XEd("-_.!~*'()"));
- FEd = Mbb(tEd, $Ed("-_.!~*'()"));
- XEd(lve);
- $Ed(lve);
- Mbb(EEd, XEd(";:@&=+$,"));
- Mbb(FEd, $Ed(";:@&=+$,"));
- zEd = XEd(":/?#");
- AEd = $Ed(":/?#");
- CEd = XEd("/?#");
- DEd = $Ed("/?#");
- a = new Tqb();
- a.a.zc("jar", a);
- a.a.zc("zip", a);
- a.a.zc("archive", a);
- GEd = (mmb(), new zob(a));
- }
- function yUc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- yNb(b, (mTc(), cTc), 0);
- i3 = BD(vNb(b, aTc), 86);
- if (b.d.b == 0) {
- if (i3) {
- k = Edb(ED(vNb(i3, fTc))) + a.a + zUc(i3, b);
- yNb(b, fTc, k);
- } else {
- yNb(b, fTc, 0);
- }
- } else {
- for (d = (f2 = Jsb(new ZRc(b).a.d, 0), new aSc(f2)); Wsb(d.a); ) {
- c2 = BD(Xsb(d.a), 188).c;
- yUc(a, c2);
- }
- h = BD(pr((g = Jsb(new ZRc(b).a.d, 0), new aSc(g))), 86);
- l = BD(or((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86);
- j = (Edb(ED(vNb(l, fTc))) + Edb(ED(vNb(h, fTc)))) / 2;
- if (i3) {
- k = Edb(ED(vNb(i3, fTc))) + a.a + zUc(i3, b);
- yNb(b, fTc, k);
- yNb(b, cTc, Edb(ED(vNb(b, fTc))) - j);
- xUc(a, b);
- } else {
- yNb(b, fTc, j);
- }
- }
- }
- function Dbc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- h = 0;
- o2 = 0;
- i3 = tlb(a.f, a.f.length);
- f2 = a.d;
- g = a.i;
- d = a.a;
- e = a.b;
- do {
- n = 0;
- for (k = new olb(a.p); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 10);
- m = Cbc(a, j);
- c2 = true;
- (a.q == (kAc(), dAc) || a.q == gAc) && (c2 = Ccb(DD(m.b)));
- if (BD(m.a, 19).a < 0 && c2) {
- ++n;
- i3 = tlb(a.f, a.f.length);
- a.d = a.d + BD(m.a, 19).a;
- o2 += f2 - a.d;
- f2 = a.d + BD(m.a, 19).a;
- g = a.i;
- d = Mu(a.a);
- e = Mu(a.b);
- } else {
- a.f = tlb(i3, i3.length);
- a.d = f2;
- a.a = (Qb(d), d ? new Tkb(d) : Nu(new olb(d)));
- a.b = (Qb(e), e ? new Tkb(e) : Nu(new olb(e)));
- a.i = g;
- }
- }
- ++h;
- l = n != 0 && Ccb(DD(b.Kb(new vgd(meb(o2), meb(h)))));
- } while (l);
- }
- function lYc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
- g = a.f;
- m = b.f;
- h = g == (k$c(), f$c) || g == h$c;
- n = m == f$c || m == h$c;
- i3 = g == g$c || g == i$c;
- o2 = m == g$c || m == i$c;
- j = g == g$c || g == f$c;
- p = m == g$c || m == f$c;
- if (h && n) {
- return a.f == h$c ? a : b;
- } else if (i3 && o2) {
- return a.f == i$c ? a : b;
- } else if (j && p) {
- if (g == g$c) {
- l = a;
- k = b;
- } else {
- l = b;
- k = a;
- }
- f2 = (q = c2.j + c2.f, r = l.e + d.f, s = $wnd.Math.max(q, r), t4 = s - $wnd.Math.min(c2.j, l.e), u2 = l.d + d.g - c2.i, u2 * t4);
- e = (v = c2.i + c2.g, w2 = k.d + d.g, A = $wnd.Math.max(v, w2), B = A - $wnd.Math.min(c2.i, k.d), C = k.e + d.f - c2.j, B * C);
- return f2 <= e ? a.f == g$c ? a : b : a.f == f$c ? a : b;
- }
- return a;
- }
- function wGb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- k = a.e.a.c.length;
- for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 121);
- f2.j = false;
- }
- a.i = KC(WD, oje, 25, k, 15, 1);
- a.g = KC(WD, oje, 25, k, 15, 1);
- a.n = new Rkb();
- e = 0;
- l = new Rkb();
- for (i3 = new olb(a.e.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 121);
- h.d = e++;
- h.b.a.c.length == 0 && Ekb(a.n, h);
- Gkb(l, h.g);
- }
- b = 0;
- for (d = new olb(l); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 213);
- c2.c = b++;
- c2.f = false;
- }
- j = l.c.length;
- if (a.b == null || a.b.length < j) {
- a.b = KC(UD, Vje, 25, j, 15, 1);
- a.c = KC(sbb, dle, 25, j, 16, 1);
- } else {
- Blb(a.c);
+ }, "anonymous"),
+ rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i],
+ conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser17.parser = parser17;
+ mindmap_default = parser17;
+ }
+ });
+
+ // src/diagrams/mindmap/mindmapDb.ts
+ var nodes2, cnt2, elements2, clear25, getParent, getMindmap, addNode, nodeType, getType, setElementForId, decorateNode, type2Str, getLogger, getElementById, db4, mindmapDb_default;
+ var init_mindmapDb = __esm({
+ "src/diagrams/mindmap/mindmapDb.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ init_logger();
+ init_defaultConfig();
+ nodes2 = [];
+ cnt2 = 0;
+ elements2 = {};
+ clear25 = /* @__PURE__ */ __name(() => {
+ nodes2 = [];
+ cnt2 = 0;
+ elements2 = {};
+ }, "clear");
+ getParent = /* @__PURE__ */ __name(function(level) {
+ for (let i2 = nodes2.length - 1; i2 >= 0; i2--) {
+ if (nodes2[i2].level < level) {
+ return nodes2[i2];
+ }
+ }
+ return null;
+ }, "getParent");
+ getMindmap = /* @__PURE__ */ __name(() => {
+ return nodes2.length > 0 ? nodes2[0] : null;
+ }, "getMindmap");
+ addNode = /* @__PURE__ */ __name((level, id27, descr, type3) => {
+ log.info("addNode", level, id27, descr, type3);
+ const conf8 = getConfig2();
+ let padding3 = conf8.mindmap?.padding ?? defaultConfig_default.mindmap.padding;
+ switch (type3) {
+ case nodeType.ROUNDED_RECT:
+ case nodeType.RECT:
+ case nodeType.HEXAGON:
+ padding3 *= 2;
+ }
+ const node2 = {
+ id: cnt2++,
+ nodeId: sanitizeText(id27, conf8),
+ level,
+ descr: sanitizeText(descr, conf8),
+ type: type3,
+ children: [],
+ width: conf8.mindmap?.maxNodeWidth ?? defaultConfig_default.mindmap.maxNodeWidth,
+ padding: padding3
+ };
+ const parent4 = getParent(level);
+ if (parent4) {
+ parent4.children.push(node2);
+ nodes2.push(node2);
+ } else {
+ if (nodes2.length === 0) {
+ nodes2.push(node2);
+ } else {
+ throw new Error(
+ 'There can be only one root. No parent could be found for ("' + node2.descr + '")'
+ );
+ }
+ }
+ }, "addNode");
+ nodeType = {
+ DEFAULT: 0,
+ NO_BORDER: 0,
+ ROUNDED_RECT: 1,
+ RECT: 2,
+ CIRCLE: 3,
+ CLOUD: 4,
+ BANG: 5,
+ HEXAGON: 6
+ };
+ getType = /* @__PURE__ */ __name((startStr, endStr) => {
+ log.debug("In get type", startStr, endStr);
+ switch (startStr) {
+ case "[":
+ return nodeType.RECT;
+ case "(":
+ return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;
+ case "((":
+ return nodeType.CIRCLE;
+ case ")":
+ return nodeType.CLOUD;
+ case "))":
+ return nodeType.BANG;
+ case "{{":
+ return nodeType.HEXAGON;
+ default:
+ return nodeType.DEFAULT;
+ }
+ }, "getType");
+ setElementForId = /* @__PURE__ */ __name((id27, element3) => {
+ elements2[id27] = element3;
+ }, "setElementForId");
+ decorateNode = /* @__PURE__ */ __name((decoration) => {
+ if (!decoration) {
+ return;
+ }
+ const config6 = getConfig2();
+ const node2 = nodes2[nodes2.length - 1];
+ if (decoration.icon) {
+ node2.icon = sanitizeText(decoration.icon, config6);
+ }
+ if (decoration.class) {
+ node2.class = sanitizeText(decoration.class, config6);
+ }
+ }, "decorateNode");
+ type2Str = /* @__PURE__ */ __name((type3) => {
+ switch (type3) {
+ case nodeType.DEFAULT:
+ return "no-border";
+ case nodeType.RECT:
+ return "rect";
+ case nodeType.ROUNDED_RECT:
+ return "rounded-rect";
+ case nodeType.CIRCLE:
+ return "circle";
+ case nodeType.CLOUD:
+ return "cloud";
+ case nodeType.BANG:
+ return "bang";
+ case nodeType.HEXAGON:
+ return "hexgon";
+ default:
+ return "no-border";
+ }
+ }, "type2Str");
+ getLogger = /* @__PURE__ */ __name(() => log, "getLogger");
+ getElementById = /* @__PURE__ */ __name((id27) => elements2[id27], "getElementById");
+ db4 = {
+ clear: clear25,
+ addNode,
+ getMindmap,
+ nodeType,
+ getType,
+ setElementForId,
+ decorateNode,
+ type2Str,
+ getLogger,
+ getElementById
+ };
+ mindmapDb_default = db4;
+ }
+ });
+
+ // ../../node_modules/.pnpm/cytoscape@3.30.1/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);
+ }
+ function _classCallCheck(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ function _defineProperties(target, props) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var descriptor = props[i2];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ Object.defineProperty(Constructor, "prototype", {
+ writable: false
+ });
+ return Constructor;
+ }
+ function _defineProperty$1(obj, key, value2) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value2,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value2;
+ }
+ return obj;
+ }
+ function _slicedToArray(arr, i2) {
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i2) || _unsupportedIterableToArray(arr, i2) || _nonIterableRest();
+ }
+ function _arrayWithHoles(arr) {
+ if (Array.isArray(arr)) return arr;
+ }
+ function _iterableToArrayLimit(arr, i2) {
+ 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 (i2 && _arr.length === i2) break;
+ }
+ } catch (err) {
+ _d = true;
+ _e = err;
+ } finally {
+ try {
+ if (!_n && _i["return"] != null) _i["return"]();
+ } finally {
+ if (_d) throw _e;
+ }
+ }
+ return _arr;
+ }
+ function _unsupportedIterableToArray(o2, minLen) {
+ if (!o2) return;
+ if (typeof o2 === "string") return _arrayLikeToArray(o2, minLen);
+ var n2 = Object.prototype.toString.call(o2).slice(8, -1);
+ if (n2 === "Object" && o2.constructor) n2 = o2.constructor.name;
+ if (n2 === "Map" || n2 === "Set") return Array.from(o2);
+ if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2)) return _arrayLikeToArray(o2, minLen);
+ }
+ function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+ for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) arr2[i2] = arr[i2];
+ return arr2;
+ }
+ 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.");
+ }
+ function _createForOfIteratorHelper(o2, allowArrayLike) {
+ var it = typeof Symbol !== "undefined" && o2[Symbol.iterator] || o2["@@iterator"];
+ if (!it) {
+ if (Array.isArray(o2) || (it = _unsupportedIterableToArray(o2)) || allowArrayLike && o2 && typeof o2.length === "number") {
+ if (it) o2 = it;
+ var i2 = 0;
+ var F2 = /* @__PURE__ */ __name(function() {
+ }, "F");
+ return {
+ s: F2,
+ n: /* @__PURE__ */ __name(function() {
+ if (i2 >= o2.length) return {
+ done: true
+ };
+ return {
+ done: false,
+ value: o2[i2++]
+ };
+ }, "n"),
+ e: /* @__PURE__ */ __name(function(e3) {
+ throw e3;
+ }, "e"),
+ f: F2
+ };
+ }
+ 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(o2);
+ }, "s"),
+ n: /* @__PURE__ */ __name(function() {
+ var step3 = it.next();
+ normalCompletion = step3.done;
+ return step3;
+ }, "n"),
+ e: /* @__PURE__ */ __name(function(e3) {
+ didErr = true;
+ err = e3;
+ }, "e"),
+ f: /* @__PURE__ */ __name(function() {
+ try {
+ if (!normalCompletion && it.return != null) it.return();
+ } finally {
+ if (didErr) throw err;
+ }
+ }, "f")
+ };
+ }
+ function isObject2(value2) {
+ var type3 = typeof value2;
+ return value2 != null && (type3 == "object" || type3 == "function");
+ }
+ function createCommonjsModule(fn3, module2) {
+ return module2 = { exports: {} }, fn3(module2, module2.exports), module2.exports;
+ }
+ function trimmedEndIndex2(string3) {
+ var index = string3.length;
+ while (index-- && reWhitespace2.test(string3.charAt(index))) {
+ }
+ return index;
+ }
+ function baseTrim2(string3) {
+ return string3 ? string3.slice(0, _trimmedEndIndex(string3) + 1).replace(reTrimStart2, "") : string3;
+ }
+ function getRawTag2(value2) {
+ var isOwn = hasOwnProperty$4.call(value2, symToStringTag$1), tag2 = value2[symToStringTag$1];
+ try {
+ value2[symToStringTag$1] = void 0;
+ var unmasked = true;
+ } catch (e3) {
+ }
+ var result = nativeObjectToString$1.call(value2);
+ if (unmasked) {
+ if (isOwn) {
+ value2[symToStringTag$1] = tag2;
+ } else {
+ delete value2[symToStringTag$1];
+ }
+ }
+ return result;
+ }
+ function objectToString2(value2) {
+ return nativeObjectToString3.call(value2);
+ }
+ function baseGetTag2(value2) {
+ if (value2 == null) {
+ return value2 === void 0 ? undefinedTag2 : nullTag2;
+ }
+ return symToStringTag3 && symToStringTag3 in Object(value2) ? _getRawTag(value2) : _objectToString(value2);
+ }
+ function isObjectLike2(value2) {
+ return value2 != null && typeof value2 == "object";
+ }
+ function isSymbol2(value2) {
+ return typeof value2 == "symbol" || isObjectLike_1(value2) && _baseGetTag(value2) == symbolTag5;
+ }
+ function toNumber2(value2) {
+ if (typeof value2 == "number") {
+ return value2;
+ }
+ if (isSymbol_1(value2)) {
+ return NAN2;
+ }
+ if (isObject_1(value2)) {
+ var other = typeof value2.valueOf == "function" ? value2.valueOf() : value2;
+ value2 = isObject_1(other) ? other + "" : other;
+ }
+ if (typeof value2 != "string") {
+ return value2 === 0 ? value2 : +value2;
+ }
+ value2 = _baseTrim(value2);
+ var isBinary2 = reIsBinary2.test(value2);
+ return isBinary2 || reIsOctal2.test(value2) ? freeParseInt2(value2.slice(2), isBinary2 ? 2 : 8) : reIsBadHex2.test(value2) ? NAN2 : +value2;
+ }
+ function debounce(func, wait, options3) {
+ 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(options3)) {
+ leading = !!options3.leading;
+ maxing = "maxWait" in options3;
+ maxWait = maxing ? nativeMax6(toNumber_1(options3.maxWait) || 0, wait) : maxWait;
+ trailing = "trailing" in options3 ? !!options3.trailing : trailing;
+ }
+ function invokeFunc(time4) {
+ var args = lastArgs, thisArg = lastThis;
+ lastArgs = lastThis = void 0;
+ lastInvokeTime = time4;
+ result = func.apply(thisArg, args);
+ return result;
+ }
+ __name(invokeFunc, "invokeFunc");
+ function leadingEdge(time4) {
+ lastInvokeTime = time4;
+ timerId = setTimeout(timerExpired, wait);
+ return leading ? invokeFunc(time4) : result;
+ }
+ __name(leadingEdge, "leadingEdge");
+ function remainingWait(time4) {
+ var timeSinceLastCall = time4 - lastCallTime, timeSinceLastInvoke = time4 - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
+ return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
+ }
+ __name(remainingWait, "remainingWait");
+ function shouldInvoke(time4) {
+ var timeSinceLastCall = time4 - lastCallTime, timeSinceLastInvoke = time4 - lastInvokeTime;
+ return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
+ }
+ __name(shouldInvoke, "shouldInvoke");
+ function timerExpired() {
+ var time4 = now_1();
+ if (shouldInvoke(time4)) {
+ return trailingEdge(time4);
+ }
+ timerId = setTimeout(timerExpired, remainingWait(time4));
+ }
+ __name(timerExpired, "timerExpired");
+ function trailingEdge(time4) {
+ timerId = void 0;
+ if (trailing && lastArgs) {
+ return invokeFunc(time4);
+ }
+ 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 time4 = now_1(), isInvoking = shouldInvoke(time4);
+ lastArgs = arguments;
+ lastThis = this;
+ lastCallTime = time4;
+ 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;
+ }
+ function clusteringDistance(method, length2, getP, getQ, nodeP, nodeQ) {
+ var impl2;
+ if (fn$6(method)) {
+ impl2 = method;
+ } else {
+ impl2 = distances[method] || distances.euclidean;
+ }
+ if (length2 === 0 && fn$6(method)) {
+ return impl2(nodeP, nodeQ);
+ } else {
+ return impl2(length2, getP, getQ, nodeP, nodeQ);
+ }
+ }
+ function isKey2(value2, object3) {
+ if (isArray_1(value2)) {
+ return false;
+ }
+ var type3 = typeof value2;
+ if (type3 == "number" || type3 == "symbol" || type3 == "boolean" || value2 == null || isSymbol_1(value2)) {
+ return true;
+ }
+ return reIsPlainProp2.test(value2) || !reIsDeepProp2.test(value2) || object3 != null && value2 in Object(object3);
+ }
+ function isFunction2(value2) {
+ if (!isObject_1(value2)) {
+ return false;
+ }
+ var tag2 = _baseGetTag(value2);
+ return tag2 == funcTag4 || tag2 == genTag3 || tag2 == asyncTag2 || tag2 == proxyTag2;
+ }
+ function isMasked2(func) {
+ return !!maskSrcKey2 && maskSrcKey2 in func;
+ }
+ function toSource2(func) {
+ if (func != null) {
+ try {
+ return funcToString$1.call(func);
+ } catch (e3) {
+ }
+ try {
+ return func + "";
+ } catch (e3) {
+ }
+ }
+ return "";
+ }
+ function baseIsNative2(value2) {
+ if (!isObject_1(value2) || _isMasked(value2)) {
+ return false;
+ }
+ var pattern = isFunction_1(value2) ? reIsNative2 : reIsHostCtor2;
+ return pattern.test(_toSource(value2));
+ }
+ function getValue$1(object3, key) {
+ return object3 == null ? void 0 : object3[key];
+ }
+ function getNative2(object3, key) {
+ var value2 = _getValue(object3, key);
+ return _baseIsNative(value2) ? value2 : void 0;
+ }
+ function hashClear2() {
+ this.__data__ = _nativeCreate ? _nativeCreate(null) : {};
+ this.size = 0;
+ }
+ function hashDelete2(key) {
+ var result = this.has(key) && delete this.__data__[key];
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+ function hashGet2(key) {
+ var data5 = this.__data__;
+ if (_nativeCreate) {
+ var result = data5[key];
+ return result === HASH_UNDEFINED$1 ? void 0 : result;
+ }
+ return hasOwnProperty$2.call(data5, key) ? data5[key] : void 0;
+ }
+ function hashHas2(key) {
+ var data5 = this.__data__;
+ return _nativeCreate ? data5[key] !== void 0 : hasOwnProperty$1.call(data5, key);
+ }
+ function hashSet2(key, value2) {
+ var data5 = this.__data__;
+ this.size += this.has(key) ? 0 : 1;
+ data5[key] = _nativeCreate && value2 === void 0 ? HASH_UNDEFINED4 : value2;
+ return this;
+ }
+ function Hash2(entries) {
+ var index = -1, length2 = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length2) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+ function listCacheClear2() {
+ this.__data__ = [];
+ this.size = 0;
+ }
+ function eq2(value2, other) {
+ return value2 === other || value2 !== value2 && other !== other;
+ }
+ function assocIndexOf2(array4, key) {
+ var length2 = array4.length;
+ while (length2--) {
+ if (eq_1(array4[length2][0], key)) {
+ return length2;
+ }
+ }
+ return -1;
+ }
+ function listCacheDelete2(key) {
+ var data5 = this.__data__, index = _assocIndexOf(data5, key);
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data5.length - 1;
+ if (index == lastIndex) {
+ data5.pop();
+ } else {
+ splice2.call(data5, index, 1);
+ }
+ --this.size;
+ return true;
+ }
+ function listCacheGet2(key) {
+ var data5 = this.__data__, index = _assocIndexOf(data5, key);
+ return index < 0 ? void 0 : data5[index][1];
+ }
+ function listCacheHas2(key) {
+ return _assocIndexOf(this.__data__, key) > -1;
+ }
+ function listCacheSet2(key, value2) {
+ var data5 = this.__data__, index = _assocIndexOf(data5, key);
+ if (index < 0) {
+ ++this.size;
+ data5.push([key, value2]);
+ } else {
+ data5[index][1] = value2;
+ }
+ return this;
+ }
+ function ListCache2(entries) {
+ var index = -1, length2 = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length2) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+ function mapCacheClear2() {
+ this.size = 0;
+ this.__data__ = {
+ "hash": new _Hash(),
+ "map": new (_Map || _ListCache)(),
+ "string": new _Hash()
+ };
+ }
+ function isKeyable2(value2) {
+ var type3 = typeof value2;
+ return type3 == "string" || type3 == "number" || type3 == "symbol" || type3 == "boolean" ? value2 !== "__proto__" : value2 === null;
+ }
+ function getMapData2(map5, key) {
+ var data5 = map5.__data__;
+ return _isKeyable(key) ? data5[typeof key == "string" ? "string" : "hash"] : data5.map;
+ }
+ function mapCacheDelete2(key) {
+ var result = _getMapData(this, key)["delete"](key);
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+ function mapCacheGet2(key) {
+ return _getMapData(this, key).get(key);
+ }
+ function mapCacheHas2(key) {
+ return _getMapData(this, key).has(key);
+ }
+ function mapCacheSet2(key, value2) {
+ var data5 = _getMapData(this, key), size5 = data5.size;
+ data5.set(key, value2);
+ this.size += data5.size == size5 ? 0 : 1;
+ return this;
+ }
+ function MapCache2(entries) {
+ var index = -1, length2 = entries == null ? 0 : entries.length;
+ this.clear();
+ while (++index < length2) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+ function memoize3(func, resolver3) {
+ if (typeof func != "function" || resolver3 != null && typeof resolver3 != "function") {
+ throw new TypeError(FUNC_ERROR_TEXT3);
+ }
+ var memoized = /* @__PURE__ */ __name(function() {
+ var args = arguments, key = resolver3 ? resolver3.apply(this, args) : args[0], cache3 = memoized.cache;
+ if (cache3.has(key)) {
+ return cache3.get(key);
+ }
+ var result = func.apply(this, args);
+ memoized.cache = cache3.set(key, result) || cache3;
+ return result;
+ }, "memoized");
+ memoized.cache = new (memoize3.Cache || _MapCache)();
+ return memoized;
+ }
+ function memoizeCapped2(func) {
+ var result = memoize_1(func, function(key) {
+ if (cache3.size === MAX_MEMOIZE_SIZE2) {
+ cache3.clear();
+ }
+ return key;
+ });
+ var cache3 = result.cache;
+ return result;
+ }
+ function arrayMap2(array4, iteratee) {
+ var index = -1, length2 = array4 == null ? 0 : array4.length, result = Array(length2);
+ while (++index < length2) {
+ result[index] = iteratee(array4[index], index, array4);
+ }
+ return result;
+ }
+ function baseToString2(value2) {
+ if (typeof value2 == "string") {
+ return value2;
+ }
+ if (isArray_1(value2)) {
+ return _arrayMap(value2, baseToString2) + "";
+ }
+ if (isSymbol_1(value2)) {
+ return symbolToString2 ? symbolToString2.call(value2) : "";
+ }
+ var result = value2 + "";
+ return result == "0" && 1 / value2 == -INFINITY$1 ? "-0" : result;
+ }
+ function toString$1(value2) {
+ return value2 == null ? "" : _baseToString(value2);
+ }
+ function castPath2(value2, object3) {
+ if (isArray_1(value2)) {
+ return value2;
+ }
+ return _isKey(value2, object3) ? [value2] : _stringToPath(toString_1(value2));
+ }
+ function toKey2(value2) {
+ if (typeof value2 == "string" || isSymbol_1(value2)) {
+ return value2;
+ }
+ var result = value2 + "";
+ return result == "0" && 1 / value2 == -INFINITY5 ? "-0" : result;
+ }
+ function baseGet2(object3, path4) {
+ path4 = _castPath(path4, object3);
+ var index = 0, length2 = path4.length;
+ while (object3 != null && index < length2) {
+ object3 = object3[_toKey(path4[index++])];
+ }
+ return index && index == length2 ? object3 : void 0;
+ }
+ function get5(object3, path4, defaultValue) {
+ var result = object3 == null ? void 0 : _baseGet(object3, path4);
+ return result === void 0 ? defaultValue : result;
+ }
+ function baseAssignValue2(object3, key, value2) {
+ if (key == "__proto__" && _defineProperty) {
+ _defineProperty(object3, key, {
+ "configurable": true,
+ "enumerable": true,
+ "value": value2,
+ "writable": true
+ });
+ } else {
+ object3[key] = value2;
+ }
+ }
+ function assignValue2(object3, key, value2) {
+ var objValue = object3[key];
+ if (!(hasOwnProperty19.call(object3, key) && eq_1(objValue, value2)) || value2 === void 0 && !(key in object3)) {
+ _baseAssignValue(object3, key, value2);
+ }
+ }
+ function isIndex2(value2, length2) {
+ var type3 = typeof value2;
+ length2 = length2 == null ? MAX_SAFE_INTEGER3 : length2;
+ return !!length2 && (type3 == "number" || type3 != "symbol" && reIsUint2.test(value2)) && (value2 > -1 && value2 % 1 == 0 && value2 < length2);
+ }
+ function baseSet2(object3, path4, value2, customizer) {
+ if (!isObject_1(object3)) {
+ return object3;
+ }
+ path4 = _castPath(path4, object3);
+ var index = -1, length2 = path4.length, lastIndex = length2 - 1, nested = object3;
+ while (nested != null && ++index < length2) {
+ var key = _toKey(path4[index]), newValue = value2;
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
+ return object3;
+ }
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : void 0;
+ if (newValue === void 0) {
+ newValue = isObject_1(objValue) ? objValue : _isIndex(path4[index + 1]) ? [] : {};
+ }
+ }
+ _assignValue(nested, key, newValue);
+ nested = nested[key];
+ }
+ return object3;
+ }
+ function set4(object3, path4, value2) {
+ return object3 == null ? object3 : _baseSet(object3, path4, value2);
+ }
+ function copyArray3(source, array4) {
+ var index = -1, length2 = source.length;
+ array4 || (array4 = Array(length2));
+ while (++index < length2) {
+ array4[index] = source[index];
+ }
+ return array4;
+ }
+ function toPath(value2) {
+ if (isArray_1(value2)) {
+ return _arrayMap(value2, _toKey);
+ }
+ return isSymbol_1(value2) ? [value2] : _copyArray(_stringToPath(toString_1(value2)));
+ }
+ function forEachCompound(eles, fn3, includeSelf, recursiveStep) {
+ var q2 = [];
+ var did = new Set$1();
+ var cy = eles.cy();
+ var hasCompounds = cy.hasCompoundNodes();
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (includeSelf) {
+ q2.push(ele);
+ } else if (hasCompounds) {
+ recursiveStep(q2, did, ele);
+ }
+ }
+ while (q2.length > 0) {
+ var _ele = q2.shift();
+ fn3(_ele);
+ did.add(_ele.id());
+ if (hasCompounds) {
+ recursiveStep(q2, did, _ele);
+ }
+ }
+ return eles;
+ }
+ function addChildren(q2, did, ele) {
+ if (ele.isParent()) {
+ var children2 = ele._private.children;
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var child = children2[i2];
+ if (!did.has(child.id())) {
+ q2.push(child);
+ }
+ }
+ }
+ }
+ function addParent(q2, did, ele) {
+ if (ele.isChild()) {
+ var parent4 = ele._private.parent;
+ if (!did.has(parent4.id())) {
+ q2.push(parent4);
+ }
+ }
+ }
+ function addParentAndChildren(q2, did, ele) {
+ addParent(q2, did, ele);
+ addChildren(q2, did, ele);
+ }
+ function defineDegreeFunction(callback) {
+ return function(includeLoops) {
+ var self2 = this;
+ if (includeLoops === void 0) {
+ includeLoops = true;
+ }
+ if (self2.length === 0) {
+ return;
+ }
+ if (self2.isNode() && !self2.removed()) {
+ var degree = 0;
+ var node2 = self2[0];
+ var connectedEdges = node2._private.edges;
+ for (var i2 = 0; i2 < connectedEdges.length; i2++) {
+ var edge = connectedEdges[i2];
+ if (!includeLoops && edge.isLoop()) {
+ continue;
+ }
+ degree += callback(node2, edge);
+ }
+ return degree;
+ } else {
+ return;
+ }
+ };
+ }
+ function defineDegreeBoundsFunction(degreeFn, callback) {
+ return function(includeLoops) {
+ var ret;
+ var nodes6 = this.nodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var ele = nodes6[i2];
+ var degree = ele[degreeFn](includeLoops);
+ if (degree !== void 0 && (ret === void 0 || callback(degree, ret))) {
+ ret = degree;
+ }
+ }
+ return ret;
+ };
+ }
+ function returnFalse() {
+ return false;
+ }
+ function returnTrue() {
+ return true;
+ }
+ function Emitter2() {
+ var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : emptyOpts;
+ var context = arguments.length > 1 ? arguments[1] : void 0;
+ for (var i2 = 0; i2 < defaultsKeys.length; i2++) {
+ var key = defaultsKeys[i2];
+ this[key] = opts[key] || defaults$8[key];
+ }
+ this.context = context || this.context;
+ this.listeners = [];
+ this.emitting = 0;
+ }
+ function styleCache(key, fn3, ele) {
+ var _p = ele._private;
+ var cache3 = _p.styleCache = _p.styleCache || [];
+ var val;
+ if ((val = cache3[key]) != null) {
+ return val;
+ } else {
+ val = cache3[key] = fn3(ele);
+ return val;
+ }
+ }
+ function cacheStyleFunction(key, fn3) {
+ key = hashString(key);
+ return /* @__PURE__ */ __name(function cachedStyleFunction(ele) {
+ return styleCache(key, fn3, ele);
+ }, "cachedStyleFunction");
+ }
+ function cachePrototypeStyleFunction(key, fn3) {
+ key = hashString(key);
+ var selfFn = /* @__PURE__ */ __name(function selfFn2(ele) {
+ return fn3.call(ele);
+ }, "selfFn");
+ return /* @__PURE__ */ __name(function cachedPrototypeStyleFunction() {
+ var ele = this[0];
+ if (ele) {
+ return styleCache(key, selfFn, ele);
+ }
+ }, "cachedPrototypeStyleFunction");
+ }
+ function checkCompound(ele, parentOk) {
+ var _p = ele._private;
+ var parents4 = _p.data.parent ? ele.parents() : null;
+ if (parents4) {
+ for (var i2 = 0; i2 < parents4.length; i2++) {
+ var parent4 = parents4[i2];
+ if (!parentOk(parent4)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ function defineDerivedStateFunction(specs) {
+ var ok = specs.ok;
+ var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;
+ var parentOk = specs.parentOk || specs.ok;
+ return function() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return true;
+ }
+ var ele = this[0];
+ var hasCompoundNodes2 = cy.hasCompoundNodes();
+ if (ele) {
+ var _p = ele._private;
+ if (!ok(ele)) {
+ return false;
+ }
+ if (ele.isNode()) {
+ return !hasCompoundNodes2 || checkCompound(ele, parentOk);
+ } else {
+ var src = _p.source;
+ var tgt = _p.target;
+ return edgeOkViaNode(src) && (!hasCompoundNodes2 || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes2 || checkCompound(tgt, edgeOkViaNode)));
+ }
+ }
+ };
+ }
+ function defineSwitchFunction(params) {
+ return function() {
+ var args = arguments;
+ var changedEles = [];
+ if (args.length === 2) {
+ var data5 = args[0];
+ var handler = args[1];
+ this.on(params.event, data5, handler);
+ } else if (args.length === 1 && fn$6(args[0])) {
+ var _handler = args[0];
+ this.on(params.event, _handler);
+ } else if (args.length === 0 || args.length === 1 && array2(args[0])) {
+ var addlEvents = args.length === 1 ? args[0] : null;
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var able = !params.ableField || ele._private[params.ableField];
+ var changed = ele._private[params.field] != params.value;
+ if (params.overrideAble) {
+ var overrideAble2 = params.overrideAble(ele);
+ if (overrideAble2 !== void 0) {
+ able = overrideAble2;
+ if (!overrideAble2) {
+ return this;
}
- a.d = l;
- a.p = new Asb(Cv(a.d.c.length));
- a.j = 1;
}
- function sTb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- if (b.e.c.length <= 1) {
- return;
- }
- a.f = b;
- a.d = BD(vNb(a.f, (bTb(), SSb)), 379);
- a.g = BD(vNb(a.f, WSb), 19).a;
- a.e = Edb(ED(vNb(a.f, TSb)));
- a.c = Edb(ED(vNb(a.f, RSb)));
- it(a.b);
- for (e = new olb(a.f.c); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 282);
- ht(a.b, d.c, d, null);
- ht(a.b, d.d, d, null);
- }
- h = a.f.e.c.length;
- a.a = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2);
- for (j = new olb(a.f.e); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 144);
- oTb(a, i3, a.a[i3.b]);
- }
- a.i = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2);
- for (f2 = 0; f2 < h; ++f2) {
- for (g = 0; g < h; ++g) {
- c2 = a.a[f2][g];
- k = 1 / (c2 * c2);
- a.i[f2][g] = k;
- }
- }
- }
- function Vfe(a) {
- var b, c2, d, e;
- if (a.b == null || a.b.length <= 2)
- return;
- if (a.a)
- return;
- b = 0;
- e = 0;
- while (e < a.b.length) {
- if (b != e) {
- a.b[b] = a.b[e++];
- a.b[b + 1] = a.b[e++];
- } else
- e += 2;
- c2 = a.b[b + 1];
- while (e < a.b.length) {
- if (c2 + 1 < a.b[e])
- break;
- if (c2 + 1 == a.b[e]) {
- a.b[b + 1] = a.b[e + 1];
- c2 = a.b[b + 1];
- e += 2;
- } else if (c2 >= a.b[e + 1]) {
- e += 2;
- } else if (c2 < a.b[e + 1]) {
- a.b[b + 1] = a.b[e + 1];
- c2 = a.b[b + 1];
- e += 2;
- } else {
- throw vbb(new hz("Token#compactRanges(): Internel Error: [" + a.b[b] + "," + a.b[b + 1] + "] [" + a.b[e] + "," + a.b[e + 1] + "]"));
- }
- }
- b += 2;
- }
- if (b != a.b.length) {
- d = KC(WD, oje, 25, b, 15, 1);
- $fb(a.b, 0, d, 0, b);
- a.b = d;
- }
- a.a = true;
- }
- function pZb(a, b) {
- var c2, d, e, f2, g, h, i3;
- for (g = Ec(a.a).Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 17);
- if (f2.b.c.length > 0) {
- d = new Tkb(BD(Qc(a.a, f2), 21));
- mmb();
- Okb(d, new EZb(b));
- e = new Bib(f2.b, 0);
- while (e.b < e.d.gc()) {
- c2 = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70));
- h = -1;
- switch (BD(vNb(c2, (Nyc(), Qwc)), 272).g) {
- case 1:
- h = d.c.length - 1;
- break;
- case 0:
- h = nZb(d);
- break;
- case 2:
- h = 0;
- }
- if (h != -1) {
- i3 = (tCb(h, d.c.length), BD(d.c[h], 243));
- Ekb(i3.b.b, c2);
- BD(vNb(Q_b(i3.b.c.i), (wtc(), Ksc)), 21).Fc((Orc(), Grc));
- BD(vNb(Q_b(i3.b.c.i), Ksc), 21).Fc(Erc);
- uib(e);
- yNb(c2, btc, f2);
- }
- }
- }
- QZb(f2, null);
- RZb(f2, null);
- }
+ }
+ if (able) {
+ ele._private[params.field] = params.value;
+ if (changed) {
+ changedEles.push(ele);
}
- function FLb(a, b) {
- var c2, d, e, f2;
- c2 = new KLb();
- d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
- e = d.gc();
- e = e == 2 ? 1 : 0;
- e == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new MLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (e = 0);
- d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
- f2 = d.gc();
- f2 = f2 == 2 ? 1 : 0;
- f2 == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new OLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (f2 = 0);
- if (e < f2) {
- return -1;
- }
- if (e == f2) {
- return 0;
- }
- return 1;
+ }
+ }
+ var changedColl = this.spawn(changedEles);
+ changedColl.updateStyle();
+ changedColl.emit(params.event);
+ if (addlEvents) {
+ changedColl.emit(addlEvents);
+ }
+ }
+ return this;
+ };
+ }
+ function defineSwitchSet(params) {
+ elesfn$3[params.field] = function() {
+ var ele = this[0];
+ if (ele) {
+ if (params.overrideField) {
+ var val = params.overrideField(ele);
+ if (val !== void 0) {
+ return val;
+ }
+ }
+ return ele._private[params.field];
+ }
+ };
+ elesfn$3[params.on] = defineSwitchFunction({
+ event: params.on,
+ field: params.field,
+ ableField: params.ableField,
+ overrideAble: params.overrideAble,
+ value: true
+ });
+ elesfn$3[params.off] = defineSwitchFunction({
+ event: params.off,
+ field: params.field,
+ ableField: params.ableField,
+ overrideAble: params.overrideAble,
+ value: false
+ });
+ }
+ function defineSourceFunction(params) {
+ return /* @__PURE__ */ __name(function sourceImpl2(selector) {
+ var sources = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var src = ele._private[params.attr];
+ if (src) {
+ sources.push(src);
+ }
+ }
+ return this.spawn(sources, true).filter(selector);
+ }, "sourceImpl");
+ }
+ function defineEdgesWithFunction(params) {
+ return /* @__PURE__ */ __name(function edgesWithImpl(otherNodes) {
+ var elements3 = [];
+ var cy = this._private.cy;
+ var p3 = params || {};
+ if (string(otherNodes)) {
+ otherNodes = cy.$(otherNodes);
+ }
+ for (var h2 = 0; h2 < otherNodes.length; h2++) {
+ var edges5 = otherNodes[h2]._private.edges;
+ for (var i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ var edgeData2 = edge._private.data;
+ var thisToOther = this.hasElementWithId(edgeData2.source) && otherNodes.hasElementWithId(edgeData2.target);
+ var otherToThis = otherNodes.hasElementWithId(edgeData2.source) && this.hasElementWithId(edgeData2.target);
+ var edgeConnectsThisAndOther = thisToOther || otherToThis;
+ if (!edgeConnectsThisAndOther) {
+ continue;
+ }
+ if (p3.thisIsSrc || p3.thisIsTgt) {
+ if (p3.thisIsSrc && !thisToOther) {
+ continue;
}
- function h6b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
- j = new Rkb();
- if (!wNb(a, (wtc(), Fsc))) {
- return j;
- }
- for (d = BD(vNb(a, Fsc), 15).Kc(); d.Ob(); ) {
- b = BD(d.Pb(), 10);
- g6b(b, a);
- j.c[j.c.length] = b;
- }
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- for (h = new olb(e.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- if (g.k != (j0b(), e0b)) {
- continue;
- }
- i3 = BD(vNb(g, Gsc), 10);
- !!i3 && (k = new H0b(), F0b(k, g), l = BD(vNb(g, Hsc), 61), G0b(k, l), m = BD(Ikb(i3.j, 0), 11), n = new UZb(), QZb(n, k), RZb(n, m), void 0);
- }
- }
- for (c2 = new olb(j); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 10);
- $_b(b, BD(Ikb(a.b, a.b.c.length - 1), 29));
- }
- return j;
- }
- function M1b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- b = mpd(a);
- f2 = Ccb(DD(hkd(b, (Nyc(), fxc))));
- k = 0;
- e = 0;
- for (j = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); j.e != j.i.gc(); ) {
- i3 = BD(Dyd(j), 79);
- h = Qld(i3);
- g = h && f2 && Ccb(DD(hkd(i3, gxc)));
- m = atd(BD(qud((!i3.c && (i3.c = new y5d(z2, i3, 5, 8)), i3.c), 0), 82));
- h && g ? ++e : h && !g ? ++k : Xod(m) == b || m == b ? ++e : ++k;
- }
- for (d = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 79);
- h = Qld(c2);
- g = h && f2 && Ccb(DD(hkd(c2, gxc)));
- l = atd(BD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 82));
- h && g ? ++k : h && !g ? ++e : Xod(l) == b || l == b ? ++k : ++e;
- }
- return k - e;
- }
- function ubc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- Odd(b, "Edge splitting", 1);
- if (a.b.c.length <= 2) {
- Qdd(b);
- return;
- }
- f2 = new Bib(a.b, 0);
- g = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 29));
- while (f2.b < f2.d.gc()) {
- e = g;
- g = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 29));
- for (i3 = new olb(e.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- for (k = new olb(h.j); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 11);
- for (d = new olb(j.g); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 17);
- m = c2.d;
- l = m.i.c;
- l != e && l != g && zbc(c2, (n = new b0b(a), __b(n, (j0b(), g0b)), yNb(n, (wtc(), $sc), c2), yNb(n, (Nyc(), Vxc), (dcd(), $bd)), $_b(n, g), n));
- }
- }
- }
- }
- Qdd(b);
- }
- function MTb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- h = b.p != null && !b.b;
- h || Odd(b, kme, 1);
- c2 = BD(vNb(a, (wtc(), itc)), 15);
- g = 1 / c2.gc();
- if (b.n) {
- Sdd(b, "ELK Layered uses the following " + c2.gc() + " modules:");
- n = 0;
- for (m = c2.Kc(); m.Ob(); ) {
- k = BD(m.Pb(), 51);
- d = (n < 10 ? "0" : "") + n++;
- Sdd(b, " Slot " + d + ": " + hdb(rb(k)));
- }
- }
- for (l = c2.Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 51);
- k.pf(a, Udd(b, g));
- }
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- Gkb(a.a, e.a);
- e.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- for (j = new olb(a.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- $_b(i3, null);
- }
- a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- h || Qdd(b);
- }
- function kJc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
- d = Edb(ED(vNb(b, (Nyc(), Bxc))));
- v = BD(vNb(b, Ayc), 19).a;
- m = 4;
- e = 3;
- w2 = 20 / v;
- n = false;
- i3 = 0;
- g = Ohe;
- do {
- f2 = i3 != 1;
- l = i3 != 0;
- A = 0;
- for (q = a.a, s = 0, u2 = q.length; s < u2; ++s) {
- o2 = q[s];
- o2.f = null;
- lJc(a, o2, f2, l, d);
- A += $wnd.Math.abs(o2.a);
- }
- do {
- h = pJc(a, b);
- } while (h);
- for (p = a.a, r = 0, t4 = p.length; r < t4; ++r) {
- o2 = p[r];
- c2 = xJc(o2).a;
- if (c2 != 0) {
- for (k = new olb(o2.e); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 10);
- j.n.b += c2;
- }
- }
- }
- if (i3 == 0 || i3 == 1) {
- --m;
- if (m <= 0 && (A < g || -m > v)) {
- i3 = 2;
- g = Ohe;
- } else if (i3 == 0) {
- i3 = 1;
- g = A;
- } else {
- i3 = 0;
- g = A;
- }
- } else {
- n = A >= g || g - A < w2;
- g = A;
- n && --e;
- }
- } while (!(n && e <= 0));
- }
- function UCb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2;
- o2 = new Lqb();
- for (f2 = a.a.ec().Kc(); f2.Ob(); ) {
- d = BD(f2.Pb(), 168);
- Rhb(o2, d, c2.Je(d));
- }
- g = (Qb(a), a ? new Tkb(a) : Nu(a.a.ec().Kc()));
- Okb(g, new WCb(o2));
- h = Gx(g);
- i3 = new hDb(b);
- n = new Lqb();
- jrb(n.f, b, i3);
- while (h.a.gc() != 0) {
- j = null;
- k = null;
- l = null;
- for (e = h.a.ec().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 168);
- if (Edb(ED(Wd(irb(o2.f, d)))) <= Pje) {
- if (Mhb(n, d.a) && !Mhb(n, d.b)) {
- k = d.b;
- l = d.a;
- j = d;
- break;
- }
- if (Mhb(n, d.b)) {
- if (!Mhb(n, d.a)) {
- k = d.a;
- l = d.b;
- j = d;
- break;
- }
- }
- }
- }
- if (!j) {
- break;
- }
- m = new hDb(k);
- Ekb(BD(Wd(irb(n.f, l)), 221).a, m);
- jrb(n.f, k, m);
- h.a.Bc(j) != null;
- }
- return i3;
- }
- function UBc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- Odd(c2, "Depth-first cycle removal", 1);
- l = b.a;
- k = l.c.length;
- a.c = new Rkb();
- a.d = KC(sbb, dle, 25, k, 16, 1);
- a.a = KC(sbb, dle, 25, k, 16, 1);
- a.b = new Rkb();
- g = 0;
- for (j = new olb(l); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- i3.p = g;
- Qq(R_b(i3)) && Ekb(a.c, i3);
- ++g;
- }
- for (n = new olb(a.c); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 10);
- TBc(a, m);
- }
- for (f2 = 0; f2 < k; f2++) {
- if (!a.d[f2]) {
- h = (tCb(f2, l.c.length), BD(l.c[f2], 10));
- TBc(a, h);
- }
- }
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- PZb(d, true);
- yNb(b, (wtc(), Asc), (Bcb(), true));
- }
- a.c = null;
- a.d = null;
- a.a = null;
- a.b = null;
- Qdd(c2);
- }
- function PSc(a, b) {
- var c2, d, e, f2, g, h, i3;
- a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (d = Jsb(b.b, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 86);
- if (c2.b.b == 0) {
- yNb(c2, (mTc(), jTc), (Bcb(), true));
- Ekb(a.a, c2);
- }
- }
- switch (a.a.c.length) {
- case 0:
- e = new XRc(0, b, "DUMMY_ROOT");
- yNb(e, (mTc(), jTc), (Bcb(), true));
- yNb(e, YSc, true);
- Dsb(b.b, e);
- break;
- case 1:
- break;
- default:
- f2 = new XRc(0, b, "SUPER_ROOT");
- for (h = new olb(a.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 86);
- i3 = new QRc(f2, g);
- yNb(i3, (mTc(), YSc), (Bcb(), true));
- Dsb(f2.a.a, i3);
- Dsb(f2.d, i3);
- Dsb(g.b, i3);
- yNb(g, jTc, false);
- }
- yNb(f2, (mTc(), jTc), (Bcb(), true));
- yNb(f2, YSc, true);
- Dsb(b.b, f2);
- }
- }
- function z6c(a, b) {
- i6c();
- var c2, d, e, f2, g, h;
- f2 = b.c - (a.c + a.b);
- e = a.c - (b.c + b.b);
- g = a.d - (b.d + b.a);
- c2 = b.d - (a.d + a.a);
- d = $wnd.Math.max(e, f2);
- h = $wnd.Math.max(g, c2);
- Iy();
- My(Jqe);
- if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) >= 0 ^ (My(Jqe), ($wnd.Math.abs(h) <= Jqe || h == 0 || isNaN(h) && isNaN(0) ? 0 : h < 0 ? -1 : h > 0 ? 1 : Ny(isNaN(h), isNaN(0))) >= 0)) {
- return $wnd.Math.max(h, d);
- }
- My(Jqe);
- if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) > 0) {
- return $wnd.Math.sqrt(h * h + d * d);
- }
- return -$wnd.Math.sqrt(h * h + d * d);
- }
- function Kge(a, b) {
- var c2, d, e, f2, g, h;
- if (!b)
- return;
- !a.a && (a.a = new Wvb());
- if (a.e == 2) {
- Tvb(a.a, b);
- return;
- }
- if (b.e == 1) {
- for (e = 0; e < b.em(); e++)
- Kge(a, b.am(e));
- return;
- }
- h = a.a.a.c.length;
- if (h == 0) {
- Tvb(a.a, b);
- return;
- }
- g = BD(Uvb(a.a, h - 1), 117);
- if (!((g.e == 0 || g.e == 10) && (b.e == 0 || b.e == 10))) {
- Tvb(a.a, b);
- return;
- }
- f2 = b.e == 0 ? 2 : b.bm().length;
- if (g.e == 0) {
- c2 = new Ifb();
- d = g._l();
- d >= Tje ? Efb(c2, Tee(d)) : Afb(c2, d & aje);
- g = new Hge(10, null, 0);
- Vvb(a.a, g, h - 1);
- } else {
- c2 = (g.bm().length + f2, new Ifb());
- Efb(c2, g.bm());
- }
- if (b.e == 0) {
- d = b._l();
- d >= Tje ? Efb(c2, Tee(d)) : Afb(c2, d & aje);
- } else {
- Efb(c2, b.bm());
- }
- BD(g, 521).b = c2.a;
- }
- function rgb2(a) {
- var b, c2, d, e, f2;
- if (a.g != null) {
- return a.g;
- }
- if (a.a < 32) {
- a.g = rhb(Cbb(a.f), QD(a.e));
- return a.g;
- }
- e = shb((!a.c && (a.c = fhb(a.f)), a.c), 0);
- if (a.e == 0) {
- return e;
- }
- b = (!a.c && (a.c = fhb(a.f)), a.c).e < 0 ? 2 : 1;
- c2 = e.length;
- d = -a.e + c2 - b;
- f2 = new Ufb();
- f2.a += "" + e;
- if (a.e > 0 && d >= -6) {
- if (d >= 0) {
- Tfb(f2, c2 - QD(a.e), String.fromCharCode(46));
- } else {
- f2.a = qfb(f2.a, 0, b - 1) + "0." + pfb(f2.a, b - 1);
- Tfb(f2, b + 1, zfb(egb, 0, -QD(d) - 1));
- }
- } else {
- if (c2 - b >= 1) {
- Tfb(f2, b, String.fromCharCode(46));
- ++c2;
- }
- Tfb(f2, c2, String.fromCharCode(69));
- d > 0 && Tfb(f2, ++c2, String.fromCharCode(43));
- Tfb(f2, ++c2, "" + Ubb(Cbb(d)));
- }
- a.g = f2.a;
- return a.g;
+ if (p3.thisIsTgt && !otherToThis) {
+ continue;
}
- function npc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- if (c2.dc()) {
- return;
- }
- h = 0;
- m = 0;
- d = c2.Kc();
- o2 = BD(d.Pb(), 19).a;
- while (h < b.f) {
- if (h == o2) {
- m = 0;
- d.Ob() ? o2 = BD(d.Pb(), 19).a : o2 = b.f + 1;
- }
- if (h != m) {
- q = BD(Ikb(a.b, h), 29);
- n = BD(Ikb(a.b, m), 29);
- p = Mu(q.a);
- for (l = new olb(p); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 10);
- Z_b(k, n.a.c.length, n);
- if (m == 0) {
- g = Mu(R_b(k));
- for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 17);
- PZb(e, true);
- yNb(a, (wtc(), Asc), (Bcb(), true));
- Noc(a, e, 1);
- }
- }
- }
- }
- ++m;
- ++h;
- }
- i3 = new Bib(a.b, 0);
- while (i3.b < i3.d.gc()) {
- j = (sCb(i3.b < i3.d.gc()), BD(i3.d.Xb(i3.c = i3.b++), 29));
- j.a.c.length == 0 && uib(i3);
- }
- }
- function xmc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- g = b.b;
- k = g.o;
- i3 = g.d;
- d = Edb(ED(c_b(g, (Nyc(), lyc))));
- e = Edb(ED(c_b(g, nyc)));
- j = Edb(ED(c_b(g, xyc)));
- h = new L_b();
- v_b(h, i3.d, i3.c, i3.a, i3.b);
- m = tmc(b, d, e, j);
- for (r = new olb(b.d); r.a < r.c.c.length; ) {
- q = BD(mlb(r), 101);
- for (o2 = q.f.a.ec().Kc(); o2.Ob(); ) {
- n = BD(o2.Pb(), 409);
- f2 = n.a;
- l = rmc(n);
- c2 = (s = new s7c(), pmc(n, n.c, m, s), omc(n, l, m, s), pmc(n, n.d, m, s), s);
- c2 = a.Uf(n, l, c2);
- Osb(f2.a);
- ye(f2.a, c2);
- MAb(new YAb(null, new Kub(c2, 16)), new Bmc(k, h));
- }
- p = q.i;
- if (p) {
- wmc(q, p, m, e);
- t4 = new g7c(p.g);
- ymc(k, h, t4);
- P6c(t4, p.j);
- ymc(k, h, t4);
- }
- }
- v_b(i3, h.d, h.c, h.a, h.b);
- }
- function rgc(a, b, c2) {
- var d, e, f2;
- e = BD(vNb(b, (Nyc(), swc)), 275);
- if (e == (yrc(), wrc)) {
- return;
- }
- Odd(c2, "Horizontal Compaction", 1);
- a.a = b;
- f2 = new Ygc();
- d = new cEb((f2.d = b, f2.c = BD(vNb(f2.d, Swc), 218), Pgc(f2), Wgc(f2), Vgc(f2), f2.a));
- aEb(d, a.b);
- switch (BD(vNb(b, rwc), 422).g) {
- case 1:
- $Db(d, new jfc(a.a));
- break;
- default:
- $Db(d, (ODb(), MDb));
- }
- switch (e.g) {
- case 1:
- TDb(d);
- break;
- case 2:
- TDb(SDb(d, (ead(), bad)));
- break;
- case 3:
- TDb(_Db(SDb(TDb(d), (ead(), bad)), new Bgc()));
- break;
- case 4:
- TDb(_Db(SDb(TDb(d), (ead(), bad)), new Dgc(f2)));
- break;
- case 5:
- TDb(ZDb(d, pgc));
- }
- SDb(d, (ead(), aad));
- d.e = true;
- Mgc(f2);
- Qdd(c2);
- }
- function mYc(a, b, c2, d, e, f2, g, h) {
- var i3, j, k, l;
- i3 = Ou(OC(GC(z_, 1), Uhe, 220, 0, [b, c2, d, e]));
- l = null;
- switch (a.b.g) {
- case 1:
- l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new uYc(), new oYc(), new qYc()]));
- break;
- case 0:
- l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new qYc(), new oYc(), new uYc()]));
- break;
- case 2:
- l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new oYc(), new uYc(), new qYc()]));
- }
- for (k = new olb(l); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 526);
- i3.c.length > 1 && (i3 = j.mg(i3, a.a, h));
- }
- if (i3.c.length == 1) {
- return BD(Ikb(i3, i3.c.length - 1), 220);
- }
- if (i3.c.length == 2) {
- return lYc((tCb(0, i3.c.length), BD(i3.c[0], 220)), (tCb(1, i3.c.length), BD(i3.c[1], 220)), g, f2);
- }
- return null;
- }
- function JNb(a) {
- var b, c2, d, e, f2, g;
- Hkb(a.a, new PNb());
- for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 221);
- d = c7c(R6c(BD(a.b, 65).c), BD(b.b, 65).c);
- if (FNb) {
- g = BD(a.b, 65).b;
- f2 = BD(b.b, 65).b;
- if ($wnd.Math.abs(d.a) >= $wnd.Math.abs(d.b)) {
- d.b = 0;
- f2.d + f2.a > g.d && f2.d < g.d + g.a && $6c(d, $wnd.Math.max(g.c - (f2.c + f2.b), f2.c - (g.c + g.b)));
- } else {
- d.a = 0;
- f2.c + f2.b > g.c && f2.c < g.c + g.b && $6c(d, $wnd.Math.max(g.d - (f2.d + f2.a), f2.d - (g.d + g.a)));
- }
- } else {
- $6c(d, _Nb(BD(a.b, 65), BD(b.b, 65)));
- }
- e = $wnd.Math.sqrt(d.a * d.a + d.b * d.b);
- e = LNb(GNb, b, e, d);
- $6c(d, e);
- $Nb(BD(b.b, 65), d);
- Hkb(b.a, new RNb(d));
- BD(GNb.b, 65);
- KNb(GNb, HNb, b);
- }
- }
- function VJc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- a.f = new KFb();
- j = 0;
- e = 0;
- for (g = new olb(a.e.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- for (i3 = new olb(f2.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- h.p = j++;
- for (d = new Sr(ur(U_b(h).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 17);
- c2.p = e++;
- }
- b = bKc(h);
- for (m = new olb(h.j); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 11);
- if (b) {
- o2 = l.a.b;
- if (o2 != $wnd.Math.floor(o2)) {
- k = o2 - Sbb(Cbb($wnd.Math.round(o2)));
- l.a.b -= k;
- }
- }
- n = l.n.b + l.a.b;
- if (n != $wnd.Math.floor(n)) {
- k = n - Sbb(Cbb($wnd.Math.round(n)));
- l.n.b -= k;
- }
- }
- }
- }
- a.g = j;
- a.b = e;
- a.i = KC(xY, Uhe, 401, j, 0, 1);
- a.c = KC(wY, Uhe, 649, e, 0, 1);
- a.d.a.$b();
- }
- function Uxd(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- if (a.ej()) {
- i3 = a.fj();
- if (a.i > 0) {
- b = new _zd(a.i, a.g);
- c2 = a.i;
- f2 = c2 < 100 ? null : new Ixd(c2);
- if (a.ij()) {
- for (d = 0; d < a.i; ++d) {
- g = a.g[d];
- f2 = a.kj(g, f2);
- }
- }
- oud(a);
- e = c2 == 1 ? a.Zi(4, qud(b, 0), null, 0, i3) : a.Zi(6, b, null, -1, i3);
- if (a.bj()) {
- for (d = new $yd(b); d.e != d.i.gc(); ) {
- f2 = a.dj(Zyd(d), f2);
- }
- if (!f2) {
- a.$i(e);
- } else {
- f2.Ei(e);
- f2.Fi();
- }
- } else {
- if (!f2) {
- a.$i(e);
- } else {
- f2.Ei(e);
- f2.Fi();
- }
- }
- } else {
- oud(a);
- a.$i(a.Zi(6, (mmb(), jmb), null, -1, i3));
- }
- } else if (a.bj()) {
- if (a.i > 0) {
- h = a.g;
- j = a.i;
- oud(a);
- f2 = j < 100 ? null : new Ixd(j);
- for (d = 0; d < j; ++d) {
- g = h[d];
- f2 = a.dj(g, f2);
- }
- !!f2 && f2.Fi();
- } else {
- oud(a);
- }
- } else {
- oud(a);
- }
- }
- function ZQc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- TQc(this);
- c2 == (FQc(), DQc) ? Qqb(this.r, a) : Qqb(this.w, a);
- k = Pje;
- j = Qje;
- for (g = b.a.ec().Kc(); g.Ob(); ) {
- e = BD(g.Pb(), 46);
- h = BD(e.a, 455);
- d = BD(e.b, 17);
- i3 = d.c;
- i3 == a && (i3 = d.d);
- h == DQc ? Qqb(this.r, i3) : Qqb(this.w, i3);
- m = (Ucd(), Lcd).Hc(i3.j) ? Edb(ED(vNb(i3, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).b;
- k = $wnd.Math.min(k, m);
- j = $wnd.Math.max(j, m);
- }
- l = (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b;
- XQc(this, l, k, j);
- for (f2 = b.a.ec().Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 46);
- UQc(this, BD(e.b, 17));
- }
- this.o = false;
- }
- function gD(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
- c2 = a.l & 8191;
- d = a.l >> 13 | (a.m & 15) << 9;
- e = a.m >> 4 & 8191;
- f2 = a.m >> 17 | (a.h & 255) << 5;
- g = (a.h & 1048320) >> 8;
- h = b.l & 8191;
- i3 = b.l >> 13 | (b.m & 15) << 9;
- j = b.m >> 4 & 8191;
- k = b.m >> 17 | (b.h & 255) << 5;
- l = (b.h & 1048320) >> 8;
- B = c2 * h;
- C = d * h;
- D3 = e * h;
- F = f2 * h;
- G = g * h;
- if (i3 != 0) {
- C += c2 * i3;
- D3 += d * i3;
- F += e * i3;
- G += f2 * i3;
- }
- if (j != 0) {
- D3 += c2 * j;
- F += d * j;
- G += e * j;
- }
- if (k != 0) {
- F += c2 * k;
- G += d * k;
- }
- l != 0 && (G += c2 * l);
- n = B & Eje;
- o2 = (C & 511) << 13;
- m = n + o2;
- q = B >> 22;
- r = C >> 9;
- s = (D3 & 262143) << 4;
- t4 = (F & 31) << 17;
- p = q + r + s + t4;
- v = D3 >> 18;
- w2 = F >> 5;
- A = (G & 4095) << 8;
- u2 = v + w2 + A;
- p += m >> 22;
- m &= Eje;
- u2 += p >> 22;
- p &= Eje;
- u2 &= Fje;
- return TC(m, p, u2);
- }
- function o7b(a) {
- var b, c2, d, e, f2, g, h;
- h = BD(Ikb(a.j, 0), 11);
- if (h.g.c.length != 0 && h.e.c.length != 0) {
- throw vbb(new Zdb("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));
- }
- if (h.g.c.length != 0) {
- f2 = Pje;
- for (c2 = new olb(h.g); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 17);
- g = b.d.i;
- d = BD(vNb(g, (Nyc(), txc)), 142);
- f2 = $wnd.Math.min(f2, g.n.a - d.b);
- }
- return new cc(Qb(f2));
- }
- if (h.e.c.length != 0) {
- e = Qje;
- for (c2 = new olb(h.e); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 17);
- g = b.c.i;
- d = BD(vNb(g, (Nyc(), txc)), 142);
- e = $wnd.Math.max(e, g.n.a + g.o.a + d.c);
- }
- return new cc(Qb(e));
- }
- return wb(), wb(), vb;
- }
- function ELd(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (a.Fk()) {
- if (a.i > 4) {
- if (a.wj(b)) {
- if (a.rk()) {
- e = BD(b, 49);
- d = e.Ug();
- i3 = d == a.e && (a.Dk() ? e.Og(e.Vg(), a.zk()) == a.Ak() : -1 - e.Vg() == a.aj());
- if (a.Ek() && !i3 && !d && !!e.Zg()) {
- for (f2 = 0; f2 < a.i; ++f2) {
- c2 = a.Gk(BD(a.g[f2], 56));
- if (PD(c2) === PD(b)) {
- return true;
- }
- }
- }
- return i3;
- } else if (a.Dk() && !a.Ck()) {
- g = BD(b, 56).ah(zUd(BD(a.ak(), 18)));
- if (PD(g) === PD(a.e)) {
- return true;
- } else if (g == null || !BD(g, 56).kh()) {
- return false;
- }
- }
- } else {
- return false;
- }
- }
- h = pud(a, b);
- if (a.Ek() && !h) {
- for (f2 = 0; f2 < a.i; ++f2) {
- e = a.Gk(BD(a.g[f2], 56));
- if (PD(e) === PD(b)) {
- return true;
- }
- }
- }
- return h;
- } else {
- return pud(a, b);
- }
- }
- function mHc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- k = new Rkb();
- m = new Tqb();
- g = b.b;
- for (e = 0; e < g.c.length; e++) {
- j = (tCb(e, g.c.length), BD(g.c[e], 29)).a;
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (f2 = 0; f2 < j.c.length; f2++) {
- h = a.a[e][f2];
- h.p = f2;
- h.k == (j0b(), i0b) && (k.c[k.c.length] = h, true);
- Nkb(BD(Ikb(b.b, e), 29).a, f2, h);
- h.j.c = KC(SI, Uhe, 1, 0, 5, 1);
- Gkb(h.j, BD(BD(Ikb(a.b, e), 15).Xb(f2), 14));
- ecd(BD(vNb(h, (Nyc(), Vxc)), 98)) || yNb(h, Vxc, (dcd(), Zbd));
- }
- for (d = new olb(k); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- l = kHc(c2);
- m.a.zc(l, m);
- m.a.zc(c2, m);
- }
- }
- for (i3 = m.a.ec().Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 10);
- mmb();
- Okb(h.j, (Occ(), Icc));
- h.i = true;
- N_b(h);
- }
- }
- function g6b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- k = BD(vNb(a, (wtc(), Hsc)), 61);
- d = BD(Ikb(a.j, 0), 11);
- k == (Ucd(), Acd) ? G0b(d, Rcd) : k == Rcd && G0b(d, Acd);
- if (BD(vNb(b, (Nyc(), Fxc)), 174).Hc((tdd(), sdd))) {
- i3 = Edb(ED(vNb(a, tyc)));
- j = Edb(ED(vNb(a, uyc)));
- g = Edb(ED(vNb(a, ryc)));
- h = BD(vNb(b, Yxc), 21);
- if (h.Hc((rcd(), ncd))) {
- c2 = j;
- l = a.o.a / 2 - d.n.a;
- for (f2 = new olb(d.f); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 70);
- e.n.b = c2;
- e.n.a = l - e.o.a / 2;
- c2 += e.o.b + g;
- }
- } else if (h.Hc(pcd)) {
- for (f2 = new olb(d.f); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 70);
- e.n.a = i3 + a.o.a - d.n.a;
- }
- }
- WGb(new YGb((a$b(), new l$b(b, false, false, new T$b()))), new x$b(null, a, false));
- }
- }
- function Ugc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- if (b.c.length == 0) {
- return;
- }
- mmb();
- Mlb(b.c, b.c.length, null);
- e = new olb(b);
- d = BD(mlb(e), 145);
- while (e.a < e.c.c.length) {
- c2 = BD(mlb(e), 145);
- if (ADb(d.e.c, c2.e.c) && !(DDb(B6c(d.e).b, c2.e.d) || DDb(B6c(c2.e).b, d.e.d))) {
- d = (Gkb(d.k, c2.k), Gkb(d.b, c2.b), Gkb(d.c, c2.c), ye(d.i, c2.i), Gkb(d.d, c2.d), Gkb(d.j, c2.j), f2 = $wnd.Math.min(d.e.c, c2.e.c), g = $wnd.Math.min(d.e.d, c2.e.d), h = $wnd.Math.max(d.e.c + d.e.b, c2.e.c + c2.e.b), i3 = h - f2, j = $wnd.Math.max(d.e.d + d.e.a, c2.e.d + c2.e.a), k = j - g, G6c(d.e, f2, g, i3, k), hEb(d.f, c2.f), !d.a && (d.a = c2.a), Gkb(d.g, c2.g), Ekb(d.g, c2), d);
- } else {
- Xgc(a, d);
- d = c2;
- }
- }
- Xgc(a, d);
- }
- function e_b(a, b, c2, d) {
- var e, f2, g, h, i3, j;
- h = a.j;
- if (h == (Ucd(), Scd) && b != (dcd(), bcd) && b != (dcd(), ccd)) {
- h = W$b(a, c2);
- G0b(a, h);
- !(!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Uxc)) && h != Scd && (a.n.a != 0 || a.n.b != 0) && yNb(a, Uxc, V$b(a, h));
- }
- if (b == (dcd(), _bd)) {
- j = 0;
- switch (h.g) {
- case 1:
- case 3:
- f2 = a.i.o.a;
- f2 > 0 && (j = a.n.a / f2);
- break;
- case 2:
- case 4:
- e = a.i.o.b;
- e > 0 && (j = a.n.b / e);
- }
- yNb(a, (wtc(), htc), j);
- }
- i3 = a.o;
- g = a.a;
- if (d) {
- g.a = d.a;
- g.b = d.b;
- a.d = true;
- } else if (b != bcd && b != ccd && h != Scd) {
- switch (h.g) {
- case 1:
- g.a = i3.a / 2;
- break;
- case 2:
- g.a = i3.a;
- g.b = i3.b / 2;
- break;
- case 3:
- g.a = i3.a / 2;
- g.b = i3.b;
- break;
- case 4:
- g.b = i3.b / 2;
- }
- } else {
- g.a = i3.a / 2;
- g.b = i3.b / 2;
- }
- }
- function vwd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- if (a.ej()) {
- k = a.Vi();
- i3 = a.fj();
- if (k > 0) {
- b = new Aud(a.Gi());
- c2 = k;
- f2 = c2 < 100 ? null : new Ixd(c2);
- Cvd(a, c2, b.g);
- e = c2 == 1 ? a.Zi(4, qud(b, 0), null, 0, i3) : a.Zi(6, b, null, -1, i3);
- if (a.bj()) {
- for (d = new Fyd(b); d.e != d.i.gc(); ) {
- f2 = a.dj(Dyd(d), f2);
- }
- if (!f2) {
- a.$i(e);
- } else {
- f2.Ei(e);
- f2.Fi();
- }
- } else {
- if (!f2) {
- a.$i(e);
- } else {
- f2.Ei(e);
- f2.Fi();
- }
- }
- } else {
- Cvd(a, a.Vi(), a.Wi());
- a.$i(a.Zi(6, (mmb(), jmb), null, -1, i3));
- }
- } else if (a.bj()) {
- k = a.Vi();
- if (k > 0) {
- h = a.Wi();
- j = k;
- Cvd(a, k, h);
- f2 = j < 100 ? null : new Ixd(j);
- for (d = 0; d < j; ++d) {
- g = h[d];
- f2 = a.dj(g, f2);
- }
- !!f2 && f2.Fi();
- } else {
- Cvd(a, a.Vi(), a.Wi());
- }
+ }
+ elements3.push(edge);
+ }
+ }
+ return this.spawn(elements3, true);
+ }, "edgesWithImpl");
+ }
+ function defineParallelEdgesFunction(params) {
+ var defaults4 = {
+ codirected: false
+ };
+ params = extend2({}, defaults4, params);
+ return /* @__PURE__ */ __name(function parallelEdgesImpl(selector) {
+ var elements3 = [];
+ var edges5 = this.edges();
+ var p3 = params;
+ for (var i2 = 0; i2 < edges5.length; i2++) {
+ var edge1 = edges5[i2];
+ var edge1_p = edge1._private;
+ var src1 = edge1_p.source;
+ var srcid1 = src1._private.data.id;
+ var tgtid1 = edge1_p.data.target;
+ var srcEdges1 = src1._private.edges;
+ for (var j2 = 0; j2 < srcEdges1.length; j2++) {
+ var edge2 = srcEdges1[j2];
+ var edge2data = edge2._private.data;
+ var tgtid2 = edge2data.target;
+ var srcid2 = edge2data.source;
+ var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;
+ var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;
+ if (p3.codirected && codirected || !p3.codirected && (codirected || oppdirected)) {
+ elements3.push(edge2);
+ }
+ }
+ }
+ return this.spawn(elements3, true).filter(selector);
+ }, "parallelEdgesImpl");
+ }
+ function generateCubicBezier(mX1, mY1, mX2, mY2) {
+ var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array !== "undefined";
+ if (arguments.length !== 4) {
+ return false;
+ }
+ for (var i2 = 0; i2 < 4; ++i2) {
+ if (typeof arguments[i2] !== "number" || isNaN(arguments[i2]) || !isFinite(arguments[i2])) {
+ return false;
+ }
+ }
+ mX1 = Math.min(mX1, 1);
+ mX2 = Math.min(mX2, 1);
+ mX1 = Math.max(mX1, 0);
+ mX2 = Math.max(mX2, 0);
+ var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
+ function A2(aA1, aA2) {
+ return 1 - 3 * aA2 + 3 * aA1;
+ }
+ __name(A2, "A");
+ function B2(aA1, aA2) {
+ return 3 * aA2 - 6 * aA1;
+ }
+ __name(B2, "B");
+ function C2(aA1) {
+ return 3 * aA1;
+ }
+ __name(C2, "C");
+ function calcBezier(aT, aA1, aA2) {
+ return ((A2(aA1, aA2) * aT + B2(aA1, aA2)) * aT + C2(aA1)) * aT;
+ }
+ __name(calcBezier, "calcBezier");
+ function getSlope(aT, aA1, aA2) {
+ return 3 * A2(aA1, aA2) * aT * aT + 2 * B2(aA1, aA2) * aT + C2(aA1);
+ }
+ __name(getSlope, "getSlope");
+ function newtonRaphsonIterate(aX, aGuessT) {
+ for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {
+ var currentSlope = getSlope(aGuessT, mX1, mX2);
+ if (currentSlope === 0) {
+ return aGuessT;
+ }
+ var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
+ aGuessT -= currentX / currentSlope;
+ }
+ return aGuessT;
+ }
+ __name(newtonRaphsonIterate, "newtonRaphsonIterate");
+ function calcSampleValues() {
+ for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {
+ mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);
+ }
+ }
+ __name(calcSampleValues, "calcSampleValues");
+ function binarySubdivide(aX, aA, aB) {
+ var currentX, currentT, i3 = 0;
+ do {
+ currentT = aA + (aB - aA) / 2;
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
+ if (currentX > 0) {
+ aB = currentT;
+ } else {
+ aA = currentT;
+ }
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i3 < SUBDIVISION_MAX_ITERATIONS);
+ return currentT;
+ }
+ __name(binarySubdivide, "binarySubdivide");
+ function getTForX(aX) {
+ var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1;
+ for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {
+ intervalStart += kSampleStepSize;
+ }
+ --currentSample;
+ var dist3 = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), guessForT = intervalStart + dist3 * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2);
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
+ return newtonRaphsonIterate(aX, guessForT);
+ } else if (initialSlope === 0) {
+ return guessForT;
+ } else {
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);
+ }
+ }
+ __name(getTForX, "getTForX");
+ var _precomputed = false;
+ function precompute() {
+ _precomputed = true;
+ if (mX1 !== mY1 || mX2 !== mY2) {
+ calcSampleValues();
+ }
+ }
+ __name(precompute, "precompute");
+ var f3 = /* @__PURE__ */ __name(function f4(aX) {
+ if (!_precomputed) {
+ precompute();
+ }
+ if (mX1 === mY1 && mX2 === mY2) {
+ return aX;
+ }
+ if (aX === 0) {
+ return 0;
+ }
+ if (aX === 1) {
+ return 1;
+ }
+ return calcBezier(getTForX(aX), mY1, mY2);
+ }, "f");
+ f3.getControlPoints = function() {
+ return [{
+ x: mX1,
+ y: mY1
+ }, {
+ x: mX2,
+ y: mY2
+ }];
+ };
+ var str2 = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")";
+ f3.toString = function() {
+ return str2;
+ };
+ return f3;
+ }
+ function getEasedValue(type3, start3, end2, percent, easingFn) {
+ if (percent === 1) {
+ return end2;
+ }
+ if (start3 === end2) {
+ return end2;
+ }
+ var val = easingFn(start3, end2, percent);
+ if (type3 == null) {
+ return val;
+ }
+ if (type3.roundValue || type3.color) {
+ val = Math.round(val);
+ }
+ if (type3.min !== void 0) {
+ val = Math.max(val, type3.min);
+ }
+ if (type3.max !== void 0) {
+ val = Math.min(val, type3.max);
+ }
+ return val;
+ }
+ function getValue2(prop, spec) {
+ if (prop.pfValue != null || prop.value != null) {
+ if (prop.pfValue != null && (spec == null || spec.type.units !== "%")) {
+ return prop.pfValue;
+ } else {
+ return prop.value;
+ }
+ } else {
+ return prop;
+ }
+ }
+ function ease(startProp, endProp, percent, easingFn, propSpec) {
+ var type3 = propSpec != null ? propSpec.type : null;
+ if (percent < 0) {
+ percent = 0;
+ } else if (percent > 1) {
+ percent = 1;
+ }
+ var start3 = getValue2(startProp, propSpec);
+ var end2 = getValue2(endProp, propSpec);
+ if (number$1(start3) && number$1(end2)) {
+ return getEasedValue(type3, start3, end2, percent, easingFn);
+ } else if (array2(start3) && array2(end2)) {
+ var easedArr = [];
+ for (var i2 = 0; i2 < end2.length; i2++) {
+ var si = start3[i2];
+ var ei = end2[i2];
+ if (si != null && ei != null) {
+ var val = getEasedValue(type3, si, ei, percent, easingFn);
+ easedArr.push(val);
+ } else {
+ easedArr.push(ei);
+ }
+ }
+ return easedArr;
+ }
+ return void 0;
+ }
+ function step$1(self2, ani, now4, isCore) {
+ var isEles = !isCore;
+ var _p = self2._private;
+ var ani_p = ani._private;
+ var pEasing = ani_p.easing;
+ var startTime = ani_p.startTime;
+ var cy = isCore ? self2 : self2.cy();
+ var style3 = cy.style();
+ if (!ani_p.easingImpl) {
+ if (pEasing == null) {
+ ani_p.easingImpl = easings["linear"];
+ } else {
+ var easingVals;
+ if (string(pEasing)) {
+ var easingProp = style3.parse("transition-timing-function", pEasing);
+ easingVals = easingProp.value;
+ } else {
+ easingVals = pEasing;
+ }
+ var name, args;
+ if (string(easingVals)) {
+ name = easingVals;
+ args = [];
+ } else {
+ name = easingVals[1];
+ args = easingVals.slice(2).map(function(n2) {
+ return +n2;
+ });
+ }
+ if (args.length > 0) {
+ if (name === "spring") {
+ args.push(ani_p.duration);
+ }
+ ani_p.easingImpl = easings[name].apply(null, args);
+ } else {
+ ani_p.easingImpl = easings[name];
+ }
+ }
+ }
+ var easing = ani_p.easingImpl;
+ var percent;
+ if (ani_p.duration === 0) {
+ percent = 1;
+ } else {
+ percent = (now4 - startTime) / ani_p.duration;
+ }
+ if (ani_p.applying) {
+ percent = ani_p.progress;
+ }
+ if (percent < 0) {
+ percent = 0;
+ } else if (percent > 1) {
+ percent = 1;
+ }
+ if (ani_p.delay == null) {
+ var startPos = ani_p.startPosition;
+ var endPos = ani_p.position;
+ if (endPos && isEles && !self2.locked()) {
+ var newPos = {};
+ if (valid(startPos.x, endPos.x)) {
+ newPos.x = ease(startPos.x, endPos.x, percent, easing);
+ }
+ if (valid(startPos.y, endPos.y)) {
+ newPos.y = ease(startPos.y, endPos.y, percent, easing);
+ }
+ self2.position(newPos);
+ }
+ var startPan = ani_p.startPan;
+ var endPan = ani_p.pan;
+ var pan2 = _p.pan;
+ var animatingPan = endPan != null && isCore;
+ if (animatingPan) {
+ if (valid(startPan.x, endPan.x)) {
+ pan2.x = ease(startPan.x, endPan.x, percent, easing);
+ }
+ if (valid(startPan.y, endPan.y)) {
+ pan2.y = ease(startPan.y, endPan.y, percent, easing);
+ }
+ self2.emit("pan");
+ }
+ var startZoom = ani_p.startZoom;
+ var endZoom = ani_p.zoom;
+ var animatingZoom = endZoom != null && isCore;
+ if (animatingZoom) {
+ if (valid(startZoom, endZoom)) {
+ _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);
+ }
+ self2.emit("zoom");
+ }
+ if (animatingPan || animatingZoom) {
+ self2.emit("viewport");
+ }
+ var props = ani_p.style;
+ if (props && props.length > 0 && isEles) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var prop = props[i2];
+ var _name = prop.name;
+ var end2 = prop;
+ var start3 = ani_p.startStyle[_name];
+ var propSpec = style3.properties[start3.name];
+ var easedVal = ease(start3, end2, percent, easing, propSpec);
+ style3.overrideBypass(self2, _name, easedVal);
+ }
+ self2.emit("style");
+ }
+ }
+ ani_p.progress = percent;
+ return percent;
+ }
+ function valid(start3, end2) {
+ if (start3 == null || end2 == null) {
+ return false;
+ }
+ if (number$1(start3) && number$1(end2)) {
+ return true;
+ } else if (start3 && end2) {
+ return true;
+ }
+ return false;
+ }
+ function startAnimation(self2, ani, now4, isCore) {
+ var ani_p = ani._private;
+ ani_p.started = true;
+ ani_p.startTime = now4 - ani_p.progress * ani_p.duration;
+ }
+ function stepAll(now4, cy) {
+ var eles = cy._private.aniEles;
+ var doneEles = [];
+ function stepOne(ele2, isCore) {
+ var _p = ele2._private;
+ var current = _p.animation.current;
+ var queue = _p.animation.queue;
+ var ranAnis = false;
+ if (current.length === 0) {
+ var next3 = queue.shift();
+ if (next3) {
+ current.push(next3);
+ }
+ }
+ var callbacks = /* @__PURE__ */ __name(function callbacks2(_callbacks) {
+ for (var j2 = _callbacks.length - 1; j2 >= 0; j2--) {
+ var cb = _callbacks[j2];
+ cb();
+ }
+ _callbacks.splice(0, _callbacks.length);
+ }, "callbacks");
+ for (var i2 = current.length - 1; i2 >= 0; i2--) {
+ var ani = current[i2];
+ var ani_p = ani._private;
+ if (ani_p.stopped) {
+ current.splice(i2, 1);
+ ani_p.hooked = false;
+ ani_p.playing = false;
+ ani_p.started = false;
+ callbacks(ani_p.frames);
+ continue;
+ }
+ if (!ani_p.playing && !ani_p.applying) {
+ continue;
+ }
+ if (ani_p.playing && ani_p.applying) {
+ ani_p.applying = false;
+ }
+ if (!ani_p.started) {
+ startAnimation(ele2, ani, now4);
+ }
+ step$1(ele2, ani, now4, isCore);
+ if (ani_p.applying) {
+ ani_p.applying = false;
+ }
+ callbacks(ani_p.frames);
+ if (ani_p.step != null) {
+ ani_p.step(now4);
+ }
+ if (ani.completed()) {
+ current.splice(i2, 1);
+ ani_p.hooked = false;
+ ani_p.playing = false;
+ ani_p.started = false;
+ callbacks(ani_p.completes);
+ }
+ ranAnis = true;
+ }
+ if (!isCore && current.length === 0 && queue.length === 0) {
+ doneEles.push(ele2);
+ }
+ return ranAnis;
+ }
+ __name(stepOne, "stepOne");
+ var ranEleAni = false;
+ for (var e3 = 0; e3 < eles.length; e3++) {
+ var ele = eles[e3];
+ var handledThisEle = stepOne(ele);
+ ranEleAni = ranEleAni || handledThisEle;
+ }
+ var ranCoreAni = stepOne(cy, true);
+ if (ranEleAni || ranCoreAni) {
+ if (eles.length > 0) {
+ cy.notify("draw", eles);
+ } else {
+ cy.notify("draw");
+ }
+ }
+ eles.unmerge(doneEles);
+ cy.emit("step");
+ }
+ function BreadthFirstLayout(options3) {
+ this.options = extend2({}, defaults$7, deprecatedOptionDefaults, options3);
+ }
+ function CircleLayout(options3) {
+ this.options = extend2({}, defaults$6, options3);
+ }
+ function ConcentricLayout(options3) {
+ this.options = extend2({}, defaults$5, options3);
+ }
+ function CoseLayout(options3) {
+ this.options = extend2({}, defaults$4, options3);
+ this.options.layout = this;
+ var nodes6 = this.options.eles.nodes();
+ var edges5 = this.options.eles.edges();
+ var notEdges = edges5.filter(function(e3) {
+ var sourceId = e3.source().data("id");
+ var targetId = e3.target().data("id");
+ var hasSource = nodes6.some(function(n2) {
+ return n2.data("id") === sourceId;
+ });
+ var hasTarget = nodes6.some(function(n2) {
+ return n2.data("id") === targetId;
+ });
+ return !hasSource || !hasTarget;
+ });
+ this.options.eles = this.options.eles.not(notEdges);
+ }
+ function GridLayout(options3) {
+ this.options = extend2({}, defaults$3, options3);
+ }
+ function NullLayout(options3) {
+ this.options = extend2({}, defaults$2, options3);
+ }
+ function PresetLayout(options3) {
+ this.options = extend2({}, defaults$1, options3);
+ }
+ function RandomLayout(options3) {
+ this.options = extend2({}, defaults3, options3);
+ }
+ function NullRenderer(options3) {
+ this.options = options3;
+ this.notifications = 0;
+ }
+ function drawPreparedRoundCorner(ctx, roundCorner) {
+ if (roundCorner.radius === 0) ctx.lineTo(roundCorner.cx, roundCorner.cy);
+ else ctx.arc(roundCorner.cx, roundCorner.cy, roundCorner.radius, roundCorner.startAngle, roundCorner.endAngle, roundCorner.counterClockwise);
+ }
+ function getRoundCorner(previousPoint, currentPoint, nextPoint, radiusMax) {
+ var isArcRadius = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ if (radiusMax === 0 || currentPoint.radius === 0) return {
+ cx: currentPoint.x,
+ cy: currentPoint.y,
+ radius: 0,
+ startX: currentPoint.x,
+ startY: currentPoint.y,
+ stopX: currentPoint.x,
+ stopY: currentPoint.y,
+ startAngle: void 0,
+ endAngle: void 0,
+ counterClockwise: void 0
+ };
+ calcCornerArc(previousPoint, currentPoint, nextPoint, radiusMax, isArcRadius);
+ return {
+ cx: x3,
+ cy: y3,
+ radius: cRadius,
+ startX,
+ startY,
+ stopX,
+ stopY,
+ startAngle: v1.ang + Math.PI / 2 * radDirection,
+ endAngle: v2.ang - Math.PI / 2 * radDirection,
+ counterClockwise: drawDirection
+ };
+ }
+ function getPts(pts2) {
+ var retPts = [];
+ if (pts2 == null) {
+ return;
+ }
+ for (var i2 = 0; i2 < pts2.length; i2 += 2) {
+ var x5 = pts2[i2];
+ var y5 = pts2[i2 + 1];
+ retPts.push({
+ x: x5,
+ y: y5
+ });
+ }
+ return retPts;
+ }
+ function pushBezierPts(r2, edge, pts2) {
+ var qbezierAt$1 = /* @__PURE__ */ __name(function qbezierAt$12(p1, p22, p32, t4) {
+ return qbezierAt(p1, p22, p32, t4);
+ }, "qbezierAt$1");
+ var _p = edge._private;
+ var bpts = _p.rstyle.bezierPts;
+ for (var i2 = 0; i2 < r2.bezierProjPcts.length; i2++) {
+ var p3 = r2.bezierProjPcts[i2];
+ bpts.push({
+ x: qbezierAt$1(pts2[0], pts2[2], pts2[4], p3),
+ y: qbezierAt$1(pts2[1], pts2[3], pts2[5], p3)
+ });
+ }
+ }
+ function polygon(context, points) {
+ for (var i2 = 0; i2 < points.length; i2++) {
+ var pt = points[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ }
+ function triangleBackcurve(context, points, controlPoint) {
+ var firstPt;
+ for (var i2 = 0; i2 < points.length; i2++) {
+ var pt = points[i2];
+ if (i2 === 0) {
+ firstPt = pt;
+ }
+ context.lineTo(pt.x, pt.y);
+ }
+ context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);
+ }
+ function triangleTee(context, trianglePoints, teePoints) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ var triPts = trianglePoints;
+ for (var i2 = 0; i2 < triPts.length; i2++) {
+ var pt = triPts[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ var teePts = teePoints;
+ var firstTeePt = teePoints[0];
+ context.moveTo(firstTeePt.x, firstTeePt.y);
+ for (var i2 = 1; i2 < teePts.length; i2++) {
+ var pt = teePts[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ if (context.closePath) {
+ context.closePath();
+ }
+ }
+ function circleTriangle(context, trianglePoints, rx, ry, r2) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.arc(rx, ry, r2, 0, Math.PI * 2, false);
+ var triPts = trianglePoints;
+ var firstTrPt = triPts[0];
+ context.moveTo(firstTrPt.x, firstTrPt.y);
+ for (var i2 = 0; i2 < triPts.length; i2++) {
+ var pt = triPts[i2];
+ context.lineTo(pt.x, pt.y);
+ }
+ if (context.closePath) {
+ context.closePath();
+ }
+ }
+ function circle5(context, rx, ry, r2) {
+ context.arc(rx, ry, r2, 0, Math.PI * 2, false);
+ }
+ function roundRect(ctx, x5, y5, width3, height2) {
+ var radius2 = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5;
+ var stroke = arguments.length > 6 ? arguments[6] : void 0;
+ ctx.beginPath();
+ ctx.moveTo(x5 + radius2, y5);
+ ctx.lineTo(x5 + width3 - radius2, y5);
+ ctx.quadraticCurveTo(x5 + width3, y5, x5 + width3, y5 + radius2);
+ ctx.lineTo(x5 + width3, y5 + height2 - radius2);
+ ctx.quadraticCurveTo(x5 + width3, y5 + height2, x5 + width3 - radius2, y5 + height2);
+ ctx.lineTo(x5 + radius2, y5 + height2);
+ ctx.quadraticCurveTo(x5, y5 + height2, x5, y5 + height2 - radius2);
+ ctx.lineTo(x5, y5 + radius2);
+ ctx.quadraticCurveTo(x5, y5, x5 + radius2, y5);
+ ctx.closePath();
+ if (stroke) ctx.stroke();
+ else ctx.fill();
+ }
+ function b64ToBlob(b64, mimeType) {
+ var bytes = atob(b64);
+ var buff = new ArrayBuffer(bytes.length);
+ var buffUint8 = new Uint8Array(buff);
+ for (var i2 = 0; i2 < bytes.length; i2++) {
+ buffUint8[i2] = bytes.charCodeAt(i2);
+ }
+ return new Blob([buff], {
+ type: mimeType
+ });
+ }
+ function b64UriToB64(b64uri) {
+ var i2 = b64uri.indexOf(",");
+ return b64uri.substr(i2 + 1);
+ }
+ function output(options3, canvas, mimeType) {
+ var getB64Uri = /* @__PURE__ */ __name(function getB64Uri2() {
+ return canvas.toDataURL(mimeType, options3.quality);
+ }, "getB64Uri");
+ switch (options3.output) {
+ case "blob-promise":
+ return new Promise$1(function(resolve3, reject3) {
+ try {
+ canvas.toBlob(function(blob) {
+ if (blob != null) {
+ resolve3(blob);
} else {
- Cvd(a, a.Vi(), a.Wi());
+ reject3(new Error("`canvas.toBlob()` sent a null value in its callback"));
}
+ }, mimeType, options3.quality);
+ } catch (err) {
+ reject3(err);
+ }
+ });
+ case "blob":
+ return b64ToBlob(b64UriToB64(getB64Uri()), mimeType);
+ case "base64":
+ return b64UriToB64(getB64Uri());
+ case "base64uri":
+ default:
+ return getB64Uri();
+ }
+ }
+ function CanvasRenderer(options3) {
+ var r2 = this;
+ var containerWindow = r2.cy.window();
+ var document2 = containerWindow.document;
+ r2.data = {
+ canvases: new Array(CRp.CANVAS_LAYERS),
+ contexts: new Array(CRp.CANVAS_LAYERS),
+ canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS),
+ bufferCanvases: new Array(CRp.BUFFER_COUNT),
+ bufferContexts: new Array(CRp.CANVAS_LAYERS)
+ };
+ var tapHlOffAttr = "-webkit-tap-highlight-color";
+ var tapHlOffStyle = "rgba(0,0,0,0)";
+ r2.data.canvasContainer = document2.createElement("div");
+ var containerStyle = r2.data.canvasContainer.style;
+ r2.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle;
+ containerStyle.position = "relative";
+ containerStyle.zIndex = "0";
+ containerStyle.overflow = "hidden";
+ var container2 = options3.cy.container();
+ container2.appendChild(r2.data.canvasContainer);
+ container2.style[tapHlOffAttr] = tapHlOffStyle;
+ var styleMap2 = {
+ "-webkit-user-select": "none",
+ "-moz-user-select": "-moz-none",
+ "user-select": "none",
+ "-webkit-tap-highlight-color": "rgba(0,0,0,0)",
+ "outline-style": "none"
+ };
+ if (ms()) {
+ styleMap2["-ms-touch-action"] = "none";
+ styleMap2["touch-action"] = "none";
+ }
+ for (var i2 = 0; i2 < CRp.CANVAS_LAYERS; i2++) {
+ var canvas = r2.data.canvases[i2] = document2.createElement("canvas");
+ r2.data.contexts[i2] = canvas.getContext("2d");
+ Object.keys(styleMap2).forEach(function(k2) {
+ canvas.style[k2] = styleMap2[k2];
+ });
+ canvas.style.position = "absolute";
+ canvas.setAttribute("data-id", "layer" + i2);
+ canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i2);
+ r2.data.canvasContainer.appendChild(canvas);
+ r2.data.canvasNeedsRedraw[i2] = false;
+ }
+ r2.data.topCanvas = r2.data.canvases[0];
+ r2.data.canvases[CRp.NODE].setAttribute("data-id", "layer" + CRp.NODE + "-node");
+ r2.data.canvases[CRp.SELECT_BOX].setAttribute("data-id", "layer" + CRp.SELECT_BOX + "-selectbox");
+ r2.data.canvases[CRp.DRAG].setAttribute("data-id", "layer" + CRp.DRAG + "-drag");
+ for (var i2 = 0; i2 < CRp.BUFFER_COUNT; i2++) {
+ r2.data.bufferCanvases[i2] = document2.createElement("canvas");
+ r2.data.bufferContexts[i2] = r2.data.bufferCanvases[i2].getContext("2d");
+ r2.data.bufferCanvases[i2].style.position = "absolute";
+ r2.data.bufferCanvases[i2].setAttribute("data-id", "buffer" + i2);
+ r2.data.bufferCanvases[i2].style.zIndex = String(-i2 - 1);
+ r2.data.bufferCanvases[i2].style.visibility = "hidden";
+ }
+ r2.pathsEnabled = true;
+ var emptyBb = makeBoundingBox();
+ var getBoxCenter = /* @__PURE__ */ __name(function getBoxCenter2(bb) {
+ return {
+ x: (bb.x1 + bb.x2) / 2,
+ y: (bb.y1 + bb.y2) / 2
+ };
+ }, "getBoxCenter");
+ var getCenterOffset = /* @__PURE__ */ __name(function getCenterOffset2(bb) {
+ return {
+ x: -bb.w / 2,
+ y: -bb.h / 2
+ };
+ }, "getCenterOffset");
+ var backgroundTimestampHasChanged = /* @__PURE__ */ __name(function backgroundTimestampHasChanged2(ele) {
+ var _p = ele[0]._private;
+ var same2 = _p.oldBackgroundTimestamp === _p.backgroundTimestamp;
+ return !same2;
+ }, "backgroundTimestampHasChanged");
+ var getStyleKey = /* @__PURE__ */ __name(function getStyleKey2(ele) {
+ return ele[0]._private.nodeKey;
+ }, "getStyleKey");
+ var getLabelKey = /* @__PURE__ */ __name(function getLabelKey2(ele) {
+ return ele[0]._private.labelStyleKey;
+ }, "getLabelKey");
+ var getSourceLabelKey = /* @__PURE__ */ __name(function getSourceLabelKey2(ele) {
+ return ele[0]._private.sourceLabelStyleKey;
+ }, "getSourceLabelKey");
+ var getTargetLabelKey = /* @__PURE__ */ __name(function getTargetLabelKey2(ele) {
+ return ele[0]._private.targetLabelStyleKey;
+ }, "getTargetLabelKey");
+ var drawElement = /* @__PURE__ */ __name(function drawElement2(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r2.drawElement(context, ele, bb, false, false, useEleOpacity);
+ }, "drawElement");
+ var drawLabel4 = /* @__PURE__ */ __name(function drawLabel5(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r2.drawElementText(context, ele, bb, scaledLabelShown, "main", useEleOpacity);
+ }, "drawLabel");
+ var drawSourceLabel = /* @__PURE__ */ __name(function drawSourceLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r2.drawElementText(context, ele, bb, scaledLabelShown, "source", useEleOpacity);
+ }, "drawSourceLabel");
+ var drawTargetLabel = /* @__PURE__ */ __name(function drawTargetLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
+ return r2.drawElementText(context, ele, bb, scaledLabelShown, "target", useEleOpacity);
+ }, "drawTargetLabel");
+ var getElementBox = /* @__PURE__ */ __name(function getElementBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.bodyBounds;
+ }, "getElementBox");
+ var getLabelBox = /* @__PURE__ */ __name(function getLabelBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.labelBounds.main || emptyBb;
+ }, "getLabelBox");
+ var getSourceLabelBox = /* @__PURE__ */ __name(function getSourceLabelBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.labelBounds.source || emptyBb;
+ }, "getSourceLabelBox");
+ var getTargetLabelBox = /* @__PURE__ */ __name(function getTargetLabelBox2(ele) {
+ ele.boundingBox();
+ return ele[0]._private.labelBounds.target || emptyBb;
+ }, "getTargetLabelBox");
+ var isLabelVisibleAtScale = /* @__PURE__ */ __name(function isLabelVisibleAtScale2(ele, scaledLabelShown) {
+ return scaledLabelShown;
+ }, "isLabelVisibleAtScale");
+ var getElementRotationPoint = /* @__PURE__ */ __name(function getElementRotationPoint2(ele) {
+ return getBoxCenter(getElementBox(ele));
+ }, "getElementRotationPoint");
+ var addTextMargin = /* @__PURE__ */ __name(function addTextMargin2(prefix, pt, ele) {
+ var pre = prefix ? prefix + "-" : "";
+ return {
+ x: pt.x + ele.pstyle(pre + "text-margin-x").pfValue,
+ y: pt.y + ele.pstyle(pre + "text-margin-y").pfValue
+ };
+ }, "addTextMargin");
+ var getRsPt = /* @__PURE__ */ __name(function getRsPt2(ele, x5, y5) {
+ var rs = ele[0]._private.rscratch;
+ return {
+ x: rs[x5],
+ y: rs[y5]
+ };
+ }, "getRsPt");
+ var getLabelRotationPoint = /* @__PURE__ */ __name(function getLabelRotationPoint2(ele) {
+ return addTextMargin("", getRsPt(ele, "labelX", "labelY"), ele);
+ }, "getLabelRotationPoint");
+ var getSourceLabelRotationPoint = /* @__PURE__ */ __name(function getSourceLabelRotationPoint2(ele) {
+ return addTextMargin("source", getRsPt(ele, "sourceLabelX", "sourceLabelY"), ele);
+ }, "getSourceLabelRotationPoint");
+ var getTargetLabelRotationPoint = /* @__PURE__ */ __name(function getTargetLabelRotationPoint2(ele) {
+ return addTextMargin("target", getRsPt(ele, "targetLabelX", "targetLabelY"), ele);
+ }, "getTargetLabelRotationPoint");
+ var getElementRotationOffset = /* @__PURE__ */ __name(function getElementRotationOffset2(ele) {
+ return getCenterOffset(getElementBox(ele));
+ }, "getElementRotationOffset");
+ var getSourceLabelRotationOffset = /* @__PURE__ */ __name(function getSourceLabelRotationOffset2(ele) {
+ return getCenterOffset(getSourceLabelBox(ele));
+ }, "getSourceLabelRotationOffset");
+ var getTargetLabelRotationOffset = /* @__PURE__ */ __name(function getTargetLabelRotationOffset2(ele) {
+ return getCenterOffset(getTargetLabelBox(ele));
+ }, "getTargetLabelRotationOffset");
+ var getLabelRotationOffset = /* @__PURE__ */ __name(function getLabelRotationOffset2(ele) {
+ var bb = getLabelBox(ele);
+ var p3 = getCenterOffset(getLabelBox(ele));
+ if (ele.isNode()) {
+ switch (ele.pstyle("text-halign").value) {
+ case "left":
+ p3.x = -bb.w;
+ break;
+ case "right":
+ p3.x = 0;
+ break;
+ }
+ switch (ele.pstyle("text-valign").value) {
+ case "top":
+ p3.y = -bb.h;
+ break;
+ case "bottom":
+ p3.y = 0;
+ break;
+ }
+ }
+ return p3;
+ }, "getLabelRotationOffset");
+ var eleTxrCache = r2.data.eleTxrCache = new ElementTextureCache(r2, {
+ getKey: getStyleKey,
+ doesEleInvalidateKey: backgroundTimestampHasChanged,
+ drawElement,
+ getBoundingBox: getElementBox,
+ getRotationPoint: getElementRotationPoint,
+ getRotationOffset: getElementRotationOffset,
+ allowEdgeTxrCaching: false,
+ allowParentTxrCaching: false
+ });
+ var lblTxrCache = r2.data.lblTxrCache = new ElementTextureCache(r2, {
+ getKey: getLabelKey,
+ drawElement: drawLabel4,
+ getBoundingBox: getLabelBox,
+ getRotationPoint: getLabelRotationPoint,
+ getRotationOffset: getLabelRotationOffset,
+ isVisible: isLabelVisibleAtScale
+ });
+ var slbTxrCache = r2.data.slbTxrCache = new ElementTextureCache(r2, {
+ getKey: getSourceLabelKey,
+ drawElement: drawSourceLabel,
+ getBoundingBox: getSourceLabelBox,
+ getRotationPoint: getSourceLabelRotationPoint,
+ getRotationOffset: getSourceLabelRotationOffset,
+ isVisible: isLabelVisibleAtScale
+ });
+ var tlbTxrCache = r2.data.tlbTxrCache = new ElementTextureCache(r2, {
+ getKey: getTargetLabelKey,
+ drawElement: drawTargetLabel,
+ getBoundingBox: getTargetLabelBox,
+ getRotationPoint: getTargetLabelRotationPoint,
+ getRotationOffset: getTargetLabelRotationOffset,
+ isVisible: isLabelVisibleAtScale
+ });
+ var lyrTxrCache = r2.data.lyrTxrCache = new LayeredTextureCache(r2);
+ r2.onUpdateEleCalcs(/* @__PURE__ */ __name(function invalidateTextureCaches(willDraw, eles) {
+ eleTxrCache.invalidateElements(eles);
+ lblTxrCache.invalidateElements(eles);
+ slbTxrCache.invalidateElements(eles);
+ tlbTxrCache.invalidateElements(eles);
+ lyrTxrCache.invalidateElements(eles);
+ for (var _i = 0; _i < eles.length; _i++) {
+ var _p = eles[_i]._private;
+ _p.oldBackgroundTimestamp = _p.backgroundTimestamp;
+ }
+ }, "invalidateTextureCaches"));
+ var refineInLayers = /* @__PURE__ */ __name(function refineInLayers2(reqs) {
+ for (var i3 = 0; i3 < reqs.length; i3++) {
+ lyrTxrCache.enqueueElementRefinement(reqs[i3].ele);
+ }
+ }, "refineInLayers");
+ eleTxrCache.onDequeue(refineInLayers);
+ lblTxrCache.onDequeue(refineInLayers);
+ slbTxrCache.onDequeue(refineInLayers);
+ tlbTxrCache.onDequeue(refineInLayers);
+ }
+ function setExtension(type3, name, registrant) {
+ var ext = registrant;
+ var overrideErr = /* @__PURE__ */ __name(function overrideErr2(field) {
+ warn("Can not register `" + name + "` for `" + type3 + "` since `" + field + "` already exists in the prototype and can not be overridden");
+ }, "overrideErr");
+ if (type3 === "core") {
+ if (Core.prototype[name]) {
+ return overrideErr(name);
+ } else {
+ Core.prototype[name] = registrant;
+ }
+ } else if (type3 === "collection") {
+ if (Collection.prototype[name]) {
+ return overrideErr(name);
+ } else {
+ Collection.prototype[name] = registrant;
+ }
+ } else if (type3 === "layout") {
+ var Layout2 = /* @__PURE__ */ __name(function Layout3(options3) {
+ this.options = options3;
+ registrant.call(this, options3);
+ if (!plainObject(this._private)) {
+ this._private = {};
+ }
+ this._private.cy = options3.cy;
+ this._private.listeners = [];
+ this.createEmitter();
+ }, "Layout");
+ var layoutProto = Layout2.prototype = Object.create(registrant.prototype);
+ var optLayoutFns = [];
+ for (var i2 = 0; i2 < optLayoutFns.length; i2++) {
+ var fnName = optLayoutFns[i2];
+ layoutProto[fnName] = layoutProto[fnName] || function() {
+ return this;
+ };
+ }
+ if (layoutProto.start && !layoutProto.run) {
+ layoutProto.run = function() {
+ this.start();
+ return this;
+ };
+ } else if (!layoutProto.start && layoutProto.run) {
+ layoutProto.start = function() {
+ this.run();
+ return this;
+ };
+ }
+ var regStop = registrant.prototype.stop;
+ layoutProto.stop = function() {
+ var opts = this.options;
+ if (opts && opts.animate) {
+ var anis = this.animations;
+ if (anis) {
+ for (var _i = 0; _i < anis.length; _i++) {
+ anis[_i].stop();
}
- function LEc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- for (h = new olb(b); h.a < h.c.c.length; ) {
- f2 = BD(mlb(h), 233);
- f2.e = null;
- f2.c = 0;
- }
- i3 = null;
- for (g = new olb(b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 233);
- l = f2.d[0];
- if (c2 && l.k != (j0b(), h0b)) {
- continue;
- }
- for (n = BD(vNb(l, (wtc(), Qsc)), 15).Kc(); n.Ob(); ) {
- m = BD(n.Pb(), 10);
- if (!c2 || m.k == (j0b(), h0b)) {
- (!f2.e && (f2.e = new Rkb()), f2.e).Fc(a.b[m.c.p][m.p]);
- ++a.b[m.c.p][m.p].c;
- }
- }
- if (!c2 && l.k == (j0b(), h0b)) {
- if (i3) {
- for (k = BD(Qc(a.d, i3), 21).Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 10);
- for (e = BD(Qc(a.d, l), 21).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 10);
- YEc(a.b[j.c.p][j.p]).Fc(a.b[d.c.p][d.p]);
- ++a.b[d.c.p][d.p].c;
- }
- }
- }
- i3 = l;
- }
- }
+ }
+ }
+ if (regStop) {
+ regStop.call(this);
+ } else {
+ this.emit("layoutstop");
+ }
+ return this;
+ };
+ if (!layoutProto.destroy) {
+ layoutProto.destroy = function() {
+ return this;
+ };
+ }
+ layoutProto.cy = function() {
+ return this._private.cy;
+ };
+ var getCy = /* @__PURE__ */ __name(function getCy2(layout6) {
+ return layout6._private.cy;
+ }, "getCy");
+ var emitterOpts = {
+ addEventFields: /* @__PURE__ */ __name(function addEventFields4(layout6, evt) {
+ evt.layout = layout6;
+ evt.cy = getCy(layout6);
+ evt.target = layout6;
+ }, "addEventFields"),
+ bubble: /* @__PURE__ */ __name(function bubble3() {
+ return true;
+ }, "bubble"),
+ parent: /* @__PURE__ */ __name(function parent4(layout6) {
+ return getCy(layout6);
+ }, "parent")
+ };
+ extend2(layoutProto, {
+ createEmitter: /* @__PURE__ */ __name(function createEmitter3() {
+ this._private.emitter = new Emitter2(emitterOpts, this);
+ return this;
+ }, "createEmitter"),
+ emitter: /* @__PURE__ */ __name(function emitter3() {
+ return this._private.emitter;
+ }, "emitter"),
+ on: /* @__PURE__ */ __name(function on3(evt, cb) {
+ this.emitter().on(evt, cb);
+ return this;
+ }, "on"),
+ one: /* @__PURE__ */ __name(function one4(evt, cb) {
+ this.emitter().one(evt, cb);
+ return this;
+ }, "one"),
+ once: /* @__PURE__ */ __name(function once3(evt, cb) {
+ this.emitter().one(evt, cb);
+ return this;
+ }, "once"),
+ removeListener: /* @__PURE__ */ __name(function removeListener3(evt, cb) {
+ this.emitter().removeListener(evt, cb);
+ return this;
+ }, "removeListener"),
+ removeAllListeners: /* @__PURE__ */ __name(function removeAllListeners3() {
+ this.emitter().removeAllListeners();
+ return this;
+ }, "removeAllListeners"),
+ emit: /* @__PURE__ */ __name(function emit3(evt, params) {
+ this.emitter().emit(evt, params);
+ return this;
+ }, "emit")
+ });
+ define2.eventAliasesOn(layoutProto);
+ ext = Layout2;
+ } else if (type3 === "renderer" && name !== "null" && name !== "base") {
+ var BaseRenderer3 = getExtension("renderer", "base");
+ var bProto = BaseRenderer3.prototype;
+ var RegistrantRenderer = registrant;
+ var rProto = registrant.prototype;
+ var Renderer = /* @__PURE__ */ __name(function Renderer2() {
+ BaseRenderer3.apply(this, arguments);
+ RegistrantRenderer.apply(this, arguments);
+ }, "Renderer");
+ var proto = Renderer.prototype;
+ for (var pName in bProto) {
+ var pVal = bProto[pName];
+ var existsInR = rProto[pName] != null;
+ if (existsInR) {
+ return overrideErr(pName);
+ }
+ proto[pName] = pVal;
+ }
+ for (var _pName in rProto) {
+ proto[_pName] = rProto[_pName];
+ }
+ bProto.clientFunctions.forEach(function(name2) {
+ proto[name2] = proto[name2] || function() {
+ error("Renderer does not implement `renderer." + name2 + "()` on its prototype");
+ };
+ });
+ ext = Renderer;
+ } else if (type3 === "__proto__" || type3 === "constructor" || type3 === "prototype") {
+ return error(type3 + " is an illegal type to be registered, possibly lead to prototype pollutions");
+ }
+ return setMap({
+ map: extensions,
+ keys: [type3, name],
+ value: ext
+ });
+ }
+ function getExtension(type3, name) {
+ return getMap({
+ map: extensions,
+ keys: [type3, name]
+ });
+ }
+ function setModule(type3, name, moduleType, moduleName, registrant) {
+ return setMap({
+ map: modules,
+ keys: [type3, name, moduleType, moduleName],
+ value: registrant
+ });
+ }
+ function getModule(type3, name, moduleType, moduleName) {
+ return getMap({
+ map: modules,
+ keys: [type3, name, moduleType, moduleName]
+ });
+ }
+ var _window, navigator2, typeofstr, typeofobj, typeoffn, typeofhtmlele, instanceStr, string, fn$6, array2, plainObject, object, number$1, integer2, htmlElement, elementOrCollection, element, collection, core, stylesheet, event, emptyString, domElement, boundingBox, promise, ms, memoize$1, camel2dash, dash2camel, prependCamel, capitalize, number6, rgba3, rgbaNoBackRefs, hsla2, hslaNoBackRefs, hex3, hex6, ascending3, descending2, extend2, hex2tuple, hsl2tuple, rgb2tuple, colorname2tuple, color2tuple, colors, setMap, getMap, isObject_1, commonjsGlobal, freeGlobal2, _freeGlobal, freeSelf2, root3, _root, now3, now_1, reWhitespace2, _trimmedEndIndex, reTrimStart2, _baseTrim, Symbol$1, _Symbol, objectProto$5, hasOwnProperty$4, nativeObjectToString$1, symToStringTag$1, _getRawTag, objectProto$4, nativeObjectToString3, _objectToString, nullTag2, undefinedTag2, symToStringTag3, _baseGetTag, isObjectLike_1, symbolTag5, isSymbol_1, NAN2, reIsBadHex2, reIsBinary2, reIsOctal2, freeParseInt2, toNumber_1, FUNC_ERROR_TEXT$1, nativeMax6, nativeMin, debounce_1, performance2, pnow, raf, requestAnimationFrame2, performanceNow, DEFAULT_HASH_SEED, K3, DEFAULT_HASH_SEED_ALT, hashIterableInts, hashInt, hashIntAlt, combineHashes, combineHashesArray, hashArrays, hashIntsArray, hashString, hashStrings, hashStringsArray, warningsEnabled, warnSupported, traceSupported, MAX_INT$1, trueify, falsify, zeroify, noop$1, error, warnings, warn, clone3, copy4, copyArray$1, uuid, _staticEmptyObject, staticEmptyObject, defaults$g, removeFromArray, clearArray, push, getPrefixedProperty, setPrefixedProperty, ObjectMap, Map$2, undef, ObjectSet, Set$1, Element, defineSearch, elesfn$v, heap$1, heap, dijkstraDefaults, elesfn$u, elesfn$t, aStarDefaults, elesfn$s, floydWarshallDefaults, elesfn$r, bellmanFordDefaults, elesfn$q, sqrt2, collapse, contractUntil, elesfn$p, copyPosition, modelToRenderedPosition, renderedToModelPosition, array2point, min5, max5, mean, median, deg2rad, getAngleFromDisp, log22, signum, dist, sqdist, inPlaceSumNormalize, qbezierAt, qbezierPtAt, lineAt, bound, makeBoundingBox, copyBoundingBox, clearBoundingBox, shiftBoundingBox, updateBoundingBox, expandBoundingBoxByPoint, expandBoundingBox, expandBoundingBoxSides, assignBoundingBox, boundingBoxesIntersect, inBoundingBox, pointInBoundingBox, boundingBoxInBoundingBox, roundRectangleIntersectLine, inLineVicinity, inBezierVicinity, solveQuadratic, solveCubic, sqdistToQuadraticBezier, sqdistToFiniteLine, pointInsidePolygonPoints, pointInsidePolygon, pointInsideRoundPolygon, joinLines, expandPolygon, intersectLineEllipse, checkInEllipse, intersectLineCircle, midOfThree, finiteLinesIntersect, polygonIntersectLine, roundPolygonIntersectLine, shortenIntersection, generateUnitNgonPointsFitToSquare, fitPolygonToSquare, generateUnitNgonPoints, getRoundRectangleRadius, getRoundPolygonRadius, getCutRectangleCornerLength, bezierPtsToQuadCoeff, getBarrelCurveConstants, pageRankDefaults, elesfn$o, defaults$f, elesfn$n, defaults$e, elesfn$m, defaults$d, elesfn$l, defaults$c, setOptions$3, getSimilarity$1, addLoops, normalize2, mmult, expand, inflate, hasConverged, assign$2, isDuplicate, removeDuplicates, markovClustering, markovClustering$1, identity5, absDiff, addAbsDiff, addSquaredDiff, sqrt3, maxAbsDiff, getDistance, distances, defaults$b, setOptions$2, getDist, randomCentroids, classify, buildCluster, haveValuesConverged, haveMatricesConverged, seenBefore, randomMedoids, findCost, kMeans, kMedoids, updateCentroids, updateMembership, assign$1, fuzzyCMeans, kClustering, defaults$a, linkageAliases, setOptions$1, mergeClosest, getAllChildren, buildDendrogram, buildClustersFromTree, hierarchicalClustering, hierarchicalClustering$1, defaults$9, setOptions6, getSimilarity2, getPreference, findExemplars, assignClusters, assign4, affinityPropagation, affinityPropagation$1, hierholzerDefaults, elesfn$k, hopcroftTarjanBiconnected, hopcroftTarjanBiconnected$1, tarjanStronglyConnected, tarjanStronglyConnected$1, elesfn$j, STATE_PENDING, STATE_FULFILLED, STATE_REJECTED, api, deliver, execute, execute_handlers, resolver, resolve, Promise$1, Animation, anifn, define$3, isArray2, isArray_1, reIsDeepProp2, reIsPlainProp2, _isKey, asyncTag2, funcTag4, genTag3, proxyTag2, isFunction_1, coreJsData2, _coreJsData, maskSrcKey2, _isMasked, funcProto$1, funcToString$1, _toSource, reRegExpChar2, reIsHostCtor2, funcProto4, objectProto$3, funcToString4, hasOwnProperty$3, reIsNative2, _baseIsNative, _getValue, _getNative, nativeCreate2, _nativeCreate, _hashClear, _hashDelete, HASH_UNDEFINED$1, objectProto$2, hasOwnProperty$2, _hashGet, objectProto$1, hasOwnProperty$1, _hashHas, HASH_UNDEFINED4, _hashSet, _Hash, _listCacheClear, eq_1, _assocIndexOf, arrayProto2, splice2, _listCacheDelete, _listCacheGet, _listCacheHas, _listCacheSet, _ListCache, Map$1, _Map, _mapCacheClear, _isKeyable, _getMapData, _mapCacheDelete, _mapCacheGet, _mapCacheHas, _mapCacheSet, _MapCache, FUNC_ERROR_TEXT3, memoize_1, MAX_MEMOIZE_SIZE2, _memoizeCapped, rePropName2, reEscapeChar2, stringToPath2, _stringToPath, _arrayMap, INFINITY$1, symbolProto4, symbolToString2, _baseToString, toString_1, _castPath, INFINITY5, _toKey, _baseGet, get_1, defineProperty2, _defineProperty, _baseAssignValue, objectProto22, hasOwnProperty19, _assignValue, MAX_SAFE_INTEGER3, reIsUint2, _isIndex, _baseSet, set_1, _copyArray, toPath_1, define$2, define$1, define2, elesfn$i, elesfn$h, tokens, newQuery, Type3, stateSelectors, lookup, stateSelectorMatches, stateSelectorRegex, cleanMetaChars, replaceLastQuery, exprs, consumeExpr, consumeWhitespace, parse3, toString3, parse$1, valCmp, boolCmp, existCmp, data$1, meta, match, matches$1, filter3, matches31, matching, Selector, selfn, elesfn$g, cache, elesfn$f, fn$5, elesfn$e, data3, elesfn$d, fn$4, elesfn$c, beforePositionSet, positionDef, position2, fn$3, elesfn$b, noninf, updateBounds, updateBoundsFromBox, prefixedProperty, updateBoundsFromArrow, updateBoundsFromLabel, updateBoundsFromOutline, boundingBoxImpl, getKey, getBoundingBoxPosKey, cachedBoundingBoxImpl, defBbOpts, defBbOptsKey, filledBbOpts, bounds3, fn$2, elesfn$a, defineDimFns, widthHeight, ifEdge, ifEdgeRenderedPosition, ifEdgeRenderedPositions, controlPoints2, segmentPoints, sourceEndpoint, targetEndpoint, midpoint, pts, renderedName, edgePoints, dimensions, Event, eventRegex, universalNamespace, defaults$8, defaultsKeys, emptyOpts, p2, forEachEvent, makeEventObj, forEachEventObj, emitterOptions$1, argSelector$1, elesfn$9, elesfn$8, fn$1, elesfn$7, zIndexSort, elesfn$6, defineSymbolIterator, getLayoutDimensionOptions, elesfn$5, elesfn$4, eleTakesUpSpace, eleInteractive, parentInteractive, eleVisible, edgeVisibleViaNode, elesfn$3, elesfn$2, defineDagExtremity, defineDagOneHop, defineDagAllHops, Collection, elesfn$1, corefn$9, generateSpringRK4, cubicBezier, easings, corefn$8, emitterOptions, argSelector2, elesfn, corefn$7, corefn$6, corefn$5, rendererDefaults, corefn$4, corefn$3, styfn$8, TRUE, FALSE, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1, Style2, styfn, corefn$2, defaultSelectionType, corefn$1, fn2, Core, corefn, defaults$7, deprecatedOptionDefaults, getInfo, setInfo, defaults$6, defaults$5, DEBUG, defaults$4, createLayoutInfo, findLCA, findLCA_aux, printLayoutInfo, randomizePositions, getScaleInBoundsFn, refreshPositions, step, calculateNodeForces, randomDistance, nodeRepulsion2, nodesOverlap, findClippingPoint, calculateEdgeForces, calculateGravityForces, propagateForces, updatePositions, limitForce, updateAncestryBoundaries, separateComponents, defaults$3, defaults$2, defaults$1, defaults3, layout4, noop4, throwImgErr, BRp$f, BRp$e, BRp$d, x3, y3, v1, v2, sinA, sinA90, radDirection, drawDirection, angle, halfAngle, cRadius, lenOut, radius, limit, startX, startY, stopX, stopY, lastPoint, asVec, invertVec, calcCornerArc, BRp$c, BRp$b, BRp$a, BRp$9, lineAngleFromDelta, lineAngle, bezierAngle, BRp$8, TOO_SMALL_CUT_RECT, warnedCutRect, BRp$7, BRp$6, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1, beforeRenderCallbacks, BaseRenderer, BR, BRp, fullFpsTime, defs, ElementTextureCacheLookup, minTxrH, txrStepH, minLvl$1, maxLvl$1, maxZoom$1, eleTxrSpacing, defTxrWidth, maxTxrW, maxTxrH, minUtility, maxFullness, maxFullnessChecks, deqCost$1, deqAvgCost$1, deqNoDrawCost$1, deqFastCost$1, deqRedrawThreshold$1, maxDeqSize$1, getTxrReasons, initDefaults, ElementTextureCache, ETCp, defNumLayers, minLvl, maxLvl, maxZoom2, deqRedrawThreshold, refineEleDebounceTime, deqCost, deqAvgCost, deqNoDrawCost, deqFastCost, maxDeqSize, invalidThreshold, maxLayerArea, useHighQualityEleTxrReqs, LayeredTextureCache, LTCp, layerIdPool, MAX_INT, CRp$a, impl, CRp$9, getZeroRotation, getLabelRotation, getSourceLabelRotation, getTargetLabelRotation, getOpacity, getTextOpacity, CRp$8, drawEdgeOverlayUnderlay, CRp$7, CRp$6, CRp$5, drawNodeOverlayUnderlay, CRp$4, motionBlurDelay, CRp$3, sin0, cos0, sin2, cos2, ellipseStepSize, i2, CRp$2, CRp$1, CR, CRp, pathsImpld, renderer5, incExts, extensions, modules, extension3, Stylesheet, sheetfn, version3, cytoscape2;
+ var init_cytoscape_esm = __esm({
+ "../../node_modules/.pnpm/cytoscape@3.30.1/node_modules/cytoscape/dist/cytoscape.esm.mjs"() {
+ "use strict";
+ __name(_typeof, "_typeof");
+ __name(_classCallCheck, "_classCallCheck");
+ __name(_defineProperties, "_defineProperties");
+ __name(_createClass, "_createClass");
+ __name(_defineProperty$1, "_defineProperty$1");
+ __name(_slicedToArray, "_slicedToArray");
+ __name(_arrayWithHoles, "_arrayWithHoles");
+ __name(_iterableToArrayLimit, "_iterableToArrayLimit");
+ __name(_unsupportedIterableToArray, "_unsupportedIterableToArray");
+ __name(_arrayLikeToArray, "_arrayLikeToArray");
+ __name(_nonIterableRest, "_nonIterableRest");
+ __name(_createForOfIteratorHelper, "_createForOfIteratorHelper");
+ _window = typeof window === "undefined" ? null : window;
+ navigator2 = _window ? _window.navigator : null;
+ _window ? _window.document : null;
+ typeofstr = _typeof("");
+ typeofobj = _typeof({});
+ typeoffn = _typeof(function() {
+ });
+ typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement);
+ instanceStr = /* @__PURE__ */ __name(function instanceStr2(obj) {
+ return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;
+ }, "instanceStr");
+ string = /* @__PURE__ */ __name(function string2(obj) {
+ return obj != null && _typeof(obj) == typeofstr;
+ }, "string");
+ fn$6 = /* @__PURE__ */ __name(function fn(obj) {
+ return obj != null && _typeof(obj) === typeoffn;
+ }, "fn");
+ array2 = /* @__PURE__ */ __name(function array3(obj) {
+ return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);
+ }, "array");
+ plainObject = /* @__PURE__ */ __name(function plainObject2(obj) {
+ return obj != null && _typeof(obj) === typeofobj && !array2(obj) && obj.constructor === Object;
+ }, "plainObject");
+ object = /* @__PURE__ */ __name(function object2(obj) {
+ return obj != null && _typeof(obj) === typeofobj;
+ }, "object");
+ number$1 = /* @__PURE__ */ __name(function number5(obj) {
+ return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);
+ }, "number");
+ integer2 = /* @__PURE__ */ __name(function integer3(obj) {
+ return number$1(obj) && Math.floor(obj) === obj;
+ }, "integer");
+ htmlElement = /* @__PURE__ */ __name(function htmlElement2(obj) {
+ if ("undefined" === typeofhtmlele) {
+ return void 0;
+ } else {
+ return null != obj && obj instanceof HTMLElement;
+ }
+ }, "htmlElement");
+ elementOrCollection = /* @__PURE__ */ __name(function elementOrCollection2(obj) {
+ return element(obj) || collection(obj);
+ }, "elementOrCollection");
+ element = /* @__PURE__ */ __name(function element2(obj) {
+ return instanceStr(obj) === "collection" && obj._private.single;
+ }, "element");
+ collection = /* @__PURE__ */ __name(function collection2(obj) {
+ return instanceStr(obj) === "collection" && !obj._private.single;
+ }, "collection");
+ core = /* @__PURE__ */ __name(function core2(obj) {
+ return instanceStr(obj) === "core";
+ }, "core");
+ stylesheet = /* @__PURE__ */ __name(function stylesheet2(obj) {
+ return instanceStr(obj) === "stylesheet";
+ }, "stylesheet");
+ event = /* @__PURE__ */ __name(function event2(obj) {
+ return instanceStr(obj) === "event";
+ }, "event");
+ 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");
+ domElement = /* @__PURE__ */ __name(function domElement2(obj) {
+ if (typeof HTMLElement === "undefined") {
+ return false;
+ } else {
+ return obj instanceof HTMLElement;
+ }
+ }, "domElement");
+ 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");
+ promise = /* @__PURE__ */ __name(function promise2(obj) {
+ return object(obj) && fn$6(obj.then);
+ }, "promise");
+ ms = /* @__PURE__ */ __name(function ms2() {
+ return navigator2 && navigator2.userAgent.match(/msie|trident|edge/i);
+ }, "ms");
+ memoize$1 = /* @__PURE__ */ __name(function memoize2(fn3, keyFn) {
+ if (!keyFn) {
+ keyFn = /* @__PURE__ */ __name(function keyFn2() {
+ if (arguments.length === 1) {
+ return arguments[0];
+ } else if (arguments.length === 0) {
+ return "undefined";
}
- function OHc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- c2 = 0;
- k = new Rkb();
- for (h = new olb(b); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- AHc(a.b, a.d[g.p]);
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- switch (g.i.k.g) {
- case 0:
- d = BD(vNb(g, (wtc(), gtc)), 10);
- Hkb(d.j, new xIc(k));
- break;
- case 1:
- Ctb(KAb(JAb(new YAb(null, new Kub(g.i.j, 16)), new zIc(g))), new CIc(k));
- break;
- case 3:
- e = BD(vNb(g, (wtc(), $sc)), 11);
- Ekb(k, new vgd(e, meb(g.e.c.length + g.g.c.length)));
- }
- for (j = new olb(k); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 46);
- f2 = aIc(a, BD(i3.a, 11));
- if (f2 > a.d[g.p]) {
- c2 += zHc(a.b, f2) * BD(i3.b, 19).a;
- Wjb(a.a, meb(f2));
- }
- }
- while (!akb(a.a)) {
- xHc(a.b, BD(fkb(a.a), 19).a);
- }
- }
- return c2;
- }
- function eed(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- l = new g7c(BD(hkd(a, (X7c(), R7c)), 8));
- l.a = $wnd.Math.max(l.a - c2.b - c2.c, 0);
- l.b = $wnd.Math.max(l.b - c2.d - c2.a, 0);
- e = ED(hkd(a, L7c));
- (e == null || (uCb(e), e) <= 0) && (e = 1.3);
- h = new Rkb();
- for (o2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); o2.e != o2.i.gc(); ) {
- n = BD(Dyd(o2), 33);
- g = new xed(n);
- h.c[h.c.length] = g;
- }
- m = BD(hkd(a, M7c), 311);
- switch (m.g) {
- case 3:
- q = bed(h, b, l.a, l.b, (j = d, uCb(e), j));
- break;
- case 1:
- q = aed(h, b, l.a, l.b, (k = d, uCb(e), k));
- break;
- default:
- q = ced(h, b, l.a, l.b, (i3 = d, uCb(e), i3));
- }
- f2 = new wed(q);
- p = fed(f2, b, c2, l.a, l.b, d, (uCb(e), e));
- Afd(a, p.a, p.b, false, true);
- }
- function vkc(a, b) {
- var c2, d, e, f2;
- c2 = b.b;
- f2 = new Tkb(c2.j);
- e = 0;
- d = c2.j;
- d.c = KC(SI, Uhe, 1, 0, 5, 1);
- hkc(BD(Si(a.b, (Ucd(), Acd), (Fkc(), Ekc)), 15), c2);
- e = ikc(f2, e, new blc(), d);
- hkc(BD(Si(a.b, Acd, Dkc), 15), c2);
- e = ikc(f2, e, new dlc(), d);
- hkc(BD(Si(a.b, Acd, Ckc), 15), c2);
- hkc(BD(Si(a.b, zcd, Ekc), 15), c2);
- hkc(BD(Si(a.b, zcd, Dkc), 15), c2);
- e = ikc(f2, e, new flc(), d);
- hkc(BD(Si(a.b, zcd, Ckc), 15), c2);
- hkc(BD(Si(a.b, Rcd, Ekc), 15), c2);
- e = ikc(f2, e, new hlc(), d);
- hkc(BD(Si(a.b, Rcd, Dkc), 15), c2);
- e = ikc(f2, e, new jlc(), d);
- hkc(BD(Si(a.b, Rcd, Ckc), 15), c2);
- hkc(BD(Si(a.b, Tcd, Ekc), 15), c2);
- e = ikc(f2, e, new Pkc(), d);
- hkc(BD(Si(a.b, Tcd, Dkc), 15), c2);
- hkc(BD(Si(a.b, Tcd, Ckc), 15), c2);
- }
- function nbc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- Odd(b, "Layer size calculation", 1);
- k = Pje;
- j = Qje;
- e = false;
- for (h = new olb(a.b); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 29);
- i3 = g.c;
- i3.a = 0;
- i3.b = 0;
- if (g.a.c.length == 0) {
- continue;
- }
- e = true;
- for (m = new olb(g.a); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- o2 = l.o;
- n = l.d;
- i3.a = $wnd.Math.max(i3.a, o2.a + n.b + n.c);
- }
- d = BD(Ikb(g.a, 0), 10);
- p = d.n.b - d.d.d;
- d.k == (j0b(), e0b) && (p -= BD(vNb(a, (Nyc(), yyc)), 142).d);
- f2 = BD(Ikb(g.a, g.a.c.length - 1), 10);
- c2 = f2.n.b + f2.o.b + f2.d.a;
- f2.k == e0b && (c2 += BD(vNb(a, (Nyc(), yyc)), 142).a);
- i3.b = c2 - p;
- k = $wnd.Math.min(k, p);
- j = $wnd.Math.max(j, c2);
- }
- if (!e) {
- k = 0;
- j = 0;
- }
- a.f.b = j - k;
- a.c.b -= k;
- Qdd(b);
- }
- function h_b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- f2 = 0;
- g = 0;
- for (j = new olb(a.a); j.a < j.c.c.length; ) {
- h = BD(mlb(j), 10);
- f2 = $wnd.Math.max(f2, h.d.b);
- g = $wnd.Math.max(g, h.d.c);
- }
- for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- c2 = BD(vNb(h, (Nyc(), mwc)), 248);
- switch (c2.g) {
- case 1:
- o2 = 0;
- break;
- case 2:
- o2 = 1;
- break;
- case 5:
- o2 = 0.5;
- break;
- default:
- d = 0;
- l = 0;
- for (n = new olb(h.j); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 11);
- m.e.c.length == 0 || ++d;
- m.g.c.length == 0 || ++l;
- }
- d + l == 0 ? o2 = 0.5 : o2 = l / (d + l);
- }
- q = a.c;
- k = h.o.a;
- r = (q.a - k) * o2;
- o2 > 0.5 ? r -= g * 2 * (o2 - 0.5) : o2 < 0.5 && (r += f2 * 2 * (0.5 - o2));
- e = h.d.b;
- r < e && (r = e);
- p = h.d.c;
- r > q.a - p - k && (r = q.a - p - k);
- h.n.a = b + r;
- }
- }
- function ced(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q;
- h = KC(UD, Vje, 25, a.c.length, 15, 1);
- m = new gub(new Ned());
- _tb(m, a);
- j = 0;
- p = new Rkb();
- while (m.b.c.length != 0) {
- g = BD(m.b.c.length == 0 ? null : Ikb(m.b, 0), 157);
- if (j > 1 && red(g) * qed(g) / 2 > h[0]) {
- f2 = 0;
- while (f2 < p.c.length - 1 && red(g) * qed(g) / 2 > h[f2]) {
- ++f2;
- }
- o2 = new Jib(p, 0, f2 + 1);
- l = new wed(o2);
- k = red(g) / qed(g);
- i3 = fed(l, b, new p0b(), c2, d, e, k);
- P6c(X6c(l.e), i3);
- zCb(cub(m, l));
- n = new Jib(p, f2 + 1, p.c.length);
- _tb(m, n);
- p.c = KC(SI, Uhe, 1, 0, 5, 1);
- j = 0;
- Dlb(h, h.length, 0);
- } else {
- q = m.b.c.length == 0 ? null : Ikb(m.b, 0);
- q != null && fub(m, 0);
- j > 0 && (h[j] = h[j - 1]);
- h[j] += red(g) * qed(g);
- ++j;
- p.c[p.c.length] = g;
- }
- }
- return p;
- }
- function Wac(a) {
- var b, c2, d, e, f2;
- d = BD(vNb(a, (Nyc(), mxc)), 163);
- if (d == (Ctc(), ytc)) {
- for (c2 = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 17);
- if (!Yac(b)) {
- throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."));
- }
- }
- } else if (d == Atc) {
- for (f2 = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- if (!Yac(e)) {
- throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."));
- }
- }
- }
- }
- function C9b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- Odd(b, "Label dummy removal", 1);
- d = Edb(ED(vNb(a, (Nyc(), nyc))));
- e = Edb(ED(vNb(a, ryc)));
- j = BD(vNb(a, Lwc), 103);
- for (i3 = new olb(a.b); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 29);
- l = new Bib(h.a, 0);
- while (l.b < l.d.gc()) {
- k = (sCb(l.b < l.d.gc()), BD(l.d.Xb(l.c = l.b++), 10));
- if (k.k == (j0b(), f0b)) {
- m = BD(vNb(k, (wtc(), $sc)), 17);
- o2 = Edb(ED(vNb(m, Zwc)));
- g = PD(vNb(k, Ssc)) === PD((rbd(), obd));
- c2 = new g7c(k.n);
- g && (c2.b += o2 + d);
- f2 = new f7c(k.o.a, k.o.b - o2 - d);
- n = BD(vNb(k, ktc), 15);
- j == (ead(), dad) || j == _9c ? B9b(n, c2, e, f2, g, j) : A9b(n, c2, e, f2);
- Gkb(m.b, n);
- sbc(k, PD(vNb(a, Swc)) === PD((Aad(), xad)));
- uib(l);
- }
- }
- }
- Qdd(b);
- }
- function tZb(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
- i3 = new Rkb();
- for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- for (h = new olb(e.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- k = null;
- for (t4 = k_b(g.g), u2 = 0, v = t4.length; u2 < v; ++u2) {
- s = t4[u2];
- if (!f_b(s.d.i, c2)) {
- r = oZb(a, b, c2, s, s.c, (KAc(), IAc), k);
- r != k && (i3.c[i3.c.length] = r, true);
- r.c && (k = r);
- }
- }
- j = null;
- for (o2 = k_b(g.e), p = 0, q = o2.length; p < q; ++p) {
- n = o2[p];
- if (!f_b(n.c.i, c2)) {
- r = oZb(a, b, c2, n, n.d, (KAc(), HAc), j);
- r != j && (i3.c[i3.c.length] = r, true);
- r.c && (j = r);
- }
- }
- }
- }
- for (m = new olb(i3); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 441);
- Jkb(b.a, l.a, 0) != -1 || Ekb(b.a, l.a);
- l.c && (d.c[d.c.length] = l, true);
- }
- }
- function jCc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- Odd(c2, "Interactive cycle breaking", 1);
- l = new Rkb();
- for (n = new olb(b.a); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 10);
- m.p = 1;
- o2 = T_b(m).a;
- for (k = W_b(m, (KAc(), IAc)).Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 11);
- for (f2 = new olb(j.g); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 17);
- p = d.d.i;
- if (p != m) {
- q = T_b(p).a;
- q < o2 && (l.c[l.c.length] = d, true);
- }
- }
- }
- }
- for (g = new olb(l); g.a < g.c.c.length; ) {
- d = BD(mlb(g), 17);
- PZb(d, true);
- }
- l.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (i3 = new olb(b.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- h.p > 0 && iCc(a, h, l);
- }
- for (e = new olb(l); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- PZb(d, true);
- }
- l.c = KC(SI, Uhe, 1, 0, 5, 1);
- Qdd(c2);
+ var args = [];
+ for (var i2 = 0; i2 < arguments.length; i2++) {
+ args.push(arguments[i2]);
}
- function _z(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- j = "";
- if (b.length == 0) {
- return a.de(Zie, Xie, -1, -1);
- }
- k = ufb(b);
- dfb(k.substr(0, 3), "at ") && (k = k.substr(3));
- k = k.replace(/\[.*?\]/g, "");
- g = k.indexOf("(");
- if (g == -1) {
- g = k.indexOf("@");
- if (g == -1) {
- j = k;
- k = "";
- } else {
- j = ufb(k.substr(g + 1));
- k = ufb(k.substr(0, g));
- }
- } else {
- c2 = k.indexOf(")", g);
- j = k.substr(g + 1, c2 - (g + 1));
- k = ufb(k.substr(0, g));
- }
- g = hfb(k, wfb(46));
- g != -1 && (k = k.substr(g + 1));
- (k.length == 0 || dfb(k, "Anonymous function")) && (k = Xie);
- h = kfb(j, wfb(58));
- e = lfb(j, wfb(58), h - 1);
- i3 = -1;
- d = -1;
- f2 = Zie;
- if (h != -1 && e != -1) {
- f2 = j.substr(0, e);
- i3 = Vz(j.substr(e + 1, h - (e + 1)));
- d = Vz(j.substr(h + 1));
- }
- return a.de(f2, k, i3, d);
- }
- function UC(a, b, c2) {
- var d, e, f2, g, h, i3;
- if (b.l == 0 && b.m == 0 && b.h == 0) {
- throw vbb(new ocb("divide by zero"));
- }
- if (a.l == 0 && a.m == 0 && a.h == 0) {
- c2 && (QC = TC(0, 0, 0));
- return TC(0, 0, 0);
- }
- if (b.h == Gje && b.m == 0 && b.l == 0) {
- return VC(a, c2);
- }
- i3 = false;
- if (b.h >> 19 != 0) {
- b = hD(b);
- i3 = !i3;
- }
- g = _C(b);
- f2 = false;
- e = false;
- d = false;
- if (a.h == Gje && a.m == 0 && a.l == 0) {
- e = true;
- f2 = true;
- if (g == -1) {
- a = SC((wD(), sD));
- d = true;
- i3 = !i3;
- } else {
- h = lD(a, g);
- i3 && ZC(h);
- c2 && (QC = TC(0, 0, 0));
- return h;
- }
- } else if (a.h >> 19 != 0) {
- f2 = true;
- a = hD(a);
- d = true;
- i3 = !i3;
- }
- if (g != -1) {
- return WC(a, g, i3, f2, c2);
- }
- if (eD(a, b) < 0) {
- c2 && (f2 ? QC = hD(a) : QC = TC(a.l, a.m, a.h));
- return TC(0, 0, 0);
- }
- return XC(d ? a : TC(a.l, a.m, a.h), b, i3, f2, e, c2);
- }
- function F2c(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- if (a.e && a.c.c < a.f) {
- throw vbb(new Zdb("Expected " + a.f + " phases to be configured; only found " + a.c.c));
- }
- k = BD(gdb(a.g), 9);
- n = Pu(a.f);
- for (f2 = k, h = 0, j = f2.length; h < j; ++h) {
- d = f2[h];
- l = BD(B2c(a, d.g), 246);
- l ? Ekb(n, BD(I2c(a, l), 123)) : (n.c[n.c.length] = null, true);
- }
- o2 = new j3c();
- MAb(JAb(NAb(JAb(new YAb(null, new Kub(n, 16)), new O2c()), new Q2c(b)), new S2c()), new U2c(o2));
- d3c(o2, a.a);
- c2 = new Rkb();
- for (e = k, g = 0, i3 = e.length; g < i3; ++g) {
- d = e[g];
- Gkb(c2, J2c(a, Dx(BD(B2c(o2, d.g), 20))));
- m = BD(Ikb(n, d.g), 123);
- !!m && (c2.c[c2.c.length] = m, true);
- }
- Gkb(c2, J2c(a, Dx(BD(B2c(o2, k[k.length - 1].g + 1), 20))));
- return c2;
- }
- function qCc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- Odd(c2, "Model order cycle breaking", 1);
- a.a = 0;
- a.b = 0;
- n = new Rkb();
- k = b.a.c.length;
- for (j = new olb(b.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- wNb(i3, (wtc(), Zsc)) && (k = $wnd.Math.max(k, BD(vNb(i3, Zsc), 19).a + 1));
- }
- for (p = new olb(b.a); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 10);
- g = pCc(a, o2, k);
- for (m = W_b(o2, (KAc(), IAc)).Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 11);
- for (f2 = new olb(l.g); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 17);
- q = d.d.i;
- h = pCc(a, q, k);
- h < g && (n.c[n.c.length] = d, true);
- }
- }
- }
- for (e = new olb(n); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- PZb(d, true);
- yNb(b, (wtc(), Asc), (Bcb(), true));
- }
- n.c = KC(SI, Uhe, 1, 0, 5, 1);
- Qdd(c2);
- }
- function kQc(a, b) {
- var c2, d, e, f2, g, h, i3;
- if (a.g > b.f || b.g > a.f) {
- return;
- }
- c2 = 0;
- d = 0;
- for (g = a.w.a.ec().Kc(); g.Ob(); ) {
- e = BD(g.Pb(), 11);
- aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && ++c2;
- }
- for (h = a.r.a.ec().Kc(); h.Ob(); ) {
- e = BD(h.Pb(), 11);
- aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && --c2;
- }
- for (i3 = b.w.a.ec().Kc(); i3.Ob(); ) {
- e = BD(i3.Pb(), 11);
- aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && ++d;
- }
- for (f2 = b.r.a.ec().Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 11);
- aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && --d;
- }
- if (c2 < d) {
- new BQc(a, b, d - c2);
- } else if (d < c2) {
- new BQc(b, a, c2 - d);
- } else {
- new BQc(b, a, 0);
- new BQc(a, b, 0);
- }
- }
- function JPb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
- j = b.c;
- e = IOb(a.e);
- l = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5);
- c2 = e.a - l.a;
- d = e.b - l.b;
- g = b.a;
- c2 = g.c - c2;
- d = g.d - d;
- for (i3 = new olb(j); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 395);
- m = h.b;
- n = c2 + m.a;
- q = d + m.b;
- o2 = QD(n / a.a);
- r = QD(q / a.b);
- f2 = h.a;
- switch (f2.g) {
- case 0:
- k = (RMb(), OMb);
- break;
- case 1:
- k = (RMb(), NMb);
- break;
- case 2:
- k = (RMb(), PMb);
- break;
- default:
- k = (RMb(), QMb);
- }
- if (f2.a) {
- s = QD((q + h.c) / a.b);
- Ekb(a.f, new uOb(k, meb(r), meb(s)));
- f2 == (ROb(), QOb) ? nNb(a, 0, r, o2, s) : nNb(a, o2, r, a.d - 1, s);
- } else {
- p = QD((n + h.c) / a.a);
- Ekb(a.f, new uOb(k, meb(o2), meb(p)));
- f2 == (ROb(), OOb) ? nNb(a, o2, 0, p, r) : nNb(a, o2, r, p, a.c - 1);
- }
- }
- }
- function coc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- m = new Rkb();
- e = new Rkb();
- p = null;
- for (h = b.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 19);
- f2 = new qoc(g.a);
- e.c[e.c.length] = f2;
- if (p) {
- f2.d = p;
- p.e = f2;
- }
- p = f2;
- }
- t4 = boc(a);
- for (k = 0; k < e.c.length; ++k) {
- n = null;
- q = poc((tCb(0, e.c.length), BD(e.c[0], 652)));
- c2 = null;
- d = Pje;
- for (l = 1; l < a.b.c.length; ++l) {
- r = q ? $wnd.Math.abs(q.b - l) : $wnd.Math.abs(l - n.b) + 1;
- o2 = n ? $wnd.Math.abs(l - n.b) : r + 1;
- if (o2 < r) {
- j = n;
- i3 = o2;
- } else {
- j = q;
- i3 = r;
- }
- s = (u2 = Edb(ED(vNb(a, (Nyc(), Hyc)))), t4[l] + $wnd.Math.pow(i3, u2));
- if (s < d) {
- d = s;
- c2 = j;
- c2.c = l;
- }
- if (!!q && l == q.b) {
- n = q;
- q = koc(q);
- }
- }
- if (c2) {
- Ekb(m, meb(c2.c));
- c2.a = true;
- loc(c2);
- }
- }
- mmb();
- Mlb(m.c, m.c.length, null);
- return m;
- }
- function qNd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- b = new zNd();
- c2 = new zNd();
- j = dfb(Qve, (e = Dmd(a.b, Rve), !e ? null : GD(AAd((!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b), Sve))));
- for (i3 = 0; i3 < a.i; ++i3) {
- h = BD(a.g[i3], 170);
- if (JD(h, 99)) {
- g = BD(h, 18);
- (g.Bb & ote) != 0 ? ((g.Bb & oie) == 0 || !j && (f2 = Dmd(g, Rve), (!f2 ? null : GD(AAd((!f2.b && (f2.b = new sId((jGd(), fGd), x6, f2)), f2.b), eue))) == null)) && wtd(b, g) : (k = zUd(g), !!k && (k.Bb & ote) != 0 || ((g.Bb & oie) == 0 || !j && (d = Dmd(g, Rve), (!d ? null : GD(AAd((!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b), eue))) == null)) && wtd(c2, g));
- } else {
- Q6d();
- if (BD(h, 66).Oj()) {
- if (!h.Jj()) {
- wtd(b, h);
- wtd(c2, h);
- }
- }
- }
- }
- vud(b);
- vud(c2);
- a.a = BD(b.g, 247);
- BD(c2.g, 247);
- }
- function LTb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, p, q, r;
- j = ITb(b);
- q = BD(vNb(b, (Nyc(), Iwc)), 314);
- q != (Rpc(), Ppc) && reb(j, new STb());
- r = BD(vNb(b, Cwc), 292);
- reb(j, new UTb(r));
- p = 0;
- k = new Rkb();
- for (f2 = new xkb(j); f2.a != f2.b; ) {
- e = BD(vkb(f2), 37);
- aUb(a.c, e);
- m = BD(vNb(e, (wtc(), itc)), 15);
- p += m.gc();
- d = m.Kc();
- Ekb(k, new vgd(e, d));
- }
- Odd(c2, "Recursive hierarchical layout", p);
- n = BD(BD(Ikb(k, k.c.length - 1), 46).b, 47);
- while (n.Ob()) {
- for (i3 = new olb(k); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 46);
- m = BD(h.b, 47);
- g = BD(h.a, 37);
- while (m.Ob()) {
- l = BD(m.Pb(), 51);
- if (JD(l, 507)) {
- if (!g.e) {
- l.pf(g, Udd(c2, 1));
- break;
- } else {
- break;
- }
- } else {
- l.pf(g, Udd(c2, 1));
- }
- }
- }
- }
- Qdd(c2);
+ return args.join("$");
+ }, "keyFn");
+ }
+ var memoizedFn = /* @__PURE__ */ __name(function memoizedFn2() {
+ var self2 = this;
+ var args = arguments;
+ var ret;
+ var k2 = keyFn.apply(self2, args);
+ var cache3 = memoizedFn2.cache;
+ if (!(ret = cache3[k2])) {
+ ret = cache3[k2] = fn3.apply(self2, args);
+ }
+ return ret;
+ }, "memoizedFn");
+ memoizedFn.cache = {};
+ return memoizedFn;
+ }, "memoize");
+ camel2dash = memoize$1(function(str2) {
+ return str2.replace(/([A-Z])/g, function(v3) {
+ return "-" + v3.toLowerCase();
+ });
+ });
+ dash2camel = memoize$1(function(str2) {
+ return str2.replace(/(-\w)/g, function(v3) {
+ return v3[1].toUpperCase();
+ });
+ });
+ prependCamel = memoize$1(function(prefix, str2) {
+ return prefix + str2[0].toUpperCase() + str2.substring(1);
+ }, function(prefix, str2) {
+ return prefix + "$" + str2;
+ });
+ capitalize = /* @__PURE__ */ __name(function capitalize2(str2) {
+ if (emptyString(str2)) {
+ return str2;
+ }
+ return str2.charAt(0).toUpperCase() + str2.substring(1);
+ }, "capitalize");
+ number6 = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))";
+ rgba3 = "rgb[a]?\\((" + number6 + "[%]?)\\s*,\\s*(" + number6 + "[%]?)\\s*,\\s*(" + number6 + "[%]?)(?:\\s*,\\s*(" + number6 + "))?\\)";
+ rgbaNoBackRefs = "rgb[a]?\\((?:" + number6 + "[%]?)\\s*,\\s*(?:" + number6 + "[%]?)\\s*,\\s*(?:" + number6 + "[%]?)(?:\\s*,\\s*(?:" + number6 + "))?\\)";
+ hsla2 = "hsl[a]?\\((" + number6 + ")\\s*,\\s*(" + number6 + "[%])\\s*,\\s*(" + number6 + "[%])(?:\\s*,\\s*(" + number6 + "))?\\)";
+ hslaNoBackRefs = "hsl[a]?\\((?:" + number6 + ")\\s*,\\s*(?:" + number6 + "[%])\\s*,\\s*(?:" + number6 + "[%])(?:\\s*,\\s*(?:" + number6 + "))?\\)";
+ hex3 = "\\#[0-9a-fA-F]{3}";
+ hex6 = "\\#[0-9a-fA-F]{6}";
+ ascending3 = /* @__PURE__ */ __name(function ascending4(a2, b2) {
+ if (a2 < b2) {
+ return -1;
+ } else if (a2 > b2) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }, "ascending");
+ descending2 = /* @__PURE__ */ __name(function descending3(a2, b2) {
+ return -1 * ascending3(a2, b2);
+ }, "descending");
+ extend2 = Object.assign != null ? Object.assign.bind(Object) : function(tgt) {
+ var args = arguments;
+ for (var i2 = 1; i2 < args.length; i2++) {
+ var obj = args[i2];
+ if (obj == null) {
+ continue;
+ }
+ var keys3 = Object.keys(obj);
+ for (var j2 = 0; j2 < keys3.length; j2++) {
+ var k2 = keys3[j2];
+ tgt[k2] = obj[k2];
+ }
+ }
+ return tgt;
+ };
+ hex2tuple = /* @__PURE__ */ __name(function hex2tuple2(hex2) {
+ if (!(hex2.length === 4 || hex2.length === 7) || hex2[0] !== "#") {
+ return;
+ }
+ var shortHex = hex2.length === 4;
+ var r2, g2, b2;
+ var base = 16;
+ if (shortHex) {
+ r2 = parseInt(hex2[1] + hex2[1], base);
+ g2 = parseInt(hex2[2] + hex2[2], base);
+ b2 = parseInt(hex2[3] + hex2[3], base);
+ } else {
+ r2 = parseInt(hex2[1] + hex2[2], base);
+ g2 = parseInt(hex2[3] + hex2[4], base);
+ b2 = parseInt(hex2[5] + hex2[6], base);
+ }
+ return [r2, g2, b2];
+ }, "hex2tuple");
+ hsl2tuple = /* @__PURE__ */ __name(function hsl2tuple2(hsl2) {
+ var ret;
+ var h2, s2, l2, a2, r2, g2, b2;
+ function hue2rgb(p4, q3, t4) {
+ if (t4 < 0) t4 += 1;
+ if (t4 > 1) t4 -= 1;
+ if (t4 < 1 / 6) return p4 + (q3 - p4) * 6 * t4;
+ if (t4 < 1 / 2) return q3;
+ if (t4 < 2 / 3) return p4 + (q3 - p4) * (2 / 3 - t4) * 6;
+ return p4;
+ }
+ __name(hue2rgb, "hue2rgb");
+ var m2 = new RegExp("^" + hsla2 + "$").exec(hsl2);
+ if (m2) {
+ h2 = parseInt(m2[1]);
+ if (h2 < 0) {
+ h2 = (360 - -1 * h2 % 360) % 360;
+ } else if (h2 > 360) {
+ h2 = h2 % 360;
+ }
+ h2 /= 360;
+ s2 = parseFloat(m2[2]);
+ if (s2 < 0 || s2 > 100) {
+ return;
+ }
+ s2 = s2 / 100;
+ l2 = parseFloat(m2[3]);
+ if (l2 < 0 || l2 > 100) {
+ return;
+ }
+ l2 = l2 / 100;
+ a2 = m2[4];
+ if (a2 !== void 0) {
+ a2 = parseFloat(a2);
+ if (a2 < 0 || a2 > 1) {
+ return;
}
- function rid(b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- j = c2.length - 1;
- i3 = (BCb(j, c2.length), c2.charCodeAt(j));
- if (i3 == 93) {
- h = hfb(c2, wfb(91));
- if (h >= 0) {
- f2 = wid(b, c2.substr(1, h - 1));
- l = c2.substr(h + 1, j - (h + 1));
- return pid(b, l, f2);
- }
- } else {
- d = -1;
- Vcb == null && (Vcb = new RegExp("\\d"));
- if (Vcb.test(String.fromCharCode(i3))) {
- d = lfb(c2, wfb(46), j - 1);
- if (d >= 0) {
- e = BD(hid(b, Bid(b, c2.substr(1, d - 1)), false), 58);
- k = 0;
- try {
- k = Icb(c2.substr(d + 1), Rie, Ohe);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- g = a;
- throw vbb(new rFd(g));
- } else
- throw vbb(a);
- }
- if (k < e.gc()) {
- m = e.Xb(k);
- JD(m, 72) && (m = BD(m, 72).dd());
- return BD(m, 56);
- }
- }
- }
- if (d < 0) {
- return BD(hid(b, Bid(b, c2.substr(1)), false), 56);
- }
- }
- return null;
+ }
+ if (s2 === 0) {
+ r2 = g2 = b2 = Math.round(l2 * 255);
+ } else {
+ var q2 = l2 < 0.5 ? l2 * (1 + s2) : l2 + s2 - l2 * s2;
+ var p3 = 2 * l2 - q2;
+ r2 = Math.round(255 * hue2rgb(p3, q2, h2 + 1 / 3));
+ g2 = Math.round(255 * hue2rgb(p3, q2, h2));
+ b2 = Math.round(255 * hue2rgb(p3, q2, h2 - 1 / 3));
+ }
+ ret = [r2, g2, b2, a2];
+ }
+ return ret;
+ }, "hsl2tuple");
+ rgb2tuple = /* @__PURE__ */ __name(function rgb2tuple2(rgb2) {
+ var ret;
+ var m2 = new RegExp("^" + rgba3 + "$").exec(rgb2);
+ if (m2) {
+ ret = [];
+ var isPct = [];
+ for (var i2 = 1; i2 <= 3; i2++) {
+ var channel2 = m2[i2];
+ if (channel2[channel2.length - 1] === "%") {
+ isPct[i2] = true;
}
- function e1d(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- if (bLd(b, c2) >= 0) {
- return c2;
- }
- switch ($1d(q1d(a, c2))) {
- case 2: {
- if (dfb("", o1d(a, c2.Hj()).ne())) {
- i3 = b2d(q1d(a, c2));
- h = a2d(q1d(a, c2));
- k = r1d(a, b, i3, h);
- if (k) {
- return k;
- }
- e = f1d(a, b);
- for (g = 0, l = e.gc(); g < l; ++g) {
- k = BD(e.Xb(g), 170);
- if (x1d(c2d(q1d(a, k)), i3)) {
- return k;
- }
- }
- }
- return null;
- }
- case 4: {
- if (dfb("", o1d(a, c2.Hj()).ne())) {
- for (d = c2; d; d = Z1d(q1d(a, d))) {
- j = b2d(q1d(a, d));
- h = a2d(q1d(a, d));
- k = s1d(a, b, j, h);
- if (k) {
- return k;
- }
- }
- i3 = b2d(q1d(a, c2));
- if (dfb(Ewe, i3)) {
- return t1d(a, b);
- } else {
- f2 = g1d(a, b);
- for (g = 0, l = f2.gc(); g < l; ++g) {
- k = BD(f2.Xb(g), 170);
- if (x1d(c2d(q1d(a, k)), i3)) {
- return k;
- }
- }
- }
- }
- return null;
- }
- default: {
- return null;
- }
- }
+ channel2 = parseFloat(channel2);
+ if (isPct[i2]) {
+ channel2 = channel2 / 100 * 255;
}
- function t2d(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- if (c2.gc() == 0) {
- return false;
- }
- h = (Q6d(), BD(b, 66).Oj());
- f2 = h ? c2 : new zud(c2.gc());
- if (T6d(a.e, b)) {
- if (b.hi()) {
- for (j = c2.Kc(); j.Ob(); ) {
- i3 = j.Pb();
- if (!F2d(a, b, i3, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
- e = R6d(b, i3);
- f2.Hc(e) || f2.Fc(e);
- }
- }
- } else if (!h) {
- for (j = c2.Kc(); j.Ob(); ) {
- i3 = j.Pb();
- e = R6d(b, i3);
- f2.Fc(e);
- }
- }
- } else {
- if (c2.gc() > 1) {
- throw vbb(new Wdb(Hwe));
- }
- k = S6d(a.e.Tg(), b);
- d = BD(a.g, 119);
- for (g = 0; g < a.i; ++g) {
- e = d[g];
- if (k.rl(e.ak())) {
- if (c2.Hc(h ? e : e.dd())) {
- return false;
- } else {
- for (j = c2.Kc(); j.Ob(); ) {
- i3 = j.Pb();
- BD(Gtd(a, g, h ? BD(i3, 72) : R6d(b, i3)), 72);
- }
- return true;
- }
- }
- }
- if (!h) {
- e = R6d(b, c2.Kc().Pb());
- f2.Fc(e);
- }
- }
- return ytd(a, f2);
- }
- function qMc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- k = new Psb();
- for (h = (j = new $ib(a.c).a.vc().Kc(), new djb(j)); h.a.Ob(); ) {
- f2 = (e = BD(h.a.Pb(), 42), BD(e.dd(), 458));
- f2.b == 0 && (Gsb(k, f2, k.c.b, k.c), true);
- }
- while (k.b != 0) {
- f2 = BD(k.b == 0 ? null : (sCb(k.b != 0), Nsb(k, k.a.a)), 458);
- f2.a == null && (f2.a = 0);
- for (d = new olb(f2.d); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 654);
- c2.b.a == null ? c2.b.a = Edb(f2.a) + c2.a : b.o == (eMc(), cMc) ? c2.b.a = $wnd.Math.min(Edb(c2.b.a), Edb(f2.a) + c2.a) : c2.b.a = $wnd.Math.max(Edb(c2.b.a), Edb(f2.a) + c2.a);
- --c2.b.b;
- c2.b.b == 0 && Dsb(k, c2.b);
- }
- }
- for (g = (i3 = new $ib(a.c).a.vc().Kc(), new djb(i3)); g.a.Ob(); ) {
- f2 = (e = BD(g.a.Pb(), 42), BD(e.dd(), 458));
- b.i[f2.c.p] = f2.a;
- }
- }
- function mTc() {
- mTc = ccb;
- dTc = new Lsd(Ime);
- new Msd("DEPTH", meb(0));
- ZSc = new Msd("FAN", meb(0));
- XSc = new Msd(Yqe, meb(0));
- jTc = new Msd("ROOT", (Bcb(), false));
- _Sc = new Msd("LEFTNEIGHBOR", null);
- hTc = new Msd("RIGHTNEIGHBOR", null);
- aTc = new Msd("LEFTSIBLING", null);
- iTc = new Msd("RIGHTSIBLING", null);
- YSc = new Msd("DUMMY", false);
- new Msd("LEVEL", meb(0));
- gTc = new Msd("REMOVABLE_EDGES", new Psb());
- kTc = new Msd("XCOOR", meb(0));
- lTc = new Msd("YCOOR", meb(0));
- bTc = new Msd("LEVELHEIGHT", 0);
- $Sc = new Msd("ID", "");
- eTc = new Msd("POSITION", meb(0));
- fTc = new Msd("PRELIM", 0);
- cTc = new Msd("MODIFIER", 0);
- WSc = new Lsd(Kme);
- VSc = new Lsd(Lme);
- }
- function MNc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2;
- k = c2 + b.c.c.a;
- for (n = new olb(b.j); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 11);
- e = l7c(OC(GC(m1, 1), nie, 8, 0, [m.i.n, m.n, m.a]));
- if (b.k == (j0b(), i0b)) {
- h = BD(vNb(m, (wtc(), $sc)), 11);
- e.a = l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).a;
- b.n.a = e.a;
- }
- g = new f7c(0, e.b);
- if (m.j == (Ucd(), zcd)) {
- g.a = k;
- } else if (m.j == Tcd) {
- g.a = c2;
- } else {
- continue;
- }
- o2 = $wnd.Math.abs(e.a - g.a);
- if (o2 <= d && !JNc(b)) {
- continue;
- }
- f2 = m.g.c.length + m.e.c.length > 1;
- for (j = new b1b(m.b); llb(j.a) || llb(j.b); ) {
- i3 = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17);
- l = i3.c == m ? i3.d : i3.c;
- $wnd.Math.abs(l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a])).b - g.b) > 1 && GNc(a, i3, g, f2, m);
- }
- }
+ if (channel2 < 0 || channel2 > 255) {
+ return;
}
- function XPc(a) {
- var b, c2, d, e, f2, g;
- e = new Bib(a.e, 0);
- d = new Bib(a.a, 0);
- if (a.d) {
- for (c2 = 0; c2 < a.b; c2++) {
- sCb(e.b < e.d.gc());
- e.d.Xb(e.c = e.b++);
- }
- } else {
- for (c2 = 0; c2 < a.b - 1; c2++) {
- sCb(e.b < e.d.gc());
- e.d.Xb(e.c = e.b++);
- uib(e);
- }
- }
- b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++))));
- while (a.f - b > Oqe) {
- f2 = b;
- g = 0;
- while ($wnd.Math.abs(b - f2) < Oqe) {
- ++g;
- b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++))));
- sCb(d.b < d.d.gc());
- d.d.Xb(d.c = d.b++);
- }
- if (g < a.b) {
- sCb(e.b > 0);
- e.a.Xb(e.c = --e.b);
- WPc(a, a.b - g, f2, d, e);
- sCb(e.b < e.d.gc());
- e.d.Xb(e.c = e.b++);
- }
- sCb(d.b > 0);
- d.a.Xb(d.c = --d.b);
- }
- if (!a.d) {
- for (c2 = 0; c2 < a.b - 1; c2++) {
- sCb(e.b < e.d.gc());
- e.d.Xb(e.c = e.b++);
- uib(e);
- }
- }
- a.d = true;
- a.c = true;
- }
- function Q8d() {
- Q8d = ccb;
- s8d = (r8d(), q8d).b;
- v8d = BD(qud(ZKd(q8d.b), 0), 34);
- t8d = BD(qud(ZKd(q8d.b), 1), 34);
- u8d = BD(qud(ZKd(q8d.b), 2), 34);
- F8d = q8d.bb;
- BD(qud(ZKd(q8d.bb), 0), 34);
- BD(qud(ZKd(q8d.bb), 1), 34);
- H8d = q8d.fb;
- I8d = BD(qud(ZKd(q8d.fb), 0), 34);
- BD(qud(ZKd(q8d.fb), 1), 34);
- BD(qud(ZKd(q8d.fb), 2), 18);
- K8d = q8d.qb;
- N8d = BD(qud(ZKd(q8d.qb), 0), 34);
- BD(qud(ZKd(q8d.qb), 1), 18);
- BD(qud(ZKd(q8d.qb), 2), 18);
- L8d = BD(qud(ZKd(q8d.qb), 3), 34);
- M8d = BD(qud(ZKd(q8d.qb), 4), 34);
- P8d = BD(qud(ZKd(q8d.qb), 6), 34);
- O8d = BD(qud(ZKd(q8d.qb), 5), 18);
- w8d = q8d.j;
- x8d = q8d.k;
- y8d = q8d.q;
- z8d = q8d.w;
- A8d = q8d.B;
- B8d = q8d.A;
- C8d = q8d.C;
- D8d = q8d.D;
- E8d = q8d._;
- G8d = q8d.cb;
- J8d = q8d.hb;
- }
- function $Dc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- a.c = 0;
- a.b = 0;
- d = 2 * b.c.a.c.length + 1;
- o:
- for (l = c2.Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 11);
- h = k.j == (Ucd(), Acd) || k.j == Rcd;
- n = 0;
- if (h) {
- m = BD(vNb(k, (wtc(), gtc)), 10);
- if (!m) {
- continue;
- }
- n += VDc(a, d, k, m);
- } else {
- for (j = new olb(k.g); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 17);
- e = i3.d;
- if (e.i.c == b.c) {
- Ekb(a.a, k);
- continue o;
- } else {
- n += a.g[e.p];
- }
- }
- for (g = new olb(k.e); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 17);
- e = f2.c;
- if (e.i.c == b.c) {
- Ekb(a.a, k);
- continue o;
- } else {
- n -= a.g[e.p];
- }
- }
- }
- if (k.e.c.length + k.g.c.length > 0) {
- a.f[k.p] = n / (k.e.c.length + k.g.c.length);
- a.c = $wnd.Math.min(a.c, a.f[k.p]);
- a.b = $wnd.Math.max(a.b, a.f[k.p]);
- } else
- h && (a.f[k.p] = n);
- }
- }
- function $9d(a) {
- a.b = null;
- a.bb = null;
- a.fb = null;
- a.qb = null;
- a.a = null;
- a.c = null;
- a.d = null;
- a.e = null;
- a.f = null;
- a.n = null;
- a.M = null;
- a.L = null;
- a.Q = null;
- a.R = null;
- a.K = null;
- a.db = null;
- a.eb = null;
- a.g = null;
- a.i = null;
- a.j = null;
- a.k = null;
- a.gb = null;
- a.o = null;
- a.p = null;
- a.q = null;
- a.r = null;
- a.$ = null;
- a.ib = null;
- a.S = null;
- a.T = null;
- a.t = null;
- a.s = null;
- a.u = null;
- a.v = null;
- a.w = null;
- a.B = null;
- a.A = null;
- a.C = null;
- a.D = null;
- a.F = null;
- a.G = null;
- a.H = null;
- a.I = null;
- a.J = null;
- a.P = null;
- a.Z = null;
- a.U = null;
- a.V = null;
- a.W = null;
- a.X = null;
- a.Y = null;
- a._ = null;
- a.ab = null;
- a.cb = null;
- a.hb = null;
- a.nb = null;
- a.lb = null;
- a.mb = null;
- a.ob = null;
- a.pb = null;
- a.jb = null;
- a.kb = null;
- a.N = false;
- a.O = false;
- }
- function l5b(a, b, c2) {
- var d, e, f2, g;
- Odd(c2, "Graph transformation (" + a.a + ")", 1);
- g = Mu(b.a);
- for (f2 = new olb(b.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- Gkb(g, e.a);
- }
- d = BD(vNb(b, (Nyc(), Mwc)), 419);
- if (d == (xqc(), vqc)) {
- switch (BD(vNb(b, Lwc), 103).g) {
- case 2:
- _4b(b, g);
- break;
- case 3:
- p5b(b, g);
- break;
- case 4:
- if (a.a == (y5b(), x5b)) {
- p5b(b, g);
- a5b(b, g);
- } else {
- a5b(b, g);
- p5b(b, g);
- }
- }
- } else {
- if (a.a == (y5b(), x5b)) {
- switch (BD(vNb(b, Lwc), 103).g) {
- case 2:
- _4b(b, g);
- a5b(b, g);
- break;
- case 3:
- p5b(b, g);
- _4b(b, g);
- break;
- case 4:
- _4b(b, g);
- p5b(b, g);
- }
- } else {
- switch (BD(vNb(b, Lwc), 103).g) {
- case 2:
- _4b(b, g);
- a5b(b, g);
- break;
- case 3:
- _4b(b, g);
- p5b(b, g);
- break;
- case 4:
- p5b(b, g);
- _4b(b, g);
- }
- }
- }
- Qdd(c2);
- }
- function j6b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- j = new zsb();
- k = new zsb();
- o2 = new zsb();
- p = new zsb();
- i3 = Edb(ED(vNb(b, (Nyc(), vyc))));
- f2 = Edb(ED(vNb(b, lyc)));
- for (h = new olb(c2); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 10);
- l = BD(vNb(g, (wtc(), Hsc)), 61);
- if (l == (Ucd(), Acd)) {
- k.a.zc(g, k);
- for (e = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- Qqb(j, d.c.i);
- }
- } else if (l == Rcd) {
- p.a.zc(g, p);
- for (e = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- Qqb(o2, d.c.i);
- }
- }
- }
- if (j.a.gc() != 0) {
- m = new tPc(2, f2);
- n = sPc(m, b, j, k, -i3 - b.c.b);
- if (n > 0) {
- a.a = i3 + (n - 1) * f2;
- b.c.b += a.a;
- b.f.b += a.a;
- }
- }
- if (o2.a.gc() != 0) {
- m = new tPc(1, f2);
- n = sPc(m, b, o2, p, b.f.b + i3 - b.c.b);
- n > 0 && (b.f.b += i3 + (n - 1) * f2);
- }
- }
- function kKd(a, b) {
- var c2, d, e, f2;
- f2 = a.F;
- if (b == null) {
- a.F = null;
- $Jd(a, null);
- } else {
- a.F = (uCb(b), b);
- d = hfb(b, wfb(60));
- if (d != -1) {
- e = b.substr(0, d);
- hfb(b, wfb(46)) == -1 && !dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve) && (e = Lve);
- c2 = kfb(b, wfb(62));
- c2 != -1 && (e += "" + b.substr(c2 + 1));
- $Jd(a, e);
- } else {
- e = b;
- if (hfb(b, wfb(46)) == -1) {
- d = hfb(b, wfb(91));
- d != -1 && (e = b.substr(0, d));
- if (!dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve)) {
- e = Lve;
- d != -1 && (e += "" + b.substr(d));
- } else {
- e = b;
- }
- }
- $Jd(a, e);
- e == b && (a.F = a.D);
- }
- }
- (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, f2, b));
+ ret.push(Math.floor(channel2));
+ }
+ var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];
+ var allArePct = isPct[1] && isPct[2] && isPct[3];
+ if (atLeastOneIsPct && !allArePct) {
+ return;
+ }
+ var alpha = m2[4];
+ if (alpha !== void 0) {
+ alpha = parseFloat(alpha);
+ if (alpha < 0 || alpha > 1) {
+ return;
}
- function AMc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- p = b.b.c.length;
- if (p < 3) {
- return;
- }
- n = KC(WD, oje, 25, p, 15, 1);
- l = 0;
- for (k = new olb(b.b); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 29);
- n[l++] = j.a.c.length;
- }
- m = new Bib(b.b, 2);
- for (d = 1; d < p - 1; d++) {
- c2 = (sCb(m.b < m.d.gc()), BD(m.d.Xb(m.c = m.b++), 29));
- o2 = new olb(c2.a);
- f2 = 0;
- h = 0;
- for (i3 = 0; i3 < n[d + 1]; i3++) {
- t4 = BD(mlb(o2), 10);
- if (i3 == n[d + 1] - 1 || zMc(a, t4, d + 1, d)) {
- g = n[d] - 1;
- zMc(a, t4, d + 1, d) && (g = a.c.e[BD(BD(BD(Ikb(a.c.b, t4.p), 15).Xb(0), 46).a, 10).p]);
- while (h <= i3) {
- s = BD(Ikb(c2.a, h), 10);
- if (!zMc(a, s, d + 1, d)) {
- for (r = BD(Ikb(a.c.b, s.p), 15).Kc(); r.Ob(); ) {
- q = BD(r.Pb(), 46);
- e = a.c.e[BD(q.a, 10).p];
- (e < f2 || e > g) && Qqb(a.b, BD(q.b, 17));
- }
- }
- ++h;
- }
- f2 = g;
- }
- }
- }
+ ret.push(alpha);
+ }
+ }
+ return ret;
+ }, "rgb2tuple");
+ colorname2tuple = /* @__PURE__ */ __name(function colorname2tuple2(color2) {
+ return colors[color2.toLowerCase()];
+ }, "colorname2tuple");
+ color2tuple = /* @__PURE__ */ __name(function color2tuple2(color2) {
+ return (array2(color2) ? color2 : null) || colorname2tuple(color2) || hex2tuple(color2) || rgb2tuple(color2) || hsl2tuple(color2);
+ }, "color2tuple");
+ 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]
+ };
+ setMap = /* @__PURE__ */ __name(function setMap2(options3) {
+ var obj = options3.map;
+ var keys3 = options3.keys;
+ var l2 = keys3.length;
+ for (var i2 = 0; i2 < l2; i2++) {
+ var key = keys3[i2];
+ if (plainObject(key)) {
+ throw Error("Tried to set map with object key");
+ }
+ if (i2 < keys3.length - 1) {
+ if (obj[key] == null) {
+ obj[key] = {};
}
- function o5c(b, c2) {
- var d;
- if (c2 == null || dfb(c2, Xhe)) {
- return null;
- }
- if (c2.length == 0 && b.k != (_5c(), W5c)) {
- return null;
- }
- switch (b.k.g) {
- case 1:
- return efb(c2, kse) ? (Bcb(), Acb) : efb(c2, lse) ? (Bcb(), zcb) : null;
- case 2:
- try {
- return meb(Icb(c2, Rie, Ohe));
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- return null;
- } else
- throw vbb(a);
- }
- case 4:
- try {
- return Hcb(c2);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- return null;
- } else
- throw vbb(a);
- }
- case 3:
- return c2;
- case 5:
- j5c(b);
- return m5c(b, c2);
- case 6:
- j5c(b);
- return n5c(b, b.a, c2);
- case 7:
- try {
- d = l5c(b);
- d.Jf(c2);
- return d;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 32)) {
- return null;
- } else
- throw vbb(a);
- }
- default:
- throw vbb(new Zdb("Invalid type set for this layout option."));
- }
- }
- function JWb(a) {
- AWb();
- var b, c2, d, e, f2, g, h;
- h = new CWb();
- for (c2 = new olb(a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 140);
- (!h.b || b.c >= h.b.c) && (h.b = b);
- if (!h.c || b.c <= h.c.c) {
- h.d = h.c;
- h.c = b;
- }
- (!h.e || b.d >= h.e.d) && (h.e = b);
- (!h.f || b.d <= h.f.d) && (h.f = b);
- }
- d = new NWb((lWb(), hWb));
- rXb(a, yWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [d])));
- g = new NWb(kWb);
- rXb(a, xWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [g])));
- e = new NWb(iWb);
- rXb(a, wWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [e])));
- f2 = new NWb(jWb);
- rXb(a, vWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [f2])));
- DWb(d.c, hWb);
- DWb(e.c, iWb);
- DWb(f2.c, jWb);
- DWb(g.c, kWb);
- h.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- Gkb(h.a, d.c);
- Gkb(h.a, Su(e.c));
- Gkb(h.a, f2.c);
- Gkb(h.a, Su(g.c));
- return h;
- }
- function jxd(a) {
- var b;
- switch (a.d) {
- case 1: {
- if (a.hj()) {
- return a.o != -2;
- }
- break;
- }
- case 2: {
- if (a.hj()) {
- return a.o == -2;
- }
- break;
- }
- case 3:
- case 5:
- case 4:
- case 6:
- case 7: {
- return a.o > -2;
- }
- default: {
- return false;
- }
- }
- b = a.gj();
- switch (a.p) {
- case 0:
- return b != null && Ccb(DD(b)) != Kbb(a.k, 0);
- case 1:
- return b != null && BD(b, 217).a != Tbb(a.k) << 24 >> 24;
- case 2:
- return b != null && BD(b, 172).a != (Tbb(a.k) & aje);
- case 6:
- return b != null && Kbb(BD(b, 162).a, a.k);
- case 5:
- return b != null && BD(b, 19).a != Tbb(a.k);
- case 7:
- return b != null && BD(b, 184).a != Tbb(a.k) << 16 >> 16;
- case 3:
- return b != null && Edb(ED(b)) != a.j;
- case 4:
- return b != null && BD(b, 155).a != a.j;
- default:
- return b == null ? a.n != null : !pb(b, a.n);
- }
- }
- function nOd(a, b, c2) {
- var d, e, f2, g;
- if (a.Fk() && a.Ek()) {
- g = oOd(a, BD(c2, 56));
- if (PD(g) !== PD(c2)) {
- a.Oi(b);
- a.Ui(b, pOd(a, b, g));
- if (a.rk()) {
- f2 = (e = BD(c2, 49), a.Dk() ? a.Bk() ? e.ih(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), null) : e.ih(a.b, bLd(e.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, null) : e.ih(a.b, -1 - a.aj(), null, null));
- !BD(g, 49).eh() && (f2 = (d = BD(g, 49), a.Dk() ? a.Bk() ? d.gh(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), f2) : d.gh(a.b, bLd(d.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, f2) : d.gh(a.b, -1 - a.aj(), null, f2)));
- !!f2 && f2.Fi();
- }
- oid(a.b) && a.$i(a.Zi(9, c2, g, b, false));
- return g;
- }
- }
- return c2;
- }
- function Noc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- k = Edb(ED(vNb(a, (Nyc(), oyc))));
- d = Edb(ED(vNb(a, Cyc)));
- m = new _fd();
- yNb(m, oyc, k + d);
- j = b;
- r = j.d;
- p = j.c.i;
- s = j.d.i;
- q = G1b(p.c);
- t4 = G1b(s.c);
- e = new Rkb();
- for (l = q; l <= t4; l++) {
- h = new b0b(a);
- __b(h, (j0b(), g0b));
- yNb(h, (wtc(), $sc), j);
- yNb(h, Vxc, (dcd(), $bd));
- yNb(h, qyc, m);
- n = BD(Ikb(a.b, l), 29);
- l == q ? Z_b(h, n.a.c.length - c2, n) : $_b(h, n);
- u2 = Edb(ED(vNb(j, Zwc)));
- if (u2 < 0) {
- u2 = 0;
- yNb(j, Zwc, u2);
- }
- h.o.b = u2;
- o2 = $wnd.Math.floor(u2 / 2);
- g = new H0b();
- G0b(g, (Ucd(), Tcd));
- F0b(g, h);
- g.n.b = o2;
- i3 = new H0b();
- G0b(i3, zcd);
- F0b(i3, h);
- i3.n.b = o2;
- RZb(j, g);
- f2 = new UZb();
- tNb(f2, j);
- yNb(f2, jxc, null);
- QZb(f2, i3);
- RZb(f2, r);
- Ooc(h, j, f2);
- e.c[e.c.length] = f2;
- j = f2;
- }
- return e;
- }
- function sbc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- i3 = BD(Y_b(a, (Ucd(), Tcd)).Kc().Pb(), 11).e;
- n = BD(Y_b(a, zcd).Kc().Pb(), 11).g;
- h = i3.c.length;
- t4 = A0b(BD(Ikb(a.j, 0), 11));
- while (h-- > 0) {
- p = (tCb(0, i3.c.length), BD(i3.c[0], 17));
- e = (tCb(0, n.c.length), BD(n.c[0], 17));
- s = e.d.e;
- f2 = Jkb(s, e, 0);
- SZb(p, e.d, f2);
- QZb(e, null);
- RZb(e, null);
- o2 = p.a;
- b && Dsb(o2, new g7c(t4));
- for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 8);
- Dsb(o2, new g7c(c2));
- }
- r = p.b;
- for (m = new olb(e.b); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 70);
- r.c[r.c.length] = l;
- }
- q = BD(vNb(p, (Nyc(), jxc)), 74);
- g = BD(vNb(e, jxc), 74);
- if (g) {
- if (!q) {
- q = new s7c();
- yNb(p, jxc, q);
- }
- for (k = Jsb(g, 0); k.b != k.d.c; ) {
- j = BD(Xsb(k), 8);
- Dsb(q, new g7c(j));
- }
- }
- }
- }
- function EJb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- c2 = BD(Mpb(a.b, b), 124);
- i3 = BD(BD(Qc(a.r, b), 21), 84);
- if (i3.dc()) {
- c2.n.b = 0;
- c2.n.c = 0;
- return;
- }
- j = a.u.Hc((rcd(), ncd));
- g = 0;
- h = i3.Kc();
- k = null;
- l = 0;
- m = 0;
- while (h.Ob()) {
- d = BD(h.Pb(), 111);
- e = Edb(ED(d.b.We((CKb(), BKb))));
- f2 = d.b.rf().a;
- a.A.Hc((tdd(), sdd)) && KJb(a, b);
- if (!k) {
- !!a.C && a.C.b > 0 && (g = $wnd.Math.max(g, IJb(a.C.b + d.d.b, e)));
- } else {
- n = m + k.d.c + a.w + d.d.b;
- g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(l - e) <= ple || l == e || isNaN(l) && isNaN(e) ? 0 : n / (e - l)));
- }
- k = d;
- l = e;
- m = f2;
- }
- if (!!a.C && a.C.c > 0) {
- n = m + a.C.c;
- j && (n += k.d.c);
- g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(l - 1) <= ple || l == 1 || isNaN(l) && isNaN(1) ? 0 : n / (1 - l)));
- }
- c2.n.b = 0;
- c2.a.a = g;
- }
- function NKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- c2 = BD(Mpb(a.b, b), 124);
- i3 = BD(BD(Qc(a.r, b), 21), 84);
- if (i3.dc()) {
- c2.n.d = 0;
- c2.n.a = 0;
- return;
- }
- j = a.u.Hc((rcd(), ncd));
- g = 0;
- a.A.Hc((tdd(), sdd)) && SKb(a, b);
- h = i3.Kc();
- k = null;
- m = 0;
- l = 0;
- while (h.Ob()) {
- d = BD(h.Pb(), 111);
- f2 = Edb(ED(d.b.We((CKb(), BKb))));
- e = d.b.rf().b;
- if (!k) {
- !!a.C && a.C.d > 0 && (g = $wnd.Math.max(g, IJb(a.C.d + d.d.d, f2)));
- } else {
- n = l + k.d.a + a.w + d.d.d;
- g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(m - f2) <= ple || m == f2 || isNaN(m) && isNaN(f2) ? 0 : n / (f2 - m)));
- }
- k = d;
- m = f2;
- l = e;
- }
- if (!!a.C && a.C.a > 0) {
- n = l + a.C.a;
- j && (n += k.d.a);
- g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(m - 1) <= ple || m == 1 || isNaN(m) && isNaN(1) ? 0 : n / (1 - m)));
- }
- c2.n.d = 0;
- c2.a.b = g;
- }
- function _Ec(a, b, c2) {
- var d, e, f2, g, h, i3;
- this.g = a;
- h = b.d.length;
- i3 = c2.d.length;
- this.d = KC(OQ, kne, 10, h + i3, 0, 1);
- for (g = 0; g < h; g++) {
- this.d[g] = b.d[g];
- }
- for (f2 = 0; f2 < i3; f2++) {
- this.d[h + f2] = c2.d[f2];
- }
- if (b.e) {
- this.e = Ru(b.e);
- this.e.Mc(c2);
- if (c2.e) {
- for (e = c2.e.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 233);
- if (d == b) {
- continue;
- } else
- this.e.Hc(d) ? --d.c : this.e.Fc(d);
- }
- }
- } else if (c2.e) {
- this.e = Ru(c2.e);
- this.e.Mc(b);
- }
- this.f = b.f + c2.f;
- this.a = b.a + c2.a;
- this.a > 0 ? ZEc(this, this.f / this.a) : REc(b.g, b.d[0]).a != null && REc(c2.g, c2.d[0]).a != null ? ZEc(this, (Edb(REc(b.g, b.d[0]).a) + Edb(REc(c2.g, c2.d[0]).a)) / 2) : REc(b.g, b.d[0]).a != null ? ZEc(this, REc(b.g, b.d[0]).a) : REc(c2.g, c2.d[0]).a != null && ZEc(this, REc(c2.g, c2.d[0]).a);
- }
- function BUb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- a.a = new dVb(oqb(t12));
- for (d = new olb(b.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 841);
- h = new gVb(OC(GC(IP, 1), Uhe, 81, 0, []));
- Ekb(a.a.a, h);
- for (j = new olb(c2.d); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 110);
- k = new GUb(a, i3);
- AUb(k, BD(vNb(c2.c, (wtc(), Esc)), 21));
- if (!Mhb(a.g, c2)) {
- Rhb(a.g, c2, new f7c(i3.c, i3.d));
- Rhb(a.f, c2, k);
- }
- Ekb(a.a.b, k);
- eVb(h, k);
- }
- for (g = new olb(c2.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 594);
- k = new GUb(a, f2.kf());
- Rhb(a.b, f2, new vgd(h, k));
- AUb(k, BD(vNb(c2.c, (wtc(), Esc)), 21));
- if (f2.hf()) {
- l = new HUb(a, f2.hf(), 1);
- AUb(l, BD(vNb(c2.c, Esc), 21));
- e = new gVb(OC(GC(IP, 1), Uhe, 81, 0, []));
- eVb(e, l);
- Rc(a.c, f2.gf(), new vgd(h, l));
- }
- }
- }
- return a.a;
- }
- function oBc(a) {
- var b;
- this.a = a;
- b = (j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b])).length;
- this.b = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2);
- this.c = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2);
- nBc(this, h0b, (Nyc(), vyc), wyc);
- lBc(this, h0b, g0b, oyc, pyc);
- kBc(this, h0b, i0b, oyc);
- kBc(this, h0b, e0b, oyc);
- lBc(this, h0b, f0b, vyc, wyc);
- nBc(this, g0b, lyc, myc);
- kBc(this, g0b, i0b, lyc);
- kBc(this, g0b, e0b, lyc);
- lBc(this, g0b, f0b, oyc, pyc);
- mBc(this, i0b, lyc);
- kBc(this, i0b, e0b, lyc);
- kBc(this, i0b, f0b, syc);
- mBc(this, e0b, zyc);
- lBc(this, e0b, f0b, uyc, tyc);
- nBc(this, f0b, lyc, lyc);
- nBc(this, d0b, lyc, myc);
- lBc(this, d0b, h0b, oyc, pyc);
- lBc(this, d0b, f0b, oyc, pyc);
- lBc(this, d0b, g0b, oyc, pyc);
- }
- function _2d(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- g = c2.ak();
- if (JD(g, 99) && (BD(g, 18).Bb & Tje) != 0) {
- m = BD(c2.dd(), 49);
- p = xid(a.e, m);
- if (p != m) {
- k = R6d(g, p);
- mud(a, b, t3d(a, b, k));
- l = null;
- if (oid(a.e)) {
- d = e1d((O6d(), M6d), a.e.Tg(), g);
- if (d != XKd(a.e.Tg(), a.c)) {
- q = S6d(a.e.Tg(), g);
- h = 0;
- f2 = BD(a.g, 119);
- for (i3 = 0; i3 < b; ++i3) {
- e = f2[i3];
- q.rl(e.ak()) && ++h;
- }
- l = new O7d(a.e, 9, d, m, p, h, false);
- l.Ei(new pSd(a.e, 9, a.c, c2, k, b, false));
- }
- }
- o2 = BD(g, 18);
- n = zUd(o2);
- if (n) {
- l = m.ih(a.e, bLd(m.Tg(), n), null, l);
- l = BD(p, 49).gh(a.e, bLd(p.Tg(), n), null, l);
- } else if ((o2.Bb & ote) != 0) {
- j = -1 - bLd(a.e.Tg(), o2);
- l = m.ih(a.e, j, null, null);
- !BD(p, 49).eh() && (l = BD(p, 49).gh(a.e, j, null, l));
- }
- !!l && l.Fi();
- return k;
- }
- }
- return c2;
- }
- function yUb(a) {
- var b, c2, d, e, f2, g, h, i3;
- for (f2 = new olb(a.a.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 81);
- e.b.c = e.g.c;
- e.b.d = e.g.d;
- }
- i3 = new f7c(Pje, Pje);
- b = new f7c(Qje, Qje);
- for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 81);
- i3.a = $wnd.Math.min(i3.a, c2.g.c);
- i3.b = $wnd.Math.min(i3.b, c2.g.d);
- b.a = $wnd.Math.max(b.a, c2.g.c + c2.g.b);
- b.b = $wnd.Math.max(b.b, c2.g.d + c2.g.a);
- }
- for (h = Uc(a.c).a.nc(); h.Ob(); ) {
- g = BD(h.Pb(), 46);
- c2 = BD(g.b, 81);
- i3.a = $wnd.Math.min(i3.a, c2.g.c);
- i3.b = $wnd.Math.min(i3.b, c2.g.d);
- b.a = $wnd.Math.max(b.a, c2.g.c + c2.g.b);
- b.b = $wnd.Math.max(b.b, c2.g.d + c2.g.a);
- }
- a.d = V6c(new f7c(i3.a, i3.b));
- a.e = c7c(new f7c(b.a, b.b), i3);
- a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- function svd(a) {
- var b, c2, d;
- l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()]));
- c2 = new xB(a);
- for (d = 0; d < c2.a.length; ++d) {
- b = tB(c2, d).je().a;
- dfb(b, "layered") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new kwc()])) : dfb(b, "force") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new TRb()])) : dfb(b, "stress") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PSb()])) : dfb(b, "mrtree") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new sTc()])) : dfb(b, "radial") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new IWc()])) : dfb(b, "disco") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new gFb(), new oPb()])) : dfb(b, "sporeOverlap") || dfb(b, "sporeCompaction") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new B0c()])) : dfb(b, "rectpacking") && l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PYc()]));
- }
- }
- function j_b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- m = new g7c(a.o);
- r = b.a / m.a;
- h = b.b / m.b;
- p = b.a - m.a;
- f2 = b.b - m.b;
- if (c2) {
- e = PD(vNb(a, (Nyc(), Vxc))) === PD((dcd(), $bd));
- for (o2 = new olb(a.j); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 11);
- switch (n.j.g) {
- case 1:
- e || (n.n.a *= r);
- break;
- case 2:
- n.n.a += p;
- e || (n.n.b *= h);
- break;
- case 3:
- e || (n.n.a *= r);
- n.n.b += f2;
- break;
- case 4:
- e || (n.n.b *= h);
- }
- }
- }
- for (j = new olb(a.b); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 70);
- k = i3.n.a + i3.o.a / 2;
- l = i3.n.b + i3.o.b / 2;
- q = k / m.a;
- g = l / m.b;
- if (q + g >= 1) {
- if (q - g > 0 && l >= 0) {
- i3.n.a += p;
- i3.n.b += f2 * g;
- } else if (q - g < 0 && k >= 0) {
- i3.n.a += p * q;
- i3.n.b += f2;
- }
- }
- }
- a.o.a = b.a;
- a.o.b = b.b;
- yNb(a, (Nyc(), Fxc), (tdd(), d = BD(gdb(I1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0)));
- }
- function iFd(a, b, c2, d, e, f2) {
- var g;
- if (!(b == null || !OEd(b, zEd, AEd))) {
- throw vbb(new Wdb("invalid scheme: " + b));
- }
- if (!a && !(c2 != null && hfb(c2, wfb(35)) == -1 && c2.length > 0 && (BCb(0, c2.length), c2.charCodeAt(0) != 47))) {
- throw vbb(new Wdb("invalid opaquePart: " + c2));
- }
- if (a && !(b != null && hnb(GEd, b.toLowerCase())) && !(c2 == null || !OEd(c2, CEd, DEd))) {
- throw vbb(new Wdb(mve + c2));
- }
- if (a && b != null && hnb(GEd, b.toLowerCase()) && !eFd(c2)) {
- throw vbb(new Wdb(mve + c2));
- }
- if (!fFd(d)) {
- throw vbb(new Wdb("invalid device: " + d));
- }
- if (!hFd(e)) {
- g = e == null ? "invalid segments: null" : "invalid segment: " + VEd(e);
- throw vbb(new Wdb(g));
- }
- if (!(f2 == null || hfb(f2, wfb(35)) == -1)) {
- throw vbb(new Wdb("invalid query: " + f2));
- }
- }
- function nVc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- Odd(b, "Calculate Graph Size", 1);
- b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
- h = dme;
- i3 = dme;
- f2 = ere;
- g = ere;
- for (l = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); l.e != l.i.gc(); ) {
- j = BD(Dyd(l), 33);
- o2 = j.i;
- p = j.j;
- r = j.g;
- d = j.f;
- e = BD(hkd(j, (Y9c(), S8c)), 142);
- h = $wnd.Math.min(h, o2 - e.b);
- i3 = $wnd.Math.min(i3, p - e.d);
- f2 = $wnd.Math.max(f2, o2 + r + e.c);
- g = $wnd.Math.max(g, p + d + e.a);
- }
- n = BD(hkd(a, (Y9c(), f9c)), 116);
- m = new f7c(h - n.b, i3 - n.d);
- for (k = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); k.e != k.i.gc(); ) {
- j = BD(Dyd(k), 33);
- dld(j, j.i - m.a);
- eld(j, j.j - m.b);
- }
- q = f2 - h + (n.b + n.c);
- c2 = g - i3 + (n.d + n.a);
- cld(a, q);
- ald(a, c2);
- b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
- }
- function rGb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- d = new Rkb();
- for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 121);
- k = 0;
- e.k.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (c2 = new olb(LFb(e)); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 213);
- if (b.f) {
- Ekb(e.k, b);
- ++k;
- }
- }
- k == 1 && (d.c[d.c.length] = e, true);
- }
- for (f2 = new olb(d); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 121);
- while (e.k.c.length == 1) {
- j = BD(mlb(new olb(e.k)), 213);
- a.b[j.c] = j.g;
- h = j.d;
- i3 = j.e;
- for (c2 = new olb(LFb(e)); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 213);
- pb(b, j) || (b.f ? h == b.d || i3 == b.e ? a.b[j.c] -= a.b[b.c] - b.g : a.b[j.c] += a.b[b.c] - b.g : e == h ? b.d == e ? a.b[j.c] += b.g : a.b[j.c] -= b.g : b.d == e ? a.b[j.c] -= b.g : a.b[j.c] += b.g);
- }
- Lkb(h.k, j);
- Lkb(i3.k, j);
- h == e ? e = j.e : e = j.d;
- }
- }
- }
- function k4c(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- if (b == null || b.length == 0) {
- return null;
- }
- f2 = BD(Phb(a.f, b), 23);
- if (!f2) {
- for (e = (n = new $ib(a.d).a.vc().Kc(), new djb(n)); e.a.Ob(); ) {
- c2 = (g = BD(e.a.Pb(), 42), BD(g.dd(), 23));
- h = c2.f;
- o2 = b.length;
- if (dfb(h.substr(h.length - o2, o2), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) {
- if (f2) {
- return null;
- }
- f2 = c2;
- }
- }
- if (!f2) {
- for (d = (m = new $ib(a.d).a.vc().Kc(), new djb(m)); d.a.Ob(); ) {
- c2 = (g = BD(d.a.Pb(), 42), BD(g.dd(), 23));
- l = c2.g;
- if (l != null) {
- for (i3 = l, j = 0, k = i3.length; j < k; ++j) {
- h = i3[j];
- o2 = b.length;
- if (dfb(h.substr(h.length - o2, o2), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) {
- if (f2) {
- return null;
- }
- f2 = c2;
- }
- }
- }
- }
- }
- !!f2 && Shb(a.f, b, f2);
- }
- return f2;
+ obj = obj[key];
+ } else {
+ obj[key] = options3.value;
+ }
+ }
+ }, "setMap");
+ getMap = /* @__PURE__ */ __name(function getMap2(options3) {
+ var obj = options3.map;
+ var keys3 = options3.keys;
+ var l2 = keys3.length;
+ for (var i2 = 0; i2 < l2; i2++) {
+ var key = keys3[i2];
+ if (plainObject(key)) {
+ throw Error("Tried to get map with object key");
+ }
+ obj = obj[key];
+ if (obj == null) {
+ return obj;
+ }
+ }
+ return obj;
+ }, "getMap");
+ __name(isObject2, "isObject");
+ isObject_1 = isObject2;
+ commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
+ __name(createCommonjsModule, "createCommonjsModule");
+ freeGlobal2 = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
+ _freeGlobal = freeGlobal2;
+ freeSelf2 = typeof self == "object" && self && self.Object === Object && self;
+ root3 = _freeGlobal || freeSelf2 || Function("return this")();
+ _root = root3;
+ now3 = /* @__PURE__ */ __name(function() {
+ return _root.Date.now();
+ }, "now");
+ now_1 = now3;
+ reWhitespace2 = /\s/;
+ __name(trimmedEndIndex2, "trimmedEndIndex");
+ _trimmedEndIndex = trimmedEndIndex2;
+ reTrimStart2 = /^\s+/;
+ __name(baseTrim2, "baseTrim");
+ _baseTrim = baseTrim2;
+ Symbol$1 = _root.Symbol;
+ _Symbol = Symbol$1;
+ objectProto$5 = Object.prototype;
+ hasOwnProperty$4 = objectProto$5.hasOwnProperty;
+ nativeObjectToString$1 = objectProto$5.toString;
+ symToStringTag$1 = _Symbol ? _Symbol.toStringTag : void 0;
+ __name(getRawTag2, "getRawTag");
+ _getRawTag = getRawTag2;
+ objectProto$4 = Object.prototype;
+ nativeObjectToString3 = objectProto$4.toString;
+ __name(objectToString2, "objectToString");
+ _objectToString = objectToString2;
+ nullTag2 = "[object Null]";
+ undefinedTag2 = "[object Undefined]";
+ symToStringTag3 = _Symbol ? _Symbol.toStringTag : void 0;
+ __name(baseGetTag2, "baseGetTag");
+ _baseGetTag = baseGetTag2;
+ __name(isObjectLike2, "isObjectLike");
+ isObjectLike_1 = isObjectLike2;
+ symbolTag5 = "[object Symbol]";
+ __name(isSymbol2, "isSymbol");
+ isSymbol_1 = isSymbol2;
+ NAN2 = 0 / 0;
+ reIsBadHex2 = /^[-+]0x[0-9a-f]+$/i;
+ reIsBinary2 = /^0b[01]+$/i;
+ reIsOctal2 = /^0o[0-7]+$/i;
+ freeParseInt2 = parseInt;
+ __name(toNumber2, "toNumber");
+ toNumber_1 = toNumber2;
+ FUNC_ERROR_TEXT$1 = "Expected a function";
+ nativeMax6 = Math.max;
+ nativeMin = Math.min;
+ __name(debounce, "debounce");
+ debounce_1 = debounce;
+ performance2 = _window ? _window.performance : null;
+ pnow = performance2 && performance2.now ? function() {
+ return performance2.now();
+ } : function() {
+ return Date.now();
+ };
+ 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);
+ }
+ };
+ }();
+ requestAnimationFrame2 = /* @__PURE__ */ __name(function requestAnimationFrame3(fn3) {
+ return raf(fn3);
+ }, "requestAnimationFrame");
+ performanceNow = pnow;
+ DEFAULT_HASH_SEED = 9261;
+ K3 = 65599;
+ DEFAULT_HASH_SEED_ALT = 5381;
+ 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 * K3 + entry.value | 0;
+ }
+ return hash;
+ }, "hashIterableInts");
+ hashInt = /* @__PURE__ */ __name(function hashInt2(num) {
+ var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
+ return seed * K3 + num | 0;
+ }, "hashInt");
+ 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");
+ combineHashes = /* @__PURE__ */ __name(function combineHashes2(hash1, hash2) {
+ return hash1 * 2097152 + hash2;
+ }, "combineHashes");
+ combineHashesArray = /* @__PURE__ */ __name(function combineHashesArray2(hashes) {
+ return hashes[0] * 2097152 + hashes[1];
+ }, "combineHashesArray");
+ hashArrays = /* @__PURE__ */ __name(function hashArrays2(hashes1, hashes2) {
+ return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];
+ }, "hashArrays");
+ hashIntsArray = /* @__PURE__ */ __name(function hashIntsArray2(ints, seed) {
+ var entry = {
+ value: 0,
+ done: false
+ };
+ var i2 = 0;
+ var length2 = ints.length;
+ var iterator = {
+ next: /* @__PURE__ */ __name(function next3() {
+ if (i2 < length2) {
+ entry.value = ints[i2++];
+ } else {
+ entry.done = true;
}
- function sA(a, b) {
- var c2, d, e, f2, g;
- c2 = new Vfb();
- g = false;
- for (f2 = 0; f2 < b.length; f2++) {
- d = (BCb(f2, b.length), b.charCodeAt(f2));
- if (d == 32) {
- gA(a, c2, 0);
- c2.a += " ";
- gA(a, c2, 0);
- while (f2 + 1 < b.length && (BCb(f2 + 1, b.length), b.charCodeAt(f2 + 1) == 32)) {
- ++f2;
- }
- continue;
- }
- if (g) {
- if (d == 39) {
- if (f2 + 1 < b.length && (BCb(f2 + 1, b.length), b.charCodeAt(f2 + 1) == 39)) {
- c2.a += String.fromCharCode(d);
- ++f2;
- } else {
- g = false;
- }
- } else {
- c2.a += String.fromCharCode(d);
- }
- continue;
- }
- if (hfb("GyMLdkHmsSEcDahKzZv", wfb(d)) > 0) {
- gA(a, c2, 0);
- c2.a += String.fromCharCode(d);
- e = lA(b, f2);
- gA(a, c2, e);
- f2 += e - 1;
- continue;
- }
- if (d == 39) {
- if (f2 + 1 < b.length && (BCb(f2 + 1, b.length), b.charCodeAt(f2 + 1) == 39)) {
- c2.a += "'";
- ++f2;
- } else {
- g = true;
- }
- } else {
- c2.a += String.fromCharCode(d);
- }
- }
- gA(a, c2, 0);
- mA(a);
+ return entry;
+ }, "next")
+ };
+ return hashIterableInts(iterator, seed);
+ }, "hashIntsArray");
+ hashString = /* @__PURE__ */ __name(function hashString2(str2, seed) {
+ var entry = {
+ value: 0,
+ done: false
+ };
+ var i2 = 0;
+ var length2 = str2.length;
+ var iterator = {
+ next: /* @__PURE__ */ __name(function next3() {
+ if (i2 < length2) {
+ entry.value = str2.charCodeAt(i2++);
+ } else {
+ entry.done = true;
}
- function wDc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- Odd(c2, "Network simplex layering", 1);
- a.b = b;
- r = BD(vNb(b, (Nyc(), Ayc)), 19).a * 4;
- q = a.b.a;
- if (q.c.length < 1) {
- Qdd(c2);
- return;
- }
- f2 = sDc(a, q);
- p = null;
- for (e = Jsb(f2, 0); e.b != e.d.c; ) {
- d = BD(Xsb(e), 15);
- h = r * QD($wnd.Math.sqrt(d.gc()));
- g = vDc(d);
- uGb(HGb(JGb(IGb(LGb(g), h), p), true), Udd(c2, 1));
- m = a.b.b;
- for (o2 = new olb(g.a); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 121);
- while (m.c.length <= n.e) {
- Dkb(m, m.c.length, new H1b(a.b));
- }
- k = BD(n.f, 10);
- $_b(k, BD(Ikb(m, n.e), 29));
- }
- if (f2.b > 1) {
- p = KC(WD, oje, 25, a.b.b.c.length, 15, 1);
- l = 0;
- for (j = new olb(a.b.b); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 29);
- p[l++] = i3.a.c.length;
- }
- }
- }
- q.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.a = null;
- a.b = null;
- a.c = null;
- Qdd(c2);
- }
- function OUb(a) {
- var b, c2, d, e, f2, g, h;
- b = 0;
- for (f2 = new olb(a.b.a); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 189);
- d.b = 0;
- d.c = 0;
- }
- NUb(a, 0);
- MUb(a, a.g);
- sVb(a.c);
- wVb(a.c);
- c2 = (ead(), aad);
- uVb(oVb(tVb(uVb(oVb(tVb(uVb(tVb(a.c, c2)), had(c2)))), c2)));
- tVb(a.c, aad);
- RUb(a, a.g);
- SUb(a, 0);
- TUb(a, 0);
- UUb(a, 1);
- NUb(a, 1);
- MUb(a, a.d);
- sVb(a.c);
- for (g = new olb(a.b.a); g.a < g.c.c.length; ) {
- d = BD(mlb(g), 189);
- b += $wnd.Math.abs(d.c);
- }
- for (h = new olb(a.b.a); h.a < h.c.c.length; ) {
- d = BD(mlb(h), 189);
- d.b = 0;
- d.c = 0;
- }
- c2 = dad;
- uVb(oVb(tVb(uVb(oVb(tVb(uVb(wVb(tVb(a.c, c2))), had(c2)))), c2)));
- tVb(a.c, aad);
- RUb(a, a.d);
- SUb(a, 1);
- TUb(a, 1);
- UUb(a, 0);
- wVb(a.c);
- for (e = new olb(a.b.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 189);
- b += $wnd.Math.abs(d.c);
- }
- return b;
- }
- function Wfe(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- j = b;
- if (j.b == null || a.b == null)
- return;
- Yfe(a);
- Vfe(a);
- Yfe(j);
- Vfe(j);
- c2 = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1);
- k = 0;
- d = 0;
- g = 0;
- while (d < a.b.length && g < j.b.length) {
- e = a.b[d];
- f2 = a.b[d + 1];
- h = j.b[g];
- i3 = j.b[g + 1];
- if (f2 < h) {
- d += 2;
- } else if (f2 >= h && e <= i3) {
- if (h <= e && f2 <= i3) {
- c2[k++] = e;
- c2[k++] = f2;
- d += 2;
- } else if (h <= e) {
- c2[k++] = e;
- c2[k++] = i3;
- a.b[d] = i3 + 1;
- g += 2;
- } else if (f2 <= i3) {
- c2[k++] = h;
- c2[k++] = f2;
- d += 2;
- } else {
- c2[k++] = h;
- c2[k++] = i3;
- a.b[d] = i3 + 1;
- }
- } else if (i3 < e) {
- g += 2;
- } else {
- throw vbb(new hz("Token#intersectRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] & [" + j.b[g] + "," + j.b[g + 1] + "]"));
- }
- }
- while (d < a.b.length) {
- c2[k++] = a.b[d++];
- c2[k++] = a.b[d++];
- }
- a.b = KC(WD, oje, 25, k, 15, 1);
- $fb(c2, 0, a.b, 0, k);
- }
- function PUb(a) {
- var b, c2, d, e, f2, g, h;
- b = new Rkb();
- a.g = new Rkb();
- a.d = new Rkb();
- for (g = new nib(new eib(a.f.b).a); g.b; ) {
- f2 = lib(g);
- Ekb(b, BD(BD(f2.dd(), 46).b, 81));
- fad(BD(f2.cd(), 594).gf()) ? Ekb(a.d, BD(f2.dd(), 46)) : Ekb(a.g, BD(f2.dd(), 46));
- }
- MUb(a, a.d);
- MUb(a, a.g);
- a.c = new CVb(a.b);
- AVb(a.c, (xUb(), wUb));
- RUb(a, a.d);
- RUb(a, a.g);
- Gkb(b, a.c.a.b);
- a.e = new f7c(Pje, Pje);
- a.a = new f7c(Qje, Qje);
- for (d = new olb(b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 81);
- a.e.a = $wnd.Math.min(a.e.a, c2.g.c);
- a.e.b = $wnd.Math.min(a.e.b, c2.g.d);
- a.a.a = $wnd.Math.max(a.a.a, c2.g.c + c2.g.b);
- a.a.b = $wnd.Math.max(a.a.b, c2.g.d + c2.g.a);
- }
- zVb(a.c, new YUb());
- h = 0;
- do {
- e = OUb(a);
- ++h;
- } while ((h < 2 || e > Qie) && h < 10);
- zVb(a.c, new _Ub());
- OUb(a);
- vVb(a.c);
- yUb(a.f);
- }
- function sZb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- if (!Ccb(DD(vNb(c2, (Nyc(), fxc))))) {
- return;
- }
- for (h = new olb(c2.j); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 11);
- m = k_b(g.g);
- for (j = m, k = 0, l = j.length; k < l; ++k) {
- i3 = j[k];
- f2 = i3.d.i == c2;
- e = f2 && Ccb(DD(vNb(i3, gxc)));
- if (e) {
- o2 = i3.c;
- n = BD(Ohb(a.b, o2), 10);
- if (!n) {
- n = Z$b(o2, (dcd(), bcd), o2.j, -1, null, null, o2.o, BD(vNb(b, Lwc), 103), b);
- yNb(n, (wtc(), $sc), o2);
- Rhb(a.b, o2, n);
- Ekb(b.a, n);
- }
- q = i3.d;
- p = BD(Ohb(a.b, q), 10);
- if (!p) {
- p = Z$b(q, (dcd(), bcd), q.j, 1, null, null, q.o, BD(vNb(b, Lwc), 103), b);
- yNb(p, (wtc(), $sc), q);
- Rhb(a.b, q, p);
- Ekb(b.a, p);
- }
- d = kZb(i3);
- QZb(d, BD(Ikb(n.j, 0), 11));
- RZb(d, BD(Ikb(p.j, 0), 11));
- Rc(a.a, i3, new BZb(d, b, (KAc(), IAc)));
- BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc));
- }
- }
- }
+ return entry;
+ }, "next")
+ };
+ return hashIterableInts(iterator, seed);
+ }, "hashString");
+ hashStrings = /* @__PURE__ */ __name(function hashStrings2() {
+ return hashStringsArray(arguments);
+ }, "hashStrings");
+ hashStringsArray = /* @__PURE__ */ __name(function hashStringsArray2(strs) {
+ var hash;
+ for (var i2 = 0; i2 < strs.length; i2++) {
+ var str2 = strs[i2];
+ if (i2 === 0) {
+ hash = hashString(str2);
+ } else {
+ hash = hashString(str2, hash);
+ }
+ }
+ return hash;
+ }, "hashStringsArray");
+ warningsEnabled = true;
+ warnSupported = console.warn != null;
+ traceSupported = console.trace != null;
+ MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;
+ trueify = /* @__PURE__ */ __name(function trueify2() {
+ return true;
+ }, "trueify");
+ falsify = /* @__PURE__ */ __name(function falsify2() {
+ return false;
+ }, "falsify");
+ zeroify = /* @__PURE__ */ __name(function zeroify2() {
+ return 0;
+ }, "zeroify");
+ noop$1 = /* @__PURE__ */ __name(function noop3() {
+ }, "noop");
+ error = /* @__PURE__ */ __name(function error2(msg) {
+ throw new Error(msg);
+ }, "error");
+ warnings = /* @__PURE__ */ __name(function warnings2(enabled) {
+ if (enabled !== void 0) {
+ warningsEnabled = !!enabled;
+ } else {
+ return warningsEnabled;
+ }
+ }, "warnings");
+ warn = /* @__PURE__ */ __name(function warn2(msg) {
+ if (!warnings()) {
+ return;
+ }
+ if (warnSupported) {
+ console.warn(msg);
+ } else {
+ console.log(msg);
+ if (traceSupported) {
+ console.trace();
+ }
+ }
+ }, "warn");
+ clone3 = /* @__PURE__ */ __name(function clone4(obj) {
+ return extend2({}, obj);
+ }, "clone");
+ copy4 = /* @__PURE__ */ __name(function copy5(obj) {
+ if (obj == null) {
+ return obj;
+ }
+ if (array2(obj)) {
+ return obj.slice();
+ } else if (plainObject(obj)) {
+ return clone3(obj);
+ } else {
+ return obj;
+ }
+ }, "copy");
+ copyArray$1 = /* @__PURE__ */ __name(function copyArray2(arr) {
+ return arr.slice();
+ }, "copyArray");
+ uuid = /* @__PURE__ */ __name(function uuid2(a2, b2) {
+ for (
+ // loop :)
+ b2 = a2 = "";
+ // b - result , a - numeric letiable
+ a2++ < 36;
+ //
+ b2 += a2 * 51 & 52 ? (
+ // return a random number or 4
+ (a2 ^ 15 ? (
+ // generate a random number from 0 to 15
+ 8 ^ Math.random() * (a2 ^ 20 ? 16 : 4)
+ ) : 4).toString(16)
+ ) : "-"
+ ) {
+ }
+ return b2;
+ }, "uuid");
+ _staticEmptyObject = {};
+ staticEmptyObject = /* @__PURE__ */ __name(function staticEmptyObject2() {
+ return _staticEmptyObject;
+ }, "staticEmptyObject");
+ defaults$g = /* @__PURE__ */ __name(function defaults2(_defaults2) {
+ var keys3 = Object.keys(_defaults2);
+ return function(opts) {
+ var filledOpts = {};
+ for (var i2 = 0; i2 < keys3.length; i2++) {
+ var key = keys3[i2];
+ var optVal = opts == null ? void 0 : opts[key];
+ filledOpts[key] = optVal === void 0 ? _defaults2[key] : optVal;
+ }
+ return filledOpts;
+ };
+ }, "defaults");
+ removeFromArray = /* @__PURE__ */ __name(function removeFromArray2(arr, ele, oneCopy) {
+ for (var i2 = arr.length - 1; i2 >= 0; i2--) {
+ if (arr[i2] === ele) {
+ arr.splice(i2, 1);
+ if (oneCopy) {
+ break;
}
- function W9b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2;
- Odd(c2, "Label dummy switching", 1);
- d = BD(vNb(b, (Nyc(), Owc)), 227);
- J9b(b);
- e = T9b(b, d);
- a.a = KC(UD, Vje, 25, b.b.c.length, 15, 1);
- for (h = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), k = 0, n = h.length; k < n; ++k) {
- f2 = h[k];
- if ((f2 == zpc || f2 == upc || f2 == xpc) && !BD(uqb(e.a, f2) ? e.b[f2.g] : null, 15).dc()) {
- M9b(a, b);
- break;
- }
- }
- for (i3 = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), l = 0, o2 = i3.length; l < o2; ++l) {
- f2 = i3[l];
- f2 == zpc || f2 == upc || f2 == xpc || X9b(a, BD(uqb(e.a, f2) ? e.b[f2.g] : null, 15));
- }
- for (g = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), j = 0, m = g.length; j < m; ++j) {
- f2 = g[j];
- (f2 == zpc || f2 == upc || f2 == xpc) && X9b(a, BD(uqb(e.a, f2) ? e.b[f2.g] : null, 15));
- }
- a.a = null;
- Qdd(c2);
+ }
+ }
+ }, "removeFromArray");
+ clearArray = /* @__PURE__ */ __name(function clearArray2(arr) {
+ arr.splice(0, arr.length);
+ }, "clearArray");
+ push = /* @__PURE__ */ __name(function push2(arr, otherArr) {
+ for (var i2 = 0; i2 < otherArr.length; i2++) {
+ var el = otherArr[i2];
+ arr.push(el);
+ }
+ }, "push");
+ getPrefixedProperty = /* @__PURE__ */ __name(function getPrefixedProperty2(obj, propName, prefix) {
+ if (prefix) {
+ propName = prependCamel(prefix, propName);
+ }
+ return obj[propName];
+ }, "getPrefixedProperty");
+ setPrefixedProperty = /* @__PURE__ */ __name(function setPrefixedProperty2(obj, propName, prefix, value2) {
+ if (prefix) {
+ propName = prependCamel(prefix, propName);
+ }
+ obj[propName] = value2;
+ }, "setPrefixedProperty");
+ ObjectMap = /* @__PURE__ */ function() {
+ function ObjectMap2() {
+ _classCallCheck(this, ObjectMap2);
+ this._obj = {};
+ }
+ __name(ObjectMap2, "ObjectMap");
+ _createClass(ObjectMap2, [{
+ key: "set",
+ value: /* @__PURE__ */ __name(function set6(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 clear30() {
+ this._obj = {};
+ }, "clear")
+ }, {
+ key: "has",
+ value: /* @__PURE__ */ __name(function has2(key) {
+ return this._obj[key] !== void 0;
+ }, "has")
+ }, {
+ key: "get",
+ value: /* @__PURE__ */ __name(function get6(key) {
+ return this._obj[key];
+ }, "get")
+ }]);
+ return ObjectMap2;
+ }();
+ Map$2 = typeof Map !== "undefined" ? Map : ObjectMap;
+ undef = "undefined";
+ 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;
}
- function AFc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- switch (a.k.g) {
- case 1:
- d = BD(vNb(a, (wtc(), $sc)), 17);
- c2 = BD(vNb(d, _sc), 74);
- !c2 ? c2 = new s7c() : Ccb(DD(vNb(d, ltc))) && (c2 = w7c(c2));
- j = BD(vNb(a, Vsc), 11);
- if (j) {
- k = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a]));
- if (b <= k.a) {
- return k.b;
- }
- Gsb(c2, k, c2.a, c2.a.a);
- }
- l = BD(vNb(a, Wsc), 11);
- if (l) {
- m = l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a]));
- if (m.a <= b) {
- return m.b;
- }
- Gsb(c2, m, c2.c.b, c2.c);
- }
- if (c2.b >= 2) {
- i3 = Jsb(c2, 0);
- g = BD(Xsb(i3), 8);
- h = BD(Xsb(i3), 8);
- while (h.a < b && i3.b != i3.d.c) {
- g = h;
- h = BD(Xsb(i3), 8);
- }
- return g.b + (b - g.a) / (h.a - g.a) * (h.b - g.b);
- }
- break;
- case 3:
- f2 = BD(vNb(BD(Ikb(a.j, 0), 11), (wtc(), $sc)), 11);
- e = f2.i;
- switch (f2.j.g) {
- case 1:
- return e.n.b;
- case 3:
- return e.n.b + e.o.b;
- }
- }
- return T_b(a).b;
- }
- function Wgc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- for (g = new olb(a.d.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 29);
- for (i3 = new olb(f2.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- if (Ccb(DD(vNb(h, (Nyc(), pwc))))) {
- if (!Qq(O_b(h))) {
- d = BD(Oq(O_b(h)), 17);
- k = d.c.i;
- k == h && (k = d.d.i);
- l = new vgd(k, c7c(R6c(h.n), k.n));
- Rhb(a.b, h, l);
- continue;
- }
- }
- e = new J6c(h.n.a - h.d.b, h.n.b - h.d.d, h.o.a + h.d.b + h.d.c, h.o.b + h.d.d + h.d.a);
- b = vDb(yDb(wDb(xDb(new zDb(), h), e), Fgc), a.a);
- pDb(qDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), b), a.a);
- j = new lEb();
- Rhb(a.e, b, j);
- c2 = sr(new Sr(ur(R_b(h).a.Kc(), new Sq()))) - sr(new Sr(ur(U_b(h).a.Kc(), new Sq())));
- c2 < 0 ? jEb(j, true, (ead(), aad)) : c2 > 0 && jEb(j, true, (ead(), bad));
- h.k == (j0b(), e0b) && kEb(j);
- Rhb(a.f, h, b);
- }
- }
- }
- function Bbc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- Odd(c2, "Node promotion heuristic", 1);
- a.g = b;
- Abc(a);
- a.q = BD(vNb(b, (Nyc(), rxc)), 260);
- k = BD(vNb(a.g, qxc), 19).a;
- f2 = new Jbc();
- switch (a.q.g) {
- case 2:
- case 1:
- Dbc(a, f2);
- break;
- case 3:
- a.q = (kAc(), jAc);
- Dbc(a, f2);
- i3 = 0;
- for (h = new olb(a.a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 19);
- i3 = $wnd.Math.max(i3, g.a);
- }
- if (i3 > a.j) {
- a.q = dAc;
- Dbc(a, f2);
- }
- break;
- case 4:
- a.q = (kAc(), jAc);
- Dbc(a, f2);
- j = 0;
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = ED(mlb(e));
- j = $wnd.Math.max(j, (uCb(d), d));
- }
- if (j > a.k) {
- a.q = gAc;
- Dbc(a, f2);
- }
- break;
- case 6:
- m = QD($wnd.Math.ceil(a.f.length * k / 100));
- Dbc(a, new Mbc(m));
- break;
- case 5:
- l = QD($wnd.Math.ceil(a.d * k / 100));
- Dbc(a, new Pbc(l));
- break;
- default:
- Dbc(a, f2);
- }
- Ebc(a, b);
- Qdd(c2);
- }
- function fFc(a, b, c2) {
- var d, e, f2, g;
- this.j = a;
- this.e = WZb(a);
- this.o = this.j.e;
- this.i = !!this.o;
- this.p = this.i ? BD(Ikb(c2, Q_b(this.o).p), 214) : null;
- e = BD(vNb(a, (wtc(), Ksc)), 21);
- this.g = e.Hc((Orc(), Hrc));
- this.b = new Rkb();
- this.d = new rHc(this.e);
- g = BD(vNb(this.j, jtc), 230);
- this.q = wFc(b, g, this.e);
- this.k = new BGc(this);
- f2 = Ou(OC(GC(qY, 1), Uhe, 225, 0, [this, this.d, this.k, this.q]));
- if (b == (rGc(), oGc) && !Ccb(DD(vNb(a, (Nyc(), Awc))))) {
- d = new SEc(this.e);
- f2.c[f2.c.length] = d;
- this.c = new uEc(d, g, BD(this.q, 402));
- } else if (b == oGc && Ccb(DD(vNb(a, (Nyc(), Awc))))) {
- d = new SEc(this.e);
- f2.c[f2.c.length] = d;
- this.c = new XGc(d, g, BD(this.q, 402));
- } else {
- this.c = new Oic(b, this);
- }
- Ekb(f2, this.c);
- $Ic(f2, this.e);
- this.s = AGc(this.k);
- }
- function xUc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- l = BD(pr((g = Jsb(new ZRc(b).a.d, 0), new aSc(g))), 86);
- o2 = l ? BD(vNb(l, (mTc(), _Sc)), 86) : null;
- e = 1;
- while (!!l && !!o2) {
- i3 = 0;
- u2 = 0;
- c2 = l;
- d = o2;
- for (h = 0; h < e; h++) {
- c2 = VRc(c2);
- d = VRc(d);
- u2 += Edb(ED(vNb(c2, (mTc(), cTc))));
- i3 += Edb(ED(vNb(d, cTc)));
- }
- t4 = Edb(ED(vNb(o2, (mTc(), fTc))));
- s = Edb(ED(vNb(l, fTc)));
- m = zUc(l, o2);
- n = t4 + i3 + a.a + m - s - u2;
- if (0 < n) {
- j = b;
- k = 0;
- while (!!j && j != d) {
- ++k;
- j = BD(vNb(j, aTc), 86);
- }
- if (j) {
- r = n / k;
- j = b;
- while (j != d) {
- q = Edb(ED(vNb(j, fTc))) + n;
- yNb(j, fTc, q);
- p = Edb(ED(vNb(j, cTc))) + n;
- yNb(j, cTc, p);
- n -= r;
- j = BD(vNb(j, aTc), 86);
- }
- } else {
- return;
- }
- }
- ++e;
- l.d.b == 0 ? l = JRc(new ZRc(b), e) : l = BD(pr((f2 = Jsb(new ZRc(l).a.d, 0), new aSc(f2))), 86);
- o2 = l ? BD(vNb(l, _Sc), 86) : null;
- }
- }
- function Cbc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- i3 = true;
- e = 0;
- j = a.f[b.p];
- k = b.o.b + a.n;
- c2 = a.c[b.p][2];
- Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a - 1 + c2));
- Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) - k + c2 * a.e);
- ++j;
- if (j >= a.i) {
- ++a.i;
- Ekb(a.a, meb(1));
- Ekb(a.b, k);
- } else {
- d = a.c[b.p][1];
- Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a + 1 - d));
- Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) + k - d * a.e);
- }
- (a.q == (kAc(), dAc) && (BD(Ikb(a.a, j), 19).a > a.j || BD(Ikb(a.a, j - 1), 19).a > a.j) || a.q == gAc && (Edb(ED(Ikb(a.b, j))) > a.k || Edb(ED(Ikb(a.b, j - 1))) > a.k)) && (i3 = false);
- for (g = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(g); ) {
- f2 = BD(Rr(g), 17);
- h = f2.c.i;
- if (a.f[h.p] == j) {
- l = Cbc(a, h);
- e = e + BD(l.a, 19).a;
- i3 = i3 && Ccb(DD(l.b));
- }
- }
- a.f[b.p] = j;
- e = e + a.c[b.p][0];
- return new vgd(meb(e), (Bcb(), i3 ? true : false));
- }
- function sPc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- l = new Lqb();
- g = new Rkb();
- qPc(a, c2, a.d.fg(), g, l);
- qPc(a, d, a.d.gg(), g, l);
- a.b = 0.2 * (p = rPc(LAb(new YAb(null, new Kub(g, 16)), new xPc())), q = rPc(LAb(new YAb(null, new Kub(g, 16)), new zPc())), $wnd.Math.min(p, q));
- f2 = 0;
- for (h = 0; h < g.c.length - 1; h++) {
- i3 = (tCb(h, g.c.length), BD(g.c[h], 112));
- for (o2 = h + 1; o2 < g.c.length; o2++) {
- f2 += pPc(a, i3, (tCb(o2, g.c.length), BD(g.c[o2], 112)));
- }
- }
- m = BD(vNb(b, (wtc(), jtc)), 230);
- f2 >= 2 && (r = WNc(g, true, m), !a.e && (a.e = new ZOc(a)), VOc(a.e, r, g, a.b), void 0);
- uPc(g, m);
- wPc(g);
- n = -1;
- for (k = new olb(g); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 112);
- if ($wnd.Math.abs(j.s - j.c) < qme) {
- continue;
- }
- n = $wnd.Math.max(n, j.o);
- a.d.dg(j, e, a.c);
- }
- a.d.a.a.$b();
- return n + 1;
- }
- function aUb(a, b) {
- var c2, d, e, f2, g;
- c2 = Edb(ED(vNb(b, (Nyc(), lyc))));
- c2 < 2 && yNb(b, lyc, 2);
- d = BD(vNb(b, Lwc), 103);
- d == (ead(), cad) && yNb(b, Lwc, a_b(b));
- e = BD(vNb(b, fyc), 19);
- e.a == 0 ? yNb(b, (wtc(), jtc), new Gub()) : yNb(b, (wtc(), jtc), new Hub(e.a));
- f2 = DD(vNb(b, Axc));
- f2 == null && yNb(b, Axc, (Bcb(), PD(vNb(b, Swc)) === PD((Aad(), wad)) ? true : false));
- MAb(new YAb(null, new Kub(b.a, 16)), new dUb(a));
- MAb(LAb(new YAb(null, new Kub(b.b, 16)), new fUb()), new hUb(a));
- g = new oBc(b);
- yNb(b, (wtc(), otc), g);
- H2c(a.a);
- K2c(a.a, (qUb(), lUb), BD(vNb(b, Jwc), 246));
- K2c(a.a, mUb, BD(vNb(b, sxc), 246));
- K2c(a.a, nUb, BD(vNb(b, Iwc), 246));
- K2c(a.a, oUb, BD(vNb(b, Exc), 246));
- K2c(a.a, pUb, kNc(BD(vNb(b, Swc), 218)));
- E2c(a.a, _Tb(b));
- yNb(b, itc, F2c(a.a, b));
- }
- function fjc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- if (m = a.c[b], n = a.c[c2], (o2 = BD(vNb(m, (wtc(), Qsc)), 15), !!o2 && o2.gc() != 0 && o2.Hc(n)) || (p = m.k != (j0b(), g0b) && n.k != g0b, q = BD(vNb(m, Psc), 10), r = BD(vNb(n, Psc), 10), s = q != r, t4 = !!q && q != m || !!r && r != n, u2 = gjc(m, (Ucd(), Acd)), v = gjc(n, Rcd), t4 = t4 | (gjc(m, Rcd) || gjc(n, Acd)), w2 = t4 && s || u2 || v, p && w2) || m.k == (j0b(), i0b) && n.k == h0b || n.k == (j0b(), i0b) && m.k == h0b) {
- return false;
- }
- k = a.c[b];
- f2 = a.c[c2];
- e = LHc(a.e, k, f2, (Ucd(), Tcd));
- i3 = LHc(a.i, k, f2, zcd);
- Yic(a.f, k, f2);
- j = Hic(a.b, k, f2) + BD(e.a, 19).a + BD(i3.a, 19).a + a.f.d;
- h = Hic(a.b, f2, k) + BD(e.b, 19).a + BD(i3.b, 19).a + a.f.b;
- if (a.a) {
- l = BD(vNb(k, $sc), 11);
- g = BD(vNb(f2, $sc), 11);
- d = JHc(a.g, l, g);
- j += BD(d.a, 19).a;
- h += BD(d.b, 19).a;
- }
- return j > h;
- }
- function k6b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- c2 = BD(vNb(a, (Nyc(), Vxc)), 98);
- g = a.f;
- f2 = a.d;
- h = g.a + f2.b + f2.c;
- i3 = 0 - f2.d - a.c.b;
- k = g.b + f2.d + f2.a - a.c.b;
- j = new Rkb();
- l = new Rkb();
- for (e = new olb(b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- switch (c2.g) {
- case 1:
- case 2:
- case 3:
- a6b(d);
- break;
- case 4:
- m = BD(vNb(d, Txc), 8);
- n = !m ? 0 : m.a;
- d.n.a = h * Edb(ED(vNb(d, (wtc(), htc)))) - n;
- M_b(d, true, false);
- break;
- case 5:
- o2 = BD(vNb(d, Txc), 8);
- p = !o2 ? 0 : o2.a;
- d.n.a = Edb(ED(vNb(d, (wtc(), htc)))) - p;
- M_b(d, true, false);
- g.a = $wnd.Math.max(g.a, d.n.a + d.o.a / 2);
- }
- switch (BD(vNb(d, (wtc(), Hsc)), 61).g) {
- case 1:
- d.n.b = i3;
- j.c[j.c.length] = d;
- break;
- case 3:
- d.n.b = k;
- l.c[l.c.length] = d;
- }
- }
- switch (c2.g) {
- case 1:
- case 2:
- c6b(j, a);
- c6b(l, a);
- break;
- case 3:
- i6b(j, a);
- i6b(l, a);
- }
- }
- function VHc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l;
- k = new Rkb();
- l = new jkb();
- f2 = null;
- e = 0;
- for (d = 0; d < b.length; ++d) {
- c2 = b[d];
- XHc(f2, c2) && (e = QHc(a, l, k, EHc, e));
- wNb(c2, (wtc(), Psc)) && (f2 = BD(vNb(c2, Psc), 10));
- switch (c2.k.g) {
- case 0:
- for (i3 = Vq(Nq(V_b(c2, (Ucd(), Acd)), new GIc())); xc(i3); ) {
- g = BD(yc(i3), 11);
- a.d[g.p] = e++;
- k.c[k.c.length] = g;
- }
- e = QHc(a, l, k, EHc, e);
- for (j = Vq(Nq(V_b(c2, Rcd), new GIc())); xc(j); ) {
- g = BD(yc(j), 11);
- a.d[g.p] = e++;
- k.c[k.c.length] = g;
- }
- break;
- case 3:
- if (!V_b(c2, DHc).dc()) {
- g = BD(V_b(c2, DHc).Xb(0), 11);
- a.d[g.p] = e++;
- k.c[k.c.length] = g;
- }
- V_b(c2, EHc).dc() || Wjb(l, c2);
- break;
- case 1:
- for (h = V_b(c2, (Ucd(), Tcd)).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 11);
- a.d[g.p] = e++;
- k.c[k.c.length] = g;
- }
- V_b(c2, zcd).Jc(new EIc(l, c2));
- }
- }
- QHc(a, l, k, EHc, e);
- return k;
- }
- function y$c(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
- j = Pje;
- k = Pje;
- h = Qje;
- i3 = Qje;
- for (m = new olb(b.i); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 65);
- e = BD(BD(Ohb(a.g, l.a), 46).b, 33);
- bld(e, l.b.c, l.b.d);
- j = $wnd.Math.min(j, e.i);
- k = $wnd.Math.min(k, e.j);
- h = $wnd.Math.max(h, e.i + e.g);
- i3 = $wnd.Math.max(i3, e.j + e.f);
- }
- n = BD(hkd(a.c, (d0c(), W_c)), 116);
- Afd(a.c, h - j + (n.b + n.c), i3 - k + (n.d + n.a), true, true);
- Efd(a.c, -j + n.b, -k + n.d);
- for (d = new Fyd(Wod(a.c)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 79);
- g = itd(c2, true, true);
- o2 = jtd(c2);
- q = ltd(c2);
- p = new f7c(o2.i + o2.g / 2, o2.j + o2.f / 2);
- f2 = new f7c(q.i + q.g / 2, q.j + q.f / 2);
- r = c7c(new f7c(f2.a, f2.b), p);
- l6c(r, o2.g, o2.f);
- P6c(p, r);
- s = c7c(new f7c(p.a, p.b), f2);
- l6c(s, q.g, q.f);
- P6c(f2, s);
- nmd(g, p.a, p.b);
- gmd(g, f2.a, f2.b);
- }
- }
- function EYb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- a.c = a.d;
- o2 = DD(vNb(b, (Nyc(), gyc)));
- n = o2 == null || (uCb(o2), o2);
- f2 = BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc));
- e = BD(vNb(b, Vxc), 98);
- c2 = !(e == (dcd(), Zbd) || e == _bd || e == $bd);
- if (n && (c2 || !f2)) {
- for (l = new olb(b.a); l.a < l.c.c.length; ) {
- j = BD(mlb(l), 10);
- j.p = 0;
- }
- m = new Rkb();
- for (k = new olb(b.a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 10);
- d = DYb(a, j, null);
- if (d) {
- i3 = new XZb();
- tNb(i3, b);
- yNb(i3, Esc, BD(d.b, 21));
- u_b(i3.d, b.d);
- yNb(i3, Hxc, null);
- for (h = BD(d.a, 15).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 10);
- Ekb(i3.a, g);
- g.a = i3;
- }
- m.Fc(i3);
- }
- }
- f2 && (PD(vNb(b, twc)) === PD((RXb(), OXb)) ? a.c = a.b : a.c = a.a);
- } else {
- m = new amb(OC(GC(KQ, 1), cne, 37, 0, [b]));
- }
- PD(vNb(b, twc)) !== PD((RXb(), QXb)) && (mmb(), m.ad(new HYb()));
- return m;
- }
- function KTc(a) {
- r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), are), "ELK Mr. Tree"), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new NTc()), bre), pqb((Csd(), wsd)))));
- p4c(a, are, ame, CTc);
- p4c(a, are, wme, 20);
- p4c(a, are, _le, tme);
- p4c(a, are, vme, meb(1));
- p4c(a, are, zme, (Bcb(), true));
- p4c(a, are, Zpe, Ksd(vTc));
- p4c(a, are, Fme, Ksd(xTc));
- p4c(a, are, Tme, Ksd(yTc));
- p4c(a, are, Eme, Ksd(zTc));
- p4c(a, are, Gme, Ksd(wTc));
- p4c(a, are, Dme, Ksd(ATc));
- p4c(a, are, Hme, Ksd(DTc));
- p4c(a, are, Zqe, Ksd(ITc));
- p4c(a, are, $qe, Ksd(FTc));
- }
- function zod(a) {
- if (a.q)
- return;
- a.q = true;
- a.p = Lnd(a, 0);
- a.a = Lnd(a, 1);
- Qnd(a.a, 0);
- a.f = Lnd(a, 2);
- Qnd(a.f, 1);
- Knd(a.f, 2);
- a.n = Lnd(a, 3);
- Knd(a.n, 3);
- Knd(a.n, 4);
- Knd(a.n, 5);
- Knd(a.n, 6);
- a.g = Lnd(a, 4);
- Qnd(a.g, 7);
- Knd(a.g, 8);
- a.c = Lnd(a, 5);
- Qnd(a.c, 7);
- Qnd(a.c, 8);
- a.i = Lnd(a, 6);
- Qnd(a.i, 9);
- Qnd(a.i, 10);
- Qnd(a.i, 11);
- Qnd(a.i, 12);
- Knd(a.i, 13);
- a.j = Lnd(a, 7);
- Qnd(a.j, 9);
- a.d = Lnd(a, 8);
- Qnd(a.d, 3);
- Qnd(a.d, 4);
- Qnd(a.d, 5);
- Qnd(a.d, 6);
- Knd(a.d, 7);
- Knd(a.d, 8);
- Knd(a.d, 9);
- Knd(a.d, 10);
- a.b = Lnd(a, 9);
- Knd(a.b, 0);
- Knd(a.b, 1);
- a.e = Lnd(a, 10);
- Knd(a.e, 1);
- Knd(a.e, 2);
- Knd(a.e, 3);
- Knd(a.e, 4);
- Qnd(a.e, 5);
- Qnd(a.e, 6);
- Qnd(a.e, 7);
- Qnd(a.e, 8);
- Qnd(a.e, 9);
- Qnd(a.e, 10);
- Knd(a.e, 11);
- a.k = Lnd(a, 11);
- Knd(a.k, 0);
- Knd(a.k, 1);
- a.o = Mnd(a, 12);
- a.s = Mnd(a, 13);
- }
- function AUb(a, b) {
- b.dc() && HVb(a.j, true, true, true, true);
- pb(b, (Ucd(), Gcd)) && HVb(a.j, true, true, true, false);
- pb(b, Bcd) && HVb(a.j, false, true, true, true);
- pb(b, Ocd) && HVb(a.j, true, true, false, true);
- pb(b, Qcd) && HVb(a.j, true, false, true, true);
- pb(b, Hcd) && HVb(a.j, false, true, true, false);
- pb(b, Ccd) && HVb(a.j, false, true, false, true);
- pb(b, Pcd) && HVb(a.j, true, false, false, true);
- pb(b, Ncd) && HVb(a.j, true, false, true, false);
- pb(b, Lcd) && HVb(a.j, true, true, true, true);
- pb(b, Ecd) && HVb(a.j, true, true, true, true);
- pb(b, Lcd) && HVb(a.j, true, true, true, true);
- pb(b, Dcd) && HVb(a.j, true, true, true, true);
- pb(b, Mcd) && HVb(a.j, true, true, true, true);
- pb(b, Kcd) && HVb(a.j, true, true, true, true);
- pb(b, Jcd) && HVb(a.j, true, true, true, true);
- }
- function rZb(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q;
- f2 = new Rkb();
- for (j = new olb(d); j.a < j.c.c.length; ) {
- h = BD(mlb(j), 441);
- g = null;
- if (h.f == (KAc(), IAc)) {
- for (o2 = new olb(h.e); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 17);
- q = n.d.i;
- if (Q_b(q) == b) {
- iZb(a, b, h, n, h.b, n.d);
- } else if (!c2 || f_b(q, c2)) {
- jZb(a, b, h, d, n);
- } else {
- m = oZb(a, b, c2, n, h.b, IAc, g);
- m != g && (f2.c[f2.c.length] = m, true);
- m.c && (g = m);
- }
- }
- } else {
- for (l = new olb(h.e); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 17);
- p = k.c.i;
- if (Q_b(p) == b) {
- iZb(a, b, h, k, k.c, h.b);
- } else if (!c2 || f_b(p, c2)) {
- continue;
- } else {
- m = oZb(a, b, c2, k, h.b, HAc, g);
- m != g && (f2.c[f2.c.length] = m, true);
- m.c && (g = m);
- }
- }
- }
- }
- for (i3 = new olb(f2); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 441);
- Jkb(b.a, h.a, 0) != -1 || Ekb(b.a, h.a);
- h.c && (e.c[e.c.length] = h, true);
- }
+ for (var i2 = 0; i2 < arr.length; i2++) {
+ this.add(arr[i2]);
}
- function SJc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- j = new Rkb();
- for (i3 = new olb(b.a); i3.a < i3.c.c.length; ) {
- g = BD(mlb(i3), 10);
- for (m = V_b(g, (Ucd(), zcd)).Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 11);
- for (e = new olb(l.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.d.i.c != c2) {
- continue;
- }
- j.c[j.c.length] = d;
- }
- }
- }
- for (h = Su(c2.a).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 10);
- for (m = V_b(g, (Ucd(), Tcd)).Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 11);
- for (e = new olb(l.e); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.c.i.c != b) {
- continue;
- }
- k = new Bib(j, j.c.length);
- f2 = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17));
- while (f2 != d && k.b > 0) {
- a.a[f2.p] = true;
- a.a[d.p] = true;
- f2 = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17));
- }
- k.b > 0 && uib(k);
- }
- }
- }
+ }
+ }
+ __name(ObjectSet2, "ObjectSet");
+ _createClass(ObjectSet2, [{
+ key: "instanceString",
+ value: /* @__PURE__ */ __name(function instanceString4() {
+ return "set";
+ }, "instanceString")
+ }, {
+ key: "add",
+ value: /* @__PURE__ */ __name(function add3(val) {
+ var o2 = this._obj;
+ if (o2[val] !== 1) {
+ o2[val] = 1;
+ this.size++;
}
- function Vmd(b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m;
- if (b.a != c2.Aj()) {
- throw vbb(new Wdb(tte + c2.ne() + ute));
- }
- e = o1d((O6d(), M6d), c2).$k();
- if (e) {
- return e.Aj().Nh().Ih(e, d);
- }
- h = o1d(M6d, c2).al();
- if (h) {
- if (d == null) {
- return null;
- }
- i3 = BD(d, 15);
- if (i3.dc()) {
- return "";
- }
- m = new Hfb();
- for (g = i3.Kc(); g.Ob(); ) {
- f2 = g.Pb();
- Efb(m, h.Aj().Nh().Ih(h, f2));
- m.a += " ";
- }
- return lcb(m, m.a.length - 1);
- }
- l = o1d(M6d, c2).bl();
- if (!l.dc()) {
- for (k = l.Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 148);
- if (j.wj(d)) {
- try {
- m = j.Aj().Nh().Ih(j, d);
- if (m != null) {
- return m;
- }
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 102))
- throw vbb(a);
- }
- }
- }
- throw vbb(new Wdb("Invalid value: '" + d + "' for datatype :" + c2.ne()));
- }
- BD(c2, 834).Fj();
- return d == null ? null : JD(d, 172) ? "" + BD(d, 172).a : rb(d) == $J ? CQd(Pmd[0], BD(d, 199)) : fcb(d);
- }
- function zQc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- j = new Psb();
- h = new Psb();
- for (f2 = new olb(a); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 128);
- d.v = 0;
- d.n = d.i.c.length;
- d.u = d.t.c.length;
- d.n == 0 && (Gsb(j, d, j.c.b, j.c), true);
- d.u == 0 && d.r.a.gc() == 0 && (Gsb(h, d, h.c.b, h.c), true);
- }
- g = -1;
- while (j.b != 0) {
- d = BD(Vt(j, 0), 128);
- for (c2 = new olb(d.t); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 268);
- k = b.b;
- k.v = $wnd.Math.max(k.v, d.v + 1);
- g = $wnd.Math.max(g, k.v);
- --k.n;
- k.n == 0 && (Gsb(j, k, j.c.b, j.c), true);
- }
- }
- if (g > -1) {
- for (e = Jsb(h, 0); e.b != e.d.c; ) {
- d = BD(Xsb(e), 128);
- d.v = g;
- }
- while (h.b != 0) {
- d = BD(Vt(h, 0), 128);
- for (c2 = new olb(d.i); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 268);
- i3 = b.a;
- if (i3.r.a.gc() != 0) {
- continue;
- }
- i3.v = $wnd.Math.min(i3.v, d.v - 1);
- --i3.u;
- i3.u == 0 && (Gsb(h, i3, h.c.b, h.c), true);
- }
- }
- }
- }
- function A6c(a, b, c2, d, e) {
- var f2, g, h, i3;
- i3 = Pje;
- g = false;
- h = v6c(a, c7c(new f7c(b.a, b.b), a), P6c(new f7c(c2.a, c2.b), e), c7c(new f7c(d.a, d.b), c2));
- f2 = !!h && !($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse || $wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse);
- h = v6c(a, c7c(new f7c(b.a, b.b), a), c2, e);
- !!h && (($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f2 ? i3 = $wnd.Math.min(i3, U6c(c7c(h, c2))) : g = true);
- h = v6c(a, c7c(new f7c(b.a, b.b), a), d, e);
- !!h && (g || ($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f2) && (i3 = $wnd.Math.min(i3, U6c(c7c(h, d))));
- return i3;
- }
- function cTb(a) {
- r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), Rme), Sme), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new fTb()), ume)));
- p4c(a, Rme, Ame, Ksd(VSb));
- p4c(a, Rme, Cme, (Bcb(), true));
- p4c(a, Rme, Fme, Ksd(YSb));
- p4c(a, Rme, Tme, Ksd(ZSb));
- p4c(a, Rme, Eme, Ksd($Sb));
- p4c(a, Rme, Gme, Ksd(XSb));
- p4c(a, Rme, Dme, Ksd(_Sb));
- p4c(a, Rme, Hme, Ksd(aTb));
- p4c(a, Rme, Mme, Ksd(USb));
- p4c(a, Rme, Ome, Ksd(SSb));
- p4c(a, Rme, Pme, Ksd(TSb));
- p4c(a, Rme, Qme, Ksd(WSb));
- p4c(a, Rme, Nme, Ksd(RSb));
- }
- function BFc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- Odd(b, "Interactive crossing minimization", 1);
- g = 0;
- for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 29);
- d.p = g++;
- }
- m = WZb(a);
- q = new iHc(m.length);
- $Ic(new amb(OC(GC(qY, 1), Uhe, 225, 0, [q])), m);
- p = 0;
- g = 0;
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- c2 = 0;
- l = 0;
- for (k = new olb(d.a); k.a < k.c.c.length; ) {
- i3 = BD(mlb(k), 10);
- if (i3.n.a > 0) {
- c2 += i3.n.a + i3.o.a / 2;
- ++l;
- }
- for (o2 = new olb(i3.j); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 11);
- n.p = p++;
- }
- }
- l > 0 && (c2 /= l);
- r = KC(UD, Vje, 25, d.a.c.length, 15, 1);
- h = 0;
- for (j = new olb(d.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- i3.p = h++;
- r[i3.p] = AFc(i3, c2);
- i3.k == (j0b(), g0b) && yNb(i3, (wtc(), atc), r[i3.p]);
- }
- mmb();
- Okb(d.a, new GFc(r));
- YDc(q, m, g, true);
- ++g;
- }
- Qdd(b);
- }
- function Zfe(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- if (b.e == 5) {
- Wfe(a, b);
- return;
- }
- j = b;
- if (j.b == null || a.b == null)
- return;
- Yfe(a);
- Vfe(a);
- Yfe(j);
- Vfe(j);
- c2 = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1);
- k = 0;
- d = 0;
- g = 0;
- while (d < a.b.length && g < j.b.length) {
- e = a.b[d];
- f2 = a.b[d + 1];
- h = j.b[g];
- i3 = j.b[g + 1];
- if (f2 < h) {
- c2[k++] = a.b[d++];
- c2[k++] = a.b[d++];
- } else if (f2 >= h && e <= i3) {
- if (h <= e && f2 <= i3) {
- d += 2;
- } else if (h <= e) {
- a.b[d] = i3 + 1;
- g += 2;
- } else if (f2 <= i3) {
- c2[k++] = e;
- c2[k++] = h - 1;
- d += 2;
- } else {
- c2[k++] = e;
- c2[k++] = h - 1;
- a.b[d] = i3 + 1;
- g += 2;
- }
- } else if (i3 < e) {
- g += 2;
- } else {
- throw vbb(new hz("Token#subtractRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] - [" + j.b[g] + "," + j.b[g + 1] + "]"));
- }
- }
- while (d < a.b.length) {
- c2[k++] = a.b[d++];
- c2[k++] = a.b[d++];
- }
- a.b = KC(WD, oje, 25, k, 15, 1);
- $fb(c2, 0, a.b, 0, k);
+ }, "add")
+ }, {
+ key: "delete",
+ value: /* @__PURE__ */ __name(function _delete(val) {
+ var o2 = this._obj;
+ if (o2[val] === 1) {
+ o2[val] = 0;
+ this.size--;
}
- function BJb(a) {
- var b, c2, d, e, f2, g, h;
- if (a.A.dc()) {
- return;
- }
- if (a.A.Hc((tdd(), rdd))) {
- BD(Mpb(a.b, (Ucd(), Acd)), 124).k = true;
- BD(Mpb(a.b, Rcd), 124).k = true;
- b = a.q != (dcd(), _bd) && a.q != $bd;
- ZGb(BD(Mpb(a.b, zcd), 124), b);
- ZGb(BD(Mpb(a.b, Tcd), 124), b);
- ZGb(a.g, b);
- if (a.A.Hc(sdd)) {
- BD(Mpb(a.b, Acd), 124).j = true;
- BD(Mpb(a.b, Rcd), 124).j = true;
- BD(Mpb(a.b, zcd), 124).k = true;
- BD(Mpb(a.b, Tcd), 124).k = true;
- a.g.k = true;
- }
- }
- if (a.A.Hc(qdd)) {
- a.a.j = true;
- a.a.k = true;
- a.g.j = true;
- a.g.k = true;
- h = a.B.Hc((Idd(), Edd));
- for (e = wJb(), f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- c2 = BD(Mpb(a.i, d), 306);
- if (c2) {
- if (sJb(d)) {
- c2.j = true;
- c2.k = true;
- } else {
- c2.j = !h;
- c2.k = !h;
- }
- }
- }
- }
- if (a.A.Hc(pdd) && a.B.Hc((Idd(), Ddd))) {
- a.g.j = true;
- a.g.j = true;
- if (!a.a.j) {
- a.a.j = true;
- a.a.k = true;
- a.a.e = true;
- }
- }
- }
- function GJc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- for (d = new olb(a.e.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- n = a.i[e.p];
- j = n.a.e;
- i3 = n.d.e;
- e.n.b = j;
- r = i3 - j - e.o.b;
- b = bKc(e);
- m = (Izc(), (!e.q ? (mmb(), mmb(), kmb) : e.q)._b((Nyc(), Cxc)) ? l = BD(vNb(e, Cxc), 197) : l = BD(vNb(Q_b(e), Dxc), 197), l);
- b && (m == Fzc || m == Ezc) && (e.o.b += r);
- if (b && (m == Hzc || m == Fzc || m == Ezc)) {
- for (p = new olb(e.j); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 11);
- if ((Ucd(), Ecd).Hc(o2.j)) {
- k = BD(Ohb(a.k, o2), 121);
- o2.n.b = k.e - j;
- }
- }
- for (h = new olb(e.b); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 70);
- q = BD(vNb(e, xxc), 21);
- q.Hc((Hbd(), Ebd)) ? g.n.b += r : q.Hc(Fbd) && (g.n.b += r / 2);
- }
- (m == Fzc || m == Ezc) && V_b(e, (Ucd(), Rcd)).Jc(new $Kc(r));
- }
- }
+ }, "_delete")
+ }, {
+ key: "clear",
+ value: /* @__PURE__ */ __name(function clear30() {
+ this._obj = /* @__PURE__ */ Object.create(null);
+ }, "clear")
+ }, {
+ key: "has",
+ value: /* @__PURE__ */ __name(function has2(val) {
+ return this._obj[val] === 1;
+ }, "has")
+ }, {
+ key: "toArray",
+ value: /* @__PURE__ */ __name(function toArray3() {
+ var _this = this;
+ return Object.keys(this._obj).filter(function(key) {
+ return _this.has(key);
+ });
+ }, "toArray")
+ }, {
+ key: "forEach",
+ value: /* @__PURE__ */ __name(function forEach3(callback, thisArg) {
+ return this.toArray().forEach(callback, thisArg);
+ }, "forEach")
+ }]);
+ return ObjectSet2;
+ }();
+ Set$1 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet;
+ 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 classes6 = [];
+ if (array2(params.classes)) {
+ classes6 = params.classes;
+ } else if (string(params.classes)) {
+ classes6 = params.classes.split(/\s+/);
+ }
+ for (var i2 = 0, l2 = classes6.length; i2 < l2; i2++) {
+ var cls = classes6[i2];
+ 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");
+ 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 options3;
+ if (plainObject(roots) && !elementOrCollection(roots)) {
+ options3 = roots;
+ roots = options3.roots || options3.root;
+ fn3 = options3.visit;
+ directed = options3.directed;
+ }
+ directed = arguments.length === 2 && !fn$6(fn3) ? fn3 : directed;
+ fn3 = fn$6(fn3) ? fn3 : function() {
+ };
+ var cy = this._private.cy;
+ var v3 = roots = string(roots) ? this.filter(roots) : roots;
+ var Q2 = [];
+ var connectedNodes = [];
+ var connectedBy = {};
+ var id2depth = {};
+ var V2 = {};
+ var j2 = 0;
+ var found;
+ var _this$byGroup = this.byGroup(), nodes6 = _this$byGroup.nodes, edges5 = _this$byGroup.edges;
+ for (var i2 = 0; i2 < v3.length; i2++) {
+ var vi2 = v3[i2];
+ var viId = vi2.id();
+ if (vi2.isNode()) {
+ Q2.unshift(vi2);
+ if (params.bfs) {
+ V2[viId] = true;
+ connectedNodes.push(vi2);
}
+ id2depth[viId] = 0;
}
- function Lwb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- if (!a.b) {
- return false;
- }
- g = null;
- m = null;
- i3 = new exb(null, null);
- e = 1;
- i3.a[1] = a.b;
- l = i3;
- while (l.a[e]) {
- j = e;
- h = m;
- m = l;
- l = l.a[e];
- d = a.a.ue(b, l.d);
- e = d < 0 ? 0 : 1;
- d == 0 && (!c2.c || wtb(l.e, c2.d)) && (g = l);
- if (!(!!l && l.b) && !Hwb(l.a[e])) {
- if (Hwb(l.a[1 - e])) {
- m = m.a[j] = Owb(l, e);
- } else if (!Hwb(l.a[1 - e])) {
- n = m.a[1 - j];
- if (n) {
- if (!Hwb(n.a[1 - j]) && !Hwb(n.a[j])) {
- m.b = false;
- n.b = true;
- l.b = true;
- } else {
- f2 = h.a[1] == m ? 1 : 0;
- Hwb(n.a[j]) ? h.a[f2] = Nwb(m, j) : Hwb(n.a[1 - j]) && (h.a[f2] = Owb(m, j));
- l.b = h.a[f2].b = true;
- h.a[f2].a[0].b = false;
- h.a[f2].a[1].b = false;
- }
- }
- }
- }
- }
- if (g) {
- c2.b = true;
- c2.d = g.e;
- if (l != g) {
- k = new exb(l.d, l.e);
- Mwb(a, i3, g, k);
- m == g && (m = k);
- }
- m.a[m.a[1] == l ? 1 : 0] = l.a[!l.a[0] ? 1 : 0];
- --a.c;
+ }
+ var _loop = /* @__PURE__ */ __name(function _loop2() {
+ var v4 = params.bfs ? Q2.shift() : Q2.pop();
+ var vId = v4.id();
+ if (params.dfs) {
+ if (V2[vId]) {
+ return "continue";
}
- a.b = i3.a[1];
- !!a.b && (a.b.b = false);
- return c2.b;
+ V2[vId] = true;
+ connectedNodes.push(v4);
}
- function cic(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- for (e = new olb(a.a.a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 57);
- for (i3 = d.c.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 57);
- if (d.a == h.a) {
- continue;
- }
- fad(a.a.d) ? l = a.a.g.Oe(d, h) : l = a.a.g.Pe(d, h);
- f2 = d.b.a + d.d.b + l - h.b.a;
- f2 = $wnd.Math.ceil(f2);
- f2 = $wnd.Math.max(0, f2);
- if (vgc(d, h)) {
- g = nGb(new pGb(), a.d);
- j = QD($wnd.Math.ceil(h.b.a - d.b.a));
- b = j - (h.b.a - d.b.a);
- k = ugc(d).a;
- c2 = d;
- if (!k) {
- k = ugc(h).a;
- b = -b;
- c2 = h;
- }
- if (k) {
- c2.b.a -= b;
- k.n.a -= b;
- }
- AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, j)), 1), g), a.c[d.a.d]));
- AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, -j)), 1), g), a.c[h.a.d]));
- } else {
- m = 1;
- (JD(d.g, 145) && JD(h.g, 10) || JD(h.g, 145) && JD(d.g, 10)) && (m = 2);
- AFb(DFb(CFb(EFb(BFb(new FFb(), QD(f2)), m), a.c[d.a.d]), a.c[h.a.d]));
- }
- }
- }
- }
- function pEc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- if (c2) {
- d = -1;
- k = new Bib(b, 0);
- while (k.b < k.d.gc()) {
- h = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 10));
- l = a.c[h.c.p][h.p].a;
- if (l == null) {
- g = d + 1;
- f2 = new Bib(b, k.b);
- while (f2.b < f2.d.gc()) {
- m = tEc(a, (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 10))).a;
- if (m != null) {
- g = (uCb(m), m);
- break;
- }
- }
- l = (d + g) / 2;
- a.c[h.c.p][h.p].a = l;
- a.c[h.c.p][h.p].d = (uCb(l), l);
- a.c[h.c.p][h.p].b = 1;
- }
- d = (uCb(l), l);
- }
- } else {
- e = 0;
- for (j = new olb(b); j.a < j.c.c.length; ) {
- h = BD(mlb(j), 10);
- a.c[h.c.p][h.p].a != null && (e = $wnd.Math.max(e, Edb(a.c[h.c.p][h.p].a)));
- }
- e += 2;
- for (i3 = new olb(b); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- if (a.c[h.c.p][h.p].a == null) {
- l = Cub(a.i, 24) * lke * e - 1;
- a.c[h.c.p][h.p].a = l;
- a.c[h.c.p][h.p].d = l;
- a.c[h.c.p][h.p].b = 1;
- }
- }
- }
- }
- function CZd() {
- rEd(b5, new i$d());
- rEd(a5, new P$d());
- rEd(c5, new u_d());
- rEd(d5, new M_d());
- rEd(f5, new P_d());
- rEd(h5, new S_d());
- rEd(g5, new V_d());
- rEd(i5, new Y_d());
- rEd(k5, new GZd());
- rEd(l5, new JZd());
- rEd(m5, new MZd());
- rEd(n5, new PZd());
- rEd(o5, new SZd());
- rEd(p5, new VZd());
- rEd(q5, new YZd());
- rEd(t5, new _Zd());
- rEd(v52, new c$d());
- rEd(x6, new f$d());
- rEd(j5, new l$d());
- rEd(u5, new o$d());
- rEd(wI, new r$d());
- rEd(GC(SD, 1), new u$d());
- rEd(xI, new x$d());
- rEd(yI, new A$d());
- rEd($J, new D$d());
- rEd(O4, new G$d());
- rEd(BI, new J$d());
- rEd(T4, new M$d());
- rEd(U4, new S$d());
- rEd(O9, new V$d());
- rEd(E9, new Y$d());
- rEd(FI, new _$d());
- rEd(JI, new c_d());
- rEd(AI, new f_d());
- rEd(MI, new i_d());
- rEd(DK, new l_d());
- rEd(v8, new o_d());
- rEd(u8, new r_d());
- rEd(UI, new x_d());
- rEd(ZI, new A_d());
- rEd(X4, new D_d());
- rEd(V4, new G_d());
- }
- function hA(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- !c2 && (c2 = TA(b.q.getTimezoneOffset()));
- e = (b.q.getTimezoneOffset() - c2.a) * 6e4;
- h = new gB(wbb(Cbb(b.q.getTime()), e));
- i3 = h;
- if (h.q.getTimezoneOffset() != b.q.getTimezoneOffset()) {
- e > 0 ? e -= 864e5 : e += 864e5;
- i3 = new gB(wbb(Cbb(b.q.getTime()), e));
- }
- k = new Vfb();
- j = a.a.length;
- for (f2 = 0; f2 < j; ) {
- d = bfb(a.a, f2);
- if (d >= 97 && d <= 122 || d >= 65 && d <= 90) {
- for (g = f2 + 1; g < j && bfb(a.a, g) == d; ++g)
- ;
- vA(k, d, g - f2, h, i3, c2);
- f2 = g;
- } else if (d == 39) {
- ++f2;
- if (f2 < j && bfb(a.a, f2) == 39) {
- k.a += "'";
- ++f2;
- continue;
- }
- l = false;
- while (!l) {
- g = f2;
- while (g < j && bfb(a.a, g) != 39) {
- ++g;
- }
- if (g >= j) {
- throw vbb(new Wdb("Missing trailing '"));
- }
- g + 1 < j && bfb(a.a, g + 1) == 39 ? ++g : l = true;
- Qfb(k, qfb(a.a, f2, g));
- f2 = g + 1;
- }
- } else {
- k.a += String.fromCharCode(d);
- ++f2;
- }
- }
- return k.a;
- }
- function MEc(a) {
- var b, c2, d, e, f2, g, h, i3;
- b = null;
- for (d = new olb(a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 233);
- Edb(REc(c2.g, c2.d[0]).a);
- c2.b = null;
- if (!!c2.e && c2.e.gc() > 0 && c2.c == 0) {
- !b && (b = new Rkb());
- b.c[b.c.length] = c2;
- }
- }
- if (b) {
- while (b.c.length != 0) {
- c2 = BD(Kkb(b, 0), 233);
- if (!!c2.b && c2.b.c.length > 0) {
- for (f2 = (!c2.b && (c2.b = new Rkb()), new olb(c2.b)); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 233);
- if (Gdb(REc(e.g, e.d[0]).a) == Gdb(REc(c2.g, c2.d[0]).a)) {
- if (Jkb(a, e, 0) > Jkb(a, c2, 0)) {
- return new vgd(e, c2);
- }
- } else if (Edb(REc(e.g, e.d[0]).a) > Edb(REc(c2.g, c2.d[0]).a)) {
- return new vgd(e, c2);
- }
- }
- }
- for (h = (!c2.e && (c2.e = new Rkb()), c2.e).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 233);
- i3 = (!g.b && (g.b = new Rkb()), g.b);
- wCb(0, i3.c.length);
- aCb(i3.c, 0, c2);
- g.c == i3.c.length && (b.c[b.c.length] = g, true);
- }
- }
- }
- return null;
+ 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 : v4.same(src) ? tgt[0] : src[0];
+ var ret = void 0;
+ ret = fn3(v4, prevEdge, prevNode, j2++, depth);
+ if (ret === true) {
+ found = v4;
+ return "break";
}
- function wlb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- if (a == null) {
- return Xhe;
- }
- i3 = b.a.zc(a, b);
- if (i3 != null) {
- return "[...]";
- }
- c2 = new xwb(She, "[", "]");
- for (e = a, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- if (d != null && (rb(d).i & 4) != 0) {
- if (Array.isArray(d) && (k = HC(d), !(k >= 14 && k <= 16))) {
- if (b.a._b(d)) {
- !c2.a ? c2.a = new Wfb(c2.d) : Qfb(c2.a, c2.b);
- Nfb(c2.a, "[...]");
- } else {
- h = CD(d);
- j = new Vqb(b);
- uwb(c2, wlb(h, j));
- }
- } else
- JD(d, 177) ? uwb(c2, Xlb(BD(d, 177))) : JD(d, 190) ? uwb(c2, Qlb(BD(d, 190))) : JD(d, 195) ? uwb(c2, Rlb(BD(d, 195))) : JD(d, 2012) ? uwb(c2, Wlb(BD(d, 2012))) : JD(d, 48) ? uwb(c2, Ulb(BD(d, 48))) : JD(d, 364) ? uwb(c2, Vlb(BD(d, 364))) : JD(d, 832) ? uwb(c2, Tlb(BD(d, 832))) : JD(d, 104) && uwb(c2, Slb(BD(d, 104)));
- } else {
- uwb(c2, d == null ? Xhe : fcb(d));
- }
- }
- return !c2.a ? c2.c : c2.e.length == 0 ? c2.a.a : c2.a.a + ("" + c2.e);
- }
- function xQb(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- h = itd(b, false, false);
- r = ofd(h);
- d && (r = w7c(r));
- t4 = Edb(ED(hkd(b, (CPb(), vPb))));
- q = (sCb(r.b != 0), BD(r.a.a.c, 8));
- l = BD(Ut(r, 1), 8);
- if (r.b > 2) {
- k = new Rkb();
- Gkb(k, new Jib(r, 1, r.b));
- f2 = sQb(k, t4 + a.a);
- s = new XOb(f2);
- tNb(s, b);
- c2.c[c2.c.length] = s;
- } else {
- d ? s = BD(Ohb(a.b, jtd(b)), 266) : s = BD(Ohb(a.b, ltd(b)), 266);
- }
- i3 = jtd(b);
- d && (i3 = ltd(b));
- g = zQb(q, i3);
- j = t4 + a.a;
- if (g.a) {
- j += $wnd.Math.abs(q.b - l.b);
- p = new f7c(l.a, (l.b + q.b) / 2);
- } else {
- j += $wnd.Math.abs(q.a - l.a);
- p = new f7c((l.a + q.a) / 2, l.b);
- }
- d ? Rhb(a.d, b, new ZOb(s, g, p, j)) : Rhb(a.c, b, new ZOb(s, g, p, j));
- Rhb(a.b, b, s);
- o2 = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n);
- for (n = new Fyd(o2); n.e != n.i.gc(); ) {
- m = BD(Dyd(n), 137);
- e = wQb(a, m, true, 0, 0);
- c2.c[c2.c.length] = e;
- }
- }
- function wPc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k;
- j = new Rkb();
- h = new Rkb();
- for (g = new olb(a); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 112);
- pOc(e, e.f.c.length);
- qOc(e, e.k.c.length);
- e.d == 0 && (j.c[j.c.length] = e, true);
- e.i == 0 && e.e.b == 0 && (h.c[h.c.length] = e, true);
- }
- d = -1;
- while (j.c.length != 0) {
- e = BD(Kkb(j, 0), 112);
- for (c2 = new olb(e.k); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 129);
- k = b.b;
- rOc(k, $wnd.Math.max(k.o, e.o + 1));
- d = $wnd.Math.max(d, k.o);
- pOc(k, k.d - 1);
- k.d == 0 && (j.c[j.c.length] = k, true);
- }
- }
- if (d > -1) {
- for (f2 = new olb(h); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 112);
- e.o = d;
- }
- while (h.c.length != 0) {
- e = BD(Kkb(h, 0), 112);
- for (c2 = new olb(e.f); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 129);
- i3 = b.a;
- if (i3.e.b > 0) {
- continue;
- }
- rOc(i3, $wnd.Math.min(i3.o, e.o - 1));
- qOc(i3, i3.i - 1);
- i3.i == 0 && (h.c[h.c.length] = i3, true);
- }
- }
- }
- }
- function QQd(a, b, c2) {
- var d, e, f2, g, h, i3, j;
- j = a.c;
- !b && (b = FQd);
- a.c = b;
- if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
- i3 = new nSd(a, 1, 2, j, a.c);
- !c2 ? c2 = i3 : c2.Ei(i3);
- }
- if (j != b) {
- if (JD(a.Cb, 284)) {
- if (a.Db >> 16 == -10) {
- c2 = BD(a.Cb, 284).nk(b, c2);
- } else if (a.Db >> 16 == -15) {
- !b && (b = (jGd(), YFd));
- !j && (j = (jGd(), YFd));
- if (a.Cb.nh()) {
- i3 = new pSd(a.Cb, 1, 13, j, b, HLd(QSd(BD(a.Cb, 59)), a), false);
- !c2 ? c2 = i3 : c2.Ei(i3);
- }
- }
- } else if (JD(a.Cb, 88)) {
- if (a.Db >> 16 == -23) {
- JD(b, 88) || (b = (jGd(), _Fd));
- JD(j, 88) || (j = (jGd(), _Fd));
- if (a.Cb.nh()) {
- i3 = new pSd(a.Cb, 1, 10, j, b, HLd(VKd(BD(a.Cb, 26)), a), false);
- !c2 ? c2 = i3 : c2.Ei(i3);
- }
- }
- } else if (JD(a.Cb, 444)) {
- h = BD(a.Cb, 836);
- g = (!h.b && (h.b = new RYd(new NYd())), h.b);
- for (f2 = (d = new nib(new eib(g.a).a), new ZYd(d)); f2.a.b; ) {
- e = BD(lib(f2.a).cd(), 87);
- c2 = QQd(e, MQd(e, h), c2);
- }
- }
- }
- return c2;
- }
- function O1b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- g = Ccb(DD(hkd(a, (Nyc(), fxc))));
- m = BD(hkd(a, Yxc), 21);
- i3 = false;
- j = false;
- l = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c));
- while (l.e != l.i.gc() && (!i3 || !j)) {
- f2 = BD(Dyd(l), 118);
- h = 0;
- for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!f2.d && (f2.d = new y5d(B2, f2, 8, 5)), f2.d), (!f2.e && (f2.e = new y5d(B2, f2, 7, 4)), f2.e)]))); Qr(e); ) {
- d = BD(Rr(e), 79);
- k = g && Qld(d) && Ccb(DD(hkd(d, gxc)));
- c2 = ELd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), f2) ? a == Xod(atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) : a == Xod(atd(BD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 82)));
- if (k || c2) {
- ++h;
- if (h > 1) {
- break;
- }
- }
- }
- h > 0 ? i3 = true : m.Hc((rcd(), ncd)) && (!f2.n && (f2.n = new cUd(D2, f2, 1, 7)), f2.n).i > 0 && (i3 = true);
- h > 1 && (j = true);
- }
- i3 && b.Fc((Orc(), Hrc));
- j && b.Fc((Orc(), Irc));
+ if (ret === false) {
+ return "break";
}
- function zfd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- m = BD(hkd(a, (Y9c(), Y8c)), 21);
- if (m.dc()) {
- return null;
- }
- h = 0;
- g = 0;
- if (m.Hc((tdd(), rdd))) {
- k = BD(hkd(a, t9c), 98);
- d = 2;
- c2 = 2;
- e = 2;
- f2 = 2;
- b = !Xod(a) ? BD(hkd(a, z8c), 103) : BD(hkd(Xod(a), z8c), 103);
- for (j = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); j.e != j.i.gc(); ) {
- i3 = BD(Dyd(j), 118);
- l = BD(hkd(i3, A9c), 61);
- if (l == (Ucd(), Scd)) {
- l = lfd(i3, b);
- jkd(i3, A9c, l);
- }
- if (k == (dcd(), $bd)) {
- switch (l.g) {
- case 1:
- d = $wnd.Math.max(d, i3.i + i3.g);
- break;
- case 2:
- c2 = $wnd.Math.max(c2, i3.j + i3.f);
- break;
- case 3:
- e = $wnd.Math.max(e, i3.i + i3.g);
- break;
- case 4:
- f2 = $wnd.Math.max(f2, i3.j + i3.f);
- }
- } else {
- switch (l.g) {
- case 1:
- d += i3.g + 2;
- break;
- case 2:
- c2 += i3.f + 2;
- break;
- case 3:
- e += i3.g + 2;
- break;
- case 4:
- f2 += i3.f + 2;
- }
- }
+ var vwEdges = v4.connectedEdges().filter(function(e4) {
+ return (!directed || e4.source().same(v4)) && edges5.has(e4);
+ });
+ for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {
+ var e3 = vwEdges[_i2];
+ var w3 = e3.connectedNodes().filter(function(n2) {
+ return !n2.same(v4) && nodes6.has(n2);
+ });
+ var wId = w3.id();
+ if (w3.length !== 0 && !V2[wId]) {
+ w3 = w3[0];
+ Q2.push(w3);
+ if (params.bfs) {
+ V2[wId] = true;
+ connectedNodes.push(w3);
}
- h = $wnd.Math.max(d, e);
- g = $wnd.Math.max(c2, f2);
+ connectedBy[wId] = e3;
+ id2depth[wId] = id2depth[vId] + 1;
}
- return Afd(a, h, g, true, true);
}
- function lnc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- s = BD(GAb(VAb(JAb(new YAb(null, new Kub(b.d, 16)), new pnc(c2)), new rnc(c2)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
- l = Ohe;
- k = Rie;
- for (i3 = new olb(b.b.j); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 11);
- if (h.j == c2) {
- l = $wnd.Math.min(l, h.p);
- k = $wnd.Math.max(k, h.p);
- }
- }
- if (l == Ohe) {
- for (g = 0; g < s.gc(); g++) {
- ojc(BD(s.Xb(g), 101), c2, g);
- }
- } else {
- t4 = KC(WD, oje, 25, e.length, 15, 1);
- Elb(t4, t4.length);
- for (r = s.Kc(); r.Ob(); ) {
- q = BD(r.Pb(), 101);
- f2 = BD(Ohb(a.b, q), 177);
- j = 0;
- for (p = l; p <= k; p++) {
- f2[p] && (j = $wnd.Math.max(j, d[p]));
- }
- if (q.i) {
- n = q.i.c;
- u2 = new Tqb();
- for (m = 0; m < e.length; m++) {
- e[n][m] && Qqb(u2, meb(t4[m]));
- }
- while (Rqb(u2, meb(j))) {
- ++j;
- }
- }
- ojc(q, c2, j);
- for (o2 = l; o2 <= k; o2++) {
- f2[o2] && (d[o2] = j + 1);
- }
- !!q.i && (t4[q.i.c] = j);
- }
- }
- }
- function YJc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- e = null;
- for (d = new olb(b.a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- bKc(c2) ? f2 = (h = nGb(oGb(new pGb(), c2), a.f), i3 = nGb(oGb(new pGb(), c2), a.f), j = new rKc(c2, true, h, i3), k = c2.o.b, l = (Izc(), (!c2.q ? (mmb(), mmb(), kmb) : c2.q)._b((Nyc(), Cxc)) ? m = BD(vNb(c2, Cxc), 197) : m = BD(vNb(Q_b(c2), Dxc), 197), m), n = 1e4, l == Ezc && (n = 1), o2 = AFb(DFb(CFb(BFb(EFb(new FFb(), n), QD($wnd.Math.ceil(k))), h), i3)), l == Fzc && Qqb(a.d, o2), ZJc(a, Su(V_b(c2, (Ucd(), Tcd))), j), ZJc(a, V_b(c2, zcd), j), j) : f2 = (p = nGb(oGb(new pGb(), c2), a.f), MAb(JAb(new YAb(null, new Kub(c2.j, 16)), new EKc()), new GKc(a, p)), new rKc(c2, false, p, p));
- a.i[c2.p] = f2;
- if (e) {
- g = e.c.d.a + jBc(a.n, e.c, c2) + c2.d.d;
- e.b || (g += e.c.o.b);
- AFb(DFb(CFb(EFb(BFb(new FFb(), QD($wnd.Math.ceil(g))), 0), e.d), f2.a));
- }
- e = f2;
- }
- }
- function s9b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- Odd(b, "Label dummy insertions", 1);
- l = new Rkb();
- g = Edb(ED(vNb(a, (Nyc(), nyc))));
- j = Edb(ED(vNb(a, ryc)));
- k = BD(vNb(a, Lwc), 103);
- for (n = new olb(a.a); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 10);
- for (f2 = new Sr(ur(U_b(m).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- if (e.c.i != e.d.i && Lq(e.b, p9b)) {
- p = t9b(e);
- o2 = Pu(e.b.c.length);
- c2 = r9b(a, e, p, o2);
- l.c[l.c.length] = c2;
- d = c2.o;
- h = new Bib(e.b, 0);
- while (h.b < h.d.gc()) {
- i3 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 70));
- if (PD(vNb(i3, Qwc)) === PD((qad(), nad))) {
- if (k == (ead(), dad) || k == _9c) {
- d.a += i3.o.a + j;
- d.b = $wnd.Math.max(d.b, i3.o.b);
- } else {
- d.a = $wnd.Math.max(d.a, i3.o.a);
- d.b += i3.o.b + j;
- }
- o2.c[o2.c.length] = i3;
- uib(h);
- }
- }
- if (k == (ead(), dad) || k == _9c) {
- d.a -= j;
- d.b += g + p;
- } else {
- d.b += g - j + p;
- }
- }
- }
- }
- Gkb(a.a, l);
- Qdd(b);
- }
- function eYb(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n;
- f2 = new qYb(b);
- l = _Xb(a, b, f2);
- n = $wnd.Math.max(Edb(ED(vNb(b, (Nyc(), Zwc)))), 1);
- for (k = new olb(l.a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 46);
- i3 = dYb(BD(j.a, 8), BD(j.b, 8), n);
- o = true;
- o = o & iYb(c2, new f7c(i3.c, i3.d));
- o = o & iYb(c2, O6c(new f7c(i3.c, i3.d), i3.b, 0));
- o = o & iYb(c2, O6c(new f7c(i3.c, i3.d), 0, i3.a));
- o & iYb(c2, O6c(new f7c(i3.c, i3.d), i3.b, i3.a));
- }
- m = f2.d;
- h = dYb(BD(l.b.a, 8), BD(l.b.b, 8), n);
- if (m == (Ucd(), Tcd) || m == zcd) {
- d.c[m.g] = $wnd.Math.min(d.c[m.g], h.d);
- d.b[m.g] = $wnd.Math.max(d.b[m.g], h.d + h.a);
- } else {
- d.c[m.g] = $wnd.Math.min(d.c[m.g], h.c);
- d.b[m.g] = $wnd.Math.max(d.b[m.g], h.c + h.b);
- }
- e = Qje;
- g = f2.c.i.d;
- switch (m.g) {
- case 4:
- e = g.c;
- break;
- case 2:
- e = g.b;
- break;
- case 1:
- e = g.a;
- break;
- case 3:
- e = g.d;
- }
- d.a[m.g] = $wnd.Math.max(d.a[m.g], e);
- return f2;
- }
- function eKd(b) {
- var c2, d, e, f2;
- d = b.D != null ? b.D : b.B;
- c2 = hfb(d, wfb(91));
- if (c2 != -1) {
- e = d.substr(0, c2);
- f2 = new Hfb();
- do
- f2.a += "[";
- while ((c2 = gfb(d, 91, ++c2)) != -1);
- if (dfb(e, Khe))
- f2.a += "Z";
- else if (dfb(e, Eve))
- f2.a += "B";
- else if (dfb(e, Fve))
- f2.a += "C";
- else if (dfb(e, Gve))
- f2.a += "D";
- else if (dfb(e, Hve))
- f2.a += "F";
- else if (dfb(e, Ive))
- f2.a += "I";
- else if (dfb(e, Jve))
- f2.a += "J";
- else if (dfb(e, Kve))
- f2.a += "S";
- else {
- f2.a += "L";
- f2.a += "" + e;
- f2.a += ";";
- }
- try {
- return null;
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 60))
- throw vbb(a);
- }
- } else if (hfb(d, wfb(46)) == -1) {
- if (dfb(d, Khe))
- return sbb;
- else if (dfb(d, Eve))
- return SD;
- else if (dfb(d, Fve))
- return TD;
- else if (dfb(d, Gve))
- return UD;
- else if (dfb(d, Hve))
- return VD;
- else if (dfb(d, Ive))
- return WD;
- else if (dfb(d, Jve))
- return XD;
- else if (dfb(d, Kve))
- return rbb;
- }
- return null;
+ }, "_loop");
+ while (Q2.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 node2 = connectedNodes[_i];
+ var edge = connectedBy[node2.id()];
+ if (edge != null) {
+ connectedEles.push(edge);
}
- function $1b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- j = new b0b(c2);
- tNb(j, b);
- yNb(j, (wtc(), $sc), b);
- j.o.a = b.g;
- j.o.b = b.f;
- j.n.a = b.i;
- j.n.b = b.j;
- Ekb(c2.a, j);
- Rhb(a.a, b, j);
- ((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0 || Ccb(DD(hkd(b, (Nyc(), fxc))))) && yNb(j, wsc, (Bcb(), true));
- i3 = BD(vNb(c2, Ksc), 21);
- k = BD(vNb(j, (Nyc(), Vxc)), 98);
- k == (dcd(), ccd) ? yNb(j, Vxc, bcd) : k != bcd && i3.Fc((Orc(), Krc));
- d = BD(vNb(c2, Lwc), 103);
- for (h = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); h.e != h.i.gc(); ) {
- g = BD(Dyd(h), 118);
- Ccb(DD(hkd(g, Jxc))) || _1b(a, g, j, i3, d, k);
- }
- for (f2 = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); f2.e != f2.i.gc(); ) {
- e = BD(Dyd(f2), 137);
- !Ccb(DD(hkd(e, Jxc))) && !!e.a && Ekb(j.b, Z1b(e));
- }
- Ccb(DD(vNb(j, pwc))) && i3.Fc((Orc(), Frc));
- if (Ccb(DD(vNb(j, exc)))) {
- i3.Fc((Orc(), Jrc));
- i3.Fc(Irc);
- yNb(j, Vxc, bcd);
- }
- return j;
- }
- function F4b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
- h = BD(Ohb(b.c, a), 459);
- s = b.a.c;
- i3 = b.a.c + b.a.b;
- C = h.f;
- D3 = h.a;
- g = C < D3;
- p = new f7c(s, C);
- t4 = new f7c(i3, D3);
- e = (s + i3) / 2;
- q = new f7c(e, C);
- u2 = new f7c(e, D3);
- f2 = G4b(a, C, D3);
- w2 = A0b(b.B);
- A = new f7c(e, f2);
- B = A0b(b.D);
- c2 = j6c(OC(GC(m1, 1), nie, 8, 0, [w2, A, B]));
- n = false;
- r = b.B.i;
- if (!!r && !!r.c && h.d) {
- j = g && r.p < r.c.a.c.length - 1 || !g && r.p > 0;
- if (j) {
- if (j) {
- m = r.p;
- g ? ++m : --m;
- l = BD(Ikb(r.c.a, m), 10);
- d = I4b(l);
- n = !(s6c(d, w2, c2[0]) || n6c(d, w2, c2[0]));
- }
- } else {
- n = true;
- }
- }
- o2 = false;
- v = b.D.i;
- if (!!v && !!v.c && h.e) {
- k = g && v.p > 0 || !g && v.p < v.c.a.c.length - 1;
- if (k) {
- m = v.p;
- g ? --m : ++m;
- l = BD(Ikb(v.c.a, m), 10);
- d = I4b(l);
- o2 = !(s6c(d, c2[0], B) || n6c(d, c2[0], B));
- } else {
- o2 = true;
- }
- }
- n && o2 && Dsb(a.a, A);
- n || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [p, q]));
- o2 || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [u2, t4]));
+ connectedEles.push(node2);
+ }
+ return {
+ path: cy.collection(connectedEles),
+ found: cy.collection(found)
+ };
+ }, "searchFn");
+ }, "defineSearch");
+ elesfn$v = {
+ breadthFirstSearch: defineSearch({
+ bfs: true
+ }),
+ depthFirstSearch: defineSearch({
+ dfs: true
+ })
+ };
+ elesfn$v.bfs = elesfn$v.breadthFirstSearch;
+ elesfn$v.dfs = elesfn$v.depthFirstSearch;
+ heap$1 = createCommonjsModule(function(module2, exports2) {
+ (function() {
+ var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min9, nlargest, nsmallest, updateItem, _siftdown, _siftup;
+ floor = Math.floor, min9 = Math.min;
+ defaultCmp = /* @__PURE__ */ __name(function(x5, y5) {
+ if (x5 < y5) {
+ return -1;
}
- function yfd(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- if (JD(a.Ug(), 160)) {
- yfd(BD(a.Ug(), 160), b);
- b.a += " > ";
- } else {
- b.a += "Root ";
- }
- c2 = a.Tg().zb;
- dfb(c2.substr(0, 3), "Elk") ? Qfb(b, c2.substr(3)) : (b.a += "" + c2, b);
- e = a.zg();
- if (e) {
- Qfb((b.a += " ", b), e);
- return;
- }
- if (JD(a, 354)) {
- j = BD(a, 137).a;
- if (j) {
- Qfb((b.a += " ", b), j);
- return;
- }
- }
- for (g = new Fyd(a.Ag()); g.e != g.i.gc(); ) {
- f2 = BD(Dyd(g), 137);
- j = f2.a;
- if (j) {
- Qfb((b.a += " ", b), j);
- return;
- }
- }
- if (JD(a, 352)) {
- d = BD(a, 79);
- !d.b && (d.b = new y5d(z2, d, 4, 7));
- if (d.b.i != 0 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i != 0)) {
- b.a += " (";
- h = new Oyd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b));
- while (h.e != h.i.gc()) {
- h.e > 0 && (b.a += She, b);
- yfd(BD(Dyd(h), 160), b);
- }
- b.a += gne;
- i3 = new Oyd((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c));
- while (i3.e != i3.i.gc()) {
- i3.e > 0 && (b.a += She, b);
- yfd(BD(Dyd(i3), 160), b);
- }
- b.a += ")";
- }
- }
+ if (x5 > y5) {
+ return 1;
}
- function y2b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- f2 = BD(vNb(a, (wtc(), $sc)), 79);
- if (!f2) {
- return;
- }
- d = a.a;
- e = new g7c(c2);
- P6c(e, C2b(a));
- if (f_b(a.d.i, a.c.i)) {
- m = a.c;
- l = l7c(OC(GC(m1, 1), nie, 8, 0, [m.n, m.a]));
- c7c(l, c2);
- } else {
- l = A0b(a.c);
- }
- Gsb(d, l, d.a, d.a.a);
- n = A0b(a.d);
- vNb(a, utc) != null && P6c(n, BD(vNb(a, utc), 8));
- Gsb(d, n, d.c.b, d.c);
- q7c(d, e);
- g = itd(f2, true, true);
- kmd(g, BD(qud((!f2.b && (f2.b = new y5d(z2, f2, 4, 7)), f2.b), 0), 82));
- lmd(g, BD(qud((!f2.c && (f2.c = new y5d(z2, f2, 5, 8)), f2.c), 0), 82));
- ifd(d, g);
- for (k = new olb(a.b); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 70);
- h = BD(vNb(j, $sc), 137);
- cld(h, j.o.a);
- ald(h, j.o.b);
- bld(h, j.n.a + e.a, j.n.b + e.b);
- jkd(h, (I9b(), H9b), DD(vNb(j, H9b)));
- }
- i3 = BD(vNb(a, (Nyc(), jxc)), 74);
- if (i3) {
- q7c(i3, e);
- jkd(f2, jxc, i3);
- } else {
- jkd(f2, jxc, null);
- }
- b == (Aad(), yad) ? jkd(f2, Swc, yad) : jkd(f2, Swc, null);
- }
- function mJc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
- n = b.c.length;
- m = 0;
- for (l = new olb(a.b); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 29);
- r = k.a;
- if (r.c.length == 0) {
- continue;
- }
- q = new olb(r);
- j = 0;
- s = null;
- e = BD(mlb(q), 10);
- f2 = null;
- while (e) {
- f2 = BD(Ikb(b, e.p), 257);
- if (f2.c >= 0) {
- i3 = null;
- h = new Bib(k.a, j + 1);
- while (h.b < h.d.gc()) {
- g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 10));
- i3 = BD(Ikb(b, g.p), 257);
- if (i3.d == f2.d && i3.c < f2.c) {
- break;
- } else {
- i3 = null;
- }
- }
- if (i3) {
- if (s) {
- Nkb(d, e.p, meb(BD(Ikb(d, e.p), 19).a - 1));
- BD(Ikb(c2, s.p), 15).Mc(f2);
- }
- f2 = yJc(f2, e, n++);
- b.c[b.c.length] = f2;
- Ekb(c2, new Rkb());
- if (s) {
- BD(Ikb(c2, s.p), 15).Fc(f2);
- Ekb(d, meb(1));
- } else {
- Ekb(d, meb(0));
- }
- }
- }
- o2 = null;
- if (q.a < q.c.c.length) {
- o2 = BD(mlb(q), 10);
- p = BD(Ikb(b, o2.p), 257);
- BD(Ikb(c2, e.p), 15).Fc(p);
- Nkb(d, o2.p, meb(BD(Ikb(d, o2.p), 19).a + 1));
- }
- f2.d = m;
- f2.c = j++;
- s = e;
- e = o2;
- }
- ++m;
- }
- }
- function u6c(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- i3 = a;
- k = c7c(new f7c(b.a, b.b), a);
- j = c2;
- l = c7c(new f7c(d.a, d.b), c2);
- m = i3.a;
- q = i3.b;
- o2 = j.a;
- s = j.b;
- n = k.a;
- r = k.b;
- p = l.a;
- t4 = l.b;
- e = p * r - n * t4;
- Iy();
- My(Jqe);
- if ($wnd.Math.abs(0 - e) <= Jqe || 0 == e || isNaN(0) && isNaN(e)) {
- return false;
- }
- g = 1 / e * ((m - o2) * r - (q - s) * n);
- h = 1 / e * -(-(m - o2) * t4 + (q - s) * p);
- f2 = (My(Jqe), ($wnd.Math.abs(0 - g) <= Jqe || 0 == g || isNaN(0) && isNaN(g) ? 0 : 0 < g ? -1 : 0 > g ? 1 : Ny(isNaN(0), isNaN(g))) < 0 && (My(Jqe), ($wnd.Math.abs(g - 1) <= Jqe || g == 1 || isNaN(g) && isNaN(1) ? 0 : g < 1 ? -1 : g > 1 ? 1 : Ny(isNaN(g), isNaN(1))) < 0) && (My(Jqe), ($wnd.Math.abs(0 - h) <= Jqe || 0 == h || isNaN(0) && isNaN(h) ? 0 : 0 < h ? -1 : 0 > h ? 1 : Ny(isNaN(0), isNaN(h))) < 0) && (My(Jqe), ($wnd.Math.abs(h - 1) <= Jqe || h == 1 || isNaN(h) && isNaN(1) ? 0 : h < 1 ? -1 : h > 1 ? 1 : Ny(isNaN(h), isNaN(1))) < 0));
- return f2;
- }
- function z6d(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- for (l = new usb(new nsb(a)); l.b != l.c.a.d; ) {
- k = tsb(l);
- h = BD(k.d, 56);
- b = BD(k.e, 56);
- g = h.Tg();
- for (p = 0, u2 = (g.i == null && TKd(g), g.i).length; p < u2; ++p) {
- j = (f2 = (g.i == null && TKd(g), g.i), p >= 0 && p < f2.length ? f2[p] : null);
- if (j.Ij() && !j.Jj()) {
- if (JD(j, 99)) {
- i3 = BD(j, 18);
- (i3.Bb & ote) == 0 && (w2 = zUd(i3), !(!!w2 && (w2.Bb & ote) != 0)) && y6d(a, i3, h, b);
- } else {
- Q6d();
- if (BD(j, 66).Oj()) {
- c2 = (v = j, BD(!v ? null : BD(b, 49).xh(v), 153));
- if (c2) {
- n = BD(h.ah(j), 153);
- d = c2.gc();
- for (q = 0, o2 = n.gc(); q < o2; ++q) {
- m = n.il(q);
- if (JD(m, 99)) {
- t4 = n.jl(q);
- e = Wrb(a, t4);
- if (e == null && t4 != null) {
- s = BD(m, 18);
- if (!a.b || (s.Bb & ote) != 0 || !!zUd(s)) {
- continue;
- }
- e = t4;
- }
- if (!c2.dl(m, e)) {
- for (r = 0; r < d; ++r) {
- if (c2.il(r) == m && PD(c2.jl(r)) === PD(e)) {
- c2.ii(c2.gc() - 1, r);
- --d;
- break;
- }
- }
- }
- } else {
- c2.dl(n.il(q), n.jl(q));
- }
- }
- }
- }
- }
- }
- }
- }
+ return 0;
+ }, "defaultCmp");
+ insort = /* @__PURE__ */ __name(function(a2, x5, lo, hi, cmp) {
+ var mid;
+ if (lo == null) {
+ lo = 0;
}
- function CZc(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- r = xZc(b, c2, a.g);
- e.n && e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
- if (a.b) {
- for (q = 0; q < r.c.length; q++) {
- l = (tCb(q, r.c.length), BD(r.c[q], 200));
- if (q != 0) {
- n = (tCb(q - 1, r.c.length), BD(r.c[q - 1], 200));
- w$c(l, n.f + n.b + a.g);
- }
- tZc(q, r, c2, a.g);
- AZc(a, l);
- e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
- }
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ if (lo < 0) {
+ throw new Error("lo must be non-negative");
+ }
+ if (hi == null) {
+ hi = a2.length;
+ }
+ while (lo < hi) {
+ mid = floor((lo + hi) / 2);
+ if (cmp(x5, a2[mid]) < 0) {
+ hi = mid;
} else {
- for (p = new olb(r); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 200);
- for (k = new olb(o2.a); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 187);
- s = new b$c(j.s, j.t, a.g);
- WZc(s, j);
- Ekb(o2.d, s);
- }
- }
- }
- BZc(a, r);
- e.n && e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
- t4 = $wnd.Math.max(a.d, d.a - (g.b + g.c));
- m = $wnd.Math.max(a.c, d.b - (g.d + g.a));
- h = m - a.c;
- if (a.e && a.f) {
- i3 = t4 / m;
- i3 < a.a ? t4 = m * a.a : h += t4 / a.a - m;
- }
- a.e && zZc(r, t4, h);
- e.n && e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
- return new d$c(a.a, t4, a.c + h, (k$c(), j$c));
- }
- function UJc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- a.j = KC(WD, oje, 25, a.g, 15, 1);
- a.o = new Rkb();
- MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new aLc()), new cLc(a));
- a.a = KC(sbb, dle, 25, a.b, 16, 1);
- TAb(new YAb(null, new Kub(a.e.b, 16)), new rLc(a));
- d = (l = new Rkb(), MAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new hLc()), new jLc(a)), new lLc(a, l)), l);
- for (i3 = new olb(d); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 508);
- if (h.c.length <= 1) {
- continue;
- }
- if (h.c.length == 2) {
- uKc(h);
- bKc((tCb(0, h.c.length), BD(h.c[0], 17)).d.i) || Ekb(a.o, h);
- continue;
- }
- if (tKc(h) || sKc(h, new fLc())) {
- continue;
- }
- j = new olb(h);
- e = null;
- while (j.a < j.c.c.length) {
- b = BD(mlb(j), 17);
- c2 = a.c[b.p];
- !e || j.a >= j.c.c.length ? k = JJc((j0b(), h0b), g0b) : k = JJc((j0b(), g0b), g0b);
- k *= 2;
- f2 = c2.a.g;
- c2.a.g = $wnd.Math.max(f2, f2 + (k - f2));
- g = c2.b.g;
- c2.b.g = $wnd.Math.max(g, g + (k - g));
- e = b;
- }
- }
- }
- function VNc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
- v = Hx(a);
- k = new Rkb();
- h = a.c.length;
- l = h - 1;
- m = h + 1;
- while (v.a.c != 0) {
- while (c2.b != 0) {
- t4 = (sCb(c2.b != 0), BD(Nsb(c2, c2.a.a), 112));
- Jwb(v.a, t4) != null;
- t4.g = l--;
- YNc(t4, b, c2, d);
- }
- while (b.b != 0) {
- u2 = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 112));
- Jwb(v.a, u2) != null;
- u2.g = m++;
- YNc(u2, b, c2, d);
- }
- j = Rie;
- for (r = (g = new Ywb(new cxb(new Gjb(v.a).a).b), new Njb(g)); sib(r.a.a); ) {
- q = (f2 = Wwb(r.a), BD(f2.cd(), 112));
- if (!d && q.b > 0 && q.a <= 0) {
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- k.c[k.c.length] = q;
- break;
- }
- p = q.i - q.d;
- if (p >= j) {
- if (p > j) {
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- j = p;
- }
- k.c[k.c.length] = q;
- }
- }
- if (k.c.length != 0) {
- i3 = BD(Ikb(k, Bub(e, k.c.length)), 112);
- Jwb(v.a, i3) != null;
- i3.g = m++;
- YNc(i3, b, c2, d);
- k.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- }
- s = a.c.length + 1;
- for (o2 = new olb(a); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 112);
- n.g < h && (n.g = n.g + s);
+ lo = mid + 1;
}
}
- function SDb(a, b) {
- var c2;
- if (a.e) {
- throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke)));
- }
- if (!lDb(a.a, b)) {
- throw vbb(new hz(Lke + b + Mke));
- }
- if (b == a.d) {
- return a;
- }
- c2 = a.d;
- a.d = b;
- switch (c2.g) {
- case 0:
- switch (b.g) {
- case 2:
- PDb(a);
- break;
- case 1:
- XDb(a);
- PDb(a);
- break;
- case 4:
- bEb(a);
- PDb(a);
- break;
- case 3:
- bEb(a);
- XDb(a);
- PDb(a);
- }
- break;
- case 2:
- switch (b.g) {
- case 1:
- XDb(a);
- YDb(a);
- break;
- case 4:
- bEb(a);
- PDb(a);
- break;
- case 3:
- bEb(a);
- XDb(a);
- PDb(a);
- }
- break;
- case 1:
- switch (b.g) {
- case 2:
- XDb(a);
- YDb(a);
- break;
- case 4:
- XDb(a);
- bEb(a);
- PDb(a);
- break;
- case 3:
- XDb(a);
- bEb(a);
- XDb(a);
- PDb(a);
- }
- break;
- case 4:
- switch (b.g) {
- case 2:
- bEb(a);
- PDb(a);
- break;
- case 1:
- bEb(a);
- XDb(a);
- PDb(a);
- break;
- case 3:
- XDb(a);
- YDb(a);
- }
- break;
- case 3:
- switch (b.g) {
- case 2:
- XDb(a);
- bEb(a);
- PDb(a);
- break;
- case 1:
- XDb(a);
- bEb(a);
- XDb(a);
- PDb(a);
- break;
- case 4:
- XDb(a);
- YDb(a);
- }
- }
- return a;
+ return [].splice.apply(a2, [lo, lo - lo].concat(x5)), x5;
+ }, "insort");
+ heappush = /* @__PURE__ */ __name(function(array4, item, cmp) {
+ if (cmp == null) {
+ cmp = defaultCmp;
}
- function tVb(a, b) {
- var c2;
- if (a.d) {
- throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke)));
- }
- if (!cVb(a.a, b)) {
- throw vbb(new hz(Lke + b + Mke));
- }
- if (b == a.c) {
- return a;
- }
- c2 = a.c;
- a.c = b;
- switch (c2.g) {
- case 0:
- switch (b.g) {
- case 2:
- qVb(a);
- break;
- case 1:
- xVb(a);
- qVb(a);
- break;
- case 4:
- BVb(a);
- qVb(a);
- break;
- case 3:
- BVb(a);
- xVb(a);
- qVb(a);
- }
- break;
- case 2:
- switch (b.g) {
- case 1:
- xVb(a);
- yVb(a);
- break;
- case 4:
- BVb(a);
- qVb(a);
- break;
- case 3:
- BVb(a);
- xVb(a);
- qVb(a);
- }
- break;
- case 1:
- switch (b.g) {
- case 2:
- xVb(a);
- yVb(a);
- break;
- case 4:
- xVb(a);
- BVb(a);
- qVb(a);
- break;
- case 3:
- xVb(a);
- BVb(a);
- xVb(a);
- qVb(a);
- }
- break;
- case 4:
- switch (b.g) {
- case 2:
- BVb(a);
- qVb(a);
- break;
- case 1:
- BVb(a);
- xVb(a);
- qVb(a);
- break;
- case 3:
- xVb(a);
- yVb(a);
- }
- break;
- case 3:
- switch (b.g) {
- case 2:
- xVb(a);
- BVb(a);
- qVb(a);
- break;
- case 1:
- xVb(a);
- BVb(a);
- xVb(a);
- qVb(a);
- break;
- case 4:
- xVb(a);
- yVb(a);
- }
- }
- return a;
- }
- function UQb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k;
- for (i3 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); i3.e != i3.i.gc(); ) {
- h = BD(Dyd(i3), 33);
- for (e = new Sr(ur(_sd(h).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 79);
- !d.b && (d.b = new y5d(z2, d, 4, 7));
- if (!(d.b.i <= 1 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i <= 1))) {
- throw vbb(new z2c("Graph must not contain hyperedges."));
- }
- if (!Pld(d) && h != atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) {
- j = new gRb();
- tNb(j, d);
- yNb(j, (HSb(), FSb), d);
- dRb(j, BD(Wd(irb(c2.f, h)), 144));
- eRb(j, BD(Ohb(c2, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 144));
- Ekb(b.c, j);
- for (g = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); g.e != g.i.gc(); ) {
- f2 = BD(Dyd(g), 137);
- k = new mRb(j, f2.a);
- tNb(k, f2);
- yNb(k, FSb, f2);
- k.e.a = $wnd.Math.max(f2.g, 1);
- k.e.b = $wnd.Math.max(f2.f, 1);
- lRb(k);
- Ekb(b.d, k);
- }
- }
- }
+ array4.push(item);
+ return _siftdown(array4, 0, array4.length - 1, cmp);
+ }, "heappush");
+ heappop = /* @__PURE__ */ __name(function(array4, cmp) {
+ var lastelt, returnitem;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ lastelt = array4.pop();
+ if (array4.length) {
+ returnitem = array4[0];
+ array4[0] = lastelt;
+ _siftup(array4, 0, cmp);
+ } else {
+ returnitem = lastelt;
+ }
+ return returnitem;
+ }, "heappop");
+ heapreplace = /* @__PURE__ */ __name(function(array4, item, cmp) {
+ var returnitem;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ returnitem = array4[0];
+ array4[0] = item;
+ _siftup(array4, 0, cmp);
+ return returnitem;
+ }, "heapreplace");
+ heappushpop = /* @__PURE__ */ __name(function(array4, item, cmp) {
+ var _ref;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ if (array4.length && cmp(array4[0], item) < 0) {
+ _ref = [array4[0], item], item = _ref[0], array4[0] = _ref[1];
+ _siftup(array4, 0, cmp);
+ }
+ return item;
+ }, "heappushpop");
+ heapify = /* @__PURE__ */ __name(function(array4, cmp) {
+ var i2, _i, _len, _ref1, _results, _results1;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ _ref1 = function() {
+ _results1 = [];
+ for (var _j = 0, _ref = floor(array4.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++) {
+ i2 = _ref1[_i];
+ _results.push(_siftup(array4, i2, cmp));
}
- function OGb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- l = new LIb(a);
- iKb(l, !(b == (ead(), dad) || b == _9c));
- k = l.a;
- m = new p0b();
- for (e = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), g = 0, i3 = e.length; g < i3; ++g) {
- c2 = e[g];
- j = xHb(k, dHb, c2);
- !!j && (m.d = $wnd.Math.max(m.d, j.Re()));
- }
- for (d = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), f2 = 0, h = d.length; f2 < h; ++f2) {
- c2 = d[f2];
- j = xHb(k, fHb, c2);
- !!j && (m.a = $wnd.Math.max(m.a, j.Re()));
- }
- for (p = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), r = 0, t4 = p.length; r < t4; ++r) {
- n = p[r];
- j = xHb(k, n, dHb);
- !!j && (m.b = $wnd.Math.max(m.b, j.Se()));
- }
- for (o2 = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), q = 0, s = o2.length; q < s; ++q) {
- n = o2[q];
- j = xHb(k, n, fHb);
- !!j && (m.c = $wnd.Math.max(m.c, j.Se()));
- }
- if (m.d > 0) {
- m.d += k.n.d;
- m.d += k.d;
- }
- if (m.a > 0) {
- m.a += k.n.a;
- m.a += k.d;
- }
- if (m.b > 0) {
- m.b += k.n.b;
- m.b += k.d;
- }
- if (m.c > 0) {
- m.c += k.n.c;
- m.c += k.d;
- }
- return m;
- }
- function d6b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2;
- m = c2.d;
- l = c2.c;
- f2 = new f7c(c2.f.a + c2.d.b + c2.d.c, c2.f.b + c2.d.d + c2.d.a);
- g = f2.b;
- for (j = new olb(a.a); j.a < j.c.c.length; ) {
- h = BD(mlb(j), 10);
- if (h.k != (j0b(), e0b)) {
- continue;
- }
- d = BD(vNb(h, (wtc(), Hsc)), 61);
- e = BD(vNb(h, Isc), 8);
- k = h.n;
- switch (d.g) {
- case 2:
- k.a = c2.f.a + m.c - l.a;
- break;
- case 4:
- k.a = -l.a - m.b;
- }
- o2 = 0;
- switch (d.g) {
- case 2:
- case 4:
- if (b == (dcd(), _bd)) {
- n = Edb(ED(vNb(h, htc)));
- k.b = f2.b * n - BD(vNb(h, (Nyc(), Txc)), 8).b;
- o2 = k.b + e.b;
- M_b(h, false, true);
- } else if (b == $bd) {
- k.b = Edb(ED(vNb(h, htc))) - BD(vNb(h, (Nyc(), Txc)), 8).b;
- o2 = k.b + e.b;
- M_b(h, false, true);
- }
- }
- g = $wnd.Math.max(g, o2);
+ return _results;
+ }, "heapify");
+ updateItem = /* @__PURE__ */ __name(function(array4, item, cmp) {
+ var pos;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ pos = array4.indexOf(item);
+ if (pos === -1) {
+ return;
+ }
+ _siftdown(array4, 0, pos, cmp);
+ return _siftup(array4, pos, cmp);
+ }, "updateItem");
+ nlargest = /* @__PURE__ */ __name(function(array4, n2, cmp) {
+ var elem, result, _i, _len, _ref;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ result = array4.slice(0, n2);
+ if (!result.length) {
+ return result;
+ }
+ heapify(result, cmp);
+ _ref = array4.slice(n2);
+ 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(array4, n2, cmp) {
+ var elem, los, result, _i, _j, _len, _ref, _ref1, _results;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ if (n2 * 10 <= array4.length) {
+ result = array4.slice(0, n2).sort(cmp);
+ if (!result.length) {
+ return result;
}
- c2.f.b += g - f2.b;
- for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- if (h.k != (j0b(), e0b)) {
- continue;
- }
- d = BD(vNb(h, (wtc(), Hsc)), 61);
- k = h.n;
- switch (d.g) {
- case 1:
- k.b = -l.b - m.d;
- break;
- case 3:
- k.b = c2.f.b + m.a - l.b;
- }
- }
- }
- function nRc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
- e = BD(vNb(a, (mTc(), dTc)), 33);
- j = Ohe;
- k = Ohe;
- h = Rie;
- i3 = Rie;
- for (w2 = Jsb(a.b, 0); w2.b != w2.d.c; ) {
- u2 = BD(Xsb(w2), 86);
- p = u2.e;
- q = u2.f;
- j = $wnd.Math.min(j, p.a - q.a / 2);
- k = $wnd.Math.min(k, p.b - q.b / 2);
- h = $wnd.Math.max(h, p.a + q.a / 2);
- i3 = $wnd.Math.max(i3, p.b + q.b / 2);
- }
- o2 = BD(hkd(e, (JTc(), BTc)), 116);
- n = new f7c(o2.b - j, o2.d - k);
- for (v = Jsb(a.b, 0); v.b != v.d.c; ) {
- u2 = BD(Xsb(v), 86);
- m = vNb(u2, dTc);
- if (JD(m, 239)) {
- f2 = BD(m, 33);
- l = P6c(u2.e, n);
- bld(f2, l.a - f2.g / 2, l.b - f2.f / 2);
- }
- }
- for (t4 = Jsb(a.a, 0); t4.b != t4.d.c; ) {
- s = BD(Xsb(t4), 188);
- d = BD(vNb(s, dTc), 79);
- if (d) {
- b = s.a;
- r = new g7c(s.b.e);
- Gsb(b, r, b.a, b.a.a);
- A = new g7c(s.c.e);
- Gsb(b, A, b.c.b, b.c);
- qRc(r, BD(Ut(b, 1), 8), s.b.f);
- qRc(A, BD(Ut(b, b.b - 2), 8), s.c.f);
- c2 = itd(d, true, true);
- ifd(b, c2);
- }
- }
- B = h - j + (o2.b + o2.c);
- g = i3 - k + (o2.d + o2.a);
- Afd(e, B, g, false, false);
- }
- function xoc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- l = a.b;
- k = new Bib(l, 0);
- Aib(k, new H1b(a));
- s = false;
- g = 1;
- while (k.b < k.d.gc()) {
- j = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 29));
- p = (tCb(g, l.c.length), BD(l.c[g], 29));
- q = Mu(j.a);
- r = q.c.length;
- for (o2 = new olb(q); o2.a < o2.c.c.length; ) {
- m = BD(mlb(o2), 10);
- $_b(m, p);
- }
- if (s) {
- for (n = av(new ov(q), 0); n.c.Sb(); ) {
- m = BD(pv(n), 10);
- for (f2 = new olb(Mu(R_b(m))); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 17);
- PZb(e, true);
- yNb(a, (wtc(), Asc), (Bcb(), true));
- d = Noc(a, e, r);
- c2 = BD(vNb(m, usc), 305);
- t4 = BD(Ikb(d, d.c.length - 1), 17);
- c2.k = t4.c.i;
- c2.n = t4;
- c2.b = e.d.i;
- c2.c = e;
- }
- }
- s = false;
- } else {
- if (q.c.length != 0) {
- b = (tCb(0, q.c.length), BD(q.c[0], 10));
- if (b.k == (j0b(), d0b)) {
- s = true;
- g = -1;
- }
- }
+ los = result[result.length - 1];
+ _ref = array4.slice(n2);
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ elem = _ref[_i];
+ if (cmp(elem, los) < 0) {
+ insort(result, elem, 0, null, cmp);
+ result.pop();
+ los = result[result.length - 1];
}
- ++g;
- }
- h = new Bib(a.b, 0);
- while (h.b < h.d.gc()) {
- i3 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29));
- i3.a.c.length == 0 && uib(h);
}
+ return result;
}
- function wKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- k = BD(BD(Qc(a.r, b), 21), 84);
- if (k.gc() <= 2 || b == (Ucd(), zcd) || b == (Ucd(), Tcd)) {
- AKb(a, b);
- return;
+ heapify(array4, cmp);
+ _results = [];
+ for (_j = 0, _ref1 = min9(n2, array4.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {
+ _results.push(heappop(array4, cmp));
+ }
+ return _results;
+ }, "nsmallest");
+ _siftdown = /* @__PURE__ */ __name(function(array4, startpos, pos, cmp) {
+ var newitem, parent4, parentpos;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ newitem = array4[pos];
+ while (pos > startpos) {
+ parentpos = pos - 1 >> 1;
+ parent4 = array4[parentpos];
+ if (cmp(newitem, parent4) < 0) {
+ array4[pos] = parent4;
+ pos = parentpos;
+ continue;
}
- p = a.u.Hc((rcd(), qcd));
- c2 = b == (Ucd(), Acd) ? (vLb(), uLb) : (vLb(), rLb);
- r = b == Acd ? (EIb(), BIb) : (EIb(), DIb);
- d = dLb(iLb(c2), a.s);
- q = b == Acd ? Pje : Qje;
- for (j = k.Kc(); j.Ob(); ) {
- h = BD(j.Pb(), 111);
- if (!h.c || h.c.d.c.length <= 0) {
- continue;
- }
- o2 = h.b.rf();
- n = h.e;
- l = h.c;
- m = l.i;
- m.b = (f2 = l.n, l.e.a + f2.b + f2.c);
- m.a = (g = l.n, l.e.b + g.d + g.a);
- if (p) {
- m.c = n.a - (e = l.n, l.e.a + e.b + e.c) - a.s;
- p = false;
- } else {
- m.c = n.a + o2.a + a.s;
- }
- ytb(r, lle);
- l.f = r;
- $Hb(l, (NHb(), MHb));
- Ekb(d.d, new BLb(m, bLb(d, m)));
- q = b == Acd ? $wnd.Math.min(q, n.b) : $wnd.Math.max(q, n.b + h.b.rf().b);
- }
- q += b == Acd ? -a.t : a.t;
- cLb((d.e = q, d));
- for (i3 = k.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 111);
- if (!h.c || h.c.d.c.length <= 0) {
- continue;
- }
- m = h.c.i;
- m.c -= h.e.a;
- m.d -= h.e.b;
+ break;
+ }
+ return array4[pos] = newitem;
+ }, "_siftdown");
+ _siftup = /* @__PURE__ */ __name(function(array4, pos, cmp) {
+ var childpos, endpos, newitem, rightpos, startpos;
+ if (cmp == null) {
+ cmp = defaultCmp;
+ }
+ endpos = array4.length;
+ startpos = pos;
+ newitem = array4[pos];
+ childpos = 2 * pos + 1;
+ while (childpos < endpos) {
+ rightpos = childpos + 1;
+ if (rightpos < endpos && !(cmp(array4[childpos], array4[rightpos]) < 0)) {
+ childpos = rightpos;
}
+ array4[pos] = array4[childpos];
+ pos = childpos;
+ childpos = 2 * pos + 1;
}
- function IDc(a, b, c2) {
- var d;
- Odd(c2, "StretchWidth layering", 1);
- if (b.a.c.length == 0) {
- Qdd(c2);
- return;
+ array4[pos] = newitem;
+ return _siftdown(array4, startpos, pos, cmp);
+ }, "_siftup");
+ Heap = function() {
+ Heap2.push = heappush;
+ Heap2.pop = heappop;
+ Heap2.replace = heapreplace;
+ Heap2.pushpop = heappushpop;
+ Heap2.heapify = heapify;
+ Heap2.updateItem = updateItem;
+ Heap2.nlargest = nlargest;
+ Heap2.nsmallest = nsmallest;
+ function Heap2(cmp) {
+ this.cmp = cmp != null ? cmp : defaultCmp;
+ this.nodes = [];
+ }
+ __name(Heap2, "Heap");
+ Heap2.prototype.push = function(x5) {
+ return heappush(this.nodes, x5, this.cmp);
+ };
+ Heap2.prototype.pop = function() {
+ return heappop(this.nodes, this.cmp);
+ };
+ Heap2.prototype.peek = function() {
+ return this.nodes[0];
+ };
+ Heap2.prototype.contains = function(x5) {
+ return this.nodes.indexOf(x5) !== -1;
+ };
+ Heap2.prototype.replace = function(x5) {
+ return heapreplace(this.nodes, x5, this.cmp);
+ };
+ Heap2.prototype.pushpop = function(x5) {
+ return heappushpop(this.nodes, x5, this.cmp);
+ };
+ Heap2.prototype.heapify = function() {
+ return heapify(this.nodes, this.cmp);
+ };
+ Heap2.prototype.updateItem = function(x5) {
+ return updateItem(this.nodes, x5, this.cmp);
+ };
+ Heap2.prototype.clear = function() {
+ return this.nodes = [];
+ };
+ Heap2.prototype.empty = function() {
+ return this.nodes.length === 0;
+ };
+ Heap2.prototype.size = function() {
+ return this.nodes.length;
+ };
+ Heap2.prototype.clone = function() {
+ var heap2;
+ heap2 = new Heap2();
+ heap2.nodes = this.nodes.slice(0);
+ return heap2;
+ };
+ Heap2.prototype.toArray = function() {
+ return this.nodes.slice(0);
+ };
+ Heap2.prototype.insert = Heap2.prototype.push;
+ Heap2.prototype.top = Heap2.prototype.peek;
+ Heap2.prototype.front = Heap2.prototype.peek;
+ Heap2.prototype.has = Heap2.prototype.contains;
+ Heap2.prototype.copy = Heap2.prototype.clone;
+ return Heap2;
+ }();
+ (function(root4, factory) {
+ {
+ return module2.exports = factory();
+ }
+ })(this, function() {
+ return Heap;
+ });
+ }).call(commonjsGlobal);
+ });
+ heap = heap$1;
+ dijkstraDefaults = defaults$g({
+ root: null,
+ weight: /* @__PURE__ */ __name(function weight(edge) {
+ return 1;
+ }, "weight"),
+ directed: false
+ });
+ elesfn$u = {
+ dijkstra: /* @__PURE__ */ __name(function dijkstra2(options3) {
+ if (!plainObject(options3)) {
+ var args = arguments;
+ options3 = {
+ root: args[0],
+ weight: args[1],
+ directed: args[2]
+ };
+ }
+ var _dijkstraDefaults = dijkstraDefaults(options3), root4 = _dijkstraDefaults.root, weight8 = _dijkstraDefaults.weight, directed = _dijkstraDefaults.directed;
+ var eles = this;
+ var weightFn = weight8;
+ var source = string(root4) ? this.filter(root4)[0] : root4[0];
+ var dist3 = {};
+ var prev2 = {};
+ var knownDist = {};
+ var _this$byGroup = this.byGroup(), nodes6 = _this$byGroup.nodes, edges5 = _this$byGroup.edges;
+ edges5.unmergeBy(function(ele) {
+ return ele.isLoop();
+ });
+ var getDist3 = /* @__PURE__ */ __name(function getDist4(node3) {
+ return dist3[node3.id()];
+ }, "getDist");
+ var setDist = /* @__PURE__ */ __name(function setDist2(node3, d2) {
+ dist3[node3.id()] = d2;
+ Q2.updateItem(node3);
+ }, "setDist");
+ var Q2 = new heap(function(a2, b2) {
+ return getDist3(a2) - getDist3(b2);
+ });
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var node2 = nodes6[i2];
+ dist3[node2.id()] = node2.same(source) ? 0 : Infinity;
+ Q2.push(node2);
+ }
+ var distBetween = /* @__PURE__ */ __name(function distBetween2(u3, v4) {
+ var uvs = (directed ? u3.edgesTo(v4) : u3.edgesWith(v4)).intersect(edges5);
+ var smallestDistance = Infinity;
+ var smallestEdge;
+ for (var _i = 0; _i < uvs.length; _i++) {
+ var edge = uvs[_i];
+ var _weight = weightFn(edge);
+ if (_weight < smallestDistance || !smallestEdge) {
+ smallestDistance = _weight;
+ smallestEdge = edge;
}
- a.c = b;
- a.t = 0;
- a.u = 0;
- a.i = Pje;
- a.g = Qje;
- a.d = Edb(ED(vNb(b, (Nyc(), lyc))));
- CDc(a);
- DDc(a);
- ADc(a);
- HDc(a);
- BDc(a);
- a.i = $wnd.Math.max(1, a.i);
- a.g = $wnd.Math.max(1, a.g);
- a.d = a.d / a.i;
- a.f = a.g / a.i;
- a.s = FDc(a);
- d = new H1b(a.c);
- Ekb(a.c.b, d);
- a.r = Mu(a.p);
- a.n = tlb(a.k, a.k.length);
- while (a.r.c.length != 0) {
- a.o = JDc(a);
- if (!a.o || EDc(a) && a.b.a.gc() != 0) {
- KDc(a, d);
- d = new H1b(a.c);
- Ekb(a.c.b, d);
- ye(a.a, a.b);
- a.b.a.$b();
- a.t = a.u;
- a.u = 0;
- } else {
- if (EDc(a)) {
- a.c.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- d = new H1b(a.c);
- Ekb(a.c.b, d);
- a.t = 0;
- a.u = 0;
- a.b.a.$b();
- a.a.a.$b();
- ++a.f;
- a.r = Mu(a.p);
- a.n = tlb(a.k, a.k.length);
- } else {
- $_b(a.o, d);
- Lkb(a.r, a.o);
- Qqb(a.b, a.o);
- a.t = a.t - a.k[a.o.p] * a.d + a.j[a.o.p];
- a.u += a.e[a.o.p] * a.d;
- }
- }
- }
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- smb(b.b);
- Qdd(c2);
- }
- function Mgc(a) {
- var b, c2, d, e;
- MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new khc()), new mhc());
- Kgc(a);
- MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new ohc()), new qhc());
- if (a.c == (Aad(), yad)) {
- MAb(JAb(LAb(new YAb(null, new Kub(new Pib(a.f), 1)), new yhc()), new Ahc()), new Chc(a));
- MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Ghc()), new Ihc()), new Khc()), new Mhc()), new Ohc(a));
- }
- e = new f7c(Pje, Pje);
- b = new f7c(Qje, Qje);
- for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 57);
- e.a = $wnd.Math.min(e.a, c2.d.c);
- e.b = $wnd.Math.min(e.b, c2.d.d);
- b.a = $wnd.Math.max(b.a, c2.d.c + c2.d.b);
- b.b = $wnd.Math.max(b.b, c2.d.d + c2.d.a);
- }
- P6c(X6c(a.d.c), V6c(new f7c(e.a, e.b)));
- P6c(X6c(a.d.f), c7c(new f7c(b.a, b.b), e));
- Lgc(a, e, b);
- Uhb(a.f);
- Uhb(a.b);
- Uhb(a.g);
- Uhb(a.e);
- a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.a = null;
- a.d = null;
- }
- function vZb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- e = new Rkb();
- for (p = new olb(b.a); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 10);
- n = o2.e;
- if (n) {
- d = vZb(a, n, o2);
- Gkb(e, d);
- sZb(a, n, o2);
- if (BD(vNb(n, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
- s = BD(vNb(o2, (Nyc(), Vxc)), 98);
- m = BD(vNb(o2, Yxc), 174).Hc((rcd(), ncd));
- for (r = new olb(o2.j); r.a < r.c.c.length; ) {
- q = BD(mlb(r), 11);
- f2 = BD(Ohb(a.b, q), 10);
- if (!f2) {
- f2 = Z$b(q, s, q.j, -(q.e.c.length - q.g.c.length), null, new d7c(), q.o, BD(vNb(n, Lwc), 103), n);
- yNb(f2, $sc, q);
- Rhb(a.b, q, f2);
- Ekb(n.a, f2);
- }
- g = BD(Ikb(f2.j, 0), 11);
- for (k = new olb(q.f); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 70);
- h = new p_b();
- h.o.a = j.o.a;
- h.o.b = j.o.b;
- Ekb(g.f, h);
- if (!m) {
- t4 = q.j;
- l = 0;
- tcd(BD(vNb(o2, Yxc), 21)) && (l = mfd(j.n, j.o, q.o, 0, t4));
- s == (dcd(), bcd) || (Ucd(), Ecd).Hc(t4) ? h.o.a = l : h.o.b = l;
- }
- }
- }
- }
- }
+ }
+ return {
+ edge: smallestEdge,
+ dist: smallestDistance
+ };
+ }, "distBetween");
+ while (Q2.size() > 0) {
+ var u2 = Q2.pop();
+ var smalletsDist = getDist3(u2);
+ var uid = u2.id();
+ knownDist[uid] = smalletsDist;
+ if (smalletsDist === Infinity) {
+ continue;
+ }
+ var neighbors = u2.neighborhood().intersect(nodes6);
+ for (var _i2 = 0; _i2 < neighbors.length; _i2++) {
+ var v3 = neighbors[_i2];
+ var vid = v3.id();
+ var vDist = distBetween(u2, v3);
+ var alt = smalletsDist + vDist.dist;
+ if (alt < getDist3(v3)) {
+ setDist(v3, alt);
+ prev2[vid] = {
+ node: u2,
+ edge: vDist.edge
+ };
}
- i3 = new Rkb();
- rZb(a, b, c2, e, i3);
- !!c2 && tZb(a, b, c2, i3);
- return i3;
}
- function nEc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- if (a.c[b.c.p][b.p].e) {
- return;
- } else {
- a.c[b.c.p][b.p].e = true;
- }
- a.c[b.c.p][b.p].b = 0;
- a.c[b.c.p][b.p].d = 0;
- a.c[b.c.p][b.p].a = null;
- for (k = new olb(b.j); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 11);
- l = c2 ? new J0b(j) : new R0b(j);
- for (i3 = l.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 11);
- g = h.i;
- if (g.c == b.c) {
- if (g != b) {
- nEc(a, g, c2);
- a.c[b.c.p][b.p].b += a.c[g.c.p][g.p].b;
- a.c[b.c.p][b.p].d += a.c[g.c.p][g.p].d;
- }
- } else {
- a.c[b.c.p][b.p].d += a.g[h.p];
- ++a.c[b.c.p][b.p].b;
- }
- }
- }
- f2 = BD(vNb(b, (wtc(), ssc)), 15);
- if (f2) {
- for (e = f2.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 10);
- if (b.c == d.c) {
- nEc(a, d, c2);
- a.c[b.c.p][b.p].b += a.c[d.c.p][d.p].b;
- a.c[b.c.p][b.p].d += a.c[d.c.p][d.p].d;
- }
- }
- }
- if (a.c[b.c.p][b.p].b > 0) {
- a.c[b.c.p][b.p].d += Cub(a.i, 24) * lke * 0.07000000029802322 - 0.03500000014901161;
- a.c[b.c.p][b.p].a = a.c[b.c.p][b.p].d / a.c[b.c.p][b.p].b;
- }
- }
- function m5b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- for (o2 = new olb(a); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 10);
- n5b(n.n);
- n5b(n.o);
- o5b(n.f);
- r5b(n);
- t5b(n);
- for (q = new olb(n.j); q.a < q.c.c.length; ) {
- p = BD(mlb(q), 11);
- n5b(p.n);
- n5b(p.a);
- n5b(p.o);
- G0b(p, s5b(p.j));
- f2 = BD(vNb(p, (Nyc(), Wxc)), 19);
- !!f2 && yNb(p, Wxc, meb(-f2.a));
- for (e = new olb(p.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- for (c2 = Jsb(d.a, 0); c2.b != c2.d.c; ) {
- b = BD(Xsb(c2), 8);
- n5b(b);
- }
- i3 = BD(vNb(d, jxc), 74);
- if (i3) {
- for (h = Jsb(i3, 0); h.b != h.d.c; ) {
- g = BD(Xsb(h), 8);
- n5b(g);
- }
- }
- for (l = new olb(d.b); l.a < l.c.c.length; ) {
- j = BD(mlb(l), 70);
- n5b(j.n);
- n5b(j.o);
- }
- }
- for (m = new olb(p.f); m.a < m.c.c.length; ) {
- j = BD(mlb(m), 70);
- n5b(j.n);
- n5b(j.o);
- }
- }
- if (n.k == (j0b(), e0b)) {
- yNb(n, (wtc(), Hsc), s5b(BD(vNb(n, Hsc), 61)));
- q5b(n);
- }
- for (k = new olb(n.b); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 70);
- r5b(j);
- n5b(j.o);
- n5b(j.n);
- }
- }
- }
- function yQb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
- a.e = b;
- h = $Pb(b);
- w2 = new Rkb();
- for (d = new olb(h); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 15);
- A = new Rkb();
- w2.c[w2.c.length] = A;
- i3 = new Tqb();
- for (o2 = c2.Kc(); o2.Ob(); ) {
- n = BD(o2.Pb(), 33);
- f2 = wQb(a, n, true, 0, 0);
- A.c[A.c.length] = f2;
- p = n.i;
- q = n.j;
- m = (!n.n && (n.n = new cUd(D2, n, 1, 7)), n.n);
- for (l = new Fyd(m); l.e != l.i.gc(); ) {
- j = BD(Dyd(l), 137);
- e = wQb(a, j, false, p, q);
- A.c[A.c.length] = e;
- }
- v = (!n.c && (n.c = new cUd(F2, n, 9, 9)), n.c);
- for (s = new Fyd(v); s.e != s.i.gc(); ) {
- r = BD(Dyd(s), 118);
- g = wQb(a, r, false, p, q);
- A.c[A.c.length] = g;
- t4 = r.i + p;
- u2 = r.j + q;
- m = (!r.n && (r.n = new cUd(D2, r, 1, 7)), r.n);
- for (k = new Fyd(m); k.e != k.i.gc(); ) {
- j = BD(Dyd(k), 137);
- e = wQb(a, j, false, t4, u2);
- A.c[A.c.length] = e;
- }
- }
- ye(i3, Dx(pl(OC(GC(KI, 1), Uhe, 20, 0, [_sd(n), $sd(n)]))));
- }
- vQb(a, i3, A);
- }
- a.f = new aPb(w2);
- tNb(a.f, b);
- return a.f;
- }
- function Kqd(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
- D3 = Ohb(a.e, d);
- if (D3 == null) {
- D3 = new eC();
- n = BD(D3, 183);
- s = b + "_s";
- t4 = s + e;
- m = new yC(t4);
- cC(n, Vte, m);
- }
- C = BD(D3, 183);
- Qpd(c2, C);
- G = new eC();
- Spd(G, "x", d.j);
- Spd(G, "y", d.k);
- cC(C, Yte, G);
- A = new eC();
- Spd(A, "x", d.b);
- Spd(A, "y", d.c);
- cC(C, "endPoint", A);
- l = Fhe((!d.a && (d.a = new xMd(y2, d, 5)), d.a));
- o2 = !l;
- if (o2) {
- w2 = new wB();
- f2 = new Srd(w2);
- reb((!d.a && (d.a = new xMd(y2, d, 5)), d.a), f2);
- cC(C, Ote, w2);
- }
- i3 = dmd(d);
- u2 = !!i3;
- u2 && Tpd(a.a, C, Qte, kqd(a, dmd(d)));
- r = emd(d);
- v = !!r;
- v && Tpd(a.a, C, Pte, kqd(a, emd(d)));
- j = (!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e).i == 0;
- p = !j;
- if (p) {
- B = new wB();
- g = new Urd(a, B);
- reb((!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e), g);
- cC(C, Ste, B);
- }
- k = (!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g).i == 0;
- q = !k;
- if (q) {
- F = new wB();
- h = new Wrd(a, F);
- reb((!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g), h);
- cC(C, Rte, F);
- }
- }
- function eKb(a) {
- $Jb();
- var b, c2, d, e, f2, g, h;
- d = a.f.n;
- for (g = ci(a.r).a.nc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 111);
- e = 0;
- if (f2.b.Xe((Y9c(), s9c))) {
- e = Edb(ED(f2.b.We(s9c)));
- if (e < 0) {
- switch (f2.b.Hf().g) {
- case 1:
- d.d = $wnd.Math.max(d.d, -e);
- break;
- case 3:
- d.a = $wnd.Math.max(d.a, -e);
- break;
- case 2:
- d.c = $wnd.Math.max(d.c, -e);
- break;
- case 4:
- d.b = $wnd.Math.max(d.b, -e);
- }
- }
- }
- if (tcd(a.u)) {
- b = nfd(f2.b, e);
- h = !BD(a.e.We(b9c), 174).Hc((Idd(), zdd));
- c2 = false;
- switch (f2.b.Hf().g) {
- case 1:
- c2 = b > d.d;
- d.d = $wnd.Math.max(d.d, b);
- if (h && c2) {
- d.d = $wnd.Math.max(d.d, d.a);
- d.a = d.d + e;
- }
- break;
- case 3:
- c2 = b > d.a;
- d.a = $wnd.Math.max(d.a, b);
- if (h && c2) {
- d.a = $wnd.Math.max(d.a, d.d);
- d.d = d.a + e;
- }
- break;
- case 2:
- c2 = b > d.c;
- d.c = $wnd.Math.max(d.c, b);
- if (h && c2) {
- d.c = $wnd.Math.max(d.b, d.c);
- d.b = d.c + e;
- }
- break;
- case 4:
- c2 = b > d.b;
- d.b = $wnd.Math.max(d.b, b);
- if (h && c2) {
- d.b = $wnd.Math.max(d.b, d.c);
- d.c = d.b + e;
- }
- }
+ }
+ return {
+ distanceTo: /* @__PURE__ */ __name(function distanceTo(node3) {
+ var target = string(node3) ? nodes6.filter(node3)[0] : node3[0];
+ return knownDist[target.id()];
+ }, "distanceTo"),
+ pathTo: /* @__PURE__ */ __name(function pathTo(node3) {
+ var target = string(node3) ? nodes6.filter(node3)[0] : node3[0];
+ var S3 = [];
+ var u3 = target;
+ var uid2 = u3.id();
+ if (target.length > 0) {
+ S3.unshift(target);
+ while (prev2[uid2]) {
+ var p3 = prev2[uid2];
+ S3.unshift(p3.edge);
+ S3.unshift(p3.node);
+ u3 = p3.node;
+ uid2 = u3.id();
}
}
+ return eles.spawn(S3);
+ }, "pathTo")
+ };
+ }, "dijkstra")
+ };
+ elesfn$t = {
+ // kruskal's algorithm (finds min spanning tree, assuming undirected graph)
+ // implemented from pseudocode from wikipedia
+ kruskal: /* @__PURE__ */ __name(function kruskal(weightFn) {
+ weightFn = weightFn || function(edge2) {
+ return 1;
+ };
+ var _this$byGroup = this.byGroup(), nodes6 = _this$byGroup.nodes, edges5 = _this$byGroup.edges;
+ var numNodes = nodes6.length;
+ var forest = new Array(numNodes);
+ var A2 = nodes6;
+ var findSetIndex = /* @__PURE__ */ __name(function findSetIndex2(ele) {
+ for (var i3 = 0; i3 < forest.length; i3++) {
+ var eles = forest[i3];
+ if (eles.has(ele)) {
+ return i3;
+ }
}
- function l3b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- for (j = new olb(a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- g = BD(vNb(i3, (Nyc(), mxc)), 163);
- f2 = null;
- switch (g.g) {
- case 1:
- case 2:
- f2 = (Gqc(), Fqc);
- break;
- case 3:
- case 4:
- f2 = (Gqc(), Dqc);
- }
- if (f2) {
- yNb(i3, (wtc(), Bsc), (Gqc(), Fqc));
- f2 == Dqc ? o3b(i3, g, (KAc(), HAc)) : f2 == Fqc && o3b(i3, g, (KAc(), IAc));
- } else {
- if (fcd(BD(vNb(i3, Vxc), 98)) && i3.j.c.length != 0) {
- b = true;
- for (l = new olb(i3.j); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 11);
- if (!(k.j == (Ucd(), zcd) && k.e.c.length - k.g.c.length > 0 || k.j == Tcd && k.e.c.length - k.g.c.length < 0)) {
- b = false;
- break;
- }
- for (e = new olb(k.g); e.a < e.c.c.length; ) {
- c2 = BD(mlb(e), 17);
- h = BD(vNb(c2.d.i, mxc), 163);
- if (h == (Ctc(), ztc) || h == Atc) {
- b = false;
- break;
- }
- }
- for (d = new olb(k.e); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 17);
- h = BD(vNb(c2.c.i, mxc), 163);
- if (h == (Ctc(), xtc) || h == ytc) {
- b = false;
- break;
- }
- }
- }
- b && o3b(i3, g, (KAc(), JAc));
- }
- }
- }
- }
- function lJc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- w2 = 0;
- n = 0;
- for (l = new olb(b.e); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 10);
- m = 0;
- h = 0;
- i3 = c2 ? BD(vNb(k, hJc), 19).a : Rie;
- r = d ? BD(vNb(k, iJc), 19).a : Rie;
- j = $wnd.Math.max(i3, r);
- for (t4 = new olb(k.j); t4.a < t4.c.c.length; ) {
- s = BD(mlb(t4), 11);
- u2 = k.n.b + s.n.b + s.a.b;
- if (d) {
- for (g = new olb(s.g); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 17);
- p = f2.d;
- o2 = p.i;
- if (b != a.a[o2.p]) {
- q = $wnd.Math.max(BD(vNb(o2, hJc), 19).a, BD(vNb(o2, iJc), 19).a);
- v = BD(vNb(f2, (Nyc(), eyc)), 19).a;
- if (v >= j && v >= q) {
- m += o2.n.b + p.n.b + p.a.b - u2;
- ++h;
- }
- }
- }
- }
- if (c2) {
- for (g = new olb(s.e); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 17);
- p = f2.c;
- o2 = p.i;
- if (b != a.a[o2.p]) {
- q = $wnd.Math.max(BD(vNb(o2, hJc), 19).a, BD(vNb(o2, iJc), 19).a);
- v = BD(vNb(f2, (Nyc(), eyc)), 19).a;
- if (v >= j && v >= q) {
- m += o2.n.b + p.n.b + p.a.b - u2;
- ++h;
- }
- }
- }
- }
+ }, "findSetIndex");
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ forest[i2] = this.spawn(nodes6[i2]);
+ }
+ var S3 = edges5.sort(function(a2, b2) {
+ return weightFn(a2) - weightFn(b2);
+ });
+ for (var _i = 0; _i < S3.length; _i++) {
+ var edge = S3[_i];
+ var u2 = edge.source()[0];
+ var v3 = edge.target()[0];
+ var setUIndex = findSetIndex(u2);
+ var setVIndex = findSetIndex(v3);
+ var setU = forest[setUIndex];
+ var setV = forest[setVIndex];
+ if (setUIndex !== setVIndex) {
+ A2.merge(edge);
+ setU.merge(setV);
+ forest.splice(setVIndex, 1);
+ }
+ }
+ return A2;
+ }, "kruskal")
+ };
+ aStarDefaults = defaults$g({
+ root: null,
+ goal: null,
+ weight: /* @__PURE__ */ __name(function weight2(edge) {
+ return 1;
+ }, "weight"),
+ heuristic: /* @__PURE__ */ __name(function heuristic(edge) {
+ return 0;
+ }, "heuristic"),
+ directed: false
+ });
+ elesfn$s = {
+ // Implemented from pseudocode from wikipedia
+ aStar: /* @__PURE__ */ __name(function aStar(options3) {
+ var cy = this.cy();
+ var _aStarDefaults = aStarDefaults(options3), root4 = _aStarDefaults.root, goal = _aStarDefaults.goal, heuristic2 = _aStarDefaults.heuristic, directed = _aStarDefaults.directed, weight8 = _aStarDefaults.weight;
+ root4 = cy.collection(root4)[0];
+ goal = cy.collection(goal)[0];
+ var sid = root4.id();
+ var tid = goal.id();
+ var gScore = {};
+ var fScore = {};
+ var closedSetIds = {};
+ var openSet = new heap(function(a2, b2) {
+ return fScore[a2.id()] - fScore[b2.id()];
+ });
+ var openSetIds = new Set$1();
+ var cameFrom = {};
+ var cameFromEdge = {};
+ var addToOpenSet = /* @__PURE__ */ __name(function addToOpenSet2(ele, id27) {
+ openSet.push(ele);
+ openSetIds.add(id27);
+ }, "addToOpenSet");
+ var cMin, cMinId;
+ var popFromOpenSet = /* @__PURE__ */ __name(function popFromOpenSet2() {
+ cMin = openSet.pop();
+ cMinId = cMin.id();
+ openSetIds["delete"](cMinId);
+ }, "popFromOpenSet");
+ var isInOpenSet = /* @__PURE__ */ __name(function isInOpenSet2(id27) {
+ return openSetIds.has(id27);
+ }, "isInOpenSet");
+ addToOpenSet(root4, sid);
+ gScore[sid] = 0;
+ fScore[sid] = heuristic2(root4);
+ var steps = 0;
+ while (openSet.size() > 0) {
+ popFromOpenSet();
+ steps++;
+ if (cMinId === tid) {
+ var path4 = [];
+ var pathNode = goal;
+ var pathNodeId = tid;
+ var pathEdge = cameFromEdge[pathNodeId];
+ for (; ; ) {
+ path4.unshift(pathNode);
+ if (pathEdge != null) {
+ path4.unshift(pathEdge);
}
- if (h > 0) {
- w2 += m / h;
- ++n;
+ pathNode = cameFrom[pathNodeId];
+ if (pathNode == null) {
+ break;
}
+ pathNodeId = pathNode.id();
+ pathEdge = cameFromEdge[pathNodeId];
}
- if (n > 0) {
- b.a = e * w2 / n;
- b.g = n;
- } else {
- b.a = 0;
- b.g = 0;
- }
- }
- function oMc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
- c2 = BD(mlb(e), 29);
- for (i3 = new olb(c2.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- b.j[h.p] = h;
- b.i[h.p] = b.o == (eMc(), dMc) ? Qje : Pje;
- }
- }
- Uhb(a.c);
- g = a.a.b;
- b.c == (YLc(), WLc) && (g = JD(g, 152) ? km(BD(g, 152)) : JD(g, 131) ? BD(g, 131).a : JD(g, 54) ? new ov(g) : new dv(g));
- UMc(a.e, b, a.b);
- Alb(b.p, null);
- for (f2 = g.Kc(); f2.Ob(); ) {
- c2 = BD(f2.Pb(), 29);
- j = c2.a;
- b.o == (eMc(), dMc) && (j = JD(j, 152) ? km(BD(j, 152)) : JD(j, 131) ? BD(j, 131).a : JD(j, 54) ? new ov(j) : new dv(j));
- for (m = j.Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 10);
- b.g[l.p] == l && pMc(a, l, b);
- }
- }
- qMc(a, b);
- for (d = g.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 29);
- for (m = new olb(c2.a); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- b.p[l.p] = b.p[b.g[l.p].p];
- if (l == b.g[l.p]) {
- k = Edb(b.i[b.j[l.p].p]);
- (b.o == (eMc(), dMc) && k > Qje || b.o == cMc && k < Pje) && (b.p[l.p] = Edb(b.p[l.p]) + k);
- }
- }
- }
- a.e.cg();
- }
- function PGb(a, b, c2, d) {
- var e, f2, g, h, i3;
- h = new LIb(b);
- rKb(h, d);
- e = true;
- if (!!a && a.Xe((Y9c(), z8c))) {
- f2 = BD(a.We((Y9c(), z8c)), 103);
- e = f2 == (ead(), cad) || f2 == aad || f2 == bad;
- }
- hKb(h, false);
- Hkb(h.e.wf(), new mKb(h, false, e));
- NJb(h, h.f, (gHb(), dHb), (Ucd(), Acd));
- NJb(h, h.f, fHb, Rcd);
- NJb(h, h.g, dHb, Tcd);
- NJb(h, h.g, fHb, zcd);
- PJb(h, Acd);
- PJb(h, Rcd);
- OJb(h, zcd);
- OJb(h, Tcd);
- $Jb();
- g = h.A.Hc((tdd(), pdd)) && h.B.Hc((Idd(), Ddd)) ? _Jb(h) : null;
- !!g && DHb(h.a, g);
- eKb(h);
- GJb(h);
- PKb(h);
- BJb(h);
- pKb(h);
- HKb(h);
- xKb(h, Acd);
- xKb(h, Rcd);
- CJb(h);
- oKb(h);
- if (!c2) {
- return h.o;
- }
- cKb(h);
- LKb(h);
- xKb(h, zcd);
- xKb(h, Tcd);
- i3 = h.B.Hc((Idd(), Edd));
- RJb(h, i3, Acd);
- RJb(h, i3, Rcd);
- SJb(h, i3, zcd);
- SJb(h, i3, Tcd);
- MAb(new YAb(null, new Kub(new $ib(h.i), 0)), new TJb());
- MAb(JAb(new YAb(null, ci(h.r).a.oc()), new VJb()), new XJb());
- dKb(h);
- h.e.uf(h.o);
- MAb(new YAb(null, ci(h.r).a.oc()), new fKb());
- return h.o;
- }
- function JVb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- j = Pje;
- for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
- b = BD(mlb(d), 81);
- j = $wnd.Math.min(j, b.d.f.g.c + b.e.a);
- }
- n = new Psb();
- for (g = new olb(a.a.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 189);
- f2.i = j;
- f2.e == 0 && (Gsb(n, f2, n.c.b, n.c), true);
- }
- while (n.b != 0) {
- f2 = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 189);
- e = f2.f.g.c;
- for (m = f2.a.a.ec().Kc(); m.Ob(); ) {
- k = BD(m.Pb(), 81);
- p = f2.i + k.e.a;
- k.d.g || k.g.c < p ? k.o = p : k.o = k.g.c;
- }
- e -= f2.f.o;
- f2.b += e;
- a.c == (ead(), bad) || a.c == _9c ? f2.c += e : f2.c -= e;
- for (l = f2.a.a.ec().Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 81);
- for (i3 = k.f.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 81);
- fad(a.c) ? o2 = a.f.ef(k, h) : o2 = a.f.ff(k, h);
- h.d.i = $wnd.Math.max(h.d.i, k.o + k.g.b + o2 - h.e.a);
- h.k || (h.d.i = $wnd.Math.max(h.d.i, h.g.c - h.e.a));
- --h.d.e;
- h.d.e == 0 && Dsb(n, h.d);
- }
- }
- }
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 81);
- b.g.c = b.o;
- }
- }
- function ELb(a) {
- var b, c2, d, e, f2, g, h, i3;
- h = a.b;
- b = a.a;
- switch (BD(vNb(a, (fFb(), bFb)), 427).g) {
- case 0:
- Okb(h, new tpb(new bMb()));
- break;
- case 1:
- default:
- Okb(h, new tpb(new gMb()));
+ return {
+ found: true,
+ distance: gScore[cMinId],
+ path: this.spawn(path4),
+ steps
+ };
+ }
+ closedSetIds[cMinId] = true;
+ var vwEdges = cMin._private.edges;
+ for (var i2 = 0; i2 < vwEdges.length; i2++) {
+ var e3 = vwEdges[i2];
+ if (!this.hasElementWithId(e3.id())) {
+ continue;
}
- switch (BD(vNb(a, _Eb), 428).g) {
- case 1:
- Okb(h, new YLb());
- Okb(h, new lMb());
- Okb(h, new GLb());
- break;
- case 0:
- default:
- Okb(h, new YLb());
- Okb(h, new RLb());
+ if (directed && e3.data("source") !== cMinId) {
+ continue;
}
- switch (BD(vNb(a, dFb), 250).g) {
- case 0:
- i3 = new FMb();
- break;
- case 1:
- i3 = new zMb();
- break;
- case 2:
- i3 = new CMb();
- break;
- case 3:
- i3 = new wMb();
- break;
- case 5:
- i3 = new JMb(new CMb());
- break;
- case 4:
- i3 = new JMb(new zMb());
- break;
- case 7:
- i3 = new tMb(new JMb(new zMb()), new JMb(new CMb()));
- break;
- case 8:
- i3 = new tMb(new JMb(new wMb()), new JMb(new CMb()));
- break;
- case 6:
- default:
- i3 = new JMb(new wMb());
- }
- for (g = new olb(h); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 167);
- d = 0;
- e = 0;
- c2 = new vgd(meb(d), meb(e));
- while (gNb(b, f2, d, e)) {
- c2 = BD(i3.Ce(c2, f2), 46);
- d = BD(c2.a, 19).a;
- e = BD(c2.b, 19).a;
- }
- dNb(b, f2, d, e);
- }
- }
- function qQb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
- f2 = a.f.b;
- m = f2.a;
- k = f2.b;
- o2 = a.e.g;
- n = a.e.f;
- _kd(a.e, f2.a, f2.b);
- w2 = m / o2;
- A = k / n;
- for (j = new Fyd(Kkd(a.e)); j.e != j.i.gc(); ) {
- i3 = BD(Dyd(j), 137);
- dld(i3, i3.i * w2);
- eld(i3, i3.j * A);
- }
- for (s = new Fyd(Yod(a.e)); s.e != s.i.gc(); ) {
- r = BD(Dyd(s), 118);
- u2 = r.i;
- v = r.j;
- u2 > 0 && dld(r, u2 * w2);
- v > 0 && eld(r, v * A);
- }
- stb(a.b, new CQb());
- b = new Rkb();
- for (h = new nib(new eib(a.c).a); h.b; ) {
- g = lib(h);
- d = BD(g.cd(), 79);
- c2 = BD(g.dd(), 395).a;
- e = itd(d, false, false);
- l = oQb(jtd(d), ofd(e), c2);
- ifd(l, e);
- t4 = ktd(d);
- if (!!t4 && Jkb(b, t4, 0) == -1) {
- b.c[b.c.length] = t4;
- pQb(t4, (sCb(l.b != 0), BD(l.a.a.c, 8)), c2);
- }
- }
- for (q = new nib(new eib(a.d).a); q.b; ) {
- p = lib(q);
- d = BD(p.cd(), 79);
- c2 = BD(p.dd(), 395).a;
- e = itd(d, false, false);
- l = oQb(ltd(d), w7c(ofd(e)), c2);
- l = w7c(l);
- ifd(l, e);
- t4 = mtd(d);
- if (!!t4 && Jkb(b, t4, 0) == -1) {
- b.c[b.c.length] = t4;
- pQb(t4, (sCb(l.b != 0), BD(l.c.b.c, 8)), c2);
- }
- }
- }
- function _Vc(a, b, c2, d) {
- var e, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
- if (c2.c.length != 0) {
- o2 = new Rkb();
- for (n = new olb(c2); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 33);
- Ekb(o2, new f7c(m.i, m.j));
- }
- d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
- while (CVc(a, c2)) {
- AVc(a, c2, false);
- }
- d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
- h = 0;
- i3 = 0;
- e = null;
- if (c2.c.length != 0) {
- e = (tCb(0, c2.c.length), BD(c2.c[0], 33));
- h = e.i - (tCb(0, o2.c.length), BD(o2.c[0], 8)).a;
- i3 = e.j - (tCb(0, o2.c.length), BD(o2.c[0], 8)).b;
- }
- g = $wnd.Math.sqrt(h * h + i3 * i3);
- l = cVc(c2);
- while (l.a.gc() != 0) {
- for (k = l.a.ec().Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 33);
- p = a.f;
- q = p.i + p.g / 2;
- r = p.j + p.f / 2;
- s = j.i + j.g / 2;
- t4 = j.j + j.f / 2;
- u2 = s - q;
- v = t4 - r;
- w2 = $wnd.Math.sqrt(u2 * u2 + v * v);
- A = u2 / w2;
- B = v / w2;
- dld(j, j.i + A * g);
- eld(j, j.j + B * g);
- }
- d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
- l = cVc(new Tkb(l));
- }
- !!a.a && a.a.lg(new Tkb(l));
- d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
- _Vc(a, b, new Tkb(l), d);
- }
- }
- function $2b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- p = a.n;
- q = a.o;
- m = a.d;
- l = Edb(ED(pBc(a, (Nyc(), iyc))));
- if (b) {
- k = l * (b.gc() - 1);
- n = 0;
- for (i3 = b.Kc(); i3.Ob(); ) {
- g = BD(i3.Pb(), 10);
- k += g.o.a;
- n = $wnd.Math.max(n, g.o.b);
- }
- r = p.a - (k - q.a) / 2;
- f2 = p.b - m.d + n;
- d = q.a / (b.gc() + 1);
- e = d;
- for (h = b.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 10);
- g.n.a = r;
- g.n.b = f2 - g.o.b;
- r += g.o.a + l;
- j = Y2b(g);
- j.n.a = g.o.a / 2 - j.a.a;
- j.n.b = g.o.b;
- o2 = BD(vNb(g, (wtc(), vsc)), 11);
- if (o2.e.c.length + o2.g.c.length == 1) {
- o2.n.a = e - o2.a.a;
- o2.n.b = 0;
- F0b(o2, a);
- }
- e += d;
- }
- }
- if (c2) {
- k = l * (c2.gc() - 1);
- n = 0;
- for (i3 = c2.Kc(); i3.Ob(); ) {
- g = BD(i3.Pb(), 10);
- k += g.o.a;
- n = $wnd.Math.max(n, g.o.b);
- }
- r = p.a - (k - q.a) / 2;
- f2 = p.b + q.b + m.a - n;
- d = q.a / (c2.gc() + 1);
- e = d;
- for (h = c2.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 10);
- g.n.a = r;
- g.n.b = f2;
- r += g.o.a + l;
- j = Y2b(g);
- j.n.a = g.o.a / 2 - j.a.a;
- j.n.b = 0;
- o2 = BD(vNb(g, (wtc(), vsc)), 11);
- if (o2.e.c.length + o2.g.c.length == 1) {
- o2.n.a = e - o2.a.a;
- o2.n.b = q.b;
- F0b(o2, a);
- }
- e += d;
- }
- }
- }
- function q7b(a, b) {
- var c2, d, e, f2, g, h;
- if (!BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
- return;
+ var wSrc = e3.source();
+ var wTgt = e3.target();
+ var w3 = wSrc.id() !== cMinId ? wSrc : wTgt;
+ var wid = w3.id();
+ if (!this.hasElementWithId(wid)) {
+ continue;
}
- for (h = new olb(b.a); h.a < h.c.c.length; ) {
- f2 = BD(mlb(h), 10);
- if (f2.k == (j0b(), h0b)) {
- e = BD(vNb(f2, (Nyc(), txc)), 142);
- a.c = $wnd.Math.min(a.c, f2.n.a - e.b);
- a.a = $wnd.Math.max(a.a, f2.n.a + f2.o.a + e.c);
- a.d = $wnd.Math.min(a.d, f2.n.b - e.d);
- a.b = $wnd.Math.max(a.b, f2.n.b + f2.o.b + e.a);
- }
+ if (closedSetIds[wid]) {
+ continue;
}
- for (g = new olb(b.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- if (f2.k != (j0b(), h0b)) {
- switch (f2.k.g) {
- case 2:
- d = BD(vNb(f2, (Nyc(), mxc)), 163);
- if (d == (Ctc(), ytc)) {
- f2.n.a = a.c - 10;
- p7b(f2, new x7b()).Jb(new A7b(f2));
- break;
- }
- if (d == Atc) {
- f2.n.a = a.a + 10;
- p7b(f2, new D7b()).Jb(new G7b(f2));
- break;
- }
- c2 = BD(vNb(f2, Osc), 303);
- if (c2 == (esc(), dsc)) {
- o7b(f2).Jb(new J7b(f2));
- f2.n.b = a.d - 10;
- break;
- }
- if (c2 == bsc) {
- o7b(f2).Jb(new M7b(f2));
- f2.n.b = a.b + 10;
- break;
- }
- break;
- default:
- throw vbb(new Wdb("The node type " + f2.k + " is not supported by the " + zS));
- }
- }
- }
- }
- function Y1b(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- i3 = new f7c(d.i + d.g / 2, d.j + d.f / 2);
- n = M1b(d);
- o2 = BD(hkd(b, (Nyc(), Vxc)), 98);
- q = BD(hkd(d, $xc), 61);
- if (!hCd(gkd(d), Uxc)) {
- d.i == 0 && d.j == 0 ? p = 0 : p = kfd(d, q);
- jkd(d, Uxc, p);
- }
- j = new f7c(b.g, b.f);
- e = Z$b(d, o2, q, n, j, i3, new f7c(d.g, d.f), BD(vNb(c2, Lwc), 103), c2);
- yNb(e, (wtc(), $sc), d);
- f2 = BD(Ikb(e.j, 0), 11);
- E0b(f2, W1b(d));
- yNb(e, Yxc, (rcd(), pqb(pcd)));
- l = BD(hkd(b, Yxc), 174).Hc(ncd);
- for (h = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); h.e != h.i.gc(); ) {
- g = BD(Dyd(h), 137);
- if (!Ccb(DD(hkd(g, Jxc))) && !!g.a) {
- m = Z1b(g);
- Ekb(f2.f, m);
- if (!l) {
- k = 0;
- tcd(BD(hkd(b, Yxc), 21)) && (k = mfd(new f7c(g.i, g.j), new f7c(g.g, g.f), new f7c(d.g, d.f), 0, q));
- switch (q.g) {
- case 2:
- case 4:
- m.o.a = k;
- break;
- case 1:
- case 3:
- m.o.b = k;
- }
- }
- }
+ var tempScore = gScore[cMinId] + weight8(e3);
+ if (!isInOpenSet(wid)) {
+ gScore[wid] = tempScore;
+ fScore[wid] = tempScore + heuristic2(w3);
+ addToOpenSet(w3, wid);
+ cameFrom[wid] = cMin;
+ cameFromEdge[wid] = e3;
+ continue;
}
- yNb(e, tyc, ED(hkd(Xod(b), tyc)));
- yNb(e, uyc, ED(hkd(Xod(b), uyc)));
- yNb(e, ryc, ED(hkd(Xod(b), ryc)));
- Ekb(c2.a, e);
- Rhb(a.a, d, e);
- }
- function qUc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
- Odd(c2, "Processor arrange level", 1);
- k = 0;
- mmb();
- ktb(b, new Wsd((mTc(), ZSc)));
- f2 = b.b;
- h = Jsb(b, b.b);
- j = true;
- while (j && h.b.b != h.d.a) {
- r = BD(Ysb(h), 86);
- BD(vNb(r, ZSc), 19).a == 0 ? --f2 : j = false;
- }
- v = new Jib(b, 0, f2);
- g = new Qsb(v);
- v = new Jib(b, f2, b.b);
- i3 = new Qsb(v);
- if (g.b == 0) {
- for (o2 = Jsb(i3, 0); o2.b != o2.d.c; ) {
- n = BD(Xsb(o2), 86);
- yNb(n, eTc, meb(k++));
- }
- } else {
- l = g.b;
- for (u2 = Jsb(g, 0); u2.b != u2.d.c; ) {
- t4 = BD(Xsb(u2), 86);
- yNb(t4, eTc, meb(k++));
- d = URc(t4);
- qUc(a, d, Udd(c2, 1 / l | 0));
- ktb(d, tmb(new Wsd(eTc)));
- m = new Psb();
- for (s = Jsb(d, 0); s.b != s.d.c; ) {
- r = BD(Xsb(s), 86);
- for (q = Jsb(t4.d, 0); q.b != q.d.c; ) {
- p = BD(Xsb(q), 188);
- p.c == r && (Gsb(m, p, m.c.b, m.c), true);
- }
- }
- Osb(t4.d);
- ye(t4.d, m);
- h = Jsb(i3, i3.b);
- e = t4.d.b;
- j = true;
- while (0 < e && j && h.b.b != h.d.a) {
- r = BD(Ysb(h), 86);
- if (BD(vNb(r, ZSc), 19).a == 0) {
- yNb(r, eTc, meb(k++));
- --e;
- Zsb(h);
- } else {
- j = false;
- }
- }
- }
+ if (tempScore < gScore[wid]) {
+ gScore[wid] = tempScore;
+ fScore[wid] = tempScore + heuristic2(w3);
+ cameFrom[wid] = cMin;
+ cameFromEdge[wid] = e3;
}
- Qdd(c2);
}
- function _8b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- Odd(b, "Inverted port preprocessing", 1);
- k = a.b;
- j = new Bib(k, 0);
- c2 = null;
- t4 = new Rkb();
- while (j.b < j.d.gc()) {
- s = c2;
- c2 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 29));
- for (n = new olb(t4); n.a < n.c.c.length; ) {
- l = BD(mlb(n), 10);
- $_b(l, s);
- }
- t4.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (o2 = new olb(c2.a); o2.a < o2.c.c.length; ) {
- l = BD(mlb(o2), 10);
- if (l.k != (j0b(), h0b)) {
- continue;
- }
- if (!fcd(BD(vNb(l, (Nyc(), Vxc)), 98))) {
- continue;
- }
- for (r = X_b(l, (KAc(), HAc), (Ucd(), zcd)).Kc(); r.Ob(); ) {
- p = BD(r.Pb(), 11);
- i3 = p.e;
- h = BD(Qkb(i3, KC(AQ, jne, 17, i3.c.length, 0, 1)), 474);
- for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- Z8b(a, p, d, t4);
- }
- }
- for (q = X_b(l, IAc, Tcd).Kc(); q.Ob(); ) {
- p = BD(q.Pb(), 11);
- i3 = p.g;
- h = BD(Qkb(i3, KC(AQ, jne, 17, i3.c.length, 0, 1)), 474);
- for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
- d = e[f2];
- $8b(a, p, d, t4);
- }
- }
- }
- }
- for (m = new olb(t4); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- $_b(l, c2);
- }
- Qdd(b);
- }
- function _1b(a, b, c2, d, e, f2) {
- var g, h, i3, j, k, l;
- j = new H0b();
- tNb(j, b);
- G0b(j, BD(hkd(b, (Nyc(), $xc)), 61));
- yNb(j, (wtc(), $sc), b);
- F0b(j, c2);
- l = j.o;
- l.a = b.g;
- l.b = b.f;
- k = j.n;
- k.a = b.i;
- k.b = b.j;
- Rhb(a.a, b, j);
- g = FAb(NAb(LAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new m2b()), new e2b()), new o2b(b));
- g || (g = FAb(NAb(LAb(new YAb(null, (!b.d && (b.d = new y5d(B2, b, 8, 5)), new Kub(b.d, 16))), new q2b()), new g2b()), new s2b(b)));
- g || (g = FAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new u2b()));
- yNb(j, Nsc, (Bcb(), g ? true : false));
- e_b(j, f2, e, BD(hkd(b, Txc), 8));
- for (i3 = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); i3.e != i3.i.gc(); ) {
- h = BD(Dyd(i3), 137);
- !Ccb(DD(hkd(h, Jxc))) && !!h.a && Ekb(j.f, Z1b(h));
- }
- switch (e.g) {
- case 2:
- case 1:
- (j.j == (Ucd(), Acd) || j.j == Rcd) && d.Fc((Orc(), Lrc));
- break;
- case 4:
- case 3:
- (j.j == (Ucd(), zcd) || j.j == Tcd) && d.Fc((Orc(), Lrc));
- }
- return j;
- }
- function nQc(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- m = null;
- d == (FQc(), DQc) ? m = b : d == EQc && (m = c2);
- for (p = m.a.ec().Kc(); p.Ob(); ) {
- o2 = BD(p.Pb(), 11);
- q = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).b;
- t4 = new Tqb();
- h = new Tqb();
- for (j = new b1b(o2.b); llb(j.a) || llb(j.b); ) {
- i3 = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17);
- if (Ccb(DD(vNb(i3, (wtc(), ltc)))) != e) {
- continue;
- }
- if (Jkb(f2, i3, 0) != -1) {
- i3.d == o2 ? r = i3.c : r = i3.d;
- s = l7c(OC(GC(m1, 1), nie, 8, 0, [r.i.n, r.n, r.a])).b;
- if ($wnd.Math.abs(s - q) < 0.2) {
- continue;
- }
- s < q ? b.a._b(r) ? Qqb(t4, new vgd(DQc, i3)) : Qqb(t4, new vgd(EQc, i3)) : b.a._b(r) ? Qqb(h, new vgd(DQc, i3)) : Qqb(h, new vgd(EQc, i3));
- }
- }
- if (t4.a.gc() > 1) {
- n = new ZQc(o2, t4, d);
- reb(t4, new PQc(a, n));
- g.c[g.c.length] = n;
- for (l = t4.a.ec().Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 46);
- Lkb(f2, k.b);
- }
- }
- if (h.a.gc() > 1) {
- n = new ZQc(o2, h, d);
- reb(h, new RQc(a, n));
- g.c[g.c.length] = n;
- for (l = h.a.ec().Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 46);
- Lkb(f2, k.b);
- }
- }
- }
- }
- function $Wc(a) {
- r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sre), "ELK Radial"), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new bXc()), sre)));
- p4c(a, sre, uqe, Ksd(UWc));
- p4c(a, sre, wme, Ksd(XWc));
- p4c(a, sre, Fme, Ksd(NWc));
- p4c(a, sre, Tme, Ksd(OWc));
- p4c(a, sre, Eme, Ksd(PWc));
- p4c(a, sre, Gme, Ksd(MWc));
- p4c(a, sre, Dme, Ksd(QWc));
- p4c(a, sre, Hme, Ksd(TWc));
- p4c(a, sre, ore, Ksd(KWc));
- p4c(a, sre, nre, Ksd(LWc));
- p4c(a, sre, rre, Ksd(RWc));
- p4c(a, sre, lre, Ksd(SWc));
- p4c(a, sre, mre, Ksd(VWc));
- p4c(a, sre, pre, Ksd(WWc));
- p4c(a, sre, qre, Ksd(YWc));
- }
- function LIb(a) {
- var b;
- this.r = Cy(new OIb(), new SIb());
- this.b = new Rpb(BD(Qb(F1), 290));
- this.p = new Rpb(BD(Qb(F1), 290));
- this.i = new Rpb(BD(Qb(DN), 290));
- this.e = a;
- this.o = new g7c(a.rf());
- this.D = a.Df() || Ccb(DD(a.We((Y9c(), M8c))));
- this.A = BD(a.We((Y9c(), Y8c)), 21);
- this.B = BD(a.We(b9c), 21);
- this.q = BD(a.We(t9c), 98);
- this.u = BD(a.We(x9c), 21);
- if (!ucd(this.u)) {
- throw vbb(new y2c("Invalid port label placement: " + this.u));
- }
- this.v = Ccb(DD(a.We(z9c)));
- this.j = BD(a.We(W8c), 21);
- if (!Jbd(this.j)) {
- throw vbb(new y2c("Invalid node label placement: " + this.j));
- }
- this.n = BD(bgd(a, U8c), 116);
- this.k = Edb(ED(bgd(a, Q9c)));
- this.d = Edb(ED(bgd(a, P9c)));
- this.w = Edb(ED(bgd(a, X9c)));
- this.s = Edb(ED(bgd(a, R9c)));
- this.t = Edb(ED(bgd(a, S9c)));
- this.C = BD(bgd(a, V9c), 142);
- this.c = 2 * this.d;
- b = !this.B.Hc((Idd(), zdd));
- this.f = new mIb(0, b, 0);
- this.g = new mIb(1, b, 0);
- lIb(this.f, (gHb(), eHb), this.g);
- }
- function Lgd(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
- t4 = 0;
- o2 = 0;
- n = 0;
- m = 1;
- for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) {
- q = BD(Dyd(s), 33);
- m += sr(new Sr(ur(_sd(q).a.Kc(), new Sq())));
- B = q.g;
- o2 = $wnd.Math.max(o2, B);
- l = q.f;
- n = $wnd.Math.max(n, l);
- t4 += B * l;
- }
- p = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i;
- g = t4 + 2 * d * d * m * p;
- f2 = $wnd.Math.sqrt(g);
- i3 = $wnd.Math.max(f2 * c2, o2);
- h = $wnd.Math.max(f2 / c2, n);
- for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) {
- q = BD(Dyd(r), 33);
- C = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (i3 - q.g);
- D3 = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (h - q.f);
- dld(q, C);
- eld(q, D3);
- }
- A = i3 + (e.b + e.c);
- w2 = h + (e.d + e.a);
- for (v = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); v.e != v.i.gc(); ) {
- u2 = BD(Dyd(v), 33);
- for (k = new Sr(ur(_sd(u2).a.Kc(), new Sq())); Qr(k); ) {
- j = BD(Rr(k), 79);
- Pld(j) || Kgd(j, b, A, w2);
- }
- }
- A += e.b + e.c;
- w2 += e.d + e.a;
- Afd(a, A, w2, false, true);
- }
- function Jcb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- if (a == null) {
- throw vbb(new Oeb(Xhe));
- }
- j = a;
- f2 = a.length;
- i3 = false;
- if (f2 > 0) {
- b = (BCb(0, a.length), a.charCodeAt(0));
- if (b == 45 || b == 43) {
- a = a.substr(1);
- --f2;
- i3 = b == 45;
- }
- }
- if (f2 == 0) {
- throw vbb(new Oeb(Oje + j + '"'));
- }
- while (a.length > 0 && (BCb(0, a.length), a.charCodeAt(0) == 48)) {
- a = a.substr(1);
- --f2;
- }
- if (f2 > (Neb(), Leb)[10]) {
- throw vbb(new Oeb(Oje + j + '"'));
- }
- for (e = 0; e < f2; e++) {
- if (Zcb((BCb(e, a.length), a.charCodeAt(e))) == -1) {
- throw vbb(new Oeb(Oje + j + '"'));
- }
- }
- l = 0;
- g = Jeb[10];
- k = Keb[10];
- h = Jbb(Meb[10]);
- c2 = true;
- d = f2 % g;
- if (d > 0) {
- l = -parseInt(a.substr(0, d), 10);
- a = a.substr(d);
- f2 -= d;
- c2 = false;
- }
- while (f2 >= g) {
- d = parseInt(a.substr(0, g), 10);
- a = a.substr(g);
- f2 -= g;
- if (c2) {
- c2 = false;
- } else {
- if (ybb(l, h) < 0) {
- throw vbb(new Oeb(Oje + j + '"'));
- }
- l = Ibb(l, k);
- }
- l = Qbb(l, d);
- }
- if (ybb(l, 0) > 0) {
- throw vbb(new Oeb(Oje + j + '"'));
- }
- if (!i3) {
- l = Jbb(l);
- if (ybb(l, 0) < 0) {
- throw vbb(new Oeb(Oje + j + '"'));
- }
- }
- return l;
- }
- function Z6d(a, b) {
- X6d();
- var c2, d, e, f2, g, h, i3;
- this.a = new a7d(this);
- this.b = a;
- this.c = b;
- this.f = c2d(q1d((O6d(), M6d), b));
- if (this.f.dc()) {
- if ((h = t1d(M6d, a)) == b) {
- this.e = true;
- this.d = new Rkb();
- this.f = new oFd();
- this.f.Fc(Ewe);
- BD(V1d(p1d(M6d, bKd(a)), ""), 26) == a && this.f.Fc(u1d(M6d, bKd(a)));
- for (e = g1d(M6d, a).Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 170);
- switch ($1d(q1d(M6d, d))) {
- case 4: {
- this.d.Fc(d);
- break;
- }
- case 5: {
- this.f.Gc(c2d(q1d(M6d, d)));
- break;
- }
- }
- }
- } else {
- Q6d();
- if (BD(b, 66).Oj()) {
- this.e = true;
- this.f = null;
- this.d = new Rkb();
- for (g = 0, i3 = (a.i == null && TKd(a), a.i).length; g < i3; ++g) {
- d = (c2 = (a.i == null && TKd(a), a.i), g >= 0 && g < c2.length ? c2[g] : null);
- for (f2 = _1d(q1d(M6d, d)); f2; f2 = _1d(q1d(M6d, f2))) {
- f2 == b && this.d.Fc(d);
- }
- }
- } else if ($1d(q1d(M6d, b)) == 1 && !!h) {
- this.f = null;
- this.d = (m8d(), l8d);
- } else {
- this.f = null;
- this.e = true;
- this.d = (mmb(), new anb(b));
- }
- }
- } else {
- this.e = $1d(q1d(M6d, b)) == 5;
- this.f.Fb(W6d) && (this.f = W6d);
- }
- }
- function zKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- c2 = 0;
- d = yKb(a, b);
- m = a.s;
- n = a.t;
- for (j = BD(BD(Qc(a.r, b), 21), 84).Kc(); j.Ob(); ) {
- i3 = BD(j.Pb(), 111);
- if (!i3.c || i3.c.d.c.length <= 0) {
- continue;
- }
- o2 = i3.b.rf();
- h = i3.b.Xe((Y9c(), s9c)) ? Edb(ED(i3.b.We(s9c))) : 0;
- k = i3.c;
- l = k.i;
- l.b = (g = k.n, k.e.a + g.b + g.c);
- l.a = (f2 = k.n, k.e.b + f2.d + f2.a);
- switch (b.g) {
- case 1:
- l.c = i3.a ? (o2.a - l.b) / 2 : o2.a + m;
- l.d = o2.b + h + d;
- $Hb(k, (NHb(), KHb));
- _Hb(k, (EIb(), DIb));
- break;
- case 3:
- l.c = i3.a ? (o2.a - l.b) / 2 : o2.a + m;
- l.d = -h - d - l.a;
- $Hb(k, (NHb(), KHb));
- _Hb(k, (EIb(), BIb));
- break;
- case 2:
- l.c = -h - d - l.b;
- if (i3.a) {
- e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
- l.d = (o2.b - e) / 2;
- } else {
- l.d = o2.b + n;
- }
- $Hb(k, (NHb(), MHb));
- _Hb(k, (EIb(), CIb));
- break;
- case 4:
- l.c = o2.a + h + d;
- if (i3.a) {
- e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
- l.d = (o2.b - e) / 2;
- } else {
- l.d = o2.b + n;
- }
- $Hb(k, (NHb(), LHb));
- _Hb(k, (EIb(), CIb));
- }
- (b == (Ucd(), Acd) || b == Rcd) && (c2 = $wnd.Math.max(c2, l.a));
- }
- c2 > 0 && (BD(Mpb(a.b, b), 124).a.b = c2);
- }
- function b3b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- Odd(b, "Comment pre-processing", 1);
- c2 = 0;
- i3 = new olb(a.a);
- while (i3.a < i3.c.c.length) {
- h = BD(mlb(i3), 10);
- if (Ccb(DD(vNb(h, (Nyc(), pwc))))) {
- ++c2;
- e = 0;
- d = null;
- j = null;
- for (o2 = new olb(h.j); o2.a < o2.c.c.length; ) {
- m = BD(mlb(o2), 11);
- e += m.e.c.length + m.g.c.length;
- if (m.e.c.length == 1) {
- d = BD(Ikb(m.e, 0), 17);
- j = d.c;
- }
- if (m.g.c.length == 1) {
- d = BD(Ikb(m.g, 0), 17);
- j = d.d;
- }
- }
- if (e == 1 && j.e.c.length + j.g.c.length == 1 && !Ccb(DD(vNb(j.i, pwc)))) {
- c3b(h, d, j, j.i);
- nlb(i3);
- } else {
- r = new Rkb();
- for (n = new olb(h.j); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 11);
- for (l = new olb(m.g); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 17);
- k.d.g.c.length == 0 || (r.c[r.c.length] = k, true);
- }
- for (g = new olb(m.e); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 17);
- f2.c.e.c.length == 0 || (r.c[r.c.length] = f2, true);
- }
- }
- for (q = new olb(r); q.a < q.c.c.length; ) {
- p = BD(mlb(q), 17);
- PZb(p, true);
- }
- }
- }
- }
- b.n && Sdd(b, "Found " + c2 + " comment boxes");
- Qdd(b);
+ }
+ return {
+ found: false,
+ distance: void 0,
+ path: void 0,
+ steps
+ };
+ }, "aStar")
+ };
+ floydWarshallDefaults = defaults$g({
+ weight: /* @__PURE__ */ __name(function weight3(edge) {
+ return 1;
+ }, "weight"),
+ directed: false
+ });
+ elesfn$r = {
+ // Implemented from pseudocode from wikipedia
+ floydWarshall: /* @__PURE__ */ __name(function floydWarshall2(options3) {
+ var cy = this.cy();
+ var _floydWarshallDefault = floydWarshallDefaults(options3), weight8 = _floydWarshallDefault.weight, directed = _floydWarshallDefault.directed;
+ var weightFn = weight8;
+ var _this$byGroup = this.byGroup(), nodes6 = _this$byGroup.nodes, edges5 = _this$byGroup.edges;
+ var N2 = nodes6.length;
+ var Nsq = N2 * N2;
+ var indexOf2 = /* @__PURE__ */ __name(function indexOf3(node2) {
+ return nodes6.indexOf(node2);
+ }, "indexOf");
+ var atIndex = /* @__PURE__ */ __name(function atIndex2(i3) {
+ return nodes6[i3];
+ }, "atIndex");
+ var dist3 = new Array(Nsq);
+ for (var n2 = 0; n2 < Nsq; n2++) {
+ var j2 = n2 % N2;
+ var i2 = (n2 - j2) / N2;
+ if (i2 === j2) {
+ dist3[n2] = 0;
+ } else {
+ dist3[n2] = Infinity;
}
- function f9b(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p;
- m = Edb(ED(vNb(a, (Nyc(), tyc))));
- n = Edb(ED(vNb(a, uyc)));
- l = Edb(ED(vNb(a, ryc)));
- h = a.o;
- f2 = BD(Ikb(a.j, 0), 11);
- g = f2.n;
- p = d9b(f2, l);
- if (!p) {
- return;
- }
- if (b.Hc((rcd(), ncd))) {
- switch (BD(vNb(a, (wtc(), Hsc)), 61).g) {
- case 1:
- p.c = (h.a - p.b) / 2 - g.a;
- p.d = n;
- break;
- case 3:
- p.c = (h.a - p.b) / 2 - g.a;
- p.d = -n - p.a;
- break;
- case 2:
- if (c2 && f2.e.c.length == 0 && f2.g.c.length == 0) {
- k = d ? p.a : BD(Ikb(f2.f, 0), 70).o.b;
- p.d = (h.b - k) / 2 - g.b;
- } else {
- p.d = h.b + n - g.b;
- }
- p.c = -m - p.b;
- break;
- case 4:
- if (c2 && f2.e.c.length == 0 && f2.g.c.length == 0) {
- k = d ? p.a : BD(Ikb(f2.f, 0), 70).o.b;
- p.d = (h.b - k) / 2 - g.b;
- } else {
- p.d = h.b + n - g.b;
- }
- p.c = m;
- }
- } else if (b.Hc(pcd)) {
- switch (BD(vNb(a, (wtc(), Hsc)), 61).g) {
- case 1:
- case 3:
- p.c = g.a + m;
- break;
- case 2:
- case 4:
- if (c2 && !f2.c) {
- k = d ? p.a : BD(Ikb(f2.f, 0), 70).o.b;
- p.d = (h.b - k) / 2 - g.b;
- } else {
- p.d = g.b + n;
- }
- }
- }
- e = p.d;
- for (j = new olb(f2.f); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 70);
- o2 = i3.n;
- o2.a = p.c;
- o2.b = e;
- e += i3.o.b + l;
- }
- }
- function eae() {
- rEd(Q9, new Lae());
- rEd(S9, new qbe());
- rEd(T9, new Xbe());
- rEd(U9, new Cce());
- rEd(ZI, new Oce());
- rEd(GC(SD, 1), new Rce());
- rEd(wI, new Uce());
- rEd(xI, new Xce());
- rEd(ZI, new hae());
- rEd(ZI, new kae());
- rEd(ZI, new nae());
- rEd(BI, new qae());
- rEd(ZI, new tae());
- rEd(yK, new wae());
- rEd(yK, new zae());
- rEd(ZI, new Cae());
- rEd(FI, new Fae());
- rEd(ZI, new Iae());
- rEd(ZI, new Oae());
- rEd(ZI, new Rae());
- rEd(ZI, new Uae());
- rEd(ZI, new Xae());
- rEd(GC(SD, 1), new $ae());
- rEd(ZI, new bbe());
- rEd(ZI, new ebe());
- rEd(yK, new hbe());
- rEd(yK, new kbe());
- rEd(ZI, new nbe());
- rEd(JI, new tbe());
- rEd(ZI, new wbe());
- rEd(MI, new zbe());
- rEd(ZI, new Cbe());
- rEd(ZI, new Fbe());
- rEd(ZI, new Ibe());
- rEd(ZI, new Lbe());
- rEd(yK, new Obe());
- rEd(yK, new Rbe());
- rEd(ZI, new Ube());
- rEd(ZI, new $be());
- rEd(ZI, new bce());
- rEd(ZI, new ece());
- rEd(ZI, new hce());
- rEd(ZI, new kce());
- rEd(UI, new nce());
- rEd(ZI, new qce());
- rEd(ZI, new tce());
- rEd(ZI, new wce());
- rEd(UI, new zce());
- rEd(MI, new Fce());
- rEd(ZI, new Ice());
- rEd(JI, new Lce());
- }
- function Bmd(b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- n = c2.length;
- if (n > 0) {
- j = (BCb(0, c2.length), c2.charCodeAt(0));
- if (j != 64) {
- if (j == 37) {
- m = c2.lastIndexOf("%");
- k = false;
- if (m != 0 && (m == n - 1 || (k = (BCb(m + 1, c2.length), c2.charCodeAt(m + 1) == 46)))) {
- h = c2.substr(1, m - 1);
- u2 = dfb("%", h) ? null : QEd(h);
- e = 0;
- if (k) {
- try {
- e = Icb(c2.substr(m + 2), Rie, Ohe);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- i3 = a;
- throw vbb(new rFd(i3));
- } else
- throw vbb(a);
- }
- }
- for (r = pRd(b.Wg()); r.Ob(); ) {
- p = MRd(r);
- if (JD(p, 510)) {
- f2 = BD(p, 590);
- t4 = f2.d;
- if ((u2 == null ? t4 == null : dfb(u2, t4)) && e-- == 0) {
- return f2;
- }
- }
- }
- return null;
- }
- }
- l = c2.lastIndexOf(".");
- o2 = l == -1 ? c2 : c2.substr(0, l);
- d = 0;
- if (l != -1) {
- try {
- d = Icb(c2.substr(l + 1), Rie, Ohe);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- o2 = c2;
- } else
- throw vbb(a);
- }
- }
- o2 = dfb("%", o2) ? null : QEd(o2);
- for (q = pRd(b.Wg()); q.Ob(); ) {
- p = MRd(q);
- if (JD(p, 191)) {
- g = BD(p, 191);
- s = g.ne();
- if ((o2 == null ? s == null : dfb(o2, s)) && d-- == 0) {
- return g;
- }
- }
- }
- return null;
- }
- }
- return rid(b, c2);
+ }
+ var next3 = new Array(Nsq);
+ var edgeNext = new Array(Nsq);
+ for (var _i = 0; _i < edges5.length; _i++) {
+ var edge = edges5[_i];
+ var src = edge.source()[0];
+ var tgt = edge.target()[0];
+ if (src === tgt) {
+ continue;
}
- function f6b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
- w2 = new Rkb();
- for (o2 = new olb(a.b); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 29);
- for (r = new olb(n.a); r.a < r.c.c.length; ) {
- p = BD(mlb(r), 10);
- if (p.k != (j0b(), e0b)) {
- continue;
- }
- if (!wNb(p, (wtc(), Gsc))) {
- continue;
- }
- s = null;
- u2 = null;
- t4 = null;
- for (C = new olb(p.j); C.a < C.c.c.length; ) {
- B = BD(mlb(C), 11);
- switch (B.j.g) {
- case 4:
- s = B;
- break;
- case 2:
- u2 = B;
- break;
- default:
- t4 = B;
- }
- }
- v = BD(Ikb(t4.g, 0), 17);
- k = new t7c(v.a);
- j = new g7c(t4.n);
- P6c(j, p.n);
- l = Jsb(k, 0);
- Vsb(l, j);
- A = w7c(v.a);
- m = new g7c(t4.n);
- P6c(m, p.n);
- Gsb(A, m, A.c.b, A.c);
- D3 = BD(vNb(p, Gsc), 10);
- F = BD(Ikb(D3.j, 0), 11);
- i3 = BD(Qkb(s.e, KC(AQ, jne, 17, 0, 0, 1)), 474);
- for (d = i3, f2 = 0, h = d.length; f2 < h; ++f2) {
- b = d[f2];
- RZb(b, F);
- o7c(b.a, b.a.b, k);
- }
- i3 = k_b(u2.g);
- for (c2 = i3, e = 0, g = c2.length; e < g; ++e) {
- b = c2[e];
- QZb(b, F);
- o7c(b.a, 0, A);
- }
- QZb(v, null);
- RZb(v, null);
- w2.c[w2.c.length] = p;
- }
- }
- for (q = new olb(w2); q.a < q.c.c.length; ) {
- p = BD(mlb(q), 10);
- $_b(p, null);
- }
- }
- function lgb() {
- lgb = ccb;
- var a, b, c2;
- new sgb(1, 0);
- new sgb(10, 0);
- new sgb(0, 0);
- dgb = KC(bJ, nie, 240, 11, 0, 1);
- egb = KC(TD, $ie, 25, 100, 15, 1);
- fgb = OC(GC(UD, 1), Vje, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]);
- ggb = KC(WD, oje, 25, fgb.length, 15, 1);
- hgb = OC(GC(UD, 1), Vje, 25, 15, [1, 10, 100, _ie, 1e4, Wje, 1e6, 1e7, 1e8, Jje, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16]);
- igb = KC(WD, oje, 25, hgb.length, 15, 1);
- jgb = KC(bJ, nie, 240, 11, 0, 1);
- a = 0;
- for (; a < jgb.length; a++) {
- dgb[a] = new sgb(a, 0);
- jgb[a] = new sgb(0, a);
- egb[a] = 48;
- }
- for (; a < egb.length; a++) {
- egb[a] = 48;
- }
- for (c2 = 0; c2 < ggb.length; c2++) {
- ggb[c2] = ugb(fgb[c2]);
- }
- for (b = 0; b < igb.length; b++) {
- igb[b] = ugb(hgb[b]);
- }
- Dhb();
- }
- function zrb() {
- function e() {
- this.obj = this.createObject();
- }
- e.prototype.createObject = function(a) {
- return /* @__PURE__ */ Object.create(null);
- };
- e.prototype.get = function(a) {
- return this.obj[a];
- };
- e.prototype.set = function(a, b) {
- this.obj[a] = b;
- };
- e.prototype[hke] = function(a) {
- delete this.obj[a];
- };
- e.prototype.keys = function() {
- return Object.getOwnPropertyNames(this.obj);
- };
- e.prototype.entries = function() {
- var b = this.keys();
- var c2 = this;
- var d = 0;
- return { next: function() {
- if (d >= b.length)
- return { done: true };
- var a = b[d++];
- return { value: [a, c2.get(a)], done: false };
- } };
- };
- if (!xrb()) {
- e.prototype.createObject = function() {
- return {};
- };
- e.prototype.get = function(a) {
- return this.obj[":" + a];
- };
- e.prototype.set = function(a, b) {
- this.obj[":" + a] = b;
- };
- e.prototype[hke] = function(a) {
- delete this.obj[":" + a];
- };
- e.prototype.keys = function() {
- var a = [];
- for (var b in this.obj) {
- b.charCodeAt(0) == 58 && a.push(b.substring(1));
- }
- return a;
- };
+ var s2 = indexOf2(src);
+ var t4 = indexOf2(tgt);
+ var st2 = s2 * N2 + t4;
+ var _weight = weightFn(edge);
+ if (dist3[st2] > _weight) {
+ dist3[st2] = _weight;
+ next3[st2] = t4;
+ edgeNext[st2] = edge;
+ }
+ if (!directed) {
+ var ts = t4 * N2 + s2;
+ if (!directed && dist3[ts] > _weight) {
+ dist3[ts] = _weight;
+ next3[ts] = s2;
+ edgeNext[ts] = edge;
}
- return e;
}
- function cde(a) {
- ade();
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- if (a == null)
- return null;
- l = a.length * 8;
- if (l == 0) {
- return "";
- }
- h = l % 24;
- n = l / 24 | 0;
- m = h != 0 ? n + 1 : n;
- f2 = null;
- f2 = KC(TD, $ie, 25, m * 4, 15, 1);
- j = 0;
- k = 0;
- b = 0;
- c2 = 0;
- d = 0;
- g = 0;
- e = 0;
- for (i3 = 0; i3 < n; i3++) {
- b = a[e++];
- c2 = a[e++];
- d = a[e++];
- k = (c2 & 15) << 24 >> 24;
- j = (b & 3) << 24 >> 24;
- o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
- p = (c2 & -128) == 0 ? c2 >> 4 << 24 >> 24 : (c2 >> 4 ^ 240) << 24 >> 24;
- q = (d & -128) == 0 ? d >> 6 << 24 >> 24 : (d >> 6 ^ 252) << 24 >> 24;
- f2[g++] = _ce[o2];
- f2[g++] = _ce[p | j << 4];
- f2[g++] = _ce[k << 2 | q];
- f2[g++] = _ce[d & 63];
- }
- if (h == 8) {
- b = a[e];
- j = (b & 3) << 24 >> 24;
- o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
- f2[g++] = _ce[o2];
- f2[g++] = _ce[j << 4];
- f2[g++] = 61;
- f2[g++] = 61;
- } else if (h == 16) {
- b = a[e];
- c2 = a[e + 1];
- k = (c2 & 15) << 24 >> 24;
- j = (b & 3) << 24 >> 24;
- o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
- p = (c2 & -128) == 0 ? c2 >> 4 << 24 >> 24 : (c2 >> 4 ^ 240) << 24 >> 24;
- f2[g++] = _ce[o2];
- f2[g++] = _ce[p | j << 4];
- f2[g++] = _ce[k << 2];
- f2[g++] = 61;
- }
- return zfb(f2, 0, f2.length);
- }
- function mB(a, b) {
- var c2, d, e, f2, g, h, i3;
- a.e == 0 && a.p > 0 && (a.p = -(a.p - 1));
- a.p > Rie && dB(b, a.p - nje);
- g = b.q.getDate();
- ZA(b, 1);
- a.k >= 0 && aB(b, a.k);
- if (a.c >= 0) {
- ZA(b, a.c);
- } else if (a.k >= 0) {
- i3 = new fB(b.q.getFullYear() - nje, b.q.getMonth(), 35);
- d = 35 - i3.q.getDate();
- ZA(b, $wnd.Math.min(d, g));
- } else {
- ZA(b, g);
- }
- a.f < 0 && (a.f = b.q.getHours());
- a.b > 0 && a.f < 12 && (a.f += 12);
- $A(b, a.f == 24 && a.g ? 0 : a.f);
- a.j >= 0 && _A(b, a.j);
- a.n >= 0 && bB(b, a.n);
- a.i >= 0 && cB(b, wbb(Ibb(Abb(Cbb(b.q.getTime()), _ie), _ie), a.i));
- if (a.a) {
- e = new eB();
- dB(e, e.q.getFullYear() - nje - 80);
- Gbb(Cbb(b.q.getTime()), Cbb(e.q.getTime())) && dB(b, e.q.getFullYear() - nje + 100);
- }
- if (a.d >= 0) {
- if (a.c == -1) {
- c2 = (7 + a.d - b.q.getDay()) % 7;
- c2 > 3 && (c2 -= 7);
- h = b.q.getMonth();
- ZA(b, b.q.getDate() + c2);
- b.q.getMonth() != h && ZA(b, b.q.getDate() + (c2 > 0 ? -7 : 7));
- } else {
- if (b.q.getDay() != a.d) {
- return false;
- }
+ }
+ for (var k2 = 0; k2 < N2; k2++) {
+ for (var _i2 = 0; _i2 < N2; _i2++) {
+ var ik = _i2 * N2 + k2;
+ for (var _j = 0; _j < N2; _j++) {
+ var ij = _i2 * N2 + _j;
+ var kj = k2 * N2 + _j;
+ if (dist3[ik] + dist3[kj] < dist3[ij]) {
+ dist3[ij] = dist3[ik] + dist3[kj];
+ next3[ij] = next3[ik];
}
}
- if (a.o > Rie) {
- f2 = b.q.getTimezoneOffset();
- cB(b, wbb(Cbb(b.q.getTime()), (a.o - f2) * 60 * _ie));
- }
- return true;
}
- function z2b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- e = vNb(b, (wtc(), $sc));
- if (!JD(e, 239)) {
- return;
- }
- o2 = BD(e, 33);
- p = b.e;
- m = new g7c(b.c);
- f2 = b.d;
- m.a += f2.b;
- m.b += f2.d;
- u2 = BD(hkd(o2, (Nyc(), Ixc)), 174);
- if (uqb(u2, (Idd(), Add))) {
- n = BD(hkd(o2, Kxc), 116);
- w_b(n, f2.a);
- z_b(n, f2.d);
- x_b(n, f2.b);
- y_b(n, f2.c);
- }
- c2 = new Rkb();
- for (k = new olb(b.a); k.a < k.c.c.length; ) {
- i3 = BD(mlb(k), 10);
- if (JD(vNb(i3, $sc), 239)) {
- A2b(i3, m);
- } else if (JD(vNb(i3, $sc), 186) && !p) {
- d = BD(vNb(i3, $sc), 118);
- s = b_b(b, i3, d.g, d.f);
- bld(d, s.a, s.b);
- }
- for (r = new olb(i3.j); r.a < r.c.c.length; ) {
- q = BD(mlb(r), 11);
- MAb(JAb(new YAb(null, new Kub(q.g, 16)), new G2b(i3)), new I2b(c2));
- }
- }
- if (p) {
- for (r = new olb(p.j); r.a < r.c.c.length; ) {
- q = BD(mlb(r), 11);
- MAb(JAb(new YAb(null, new Kub(q.g, 16)), new K2b(p)), new M2b(c2));
- }
- }
- t4 = BD(hkd(o2, Swc), 218);
- for (h = new olb(c2); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- y2b(g, t4, m);
- }
- B2b(b);
- for (j = new olb(b.a); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 10);
- l = i3.e;
- !!l && z2b(a, l);
- }
- }
- function xSb(a) {
- r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), ume), "ELK Force"), "Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."), new ASb()), ume), qqb((Csd(), zsd), OC(GC(O3, 1), Kie, 237, 0, [xsd])))));
- p4c(a, ume, vme, meb(1));
- p4c(a, ume, wme, 80);
- p4c(a, ume, xme, 5);
- p4c(a, ume, _le, tme);
- p4c(a, ume, yme, meb(1));
- p4c(a, ume, zme, (Bcb(), true));
- p4c(a, ume, ame, lSb);
- p4c(a, ume, Ame, Ksd(dSb));
- p4c(a, ume, Bme, Ksd(mSb));
- p4c(a, ume, Cme, false);
- p4c(a, ume, Dme, Ksd(jSb));
- p4c(a, ume, Eme, Ksd(iSb));
- p4c(a, ume, Fme, Ksd(hSb));
- p4c(a, ume, Gme, Ksd(gSb));
- p4c(a, ume, Hme, Ksd(nSb));
- p4c(a, ume, mme, Ksd(fSb));
- p4c(a, ume, pme, Ksd(vSb));
- p4c(a, ume, nme, Ksd(eSb));
- p4c(a, ume, rme, Ksd(qSb));
- p4c(a, ume, ome, Ksd(rSb));
- }
- function GKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
- return;
- }
- g = BD(Mpb(a.b, b), 124);
- i3 = g.i;
- h = g.n;
- k = KIb(a, b);
- d = i3.b - h.b - h.c;
- e = g.a.a;
- f2 = i3.c + h.b;
- n = a.w;
- if ((k == (Tbd(), Qbd) || k == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) {
- e = k == Qbd ? e - 2 * a.w : e;
- k = Pbd;
- }
- if (d < e && !a.B.Hc((Idd(), Fdd))) {
- if (k == Qbd) {
- n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
- f2 += n;
- } else {
- n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
- }
- } else {
- if (d < e) {
- e = k == Qbd ? e - 2 * a.w : e;
- k = Pbd;
- }
- switch (k.g) {
- case 3:
- f2 += (d - e) / 2;
- break;
- case 4:
- f2 += d - e;
- break;
- case 0:
- c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
- n += $wnd.Math.max(0, c2);
- f2 += n;
- break;
- case 1:
- c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
- n += $wnd.Math.max(0, c2);
- }
+ }
+ var getArgEle = /* @__PURE__ */ __name(function getArgEle2(ele) {
+ return (string(ele) ? cy.filter(ele) : ele)[0];
+ }, "getArgEle");
+ var indexOfArgEle = /* @__PURE__ */ __name(function indexOfArgEle2(ele) {
+ return indexOf2(getArgEle(ele));
+ }, "indexOfArgEle");
+ var res = {
+ distance: /* @__PURE__ */ __name(function distance2(from2, to) {
+ var i3 = indexOfArgEle(from2);
+ var j3 = indexOfArgEle(to);
+ return dist3[i3 * N2 + j3];
+ }, "distance"),
+ path: /* @__PURE__ */ __name(function path4(from2, to) {
+ var i3 = indexOfArgEle(from2);
+ var j3 = indexOfArgEle(to);
+ var fromNode = atIndex(i3);
+ if (i3 === j3) {
+ return fromNode.collection();
}
- for (m = BD(BD(Qc(a.r, b), 21), 84).Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 111);
- l.e.a = f2 + l.d.b;
- l.e.b = (j = l.b, j.Xe((Y9c(), s9c)) ? j.Hf() == (Ucd(), Acd) ? -j.rf().b - Edb(ED(j.We(s9c))) : Edb(ED(j.We(s9c))) : j.Hf() == (Ucd(), Acd) ? -j.rf().b : 0);
- f2 += l.d.b + l.b.rf().a + l.d.c + n;
+ if (next3[i3 * N2 + j3] == null) {
+ return cy.collection();
}
+ var path5 = cy.collection();
+ var prev2 = i3;
+ var edge2;
+ path5.merge(fromNode);
+ while (i3 !== j3) {
+ prev2 = i3;
+ i3 = next3[i3 * N2 + j3];
+ edge2 = edgeNext[prev2 * N2 + i3];
+ path5.merge(edge2);
+ path5.merge(atIndex(i3));
+ }
+ return path5;
+ }, "path")
+ };
+ return res;
+ }, "floydWarshall")
+ // floydWarshall
+ };
+ bellmanFordDefaults = defaults$g({
+ weight: /* @__PURE__ */ __name(function weight4(edge) {
+ return 1;
+ }, "weight"),
+ directed: false,
+ root: null
+ });
+ elesfn$q = {
+ // Implemented from pseudocode from wikipedia
+ bellmanFord: /* @__PURE__ */ __name(function bellmanFord(options3) {
+ var _this = this;
+ var _bellmanFordDefaults = bellmanFordDefaults(options3), weight8 = _bellmanFordDefaults.weight, directed = _bellmanFordDefaults.directed, root4 = _bellmanFordDefaults.root;
+ var weightFn = weight8;
+ var eles = this;
+ var cy = this.cy();
+ var _this$byGroup = this.byGroup(), edges5 = _this$byGroup.edges, nodes6 = _this$byGroup.nodes;
+ var numNodes = nodes6.length;
+ var infoMap = new Map$2();
+ var hasNegativeWeightCycle = false;
+ var negativeWeightCycles = [];
+ root4 = cy.collection(root4)[0];
+ edges5.unmergeBy(function(edge2) {
+ return edge2.isLoop();
+ });
+ var numEdges = edges5.length;
+ var getInfo3 = /* @__PURE__ */ __name(function getInfo4(node3) {
+ var obj = infoMap.get(node3.id());
+ if (!obj) {
+ obj = {};
+ infoMap.set(node3.id(), obj);
}
- function KKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
- return;
- }
- g = BD(Mpb(a.b, b), 124);
- i3 = g.i;
- h = g.n;
- l = KIb(a, b);
- d = i3.a - h.d - h.a;
- e = g.a.b;
- f2 = i3.d + h.d;
- o2 = a.w;
- j = a.o.a;
- if ((l == (Tbd(), Qbd) || l == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) {
- e = l == Qbd ? e - 2 * a.w : e;
- l = Pbd;
- }
- if (d < e && !a.B.Hc((Idd(), Fdd))) {
- if (l == Qbd) {
- o2 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
- f2 += o2;
- } else {
- o2 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
- }
- } else {
- if (d < e) {
- e = l == Qbd ? e - 2 * a.w : e;
- l = Pbd;
- }
- switch (l.g) {
- case 3:
- f2 += (d - e) / 2;
- break;
- case 4:
- f2 += d - e;
- break;
- case 0:
- c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
- o2 += $wnd.Math.max(0, c2);
- f2 += o2;
- break;
- case 1:
- c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
- o2 += $wnd.Math.max(0, c2);
- }
- }
- for (n = BD(BD(Qc(a.r, b), 21), 84).Kc(); n.Ob(); ) {
- m = BD(n.Pb(), 111);
- m.e.a = (k = m.b, k.Xe((Y9c(), s9c)) ? k.Hf() == (Ucd(), Tcd) ? -k.rf().a - Edb(ED(k.We(s9c))) : j + Edb(ED(k.We(s9c))) : k.Hf() == (Ucd(), Tcd) ? -k.rf().a : j);
- m.e.b = f2 + m.d.d;
- f2 += m.d.d + m.b.rf().b + m.d.a + o2;
- }
- }
- function Abc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- a.n = Edb(ED(vNb(a.g, (Nyc(), vyc))));
- a.e = Edb(ED(vNb(a.g, pyc)));
- a.i = a.g.b.c.length;
- h = a.i - 1;
- m = 0;
- a.j = 0;
- a.k = 0;
- a.a = Ou(KC(JI, nie, 19, a.i, 0, 1));
- a.b = Ou(KC(BI, nie, 333, a.i, 7, 1));
- for (g = new olb(a.g.b); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 29);
- e.p = h;
- for (l = new olb(e.a); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 10);
- k.p = m;
- ++m;
- }
- --h;
- }
- a.f = KC(WD, oje, 25, m, 15, 1);
- a.c = IC(WD, [nie, oje], [48, 25], 15, [m, 3], 2);
- a.o = new Rkb();
- a.p = new Rkb();
- b = 0;
- a.d = 0;
- for (f2 = new olb(a.g.b); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 29);
- h = e.p;
- d = 0;
- p = 0;
- i3 = e.a.c.length;
- j = 0;
- for (l = new olb(e.a); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 10);
- m = k.p;
- a.f[m] = k.c.p;
- j += k.o.b + a.n;
- c2 = sr(new Sr(ur(R_b(k).a.Kc(), new Sq())));
- o2 = sr(new Sr(ur(U_b(k).a.Kc(), new Sq())));
- a.c[m][0] = o2 - c2;
- a.c[m][1] = c2;
- a.c[m][2] = o2;
- d += c2;
- p += o2;
- c2 > 0 && Ekb(a.p, k);
- Ekb(a.o, k);
- }
- b -= d;
- n = i3 + b;
- j += b * a.e;
- Nkb(a.a, h, meb(n));
- Nkb(a.b, h, j);
- a.j = $wnd.Math.max(a.j, n);
- a.k = $wnd.Math.max(a.k, j);
- a.d += b;
- b += p;
- }
- }
- function Ucd() {
- Ucd = ccb;
- var a;
- Scd = new Ycd(ole, 0);
- Acd = new Ycd(xle, 1);
- zcd = new Ycd(yle, 2);
- Rcd = new Ycd(zle, 3);
- Tcd = new Ycd(Ale, 4);
- Fcd = (mmb(), new zob((a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0))));
- Gcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [])));
- Bcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [])));
- Ocd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, [])));
- Qcd = Up(qqb(Tcd, OC(GC(F1, 1), bne, 61, 0, [])));
- Lcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd])));
- Ecd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
- Ncd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
- Hcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd])));
- Pcd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
- Ccd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd])));
- Kcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Tcd])));
- Dcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd])));
- Mcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd])));
- Icd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd])));
- Jcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd])));
- }
- function fSc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- if (b.b != 0) {
- n = new Psb();
- h = null;
- o2 = null;
- d = QD($wnd.Math.floor($wnd.Math.log(b.b) * $wnd.Math.LOG10E) + 1);
- i3 = 0;
- for (t4 = Jsb(b, 0); t4.b != t4.d.c; ) {
- r = BD(Xsb(t4), 86);
- if (PD(o2) !== PD(vNb(r, (mTc(), $Sc)))) {
- o2 = GD(vNb(r, $Sc));
- i3 = 0;
- }
- o2 != null ? h = o2 + iSc(i3++, d) : h = iSc(i3++, d);
- yNb(r, $Sc, h);
- for (q = (e = Jsb(new ZRc(r).a.d, 0), new aSc(e)); Wsb(q.a); ) {
- p = BD(Xsb(q.a), 188).c;
- Gsb(n, p, n.c.b, n.c);
- yNb(p, $Sc, h);
- }
- }
- m = new Lqb();
- for (g = 0; g < h.length - d; g++) {
- for (s = Jsb(b, 0); s.b != s.d.c; ) {
- r = BD(Xsb(s), 86);
- j = qfb(GD(vNb(r, (mTc(), $Sc))), 0, g + 1);
- c2 = (j == null ? Wd(irb(m.f, null)) : Crb(m.g, j)) != null ? BD(j == null ? Wd(irb(m.f, null)) : Crb(m.g, j), 19).a + 1 : 1;
- Shb(m, j, meb(c2));
- }
- }
- for (l = new nib(new eib(m).a); l.b; ) {
- k = lib(l);
- f2 = meb(Ohb(a.a, k.cd()) != null ? BD(Ohb(a.a, k.cd()), 19).a : 0);
- Shb(a.a, GD(k.cd()), meb(BD(k.dd(), 19).a + f2.a));
- f2 = BD(Ohb(a.b, k.cd()), 19);
- (!f2 || f2.a < BD(k.dd(), 19).a) && Shb(a.b, GD(k.cd()), BD(k.dd(), 19));
- }
- fSc(a, n);
- }
- }
- function PCc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- Odd(c2, "Interactive node layering", 1);
- d = new Rkb();
- for (n = new olb(b.a); n.a < n.c.c.length; ) {
- l = BD(mlb(n), 10);
- j = l.n.a;
- i3 = j + l.o.a;
- i3 = $wnd.Math.max(j + 1, i3);
- r = new Bib(d, 0);
- e = null;
- while (r.b < r.d.gc()) {
- p = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 569));
- if (p.c >= i3) {
- sCb(r.b > 0);
- r.a.Xb(r.c = --r.b);
- break;
- } else if (p.a > j) {
- if (!e) {
- Ekb(p.b, l);
- p.c = $wnd.Math.min(p.c, j);
- p.a = $wnd.Math.max(p.a, i3);
- e = p;
- } else {
- Gkb(e.b, p.b);
- e.a = $wnd.Math.max(e.a, p.a);
- uib(r);
- }
- }
- }
- if (!e) {
- e = new TCc();
- e.c = j;
- e.a = i3;
- Aib(r, e);
- Ekb(e.b, l);
- }
- }
- h = b.b;
- k = 0;
- for (q = new olb(d); q.a < q.c.c.length; ) {
- p = BD(mlb(q), 569);
- f2 = new H1b(b);
- f2.p = k++;
- h.c[h.c.length] = f2;
- for (o2 = new olb(p.b); o2.a < o2.c.c.length; ) {
- l = BD(mlb(o2), 10);
- $_b(l, f2);
- l.p = 0;
- }
- }
- for (m = new olb(b.a); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- l.p == 0 && OCc(a, l, b);
- }
- g = new Bib(h, 0);
- while (g.b < g.d.gc()) {
- (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 29)).a.c.length == 0 && uib(g);
- }
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- Qdd(c2);
- }
- function Snc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- if (b.e.c.length != 0 && c2.e.c.length != 0) {
- d = BD(Ikb(b.e, 0), 17).c.i;
- g = BD(Ikb(c2.e, 0), 17).c.i;
- if (d == g) {
- return beb(BD(vNb(BD(Ikb(b.e, 0), 17), (wtc(), Zsc)), 19).a, BD(vNb(BD(Ikb(c2.e, 0), 17), Zsc), 19).a);
- }
- for (k = a.a, l = 0, m = k.length; l < m; ++l) {
- j = k[l];
- if (j == d) {
- return 1;
- } else if (j == g) {
- return -1;
- }
- }
- }
- if (b.g.c.length != 0 && c2.g.c.length != 0) {
- f2 = BD(vNb(b, (wtc(), Xsc)), 10);
- i3 = BD(vNb(c2, Xsc), 10);
- e = 0;
- h = 0;
- wNb(BD(Ikb(b.g, 0), 17), Zsc) && (e = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a);
- wNb(BD(Ikb(c2.g, 0), 17), Zsc) && (h = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a);
- if (!!f2 && f2 == i3) {
- if (Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && !Ccb(DD(vNb(BD(Ikb(c2.g, 0), 17), ltc)))) {
- return 1;
- } else if (!Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && Ccb(DD(vNb(BD(Ikb(c2.g, 0), 17), ltc)))) {
- return -1;
- }
- return e < h ? -1 : e > h ? 1 : 0;
- }
- if (a.b) {
- a.b._b(f2) && (e = BD(a.b.xc(f2), 19).a);
- a.b._b(i3) && (h = BD(a.b.xc(i3), 19).a);
- }
- return e < h ? -1 : e > h ? 1 : 0;
- }
- return b.e.c.length != 0 && c2.g.c.length != 0 ? 1 : -1;
- }
- function acc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
- Odd(b, Ine, 1);
- p = new Rkb();
- w2 = new Rkb();
- for (j = new olb(a.b); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 29);
- r = -1;
- o2 = l_b(i3.a);
- for (l = o2, m = 0, n = l.length; m < n; ++m) {
- k = l[m];
- ++r;
- if (!(k.k == (j0b(), h0b) && fcd(BD(vNb(k, (Nyc(), Vxc)), 98)))) {
- continue;
- }
- ecd(BD(vNb(k, (Nyc(), Vxc)), 98)) || bcc(k);
- yNb(k, (wtc(), Psc), k);
- p.c = KC(SI, Uhe, 1, 0, 5, 1);
- w2.c = KC(SI, Uhe, 1, 0, 5, 1);
- c2 = new Rkb();
- u2 = new Psb();
- Jq(u2, Y_b(k, (Ucd(), Acd)));
- $bc(a, u2, p, w2, c2);
- h = r;
- A = k;
- for (f2 = new olb(p); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 10);
- Z_b(d, h, i3);
- ++r;
- yNb(d, Psc, k);
- g = BD(Ikb(d.j, 0), 11);
- q = BD(vNb(g, $sc), 11);
- Ccb(DD(vNb(q, nwc))) || BD(vNb(d, Qsc), 15).Fc(A);
- }
- Osb(u2);
- for (t4 = Y_b(k, Rcd).Kc(); t4.Ob(); ) {
- s = BD(t4.Pb(), 11);
- Gsb(u2, s, u2.a, u2.a.a);
- }
- $bc(a, u2, w2, null, c2);
- v = k;
- for (e = new olb(w2); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- Z_b(d, ++r, i3);
- yNb(d, Psc, k);
- g = BD(Ikb(d.j, 0), 11);
- q = BD(vNb(g, $sc), 11);
- Ccb(DD(vNb(q, nwc))) || BD(vNb(v, Qsc), 15).Fc(d);
- }
- c2.c.length == 0 || yNb(k, ssc, c2);
- }
- }
- Qdd(b);
- }
- function SQb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
- l = BD(vNb(a, (HSb(), FSb)), 33);
- r = Ohe;
- s = Ohe;
- p = Rie;
- q = Rie;
- for (u2 = new olb(a.e); u2.a < u2.c.c.length; ) {
- t4 = BD(mlb(u2), 144);
- C = t4.d;
- D3 = t4.e;
- r = $wnd.Math.min(r, C.a - D3.a / 2);
- s = $wnd.Math.min(s, C.b - D3.b / 2);
- p = $wnd.Math.max(p, C.a + D3.a / 2);
- q = $wnd.Math.max(q, C.b + D3.b / 2);
- }
- B = BD(hkd(l, (wSb(), kSb)), 116);
- A = new f7c(B.b - r, B.d - s);
- for (h = new olb(a.e); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 144);
- w2 = vNb(g, FSb);
- if (JD(w2, 239)) {
- n = BD(w2, 33);
- v = P6c(g.d, A);
- bld(n, v.a - n.g / 2, v.b - n.f / 2);
- }
- }
- for (d = new olb(a.c); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 282);
- j = BD(vNb(c2, FSb), 79);
- k = itd(j, true, true);
- F = (H2 = c7c(R6c(c2.d.d), c2.c.d), l6c(H2, c2.c.e.a, c2.c.e.b), P6c(H2, c2.c.d));
- nmd(k, F.a, F.b);
- b = (I = c7c(R6c(c2.c.d), c2.d.d), l6c(I, c2.d.e.a, c2.d.e.b), P6c(I, c2.d.d));
- gmd(k, b.a, b.b);
- }
- for (f2 = new olb(a.d); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 447);
- m = BD(vNb(e, FSb), 137);
- o2 = P6c(e.d, A);
- bld(m, o2.a, o2.b);
- }
- G = p - r + (B.b + B.c);
- i3 = q - s + (B.d + B.a);
- Afd(l, G, i3, false, true);
- }
- function bmc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- c2 = null;
- i3 = null;
- e = BD(vNb(a.b, (Nyc(), Wwc)), 376);
- if (e == (_Ac(), ZAc)) {
- c2 = new Rkb();
- i3 = new Rkb();
- }
- for (h = new olb(a.d); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 101);
- f2 = g.i;
- if (!f2) {
- continue;
- }
- switch (g.e.g) {
- case 0:
- b = BD(Fqb(new Gqb(g.b)), 61);
- e == ZAc && b == (Ucd(), Acd) ? (c2.c[c2.c.length] = g, true) : e == ZAc && b == (Ucd(), Rcd) ? (i3.c[i3.c.length] = g, true) : _lc(g, b);
- break;
- case 1:
- j = g.a.d.j;
- k = g.c.d.j;
- j == (Ucd(), Acd) ? amc(g, Acd, (Ajc(), xjc), g.a) : k == Acd ? amc(g, Acd, (Ajc(), yjc), g.c) : j == Rcd ? amc(g, Rcd, (Ajc(), yjc), g.a) : k == Rcd && amc(g, Rcd, (Ajc(), xjc), g.c);
- break;
- case 2:
- case 3:
- d = g.b;
- uqb(d, (Ucd(), Acd)) ? uqb(d, Rcd) ? uqb(d, Tcd) ? uqb(d, zcd) || amc(g, Acd, (Ajc(), yjc), g.c) : amc(g, Acd, (Ajc(), xjc), g.a) : amc(g, Acd, (Ajc(), wjc), null) : amc(g, Rcd, (Ajc(), wjc), null);
- break;
- case 4:
- l = g.a.d.j;
- m = g.a.d.j;
- l == (Ucd(), Acd) || m == Acd ? amc(g, Rcd, (Ajc(), wjc), null) : amc(g, Acd, (Ajc(), wjc), null);
- }
- }
- if (c2) {
- c2.c.length == 0 || $lc(c2, (Ucd(), Acd));
- i3.c.length == 0 || $lc(i3, (Ucd(), Rcd));
- }
- }
- function A2b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- d = BD(vNb(a, (wtc(), $sc)), 33);
- o2 = BD(vNb(a, (Nyc(), Gwc)), 19).a;
- f2 = BD(vNb(a, nxc), 19).a;
- jkd(d, Gwc, meb(o2));
- jkd(d, nxc, meb(f2));
- dld(d, a.n.a + b.a);
- eld(d, a.n.b + b.b);
- if (BD(hkd(d, Fxc), 174).gc() != 0 || !!a.e || PD(vNb(Q_b(a), Exc)) === PD((Vzc(), Tzc)) && Jzc((Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? m = BD(vNb(a, Cxc), 197) : m = BD(vNb(Q_b(a), Dxc), 197), m))) {
- cld(d, a.o.a);
- ald(d, a.o.b);
- }
- for (l = new olb(a.j); l.a < l.c.c.length; ) {
- j = BD(mlb(l), 11);
- p = vNb(j, $sc);
- if (JD(p, 186)) {
- e = BD(p, 118);
- bld(e, j.n.a, j.n.b);
- jkd(e, $xc, j.j);
- }
- }
- n = BD(vNb(a, xxc), 174).gc() != 0;
- for (i3 = new olb(a.b); i3.a < i3.c.c.length; ) {
- g = BD(mlb(i3), 70);
- if (n || BD(vNb(g, xxc), 174).gc() != 0) {
- c2 = BD(vNb(g, $sc), 137);
- _kd(c2, g.o.a, g.o.b);
- bld(c2, g.n.a, g.n.b);
- }
- }
- if (!tcd(BD(vNb(a, Yxc), 21))) {
- for (k = new olb(a.j); k.a < k.c.c.length; ) {
- j = BD(mlb(k), 11);
- for (h = new olb(j.f); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 70);
- c2 = BD(vNb(g, $sc), 137);
- cld(c2, g.o.a);
- ald(c2, g.o.b);
- bld(c2, g.n.a, g.n.b);
- }
- }
- }
- }
- function gtd(a) {
- var b, c2, d, e, f2;
- ytb(a, hue2);
- switch ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i + (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i) {
- case 0:
- throw vbb(new Wdb("The edge must have at least one source or target."));
- case 1:
- return (!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0 ? Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82))) : Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)));
- }
- if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 1) {
- e = atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
- f2 = atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
- if (Xod(e) == Xod(f2)) {
- return Xod(e);
- } else if (e == Xod(f2)) {
- return e;
- } else if (f2 == Xod(e)) {
- return f2;
- }
- }
- d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)])));
- b = atd(BD(Rr(d), 82));
- while (Qr(d)) {
- c2 = atd(BD(Rr(d), 82));
- if (c2 != b && !ntd(c2, b)) {
- if (Xod(c2) == Xod(b)) {
- b = Xod(c2);
- } else {
- b = htd(b, c2);
- if (!b) {
- return null;
- }
- }
- }
+ return obj;
+ }, "getInfo");
+ var getNodeFromTo = /* @__PURE__ */ __name(function getNodeFromTo2(to) {
+ return (string(to) ? cy.$(to) : to)[0];
+ }, "getNodeFromTo");
+ var distanceTo = /* @__PURE__ */ __name(function distanceTo2(to) {
+ return getInfo3(getNodeFromTo(to)).dist;
+ }, "distanceTo");
+ var pathTo = /* @__PURE__ */ __name(function pathTo2(to) {
+ var thisStart = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : root4;
+ var end2 = getNodeFromTo(to);
+ var path4 = [];
+ var node3 = end2;
+ for (; ; ) {
+ if (node3 == null) {
+ return _this.spawn();
}
- return b;
- }
- function KNc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- Odd(c2, "Polyline edge routing", 1);
- q = Edb(ED(vNb(b, (Nyc(), Uwc))));
- n = Edb(ED(vNb(b, wyc)));
- e = Edb(ED(vNb(b, myc)));
- d = $wnd.Math.min(1, e / n);
- t4 = 0;
- i3 = 0;
- if (b.b.c.length != 0) {
- u2 = HNc(BD(Ikb(b.b, 0), 29));
- t4 = 0.4 * d * u2;
- }
- h = new Bib(b.b, 0);
- while (h.b < h.d.gc()) {
- g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29));
- f2 = Kq(g, DNc);
- f2 && t4 > 0 && (t4 -= n);
- h_b(g, t4);
- k = 0;
- for (m = new olb(g.a); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- j = 0;
- for (p = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(p); ) {
- o2 = BD(Rr(p), 17);
- r = A0b(o2.c).b;
- s = A0b(o2.d).b;
- if (g == o2.d.i.c && !OZb(o2)) {
- LNc(o2, t4, 0.4 * d * $wnd.Math.abs(r - s));
- if (o2.c.j == (Ucd(), Tcd)) {
- r = 0;
- s = 0;
- }
- }
- j = $wnd.Math.max(j, $wnd.Math.abs(s - r));
- }
- switch (l.k.g) {
- case 0:
- case 4:
- case 1:
- case 3:
- case 5:
- MNc(a, l, t4, q);
- }
- k = $wnd.Math.max(k, j);
- }
- if (h.b < h.d.gc()) {
- u2 = HNc((sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)));
- k = $wnd.Math.max(k, u2);
- sCb(h.b > 0);
- h.a.Xb(h.c = --h.b);
- }
- i3 = 0.4 * d * k;
- !f2 && h.b < h.d.gc() && (i3 += n);
- t4 += g.c.a + i3;
- }
- a.a.a.$b();
- b.f.a = t4;
- Qdd(c2);
- }
- function bic(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
- k = new Lqb();
- i3 = new Hp();
- for (d = new olb(a.a.a.b); d.a < d.c.c.length; ) {
- b = BD(mlb(d), 57);
- j = tgc(b);
- if (j) {
- jrb(k.f, j, b);
- } else {
- s = ugc(b);
- if (s) {
- for (f2 = new olb(s.k); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 17);
- Rc(i3, e, b);
- }
- }
- }
+ var _getInfo = getInfo3(node3), edge2 = _getInfo.edge, pred = _getInfo.pred;
+ path4.unshift(node3[0]);
+ if (node3.same(thisStart) && path4.length > 0) {
+ break;
}
- for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- j = tgc(b);
- if (j) {
- for (h = new Sr(ur(U_b(j).a.Kc(), new Sq())); Qr(h); ) {
- g = BD(Rr(h), 17);
- if (OZb(g)) {
- continue;
- }
- o2 = g.c;
- r = g.d;
- if ((Ucd(), Lcd).Hc(g.c.j) && Lcd.Hc(g.d.j)) {
- continue;
- }
- p = BD(Ohb(k, g.d.i), 57);
- AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 100), a.c[b.a.d]), a.c[p.a.d]));
- if (o2.j == Tcd && l1b((z0b(), o2))) {
- for (m = BD(Qc(i3, g), 21).Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 57);
- if (l.d.c < b.d.c) {
- n = a.c[l.a.d];
- q = a.c[b.a.d];
- if (n == q) {
- continue;
- }
- AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q));
- }
- }
- }
- if (r.j == zcd && g1b((z0b(), r))) {
- for (m = BD(Qc(i3, g), 21).Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 57);
- if (l.d.c > b.d.c) {
- n = a.c[b.a.d];
- q = a.c[l.a.d];
- if (n == q) {
- continue;
- }
- AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q));
- }
- }
- }
- }
- }
+ if (edge2 != null) {
+ path4.unshift(edge2);
}
+ node3 = pred;
}
- function QEd(a) {
- IEd();
- var b, c2, d, e, f2, g, h, i3;
- if (a == null)
- return null;
- e = hfb(a, wfb(37));
- if (e < 0) {
- return a;
- } else {
- i3 = new Wfb(a.substr(0, e));
- b = KC(SD, wte, 25, 4, 15, 1);
- h = 0;
- d = 0;
- for (g = a.length; e < g; e++) {
- BCb(e, a.length);
- if (a.charCodeAt(e) == 37 && a.length > e + 2 && _Ed((BCb(e + 1, a.length), a.charCodeAt(e + 1)), xEd, yEd) && _Ed((BCb(e + 2, a.length), a.charCodeAt(e + 2)), xEd, yEd)) {
- c2 = dFd((BCb(e + 1, a.length), a.charCodeAt(e + 1)), (BCb(e + 2, a.length), a.charCodeAt(e + 2)));
- e += 2;
- if (d > 0) {
- (c2 & 192) == 128 ? b[h++] = c2 << 24 >> 24 : d = 0;
- } else if (c2 >= 128) {
- if ((c2 & 224) == 192) {
- b[h++] = c2 << 24 >> 24;
- d = 2;
- } else if ((c2 & 240) == 224) {
- b[h++] = c2 << 24 >> 24;
- d = 3;
- } else if ((c2 & 248) == 240) {
- b[h++] = c2 << 24 >> 24;
- d = 4;
- }
- }
- if (d > 0) {
- if (h == d) {
- switch (h) {
- case 2: {
- Kfb(i3, ((b[0] & 31) << 6 | b[1] & 63) & aje);
- break;
- }
- case 3: {
- Kfb(i3, ((b[0] & 15) << 12 | (b[1] & 63) << 6 | b[2] & 63) & aje);
- break;
- }
- }
- h = 0;
- d = 0;
- }
- } else {
- for (f2 = 0; f2 < h; ++f2) {
- Kfb(i3, b[f2] & aje);
- }
- h = 0;
- i3.a += String.fromCharCode(c2);
- }
- } else {
- for (f2 = 0; f2 < h; ++f2) {
- Kfb(i3, b[f2] & aje);
- }
- h = 0;
- Kfb(i3, (BCb(e, a.length), a.charCodeAt(e)));
- }
- }
- return i3.a;
- }
+ return eles.spawn(path4);
+ }, "pathTo");
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ var node2 = nodes6[i2];
+ var info2 = getInfo3(node2);
+ if (node2.same(root4)) {
+ info2.dist = 0;
+ } else {
+ info2.dist = Infinity;
}
- function wA(a, b, c2, d, e) {
- var f2, g, h;
- uA(a, b);
- g = b[0];
- f2 = bfb(c2.c, 0);
- h = -1;
- if (nA(c2)) {
- if (d > 0) {
- if (g + d > a.length) {
- return false;
- }
- h = rA(a.substr(0, g + d), b);
- } else {
- h = rA(a, b);
- }
- }
- switch (f2) {
- case 71:
- h = oA(a, g, OC(GC(ZI, 1), nie, 2, 6, [pje, qje]), b);
- e.e = h;
- return true;
- case 77:
- return zA(a, b, e, h, g);
- case 76:
- return BA(a, b, e, h, g);
- case 69:
- return xA(a, b, g, e);
- case 99:
- return AA(a, b, g, e);
- case 97:
- h = oA(a, g, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"]), b);
- e.b = h;
- return true;
- case 121:
- return DA(a, b, g, h, c2, e);
- case 100:
- if (h <= 0) {
- return false;
- }
- e.c = h;
- return true;
- case 83:
- if (h < 0) {
- return false;
- }
- return yA(h, g, b[0], e);
- case 104:
- h == 12 && (h = 0);
- case 75:
- case 72:
- if (h < 0) {
- return false;
- }
- e.f = h;
- e.g = false;
- return true;
- case 107:
- if (h < 0) {
- return false;
- }
- e.f = h;
- e.g = true;
- return true;
- case 109:
- if (h < 0) {
- return false;
- }
- e.j = h;
- return true;
- case 115:
- if (h < 0) {
- return false;
- }
- e.n = h;
- return true;
- case 90:
- if (g < a.length && (BCb(g, a.length), a.charCodeAt(g) == 90)) {
- ++b[0];
- e.o = 0;
- return true;
- }
- case 122:
- case 118:
- return CA(a, g, b, e);
- default:
- return false;
- }
+ info2.pred = null;
+ info2.edge = null;
+ }
+ var replacedEdge = false;
+ var checkForEdgeReplacement = /* @__PURE__ */ __name(function checkForEdgeReplacement2(node1, node22, edge2, info1, info22, weight9) {
+ var dist3 = info1.dist + weight9;
+ if (dist3 < info22.dist && !edge2.same(info1.edge)) {
+ info22.dist = dist3;
+ info22.pred = node1;
+ info22.edge = edge2;
+ replacedEdge = true;
}
- function vKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- m = BD(BD(Qc(a.r, b), 21), 84);
- if (b == (Ucd(), zcd) || b == Tcd) {
- zKb(a, b);
- return;
- }
- f2 = b == Acd ? (vLb(), rLb) : (vLb(), uLb);
- u2 = b == Acd ? (EIb(), DIb) : (EIb(), BIb);
- c2 = BD(Mpb(a.b, b), 124);
- d = c2.i;
- e = d.c + w6c(OC(GC(UD, 1), Vje, 25, 15, [c2.n.b, a.C.b, a.k]));
- r = d.c + d.b - w6c(OC(GC(UD, 1), Vje, 25, 15, [c2.n.c, a.C.c, a.k]));
- g = dLb(iLb(f2), a.t);
- s = b == Acd ? Qje : Pje;
- for (l = m.Kc(); l.Ob(); ) {
- j = BD(l.Pb(), 111);
- if (!j.c || j.c.d.c.length <= 0) {
- continue;
- }
- q = j.b.rf();
- p = j.e;
- n = j.c;
- o2 = n.i;
- o2.b = (i3 = n.n, n.e.a + i3.b + i3.c);
- o2.a = (h = n.n, n.e.b + h.d + h.a);
- ytb(u2, lle);
- n.f = u2;
- $Hb(n, (NHb(), MHb));
- o2.c = p.a - (o2.b - q.a) / 2;
- v = $wnd.Math.min(e, p.a);
- w2 = $wnd.Math.max(r, p.a + q.a);
- o2.c < v ? o2.c = v : o2.c + o2.b > w2 && (o2.c = w2 - o2.b);
- Ekb(g.d, new BLb(o2, bLb(g, o2)));
- s = b == Acd ? $wnd.Math.max(s, p.b + j.b.rf().b) : $wnd.Math.min(s, p.b);
- }
- s += b == Acd ? a.t : -a.t;
- t4 = cLb((g.e = s, g));
- t4 > 0 && (BD(Mpb(a.b, b), 124).a.b = t4);
- for (k = m.Kc(); k.Ob(); ) {
- j = BD(k.Pb(), 111);
- if (!j.c || j.c.d.c.length <= 0) {
- continue;
- }
- o2 = j.c.i;
- o2.c -= j.e.a;
- o2.d -= j.e.b;
- }
- }
- function SPb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
- b = new Lqb();
- for (i3 = new Fyd(a); i3.e != i3.i.gc(); ) {
- h = BD(Dyd(i3), 33);
- c2 = new Tqb();
- Rhb(OPb, h, c2);
- n = new aQb();
- e = BD(GAb(new YAb(null, new Lub(new Sr(ur($sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)])))), 83);
- RPb(c2, BD(e.xc((Bcb(), true)), 14), new cQb());
- d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new eQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15);
- for (g = d.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 79);
- m = ktd(f2);
- if (m) {
- j = BD(Wd(irb(b.f, m)), 21);
- if (!j) {
- j = UPb(m);
- jrb(b.f, m, j);
- }
- ye(c2, j);
- }
- }
- e = BD(GAb(new YAb(null, new Lub(new Sr(ur(_sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb])))), 83);
- RPb(c2, BD(e.xc(true), 14), new gQb());
- d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new iQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15);
- for (l = d.Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 79);
- m = mtd(k);
- if (m) {
- j = BD(Wd(irb(b.f, m)), 21);
- if (!j) {
- j = UPb(m);
- jrb(b.f, m, j);
- }
- ye(c2, j);
- }
- }
- }
- }
- function rhb(a, b) {
- phb();
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- i3 = ybb(a, 0) < 0;
- i3 && (a = Jbb(a));
- if (ybb(a, 0) == 0) {
- switch (b) {
- case 0:
- return "0";
- case 1:
- return $je;
- case 2:
- return "0.00";
- case 3:
- return "0.000";
- case 4:
- return "0.0000";
- case 5:
- return "0.00000";
- case 6:
- return "0.000000";
- default:
- n = new Ufb();
- b < 0 ? (n.a += "0E+", n) : (n.a += "0E", n);
- n.a += b == Rie ? "2147483648" : "" + -b;
- return n.a;
- }
- }
- k = 18;
- l = KC(TD, $ie, 25, k + 1, 15, 1);
- c2 = k;
- p = a;
- do {
- j = p;
- p = Abb(p, 10);
- l[--c2] = Tbb(wbb(48, Qbb(j, Ibb(p, 10)))) & aje;
- } while (ybb(p, 0) != 0);
- e = Qbb(Qbb(Qbb(k, c2), b), 1);
- if (b == 0) {
- i3 && (l[--c2] = 45);
- return zfb(l, c2, k - c2);
- }
- if (b > 0 && ybb(e, -6) >= 0) {
- if (ybb(e, 0) >= 0) {
- f2 = c2 + Tbb(e);
- for (h = k - 1; h >= f2; h--) {
- l[h + 1] = l[h];
- }
- l[++f2] = 46;
- i3 && (l[--c2] = 45);
- return zfb(l, c2, k - c2 + 1);
- }
- for (g = 2; Gbb(g, wbb(Jbb(e), 1)); g++) {
- l[--c2] = 48;
- }
- l[--c2] = 46;
- l[--c2] = 48;
- i3 && (l[--c2] = 45);
- return zfb(l, c2, k - c2);
- }
- o2 = c2 + 1;
- d = k;
- m = new Vfb();
- i3 && (m.a += "-", m);
- if (d - o2 >= 1) {
- Kfb(m, l[c2]);
- m.a += ".";
- m.a += zfb(l, c2 + 1, k - c2 - 1);
- } else {
- m.a += zfb(l, c2, k - c2);
- }
- m.a += "E";
- ybb(e, 0) > 0 && (m.a += "+", m);
- m.a += "" + Ubb(e);
- return m.a;
- }
- function iQc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- a.e.a.$b();
- a.f.a.$b();
- a.c.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.i.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.g.a.$b();
- if (b) {
- for (g = new olb(b.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- for (l = Y_b(f2, (Ucd(), zcd)).Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 11);
- Qqb(a.e, k);
- for (e = new olb(k.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- if (OZb(d)) {
- continue;
- }
- Ekb(a.c, d);
- oQc(a, d);
- h = d.c.i.k;
- (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d);
- n = d.d;
- m = n.i.c;
- m == c2 ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d);
- }
- }
- }
- }
- if (c2) {
- for (g = new olb(c2.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 10);
- for (j = new olb(f2.j); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 11);
- for (e = new olb(i3.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- OZb(d) && Qqb(a.g, d);
- }
- }
- for (l = Y_b(f2, (Ucd(), Tcd)).Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 11);
- Qqb(a.f, k);
- for (e = new olb(k.g); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- if (OZb(d)) {
- continue;
- }
- Ekb(a.c, d);
- oQc(a, d);
- h = d.c.i.k;
- (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d);
- n = d.d;
- m = n.i.c;
- m == c2 ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d);
- }
- }
- }
+ }, "checkForEdgeReplacement");
+ for (var _i = 1; _i < numNodes; _i++) {
+ replacedEdge = false;
+ for (var e3 = 0; e3 < numEdges; e3++) {
+ var edge = edges5[e3];
+ var src = edge.source();
+ var tgt = edge.target();
+ var _weight = weightFn(edge);
+ var srcInfo = getInfo3(src);
+ var tgtInfo = getInfo3(tgt);
+ checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);
+ if (!directed) {
+ checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);
}
}
- function Afd(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- q = new f7c(a.g, a.f);
- p = rfd(a);
- p.a = $wnd.Math.max(p.a, b);
- p.b = $wnd.Math.max(p.b, c2);
- w2 = p.a / q.a;
- k = p.b / q.b;
- u2 = p.a - q.a;
- i3 = p.b - q.b;
- if (d) {
- g = !Xod(a) ? BD(hkd(a, (Y9c(), z8c)), 103) : BD(hkd(Xod(a), (Y9c(), z8c)), 103);
- h = PD(hkd(a, (Y9c(), t9c))) === PD((dcd(), $bd));
- for (s = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); s.e != s.i.gc(); ) {
- r = BD(Dyd(s), 118);
- t4 = BD(hkd(r, A9c), 61);
- if (t4 == (Ucd(), Scd)) {
- t4 = lfd(r, g);
- jkd(r, A9c, t4);
- }
- switch (t4.g) {
- case 1:
- h || dld(r, r.i * w2);
- break;
- case 2:
- dld(r, r.i + u2);
- h || eld(r, r.j * k);
- break;
- case 3:
- h || dld(r, r.i * w2);
- eld(r, r.j + i3);
- break;
- case 4:
- h || eld(r, r.j * k);
- }
- }
- }
- _kd(a, p.a, p.b);
- if (e) {
- for (m = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); m.e != m.i.gc(); ) {
- l = BD(Dyd(m), 137);
- n = l.i + l.g / 2;
- o2 = l.j + l.f / 2;
- v = n / q.a;
- j = o2 / q.b;
- if (v + j >= 1) {
- if (v - j > 0 && o2 >= 0) {
- dld(l, l.i + u2);
- eld(l, l.j + i3 * j);
- } else if (v - j < 0 && n >= 0) {
- dld(l, l.i + u2 * v);
- eld(l, l.j + i3);
- }
- }
+ if (!replacedEdge) {
+ break;
+ }
+ }
+ if (replacedEdge) {
+ var negativeWeightCycleIds = [];
+ for (var _e = 0; _e < numEdges; _e++) {
+ var _edge = edges5[_e];
+ var _src = _edge.source();
+ var _tgt = _edge.target();
+ var _weight2 = weightFn(_edge);
+ var srcDist = getInfo3(_src).dist;
+ var tgtDist = getInfo3(_tgt).dist;
+ if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {
+ if (!hasNegativeWeightCycle) {
+ warn("Graph contains a negative weight cycle for Bellman-Ford");
+ hasNegativeWeightCycle = true;
}
- }
- jkd(a, (Y9c(), Y8c), (tdd(), f2 = BD(gdb(I1), 9), new xqb(f2, BD(_Bb(f2, f2.length), 9), 0)));
- return new f7c(w2, k);
- }
- function Yfd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- n = Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)));
- o2 = Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)));
- l = n == o2;
- h = new d7c();
- b = BD(hkd(a, (Zad(), Sad)), 74);
- if (!!b && b.b >= 2) {
- if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
- c2 = (Fhd(), e = new rmd(), e);
- wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c2);
- } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) {
- m = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a));
- while (m.e != m.i.gc()) {
- Eyd(m);
- }
- }
- ifd(b, BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202));
- }
- if (l) {
- for (d = new Fyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a)); d.e != d.i.gc(); ) {
- c2 = BD(Dyd(d), 202);
- for (j = new Fyd((!c2.a && (c2.a = new xMd(y2, c2, 5)), c2.a)); j.e != j.i.gc(); ) {
- i3 = BD(Dyd(j), 469);
- h.a = $wnd.Math.max(h.a, i3.a);
- h.b = $wnd.Math.max(h.b, i3.b);
- }
- }
- }
- for (g = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); g.e != g.i.gc(); ) {
- f2 = BD(Dyd(g), 137);
- k = BD(hkd(f2, Yad), 8);
- !!k && bld(f2, k.a, k.b);
- if (l) {
- h.a = $wnd.Math.max(h.a, f2.i + f2.g);
- h.b = $wnd.Math.max(h.b, f2.j + f2.f);
- }
- }
- return h;
- }
- function yMc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
- t4 = b.c.length;
- e = new ULc(a.a, c2, null, null);
- B = KC(UD, Vje, 25, t4, 15, 1);
- p = KC(UD, Vje, 25, t4, 15, 1);
- o2 = KC(UD, Vje, 25, t4, 15, 1);
- q = 0;
- for (h = 0; h < t4; h++) {
- p[h] = Ohe;
- o2[h] = Rie;
- }
- for (i3 = 0; i3 < t4; i3++) {
- d = (tCb(i3, b.c.length), BD(b.c[i3], 180));
- B[i3] = SLc(d);
- B[q] > B[i3] && (q = i3);
- for (l = new olb(a.a.b); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 29);
- for (s = new olb(k.a); s.a < s.c.c.length; ) {
- r = BD(mlb(s), 10);
- w2 = Edb(d.p[r.p]) + Edb(d.d[r.p]);
- p[i3] = $wnd.Math.min(p[i3], w2);
- o2[i3] = $wnd.Math.max(o2[i3], w2 + r.o.b);
- }
- }
- }
- A = KC(UD, Vje, 25, t4, 15, 1);
- for (j = 0; j < t4; j++) {
- (tCb(j, b.c.length), BD(b.c[j], 180)).o == (eMc(), cMc) ? A[j] = p[q] - p[j] : A[j] = o2[q] - o2[j];
- }
- f2 = KC(UD, Vje, 25, t4, 15, 1);
- for (n = new olb(a.a.b); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 29);
- for (v = new olb(m.a); v.a < v.c.c.length; ) {
- u2 = BD(mlb(v), 10);
- for (g = 0; g < t4; g++) {
- f2[g] = Edb((tCb(g, b.c.length), BD(b.c[g], 180)).p[u2.p]) + Edb((tCb(g, b.c.length), BD(b.c[g], 180)).d[u2.p]) + A[g];
- }
- f2.sort(dcb(Ylb.prototype.te, Ylb, []));
- e.p[u2.p] = (f2[1] + f2[2]) / 2;
- e.d[u2.p] = 0;
- }
- }
- return e;
- }
- function G3b(a, b, c2) {
- var d, e, f2, g, h;
- d = b.i;
- f2 = a.i.o;
- e = a.i.d;
- h = a.n;
- g = l7c(OC(GC(m1, 1), nie, 8, 0, [h, a.a]));
- switch (a.j.g) {
- case 1:
- _Hb(b, (EIb(), BIb));
- d.d = -e.d - c2 - d.a;
- if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
- $Hb(b, (NHb(), MHb));
- d.c = g.a - Edb(ED(vNb(a, Ysc))) - c2 - d.b;
- } else {
- $Hb(b, (NHb(), LHb));
- d.c = g.a + Edb(ED(vNb(a, Ysc))) + c2;
- }
- break;
- case 2:
- $Hb(b, (NHb(), LHb));
- d.c = f2.a + e.c + c2;
- if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
- _Hb(b, (EIb(), BIb));
- d.d = g.b - Edb(ED(vNb(a, Ysc))) - c2 - d.a;
- } else {
- _Hb(b, (EIb(), DIb));
- d.d = g.b + Edb(ED(vNb(a, Ysc))) + c2;
- }
- break;
- case 3:
- _Hb(b, (EIb(), DIb));
- d.d = f2.b + e.a + c2;
- if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
- $Hb(b, (NHb(), MHb));
- d.c = g.a - Edb(ED(vNb(a, Ysc))) - c2 - d.b;
- } else {
- $Hb(b, (NHb(), LHb));
- d.c = g.a + Edb(ED(vNb(a, Ysc))) + c2;
+ if (options3.findNegativeWeightCycles !== false) {
+ var negativeNodes = [];
+ if (srcDist + _weight2 < tgtDist) {
+ negativeNodes.push(_src);
}
- break;
- case 4:
- $Hb(b, (NHb(), MHb));
- d.c = -e.b - c2 - d.b;
- if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
- _Hb(b, (EIb(), BIb));
- d.d = g.b - Edb(ED(vNb(a, Ysc))) - c2 - d.a;
- } else {
- _Hb(b, (EIb(), DIb));
- d.d = g.b + Edb(ED(vNb(a, Ysc))) + c2;
- }
- }
- }
- function ded(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
- n = 0;
- D3 = 0;
- for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 33);
- zfd(h);
- n = $wnd.Math.max(n, h.g);
- D3 += h.g * h.f;
- }
- o2 = D3 / a.c.length;
- C = $dd(a, o2);
- D3 += a.c.length * C;
- n = $wnd.Math.max(n, $wnd.Math.sqrt(D3 * g)) + c2.b;
- H2 = c2.b;
- I = c2.d;
- m = 0;
- k = c2.b + c2.c;
- B = new Psb();
- Dsb(B, meb(0));
- w2 = new Psb();
- j = new Bib(a, 0);
- while (j.b < j.d.gc()) {
- h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33));
- G = h.g;
- l = h.f;
- if (H2 + G > n) {
- if (f2) {
- Fsb(w2, m);
- Fsb(B, meb(j.b - 1));
- }
- H2 = c2.b;
- I += m + b;
- m = 0;
- k = $wnd.Math.max(k, c2.b + c2.c + G);
- }
- dld(h, H2);
- eld(h, I);
- k = $wnd.Math.max(k, H2 + G + c2.c);
- m = $wnd.Math.max(m, l);
- H2 += G + b;
- }
- k = $wnd.Math.max(k, d);
- F = I + m + c2.a;
- if (F < e) {
- m += e - F;
- F = e;
- }
- if (f2) {
- H2 = c2.b;
- j = new Bib(a, 0);
- Fsb(B, meb(a.c.length));
- A = Jsb(B, 0);
- r = BD(Xsb(A), 19).a;
- Fsb(w2, m);
- v = Jsb(w2, 0);
- u2 = 0;
- while (j.b < j.d.gc()) {
- if (j.b == r) {
- H2 = c2.b;
- u2 = Edb(ED(Xsb(v)));
- r = BD(Xsb(A), 19).a;
- }
- h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33));
- s = h.f;
- ald(h, u2);
- p = u2;
- if (j.b == r) {
- q = k - H2 - c2.c;
- t4 = h.g;
- cld(h, q);
- Ffd(h, new f7c(q, p), new f7c(t4, s));
- }
- H2 += h.g + b;
- }
- }
- return new f7c(k, F);
- }
- function _Yb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
- Odd(b, "Compound graph postprocessor", 1);
- c2 = Ccb(DD(vNb(a, (Nyc(), Byc))));
- h = BD(vNb(a, (wtc(), zsc)), 224);
- k = new Tqb();
- for (r = h.ec().Kc(); r.Ob(); ) {
- q = BD(r.Pb(), 17);
- g = new Tkb(h.cc(q));
- mmb();
- Okb(g, new EZb(a));
- v = zZb((tCb(0, g.c.length), BD(g.c[0], 243)));
- A = AZb(BD(Ikb(g, g.c.length - 1), 243));
- t4 = v.i;
- f_b(A.i, t4) ? s = t4.e : s = Q_b(t4);
- l = aZb(q, g);
- Osb(q.a);
- m = null;
- for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 243);
- p = new d7c();
- Y$b(p, e.a, s);
- n = e.b;
- d = new s7c();
- o7c(d, 0, n.a);
- q7c(d, p);
- u2 = new g7c(A0b(n.c));
- w2 = new g7c(A0b(n.d));
- P6c(u2, p);
- P6c(w2, p);
- if (m) {
- d.b == 0 ? o2 = w2 : o2 = (sCb(d.b != 0), BD(d.a.a.c, 8));
- B = $wnd.Math.abs(m.a - o2.a) > qme;
- C = $wnd.Math.abs(m.b - o2.b) > qme;
- (!c2 && B && C || c2 && (B || C)) && Dsb(q.a, u2);
- }
- ye(q.a, d);
- d.b == 0 ? m = u2 : m = (sCb(d.b != 0), BD(d.c.b.c, 8));
- bZb(n, l, p);
- if (AZb(e) == A) {
- if (Q_b(A.i) != e.a) {
- p = new d7c();
- Y$b(p, Q_b(A.i), s);
- }
- yNb(q, utc, p);
- }
- cZb(n, q, s);
- k.a.zc(n, k);
- }
- QZb(q, v);
- RZb(q, A);
- }
- for (j = k.a.ec().Kc(); j.Ob(); ) {
- i3 = BD(j.Pb(), 17);
- QZb(i3, null);
- RZb(i3, null);
- }
- Qdd(b);
- }
- function KQb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- if (a.gc() == 1) {
- return BD(a.Xb(0), 231);
- } else if (a.gc() <= 0) {
- return new kRb();
- }
- for (e = a.Kc(); e.Ob(); ) {
- c2 = BD(e.Pb(), 231);
- o2 = 0;
- k = Ohe;
- l = Ohe;
- i3 = Rie;
- j = Rie;
- for (n = new olb(c2.e); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 144);
- o2 += BD(vNb(m, (wSb(), oSb)), 19).a;
- k = $wnd.Math.min(k, m.d.a - m.e.a / 2);
- l = $wnd.Math.min(l, m.d.b - m.e.b / 2);
- i3 = $wnd.Math.max(i3, m.d.a + m.e.a / 2);
- j = $wnd.Math.max(j, m.d.b + m.e.b / 2);
- }
- yNb(c2, (wSb(), oSb), meb(o2));
- yNb(c2, (HSb(), ESb), new f7c(k, l));
- yNb(c2, DSb, new f7c(i3, j));
- }
- mmb();
- a.ad(new OQb());
- p = new kRb();
- tNb(p, BD(a.Xb(0), 94));
- h = 0;
- s = 0;
- for (f2 = a.Kc(); f2.Ob(); ) {
- c2 = BD(f2.Pb(), 231);
- q = c7c(R6c(BD(vNb(c2, (HSb(), DSb)), 8)), BD(vNb(c2, ESb), 8));
- h = $wnd.Math.max(h, q.a);
- s += q.a * q.b;
- }
- h = $wnd.Math.max(h, $wnd.Math.sqrt(s) * Edb(ED(vNb(p, (wSb(), bSb)))));
- r = Edb(ED(vNb(p, uSb)));
- t4 = 0;
- u2 = 0;
- g = 0;
- b = r;
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 231);
- q = c7c(R6c(BD(vNb(c2, (HSb(), DSb)), 8)), BD(vNb(c2, ESb), 8));
- if (t4 + q.a > h) {
- t4 = 0;
- u2 += g + r;
- g = 0;
- }
- JQb(p, c2, t4, u2);
- b = $wnd.Math.max(b, t4 + q.a);
- g = $wnd.Math.max(g, q.b);
- t4 += q.a + r;
- }
- return p;
- }
- function Ioc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- k = new s7c();
- switch (a.a.g) {
- case 3:
- m = BD(vNb(b.e, (wtc(), rtc)), 15);
- n = BD(vNb(b.j, rtc), 15);
- o2 = BD(vNb(b.f, rtc), 15);
- c2 = BD(vNb(b.e, ptc), 15);
- d = BD(vNb(b.j, ptc), 15);
- e = BD(vNb(b.f, ptc), 15);
- g = new Rkb();
- Gkb(g, m);
- n.Jc(new Loc());
- Gkb(g, JD(n, 152) ? km(BD(n, 152)) : JD(n, 131) ? BD(n, 131).a : JD(n, 54) ? new ov(n) : new dv(n));
- Gkb(g, o2);
- f2 = new Rkb();
- Gkb(f2, c2);
- Gkb(f2, JD(d, 152) ? km(BD(d, 152)) : JD(d, 131) ? BD(d, 131).a : JD(d, 54) ? new ov(d) : new dv(d));
- Gkb(f2, e);
- yNb(b.f, rtc, g);
- yNb(b.f, ptc, f2);
- yNb(b.f, stc, b.f);
- yNb(b.e, rtc, null);
- yNb(b.e, ptc, null);
- yNb(b.j, rtc, null);
- yNb(b.j, ptc, null);
- break;
- case 1:
- ye(k, b.e.a);
- Dsb(k, b.i.n);
- ye(k, Su(b.j.a));
- Dsb(k, b.a.n);
- ye(k, b.f.a);
- break;
- default:
- ye(k, b.e.a);
- ye(k, Su(b.j.a));
- ye(k, b.f.a);
- }
- Osb(b.f.a);
- ye(b.f.a, k);
- QZb(b.f, b.e.c);
- h = BD(vNb(b.e, (Nyc(), jxc)), 74);
- j = BD(vNb(b.j, jxc), 74);
- i3 = BD(vNb(b.f, jxc), 74);
- if (!!h || !!j || !!i3) {
- l = new s7c();
- Goc(l, i3);
- Goc(l, j);
- Goc(l, h);
- yNb(b.f, jxc, l);
- }
- QZb(b.j, null);
- RZb(b.j, null);
- QZb(b.e, null);
- RZb(b.e, null);
- $_b(b.a, null);
- $_b(b.i, null);
- !!b.g && Ioc(a, b.g);
- }
- function bde(a) {
- ade();
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- if (a == null)
- return null;
- f2 = rfb(a);
- o2 = ede(f2);
- if (o2 % 4 != 0) {
- return null;
- }
- p = o2 / 4 | 0;
- if (p == 0)
- return KC(SD, wte, 25, 0, 15, 1);
- l = null;
- b = 0;
- c2 = 0;
- d = 0;
- e = 0;
- g = 0;
- h = 0;
- i3 = 0;
- j = 0;
- n = 0;
- m = 0;
- k = 0;
- l = KC(SD, wte, 25, p * 3, 15, 1);
- for (; n < p - 1; n++) {
- if (!dde(g = f2[k++]) || !dde(h = f2[k++]) || !dde(i3 = f2[k++]) || !dde(j = f2[k++]))
- return null;
- b = $ce[g];
- c2 = $ce[h];
- d = $ce[i3];
- e = $ce[j];
- l[m++] = (b << 2 | c2 >> 4) << 24 >> 24;
- l[m++] = ((c2 & 15) << 4 | d >> 2 & 15) << 24 >> 24;
- l[m++] = (d << 6 | e) << 24 >> 24;
- }
- if (!dde(g = f2[k++]) || !dde(h = f2[k++])) {
- return null;
- }
- b = $ce[g];
- c2 = $ce[h];
- i3 = f2[k++];
- j = f2[k++];
- if ($ce[i3] == -1 || $ce[j] == -1) {
- if (i3 == 61 && j == 61) {
- if ((c2 & 15) != 0)
- return null;
- q = KC(SD, wte, 25, n * 3 + 1, 15, 1);
- $fb(l, 0, q, 0, n * 3);
- q[m] = (b << 2 | c2 >> 4) << 24 >> 24;
- return q;
- } else if (i3 != 61 && j == 61) {
- d = $ce[i3];
- if ((d & 3) != 0)
- return null;
- q = KC(SD, wte, 25, n * 3 + 2, 15, 1);
- $fb(l, 0, q, 0, n * 3);
- q[m++] = (b << 2 | c2 >> 4) << 24 >> 24;
- q[m] = ((c2 & 15) << 4 | d >> 2 & 15) << 24 >> 24;
- return q;
- } else {
- return null;
- }
- } else {
- d = $ce[i3];
- e = $ce[j];
- l[m++] = (b << 2 | c2 >> 4) << 24 >> 24;
- l[m++] = ((c2 & 15) << 4 | d >> 2 & 15) << 24 >> 24;
- l[m++] = (d << 6 | e) << 24 >> 24;
- }
- return l;
- }
- function Sbc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
- Odd(b, Ine, 1);
- o2 = BD(vNb(a, (Nyc(), Swc)), 218);
- for (e = new olb(a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 29);
- j = l_b(d.a);
- for (g = j, h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- if (f2.k != (j0b(), i0b)) {
- continue;
+ if (!directed && tgtDist + _weight2 < srcDist) {
+ negativeNodes.push(_tgt);
}
- if (o2 == (Aad(), yad)) {
- for (l = new olb(f2.j); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 11);
- k.e.c.length == 0 || Vbc(k);
- k.g.c.length == 0 || Wbc(k);
+ var numNegativeNodes = negativeNodes.length;
+ for (var n2 = 0; n2 < numNegativeNodes; n2++) {
+ var start3 = negativeNodes[n2];
+ var cycle = [start3];
+ cycle.push(getInfo3(start3).edge);
+ var _node = getInfo3(start3).pred;
+ while (cycle.indexOf(_node) === -1) {
+ cycle.push(_node);
+ cycle.push(getInfo3(_node).edge);
+ _node = getInfo3(_node).pred;
}
- } else if (JD(vNb(f2, (wtc(), $sc)), 17)) {
- q = BD(vNb(f2, $sc), 17);
- r = BD(Y_b(f2, (Ucd(), Tcd)).Kc().Pb(), 11);
- s = BD(Y_b(f2, zcd).Kc().Pb(), 11);
- t4 = BD(vNb(r, $sc), 11);
- u2 = BD(vNb(s, $sc), 11);
- QZb(q, u2);
- RZb(q, t4);
- v = new g7c(s.i.n);
- v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [u2.i.n, u2.n, u2.a])).a;
- Dsb(q.a, v);
- v = new g7c(r.i.n);
- v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [t4.i.n, t4.n, t4.a])).a;
- Dsb(q.a, v);
- } else {
- if (f2.j.c.length >= 2) {
- p = true;
- m = new olb(f2.j);
- c2 = BD(mlb(m), 11);
- n = null;
- while (m.a < m.c.c.length) {
- n = c2;
- c2 = BD(mlb(m), 11);
- if (!pb(vNb(n, $sc), vNb(c2, $sc))) {
- p = false;
- break;
- }
+ cycle = cycle.slice(cycle.indexOf(_node));
+ var smallestId = cycle[0].id();
+ var smallestIndex = 0;
+ for (var c3 = 2; c3 < cycle.length; c3 += 2) {
+ if (cycle[c3].id() < smallestId) {
+ smallestId = cycle[c3].id();
+ smallestIndex = c3;
}
- } else {
- p = false;
- }
- for (l = new olb(f2.j); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 11);
- k.e.c.length == 0 || Tbc(k, p);
- k.g.c.length == 0 || Ubc(k, p);
- }
- }
- $_b(f2, null);
- }
- }
- Qdd(b);
- }
- function KJc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
- t4 = a.c[(tCb(0, b.c.length), BD(b.c[0], 17)).p];
- A = a.c[(tCb(1, b.c.length), BD(b.c[1], 17)).p];
- if (t4.a.e.e - t4.a.a - (t4.b.e.e - t4.b.a) == 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) == 0) {
- return false;
- }
- r = t4.b.e.f;
- if (!JD(r, 10)) {
- return false;
- }
- q = BD(r, 10);
- v = a.i[q.p];
- w2 = !q.c ? -1 : Jkb(q.c.a, q, 0);
- f2 = Pje;
- if (w2 > 0) {
- e = BD(Ikb(q.c.a, w2 - 1), 10);
- g = a.i[e.p];
- B = $wnd.Math.ceil(jBc(a.n, e, q));
- f2 = v.a.e - q.d.d - (g.a.e + e.o.b + e.d.a) - B;
- }
- j = Pje;
- if (w2 < q.c.a.c.length - 1) {
- i3 = BD(Ikb(q.c.a, w2 + 1), 10);
- k = a.i[i3.p];
- B = $wnd.Math.ceil(jBc(a.n, i3, q));
- j = k.a.e - i3.d.d - (v.a.e + q.o.b + q.d.a) - B;
- }
- if (c2 && (Iy(), My(Jqe), $wnd.Math.abs(f2 - j) <= Jqe || f2 == j || isNaN(f2) && isNaN(j))) {
- return true;
- }
- d = gKc(t4.a);
- h = -gKc(t4.b);
- l = -gKc(A.a);
- s = gKc(A.b);
- p = t4.a.e.e - t4.a.a - (t4.b.e.e - t4.b.a) > 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) < 0;
- o2 = t4.a.e.e - t4.a.a - (t4.b.e.e - t4.b.a) < 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) > 0;
- n = t4.a.e.e + t4.b.a < A.b.e.e + A.a.a;
- m = t4.a.e.e + t4.b.a > A.b.e.e + A.a.a;
- u2 = 0;
- !p && !o2 && (m ? f2 + l > 0 ? u2 = l : j - d > 0 && (u2 = d) : n && (f2 + h > 0 ? u2 = h : j - s > 0 && (u2 = s)));
- v.a.e += u2;
- v.b && (v.d.e += u2);
- return false;
- }
- function XGb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- d = new J6c(b.qf().a, b.qf().b, b.rf().a, b.rf().b);
- e = new I6c();
- if (a.c) {
- for (g = new olb(b.wf()); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 181);
- e.c = f2.qf().a + b.qf().a;
- e.d = f2.qf().b + b.qf().b;
- e.b = f2.rf().a;
- e.a = f2.rf().b;
- H6c(d, e);
- }
- }
- for (j = new olb(b.Cf()); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 838);
- k = i3.qf().a + b.qf().a;
- l = i3.qf().b + b.qf().b;
- if (a.e) {
- e.c = k;
- e.d = l;
- e.b = i3.rf().a;
- e.a = i3.rf().b;
- H6c(d, e);
- }
- if (a.d) {
- for (g = new olb(i3.wf()); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 181);
- e.c = f2.qf().a + k;
- e.d = f2.qf().b + l;
- e.b = f2.rf().a;
- e.a = f2.rf().b;
- H6c(d, e);
- }
- }
- if (a.b) {
- m = new f7c(-c2, -c2);
- if (BD(b.We((Y9c(), x9c)), 174).Hc((rcd(), pcd))) {
- for (g = new olb(i3.wf()); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 181);
- m.a += f2.rf().a + c2;
- m.b += f2.rf().b + c2;
}
- }
- m.a = $wnd.Math.max(m.a, 0);
- m.b = $wnd.Math.max(m.b, 0);
- VGb(d, i3.Bf(), i3.zf(), b, i3, m, c2);
- }
- }
- a.b && VGb(d, b.Bf(), b.zf(), b, null, null, c2);
- h = new K_b(b.Af());
- h.d = $wnd.Math.max(0, b.qf().b - d.d);
- h.a = $wnd.Math.max(0, d.d + d.a - (b.qf().b + b.rf().b));
- h.b = $wnd.Math.max(0, b.qf().a - d.c);
- h.c = $wnd.Math.max(0, d.c + d.b - (b.qf().a + b.rf().a));
- b.Ef(h);
- }
- function wz() {
- var a = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"];
- a[34] = '\\"';
- a[92] = "\\\\";
- a[173] = "\\u00ad";
- a[1536] = "\\u0600";
- a[1537] = "\\u0601";
- a[1538] = "\\u0602";
- a[1539] = "\\u0603";
- a[1757] = "\\u06dd";
- a[1807] = "\\u070f";
- a[6068] = "\\u17b4";
- a[6069] = "\\u17b5";
- a[8203] = "\\u200b";
- a[8204] = "\\u200c";
- a[8205] = "\\u200d";
- a[8206] = "\\u200e";
- a[8207] = "\\u200f";
- a[8232] = "\\u2028";
- a[8233] = "\\u2029";
- a[8234] = "\\u202a";
- a[8235] = "\\u202b";
- a[8236] = "\\u202c";
- a[8237] = "\\u202d";
- a[8238] = "\\u202e";
- a[8288] = "\\u2060";
- a[8289] = "\\u2061";
- a[8290] = "\\u2062";
- a[8291] = "\\u2063";
- a[8292] = "\\u2064";
- a[8298] = "\\u206a";
- a[8299] = "\\u206b";
- a[8300] = "\\u206c";
- a[8301] = "\\u206d";
- a[8302] = "\\u206e";
- a[8303] = "\\u206f";
- a[65279] = "\\ufeff";
- a[65529] = "\\ufff9";
- a[65530] = "\\ufffa";
- a[65531] = "\\ufffb";
- return a;
- }
- function pid(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m;
- i3 = new Rkb();
- l = b.length;
- g = AUd(c2);
- for (j = 0; j < l; ++j) {
- k = ifb(b, wfb(61), j);
- d = $hd(g, b.substr(j, k - j));
- e = KJd(d);
- f2 = e.Aj().Nh();
- switch (bfb(b, ++k)) {
- case 39: {
- h = gfb(b, 39, ++k);
- Ekb(i3, new kGd(d, Pid(b.substr(k, h - k), f2, e)));
- j = h + 1;
- break;
- }
- case 34: {
- h = gfb(b, 34, ++k);
- Ekb(i3, new kGd(d, Pid(b.substr(k, h - k), f2, e)));
- j = h + 1;
- break;
- }
- case 91: {
- m = new Rkb();
- Ekb(i3, new kGd(d, m));
- n:
- for (; ; ) {
- switch (bfb(b, ++k)) {
- case 39: {
- h = gfb(b, 39, ++k);
- Ekb(m, Pid(b.substr(k, h - k), f2, e));
- k = h + 1;
- break;
- }
- case 34: {
- h = gfb(b, 34, ++k);
- Ekb(m, Pid(b.substr(k, h - k), f2, e));
- k = h + 1;
- break;
- }
- case 110: {
- ++k;
- if (b.indexOf("ull", k) == k) {
- m.c[m.c.length] = null;
- } else {
- throw vbb(new hz(kte));
- }
- k += 3;
- break;
- }
- }
- if (k < l) {
- switch (BCb(k, b.length), b.charCodeAt(k)) {
- case 44: {
- break;
- }
- case 93: {
- break n;
- }
- default: {
- throw vbb(new hz("Expecting , or ]"));
- }
- }
- } else {
- break;
- }
- }
- j = k + 1;
- break;
- }
- case 110: {
- ++k;
- if (b.indexOf("ull", k) == k) {
- Ekb(i3, new kGd(d, null));
- } else {
- throw vbb(new hz(kte));
+ cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));
+ cycle.push(cycle[0]);
+ var cycleId = cycle.map(function(el) {
+ return el.id();
+ }).join(",");
+ if (negativeWeightCycleIds.indexOf(cycleId) === -1) {
+ negativeWeightCycles.push(eles.spawn(cycle));
+ negativeWeightCycleIds.push(cycleId);
}
- j = k + 3;
- break;
- }
- }
- if (j < l) {
- BCb(j, b.length);
- if (b.charCodeAt(j) != 44) {
- throw vbb(new hz("Expecting ,"));
}
} else {
break;
}
}
- return qid(a, i3, c2);
}
- function AKb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- j = BD(BD(Qc(a.r, b), 21), 84);
- g = bKb(a, b);
- c2 = a.u.Hc((rcd(), lcd));
- for (i3 = j.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 111);
- if (!h.c || h.c.d.c.length <= 0) {
- continue;
- }
- m = h.b.rf();
- k = h.c;
- l = k.i;
- l.b = (f2 = k.n, k.e.a + f2.b + f2.c);
- l.a = (e = k.n, k.e.b + e.d + e.a);
- switch (b.g) {
- case 1:
- if (h.a) {
- l.c = (m.a - l.b) / 2;
- $Hb(k, (NHb(), KHb));
- } else if (g || c2) {
- l.c = -l.b - a.s;
- $Hb(k, (NHb(), MHb));
- } else {
- l.c = m.a + a.s;
- $Hb(k, (NHb(), LHb));
- }
- l.d = -l.a - a.t;
- _Hb(k, (EIb(), BIb));
- break;
- case 3:
- if (h.a) {
- l.c = (m.a - l.b) / 2;
- $Hb(k, (NHb(), KHb));
- } else if (g || c2) {
- l.c = -l.b - a.s;
- $Hb(k, (NHb(), MHb));
- } else {
- l.c = m.a + a.s;
- $Hb(k, (NHb(), LHb));
- }
- l.d = m.b + a.t;
- _Hb(k, (EIb(), DIb));
- break;
- case 2:
- if (h.a) {
- d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
- l.d = (m.b - d) / 2;
- _Hb(k, (EIb(), CIb));
- } else if (g || c2) {
- l.d = -l.a - a.t;
- _Hb(k, (EIb(), BIb));
- } else {
- l.d = m.b + a.t;
- _Hb(k, (EIb(), DIb));
- }
- l.c = m.a + a.s;
- $Hb(k, (NHb(), LHb));
- break;
- case 4:
- if (h.a) {
- d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
- l.d = (m.b - d) / 2;
- _Hb(k, (EIb(), CIb));
- } else if (g || c2) {
- l.d = -l.a - a.t;
- _Hb(k, (EIb(), BIb));
- } else {
- l.d = m.b + a.t;
- _Hb(k, (EIb(), DIb));
- }
- l.c = -l.b - a.s;
- $Hb(k, (NHb(), MHb));
- }
- g = false;
- }
- }
- function Kfe(a, b) {
- wfe();
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- if (Vhb(Zee) == 0) {
- l = KC(lbb, nie, 117, _ee.length, 0, 1);
- for (g = 0; g < l.length; g++) {
- l[g] = new $fe(4);
- }
- d = new Ifb();
- for (f2 = 0; f2 < Yee.length; f2++) {
- k = new $fe(4);
- if (f2 < 84) {
- h = f2 * 2;
- n = (BCb(h, wxe.length), wxe.charCodeAt(h));
- m = (BCb(h + 1, wxe.length), wxe.charCodeAt(h + 1));
- Ufe(k, n, m);
- } else {
- h = (f2 - 84) * 2;
- Ufe(k, afe[h], afe[h + 1]);
- }
- i3 = Yee[f2];
- dfb(i3, "Specials") && Ufe(k, 65520, 65533);
- if (dfb(i3, uxe)) {
- Ufe(k, 983040, 1048573);
- Ufe(k, 1048576, 1114109);
- }
- Shb(Zee, i3, k);
- Shb($ee, i3, _fe(k));
- j = d.a.length;
- 0 < j ? d.a = d.a.substr(0, 0) : 0 > j && (d.a += yfb(KC(TD, $ie, 25, -j, 15, 1)));
- d.a += "Is";
- if (hfb(i3, wfb(32)) >= 0) {
- for (e = 0; e < i3.length; e++) {
- BCb(e, i3.length);
- i3.charCodeAt(e) != 32 && Afb(d, (BCb(e, i3.length), i3.charCodeAt(e)));
- }
- } else {
- d.a += "" + i3;
- }
- Ofe(d.a, i3, true);
- }
- Ofe(vxe, "Cn", false);
- Ofe(xxe, "Cn", true);
- c2 = new $fe(4);
- Ufe(c2, 0, lxe);
- Shb(Zee, "ALL", c2);
- Shb($ee, "ALL", _fe(c2));
- !bfe && (bfe = new Lqb());
- Shb(bfe, vxe, vxe);
- !bfe && (bfe = new Lqb());
- Shb(bfe, xxe, xxe);
- !bfe && (bfe = new Lqb());
- Shb(bfe, "ALL", "ALL");
- }
- o2 = b ? BD(Phb(Zee, a), 136) : BD(Phb($ee, a), 136);
- return o2;
- }
- function c3b(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
- m = false;
- l = false;
- if (fcd(BD(vNb(d, (Nyc(), Vxc)), 98))) {
- g = false;
- h = false;
- t:
- for (o2 = new olb(d.j); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 11);
- for (q = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(n), new R0b(n)]))); Qr(q); ) {
- p = BD(Rr(q), 11);
- if (!Ccb(DD(vNb(p.i, pwc)))) {
- if (n.j == (Ucd(), Acd)) {
- g = true;
- break t;
- }
- if (n.j == Rcd) {
- h = true;
- break t;
- }
- }
- }
- }
- m = h && !g;
- l = g && !h;
- }
- if (!m && !l && d.b.c.length != 0) {
- k = 0;
- for (j = new olb(d.b); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 70);
- k += i3.n.b + i3.o.b / 2;
- }
- k /= d.b.c.length;
- s = k >= d.o.b / 2;
- } else {
- s = !l;
- }
- if (s) {
- r = BD(vNb(d, (wtc(), vtc)), 15);
- if (!r) {
- f2 = new Rkb();
- yNb(d, vtc, f2);
- } else if (m) {
- f2 = r;
- } else {
- e = BD(vNb(d, tsc), 15);
- if (!e) {
- f2 = new Rkb();
- yNb(d, tsc, f2);
- } else {
- r.gc() <= e.gc() ? f2 = r : f2 = e;
- }
- }
- } else {
- e = BD(vNb(d, (wtc(), tsc)), 15);
- if (!e) {
- f2 = new Rkb();
- yNb(d, tsc, f2);
- } else if (l) {
- f2 = e;
- } else {
- r = BD(vNb(d, vtc), 15);
- if (!r) {
- f2 = new Rkb();
- yNb(d, vtc, f2);
- } else {
- e.gc() <= r.gc() ? f2 = e : f2 = r;
- }
- }
- }
- f2.Fc(a);
- yNb(a, (wtc(), vsc), c2);
- if (b.d == c2) {
- RZb(b, null);
- c2.e.c.length + c2.g.c.length == 0 && F0b(c2, null);
- d3b(c2);
- } else {
- QZb(b, null);
- c2.e.c.length + c2.g.c.length == 0 && F0b(c2, null);
- }
- Osb(b.a);
- }
- function aoc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2;
- s = new Bib(a.b, 0);
- k = b.Kc();
- o2 = 0;
- j = BD(k.Pb(), 19).a;
- v = 0;
- c2 = new Tqb();
- A = new zsb();
- while (s.b < s.d.gc()) {
- r = (sCb(s.b < s.d.gc()), BD(s.d.Xb(s.c = s.b++), 29));
- for (u2 = new olb(r.a); u2.a < u2.c.c.length; ) {
- t4 = BD(mlb(u2), 10);
- for (n = new Sr(ur(U_b(t4).a.Kc(), new Sq())); Qr(n); ) {
- l = BD(Rr(n), 17);
- A.a.zc(l, A);
- }
- for (m = new Sr(ur(R_b(t4).a.Kc(), new Sq())); Qr(m); ) {
- l = BD(Rr(m), 17);
- A.a.Bc(l) != null;
- }
- }
- if (o2 + 1 == j) {
- e = new H1b(a);
- Aib(s, e);
- f2 = new H1b(a);
- Aib(s, f2);
- for (C = A.a.ec().Kc(); C.Ob(); ) {
- B = BD(C.Pb(), 17);
- if (!c2.a._b(B)) {
- ++v;
- c2.a.zc(B, c2);
- }
- g = new b0b(a);
- yNb(g, (Nyc(), Vxc), (dcd(), acd));
- $_b(g, e);
- __b(g, (j0b(), d0b));
- p = new H0b();
- F0b(p, g);
- G0b(p, (Ucd(), Tcd));
- D3 = new H0b();
- F0b(D3, g);
- G0b(D3, zcd);
- d = new b0b(a);
- yNb(d, Vxc, acd);
- $_b(d, f2);
- __b(d, d0b);
- q = new H0b();
- F0b(q, d);
- G0b(q, Tcd);
- F = new H0b();
- F0b(F, d);
- G0b(F, zcd);
- w2 = new UZb();
- QZb(w2, B.c);
- RZb(w2, p);
- H2 = new UZb();
- QZb(H2, D3);
- RZb(H2, q);
- QZb(B, F);
- h = new goc(g, d, w2, H2, B);
- yNb(g, (wtc(), usc), h);
- yNb(d, usc, h);
- G = w2.c.i;
- if (G.k == d0b) {
- i3 = BD(vNb(G, usc), 305);
- i3.d = h;
- h.g = i3;
- }
- }
- if (k.Ob()) {
- j = BD(k.Pb(), 19).a;
- } else {
- break;
- }
- }
- ++o2;
- }
- return meb(v);
- }
- function T1b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- l = 0;
- for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 33);
- if (!Ccb(DD(hkd(d, (Nyc(), Jxc))))) {
- if ((PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(d, xwc)))) {
- jkd(d, (wtc(), Zsc), meb(l));
- ++l;
- }
- $1b(a, d, c2);
- }
- }
- l = 0;
- for (j = new Fyd((!b.b && (b.b = new cUd(B2, b, 12, 3)), b.b)); j.e != j.i.gc(); ) {
- h = BD(Dyd(j), 79);
- if (PD(hkd(b, (Nyc(), ywc))) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) {
- jkd(h, (wtc(), Zsc), meb(l));
- ++l;
- }
- o2 = jtd(h);
- p = ltd(h);
- k = Ccb(DD(hkd(o2, fxc)));
- n = !Ccb(DD(hkd(h, Jxc)));
- m = k && Qld(h) && Ccb(DD(hkd(h, gxc)));
- f2 = Xod(o2) == b && Xod(o2) == Xod(p);
- g = (Xod(o2) == b && p == b) ^ (Xod(p) == b && o2 == b);
- n && !m && (g || f2) && X1b(a, h, b, c2);
- }
- if (Xod(b)) {
- for (i3 = new Fyd(Wod(Xod(b))); i3.e != i3.i.gc(); ) {
- h = BD(Dyd(i3), 79);
- o2 = jtd(h);
- if (o2 == b && Qld(h)) {
- m = Ccb(DD(hkd(o2, (Nyc(), fxc)))) && Ccb(DD(hkd(h, gxc)));
- m && X1b(a, h, b, c2);
- }
- }
- }
- }
- function gDc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
- Odd(c2, "MinWidth layering", 1);
- n = b.b;
- A = b.a;
- I = BD(vNb(b, (Nyc(), oxc)), 19).a;
- h = BD(vNb(b, pxc), 19).a;
- a.b = Edb(ED(vNb(b, lyc)));
- a.d = Pje;
- for (u2 = new olb(A); u2.a < u2.c.c.length; ) {
- s = BD(mlb(u2), 10);
- if (s.k != (j0b(), h0b)) {
- continue;
- }
- D3 = s.o.b;
- a.d = $wnd.Math.min(a.d, D3);
- }
- a.d = $wnd.Math.max(1, a.d);
- B = A.c.length;
- a.c = KC(WD, oje, 25, B, 15, 1);
- a.f = KC(WD, oje, 25, B, 15, 1);
- a.e = KC(UD, Vje, 25, B, 15, 1);
- j = 0;
- a.a = 0;
- for (v = new olb(A); v.a < v.c.c.length; ) {
- s = BD(mlb(v), 10);
- s.p = j++;
- a.c[s.p] = eDc(R_b(s));
- a.f[s.p] = eDc(U_b(s));
- a.e[s.p] = s.o.b / a.d;
- a.a += a.e[s.p];
- }
- a.b /= a.d;
- a.a /= B;
- w2 = fDc(A);
- Okb(A, tmb(new mDc(a)));
- p = Pje;
- o2 = Ohe;
- g = null;
- H2 = I;
- G = I;
- f2 = h;
- e = h;
- if (I < 0) {
- H2 = BD(bDc.a.zd(), 19).a;
- G = BD(bDc.b.zd(), 19).a;
- }
- if (h < 0) {
- f2 = BD(aDc.a.zd(), 19).a;
- e = BD(aDc.b.zd(), 19).a;
- }
- for (F = H2; F <= G; F++) {
- for (d = f2; d <= e; d++) {
- C = dDc(a, F, d, A, w2);
- r = Edb(ED(C.a));
- m = BD(C.b, 15);
- q = m.gc();
- if (r < p || r == p && q < o2) {
- p = r;
- o2 = q;
- g = m;
- }
- }
- }
- for (l = g.Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 15);
- i3 = new H1b(b);
- for (t4 = k.Kc(); t4.Ob(); ) {
- s = BD(t4.Pb(), 10);
- $_b(s, i3);
- }
- n.c[n.c.length] = i3;
- }
- smb(n);
- A.c = KC(SI, Uhe, 1, 0, 5, 1);
- Qdd(c2);
- }
- function I6b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
- a.b = b;
- a.a = BD(vNb(b, (Nyc(), bxc)), 19).a;
- a.c = BD(vNb(b, dxc), 19).a;
- a.c == 0 && (a.c = Ohe);
- q = new Bib(b.b, 0);
- while (q.b < q.d.gc()) {
- p = (sCb(q.b < q.d.gc()), BD(q.d.Xb(q.c = q.b++), 29));
- h = new Rkb();
- k = -1;
- u2 = -1;
- for (t4 = new olb(p.a); t4.a < t4.c.c.length; ) {
- s = BD(mlb(t4), 10);
- if (sr((D6b(), new Sr(ur(O_b(s).a.Kc(), new Sq())))) >= a.a) {
- d = E6b(a, s);
- k = $wnd.Math.max(k, d.b);
- u2 = $wnd.Math.max(u2, d.d);
- Ekb(h, new vgd(s, d));
- }
- }
- B = new Rkb();
- for (j = 0; j < k; ++j) {
- Dkb(B, 0, (sCb(q.b > 0), q.a.Xb(q.c = --q.b), C = new H1b(a.b), Aib(q, C), sCb(q.b < q.d.gc()), q.d.Xb(q.c = q.b++), C));
- }
- for (g = new olb(h); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 46);
- n = BD(e.b, 571).a;
- if (!n) {
- continue;
- }
- for (m = new olb(n); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- H6b(a, l, B6b, B);
- }
- }
- c2 = new Rkb();
- for (i3 = 0; i3 < u2; ++i3) {
- Ekb(c2, (D3 = new H1b(a.b), Aib(q, D3), D3));
- }
- for (f2 = new olb(h); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 46);
- A = BD(e.b, 571).c;
- if (!A) {
- continue;
- }
- for (w2 = new olb(A); w2.a < w2.c.c.length; ) {
- v = BD(mlb(w2), 10);
- H6b(a, v, C6b, c2);
- }
- }
- }
- r = new Bib(b.b, 0);
- while (r.b < r.d.gc()) {
- o2 = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 29));
- o2.a.c.length == 0 && uib(r);
- }
- }
- function uQc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
- Odd(c2, "Spline edge routing", 1);
- if (b.b.c.length == 0) {
- b.f.a = 0;
- Qdd(c2);
- return;
- }
- s = Edb(ED(vNb(b, (Nyc(), wyc))));
- h = Edb(ED(vNb(b, pyc)));
- g = Edb(ED(vNb(b, myc)));
- r = BD(vNb(b, Xwc), 336);
- B = r == (tBc(), sBc);
- A = Edb(ED(vNb(b, Ywc)));
- a.d = b;
- a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
- a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- Uhb(a.k);
- i3 = BD(Ikb(b.b, 0), 29);
- k = Kq(i3.a, (FNc(), DNc));
- o2 = BD(Ikb(b.b, b.b.c.length - 1), 29);
- l = Kq(o2.a, DNc);
- p = new olb(b.b);
- q = null;
- G = 0;
- do {
- t4 = p.a < p.c.c.length ? BD(mlb(p), 29) : null;
- iQc(a, q, t4);
- lQc(a);
- C = Vtb(uAb(PAb(JAb(new YAb(null, new Kub(a.i, 16)), new LQc()), new NQc())));
- F = 0;
- u2 = G;
- m = !q || k && q == i3;
- n = !t4 || l && t4 == o2;
- if (C > 0) {
- j = 0;
- !!q && (j += h);
- j += (C - 1) * g;
- !!t4 && (j += h);
- B && !!t4 && (j = $wnd.Math.max(j, jQc(t4, g, s, A)));
- if (j < s && !m && !n) {
- F = (s - j) / 2;
- j = s;
- }
- u2 += j;
- } else
- !m && !n && (u2 += s);
- !!t4 && h_b(t4, u2);
- for (w2 = new olb(a.i); w2.a < w2.c.c.length; ) {
- v = BD(mlb(w2), 128);
- v.a.c = G;
- v.a.b = u2 - G;
- v.F = F;
- v.p = !q;
- }
- Gkb(a.a, a.i);
- G = u2;
- !!t4 && (G += t4.c.a);
- q = t4;
- m = n;
- } while (t4);
- for (e = new olb(a.j); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 17);
- f2 = pQc(a, d);
- yNb(d, (wtc(), ptc), f2);
- D3 = rQc(a, d);
- yNb(d, rtc, D3);
- }
- b.f.a = G;
- a.d = null;
- Qdd(c2);
- }
- function Yxd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- p = a.i != 0;
- t4 = false;
- r = null;
- if (oid(a.e)) {
- k = b.gc();
- if (k > 0) {
- m = k < 100 ? null : new Ixd(k);
- j = new Aud(b);
- o2 = j.g;
- r = KC(WD, oje, 25, k, 15, 1);
- d = 0;
- u2 = new zud(k);
- for (e = 0; e < a.i; ++e) {
- h = a.g[e];
- n = h;
- v:
- for (s = 0; s < 2; ++s) {
- for (i3 = k; --i3 >= 0; ) {
- if (n != null ? pb(n, o2[i3]) : PD(n) === PD(o2[i3])) {
- if (r.length <= d) {
- q = r;
- r = KC(WD, oje, 25, 2 * r.length, 15, 1);
- $fb(q, 0, r, 0, d);
- }
- r[d++] = e;
- wtd(u2, o2[i3]);
- break v;
- }
- }
- n = n;
- if (PD(n) === PD(h)) {
- break;
- }
- }
- }
- j = u2;
- o2 = u2.g;
- k = d;
- if (d > r.length) {
- q = r;
- r = KC(WD, oje, 25, d, 15, 1);
- $fb(q, 0, r, 0, d);
- }
- if (d > 0) {
- t4 = true;
- for (f2 = 0; f2 < d; ++f2) {
- n = o2[f2];
- m = k3d(a, BD(n, 72), m);
- }
- for (g = d; --g >= 0; ) {
- tud(a, r[g]);
- }
- if (d != k) {
- for (e = k; --e >= d; ) {
- tud(j, e);
- }
- q = r;
- r = KC(WD, oje, 25, d, 15, 1);
- $fb(q, 0, r, 0, d);
- }
- b = j;
- }
- }
- } else {
- b = Ctd(a, b);
- for (e = a.i; --e >= 0; ) {
- if (b.Hc(a.g[e])) {
- tud(a, e);
- t4 = true;
- }
- }
- }
- if (t4) {
- if (r != null) {
- c2 = b.gc();
- l = c2 == 1 ? FLd(a, 4, b.Kc().Pb(), null, r[0], p) : FLd(a, 6, b, r, r[0], p);
- m = c2 < 100 ? null : new Ixd(c2);
- for (e = b.Kc(); e.Ob(); ) {
- n = e.Pb();
- m = Q2d(a, BD(n, 72), m);
- }
- if (!m) {
- Uhd(a.e, l);
- } else {
- m.Ei(l);
- m.Fi();
- }
- } else {
- m = Vxd(b.gc());
- for (e = b.Kc(); e.Ob(); ) {
- n = e.Pb();
- m = Q2d(a, BD(n, 72), m);
- }
- !!m && m.Fi();
- }
- return true;
- } else {
- return false;
- }
- }
- function fYb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- c2 = new mYb(b);
- c2.a || $Xb(b);
- j = ZXb(b);
- i3 = new Hp();
- q = new AYb();
- for (p = new olb(b.a); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 10);
- for (e = new Sr(ur(U_b(o2).a.Kc(), new Sq())); Qr(e); ) {
- d = BD(Rr(e), 17);
- if (d.c.i.k == (j0b(), e0b) || d.d.i.k == e0b) {
- k = eYb(a, d, j, q);
- Rc(i3, cYb(k.d), k.a);
- }
- }
- }
- g = new Rkb();
- for (t4 = BD(vNb(c2.c, (wtc(), Esc)), 21).Kc(); t4.Ob(); ) {
- s = BD(t4.Pb(), 61);
- n = q.c[s.g];
- m = q.b[s.g];
- h = q.a[s.g];
- f2 = null;
- r = null;
- switch (s.g) {
- case 4:
- f2 = new J6c(a.d.a, n, j.b.a - a.d.a, m - n);
- r = new J6c(a.d.a, n, h, m - n);
- iYb(j, new f7c(f2.c + f2.b, f2.d));
- iYb(j, new f7c(f2.c + f2.b, f2.d + f2.a));
- break;
- case 2:
- f2 = new J6c(j.a.a, n, a.c.a - j.a.a, m - n);
- r = new J6c(a.c.a - h, n, h, m - n);
- iYb(j, new f7c(f2.c, f2.d));
- iYb(j, new f7c(f2.c, f2.d + f2.a));
- break;
- case 1:
- f2 = new J6c(n, a.d.b, m - n, j.b.b - a.d.b);
- r = new J6c(n, a.d.b, m - n, h);
- iYb(j, new f7c(f2.c, f2.d + f2.a));
- iYb(j, new f7c(f2.c + f2.b, f2.d + f2.a));
- break;
- case 3:
- f2 = new J6c(n, j.a.b, m - n, a.c.b - j.a.b);
- r = new J6c(n, a.c.b - h, m - n, h);
- iYb(j, new f7c(f2.c, f2.d));
- iYb(j, new f7c(f2.c + f2.b, f2.d));
- }
- if (f2) {
- l = new vYb();
- l.d = s;
- l.b = f2;
- l.c = r;
- l.a = Dx(BD(Qc(i3, cYb(s)), 21));
- g.c[g.c.length] = l;
- }
- }
- Gkb(c2.b, g);
- c2.d = BWb(JWb(j));
- return c2;
- }
- function pMc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- if (c2.p[b.p] != null) {
- return;
- }
- h = true;
- c2.p[b.p] = 0;
- g = b;
- p = c2.o == (eMc(), cMc) ? Qje : Pje;
- do {
- e = a.b.e[g.p];
- f2 = g.c.a.c.length;
- if (c2.o == cMc && e > 0 || c2.o == dMc && e < f2 - 1) {
- i3 = null;
- j = null;
- c2.o == dMc ? i3 = BD(Ikb(g.c.a, e + 1), 10) : i3 = BD(Ikb(g.c.a, e - 1), 10);
- j = c2.g[i3.p];
- pMc(a, j, c2);
- p = a.e.bg(p, b, g);
- c2.j[b.p] == b && (c2.j[b.p] = c2.j[j.p]);
- if (c2.j[b.p] == c2.j[j.p]) {
- o2 = jBc(a.d, g, i3);
- if (c2.o == dMc) {
- d = Edb(c2.p[b.p]);
- l = Edb(c2.p[j.p]) + Edb(c2.d[i3.p]) - i3.d.d - o2 - g.d.a - g.o.b - Edb(c2.d[g.p]);
- if (h) {
- h = false;
- c2.p[b.p] = $wnd.Math.min(l, p);
- } else {
- c2.p[b.p] = $wnd.Math.min(d, $wnd.Math.min(l, p));
- }
- } else {
- d = Edb(c2.p[b.p]);
- l = Edb(c2.p[j.p]) + Edb(c2.d[i3.p]) + i3.o.b + i3.d.a + o2 + g.d.d - Edb(c2.d[g.p]);
- if (h) {
- h = false;
- c2.p[b.p] = $wnd.Math.max(l, p);
- } else {
- c2.p[b.p] = $wnd.Math.max(d, $wnd.Math.max(l, p));
- }
- }
- } else {
- o2 = Edb(ED(vNb(a.a, (Nyc(), vyc))));
- n = nMc(a, c2.j[b.p]);
- k = nMc(a, c2.j[j.p]);
- if (c2.o == dMc) {
- m = Edb(c2.p[b.p]) + Edb(c2.d[g.p]) + g.o.b + g.d.a + o2 - (Edb(c2.p[j.p]) + Edb(c2.d[i3.p]) - i3.d.d);
- tMc(n, k, m);
- } else {
- m = Edb(c2.p[b.p]) + Edb(c2.d[g.p]) - g.d.d - Edb(c2.p[j.p]) - Edb(c2.d[i3.p]) - i3.o.b - i3.d.a - o2;
- tMc(n, k, m);
- }
- }
- } else {
- p = a.e.bg(p, b, g);
- }
- g = c2.a[g.p];
- } while (g != b);
- SMc(a.e, b);
- }
- function _qd(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
- t4 = b;
- s = new Hp();
- u2 = new Hp();
- k = Ypd(t4, Nte);
- d = new ord(a, c2, s, u2);
- qqd(d.a, d.b, d.c, d.d, k);
- i3 = (A = s.i, !A ? s.i = new zf(s, s.c) : A);
- for (C = i3.Kc(); C.Ob(); ) {
- B = BD(C.Pb(), 202);
- e = BD(Qc(s, B), 21);
- for (p = e.Kc(); p.Ob(); ) {
- o2 = p.Pb();
- v = BD(oo(a.d, o2), 202);
- if (v) {
- h = (!B.e && (B.e = new y5d(A2, B, 10, 9)), B.e);
- wtd(h, v);
- } else {
- g = _pd(t4, Vte);
- m = _te + o2 + aue + g;
- n = m + $te;
- throw vbb(new cqd(n));
- }
- }
- }
- j = (w2 = u2.i, !w2 ? u2.i = new zf(u2, u2.c) : w2);
- for (F = j.Kc(); F.Ob(); ) {
- D3 = BD(F.Pb(), 202);
- f2 = BD(Qc(u2, D3), 21);
- for (r = f2.Kc(); r.Ob(); ) {
- q = r.Pb();
- v = BD(oo(a.d, q), 202);
- if (v) {
- l = (!D3.g && (D3.g = new y5d(A2, D3, 9, 10)), D3.g);
- wtd(l, v);
- } else {
- g = _pd(t4, Vte);
- m = _te + q + aue + g;
- n = m + $te;
- throw vbb(new cqd(n));
- }
- }
- }
- !c2.b && (c2.b = new y5d(z2, c2, 4, 7));
- if (c2.b.i != 0 && (!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c.i != 0) && (!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b.i <= 1 && (!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c.i <= 1)) && (!c2.a && (c2.a = new cUd(A2, c2, 6, 6)), c2.a).i == 1) {
- G = BD(qud((!c2.a && (c2.a = new cUd(A2, c2, 6, 6)), c2.a), 0), 202);
- if (!dmd(G) && !emd(G)) {
- kmd(G, BD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 82));
- lmd(G, BD(qud((!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c), 0), 82));
- }
- }
- }
- function qJc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
- for (t4 = a.a, u2 = 0, v = t4.length; u2 < v; ++u2) {
- s = t4[u2];
- j = Ohe;
- k = Ohe;
- for (o2 = new olb(s.e); o2.a < o2.c.c.length; ) {
- m = BD(mlb(o2), 10);
- g = !m.c ? -1 : Jkb(m.c.a, m, 0);
- if (g > 0) {
- l = BD(Ikb(m.c.a, g - 1), 10);
- B = jBc(a.b, m, l);
- q = m.n.b - m.d.d - (l.n.b + l.o.b + l.d.a + B);
- } else {
- q = m.n.b - m.d.d;
- }
- j = $wnd.Math.min(q, j);
- if (g < m.c.a.c.length - 1) {
- l = BD(Ikb(m.c.a, g + 1), 10);
- B = jBc(a.b, m, l);
- r = l.n.b - l.d.d - (m.n.b + m.o.b + m.d.a + B);
- } else {
- r = 2 * m.n.b;
- }
- k = $wnd.Math.min(r, k);
- }
- i3 = Ohe;
- f2 = false;
- e = BD(Ikb(s.e, 0), 10);
- for (D3 = new olb(e.j); D3.a < D3.c.c.length; ) {
- C = BD(mlb(D3), 11);
- p = e.n.b + C.n.b + C.a.b;
- for (d = new olb(C.e); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 17);
- w2 = c2.c;
- b = w2.i.n.b + w2.n.b + w2.a.b - p;
- if ($wnd.Math.abs(b) < $wnd.Math.abs(i3) && $wnd.Math.abs(b) < (b < 0 ? j : k)) {
- i3 = b;
- f2 = true;
- }
- }
- }
- h = BD(Ikb(s.e, s.e.c.length - 1), 10);
- for (A = new olb(h.j); A.a < A.c.c.length; ) {
- w2 = BD(mlb(A), 11);
- p = h.n.b + w2.n.b + w2.a.b;
- for (d = new olb(w2.g); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 17);
- C = c2.d;
- b = C.i.n.b + C.n.b + C.a.b - p;
- if ($wnd.Math.abs(b) < $wnd.Math.abs(i3) && $wnd.Math.abs(b) < (b < 0 ? j : k)) {
- i3 = b;
- f2 = true;
- }
- }
- }
- if (f2 && i3 != 0) {
- for (n = new olb(s.e); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 10);
- m.n.b += i3;
- }
- }
- }
- }
- function ync(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- if (Mhb(a.a, b)) {
- if (Rqb(BD(Ohb(a.a, b), 53), c2)) {
- return 1;
- }
- } else {
- Rhb(a.a, b, new Tqb());
- }
- if (Mhb(a.a, c2)) {
- if (Rqb(BD(Ohb(a.a, c2), 53), b)) {
- return -1;
- }
- } else {
- Rhb(a.a, c2, new Tqb());
- }
- if (Mhb(a.e, b)) {
- if (Rqb(BD(Ohb(a.e, b), 53), c2)) {
- return -1;
- }
- } else {
- Rhb(a.e, b, new Tqb());
- }
- if (Mhb(a.e, c2)) {
- if (Rqb(BD(Ohb(a.a, c2), 53), b)) {
- return 1;
- }
- } else {
- Rhb(a.e, c2, new Tqb());
- }
- if (a.c == (tAc(), sAc) || !wNb(b, (wtc(), Zsc)) || !wNb(c2, (wtc(), Zsc))) {
- i3 = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Hnc())), new Jnc())), 11);
- k = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(c2.j, 16)), new Lnc())), new Nnc())), 11);
- if (!!i3 && !!k) {
- h = i3.i;
- j = k.i;
- if (!!h && h == j) {
- for (m = new olb(h.j); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 11);
- if (l == i3) {
- Anc(a, c2, b);
- return -1;
- } else if (l == k) {
- Anc(a, b, c2);
- return 1;
- }
- }
- return beb(znc(a, b), znc(a, c2));
- }
- for (o2 = a.d, p = 0, q = o2.length; p < q; ++p) {
- n = o2[p];
- if (n == h) {
- Anc(a, c2, b);
- return -1;
- } else if (n == j) {
- Anc(a, b, c2);
- return 1;
- }
- }
- }
- if (!wNb(b, (wtc(), Zsc)) || !wNb(c2, Zsc)) {
- e = znc(a, b);
- g = znc(a, c2);
- e > g ? Anc(a, b, c2) : Anc(a, c2, b);
- return e < g ? -1 : e > g ? 1 : 0;
- }
- }
- d = BD(vNb(b, (wtc(), Zsc)), 19).a;
- f2 = BD(vNb(c2, Zsc), 19).a;
- d > f2 ? Anc(a, b, c2) : Anc(a, c2, b);
- return d < f2 ? -1 : d > f2 ? 1 : 0;
- }
- function u2c(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
- if (Ccb(DD(hkd(b, (Y9c(), d9c))))) {
- return mmb(), mmb(), jmb;
- }
- j = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0;
- l = s2c(b);
- k = !l.dc();
- if (j || k) {
- e = BD(hkd(b, F9c), 149);
- if (!e) {
- throw vbb(new y2c("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));
- }
- s = D3c(e, (Csd(), ysd));
- q2c(b);
- if (!j && k && !s) {
- return mmb(), mmb(), jmb;
- }
- i3 = new Rkb();
- if (PD(hkd(b, J8c)) === PD((hbd(), ebd)) && (D3c(e, vsd) || D3c(e, usd))) {
- n = p2c(a, b);
- o2 = new Psb();
- ye(o2, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a));
- while (o2.b != 0) {
- m = BD(o2.b == 0 ? null : (sCb(o2.b != 0), Nsb(o2, o2.a.a)), 33);
- q2c(m);
- r = PD(hkd(m, J8c)) === PD(gbd);
- if (r || ikd(m, o8c) && !C3c(e, hkd(m, F9c))) {
- h = u2c(a, m, c2, d);
- Gkb(i3, h);
- jkd(m, J8c, gbd);
- hfd(m);
- } else {
- ye(o2, (!m.a && (m.a = new cUd(E2, m, 10, 11)), m.a));
- }
- }
- } else {
- n = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
- for (g = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); g.e != g.i.gc(); ) {
- f2 = BD(Dyd(g), 33);
- h = u2c(a, f2, c2, d);
- Gkb(i3, h);
- hfd(f2);
- }
- }
- for (q = new olb(i3); q.a < q.c.c.length; ) {
- p = BD(mlb(q), 79);
- jkd(p, d9c, (Bcb(), true));
- }
- r2c(b, e, Udd(d, n));
- v2c(i3);
- return k && s ? l : (mmb(), mmb(), jmb);
- } else {
- return mmb(), mmb(), jmb;
- }
- }
- function Z$b(a, b, c2, d, e, f2, g, h, i3) {
- var j, k, l, m, n, o2, p;
- n = c2;
- k = new b0b(i3);
- __b(k, (j0b(), e0b));
- yNb(k, (wtc(), Isc), g);
- yNb(k, (Nyc(), Vxc), (dcd(), $bd));
- p = Edb(ED(a.We(Uxc)));
- yNb(k, Uxc, p);
- l = new H0b();
- F0b(l, k);
- if (!(b != bcd && b != ccd)) {
- d >= 0 ? n = Zcd(h) : n = Wcd(Zcd(h));
- a.Ye($xc, n);
- }
- j = new d7c();
- m = false;
- if (a.Xe(Txc)) {
- a7c(j, BD(a.We(Txc), 8));
- m = true;
- } else {
- _6c(j, g.a / 2, g.b / 2);
- }
- switch (n.g) {
- case 4:
- yNb(k, mxc, (Ctc(), ytc));
- yNb(k, Bsc, (Gqc(), Fqc));
- k.o.b = g.b;
- p < 0 && (k.o.a = -p);
- G0b(l, (Ucd(), zcd));
- m || (j.a = g.a);
- j.a -= g.a;
- break;
- case 2:
- yNb(k, mxc, (Ctc(), Atc));
- yNb(k, Bsc, (Gqc(), Dqc));
- k.o.b = g.b;
- p < 0 && (k.o.a = -p);
- G0b(l, (Ucd(), Tcd));
- m || (j.a = 0);
- break;
- case 1:
- yNb(k, Osc, (esc(), dsc));
- k.o.a = g.a;
- p < 0 && (k.o.b = -p);
- G0b(l, (Ucd(), Rcd));
- m || (j.b = g.b);
- j.b -= g.b;
- break;
- case 3:
- yNb(k, Osc, (esc(), bsc));
- k.o.a = g.a;
- p < 0 && (k.o.b = -p);
- G0b(l, (Ucd(), Acd));
- m || (j.b = 0);
- }
- a7c(l.n, j);
- yNb(k, Txc, j);
- if (b == Zbd || b == _bd || b == $bd) {
- o2 = 0;
- if (b == Zbd && a.Xe(Wxc)) {
- switch (n.g) {
- case 1:
- case 2:
- o2 = BD(a.We(Wxc), 19).a;
- break;
- case 3:
- case 4:
- o2 = -BD(a.We(Wxc), 19).a;
- }
- } else {
- switch (n.g) {
- case 4:
- case 2:
- o2 = f2.b;
- b == _bd && (o2 /= e.b);
- break;
- case 1:
- case 3:
- o2 = f2.a;
- b == _bd && (o2 /= e.a);
- }
- }
- yNb(k, htc, o2);
- }
- yNb(k, Hsc, n);
- return k;
- }
- function AGc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
- c2 = Edb(ED(vNb(a.a.j, (Nyc(), Ewc))));
- if (c2 < -1 || !a.a.i || ecd(BD(vNb(a.a.o, Vxc), 98)) || V_b(a.a.o, (Ucd(), zcd)).gc() < 2 && V_b(a.a.o, Tcd).gc() < 2) {
- return true;
- }
- if (a.a.c.Rf()) {
- return false;
- }
- v = 0;
- u2 = 0;
- t4 = new Rkb();
- for (i3 = a.a.e, j = 0, k = i3.length; j < k; ++j) {
- h = i3[j];
- for (m = h, n = 0, p = m.length; n < p; ++n) {
- l = m[n];
- if (l.k == (j0b(), i0b)) {
- t4.c[t4.c.length] = l;
- continue;
- }
- d = a.b[l.c.p][l.p];
- if (l.k == e0b) {
- d.b = 1;
- BD(vNb(l, (wtc(), $sc)), 11).j == (Ucd(), zcd) && (u2 += d.a);
- } else {
- C = V_b(l, (Ucd(), Tcd));
- C.dc() || !Lq(C, new NGc()) ? d.c = 1 : (e = V_b(l, zcd), (e.dc() || !Lq(e, new JGc())) && (v += d.a));
- }
- for (g = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g); ) {
- f2 = BD(Rr(g), 17);
- v += d.c;
- u2 += d.b;
- B = f2.d.i;
- zGc(a, d, B);
- }
- r = pl(OC(GC(KI, 1), Uhe, 20, 0, [V_b(l, (Ucd(), Acd)), V_b(l, Rcd)]));
- for (A = new Sr(new xl(r.a.length, r.a)); Qr(A); ) {
- w2 = BD(Rr(A), 11);
- s = BD(vNb(w2, (wtc(), gtc)), 10);
- if (s) {
- v += d.c;
- u2 += d.b;
- zGc(a, d, s);
- }
- }
- }
- for (o2 = new olb(t4); o2.a < o2.c.c.length; ) {
- l = BD(mlb(o2), 10);
- d = a.b[l.c.p][l.p];
- for (g = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g); ) {
- f2 = BD(Rr(g), 17);
- v += d.c;
- u2 += d.b;
- B = f2.d.i;
- zGc(a, d, B);
- }
- }
- t4.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- b = v + u2;
- q = b == 0 ? Pje : (v - u2) / b;
- return q >= c2;
- }
- function ovd() {
- mvd();
- function h(f2) {
- var g = this;
- this.dispatch = function(a) {
- var b = a.data;
- switch (b.cmd) {
- case "algorithms":
- var c2 = pvd((mmb(), new lnb(new $ib(lvd.b))));
- f2.postMessage({ id: b.id, data: c2 });
- break;
- case "categories":
- var d = pvd((mmb(), new lnb(new $ib(lvd.c))));
- f2.postMessage({ id: b.id, data: d });
- break;
- case "options":
- var e = pvd((mmb(), new lnb(new $ib(lvd.d))));
- f2.postMessage({ id: b.id, data: e });
- break;
- case "register":
- svd(b.algorithms);
- f2.postMessage({ id: b.id });
- break;
- case "layout":
- qvd(b.graph, b.layoutOptions || {}, b.options || {});
- f2.postMessage({ id: b.id, data: b.graph });
- break;
- }
- };
- this.saveDispatch = function(b) {
- try {
- g.dispatch(b);
- } catch (a) {
- f2.postMessage({ id: b.data.id, error: a });
- }
- };
- }
- function j(b) {
- var c2 = this;
- this.dispatcher = new h({ postMessage: function(a) {
- c2.onmessage({ data: a });
- } });
- this.postMessage = function(a) {
- setTimeout(function() {
- c2.dispatcher.saveDispatch({ data: a });
- }, 0);
- };
- }
- if (typeof document === uke && typeof self !== uke) {
- var i3 = new h(self);
- self.onmessage = i3.saveDispatch;
- } else if (typeof module3 !== uke && module3.exports) {
- Object.defineProperty(exports3, "__esModule", { value: true });
- module3.exports = { "default": j, Worker: j };
- }
+ }
+ return {
+ distanceTo,
+ pathTo,
+ hasNegativeWeightCycle,
+ negativeWeightCycles
+ };
+ }, "bellmanFord")
+ // bellmanFord
+ };
+ sqrt2 = Math.sqrt(2);
+ collapse = /* @__PURE__ */ __name(function collapse2(edgeIndex, nodeMap, remainingEdges) {
+ if (remainingEdges.length === 0) {
+ error("Karger-Stein must be run on a connected (sub)graph");
+ }
+ var edgeInfo = remainingEdges[edgeIndex];
+ var sourceIn = edgeInfo[1];
+ var targetIn = edgeInfo[2];
+ var partition1 = nodeMap[sourceIn];
+ var partition2 = nodeMap[targetIn];
+ var newEdges = remainingEdges;
+ for (var i2 = newEdges.length - 1; i2 >= 0; i2--) {
+ var edge = newEdges[i2];
+ var src = edge[1];
+ var tgt = edge[2];
+ if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {
+ newEdges.splice(i2, 1);
+ }
+ }
+ for (var _i = 0; _i < newEdges.length; _i++) {
+ var _edge = newEdges[_i];
+ if (_edge[1] === partition2) {
+ newEdges[_i] = _edge.slice();
+ newEdges[_i][1] = partition1;
+ } else if (_edge[2] === partition2) {
+ newEdges[_i] = _edge.slice();
+ newEdges[_i][2] = partition1;
+ }
+ }
+ for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {
+ if (nodeMap[_i2] === partition2) {
+ nodeMap[_i2] = partition1;
+ }
+ }
+ return newEdges;
+ }, "collapse");
+ contractUntil = /* @__PURE__ */ __name(function contractUntil2(metaNodeMap, remainingEdges, size5, sizeLimit) {
+ while (size5 > sizeLimit) {
+ var edgeIndex = Math.floor(Math.random() * remainingEdges.length);
+ remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);
+ size5--;
+ }
+ return remainingEdges;
+ }, "contractUntil");
+ elesfn$p = {
+ // Computes the minimum cut of an undirected graph
+ // Returns the correct answer with high probability
+ kargerStein: /* @__PURE__ */ __name(function kargerStein() {
+ var _this = this;
+ var _this$byGroup = this.byGroup(), nodes6 = _this$byGroup.nodes, edges5 = _this$byGroup.edges;
+ edges5.unmergeBy(function(edge) {
+ return edge.isLoop();
+ });
+ var numNodes = nodes6.length;
+ var numEdges = edges5.length;
+ var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));
+ var stopSize = Math.floor(numNodes / sqrt2);
+ if (numNodes < 2) {
+ error("At least 2 nodes are required for Karger-Stein algorithm");
+ return void 0;
+ }
+ var edgeIndexes = [];
+ for (var i2 = 0; i2 < numEdges; i2++) {
+ var e3 = edges5[i2];
+ edgeIndexes.push([i2, nodes6.indexOf(e3.source()), nodes6.indexOf(e3.target())]);
+ }
+ var minCutSize = Infinity;
+ var minCutEdgeIndexes = [];
+ var minCutNodeMap = new Array(numNodes);
+ var metaNodeMap = new Array(numNodes);
+ var metaNodeMap2 = new Array(numNodes);
+ var copyNodesMap = /* @__PURE__ */ __name(function copyNodesMap2(from2, to) {
+ for (var _i3 = 0; _i3 < numNodes; _i3++) {
+ to[_i3] = from2[_i3];
}
- function aae(a) {
- if (a.N)
- return;
- a.N = true;
- a.b = Lnd(a, 0);
- Knd(a.b, 0);
- Knd(a.b, 1);
- Knd(a.b, 2);
- a.bb = Lnd(a, 1);
- Knd(a.bb, 0);
- Knd(a.bb, 1);
- a.fb = Lnd(a, 2);
- Knd(a.fb, 3);
- Knd(a.fb, 4);
- Qnd(a.fb, 5);
- a.qb = Lnd(a, 3);
- Knd(a.qb, 0);
- Qnd(a.qb, 1);
- Qnd(a.qb, 2);
- Knd(a.qb, 3);
- Knd(a.qb, 4);
- Qnd(a.qb, 5);
- Knd(a.qb, 6);
- a.a = Mnd(a, 4);
- a.c = Mnd(a, 5);
- a.d = Mnd(a, 6);
- a.e = Mnd(a, 7);
- a.f = Mnd(a, 8);
- a.g = Mnd(a, 9);
- a.i = Mnd(a, 10);
- a.j = Mnd(a, 11);
- a.k = Mnd(a, 12);
- a.n = Mnd(a, 13);
- a.o = Mnd(a, 14);
- a.p = Mnd(a, 15);
- a.q = Mnd(a, 16);
- a.s = Mnd(a, 17);
- a.r = Mnd(a, 18);
- a.t = Mnd(a, 19);
- a.u = Mnd(a, 20);
- a.v = Mnd(a, 21);
- a.w = Mnd(a, 22);
- a.B = Mnd(a, 23);
- a.A = Mnd(a, 24);
- a.C = Mnd(a, 25);
- a.D = Mnd(a, 26);
- a.F = Mnd(a, 27);
- a.G = Mnd(a, 28);
- a.H = Mnd(a, 29);
- a.J = Mnd(a, 30);
- a.I = Mnd(a, 31);
- a.K = Mnd(a, 32);
- a.M = Mnd(a, 33);
- a.L = Mnd(a, 34);
- a.P = Mnd(a, 35);
- a.Q = Mnd(a, 36);
- a.R = Mnd(a, 37);
- a.S = Mnd(a, 38);
- a.T = Mnd(a, 39);
- a.U = Mnd(a, 40);
- a.V = Mnd(a, 41);
- a.X = Mnd(a, 42);
- a.W = Mnd(a, 43);
- a.Y = Mnd(a, 44);
- a.Z = Mnd(a, 45);
- a.$ = Mnd(a, 46);
- a._ = Mnd(a, 47);
- a.ab = Mnd(a, 48);
- a.cb = Mnd(a, 49);
- a.db = Mnd(a, 50);
- a.eb = Mnd(a, 51);
- a.gb = Mnd(a, 52);
- a.hb = Mnd(a, 53);
- a.ib = Mnd(a, 54);
- a.jb = Mnd(a, 55);
- a.kb = Mnd(a, 56);
- a.lb = Mnd(a, 57);
- a.mb = Mnd(a, 58);
- a.nb = Mnd(a, 59);
- a.ob = Mnd(a, 60);
- a.pb = Mnd(a, 61);
- }
- function f5b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- s = 0;
- if (b.f.a == 0) {
- for (q = new olb(a); q.a < q.c.c.length; ) {
- o2 = BD(mlb(q), 10);
- s = $wnd.Math.max(s, o2.n.a + o2.o.a + o2.d.c);
- }
- } else {
- s = b.f.a - b.c.a;
- }
- s -= b.c.a;
- for (p = new olb(a); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 10);
- g5b(o2.n, s - o2.o.a);
- h5b(o2.f);
- d5b(o2);
- (!o2.q ? (mmb(), mmb(), kmb) : o2.q)._b((Nyc(), ayc)) && g5b(BD(vNb(o2, ayc), 8), s - o2.o.a);
- switch (BD(vNb(o2, mwc), 248).g) {
- case 1:
- yNb(o2, mwc, (F7c(), D7c));
- break;
- case 2:
- yNb(o2, mwc, (F7c(), C7c));
- }
- r = o2.o;
- for (u2 = new olb(o2.j); u2.a < u2.c.c.length; ) {
- t4 = BD(mlb(u2), 11);
- g5b(t4.n, r.a - t4.o.a);
- g5b(t4.a, t4.o.a);
- G0b(t4, Z4b(t4.j));
- g = BD(vNb(t4, Wxc), 19);
- !!g && yNb(t4, Wxc, meb(-g.a));
- for (f2 = new olb(t4.g); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 17);
- for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 8);
- c2.a = s - c2.a;
- }
- j = BD(vNb(e, jxc), 74);
- if (j) {
- for (i3 = Jsb(j, 0); i3.b != i3.d.c; ) {
- h = BD(Xsb(i3), 8);
- h.a = s - h.a;
- }
- }
- for (m = new olb(e.b); m.a < m.c.c.length; ) {
- k = BD(mlb(m), 70);
- g5b(k.n, s - k.o.a);
- }
- }
- for (n = new olb(t4.f); n.a < n.c.c.length; ) {
- k = BD(mlb(n), 70);
- g5b(k.n, t4.o.a - k.o.a);
- }
- }
- if (o2.k == (j0b(), e0b)) {
- yNb(o2, (wtc(), Hsc), Z4b(BD(vNb(o2, Hsc), 61)));
- c5b(o2);
- }
- for (l = new olb(o2.b); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 70);
- d5b(k);
- g5b(k.n, r.a - k.o.a);
- }
- }
+ }, "copyNodesMap");
+ for (var iter = 0; iter <= numIter; iter++) {
+ for (var _i4 = 0; _i4 < numNodes; _i4++) {
+ metaNodeMap[_i4] = _i4;
}
- function i5b(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- s = 0;
- if (b.f.b == 0) {
- for (q = new olb(a); q.a < q.c.c.length; ) {
- o2 = BD(mlb(q), 10);
- s = $wnd.Math.max(s, o2.n.b + o2.o.b + o2.d.a);
- }
- } else {
- s = b.f.b - b.c.b;
- }
- s -= b.c.b;
- for (p = new olb(a); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 10);
- j5b(o2.n, s - o2.o.b);
- k5b(o2.f);
- e5b(o2);
- (!o2.q ? (mmb(), mmb(), kmb) : o2.q)._b((Nyc(), ayc)) && j5b(BD(vNb(o2, ayc), 8), s - o2.o.b);
- switch (BD(vNb(o2, mwc), 248).g) {
- case 3:
- yNb(o2, mwc, (F7c(), A7c));
- break;
- case 4:
- yNb(o2, mwc, (F7c(), E7c));
- }
- r = o2.o;
- for (u2 = new olb(o2.j); u2.a < u2.c.c.length; ) {
- t4 = BD(mlb(u2), 11);
- j5b(t4.n, r.b - t4.o.b);
- j5b(t4.a, t4.o.b);
- G0b(t4, $4b(t4.j));
- g = BD(vNb(t4, Wxc), 19);
- !!g && yNb(t4, Wxc, meb(-g.a));
- for (f2 = new olb(t4.g); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 17);
- for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 8);
- c2.b = s - c2.b;
- }
- j = BD(vNb(e, jxc), 74);
- if (j) {
- for (i3 = Jsb(j, 0); i3.b != i3.d.c; ) {
- h = BD(Xsb(i3), 8);
- h.b = s - h.b;
- }
- }
- for (m = new olb(e.b); m.a < m.c.c.length; ) {
- k = BD(mlb(m), 70);
- j5b(k.n, s - k.o.b);
- }
- }
- for (n = new olb(t4.f); n.a < n.c.c.length; ) {
- k = BD(mlb(n), 70);
- j5b(k.n, t4.o.b - k.o.b);
- }
- }
- if (o2.k == (j0b(), e0b)) {
- yNb(o2, (wtc(), Hsc), $4b(BD(vNb(o2, Hsc), 61)));
- b5b(o2);
- }
- for (l = new olb(o2.b); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 70);
- e5b(k);
- j5b(k.n, r.b - k.o.b);
- }
- }
+ var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);
+ var edgesState2 = edgesState.slice();
+ copyNodesMap(metaNodeMap, metaNodeMap2);
+ var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);
+ var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);
+ if (res1.length <= res2.length && res1.length < minCutSize) {
+ minCutSize = res1.length;
+ minCutEdgeIndexes = res1;
+ copyNodesMap(metaNodeMap, minCutNodeMap);
+ } else if (res2.length <= res1.length && res2.length < minCutSize) {
+ minCutSize = res2.length;
+ minCutEdgeIndexes = res2;
+ copyNodesMap(metaNodeMap2, minCutNodeMap);
}
- function tZc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n;
- l = false;
- j = a + 1;
- k = (tCb(a, b.c.length), BD(b.c[a], 200));
- g = k.a;
- h = null;
- for (f2 = 0; f2 < k.a.c.length; f2++) {
- e = (tCb(f2, g.c.length), BD(g.c[f2], 187));
- if (e.c) {
- continue;
- }
- if (e.b.c.length == 0) {
- Zfb();
- v$c(k, e);
- --f2;
- l = true;
- continue;
- }
- if (!e.k) {
- !!h && a$c(h);
- h = new b$c(!h ? 0 : h.e + h.d + d, k.f, d);
- OZc(e, h.e + h.d, k.f);
- Ekb(k.d, h);
- WZc(h, e);
- e.k = true;
- }
- i3 = null;
- i3 = (n = null, f2 < k.a.c.length - 1 ? n = BD(Ikb(k.a, f2 + 1), 187) : j < b.c.length && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length != 0 && (n = BD(Ikb((tCb(j, b.c.length), BD(b.c[j], 200)).a, 0), 187)), n);
- m = false;
- !!i3 && (m = !pb(i3.j, k));
- if (i3) {
- if (i3.b.c.length == 0) {
- v$c(k, i3);
- break;
- } else {
- KZc(e, c2 - e.s);
- a$c(e.q);
- l = l | sZc(k, e, i3, c2, d);
- }
- if (i3.b.c.length == 0) {
- v$c((tCb(j, b.c.length), BD(b.c[j], 200)), i3);
- i3 = null;
- while (b.c.length > j && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length == 0) {
- Lkb(b, (tCb(j, b.c.length), b.c[j]));
- }
- }
- if (!i3) {
- --f2;
- continue;
- }
- if (uZc(b, k, e, i3, m, c2, j, d)) {
- l = true;
- continue;
- }
- if (m) {
- if (vZc(b, k, e, i3, c2, j, d)) {
- l = true;
- continue;
- } else if (wZc(k, e)) {
- e.c = true;
- l = true;
- continue;
- }
- } else if (wZc(k, e)) {
- e.c = true;
- l = true;
- continue;
- }
- if (l) {
- continue;
- }
- }
- if (wZc(k, e)) {
- e.c = true;
- l = true;
- !!i3 && (i3.k = false);
- continue;
- } else {
- a$c(e.q);
- }
- }
- return l;
- }
- function fed(a, b, c2, d, e, f2, g) {
- var h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
- p = 0;
- D3 = 0;
- for (j = new olb(a.b); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 157);
- !!i3.c && zfd(i3.c);
- p = $wnd.Math.max(p, red(i3));
- D3 += red(i3) * qed(i3);
- }
- q = D3 / a.b.c.length;
- C = _dd(a.b, q);
- D3 += a.b.c.length * C;
- p = $wnd.Math.max(p, $wnd.Math.sqrt(D3 * g)) + c2.b;
- H2 = c2.b;
- I = c2.d;
- n = 0;
- l = c2.b + c2.c;
- B = new Psb();
- Dsb(B, meb(0));
- w2 = new Psb();
- k = new Bib(a.b, 0);
- o2 = null;
- h = new Rkb();
- while (k.b < k.d.gc()) {
- i3 = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157));
- G = red(i3);
- m = qed(i3);
- if (H2 + G > p) {
- if (f2) {
- Fsb(w2, n);
- Fsb(B, meb(k.b - 1));
- Ekb(a.d, o2);
- h.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- H2 = c2.b;
- I += n + b;
- n = 0;
- l = $wnd.Math.max(l, c2.b + c2.c + G);
- }
- h.c[h.c.length] = i3;
- ued(i3, H2, I);
- l = $wnd.Math.max(l, H2 + G + c2.c);
- n = $wnd.Math.max(n, m);
- H2 += G + b;
- o2 = i3;
- }
- Gkb(a.a, h);
- Ekb(a.d, BD(Ikb(h, h.c.length - 1), 157));
- l = $wnd.Math.max(l, d);
- F = I + n + c2.a;
- if (F < e) {
- n += e - F;
- F = e;
- }
- if (f2) {
- H2 = c2.b;
- k = new Bib(a.b, 0);
- Fsb(B, meb(a.b.c.length));
- A = Jsb(B, 0);
- s = BD(Xsb(A), 19).a;
- Fsb(w2, n);
- v = Jsb(w2, 0);
- u2 = 0;
- while (k.b < k.d.gc()) {
- if (k.b == s) {
- H2 = c2.b;
- u2 = Edb(ED(Xsb(v)));
- s = BD(Xsb(A), 19).a;
- }
- i3 = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157));
- sed(i3, u2);
- if (k.b == s) {
- r = l - H2 - c2.c;
- t4 = red(i3);
- ted(i3, r);
- ved(i3, (r - t4) / 2, 0);
- }
- H2 += red(i3) + b;
- }
- }
- return new f7c(l, F);
- }
- function pde(a) {
- var b, c2, d, e, f2;
- b = a.c;
- f2 = null;
- switch (b) {
- case 6:
- return a.Vl();
- case 13:
- return a.Wl();
- case 23:
- return a.Nl();
- case 22:
- return a.Sl();
- case 18:
- return a.Pl();
- case 8:
- nde(a);
- f2 = (wfe(), efe);
- break;
- case 9:
- return a.vl(true);
- case 19:
- return a.wl();
- case 10:
- switch (a.a) {
- case 100:
- case 68:
- case 119:
- case 87:
- case 115:
- case 83:
- f2 = a.ul(a.a);
- nde(a);
- return f2;
- case 101:
- case 102:
- case 110:
- case 114:
- case 116:
- case 117:
- case 118:
- case 120:
- {
- c2 = a.tl();
- c2 < Tje ? f2 = (wfe(), wfe(), new ige(0, c2)) : f2 = Ffe(Tee(c2));
- }
- break;
- case 99:
- return a.Fl();
- case 67:
- return a.Al();
- case 105:
- return a.Il();
- case 73:
- return a.Bl();
- case 103:
- return a.Gl();
- case 88:
- return a.Cl();
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- return a.xl();
- case 80:
- case 112:
- f2 = tde(a, a.a);
- if (!f2)
- throw vbb(new mde(tvd((h0d(), Iue))));
- break;
- default:
- f2 = zfe(a.a);
- }
- nde(a);
- break;
- case 0:
- if (a.a == 93 || a.a == 123 || a.a == 125)
- throw vbb(new mde(tvd((h0d(), Hue))));
- f2 = zfe(a.a);
- d = a.a;
- nde(a);
- if ((d & 64512) == Uje && a.c == 0 && (a.a & 64512) == 56320) {
- e = KC(TD, $ie, 25, 2, 15, 1);
- e[0] = d & aje;
- e[1] = a.a & aje;
- f2 = Efe(Ffe(zfb(e, 0, e.length)), 0);
- nde(a);
- }
- break;
- default:
- throw vbb(new mde(tvd((h0d(), Hue))));
- }
- return f2;
- }
- function e7b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- d = new Rkb();
- e = Ohe;
- f2 = Ohe;
- g = Ohe;
- if (c2) {
- e = a.f.a;
- for (p = new olb(b.j); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 11);
- for (i3 = new olb(o2.g); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 17);
- if (h.a.b != 0) {
- k = BD(Hsb(h.a), 8);
- if (k.a < e) {
- f2 = e - k.a;
- g = Ohe;
- d.c = KC(SI, Uhe, 1, 0, 5, 1);
- e = k.a;
- }
- if (k.a <= e) {
- d.c[d.c.length] = h;
- h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(BD(Ut(h.a, 1), 8).b - k.b)));
- }
- }
- }
- }
- } else {
- for (p = new olb(b.j); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 11);
- for (i3 = new olb(o2.e); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 17);
- if (h.a.b != 0) {
- m = BD(Isb(h.a), 8);
- if (m.a > e) {
- f2 = m.a - e;
- g = Ohe;
- d.c = KC(SI, Uhe, 1, 0, 5, 1);
- e = m.a;
- }
- if (m.a >= e) {
- d.c[d.c.length] = h;
- h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(BD(Ut(h.a, h.a.b - 2), 8).b - m.b)));
- }
- }
- }
- }
- }
- if (d.c.length != 0 && f2 > b.o.a / 2 && g > b.o.b / 2) {
- n = new H0b();
- F0b(n, b);
- G0b(n, (Ucd(), Acd));
- n.n.a = b.o.a / 2;
- r = new H0b();
- F0b(r, b);
- G0b(r, Rcd);
- r.n.a = b.o.a / 2;
- r.n.b = b.o.b;
- for (i3 = new olb(d); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 17);
- if (c2) {
- j = BD(Lsb(h.a), 8);
- q = h.a.b == 0 ? A0b(h.d) : BD(Hsb(h.a), 8);
- q.b >= j.b ? QZb(h, r) : QZb(h, n);
- } else {
- j = BD(Msb(h.a), 8);
- q = h.a.b == 0 ? A0b(h.c) : BD(Isb(h.a), 8);
- q.b >= j.b ? RZb(h, r) : RZb(h, n);
- }
- l = BD(vNb(h, (Nyc(), jxc)), 74);
- !!l && ze(l, j, true);
- }
- b.n.a = e - b.o.a / 2;
- }
- }
- function erd(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2;
- D3 = null;
- G = b;
- F = Rqd(a, dtd(c2), G);
- Lkd(F, _pd(G, Vte));
- H2 = BD(oo(a.g, Vpd(aC(G, Cte))), 33);
- m = aC(G, "sourcePort");
- d = null;
- !!m && (d = Vpd(m));
- I = BD(oo(a.j, d), 118);
- if (!H2) {
- h = Wpd(G);
- o2 = "An edge must have a source node (edge id: '" + h;
- p = o2 + $te;
- throw vbb(new cqd(p));
- }
- if (!!I && !Hb(mpd(I), H2)) {
- i3 = _pd(G, Vte);
- q = "The source port of an edge must be a port of the edge's source node (edge id: '" + i3;
- r = q + $te;
- throw vbb(new cqd(r));
- }
- B = (!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b);
- f2 = null;
- I ? f2 = I : f2 = H2;
- wtd(B, f2);
- J = BD(oo(a.g, Vpd(aC(G, bue))), 33);
- n = aC(G, "targetPort");
- e = null;
- !!n && (e = Vpd(n));
- K2 = BD(oo(a.j, e), 118);
- if (!J) {
- l = Wpd(G);
- s = "An edge must have a target node (edge id: '" + l;
- t4 = s + $te;
- throw vbb(new cqd(t4));
- }
- if (!!K2 && !Hb(mpd(K2), J)) {
- j = _pd(G, Vte);
- u2 = "The target port of an edge must be a port of the edge's target node (edge id: '" + j;
- v = u2 + $te;
- throw vbb(new cqd(v));
- }
- C = (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c);
- g = null;
- K2 ? g = K2 : g = J;
- wtd(C, g);
- if ((!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b).i == 0 || (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c).i == 0) {
- k = _pd(G, Vte);
- w2 = Zte + k;
- A = w2 + $te;
- throw vbb(new cqd(A));
- }
- grd(G, F);
- frd(G, F);
- D3 = crd(a, G, F);
- return D3;
- }
- function DXb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
- l = FXb(zXb(a, (Ucd(), Fcd)), b);
- o2 = EXb(zXb(a, Gcd), b);
- u2 = EXb(zXb(a, Ocd), b);
- B = GXb(zXb(a, Qcd), b);
- m = GXb(zXb(a, Bcd), b);
- s = EXb(zXb(a, Ncd), b);
- p = EXb(zXb(a, Hcd), b);
- w2 = EXb(zXb(a, Pcd), b);
- v = EXb(zXb(a, Ccd), b);
- C = GXb(zXb(a, Ecd), b);
- r = EXb(zXb(a, Lcd), b);
- t4 = EXb(zXb(a, Kcd), b);
- A = EXb(zXb(a, Dcd), b);
- D3 = GXb(zXb(a, Mcd), b);
- n = GXb(zXb(a, Icd), b);
- q = EXb(zXb(a, Jcd), b);
- c2 = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.a, B.a, w2.a, D3.a]));
- d = w6c(OC(GC(UD, 1), Vje, 25, 15, [o2.a, l.a, u2.a, q.a]));
- e = r.a;
- f2 = w6c(OC(GC(UD, 1), Vje, 25, 15, [p.a, m.a, v.a, n.a]));
- j = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.b, o2.b, p.b, t4.b]));
- i3 = w6c(OC(GC(UD, 1), Vje, 25, 15, [B.b, l.b, m.b, q.b]));
- k = C.b;
- h = w6c(OC(GC(UD, 1), Vje, 25, 15, [w2.b, u2.b, v.b, A.b]));
- vXb(zXb(a, Fcd), c2 + e, j + k);
- vXb(zXb(a, Jcd), c2 + e, j + k);
- vXb(zXb(a, Gcd), c2 + e, 0);
- vXb(zXb(a, Ocd), c2 + e, j + k + i3);
- vXb(zXb(a, Qcd), 0, j + k);
- vXb(zXb(a, Bcd), c2 + e + d, j + k);
- vXb(zXb(a, Hcd), c2 + e + d, 0);
- vXb(zXb(a, Pcd), 0, j + k + i3);
- vXb(zXb(a, Ccd), c2 + e + d, j + k + i3);
- vXb(zXb(a, Ecd), 0, j);
- vXb(zXb(a, Lcd), c2, 0);
- vXb(zXb(a, Dcd), 0, j + k + i3);
- vXb(zXb(a, Icd), c2 + e + d, 0);
- g = new d7c();
- g.a = w6c(OC(GC(UD, 1), Vje, 25, 15, [c2 + d + e + f2, C.a, t4.a, A.a]));
- g.b = w6c(OC(GC(UD, 1), Vje, 25, 15, [j + i3 + k + h, r.b, D3.b, n.b]));
- return g;
- }
- function Ngc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- p = new Rkb();
- for (m = new olb(a.d.b); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 29);
- for (o2 = new olb(l.a); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 10);
- e = BD(Ohb(a.f, n), 57);
- for (i3 = new Sr(ur(U_b(n).a.Kc(), new Sq())); Qr(i3); ) {
- g = BD(Rr(i3), 17);
- d = Jsb(g.a, 0);
- j = true;
- k = null;
- if (d.b != d.d.c) {
- b = BD(Xsb(d), 8);
- c2 = null;
- if (g.c.j == (Ucd(), Acd)) {
- q = new hic(b, new f7c(b.a, e.d.d), e, g);
- q.f.a = true;
- q.a = g.c;
- p.c[p.c.length] = q;
- }
- if (g.c.j == Rcd) {
- q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g);
- q.f.d = true;
- q.a = g.c;
- p.c[p.c.length] = q;
- }
- while (d.b != d.d.c) {
- c2 = BD(Xsb(d), 8);
- if (!ADb(b.b, c2.b)) {
- k = new hic(b, c2, null, g);
- p.c[p.c.length] = k;
- if (j) {
- j = false;
- if (c2.b < e.d.d) {
- k.f.a = true;
- } else if (c2.b > e.d.d + e.d.a) {
- k.f.d = true;
- } else {
- k.f.d = true;
- k.f.a = true;
- }
- }
- }
- d.b != d.d.c && (b = c2);
- }
- if (k) {
- f2 = BD(Ohb(a.f, g.d.i), 57);
- if (b.b < f2.d.d) {
- k.f.a = true;
- } else if (b.b > f2.d.d + f2.d.a) {
- k.f.d = true;
- } else {
- k.f.d = true;
- k.f.a = true;
- }
- }
- }
- }
- for (h = new Sr(ur(R_b(n).a.Kc(), new Sq())); Qr(h); ) {
- g = BD(Rr(h), 17);
- if (g.a.b != 0) {
- b = BD(Isb(g.a), 8);
- if (g.d.j == (Ucd(), Acd)) {
- q = new hic(b, new f7c(b.a, e.d.d), e, g);
- q.f.a = true;
- q.a = g.d;
- p.c[p.c.length] = q;
- }
- if (g.d.j == Rcd) {
- q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g);
- q.f.d = true;
- q.a = g.d;
- p.c[p.c.length] = q;
- }
- }
- }
- }
- }
- return p;
- }
- function WJc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- Odd(c2, "Network simplex node placement", 1);
- a.e = b;
- a.n = BD(vNb(b, (wtc(), otc)), 304);
- VJc(a);
- HJc(a);
- MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new KKc()), new MKc(a));
- MAb(JAb(LAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new zLc()), new BLc()), new DLc()), new FLc()), new IKc(a));
- if (Ccb(DD(vNb(a.e, (Nyc(), Axc))))) {
- g = Udd(c2, 1);
- Odd(g, "Straight Edges Pre-Processing", 1);
- UJc(a);
- Qdd(g);
- }
- JFb(a.f);
- f2 = BD(vNb(b, Ayc), 19).a * a.f.a.c.length;
- uGb(HGb(IGb(LGb(a.f), f2), false), Udd(c2, 1));
- if (a.d.a.gc() != 0) {
- g = Udd(c2, 1);
- Odd(g, "Flexible Where Space Processing", 1);
- h = BD(Btb(RAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new OKc()), new iKc())), 19).a;
- i3 = BD(Btb(QAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new QKc()), new mKc())), 19).a;
- j = i3 - h;
- k = nGb(new pGb(), a.f);
- l = nGb(new pGb(), a.f);
- AFb(DFb(CFb(BFb(EFb(new FFb(), 2e4), j), k), l));
- MAb(JAb(JAb(Plb(a.i), new SKc()), new UKc()), new WKc(h, k, j, l));
- for (e = a.d.a.ec().Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 213);
- d.g = 1;
- }
- uGb(HGb(IGb(LGb(a.f), f2), false), Udd(g, 1));
- Qdd(g);
- }
- if (Ccb(DD(vNb(b, Axc)))) {
- g = Udd(c2, 1);
- Odd(g, "Straight Edges Post-Processing", 1);
- TJc(a);
- Qdd(g);
- }
- GJc(a);
- a.e = null;
- a.f = null;
- a.i = null;
- a.c = null;
- Uhb(a.k);
- a.j = null;
- a.a = null;
- a.o = null;
- a.d.a.$b();
- Qdd(c2);
- }
- function lMc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
- for (h = new olb(a.a.b); h.a < h.c.c.length; ) {
- f2 = BD(mlb(h), 29);
- for (t4 = new olb(f2.a); t4.a < t4.c.c.length; ) {
- s = BD(mlb(t4), 10);
- b.g[s.p] = s;
- b.a[s.p] = s;
- b.d[s.p] = 0;
- }
- }
- i3 = a.a.b;
- b.c == (YLc(), WLc) && (i3 = JD(i3, 152) ? km(BD(i3, 152)) : JD(i3, 131) ? BD(i3, 131).a : JD(i3, 54) ? new ov(i3) : new dv(i3));
- for (g = i3.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 29);
- n = -1;
- m = f2.a;
- if (b.o == (eMc(), dMc)) {
- n = Ohe;
- m = JD(m, 152) ? km(BD(m, 152)) : JD(m, 131) ? BD(m, 131).a : JD(m, 54) ? new ov(m) : new dv(m);
- }
- for (v = m.Kc(); v.Ob(); ) {
- u2 = BD(v.Pb(), 10);
- l = null;
- b.c == WLc ? l = BD(Ikb(a.b.f, u2.p), 15) : l = BD(Ikb(a.b.b, u2.p), 15);
- if (l.gc() > 0) {
- d = l.gc();
- j = QD($wnd.Math.floor((d + 1) / 2)) - 1;
- e = QD($wnd.Math.ceil((d + 1) / 2)) - 1;
- if (b.o == dMc) {
- for (k = e; k >= j; k--) {
- if (b.a[u2.p] == u2) {
- p = BD(l.Xb(k), 46);
- o2 = BD(p.a, 10);
- if (!Rqb(c2, p.b) && n > a.b.e[o2.p]) {
- b.a[o2.p] = u2;
- b.g[u2.p] = b.g[o2.p];
- b.a[u2.p] = b.g[u2.p];
- b.f[b.g[u2.p].p] = (Bcb(), Ccb(b.f[b.g[u2.p].p]) & u2.k == (j0b(), g0b) ? true : false);
- n = a.b.e[o2.p];
- }
- }
- }
- } else {
- for (k = j; k <= e; k++) {
- if (b.a[u2.p] == u2) {
- r = BD(l.Xb(k), 46);
- q = BD(r.a, 10);
- if (!Rqb(c2, r.b) && n < a.b.e[q.p]) {
- b.a[q.p] = u2;
- b.g[u2.p] = b.g[q.p];
- b.a[u2.p] = b.g[u2.p];
- b.f[b.g[u2.p].p] = (Bcb(), Ccb(b.f[b.g[u2.p].p]) & u2.k == (j0b(), g0b) ? true : false);
- n = a.b.e[q.p];
- }
- }
- }
- }
- }
- }
- }
+ }
+ var cut = this.spawn(minCutEdgeIndexes.map(function(e4) {
+ return edges5[e4[0]];
+ }));
+ var partition1 = this.spawn();
+ var partition2 = this.spawn();
+ var witnessNodePartition = minCutNodeMap[0];
+ for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {
+ var partitionId = minCutNodeMap[_i5];
+ var node2 = nodes6[_i5];
+ if (partitionId === witnessNodePartition) {
+ partition1.merge(node2);
+ } else {
+ partition2.merge(node2);
}
- function Thd() {
- Thd = ccb;
- Hhd();
- Shd = Ghd.a;
- BD(qud(ZKd(Ghd.a), 0), 18);
- Mhd = Ghd.f;
- BD(qud(ZKd(Ghd.f), 0), 18);
- BD(qud(ZKd(Ghd.f), 1), 34);
- Rhd = Ghd.n;
- BD(qud(ZKd(Ghd.n), 0), 34);
- BD(qud(ZKd(Ghd.n), 1), 34);
- BD(qud(ZKd(Ghd.n), 2), 34);
- BD(qud(ZKd(Ghd.n), 3), 34);
- Nhd = Ghd.g;
- BD(qud(ZKd(Ghd.g), 0), 18);
- BD(qud(ZKd(Ghd.g), 1), 34);
- Jhd = Ghd.c;
- BD(qud(ZKd(Ghd.c), 0), 18);
- BD(qud(ZKd(Ghd.c), 1), 18);
- Ohd = Ghd.i;
- BD(qud(ZKd(Ghd.i), 0), 18);
- BD(qud(ZKd(Ghd.i), 1), 18);
- BD(qud(ZKd(Ghd.i), 2), 18);
- BD(qud(ZKd(Ghd.i), 3), 18);
- BD(qud(ZKd(Ghd.i), 4), 34);
- Phd = Ghd.j;
- BD(qud(ZKd(Ghd.j), 0), 18);
- Khd = Ghd.d;
- BD(qud(ZKd(Ghd.d), 0), 18);
- BD(qud(ZKd(Ghd.d), 1), 18);
- BD(qud(ZKd(Ghd.d), 2), 18);
- BD(qud(ZKd(Ghd.d), 3), 18);
- BD(qud(ZKd(Ghd.d), 4), 34);
- BD(qud(ZKd(Ghd.d), 5), 34);
- BD(qud(ZKd(Ghd.d), 6), 34);
- BD(qud(ZKd(Ghd.d), 7), 34);
- Ihd = Ghd.b;
- BD(qud(ZKd(Ghd.b), 0), 34);
- BD(qud(ZKd(Ghd.b), 1), 34);
- Lhd = Ghd.e;
- BD(qud(ZKd(Ghd.e), 0), 34);
- BD(qud(ZKd(Ghd.e), 1), 34);
- BD(qud(ZKd(Ghd.e), 2), 34);
- BD(qud(ZKd(Ghd.e), 3), 34);
- BD(qud(ZKd(Ghd.e), 4), 18);
- BD(qud(ZKd(Ghd.e), 5), 18);
- BD(qud(ZKd(Ghd.e), 6), 18);
- BD(qud(ZKd(Ghd.e), 7), 18);
- BD(qud(ZKd(Ghd.e), 8), 18);
- BD(qud(ZKd(Ghd.e), 9), 18);
- BD(qud(ZKd(Ghd.e), 10), 34);
- Qhd = Ghd.k;
- BD(qud(ZKd(Ghd.k), 0), 34);
- BD(qud(ZKd(Ghd.k), 1), 34);
- }
- function wQc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
- C = new Psb();
- w2 = new Psb();
- q = -1;
- for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
- g = BD(mlb(i3), 128);
- g.s = q--;
- k = 0;
- t4 = 0;
- for (f2 = new olb(g.t); f2.a < f2.c.c.length; ) {
- d = BD(mlb(f2), 268);
- t4 += d.c;
- }
- for (e = new olb(g.i); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 268);
- k += d.c;
- }
- g.n = k;
- g.u = t4;
- t4 == 0 ? (Gsb(w2, g, w2.c.b, w2.c), true) : k == 0 && (Gsb(C, g, C.c.b, C.c), true);
- }
- F = Gx(a);
- l = a.c.length;
- p = l + 1;
- r = l - 1;
- n = new Rkb();
- while (F.a.gc() != 0) {
- while (w2.b != 0) {
- v = (sCb(w2.b != 0), BD(Nsb(w2, w2.a.a), 128));
- F.a.Bc(v) != null;
- v.s = r--;
- AQc(v, C, w2);
- }
- while (C.b != 0) {
- A = (sCb(C.b != 0), BD(Nsb(C, C.a.a), 128));
- F.a.Bc(A) != null;
- A.s = p++;
- AQc(A, C, w2);
- }
- o2 = Rie;
- for (j = F.a.ec().Kc(); j.Ob(); ) {
- g = BD(j.Pb(), 128);
- s = g.u - g.n;
- if (s >= o2) {
- if (s > o2) {
- n.c = KC(SI, Uhe, 1, 0, 5, 1);
- o2 = s;
- }
- n.c[n.c.length] = g;
- }
- }
- if (n.c.length != 0) {
- m = BD(Ikb(n, Bub(b, n.c.length)), 128);
- F.a.Bc(m) != null;
- m.s = p++;
- AQc(m, C, w2);
- n.c = KC(SI, Uhe, 1, 0, 5, 1);
- }
- }
- u2 = a.c.length + 1;
- for (h = new olb(a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 128);
- g.s < l && (g.s += u2);
- }
- for (B = new olb(a); B.a < B.c.c.length; ) {
- A = BD(mlb(B), 128);
- c2 = new Bib(A.t, 0);
- while (c2.b < c2.d.gc()) {
- d = (sCb(c2.b < c2.d.gc()), BD(c2.d.Xb(c2.c = c2.b++), 268));
- D3 = d.b;
- if (A.s > D3.s) {
- uib(c2);
- Lkb(D3.i, d);
- if (d.c > 0) {
- d.a = D3;
- Ekb(D3.t, d);
- d.b = A;
- Ekb(A.i, d);
- }
- }
+ }
+ var constructComponent = /* @__PURE__ */ __name(function constructComponent2(subset) {
+ var component2 = _this.spawn();
+ subset.forEach(function(node3) {
+ component2.merge(node3);
+ node3.connectedEdges().forEach(function(edge) {
+ if (_this.contains(edge) && !cut.contains(edge)) {
+ component2.merge(edge);
}
- }
+ });
+ });
+ return component2;
+ }, "constructComponent");
+ var components3 = [constructComponent(partition1), constructComponent(partition2)];
+ var ret = {
+ cut,
+ components: components3,
+ // n.b. partitions are included to be compatible with the old api spec
+ // (could be removed in a future major version)
+ partition1,
+ partition2
+ };
+ return ret;
+ }, "kargerStein")
+ };
+ copyPosition = /* @__PURE__ */ __name(function copyPosition2(p3) {
+ return {
+ x: p3.x,
+ y: p3.y
+ };
+ }, "copyPosition");
+ modelToRenderedPosition = /* @__PURE__ */ __name(function modelToRenderedPosition2(p3, zoom2, pan2) {
+ return {
+ x: p3.x * zoom2 + pan2.x,
+ y: p3.y * zoom2 + pan2.y
+ };
+ }, "modelToRenderedPosition");
+ renderedToModelPosition = /* @__PURE__ */ __name(function renderedToModelPosition2(p3, zoom2, pan2) {
+ return {
+ x: (p3.x - pan2.x) / zoom2,
+ y: (p3.y - pan2.y) / zoom2
+ };
+ }, "renderedToModelPosition");
+ array2point = /* @__PURE__ */ __name(function array2point2(arr) {
+ return {
+ x: arr[0],
+ y: arr[1]
+ };
+ }, "array2point");
+ min5 = /* @__PURE__ */ __name(function min6(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var min9 = Infinity;
+ for (var i2 = begin; i2 < end2; i2++) {
+ var val = arr[i2];
+ if (isFinite(val)) {
+ min9 = Math.min(val, min9);
+ }
+ }
+ return min9;
+ }, "min");
+ max5 = /* @__PURE__ */ __name(function max6(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var max10 = -Infinity;
+ for (var i2 = begin; i2 < end2; i2++) {
+ var val = arr[i2];
+ if (isFinite(val)) {
+ max10 = Math.max(val, max10);
+ }
+ }
+ return max10;
+ }, "max");
+ mean = /* @__PURE__ */ __name(function mean2(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var total = 0;
+ var n2 = 0;
+ for (var i2 = begin; i2 < end2; i2++) {
+ var val = arr[i2];
+ if (isFinite(val)) {
+ total += val;
+ n2++;
+ }
+ }
+ return total / n2;
+ }, "mean");
+ median = /* @__PURE__ */ __name(function median2(arr) {
+ var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
+ var copy6 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var sort3 = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var includeHoles = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ if (copy6) {
+ arr = arr.slice(begin, end2);
+ } else {
+ if (end2 < arr.length) {
+ arr.splice(end2, arr.length - end2);
+ }
+ if (begin > 0) {
+ arr.splice(0, begin);
+ }
+ }
+ var off = 0;
+ for (var i2 = arr.length - 1; i2 >= 0; i2--) {
+ var v3 = arr[i2];
+ if (includeHoles) {
+ if (!isFinite(v3)) {
+ arr[i2] = -Infinity;
+ off++;
}
- function qde(a) {
- var b, c2, d, e, f2;
- b = a.c;
- switch (b) {
- case 11:
- return a.Ml();
- case 12:
- return a.Ol();
- case 14:
- return a.Ql();
- case 15:
- return a.Tl();
- case 16:
- return a.Rl();
- case 17:
- return a.Ul();
- case 21:
- nde(a);
- return wfe(), wfe(), ffe;
- case 10:
- switch (a.a) {
- case 65:
- return a.yl();
- case 90:
- return a.Dl();
- case 122:
- return a.Kl();
- case 98:
- return a.El();
- case 66:
- return a.zl();
- case 60:
- return a.Jl();
- case 62:
- return a.Hl();
- }
- }
- f2 = pde(a);
- b = a.c;
- switch (b) {
- case 3:
- return a.Zl(f2);
- case 4:
- return a.Xl(f2);
- case 5:
- return a.Yl(f2);
- case 0:
- if (a.a == 123 && a.d < a.j) {
- e = a.d;
- d = 0;
- c2 = -1;
- if ((b = bfb(a.i, e++)) >= 48 && b <= 57) {
- d = b - 48;
- while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) {
- d = d * 10 + b - 48;
- if (d < 0)
- throw vbb(new mde(tvd((h0d(), bve))));
- }
- } else {
- throw vbb(new mde(tvd((h0d(), Zue))));
- }
- c2 = d;
- if (b == 44) {
- if (e >= a.j) {
- throw vbb(new mde(tvd((h0d(), _ue))));
- } else if ((b = bfb(a.i, e++)) >= 48 && b <= 57) {
- c2 = b - 48;
- while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) {
- c2 = c2 * 10 + b - 48;
- if (c2 < 0)
- throw vbb(new mde(tvd((h0d(), bve))));
- }
- if (d > c2)
- throw vbb(new mde(tvd((h0d(), ave))));
- } else {
- c2 = -1;
- }
- }
- if (b != 125)
- throw vbb(new mde(tvd((h0d(), $ue))));
- if (a.sl(e)) {
- f2 = (wfe(), wfe(), new lge(9, f2));
- a.d = e + 1;
- } else {
- f2 = (wfe(), wfe(), new lge(3, f2));
- a.d = e;
- }
- f2.dm(d);
- f2.cm(c2);
- nde(a);
- }
- }
- return f2;
- }
- function $bc(a, b, c2, d, e) {
- var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
- p = new Skb(b.b);
- u2 = new Skb(b.b);
- m = new Skb(b.b);
- B = new Skb(b.b);
- q = new Skb(b.b);
- for (A = Jsb(b, 0); A.b != A.d.c; ) {
- v = BD(Xsb(A), 11);
- for (h = new olb(v.g); h.a < h.c.c.length; ) {
- f2 = BD(mlb(h), 17);
- if (f2.c.i == f2.d.i) {
- if (v.j == f2.d.j) {
- B.c[B.c.length] = f2;
- continue;
- } else if (v.j == (Ucd(), Acd) && f2.d.j == Rcd) {
- q.c[q.c.length] = f2;
- continue;
- }
- }
- }
- }
- for (i3 = new olb(q); i3.a < i3.c.c.length; ) {
- f2 = BD(mlb(i3), 17);
- _bc(a, f2, c2, d, (Ucd(), zcd));
- }
- for (g = new olb(B); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 17);
- C = new b0b(a);
- __b(C, (j0b(), i0b));
- yNb(C, (Nyc(), Vxc), (dcd(), $bd));
- yNb(C, (wtc(), $sc), f2);
- D3 = new H0b();
- yNb(D3, $sc, f2.d);
- G0b(D3, (Ucd(), Tcd));
- F0b(D3, C);
- F = new H0b();
- yNb(F, $sc, f2.c);
- G0b(F, zcd);
- F0b(F, C);
- yNb(f2.c, gtc, C);
- yNb(f2.d, gtc, C);
- QZb(f2, null);
- RZb(f2, null);
- c2.c[c2.c.length] = C;
- yNb(C, ysc, meb(2));
- }
- for (w2 = Jsb(b, 0); w2.b != w2.d.c; ) {
- v = BD(Xsb(w2), 11);
- j = v.e.c.length > 0;
- r = v.g.c.length > 0;
- j && r ? (m.c[m.c.length] = v, true) : j ? (p.c[p.c.length] = v, true) : r && (u2.c[u2.c.length] = v, true);
- }
- for (o2 = new olb(p); o2.a < o2.c.c.length; ) {
- n = BD(mlb(o2), 11);
- Ekb(e, Zbc(a, n, null, c2));
- }
- for (t4 = new olb(u2); t4.a < t4.c.c.length; ) {
- s = BD(mlb(t4), 11);
- Ekb(e, Zbc(a, null, s, c2));
- }
- for (l = new olb(m); l.a < l.c.c.length; ) {
- k = BD(mlb(l), 11);
- Ekb(e, Zbc(a, k, k, c2));
- }
- }
- function NCb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
- s = new f7c(Pje, Pje);
- b = new f7c(Qje, Qje);
- for (B = new olb(a); B.a < B.c.c.length; ) {
- A = BD(mlb(B), 8);
- s.a = $wnd.Math.min(s.a, A.a);
- s.b = $wnd.Math.min(s.b, A.b);
- b.a = $wnd.Math.max(b.a, A.a);
- b.b = $wnd.Math.max(b.b, A.b);
- }
- m = new f7c(b.a - s.a, b.b - s.b);
- j = new f7c(s.a - 50, s.b - m.a - 50);
- k = new f7c(s.a - 50, b.b + m.a + 50);
- l = new f7c(b.a + m.b / 2 + 50, s.b + m.b / 2);
- n = new eDb(j, k, l);
- w2 = new Tqb();
- f2 = new Rkb();
- c2 = new Rkb();
- w2.a.zc(n, w2);
- for (D3 = new olb(a); D3.a < D3.c.c.length; ) {
- C = BD(mlb(D3), 8);
- f2.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (v = w2.a.ec().Kc(); v.Ob(); ) {
- t4 = BD(v.Pb(), 308);
- d = t4.d;
- S6c(d, t4.a);
- Jy(S6c(t4.d, C), S6c(t4.d, t4.a)) < 0 && (f2.c[f2.c.length] = t4, true);
- }
- c2.c = KC(SI, Uhe, 1, 0, 5, 1);
- for (u2 = new olb(f2); u2.a < u2.c.c.length; ) {
- t4 = BD(mlb(u2), 308);
- for (q = new olb(t4.e); q.a < q.c.c.length; ) {
- o2 = BD(mlb(q), 168);
- g = true;
- for (i3 = new olb(f2); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 308);
- h != t4 && (wtb(o2, Ikb(h.e, 0)) || wtb(o2, Ikb(h.e, 1)) || wtb(o2, Ikb(h.e, 2))) && (g = false);
- }
- g && (c2.c[c2.c.length] = o2, true);
- }
- }
- Ve(w2, f2);
- reb(w2, new OCb());
- for (p = new olb(c2); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 168);
- Qqb(w2, new eDb(C, o2.a, o2.b));
- }
- }
- r = new Tqb();
- reb(w2, new QCb(r));
- e = r.a.ec().Kc();
- while (e.Ob()) {
- o2 = BD(e.Pb(), 168);
- (dDb(n, o2.a) || dDb(n, o2.b)) && e.Qb();
- }
- reb(r, new SCb());
- return r;
- }
- function _Tb(a) {
- var b, c2, d, e, f2;
- c2 = BD(vNb(a, (wtc(), Ksc)), 21);
- b = k3c(WTb);
- e = BD(vNb(a, (Nyc(), axc)), 334);
- e == (hbd(), ebd) && d3c(b, XTb);
- Ccb(DD(vNb(a, $wc))) ? e3c(b, (qUb(), lUb), (S8b(), I8b)) : e3c(b, (qUb(), nUb), (S8b(), I8b));
- vNb(a, (g6c(), f6c)) != null && d3c(b, YTb);
- (Ccb(DD(vNb(a, hxc))) || Ccb(DD(vNb(a, _wc)))) && c3c(b, (qUb(), pUb), (S8b(), W7b));
- switch (BD(vNb(a, Lwc), 103).g) {
- case 2:
- case 3:
- case 4:
- c3c(e3c(b, (qUb(), lUb), (S8b(), Y7b)), pUb, X7b);
- }
- c2.Hc((Orc(), Frc)) && c3c(e3c(e3c(b, (qUb(), lUb), (S8b(), V7b)), oUb, T7b), pUb, U7b);
- PD(vNb(a, rxc)) !== PD((kAc(), iAc)) && e3c(b, (qUb(), nUb), (S8b(), A8b));
- if (c2.Hc(Mrc)) {
- e3c(b, (qUb(), lUb), (S8b(), G8b));
- e3c(b, mUb, E8b);
- e3c(b, nUb, F8b);
- }
- PD(vNb(a, swc)) !== PD((yrc(), wrc)) && PD(vNb(a, Swc)) !== PD((Aad(), xad)) && c3c(b, (qUb(), pUb), (S8b(), j8b));
- Ccb(DD(vNb(a, cxc))) && e3c(b, (qUb(), nUb), (S8b(), i8b));
- Ccb(DD(vNb(a, Hwc))) && e3c(b, (qUb(), nUb), (S8b(), O8b));
- if (cUb(a)) {
- PD(vNb(a, axc)) === PD(ebd) ? d = BD(vNb(a, Cwc), 292) : d = BD(vNb(a, Dwc), 292);
- f2 = d == (Xrc(), Vrc) ? (S8b(), D8b) : (S8b(), R8b);
- e3c(b, (qUb(), oUb), f2);
- }
- switch (BD(vNb(a, Kyc), 377).g) {
- case 1:
- e3c(b, (qUb(), oUb), (S8b(), P8b));
- break;
- case 2:
- c3c(e3c(e3c(b, (qUb(), nUb), (S8b(), P7b)), oUb, Q7b), pUb, R7b);
- }
- PD(vNb(a, ywc)) !== PD((tAc(), rAc)) && e3c(b, (qUb(), nUb), (S8b(), Q8b));
- return b;
- }
- function mZc(a) {
- r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Kre), "ELK Rectangle Packing"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."), new pZc())));
- p4c(a, Kre, _le, 1.3);
- p4c(a, Kre, Jre, Ksd(VYc));
- p4c(a, Kre, ame, gZc);
- p4c(a, Kre, wme, 15);
- p4c(a, Kre, lqe, Ksd(SYc));
- p4c(a, Kre, Fme, Ksd(_Yc));
- p4c(a, Kre, Tme, Ksd(aZc));
- p4c(a, Kre, Eme, Ksd(bZc));
- p4c(a, Kre, Gme, Ksd($Yc));
- p4c(a, Kre, Dme, Ksd(cZc));
- p4c(a, Kre, Hme, Ksd(hZc));
- p4c(a, Kre, Bre, Ksd(eZc));
- p4c(a, Kre, Cre, Ksd(ZYc));
- p4c(a, Kre, Fre, Ksd(dZc));
- p4c(a, Kre, Gre, Ksd(iZc));
- p4c(a, Kre, Hre, Ksd(WYc));
- p4c(a, Kre, Ame, Ksd(XYc));
- p4c(a, Kre, xqe, Ksd(YYc));
- p4c(a, Kre, Ere, Ksd(UYc));
- p4c(a, Kre, Dre, Ksd(TYc));
- p4c(a, Kre, Ire, Ksd(kZc));
- }
- function Wmd(b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- if (d == null) {
- return null;
- }
- if (b.a != c2.Aj()) {
- throw vbb(new Wdb(tte + c2.ne() + ute));
- }
- if (JD(c2, 457)) {
- r = _Pd(BD(c2, 671), d);
- if (!r) {
- throw vbb(new Wdb(vte + d + "' is not a valid enumerator of '" + c2.ne() + "'"));
- }
- return r;
- }
- switch (o1d((O6d(), M6d), c2).cl()) {
- case 2: {
- d = Qge(d, false);
- break;
- }
- case 3: {
- d = Qge(d, true);
- break;
- }
- }
- e = o1d(M6d, c2).$k();
- if (e) {
- return e.Aj().Nh().Kh(e, d);
- }
- n = o1d(M6d, c2).al();
- if (n) {
- r = new Rkb();
- for (k = Zmd(d), l = 0, m = k.length; l < m; ++l) {
- j = k[l];
- Ekb(r, n.Aj().Nh().Kh(n, j));
- }
- return r;
- }
- q = o1d(M6d, c2).bl();
- if (!q.dc()) {
- for (p = q.Kc(); p.Ob(); ) {
- o2 = BD(p.Pb(), 148);
- try {
- r = o2.Aj().Nh().Kh(o2, d);
- if (r != null) {
- return r;
- }
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 60))
- throw vbb(a);
- }
- }
- throw vbb(new Wdb(vte + d + "' does not match any member types of the union datatype '" + c2.ne() + "'"));
- }
- BD(c2, 834).Fj();
- f2 = r6d(c2.Bj());
- if (!f2)
- return null;
- if (f2 == yI) {
- h = 0;
- try {
- h = Icb(d, Rie, Ohe) & aje;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- g = rfb(d);
- h = g[0];
- } else
- throw vbb(a);
- }
- return bdb(h);
- }
- if (f2 == $J) {
- for (i3 = 0; i3 < Pmd.length; ++i3) {
- try {
- return DQd(Pmd[i3], d);
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 32))
- throw vbb(a);
- }
- }
- throw vbb(new Wdb(vte + d + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"));
- }
- throw vbb(new Wdb(vte + d + "' is invalid. "));
- }
- function ngb(a, b) {
- var c2, d, e, f2, g, h, i3, j;
- c2 = 0;
- g = 0;
- f2 = b.length;
- h = null;
- j = new Vfb();
- if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 43)) {
- ++g;
- ++c2;
- if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 43 || (BCb(g, b.length), b.charCodeAt(g) == 45))) {
- throw vbb(new Oeb(Oje + b + '"'));
- }
- }
- while (g < f2 && (BCb(g, b.length), b.charCodeAt(g) != 46) && (BCb(g, b.length), b.charCodeAt(g) != 101) && (BCb(g, b.length), b.charCodeAt(g) != 69)) {
- ++g;
- }
- j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c2, g);
- if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 46)) {
- ++g;
- c2 = g;
- while (g < f2 && (BCb(g, b.length), b.charCodeAt(g) != 101) && (BCb(g, b.length), b.charCodeAt(g) != 69)) {
- ++g;
- }
- a.e = g - c2;
- j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c2, g);
- } else {
- a.e = 0;
- }
- if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 101 || (BCb(g, b.length), b.charCodeAt(g) == 69))) {
- ++g;
- c2 = g;
- if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 43)) {
- ++g;
- g < f2 && (BCb(g, b.length), b.charCodeAt(g) != 45) && ++c2;
- }
- h = b.substr(c2, f2 - c2);
- a.e = a.e - Icb(h, Rie, Ohe);
- if (a.e != QD(a.e)) {
- throw vbb(new Oeb("Scale out of range."));
- }
- }
- i3 = j.a;
- if (i3.length < 16) {
- a.f = (kgb == null && (kgb = new RegExp("^[+-]?\\d*$", "i")), kgb.test(i3) ? parseInt(i3, 10) : NaN);
- if (isNaN(a.f)) {
- throw vbb(new Oeb(Oje + b + '"'));
- }
- a.a = ugb(a.f);
- } else {
- ogb(a, new Ygb(i3));
- }
- a.d = j.a.length;
- for (e = 0; e < j.a.length; ++e) {
- d = bfb(j.a, e);
- if (d != 45 && d != 48) {
- break;
- }
- --a.d;
- }
- a.d == 0 && (a.d = 1);
- }
- function xXb() {
- xXb = ccb;
- wXb = new Hp();
- Rc(wXb, (Ucd(), Fcd), Jcd);
- Rc(wXb, Qcd, Jcd);
- Rc(wXb, Qcd, Mcd);
- Rc(wXb, Bcd, Icd);
- Rc(wXb, Bcd, Jcd);
- Rc(wXb, Gcd, Jcd);
- Rc(wXb, Gcd, Kcd);
- Rc(wXb, Ocd, Dcd);
- Rc(wXb, Ocd, Jcd);
- Rc(wXb, Lcd, Ecd);
- Rc(wXb, Lcd, Jcd);
- Rc(wXb, Lcd, Kcd);
- Rc(wXb, Lcd, Dcd);
- Rc(wXb, Ecd, Lcd);
- Rc(wXb, Ecd, Mcd);
- Rc(wXb, Ecd, Icd);
- Rc(wXb, Ecd, Jcd);
- Rc(wXb, Ncd, Ncd);
- Rc(wXb, Ncd, Kcd);
- Rc(wXb, Ncd, Mcd);
- Rc(wXb, Hcd, Hcd);
- Rc(wXb, Hcd, Kcd);
- Rc(wXb, Hcd, Icd);
- Rc(wXb, Pcd, Pcd);
- Rc(wXb, Pcd, Dcd);
- Rc(wXb, Pcd, Mcd);
- Rc(wXb, Ccd, Ccd);
- Rc(wXb, Ccd, Dcd);
- Rc(wXb, Ccd, Icd);
- Rc(wXb, Kcd, Gcd);
- Rc(wXb, Kcd, Lcd);
- Rc(wXb, Kcd, Ncd);
- Rc(wXb, Kcd, Hcd);
- Rc(wXb, Kcd, Jcd);
- Rc(wXb, Kcd, Kcd);
- Rc(wXb, Kcd, Mcd);
- Rc(wXb, Kcd, Icd);
- Rc(wXb, Dcd, Ocd);
- Rc(wXb, Dcd, Lcd);
- Rc(wXb, Dcd, Pcd);
- Rc(wXb, Dcd, Ccd);
- Rc(wXb, Dcd, Dcd);
- Rc(wXb, Dcd, Mcd);
- Rc(wXb, Dcd, Icd);
- Rc(wXb, Dcd, Jcd);
- Rc(wXb, Mcd, Qcd);
- Rc(wXb, Mcd, Ecd);
- Rc(wXb, Mcd, Ncd);
- Rc(wXb, Mcd, Pcd);
- Rc(wXb, Mcd, Kcd);
- Rc(wXb, Mcd, Dcd);
- Rc(wXb, Mcd, Mcd);
- Rc(wXb, Mcd, Jcd);
- Rc(wXb, Icd, Bcd);
- Rc(wXb, Icd, Ecd);
- Rc(wXb, Icd, Hcd);
- Rc(wXb, Icd, Ccd);
- Rc(wXb, Icd, Kcd);
- Rc(wXb, Icd, Dcd);
- Rc(wXb, Icd, Icd);
- Rc(wXb, Icd, Jcd);
- Rc(wXb, Jcd, Fcd);
- Rc(wXb, Jcd, Qcd);
- Rc(wXb, Jcd, Bcd);
- Rc(wXb, Jcd, Gcd);
- Rc(wXb, Jcd, Ocd);
- Rc(wXb, Jcd, Lcd);
- Rc(wXb, Jcd, Ecd);
- Rc(wXb, Jcd, Kcd);
- Rc(wXb, Jcd, Dcd);
- Rc(wXb, Jcd, Mcd);
- Rc(wXb, Jcd, Icd);
- Rc(wXb, Jcd, Jcd);
- }
- function YXb(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
- a.d = new f7c(Pje, Pje);
- a.c = new f7c(Qje, Qje);
- for (m = b.Kc(); m.Ob(); ) {
- k = BD(m.Pb(), 37);
- for (t4 = new olb(k.a); t4.a < t4.c.c.length; ) {
- s = BD(mlb(t4), 10);
- a.d.a = $wnd.Math.min(a.d.a, s.n.a - s.d.b);
- a.d.b = $wnd.Math.min(a.d.b, s.n.b - s.d.d);
- a.c.a = $wnd.Math.max(a.c.a, s.n.a + s.o.a + s.d.c);
- a.c.b = $wnd.Math.max(a.c.b, s.n.b + s.o.b + s.d.a);
- }
- }
- h = new nYb();
- for (l = b.Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 37);
- d = fYb(a, k);
- Ekb(h.a, d);
- d.a = d.a | !BD(vNb(d.c, (wtc(), Esc)), 21).dc();
- }
- a.b = (LUb(), B = new VUb(), B.f = new CUb(c2), B.b = BUb(B.f, h), B);
- PUb((o2 = a.b, new Zdd(), o2));
- a.e = new d7c();
- a.a = a.b.f.e;
- for (g = new olb(h.a); g.a < g.c.c.length; ) {
- e = BD(mlb(g), 841);
- u2 = QUb(a.b, e);
- g_b(e.c, u2.a, u2.b);
- for (q = new olb(e.c.a); q.a < q.c.c.length; ) {
- p = BD(mlb(q), 10);
- if (p.k == (j0b(), e0b)) {
- r = aYb(a, p.n, BD(vNb(p, (wtc(), Hsc)), 61));
- P6c(X6c(p.n), r);
- }
- }
- }
- for (f2 = new olb(h.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 841);
- for (j = new olb(lYb(e)); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 17);
- A = new t7c(i3.a);
- St(A, 0, A0b(i3.c));
- Dsb(A, A0b(i3.d));
- n = null;
- for (w2 = Jsb(A, 0); w2.b != w2.d.c; ) {
- v = BD(Xsb(w2), 8);
- if (!n) {
- n = v;
- continue;
- }
- if (Ky(n.a, v.a)) {
- a.e.a = $wnd.Math.min(a.e.a, n.a);
- a.a.a = $wnd.Math.max(a.a.a, n.a);
- } else if (Ky(n.b, v.b)) {
- a.e.b = $wnd.Math.min(a.e.b, n.b);
- a.a.b = $wnd.Math.max(a.a.b, n.b);
- }
- n = v;
- }
- }
- }
- V6c(a.e);
- P6c(a.a, a.e);
- }
- function wZd(a) {
- Bnd(a.b, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentTransient"]));
- Bnd(a.a, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedSourceURI"]));
- Bnd(a.o, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"]));
- Bnd(a.p, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedInstanceTypeName UniqueTypeParameterNames"]));
- Bnd(a.v, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueEnumeratorNames UniqueEnumeratorLiterals"]));
- Bnd(a.R, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedName"]));
- Bnd(a.T, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"]));
- Bnd(a.U, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"]));
- Bnd(a.W, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"]));
- Bnd(a.bb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidDefaultValueLiteral"]));
- Bnd(a.eb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidLowerBound ValidUpperBound ConsistentBounds ValidType"]));
- Bnd(a.H, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentType ConsistentBounds ConsistentArguments"]));
- }
- function B4b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
- if (b.dc()) {
- return;
- }
- e = new s7c();
- h = c2 ? c2 : BD(b.Xb(0), 17);
- o2 = h.c;
- hQc();
- m = o2.i.k;
- if (!(m == (j0b(), h0b) || m == i0b || m == e0b || m == d0b)) {
- throw vbb(new Wdb("The target node of the edge must be a normal node or a northSouthPort."));
- }
- Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])));
- if ((Ucd(), Lcd).Hc(o2.j)) {
- q = Edb(ED(vNb(o2, (wtc(), qtc))));
- l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a, q);
- Gsb(e, l, e.c.b, e.c);
- }
- k = null;
- d = false;
- i3 = b.Kc();
- while (i3.Ob()) {
- g = BD(i3.Pb(), 17);
- f2 = g.a;
- if (f2.b != 0) {
- if (d) {
- j = Y6c(P6c(k, (sCb(f2.b != 0), BD(f2.a.a.c, 8))), 0.5);
- Gsb(e, j, e.c.b, e.c);
- d = false;
- } else {
- d = true;
- }
- k = R6c((sCb(f2.b != 0), BD(f2.c.b.c, 8)));
- ye(e, f2);
- Osb(f2);
- }
- }
- p = h.d;
- if (Lcd.Hc(p.j)) {
- q = Edb(ED(vNb(p, (wtc(), qtc))));
- l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a])).a, q);
- Gsb(e, l, e.c.b, e.c);
- }
- Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a])));
- a.d == (tBc(), qBc) && (r = (sCb(e.b != 0), BD(e.a.a.c, 8)), s = BD(Ut(e, 1), 8), t4 = new e7c(bRc(o2.j)), t4.a *= 5, t4.b *= 5, u2 = c7c(new f7c(s.a, s.b), r), v = new f7c(A4b(t4.a, u2.a), A4b(t4.b, u2.b)), P6c(v, r), w2 = Jsb(e, 1), Vsb(w2, v), A = (sCb(e.b != 0), BD(e.c.b.c, 8)), B = BD(Ut(e, e.b - 2), 8), t4 = new e7c(bRc(p.j)), t4.a *= 5, t4.b *= 5, u2 = c7c(new f7c(B.a, B.b), A), C = new f7c(A4b(t4.a, u2.a), A4b(t4.b, u2.b)), P6c(C, A), St(e, e.b - 1, C), void 0);
- n = new YPc(e);
- ye(h.a, UPc(n));
- }
- function Kgd(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2, L2, M2, N, O, P;
- t4 = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82);
- v = t4.Dg();
- w2 = t4.Eg();
- u2 = t4.Cg() / 2;
- p = t4.Bg() / 2;
- if (JD(t4, 186)) {
- s = BD(t4, 118);
- v += mpd(s).i;
- v += mpd(s).i;
- }
- v += u2;
- w2 += p;
- F = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82);
- H2 = F.Dg();
- I = F.Eg();
- G = F.Cg() / 2;
- A = F.Bg() / 2;
- if (JD(F, 186)) {
- D3 = BD(F, 118);
- H2 += mpd(D3).i;
- H2 += mpd(D3).i;
- }
- H2 += G;
- I += A;
- if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
- h = (Fhd(), j = new rmd(), j);
- wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), h);
- } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) {
- o2 = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a));
- while (o2.e != o2.i.gc()) {
- Eyd(o2);
- }
- }
- g = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
- q = H2;
- H2 > v + u2 ? q = v + u2 : H2 < v - u2 && (q = v - u2);
- r = I;
- I > w2 + p ? r = w2 + p : I < w2 - p && (r = w2 - p);
- q > v - u2 && q < v + u2 && r > w2 - p && r < w2 + p && (q = v + u2);
- omd(g, q);
- pmd(g, r);
- B = v;
- v > H2 + G ? B = H2 + G : v < H2 - G && (B = H2 - G);
- C = w2;
- w2 > I + A ? C = I + A : w2 < I - A && (C = I - A);
- B > H2 - G && B < H2 + G && C > I - A && C < I + A && (C = I + A);
- hmd(g, B);
- imd(g, C);
- Uxd((!g.a && (g.a = new xMd(y2, g, 5)), g.a));
- f2 = Bub(b, 5);
- t4 == F && ++f2;
- L2 = B - q;
- O = C - r;
- J = $wnd.Math.sqrt(L2 * L2 + O * O);
- l = J * 0.20000000298023224;
- M2 = L2 / (f2 + 1);
- P = O / (f2 + 1);
- K2 = q;
- N = r;
- for (k = 0; k < f2; k++) {
- K2 += M2;
- N += P;
- m = K2 + Cub(b, 24) * lke * l - l / 2;
- m < 0 ? m = 1 : m > c2 && (m = c2 - 1);
- n = N + Cub(b, 24) * lke * l - l / 2;
- n < 0 ? n = 1 : n > d && (n = d - 1);
- e = (Fhd(), i3 = new xkd(), i3);
- vkd(e, m);
- wkd(e, n);
- wtd((!g.a && (g.a = new xMd(y2, g, 5)), g.a), e);
- }
- }
- function Nyc() {
- Nyc = ccb;
- iyc = (Y9c(), I9c);
- jyc = J9c;
- kyc = K9c;
- lyc = L9c;
- nyc = M9c;
- oyc = N9c;
- ryc = P9c;
- tyc = R9c;
- uyc = S9c;
- syc = Q9c;
- vyc = T9c;
- xyc = U9c;
- zyc = X9c;
- qyc = O9c;
- hyc = (jwc(), Bvc);
- myc = Cvc;
- pyc = Dvc;
- wyc = Evc;
- byc = new Osd(D9c, meb(0));
- cyc = yvc;
- dyc = zvc;
- eyc = Avc;
- Kyc = awc;
- Cyc = Hvc;
- Dyc = Kvc;
- Gyc = Svc;
- Eyc = Nvc;
- Fyc = Pvc;
- Myc = fwc;
- Lyc = cwc;
- Iyc = Yvc;
- Hyc = Wvc;
- Jyc = $vc;
- Cxc = pvc;
- Dxc = qvc;
- Xwc = Auc;
- Ywc = Duc;
- Lxc = new q0b(12);
- Kxc = new Osd(f9c, Lxc);
- Twc = (Aad(), wad);
- Swc = new Osd(E8c, Twc);
- Uxc = new Osd(s9c, 0);
- fyc = new Osd(E9c, meb(1));
- owc = new Osd(r8c, tme);
- Jxc = d9c;
- Vxc = t9c;
- $xc = A9c;
- Kwc = y8c;
- mwc = p8c;
- axc = J8c;
- gyc = new Osd(H9c, (Bcb(), true));
- fxc = M8c;
- gxc = N8c;
- Fxc = Y8c;
- Ixc = b9c;
- Gxc = $8c;
- Nwc = (ead(), cad);
- Lwc = new Osd(z8c, Nwc);
- xxc = W8c;
- wxc = U8c;
- Yxc = x9c;
- Xxc = w9c;
- Zxc = z9c;
- Oxc = (Tbd(), Sbd);
- new Osd(l9c, Oxc);
- Qxc = o9c;
- Rxc = p9c;
- Sxc = q9c;
- Pxc = n9c;
- Byc = Gvc;
- sxc = avc;
- rxc = $uc;
- Ayc = Fvc;
- mxc = Suc;
- Jwc = muc;
- Iwc = kuc;
- Awc = Xtc;
- Bwc = Ytc;
- Dwc = buc;
- Cwc = Ztc;
- Hwc = iuc;
- uxc = cvc;
- vxc = dvc;
- ixc = Luc;
- Exc = uvc;
- zxc = hvc;
- $wc = Guc;
- Bxc = nvc;
- Vwc = wuc;
- Wwc = yuc;
- zwc = w8c;
- yxc = evc;
- swc = Mtc;
- rwc = Ktc;
- qwc = Jtc;
- cxc = Juc;
- bxc = Iuc;
- dxc = Kuc;
- Hxc = _8c;
- jxc = Q8c;
- Zwc = G8c;
- Qwc = C8c;
- Pwc = B8c;
- Ewc = euc;
- Wxc = v9c;
- pwc = v8c;
- exc = L8c;
- Txc = r9c;
- Mxc = h9c;
- Nxc = j9c;
- oxc = Vuc;
- pxc = Xuc;
- ayc = C9c;
- nwc = Itc;
- qxc = Zuc;
- Rwc = suc;
- Owc = quc;
- txc = S8c;
- kxc = Puc;
- Axc = kvc;
- yyc = V9c;
- Mwc = ouc;
- _xc = wvc;
- Uwc = uuc;
- lxc = Ruc;
- Fwc = guc;
- hxc = P8c;
- nxc = Uuc;
- Gwc = huc;
- ywc = Vtc;
- wwc = Stc;
- uwc = Qtc;
- vwc = Rtc;
- xwc = Utc;
- twc = Otc;
- _wc = Huc;
- }
- function shb(a, b) {
- phb();
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2;
- B = a.e;
- o2 = a.d;
- e = a.a;
- if (B == 0) {
- switch (b) {
- case 0:
- return "0";
- case 1:
- return $je;
- case 2:
- return "0.00";
- case 3:
- return "0.000";
- case 4:
- return "0.0000";
- case 5:
- return "0.00000";
- case 6:
- return "0.000000";
- default:
- w2 = new Ufb();
- b < 0 ? (w2.a += "0E+", w2) : (w2.a += "0E", w2);
- w2.a += -b;
- return w2.a;
- }
- }
- t4 = o2 * 10 + 1 + 7;
- u2 = KC(TD, $ie, 25, t4 + 1, 15, 1);
- c2 = t4;
- if (o2 == 1) {
- h = e[0];
- if (h < 0) {
- H2 = xbb(h, Yje);
- do {
- p = H2;
- H2 = Abb(H2, 10);
- u2[--c2] = 48 + Tbb(Qbb(p, Ibb(H2, 10))) & aje;
- } while (ybb(H2, 0) != 0);
- } else {
- H2 = h;
- do {
- p = H2;
- H2 = H2 / 10 | 0;
- u2[--c2] = 48 + (p - H2 * 10) & aje;
- } while (H2 != 0);
- }
- } else {
- D3 = KC(WD, oje, 25, o2, 15, 1);
- G = o2;
- $fb(e, 0, D3, 0, G);
- I:
- while (true) {
- A = 0;
- for (j = G - 1; j >= 0; j--) {
- F = wbb(Nbb(A, 32), xbb(D3[j], Yje));
- r = qhb(F);
- D3[j] = Tbb(r);
- A = Tbb(Obb(r, 32));
- }
- s = Tbb(A);
- q = c2;
- do {
- u2[--c2] = 48 + s % 10 & aje;
- } while ((s = s / 10 | 0) != 0 && c2 != 0);
- d = 9 - q + c2;
- for (i3 = 0; i3 < d && c2 > 0; i3++) {
- u2[--c2] = 48;
- }
- l = G - 1;
- for (; D3[l] == 0; l--) {
- if (l == 0) {
- break I;
- }
- }
- G = l + 1;
- }
- while (u2[c2] == 48) {
- ++c2;
- }
- }
- n = B < 0;
- g = t4 - c2 - b - 1;
- if (b == 0) {
- n && (u2[--c2] = 45);
- return zfb(u2, c2, t4 - c2);
- }
- if (b > 0 && g >= -6) {
- if (g >= 0) {
- k = c2 + g;
- for (m = t4 - 1; m >= k; m--) {
- u2[m + 1] = u2[m];
- }
- u2[++k] = 46;
- n && (u2[--c2] = 45);
- return zfb(u2, c2, t4 - c2 + 1);
- }
- for (l = 2; l < -g + 1; l++) {
- u2[--c2] = 48;
- }
- u2[--c2] = 46;
- u2[--c2] = 48;
- n && (u2[--c2] = 45);
- return zfb(u2, c2, t4 - c2);
- }
- C = c2 + 1;
- f2 = t4;
- v = new Vfb();
- n && (v.a += "-", v);
- if (f2 - C >= 1) {
- Kfb(v, u2[c2]);
- v.a += ".";
- v.a += zfb(u2, c2 + 1, t4 - c2 - 1);
- } else {
- v.a += zfb(u2, c2, t4 - c2);
- }
- v.a += "E";
- g > 0 && (v.a += "+", v);
- v.a += "" + g;
- return v.a;
- }
- function z$c(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- a.c = b;
- a.g = new Lqb();
- c2 = (Pgd(), new bhd(a.c));
- d = new YGb(c2);
- UGb(d);
- t4 = GD(hkd(a.c, (d0c(), Y_c)));
- i3 = BD(hkd(a.c, $_c), 316);
- v = BD(hkd(a.c, __c), 429);
- g = BD(hkd(a.c, T_c), 482);
- u2 = BD(hkd(a.c, Z_c), 430);
- a.j = Edb(ED(hkd(a.c, a0c)));
- h = a.a;
- switch (i3.g) {
- case 0:
- h = a.a;
- break;
- case 1:
- h = a.b;
- break;
- case 2:
- h = a.i;
- break;
- case 3:
- h = a.e;
- break;
- case 4:
- h = a.f;
- break;
- default:
- throw vbb(new Wdb(Mre + (i3.f != null ? i3.f : "" + i3.g)));
- }
- a.d = new g_c(h, v, g);
- yNb(a.d, (XNb(), VNb), DD(hkd(a.c, V_c)));
- a.d.c = Ccb(DD(hkd(a.c, U_c)));
- if (Vod(a.c).i == 0) {
- return a.d;
- }
- for (l = new Fyd(Vod(a.c)); l.e != l.i.gc(); ) {
- k = BD(Dyd(l), 33);
- n = k.g / 2;
- m = k.f / 2;
- w2 = new f7c(k.i + n, k.j + m);
- while (Mhb(a.g, w2)) {
- O6c(w2, ($wnd.Math.random() - 0.5) * qme, ($wnd.Math.random() - 0.5) * qme);
- }
- p = BD(hkd(k, (Y9c(), S8c)), 142);
- q = new aOb(w2, new J6c(w2.a - n - a.j / 2 - p.b, w2.b - m - a.j / 2 - p.d, k.g + a.j + (p.b + p.c), k.f + a.j + (p.d + p.a)));
- Ekb(a.d.i, q);
- Rhb(a.g, w2, new vgd(q, k));
- }
- switch (u2.g) {
- case 0:
- if (t4 == null) {
- a.d.d = BD(Ikb(a.d.i, 0), 65);
- } else {
- for (s = new olb(a.d.i); s.a < s.c.c.length; ) {
- q = BD(mlb(s), 65);
- o2 = BD(BD(Ohb(a.g, q.a), 46).b, 33).zg();
- o2 != null && dfb(o2, t4) && (a.d.d = q);
- }
- }
- break;
- case 1:
- e = new f7c(a.c.g, a.c.f);
- e.a *= 0.5;
- e.b *= 0.5;
- O6c(e, a.c.i, a.c.j);
- f2 = Pje;
- for (r = new olb(a.d.i); r.a < r.c.c.length; ) {
- q = BD(mlb(r), 65);
- j = S6c(q.a, e);
- if (j < f2) {
- f2 = j;
- a.d.d = q;
- }
- }
- break;
- default:
- throw vbb(new Wdb(Mre + (u2.f != null ? u2.f : "" + u2.g)));
- }
- return a.d;
- }
- function qfd(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- v = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
- k = new s7c();
- u2 = new Lqb();
- w2 = tfd(v);
- jrb(u2.f, v, w2);
- m = new Lqb();
- d = new Psb();
- for (o2 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!b.d && (b.d = new y5d(B2, b, 8, 5)), b.d), (!b.e && (b.e = new y5d(B2, b, 7, 4)), b.e)]))); Qr(o2); ) {
- n = BD(Rr(o2), 79);
- if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) {
- throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i));
- }
- if (n != a) {
- q = BD(qud((!n.a && (n.a = new cUd(A2, n, 6, 6)), n.a), 0), 202);
- Gsb(d, q, d.c.b, d.c);
- p = BD(Wd(irb(u2.f, q)), 12);
- if (!p) {
- p = tfd(q);
- jrb(u2.f, q, p);
- }
- l = c2 ? c7c(new g7c(BD(Ikb(w2, w2.c.length - 1), 8)), BD(Ikb(p, p.c.length - 1), 8)) : c7c(new g7c((tCb(0, w2.c.length), BD(w2.c[0], 8))), (tCb(0, p.c.length), BD(p.c[0], 8)));
- jrb(m.f, q, l);
- }
- }
- if (d.b != 0) {
- r = BD(Ikb(w2, c2 ? w2.c.length - 1 : 0), 8);
- for (j = 1; j < w2.c.length; j++) {
- s = BD(Ikb(w2, c2 ? w2.c.length - 1 - j : j), 8);
- e = Jsb(d, 0);
- while (e.b != e.d.c) {
- q = BD(Xsb(e), 202);
- p = BD(Wd(irb(u2.f, q)), 12);
- if (p.c.length <= j) {
- Zsb(e);
- } else {
- t4 = P6c(new g7c(BD(Ikb(p, c2 ? p.c.length - 1 - j : j), 8)), BD(Wd(irb(m.f, q)), 8));
- if (s.a != t4.a || s.b != t4.b) {
- f2 = s.a - r.a;
- h = s.b - r.b;
- g = t4.a - r.a;
- i3 = t4.b - r.b;
- g * h == i3 * f2 && (f2 == 0 || isNaN(f2) ? f2 : f2 < 0 ? -1 : 1) == (g == 0 || isNaN(g) ? g : g < 0 ? -1 : 1) && (h == 0 || isNaN(h) ? h : h < 0 ? -1 : 1) == (i3 == 0 || isNaN(i3) ? i3 : i3 < 0 ? -1 : 1) ? ($wnd.Math.abs(f2) < $wnd.Math.abs(g) || $wnd.Math.abs(h) < $wnd.Math.abs(i3)) && (Gsb(k, s, k.c.b, k.c), true) : j > 1 && (Gsb(k, r, k.c.b, k.c), true);
- Zsb(e);
- }
- }
- }
- r = s;
- }
- }
- return k;
- }
- function $Bc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2, L2;
- Odd(c2, "Greedy cycle removal", 1);
- t4 = b.a;
- L2 = t4.c.length;
- a.a = KC(WD, oje, 25, L2, 15, 1);
- a.c = KC(WD, oje, 25, L2, 15, 1);
- a.b = KC(WD, oje, 25, L2, 15, 1);
- j = 0;
- for (r = new olb(t4); r.a < r.c.c.length; ) {
- p = BD(mlb(r), 10);
- p.p = j;
- for (C = new olb(p.j); C.a < C.c.c.length; ) {
- w2 = BD(mlb(C), 11);
- for (h = new olb(w2.e); h.a < h.c.c.length; ) {
- d = BD(mlb(h), 17);
- if (d.c.i == p) {
- continue;
- }
- G = BD(vNb(d, (Nyc(), cyc)), 19).a;
- a.a[j] += G > 0 ? G + 1 : 1;
- }
- for (g = new olb(w2.g); g.a < g.c.c.length; ) {
- d = BD(mlb(g), 17);
- if (d.d.i == p) {
- continue;
- }
- G = BD(vNb(d, (Nyc(), cyc)), 19).a;
- a.c[j] += G > 0 ? G + 1 : 1;
- }
- }
- a.c[j] == 0 ? Dsb(a.e, p) : a.a[j] == 0 && Dsb(a.f, p);
- ++j;
- }
- o2 = -1;
- n = 1;
- l = new Rkb();
- a.d = BD(vNb(b, (wtc(), jtc)), 230);
- while (L2 > 0) {
- while (a.e.b != 0) {
- I = BD(Lsb(a.e), 10);
- a.b[I.p] = o2--;
- _Bc(a, I);
- --L2;
- }
- while (a.f.b != 0) {
- J = BD(Lsb(a.f), 10);
- a.b[J.p] = n++;
- _Bc(a, J);
- --L2;
- }
- if (L2 > 0) {
- m = Rie;
- for (s = new olb(t4); s.a < s.c.c.length; ) {
- p = BD(mlb(s), 10);
- if (a.b[p.p] == 0) {
- u2 = a.c[p.p] - a.a[p.p];
- if (u2 >= m) {
- if (u2 > m) {
- l.c = KC(SI, Uhe, 1, 0, 5, 1);
- m = u2;
- }
- l.c[l.c.length] = p;
- }
- }
- }
- k = a.Zf(l);
- a.b[k.p] = n++;
- _Bc(a, k);
- --L2;
- }
- }
- H2 = t4.c.length + 1;
- for (j = 0; j < t4.c.length; j++) {
- a.b[j] < 0 && (a.b[j] += H2);
- }
- for (q = new olb(t4); q.a < q.c.c.length; ) {
- p = BD(mlb(q), 10);
- F = m_b(p.j);
- for (A = F, B = 0, D3 = A.length; B < D3; ++B) {
- w2 = A[B];
- v = k_b(w2.g);
- for (e = v, f2 = 0, i3 = e.length; f2 < i3; ++f2) {
- d = e[f2];
- K2 = d.d.i.p;
- if (a.b[p.p] > a.b[K2]) {
- PZb(d, true);
- yNb(b, Asc, (Bcb(), true));
- }
- }
- }
- }
- a.a = null;
- a.c = null;
- a.b = null;
- Osb(a.f);
- Osb(a.e);
- Qdd(c2);
- }
- function sQb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- d = new Rkb();
- h = new Rkb();
- q = b / 2;
- n = a.gc();
- e = BD(a.Xb(0), 8);
- r = BD(a.Xb(1), 8);
- o2 = tQb(e.a, e.b, r.a, r.b, q);
- Ekb(d, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
- Ekb(h, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
- for (j = 2; j < n; j++) {
- p = e;
- e = r;
- r = BD(a.Xb(j), 8);
- o2 = tQb(e.a, e.b, p.a, p.b, q);
- Ekb(d, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
- Ekb(h, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
- o2 = tQb(e.a, e.b, r.a, r.b, q);
- Ekb(d, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
- Ekb(h, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
- }
- o2 = tQb(r.a, r.b, e.a, e.b, q);
- Ekb(d, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
- Ekb(h, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
- c2 = new s7c();
- g = new Rkb();
- Dsb(c2, (tCb(0, d.c.length), BD(d.c[0], 8)));
- for (k = 1; k < d.c.length - 2; k += 2) {
- f2 = (tCb(k, d.c.length), BD(d.c[k], 8));
- m = rQb((tCb(k - 1, d.c.length), BD(d.c[k - 1], 8)), f2, (tCb(k + 1, d.c.length), BD(d.c[k + 1], 8)), (tCb(k + 2, d.c.length), BD(d.c[k + 2], 8)));
- !isFinite(m.a) || !isFinite(m.b) ? (Gsb(c2, f2, c2.c.b, c2.c), true) : (Gsb(c2, m, c2.c.b, c2.c), true);
- }
- Dsb(c2, BD(Ikb(d, d.c.length - 1), 8));
- Ekb(g, (tCb(0, h.c.length), BD(h.c[0], 8)));
- for (l = 1; l < h.c.length - 2; l += 2) {
- f2 = (tCb(l, h.c.length), BD(h.c[l], 8));
- m = rQb((tCb(l - 1, h.c.length), BD(h.c[l - 1], 8)), f2, (tCb(l + 1, h.c.length), BD(h.c[l + 1], 8)), (tCb(l + 2, h.c.length), BD(h.c[l + 2], 8)));
- !isFinite(m.a) || !isFinite(m.b) ? (g.c[g.c.length] = f2, true) : (g.c[g.c.length] = m, true);
- }
- Ekb(g, BD(Ikb(h, h.c.length - 1), 8));
- for (i3 = g.c.length - 1; i3 >= 0; i3--) {
- Dsb(c2, (tCb(i3, g.c.length), BD(g.c[i3], 8)));
- }
- return c2;
- }
- function aFd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
- g = true;
- l = null;
- d = null;
- e = null;
- b = false;
- n = BEd;
- j = null;
- f2 = null;
- h = 0;
- i3 = UEd(a, h, zEd, AEd);
- if (i3 < a.length && (BCb(i3, a.length), a.charCodeAt(i3) == 58)) {
- l = a.substr(h, i3 - h);
- h = i3 + 1;
- }
- c2 = l != null && hnb(GEd, l.toLowerCase());
- if (c2) {
- i3 = a.lastIndexOf("!/");
- if (i3 == -1) {
- throw vbb(new Wdb("no archive separator"));
- }
- g = true;
- d = qfb(a, h, ++i3);
- h = i3;
- } else if (h >= 0 && dfb(a.substr(h, "//".length), "//")) {
- h += 2;
- i3 = UEd(a, h, CEd, DEd);
- d = a.substr(h, i3 - h);
- h = i3;
- } else if (l != null && (h == a.length || (BCb(h, a.length), a.charCodeAt(h) != 47))) {
- g = false;
- i3 = ifb(a, wfb(35), h);
- i3 == -1 && (i3 = a.length);
- d = a.substr(h, i3 - h);
- h = i3;
- }
- if (!c2 && h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) {
- i3 = UEd(a, h + 1, CEd, DEd);
- k = a.substr(h + 1, i3 - (h + 1));
- if (k.length > 0 && bfb(k, k.length - 1) == 58) {
- e = k;
- h = i3;
- }
- }
- if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) {
- ++h;
- b = true;
- }
- if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) {
- m = new Rkb();
- while (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) {
- i3 = UEd(a, h, CEd, DEd);
- Ekb(m, a.substr(h, i3 - h));
- h = i3;
- h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47) && (bFd(a, ++h) || (m.c[m.c.length] = "", true));
- }
- n = KC(ZI, nie, 2, m.c.length, 6, 1);
- Qkb(m, n);
- }
- if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 63)) {
- i3 = gfb(a, 35, ++h);
- i3 == -1 && (i3 = a.length);
- j = a.substr(h, i3 - h);
- h = i3;
- }
- h < a.length && (f2 = pfb(a, ++h));
- iFd(g, l, d, e, n, j);
- return new NEd(g, l, d, e, b, n, j, f2);
- }
- function sJc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2;
- I = new Rkb();
- for (o2 = new olb(b.b); o2.a < o2.c.c.length; ) {
- m = BD(mlb(o2), 29);
- for (v = new olb(m.a); v.a < v.c.c.length; ) {
- u2 = BD(mlb(v), 10);
- u2.p = -1;
- l = Rie;
- B = Rie;
- for (D3 = new olb(u2.j); D3.a < D3.c.c.length; ) {
- C = BD(mlb(D3), 11);
- for (e = new olb(C.e); e.a < e.c.c.length; ) {
- c2 = BD(mlb(e), 17);
- F = BD(vNb(c2, (Nyc(), eyc)), 19).a;
- l = $wnd.Math.max(l, F);
- }
- for (d = new olb(C.g); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 17);
- F = BD(vNb(c2, (Nyc(), eyc)), 19).a;
- B = $wnd.Math.max(B, F);
- }
- }
- yNb(u2, hJc, meb(l));
- yNb(u2, iJc, meb(B));
- }
- }
- r = 0;
- for (n = new olb(b.b); n.a < n.c.c.length; ) {
- m = BD(mlb(n), 29);
- for (v = new olb(m.a); v.a < v.c.c.length; ) {
- u2 = BD(mlb(v), 10);
- if (u2.p < 0) {
- H2 = new zJc();
- H2.b = r++;
- oJc(a, u2, H2);
- I.c[I.c.length] = H2;
- }
- }
- }
- A = Pu(I.c.length);
- k = Pu(I.c.length);
- for (g = 0; g < I.c.length; g++) {
- Ekb(A, new Rkb());
- Ekb(k, meb(0));
- }
- mJc(b, I, A, k);
- J = BD(Qkb(I, KC(sY, Iqe, 257, I.c.length, 0, 1)), 840);
- w2 = BD(Qkb(A, KC(yK, eme, 15, A.c.length, 0, 1)), 192);
- j = KC(WD, oje, 25, k.c.length, 15, 1);
- for (h = 0; h < j.length; h++) {
- j[h] = (tCb(h, k.c.length), BD(k.c[h], 19)).a;
- }
- s = 0;
- t4 = new Rkb();
- for (i3 = 0; i3 < J.length; i3++) {
- j[i3] == 0 && Ekb(t4, J[i3]);
- }
- q = KC(WD, oje, 25, J.length, 15, 1);
- while (t4.c.length != 0) {
- H2 = BD(Kkb(t4, 0), 257);
- q[H2.b] = s++;
- while (!w2[H2.b].dc()) {
- K2 = BD(w2[H2.b].$c(0), 257);
- --j[K2.b];
- j[K2.b] == 0 && (t4.c[t4.c.length] = K2, true);
- }
- }
- a.a = KC(sY, Iqe, 257, J.length, 0, 1);
- for (f2 = 0; f2 < J.length; f2++) {
- p = J[f2];
- G = q[f2];
- a.a[G] = p;
- p.b = G;
- for (v = new olb(p.e); v.a < v.c.c.length; ) {
- u2 = BD(mlb(v), 10);
- u2.p = G;
- }
- }
- return a.a;
- }
- function nde(a) {
- var b, c2, d;
- if (a.d >= a.j) {
- a.a = -1;
- a.c = 1;
- return;
- }
- b = bfb(a.i, a.d++);
- a.a = b;
- if (a.b == 1) {
- switch (b) {
- case 92:
- d = 10;
- if (a.d >= a.j)
- throw vbb(new mde(tvd((h0d(), uue))));
- a.a = bfb(a.i, a.d++);
- break;
- case 45:
- if ((a.e & 512) == 512 && a.d < a.j && bfb(a.i, a.d) == 91) {
- ++a.d;
- d = 24;
- } else
- d = 0;
- break;
- case 91:
- if ((a.e & 512) != 512 && a.d < a.j && bfb(a.i, a.d) == 58) {
- ++a.d;
- d = 20;
- break;
- }
- default:
- if ((b & 64512) == Uje && a.d < a.j) {
- c2 = bfb(a.i, a.d);
- if ((c2 & 64512) == 56320) {
- a.a = Tje + (b - Uje << 10) + c2 - 56320;
- ++a.d;
- }
- }
- d = 0;
- }
- a.c = d;
- return;
- }
- switch (b) {
- case 124:
- d = 2;
- break;
- case 42:
- d = 3;
- break;
- case 43:
- d = 4;
- break;
- case 63:
- d = 5;
- break;
- case 41:
- d = 7;
- break;
- case 46:
- d = 8;
- break;
- case 91:
- d = 9;
- break;
- case 94:
- d = 11;
- break;
- case 36:
- d = 12;
- break;
- case 40:
- d = 6;
- if (a.d >= a.j)
- break;
- if (bfb(a.i, a.d) != 63)
- break;
- if (++a.d >= a.j)
- throw vbb(new mde(tvd((h0d(), vue))));
- b = bfb(a.i, a.d++);
- switch (b) {
- case 58:
- d = 13;
- break;
- case 61:
- d = 14;
- break;
- case 33:
- d = 15;
- break;
- case 91:
- d = 19;
- break;
- case 62:
- d = 18;
- break;
- case 60:
- if (a.d >= a.j)
- throw vbb(new mde(tvd((h0d(), vue))));
- b = bfb(a.i, a.d++);
- if (b == 61) {
- d = 16;
- } else if (b == 33) {
- d = 17;
- } else
- throw vbb(new mde(tvd((h0d(), wue))));
- break;
- case 35:
- while (a.d < a.j) {
- b = bfb(a.i, a.d++);
- if (b == 41)
- break;
- }
- if (b != 41)
- throw vbb(new mde(tvd((h0d(), xue))));
- d = 21;
- break;
- default:
- if (b == 45 || 97 <= b && b <= 122 || 65 <= b && b <= 90) {
- --a.d;
- d = 22;
- break;
- } else if (b == 40) {
- d = 23;
- break;
- }
- throw vbb(new mde(tvd((h0d(), vue))));
- }
- break;
- case 92:
- d = 10;
- if (a.d >= a.j)
- throw vbb(new mde(tvd((h0d(), uue))));
- a.a = bfb(a.i, a.d++);
- break;
- default:
- d = 0;
- }
- a.c = d;
+ } else {
+ arr.splice(i2, 1);
+ }
+ }
+ if (sort3) {
+ arr.sort(function(a2, b2) {
+ return a2 - b2;
+ });
+ }
+ var len = arr.length;
+ var mid = Math.floor(len / 2);
+ if (len % 2 !== 0) {
+ return arr[mid + 1 + off];
+ } else {
+ return (arr[mid - 1 + off] + arr[mid + off]) / 2;
+ }
+ }, "median");
+ deg2rad = /* @__PURE__ */ __name(function deg2rad2(deg) {
+ return Math.PI * deg / 180;
+ }, "deg2rad");
+ getAngleFromDisp = /* @__PURE__ */ __name(function getAngleFromDisp2(dispX, dispY) {
+ return Math.atan2(dispY, dispX) - Math.PI / 2;
+ }, "getAngleFromDisp");
+ log22 = Math.log2 || function(n2) {
+ return Math.log(n2) / Math.log(2);
+ };
+ signum = /* @__PURE__ */ __name(function signum2(x5) {
+ if (x5 > 0) {
+ return 1;
+ } else if (x5 < 0) {
+ return -1;
+ } else {
+ return 0;
+ }
+ }, "signum");
+ dist = /* @__PURE__ */ __name(function dist2(p1, p22) {
+ return Math.sqrt(sqdist(p1, p22));
+ }, "dist");
+ sqdist = /* @__PURE__ */ __name(function sqdist2(p1, p22) {
+ var dx = p22.x - p1.x;
+ var dy = p22.y - p1.y;
+ return dx * dx + dy * dy;
+ }, "sqdist");
+ inPlaceSumNormalize = /* @__PURE__ */ __name(function inPlaceSumNormalize2(v3) {
+ var length2 = v3.length;
+ var total = 0;
+ for (var i2 = 0; i2 < length2; i2++) {
+ total += v3[i2];
+ }
+ for (var _i = 0; _i < length2; _i++) {
+ v3[_i] = v3[_i] / total;
+ }
+ return v3;
+ }, "inPlaceSumNormalize");
+ qbezierAt = /* @__PURE__ */ __name(function qbezierAt2(p0, p1, p22, t4) {
+ return (1 - t4) * (1 - t4) * p0 + 2 * (1 - t4) * t4 * p1 + t4 * t4 * p22;
+ }, "qbezierAt");
+ qbezierPtAt = /* @__PURE__ */ __name(function qbezierPtAt2(p0, p1, p22, t4) {
+ return {
+ x: qbezierAt(p0.x, p1.x, p22.x, t4),
+ y: qbezierAt(p0.y, p1.y, p22.y, t4)
+ };
+ }, "qbezierPtAt");
+ lineAt = /* @__PURE__ */ __name(function lineAt2(p0, p1, t4, d2) {
+ var vec = {
+ x: p1.x - p0.x,
+ y: p1.y - p0.y
+ };
+ var vecDist = dist(p0, p1);
+ var normVec = {
+ x: vec.x / vecDist,
+ y: vec.y / vecDist
+ };
+ t4 = t4 == null ? 0 : t4;
+ d2 = d2 != null ? d2 : t4 * vecDist;
+ return {
+ x: p0.x + normVec.x * d2,
+ y: p0.y + normVec.y * d2
+ };
+ }, "lineAt");
+ bound = /* @__PURE__ */ __name(function bound2(min9, val, max10) {
+ return Math.max(min9, Math.min(max10, val));
+ }, "bound");
+ makeBoundingBox = /* @__PURE__ */ __name(function makeBoundingBox2(bb) {
+ if (bb == null) {
+ return {
+ x1: Infinity,
+ y1: Infinity,
+ x2: -Infinity,
+ y2: -Infinity,
+ w: 0,
+ h: 0
+ };
+ } else if (bb.x1 != null && bb.y1 != null) {
+ if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {
+ return {
+ x1: bb.x1,
+ y1: bb.y1,
+ x2: bb.x2,
+ y2: bb.y2,
+ w: bb.x2 - bb.x1,
+ h: bb.y2 - bb.y1
+ };
+ } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {
+ return {
+ x1: bb.x1,
+ y1: bb.y1,
+ x2: bb.x1 + bb.w,
+ y2: bb.y1 + bb.h,
+ w: bb.w,
+ h: bb.h
+ };
+ }
+ }
+ }, "makeBoundingBox");
+ copyBoundingBox = /* @__PURE__ */ __name(function copyBoundingBox2(bb) {
+ return {
+ x1: bb.x1,
+ x2: bb.x2,
+ w: bb.w,
+ y1: bb.y1,
+ y2: bb.y2,
+ h: bb.h
+ };
+ }, "copyBoundingBox");
+ clearBoundingBox = /* @__PURE__ */ __name(function clearBoundingBox2(bb) {
+ bb.x1 = Infinity;
+ bb.y1 = Infinity;
+ bb.x2 = -Infinity;
+ bb.y2 = -Infinity;
+ bb.w = 0;
+ bb.h = 0;
+ }, "clearBoundingBox");
+ shiftBoundingBox = /* @__PURE__ */ __name(function shiftBoundingBox2(bb, dx, dy) {
+ return {
+ x1: bb.x1 + dx,
+ x2: bb.x2 + dx,
+ y1: bb.y1 + dy,
+ y2: bb.y2 + dy,
+ w: bb.w,
+ h: bb.h
+ };
+ }, "shiftBoundingBox");
+ updateBoundingBox = /* @__PURE__ */ __name(function updateBoundingBox2(bb1, bb2) {
+ bb1.x1 = Math.min(bb1.x1, bb2.x1);
+ bb1.x2 = Math.max(bb1.x2, bb2.x2);
+ bb1.w = bb1.x2 - bb1.x1;
+ bb1.y1 = Math.min(bb1.y1, bb2.y1);
+ bb1.y2 = Math.max(bb1.y2, bb2.y2);
+ bb1.h = bb1.y2 - bb1.y1;
+ }, "updateBoundingBox");
+ expandBoundingBoxByPoint = /* @__PURE__ */ __name(function expandBoundingBoxByPoint2(bb, x5, y5) {
+ bb.x1 = Math.min(bb.x1, x5);
+ bb.x2 = Math.max(bb.x2, x5);
+ bb.w = bb.x2 - bb.x1;
+ bb.y1 = Math.min(bb.y1, y5);
+ bb.y2 = Math.max(bb.y2, y5);
+ bb.h = bb.y2 - bb.y1;
+ }, "expandBoundingBoxByPoint");
+ expandBoundingBox = /* @__PURE__ */ __name(function expandBoundingBox2(bb) {
+ var padding3 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ bb.x1 -= padding3;
+ bb.x2 += padding3;
+ bb.y1 -= padding3;
+ bb.y2 += padding3;
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ return bb;
+ }, "expandBoundingBox");
+ expandBoundingBoxSides = /* @__PURE__ */ __name(function expandBoundingBoxSides2(bb) {
+ var padding3 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0];
+ var top2, right3, bottom2, left3;
+ if (padding3.length === 1) {
+ top2 = right3 = bottom2 = left3 = padding3[0];
+ } else if (padding3.length === 2) {
+ top2 = bottom2 = padding3[0];
+ left3 = right3 = padding3[1];
+ } else if (padding3.length === 4) {
+ var _padding = _slicedToArray(padding3, 4);
+ top2 = _padding[0];
+ right3 = _padding[1];
+ bottom2 = _padding[2];
+ left3 = _padding[3];
+ }
+ bb.x1 -= left3;
+ bb.x2 += right3;
+ bb.y1 -= top2;
+ bb.y2 += bottom2;
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ return bb;
+ }, "expandBoundingBoxSides");
+ assignBoundingBox = /* @__PURE__ */ __name(function assignBoundingBox2(bb1, bb2) {
+ bb1.x1 = bb2.x1;
+ bb1.y1 = bb2.y1;
+ bb1.x2 = bb2.x2;
+ bb1.y2 = bb2.y2;
+ bb1.w = bb1.x2 - bb1.x1;
+ bb1.h = bb1.y2 - bb1.y1;
+ }, "assignBoundingBox");
+ boundingBoxesIntersect = /* @__PURE__ */ __name(function boundingBoxesIntersect2(bb1, bb2) {
+ if (bb1.x1 > bb2.x2) {
+ return false;
+ }
+ if (bb2.x1 > bb1.x2) {
+ return false;
+ }
+ if (bb1.x2 < bb2.x1) {
+ return false;
+ }
+ if (bb2.x2 < bb1.x1) {
+ return false;
+ }
+ if (bb1.y2 < bb2.y1) {
+ return false;
+ }
+ if (bb2.y2 < bb1.y1) {
+ return false;
+ }
+ if (bb1.y1 > bb2.y2) {
+ return false;
+ }
+ if (bb2.y1 > bb1.y2) {
+ return false;
+ }
+ return true;
+ }, "boundingBoxesIntersect");
+ inBoundingBox = /* @__PURE__ */ __name(function inBoundingBox2(bb, x5, y5) {
+ return bb.x1 <= x5 && x5 <= bb.x2 && bb.y1 <= y5 && y5 <= bb.y2;
+ }, "inBoundingBox");
+ pointInBoundingBox = /* @__PURE__ */ __name(function pointInBoundingBox2(bb, pt) {
+ return inBoundingBox(bb, pt.x, pt.y);
+ }, "pointInBoundingBox");
+ boundingBoxInBoundingBox = /* @__PURE__ */ __name(function boundingBoxInBoundingBox2(bb1, bb2) {
+ return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);
+ }, "boundingBoxInBoundingBox");
+ roundRectangleIntersectLine = /* @__PURE__ */ __name(function roundRectangleIntersectLine2(x5, y5, nodeX, nodeY, width3, height2, padding3) {
+ var radius2 = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : "auto";
+ var cornerRadius = radius2 === "auto" ? getRoundRectangleRadius(width3, height2) : radius2;
+ var halfWidth = width3 / 2;
+ var halfHeight = height2 / 2;
+ cornerRadius = Math.min(cornerRadius, halfWidth, halfHeight);
+ var doWidth = cornerRadius !== halfWidth, doHeight = cornerRadius !== halfHeight;
+ var straightLineIntersections;
+ if (doWidth) {
+ var topStartX = nodeX - halfWidth + cornerRadius - padding3;
+ var topStartY = nodeY - halfHeight - padding3;
+ var topEndX = nodeX + halfWidth - cornerRadius + padding3;
+ var topEndY = topStartY;
+ straightLineIntersections = finiteLinesIntersect(x5, y5, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ if (doHeight) {
+ var rightStartX = nodeX + halfWidth + padding3;
+ var rightStartY = nodeY - halfHeight + cornerRadius - padding3;
+ var rightEndX = rightStartX;
+ var rightEndY = nodeY + halfHeight - cornerRadius + padding3;
+ straightLineIntersections = finiteLinesIntersect(x5, y5, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ if (doWidth) {
+ var bottomStartX = nodeX - halfWidth + cornerRadius - padding3;
+ var bottomStartY = nodeY + halfHeight + padding3;
+ var bottomEndX = nodeX + halfWidth - cornerRadius + padding3;
+ var bottomEndY = bottomStartY;
+ straightLineIntersections = finiteLinesIntersect(x5, y5, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ if (doHeight) {
+ var leftStartX = nodeX - halfWidth - padding3;
+ var leftStartY = nodeY - halfHeight + cornerRadius - padding3;
+ var leftEndX = leftStartX;
+ var leftEndY = nodeY + halfHeight - cornerRadius + padding3;
+ straightLineIntersections = finiteLinesIntersect(x5, y5, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);
+ if (straightLineIntersections.length > 0) {
+ return straightLineIntersections;
+ }
+ }
+ var arcIntersections;
+ {
+ var topLeftCenterX = nodeX - halfWidth + cornerRadius;
+ var topLeftCenterY = nodeY - halfHeight + cornerRadius;
+ arcIntersections = intersectLineCircle(x5, y5, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding3);
+ if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ {
+ var topRightCenterX = nodeX + halfWidth - cornerRadius;
+ var topRightCenterY = nodeY - halfHeight + cornerRadius;
+ arcIntersections = intersectLineCircle(x5, y5, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding3);
+ if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ {
+ var bottomRightCenterX = nodeX + halfWidth - cornerRadius;
+ var bottomRightCenterY = nodeY + halfHeight - cornerRadius;
+ arcIntersections = intersectLineCircle(x5, y5, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding3);
+ if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ {
+ var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;
+ var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;
+ arcIntersections = intersectLineCircle(x5, y5, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding3);
+ if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {
+ return [arcIntersections[0], arcIntersections[1]];
+ }
+ }
+ return [];
+ }, "roundRectangleIntersectLine");
+ inLineVicinity = /* @__PURE__ */ __name(function inLineVicinity2(x5, y5, lx1, ly1, lx2, ly2, tolerance) {
+ var t4 = tolerance;
+ var x1 = Math.min(lx1, lx2);
+ var x22 = Math.max(lx1, lx2);
+ var y1 = Math.min(ly1, ly2);
+ var y22 = Math.max(ly1, ly2);
+ return x1 - t4 <= x5 && x5 <= x22 + t4 && y1 - t4 <= y5 && y5 <= y22 + t4;
+ }, "inLineVicinity");
+ inBezierVicinity = /* @__PURE__ */ __name(function inBezierVicinity2(x5, y5, x1, y1, x22, y22, x32, y32, tolerance) {
+ var bb = {
+ x1: Math.min(x1, x32, x22) - tolerance,
+ x2: Math.max(x1, x32, x22) + tolerance,
+ y1: Math.min(y1, y32, y22) - tolerance,
+ y2: Math.max(y1, y32, y22) + tolerance
+ };
+ if (x5 < bb.x1 || x5 > bb.x2 || y5 < bb.y1 || y5 > bb.y2) {
+ return false;
+ } else {
+ return true;
+ }
+ }, "inBezierVicinity");
+ solveQuadratic = /* @__PURE__ */ __name(function solveQuadratic2(a2, b2, c3, val) {
+ c3 -= val;
+ var r2 = b2 * b2 - 4 * a2 * c3;
+ if (r2 < 0) {
+ return [];
+ }
+ var sqrtR = Math.sqrt(r2);
+ var denom = 2 * a2;
+ var root1 = (-b2 + sqrtR) / denom;
+ var root22 = (-b2 - sqrtR) / denom;
+ return [root1, root22];
+ }, "solveQuadratic");
+ solveCubic = /* @__PURE__ */ __name(function solveCubic2(a2, b2, c3, d2, result) {
+ var epsilon6 = 1e-5;
+ if (a2 === 0) {
+ a2 = epsilon6;
+ }
+ b2 /= a2;
+ c3 /= a2;
+ d2 /= a2;
+ var discriminant, q2, r2, dum1, s2, t4, term1, r13;
+ q2 = (3 * c3 - b2 * b2) / 9;
+ r2 = -(27 * d2) + b2 * (9 * c3 - 2 * (b2 * b2));
+ r2 /= 54;
+ discriminant = q2 * q2 * q2 + r2 * r2;
+ result[1] = 0;
+ term1 = b2 / 3;
+ if (discriminant > 0) {
+ s2 = r2 + Math.sqrt(discriminant);
+ s2 = s2 < 0 ? -Math.pow(-s2, 1 / 3) : Math.pow(s2, 1 / 3);
+ t4 = r2 - Math.sqrt(discriminant);
+ t4 = t4 < 0 ? -Math.pow(-t4, 1 / 3) : Math.pow(t4, 1 / 3);
+ result[0] = -term1 + s2 + t4;
+ term1 += (s2 + t4) / 2;
+ result[4] = result[2] = -term1;
+ term1 = Math.sqrt(3) * (-t4 + s2) / 2;
+ result[3] = term1;
+ result[5] = -term1;
+ return;
+ }
+ result[5] = result[3] = 0;
+ if (discriminant === 0) {
+ r13 = r2 < 0 ? -Math.pow(-r2, 1 / 3) : Math.pow(r2, 1 / 3);
+ result[0] = -term1 + 2 * r13;
+ result[4] = result[2] = -(r13 + term1);
+ return;
+ }
+ q2 = -q2;
+ dum1 = q2 * q2 * q2;
+ dum1 = Math.acos(r2 / Math.sqrt(dum1));
+ r13 = 2 * Math.sqrt(q2);
+ result[0] = -term1 + r13 * Math.cos(dum1 / 3);
+ result[2] = -term1 + r13 * Math.cos((dum1 + 2 * Math.PI) / 3);
+ result[4] = -term1 + r13 * Math.cos((dum1 + 4 * Math.PI) / 3);
+ return;
+ }, "solveCubic");
+ sqdistToQuadraticBezier = /* @__PURE__ */ __name(function sqdistToQuadraticBezier2(x5, y5, x1, y1, x22, y22, x32, y32) {
+ var a2 = 1 * x1 * x1 - 4 * x1 * x22 + 2 * x1 * x32 + 4 * x22 * x22 - 4 * x22 * x32 + x32 * x32 + y1 * y1 - 4 * y1 * y22 + 2 * y1 * y32 + 4 * y22 * y22 - 4 * y22 * y32 + y32 * y32;
+ var b2 = 1 * 9 * x1 * x22 - 3 * x1 * x1 - 3 * x1 * x32 - 6 * x22 * x22 + 3 * x22 * x32 + 9 * y1 * y22 - 3 * y1 * y1 - 3 * y1 * y32 - 6 * y22 * y22 + 3 * y22 * y32;
+ var c3 = 1 * 3 * x1 * x1 - 6 * x1 * x22 + x1 * x32 - x1 * x5 + 2 * x22 * x22 + 2 * x22 * x5 - x32 * x5 + 3 * y1 * y1 - 6 * y1 * y22 + y1 * y32 - y1 * y5 + 2 * y22 * y22 + 2 * y22 * y5 - y32 * y5;
+ var d2 = 1 * x1 * x22 - x1 * x1 + x1 * x5 - x22 * x5 + y1 * y22 - y1 * y1 + y1 * y5 - y22 * y5;
+ var roots = [];
+ solveCubic(a2, b2, c3, d2, roots);
+ var zeroThreshold = 1e-7;
+ var params = [];
+ for (var index = 0; index < 6; index += 2) {
+ if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1) {
+ params.push(roots[index]);
+ }
+ }
+ params.push(1);
+ params.push(0);
+ var minDistanceSquared = -1;
+ var curX, curY, distSquared;
+ for (var i2 = 0; i2 < params.length; i2++) {
+ curX = Math.pow(1 - params[i2], 2) * x1 + 2 * (1 - params[i2]) * params[i2] * x22 + params[i2] * params[i2] * x32;
+ curY = Math.pow(1 - params[i2], 2) * y1 + 2 * (1 - params[i2]) * params[i2] * y22 + params[i2] * params[i2] * y32;
+ distSquared = Math.pow(curX - x5, 2) + Math.pow(curY - y5, 2);
+ if (minDistanceSquared >= 0) {
+ if (distSquared < minDistanceSquared) {
+ minDistanceSquared = distSquared;
}
- function P5b(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
- A = BD(vNb(a, (Nyc(), Vxc)), 98);
- if (!(A != (dcd(), bcd) && A != ccd)) {
- return;
- }
- o2 = a.b;
- n = o2.c.length;
- k = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0))));
- p = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0))));
- Ekb(k, new Lqb());
- Ekb(k, new Lqb());
- Ekb(p, new Rkb());
- Ekb(p, new Rkb());
- w2 = new Rkb();
- for (b = 0; b < n; b++) {
- c2 = (tCb(b, o2.c.length), BD(o2.c[b], 29));
- B = (tCb(b, k.c.length), BD(k.c[b], 83));
- q = new Lqb();
- k.c[k.c.length] = q;
- D3 = (tCb(b, p.c.length), BD(p.c[b], 15));
- s = new Rkb();
- p.c[p.c.length] = s;
- for (e = new olb(c2.a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- if (L5b(d)) {
- w2.c[w2.c.length] = d;
- continue;
- }
- for (j = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(j); ) {
- h = BD(Rr(j), 17);
- F = h.c.i;
- if (!L5b(F)) {
- continue;
- }
- C = BD(B.xc(vNb(F, (wtc(), $sc))), 10);
- if (!C) {
- C = K5b(a, F);
- B.zc(vNb(F, $sc), C);
- D3.Fc(C);
- }
- QZb(h, BD(Ikb(C.j, 1), 11));
- }
- for (i3 = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(i3); ) {
- h = BD(Rr(i3), 17);
- G = h.d.i;
- if (!L5b(G)) {
- continue;
- }
- r = BD(Ohb(q, vNb(G, (wtc(), $sc))), 10);
- if (!r) {
- r = K5b(a, G);
- Rhb(q, vNb(G, $sc), r);
- s.c[s.c.length] = r;
- }
- RZb(h, BD(Ikb(r.j, 0), 11));
- }
- }
- }
- for (l = 0; l < p.c.length; l++) {
- t4 = (tCb(l, p.c.length), BD(p.c[l], 15));
- if (t4.dc()) {
- continue;
- }
- m = null;
- if (l == 0) {
- m = new H1b(a);
- wCb(0, o2.c.length);
- aCb(o2.c, 0, m);
- } else if (l == k.c.length - 1) {
- m = new H1b(a);
- o2.c[o2.c.length] = m;
- } else {
- m = (tCb(l - 1, o2.c.length), BD(o2.c[l - 1], 29));
- }
- for (g = t4.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 10);
- $_b(f2, m);
- }
- }
- for (v = new olb(w2); v.a < v.c.c.length; ) {
- u2 = BD(mlb(v), 10);
- $_b(u2, null);
- }
- yNb(a, (wtc(), Fsc), w2);
+ } else {
+ minDistanceSquared = distSquared;
+ }
+ }
+ return minDistanceSquared;
+ }, "sqdistToQuadraticBezier");
+ sqdistToFiniteLine = /* @__PURE__ */ __name(function sqdistToFiniteLine2(x5, y5, x1, y1, x22, y22) {
+ var offset = [x5 - x1, y5 - y1];
+ var line2 = [x22 - x1, y22 - y1];
+ var lineSq = line2[0] * line2[0] + line2[1] * line2[1];
+ var hypSq = offset[0] * offset[0] + offset[1] * offset[1];
+ var dotProduct = offset[0] * line2[0] + offset[1] * line2[1];
+ var adjSq = dotProduct * dotProduct / lineSq;
+ if (dotProduct < 0) {
+ return hypSq;
+ }
+ if (adjSq > lineSq) {
+ return (x5 - x22) * (x5 - x22) + (y5 - y22) * (y5 - y22);
+ }
+ return hypSq - adjSq;
+ }, "sqdistToFiniteLine");
+ pointInsidePolygonPoints = /* @__PURE__ */ __name(function pointInsidePolygonPoints2(x5, y5, points) {
+ var x1, y1, x22, y22;
+ var y32;
+ var up = 0;
+ for (var i2 = 0; i2 < points.length / 2; i2++) {
+ x1 = points[i2 * 2];
+ y1 = points[i2 * 2 + 1];
+ if (i2 + 1 < points.length / 2) {
+ x22 = points[(i2 + 1) * 2];
+ y22 = points[(i2 + 1) * 2 + 1];
+ } else {
+ x22 = points[(i2 + 1 - points.length / 2) * 2];
+ y22 = points[(i2 + 1 - points.length / 2) * 2 + 1];
+ }
+ if (x1 == x5 && x22 == x5) ;
+ else if (x1 >= x5 && x5 >= x22 || x1 <= x5 && x5 <= x22) {
+ y32 = (x5 - x1) / (x22 - x1) * (y22 - y1) + y1;
+ if (y32 > y5) {
+ up++;
}
- function BCc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
- Odd(c2, "Coffman-Graham Layering", 1);
- if (b.a.c.length == 0) {
- Qdd(c2);
- return;
- }
- v = BD(vNb(b, (Nyc(), kxc)), 19).a;
- i3 = 0;
- g = 0;
- for (m = new olb(b.a); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 10);
- l.p = i3++;
- for (f2 = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- e.p = g++;
- }
- }
- a.d = KC(sbb, dle, 25, i3, 16, 1);
- a.a = KC(sbb, dle, 25, g, 16, 1);
- a.b = KC(WD, oje, 25, i3, 15, 1);
- a.e = KC(WD, oje, 25, i3, 15, 1);
- a.f = KC(WD, oje, 25, i3, 15, 1);
- Nc(a.c);
- CCc(a, b);
- o2 = new gub(new GCc(a));
- for (u2 = new olb(b.a); u2.a < u2.c.c.length; ) {
- s = BD(mlb(u2), 10);
- for (f2 = new Sr(ur(R_b(s).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- a.a[e.p] || ++a.b[s.p];
- }
- a.b[s.p] == 0 && (zCb(cub(o2, s)), true);
- }
- h = 0;
- while (o2.b.c.length != 0) {
- s = BD(dub(o2), 10);
- a.f[s.p] = h++;
- for (f2 = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- if (a.a[e.p]) {
- continue;
- }
- q = e.d.i;
- --a.b[q.p];
- Rc(a.c, q, meb(a.f[s.p]));
- a.b[q.p] == 0 && (zCb(cub(o2, q)), true);
- }
- }
- n = new gub(new KCc(a));
- for (t4 = new olb(b.a); t4.a < t4.c.c.length; ) {
- s = BD(mlb(t4), 10);
- for (f2 = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- a.a[e.p] || ++a.e[s.p];
- }
- a.e[s.p] == 0 && (zCb(cub(n, s)), true);
- }
- k = new Rkb();
- d = yCc(b, k);
- while (n.b.c.length != 0) {
- r = BD(dub(n), 10);
- (d.a.c.length >= v || !wCc(r, d)) && (d = yCc(b, k));
- $_b(r, d);
- for (f2 = new Sr(ur(R_b(r).a.Kc(), new Sq())); Qr(f2); ) {
- e = BD(Rr(f2), 17);
- if (a.a[e.p]) {
- continue;
- }
- p = e.c.i;
- --a.e[p.p];
- a.e[p.p] == 0 && (zCb(cub(n, p)), true);
- }
- }
- for (j = k.c.length - 1; j >= 0; --j) {
- Ekb(b.b, (tCb(j, k.c.length), BD(k.c[j], 29)));
- }
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- Qdd(c2);
+ } else {
+ continue;
+ }
+ }
+ if (up % 2 === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ }, "pointInsidePolygonPoints");
+ pointInsidePolygon = /* @__PURE__ */ __name(function pointInsidePolygon2(x5, y5, basePoints, centerX, centerY, width3, height2, direction4, padding3) {
+ var transformedPoints = new Array(basePoints.length);
+ var angle2;
+ if (direction4[0] != null) {
+ angle2 = Math.atan(direction4[1] / direction4[0]);
+ if (direction4[0] < 0) {
+ angle2 = angle2 + Math.PI / 2;
+ } else {
+ angle2 = -angle2 - Math.PI / 2;
+ }
+ } else {
+ angle2 = direction4;
+ }
+ var cos3 = Math.cos(-angle2);
+ var sin3 = Math.sin(-angle2);
+ for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) {
+ transformedPoints[i2 * 2] = width3 / 2 * (basePoints[i2 * 2] * cos3 - basePoints[i2 * 2 + 1] * sin3);
+ transformedPoints[i2 * 2 + 1] = height2 / 2 * (basePoints[i2 * 2 + 1] * cos3 + basePoints[i2 * 2] * sin3);
+ transformedPoints[i2 * 2] += centerX;
+ transformedPoints[i2 * 2 + 1] += centerY;
+ }
+ var points;
+ if (padding3 > 0) {
+ var expandedLineSet = expandPolygon(transformedPoints, -padding3);
+ points = joinLines(expandedLineSet);
+ } else {
+ points = transformedPoints;
+ }
+ return pointInsidePolygonPoints(x5, y5, points);
+ }, "pointInsidePolygon");
+ pointInsideRoundPolygon = /* @__PURE__ */ __name(function pointInsideRoundPolygon2(x5, y5, basePoints, centerX, centerY, width3, height2, corners) {
+ var cutPolygonPoints = new Array(basePoints.length * 2);
+ for (var i2 = 0; i2 < corners.length; i2++) {
+ var corner = corners[i2];
+ cutPolygonPoints[i2 * 4 + 0] = corner.startX;
+ cutPolygonPoints[i2 * 4 + 1] = corner.startY;
+ cutPolygonPoints[i2 * 4 + 2] = corner.stopX;
+ cutPolygonPoints[i2 * 4 + 3] = corner.stopY;
+ var squaredDistance = Math.pow(corner.cx - x5, 2) + Math.pow(corner.cy - y5, 2);
+ if (squaredDistance <= Math.pow(corner.radius, 2)) {
+ return true;
+ }
+ }
+ return pointInsidePolygonPoints(x5, y5, cutPolygonPoints);
+ }, "pointInsideRoundPolygon");
+ joinLines = /* @__PURE__ */ __name(function joinLines2(lineSet) {
+ var vertices2 = new Array(lineSet.length / 2);
+ var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;
+ var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;
+ for (var i2 = 0; i2 < lineSet.length / 4; i2++) {
+ currentLineStartX = lineSet[i2 * 4];
+ currentLineStartY = lineSet[i2 * 4 + 1];
+ currentLineEndX = lineSet[i2 * 4 + 2];
+ currentLineEndY = lineSet[i2 * 4 + 3];
+ if (i2 < lineSet.length / 4 - 1) {
+ nextLineStartX = lineSet[(i2 + 1) * 4];
+ nextLineStartY = lineSet[(i2 + 1) * 4 + 1];
+ nextLineEndX = lineSet[(i2 + 1) * 4 + 2];
+ nextLineEndY = lineSet[(i2 + 1) * 4 + 3];
+ } else {
+ nextLineStartX = lineSet[0];
+ nextLineStartY = lineSet[1];
+ nextLineEndX = lineSet[2];
+ nextLineEndY = lineSet[3];
+ }
+ var intersection3 = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);
+ vertices2[i2 * 2] = intersection3[0];
+ vertices2[i2 * 2 + 1] = intersection3[1];
+ }
+ return vertices2;
+ }, "joinLines");
+ expandPolygon = /* @__PURE__ */ __name(function expandPolygon2(points, pad3) {
+ var expandedLineSet = new Array(points.length * 2);
+ var currentPointX, currentPointY, nextPointX, nextPointY;
+ for (var i2 = 0; i2 < points.length / 2; i2++) {
+ currentPointX = points[i2 * 2];
+ currentPointY = points[i2 * 2 + 1];
+ if (i2 < points.length / 2 - 1) {
+ nextPointX = points[(i2 + 1) * 2];
+ nextPointY = points[(i2 + 1) * 2 + 1];
+ } else {
+ nextPointX = points[0];
+ nextPointY = points[1];
+ }
+ var offsetX = nextPointY - currentPointY;
+ var offsetY = -(nextPointX - currentPointX);
+ var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);
+ var normalizedOffsetX = offsetX / offsetLength;
+ var normalizedOffsetY = offsetY / offsetLength;
+ expandedLineSet[i2 * 4] = currentPointX + normalizedOffsetX * pad3;
+ expandedLineSet[i2 * 4 + 1] = currentPointY + normalizedOffsetY * pad3;
+ expandedLineSet[i2 * 4 + 2] = nextPointX + normalizedOffsetX * pad3;
+ expandedLineSet[i2 * 4 + 3] = nextPointY + normalizedOffsetY * pad3;
+ }
+ return expandedLineSet;
+ }, "expandPolygon");
+ intersectLineEllipse = /* @__PURE__ */ __name(function intersectLineEllipse2(x5, y5, centerX, centerY, ellipseWradius, ellipseHradius) {
+ var dispX = centerX - x5;
+ var dispY = centerY - y5;
+ dispX /= ellipseWradius;
+ dispY /= ellipseHradius;
+ var len = Math.sqrt(dispX * dispX + dispY * dispY);
+ var newLength = len - 1;
+ if (newLength < 0) {
+ return [];
+ }
+ var lenProportion = newLength / len;
+ return [(centerX - x5) * lenProportion + x5, (centerY - y5) * lenProportion + y5];
+ }, "intersectLineEllipse");
+ checkInEllipse = /* @__PURE__ */ __name(function checkInEllipse2(x5, y5, width3, height2, centerX, centerY, padding3) {
+ x5 -= centerX;
+ y5 -= centerY;
+ x5 /= width3 / 2 + padding3;
+ y5 /= height2 / 2 + padding3;
+ return x5 * x5 + y5 * y5 <= 1;
+ }, "checkInEllipse");
+ intersectLineCircle = /* @__PURE__ */ __name(function intersectLineCircle2(x1, y1, x22, y22, centerX, centerY, radius2) {
+ var d2 = [x22 - x1, y22 - y1];
+ var f3 = [x1 - centerX, y1 - centerY];
+ var a2 = d2[0] * d2[0] + d2[1] * d2[1];
+ var b2 = 2 * (f3[0] * d2[0] + f3[1] * d2[1]);
+ var c3 = f3[0] * f3[0] + f3[1] * f3[1] - radius2 * radius2;
+ var discriminant = b2 * b2 - 4 * a2 * c3;
+ if (discriminant < 0) {
+ return [];
+ }
+ var t13 = (-b2 + Math.sqrt(discriminant)) / (2 * a2);
+ var t22 = (-b2 - Math.sqrt(discriminant)) / (2 * a2);
+ var tMin = Math.min(t13, t22);
+ var tMax = Math.max(t13, t22);
+ var inRangeParams = [];
+ if (tMin >= 0 && tMin <= 1) {
+ inRangeParams.push(tMin);
+ }
+ if (tMax >= 0 && tMax <= 1) {
+ inRangeParams.push(tMax);
+ }
+ if (inRangeParams.length === 0) {
+ return [];
+ }
+ var nearIntersectionX = inRangeParams[0] * d2[0] + x1;
+ var nearIntersectionY = inRangeParams[0] * d2[1] + y1;
+ if (inRangeParams.length > 1) {
+ if (inRangeParams[0] == inRangeParams[1]) {
+ return [nearIntersectionX, nearIntersectionY];
+ } else {
+ var farIntersectionX = inRangeParams[1] * d2[0] + x1;
+ var farIntersectionY = inRangeParams[1] * d2[1] + y1;
+ return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];
+ }
+ } else {
+ return [nearIntersectionX, nearIntersectionY];
+ }
+ }, "intersectLineCircle");
+ midOfThree = /* @__PURE__ */ __name(function midOfThree2(a2, b2, c3) {
+ if (b2 <= a2 && a2 <= c3 || c3 <= a2 && a2 <= b2) {
+ return a2;
+ } else if (a2 <= b2 && b2 <= c3 || c3 <= b2 && b2 <= a2) {
+ return b2;
+ } else {
+ return c3;
+ }
+ }, "midOfThree");
+ finiteLinesIntersect = /* @__PURE__ */ __name(function finiteLinesIntersect2(x1, y1, x22, y22, x32, y32, x42, y42, infiniteLines) {
+ var dx13 = x1 - x32;
+ var dx21 = x22 - x1;
+ var dx43 = x42 - x32;
+ var dy13 = y1 - y32;
+ var dy21 = y22 - y1;
+ var dy43 = y42 - y32;
+ var ua_t = dx43 * dy13 - dy43 * dx13;
+ var ub_t = dx21 * dy13 - dy21 * dx13;
+ var u_b = dy43 * dx21 - dx43 * dy21;
+ if (u_b !== 0) {
+ var ua = ua_t / u_b;
+ var ub = ub_t / u_b;
+ var flptThreshold = 1e-3;
+ var _min = 0 - flptThreshold;
+ var _max = 1 + flptThreshold;
+ if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {
+ return [x1 + ua * dx21, y1 + ua * dy21];
+ } else {
+ if (!infiniteLines) {
+ return [];
+ } else {
+ return [x1 + ua * dx21, y1 + ua * dy21];
}
- function gee(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- a.b = 1;
- nde(a);
- b = null;
- if (a.c == 0 && a.a == 94) {
- nde(a);
- b = (wfe(), wfe(), new $fe(4));
- Ufe(b, 0, lxe);
- h = new $fe(4);
- } else {
- h = (wfe(), wfe(), new $fe(4));
- }
- e = true;
- while ((j = a.c) != 1) {
- if (j == 0 && a.a == 93 && !e) {
- if (b) {
- Zfe(b, h);
- h = b;
- }
- break;
- }
- c2 = a.a;
- d = false;
- if (j == 10) {
- switch (c2) {
- case 100:
- case 68:
- case 119:
- case 87:
- case 115:
- case 83:
- Xfe(h, fee(c2));
- d = true;
- break;
- case 105:
- case 73:
- case 99:
- case 67:
- c2 = (Xfe(h, fee(c2)), -1);
- c2 < 0 && (d = true);
- break;
- case 112:
- case 80:
- i3 = tde(a, c2);
- if (!i3)
- throw vbb(new mde(tvd((h0d(), Iue))));
- Xfe(h, i3);
- d = true;
- break;
- default:
- c2 = eee(a);
- }
- } else if (j == 24 && !e) {
- if (b) {
- Zfe(b, h);
- h = b;
- }
- f2 = gee(a);
- Zfe(h, f2);
- if (a.c != 0 || a.a != 93)
- throw vbb(new mde(tvd((h0d(), Mue))));
- break;
- }
- nde(a);
- if (!d) {
- if (j == 0) {
- if (c2 == 91)
- throw vbb(new mde(tvd((h0d(), Nue))));
- if (c2 == 93)
- throw vbb(new mde(tvd((h0d(), Oue))));
- if (c2 == 45 && !e && a.a != 93)
- throw vbb(new mde(tvd((h0d(), Pue))));
- }
- if (a.c != 0 || a.a != 45 || c2 == 45 && e) {
- Ufe(h, c2, c2);
- } else {
- nde(a);
- if ((j = a.c) == 1)
- throw vbb(new mde(tvd((h0d(), Kue))));
- if (j == 0 && a.a == 93) {
- Ufe(h, c2, c2);
- Ufe(h, 45, 45);
- } else if (j == 0 && a.a == 93 || j == 24) {
- throw vbb(new mde(tvd((h0d(), Pue))));
- } else {
- g = a.a;
- if (j == 0) {
- if (g == 91)
- throw vbb(new mde(tvd((h0d(), Nue))));
- if (g == 93)
- throw vbb(new mde(tvd((h0d(), Oue))));
- if (g == 45)
- throw vbb(new mde(tvd((h0d(), Pue))));
- } else
- j == 10 && (g = eee(a));
- nde(a);
- if (c2 > g)
- throw vbb(new mde(tvd((h0d(), Sue))));
- Ufe(h, c2, g);
- }
- }
- }
- e = false;
- }
- if (a.c == 1)
- throw vbb(new mde(tvd((h0d(), Kue))));
- Yfe(h);
- Vfe(h);
- a.b = 0;
- nde(a);
- return h;
- }
- function xZd(a) {
- Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#decimal"]));
- Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#integer"]));
- Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#boolean"]));
- Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EBoolean", fue, "EBoolean:Object"]));
- Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#byte"]));
- Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#hexBinary"]));
- Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EByte", fue, "EByte:Object"]));
- Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EChar", fue, "EChar:Object"]));
- Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#double"]));
- Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EDouble", fue, "EDouble:Object"]));
- Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#float"]));
- Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EFloat", fue, "EFloat:Object"]));
- Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#int"]));
- Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EInt", fue, "EInt:Object"]));
- Bnd(a.N, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#long"]));
- Bnd(a.O, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "ELong", fue, "ELong:Object"]));
- Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#short"]));
- Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EShort", fue, "EShort:Object"]));
- Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#string"]));
- }
- function fRc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
- if (a.c.length == 1) {
- return tCb(0, a.c.length), BD(a.c[0], 135);
- } else if (a.c.length <= 0) {
- return new SRc();
- }
- for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
- g = BD(mlb(i3), 135);
- s = 0;
- o2 = Ohe;
- p = Ohe;
- m = Rie;
- n = Rie;
- for (r = Jsb(g.b, 0); r.b != r.d.c; ) {
- q = BD(Xsb(r), 86);
- s += BD(vNb(q, (JTc(), ETc)), 19).a;
- o2 = $wnd.Math.min(o2, q.e.a);
- p = $wnd.Math.min(p, q.e.b);
- m = $wnd.Math.max(m, q.e.a + q.f.a);
- n = $wnd.Math.max(n, q.e.b + q.f.b);
- }
- yNb(g, (JTc(), ETc), meb(s));
- yNb(g, (mTc(), WSc), new f7c(o2, p));
- yNb(g, VSc, new f7c(m, n));
- }
- mmb();
- Okb(a, new jRc());
- v = new SRc();
- tNb(v, (tCb(0, a.c.length), BD(a.c[0], 94)));
- l = 0;
- D3 = 0;
- for (j = new olb(a); j.a < j.c.c.length; ) {
- g = BD(mlb(j), 135);
- w2 = c7c(R6c(BD(vNb(g, (mTc(), VSc)), 8)), BD(vNb(g, WSc), 8));
- l = $wnd.Math.max(l, w2.a);
- D3 += w2.a * w2.b;
- }
- l = $wnd.Math.max(l, $wnd.Math.sqrt(D3) * Edb(ED(vNb(v, (JTc(), uTc)))));
- A = Edb(ED(vNb(v, HTc)));
- F = 0;
- G = 0;
- k = 0;
- b = A;
- for (h = new olb(a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 135);
- w2 = c7c(R6c(BD(vNb(g, (mTc(), VSc)), 8)), BD(vNb(g, WSc), 8));
- if (F + w2.a > l) {
- F = 0;
- G += k + A;
- k = 0;
- }
- eRc(v, g, F, G);
- b = $wnd.Math.max(b, F + w2.a);
- k = $wnd.Math.max(k, w2.b);
- F += w2.a + A;
- }
- u2 = new Lqb();
- c2 = new Lqb();
- for (C = new olb(a); C.a < C.c.c.length; ) {
- B = BD(mlb(C), 135);
- d = Ccb(DD(vNb(B, (Y9c(), y8c))));
- t4 = !B.q ? kmb : B.q;
- for (f2 = t4.vc().Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 42);
- if (Mhb(u2, e.cd())) {
- if (PD(BD(e.cd(), 146).wg()) !== PD(e.dd())) {
- if (d && Mhb(c2, e.cd())) {
- Zfb();
- "Found different values for property " + BD(e.cd(), 146).tg() + " in components.";
- } else {
- Rhb(u2, BD(e.cd(), 146), e.dd());
- yNb(v, BD(e.cd(), 146), e.dd());
- d && Rhb(c2, BD(e.cd(), 146), e.dd());
- }
- }
- } else {
- Rhb(u2, BD(e.cd(), 146), e.dd());
- yNb(v, BD(e.cd(), 146), e.dd());
- }
- }
- }
- return v;
- }
- function MYb() {
- MYb = ccb;
- xXb();
- LYb = new Hp();
- Rc(LYb, (Ucd(), Gcd), Fcd);
- Rc(LYb, Qcd, Fcd);
- Rc(LYb, Hcd, Fcd);
- Rc(LYb, Ncd, Fcd);
- Rc(LYb, Mcd, Fcd);
- Rc(LYb, Kcd, Fcd);
- Rc(LYb, Ncd, Gcd);
- Rc(LYb, Fcd, Bcd);
- Rc(LYb, Gcd, Bcd);
- Rc(LYb, Qcd, Bcd);
- Rc(LYb, Hcd, Bcd);
- Rc(LYb, Lcd, Bcd);
- Rc(LYb, Ncd, Bcd);
- Rc(LYb, Mcd, Bcd);
- Rc(LYb, Kcd, Bcd);
- Rc(LYb, Ecd, Bcd);
- Rc(LYb, Fcd, Ocd);
- Rc(LYb, Gcd, Ocd);
- Rc(LYb, Bcd, Ocd);
- Rc(LYb, Qcd, Ocd);
- Rc(LYb, Hcd, Ocd);
- Rc(LYb, Lcd, Ocd);
- Rc(LYb, Ncd, Ocd);
- Rc(LYb, Ecd, Ocd);
- Rc(LYb, Pcd, Ocd);
- Rc(LYb, Mcd, Ocd);
- Rc(LYb, Icd, Ocd);
- Rc(LYb, Kcd, Ocd);
- Rc(LYb, Gcd, Qcd);
- Rc(LYb, Hcd, Qcd);
- Rc(LYb, Ncd, Qcd);
- Rc(LYb, Kcd, Qcd);
- Rc(LYb, Gcd, Hcd);
- Rc(LYb, Qcd, Hcd);
- Rc(LYb, Ncd, Hcd);
- Rc(LYb, Hcd, Hcd);
- Rc(LYb, Mcd, Hcd);
- Rc(LYb, Fcd, Ccd);
- Rc(LYb, Gcd, Ccd);
- Rc(LYb, Bcd, Ccd);
- Rc(LYb, Ocd, Ccd);
- Rc(LYb, Qcd, Ccd);
- Rc(LYb, Hcd, Ccd);
- Rc(LYb, Lcd, Ccd);
- Rc(LYb, Ncd, Ccd);
- Rc(LYb, Pcd, Ccd);
- Rc(LYb, Ecd, Ccd);
- Rc(LYb, Kcd, Ccd);
- Rc(LYb, Mcd, Ccd);
- Rc(LYb, Jcd, Ccd);
- Rc(LYb, Fcd, Pcd);
- Rc(LYb, Gcd, Pcd);
- Rc(LYb, Bcd, Pcd);
- Rc(LYb, Qcd, Pcd);
- Rc(LYb, Hcd, Pcd);
- Rc(LYb, Lcd, Pcd);
- Rc(LYb, Ncd, Pcd);
- Rc(LYb, Ecd, Pcd);
- Rc(LYb, Kcd, Pcd);
- Rc(LYb, Icd, Pcd);
- Rc(LYb, Jcd, Pcd);
- Rc(LYb, Gcd, Ecd);
- Rc(LYb, Qcd, Ecd);
- Rc(LYb, Hcd, Ecd);
- Rc(LYb, Ncd, Ecd);
- Rc(LYb, Pcd, Ecd);
- Rc(LYb, Kcd, Ecd);
- Rc(LYb, Mcd, Ecd);
- Rc(LYb, Fcd, Dcd);
- Rc(LYb, Gcd, Dcd);
- Rc(LYb, Bcd, Dcd);
- Rc(LYb, Qcd, Dcd);
- Rc(LYb, Hcd, Dcd);
- Rc(LYb, Lcd, Dcd);
- Rc(LYb, Ncd, Dcd);
- Rc(LYb, Ecd, Dcd);
- Rc(LYb, Kcd, Dcd);
- Rc(LYb, Gcd, Mcd);
- Rc(LYb, Bcd, Mcd);
- Rc(LYb, Ocd, Mcd);
- Rc(LYb, Hcd, Mcd);
- Rc(LYb, Fcd, Icd);
- Rc(LYb, Gcd, Icd);
- Rc(LYb, Ocd, Icd);
- Rc(LYb, Qcd, Icd);
- Rc(LYb, Hcd, Icd);
- Rc(LYb, Lcd, Icd);
- Rc(LYb, Ncd, Icd);
- Rc(LYb, Ncd, Jcd);
- Rc(LYb, Hcd, Jcd);
- Rc(LYb, Ecd, Fcd);
- Rc(LYb, Ecd, Qcd);
- Rc(LYb, Ecd, Bcd);
- Rc(LYb, Lcd, Fcd);
- Rc(LYb, Lcd, Gcd);
- Rc(LYb, Lcd, Ocd);
- }
- function HVd(a, b) {
- switch (a.e) {
- case 0:
- case 2:
- case 4:
- case 6:
- case 42:
- case 44:
- case 46:
- case 48:
- case 8:
- case 10:
- case 12:
- case 14:
- case 16:
- case 18:
- case 20:
- case 22:
- case 24:
- case 26:
- case 28:
- case 30:
- case 32:
- case 34:
- case 36:
- case 38:
- return new U5d(a.b, a.a, b, a.c);
- case 1:
- return new BMd(a.a, b, bLd(b.Tg(), a.c));
- case 43:
- return new N4d(a.a, b, bLd(b.Tg(), a.c));
- case 3:
- return new xMd(a.a, b, bLd(b.Tg(), a.c));
- case 45:
- return new K4d(a.a, b, bLd(b.Tg(), a.c));
- case 41:
- return new dId(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c));
- case 50:
- return new c6d(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c));
- case 5:
- return new Q4d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 47:
- return new U4d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 7:
- return new cUd(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 49:
- return new gUd(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 9:
- return new I4d(a.a, b, bLd(b.Tg(), a.c));
- case 11:
- return new G4d(a.a, b, bLd(b.Tg(), a.c));
- case 13:
- return new C4d(a.a, b, bLd(b.Tg(), a.c));
- case 15:
- return new k2d(a.a, b, bLd(b.Tg(), a.c));
- case 17:
- return new c5d(a.a, b, bLd(b.Tg(), a.c));
- case 19:
- return new _4d(a.a, b, bLd(b.Tg(), a.c));
- case 21:
- return new X4d(a.a, b, bLd(b.Tg(), a.c));
- case 23:
- return new pMd(a.a, b, bLd(b.Tg(), a.c));
- case 25:
- return new D5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 27:
- return new y5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 29:
- return new t5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 31:
- return new n5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 33:
- return new A5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 35:
- return new v5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 37:
- return new p5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 39:
- return new i5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
- case 40:
- return new u3d(b, bLd(b.Tg(), a.c));
- default:
- throw vbb(new hz("Unknown feature style: " + a.e));
- }
- }
- function BMc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- Odd(c2, "Brandes & Koepf node placement", 1);
- a.a = b;
- a.c = KMc(b);
- d = BD(vNb(b, (Nyc(), zxc)), 274);
- n = Ccb(DD(vNb(b, Axc)));
- a.d = d == (lrc(), irc) && !n || d == frc;
- AMc(a, b);
- v = null;
- w2 = null;
- r = null;
- s = null;
- q = (Xj(4, Jie), new Skb(4));
- switch (BD(vNb(b, zxc), 274).g) {
- case 3:
- r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc));
- q.c[q.c.length] = r;
- break;
- case 1:
- s = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), WLc));
- q.c[q.c.length] = s;
- break;
- case 4:
- v = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), XLc));
- q.c[q.c.length] = v;
- break;
- case 2:
- w2 = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), XLc));
- q.c[q.c.length] = w2;
- break;
- default:
- r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc));
- s = new ULc(b, a.c.d, dMc, WLc);
- v = new ULc(b, a.c.d, cMc, XLc);
- w2 = new ULc(b, a.c.d, dMc, XLc);
- q.c[q.c.length] = v;
- q.c[q.c.length] = w2;
- q.c[q.c.length] = r;
- q.c[q.c.length] = s;
- }
- e = new mMc(b, a.c);
- for (h = new olb(q); h.a < h.c.c.length; ) {
- f2 = BD(mlb(h), 180);
- lMc(e, f2, a.b);
- kMc(f2);
- }
- m = new rMc(b, a.c);
- for (i3 = new olb(q); i3.a < i3.c.c.length; ) {
- f2 = BD(mlb(i3), 180);
- oMc(m, f2);
- }
- if (c2.n) {
- for (j = new olb(q); j.a < j.c.c.length; ) {
- f2 = BD(mlb(j), 180);
- Sdd(c2, f2 + " size is " + SLc(f2));
- }
- }
- l = null;
- if (a.d) {
- k = yMc(a, q, a.c.d);
- xMc(b, k, c2) && (l = k);
- }
- if (!l) {
- for (j = new olb(q); j.a < j.c.c.length; ) {
- f2 = BD(mlb(j), 180);
- xMc(b, f2, c2) && (!l || SLc(l) > SLc(f2)) && (l = f2);
- }
- }
- !l && (l = (tCb(0, q.c.length), BD(q.c[0], 180)));
- for (p = new olb(b.b); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 29);
- for (u2 = new olb(o2.a); u2.a < u2.c.c.length; ) {
- t4 = BD(mlb(u2), 10);
- t4.n.b = Edb(l.p[t4.p]) + Edb(l.d[t4.p]);
- }
- }
- if (c2.n) {
- Sdd(c2, "Chosen node placement: " + l);
- Sdd(c2, "Blocks: " + DMc(l));
- Sdd(c2, "Classes: " + EMc(l, c2));
- Sdd(c2, "Marked edges: " + a.b);
- }
- for (g = new olb(q); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 180);
- f2.g = null;
- f2.b = null;
- f2.a = null;
- f2.d = null;
- f2.j = null;
- f2.i = null;
- f2.p = null;
- }
- IMc(a.c);
- a.b.a.$b();
- Qdd(c2);
- }
- function V1b(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
- g = new Psb();
- v = BD(vNb(c2, (Nyc(), Lwc)), 103);
- o2 = 0;
- ye(g, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a));
- while (g.b != 0) {
- j = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 33);
- (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(j, xwc))) && jkd(j, (wtc(), Zsc), meb(o2++));
- q = !Ccb(DD(hkd(j, Jxc)));
- if (q) {
- l = (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a).i != 0;
- n = S1b(j);
- m = PD(hkd(j, axc)) === PD((hbd(), ebd));
- F = !ikd(j, (Y9c(), o8c)) || dfb(GD(hkd(j, o8c)), sne);
- t4 = null;
- if (F && m && (l || n)) {
- t4 = P1b(j);
- yNb(t4, Lwc, v);
- wNb(t4, hyc) && Wyc(new ezc(Edb(ED(vNb(t4, hyc)))), t4);
- if (BD(hkd(j, Fxc), 174).gc() != 0) {
- k = t4;
- MAb(new YAb(null, (!j.c && (j.c = new cUd(F2, j, 9, 9)), new Kub(j.c, 16))), new k2b(k));
- L1b(j, t4);
- }
- }
- w2 = c2;
- A = BD(Ohb(a.a, Xod(j)), 10);
- !!A && (w2 = A.e);
- s = $1b(a, j, w2);
- if (t4) {
- s.e = t4;
- t4.e = s;
- ye(g, (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a));
- }
- }
- }
- o2 = 0;
- Gsb(g, b, g.c.b, g.c);
- while (g.b != 0) {
- f2 = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 33);
- for (i3 = new Fyd((!f2.b && (f2.b = new cUd(B2, f2, 12, 3)), f2.b)); i3.e != i3.i.gc(); ) {
- h = BD(Dyd(i3), 79);
- N1b(h);
- (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && jkd(h, (wtc(), Zsc), meb(o2++));
- C = atd(BD(qud((!h.b && (h.b = new y5d(z2, h, 4, 7)), h.b), 0), 82));
- D3 = atd(BD(qud((!h.c && (h.c = new y5d(z2, h, 5, 8)), h.c), 0), 82));
- if (Ccb(DD(hkd(h, Jxc))) || Ccb(DD(hkd(C, Jxc))) || Ccb(DD(hkd(D3, Jxc)))) {
- continue;
- }
- p = Qld(h) && Ccb(DD(hkd(C, fxc))) && Ccb(DD(hkd(h, gxc)));
- u2 = f2;
- p || ntd(D3, C) ? u2 = C : ntd(C, D3) && (u2 = D3);
- w2 = c2;
- A = BD(Ohb(a.a, u2), 10);
- !!A && (w2 = A.e);
- r = X1b(a, h, u2, w2);
- yNb(r, (wtc(), xsc), R1b(a, h, b, c2));
- }
- m = PD(hkd(f2, axc)) === PD((hbd(), ebd));
- if (m) {
- for (e = new Fyd((!f2.a && (f2.a = new cUd(E2, f2, 10, 11)), f2.a)); e.e != e.i.gc(); ) {
- d = BD(Dyd(e), 33);
- F = !ikd(d, (Y9c(), o8c)) || dfb(GD(hkd(d, o8c)), sne);
- B = PD(hkd(d, axc)) === PD(ebd);
- F && B && (Gsb(g, d, g.c.b, g.c), true);
- }
- }
+ }
+ } else {
+ if (ua_t === 0 || ub_t === 0) {
+ if (midOfThree(x1, x22, x42) === x42) {
+ return [x42, y42];
+ }
+ if (midOfThree(x1, x22, x32) === x32) {
+ return [x32, y32];
+ }
+ if (midOfThree(x32, x42, x22) === x22) {
+ return [x22, y22];
+ }
+ return [];
+ } else {
+ return [];
+ }
+ }
+ }, "finiteLinesIntersect");
+ polygonIntersectLine = /* @__PURE__ */ __name(function polygonIntersectLine2(x5, y5, basePoints, centerX, centerY, width3, height2, padding3) {
+ var intersections = [];
+ var intersection3;
+ var transformedPoints = new Array(basePoints.length);
+ var doTransform = true;
+ if (width3 == null) {
+ doTransform = false;
+ }
+ var points;
+ if (doTransform) {
+ for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) {
+ transformedPoints[i2 * 2] = basePoints[i2 * 2] * width3 + centerX;
+ transformedPoints[i2 * 2 + 1] = basePoints[i2 * 2 + 1] * height2 + centerY;
+ }
+ if (padding3 > 0) {
+ var expandedLineSet = expandPolygon(transformedPoints, -padding3);
+ points = joinLines(expandedLineSet);
+ } else {
+ points = transformedPoints;
+ }
+ } else {
+ points = basePoints;
+ }
+ var currentX, currentY, nextX, nextY;
+ for (var _i2 = 0; _i2 < points.length / 2; _i2++) {
+ currentX = points[_i2 * 2];
+ currentY = points[_i2 * 2 + 1];
+ if (_i2 < points.length / 2 - 1) {
+ nextX = points[(_i2 + 1) * 2];
+ nextY = points[(_i2 + 1) * 2 + 1];
+ } else {
+ nextX = points[0];
+ nextY = points[1];
+ }
+ intersection3 = finiteLinesIntersect(x5, y5, centerX, centerY, currentX, currentY, nextX, nextY);
+ if (intersection3.length !== 0) {
+ intersections.push(intersection3[0], intersection3[1]);
+ }
+ }
+ return intersections;
+ }, "polygonIntersectLine");
+ roundPolygonIntersectLine = /* @__PURE__ */ __name(function roundPolygonIntersectLine2(x5, y5, basePoints, centerX, centerY, width3, height2, padding3, corners) {
+ var intersections = [];
+ var intersection3;
+ var lines = new Array(basePoints.length * 2);
+ corners.forEach(function(corner, i3) {
+ if (i3 === 0) {
+ lines[lines.length - 2] = corner.startX;
+ lines[lines.length - 1] = corner.startY;
+ } else {
+ lines[i3 * 4 - 2] = corner.startX;
+ lines[i3 * 4 - 1] = corner.startY;
+ }
+ lines[i3 * 4] = corner.stopX;
+ lines[i3 * 4 + 1] = corner.stopY;
+ intersection3 = intersectLineCircle(x5, y5, centerX, centerY, corner.cx, corner.cy, corner.radius);
+ if (intersection3.length !== 0) {
+ intersections.push(intersection3[0], intersection3[1]);
+ }
+ });
+ for (var i2 = 0; i2 < lines.length / 4; i2++) {
+ intersection3 = finiteLinesIntersect(x5, y5, centerX, centerY, lines[i2 * 4], lines[i2 * 4 + 1], lines[i2 * 4 + 2], lines[i2 * 4 + 3], false);
+ if (intersection3.length !== 0) {
+ intersections.push(intersection3[0], intersection3[1]);
+ }
+ }
+ if (intersections.length > 2) {
+ var lowestIntersection = [intersections[0], intersections[1]];
+ var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x5, 2) + Math.pow(lowestIntersection[1] - y5, 2);
+ for (var _i3 = 1; _i3 < intersections.length / 2; _i3++) {
+ var squaredDistance = Math.pow(intersections[_i3 * 2] - x5, 2) + Math.pow(intersections[_i3 * 2 + 1] - y5, 2);
+ if (squaredDistance <= lowestSquaredDistance) {
+ lowestIntersection[0] = intersections[_i3 * 2];
+ lowestIntersection[1] = intersections[_i3 * 2 + 1];
+ lowestSquaredDistance = squaredDistance;
+ }
+ }
+ return lowestIntersection;
+ }
+ return intersections;
+ }, "roundPolygonIntersectLine");
+ shortenIntersection = /* @__PURE__ */ __name(function shortenIntersection2(intersection3, offset, amount) {
+ var disp = [intersection3[0] - offset[0], intersection3[1] - offset[1]];
+ var length2 = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);
+ var lenRatio = (length2 - amount) / length2;
+ if (lenRatio < 0) {
+ lenRatio = 1e-5;
+ }
+ return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];
+ }, "shortenIntersection");
+ generateUnitNgonPointsFitToSquare = /* @__PURE__ */ __name(function generateUnitNgonPointsFitToSquare2(sides, rotationRadians) {
+ var points = generateUnitNgonPoints(sides, rotationRadians);
+ points = fitPolygonToSquare(points);
+ return points;
+ }, "generateUnitNgonPointsFitToSquare");
+ fitPolygonToSquare = /* @__PURE__ */ __name(function fitPolygonToSquare2(points) {
+ var x5, y5;
+ var sides = points.length / 2;
+ var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
+ for (var i2 = 0; i2 < sides; i2++) {
+ x5 = points[2 * i2];
+ y5 = points[2 * i2 + 1];
+ minX = Math.min(minX, x5);
+ maxX = Math.max(maxX, x5);
+ minY = Math.min(minY, y5);
+ maxY = Math.max(maxY, y5);
+ }
+ var sx = 2 / (maxX - minX);
+ var sy = 2 / (maxY - minY);
+ for (var _i4 = 0; _i4 < sides; _i4++) {
+ x5 = points[2 * _i4] = points[2 * _i4] * sx;
+ y5 = points[2 * _i4 + 1] = points[2 * _i4 + 1] * sy;
+ minX = Math.min(minX, x5);
+ maxX = Math.max(maxX, x5);
+ minY = Math.min(minY, y5);
+ maxY = Math.max(maxY, y5);
+ }
+ if (minY < -1) {
+ for (var _i5 = 0; _i5 < sides; _i5++) {
+ y5 = points[2 * _i5 + 1] = points[2 * _i5 + 1] + (-1 - minY);
+ }
+ }
+ return points;
+ }, "fitPolygonToSquare");
+ generateUnitNgonPoints = /* @__PURE__ */ __name(function generateUnitNgonPoints2(sides, rotationRadians) {
+ var increment = 1 / sides * 2 * Math.PI;
+ var startAngle = sides % 2 === 0 ? Math.PI / 2 + increment / 2 : Math.PI / 2;
+ startAngle += rotationRadians;
+ var points = new Array(sides * 2);
+ var currentAngle;
+ for (var i2 = 0; i2 < sides; i2++) {
+ currentAngle = i2 * increment + startAngle;
+ points[2 * i2] = Math.cos(currentAngle);
+ points[2 * i2 + 1] = Math.sin(-currentAngle);
+ }
+ return points;
+ }, "generateUnitNgonPoints");
+ getRoundRectangleRadius = /* @__PURE__ */ __name(function getRoundRectangleRadius2(width3, height2) {
+ return Math.min(width3 / 4, height2 / 4, 8);
+ }, "getRoundRectangleRadius");
+ getRoundPolygonRadius = /* @__PURE__ */ __name(function getRoundPolygonRadius2(width3, height2) {
+ return Math.min(width3 / 10, height2 / 10, 8);
+ }, "getRoundPolygonRadius");
+ getCutRectangleCornerLength = /* @__PURE__ */ __name(function getCutRectangleCornerLength2() {
+ return 8;
+ }, "getCutRectangleCornerLength");
+ bezierPtsToQuadCoeff = /* @__PURE__ */ __name(function bezierPtsToQuadCoeff2(p0, p1, p22) {
+ return [p0 - 2 * p1 + p22, 2 * (p1 - p0), p0];
+ }, "bezierPtsToQuadCoeff");
+ getBarrelCurveConstants = /* @__PURE__ */ __name(function getBarrelCurveConstants2(width3, height2) {
+ return {
+ heightOffset: Math.min(15, 0.05 * height2),
+ widthOffset: Math.min(100, 0.25 * width3),
+ ctrlPtOffsetPct: 0.05
+ };
+ }, "getBarrelCurveConstants");
+ pageRankDefaults = defaults$g({
+ dampingFactor: 0.8,
+ precision: 1e-6,
+ iterations: 200,
+ weight: /* @__PURE__ */ __name(function weight5(edge) {
+ return 1;
+ }, "weight")
+ });
+ elesfn$o = {
+ pageRank: /* @__PURE__ */ __name(function pageRank(options3) {
+ var _pageRankDefaults = pageRankDefaults(options3), dampingFactor = _pageRankDefaults.dampingFactor, precision = _pageRankDefaults.precision, iterations = _pageRankDefaults.iterations, weight8 = _pageRankDefaults.weight;
+ var cy = this._private.cy;
+ var _this$byGroup = this.byGroup(), nodes6 = _this$byGroup.nodes, edges5 = _this$byGroup.edges;
+ var numNodes = nodes6.length;
+ var numNodesSqd = numNodes * numNodes;
+ var numEdges = edges5.length;
+ var matrix = new Array(numNodesSqd);
+ var columnSum = new Array(numNodes);
+ var additionalProb = (1 - dampingFactor) / numNodes;
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ for (var j2 = 0; j2 < numNodes; j2++) {
+ var n2 = i2 * numNodes + j2;
+ matrix[n2] = 0;
+ }
+ columnSum[i2] = 0;
+ }
+ for (var _i = 0; _i < numEdges; _i++) {
+ var edge = edges5[_i];
+ var srcId = edge.data("source");
+ var tgtId = edge.data("target");
+ if (srcId === tgtId) {
+ continue;
+ }
+ var s2 = nodes6.indexOfId(srcId);
+ var t4 = nodes6.indexOfId(tgtId);
+ var w3 = weight8(edge);
+ var _n = t4 * numNodes + s2;
+ matrix[_n] += w3;
+ columnSum[s2] += w3;
+ }
+ var p3 = 1 / numNodes + additionalProb;
+ for (var _j = 0; _j < numNodes; _j++) {
+ if (columnSum[_j] === 0) {
+ for (var _i2 = 0; _i2 < numNodes; _i2++) {
+ var _n2 = _i2 * numNodes + _j;
+ matrix[_n2] = p3;
+ }
+ } else {
+ for (var _i3 = 0; _i3 < numNodes; _i3++) {
+ var _n3 = _i3 * numNodes + _j;
+ matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;
}
}
- function vA(a, b, c2, d, e, f2) {
- var g, h, i3, j, k, l, m, n, o2, p, q, r;
- switch (b) {
- case 71:
- h = d.q.getFullYear() - nje >= -1900 ? 1 : 0;
- c2 >= 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [pje, qje])[h]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["BC", "AD"])[h]);
- break;
- case 121:
- kA(a, c2, d);
- break;
- case 77:
- jA(a, c2, d);
- break;
- case 107:
- i3 = e.q.getHours();
- i3 == 0 ? EA(a, 24, c2) : EA(a, i3, c2);
- break;
- case 83:
- iA(a, c2, e);
- break;
- case 69:
- k = d.q.getDay();
- c2 == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[k]) : c2 == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[k]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[k]);
- break;
- case 97:
- e.q.getHours() >= 12 && e.q.getHours() < 24 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[1]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[0]);
- break;
- case 104:
- l = e.q.getHours() % 12;
- l == 0 ? EA(a, 12, c2) : EA(a, l, c2);
- break;
- case 75:
- m = e.q.getHours() % 12;
- EA(a, m, c2);
- break;
- case 72:
- n = e.q.getHours();
- EA(a, n, c2);
- break;
- case 99:
- o2 = d.q.getDay();
- c2 == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[o2]) : c2 == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[o2]) : c2 == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[o2]) : EA(a, o2, 1);
- break;
- case 76:
- p = d.q.getMonth();
- c2 == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[p]) : c2 == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[p]) : c2 == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[p]) : EA(a, p + 1, c2);
- break;
- case 81:
- q = d.q.getMonth() / 3 | 0;
- c2 < 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Q1", "Q2", "Q3", "Q4"])[q]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"])[q]);
- break;
- case 100:
- r = d.q.getDate();
- EA(a, r, c2);
- break;
- case 109:
- j = e.q.getMinutes();
- EA(a, j, c2);
- break;
- case 115:
- g = e.q.getSeconds();
- EA(a, g, c2);
- break;
- case 122:
- c2 < 4 ? Qfb(a, f2.c[0]) : Qfb(a, f2.c[1]);
- break;
- case 118:
- Qfb(a, f2.b);
- break;
- case 90:
- c2 < 3 ? Qfb(a, OA(f2)) : c2 == 3 ? Qfb(a, NA(f2)) : Qfb(a, QA(f2.a));
- break;
- default:
- return false;
+ }
+ var eigenvector = new Array(numNodes);
+ var temp = new Array(numNodes);
+ var previous;
+ for (var _i4 = 0; _i4 < numNodes; _i4++) {
+ eigenvector[_i4] = 1;
+ }
+ for (var iter = 0; iter < iterations; iter++) {
+ for (var _i5 = 0; _i5 < numNodes; _i5++) {
+ temp[_i5] = 0;
+ }
+ for (var _i6 = 0; _i6 < numNodes; _i6++) {
+ for (var _j2 = 0; _j2 < numNodes; _j2++) {
+ var _n4 = _i6 * numNodes + _j2;
+ temp[_i6] += matrix[_n4] * eigenvector[_j2];
}
- return true;
}
- function X1b(a, b, c2, d) {
- var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2;
- N1b(b);
- i3 = BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82);
- k = BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82);
- h = atd(i3);
- j = atd(k);
- g = (!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a).i == 0 ? null : BD(qud((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), 0), 202);
- A = BD(Ohb(a.a, h), 10);
- F = BD(Ohb(a.a, j), 10);
- B = null;
- G = null;
- if (JD(i3, 186)) {
- w2 = BD(Ohb(a.a, i3), 299);
- if (JD(w2, 11)) {
- B = BD(w2, 11);
- } else if (JD(w2, 10)) {
- A = BD(w2, 10);
- B = BD(Ikb(A.j, 0), 11);
- }
- }
- if (JD(k, 186)) {
- D3 = BD(Ohb(a.a, k), 299);
- if (JD(D3, 11)) {
- G = BD(D3, 11);
- } else if (JD(D3, 10)) {
- F = BD(D3, 10);
- G = BD(Ikb(F.j, 0), 11);
- }
- }
- if (!A || !F) {
- throw vbb(new z2c("The source or the target of edge " + b + " could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));
- }
- p = new UZb();
- tNb(p, b);
- yNb(p, (wtc(), $sc), b);
- yNb(p, (Nyc(), jxc), null);
- n = BD(vNb(d, Ksc), 21);
- A == F && n.Fc((Orc(), Nrc));
- if (!B) {
- v = (KAc(), IAc);
- C = null;
- if (!!g && fcd(BD(vNb(A, Vxc), 98))) {
- C = new f7c(g.j, g.k);
- Bfd(C, Mld(b));
- Cfd(C, c2);
- if (ntd(j, h)) {
- v = HAc;
- P6c(C, A.n);
- }
- }
- B = $$b(A, C, v, d);
- }
- if (!G) {
- v = (KAc(), HAc);
- H2 = null;
- if (!!g && fcd(BD(vNb(F, Vxc), 98))) {
- H2 = new f7c(g.b, g.c);
- Bfd(H2, Mld(b));
- Cfd(H2, c2);
- }
- G = $$b(F, H2, v, Q_b(F));
- }
- QZb(p, B);
- RZb(p, G);
- (B.e.c.length > 1 || B.g.c.length > 1 || G.e.c.length > 1 || G.g.c.length > 1) && n.Fc((Orc(), Irc));
- for (m = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); m.e != m.i.gc(); ) {
- l = BD(Dyd(m), 137);
- if (!Ccb(DD(hkd(l, Jxc))) && !!l.a) {
- q = Z1b(l);
- Ekb(p.b, q);
- switch (BD(vNb(q, Qwc), 272).g) {
- case 1:
- case 2:
- n.Fc((Orc(), Grc));
- break;
- case 0:
- n.Fc((Orc(), Erc));
- yNb(q, Qwc, (qad(), nad));
- }
- }
+ inPlaceSumNormalize(temp);
+ previous = eigenvector;
+ eigenvector = temp;
+ temp = previous;
+ var diff2 = 0;
+ for (var _i7 = 0; _i7 < numNodes; _i7++) {
+ var delta = previous[_i7] - eigenvector[_i7];
+ diff2 += delta * delta;
+ }
+ if (diff2 < precision) {
+ break;
+ }
+ }
+ var res = {
+ rank: /* @__PURE__ */ __name(function rank2(node2) {
+ node2 = cy.collection(node2)[0];
+ return eigenvector[nodes6.indexOf(node2)];
+ }, "rank")
+ };
+ return res;
+ }, "pageRank")
+ // pageRank
+ };
+ defaults$f = defaults$g({
+ root: null,
+ weight: /* @__PURE__ */ __name(function weight6(edge) {
+ return 1;
+ }, "weight"),
+ directed: false,
+ alpha: 0
+ });
+ elesfn$n = {
+ degreeCentralityNormalized: /* @__PURE__ */ __name(function degreeCentralityNormalized(options3) {
+ options3 = defaults$f(options3);
+ var cy = this.cy();
+ var nodes6 = this.nodes();
+ var numNodes = nodes6.length;
+ if (!options3.directed) {
+ var degrees3 = {};
+ var maxDegree = 0;
+ for (var i2 = 0; i2 < numNodes; i2++) {
+ var node2 = nodes6[i2];
+ options3.root = node2;
+ var currDegree = this.degreeCentrality(options3);
+ if (maxDegree < currDegree.degree) {
+ maxDegree = currDegree.degree;
}
- f2 = BD(vNb(d, Iwc), 314);
- r = BD(vNb(d, Exc), 315);
- e = f2 == (Rpc(), Opc) || r == (Vzc(), Rzc);
- if (!!g && (!g.a && (g.a = new xMd(y2, g, 5)), g.a).i != 0 && e) {
- s = ofd(g);
- o2 = new s7c();
- for (u2 = Jsb(s, 0); u2.b != u2.d.c; ) {
- t4 = BD(Xsb(u2), 8);
- Dsb(o2, new g7c(t4));
+ degrees3[node2.id()] = currDegree.degree;
+ }
+ return {
+ degree: /* @__PURE__ */ __name(function degree(node3) {
+ if (maxDegree === 0) {
+ return 0;
}
- yNb(p, _sc, o2);
- }
- return p;
+ if (string(node3)) {
+ node3 = cy.filter(node3);
+ }
+ return degrees3[node3.id()] / maxDegree;
+ }, "degree")
+ };
+ } else {
+ var indegrees = {};
+ var outdegrees = {};
+ var maxIndegree = 0;
+ var maxOutdegree = 0;
+ for (var _i = 0; _i < numNodes; _i++) {
+ var _node = nodes6[_i];
+ var id27 = _node.id();
+ options3.root = _node;
+ var _currDegree = this.degreeCentrality(options3);
+ if (maxIndegree < _currDegree.indegree) maxIndegree = _currDegree.indegree;
+ if (maxOutdegree < _currDegree.outdegree) maxOutdegree = _currDegree.outdegree;
+ indegrees[id27] = _currDegree.indegree;
+ outdegrees[id27] = _currDegree.outdegree;
}
- function yZd(a) {
- if (a.gb)
- return;
- a.gb = true;
- a.b = Lnd(a, 0);
- Knd(a.b, 18);
- Qnd(a.b, 19);
- a.a = Lnd(a, 1);
- Knd(a.a, 1);
- Qnd(a.a, 2);
- Qnd(a.a, 3);
- Qnd(a.a, 4);
- Qnd(a.a, 5);
- a.o = Lnd(a, 2);
- Knd(a.o, 8);
- Knd(a.o, 9);
- Qnd(a.o, 10);
- Qnd(a.o, 11);
- Qnd(a.o, 12);
- Qnd(a.o, 13);
- Qnd(a.o, 14);
- Qnd(a.o, 15);
- Qnd(a.o, 16);
- Qnd(a.o, 17);
- Qnd(a.o, 18);
- Qnd(a.o, 19);
- Qnd(a.o, 20);
- Qnd(a.o, 21);
- Qnd(a.o, 22);
- Qnd(a.o, 23);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- Pnd(a.o);
- a.p = Lnd(a, 3);
- Knd(a.p, 2);
- Knd(a.p, 3);
- Knd(a.p, 4);
- Knd(a.p, 5);
- Qnd(a.p, 6);
- Qnd(a.p, 7);
- Pnd(a.p);
- Pnd(a.p);
- a.q = Lnd(a, 4);
- Knd(a.q, 8);
- a.v = Lnd(a, 5);
- Qnd(a.v, 9);
- Pnd(a.v);
- Pnd(a.v);
- Pnd(a.v);
- a.w = Lnd(a, 6);
- Knd(a.w, 2);
- Knd(a.w, 3);
- Knd(a.w, 4);
- Qnd(a.w, 5);
- a.B = Lnd(a, 7);
- Qnd(a.B, 1);
- Pnd(a.B);
- Pnd(a.B);
- Pnd(a.B);
- a.Q = Lnd(a, 8);
- Qnd(a.Q, 0);
- Pnd(a.Q);
- a.R = Lnd(a, 9);
- Knd(a.R, 1);
- a.S = Lnd(a, 10);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- Pnd(a.S);
- a.T = Lnd(a, 11);
- Qnd(a.T, 10);
- Qnd(a.T, 11);
- Qnd(a.T, 12);
- Qnd(a.T, 13);
- Qnd(a.T, 14);
- Pnd(a.T);
- Pnd(a.T);
- a.U = Lnd(a, 12);
- Knd(a.U, 2);
- Knd(a.U, 3);
- Qnd(a.U, 4);
- Qnd(a.U, 5);
- Qnd(a.U, 6);
- Qnd(a.U, 7);
- Pnd(a.U);
- a.V = Lnd(a, 13);
- Qnd(a.V, 10);
- a.W = Lnd(a, 14);
- Knd(a.W, 18);
- Knd(a.W, 19);
- Knd(a.W, 20);
- Qnd(a.W, 21);
- Qnd(a.W, 22);
- Qnd(a.W, 23);
- a.bb = Lnd(a, 15);
- Knd(a.bb, 10);
- Knd(a.bb, 11);
- Knd(a.bb, 12);
- Knd(a.bb, 13);
- Knd(a.bb, 14);
- Knd(a.bb, 15);
- Knd(a.bb, 16);
- Qnd(a.bb, 17);
- Pnd(a.bb);
- Pnd(a.bb);
- a.eb = Lnd(a, 16);
- Knd(a.eb, 2);
- Knd(a.eb, 3);
- Knd(a.eb, 4);
- Knd(a.eb, 5);
- Knd(a.eb, 6);
- Knd(a.eb, 7);
- Qnd(a.eb, 8);
- Qnd(a.eb, 9);
- a.ab = Lnd(a, 17);
- Knd(a.ab, 0);
- Knd(a.ab, 1);
- a.H = Lnd(a, 18);
- Qnd(a.H, 0);
- Qnd(a.H, 1);
- Qnd(a.H, 2);
- Qnd(a.H, 3);
- Qnd(a.H, 4);
- Qnd(a.H, 5);
- Pnd(a.H);
- a.db = Lnd(a, 19);
- Qnd(a.db, 2);
- a.c = Mnd(a, 20);
- a.d = Mnd(a, 21);
- a.e = Mnd(a, 22);
- a.f = Mnd(a, 23);
- a.i = Mnd(a, 24);
- a.g = Mnd(a, 25);
- a.j = Mnd(a, 26);
- a.k = Mnd(a, 27);
- a.n = Mnd(a, 28);
- a.r = Mnd(a, 29);
- a.s = Mnd(a, 30);
- a.t = Mnd(a, 31);
- a.u = Mnd(a, 32);
- a.fb = Mnd(a, 33);
- a.A = Mnd(a, 34);
- a.C = Mnd(a, 35);
- a.D = Mnd(a, 36);
- a.F = Mnd(a, 37);
- a.G = Mnd(a, 38);
- a.I = Mnd(a, 39);
- a.J = Mnd(a, 40);
- a.L = Mnd(a, 41);
- a.M = Mnd(a, 42);
- a.N = Mnd(a, 43);
- a.O = Mnd(a, 44);
- a.P = Mnd(a, 45);
- a.X = Mnd(a, 46);
- a.Y = Mnd(a, 47);
- a.Z = Mnd(a, 48);
- a.$ = Mnd(a, 49);
- a._ = Mnd(a, 50);
- a.cb = Mnd(a, 51);
- a.K = Mnd(a, 52);
- }
- function Y9c() {
- Y9c = ccb;
- var a, b;
- o8c = new Lsd(sse);
- F9c = new Lsd(tse);
- q8c = (F7c(), z7c);
- p8c = new Nsd($pe, q8c);
- r8c = new Nsd(_le, null);
- s8c = new Lsd(use);
- x8c = (i8c(), qqb(h8c, OC(GC(r1, 1), Kie, 291, 0, [d8c])));
- w8c = new Nsd(lqe, x8c);
- y8c = new Nsd(Zpe, (Bcb(), false));
- A8c = (ead(), cad);
- z8c = new Nsd(cqe, A8c);
- F8c = (Aad(), zad);
- E8c = new Nsd(ype, F8c);
- I8c = new Nsd(Jre, false);
- K8c = (hbd(), fbd);
- J8c = new Nsd(tpe, K8c);
- g9c = new q0b(12);
- f9c = new Nsd(ame, g9c);
- O8c = new Nsd(Ame, false);
- P8c = new Nsd(xqe, false);
- e9c = new Nsd(Dme, false);
- u9c = (dcd(), ccd);
- t9c = new Nsd(Bme, u9c);
- C9c = new Lsd(uqe);
- D9c = new Lsd(vme);
- E9c = new Lsd(yme);
- H9c = new Lsd(zme);
- R8c = new s7c();
- Q8c = new Nsd(mqe, R8c);
- v8c = new Nsd(pqe, false);
- L8c = new Nsd(qqe, false);
- T8c = new H_b();
- S8c = new Nsd(vqe, T8c);
- d9c = new Nsd(Xpe, false);
- G9c = new Nsd(wse, 1);
- new Nsd(xse, true);
- meb(0);
- new Nsd(yse, meb(100));
- new Nsd(zse, false);
- meb(0);
- new Nsd(Ase, meb(4e3));
- meb(0);
- new Nsd(Bse, meb(400));
- new Nsd(Cse, false);
- new Nsd(Dse, false);
- new Nsd(Ese, true);
- new Nsd(Fse, false);
- u8c = (Ded(), Ced);
- t8c = new Nsd(rse, u8c);
- I9c = new Nsd(Lpe, 10);
- J9c = new Nsd(Mpe, 10);
- K9c = new Nsd(Zle, 20);
- L9c = new Nsd(Npe, 10);
- M9c = new Nsd(xme, 2);
- N9c = new Nsd(Ope, 10);
- P9c = new Nsd(Ppe, 0);
- Q9c = new Nsd(Spe, 5);
- R9c = new Nsd(Qpe, 1);
- S9c = new Nsd(Rpe, 1);
- T9c = new Nsd(wme, 20);
- U9c = new Nsd(Tpe, 10);
- X9c = new Nsd(Upe, 10);
- O9c = new Lsd(Vpe);
- W9c = new I_b();
- V9c = new Nsd(wqe, W9c);
- j9c = new Lsd(tqe);
- i9c = false;
- h9c = new Nsd(sqe, i9c);
- V8c = new q0b(5);
- U8c = new Nsd(dqe, V8c);
- X8c = (Hbd(), b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
- W8c = new Nsd(Gme, X8c);
- m9c = (Tbd(), Qbd);
- l9c = new Nsd(gqe, m9c);
- o9c = new Lsd(hqe);
- p9c = new Lsd(iqe);
- q9c = new Lsd(jqe);
- n9c = new Lsd(kqe);
- Z8c = (a = BD(gdb(I1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0));
- Y8c = new Nsd(Fme, Z8c);
- c9c = pqb((Idd(), Bdd));
- b9c = new Nsd(Eme, c9c);
- a9c = new f7c(0, 0);
- _8c = new Nsd(Tme, a9c);
- $8c = new Nsd(bqe, false);
- D8c = (qad(), nad);
- C8c = new Nsd(nqe, D8c);
- B8c = new Nsd(Cme, false);
- meb(1);
- new Nsd(Hse, null);
- r9c = new Lsd(rqe);
- v9c = new Lsd(oqe);
- B9c = (Ucd(), Scd);
- A9c = new Nsd(Ype, B9c);
- s9c = new Lsd(Wpe);
- y9c = (rcd(), pqb(pcd));
- x9c = new Nsd(Hme, y9c);
- w9c = new Nsd(eqe, false);
- z9c = new Nsd(fqe, true);
- M8c = new Nsd(_pe, false);
- N8c = new Nsd(aqe, false);
- G8c = new Nsd($le, 1);
- H8c = (Mad(), Kad);
- new Nsd(Ise, H8c);
- k9c = true;
- }
- function wtc() {
- wtc = ccb;
- var a, b;
- $sc = new Lsd(Ime);
- xsc = new Lsd("coordinateOrigin");
- itc = new Lsd("processors");
- wsc = new Msd("compoundNode", (Bcb(), false));
- Nsc = new Msd("insideConnections", false);
- _sc = new Lsd("originalBendpoints");
- atc = new Lsd("originalDummyNodePosition");
- btc = new Lsd("originalLabelEdge");
- ktc = new Lsd("representedLabels");
- Csc = new Lsd("endLabels");
- Dsc = new Lsd("endLabel.origin");
- Ssc = new Msd("labelSide", (rbd(), qbd));
- Ysc = new Msd("maxEdgeThickness", 0);
- ltc = new Msd("reversed", false);
- jtc = new Lsd(Jme);
- Vsc = new Msd("longEdgeSource", null);
- Wsc = new Msd("longEdgeTarget", null);
- Usc = new Msd("longEdgeHasLabelDummies", false);
- Tsc = new Msd("longEdgeBeforeLabelDummy", false);
- Bsc = new Msd("edgeConstraint", (Gqc(), Eqc));
- Psc = new Lsd("inLayerLayoutUnit");
- Osc = new Msd("inLayerConstraint", (esc(), csc));
- Qsc = new Msd("inLayerSuccessorConstraint", new Rkb());
- Rsc = new Msd("inLayerSuccessorConstraintBetweenNonDummies", false);
- gtc = new Lsd("portDummy");
- ysc = new Msd("crossingHint", meb(0));
- Ksc = new Msd("graphProperties", (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)));
- Hsc = new Msd("externalPortSide", (Ucd(), Scd));
- Isc = new Msd("externalPortSize", new d7c());
- Fsc = new Lsd("externalPortReplacedDummies");
- Gsc = new Lsd("externalPortReplacedDummy");
- Esc = new Msd("externalPortConnections", (a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0)));
- htc = new Msd(tle, 0);
- ssc = new Lsd("barycenterAssociates");
- vtc = new Lsd("TopSideComments");
- tsc = new Lsd("BottomSideComments");
- vsc = new Lsd("CommentConnectionPort");
- Msc = new Msd("inputCollect", false);
- etc = new Msd("outputCollect", false);
- Asc = new Msd("cyclic", false);
- zsc = new Lsd("crossHierarchyMap");
- utc = new Lsd("targetOffset");
- new Msd("splineLabelSize", new d7c());
- otc = new Lsd("spacings");
- ftc = new Msd("partitionConstraint", false);
- usc = new Lsd("breakingPoint.info");
- stc = new Lsd("splines.survivingEdge");
- rtc = new Lsd("splines.route.start");
- ptc = new Lsd("splines.edgeChain");
- dtc = new Lsd("originalPortConstraints");
- ntc = new Lsd("selfLoopHolder");
- qtc = new Lsd("splines.nsPortY");
- Zsc = new Lsd("modelOrder");
- Xsc = new Lsd("longEdgeTargetNode");
- Jsc = new Msd(Xne, false);
- mtc = new Msd(Xne, false);
- Lsc = new Lsd("layerConstraints.hiddenNodes");
- ctc = new Lsd("layerConstraints.opposidePort");
- ttc = new Lsd("targetNode.modelOrder");
- }
- function jwc() {
- jwc = ccb;
- puc = (xqc(), vqc);
- ouc = new Nsd(Yne, puc);
- Guc = new Nsd(Zne, (Bcb(), false));
- Muc = (msc(), ksc);
- Luc = new Nsd($ne, Muc);
- cvc = new Nsd(_ne, false);
- dvc = new Nsd(aoe, true);
- Itc = new Nsd(boe, false);
- xvc = (BAc(), zAc);
- wvc = new Nsd(coe, xvc);
- meb(1);
- Fvc = new Nsd(doe, meb(7));
- Gvc = new Nsd(eoe, false);
- Huc = new Nsd(foe, false);
- nuc = (mqc(), iqc);
- muc = new Nsd(goe, nuc);
- bvc = (lzc(), jzc);
- avc = new Nsd(hoe, bvc);
- Tuc = (Ctc(), Btc);
- Suc = new Nsd(ioe, Tuc);
- meb(-1);
- Ruc = new Nsd(joe, meb(-1));
- meb(-1);
- Uuc = new Nsd(koe, meb(-1));
- meb(-1);
- Vuc = new Nsd(loe, meb(4));
- meb(-1);
- Xuc = new Nsd(moe, meb(2));
- _uc = (kAc(), iAc);
- $uc = new Nsd(noe, _uc);
- meb(0);
- Zuc = new Nsd(ooe, meb(0));
- Puc = new Nsd(poe, meb(Ohe));
- luc = (Rpc(), Ppc);
- kuc = new Nsd(qoe, luc);
- Xtc = new Nsd(roe, false);
- euc = new Nsd(soe, 0.1);
- iuc = new Nsd(toe, false);
- meb(-1);
- guc = new Nsd(uoe, meb(-1));
- meb(-1);
- huc = new Nsd(voe, meb(-1));
- meb(0);
- Ytc = new Nsd(woe, meb(40));
- cuc = (Xrc(), Wrc);
- buc = new Nsd(xoe, cuc);
- $tc = Urc;
- Ztc = new Nsd(yoe, $tc);
- vvc = (Vzc(), Qzc);
- uvc = new Nsd(zoe, vvc);
- kvc = new Lsd(Aoe);
- fvc = (_qc(), Zqc);
- evc = new Nsd(Boe, fvc);
- ivc = (lrc(), irc);
- hvc = new Nsd(Coe, ivc);
- nvc = new Nsd(Doe, 0.3);
- pvc = new Lsd(Eoe);
- rvc = (Izc(), Gzc);
- qvc = new Nsd(Foe, rvc);
- xuc = (TAc(), RAc);
- wuc = new Nsd(Goe, xuc);
- zuc = (_Ac(), $Ac);
- yuc = new Nsd(Hoe, zuc);
- Buc = (tBc(), sBc);
- Auc = new Nsd(Ioe, Buc);
- Duc = new Nsd(Joe, 0.2);
- uuc = new Nsd(Koe, 2);
- Bvc = new Nsd(Loe, null);
- Dvc = new Nsd(Moe, 10);
- Cvc = new Nsd(Noe, 10);
- Evc = new Nsd(Ooe, 20);
- meb(0);
- yvc = new Nsd(Poe, meb(0));
- meb(0);
- zvc = new Nsd(Qoe, meb(0));
- meb(0);
- Avc = new Nsd(Roe, meb(0));
- Jtc = new Nsd(Soe, false);
- Ntc = (yrc(), wrc);
- Mtc = new Nsd(Toe, Ntc);
- Ltc = (Ipc(), Hpc);
- Ktc = new Nsd(Uoe, Ltc);
- Juc = new Nsd(Voe, false);
- meb(0);
- Iuc = new Nsd(Woe, meb(16));
- meb(0);
- Kuc = new Nsd(Xoe, meb(5));
- bwc = (LBc(), JBc);
- awc = new Nsd(Yoe, bwc);
- Hvc = new Nsd(Zoe, 10);
- Kvc = new Nsd($oe, 1);
- Tvc = (bqc(), aqc);
- Svc = new Nsd(_oe, Tvc);
- Nvc = new Lsd(ape);
- Qvc = meb(1);
- meb(0);
- Pvc = new Nsd(bpe, Qvc);
- gwc = (CBc(), zBc);
- fwc = new Nsd(cpe, gwc);
- cwc = new Lsd(dpe);
- Yvc = new Nsd(epe, true);
- Wvc = new Nsd(fpe, 2);
- $vc = new Nsd(gpe, true);
- tuc = (Sqc(), Qqc);
- suc = new Nsd(hpe, tuc);
- ruc = (Apc(), wpc);
- quc = new Nsd(ipe, ruc);
- Wtc = (tAc(), rAc);
- Vtc = new Nsd(jpe, Wtc);
- Utc = new Nsd(kpe, false);
- Ptc = (RXb(), QXb);
- Otc = new Nsd(lpe, Ptc);
- Ttc = (xzc(), uzc);
- Stc = new Nsd(mpe, Ttc);
- Qtc = new Nsd(npe, 0);
- Rtc = new Nsd(ope, 0);
- Ouc = kqc;
- Nuc = Opc;
- Wuc = izc;
- Yuc = izc;
- Quc = fzc;
- fuc = (hbd(), ebd);
- juc = Ppc;
- duc = Ppc;
- _tc = Ppc;
- auc = ebd;
- lvc = Tzc;
- mvc = Qzc;
- gvc = Qzc;
- jvc = Qzc;
- ovc = Szc;
- tvc = Tzc;
- svc = Tzc;
- Cuc = (Aad(), yad);
- Euc = yad;
- Fuc = sBc;
- vuc = xad;
- Ivc = KBc;
- Jvc = IBc;
- Lvc = KBc;
- Mvc = IBc;
- Uvc = KBc;
- Vvc = IBc;
- Ovc = _pc;
- Rvc = aqc;
- hwc = KBc;
- iwc = IBc;
- dwc = KBc;
- ewc = IBc;
- Zvc = IBc;
- Xvc = IBc;
- _vc = IBc;
- }
- function S8b() {
- S8b = ccb;
- Y7b = new T8b("DIRECTION_PREPROCESSOR", 0);
- V7b = new T8b("COMMENT_PREPROCESSOR", 1);
- Z7b = new T8b("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER", 2);
- n8b = new T8b("INTERACTIVE_EXTERNAL_PORT_POSITIONER", 3);
- G8b = new T8b("PARTITION_PREPROCESSOR", 4);
- r8b = new T8b("LABEL_DUMMY_INSERTER", 5);
- M8b = new T8b("SELF_LOOP_PREPROCESSOR", 6);
- w8b = new T8b("LAYER_CONSTRAINT_PREPROCESSOR", 7);
- E8b = new T8b("PARTITION_MIDPROCESSOR", 8);
- i8b = new T8b("HIGH_DEGREE_NODE_LAYER_PROCESSOR", 9);
- A8b = new T8b("NODE_PROMOTION", 10);
- v8b = new T8b("LAYER_CONSTRAINT_POSTPROCESSOR", 11);
- F8b = new T8b("PARTITION_POSTPROCESSOR", 12);
- e8b = new T8b("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR", 13);
- O8b = new T8b("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR", 14);
- P7b = new T8b("BREAKING_POINT_INSERTER", 15);
- z8b = new T8b("LONG_EDGE_SPLITTER", 16);
- I8b = new T8b("PORT_SIDE_PROCESSOR", 17);
- o8b = new T8b("INVERTED_PORT_PROCESSOR", 18);
- H8b = new T8b("PORT_LIST_SORTER", 19);
- Q8b = new T8b("SORT_BY_INPUT_ORDER_OF_MODEL", 20);
- C8b = new T8b("NORTH_SOUTH_PORT_PREPROCESSOR", 21);
- Q7b = new T8b("BREAKING_POINT_PROCESSOR", 22);
- D8b = new T8b(Bne, 23);
- R8b = new T8b(Cne, 24);
- K8b = new T8b("SELF_LOOP_PORT_RESTORER", 25);
- P8b = new T8b("SINGLE_EDGE_GRAPH_WRAPPER", 26);
- p8b = new T8b("IN_LAYER_CONSTRAINT_PROCESSOR", 27);
- b8b = new T8b("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR", 28);
- q8b = new T8b("LABEL_AND_NODE_SIZE_PROCESSOR", 29);
- m8b = new T8b("INNERMOST_NODE_MARGIN_CALCULATOR", 30);
- N8b = new T8b("SELF_LOOP_ROUTER", 31);
- T7b = new T8b("COMMENT_NODE_MARGIN_CALCULATOR", 32);
- _7b = new T8b("END_LABEL_PREPROCESSOR", 33);
- t8b = new T8b("LABEL_DUMMY_SWITCHER", 34);
- S7b = new T8b("CENTER_LABEL_MANAGEMENT_PROCESSOR", 35);
- u8b = new T8b("LABEL_SIDE_SELECTOR", 36);
- k8b = new T8b("HYPEREDGE_DUMMY_MERGER", 37);
- f8b = new T8b("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR", 38);
- x8b = new T8b("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR", 39);
- h8b = new T8b("HIERARCHICAL_PORT_POSITION_PROCESSOR", 40);
- W7b = new T8b("CONSTRAINTS_POSTPROCESSOR", 41);
- U7b = new T8b("COMMENT_POSTPROCESSOR", 42);
- l8b = new T8b("HYPERNODE_PROCESSOR", 43);
- g8b = new T8b("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER", 44);
- y8b = new T8b("LONG_EDGE_JOINER", 45);
- L8b = new T8b("SELF_LOOP_POSTPROCESSOR", 46);
- R7b = new T8b("BREAKING_POINT_REMOVER", 47);
- B8b = new T8b("NORTH_SOUTH_PORT_POSTPROCESSOR", 48);
- j8b = new T8b("HORIZONTAL_COMPACTOR", 49);
- s8b = new T8b("LABEL_DUMMY_REMOVER", 50);
- c8b = new T8b("FINAL_SPLINE_BENDPOINTS_CALCULATOR", 51);
- a8b = new T8b("END_LABEL_SORTER", 52);
- J8b = new T8b("REVERSED_EDGE_RESTORER", 53);
- $7b = new T8b("END_LABEL_POSTPROCESSOR", 54);
- d8b = new T8b("HIERARCHICAL_NODE_RESIZER", 55);
- X7b = new T8b("DIRECTION_POSTPROCESSOR", 56);
- }
- function KIc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2, L2, M2, N, O, P, Q2, R, S3, T, U2, V, W2, X, Y2, Z, $, ab, bb, cb, db2, eb, fb, gb, hb, ib, jb, kb, lb;
- cb = 0;
- for (H2 = b, K2 = 0, N = H2.length; K2 < N; ++K2) {
- F = H2[K2];
- for (V = new olb(F.j); V.a < V.c.c.length; ) {
- U2 = BD(mlb(V), 11);
- X = 0;
- for (h = new olb(U2.g); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- F.c != g.d.i.c && ++X;
- }
- X > 0 && (a.a[U2.p] = cb++);
- }
- }
- hb = 0;
- for (I = c2, L2 = 0, O = I.length; L2 < O; ++L2) {
- F = I[L2];
- P = 0;
- for (V = new olb(F.j); V.a < V.c.c.length; ) {
- U2 = BD(mlb(V), 11);
- if (U2.j == (Ucd(), Acd)) {
- for (h = new olb(U2.e); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- if (F.c != g.c.i.c) {
- ++P;
- break;
- }
- }
- } else {
- break;
- }
+ return {
+ indegree: /* @__PURE__ */ __name(function indegree(node3) {
+ if (maxIndegree == 0) {
+ return 0;
}
- R = 0;
- Y2 = new Bib(F.j, F.j.c.length);
- while (Y2.b > 0) {
- U2 = (sCb(Y2.b > 0), BD(Y2.a.Xb(Y2.c = --Y2.b), 11));
- X = 0;
- for (h = new olb(U2.e); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- F.c != g.c.i.c && ++X;
- }
- if (X > 0) {
- if (U2.j == (Ucd(), Acd)) {
- a.a[U2.p] = hb;
- ++hb;
- } else {
- a.a[U2.p] = hb + P + R;
- ++R;
- }
- }
+ if (string(node3)) {
+ node3 = cy.filter(node3);
}
- hb += R;
- }
- W2 = new Lqb();
- o2 = new zsb();
- for (G = b, J = 0, M2 = G.length; J < M2; ++J) {
- F = G[J];
- for (fb = new olb(F.j); fb.a < fb.c.c.length; ) {
- eb = BD(mlb(fb), 11);
- for (h = new olb(eb.g); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- jb = g.d;
- if (F.c != jb.i.c) {
- db2 = BD(Wd(irb(W2.f, eb)), 467);
- ib = BD(Wd(irb(W2.f, jb)), 467);
- if (!db2 && !ib) {
- n = new NIc();
- o2.a.zc(n, o2);
- Ekb(n.a, g);
- Ekb(n.d, eb);
- jrb(W2.f, eb, n);
- Ekb(n.d, jb);
- jrb(W2.f, jb, n);
- } else if (!db2) {
- Ekb(ib.a, g);
- Ekb(ib.d, eb);
- jrb(W2.f, eb, ib);
- } else if (!ib) {
- Ekb(db2.a, g);
- Ekb(db2.d, jb);
- jrb(W2.f, jb, db2);
- } else if (db2 == ib) {
- Ekb(db2.a, g);
- } else {
- Ekb(db2.a, g);
- for (T = new olb(ib.d); T.a < T.c.c.length; ) {
- S3 = BD(mlb(T), 11);
- jrb(W2.f, S3, db2);
- }
- Gkb(db2.a, ib.a);
- Gkb(db2.d, ib.d);
- o2.a.Bc(ib) != null;
- }
- }
- }
+ return indegrees[node3.id()] / maxIndegree;
+ }, "indegree"),
+ outdegree: /* @__PURE__ */ __name(function outdegree(node3) {
+ if (maxOutdegree === 0) {
+ return 0;
}
- }
- p = BD(Ee(o2, KC(oY, { 3: 1, 4: 1, 5: 1, 1946: 1 }, 467, o2.a.gc(), 0, 1)), 1946);
- D3 = b[0].c;
- bb = c2[0].c;
- for (k = p, l = 0, m = k.length; l < m; ++l) {
- j = k[l];
- j.e = cb;
- j.f = hb;
- for (V = new olb(j.d); V.a < V.c.c.length; ) {
- U2 = BD(mlb(V), 11);
- Z = a.a[U2.p];
- if (U2.i.c == D3) {
- Z < j.e && (j.e = Z);
- Z > j.b && (j.b = Z);
- } else if (U2.i.c == bb) {
- Z < j.f && (j.f = Z);
- Z > j.c && (j.c = Z);
- }
- }
- }
- Klb(p, 0, p.length, null);
- gb = KC(WD, oje, 25, p.length, 15, 1);
- d = KC(WD, oje, 25, hb + 1, 15, 1);
- for (r = 0; r < p.length; r++) {
- gb[r] = p[r].f;
- d[gb[r]] = 1;
- }
- f2 = 0;
- for (s = 0; s < d.length; s++) {
- d[s] == 1 ? d[s] = f2 : --f2;
- }
- $ = 0;
- for (t4 = 0; t4 < gb.length; t4++) {
- gb[t4] += d[gb[t4]];
- $ = $wnd.Math.max($, gb[t4] + 1);
- }
- i3 = 1;
- while (i3 < $) {
- i3 *= 2;
- }
- lb = 2 * i3 - 1;
- i3 -= 1;
- kb = KC(WD, oje, 25, lb, 15, 1);
- e = 0;
- for (B = 0; B < gb.length; B++) {
- A = gb[B] + i3;
- ++kb[A];
- while (A > 0) {
- A % 2 > 0 && (e += kb[A + 1]);
- A = (A - 1) / 2 | 0;
- ++kb[A];
- }
- }
- C = KC(nY, Uhe, 362, p.length * 2, 0, 1);
- for (u2 = 0; u2 < p.length; u2++) {
- C[2 * u2] = new QIc(p[u2], p[u2].e, p[u2].b, (UIc(), TIc));
- C[2 * u2 + 1] = new QIc(p[u2], p[u2].b, p[u2].e, SIc);
- }
- Klb(C, 0, C.length, null);
- Q2 = 0;
- for (v = 0; v < C.length; v++) {
- switch (C[v].d.g) {
- case 0:
- ++Q2;
- break;
- case 1:
- --Q2;
- e += Q2;
- }
- }
- ab = KC(nY, Uhe, 362, p.length * 2, 0, 1);
- for (w2 = 0; w2 < p.length; w2++) {
- ab[2 * w2] = new QIc(p[w2], p[w2].f, p[w2].c, (UIc(), TIc));
- ab[2 * w2 + 1] = new QIc(p[w2], p[w2].c, p[w2].f, SIc);
- }
- Klb(ab, 0, ab.length, null);
- Q2 = 0;
- for (q = 0; q < ab.length; q++) {
- switch (ab[q].d.g) {
- case 0:
- ++Q2;
- break;
- case 1:
- --Q2;
- e += Q2;
- }
- }
- return e;
- }
- function wfe() {
- wfe = ccb;
- ffe = new xfe(7);
- hfe = new ige(8, 94);
- new ige(8, 64);
- ife = new ige(8, 36);
- ofe = new ige(8, 65);
- pfe = new ige(8, 122);
- qfe = new ige(8, 90);
- tfe = new ige(8, 98);
- mfe = new ige(8, 66);
- rfe = new ige(8, 60);
- ufe = new ige(8, 62);
- efe = new xfe(11);
- cfe = new $fe(4);
- Ufe(cfe, 48, 57);
- sfe = new $fe(4);
- Ufe(sfe, 48, 57);
- Ufe(sfe, 65, 90);
- Ufe(sfe, 95, 95);
- Ufe(sfe, 97, 122);
- nfe = new $fe(4);
- Ufe(nfe, 9, 9);
- Ufe(nfe, 10, 10);
- Ufe(nfe, 12, 12);
- Ufe(nfe, 13, 13);
- Ufe(nfe, 32, 32);
- jfe = _fe(cfe);
- lfe = _fe(sfe);
- kfe = _fe(nfe);
- Zee = new Lqb();
- $ee = new Lqb();
- _ee = OC(GC(ZI, 1), nie, 2, 6, ["Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", null, "Co", "Cs", "Pd", "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "L", "M", "N", "Z", "C", "P", "S"]);
- Yee = OC(GC(ZI, 1), nie, 2, 6, ["Basic Latin", "Latin-1 Supplement", "Latin Extended-A", "Latin Extended-B", "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", "Greek", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul Jamo", "Ethiopic", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", "Runic", "Khmer", "Mongolian", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", "Combining Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", "Mathematical Operators", "Miscellaneous Technical", "Control Pictures", "Optical Character Recognition", "Enclosed Alphanumerics", "Box Drawing", "Block Elements", "Geometric Shapes", "Miscellaneous Symbols", "Dingbats", "Braille Patterns", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", "CJK Symbols and Punctuation", "Hiragana", "Katakana", "Bopomofo", "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", "Enclosed CJK Letters and Months", "CJK Compatibility", "CJK Unified Ideographs Extension A", "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", "Hangul Syllables", uxe, "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", "Arabic Presentation Forms-B", "Specials", "Halfwidth and Fullwidth Forms", "Old Italic", "Gothic", "Deseret", "Byzantine Musical Symbols", "Musical Symbols", "Mathematical Alphanumeric Symbols", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags"]);
- afe = OC(GC(WD, 1), oje, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]);
- }
- function qJb() {
- qJb = ccb;
- nJb = new tJb("OUT_T_L", 0, (NHb(), LHb), (EIb(), BIb), (gHb(), dHb), dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb((Hbd(), Dbd), OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd]))]));
- mJb = new tJb("OUT_T_C", 1, KHb, BIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))]));
- oJb = new tJb("OUT_T_R", 2, MHb, BIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd]))]));
- eJb = new tJb("OUT_B_L", 3, LHb, DIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd]))]));
- dJb = new tJb("OUT_B_C", 4, KHb, DIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))]));
- fJb = new tJb("OUT_B_R", 5, MHb, DIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd]))]));
- iJb = new tJb("OUT_L_T", 6, MHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Gbd, Abd]))]));
- hJb = new tJb("OUT_L_C", 7, MHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd, Abd]))]));
- gJb = new tJb("OUT_L_B", 8, MHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Ebd, Abd]))]));
- lJb = new tJb("OUT_R_T", 9, LHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Gbd, Abd]))]));
- kJb = new tJb("OUT_R_C", 10, LHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd, Abd]))]));
- jJb = new tJb("OUT_R_B", 11, LHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Ebd, Abd]))]));
- bJb = new tJb("IN_T_L", 12, LHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd, Abd]))]));
- aJb = new tJb("IN_T_C", 13, KHb, DIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))]));
- cJb = new tJb("IN_T_R", 14, MHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd, Abd]))]));
- $Ib = new tJb("IN_C_L", 15, LHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd, Abd]))]));
- ZIb = new tJb("IN_C_C", 16, KHb, CIb, eHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd, Abd]))]));
- _Ib = new tJb("IN_C_R", 17, MHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd, Abd]))]));
- XIb = new tJb("IN_B_L", 18, LHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd, Abd]))]));
- WIb = new tJb("IN_B_C", 19, KHb, BIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))]));
- YIb = new tJb("IN_B_R", 20, MHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd, Abd]))]));
- pJb = new tJb(ole, 21, null, null, null, null, OC(GC(LK, 1), Uhe, 21, 0, []));
- }
- function jGd() {
- jGd = ccb;
- PFd = (NFd(), MFd).b;
- BD(qud(ZKd(MFd.b), 0), 34);
- BD(qud(ZKd(MFd.b), 1), 18);
- OFd = MFd.a;
- BD(qud(ZKd(MFd.a), 0), 34);
- BD(qud(ZKd(MFd.a), 1), 18);
- BD(qud(ZKd(MFd.a), 2), 18);
- BD(qud(ZKd(MFd.a), 3), 18);
- BD(qud(ZKd(MFd.a), 4), 18);
- QFd = MFd.o;
- BD(qud(ZKd(MFd.o), 0), 34);
- BD(qud(ZKd(MFd.o), 1), 34);
- SFd = BD(qud(ZKd(MFd.o), 2), 18);
- BD(qud(ZKd(MFd.o), 3), 18);
- BD(qud(ZKd(MFd.o), 4), 18);
- BD(qud(ZKd(MFd.o), 5), 18);
- BD(qud(ZKd(MFd.o), 6), 18);
- BD(qud(ZKd(MFd.o), 7), 18);
- BD(qud(ZKd(MFd.o), 8), 18);
- BD(qud(ZKd(MFd.o), 9), 18);
- BD(qud(ZKd(MFd.o), 10), 18);
- BD(qud(ZKd(MFd.o), 11), 18);
- BD(qud(ZKd(MFd.o), 12), 18);
- BD(qud(ZKd(MFd.o), 13), 18);
- BD(qud(ZKd(MFd.o), 14), 18);
- BD(qud(ZKd(MFd.o), 15), 18);
- BD(qud(WKd(MFd.o), 0), 59);
- BD(qud(WKd(MFd.o), 1), 59);
- BD(qud(WKd(MFd.o), 2), 59);
- BD(qud(WKd(MFd.o), 3), 59);
- BD(qud(WKd(MFd.o), 4), 59);
- BD(qud(WKd(MFd.o), 5), 59);
- BD(qud(WKd(MFd.o), 6), 59);
- BD(qud(WKd(MFd.o), 7), 59);
- BD(qud(WKd(MFd.o), 8), 59);
- BD(qud(WKd(MFd.o), 9), 59);
- RFd = MFd.p;
- BD(qud(ZKd(MFd.p), 0), 34);
- BD(qud(ZKd(MFd.p), 1), 34);
- BD(qud(ZKd(MFd.p), 2), 34);
- BD(qud(ZKd(MFd.p), 3), 34);
- BD(qud(ZKd(MFd.p), 4), 18);
- BD(qud(ZKd(MFd.p), 5), 18);
- BD(qud(WKd(MFd.p), 0), 59);
- BD(qud(WKd(MFd.p), 1), 59);
- TFd = MFd.q;
- BD(qud(ZKd(MFd.q), 0), 34);
- UFd = MFd.v;
- BD(qud(ZKd(MFd.v), 0), 18);
- BD(qud(WKd(MFd.v), 0), 59);
- BD(qud(WKd(MFd.v), 1), 59);
- BD(qud(WKd(MFd.v), 2), 59);
- VFd = MFd.w;
- BD(qud(ZKd(MFd.w), 0), 34);
- BD(qud(ZKd(MFd.w), 1), 34);
- BD(qud(ZKd(MFd.w), 2), 34);
- BD(qud(ZKd(MFd.w), 3), 18);
- WFd = MFd.B;
- BD(qud(ZKd(MFd.B), 0), 18);
- BD(qud(WKd(MFd.B), 0), 59);
- BD(qud(WKd(MFd.B), 1), 59);
- BD(qud(WKd(MFd.B), 2), 59);
- ZFd = MFd.Q;
- BD(qud(ZKd(MFd.Q), 0), 18);
- BD(qud(WKd(MFd.Q), 0), 59);
- $Fd = MFd.R;
- BD(qud(ZKd(MFd.R), 0), 34);
- _Fd = MFd.S;
- BD(qud(WKd(MFd.S), 0), 59);
- BD(qud(WKd(MFd.S), 1), 59);
- BD(qud(WKd(MFd.S), 2), 59);
- BD(qud(WKd(MFd.S), 3), 59);
- BD(qud(WKd(MFd.S), 4), 59);
- BD(qud(WKd(MFd.S), 5), 59);
- BD(qud(WKd(MFd.S), 6), 59);
- BD(qud(WKd(MFd.S), 7), 59);
- BD(qud(WKd(MFd.S), 8), 59);
- BD(qud(WKd(MFd.S), 9), 59);
- BD(qud(WKd(MFd.S), 10), 59);
- BD(qud(WKd(MFd.S), 11), 59);
- BD(qud(WKd(MFd.S), 12), 59);
- BD(qud(WKd(MFd.S), 13), 59);
- BD(qud(WKd(MFd.S), 14), 59);
- aGd = MFd.T;
- BD(qud(ZKd(MFd.T), 0), 18);
- BD(qud(ZKd(MFd.T), 2), 18);
- bGd = BD(qud(ZKd(MFd.T), 3), 18);
- BD(qud(ZKd(MFd.T), 4), 18);
- BD(qud(WKd(MFd.T), 0), 59);
- BD(qud(WKd(MFd.T), 1), 59);
- BD(qud(ZKd(MFd.T), 1), 18);
- cGd = MFd.U;
- BD(qud(ZKd(MFd.U), 0), 34);
- BD(qud(ZKd(MFd.U), 1), 34);
- BD(qud(ZKd(MFd.U), 2), 18);
- BD(qud(ZKd(MFd.U), 3), 18);
- BD(qud(ZKd(MFd.U), 4), 18);
- BD(qud(ZKd(MFd.U), 5), 18);
- BD(qud(WKd(MFd.U), 0), 59);
- dGd = MFd.V;
- BD(qud(ZKd(MFd.V), 0), 18);
- eGd = MFd.W;
- BD(qud(ZKd(MFd.W), 0), 34);
- BD(qud(ZKd(MFd.W), 1), 34);
- BD(qud(ZKd(MFd.W), 2), 34);
- BD(qud(ZKd(MFd.W), 3), 18);
- BD(qud(ZKd(MFd.W), 4), 18);
- BD(qud(ZKd(MFd.W), 5), 18);
- gGd = MFd.bb;
- BD(qud(ZKd(MFd.bb), 0), 34);
- BD(qud(ZKd(MFd.bb), 1), 34);
- BD(qud(ZKd(MFd.bb), 2), 34);
- BD(qud(ZKd(MFd.bb), 3), 34);
- BD(qud(ZKd(MFd.bb), 4), 34);
- BD(qud(ZKd(MFd.bb), 5), 34);
- BD(qud(ZKd(MFd.bb), 6), 34);
- BD(qud(ZKd(MFd.bb), 7), 18);
- BD(qud(WKd(MFd.bb), 0), 59);
- BD(qud(WKd(MFd.bb), 1), 59);
- hGd = MFd.eb;
- BD(qud(ZKd(MFd.eb), 0), 34);
- BD(qud(ZKd(MFd.eb), 1), 34);
- BD(qud(ZKd(MFd.eb), 2), 34);
- BD(qud(ZKd(MFd.eb), 3), 34);
- BD(qud(ZKd(MFd.eb), 4), 34);
- BD(qud(ZKd(MFd.eb), 5), 34);
- BD(qud(ZKd(MFd.eb), 6), 18);
- BD(qud(ZKd(MFd.eb), 7), 18);
- fGd = MFd.ab;
- BD(qud(ZKd(MFd.ab), 0), 34);
- BD(qud(ZKd(MFd.ab), 1), 34);
- XFd = MFd.H;
- BD(qud(ZKd(MFd.H), 0), 18);
- BD(qud(ZKd(MFd.H), 1), 18);
- BD(qud(ZKd(MFd.H), 2), 18);
- BD(qud(ZKd(MFd.H), 3), 18);
- BD(qud(ZKd(MFd.H), 4), 18);
- BD(qud(ZKd(MFd.H), 5), 18);
- BD(qud(WKd(MFd.H), 0), 59);
- iGd = MFd.db;
- BD(qud(ZKd(MFd.db), 0), 18);
- YFd = MFd.M;
- }
- function bae(a) {
- var b;
- if (a.O)
- return;
- a.O = true;
- pnd(a, "type");
- cod(a, "ecore.xml.type");
- dod(a, Ewe);
- b = BD(nUd((yFd(), xFd), Ewe), 1945);
- wtd(_Kd(a.fb), a.b);
- Xnd(a.b, Q9, "AnyType", false, false, true);
- Vnd(BD(qud(ZKd(a.b), 0), 34), a.wb.D, Qve, null, 0, -1, Q9, false, false, true, false, false, false);
- Vnd(BD(qud(ZKd(a.b), 1), 34), a.wb.D, "any", null, 0, -1, Q9, true, true, true, false, false, true);
- Vnd(BD(qud(ZKd(a.b), 2), 34), a.wb.D, "anyAttribute", null, 0, -1, Q9, false, false, true, false, false, false);
- Xnd(a.bb, S9, Jwe, false, false, true);
- Vnd(BD(qud(ZKd(a.bb), 0), 34), a.gb, "data", null, 0, 1, S9, false, false, true, false, true, false);
- Vnd(BD(qud(ZKd(a.bb), 1), 34), a.gb, bue, null, 1, 1, S9, false, false, true, false, true, false);
- Xnd(a.fb, T9, Kwe, false, false, true);
- Vnd(BD(qud(ZKd(a.fb), 0), 34), b.gb, "rawValue", null, 0, 1, T9, true, true, true, false, true, true);
- Vnd(BD(qud(ZKd(a.fb), 1), 34), b.a, Bte, null, 0, 1, T9, true, true, true, false, true, true);
- _nd(BD(qud(ZKd(a.fb), 2), 18), a.wb.q, null, "instanceType", 1, 1, T9, false, false, true, false, false, false, false);
- Xnd(a.qb, U9, Lwe, false, false, true);
- Vnd(BD(qud(ZKd(a.qb), 0), 34), a.wb.D, Qve, null, 0, -1, null, false, false, true, false, false, false);
- _nd(BD(qud(ZKd(a.qb), 1), 18), a.wb.ab, null, "xMLNSPrefixMap", 0, -1, null, true, false, true, true, false, false, false);
- _nd(BD(qud(ZKd(a.qb), 2), 18), a.wb.ab, null, "xSISchemaLocation", 0, -1, null, true, false, true, true, false, false, false);
- Vnd(BD(qud(ZKd(a.qb), 3), 34), a.gb, "cDATA", null, 0, -2, null, true, true, true, false, false, true);
- Vnd(BD(qud(ZKd(a.qb), 4), 34), a.gb, "comment", null, 0, -2, null, true, true, true, false, false, true);
- _nd(BD(qud(ZKd(a.qb), 5), 18), a.bb, null, jxe, 0, -2, null, true, true, true, true, false, false, true);
- Vnd(BD(qud(ZKd(a.qb), 6), 34), a.gb, Ite, null, 0, -2, null, true, true, true, false, false, true);
- Znd(a.a, SI, "AnySimpleType", true);
- Znd(a.c, ZI, "AnyURI", true);
- Znd(a.d, GC(SD, 1), "Base64Binary", true);
- Znd(a.e, sbb, "Boolean", true);
- Znd(a.f, wI, "BooleanObject", true);
- Znd(a.g, SD, "Byte", true);
- Znd(a.i, xI, "ByteObject", true);
- Znd(a.j, ZI, "Date", true);
- Znd(a.k, ZI, "DateTime", true);
- Znd(a.n, bJ, "Decimal", true);
- Znd(a.o, UD, "Double", true);
- Znd(a.p, BI, "DoubleObject", true);
- Znd(a.q, ZI, "Duration", true);
- Znd(a.s, yK, "ENTITIES", true);
- Znd(a.r, yK, "ENTITIESBase", true);
- Znd(a.t, ZI, Rwe, true);
- Znd(a.u, VD, "Float", true);
- Znd(a.v, FI, "FloatObject", true);
- Znd(a.w, ZI, "GDay", true);
- Znd(a.B, ZI, "GMonth", true);
- Znd(a.A, ZI, "GMonthDay", true);
- Znd(a.C, ZI, "GYear", true);
- Znd(a.D, ZI, "GYearMonth", true);
- Znd(a.F, GC(SD, 1), "HexBinary", true);
- Znd(a.G, ZI, "ID", true);
- Znd(a.H, ZI, "IDREF", true);
- Znd(a.J, yK, "IDREFS", true);
- Znd(a.I, yK, "IDREFSBase", true);
- Znd(a.K, WD, "Int", true);
- Znd(a.M, cJ, "Integer", true);
- Znd(a.L, JI, "IntObject", true);
- Znd(a.P, ZI, "Language", true);
- Znd(a.Q, XD, "Long", true);
- Znd(a.R, MI, "LongObject", true);
- Znd(a.S, ZI, "Name", true);
- Znd(a.T, ZI, Swe, true);
- Znd(a.U, cJ, "NegativeInteger", true);
- Znd(a.V, ZI, axe, true);
- Znd(a.X, yK, "NMTOKENS", true);
- Znd(a.W, yK, "NMTOKENSBase", true);
- Znd(a.Y, cJ, "NonNegativeInteger", true);
- Znd(a.Z, cJ, "NonPositiveInteger", true);
- Znd(a.$, ZI, "NormalizedString", true);
- Znd(a._, ZI, "NOTATION", true);
- Znd(a.ab, ZI, "PositiveInteger", true);
- Znd(a.cb, ZI, "QName", true);
- Znd(a.db, rbb, "Short", true);
- Znd(a.eb, UI, "ShortObject", true);
- Znd(a.gb, ZI, Vie, true);
- Znd(a.hb, ZI, "Time", true);
- Znd(a.ib, ZI, "Token", true);
- Znd(a.jb, rbb, "UnsignedByte", true);
- Znd(a.kb, UI, "UnsignedByteObject", true);
- Znd(a.lb, XD, "UnsignedInt", true);
- Znd(a.mb, MI, "UnsignedIntObject", true);
- Znd(a.nb, cJ, "UnsignedLong", true);
- Znd(a.ob, WD, "UnsignedShort", true);
- Znd(a.pb, JI, "UnsignedShortObject", true);
- Rnd(a, Ewe);
- _9d(a);
- }
- function Oyc(a) {
- r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sne), "ELK Layered"), "Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."), new Ryc()), sne), qqb((Csd(), Bsd), OC(GC(O3, 1), Kie, 237, 0, [ysd, zsd, xsd, Asd, vsd, usd])))));
- p4c(a, sne, Lpe, Ksd(iyc));
- p4c(a, sne, Mpe, Ksd(jyc));
- p4c(a, sne, Zle, Ksd(kyc));
- p4c(a, sne, Npe, Ksd(lyc));
- p4c(a, sne, xme, Ksd(nyc));
- p4c(a, sne, Ope, Ksd(oyc));
- p4c(a, sne, Ppe, Ksd(ryc));
- p4c(a, sne, Qpe, Ksd(tyc));
- p4c(a, sne, Rpe, Ksd(uyc));
- p4c(a, sne, Spe, Ksd(syc));
- p4c(a, sne, wme, Ksd(vyc));
- p4c(a, sne, Tpe, Ksd(xyc));
- p4c(a, sne, Upe, Ksd(zyc));
- p4c(a, sne, Vpe, Ksd(qyc));
- p4c(a, sne, Loe, Ksd(hyc));
- p4c(a, sne, Noe, Ksd(myc));
- p4c(a, sne, Moe, Ksd(pyc));
- p4c(a, sne, Ooe, Ksd(wyc));
- p4c(a, sne, vme, meb(0));
- p4c(a, sne, Poe, Ksd(cyc));
- p4c(a, sne, Qoe, Ksd(dyc));
- p4c(a, sne, Roe, Ksd(eyc));
- p4c(a, sne, Yoe, Ksd(Kyc));
- p4c(a, sne, Zoe, Ksd(Cyc));
- p4c(a, sne, $oe, Ksd(Dyc));
- p4c(a, sne, _oe, Ksd(Gyc));
- p4c(a, sne, ape, Ksd(Eyc));
- p4c(a, sne, bpe, Ksd(Fyc));
- p4c(a, sne, cpe, Ksd(Myc));
- p4c(a, sne, dpe, Ksd(Lyc));
- p4c(a, sne, epe, Ksd(Iyc));
- p4c(a, sne, fpe, Ksd(Hyc));
- p4c(a, sne, gpe, Ksd(Jyc));
- p4c(a, sne, Eoe, Ksd(Cxc));
- p4c(a, sne, Foe, Ksd(Dxc));
- p4c(a, sne, Ioe, Ksd(Xwc));
- p4c(a, sne, Joe, Ksd(Ywc));
- p4c(a, sne, ame, Lxc);
- p4c(a, sne, ype, Twc);
- p4c(a, sne, Wpe, 0);
- p4c(a, sne, yme, meb(1));
- p4c(a, sne, _le, tme);
- p4c(a, sne, Xpe, Ksd(Jxc));
- p4c(a, sne, Bme, Ksd(Vxc));
- p4c(a, sne, Ype, Ksd($xc));
- p4c(a, sne, Zpe, Ksd(Kwc));
- p4c(a, sne, $pe, Ksd(mwc));
- p4c(a, sne, tpe, Ksd(axc));
- p4c(a, sne, zme, (Bcb(), true));
- p4c(a, sne, _pe, Ksd(fxc));
- p4c(a, sne, aqe, Ksd(gxc));
- p4c(a, sne, Fme, Ksd(Fxc));
- p4c(a, sne, Eme, Ksd(Ixc));
- p4c(a, sne, bqe, Ksd(Gxc));
- p4c(a, sne, cqe, Nwc);
- p4c(a, sne, Gme, Ksd(xxc));
- p4c(a, sne, dqe, Ksd(wxc));
- p4c(a, sne, Hme, Ksd(Yxc));
- p4c(a, sne, eqe, Ksd(Xxc));
- p4c(a, sne, fqe, Ksd(Zxc));
- p4c(a, sne, gqe, Oxc);
- p4c(a, sne, hqe, Ksd(Qxc));
- p4c(a, sne, iqe, Ksd(Rxc));
- p4c(a, sne, jqe, Ksd(Sxc));
- p4c(a, sne, kqe, Ksd(Pxc));
- p4c(a, sne, eoe, Ksd(Byc));
- p4c(a, sne, hoe, Ksd(sxc));
- p4c(a, sne, noe, Ksd(rxc));
- p4c(a, sne, doe, Ksd(Ayc));
- p4c(a, sne, ioe, Ksd(mxc));
- p4c(a, sne, goe, Ksd(Jwc));
- p4c(a, sne, qoe, Ksd(Iwc));
- p4c(a, sne, roe, Ksd(Awc));
- p4c(a, sne, woe, Ksd(Bwc));
- p4c(a, sne, xoe, Ksd(Dwc));
- p4c(a, sne, yoe, Ksd(Cwc));
- p4c(a, sne, toe, Ksd(Hwc));
- p4c(a, sne, _ne, Ksd(uxc));
- p4c(a, sne, aoe, Ksd(vxc));
- p4c(a, sne, $ne, Ksd(ixc));
- p4c(a, sne, zoe, Ksd(Exc));
- p4c(a, sne, Coe, Ksd(zxc));
- p4c(a, sne, Zne, Ksd($wc));
- p4c(a, sne, Doe, Ksd(Bxc));
- p4c(a, sne, Goe, Ksd(Vwc));
- p4c(a, sne, Hoe, Ksd(Wwc));
- p4c(a, sne, lqe, Ksd(zwc));
- p4c(a, sne, Boe, Ksd(yxc));
- p4c(a, sne, Toe, Ksd(swc));
- p4c(a, sne, Uoe, Ksd(rwc));
- p4c(a, sne, Soe, Ksd(qwc));
- p4c(a, sne, Voe, Ksd(cxc));
- p4c(a, sne, Woe, Ksd(bxc));
- p4c(a, sne, Xoe, Ksd(dxc));
- p4c(a, sne, Tme, Ksd(Hxc));
- p4c(a, sne, mqe, Ksd(jxc));
- p4c(a, sne, $le, Ksd(Zwc));
- p4c(a, sne, nqe, Ksd(Qwc));
- p4c(a, sne, Cme, Ksd(Pwc));
- p4c(a, sne, soe, Ksd(Ewc));
- p4c(a, sne, oqe, Ksd(Wxc));
- p4c(a, sne, pqe, Ksd(pwc));
- p4c(a, sne, qqe, Ksd(exc));
- p4c(a, sne, rqe, Ksd(Txc));
- p4c(a, sne, sqe, Ksd(Mxc));
- p4c(a, sne, tqe, Ksd(Nxc));
- p4c(a, sne, loe, Ksd(oxc));
- p4c(a, sne, moe, Ksd(pxc));
- p4c(a, sne, uqe, Ksd(ayc));
- p4c(a, sne, boe, Ksd(nwc));
- p4c(a, sne, ooe, Ksd(qxc));
- p4c(a, sne, hpe, Ksd(Rwc));
- p4c(a, sne, ipe, Ksd(Owc));
- p4c(a, sne, vqe, Ksd(txc));
- p4c(a, sne, poe, Ksd(kxc));
- p4c(a, sne, Aoe, Ksd(Axc));
- p4c(a, sne, wqe, Ksd(yyc));
- p4c(a, sne, Yne, Ksd(Mwc));
- p4c(a, sne, coe, Ksd(_xc));
- p4c(a, sne, Koe, Ksd(Uwc));
- p4c(a, sne, joe, Ksd(lxc));
- p4c(a, sne, uoe, Ksd(Fwc));
- p4c(a, sne, xqe, Ksd(hxc));
- p4c(a, sne, koe, Ksd(nxc));
- p4c(a, sne, voe, Ksd(Gwc));
- p4c(a, sne, jpe, Ksd(ywc));
- p4c(a, sne, mpe, Ksd(wwc));
- p4c(a, sne, npe, Ksd(uwc));
- p4c(a, sne, ope, Ksd(vwc));
- p4c(a, sne, kpe, Ksd(xwc));
- p4c(a, sne, lpe, Ksd(twc));
- p4c(a, sne, foe, Ksd(_wc));
- }
- function kee(a, b) {
- var c2, d;
- if (!cee) {
- cee = new Lqb();
- dee = new Lqb();
- d = (wfe(), wfe(), new $fe(4));
- Ree(d, " \n\r\r ");
- Shb(cee, pxe, d);
- Shb(dee, pxe, _fe(d));
- d = new $fe(4);
- Ree(d, sxe);
- Shb(cee, nxe, d);
- Shb(dee, nxe, _fe(d));
- d = new $fe(4);
- Ree(d, sxe);
- Shb(cee, nxe, d);
- Shb(dee, nxe, _fe(d));
- d = new $fe(4);
- Ree(d, txe);
- Xfe(d, BD(Phb(cee, nxe), 117));
- Shb(cee, oxe, d);
- Shb(dee, oxe, _fe(d));
- d = new $fe(4);
- Ree(d, "-.0:AZ__az··ÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁːˑ̀͠͡ͅΆΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁ҃҆ҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆֹֻֽֿֿׁׂ֑֣֡ׄׄאתװײءغـْ٠٩ٰڷںھۀێېۓە۪ۭۨ۰۹ँःअह़्॑॔क़ॣ०९ঁঃঅঌএঐওনপরললশহ়়াৄেৈো্ৗৗড়ঢ়য়ৣ০ৱਂਂਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹ਼਼ਾੂੇੈੋ੍ਖ਼ੜਫ਼ਫ਼੦ੴઁઃઅઋઍઍએઑઓનપરલળવહ઼ૅેૉો્ૠૠ૦૯ଁଃଅଌଏଐଓନପରଲଳଶହ଼ୃେୈୋ୍ୖୗଡ଼ଢ଼ୟୡ୦୯ஂஃஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹாூெைொ்ௗௗ௧௯ఁఃఅఌఎఐఒనపళవహాౄెైొ్ౕౖౠౡ౦౯ಂಃಅಌಎಐಒನಪಳವಹಾೄೆೈೊ್ೕೖೞೞೠೡ೦೯ംഃഅഌഎഐഒനപഹാൃെൈൊ്ൗൗൠൡ൦൯กฮะฺเ๎๐๙ກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະູົຽເໄໆໆ່ໍ໐໙༘༙༠༩༹༹༵༵༷༷༾ཇཉཀྵ྄ཱ྆ྋྐྕྗྗྙྭྱྷྐྵྐྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼ⃐⃜⃡⃡ΩΩKÅ℮℮ↀↂ々々〇〇〡〯〱〵ぁゔ゙゚ゝゞァヺーヾㄅㄬ一龥가힣");
- Shb(cee, qxe, d);
- Shb(dee, qxe, _fe(d));
- d = new $fe(4);
- Ree(d, txe);
- Ufe(d, 95, 95);
- Ufe(d, 58, 58);
- Shb(cee, rxe, d);
- Shb(dee, rxe, _fe(d));
- }
- c2 = b ? BD(Phb(cee, a), 136) : BD(Phb(dee, a), 136);
- return c2;
- }
- function _9d(a) {
- Bnd(a.a, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anySimpleType"]));
- Bnd(a.b, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyType", Sve, Qve]));
- Bnd(BD(qud(ZKd(a.b), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"]));
- Bnd(BD(qud(ZKd(a.b), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, Dwe, Fwe, fue, ":1", Owe, "lax"]));
- Bnd(BD(qud(ZKd(a.b), 2), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, vwe, Dwe, Fwe, fue, ":2", Owe, "lax"]));
- Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyURI", Cwe, ywe]));
- Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "base64Binary", Cwe, ywe]));
- Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Khe, Cwe, ywe]));
- Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "boolean:Object", cwe, Khe]));
- Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Eve]));
- Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "byte:Object", cwe, Eve]));
- Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "date", Cwe, ywe]));
- Bnd(a.k, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "dateTime", Cwe, ywe]));
- Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "decimal", Cwe, ywe]));
- Bnd(a.o, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Gve, Cwe, ywe]));
- Bnd(a.p, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "double:Object", cwe, Gve]));
- Bnd(a.q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "duration", Cwe, ywe]));
- Bnd(a.s, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ENTITIES", cwe, Pwe, Qwe, "1"]));
- Bnd(a.r, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Pwe, zwe, Rwe]));
- Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Rwe, cwe, Swe]));
- Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Hve, Cwe, ywe]));
- Bnd(a.v, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "float:Object", cwe, Hve]));
- Bnd(a.w, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gDay", Cwe, ywe]));
- Bnd(a.B, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonth", Cwe, ywe]));
- Bnd(a.A, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonthDay", Cwe, ywe]));
- Bnd(a.C, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYear", Cwe, ywe]));
- Bnd(a.D, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYearMonth", Cwe, ywe]));
- Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "hexBinary", Cwe, ywe]));
- Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ID", cwe, Swe]));
- Bnd(a.H, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREF", cwe, Swe]));
- Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREFS", cwe, Twe, Qwe, "1"]));
- Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Twe, zwe, "IDREF"]));
- Bnd(a.K, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Ive]));
- Bnd(a.M, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Uwe]));
- Bnd(a.L, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "int:Object", cwe, Ive]));
- Bnd(a.P, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "language", cwe, Vwe, Wwe, Xwe]));
- Bnd(a.Q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Jve]));
- Bnd(a.R, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "long:Object", cwe, Jve]));
- Bnd(a.S, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "Name", cwe, Vwe, Wwe, Ywe]));
- Bnd(a.T, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Swe, cwe, "Name", Wwe, Zwe]));
- Bnd(a.U, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "negativeInteger", cwe, $we, _we, "-1"]));
- Bnd(a.V, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, axe, cwe, Vwe, Wwe, "\\c+"]));
- Bnd(a.X, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NMTOKENS", cwe, bxe, Qwe, "1"]));
- Bnd(a.W, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, bxe, zwe, axe]));
- Bnd(a.Y, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, cxe, cwe, Uwe, dxe, "0"]));
- Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, $we, cwe, Uwe, _we, "0"]));
- Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, exe, cwe, Mhe, Cwe, "replace"]));
- Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NOTATION", Cwe, ywe]));
- Bnd(a.ab, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "positiveInteger", cwe, cxe, dxe, "1"]));
- Bnd(a.bb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "processingInstruction_._type", Sve, "empty"]));
- Bnd(BD(qud(ZKd(a.bb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "data"]));
- Bnd(BD(qud(ZKd(a.bb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, bue]));
- Bnd(a.cb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "QName", Cwe, ywe]));
- Bnd(a.db, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Kve]));
- Bnd(a.eb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "short:Object", cwe, Kve]));
- Bnd(a.fb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "simpleAnyType", Sve, twe]));
- Bnd(BD(qud(ZKd(a.fb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":3", Sve, twe]));
- Bnd(BD(qud(ZKd(a.fb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":4", Sve, twe]));
- Bnd(BD(qud(ZKd(a.fb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":5", Sve, twe]));
- Bnd(a.gb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Mhe, Cwe, "preserve"]));
- Bnd(a.hb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "time", Cwe, ywe]));
- Bnd(a.ib, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Vwe, cwe, exe, Cwe, ywe]));
- Bnd(a.jb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, fxe, _we, "255", dxe, "0"]));
- Bnd(a.kb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedByte:Object", cwe, fxe]));
- Bnd(a.lb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, gxe, _we, "4294967295", dxe, "0"]));
- Bnd(a.mb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedInt:Object", cwe, gxe]));
- Bnd(a.nb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedLong", cwe, cxe, _we, hxe, dxe, "0"]));
- Bnd(a.ob, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ixe, _we, "65535", dxe, "0"]));
- Bnd(a.pb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedShort:Object", cwe, ixe]));
- Bnd(a.qb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "", Sve, Qve]));
- Bnd(BD(qud(ZKd(a.qb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"]));
- Bnd(BD(qud(ZKd(a.qb), 1), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xmlns:prefix"]));
- Bnd(BD(qud(ZKd(a.qb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xsi:schemaLocation"]));
- Bnd(BD(qud(ZKd(a.qb), 3), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "cDATA", Awe, Bwe]));
- Bnd(BD(qud(ZKd(a.qb), 4), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "comment", Awe, Bwe]));
- Bnd(BD(qud(ZKd(a.qb), 5), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, jxe, Awe, Bwe]));
- Bnd(BD(qud(ZKd(a.qb), 6), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, Ite, Awe, Bwe]));
- }
- function tvd(a) {
- return dfb("_UI_EMFDiagnostic_marker", a) ? "EMF Problem" : dfb("_UI_CircularContainment_diagnostic", a) ? "An object may not circularly contain itself" : dfb(sue, a) ? "Wrong character." : dfb(tue, a) ? "Invalid reference number." : dfb(uue, a) ? "A character is required after \\." : dfb(vue, a) ? "'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?" : dfb(wue, a) ? "'(?<' or '(? toIndex: ", zke = ", toIndex: ", Ake = "Index: ", Bke = ", Size: ", Cke = "org.eclipse.elk.alg.common", Dke = { 62: 1 }, Eke = "org.eclipse.elk.alg.common.compaction", Fke = "Scanline/EventHandler", Gke = "org.eclipse.elk.alg.common.compaction.oned", Hke = "CNode belongs to another CGroup.", Ike = "ISpacingsHandler/1", Jke = "The ", Kke = " instance has been finished already.", Lke = "The direction ", Mke = " is not supported by the CGraph instance.", Nke = "OneDimensionalCompactor", Oke = "OneDimensionalCompactor/lambda$0$Type", Pke = "Quadruplet", Qke = "ScanlineConstraintCalculator", Rke = "ScanlineConstraintCalculator/ConstraintsScanlineHandler", Ske = "ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type", Tke = "ScanlineConstraintCalculator/Timestamp", Uke = "ScanlineConstraintCalculator/lambda$0$Type", Vke = { 169: 1, 45: 1 }, Wke = "org.eclipse.elk.alg.common.compaction.options", Xke = "org.eclipse.elk.core.data", Yke = "org.eclipse.elk.polyomino.traversalStrategy", Zke = "org.eclipse.elk.polyomino.lowLevelSort", $ke = "org.eclipse.elk.polyomino.highLevelSort", _ke = "org.eclipse.elk.polyomino.fill", ale = { 130: 1 }, ble = "polyomino", cle = "org.eclipse.elk.alg.common.networksimplex", dle = { 177: 1, 3: 1, 4: 1 }, ele = "org.eclipse.elk.alg.common.nodespacing", fle = "org.eclipse.elk.alg.common.nodespacing.cellsystem", gle = "CENTER", hle = { 212: 1, 326: 1 }, ile = { 3: 1, 4: 1, 5: 1, 595: 1 }, jle = "LEFT", kle = "RIGHT", lle = "Vertical alignment cannot be null", mle = "BOTTOM", nle = "org.eclipse.elk.alg.common.nodespacing.internal", ole = "UNDEFINED", ple = 0.01, qle = "org.eclipse.elk.alg.common.nodespacing.internal.algorithm", rle = "LabelPlacer/lambda$0$Type", sle = "LabelPlacer/lambda$1$Type", tle = "portRatioOrPosition", ule = "org.eclipse.elk.alg.common.overlaps", vle = "DOWN", wle = "org.eclipse.elk.alg.common.polyomino", xle = "NORTH", yle = "EAST", zle = "SOUTH", Ale = "WEST", Ble = "org.eclipse.elk.alg.common.polyomino.structures", Cle = "Direction", Dle = "Grid is only of size ", Ele = ". Requested point (", Fle = ") is out of bounds.", Gle = " Given center based coordinates were (", Hle = "org.eclipse.elk.graph.properties", Ile = "IPropertyHolder", Jle = { 3: 1, 94: 1, 134: 1 }, Kle = "org.eclipse.elk.alg.common.spore", Lle = "org.eclipse.elk.alg.common.utils", Mle = { 209: 1 }, Nle = "org.eclipse.elk.core", Ole = "Connected Components Compaction", Ple = "org.eclipse.elk.alg.disco", Qle = "org.eclipse.elk.alg.disco.graph", Rle = "org.eclipse.elk.alg.disco.options", Sle = "CompactionStrategy", Tle = "org.eclipse.elk.disco.componentCompaction.strategy", Ule = "org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm", Vle = "org.eclipse.elk.disco.debug.discoGraph", Wle = "org.eclipse.elk.disco.debug.discoPolys", Xle = "componentCompaction", Yle = "org.eclipse.elk.disco", Zle = "org.eclipse.elk.spacing.componentComponent", $le = "org.eclipse.elk.edge.thickness", _le = "org.eclipse.elk.aspectRatio", ame = "org.eclipse.elk.padding", bme = "org.eclipse.elk.alg.disco.transform", cme = 1.5707963267948966, dme = 17976931348623157e292, eme = { 3: 1, 4: 1, 5: 1, 192: 1 }, fme = { 3: 1, 6: 1, 4: 1, 5: 1, 106: 1, 120: 1 }, gme = "org.eclipse.elk.alg.force", hme = "ComponentsProcessor", ime = "ComponentsProcessor/1", jme = "org.eclipse.elk.alg.force.graph", kme = "Component Layout", lme = "org.eclipse.elk.alg.force.model", mme = "org.eclipse.elk.force.model", nme = "org.eclipse.elk.force.iterations", ome = "org.eclipse.elk.force.repulsivePower", pme = "org.eclipse.elk.force.temperature", qme = 1e-3, rme = "org.eclipse.elk.force.repulsion", sme = "org.eclipse.elk.alg.force.options", tme = 1.600000023841858, ume = "org.eclipse.elk.force", vme = "org.eclipse.elk.priority", wme = "org.eclipse.elk.spacing.nodeNode", xme = "org.eclipse.elk.spacing.edgeLabel", yme = "org.eclipse.elk.randomSeed", zme = "org.eclipse.elk.separateConnectedComponents", Ame = "org.eclipse.elk.interactive", Bme = "org.eclipse.elk.portConstraints", Cme = "org.eclipse.elk.edgeLabels.inline", Dme = "org.eclipse.elk.omitNodeMicroLayout", Eme = "org.eclipse.elk.nodeSize.options", Fme = "org.eclipse.elk.nodeSize.constraints", Gme = "org.eclipse.elk.nodeLabels.placement", Hme = "org.eclipse.elk.portLabels.placement", Ime = "origin", Jme = "random", Kme = "boundingBox.upLeft", Lme = "boundingBox.lowRight", Mme = "org.eclipse.elk.stress.fixed", Nme = "org.eclipse.elk.stress.desiredEdgeLength", Ome = "org.eclipse.elk.stress.dimension", Pme = "org.eclipse.elk.stress.epsilon", Qme = "org.eclipse.elk.stress.iterationLimit", Rme = "org.eclipse.elk.stress", Sme = "ELK Stress", Tme = "org.eclipse.elk.nodeSize.minimum", Ume = "org.eclipse.elk.alg.force.stress", Vme = "Layered layout", Wme = "org.eclipse.elk.alg.layered", Xme = "org.eclipse.elk.alg.layered.compaction.components", Yme = "org.eclipse.elk.alg.layered.compaction.oned", Zme = "org.eclipse.elk.alg.layered.compaction.oned.algs", $me = "org.eclipse.elk.alg.layered.compaction.recthull", _me = "org.eclipse.elk.alg.layered.components", ane = "NONE", bne = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1, 122: 1 }, cne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 106: 1, 120: 1 }, dne = "org.eclipse.elk.alg.layered.compound", ene = { 51: 1 }, fne = "org.eclipse.elk.alg.layered.graph", gne = " -> ", hne = "Not supported by LGraph", ine = "Port side is undefined", jne = { 3: 1, 6: 1, 4: 1, 5: 1, 474: 1, 141: 1, 106: 1, 120: 1 }, kne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 193: 1, 203: 1, 106: 1, 120: 1 }, lne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 1943: 1, 203: 1, 106: 1, 120: 1 }, mne = `([{"' \r
-`, nne = `)]}"' \r
-`, one2 = "The given string contains parts that cannot be parsed as numbers.", pne = "org.eclipse.elk.core.math", qne = { 3: 1, 4: 1, 142: 1, 207: 1, 414: 1 }, rne = { 3: 1, 4: 1, 116: 1, 207: 1, 414: 1 }, sne = "org.eclipse.elk.layered", tne = "org.eclipse.elk.alg.layered.graph.transform", une = "ElkGraphImporter", vne = "ElkGraphImporter/lambda$0$Type", wne = "ElkGraphImporter/lambda$1$Type", xne = "ElkGraphImporter/lambda$2$Type", yne = "ElkGraphImporter/lambda$4$Type", zne = "Node margin calculation", Ane = "org.eclipse.elk.alg.layered.intermediate", Bne = "ONE_SIDED_GREEDY_SWITCH", Cne = "TWO_SIDED_GREEDY_SWITCH", Dne = "No implementation is available for the layout processor ", Ene = "IntermediateProcessorStrategy", Fne = "Node '", Gne = "FIRST_SEPARATE", Hne = "LAST_SEPARATE", Ine = "Odd port side processing", Jne = "org.eclipse.elk.alg.layered.intermediate.compaction", Kne = "org.eclipse.elk.alg.layered.intermediate.greedyswitch", Lne = "org.eclipse.elk.alg.layered.p3order.counting", Mne = { 225: 1 }, Nne = "org.eclipse.elk.alg.layered.intermediate.loops", One = "org.eclipse.elk.alg.layered.intermediate.loops.ordering", Pne = "org.eclipse.elk.alg.layered.intermediate.loops.routing", Qne = "org.eclipse.elk.alg.layered.intermediate.preserveorder", Rne = "org.eclipse.elk.alg.layered.intermediate.wrapping", Sne = "org.eclipse.elk.alg.layered.options", Tne = "INTERACTIVE", Une = "DEPTH_FIRST", Vne = "EDGE_LENGTH", Wne = "SELF_LOOPS", Xne = "firstTryWithInitialOrder", Yne = "org.eclipse.elk.layered.directionCongruency", Zne = "org.eclipse.elk.layered.feedbackEdges", $ne = "org.eclipse.elk.layered.interactiveReferencePoint", _ne = "org.eclipse.elk.layered.mergeEdges", aoe = "org.eclipse.elk.layered.mergeHierarchyEdges", boe = "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides", coe = "org.eclipse.elk.layered.portSortingStrategy", doe = "org.eclipse.elk.layered.thoroughness", eoe = "org.eclipse.elk.layered.unnecessaryBendpoints", foe = "org.eclipse.elk.layered.generatePositionAndLayerIds", goe = "org.eclipse.elk.layered.cycleBreaking.strategy", hoe = "org.eclipse.elk.layered.layering.strategy", ioe = "org.eclipse.elk.layered.layering.layerConstraint", joe = "org.eclipse.elk.layered.layering.layerChoiceConstraint", koe = "org.eclipse.elk.layered.layering.layerId", loe = "org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth", moe = "org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor", noe = "org.eclipse.elk.layered.layering.nodePromotion.strategy", ooe = "org.eclipse.elk.layered.layering.nodePromotion.maxIterations", poe = "org.eclipse.elk.layered.layering.coffmanGraham.layerBound", qoe = "org.eclipse.elk.layered.crossingMinimization.strategy", roe = "org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder", soe = "org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness", toe = "org.eclipse.elk.layered.crossingMinimization.semiInteractive", uoe = "org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint", voe = "org.eclipse.elk.layered.crossingMinimization.positionId", woe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold", xoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.type", yoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type", zoe = "org.eclipse.elk.layered.nodePlacement.strategy", Aoe = "org.eclipse.elk.layered.nodePlacement.favorStraightEdges", Boe = "org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening", Coe = "org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment", Doe = "org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening", Eoe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", Foe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default", Goe = "org.eclipse.elk.layered.edgeRouting.selfLoopDistribution", Hoe = "org.eclipse.elk.layered.edgeRouting.selfLoopOrdering", Ioe = "org.eclipse.elk.layered.edgeRouting.splines.mode", Joe = "org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor", Koe = "org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth", Loe = "org.eclipse.elk.layered.spacing.baseValue", Moe = "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers", Noe = "org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers", Ooe = "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers", Poe = "org.eclipse.elk.layered.priority.direction", Qoe = "org.eclipse.elk.layered.priority.shortness", Roe = "org.eclipse.elk.layered.priority.straightness", Soe = "org.eclipse.elk.layered.compaction.connectedComponents", Toe = "org.eclipse.elk.layered.compaction.postCompaction.strategy", Uoe = "org.eclipse.elk.layered.compaction.postCompaction.constraints", Voe = "org.eclipse.elk.layered.highDegreeNodes.treatment", Woe = "org.eclipse.elk.layered.highDegreeNodes.threshold", Xoe = "org.eclipse.elk.layered.highDegreeNodes.treeHeight", Yoe = "org.eclipse.elk.layered.wrapping.strategy", Zoe = "org.eclipse.elk.layered.wrapping.additionalEdgeSpacing", $oe = "org.eclipse.elk.layered.wrapping.correctionFactor", _oe = "org.eclipse.elk.layered.wrapping.cutting.strategy", ape = "org.eclipse.elk.layered.wrapping.cutting.cuts", bpe = "org.eclipse.elk.layered.wrapping.cutting.msd.freedom", cpe = "org.eclipse.elk.layered.wrapping.validify.strategy", dpe = "org.eclipse.elk.layered.wrapping.validify.forbiddenIndices", epe = "org.eclipse.elk.layered.wrapping.multiEdge.improveCuts", fpe = "org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty", gpe = "org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges", hpe = "org.eclipse.elk.layered.edgeLabels.sideSelection", ipe = "org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy", jpe = "org.eclipse.elk.layered.considerModelOrder.strategy", kpe = "org.eclipse.elk.layered.considerModelOrder.noModelOrder", lpe = "org.eclipse.elk.layered.considerModelOrder.components", mpe = "org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy", npe = "org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence", ope = "org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence", ppe = "layering", qpe = "layering.minWidth", rpe = "layering.nodePromotion", spe = "crossingMinimization", tpe = "org.eclipse.elk.hierarchyHandling", upe = "crossingMinimization.greedySwitch", vpe = "nodePlacement", wpe = "nodePlacement.bk", xpe = "edgeRouting", ype = "org.eclipse.elk.edgeRouting", zpe = "spacing", Ape = "priority", Bpe = "compaction", Cpe = "compaction.postCompaction", Dpe = "Specifies whether and how post-process compaction is applied.", Epe = "highDegreeNodes", Fpe = "wrapping", Gpe = "wrapping.cutting", Hpe = "wrapping.validify", Ipe = "wrapping.multiEdge", Jpe = "edgeLabels", Kpe = "considerModelOrder", Lpe = "org.eclipse.elk.spacing.commentComment", Mpe = "org.eclipse.elk.spacing.commentNode", Npe = "org.eclipse.elk.spacing.edgeEdge", Ope = "org.eclipse.elk.spacing.edgeNode", Ppe = "org.eclipse.elk.spacing.labelLabel", Qpe = "org.eclipse.elk.spacing.labelPortHorizontal", Rpe = "org.eclipse.elk.spacing.labelPortVertical", Spe = "org.eclipse.elk.spacing.labelNode", Tpe = "org.eclipse.elk.spacing.nodeSelfLoop", Upe = "org.eclipse.elk.spacing.portPort", Vpe = "org.eclipse.elk.spacing.individual", Wpe = "org.eclipse.elk.port.borderOffset", Xpe = "org.eclipse.elk.noLayout", Ype = "org.eclipse.elk.port.side", Zpe = "org.eclipse.elk.debugMode", $pe = "org.eclipse.elk.alignment", _pe = "org.eclipse.elk.insideSelfLoops.activate", aqe = "org.eclipse.elk.insideSelfLoops.yo", bqe = "org.eclipse.elk.nodeSize.fixedGraphSize", cqe = "org.eclipse.elk.direction", dqe = "org.eclipse.elk.nodeLabels.padding", eqe = "org.eclipse.elk.portLabels.nextToPortIfPossible", fqe = "org.eclipse.elk.portLabels.treatAsGroup", gqe = "org.eclipse.elk.portAlignment.default", hqe = "org.eclipse.elk.portAlignment.north", iqe = "org.eclipse.elk.portAlignment.south", jqe = "org.eclipse.elk.portAlignment.west", kqe = "org.eclipse.elk.portAlignment.east", lqe = "org.eclipse.elk.contentAlignment", mqe = "org.eclipse.elk.junctionPoints", nqe = "org.eclipse.elk.edgeLabels.placement", oqe = "org.eclipse.elk.port.index", pqe = "org.eclipse.elk.commentBox", qqe = "org.eclipse.elk.hypernode", rqe = "org.eclipse.elk.port.anchor", sqe = "org.eclipse.elk.partitioning.activate", tqe = "org.eclipse.elk.partitioning.partition", uqe = "org.eclipse.elk.position", vqe = "org.eclipse.elk.margins", wqe = "org.eclipse.elk.spacing.portsSurrounding", xqe = "org.eclipse.elk.interactiveLayout", yqe = "org.eclipse.elk.core.util", zqe = { 3: 1, 4: 1, 5: 1, 593: 1 }, Aqe = "NETWORK_SIMPLEX", Bqe = { 123: 1, 51: 1 }, Cqe = "org.eclipse.elk.alg.layered.p1cycles", Dqe = "org.eclipse.elk.alg.layered.p2layers", Eqe = { 402: 1, 225: 1 }, Fqe = { 832: 1, 3: 1, 4: 1 }, Gqe = "org.eclipse.elk.alg.layered.p3order", Hqe = "org.eclipse.elk.alg.layered.p4nodes", Iqe = { 3: 1, 4: 1, 5: 1, 840: 1 }, Jqe = 1e-5, Kqe = "org.eclipse.elk.alg.layered.p4nodes.bk", Lqe = "org.eclipse.elk.alg.layered.p5edges", Mqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal", Nqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal.direction", Oqe = 1e-6, Pqe = "org.eclipse.elk.alg.layered.p5edges.splines", Qqe = 0.09999999999999998, Rqe = 1e-8, Sqe = 4.71238898038469, Tqe = 3.141592653589793, Uqe = "org.eclipse.elk.alg.mrtree", Vqe = "org.eclipse.elk.alg.mrtree.graph", Wqe = "org.eclipse.elk.alg.mrtree.intermediate", Xqe = "Set neighbors in level", Yqe = "DESCENDANTS", Zqe = "org.eclipse.elk.mrtree.weighting", $qe = "org.eclipse.elk.mrtree.searchOrder", _qe = "org.eclipse.elk.alg.mrtree.options", are = "org.eclipse.elk.mrtree", bre = "org.eclipse.elk.tree", cre = "org.eclipse.elk.alg.radial", dre = 6.283185307179586, ere = 5e-324, fre = "org.eclipse.elk.alg.radial.intermediate", gre = "org.eclipse.elk.alg.radial.intermediate.compaction", hre = { 3: 1, 4: 1, 5: 1, 106: 1 }, ire = "org.eclipse.elk.alg.radial.intermediate.optimization", jre = "No implementation is available for the layout option ", kre = "org.eclipse.elk.alg.radial.options", lre = "org.eclipse.elk.radial.orderId", mre = "org.eclipse.elk.radial.radius", nre = "org.eclipse.elk.radial.compactor", ore = "org.eclipse.elk.radial.compactionStepSize", pre = "org.eclipse.elk.radial.sorter", qre = "org.eclipse.elk.radial.wedgeCriteria", rre = "org.eclipse.elk.radial.optimizationCriteria", sre = "org.eclipse.elk.radial", tre = "org.eclipse.elk.alg.radial.p1position.wedge", ure = "org.eclipse.elk.alg.radial.sorting", vre = 5.497787143782138, wre = 3.9269908169872414, xre = 2.356194490192345, yre = "org.eclipse.elk.alg.rectpacking", zre = "org.eclipse.elk.alg.rectpacking.firstiteration", Are = "org.eclipse.elk.alg.rectpacking.options", Bre = "org.eclipse.elk.rectpacking.optimizationGoal", Cre = "org.eclipse.elk.rectpacking.lastPlaceShift", Dre = "org.eclipse.elk.rectpacking.currentPosition", Ere = "org.eclipse.elk.rectpacking.desiredPosition", Fre = "org.eclipse.elk.rectpacking.onlyFirstIteration", Gre = "org.eclipse.elk.rectpacking.rowCompaction", Hre = "org.eclipse.elk.rectpacking.expandToAspectRatio", Ire = "org.eclipse.elk.rectpacking.targetWidth", Jre = "org.eclipse.elk.expandNodes", Kre = "org.eclipse.elk.rectpacking", Lre = "org.eclipse.elk.alg.rectpacking.util", Mre = "No implementation available for ", Nre = "org.eclipse.elk.alg.spore", Ore = "org.eclipse.elk.alg.spore.options", Pre = "org.eclipse.elk.sporeCompaction", Qre = "org.eclipse.elk.underlyingLayoutAlgorithm", Rre = "org.eclipse.elk.processingOrder.treeConstruction", Sre = "org.eclipse.elk.processingOrder.spanningTreeCostFunction", Tre = "org.eclipse.elk.processingOrder.preferredRoot", Ure = "org.eclipse.elk.processingOrder.rootSelection", Vre = "org.eclipse.elk.structure.structureExtractionStrategy", Wre = "org.eclipse.elk.compaction.compactionStrategy", Xre = "org.eclipse.elk.compaction.orthogonal", Yre = "org.eclipse.elk.overlapRemoval.maxIterations", Zre = "org.eclipse.elk.overlapRemoval.runScanline", $re = "processingOrder", _re = "overlapRemoval", ase = "org.eclipse.elk.sporeOverlap", bse = "org.eclipse.elk.alg.spore.p1structure", cse = "org.eclipse.elk.alg.spore.p2processingorder", dse = "org.eclipse.elk.alg.spore.p3execution", ese = "Invalid index: ", fse = "org.eclipse.elk.core.alg", gse = { 331: 1 }, hse = { 288: 1 }, ise = "Make sure its type is registered with the ", jse = " utility class.", kse = "true", lse = "false", mse = "Couldn't clone property '", nse = 0.05, ose = "org.eclipse.elk.core.options", pse = 1.2999999523162842, qse = "org.eclipse.elk.box", rse = "org.eclipse.elk.box.packingMode", sse = "org.eclipse.elk.algorithm", tse = "org.eclipse.elk.resolvedAlgorithm", use = "org.eclipse.elk.bendPoints", vse = "org.eclipse.elk.labelManager", wse = "org.eclipse.elk.scaleFactor", xse = "org.eclipse.elk.animate", yse = "org.eclipse.elk.animTimeFactor", zse = "org.eclipse.elk.layoutAncestors", Ase = "org.eclipse.elk.maxAnimTime", Bse = "org.eclipse.elk.minAnimTime", Cse = "org.eclipse.elk.progressBar", Dse = "org.eclipse.elk.validateGraph", Ese = "org.eclipse.elk.validateOptions", Fse = "org.eclipse.elk.zoomToFit", Gse = "org.eclipse.elk.font.name", Hse = "org.eclipse.elk.font.size", Ise = "org.eclipse.elk.edge.type", Jse = "partitioning", Kse = "nodeLabels", Lse = "portAlignment", Mse = "nodeSize", Nse = "port", Ose = "portLabels", Pse = "insideSelfLoops", Qse = "org.eclipse.elk.fixed", Rse = "org.eclipse.elk.random", Sse = "port must have a parent node to calculate the port side", Tse = "The edge needs to have exactly one edge section. Found: ", Use = "org.eclipse.elk.core.util.adapters", Vse = "org.eclipse.emf.ecore", Wse = "org.eclipse.elk.graph", Xse = "EMapPropertyHolder", Yse = "ElkBendPoint", Zse = "ElkGraphElement", $se = "ElkConnectableShape", _se = "ElkEdge", ate = "ElkEdgeSection", bte = "EModelElement", cte = "ENamedElement", dte = "ElkLabel", ete = "ElkNode", fte = "ElkPort", gte = { 92: 1, 90: 1 }, hte = "org.eclipse.emf.common.notify.impl", ite = "The feature '", jte = "' is not a valid changeable feature", kte = "Expecting null", lte = "' is not a valid feature", mte = "The feature ID", nte = " is not a valid feature ID", ote = 32768, pte = { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1 }, qte = "org.eclipse.emf.ecore.impl", rte = "org.eclipse.elk.graph.impl", ste = "Recursive containment not allowed for ", tte = "The datatype '", ute = "' is not a valid classifier", vte = "The value '", wte = { 190: 1, 3: 1, 4: 1 }, xte = "The class '", yte = "http://www.eclipse.org/elk/ElkGraph", zte = 1024, Ate = "property", Bte = "value", Cte = "source", Dte = "properties", Ete = "identifier", Fte = "height", Gte = "width", Hte = "parent", Ite = "text", Jte = "children", Kte = "hierarchical", Lte = "sources", Mte = "targets", Nte = "sections", Ote = "bendPoints", Pte = "outgoingShape", Qte = "incomingShape", Rte = "outgoingSections", Ste = "incomingSections", Tte = "org.eclipse.emf.common.util", Ute = "Severe implementation error in the Json to ElkGraph importer.", Vte = "id", Wte = "org.eclipse.elk.graph.json", Xte = "Unhandled parameter types: ", Yte = "startPoint", Zte = "An edge must have at least one source and one target (edge id: '", $te = "').", _te = "Referenced edge section does not exist: ", aue = " (edge id: '", bue = "target", cue = "sourcePoint", due = "targetPoint", eue = "group", fue = "name", gue = "connectableShape cannot be null", hue2 = "edge cannot be null", iue = "Passed edge is not 'simple'.", jue = "org.eclipse.elk.graph.util", kue = "The 'no duplicates' constraint is violated", lue = "targetIndex=", mue = ", size=", nue = "sourceIndex=", oue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1 }, pue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 47: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 588: 1 }, que = "logging", rue = "measureExecutionTime", sue = "parser.parse.1", tue = "parser.parse.2", uue = "parser.next.1", vue = "parser.next.2", wue = "parser.next.3", xue = "parser.next.4", yue = "parser.factor.1", zue = "parser.factor.2", Aue = "parser.factor.3", Bue = "parser.factor.4", Cue = "parser.factor.5", Due = "parser.factor.6", Eue = "parser.atom.1", Fue = "parser.atom.2", Gue = "parser.atom.3", Hue = "parser.atom.4", Iue = "parser.atom.5", Jue = "parser.cc.1", Kue = "parser.cc.2", Lue = "parser.cc.3", Mue = "parser.cc.5", Nue = "parser.cc.6", Oue = "parser.cc.7", Pue = "parser.cc.8", Que = "parser.ope.1", Rue = "parser.ope.2", Sue = "parser.ope.3", Tue = "parser.descape.1", Uue = "parser.descape.2", Vue = "parser.descape.3", Wue = "parser.descape.4", Xue = "parser.descape.5", Yue = "parser.process.1", Zue = "parser.quantifier.1", $ue = "parser.quantifier.2", _ue = "parser.quantifier.3", ave = "parser.quantifier.4", bve = "parser.quantifier.5", cve = "org.eclipse.emf.common.notify", dve = { 415: 1, 672: 1 }, eve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 }, fve = { 366: 1, 143: 1 }, gve = "index=", hve = { 3: 1, 4: 1, 5: 1, 126: 1 }, ive = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 58: 1 }, jve = { 3: 1, 6: 1, 4: 1, 5: 1, 192: 1 }, kve = { 3: 1, 4: 1, 5: 1, 165: 1, 367: 1 }, lve = ";/?:@&=+$,", mve = "invalid authority: ", nve = "EAnnotation", ove = "ETypedElement", pve = "EStructuralFeature", qve = "EAttribute", rve = "EClassifier", sve = "EEnumLiteral", tve = "EGenericType", uve = "EOperation", vve = "EParameter", wve = "EReference", xve = "ETypeParameter", yve = "org.eclipse.emf.ecore.util", zve = { 76: 1 }, Ave = { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1, 76: 1, 69: 1, 95: 1 }, Bve = "org.eclipse.emf.ecore.util.FeatureMap$Entry", Cve = 8192, Dve = 2048, Eve = "byte", Fve = "char", Gve = "double", Hve = "float", Ive = "int", Jve = "long", Kve = "short", Lve = "java.lang.Object", Mve = { 3: 1, 4: 1, 5: 1, 247: 1 }, Nve = { 3: 1, 4: 1, 5: 1, 673: 1 }, Ove = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 69: 1 }, Pve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Qve = "mixed", Rve = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData", Sve = "kind", Tve = { 3: 1, 4: 1, 5: 1, 674: 1 }, Uve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Vve = { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 69: 1 }, Wve = { 47: 1, 125: 1, 279: 1 }, Xve = { 72: 1, 332: 1 }, Yve = "The value of type '", Zve = "' must be of type '", $ve = 1316, _ve = "http://www.eclipse.org/emf/2002/Ecore", awe = -32768, bwe = "constraints", cwe = "baseType", dwe = "getEStructuralFeature", ewe = "getFeatureID", fwe = "feature", gwe = "getOperationID", hwe = "operation", iwe = "defaultValue", jwe = "eTypeParameters", kwe = "isInstance", lwe = "getEEnumLiteral", mwe = "eContainingClass", nwe = { 55: 1 }, owe = { 3: 1, 4: 1, 5: 1, 119: 1 }, pwe = "org.eclipse.emf.ecore.resource", qwe = { 92: 1, 90: 1, 591: 1, 1935: 1 }, rwe = "org.eclipse.emf.ecore.resource.impl", swe = "unspecified", twe = "simple", uwe = "attribute", vwe = "attributeWildcard", wwe = "element", xwe = "elementWildcard", ywe = "collapse", zwe = "itemType", Awe = "namespace", Bwe = "##targetNamespace", Cwe = "whiteSpace", Dwe = "wildcards", Ewe = "http://www.eclipse.org/emf/2003/XMLType", Fwe = "##any", Gwe = "uninitialized", Hwe = "The multiplicity constraint is violated", Iwe = "org.eclipse.emf.ecore.xml.type", Jwe = "ProcessingInstruction", Kwe = "SimpleAnyType", Lwe = "XMLTypeDocumentRoot", Mwe = "org.eclipse.emf.ecore.xml.type.impl", Nwe = "INF", Owe = "processing", Pwe = "ENTITIES_._base", Qwe = "minLength", Rwe = "ENTITY", Swe = "NCName", Twe = "IDREFS_._base", Uwe = "integer", Vwe = "token", Wwe = "pattern", Xwe = "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", Ywe = "\\i\\c*", Zwe = "[\\i-[:]][\\c-[:]]*", $we = "nonPositiveInteger", _we = "maxInclusive", axe = "NMTOKEN", bxe = "NMTOKENS_._base", cxe = "nonNegativeInteger", dxe = "minInclusive", exe = "normalizedString", fxe = "unsignedByte", gxe = "unsignedInt", hxe = "18446744073709551615", ixe = "unsignedShort", jxe = "processingInstruction", kxe = "org.eclipse.emf.ecore.xml.type.internal", lxe = 1114111, mxe = "Internal Error: shorthands: \\u", nxe = "xml:isDigit", oxe = "xml:isWord", pxe = "xml:isSpace", qxe = "xml:isNameChar", rxe = "xml:isInitialNameChar", sxe = "09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩", txe = "AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣", uxe = "Private Use", vxe = "ASSIGNED", wxe = "\0ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ֏ۿ܀ݏހऀॿঀ૿ఀ౿ಀഀൿༀက႟ႠჿᄀᇿሀᎠ᐀ᙿ ᚠក᠀Ḁỿἀ ⁰₠⃐℀⅏⅐←⇿∀⋿⌀⏿␀⑀①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⼀⿰ 〿ゟ゠ヿㄯ㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒐가힣豈ffﭏﭐ﷿︠︯︰﹏﹐ﹰ\uFEFF\uFEFF", xxe = "UNASSIGNED", yxe = { 3: 1, 117: 1 }, zxe = "org.eclipse.emf.ecore.xml.type.util", Axe = { 3: 1, 4: 1, 5: 1, 368: 1 }, Bxe = "org.eclipse.xtext.xbase.lib", Cxe = "Cannot add elements to a Range", Dxe = "Cannot set elements in a Range", Exe = "Cannot remove elements from a Range", Fxe = "locale", Gxe = "default", Hxe = "user.agent";
- var _2, _bb, Wbb;
- $wnd.goog = $wnd.goog || {};
- $wnd.goog.global = $wnd.goog.global || $wnd;
- acb();
- bcb(1, null, {}, nb);
- _2.Fb = function ob(a) {
- return mb(this, a);
- };
- _2.Gb = function qb() {
- return this.gm;
- };
- _2.Hb = function sb() {
- return FCb(this);
- };
- _2.Ib = function ub() {
- var a;
- return hdb(rb(this)) + "@" + (a = tb(this) >>> 0, a.toString(16));
- };
- _2.equals = function(a) {
- return this.Fb(a);
- };
- _2.hashCode = function() {
- return this.Hb();
- };
- _2.toString = function() {
- return this.Ib();
- };
- var xD, yD, zD;
- bcb(290, 1, { 290: 1, 2026: 1 }, jdb);
- _2.le = function kdb(a) {
- var b;
- b = new jdb();
- b.i = 4;
- a > 1 ? b.c = rdb(this, a - 1) : b.c = this;
- return b;
- };
- _2.me = function qdb() {
- fdb(this);
- return this.b;
- };
- _2.ne = function sdb() {
- return hdb(this);
- };
- _2.oe = function udb() {
- return fdb(this), this.k;
- };
- _2.pe = function wdb() {
- return (this.i & 4) != 0;
- };
- _2.qe = function xdb() {
- return (this.i & 1) != 0;
- };
- _2.Ib = function Adb() {
- return idb(this);
- };
- _2.i = 0;
- var SI = mdb(Phe, "Object", 1);
- var AI = mdb(Phe, "Class", 290);
- bcb(1998, 1, Qhe);
- mdb(Rhe, "Optional", 1998);
- bcb(1170, 1998, Qhe, xb);
- _2.Fb = function yb(a) {
- return a === this;
- };
- _2.Hb = function zb() {
- return 2040732332;
- };
- _2.Ib = function Ab() {
- return "Optional.absent()";
- };
- _2.Jb = function Bb(a) {
- Qb(a);
- return wb(), vb;
+ if (string(node3)) {
+ node3 = cy.filter(node3);
+ }
+ return outdegrees[node3.id()] / maxOutdegree;
+ }, "outdegree")
};
- var vb;
- mdb(Rhe, "Absent", 1170);
- bcb(628, 1, {}, Gb);
- mdb(Rhe, "Joiner", 628);
- var _D = odb(Rhe, "Predicate");
- bcb(582, 1, { 169: 1, 582: 1, 3: 1, 45: 1 }, Yb);
- _2.Mb = function ac(a) {
- return Xb(this, a);
+ }
+ }, "degreeCentralityNormalized"),
+ // degreeCentralityNormalized
+ // Implemented from the algorithm in Opsahl's paper
+ // "Node centrality in weighted networks: Generalizing degree and shortest paths"
+ // check the heading 2 "Degree"
+ degreeCentrality: /* @__PURE__ */ __name(function degreeCentrality(options3) {
+ options3 = defaults$f(options3);
+ var cy = this.cy();
+ var callingEles = this;
+ var _options = options3, root4 = _options.root, weight8 = _options.weight, directed = _options.directed, alpha = _options.alpha;
+ root4 = cy.collection(root4)[0];
+ if (!directed) {
+ var connEdges = root4.connectedEdges().intersection(callingEles);
+ var k2 = connEdges.length;
+ var s2 = 0;
+ for (var i2 = 0; i2 < connEdges.length; i2++) {
+ s2 += weight8(connEdges[i2]);
+ }
+ return {
+ degree: Math.pow(k2, 1 - alpha) * Math.pow(s2, alpha)
};
- _2.Lb = function Zb(a) {
- return Xb(this, a);
+ } else {
+ var edges5 = root4.connectedEdges();
+ var incoming = edges5.filter(function(edge) {
+ return edge.target().same(root4) && callingEles.has(edge);
+ });
+ var outgoing = edges5.filter(function(edge) {
+ return edge.source().same(root4) && callingEles.has(edge);
+ });
+ var k_in = incoming.length;
+ var k_out = outgoing.length;
+ var s_in = 0;
+ var s_out = 0;
+ for (var _i2 = 0; _i2 < incoming.length; _i2++) {
+ s_in += weight8(incoming[_i2]);
+ }
+ for (var _i3 = 0; _i3 < outgoing.length; _i3++) {
+ s_out += weight8(outgoing[_i3]);
+ }
+ return {
+ indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),
+ outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)
};
- _2.Fb = function $b(a) {
- var b;
- if (JD(a, 582)) {
- b = BD(a, 582);
- return At(this.a, b.a);
+ }
+ }, "degreeCentrality")
+ // degreeCentrality
+ };
+ elesfn$n.dc = elesfn$n.degreeCentrality;
+ elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;
+ defaults$e = defaults$g({
+ harmonic: true,
+ weight: /* @__PURE__ */ __name(function weight7() {
+ return 1;
+ }, "weight"),
+ directed: false,
+ root: null
+ });
+ elesfn$m = {
+ closenessCentralityNormalized: /* @__PURE__ */ __name(function closenessCentralityNormalized(options3) {
+ var _defaults2 = defaults$e(options3), harmonic = _defaults2.harmonic, weight8 = _defaults2.weight, directed = _defaults2.directed;
+ var cy = this.cy();
+ var closenesses = {};
+ var maxCloseness = 0;
+ var nodes6 = this.nodes();
+ var fw = this.floydWarshall({
+ weight: weight8,
+ directed
+ });
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var currCloseness = 0;
+ var node_i = nodes6[i2];
+ for (var j2 = 0; j2 < nodes6.length; j2++) {
+ if (i2 !== j2) {
+ var d2 = fw.distance(node_i, nodes6[j2]);
+ if (harmonic) {
+ currCloseness += 1 / d2;
+ } else {
+ currCloseness += d2;
+ }
}
- return false;
- };
- _2.Hb = function _b() {
- return qmb(this.a) + 306654252;
- };
- _2.Ib = function bc() {
- return Wb(this.a);
- };
- mdb(Rhe, "Predicates/AndPredicate", 582);
- bcb(408, 1998, { 408: 1, 3: 1 }, cc);
- _2.Fb = function dc(a) {
- var b;
- if (JD(a, 408)) {
- b = BD(a, 408);
- return pb(this.a, b.a);
+ }
+ if (!harmonic) {
+ currCloseness = 1 / currCloseness;
+ }
+ if (maxCloseness < currCloseness) {
+ maxCloseness = currCloseness;
+ }
+ closenesses[node_i.id()] = currCloseness;
+ }
+ return {
+ closeness: /* @__PURE__ */ __name(function closeness(node2) {
+ if (maxCloseness == 0) {
+ return 0;
}
- return false;
- };
- _2.Hb = function ec() {
- return 1502476572 + tb(this.a);
- };
- _2.Ib = function fc() {
- return Whe + this.a + ")";
- };
- _2.Jb = function gc(a) {
- return new cc(Rb(a.Kb(this.a), "the Function passed to Optional.transform() must not return null."));
- };
- mdb(Rhe, "Present", 408);
- bcb(198, 1, Yhe);
- _2.Nb = function kc(a) {
- Rrb(this, a);
- };
- _2.Qb = function lc() {
- jc();
- };
- mdb(Zhe, "UnmodifiableIterator", 198);
- bcb(1978, 198, $he);
- _2.Qb = function nc() {
- jc();
- };
- _2.Rb = function mc(a) {
- throw vbb(new bgb());
- };
- _2.Wb = function oc(a) {
- throw vbb(new bgb());
- };
- mdb(Zhe, "UnmodifiableListIterator", 1978);
- bcb(386, 1978, $he);
- _2.Ob = function rc() {
- return this.c < this.d;
- };
- _2.Sb = function sc() {
- return this.c > 0;
- };
- _2.Pb = function tc() {
- if (this.c >= this.d) {
- throw vbb(new utb());
+ if (string(node2)) {
+ node2 = cy.filter(node2)[0].id();
+ } else {
+ node2 = node2.id();
}
- return this.Xb(this.c++);
- };
- _2.Tb = function uc() {
- return this.c;
- };
- _2.Ub = function vc() {
- if (this.c <= 0) {
- throw vbb(new utb());
+ return closenesses[node2] / maxCloseness;
+ }, "closeness")
+ };
+ }, "closenessCentralityNormalized"),
+ // Implemented from pseudocode from wikipedia
+ closenessCentrality: /* @__PURE__ */ __name(function closenessCentrality(options3) {
+ var _defaults2 = defaults$e(options3), root4 = _defaults2.root, weight8 = _defaults2.weight, directed = _defaults2.directed, harmonic = _defaults2.harmonic;
+ root4 = this.filter(root4)[0];
+ var dijkstra3 = this.dijkstra({
+ root: root4,
+ weight: weight8,
+ directed
+ });
+ var totalDistance = 0;
+ var nodes6 = this.nodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var n2 = nodes6[i2];
+ if (!n2.same(root4)) {
+ var d2 = dijkstra3.distanceTo(n2);
+ if (harmonic) {
+ totalDistance += 1 / d2;
+ } else {
+ totalDistance += d2;
}
- return this.Xb(--this.c);
- };
- _2.Vb = function wc() {
- return this.c - 1;
- };
- _2.c = 0;
- _2.d = 0;
- mdb(Zhe, "AbstractIndexedListIterator", 386);
- bcb(699, 198, Yhe);
- _2.Ob = function Ac() {
- return xc(this);
- };
- _2.Pb = function Bc() {
- return yc(this);
- };
- _2.e = 1;
- mdb(Zhe, "AbstractIterator", 699);
- bcb(1986, 1, { 224: 1 });
- _2.Zb = function Hc() {
- var a;
- return a = this.f, !a ? this.f = this.ac() : a;
- };
- _2.Fb = function Ic(a) {
- return hw(this, a);
- };
- _2.Hb = function Jc() {
- return tb(this.Zb());
- };
- _2.dc = function Kc() {
- return this.gc() == 0;
- };
- _2.ec = function Lc() {
- return Ec(this);
- };
- _2.Ib = function Mc() {
- return fcb(this.Zb());
- };
- mdb(Zhe, "AbstractMultimap", 1986);
- bcb(726, 1986, _he);
- _2.$b = function Xc() {
- Nc(this);
- };
- _2._b = function Yc(a) {
- return Oc(this, a);
- };
- _2.ac = function Zc() {
- return new ne(this, this.c);
- };
- _2.ic = function $c(a) {
- return this.hc();
- };
- _2.bc = function _c() {
- return new zf(this, this.c);
- };
- _2.jc = function ad() {
- return this.mc(this.hc());
- };
- _2.kc = function bd() {
- return new Hd(this);
- };
- _2.lc = function cd() {
- return Yj(this.c.vc().Nc(), new $g(), 64, this.d);
- };
- _2.cc = function dd(a) {
- return Qc(this, a);
- };
- _2.fc = function gd(a) {
- return Sc(this, a);
- };
- _2.gc = function hd() {
- return this.d;
- };
- _2.mc = function jd(a) {
- return mmb(), new lnb(a);
- };
- _2.nc = function kd() {
- return new Dd(this);
- };
- _2.oc = function ld() {
- return Yj(this.c.Cc().Nc(), new Fd(), 64, this.d);
- };
- _2.pc = function md(a, b) {
- return new dg(this, a, b, null);
- };
- _2.d = 0;
- mdb(Zhe, "AbstractMapBasedMultimap", 726);
- bcb(1631, 726, _he);
- _2.hc = function pd() {
- return new Skb(this.a);
- };
- _2.jc = function qd() {
- return mmb(), mmb(), jmb;
- };
- _2.cc = function sd(a) {
- return BD(Qc(this, a), 15);
- };
- _2.fc = function ud(a) {
- return BD(Sc(this, a), 15);
- };
- _2.Zb = function od() {
- return nd(this);
- };
- _2.Fb = function rd(a) {
- return hw(this, a);
- };
- _2.qc = function td(a) {
- return BD(Qc(this, a), 15);
- };
- _2.rc = function vd(a) {
- return BD(Sc(this, a), 15);
- };
- _2.mc = function wd(a) {
- return vmb(BD(a, 15));
- };
- _2.pc = function xd(a, b) {
- return Vc(this, a, BD(b, 15), null);
- };
- mdb(Zhe, "AbstractListMultimap", 1631);
- bcb(732, 1, aie);
- _2.Nb = function zd(a) {
- Rrb(this, a);
- };
- _2.Ob = function Ad() {
- return this.c.Ob() || this.e.Ob();
- };
- _2.Pb = function Bd() {
- var a;
- if (!this.e.Ob()) {
- a = BD(this.c.Pb(), 42);
- this.b = a.cd();
- this.a = BD(a.dd(), 14);
- this.e = this.a.Kc();
- }
- return this.sc(this.b, this.e.Pb());
- };
- _2.Qb = function Cd() {
- this.e.Qb();
- this.a.dc() && this.c.Qb();
- --this.d.d;
- };
- mdb(Zhe, "AbstractMapBasedMultimap/Itr", 732);
- bcb(1099, 732, aie, Dd);
- _2.sc = function Ed(a, b) {
- return b;
- };
- mdb(Zhe, "AbstractMapBasedMultimap/1", 1099);
- bcb(1100, 1, {}, Fd);
- _2.Kb = function Gd(a) {
- return BD(a, 14).Nc();
- };
- mdb(Zhe, "AbstractMapBasedMultimap/1methodref$spliterator$Type", 1100);
- bcb(1101, 732, aie, Hd);
- _2.sc = function Id(a, b) {
- return new Wo(a, b);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/2", 1101);
- var DK = odb(bie, "Map");
- bcb(1967, 1, cie);
- _2.wc = function Td(a) {
- stb(this, a);
- };
- _2.yc = function $d(a, b, c2) {
- return ttb(this, a, b, c2);
- };
- _2.$b = function Od() {
- this.vc().$b();
- };
- _2.tc = function Pd(a) {
- return Jd(this, a);
- };
- _2._b = function Qd(a) {
- return !!Kd(this, a, false);
- };
- _2.uc = function Rd(a) {
- var b, c2, d;
- for (c2 = this.vc().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 42);
- d = b.dd();
- if (PD(a) === PD(d) || a != null && pb(a, d)) {
- return true;
- }
+ }
+ }
+ return harmonic ? totalDistance : 1 / totalDistance;
+ }, "closenessCentrality")
+ // closenessCentrality
+ };
+ elesfn$m.cc = elesfn$m.closenessCentrality;
+ elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;
+ defaults$d = defaults$g({
+ weight: null,
+ directed: false
+ });
+ elesfn$l = {
+ // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes
+ betweennessCentrality: /* @__PURE__ */ __name(function betweennessCentrality(options3) {
+ var _defaults2 = defaults$d(options3), directed = _defaults2.directed, weight8 = _defaults2.weight;
+ var weighted = weight8 != null;
+ var cy = this.cy();
+ var V2 = this.nodes();
+ var A2 = {};
+ var _C = {};
+ var max10 = 0;
+ var C2 = {
+ set: /* @__PURE__ */ __name(function set6(key, val) {
+ _C[key] = val;
+ if (val > max10) {
+ max10 = val;
}
- return false;
- };
- _2.Fb = function Sd(a) {
- var b, c2, d;
- if (a === this) {
- return true;
+ }, "set"),
+ get: /* @__PURE__ */ __name(function get6(key) {
+ return _C[key];
+ }, "get")
+ };
+ for (var i2 = 0; i2 < V2.length; i2++) {
+ var v3 = V2[i2];
+ var vid = v3.id();
+ if (directed) {
+ A2[vid] = v3.outgoers().nodes();
+ } else {
+ A2[vid] = v3.openNeighborhood().nodes();
+ }
+ C2.set(vid, 0);
+ }
+ var _loop = /* @__PURE__ */ __name(function _loop2(s3) {
+ var sid = V2[s3].id();
+ var S3 = [];
+ var P2 = {};
+ var g2 = {};
+ var d2 = {};
+ var Q2 = new heap(function(a2, b2) {
+ return d2[a2] - d2[b2];
+ });
+ for (var _i = 0; _i < V2.length; _i++) {
+ var _vid = V2[_i].id();
+ P2[_vid] = [];
+ g2[_vid] = 0;
+ d2[_vid] = Infinity;
+ }
+ g2[sid] = 1;
+ d2[sid] = 0;
+ Q2.push(sid);
+ while (!Q2.empty()) {
+ var _v = Q2.pop();
+ S3.push(_v);
+ if (weighted) {
+ for (var j2 = 0; j2 < A2[_v].length; j2++) {
+ var w3 = A2[_v][j2];
+ var vEle = cy.getElementById(_v);
+ var edge = void 0;
+ if (vEle.edgesTo(w3).length > 0) {
+ edge = vEle.edgesTo(w3)[0];
+ } else {
+ edge = w3.edgesTo(vEle)[0];
+ }
+ var edgeWeight = weight8(edge);
+ w3 = w3.id();
+ if (d2[w3] > d2[_v] + edgeWeight) {
+ d2[w3] = d2[_v] + edgeWeight;
+ if (Q2.nodes.indexOf(w3) < 0) {
+ Q2.push(w3);
+ } else {
+ Q2.updateItem(w3);
+ }
+ g2[w3] = 0;
+ P2[w3] = [];
+ }
+ if (d2[w3] == d2[_v] + edgeWeight) {
+ g2[w3] = g2[w3] + g2[_v];
+ P2[w3].push(_v);
+ }
+ }
+ } else {
+ for (var _j = 0; _j < A2[_v].length; _j++) {
+ var _w = A2[_v][_j].id();
+ if (d2[_w] == Infinity) {
+ Q2.push(_w);
+ d2[_w] = d2[_v] + 1;
+ }
+ if (d2[_w] == d2[_v] + 1) {
+ g2[_w] = g2[_w] + g2[_v];
+ P2[_w].push(_v);
+ }
+ }
}
- if (!JD(a, 83)) {
- return false;
+ }
+ var e3 = {};
+ for (var _i2 = 0; _i2 < V2.length; _i2++) {
+ e3[V2[_i2].id()] = 0;
+ }
+ while (S3.length > 0) {
+ var _w2 = S3.pop();
+ for (var _j2 = 0; _j2 < P2[_w2].length; _j2++) {
+ var _v2 = P2[_w2][_j2];
+ e3[_v2] = e3[_v2] + g2[_v2] / g2[_w2] * (1 + e3[_w2]);
}
- d = BD(a, 83);
- if (this.gc() != d.gc()) {
- return false;
+ if (_w2 != V2[s3].id()) {
+ C2.set(_w2, C2.get(_w2) + e3[_w2]);
}
- for (c2 = d.vc().Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 42);
- if (!this.tc(b)) {
- return false;
- }
- }
- return true;
- };
- _2.xc = function Ud(a) {
- return Wd(Kd(this, a, false));
- };
- _2.Hb = function Xd() {
- return pmb(this.vc());
- };
- _2.dc = function Yd() {
- return this.gc() == 0;
- };
- _2.ec = function Zd() {
- return new Pib(this);
- };
- _2.zc = function _d(a, b) {
- throw vbb(new cgb("Put not supported on this map"));
- };
- _2.Ac = function ae(a) {
- Ld(this, a);
- };
- _2.Bc = function be(a) {
- return Wd(Kd(this, a, true));
- };
- _2.gc = function ce() {
- return this.vc().gc();
- };
- _2.Ib = function de() {
- return Md(this);
- };
- _2.Cc = function ee() {
- return new $ib(this);
- };
- mdb(bie, "AbstractMap", 1967);
- bcb(1987, 1967, cie);
- _2.bc = function ge() {
- return new rf(this);
- };
- _2.vc = function he() {
- return fe(this);
- };
- _2.ec = function ie() {
- var a;
- a = this.g;
- return !a ? this.g = this.bc() : a;
- };
- _2.Cc = function je() {
- var a;
- a = this.i;
- return !a ? this.i = new Zv(this) : a;
- };
- mdb(Zhe, "Maps/ViewCachingAbstractMap", 1987);
- bcb(389, 1987, cie, ne);
- _2.xc = function se(a) {
- return ke(this, a);
- };
- _2.Bc = function ve(a) {
- return le(this, a);
- };
- _2.$b = function oe() {
- this.d == this.e.c ? this.e.$b() : ir(new mf(this));
- };
- _2._b = function pe(a) {
- return Gv(this.d, a);
- };
- _2.Ec = function qe() {
- return new df(this);
- };
- _2.Dc = function() {
- return this.Ec();
- };
- _2.Fb = function re2(a) {
- return this === a || pb(this.d, a);
- };
- _2.Hb = function te() {
- return tb(this.d);
- };
- _2.ec = function ue() {
- return this.e.ec();
- };
- _2.gc = function we() {
- return this.d.gc();
- };
- _2.Ib = function xe() {
- return fcb(this.d);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/AsMap", 389);
- var KI = odb(Phe, "Iterable");
- bcb(28, 1, die);
- _2.Jc = function Le(a) {
- reb(this, a);
- };
- _2.Lc = function Ne() {
- return this.Oc();
- };
- _2.Nc = function Pe() {
- return new Kub(this, 0);
- };
- _2.Oc = function Qe() {
- return new YAb(null, this.Nc());
- };
- _2.Fc = function Ge(a) {
- throw vbb(new cgb("Add not supported on this collection"));
- };
- _2.Gc = function He(a) {
- return ye(this, a);
- };
- _2.$b = function Ie() {
- Ae(this);
- };
- _2.Hc = function Je(a) {
- return ze(this, a, false);
- };
- _2.Ic = function Ke(a) {
- return Be(this, a);
- };
- _2.dc = function Me() {
- return this.gc() == 0;
- };
- _2.Mc = function Oe(a) {
- return ze(this, a, true);
- };
- _2.Pc = function Re() {
- return De(this);
- };
- _2.Qc = function Se(a) {
- return Ee(this, a);
- };
- _2.Ib = function Te() {
- return Fe(this);
- };
- mdb(bie, "AbstractCollection", 28);
- var LK = odb(bie, "Set");
- bcb(eie, 28, fie);
- _2.Nc = function Ye() {
- return new Kub(this, 1);
- };
- _2.Fb = function We(a) {
- return Ue(this, a);
- };
- _2.Hb = function Xe() {
- return pmb(this);
- };
- mdb(bie, "AbstractSet", eie);
- bcb(1970, eie, fie);
- mdb(Zhe, "Sets/ImprovedAbstractSet", 1970);
- bcb(1971, 1970, fie);
- _2.$b = function $e() {
- this.Rc().$b();
- };
- _2.Hc = function _e(a) {
- return Ze(this, a);
- };
- _2.dc = function af() {
- return this.Rc().dc();
- };
- _2.Mc = function bf(a) {
- var b;
- if (this.Hc(a)) {
- b = BD(a, 42);
- return this.Rc().ec().Mc(b.cd());
- }
- return false;
- };
- _2.gc = function cf() {
- return this.Rc().gc();
- };
- mdb(Zhe, "Maps/EntrySet", 1971);
- bcb(1097, 1971, fie, df);
- _2.Hc = function ef(a) {
- return Ck(this.a.d.vc(), a);
- };
- _2.Kc = function ff() {
- return new mf(this.a);
- };
- _2.Rc = function gf() {
- return this.a;
- };
- _2.Mc = function hf(a) {
- var b;
- if (!Ck(this.a.d.vc(), a)) {
- return false;
- }
- b = BD(a, 42);
- Tc(this.a.e, b.cd());
- return true;
- };
- _2.Nc = function jf() {
- return $j(this.a.d.vc().Nc(), new kf(this.a));
- };
- mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries", 1097);
- bcb(1098, 1, {}, kf);
- _2.Kb = function lf(a) {
- return me(this.a, BD(a, 42));
- };
- mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type", 1098);
- bcb(730, 1, aie, mf);
- _2.Nb = function nf(a) {
- Rrb(this, a);
- };
- _2.Pb = function pf() {
- var a;
- return a = BD(this.b.Pb(), 42), this.a = BD(a.dd(), 14), me(this.c, a);
- };
- _2.Ob = function of() {
- return this.b.Ob();
- };
- _2.Qb = function qf() {
- Vb(!!this.a);
- this.b.Qb();
- this.c.e.d -= this.a.gc();
- this.a.$b();
- this.a = null;
- };
- mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapIterator", 730);
- bcb(532, 1970, fie, rf);
- _2.$b = function sf() {
- this.b.$b();
- };
- _2.Hc = function tf(a) {
- return this.b._b(a);
- };
- _2.Jc = function uf(a) {
- Qb(a);
- this.b.wc(new Xv(a));
- };
- _2.dc = function vf() {
- return this.b.dc();
- };
- _2.Kc = function wf() {
- return new Mv(this.b.vc().Kc());
- };
- _2.Mc = function xf(a) {
- if (this.b._b(a)) {
- this.b.Bc(a);
- return true;
- }
- return false;
- };
- _2.gc = function yf() {
- return this.b.gc();
- };
- mdb(Zhe, "Maps/KeySet", 532);
- bcb(318, 532, fie, zf);
- _2.$b = function Af() {
- var a;
- ir((a = this.b.vc().Kc(), new Hf(this, a)));
- };
- _2.Ic = function Bf(a) {
- return this.b.ec().Ic(a);
- };
- _2.Fb = function Cf(a) {
- return this === a || pb(this.b.ec(), a);
- };
- _2.Hb = function Df() {
- return tb(this.b.ec());
- };
- _2.Kc = function Ef() {
- var a;
- return a = this.b.vc().Kc(), new Hf(this, a);
- };
- _2.Mc = function Ff(a) {
- var b, c2;
- c2 = 0;
- b = BD(this.b.Bc(a), 14);
- if (b) {
- c2 = b.gc();
- b.$b();
- this.a.d -= c2;
- }
- return c2 > 0;
- };
- _2.Nc = function Gf() {
- return this.b.ec().Nc();
- };
- mdb(Zhe, "AbstractMapBasedMultimap/KeySet", 318);
- bcb(731, 1, aie, Hf);
- _2.Nb = function If(a) {
- Rrb(this, a);
- };
- _2.Ob = function Jf() {
- return this.c.Ob();
- };
- _2.Pb = function Kf() {
- this.a = BD(this.c.Pb(), 42);
- return this.a.cd();
- };
- _2.Qb = function Lf() {
- var a;
- Vb(!!this.a);
- a = BD(this.a.dd(), 14);
- this.c.Qb();
- this.b.a.d -= a.gc();
- a.$b();
- this.a = null;
- };
- mdb(Zhe, "AbstractMapBasedMultimap/KeySet/1", 731);
- bcb(491, 389, { 83: 1, 161: 1 }, Mf);
- _2.bc = function Nf() {
- return this.Sc();
- };
- _2.ec = function Pf() {
- return this.Tc();
- };
- _2.Sc = function Of() {
- return new Yf(this.c, this.Uc());
- };
- _2.Tc = function Qf() {
- var a;
- return a = this.b, !a ? this.b = this.Sc() : a;
- };
- _2.Uc = function Rf() {
- return BD(this.d, 161);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/SortedAsMap", 491);
- bcb(542, 491, gie, Sf);
- _2.bc = function Tf() {
- return new $f(this.a, BD(BD(this.d, 161), 171));
- };
- _2.Sc = function Uf() {
- return new $f(this.a, BD(BD(this.d, 161), 171));
- };
- _2.ec = function Vf() {
- var a;
- return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271);
- };
- _2.Tc = function Wf() {
- var a;
- return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271);
- };
- _2.Uc = function Xf() {
- return BD(BD(this.d, 161), 171);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/NavigableAsMap", 542);
- bcb(490, 318, hie, Yf);
- _2.Nc = function Zf() {
- return this.b.ec().Nc();
- };
- mdb(Zhe, "AbstractMapBasedMultimap/SortedKeySet", 490);
- bcb(388, 490, iie, $f);
- mdb(Zhe, "AbstractMapBasedMultimap/NavigableKeySet", 388);
- bcb(541, 28, die, dg);
- _2.Fc = function eg(a) {
- var b, c2;
- ag(this);
- c2 = this.d.dc();
- b = this.d.Fc(a);
- if (b) {
- ++this.f.d;
- c2 && _f(this);
- }
- return b;
- };
- _2.Gc = function fg(a) {
- var b, c2, d;
- if (a.dc()) {
- return false;
- }
- d = (ag(this), this.d.gc());
- b = this.d.Gc(a);
- if (b) {
- c2 = this.d.gc();
- this.f.d += c2 - d;
- d == 0 && _f(this);
- }
- return b;
- };
- _2.$b = function gg() {
- var a;
- a = (ag(this), this.d.gc());
- if (a == 0) {
- return;
- }
- this.d.$b();
- this.f.d -= a;
- bg(this);
- };
- _2.Hc = function hg(a) {
- ag(this);
- return this.d.Hc(a);
- };
- _2.Ic = function ig(a) {
- ag(this);
- return this.d.Ic(a);
- };
- _2.Fb = function jg(a) {
- if (a === this) {
- return true;
- }
- ag(this);
- return pb(this.d, a);
- };
- _2.Hb = function kg() {
- ag(this);
- return tb(this.d);
- };
- _2.Kc = function lg() {
- ag(this);
- return new Gg(this);
- };
- _2.Mc = function mg(a) {
- var b;
- ag(this);
- b = this.d.Mc(a);
- if (b) {
- --this.f.d;
- bg(this);
- }
- return b;
- };
- _2.gc = function ng() {
- return cg(this);
- };
- _2.Nc = function og() {
- return ag(this), this.d.Nc();
- };
- _2.Ib = function pg() {
- ag(this);
- return fcb(this.d);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection", 541);
- var yK = odb(bie, "List");
- bcb(728, 541, { 20: 1, 28: 1, 14: 1, 15: 1 }, qg);
- _2.ad = function zg(a) {
- ktb(this, a);
- };
- _2.Nc = function Ag() {
- return ag(this), this.d.Nc();
- };
- _2.Vc = function rg(a, b) {
- var c2;
- ag(this);
- c2 = this.d.dc();
- BD(this.d, 15).Vc(a, b);
- ++this.a.d;
- c2 && _f(this);
- };
- _2.Wc = function sg(a, b) {
- var c2, d, e;
- if (b.dc()) {
- return false;
- }
- e = (ag(this), this.d.gc());
- c2 = BD(this.d, 15).Wc(a, b);
- if (c2) {
- d = this.d.gc();
- this.a.d += d - e;
- e == 0 && _f(this);
- }
- return c2;
- };
- _2.Xb = function tg(a) {
- ag(this);
- return BD(this.d, 15).Xb(a);
- };
- _2.Xc = function ug(a) {
- ag(this);
- return BD(this.d, 15).Xc(a);
- };
- _2.Yc = function vg() {
- ag(this);
- return new Mg(this);
- };
- _2.Zc = function wg(a) {
- ag(this);
- return new Ng(this, a);
- };
- _2.$c = function xg(a) {
- var b;
- ag(this);
- b = BD(this.d, 15).$c(a);
- --this.a.d;
- bg(this);
- return b;
- };
- _2._c = function yg(a, b) {
- ag(this);
- return BD(this.d, 15)._c(a, b);
- };
- _2.bd = function Bg(a, b) {
- ag(this);
- return Vc(this.a, this.e, BD(this.d, 15).bd(a, b), !this.b ? this : this.b);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/WrappedList", 728);
- bcb(1096, 728, { 20: 1, 28: 1, 14: 1, 15: 1, 54: 1 }, Cg);
- mdb(Zhe, "AbstractMapBasedMultimap/RandomAccessWrappedList", 1096);
- bcb(620, 1, aie, Gg);
- _2.Nb = function Ig(a) {
- Rrb(this, a);
- };
- _2.Ob = function Jg() {
- Fg(this);
- return this.b.Ob();
- };
- _2.Pb = function Kg() {
- Fg(this);
- return this.b.Pb();
- };
- _2.Qb = function Lg() {
- Eg(this);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection/WrappedIterator", 620);
- bcb(729, 620, jie, Mg, Ng);
- _2.Qb = function Tg() {
- Eg(this);
- };
- _2.Rb = function Og(a) {
- var b;
- b = cg(this.a) == 0;
- (Fg(this), BD(this.b, 125)).Rb(a);
- ++this.a.a.d;
- b && _f(this.a);
- };
- _2.Sb = function Pg() {
- return (Fg(this), BD(this.b, 125)).Sb();
- };
- _2.Tb = function Qg() {
- return (Fg(this), BD(this.b, 125)).Tb();
- };
- _2.Ub = function Rg() {
- return (Fg(this), BD(this.b, 125)).Ub();
- };
- _2.Vb = function Sg() {
- return (Fg(this), BD(this.b, 125)).Vb();
- };
- _2.Wb = function Ug(a) {
- (Fg(this), BD(this.b, 125)).Wb(a);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/WrappedList/WrappedListIterator", 729);
- bcb(727, 541, hie, Vg);
- _2.Nc = function Wg() {
- return ag(this), this.d.Nc();
- };
- mdb(Zhe, "AbstractMapBasedMultimap/WrappedSortedSet", 727);
- bcb(1095, 727, iie, Xg);
- mdb(Zhe, "AbstractMapBasedMultimap/WrappedNavigableSet", 1095);
- bcb(1094, 541, fie, Yg);
- _2.Nc = function Zg() {
- return ag(this), this.d.Nc();
- };
- mdb(Zhe, "AbstractMapBasedMultimap/WrappedSet", 1094);
- bcb(1103, 1, {}, $g);
- _2.Kb = function _g(a) {
- return fd(BD(a, 42));
- };
- mdb(Zhe, "AbstractMapBasedMultimap/lambda$1$Type", 1103);
- bcb(1102, 1, {}, ah);
- _2.Kb = function bh(a) {
- return new Wo(this.a, a);
- };
- mdb(Zhe, "AbstractMapBasedMultimap/lambda$2$Type", 1102);
- var CK = odb(bie, "Map/Entry");
- bcb(345, 1, kie);
- _2.Fb = function dh(a) {
- var b;
- if (JD(a, 42)) {
- b = BD(a, 42);
- return Hb(this.cd(), b.cd()) && Hb(this.dd(), b.dd());
- }
- return false;
- };
- _2.Hb = function eh() {
- var a, b;
- a = this.cd();
- b = this.dd();
- return (a == null ? 0 : tb(a)) ^ (b == null ? 0 : tb(b));
- };
- _2.ed = function fh(a) {
- throw vbb(new bgb());
- };
- _2.Ib = function gh() {
- return this.cd() + "=" + this.dd();
- };
- mdb(Zhe, lie, 345);
- bcb(1988, 28, die);
- _2.$b = function hh() {
- this.fd().$b();
- };
- _2.Hc = function ih(a) {
- var b;
- if (JD(a, 42)) {
- b = BD(a, 42);
- return Cc(this.fd(), b.cd(), b.dd());
+ }
+ }, "_loop");
+ for (var s2 = 0; s2 < V2.length; s2++) {
+ _loop(s2);
+ }
+ var ret = {
+ betweenness: /* @__PURE__ */ __name(function betweenness(node2) {
+ var id27 = cy.collection(node2).id();
+ return C2.get(id27);
+ }, "betweenness"),
+ betweennessNormalized: /* @__PURE__ */ __name(function betweennessNormalized(node2) {
+ if (max10 == 0) {
+ return 0;
}
+ var id27 = cy.collection(node2).id();
+ return C2.get(id27) / max10;
+ }, "betweennessNormalized")
+ };
+ ret.betweennessNormalised = ret.betweennessNormalized;
+ return ret;
+ }, "betweennessCentrality")
+ // betweennessCentrality
+ };
+ elesfn$l.bc = elesfn$l.betweennessCentrality;
+ defaults$c = defaults$g({
+ expandFactor: 2,
+ // affects time of computation and cluster granularity to some extent: M * M
+ inflateFactor: 2,
+ // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)
+ multFactor: 1,
+ // optional self loops for each node. Use a neutral value to improve cluster computations.
+ maxIterations: 20,
+ // maximum number of iterations of the MCL algorithm in a single run
+ attributes: [
+ // attributes/features used to group nodes, ie. similarity values between nodes
+ function(edge) {
+ return 1;
+ }
+ ]
+ });
+ setOptions$3 = /* @__PURE__ */ __name(function setOptions3(options3) {
+ return defaults$c(options3);
+ }, "setOptions");
+ getSimilarity$1 = /* @__PURE__ */ __name(function getSimilarity(edge, attributes) {
+ var total = 0;
+ for (var i2 = 0; i2 < attributes.length; i2++) {
+ total += attributes[i2](edge);
+ }
+ return total;
+ }, "getSimilarity");
+ addLoops = /* @__PURE__ */ __name(function addLoops2(M2, n2, val) {
+ for (var i2 = 0; i2 < n2; i2++) {
+ M2[i2 * n2 + i2] = val;
+ }
+ }, "addLoops");
+ normalize2 = /* @__PURE__ */ __name(function normalize3(M2, n2) {
+ var sum2;
+ for (var col = 0; col < n2; col++) {
+ sum2 = 0;
+ for (var row = 0; row < n2; row++) {
+ sum2 += M2[row * n2 + col];
+ }
+ for (var _row = 0; _row < n2; _row++) {
+ M2[_row * n2 + col] = M2[_row * n2 + col] / sum2;
+ }
+ }
+ }, "normalize");
+ mmult = /* @__PURE__ */ __name(function mmult2(A2, B2, n2) {
+ var C2 = new Array(n2 * n2);
+ for (var i2 = 0; i2 < n2; i2++) {
+ for (var j2 = 0; j2 < n2; j2++) {
+ C2[i2 * n2 + j2] = 0;
+ }
+ for (var k2 = 0; k2 < n2; k2++) {
+ for (var _j = 0; _j < n2; _j++) {
+ C2[i2 * n2 + _j] += A2[i2 * n2 + k2] * B2[k2 * n2 + _j];
+ }
+ }
+ }
+ return C2;
+ }, "mmult");
+ expand = /* @__PURE__ */ __name(function expand2(M2, n2, expandFactor) {
+ var _M = M2.slice(0);
+ for (var p3 = 1; p3 < expandFactor; p3++) {
+ M2 = mmult(M2, _M, n2);
+ }
+ return M2;
+ }, "expand");
+ inflate = /* @__PURE__ */ __name(function inflate2(M2, n2, inflateFactor) {
+ var _M = new Array(n2 * n2);
+ for (var i2 = 0; i2 < n2 * n2; i2++) {
+ _M[i2] = Math.pow(M2[i2], inflateFactor);
+ }
+ normalize2(_M, n2);
+ return _M;
+ }, "inflate");
+ hasConverged = /* @__PURE__ */ __name(function hasConverged2(M2, _M, n2, roundFactor) {
+ for (var i2 = 0; i2 < n2; i2++) {
+ var v12 = Math.round(M2[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
+ var v22 = Math.round(_M[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
+ if (v12 !== v22) {
+ return false;
+ }
+ }
+ return true;
+ }, "hasConverged");
+ assign$2 = /* @__PURE__ */ __name(function assign2(M2, n2, nodes6, cy) {
+ var clusters = [];
+ for (var i2 = 0; i2 < n2; i2++) {
+ var cluster = [];
+ for (var j2 = 0; j2 < n2; j2++) {
+ if (Math.round(M2[i2 * n2 + j2] * 1e3) / 1e3 > 0) {
+ cluster.push(nodes6[j2]);
+ }
+ }
+ if (cluster.length !== 0) {
+ clusters.push(cy.collection(cluster));
+ }
+ }
+ return clusters;
+ }, "assign");
+ isDuplicate = /* @__PURE__ */ __name(function isDuplicate2(c1, c22) {
+ for (var i2 = 0; i2 < c1.length; i2++) {
+ if (!c22[i2] || c1[i2].id() !== c22[i2].id()) {
+ return false;
+ }
+ }
+ return true;
+ }, "isDuplicate");
+ removeDuplicates = /* @__PURE__ */ __name(function removeDuplicates2(clusters) {
+ for (var i2 = 0; i2 < clusters.length; i2++) {
+ for (var j2 = 0; j2 < clusters.length; j2++) {
+ if (i2 != j2 && isDuplicate(clusters[i2], clusters[j2])) {
+ clusters.splice(j2, 1);
+ }
+ }
+ }
+ return clusters;
+ }, "removeDuplicates");
+ markovClustering = /* @__PURE__ */ __name(function markovClustering2(options3) {
+ var nodes6 = this.nodes();
+ var edges5 = this.edges();
+ var cy = this.cy();
+ var opts = setOptions$3(options3);
+ var id2position = {};
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ id2position[nodes6[i2].id()] = i2;
+ }
+ var n2 = nodes6.length, n22 = n2 * n2;
+ var M2 = new Array(n22), _M;
+ for (var _i = 0; _i < n22; _i++) {
+ M2[_i] = 0;
+ }
+ for (var e3 = 0; e3 < edges5.length; e3++) {
+ var edge = edges5[e3];
+ var _i2 = id2position[edge.source().id()];
+ var j2 = id2position[edge.target().id()];
+ var sim = getSimilarity$1(edge, opts.attributes);
+ M2[_i2 * n2 + j2] += sim;
+ M2[j2 * n2 + _i2] += sim;
+ }
+ addLoops(M2, n2, opts.multFactor);
+ normalize2(M2, n2);
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ isStillMoving = false;
+ _M = expand(M2, n2, opts.expandFactor);
+ M2 = inflate(_M, n2, opts.inflateFactor);
+ if (!hasConverged(M2, _M, n22, 4)) {
+ isStillMoving = true;
+ }
+ iterations++;
+ }
+ var clusters = assign$2(M2, n2, nodes6, cy);
+ clusters = removeDuplicates(clusters);
+ return clusters;
+ }, "markovClustering");
+ markovClustering$1 = {
+ markovClustering,
+ mcl: markovClustering
+ };
+ identity5 = /* @__PURE__ */ __name(function identity6(x5) {
+ return x5;
+ }, "identity");
+ absDiff = /* @__PURE__ */ __name(function absDiff2(p3, q2) {
+ return Math.abs(q2 - p3);
+ }, "absDiff");
+ addAbsDiff = /* @__PURE__ */ __name(function addAbsDiff2(total, p3, q2) {
+ return total + absDiff(p3, q2);
+ }, "addAbsDiff");
+ addSquaredDiff = /* @__PURE__ */ __name(function addSquaredDiff2(total, p3, q2) {
+ return total + Math.pow(q2 - p3, 2);
+ }, "addSquaredDiff");
+ sqrt3 = /* @__PURE__ */ __name(function sqrt4(x5) {
+ return Math.sqrt(x5);
+ }, "sqrt");
+ maxAbsDiff = /* @__PURE__ */ __name(function maxAbsDiff2(currentMax, p3, q2) {
+ return Math.max(currentMax, absDiff(p3, q2));
+ }, "maxAbsDiff");
+ getDistance = /* @__PURE__ */ __name(function getDistance2(length2, getP, getQ, init3, visit) {
+ var post = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : identity5;
+ var ret = init3;
+ var p3, q2;
+ for (var dim = 0; dim < length2; dim++) {
+ p3 = getP(dim);
+ q2 = getQ(dim);
+ ret = visit(ret, p3, q2);
+ }
+ return post(ret);
+ }, "getDistance");
+ distances = {
+ euclidean: /* @__PURE__ */ __name(function euclidean(length2, getP, getQ) {
+ if (length2 >= 2) {
+ return getDistance(length2, getP, getQ, 0, addSquaredDiff, sqrt3);
+ } else {
+ return getDistance(length2, getP, getQ, 0, addAbsDiff);
+ }
+ }, "euclidean"),
+ squaredEuclidean: /* @__PURE__ */ __name(function squaredEuclidean(length2, getP, getQ) {
+ return getDistance(length2, getP, getQ, 0, addSquaredDiff);
+ }, "squaredEuclidean"),
+ manhattan: /* @__PURE__ */ __name(function manhattan(length2, getP, getQ) {
+ return getDistance(length2, getP, getQ, 0, addAbsDiff);
+ }, "manhattan"),
+ max: /* @__PURE__ */ __name(function max7(length2, getP, getQ) {
+ return getDistance(length2, getP, getQ, -Infinity, maxAbsDiff);
+ }, "max")
+ };
+ distances["squared-euclidean"] = distances["squaredEuclidean"];
+ distances["squaredeuclidean"] = distances["squaredEuclidean"];
+ __name(clusteringDistance, "clusteringDistance");
+ defaults$b = defaults$g({
+ k: 2,
+ m: 2,
+ sensitivityThreshold: 1e-4,
+ distance: "euclidean",
+ maxIterations: 10,
+ attributes: [],
+ testMode: false,
+ testCentroids: null
+ });
+ setOptions$2 = /* @__PURE__ */ __name(function setOptions4(options3) {
+ return defaults$b(options3);
+ }, "setOptions");
+ getDist = /* @__PURE__ */ __name(function getDist2(type3, node2, centroid, attributes, mode) {
+ var noNodeP = mode !== "kMedoids";
+ var getP = noNodeP ? function(i2) {
+ return centroid[i2];
+ } : function(i2) {
+ return attributes[i2](centroid);
+ };
+ var getQ = /* @__PURE__ */ __name(function getQ2(i2) {
+ return attributes[i2](node2);
+ }, "getQ");
+ var nodeP = centroid;
+ var nodeQ = node2;
+ return clusteringDistance(type3, attributes.length, getP, getQ, nodeP, nodeQ);
+ }, "getDist");
+ randomCentroids = /* @__PURE__ */ __name(function randomCentroids2(nodes6, k2, attributes) {
+ var ndim = attributes.length;
+ var min9 = new Array(ndim);
+ var max10 = new Array(ndim);
+ var centroids = new Array(k2);
+ var centroid = null;
+ for (var i2 = 0; i2 < ndim; i2++) {
+ min9[i2] = nodes6.min(attributes[i2]).value;
+ max10[i2] = nodes6.max(attributes[i2]).value;
+ }
+ for (var c3 = 0; c3 < k2; c3++) {
+ centroid = [];
+ for (var _i = 0; _i < ndim; _i++) {
+ centroid[_i] = Math.random() * (max10[_i] - min9[_i]) + min9[_i];
+ }
+ centroids[c3] = centroid;
+ }
+ return centroids;
+ }, "randomCentroids");
+ classify = /* @__PURE__ */ __name(function classify2(node2, centroids, distance2, attributes, type3) {
+ var min9 = Infinity;
+ var index = 0;
+ for (var i2 = 0; i2 < centroids.length; i2++) {
+ var dist3 = getDist(distance2, node2, centroids[i2], attributes, type3);
+ if (dist3 < min9) {
+ min9 = dist3;
+ index = i2;
+ }
+ }
+ return index;
+ }, "classify");
+ buildCluster = /* @__PURE__ */ __name(function buildCluster2(centroid, nodes6, assignment) {
+ var cluster = [];
+ var node2 = null;
+ for (var n2 = 0; n2 < nodes6.length; n2++) {
+ node2 = nodes6[n2];
+ if (assignment[node2.id()] === centroid) {
+ cluster.push(node2);
+ }
+ }
+ return cluster;
+ }, "buildCluster");
+ haveValuesConverged = /* @__PURE__ */ __name(function haveValuesConverged2(v12, v22, sensitivityThreshold) {
+ return Math.abs(v22 - v12) <= sensitivityThreshold;
+ }, "haveValuesConverged");
+ haveMatricesConverged = /* @__PURE__ */ __name(function haveMatricesConverged2(v12, v22, sensitivityThreshold) {
+ for (var i2 = 0; i2 < v12.length; i2++) {
+ for (var j2 = 0; j2 < v12[i2].length; j2++) {
+ var diff2 = Math.abs(v12[i2][j2] - v22[i2][j2]);
+ if (diff2 > sensitivityThreshold) {
return false;
- };
- _2.Mc = function jh(a) {
- var b;
- if (JD(a, 42)) {
- b = BD(a, 42);
- return Gc(this.fd(), b.cd(), b.dd());
+ }
+ }
+ }
+ return true;
+ }, "haveMatricesConverged");
+ seenBefore = /* @__PURE__ */ __name(function seenBefore2(node2, medoids, n2) {
+ for (var i2 = 0; i2 < n2; i2++) {
+ if (node2 === medoids[i2]) return true;
+ }
+ return false;
+ }, "seenBefore");
+ randomMedoids = /* @__PURE__ */ __name(function randomMedoids2(nodes6, k2) {
+ var medoids = new Array(k2);
+ if (nodes6.length < 50) {
+ for (var i2 = 0; i2 < k2; i2++) {
+ var node2 = nodes6[Math.floor(Math.random() * nodes6.length)];
+ while (seenBefore(node2, medoids, i2)) {
+ node2 = nodes6[Math.floor(Math.random() * nodes6.length)];
+ }
+ medoids[i2] = node2;
+ }
+ } else {
+ for (var _i2 = 0; _i2 < k2; _i2++) {
+ medoids[_i2] = nodes6[Math.floor(Math.random() * nodes6.length)];
+ }
+ }
+ return medoids;
+ }, "randomMedoids");
+ findCost = /* @__PURE__ */ __name(function findCost2(potentialNewMedoid, cluster, attributes) {
+ var cost = 0;
+ for (var n2 = 0; n2 < cluster.length; n2++) {
+ cost += getDist("manhattan", cluster[n2], potentialNewMedoid, attributes, "kMedoids");
+ }
+ return cost;
+ }, "findCost");
+ kMeans = /* @__PURE__ */ __name(function kMeans2(options3) {
+ var cy = this.cy();
+ var nodes6 = this.nodes();
+ var node2 = null;
+ var opts = setOptions$2(options3);
+ var clusters = new Array(opts.k);
+ var assignment = {};
+ var centroids;
+ if (opts.testMode) {
+ if (typeof opts.testCentroids === "number") {
+ opts.testCentroids;
+ centroids = randomCentroids(nodes6, opts.k, opts.attributes);
+ } else if (_typeof(opts.testCentroids) === "object") {
+ centroids = opts.testCentroids;
+ } else {
+ centroids = randomCentroids(nodes6, opts.k, opts.attributes);
+ }
+ } else {
+ centroids = randomCentroids(nodes6, opts.k, opts.attributes);
+ }
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ for (var n2 = 0; n2 < nodes6.length; n2++) {
+ node2 = nodes6[n2];
+ assignment[node2.id()] = classify(node2, centroids, opts.distance, opts.attributes, "kMeans");
+ }
+ isStillMoving = false;
+ for (var c3 = 0; c3 < opts.k; c3++) {
+ var cluster = buildCluster(c3, nodes6, assignment);
+ if (cluster.length === 0) {
+ continue;
+ }
+ var ndim = opts.attributes.length;
+ var centroid = centroids[c3];
+ var newCentroid = new Array(ndim);
+ var sum2 = new Array(ndim);
+ for (var d2 = 0; d2 < ndim; d2++) {
+ sum2[d2] = 0;
+ for (var i2 = 0; i2 < cluster.length; i2++) {
+ node2 = cluster[i2];
+ sum2[d2] += opts.attributes[d2](node2);
+ }
+ newCentroid[d2] = sum2[d2] / cluster.length;
+ if (!haveValuesConverged(newCentroid[d2], centroid[d2], opts.sensitivityThreshold)) {
+ isStillMoving = true;
}
- return false;
- };
- _2.gc = function kh() {
- return this.fd().d;
- };
- mdb(Zhe, "Multimaps/Entries", 1988);
- bcb(733, 1988, die, lh);
- _2.Kc = function mh() {
- return this.a.kc();
- };
- _2.fd = function nh() {
- return this.a;
- };
- _2.Nc = function oh() {
- return this.a.lc();
- };
- mdb(Zhe, "AbstractMultimap/Entries", 733);
- bcb(734, 733, fie, ph);
- _2.Nc = function sh() {
- return this.a.lc();
- };
- _2.Fb = function qh(a) {
- return Ax(this, a);
- };
- _2.Hb = function rh() {
- return Bx(this);
- };
- mdb(Zhe, "AbstractMultimap/EntrySet", 734);
- bcb(735, 28, die, th);
- _2.$b = function uh() {
- this.a.$b();
- };
- _2.Hc = function vh(a) {
- return Dc(this.a, a);
- };
- _2.Kc = function wh() {
- return this.a.nc();
- };
- _2.gc = function xh() {
- return this.a.d;
- };
- _2.Nc = function yh() {
- return this.a.oc();
- };
- mdb(Zhe, "AbstractMultimap/Values", 735);
- bcb(1989, 28, { 835: 1, 20: 1, 28: 1, 14: 1 });
- _2.Jc = function Gh(a) {
- Qb(a);
- Ah(this).Jc(new Xw(a));
- };
- _2.Nc = function Kh() {
- var a;
- return a = Ah(this).Nc(), Yj(a, new cx(), 64 | a.qd() & 1296, this.a.d);
- };
- _2.Fc = function Ch(a) {
- zh();
- return true;
- };
- _2.Gc = function Dh(a) {
- return Qb(this), Qb(a), JD(a, 543) ? Zw(BD(a, 835)) : !a.dc() && fr(this, a.Kc());
- };
- _2.Hc = function Eh(a) {
- var b;
- return b = BD(Hv(nd(this.a), a), 14), (!b ? 0 : b.gc()) > 0;
- };
- _2.Fb = function Fh(a) {
- return $w(this, a);
- };
- _2.Hb = function Hh() {
- return tb(Ah(this));
- };
- _2.dc = function Ih() {
- return Ah(this).dc();
- };
- _2.Mc = function Jh(a) {
- return Bw(this, a, 1) > 0;
- };
- _2.Ib = function Lh() {
- return fcb(Ah(this));
- };
- mdb(Zhe, "AbstractMultiset", 1989);
- bcb(1991, 1970, fie);
- _2.$b = function Mh() {
- Nc(this.a.a);
- };
- _2.Hc = function Nh(a) {
- var b, c2;
- if (JD(a, 492)) {
- c2 = BD(a, 416);
- if (BD(c2.a.dd(), 14).gc() <= 0) {
- return false;
- }
- b = Aw(this.a, c2.a.cd());
- return b == BD(c2.a.dd(), 14).gc();
+ }
+ centroids[c3] = newCentroid;
+ clusters[c3] = cy.collection(cluster);
+ }
+ iterations++;
+ }
+ return clusters;
+ }, "kMeans");
+ kMedoids = /* @__PURE__ */ __name(function kMedoids2(options3) {
+ var cy = this.cy();
+ var nodes6 = this.nodes();
+ var node2 = null;
+ var opts = setOptions$2(options3);
+ var clusters = new Array(opts.k);
+ var medoids;
+ var assignment = {};
+ var curCost;
+ var minCosts = new Array(opts.k);
+ if (opts.testMode) {
+ if (typeof opts.testCentroids === "number") ;
+ else if (_typeof(opts.testCentroids) === "object") {
+ medoids = opts.testCentroids;
+ } else {
+ medoids = randomMedoids(nodes6, opts.k);
+ }
+ } else {
+ medoids = randomMedoids(nodes6, opts.k);
+ }
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ for (var n2 = 0; n2 < nodes6.length; n2++) {
+ node2 = nodes6[n2];
+ assignment[node2.id()] = classify(node2, medoids, opts.distance, opts.attributes, "kMedoids");
+ }
+ isStillMoving = false;
+ for (var m2 = 0; m2 < medoids.length; m2++) {
+ var cluster = buildCluster(m2, nodes6, assignment);
+ if (cluster.length === 0) {
+ continue;
+ }
+ minCosts[m2] = findCost(medoids[m2], cluster, opts.attributes);
+ for (var _n = 0; _n < cluster.length; _n++) {
+ curCost = findCost(cluster[_n], cluster, opts.attributes);
+ if (curCost < minCosts[m2]) {
+ minCosts[m2] = curCost;
+ medoids[m2] = cluster[_n];
+ isStillMoving = true;
}
- return false;
- };
- _2.Mc = function Oh(a) {
- var b, c2, d, e;
- if (JD(a, 492)) {
- c2 = BD(a, 416);
- b = c2.a.cd();
- d = BD(c2.a.dd(), 14).gc();
- if (d != 0) {
- e = this.a;
- return ax(e, b, d);
- }
+ }
+ clusters[m2] = cy.collection(cluster);
+ }
+ iterations++;
+ }
+ return clusters;
+ }, "kMedoids");
+ updateCentroids = /* @__PURE__ */ __name(function updateCentroids2(centroids, nodes6, U2, weight8, opts) {
+ var numerator, denominator;
+ for (var n2 = 0; n2 < nodes6.length; n2++) {
+ for (var c3 = 0; c3 < centroids.length; c3++) {
+ weight8[n2][c3] = Math.pow(U2[n2][c3], opts.m);
+ }
+ }
+ for (var _c = 0; _c < centroids.length; _c++) {
+ for (var dim = 0; dim < opts.attributes.length; dim++) {
+ numerator = 0;
+ denominator = 0;
+ for (var _n2 = 0; _n2 < nodes6.length; _n2++) {
+ numerator += weight8[_n2][_c] * opts.attributes[dim](nodes6[_n2]);
+ denominator += weight8[_n2][_c];
+ }
+ centroids[_c][dim] = numerator / denominator;
+ }
+ }
+ }, "updateCentroids");
+ updateMembership = /* @__PURE__ */ __name(function updateMembership2(U2, _U, centroids, nodes6, opts) {
+ for (var i2 = 0; i2 < U2.length; i2++) {
+ _U[i2] = U2[i2].slice();
+ }
+ var sum2, numerator, denominator;
+ var pow = 2 / (opts.m - 1);
+ for (var c3 = 0; c3 < centroids.length; c3++) {
+ for (var n2 = 0; n2 < nodes6.length; n2++) {
+ sum2 = 0;
+ for (var k2 = 0; k2 < centroids.length; k2++) {
+ numerator = getDist(opts.distance, nodes6[n2], centroids[c3], opts.attributes, "cmeans");
+ denominator = getDist(opts.distance, nodes6[n2], centroids[k2], opts.attributes, "cmeans");
+ sum2 += Math.pow(numerator / denominator, pow);
+ }
+ U2[n2][c3] = 1 / sum2;
+ }
+ }
+ }, "updateMembership");
+ assign$1 = /* @__PURE__ */ __name(function assign3(nodes6, U2, opts, cy) {
+ var clusters = new Array(opts.k);
+ for (var c3 = 0; c3 < clusters.length; c3++) {
+ clusters[c3] = [];
+ }
+ var max10;
+ var index;
+ for (var n2 = 0; n2 < U2.length; n2++) {
+ max10 = -Infinity;
+ index = -1;
+ for (var _c2 = 0; _c2 < U2[0].length; _c2++) {
+ if (U2[n2][_c2] > max10) {
+ max10 = U2[n2][_c2];
+ index = _c2;
+ }
+ }
+ clusters[index].push(nodes6[n2]);
+ }
+ for (var _c3 = 0; _c3 < clusters.length; _c3++) {
+ clusters[_c3] = cy.collection(clusters[_c3]);
+ }
+ return clusters;
+ }, "assign");
+ fuzzyCMeans = /* @__PURE__ */ __name(function fuzzyCMeans2(options3) {
+ var cy = this.cy();
+ var nodes6 = this.nodes();
+ var opts = setOptions$2(options3);
+ var clusters;
+ var centroids;
+ var U2;
+ var _U;
+ var weight8;
+ _U = new Array(nodes6.length);
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ _U[i2] = new Array(opts.k);
+ }
+ U2 = new Array(nodes6.length);
+ for (var _i3 = 0; _i3 < nodes6.length; _i3++) {
+ U2[_i3] = new Array(opts.k);
+ }
+ for (var _i4 = 0; _i4 < nodes6.length; _i4++) {
+ var total = 0;
+ for (var j2 = 0; j2 < opts.k; j2++) {
+ U2[_i4][j2] = Math.random();
+ total += U2[_i4][j2];
+ }
+ for (var _j = 0; _j < opts.k; _j++) {
+ U2[_i4][_j] = U2[_i4][_j] / total;
+ }
+ }
+ centroids = new Array(opts.k);
+ for (var _i5 = 0; _i5 < opts.k; _i5++) {
+ centroids[_i5] = new Array(opts.attributes.length);
+ }
+ weight8 = new Array(nodes6.length);
+ for (var _i6 = 0; _i6 < nodes6.length; _i6++) {
+ weight8[_i6] = new Array(opts.k);
+ }
+ var isStillMoving = true;
+ var iterations = 0;
+ while (isStillMoving && iterations < opts.maxIterations) {
+ isStillMoving = false;
+ updateCentroids(centroids, nodes6, U2, weight8, opts);
+ updateMembership(U2, _U, centroids, nodes6, opts);
+ if (!haveMatricesConverged(U2, _U, opts.sensitivityThreshold)) {
+ isStillMoving = true;
+ }
+ iterations++;
+ }
+ clusters = assign$1(nodes6, U2, opts, cy);
+ return {
+ clusters,
+ degreeOfMembership: U2
+ };
+ }, "fuzzyCMeans");
+ kClustering = {
+ kMeans,
+ kMedoids,
+ fuzzyCMeans,
+ fcm: fuzzyCMeans
+ };
+ defaults$a = defaults$g({
+ distance: "euclidean",
+ // distance metric to compare nodes
+ linkage: "min",
+ // linkage criterion : how to determine the distance between clusters of nodes
+ mode: "threshold",
+ // mode:'threshold' => clusters must be threshold distance apart
+ threshold: Infinity,
+ // the distance threshold
+ // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters
+ addDendrogram: false,
+ // whether to add the dendrogram to the graph for viz
+ dendrogramDepth: 0,
+ // depth at which dendrogram branches are merged into the returned clusters
+ attributes: []
+ // array of attr functions
+ });
+ linkageAliases = {
+ "single": "min",
+ "complete": "max"
+ };
+ setOptions$1 = /* @__PURE__ */ __name(function setOptions5(options3) {
+ var opts = defaults$a(options3);
+ var preferredAlias = linkageAliases[opts.linkage];
+ if (preferredAlias != null) {
+ opts.linkage = preferredAlias;
+ }
+ return opts;
+ }, "setOptions");
+ mergeClosest = /* @__PURE__ */ __name(function mergeClosest2(clusters, index, dists, mins, opts) {
+ var minKey = 0;
+ var min9 = Infinity;
+ var dist3;
+ var attrs = opts.attributes;
+ var getDist3 = /* @__PURE__ */ __name(function getDist4(n1, n2) {
+ return clusteringDistance(opts.distance, attrs.length, function(i3) {
+ return attrs[i3](n1);
+ }, function(i3) {
+ return attrs[i3](n2);
+ }, n1, n2);
+ }, "getDist");
+ for (var i2 = 0; i2 < clusters.length; i2++) {
+ var key = clusters[i2].key;
+ var _dist = dists[key][mins[key]];
+ if (_dist < min9) {
+ minKey = key;
+ min9 = _dist;
+ }
+ }
+ if (opts.mode === "threshold" && min9 >= opts.threshold || opts.mode === "dendrogram" && clusters.length === 1) {
+ return false;
+ }
+ var c1 = index[minKey];
+ var c22 = index[mins[minKey]];
+ var merged;
+ if (opts.mode === "dendrogram") {
+ merged = {
+ left: c1,
+ right: c22,
+ key: c1.key
+ };
+ } else {
+ merged = {
+ value: c1.value.concat(c22.value),
+ key: c1.key
+ };
+ }
+ clusters[c1.index] = merged;
+ clusters.splice(c22.index, 1);
+ index[c1.key] = merged;
+ for (var _i = 0; _i < clusters.length; _i++) {
+ var cur = clusters[_i];
+ if (c1.key === cur.key) {
+ dist3 = Infinity;
+ } else if (opts.linkage === "min") {
+ dist3 = dists[c1.key][cur.key];
+ if (dists[c1.key][cur.key] > dists[c22.key][cur.key]) {
+ dist3 = dists[c22.key][cur.key];
+ }
+ } else if (opts.linkage === "max") {
+ dist3 = dists[c1.key][cur.key];
+ if (dists[c1.key][cur.key] < dists[c22.key][cur.key]) {
+ dist3 = dists[c22.key][cur.key];
+ }
+ } else if (opts.linkage === "mean") {
+ dist3 = (dists[c1.key][cur.key] * c1.size + dists[c22.key][cur.key] * c22.size) / (c1.size + c22.size);
+ } else {
+ if (opts.mode === "dendrogram") dist3 = getDist3(cur.value, c1.value);
+ else dist3 = getDist3(cur.value[0], c1.value[0]);
+ }
+ dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist3;
+ }
+ for (var _i2 = 0; _i2 < clusters.length; _i2++) {
+ var key1 = clusters[_i2].key;
+ if (mins[key1] === c1.key || mins[key1] === c22.key) {
+ var _min = key1;
+ for (var j2 = 0; j2 < clusters.length; j2++) {
+ var key2 = clusters[j2].key;
+ if (dists[key1][key2] < dists[key1][_min]) {
+ _min = key2;
}
- return false;
- };
- mdb(Zhe, "Multisets/EntrySet", 1991);
- bcb(1109, 1991, fie, Ph);
- _2.Kc = function Qh() {
- return new Lw(fe(nd(this.a.a)).Kc());
- };
- _2.gc = function Rh() {
- return nd(this.a.a).gc();
- };
- mdb(Zhe, "AbstractMultiset/EntrySet", 1109);
- bcb(619, 726, _he);
- _2.hc = function Uh() {
- return this.gd();
- };
- _2.jc = function Vh() {
- return this.hd();
- };
- _2.cc = function Yh(a) {
- return this.jd(a);
- };
- _2.fc = function $h(a) {
- return this.kd(a);
- };
- _2.Zb = function Th() {
- var a;
- return a = this.f, !a ? this.f = this.ac() : a;
- };
- _2.hd = function Wh() {
- return mmb(), mmb(), lmb;
- };
- _2.Fb = function Xh(a) {
- return hw(this, a);
- };
- _2.jd = function Zh(a) {
- return BD(Qc(this, a), 21);
- };
- _2.kd = function _h(a) {
- return BD(Sc(this, a), 21);
- };
- _2.mc = function ai(a) {
- return mmb(), new zob(BD(a, 21));
- };
- _2.pc = function bi(a, b) {
- return new Yg(this, a, BD(b, 21));
- };
- mdb(Zhe, "AbstractSetMultimap", 619);
- bcb(1657, 619, _he);
- _2.hc = function ei() {
- return new Hxb(this.b);
- };
- _2.gd = function fi() {
- return new Hxb(this.b);
- };
- _2.jc = function gi() {
- return Ix(new Hxb(this.b));
- };
- _2.hd = function hi() {
- return Ix(new Hxb(this.b));
- };
- _2.cc = function ii(a) {
- return BD(BD(Qc(this, a), 21), 84);
- };
- _2.jd = function ji(a) {
- return BD(BD(Qc(this, a), 21), 84);
- };
- _2.fc = function ki(a) {
- return BD(BD(Sc(this, a), 21), 84);
- };
- _2.kd = function li(a) {
- return BD(BD(Sc(this, a), 21), 84);
- };
- _2.mc = function mi(a) {
- return JD(a, 271) ? Ix(BD(a, 271)) : (mmb(), new Zob(BD(a, 84)));
- };
- _2.Zb = function di() {
- var a;
- return a = this.f, !a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a;
- };
- _2.pc = function ni(a, b) {
- return JD(b, 271) ? new Xg(this, a, BD(b, 271)) : new Vg(this, a, BD(b, 84));
- };
- mdb(Zhe, "AbstractSortedSetMultimap", 1657);
- bcb(1658, 1657, _he);
- _2.Zb = function pi2() {
- var a;
- return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171);
- };
- _2.ec = function ri() {
- var a;
- return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271);
- };
- _2.bc = function qi() {
- return JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c);
- };
- mdb(Zhe, "AbstractSortedKeySortedSetMultimap", 1658);
- bcb(2010, 1, { 1947: 1 });
- _2.Fb = function si(a) {
- return zy(this, a);
- };
- _2.Hb = function ti() {
- var a;
- return pmb((a = this.g, !a ? this.g = new vi(this) : a));
- };
- _2.Ib = function ui() {
- var a;
- return Md((a = this.f, !a ? this.f = new Rj(this) : a));
- };
- mdb(Zhe, "AbstractTable", 2010);
- bcb(665, eie, fie, vi);
- _2.$b = function wi() {
- Pi();
- };
- _2.Hc = function xi(a) {
- var b, c2;
- if (JD(a, 468)) {
- b = BD(a, 682);
- c2 = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83);
- return !!c2 && Ck(c2.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a)));
+ }
+ mins[key1] = _min;
+ }
+ clusters[_i2].index = _i2;
+ }
+ c1.key = c22.key = c1.index = c22.index = null;
+ return true;
+ }, "mergeClosest");
+ getAllChildren = /* @__PURE__ */ __name(function getAllChildren2(root4, arr, cy) {
+ if (!root4) return;
+ if (root4.value) {
+ arr.push(root4.value);
+ } else {
+ if (root4.left) getAllChildren2(root4.left, arr);
+ if (root4.right) getAllChildren2(root4.right, arr);
+ }
+ }, "getAllChildren");
+ buildDendrogram = /* @__PURE__ */ __name(function buildDendrogram2(root4, cy) {
+ if (!root4) return "";
+ if (root4.left && root4.right) {
+ var leftStr = buildDendrogram2(root4.left, cy);
+ var rightStr = buildDendrogram2(root4.right, cy);
+ var node2 = cy.add({
+ group: "nodes",
+ data: {
+ id: leftStr + "," + rightStr
+ }
+ });
+ cy.add({
+ group: "edges",
+ data: {
+ source: leftStr,
+ target: node2.id()
+ }
+ });
+ cy.add({
+ group: "edges",
+ data: {
+ source: rightStr,
+ target: node2.id()
+ }
+ });
+ return node2.id();
+ } else if (root4.value) {
+ return root4.value.id();
+ }
+ }, "buildDendrogram");
+ buildClustersFromTree = /* @__PURE__ */ __name(function buildClustersFromTree2(root4, k2, cy) {
+ if (!root4) return [];
+ var left3 = [], right3 = [], leaves = [];
+ if (k2 === 0) {
+ if (root4.left) getAllChildren(root4.left, left3);
+ if (root4.right) getAllChildren(root4.right, right3);
+ leaves = left3.concat(right3);
+ return [cy.collection(leaves)];
+ } else if (k2 === 1) {
+ if (root4.value) {
+ return [cy.collection(root4.value)];
+ } else {
+ if (root4.left) getAllChildren(root4.left, left3);
+ if (root4.right) getAllChildren(root4.right, right3);
+ return [cy.collection(left3), cy.collection(right3)];
+ }
+ } else {
+ if (root4.value) {
+ return [cy.collection(root4.value)];
+ } else {
+ if (root4.left) left3 = buildClustersFromTree2(root4.left, k2 - 1, cy);
+ if (root4.right) right3 = buildClustersFromTree2(root4.right, k2 - 1, cy);
+ return left3.concat(right3);
+ }
+ }
+ }, "buildClustersFromTree");
+ hierarchicalClustering = /* @__PURE__ */ __name(function hierarchicalClustering2(options3) {
+ var cy = this.cy();
+ var nodes6 = this.nodes();
+ var opts = setOptions$1(options3);
+ var attrs = opts.attributes;
+ var getDist3 = /* @__PURE__ */ __name(function getDist4(n1, n22) {
+ return clusteringDistance(opts.distance, attrs.length, function(i3) {
+ return attrs[i3](n1);
+ }, function(i3) {
+ return attrs[i3](n22);
+ }, n1, n22);
+ }, "getDist");
+ var clusters = [];
+ var dists = [];
+ var mins = [];
+ var index = [];
+ for (var n2 = 0; n2 < nodes6.length; n2++) {
+ var cluster = {
+ value: opts.mode === "dendrogram" ? nodes6[n2] : [nodes6[n2]],
+ key: n2,
+ index: n2
+ };
+ clusters[n2] = cluster;
+ index[n2] = cluster;
+ dists[n2] = [];
+ mins[n2] = 0;
+ }
+ for (var i2 = 0; i2 < clusters.length; i2++) {
+ for (var j2 = 0; j2 <= i2; j2++) {
+ var dist3 = void 0;
+ if (opts.mode === "dendrogram") {
+ dist3 = i2 === j2 ? Infinity : getDist3(clusters[i2].value, clusters[j2].value);
+ } else {
+ dist3 = i2 === j2 ? Infinity : getDist3(clusters[i2].value[0], clusters[j2].value[0]);
+ }
+ dists[i2][j2] = dist3;
+ dists[j2][i2] = dist3;
+ if (dist3 < dists[i2][mins[i2]]) {
+ mins[i2] = j2;
+ }
+ }
+ }
+ var merged = mergeClosest(clusters, index, dists, mins, opts);
+ while (merged) {
+ merged = mergeClosest(clusters, index, dists, mins, opts);
+ }
+ var retClusters;
+ if (opts.mode === "dendrogram") {
+ retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);
+ if (opts.addDendrogram) buildDendrogram(clusters[0], cy);
+ } else {
+ retClusters = new Array(clusters.length);
+ clusters.forEach(function(cluster2, i3) {
+ cluster2.key = cluster2.index = null;
+ retClusters[i3] = cy.collection(cluster2.value);
+ });
+ }
+ return retClusters;
+ }, "hierarchicalClustering");
+ hierarchicalClustering$1 = {
+ hierarchicalClustering,
+ hca: hierarchicalClustering
+ };
+ defaults$9 = defaults$g({
+ distance: "euclidean",
+ // distance metric to compare attributes between two nodes
+ preference: "median",
+ // suitability of a data point to serve as an exemplar
+ damping: 0.8,
+ // damping factor between [0.5, 1)
+ maxIterations: 1e3,
+ // max number of iterations to run
+ minIterations: 100,
+ // min number of iterations to run in order for clustering to stop
+ attributes: [
+ // functions to quantify the similarity between any two points
+ // e.g. node => node.data('weight')
+ ]
+ });
+ setOptions6 = /* @__PURE__ */ __name(function setOptions7(options3) {
+ var dmp = options3.damping;
+ var pref = options3.preference;
+ if (!(0.5 <= dmp && dmp < 1)) {
+ error("Damping must range on [0.5, 1). Got: ".concat(dmp));
+ }
+ var validPrefs = ["median", "mean", "min", "max"];
+ if (!(validPrefs.some(function(v3) {
+ return v3 === pref;
+ }) || number$1(pref))) {
+ error("Preference must be one of [".concat(validPrefs.map(function(p3) {
+ return "'".concat(p3, "'");
+ }).join(", "), "] or a number. Got: ").concat(pref));
+ }
+ return defaults$9(options3);
+ }, "setOptions");
+ getSimilarity2 = /* @__PURE__ */ __name(function getSimilarity3(type3, n1, n2, attributes) {
+ var attr = /* @__PURE__ */ __name(function attr2(n3, i2) {
+ return attributes[i2](n3);
+ }, "attr");
+ return -clusteringDistance(type3, attributes.length, function(i2) {
+ return attr(n1, i2);
+ }, function(i2) {
+ return attr(n2, i2);
+ }, n1, n2);
+ }, "getSimilarity");
+ getPreference = /* @__PURE__ */ __name(function getPreference2(S3, preference) {
+ var p3 = null;
+ if (preference === "median") {
+ p3 = median(S3);
+ } else if (preference === "mean") {
+ p3 = mean(S3);
+ } else if (preference === "min") {
+ p3 = min5(S3);
+ } else if (preference === "max") {
+ p3 = max5(S3);
+ } else {
+ p3 = preference;
+ }
+ return p3;
+ }, "getPreference");
+ findExemplars = /* @__PURE__ */ __name(function findExemplars2(n2, R2, A2) {
+ var indices = [];
+ for (var i2 = 0; i2 < n2; i2++) {
+ if (R2[i2 * n2 + i2] + A2[i2 * n2 + i2] > 0) {
+ indices.push(i2);
+ }
+ }
+ return indices;
+ }, "findExemplars");
+ assignClusters = /* @__PURE__ */ __name(function assignClusters2(n2, S3, exemplars) {
+ var clusters = [];
+ for (var i2 = 0; i2 < n2; i2++) {
+ var index = -1;
+ var max10 = -Infinity;
+ for (var ei = 0; ei < exemplars.length; ei++) {
+ var e3 = exemplars[ei];
+ if (S3[i2 * n2 + e3] > max10) {
+ index = e3;
+ max10 = S3[i2 * n2 + e3];
+ }
+ }
+ if (index > 0) {
+ clusters.push(index);
+ }
+ }
+ for (var _ei = 0; _ei < exemplars.length; _ei++) {
+ clusters[exemplars[_ei]] = exemplars[_ei];
+ }
+ return clusters;
+ }, "assignClusters");
+ assign4 = /* @__PURE__ */ __name(function assign5(n2, S3, exemplars) {
+ var clusters = assignClusters(n2, S3, exemplars);
+ for (var ei = 0; ei < exemplars.length; ei++) {
+ var ii = [];
+ for (var c3 = 0; c3 < clusters.length; c3++) {
+ if (clusters[c3] === exemplars[ei]) {
+ ii.push(c3);
+ }
+ }
+ var maxI = -1;
+ var maxSum = -Infinity;
+ for (var i2 = 0; i2 < ii.length; i2++) {
+ var sum2 = 0;
+ for (var j2 = 0; j2 < ii.length; j2++) {
+ sum2 += S3[ii[j2] * n2 + ii[i2]];
+ }
+ if (sum2 > maxSum) {
+ maxI = i2;
+ maxSum = sum2;
+ }
+ }
+ exemplars[ei] = ii[maxI];
+ }
+ clusters = assignClusters(n2, S3, exemplars);
+ return clusters;
+ }, "assign");
+ affinityPropagation = /* @__PURE__ */ __name(function affinityPropagation2(options3) {
+ var cy = this.cy();
+ var nodes6 = this.nodes();
+ var opts = setOptions6(options3);
+ var id2position = {};
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ id2position[nodes6[i2].id()] = i2;
+ }
+ var n2;
+ var n22;
+ var S3;
+ var p3;
+ var R2;
+ var A2;
+ n2 = nodes6.length;
+ n22 = n2 * n2;
+ S3 = new Array(n22);
+ for (var _i = 0; _i < n22; _i++) {
+ S3[_i] = -Infinity;
+ }
+ for (var _i2 = 0; _i2 < n2; _i2++) {
+ for (var j2 = 0; j2 < n2; j2++) {
+ if (_i2 !== j2) {
+ S3[_i2 * n2 + j2] = getSimilarity2(opts.distance, nodes6[_i2], nodes6[j2], opts.attributes);
+ }
+ }
+ }
+ p3 = getPreference(S3, opts.preference);
+ for (var _i3 = 0; _i3 < n2; _i3++) {
+ S3[_i3 * n2 + _i3] = p3;
+ }
+ R2 = new Array(n22);
+ for (var _i4 = 0; _i4 < n22; _i4++) {
+ R2[_i4] = 0;
+ }
+ A2 = new Array(n22);
+ for (var _i5 = 0; _i5 < n22; _i5++) {
+ A2[_i5] = 0;
+ }
+ var old = new Array(n2);
+ var Rp = new Array(n2);
+ var se = new Array(n2);
+ for (var _i6 = 0; _i6 < n2; _i6++) {
+ old[_i6] = 0;
+ Rp[_i6] = 0;
+ se[_i6] = 0;
+ }
+ var e3 = new Array(n2 * opts.minIterations);
+ for (var _i7 = 0; _i7 < e3.length; _i7++) {
+ e3[_i7] = 0;
+ }
+ var iter;
+ for (iter = 0; iter < opts.maxIterations; iter++) {
+ for (var _i8 = 0; _i8 < n2; _i8++) {
+ var max10 = -Infinity, max22 = -Infinity, maxI = -1, AS = 0;
+ for (var _j = 0; _j < n2; _j++) {
+ old[_j] = R2[_i8 * n2 + _j];
+ AS = A2[_i8 * n2 + _j] + S3[_i8 * n2 + _j];
+ if (AS >= max10) {
+ max22 = max10;
+ max10 = AS;
+ maxI = _j;
+ } else if (AS > max22) {
+ max22 = AS;
}
- return false;
- };
- _2.Kc = function yi() {
- return Ni(this.a);
- };
- _2.Mc = function zi(a) {
- var b, c2;
- if (JD(a, 468)) {
- b = BD(a, 682);
- c2 = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83);
- return !!c2 && Dk(c2.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a)));
+ }
+ for (var _j2 = 0; _j2 < n2; _j2++) {
+ R2[_i8 * n2 + _j2] = (1 - opts.damping) * (S3[_i8 * n2 + _j2] - max10) + opts.damping * old[_j2];
+ }
+ R2[_i8 * n2 + maxI] = (1 - opts.damping) * (S3[_i8 * n2 + maxI] - max22) + opts.damping * old[maxI];
+ }
+ for (var _i9 = 0; _i9 < n2; _i9++) {
+ var sum2 = 0;
+ for (var _j3 = 0; _j3 < n2; _j3++) {
+ old[_j3] = A2[_j3 * n2 + _i9];
+ Rp[_j3] = Math.max(0, R2[_j3 * n2 + _i9]);
+ sum2 += Rp[_j3];
+ }
+ sum2 -= Rp[_i9];
+ Rp[_i9] = R2[_i9 * n2 + _i9];
+ sum2 += Rp[_i9];
+ for (var _j4 = 0; _j4 < n2; _j4++) {
+ A2[_j4 * n2 + _i9] = (1 - opts.damping) * Math.min(0, sum2 - Rp[_j4]) + opts.damping * old[_j4];
+ }
+ A2[_i9 * n2 + _i9] = (1 - opts.damping) * (sum2 - Rp[_i9]) + opts.damping * old[_i9];
+ }
+ var K4 = 0;
+ for (var _i10 = 0; _i10 < n2; _i10++) {
+ var E2 = A2[_i10 * n2 + _i10] + R2[_i10 * n2 + _i10] > 0 ? 1 : 0;
+ e3[iter % opts.minIterations * n2 + _i10] = E2;
+ K4 += E2;
+ }
+ if (K4 > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {
+ var _sum = 0;
+ for (var _i11 = 0; _i11 < n2; _i11++) {
+ se[_i11] = 0;
+ for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {
+ se[_i11] += e3[_j5 * n2 + _i11];
}
- return false;
- };
- _2.gc = function Ai() {
- return Xi(this.a);
- };
- _2.Nc = function Bi() {
- return Oi(this.a);
- };
- mdb(Zhe, "AbstractTable/CellSet", 665);
- bcb(1928, 28, die, Ci);
- _2.$b = function Di() {
- Pi();
- };
- _2.Hc = function Ei(a) {
- return Qi(this.a, a);
- };
- _2.Kc = function Fi() {
- return Zi(this.a);
- };
- _2.gc = function Gi() {
- return Xi(this.a);
- };
- _2.Nc = function Hi() {
- return $i(this.a);
- };
- mdb(Zhe, "AbstractTable/Values", 1928);
- bcb(1632, 1631, _he);
- mdb(Zhe, "ArrayListMultimapGwtSerializationDependencies", 1632);
- bcb(513, 1632, _he, Ji, Ki);
- _2.hc = function Li() {
- return new Skb(this.a);
- };
- _2.a = 0;
- mdb(Zhe, "ArrayListMultimap", 513);
- bcb(664, 2010, { 664: 1, 1947: 1, 3: 1 }, _i);
- mdb(Zhe, "ArrayTable", 664);
- bcb(1924, 386, $he, aj);
- _2.Xb = function bj(a) {
- return new hj(this.a, a);
- };
- mdb(Zhe, "ArrayTable/1", 1924);
- bcb(1925, 1, {}, cj);
- _2.ld = function dj(a) {
- return new hj(this.a, a);
+ if (se[_i11] === 0 || se[_i11] === opts.minIterations) {
+ _sum++;
+ }
+ }
+ if (_sum === n2) {
+ break;
+ }
+ }
+ }
+ var exemplarsIndices = findExemplars(n2, R2, A2);
+ var clusterIndices = assign4(n2, S3, exemplarsIndices);
+ var clusters = {};
+ for (var c3 = 0; c3 < exemplarsIndices.length; c3++) {
+ clusters[exemplarsIndices[c3]] = [];
+ }
+ for (var _i12 = 0; _i12 < nodes6.length; _i12++) {
+ var pos = id2position[nodes6[_i12].id()];
+ var clusterIndex = clusterIndices[pos];
+ if (clusterIndex != null) {
+ clusters[clusterIndex].push(nodes6[_i12]);
+ }
+ }
+ var retClusters = new Array(exemplarsIndices.length);
+ for (var _c = 0; _c < exemplarsIndices.length; _c++) {
+ retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);
+ }
+ return retClusters;
+ }, "affinityPropagation");
+ affinityPropagation$1 = {
+ affinityPropagation,
+ ap: affinityPropagation
+ };
+ hierholzerDefaults = defaults$g({
+ root: void 0,
+ directed: false
+ });
+ elesfn$k = {
+ hierholzer: /* @__PURE__ */ __name(function hierholzer(options3) {
+ if (!plainObject(options3)) {
+ var args = arguments;
+ options3 = {
+ root: args[0],
+ directed: args[1]
};
- mdb(Zhe, "ArrayTable/1methodref$getCell$Type", 1925);
- bcb(2011, 1, { 682: 1 });
- _2.Fb = function ej(a) {
- var b;
- if (a === this) {
- return true;
+ }
+ var _hierholzerDefaults = hierholzerDefaults(options3), root4 = _hierholzerDefaults.root, directed = _hierholzerDefaults.directed;
+ var eles = this;
+ var dflag = false;
+ var oddIn;
+ var oddOut;
+ var startVertex;
+ if (root4) startVertex = string(root4) ? this.filter(root4)[0].id() : root4[0].id();
+ var nodes6 = {};
+ var edges5 = {};
+ if (directed) {
+ eles.forEach(function(ele) {
+ var id27 = ele.id();
+ if (ele.isNode()) {
+ var ind = ele.indegree(true);
+ var outd = ele.outdegree(true);
+ var d1 = ind - outd;
+ var d22 = outd - ind;
+ if (d1 == 1) {
+ if (oddIn) dflag = true;
+ else oddIn = id27;
+ } else if (d22 == 1) {
+ if (oddOut) dflag = true;
+ else oddOut = id27;
+ } else if (d22 > 1 || d1 > 1) {
+ dflag = true;
+ }
+ nodes6[id27] = [];
+ ele.outgoers().forEach(function(e3) {
+ if (e3.isEdge()) nodes6[id27].push(e3.id());
+ });
+ } else {
+ edges5[id27] = [void 0, ele.target().id()];
}
- if (JD(a, 468)) {
- b = BD(a, 682);
- return Hb(Em(this.c.e, this.b), Em(b.c.e, b.b)) && Hb(Em(this.c.c, this.a), Em(b.c.c, b.a)) && Hb(Mi(this.c, this.b, this.a), Mi(b.c, b.b, b.a));
+ });
+ } else {
+ eles.forEach(function(ele) {
+ var id27 = ele.id();
+ if (ele.isNode()) {
+ var d3 = ele.degree(true);
+ if (d3 % 2) {
+ if (!oddIn) oddIn = id27;
+ else if (!oddOut) oddOut = id27;
+ else dflag = true;
+ }
+ nodes6[id27] = [];
+ ele.connectedEdges().forEach(function(e3) {
+ return nodes6[id27].push(e3.id());
+ });
+ } else {
+ edges5[id27] = [ele.source().id(), ele.target().id()];
}
- return false;
- };
- _2.Hb = function fj() {
- return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [Em(this.c.e, this.b), Em(this.c.c, this.a), Mi(this.c, this.b, this.a)]));
- };
- _2.Ib = function gj() {
- return "(" + Em(this.c.e, this.b) + "," + Em(this.c.c, this.a) + ")=" + Mi(this.c, this.b, this.a);
- };
- mdb(Zhe, "Tables/AbstractCell", 2011);
- bcb(468, 2011, { 468: 1, 682: 1 }, hj);
- _2.a = 0;
- _2.b = 0;
- _2.d = 0;
- mdb(Zhe, "ArrayTable/2", 468);
- bcb(1927, 1, {}, ij);
- _2.ld = function jj(a) {
- return Ti(this.a, a);
- };
- mdb(Zhe, "ArrayTable/2methodref$getValue$Type", 1927);
- bcb(1926, 386, $he, kj);
- _2.Xb = function lj(a) {
- return Ti(this.a, a);
- };
- mdb(Zhe, "ArrayTable/3", 1926);
- bcb(1979, 1967, cie);
- _2.$b = function nj() {
- ir(this.kc());
- };
- _2.vc = function oj() {
- return new Sv(this);
- };
- _2.lc = function pj() {
- return new Mub(this.kc(), this.gc());
- };
- mdb(Zhe, "Maps/IteratorBasedAbstractMap", 1979);
- bcb(828, 1979, cie);
- _2.$b = function tj() {
- throw vbb(new bgb());
- };
- _2._b = function uj(a) {
- return sn(this.c, a);
- };
- _2.kc = function vj() {
- return new Jj(this, this.c.b.c.gc());
- };
- _2.lc = function wj() {
- return Zj(this.c.b.c.gc(), 16, new Dj(this));
- };
- _2.xc = function xj(a) {
- var b;
- b = BD(tn(this.c, a), 19);
- return !b ? null : this.nd(b.a);
- };
- _2.dc = function yj() {
- return this.c.b.c.dc();
- };
- _2.ec = function zj() {
- return Xm(this.c);
- };
- _2.zc = function Aj(a, b) {
- var c2;
- c2 = BD(tn(this.c, a), 19);
- if (!c2) {
- throw vbb(new Wdb(this.md() + " " + a + " not in " + Xm(this.c)));
+ });
+ }
+ var result = {
+ found: false,
+ trail: void 0
+ };
+ if (dflag) return result;
+ else if (oddOut && oddIn) {
+ if (directed) {
+ if (startVertex && oddOut != startVertex) {
+ return result;
}
- return this.od(c2.a, b);
- };
- _2.Bc = function Bj(a) {
- throw vbb(new bgb());
- };
- _2.gc = function Cj() {
- return this.c.b.c.gc();
- };
- mdb(Zhe, "ArrayTable/ArrayMap", 828);
- bcb(1923, 1, {}, Dj);
- _2.ld = function Ej(a) {
- return qj(this.a, a);
- };
- mdb(Zhe, "ArrayTable/ArrayMap/0methodref$getEntry$Type", 1923);
- bcb(1921, 345, kie, Fj);
- _2.cd = function Gj() {
- return rj(this.a, this.b);
- };
- _2.dd = function Hj() {
- return this.a.nd(this.b);
- };
- _2.ed = function Ij(a) {
- return this.a.od(this.b, a);
- };
- _2.b = 0;
- mdb(Zhe, "ArrayTable/ArrayMap/1", 1921);
- bcb(1922, 386, $he, Jj);
- _2.Xb = function Kj(a) {
- return qj(this.a, a);
- };
- mdb(Zhe, "ArrayTable/ArrayMap/2", 1922);
- bcb(1920, 828, cie, Lj);
- _2.md = function Mj() {
- return "Column";
- };
- _2.nd = function Nj(a) {
- return Mi(this.b, this.a, a);
- };
- _2.od = function Oj(a, b) {
- return Wi(this.b, this.a, a, b);
- };
- _2.a = 0;
- mdb(Zhe, "ArrayTable/Row", 1920);
- bcb(829, 828, cie, Rj);
- _2.nd = function Tj(a) {
- return new Lj(this.a, a);
- };
- _2.zc = function Uj(a, b) {
- return BD(b, 83), Pj();
- };
- _2.od = function Vj(a, b) {
- return BD(b, 83), Qj();
- };
- _2.md = function Sj() {
- return "Row";
- };
- mdb(Zhe, "ArrayTable/RowMap", 829);
- bcb(1120, 1, pie2, _j);
- _2.qd = function ak() {
- return this.a.qd() & -262;
- };
- _2.rd = function bk() {
- return this.a.rd();
- };
- _2.Nb = function ck(a) {
- this.a.Nb(new gk(a, this.b));
- };
- _2.sd = function dk(a) {
- return this.a.sd(new ek(a, this.b));
- };
- mdb(Zhe, "CollectSpliterators/1", 1120);
- bcb(1121, 1, qie, ek);
- _2.td = function fk(a) {
- this.a.td(this.b.Kb(a));
- };
- mdb(Zhe, "CollectSpliterators/1/lambda$0$Type", 1121);
- bcb(1122, 1, qie, gk);
- _2.td = function hk(a) {
- this.a.td(this.b.Kb(a));
- };
- mdb(Zhe, "CollectSpliterators/1/lambda$1$Type", 1122);
- bcb(1123, 1, pie2, jk);
- _2.qd = function kk() {
- return this.a;
- };
- _2.rd = function lk() {
- !!this.d && (this.b = Deb(this.b, this.d.rd()));
- return Deb(this.b, 0);
- };
- _2.Nb = function mk(a) {
- if (this.d) {
- this.d.Nb(a);
- this.d = null;
+ startVertex = oddOut;
+ } else {
+ if (startVertex && oddOut != startVertex && oddIn != startVertex) {
+ return result;
+ } else if (!startVertex) {
+ startVertex = oddOut;
}
- this.c.Nb(new rk(this.e, a));
- this.b = 0;
- };
- _2.sd = function ok(a) {
- while (true) {
- if (!!this.d && this.d.sd(a)) {
- Kbb(this.b, rie) && (this.b = Qbb(this.b, 1));
- return true;
- } else {
- this.d = null;
+ }
+ } else {
+ if (!startVertex) startVertex = eles[0].id();
+ }
+ var walk = /* @__PURE__ */ __name(function walk2(v3) {
+ var currentNode = v3;
+ var subtour2 = [v3];
+ var adj, adjTail, adjHead;
+ while (nodes6[currentNode].length) {
+ adj = nodes6[currentNode].shift();
+ adjTail = edges5[adj][0];
+ adjHead = edges5[adj][1];
+ if (currentNode != adjHead) {
+ nodes6[adjHead] = nodes6[adjHead].filter(function(e3) {
+ return e3 != adj;
+ });
+ currentNode = adjHead;
+ } else if (!directed && currentNode != adjTail) {
+ nodes6[adjTail] = nodes6[adjTail].filter(function(e3) {
+ return e3 != adj;
+ });
+ currentNode = adjTail;
+ }
+ subtour2.unshift(adj);
+ subtour2.unshift(currentNode);
+ }
+ return subtour2;
+ }, "walk");
+ var trail = [];
+ var subtour = [];
+ subtour = walk(startVertex);
+ while (subtour.length != 1) {
+ if (nodes6[subtour[0]].length == 0) {
+ trail.unshift(eles.getElementById(subtour.shift()));
+ trail.unshift(eles.getElementById(subtour.shift()));
+ } else {
+ subtour = walk(subtour.shift()).concat(subtour);
+ }
+ }
+ trail.unshift(eles.getElementById(subtour.shift()));
+ for (var d2 in nodes6) {
+ if (nodes6[d2].length) {
+ return result;
+ }
+ }
+ result.found = true;
+ result.trail = this.spawn(trail, true);
+ return result;
+ }, "hierholzer")
+ };
+ hopcroftTarjanBiconnected = /* @__PURE__ */ __name(function hopcroftTarjanBiconnected2() {
+ var eles = this;
+ var nodes6 = {};
+ var id27 = 0;
+ var edgeCount4 = 0;
+ var components3 = [];
+ var stack = [];
+ var visitedEdges = {};
+ var buildComponent = /* @__PURE__ */ __name(function buildComponent2(x5, y5) {
+ var i2 = stack.length - 1;
+ var cutset = [];
+ var component2 = eles.spawn();
+ while (stack[i2].x != x5 || stack[i2].y != y5) {
+ cutset.push(stack.pop().edge);
+ i2--;
+ }
+ cutset.push(stack.pop().edge);
+ cutset.forEach(function(edge) {
+ var connectedNodes = edge.connectedNodes().intersection(eles);
+ component2.merge(edge);
+ connectedNodes.forEach(function(node2) {
+ var nodeId = node2.id();
+ var connectedEdges = node2.connectedEdges().intersection(eles);
+ component2.merge(node2);
+ if (!nodes6[nodeId].cutVertex) {
+ component2.merge(connectedEdges);
+ } else {
+ component2.merge(connectedEdges.filter(function(edge2) {
+ return edge2.isLoop();
+ }));
+ }
+ });
+ });
+ components3.push(component2);
+ }, "buildComponent");
+ var biconnectedSearch = /* @__PURE__ */ __name(function biconnectedSearch2(root4, currentNode, parent4) {
+ if (root4 === parent4) edgeCount4 += 1;
+ nodes6[currentNode] = {
+ id: id27,
+ low: id27++,
+ cutVertex: false
+ };
+ var edges5 = eles.getElementById(currentNode).connectedEdges().intersection(eles);
+ if (edges5.size() === 0) {
+ components3.push(eles.spawn(eles.getElementById(currentNode)));
+ } else {
+ var sourceId, targetId, otherNodeId, edgeId;
+ edges5.forEach(function(edge) {
+ sourceId = edge.source().id();
+ targetId = edge.target().id();
+ otherNodeId = sourceId === currentNode ? targetId : sourceId;
+ if (otherNodeId !== parent4) {
+ edgeId = edge.id();
+ if (!visitedEdges[edgeId]) {
+ visitedEdges[edgeId] = true;
+ stack.push({
+ x: currentNode,
+ y: otherNodeId,
+ edge
+ });
}
- if (!this.c.sd(new pk(this, this.e))) {
- return false;
+ if (!(otherNodeId in nodes6)) {
+ biconnectedSearch2(root4, otherNodeId, currentNode);
+ nodes6[currentNode].low = Math.min(nodes6[currentNode].low, nodes6[otherNodeId].low);
+ if (nodes6[currentNode].id <= nodes6[otherNodeId].low) {
+ nodes6[currentNode].cutVertex = true;
+ buildComponent(currentNode, otherNodeId);
+ }
+ } else {
+ nodes6[currentNode].low = Math.min(nodes6[currentNode].low, nodes6[otherNodeId].id);
}
}
- };
- _2.a = 0;
- _2.b = 0;
- mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator", 1123);
- bcb(1124, 1, qie, pk);
- _2.td = function qk(a) {
- ik(this.a, this.b, a);
- };
- mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$0$Type", 1124);
- bcb(1125, 1, qie, rk);
- _2.td = function sk(a) {
- nk(this.b, this.a, a);
- };
- mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$1$Type", 1125);
- bcb(1117, 1, pie2, tk);
- _2.qd = function uk() {
- return 16464 | this.b;
- };
- _2.rd = function vk() {
- return this.a.rd();
- };
- _2.Nb = function wk(a) {
- this.a.xe(new Ak(a, this.c));
- };
- _2.sd = function xk(a) {
- return this.a.ye(new yk(a, this.c));
- };
- _2.b = 0;
- mdb(Zhe, "CollectSpliterators/1WithCharacteristics", 1117);
- bcb(1118, 1, sie, yk);
- _2.ud = function zk(a) {
- this.a.td(this.b.ld(a));
- };
- mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$0$Type", 1118);
- bcb(1119, 1, sie, Ak);
- _2.ud = function Bk(a) {
- this.a.td(this.b.ld(a));
- };
- mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$1$Type", 1119);
- bcb(245, 1, tie);
- _2.wd = function Hk(a) {
- return this.vd(BD(a, 245));
- };
- _2.vd = function Gk(a) {
- var b;
- if (a == (_k(), $k)) {
- return 1;
- }
- if (a == (Lk(), Kk)) {
- return -1;
+ });
+ }
+ }, "biconnectedSearch");
+ eles.forEach(function(ele) {
+ if (ele.isNode()) {
+ var nodeId = ele.id();
+ if (!(nodeId in nodes6)) {
+ edgeCount4 = 0;
+ biconnectedSearch(nodeId, nodeId);
+ nodes6[nodeId].cutVertex = edgeCount4 > 1;
+ }
+ }
+ });
+ var cutVertices = Object.keys(nodes6).filter(function(id28) {
+ return nodes6[id28].cutVertex;
+ }).map(function(id28) {
+ return eles.getElementById(id28);
+ });
+ return {
+ cut: eles.spawn(cutVertices),
+ components: components3
+ };
+ }, "hopcroftTarjanBiconnected");
+ hopcroftTarjanBiconnected$1 = {
+ hopcroftTarjanBiconnected,
+ htbc: hopcroftTarjanBiconnected,
+ htb: hopcroftTarjanBiconnected,
+ hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected
+ };
+ tarjanStronglyConnected = /* @__PURE__ */ __name(function tarjanStronglyConnected2() {
+ var eles = this;
+ var nodes6 = {};
+ var index = 0;
+ var components3 = [];
+ var stack = [];
+ var cut = eles.spawn(eles);
+ var stronglyConnectedSearch = /* @__PURE__ */ __name(function stronglyConnectedSearch2(sourceNodeId) {
+ stack.push(sourceNodeId);
+ nodes6[sourceNodeId] = {
+ index,
+ low: index++,
+ explored: false
+ };
+ var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);
+ connectedEdges.forEach(function(edge) {
+ var targetNodeId = edge.target().id();
+ if (targetNodeId !== sourceNodeId) {
+ if (!(targetNodeId in nodes6)) {
+ stronglyConnectedSearch2(targetNodeId);
}
- b = (ex(), Fcb(this.a, a.a));
- if (b != 0) {
- return b;
+ if (!nodes6[targetNodeId].explored) {
+ nodes6[sourceNodeId].low = Math.min(nodes6[sourceNodeId].low, nodes6[targetNodeId].low);
}
- return JD(this, 519) == JD(a, 519) ? 0 : JD(this, 519) ? 1 : -1;
- };
- _2.zd = function Ik() {
- return this.a;
- };
- _2.Fb = function Jk(a) {
- return Ek(this, a);
- };
- mdb(Zhe, "Cut", 245);
- bcb(1761, 245, tie, Mk);
- _2.vd = function Nk(a) {
- return a == this ? 0 : 1;
- };
- _2.xd = function Ok(a) {
- throw vbb(new xcb());
- };
- _2.yd = function Pk(a) {
- a.a += "+∞)";
- };
- _2.zd = function Qk() {
- throw vbb(new Zdb(uie));
- };
- _2.Hb = function Rk() {
- return Zfb(), kCb(this);
- };
- _2.Ad = function Sk(a) {
- return false;
- };
- _2.Ib = function Tk() {
- return "+∞";
- };
- var Kk;
- mdb(Zhe, "Cut/AboveAll", 1761);
- bcb(519, 245, { 245: 1, 519: 1, 3: 1, 35: 1 }, Uk);
- _2.xd = function Vk(a) {
- Pfb((a.a += "(", a), this.a);
- };
- _2.yd = function Wk(a) {
- Kfb(Pfb(a, this.a), 93);
- };
- _2.Hb = function Xk() {
- return ~tb(this.a);
- };
- _2.Ad = function Yk(a) {
- return ex(), Fcb(this.a, a) < 0;
- };
- _2.Ib = function Zk() {
- return "/" + this.a + "\\";
- };
- mdb(Zhe, "Cut/AboveValue", 519);
- bcb(1760, 245, tie, al);
- _2.vd = function bl(a) {
- return a == this ? 0 : -1;
- };
- _2.xd = function cl(a) {
- a.a += "(-∞";
- };
- _2.yd = function dl(a) {
- throw vbb(new xcb());
- };
- _2.zd = function el() {
- throw vbb(new Zdb(uie));
- };
- _2.Hb = function fl() {
- return Zfb(), kCb(this);
- };
- _2.Ad = function gl(a) {
- return true;
- };
- _2.Ib = function hl() {
- return "-∞";
- };
- var $k;
- mdb(Zhe, "Cut/BelowAll", 1760);
- bcb(1762, 245, tie, il);
- _2.xd = function jl(a) {
- Pfb((a.a += "[", a), this.a);
- };
- _2.yd = function kl(a) {
- Kfb(Pfb(a, this.a), 41);
- };
- _2.Hb = function ll() {
- return tb(this.a);
- };
- _2.Ad = function ml(a) {
- return ex(), Fcb(this.a, a) <= 0;
- };
- _2.Ib = function nl() {
- return "\\" + this.a + "/";
- };
- mdb(Zhe, "Cut/BelowValue", 1762);
- bcb(537, 1, vie);
- _2.Jc = function ql(a) {
- reb(this, a);
- };
- _2.Ib = function rl() {
- return tr(BD(Rb(this, "use Optional.orNull() instead of Optional.or(null)"), 20).Kc());
- };
- mdb(Zhe, "FluentIterable", 537);
- bcb(433, 537, vie, sl);
- _2.Kc = function tl() {
- return new Sr(ur(this.a.Kc(), new Sq()));
- };
- mdb(Zhe, "FluentIterable/2", 433);
- bcb(1046, 537, vie, vl);
- _2.Kc = function wl() {
- return ul(this);
- };
- mdb(Zhe, "FluentIterable/3", 1046);
- bcb(708, 386, $he, xl);
- _2.Xb = function yl(a) {
- return this.a[a].Kc();
- };
- mdb(Zhe, "FluentIterable/3/1", 708);
- bcb(1972, 1, {});
- _2.Ib = function zl() {
- return fcb(this.Bd().b);
- };
- mdb(Zhe, "ForwardingObject", 1972);
- bcb(1973, 1972, wie);
- _2.Bd = function Fl() {
- return this.Cd();
- };
- _2.Jc = function Gl(a) {
- reb(this, a);
- };
- _2.Lc = function Jl() {
- return this.Oc();
- };
- _2.Nc = function Ml() {
- return new Kub(this, 0);
- };
- _2.Oc = function Nl() {
- return new YAb(null, this.Nc());
- };
- _2.Fc = function Al(a) {
- return this.Cd(), enb();
- };
- _2.Gc = function Bl(a) {
- return this.Cd(), fnb();
- };
- _2.$b = function Cl() {
- this.Cd(), gnb();
- };
- _2.Hc = function Dl(a) {
- return this.Cd().Hc(a);
- };
- _2.Ic = function El(a) {
- return this.Cd().Ic(a);
- };
- _2.dc = function Hl() {
- return this.Cd().b.dc();
- };
- _2.Kc = function Il() {
- return this.Cd().Kc();
- };
- _2.Mc = function Kl(a) {
- return this.Cd(), jnb();
- };
- _2.gc = function Ll() {
- return this.Cd().b.gc();
- };
- _2.Pc = function Ol() {
- return this.Cd().Pc();
- };
- _2.Qc = function Pl(a) {
- return this.Cd().Qc(a);
- };
- mdb(Zhe, "ForwardingCollection", 1973);
- bcb(1980, 28, xie);
- _2.Kc = function Xl() {
- return this.Ed();
- };
- _2.Fc = function Sl(a) {
- throw vbb(new bgb());
- };
- _2.Gc = function Tl(a) {
- throw vbb(new bgb());
- };
- _2.$b = function Ul() {
- throw vbb(new bgb());
- };
- _2.Hc = function Vl(a) {
- return a != null && ze(this, a, false);
- };
- _2.Dd = function Wl() {
- switch (this.gc()) {
- case 0:
- return im(), im(), hm;
- case 1:
- return im(), new my(Qb(this.Ed().Pb()));
- default:
- return new px(this, this.Pc());
+ }
+ });
+ if (nodes6[sourceNodeId].index === nodes6[sourceNodeId].low) {
+ var componentNodes = eles.spawn();
+ for (; ; ) {
+ var nodeId = stack.pop();
+ componentNodes.merge(eles.getElementById(nodeId));
+ nodes6[nodeId].low = nodes6[sourceNodeId].index;
+ nodes6[nodeId].explored = true;
+ if (nodeId === sourceNodeId) {
+ break;
}
- };
- _2.Mc = function Yl(a) {
- throw vbb(new bgb());
- };
- mdb(Zhe, "ImmutableCollection", 1980);
- bcb(712, 1980, xie, Zl);
- _2.Kc = function cm() {
- return vr(this.a.Kc());
- };
- _2.Hc = function $l(a) {
- return a != null && this.a.Hc(a);
- };
- _2.Ic = function _l(a) {
- return this.a.Ic(a);
- };
- _2.dc = function am() {
- return this.a.dc();
- };
- _2.Ed = function bm() {
- return vr(this.a.Kc());
- };
- _2.gc = function dm() {
- return this.a.gc();
- };
- _2.Pc = function em() {
- return this.a.Pc();
- };
- _2.Qc = function fm(a) {
- return this.a.Qc(a);
- };
- _2.Ib = function gm() {
- return fcb(this.a);
- };
- mdb(Zhe, "ForwardingImmutableCollection", 712);
- bcb(152, 1980, yie);
- _2.Kc = function sm() {
- return this.Ed();
- };
- _2.Yc = function tm() {
- return this.Fd(0);
- };
- _2.Zc = function vm(a) {
- return this.Fd(a);
- };
- _2.ad = function zm(a) {
- ktb(this, a);
- };
- _2.Nc = function Am() {
- return new Kub(this, 16);
- };
- _2.bd = function Cm(a, b) {
- return this.Gd(a, b);
- };
- _2.Vc = function lm(a, b) {
- throw vbb(new bgb());
- };
- _2.Wc = function mm(a, b) {
- throw vbb(new bgb());
- };
- _2.Fb = function om(a) {
- return Ju(this, a);
- };
- _2.Hb = function pm() {
- return Ku(this);
- };
- _2.Xc = function qm(a) {
- return a == null ? -1 : Lu(this, a);
- };
- _2.Ed = function rm() {
- return this.Fd(0);
- };
- _2.Fd = function um(a) {
- return jm(this, a);
- };
- _2.$c = function xm(a) {
- throw vbb(new bgb());
- };
- _2._c = function ym(a, b) {
- throw vbb(new bgb());
- };
- _2.Gd = function Bm(a, b) {
- var c2;
- return Dm((c2 = new $u(this), new Jib(c2, a, b)));
- };
- var hm;
- mdb(Zhe, "ImmutableList", 152);
- bcb(2006, 152, yie);
- _2.Kc = function Nm() {
- return vr(this.Hd().Kc());
- };
- _2.bd = function Qm(a, b) {
- return Dm(this.Hd().bd(a, b));
- };
- _2.Hc = function Fm(a) {
- return a != null && this.Hd().Hc(a);
- };
- _2.Ic = function Gm(a) {
- return this.Hd().Ic(a);
- };
- _2.Fb = function Hm(a) {
- return pb(this.Hd(), a);
- };
- _2.Xb = function Im(a) {
- return Em(this, a);
- };
- _2.Hb = function Jm() {
- return tb(this.Hd());
- };
- _2.Xc = function Km(a) {
- return this.Hd().Xc(a);
- };
- _2.dc = function Lm() {
- return this.Hd().dc();
- };
- _2.Ed = function Mm() {
- return vr(this.Hd().Kc());
- };
- _2.gc = function Om() {
- return this.Hd().gc();
- };
- _2.Gd = function Pm(a, b) {
- return Dm(this.Hd().bd(a, b));
- };
- _2.Pc = function Rm() {
- return this.Hd().Qc(KC(SI, Uhe, 1, this.Hd().gc(), 5, 1));
- };
- _2.Qc = function Sm(a) {
- return this.Hd().Qc(a);
- };
- _2.Ib = function Tm() {
- return fcb(this.Hd());
- };
- mdb(Zhe, "ForwardingImmutableList", 2006);
- bcb(714, 1, Aie);
- _2.vc = function cn() {
- return Wm(this);
- };
- _2.wc = function en2(a) {
- stb(this, a);
- };
- _2.ec = function jn() {
- return Xm(this);
- };
- _2.yc = function kn(a, b, c2) {
- return ttb(this, a, b, c2);
- };
- _2.Cc = function rn() {
- return this.Ld();
- };
- _2.$b = function Zm() {
- throw vbb(new bgb());
- };
- _2._b = function $m(a) {
- return this.xc(a) != null;
- };
- _2.uc = function _m(a) {
- return this.Ld().Hc(a);
- };
- _2.Jd = function an() {
- return new jq(this);
- };
- _2.Kd = function bn() {
- return new sq(this);
- };
- _2.Fb = function dn(a) {
- return Dv(this, a);
- };
- _2.Hb = function gn() {
- return Wm(this).Hb();
- };
- _2.dc = function hn() {
- return this.gc() == 0;
- };
- _2.zc = function nn(a, b) {
- return Ym();
- };
- _2.Bc = function on(a) {
- throw vbb(new bgb());
- };
- _2.Ib = function pn() {
- return Jv(this);
- };
- _2.Ld = function qn() {
- if (this.e) {
- return this.e;
- }
- return this.e = this.Kd();
- };
- _2.c = null;
- _2.d = null;
- _2.e = null;
- var Um;
- mdb(Zhe, "ImmutableMap", 714);
- bcb(715, 714, Aie);
- _2._b = function vn(a) {
- return sn(this, a);
- };
- _2.uc = function wn(a) {
- return dob(this.b, a);
- };
- _2.Id = function xn() {
- return Vn(new Ln(this));
- };
- _2.Jd = function yn() {
- return Vn(gob(this.b));
- };
- _2.Kd = function zn() {
- return Ql(), new Zl(hob(this.b));
- };
- _2.Fb = function An(a) {
- return fob(this.b, a);
- };
- _2.xc = function Bn(a) {
- return tn(this, a);
- };
- _2.Hb = function Cn() {
- return tb(this.b.c);
- };
- _2.dc = function Dn() {
- return this.b.c.dc();
- };
- _2.gc = function En() {
- return this.b.c.gc();
- };
- _2.Ib = function Fn() {
- return fcb(this.b.c);
- };
- mdb(Zhe, "ForwardingImmutableMap", 715);
- bcb(1974, 1973, Bie);
- _2.Bd = function Gn() {
- return this.Md();
- };
- _2.Cd = function Hn() {
- return this.Md();
- };
- _2.Nc = function Kn() {
- return new Kub(this, 1);
- };
- _2.Fb = function In(a) {
- return a === this || this.Md().Fb(a);
- };
- _2.Hb = function Jn() {
- return this.Md().Hb();
- };
- mdb(Zhe, "ForwardingSet", 1974);
- bcb(1069, 1974, Bie, Ln);
- _2.Bd = function Nn() {
- return eob(this.a.b);
- };
- _2.Cd = function On() {
- return eob(this.a.b);
- };
- _2.Hc = function Mn(b) {
- if (JD(b, 42) && BD(b, 42).cd() == null) {
- return false;
- }
- try {
- return Dob(eob(this.a.b), b);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 205)) {
- return false;
- } else
- throw vbb(a);
+ }
+ var componentEdges = componentNodes.edgesWith(componentNodes);
+ var component2 = componentNodes.merge(componentEdges);
+ components3.push(component2);
+ cut = cut.difference(component2);
+ }
+ }, "stronglyConnectedSearch");
+ eles.forEach(function(ele) {
+ if (ele.isNode()) {
+ var nodeId = ele.id();
+ if (!(nodeId in nodes6)) {
+ stronglyConnectedSearch(nodeId);
+ }
+ }
+ });
+ return {
+ cut,
+ components: components3
+ };
+ }, "tarjanStronglyConnected");
+ tarjanStronglyConnected$1 = {
+ tarjanStronglyConnected,
+ tsc: tarjanStronglyConnected,
+ tscc: tarjanStronglyConnected,
+ tarjanStronglyConnectedComponents: tarjanStronglyConnected
+ };
+ elesfn$j = {};
+ [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function(props) {
+ extend2(elesfn$j, props);
+ });
+ STATE_PENDING = 0;
+ STATE_FULFILLED = 1;
+ STATE_REJECTED = 2;
+ api = /* @__PURE__ */ __name(function api2(executor) {
+ if (!(this instanceof api2)) return new api2(executor);
+ this.id = "Thenable/1.0.7";
+ this.state = STATE_PENDING;
+ this.fulfillValue = void 0;
+ this.rejectReason = void 0;
+ this.onFulfilled = [];
+ this.onRejected = [];
+ this.proxy = {
+ then: this.then.bind(this)
+ };
+ if (typeof executor === "function") executor.call(this, this.fulfill.bind(this), this.reject.bind(this));
+ }, "api");
+ api.prototype = {
+ /* promise resolving methods */
+ fulfill: /* @__PURE__ */ __name(function fulfill(value2) {
+ return deliver(this, STATE_FULFILLED, "fulfillValue", value2);
+ }, "fulfill"),
+ reject: /* @__PURE__ */ __name(function reject2(value2) {
+ return deliver(this, STATE_REJECTED, "rejectReason", value2);
+ }, "reject"),
+ /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */
+ then: /* @__PURE__ */ __name(function then(onFulfilled, onRejected) {
+ var curr = this;
+ var next3 = new api();
+ curr.onFulfilled.push(resolver(onFulfilled, next3, "fulfill"));
+ curr.onRejected.push(resolver(onRejected, next3, "reject"));
+ execute(curr);
+ return next3.proxy;
+ }, "then")
+ };
+ deliver = /* @__PURE__ */ __name(function deliver2(curr, state5, name, value2) {
+ if (curr.state === STATE_PENDING) {
+ curr.state = state5;
+ curr[name] = value2;
+ execute(curr);
+ }
+ return curr;
+ }, "deliver");
+ execute = /* @__PURE__ */ __name(function execute2(curr) {
+ if (curr.state === STATE_FULFILLED) execute_handlers(curr, "onFulfilled", curr.fulfillValue);
+ else if (curr.state === STATE_REJECTED) execute_handlers(curr, "onRejected", curr.rejectReason);
+ }, "execute");
+ execute_handlers = /* @__PURE__ */ __name(function execute_handlers2(curr, name, value2) {
+ if (curr[name].length === 0) return;
+ var handlers = curr[name];
+ curr[name] = [];
+ var func = /* @__PURE__ */ __name(function func2() {
+ for (var i2 = 0; i2 < handlers.length; i2++) {
+ handlers[i2](value2);
+ }
+ }, "func");
+ if (typeof setImmediate === "function") setImmediate(func);
+ else setTimeout(func, 0);
+ }, "execute_handlers");
+ resolver = /* @__PURE__ */ __name(function resolver2(cb, next3, method) {
+ return function(value2) {
+ if (typeof cb !== "function")
+ next3[method].call(next3, value2);
+ else {
+ var result;
+ try {
+ result = cb(value2);
+ } catch (e3) {
+ next3.reject(e3);
+ return;
+ }
+ resolve(next3, result);
+ }
+ };
+ }, "resolver");
+ resolve = /* @__PURE__ */ __name(function resolve2(promise4, x5) {
+ if (promise4 === x5 || promise4.proxy === x5) {
+ promise4.reject(new TypeError("cannot resolve promise with itself"));
+ return;
+ }
+ var then2;
+ if (_typeof(x5) === "object" && x5 !== null || typeof x5 === "function") {
+ try {
+ then2 = x5.then;
+ } catch (e3) {
+ promise4.reject(e3);
+ return;
+ }
+ }
+ if (typeof then2 === "function") {
+ var resolved = false;
+ try {
+ then2.call(
+ x5,
+ /* resolvePromise */
+ /* [Promises/A+ 2.3.3.3.1] */
+ function(y5) {
+ if (resolved) return;
+ resolved = true;
+ if (y5 === x5)
+ promise4.reject(new TypeError("circular thenable chain"));
+ else resolve2(promise4, y5);
+ },
+ /* rejectPromise */
+ /* [Promises/A+ 2.3.3.3.2] */
+ function(r2) {
+ if (resolved) return;
+ resolved = true;
+ promise4.reject(r2);
}
- };
- _2.Md = function Pn() {
- return eob(this.a.b);
- };
- _2.Qc = function Qn(a) {
- var b;
- b = Eob(eob(this.a.b), a);
- eob(this.a.b).b.gc() < b.length && NC(b, eob(this.a.b).b.gc(), null);
- return b;
- };
- mdb(Zhe, "ForwardingImmutableMap/1", 1069);
- bcb(1981, 1980, Cie);
- _2.Kc = function Tn() {
- return this.Ed();
- };
- _2.Nc = function Un() {
- return new Kub(this, 1);
- };
- _2.Fb = function Rn(a) {
- return Ax(this, a);
- };
- _2.Hb = function Sn() {
- return Bx(this);
- };
- mdb(Zhe, "ImmutableSet", 1981);
- bcb(703, 1981, Cie);
- _2.Kc = function ao() {
- return vr(new Dnb(this.a.b.Kc()));
- };
- _2.Hc = function Xn2(a) {
- return a != null && hnb(this.a, a);
- };
- _2.Ic = function Yn2(a) {
- return inb(this.a, a);
- };
- _2.Hb = function Zn2() {
- return tb(this.a.b);
- };
- _2.dc = function $n() {
- return this.a.b.dc();
- };
- _2.Ed = function _n() {
- return vr(new Dnb(this.a.b.Kc()));
- };
- _2.gc = function bo() {
- return this.a.b.gc();
- };
- _2.Pc = function co() {
- return this.a.b.Pc();
- };
- _2.Qc = function eo(a) {
- return knb(this.a, a);
- };
- _2.Ib = function fo() {
- return fcb(this.a.b);
- };
- mdb(Zhe, "ForwardingImmutableSet", 703);
- bcb(1975, 1974, Die);
- _2.Bd = function go() {
- return this.b;
- };
- _2.Cd = function ho() {
- return this.b;
- };
- _2.Md = function io() {
- return this.b;
- };
- _2.Nc = function jo() {
- return new Rub(this);
- };
- mdb(Zhe, "ForwardingSortedSet", 1975);
- bcb(533, 1979, Aie, wo);
- _2.Ac = function Fo(a) {
- Ld(this, a);
- };
- _2.Cc = function Io() {
- var a;
- return a = this.d, new up(!a ? this.d = new ap(this) : a);
- };
- _2.$b = function xo() {
- ko(this);
- };
- _2._b = function yo(a) {
- return !!uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
- };
- _2.uc = function zo(a) {
- return lo(this, a);
- };
- _2.kc = function Ao() {
- return new Qo(this, this);
- };
- _2.wc = function Bo(a) {
- no(this, a);
- };
- _2.xc = function Co(a) {
- return oo(this, a);
- };
- _2.ec = function Do() {
- return new Bp(this);
- };
- _2.zc = function Eo(a, b) {
- return ro(this, a, b);
- };
- _2.Bc = function Go(a) {
- var b;
- b = uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
- if (!b) {
- return null;
+ );
+ } catch (e3) {
+ if (!resolved)
+ promise4.reject(e3);
+ }
+ return;
+ }
+ promise4.fulfill(x5);
+ }, "resolve");
+ api.all = function(ps) {
+ return new api(function(resolveAll, rejectAll) {
+ var vals = new Array(ps.length);
+ var doneCount = 0;
+ var fulfill2 = /* @__PURE__ */ __name(function fulfill3(i3, val) {
+ vals[i3] = val;
+ doneCount++;
+ if (doneCount === ps.length) {
+ resolveAll(vals);
+ }
+ }, "fulfill");
+ for (var i2 = 0; i2 < ps.length; i2++) {
+ (function(i3) {
+ var p3 = ps[i3];
+ var isPromise = p3 != null && p3.then != null;
+ if (isPromise) {
+ p3.then(function(val2) {
+ fulfill2(i3, val2);
+ }, function(err) {
+ rejectAll(err);
+ });
} else {
- mo(this, b);
- b.e = null;
- b.c = null;
- return b.i;
+ var val = p3;
+ fulfill2(i3, val);
}
- };
- _2.gc = function Ho() {
- return this.i;
- };
- _2.pd = function Jo() {
- var a;
- return a = this.d, new up(!a ? this.d = new ap(this) : a);
- };
- _2.f = 0;
- _2.g = 0;
- _2.i = 0;
- mdb(Zhe, "HashBiMap", 533);
- bcb(534, 1, aie);
- _2.Nb = function Mo(a) {
- Rrb(this, a);
- };
- _2.Ob = function No() {
- return Ko(this);
- };
- _2.Pb = function Oo() {
- var a;
- if (!Ko(this)) {
- throw vbb(new utb());
- }
- a = this.c;
- this.c = a.c;
- this.f = a;
- --this.d;
- return this.Nd(a);
- };
- _2.Qb = function Po() {
- if (this.e.g != this.b) {
- throw vbb(new Apb());
- }
- Vb(!!this.f);
- mo(this.e, this.f);
- this.b = this.e.g;
- this.f = null;
- };
- _2.b = 0;
- _2.d = 0;
- _2.f = null;
- mdb(Zhe, "HashBiMap/Itr", 534);
- bcb(1011, 534, aie, Qo);
- _2.Nd = function Ro(a) {
- return new So(this, a);
- };
- mdb(Zhe, "HashBiMap/1", 1011);
- bcb(1012, 345, kie, So);
- _2.cd = function To() {
- return this.a.g;
- };
- _2.dd = function Uo() {
- return this.a.i;
- };
- _2.ed = function Vo(a) {
- var b, c2, d;
- c2 = this.a.i;
- d = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
- if (d == this.a.f && (PD(a) === PD(c2) || a != null && pb(a, c2))) {
- return a;
- }
- Nb(!vo(this.b.a, a, d), a);
- mo(this.b.a, this.a);
- b = new $o(this.a.g, this.a.a, a, d);
- po(this.b.a, b, this.a);
- this.a.e = null;
- this.a.c = null;
- this.b.b = this.b.a.g;
- this.b.f == this.a && (this.b.f = b);
- this.a = b;
- return c2;
- };
- mdb(Zhe, "HashBiMap/1/MapEntry", 1012);
- bcb(238, 345, { 345: 1, 238: 1, 3: 1, 42: 1 }, Wo);
- _2.cd = function Xo() {
- return this.g;
- };
- _2.dd = function Yo() {
- return this.i;
- };
- _2.ed = function Zo(a) {
- throw vbb(new bgb());
- };
- mdb(Zhe, "ImmutableEntry", 238);
- bcb(317, 238, { 345: 1, 317: 1, 238: 1, 3: 1, 42: 1 }, $o);
- _2.a = 0;
- _2.f = 0;
- var GF = mdb(Zhe, "HashBiMap/BiEntry", 317);
- bcb(610, 1979, Aie, ap);
- _2.Ac = function jp(a) {
- Ld(this, a);
- };
- _2.Cc = function mp() {
- return new Bp(this.a);
- };
- _2.$b = function bp() {
- ko(this.a);
- };
- _2._b = function cp(a) {
- return lo(this.a, a);
- };
- _2.kc = function dp() {
- return new op(this, this.a);
- };
- _2.wc = function ep(a) {
- Qb(a);
- no(this.a, new zp(a));
- };
- _2.xc = function fp(a) {
- return _o(this, a);
- };
- _2.ec = function gp() {
- return new up(this);
- };
- _2.zc = function ip(a, b) {
- return so(this.a, a, b, false);
- };
- _2.Bc = function kp(a) {
- var b;
- b = vo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
- if (!b) {
- return null;
- } else {
- mo(this.a, b);
- b.e = null;
- b.c = null;
- return b.g;
+ })(i2);
+ }
+ });
+ };
+ api.resolve = function(val) {
+ return new api(function(resolve3, reject3) {
+ resolve3(val);
+ });
+ };
+ api.reject = function(val) {
+ return new api(function(resolve3, reject3) {
+ reject3(val);
+ });
+ };
+ Promise$1 = typeof Promise !== "undefined" ? Promise : api;
+ Animation = /* @__PURE__ */ __name(function Animation2(target, opts, opts2) {
+ var isCore = core(target);
+ var isEle = !isCore;
+ var _p = this._private = extend2({
+ duration: 1e3
+ }, opts, opts2);
+ _p.target = target;
+ _p.style = _p.style || _p.css;
+ _p.started = false;
+ _p.playing = false;
+ _p.hooked = false;
+ _p.applying = false;
+ _p.progress = 0;
+ _p.completes = [];
+ _p.frames = [];
+ if (_p.complete && fn$6(_p.complete)) {
+ _p.completes.push(_p.complete);
+ }
+ if (isEle) {
+ var pos = target.position();
+ _p.startPosition = _p.startPosition || {
+ x: pos.x,
+ y: pos.y
+ };
+ _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);
+ }
+ if (isCore) {
+ var pan2 = target.pan();
+ _p.startPan = {
+ x: pan2.x,
+ y: pan2.y
+ };
+ _p.startZoom = target.zoom();
+ }
+ this.length = 1;
+ this[0] = this;
+ }, "Animation");
+ anifn = Animation.prototype;
+ extend2(anifn, {
+ instanceString: /* @__PURE__ */ __name(function instanceString() {
+ return "animation";
+ }, "instanceString"),
+ hook: /* @__PURE__ */ __name(function hook() {
+ var _p = this._private;
+ if (!_p.hooked) {
+ var q2;
+ var tAni = _p.target._private.animation;
+ if (_p.queue) {
+ q2 = tAni.queue;
+ } else {
+ q2 = tAni.current;
+ }
+ q2.push(this);
+ if (elementOrCollection(_p.target)) {
+ _p.target.cy().addToAnimationPool(_p.target);
+ }
+ _p.hooked = true;
+ }
+ return this;
+ }, "hook"),
+ play: /* @__PURE__ */ __name(function play() {
+ var _p = this._private;
+ if (_p.progress === 1) {
+ _p.progress = 0;
+ }
+ _p.playing = true;
+ _p.started = false;
+ _p.stopped = false;
+ this.hook();
+ return this;
+ }, "play"),
+ playing: /* @__PURE__ */ __name(function playing() {
+ return this._private.playing;
+ }, "playing"),
+ apply: /* @__PURE__ */ __name(function apply3() {
+ var _p = this._private;
+ _p.applying = true;
+ _p.started = false;
+ _p.stopped = false;
+ this.hook();
+ return this;
+ }, "apply"),
+ applying: /* @__PURE__ */ __name(function applying() {
+ return this._private.applying;
+ }, "applying"),
+ pause: /* @__PURE__ */ __name(function pause() {
+ var _p = this._private;
+ _p.playing = false;
+ _p.started = false;
+ return this;
+ }, "pause"),
+ stop: /* @__PURE__ */ __name(function stop() {
+ var _p = this._private;
+ _p.playing = false;
+ _p.started = false;
+ _p.stopped = true;
+ return this;
+ }, "stop"),
+ rewind: /* @__PURE__ */ __name(function rewind() {
+ return this.progress(0);
+ }, "rewind"),
+ fastforward: /* @__PURE__ */ __name(function fastforward() {
+ return this.progress(1);
+ }, "fastforward"),
+ time: /* @__PURE__ */ __name(function time3(t4) {
+ var _p = this._private;
+ if (t4 === void 0) {
+ return _p.progress * _p.duration;
+ } else {
+ return this.progress(t4 / _p.duration);
+ }
+ }, "time"),
+ progress: /* @__PURE__ */ __name(function progress(p3) {
+ var _p = this._private;
+ var wasPlaying = _p.playing;
+ if (p3 === void 0) {
+ return _p.progress;
+ } else {
+ if (wasPlaying) {
+ this.pause();
+ }
+ _p.progress = p3;
+ _p.started = false;
+ if (wasPlaying) {
+ this.play();
+ }
+ }
+ return this;
+ }, "progress"),
+ completed: /* @__PURE__ */ __name(function completed() {
+ return this._private.progress === 1;
+ }, "completed"),
+ reverse: /* @__PURE__ */ __name(function reverse() {
+ var _p = this._private;
+ var wasPlaying = _p.playing;
+ if (wasPlaying) {
+ this.pause();
+ }
+ _p.progress = 1 - _p.progress;
+ _p.started = false;
+ var swap = /* @__PURE__ */ __name(function swap2(a2, b2) {
+ var _pa = _p[a2];
+ if (_pa == null) {
+ return;
+ }
+ _p[a2] = _p[b2];
+ _p[b2] = _pa;
+ }, "swap");
+ swap("zoom", "startZoom");
+ swap("pan", "startPan");
+ swap("position", "startPosition");
+ if (_p.style) {
+ for (var i2 = 0; i2 < _p.style.length; i2++) {
+ var prop = _p.style[i2];
+ var name = prop.name;
+ var startStyleProp = _p.startStyle[name];
+ _p.startStyle[name] = prop;
+ _p.style[i2] = startStyleProp;
+ }
+ }
+ if (wasPlaying) {
+ this.play();
+ }
+ return this;
+ }, "reverse"),
+ promise: /* @__PURE__ */ __name(function promise3(type3) {
+ var _p = this._private;
+ var arr;
+ switch (type3) {
+ case "frame":
+ arr = _p.frames;
+ break;
+ default:
+ case "complete":
+ case "completed":
+ arr = _p.completes;
+ }
+ return new Promise$1(function(resolve3, reject3) {
+ arr.push(function() {
+ resolve3();
+ });
+ });
+ }, "promise")
+ });
+ anifn.complete = anifn.completed;
+ anifn.run = anifn.play;
+ anifn.running = anifn.playing;
+ define$3 = {
+ animated: /* @__PURE__ */ __name(function animated() {
+ return /* @__PURE__ */ __name(function animatedImpl() {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return false;
+ }
+ var ele = all[0];
+ if (ele) {
+ return ele._private.animation.current.length > 0;
+ }
+ }, "animatedImpl");
+ }, "animated"),
+ // animated
+ clearQueue: /* @__PURE__ */ __name(function clearQueue() {
+ return /* @__PURE__ */ __name(function clearQueueImpl() {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ for (var i2 = 0; i2 < all.length; i2++) {
+ var ele = all[i2];
+ ele._private.animation.queue = [];
+ }
+ return this;
+ }, "clearQueueImpl");
+ }, "clearQueue"),
+ // clearQueue
+ delay: /* @__PURE__ */ __name(function delay() {
+ return /* @__PURE__ */ __name(function delayImpl(time4, complete) {
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ return this.animate({
+ delay: time4,
+ duration: time4,
+ complete
+ });
+ }, "delayImpl");
+ }, "delay"),
+ // delay
+ delayAnimation: /* @__PURE__ */ __name(function delayAnimation() {
+ return /* @__PURE__ */ __name(function delayAnimationImpl(time4, complete) {
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ return this.animation({
+ delay: time4,
+ duration: time4,
+ complete
+ });
+ }, "delayAnimationImpl");
+ }, "delayAnimation"),
+ // delay
+ animation: /* @__PURE__ */ __name(function animation() {
+ return /* @__PURE__ */ __name(function animationImpl(properties, params) {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ var isCore = !selfIsArrayLike;
+ var isEles = !isCore;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var style3 = cy.style();
+ properties = extend2({}, properties, params);
+ var propertiesEmpty = Object.keys(properties).length === 0;
+ if (propertiesEmpty) {
+ return new Animation(all[0], properties);
+ }
+ if (properties.duration === void 0) {
+ properties.duration = 400;
+ }
+ switch (properties.duration) {
+ case "slow":
+ properties.duration = 600;
+ break;
+ case "fast":
+ properties.duration = 200;
+ break;
+ }
+ if (isEles) {
+ properties.style = style3.getPropsList(properties.style || properties.css);
+ properties.css = void 0;
+ }
+ if (isEles && properties.renderedPosition != null) {
+ var rpos = properties.renderedPosition;
+ var pan2 = cy.pan();
+ var zoom2 = cy.zoom();
+ properties.position = renderedToModelPosition(rpos, zoom2, pan2);
+ }
+ if (isCore && properties.panBy != null) {
+ var panBy2 = properties.panBy;
+ var cyPan = cy.pan();
+ properties.pan = {
+ x: cyPan.x + panBy2.x,
+ y: cyPan.y + panBy2.y
+ };
+ }
+ var center4 = properties.center || properties.centre;
+ if (isCore && center4 != null) {
+ var centerPan = cy.getCenterPan(center4.eles, properties.zoom);
+ if (centerPan != null) {
+ properties.pan = centerPan;
}
- };
- _2.gc = function lp() {
- return this.a.i;
- };
- _2.pd = function np() {
- return new Bp(this.a);
- };
- mdb(Zhe, "HashBiMap/Inverse", 610);
- bcb(1008, 534, aie, op);
- _2.Nd = function pp(a) {
- return new qp(this, a);
- };
- mdb(Zhe, "HashBiMap/Inverse/1", 1008);
- bcb(1009, 345, kie, qp);
- _2.cd = function rp() {
- return this.a.i;
- };
- _2.dd = function sp() {
- return this.a.g;
- };
- _2.ed = function tp(a) {
- var b, c2, d;
- d = this.a.g;
- b = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
- if (b == this.a.a && (PD(a) === PD(d) || a != null && pb(a, d))) {
- return a;
- }
- Nb(!uo(this.b.a.a, a, b), a);
- mo(this.b.a.a, this.a);
- c2 = new $o(a, b, this.a.i, this.a.f);
- this.a = c2;
- po(this.b.a.a, c2, null);
- this.b.b = this.b.a.a.g;
- return d;
- };
- mdb(Zhe, "HashBiMap/Inverse/1/InverseEntry", 1009);
- bcb(611, 532, fie, up);
- _2.Kc = function vp() {
- return new xp(this.a.a);
- };
- _2.Mc = function wp(a) {
- var b;
- b = vo(this.a.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
- if (!b) {
- return false;
- } else {
- mo(this.a.a, b);
- return true;
+ }
+ if (isCore && properties.fit != null) {
+ var fit2 = properties.fit;
+ var fitVp = cy.getFitViewport(fit2.eles || fit2.boundingBox, fit2.padding);
+ if (fitVp != null) {
+ properties.pan = fitVp.pan;
+ properties.zoom = fitVp.zoom;
}
- };
- mdb(Zhe, "HashBiMap/Inverse/InverseKeySet", 611);
- bcb(1007, 534, aie, xp);
- _2.Nd = function yp(a) {
- return a.i;
- };
- mdb(Zhe, "HashBiMap/Inverse/InverseKeySet/1", 1007);
- bcb(1010, 1, {}, zp);
- _2.Od = function Ap(a, b) {
- hp(this.a, a, b);
- };
- mdb(Zhe, "HashBiMap/Inverse/lambda$0$Type", 1010);
- bcb(609, 532, fie, Bp);
- _2.Kc = function Cp() {
- return new Ep(this.a);
- };
- _2.Mc = function Dp(a) {
- var b;
- b = uo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
- if (!b) {
- return false;
+ }
+ if (isCore && plainObject(properties.zoom)) {
+ var vp = cy.getZoomedViewport(properties.zoom);
+ if (vp != null) {
+ if (vp.zoomed) {
+ properties.zoom = vp.zoom;
+ }
+ if (vp.panned) {
+ properties.pan = vp.pan;
+ }
} else {
- mo(this.a, b);
- b.e = null;
- b.c = null;
- return true;
- }
- };
- mdb(Zhe, "HashBiMap/KeySet", 609);
- bcb(1006, 534, aie, Ep);
- _2.Nd = function Fp(a) {
- return a.g;
- };
- mdb(Zhe, "HashBiMap/KeySet/1", 1006);
- bcb(1093, 619, _he);
- mdb(Zhe, "HashMultimapGwtSerializationDependencies", 1093);
- bcb(265, 1093, _he, Hp);
- _2.hc = function Ip() {
- return new Uqb(Cv(this.a));
- };
- _2.gd = function Jp() {
- return new Uqb(Cv(this.a));
- };
- _2.a = 2;
- mdb(Zhe, "HashMultimap", 265);
- bcb(1999, 152, yie);
- _2.Hc = function Mp(a) {
- return this.Pd().Hc(a);
- };
- _2.dc = function Np() {
- return this.Pd().dc();
- };
- _2.gc = function Op() {
- return this.Pd().gc();
- };
- mdb(Zhe, "ImmutableAsList", 1999);
- bcb(1931, 715, Aie);
- _2.Ld = function Qp() {
- return Ql(), new oy(this.a);
- };
- _2.Cc = function Rp() {
- return Ql(), new oy(this.a);
- };
- _2.pd = function Sp() {
- return Ql(), new oy(this.a);
- };
- mdb(Zhe, "ImmutableBiMap", 1931);
- bcb(1977, 1, {});
- mdb(Zhe, "ImmutableCollection/Builder", 1977);
- bcb(1022, 703, Cie, Tp);
- mdb(Zhe, "ImmutableEnumSet", 1022);
- bcb(969, 386, $he, Vp);
- _2.Xb = function Wp(a) {
- return this.a.Xb(a);
- };
- mdb(Zhe, "ImmutableList/1", 969);
- bcb(968, 1977, {}, Xp);
- mdb(Zhe, "ImmutableList/Builder", 968);
- bcb(614, 198, Yhe, Yp);
- _2.Ob = function Zp() {
- return this.a.Ob();
- };
- _2.Pb = function $p() {
- return BD(this.a.Pb(), 42).cd();
- };
- mdb(Zhe, "ImmutableMap/1", 614);
- bcb(1041, 1, {}, _p);
- _2.Kb = function aq(a) {
- return BD(a, 42).cd();
- };
- mdb(Zhe, "ImmutableMap/2methodref$getKey$Type", 1041);
- bcb(1040, 1, {}, cq);
- mdb(Zhe, "ImmutableMap/Builder", 1040);
- bcb(2e3, 1981, Cie);
- _2.Kc = function gq() {
- var a;
- return a = Wm(this.a).Ed(), new Yp(a);
- };
- _2.Dd = function dq() {
- return new Fq(this);
- };
- _2.Jc = function eq2(a) {
- var b, c2;
- Qb(a);
- c2 = this.gc();
- for (b = 0; b < c2; b++) {
- a.td(BD(Rl(Wm(this.a)).Xb(b), 42).cd());
+ properties.zoom = null;
}
- };
- _2.Ed = function fq() {
- var a;
- return (a = this.c, !a ? this.c = new Fq(this) : a).Ed();
- };
- _2.Nc = function hq() {
- return Zj(this.gc(), 1296, new Dq(this));
- };
- mdb(Zhe, "IndexedImmutableSet", 2e3);
- bcb(1180, 2e3, Cie, jq);
- _2.Kc = function nq() {
- var a;
- return a = Wm(this.a).Ed(), new Yp(a);
- };
- _2.Hc = function kq(a) {
- return this.a._b(a);
- };
- _2.Jc = function lq(a) {
- Qb(a);
- stb(this.a, new qq(a));
- };
- _2.Ed = function mq() {
- var a;
- return a = Wm(this.a).Ed(), new Yp(a);
- };
- _2.gc = function oq() {
- return this.a.gc();
- };
- _2.Nc = function pq() {
- return $j(Wm(this.a).Nc(), new _p());
- };
- mdb(Zhe, "ImmutableMapKeySet", 1180);
- bcb(1181, 1, {}, qq);
- _2.Od = function rq(a, b) {
- Ql();
- this.a.td(a);
- };
- mdb(Zhe, "ImmutableMapKeySet/lambda$0$Type", 1181);
- bcb(1178, 1980, xie, sq);
- _2.Kc = function vq() {
- return new Aq(this);
- };
- _2.Hc = function tq(a) {
- return a != null && jr(new Aq(this), a);
- };
- _2.Ed = function uq() {
- return new Aq(this);
- };
- _2.gc = function wq() {
- return this.a.gc();
- };
- _2.Nc = function xq() {
- return $j(Wm(this.a).Nc(), new yq());
- };
- mdb(Zhe, "ImmutableMapValues", 1178);
- bcb(1179, 1, {}, yq);
- _2.Kb = function zq(a) {
- return BD(a, 42).dd();
- };
- mdb(Zhe, "ImmutableMapValues/0methodref$getValue$Type", 1179);
- bcb(626, 198, Yhe, Aq);
- _2.Ob = function Bq() {
- return this.a.Ob();
- };
- _2.Pb = function Cq() {
- return BD(this.a.Pb(), 42).dd();
- };
- mdb(Zhe, "ImmutableMapValues/1", 626);
- bcb(1182, 1, {}, Dq);
- _2.ld = function Eq(a) {
- return iq(this.a, a);
- };
- mdb(Zhe, "IndexedImmutableSet/0methodref$get$Type", 1182);
- bcb(752, 1999, yie, Fq);
- _2.Pd = function Gq() {
- return this.a;
- };
- _2.Xb = function Hq(a) {
- return iq(this.a, a);
- };
- _2.gc = function Iq() {
- return this.a.a.gc();
- };
- mdb(Zhe, "IndexedImmutableSet/1", 752);
- bcb(44, 1, {}, Sq);
- _2.Kb = function Tq(a) {
- return BD(a, 20).Kc();
- };
- _2.Fb = function Uq(a) {
- return this === a;
- };
- mdb(Zhe, "Iterables/10", 44);
- bcb(1042, 537, vie, Wq);
- _2.Jc = function Xq(a) {
- Qb(a);
- this.b.Jc(new $q(this.a, a));
- };
- _2.Kc = function Yq() {
- return Vq(this);
- };
- mdb(Zhe, "Iterables/4", 1042);
- bcb(1043, 1, qie, $q);
- _2.td = function _q(a) {
- Zq(this.b, this.a, a);
- };
- mdb(Zhe, "Iterables/4/lambda$0$Type", 1043);
- bcb(1044, 537, vie, ar);
- _2.Jc = function br(a) {
- Qb(a);
- reb(this.a, new dr(a, this.b));
- };
- _2.Kc = function cr() {
- return ur(new Fyd(this.a), this.b);
- };
- mdb(Zhe, "Iterables/5", 1044);
- bcb(1045, 1, qie, dr);
- _2.td = function er2(a) {
- this.a.td(Gfd(a));
- };
- mdb(Zhe, "Iterables/5/lambda$0$Type", 1045);
- bcb(1071, 198, Yhe, wr);
- _2.Ob = function xr() {
- return this.a.Ob();
- };
- _2.Pb = function yr() {
- return this.a.Pb();
- };
- mdb(Zhe, "Iterators/1", 1071);
- bcb(1072, 699, Yhe, zr);
- _2.Yb = function Ar() {
- var a;
- while (this.b.Ob()) {
- a = this.b.Pb();
- if (this.a.Lb(a)) {
- return a;
+ }
+ return new Animation(all[0], properties);
+ }, "animationImpl");
+ }, "animation"),
+ // animate
+ animate: /* @__PURE__ */ __name(function animate() {
+ return /* @__PURE__ */ __name(function animateImpl(properties, params) {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ if (params) {
+ properties = extend2({}, properties, params);
+ }
+ for (var i2 = 0; i2 < all.length; i2++) {
+ var ele = all[i2];
+ var queue = ele.animated() && (properties.queue === void 0 || properties.queue);
+ var ani = ele.animation(properties, queue ? {
+ queue: true
+ } : void 0);
+ ani.play();
+ }
+ return this;
+ }, "animateImpl");
+ }, "animate"),
+ // animate
+ stop: /* @__PURE__ */ __name(function stop2() {
+ return /* @__PURE__ */ __name(function stopImpl(clearQueue2, jumpToEnd) {
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var cy = this._private.cy || this;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ for (var i2 = 0; i2 < all.length; i2++) {
+ var ele = all[i2];
+ var _p = ele._private;
+ var anis = _p.animation.current;
+ for (var j2 = 0; j2 < anis.length; j2++) {
+ var ani = anis[j2];
+ var ani_p = ani._private;
+ if (jumpToEnd) {
+ ani_p.duration = 0;
}
}
- return this.e = 2, null;
- };
- mdb(Zhe, "Iterators/5", 1072);
- bcb(487, 1, aie);
- _2.Nb = function Cr(a) {
- Rrb(this, a);
- };
- _2.Ob = function Dr() {
- return this.b.Ob();
- };
- _2.Pb = function Er() {
- return this.Qd(this.b.Pb());
- };
- _2.Qb = function Fr() {
- this.b.Qb();
- };
- mdb(Zhe, "TransformedIterator", 487);
- bcb(1073, 487, aie, Gr);
- _2.Qd = function Hr(a) {
- return this.a.Kb(a);
- };
- mdb(Zhe, "Iterators/6", 1073);
- bcb(717, 198, Yhe, Ir);
- _2.Ob = function Jr() {
- return !this.a;
- };
- _2.Pb = function Kr() {
- if (this.a) {
- throw vbb(new utb());
+ if (clearQueue2) {
+ _p.animation.queue = [];
}
- this.a = true;
- return this.b;
- };
- _2.a = false;
- mdb(Zhe, "Iterators/9", 717);
- bcb(1070, 386, $he, Nr);
- _2.Xb = function Or(a) {
- return this.a[this.b + a];
- };
- _2.b = 0;
- var Lr;
- mdb(Zhe, "Iterators/ArrayItr", 1070);
- bcb(39, 1, { 39: 1, 47: 1 }, Sr);
- _2.Nb = function Tr(a) {
- Rrb(this, a);
- };
- _2.Ob = function Ur() {
- return Qr(this);
- };
- _2.Pb = function Vr() {
- return Rr(this);
- };
- _2.Qb = function Wr() {
- Vb(!!this.c);
- this.c.Qb();
- this.c = null;
- };
- mdb(Zhe, "Iterators/ConcatenatedIterator", 39);
- bcb(22, 1, { 3: 1, 35: 1, 22: 1 });
- _2.wd = function _r(a) {
- return Xr(this, BD(a, 22));
- };
- _2.Fb = function bs(a) {
- return this === a;
- };
- _2.Hb = function cs() {
- return FCb(this);
- };
- _2.Ib = function ds() {
- return Zr(this);
- };
- _2.g = 0;
- var CI = mdb(Phe, "Enum", 22);
- bcb(538, 22, { 538: 1, 3: 1, 35: 1, 22: 1, 47: 1 }, is);
- _2.Nb = function js(a) {
- Rrb(this, a);
- };
- _2.Ob = function ks() {
- return false;
- };
- _2.Pb = function ls() {
- throw vbb(new utb());
- };
- _2.Qb = function ms() {
- Vb(false);
- };
- var gs;
- var yG = ndb(Zhe, "Iterators/EmptyModifiableIterator", 538, CI, os, ns);
- var ps;
- bcb(1834, 619, _he);
- mdb(Zhe, "LinkedHashMultimapGwtSerializationDependencies", 1834);
- bcb(1835, 1834, _he, ss);
- _2.hc = function us() {
- return new Asb(Cv(this.b));
- };
- _2.$b = function ts() {
- Nc(this);
- As(this.a, this.a);
- };
- _2.gd = function vs() {
- return new Asb(Cv(this.b));
- };
- _2.ic = function ws(a) {
- return new Ss(this, a, this.b);
- };
- _2.kc = function xs() {
- return new Hs(this);
- };
- _2.lc = function ys() {
- var a;
- return new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17);
- };
- _2.ec = function zs() {
- var a;
- return a = this.i, !a ? this.i = new zf(this, this.c) : a;
- };
- _2.nc = function Cs() {
- return new Ov(new Hs(this));
- };
- _2.oc = function Ds() {
- var a;
- return $j(new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17), new Es());
- };
- _2.b = 2;
- mdb(Zhe, "LinkedHashMultimap", 1835);
- bcb(1838, 1, {}, Es);
- _2.Kb = function Fs(a) {
- return BD(a, 42).dd();
- };
- mdb(Zhe, "LinkedHashMultimap/0methodref$getValue$Type", 1838);
- bcb(824, 1, aie, Hs);
- _2.Nb = function Is(a) {
- Rrb(this, a);
- };
- _2.Pb = function Ks() {
- return Gs(this);
- };
- _2.Ob = function Js() {
- return this.a != this.b.a;
- };
- _2.Qb = function Ls2() {
- Vb(!!this.c);
- Gc(this.b, this.c.g, this.c.i);
- this.c = null;
- };
- mdb(Zhe, "LinkedHashMultimap/1", 824);
- bcb(330, 238, { 345: 1, 238: 1, 330: 1, 2020: 1, 3: 1, 42: 1 }, Ms);
- _2.Rd = function Ns() {
- return this.f;
- };
- _2.Sd = function Os(a) {
- this.c = a;
- };
- _2.Td = function Ps(a) {
- this.f = a;
- };
- _2.d = 0;
- var BG = mdb(Zhe, "LinkedHashMultimap/ValueEntry", 330);
- bcb(1836, 1970, { 2020: 1, 20: 1, 28: 1, 14: 1, 21: 1 }, Ss);
- _2.Fc = function Ts(a) {
- var b, c2, d, e, f2;
- f2 = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
- b = f2 & this.b.length - 1;
- e = this.b[b];
- for (c2 = e; c2; c2 = c2.a) {
- if (c2.d == f2 && Hb(c2.i, a)) {
- return false;
- }
+ if (!jumpToEnd) {
+ _p.animation.current = [];
}
- d = new Ms(this.c, a, f2, e);
- Bs(this.d, d);
- d.f = this;
- this.d = d;
- As(this.g.a.b, d);
- As(d, this.g.a);
- this.b[b] = d;
- ++this.f;
- ++this.e;
- Qs(this);
+ }
+ cy.notify("draw");
+ return this;
+ }, "stopImpl");
+ }, "stop")
+ // stop
+ };
+ isArray2 = Array.isArray;
+ isArray_1 = isArray2;
+ reIsDeepProp2 = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
+ reIsPlainProp2 = /^\w*$/;
+ __name(isKey2, "isKey");
+ _isKey = isKey2;
+ asyncTag2 = "[object AsyncFunction]";
+ funcTag4 = "[object Function]";
+ genTag3 = "[object GeneratorFunction]";
+ proxyTag2 = "[object Proxy]";
+ __name(isFunction2, "isFunction");
+ isFunction_1 = isFunction2;
+ coreJsData2 = _root["__core-js_shared__"];
+ _coreJsData = coreJsData2;
+ maskSrcKey2 = function() {
+ var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || "");
+ return uid ? "Symbol(src)_1." + uid : "";
+ }();
+ __name(isMasked2, "isMasked");
+ _isMasked = isMasked2;
+ funcProto$1 = Function.prototype;
+ funcToString$1 = funcProto$1.toString;
+ __name(toSource2, "toSource");
+ _toSource = toSource2;
+ reRegExpChar2 = /[\\^$.*+?()[\]{}|]/g;
+ reIsHostCtor2 = /^\[object .+?Constructor\]$/;
+ funcProto4 = Function.prototype;
+ objectProto$3 = Object.prototype;
+ funcToString4 = funcProto4.toString;
+ hasOwnProperty$3 = objectProto$3.hasOwnProperty;
+ reIsNative2 = RegExp(
+ "^" + funcToString4.call(hasOwnProperty$3).replace(reRegExpChar2, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
+ );
+ __name(baseIsNative2, "baseIsNative");
+ _baseIsNative = baseIsNative2;
+ __name(getValue$1, "getValue$1");
+ _getValue = getValue$1;
+ __name(getNative2, "getNative");
+ _getNative = getNative2;
+ nativeCreate2 = _getNative(Object, "create");
+ _nativeCreate = nativeCreate2;
+ __name(hashClear2, "hashClear");
+ _hashClear = hashClear2;
+ __name(hashDelete2, "hashDelete");
+ _hashDelete = hashDelete2;
+ HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
+ objectProto$2 = Object.prototype;
+ hasOwnProperty$2 = objectProto$2.hasOwnProperty;
+ __name(hashGet2, "hashGet");
+ _hashGet = hashGet2;
+ objectProto$1 = Object.prototype;
+ hasOwnProperty$1 = objectProto$1.hasOwnProperty;
+ __name(hashHas2, "hashHas");
+ _hashHas = hashHas2;
+ HASH_UNDEFINED4 = "__lodash_hash_undefined__";
+ __name(hashSet2, "hashSet");
+ _hashSet = hashSet2;
+ __name(Hash2, "Hash");
+ Hash2.prototype.clear = _hashClear;
+ Hash2.prototype["delete"] = _hashDelete;
+ Hash2.prototype.get = _hashGet;
+ Hash2.prototype.has = _hashHas;
+ Hash2.prototype.set = _hashSet;
+ _Hash = Hash2;
+ __name(listCacheClear2, "listCacheClear");
+ _listCacheClear = listCacheClear2;
+ __name(eq2, "eq");
+ eq_1 = eq2;
+ __name(assocIndexOf2, "assocIndexOf");
+ _assocIndexOf = assocIndexOf2;
+ arrayProto2 = Array.prototype;
+ splice2 = arrayProto2.splice;
+ __name(listCacheDelete2, "listCacheDelete");
+ _listCacheDelete = listCacheDelete2;
+ __name(listCacheGet2, "listCacheGet");
+ _listCacheGet = listCacheGet2;
+ __name(listCacheHas2, "listCacheHas");
+ _listCacheHas = listCacheHas2;
+ __name(listCacheSet2, "listCacheSet");
+ _listCacheSet = listCacheSet2;
+ __name(ListCache2, "ListCache");
+ ListCache2.prototype.clear = _listCacheClear;
+ ListCache2.prototype["delete"] = _listCacheDelete;
+ ListCache2.prototype.get = _listCacheGet;
+ ListCache2.prototype.has = _listCacheHas;
+ ListCache2.prototype.set = _listCacheSet;
+ _ListCache = ListCache2;
+ Map$1 = _getNative(_root, "Map");
+ _Map = Map$1;
+ __name(mapCacheClear2, "mapCacheClear");
+ _mapCacheClear = mapCacheClear2;
+ __name(isKeyable2, "isKeyable");
+ _isKeyable = isKeyable2;
+ __name(getMapData2, "getMapData");
+ _getMapData = getMapData2;
+ __name(mapCacheDelete2, "mapCacheDelete");
+ _mapCacheDelete = mapCacheDelete2;
+ __name(mapCacheGet2, "mapCacheGet");
+ _mapCacheGet = mapCacheGet2;
+ __name(mapCacheHas2, "mapCacheHas");
+ _mapCacheHas = mapCacheHas2;
+ __name(mapCacheSet2, "mapCacheSet");
+ _mapCacheSet = mapCacheSet2;
+ __name(MapCache2, "MapCache");
+ MapCache2.prototype.clear = _mapCacheClear;
+ MapCache2.prototype["delete"] = _mapCacheDelete;
+ MapCache2.prototype.get = _mapCacheGet;
+ MapCache2.prototype.has = _mapCacheHas;
+ MapCache2.prototype.set = _mapCacheSet;
+ _MapCache = MapCache2;
+ FUNC_ERROR_TEXT3 = "Expected a function";
+ __name(memoize3, "memoize");
+ memoize3.Cache = _MapCache;
+ memoize_1 = memoize3;
+ MAX_MEMOIZE_SIZE2 = 500;
+ __name(memoizeCapped2, "memoizeCapped");
+ _memoizeCapped = memoizeCapped2;
+ rePropName2 = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
+ reEscapeChar2 = /\\(\\)?/g;
+ stringToPath2 = _memoizeCapped(function(string3) {
+ var result = [];
+ if (string3.charCodeAt(0) === 46) {
+ result.push("");
+ }
+ string3.replace(rePropName2, function(match2, number7, quote, subString) {
+ result.push(quote ? subString.replace(reEscapeChar2, "$1") : number7 || match2);
+ });
+ return result;
+ });
+ _stringToPath = stringToPath2;
+ __name(arrayMap2, "arrayMap");
+ _arrayMap = arrayMap2;
+ INFINITY$1 = 1 / 0;
+ symbolProto4 = _Symbol ? _Symbol.prototype : void 0;
+ symbolToString2 = symbolProto4 ? symbolProto4.toString : void 0;
+ __name(baseToString2, "baseToString");
+ _baseToString = baseToString2;
+ __name(toString$1, "toString$1");
+ toString_1 = toString$1;
+ __name(castPath2, "castPath");
+ _castPath = castPath2;
+ INFINITY5 = 1 / 0;
+ __name(toKey2, "toKey");
+ _toKey = toKey2;
+ __name(baseGet2, "baseGet");
+ _baseGet = baseGet2;
+ __name(get5, "get");
+ get_1 = get5;
+ defineProperty2 = function() {
+ try {
+ var func = _getNative(Object, "defineProperty");
+ func({}, "", {});
+ return func;
+ } catch (e3) {
+ }
+ }();
+ _defineProperty = defineProperty2;
+ __name(baseAssignValue2, "baseAssignValue");
+ _baseAssignValue = baseAssignValue2;
+ objectProto22 = Object.prototype;
+ hasOwnProperty19 = objectProto22.hasOwnProperty;
+ __name(assignValue2, "assignValue");
+ _assignValue = assignValue2;
+ MAX_SAFE_INTEGER3 = 9007199254740991;
+ reIsUint2 = /^(?:0|[1-9]\d*)$/;
+ __name(isIndex2, "isIndex");
+ _isIndex = isIndex2;
+ __name(baseSet2, "baseSet");
+ _baseSet = baseSet2;
+ __name(set4, "set");
+ set_1 = set4;
+ __name(copyArray3, "copyArray");
+ _copyArray = copyArray3;
+ __name(toPath, "toPath");
+ toPath_1 = toPath;
+ define$2 = {
+ // access data field
+ data: /* @__PURE__ */ __name(function data(params) {
+ var defaults4 = {
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: false,
+ allowSetting: false,
+ allowGetting: false,
+ settingEvent: "data",
+ settingTriggersEvent: false,
+ triggerFnName: "trigger",
+ immutableKeys: {},
+ // key => true if immutable
+ updateStyle: false,
+ beforeGet: /* @__PURE__ */ __name(function beforeGet2(self2) {
+ }, "beforeGet"),
+ beforeSet: /* @__PURE__ */ __name(function beforeSet3(self2, obj) {
+ }, "beforeSet"),
+ onSet: /* @__PURE__ */ __name(function onSet3(self2) {
+ }, "onSet"),
+ canSet: /* @__PURE__ */ __name(function canSet2(self2) {
return true;
- };
- _2.$b = function Us() {
- var a, b;
- Alb(this.b, null);
- this.f = 0;
- for (a = this.a; a != this; a = a.Rd()) {
- b = BD(a, 330);
- As(b.b, b.e);
- }
- this.a = this;
- this.d = this;
- ++this.e;
- };
- _2.Hc = function Vs(a) {
- var b, c2;
- c2 = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
- for (b = this.b[c2 & this.b.length - 1]; b; b = b.a) {
- if (b.d == c2 && Hb(b.i, a)) {
- return true;
+ }, "canSet")
+ };
+ params = extend2({}, defaults4, params);
+ return /* @__PURE__ */ __name(function dataImpl(name, value2) {
+ var p3 = params;
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ var single = selfIsArrayLike ? self2[0] : self2;
+ if (string(name)) {
+ var isPathLike = name.indexOf(".") !== -1;
+ var path4 = isPathLike && toPath_1(name);
+ if (p3.allowGetting && value2 === void 0) {
+ var ret;
+ if (single) {
+ p3.beforeGet(single);
+ if (path4 && single._private[p3.field][name] === void 0) {
+ ret = get_1(single._private[p3.field], path4);
+ } else {
+ ret = single._private[p3.field][name];
+ }
}
- }
- return false;
- };
- _2.Jc = function Ws(a) {
- var b;
- Qb(a);
- for (b = this.a; b != this; b = b.Rd()) {
- a.td(BD(b, 330).i);
- }
- };
- _2.Rd = function Xs() {
- return this.a;
- };
- _2.Kc = function Ys() {
- return new ct(this);
- };
- _2.Mc = function Zs(a) {
- return Rs(this, a);
- };
- _2.Sd = function $s(a) {
- this.d = a;
- };
- _2.Td = function _s(a) {
- this.a = a;
- };
- _2.gc = function at() {
- return this.f;
- };
- _2.e = 0;
- _2.f = 0;
- mdb(Zhe, "LinkedHashMultimap/ValueSet", 1836);
- bcb(1837, 1, aie, ct);
- _2.Nb = function dt(a) {
- Rrb(this, a);
- };
- _2.Ob = function et() {
- return bt(this), this.b != this.c;
- };
- _2.Pb = function ft() {
- var a, b;
- bt(this);
- if (this.b == this.c) {
- throw vbb(new utb());
- }
- a = BD(this.b, 330);
- b = a.i;
- this.d = a;
- this.b = a.f;
- return b;
- };
- _2.Qb = function gt() {
- bt(this);
- Vb(!!this.d);
- Rs(this.c, this.d.i);
- this.a = this.c.e;
- this.d = null;
- };
- _2.a = 0;
- mdb(Zhe, "LinkedHashMultimap/ValueSet/1", 1837);
- bcb(766, 1986, _he, mt);
- _2.Zb = function nt() {
- var a;
- return a = this.f, !a ? this.f = new jw(this) : a;
- };
- _2.Fb = function tt(a) {
- return hw(this, a);
- };
- _2.cc = function ut(a) {
- return new bu(this, a);
- };
- _2.fc = function xt(a) {
- return kt(this, a);
- };
- _2.$b = function pt() {
- it(this);
- };
- _2._b = function qt(a) {
- return jt(this, a);
- };
- _2.ac = function rt() {
- return new jw(this);
- };
- _2.bc = function st() {
- return new eu(this);
- };
- _2.qc = function vt(a) {
- return new bu(this, a);
- };
- _2.dc = function wt() {
- return !this.a;
- };
- _2.rc = function yt(a) {
- return kt(this, a);
- };
- _2.gc = function zt() {
- return this.d;
- };
- _2.c = 0;
- _2.d = 0;
- mdb(Zhe, "LinkedListMultimap", 766);
- bcb(52, 28, Lie);
- _2.ad = function Pt(a) {
- ktb(this, a);
- };
- _2.Nc = function Qt() {
- return new Kub(this, 16);
- };
- _2.Vc = function Ct(a, b) {
- throw vbb(new cgb("Add not supported on this list"));
- };
- _2.Fc = function Dt(a) {
- this.Vc(this.gc(), a);
- return true;
- };
- _2.Wc = function Et(a, b) {
- var c2, d, e;
- uCb(b);
- c2 = false;
- for (e = b.Kc(); e.Ob(); ) {
- d = e.Pb();
- this.Vc(a++, d);
- c2 = true;
- }
- return c2;
- };
- _2.$b = function Ft() {
- this.Ud(0, this.gc());
- };
- _2.Fb = function Gt(a) {
- return At(this, a);
- };
- _2.Hb = function Ht() {
- return qmb(this);
- };
- _2.Xc = function It(a) {
- return Bt(this, a);
- };
- _2.Kc = function Jt() {
- return new vib(this);
- };
- _2.Yc = function Kt() {
- return this.Zc(0);
- };
- _2.Zc = function Lt(a) {
- return new Bib(this, a);
- };
- _2.$c = function Mt(a) {
- throw vbb(new cgb("Remove not supported on this list"));
- };
- _2.Ud = function Nt(a, b) {
- var c2, d;
- d = this.Zc(a);
- for (c2 = a; c2 < b; ++c2) {
- d.Pb();
- d.Qb();
- }
- };
- _2._c = function Ot(a, b) {
- throw vbb(new cgb("Set not supported on this list"));
- };
- _2.bd = function Rt(a, b) {
- return new Jib(this, a, b);
- };
- _2.j = 0;
- mdb(bie, "AbstractList", 52);
- bcb(1964, 52, Lie);
- _2.Vc = function Wt(a, b) {
- St(this, a, b);
- };
- _2.Wc = function Xt(a, b) {
- return Tt(this, a, b);
- };
- _2.Xb = function Yt(a) {
- return Ut(this, a);
- };
- _2.Kc = function Zt() {
- return this.Zc(0);
- };
- _2.$c = function $t(a) {
- return Vt(this, a);
- };
- _2._c = function _t(b, c2) {
- var d, e;
- d = this.Zc(b);
- try {
- e = d.Pb();
- d.Wb(c2);
- return e;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 109)) {
- throw vbb(new qcb("Can't set element " + b));
- } else
- throw vbb(a);
- }
- };
- mdb(bie, "AbstractSequentialList", 1964);
- bcb(636, 1964, Lie, bu);
- _2.Zc = function cu(a) {
- return au(this, a);
- };
- _2.gc = function du() {
- var a;
- a = BD(Ohb(this.a.b, this.b), 283);
- return !a ? 0 : a.a;
- };
- mdb(Zhe, "LinkedListMultimap/1", 636);
- bcb(1297, 1970, fie, eu);
- _2.Hc = function fu(a) {
- return jt(this.a, a);
- };
- _2.Kc = function gu() {
- return new ku(this.a);
- };
- _2.Mc = function hu(a) {
- return !kt(this.a, a).a.dc();
- };
- _2.gc = function iu() {
- return Vhb(this.a.b);
- };
- mdb(Zhe, "LinkedListMultimap/1KeySetImpl", 1297);
- bcb(1296, 1, aie, ku);
- _2.Nb = function lu(a) {
- Rrb(this, a);
- };
- _2.Ob = function mu() {
- ju(this);
- return !!this.c;
- };
- _2.Pb = function nu() {
- ju(this);
- ot(this.c);
- this.a = this.c;
- Qqb(this.d, this.a.a);
- do {
- this.c = this.c.b;
- } while (!!this.c && !Qqb(this.d, this.c.a));
- return this.a.a;
- };
- _2.Qb = function ou() {
- ju(this);
- Vb(!!this.a);
- ir(new wu(this.e, this.a.a));
- this.a = null;
- this.b = this.e.c;
- };
- _2.b = 0;
- mdb(Zhe, "LinkedListMultimap/DistinctKeyIterator", 1296);
- bcb(283, 1, { 283: 1 }, pu);
- _2.a = 0;
- mdb(Zhe, "LinkedListMultimap/KeyList", 283);
- bcb(1295, 345, kie, qu);
- _2.cd = function ru() {
- return this.a;
- };
- _2.dd = function su() {
- return this.f;
- };
- _2.ed = function tu(a) {
- var b;
- b = this.f;
- this.f = a;
- return b;
- };
- mdb(Zhe, "LinkedListMultimap/Node", 1295);
- bcb(560, 1, jie, wu, xu);
- _2.Nb = function zu(a) {
- Rrb(this, a);
- };
- _2.Rb = function yu(a) {
- this.e = ht(this.f, this.b, a, this.c);
- ++this.d;
- this.a = null;
- };
- _2.Ob = function Au() {
- return !!this.c;
- };
- _2.Sb = function Bu() {
- return !!this.e;
- };
- _2.Pb = function Cu() {
- return uu(this);
- };
- _2.Tb = function Du() {
- return this.d;
- };
- _2.Ub = function Eu() {
- return vu(this);
- };
- _2.Vb = function Fu() {
- return this.d - 1;
- };
- _2.Qb = function Gu() {
- Vb(!!this.a);
- if (this.a != this.c) {
- this.e = this.a.e;
- --this.d;
- } else {
- this.c = this.a.c;
- }
- lt(this.f, this.a);
- this.a = null;
- };
- _2.Wb = function Hu(a) {
- Ub(!!this.a);
- this.a.f = a;
- };
- _2.d = 0;
- mdb(Zhe, "LinkedListMultimap/ValueForKeyIterator", 560);
- bcb(1018, 52, Lie);
- _2.Vc = function Tu(a, b) {
- this.a.Vc(a, b);
- };
- _2.Wc = function Uu(a, b) {
- return this.a.Wc(a, b);
- };
- _2.Hc = function Vu(a) {
- return this.a.Hc(a);
- };
- _2.Xb = function Wu(a) {
- return this.a.Xb(a);
- };
- _2.$c = function Xu(a) {
- return this.a.$c(a);
- };
- _2._c = function Yu(a, b) {
- return this.a._c(a, b);
- };
- _2.gc = function Zu() {
- return this.a.gc();
- };
- mdb(Zhe, "Lists/AbstractListWrapper", 1018);
- bcb(1019, 1018, Nie);
- mdb(Zhe, "Lists/RandomAccessListWrapper", 1019);
- bcb(1021, 1019, Nie, $u);
- _2.Zc = function _u(a) {
- return this.a.Zc(a);
- };
- mdb(Zhe, "Lists/1", 1021);
- bcb(131, 52, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, dv);
- _2.Vc = function ev(a, b) {
- this.a.Vc(cv(this, a), b);
- };
- _2.$b = function fv() {
- this.a.$b();
- };
- _2.Xb = function gv(a) {
- return this.a.Xb(bv(this, a));
- };
- _2.Kc = function hv() {
- return av(this, 0);
- };
- _2.Zc = function iv(a) {
- return av(this, a);
- };
- _2.$c = function jv(a) {
- return this.a.$c(bv(this, a));
- };
- _2.Ud = function kv(a, b) {
- (Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a)))).$b();
- };
- _2._c = function lv(a, b) {
- return this.a._c(bv(this, a), b);
- };
- _2.gc = function mv() {
- return this.a.gc();
- };
- _2.bd = function nv(a, b) {
- return Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a)));
- };
- mdb(Zhe, "Lists/ReverseList", 131);
- bcb(280, 131, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, ov);
- mdb(Zhe, "Lists/RandomAccessReverseList", 280);
- bcb(1020, 1, jie, qv);
- _2.Nb = function sv(a) {
- Rrb(this, a);
- };
- _2.Rb = function rv(a) {
- this.c.Rb(a);
- this.c.Ub();
- this.a = false;
- };
- _2.Ob = function tv() {
- return this.c.Sb();
- };
- _2.Sb = function uv() {
- return this.c.Ob();
- };
- _2.Pb = function vv() {
- return pv(this);
- };
- _2.Tb = function wv() {
- return cv(this.b, this.c.Tb());
- };
- _2.Ub = function xv() {
- if (!this.c.Ob()) {
- throw vbb(new utb());
- }
- this.a = true;
- return this.c.Pb();
- };
- _2.Vb = function yv() {
- return cv(this.b, this.c.Tb()) - 1;
- };
- _2.Qb = function zv() {
- Vb(this.a);
- this.c.Qb();
- this.a = false;
- };
- _2.Wb = function Av(a) {
- Ub(this.a);
- this.c.Wb(a);
- };
- _2.a = false;
- mdb(Zhe, "Lists/ReverseList/1", 1020);
- bcb(432, 487, aie, Mv);
- _2.Qd = function Nv(a) {
- return Lv(a);
- };
- mdb(Zhe, "Maps/1", 432);
- bcb(698, 487, aie, Ov);
- _2.Qd = function Pv(a) {
- return BD(a, 42).dd();
- };
- mdb(Zhe, "Maps/2", 698);
- bcb(962, 487, aie, Qv);
- _2.Qd = function Rv(a) {
- return new Wo(a, ww(this.a, a));
- };
- mdb(Zhe, "Maps/3", 962);
- bcb(959, 1971, fie, Sv);
- _2.Jc = function Tv(a) {
- mj(this.a, a);
- };
- _2.Kc = function Uv() {
- return this.a.kc();
- };
- _2.Rc = function Vv() {
- return this.a;
- };
- _2.Nc = function Wv() {
- return this.a.lc();
- };
- mdb(Zhe, "Maps/IteratorBasedAbstractMap/1", 959);
- bcb(960, 1, {}, Xv);
- _2.Od = function Yv(a, b) {
- this.a.td(a);
- };
- mdb(Zhe, "Maps/KeySet/lambda$0$Type", 960);
- bcb(958, 28, die, Zv);
- _2.$b = function $v() {
- this.a.$b();
- };
- _2.Hc = function _v(a) {
- return this.a.uc(a);
- };
- _2.Jc = function aw(a) {
- Qb(a);
- this.a.wc(new fw(a));
- };
- _2.dc = function bw() {
- return this.a.dc();
- };
- _2.Kc = function cw() {
- return new Ov(this.a.vc().Kc());
- };
- _2.Mc = function dw(b) {
- var c2, d;
- try {
- return ze(this, b, true);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 41)) {
- for (d = this.a.vc().Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 42);
- if (Hb(b, c2.dd())) {
- this.a.Bc(c2.cd());
- return true;
+ return ret;
+ } else if (p3.allowSetting && value2 !== void 0) {
+ var valid2 = !p3.immutableKeys[name];
+ if (valid2) {
+ var change2 = _defineProperty$1({}, name, value2);
+ p3.beforeSet(self2, change2);
+ for (var i2 = 0, l2 = all.length; i2 < l2; i2++) {
+ var ele = all[i2];
+ if (p3.canSet(ele)) {
+ if (path4 && single._private[p3.field][name] === void 0) {
+ set_1(ele._private[p3.field], path4, value2);
+ } else {
+ ele._private[p3.field][name] = value2;
+ }
}
}
- return false;
- } else
- throw vbb(a);
- }
- };
- _2.gc = function ew() {
- return this.a.gc();
- };
- mdb(Zhe, "Maps/Values", 958);
- bcb(961, 1, {}, fw);
- _2.Od = function gw(a, b) {
- this.a.td(b);
- };
- mdb(Zhe, "Maps/Values/lambda$0$Type", 961);
- bcb(736, 1987, cie, jw);
- _2.xc = function nw(a) {
- return this.a._b(a) ? this.a.cc(a) : null;
- };
- _2.Bc = function qw(a) {
- return this.a._b(a) ? this.a.fc(a) : null;
- };
- _2.$b = function kw() {
- this.a.$b();
- };
- _2._b = function lw(a) {
- return this.a._b(a);
- };
- _2.Ec = function mw() {
- return new sw(this);
- };
- _2.Dc = function() {
- return this.Ec();
- };
- _2.dc = function ow() {
- return this.a.dc();
- };
- _2.ec = function pw() {
- return this.a.ec();
- };
- _2.gc = function rw() {
- return this.a.ec().gc();
- };
- mdb(Zhe, "Multimaps/AsMap", 736);
- bcb(1104, 1971, fie, sw);
- _2.Kc = function tw() {
- return Bv(this.a.a.ec(), new xw(this));
- };
- _2.Rc = function uw() {
- return this.a;
- };
- _2.Mc = function vw(a) {
- var b;
- if (!Ze(this, a)) {
- return false;
- }
- b = BD(a, 42);
- iw(this.a, b.cd());
- return true;
- };
- mdb(Zhe, "Multimaps/AsMap/EntrySet", 1104);
- bcb(1108, 1, {}, xw);
- _2.Kb = function yw(a) {
- return ww(this, a);
- };
- _2.Fb = function zw(a) {
- return this === a;
- };
- mdb(Zhe, "Multimaps/AsMap/EntrySet/1", 1108);
- bcb(543, 1989, { 543: 1, 835: 1, 20: 1, 28: 1, 14: 1 }, Cw);
- _2.$b = function Dw() {
- Nc(this.a);
- };
- _2.Hc = function Ew(a) {
- return Oc(this.a, a);
- };
- _2.Jc = function Fw(a) {
- Qb(a);
- reb(Pc(this.a), new Rw(a));
- };
- _2.Kc = function Gw() {
- return new Mv(Pc(this.a).a.kc());
- };
- _2.gc = function Hw() {
- return this.a.d;
- };
- _2.Nc = function Iw() {
- return $j(Pc(this.a).Nc(), new Jw());
- };
- mdb(Zhe, "Multimaps/Keys", 543);
- bcb(1106, 1, {}, Jw);
- _2.Kb = function Kw(a) {
- return BD(a, 42).cd();
- };
- mdb(Zhe, "Multimaps/Keys/0methodref$getKey$Type", 1106);
- bcb(1105, 487, aie, Lw);
- _2.Qd = function Mw(a) {
- return new Qw(BD(a, 42));
- };
- mdb(Zhe, "Multimaps/Keys/1", 1105);
- bcb(1990, 1, { 416: 1 });
- _2.Fb = function Nw(a) {
- var b;
- if (JD(a, 492)) {
- b = BD(a, 416);
- return BD(this.a.dd(), 14).gc() == BD(b.a.dd(), 14).gc() && Hb(this.a.cd(), b.a.cd());
- }
- return false;
- };
- _2.Hb = function Ow() {
- var a;
- a = this.a.cd();
- return (a == null ? 0 : tb(a)) ^ BD(this.a.dd(), 14).gc();
- };
- _2.Ib = function Pw() {
- var a, b;
- b = xfb(this.a.cd());
- a = BD(this.a.dd(), 14).gc();
- return a == 1 ? b : b + " x " + a;
- };
- mdb(Zhe, "Multisets/AbstractEntry", 1990);
- bcb(492, 1990, { 492: 1, 416: 1 }, Qw);
- mdb(Zhe, "Multimaps/Keys/1/1", 492);
- bcb(1107, 1, qie, Rw);
- _2.td = function Sw(a) {
- this.a.td(BD(a, 42).cd());
- };
- mdb(Zhe, "Multimaps/Keys/lambda$1$Type", 1107);
- bcb(1110, 1, qie, Vw);
- _2.td = function Ww(a) {
- Tw(BD(a, 416));
- };
- mdb(Zhe, "Multiset/lambda$0$Type", 1110);
- bcb(737, 1, qie, Xw);
- _2.td = function Yw(a) {
- Uw(this.a, BD(a, 416));
- };
- mdb(Zhe, "Multiset/lambda$1$Type", 737);
- bcb(1111, 1, {}, bx);
- mdb(Zhe, "Multisets/0methodref$add$Type", 1111);
- bcb(738, 1, {}, cx);
- _2.Kb = function dx(a) {
- return _w(BD(a, 416));
- };
- mdb(Zhe, "Multisets/lambda$3$Type", 738);
- bcb(2008, 1, Qhe);
- mdb(Zhe, "RangeGwtSerializationDependencies", 2008);
- bcb(514, 2008, { 169: 1, 514: 1, 3: 1, 45: 1 }, gx);
- _2.Lb = function hx(a) {
- return fx(this, BD(a, 35));
- };
- _2.Mb = function lx(a) {
- return fx(this, BD(a, 35));
- };
- _2.Fb = function jx(a) {
- var b;
- if (JD(a, 514)) {
- b = BD(a, 514);
- return Ek(this.a, b.a) && Ek(this.b, b.b);
- }
- return false;
- };
- _2.Hb = function kx() {
- return this.a.Hb() * 31 + this.b.Hb();
- };
- _2.Ib = function mx() {
- return nx(this.a, this.b);
- };
- mdb(Zhe, "Range", 514);
- bcb(778, 1999, yie, px);
- _2.Zc = function tx(a) {
- return jm(this.b, a);
- };
- _2.Pd = function qx() {
- return this.a;
- };
- _2.Xb = function rx(a) {
- return Em(this.b, a);
- };
- _2.Fd = function sx(a) {
- return jm(this.b, a);
- };
- mdb(Zhe, "RegularImmutableAsList", 778);
- bcb(646, 2006, yie, ux);
- _2.Hd = function vx() {
- return this.a;
- };
- mdb(Zhe, "RegularImmutableList", 646);
- bcb(616, 715, Aie, wx);
- mdb(Zhe, "RegularImmutableMap", 616);
- bcb(716, 703, Cie, zx);
- var xx;
- mdb(Zhe, "RegularImmutableSet", 716);
- bcb(1976, eie, fie);
- _2.Kc = function Mx() {
- return new Xx(this.a, this.b);
- };
- _2.Fc = function Jx(a) {
- throw vbb(new bgb());
- };
- _2.Gc = function Kx(a) {
- throw vbb(new bgb());
- };
- _2.$b = function Lx() {
- throw vbb(new bgb());
- };
- _2.Mc = function Nx(a) {
- throw vbb(new bgb());
- };
- mdb(Zhe, "Sets/SetView", 1976);
- bcb(963, 1976, fie, Px);
- _2.Kc = function Tx() {
- return new Xx(this.a, this.b);
- };
- _2.Hc = function Qx(a) {
- return tqb(this.a, a) && this.b.Hc(a);
- };
- _2.Ic = function Rx(a) {
- return Be(this.a, a) && this.b.Ic(a);
- };
- _2.dc = function Sx() {
- return omb(this.b, this.a);
- };
- _2.Lc = function Ux() {
- return JAb(new YAb(null, new Kub(this.a, 1)), new _x(this.b));
- };
- _2.gc = function Vx() {
- return Ox(this);
- };
- _2.Oc = function Wx() {
- return JAb(new YAb(null, new Kub(this.a, 1)), new Zx(this.b));
- };
- mdb(Zhe, "Sets/2", 963);
- bcb(700, 699, Yhe, Xx);
- _2.Yb = function Yx() {
- var a;
- while (Eqb(this.a)) {
- a = Fqb(this.a);
- if (this.c.Hc(a)) {
- return a;
+ if (p3.updateStyle) {
+ self2.updateStyle();
+ }
+ p3.onSet(self2);
+ if (p3.settingTriggersEvent) {
+ self2[p3.triggerFnName](p3.settingEvent);
+ }
}
}
- return this.e = 2, null;
- };
- mdb(Zhe, "Sets/2/1", 700);
- bcb(964, 1, Oie, Zx);
- _2.Mb = function $x(a) {
- return this.a.Hc(a);
- };
- mdb(Zhe, "Sets/2/4methodref$contains$Type", 964);
- bcb(965, 1, Oie, _x);
- _2.Mb = function ay(a) {
- return this.a.Hc(a);
- };
- mdb(Zhe, "Sets/2/5methodref$contains$Type", 965);
- bcb(607, 1975, { 607: 1, 3: 1, 20: 1, 14: 1, 271: 1, 21: 1, 84: 1 }, by);
- _2.Bd = function cy() {
- return this.b;
- };
- _2.Cd = function dy() {
- return this.b;
- };
- _2.Md = function ey() {
- return this.b;
- };
- _2.Jc = function fy(a) {
- this.a.Jc(a);
- };
- _2.Lc = function gy() {
- return this.a.Lc();
- };
- _2.Oc = function hy() {
- return this.a.Oc();
- };
- mdb(Zhe, "Sets/UnmodifiableNavigableSet", 607);
- bcb(1932, 1931, Aie, iy);
- _2.Ld = function jy() {
- return Ql(), new oy(this.a);
- };
- _2.Cc = function ky() {
- return Ql(), new oy(this.a);
- };
- _2.pd = function ly() {
- return Ql(), new oy(this.a);
- };
- mdb(Zhe, "SingletonImmutableBiMap", 1932);
- bcb(647, 2006, yie, my);
- _2.Hd = function ny() {
- return this.a;
- };
- mdb(Zhe, "SingletonImmutableList", 647);
- bcb(350, 1981, Cie, oy);
- _2.Kc = function ry() {
- return new Ir(this.a);
- };
- _2.Hc = function py(a) {
- return pb(this.a, a);
- };
- _2.Ed = function qy() {
- return new Ir(this.a);
- };
- _2.gc = function sy() {
- return 1;
- };
- mdb(Zhe, "SingletonImmutableSet", 350);
- bcb(1115, 1, {}, vy);
- _2.Kb = function wy(a) {
- return BD(a, 164);
- };
- mdb(Zhe, "Streams/lambda$0$Type", 1115);
- bcb(1116, 1, Pie, xy);
- _2.Vd = function yy() {
- uy(this.a);
- };
- mdb(Zhe, "Streams/lambda$1$Type", 1116);
- bcb(1659, 1658, _he, Ay);
- _2.Zb = function By() {
- var a;
- return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171);
- };
- _2.hc = function Ey() {
- return new Hxb(this.b);
- };
- _2.gd = function Fy() {
- return new Hxb(this.b);
- };
- _2.ec = function Hy() {
- var a;
- return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271);
- };
- _2.ac = function Dy() {
- return JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c);
- };
- _2.ic = function Gy(a) {
- a == null && this.a.ue(a, a);
- return new Hxb(this.b);
- };
- mdb(Zhe, "TreeMultimap", 1659);
- bcb(78, 1, { 3: 1, 78: 1 });
- _2.Wd = function $y(a) {
- return new Error(a);
- };
- _2.Xd = function az() {
- return this.e;
- };
- _2.Yd = function bz() {
- return XAb(NAb(Plb((this.k == null && (this.k = KC(_I, nie, 78, 0, 0, 1)), this.k)), new _fb()));
- };
- _2.Zd = function cz() {
- return this.f;
- };
- _2.$d = function dz() {
- return this.g;
- };
- _2._d = function ez() {
- Vy(this, _y(this.Wd(Wy(this, this.g))));
- Sz(this);
- };
- _2.Ib = function fz() {
- return Wy(this, this.$d());
- };
- _2.e = Sie;
- _2.i = false;
- _2.n = true;
- var _I = mdb(Phe, "Throwable", 78);
- bcb(102, 78, { 3: 1, 102: 1, 78: 1 });
- mdb(Phe, "Exception", 102);
- bcb(60, 102, Tie, gz, hz);
- mdb(Phe, "RuntimeException", 60);
- bcb(598, 60, Tie);
- mdb(Phe, "JsException", 598);
- bcb(863, 598, Tie);
- mdb(Uie, "JavaScriptExceptionBase", 863);
- bcb(477, 863, { 477: 1, 3: 1, 102: 1, 60: 1, 78: 1 }, lz);
- _2.$d = function oz() {
- kz(this);
- return this.c;
- };
- _2.ae = function pz() {
- return PD(this.b) === PD(iz) ? null : this.b;
- };
- var iz;
- mdb(Wie, "JavaScriptException", 477);
- var PH = mdb(Wie, "JavaScriptObject$", 0);
- var tz;
- bcb(1948, 1, {});
- mdb(Wie, "Scheduler", 1948);
- var xz = 0, yz = 0, zz = -1;
- bcb(890, 1948, {}, Nz);
- var Jz;
- mdb(Uie, "SchedulerImpl", 890);
- var Qz;
- bcb(1960, 1, {});
- mdb(Uie, "StackTraceCreator/Collector", 1960);
- bcb(864, 1960, {}, Yz);
- _2.be = function Zz(a) {
- var b = {};
- var c2 = [];
- a[Yie] = c2;
- var d = arguments.callee.caller;
- while (d) {
- var e = (Rz(), d.name || (d.name = Uz(d.toString())));
- c2.push(e);
- var f2 = ":" + e;
- var g = b[f2];
- if (g) {
- var h, i3;
- for (h = 0, i3 = g.length; h < i3; h++) {
- if (g[h] === d) {
- return;
+ } else if (p3.allowSetting && plainObject(name)) {
+ var obj = name;
+ var k2, v3;
+ var keys3 = Object.keys(obj);
+ p3.beforeSet(self2, obj);
+ for (var _i = 0; _i < keys3.length; _i++) {
+ k2 = keys3[_i];
+ v3 = obj[k2];
+ var _valid = !p3.immutableKeys[k2];
+ if (_valid) {
+ for (var j2 = 0; j2 < all.length; j2++) {
+ var _ele = all[j2];
+ if (p3.canSet(_ele)) {
+ _ele._private[p3.field][k2] = v3;
}
}
}
- (g || (b[f2] = [])).push(d);
- d = d.caller;
}
- };
- _2.ce = function $z(a) {
- var b, c2, d, e;
- d = (Rz(), a && a[Yie] ? a[Yie] : []);
- c2 = d.length;
- e = KC(VI, nie, 310, c2, 0, 1);
- for (b = 0; b < c2; b++) {
- e[b] = new Zeb(d[b], null, -1);
- }
- return e;
- };
- mdb(Uie, "StackTraceCreator/CollectorLegacy", 864);
- bcb(1961, 1960, {});
- _2.be = function aA(a) {
- };
- _2.de = function bA(a, b, c2, d) {
- return new Zeb(b, a + "@" + d, c2 < 0 ? -1 : c2);
- };
- _2.ce = function cA(a) {
- var b, c2, d, e, f2, g;
- e = Wz(a);
- f2 = KC(VI, nie, 310, 0, 0, 1);
- b = 0;
- d = e.length;
- if (d == 0) {
- return f2;
- }
- g = _z(this, e[0]);
- dfb(g.d, Xie) || (f2[b++] = g);
- for (c2 = 1; c2 < d; c2++) {
- f2[b++] = _z(this, e[c2]);
- }
- return f2;
- };
- mdb(Uie, "StackTraceCreator/CollectorModern", 1961);
- bcb(865, 1961, {}, dA);
- _2.de = function eA(a, b, c2, d) {
- return new Zeb(b, a, -1);
- };
- mdb(Uie, "StackTraceCreator/CollectorModernNoSourceMap", 865);
- bcb(1050, 1, {});
- mdb(yje, zje, 1050);
- bcb(615, 1050, { 615: 1 }, HA);
- var FA;
- mdb(Aje, zje, 615);
- bcb(2001, 1, {});
- mdb(yje, Bje, 2001);
- bcb(2002, 2001, {});
- mdb(Aje, Bje, 2002);
- bcb(1090, 1, {}, MA);
- var JA;
- mdb(Aje, "LocaleInfo", 1090);
- bcb(1918, 1, {}, PA);
- _2.a = 0;
- mdb(Aje, "TimeZone", 1918);
- bcb(1258, 2002, {}, VA);
- mdb("com.google.gwt.i18n.client.impl.cldr", "DateTimeFormatInfoImpl", 1258);
- bcb(434, 1, { 434: 1 }, WA);
- _2.a = false;
- _2.b = 0;
- mdb(yje, "DateTimeFormat/PatternPart", 434);
- bcb(199, 1, Cje, eB, fB, gB);
- _2.wd = function hB(a) {
- return XA(this, BD(a, 199));
- };
- _2.Fb = function iB(a) {
- return JD(a, 199) && Bbb(Cbb(this.q.getTime()), Cbb(BD(a, 199).q.getTime()));
- };
- _2.Hb = function jB() {
- var a;
- a = Cbb(this.q.getTime());
- return Tbb(Vbb(a, Pbb(a, 32)));
- };
- _2.Ib = function lB() {
- var a, b, c2;
- c2 = -this.q.getTimezoneOffset();
- a = (c2 >= 0 ? "+" : "") + (c2 / 60 | 0);
- b = kB($wnd.Math.abs(c2) % 60);
- return (Dpb(), Bpb)[this.q.getDay()] + " " + Cpb[this.q.getMonth()] + " " + kB(this.q.getDate()) + " " + kB(this.q.getHours()) + ":" + kB(this.q.getMinutes()) + ":" + kB(this.q.getSeconds()) + " GMT" + a + b + " " + this.q.getFullYear();
- };
- var $J = mdb(bie, "Date", 199);
- bcb(1915, 199, Cje, nB);
- _2.a = false;
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- _2.e = 0;
- _2.f = 0;
- _2.g = false;
- _2.i = 0;
- _2.j = 0;
- _2.k = 0;
- _2.n = 0;
- _2.o = 0;
- _2.p = 0;
- mdb("com.google.gwt.i18n.shared.impl", "DateRecord", 1915);
- bcb(1966, 1, {});
- _2.fe = function oB() {
- return null;
- };
- _2.ge = function pB() {
- return null;
- };
- _2.he = function qB() {
- return null;
- };
- _2.ie = function rB() {
- return null;
- };
- _2.je = function sB() {
- return null;
- };
- mdb(Dje, "JSONValue", 1966);
- bcb(216, 1966, { 216: 1 }, wB, xB);
- _2.Fb = function yB(a) {
- if (!JD(a, 216)) {
- return false;
+ if (p3.updateStyle) {
+ self2.updateStyle();
}
- return qz(this.a, BD(a, 216).a);
- };
- _2.ee = function zB() {
- return DB;
- };
- _2.Hb = function AB() {
- return rz(this.a);
- };
- _2.fe = function BB() {
- return this;
- };
- _2.Ib = function CB() {
- var a, b, c2;
- c2 = new Wfb("[");
- for (b = 0, a = this.a.length; b < a; b++) {
- b > 0 && (c2.a += ",", c2);
- Pfb(c2, tB(this, b));
- }
- c2.a += "]";
- return c2.a;
- };
- mdb(Dje, "JSONArray", 216);
- bcb(483, 1966, { 483: 1 }, HB);
- _2.ee = function IB() {
- return LB;
- };
- _2.ge = function JB() {
- return this;
- };
- _2.Ib = function KB() {
- return Bcb(), "" + this.a;
- };
- _2.a = false;
- var EB, FB;
- mdb(Dje, "JSONBoolean", 483);
- bcb(985, 60, Tie, MB);
- mdb(Dje, "JSONException", 985);
- bcb(1023, 1966, {}, PB);
- _2.ee = function QB() {
- return SB;
- };
- _2.Ib = function RB() {
- return Xhe;
- };
- var NB;
- mdb(Dje, "JSONNull", 1023);
- bcb(258, 1966, { 258: 1 }, TB);
- _2.Fb = function UB(a) {
- if (!JD(a, 258)) {
- return false;
+ p3.onSet(self2);
+ if (p3.settingTriggersEvent) {
+ self2[p3.triggerFnName](p3.settingEvent);
}
- return this.a == BD(a, 258).a;
- };
- _2.ee = function VB() {
- return ZB;
- };
- _2.Hb = function WB() {
- return Hdb(this.a);
- };
- _2.he = function XB() {
- return this;
- };
- _2.Ib = function YB() {
- return this.a + "";
- };
- _2.a = 0;
- mdb(Dje, "JSONNumber", 258);
- bcb(183, 1966, { 183: 1 }, eC, fC);
- _2.Fb = function gC(a) {
- if (!JD(a, 183)) {
- return false;
+ } else if (p3.allowBinding && fn$6(name)) {
+ var fn3 = name;
+ self2.on(p3.bindingEvent, fn3);
+ } else if (p3.allowGetting && name === void 0) {
+ var _ret;
+ if (single) {
+ p3.beforeGet(single);
+ _ret = single._private[p3.field];
}
- return qz(this.a, BD(a, 183).a);
- };
- _2.ee = function hC() {
- return lC;
- };
- _2.Hb = function iC() {
- return rz(this.a);
- };
- _2.ie = function jC() {
- return this;
- };
- _2.Ib = function kC() {
- var a, b, c2, d, e, f2, g;
- g = new Wfb("{");
- a = true;
- f2 = $B(this, KC(ZI, nie, 2, 0, 6, 1));
- for (c2 = f2, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- a ? a = false : (g.a += She, g);
- Qfb(g, vz(b));
- g.a += ":";
- Pfb(g, aC(this, b));
- }
- g.a += "}";
- return g.a;
- };
- mdb(Dje, "JSONObject", 183);
- bcb(596, eie, fie, mC);
- _2.Hc = function nC(a) {
- return ND(a) && _B(this.a, GD(a));
- };
- _2.Kc = function oC() {
- return new vib(new amb(this.b));
- };
- _2.gc = function pC() {
- return this.b.length;
- };
- mdb(Dje, "JSONObject/1", 596);
- var qC;
- bcb(204, 1966, { 204: 1 }, yC);
- _2.Fb = function zC(a) {
- if (!JD(a, 204)) {
- return false;
+ return _ret;
+ }
+ return self2;
+ }, "dataImpl");
+ }, "data"),
+ // data
+ // remove data field
+ removeData: /* @__PURE__ */ __name(function removeData(params) {
+ var defaults4 = {
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: false,
+ immutableKeys: {}
+ // key => true if immutable
+ };
+ params = extend2({}, defaults4, params);
+ return /* @__PURE__ */ __name(function removeDataImpl(names) {
+ var p3 = params;
+ var self2 = this;
+ var selfIsArrayLike = self2.length !== void 0;
+ var all = selfIsArrayLike ? self2 : [self2];
+ if (string(names)) {
+ var keys3 = names.split(/\s+/);
+ var l2 = keys3.length;
+ for (var i2 = 0; i2 < l2; i2++) {
+ var key = keys3[i2];
+ if (emptyString(key)) {
+ continue;
+ }
+ var valid2 = !p3.immutableKeys[key];
+ if (valid2) {
+ for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) {
+ all[i_a]._private[p3.field][key] = void 0;
+ }
+ }
}
- return dfb(this.a, BD(a, 204).a);
- };
- _2.ee = function AC() {
- return EC;
- };
- _2.Hb = function BC() {
- return LCb(this.a);
- };
- _2.je = function CC() {
- return this;
- };
- _2.Ib = function DC() {
- return vz(this.a);
- };
- mdb(Dje, "JSONString", 204);
- var QC;
- var sD, tD, uD, vD;
- bcb(1962, 1, { 525: 1 });
- mdb(Lje, "OutputStream", 1962);
- bcb(1963, 1962, { 525: 1 });
- mdb(Lje, "FilterOutputStream", 1963);
- bcb(866, 1963, { 525: 1 }, jcb);
- mdb(Lje, "PrintStream", 866);
- bcb(418, 1, { 475: 1 });
- _2.Ib = function ncb() {
- return this.a;
- };
- mdb(Phe, "AbstractStringBuilder", 418);
- bcb(529, 60, Tie, ocb);
- mdb(Phe, "ArithmeticException", 529);
- bcb(73, 60, Mje, pcb, qcb);
- mdb(Phe, "IndexOutOfBoundsException", 73);
- bcb(320, 73, { 3: 1, 320: 1, 102: 1, 73: 1, 60: 1, 78: 1 }, rcb, scb);
- mdb(Phe, "ArrayIndexOutOfBoundsException", 320);
- bcb(528, 60, Tie, tcb, ucb);
- mdb(Phe, "ArrayStoreException", 528);
- bcb(289, 78, Nje, vcb);
- mdb(Phe, "Error", 289);
- bcb(194, 289, Nje, xcb, ycb);
- mdb(Phe, "AssertionError", 194);
- xD = { 3: 1, 476: 1, 35: 1 };
- var zcb, Acb;
- var wI = mdb(Phe, "Boolean", 476);
- bcb(236, 1, { 3: 1, 236: 1 });
- var Gcb;
- mdb(Phe, "Number", 236);
- bcb(217, 236, { 3: 1, 217: 1, 35: 1, 236: 1 }, Mcb);
- _2.wd = function Ncb(a) {
- return Lcb(this, BD(a, 217));
- };
- _2.ke = function Ocb() {
- return this.a;
- };
- _2.Fb = function Pcb(a) {
- return JD(a, 217) && BD(a, 217).a == this.a;
- };
- _2.Hb = function Qcb() {
- return this.a;
- };
- _2.Ib = function Rcb() {
- return "" + this.a;
- };
- _2.a = 0;
- var xI = mdb(Phe, "Byte", 217);
- var Tcb;
- bcb(172, 1, { 3: 1, 172: 1, 35: 1 }, Xcb);
- _2.wd = function Ycb(a) {
- return Wcb(this, BD(a, 172));
- };
- _2.Fb = function $cb(a) {
- return JD(a, 172) && BD(a, 172).a == this.a;
- };
- _2.Hb = function _cb() {
- return this.a;
- };
- _2.Ib = function adb() {
- return String.fromCharCode(this.a);
- };
- _2.a = 0;
- var Vcb;
- var yI = mdb(Phe, "Character", 172);
- var cdb;
- bcb(205, 60, { 3: 1, 205: 1, 102: 1, 60: 1, 78: 1 }, Bdb, Cdb);
- mdb(Phe, "ClassCastException", 205);
- yD = { 3: 1, 35: 1, 333: 1, 236: 1 };
- var BI = mdb(Phe, "Double", 333);
- bcb(155, 236, { 3: 1, 35: 1, 155: 1, 236: 1 }, Ndb, Odb);
- _2.wd = function Pdb(a) {
- return Mdb(this, BD(a, 155));
- };
- _2.ke = function Qdb() {
- return this.a;
- };
- _2.Fb = function Rdb(a) {
- return JD(a, 155) && Fdb(this.a, BD(a, 155).a);
- };
- _2.Hb = function Sdb() {
- return QD(this.a);
- };
- _2.Ib = function Udb() {
- return "" + this.a;
- };
- _2.a = 0;
- var FI = mdb(Phe, "Float", 155);
- bcb(32, 60, { 3: 1, 102: 1, 32: 1, 60: 1, 78: 1 }, Vdb, Wdb, Xdb);
- mdb(Phe, "IllegalArgumentException", 32);
- bcb(71, 60, Tie, Ydb, Zdb);
- mdb(Phe, "IllegalStateException", 71);
- bcb(19, 236, { 3: 1, 35: 1, 19: 1, 236: 1 }, _db);
- _2.wd = function ceb(a) {
- return $db(this, BD(a, 19));
- };
- _2.ke = function deb() {
- return this.a;
- };
- _2.Fb = function eeb(a) {
- return JD(a, 19) && BD(a, 19).a == this.a;
- };
- _2.Hb = function feb() {
- return this.a;
- };
- _2.Ib = function leb() {
- return "" + this.a;
- };
- _2.a = 0;
- var JI = mdb(Phe, "Integer", 19);
- var neb;
- var peb;
- bcb(162, 236, { 3: 1, 35: 1, 162: 1, 236: 1 }, teb);
- _2.wd = function veb(a) {
- return seb(this, BD(a, 162));
- };
- _2.ke = function web() {
- return Sbb(this.a);
- };
- _2.Fb = function xeb(a) {
- return JD(a, 162) && Bbb(BD(a, 162).a, this.a);
- };
- _2.Hb = function yeb() {
- return Tbb(this.a);
- };
- _2.Ib = function zeb() {
- return "" + Ubb(this.a);
- };
- _2.a = 0;
- var MI = mdb(Phe, "Long", 162);
- var Beb;
- bcb(2039, 1, {});
- bcb(1831, 60, Tie, Feb);
- mdb(Phe, "NegativeArraySizeException", 1831);
- bcb(173, 598, { 3: 1, 102: 1, 173: 1, 60: 1, 78: 1 }, Geb, Heb);
- _2.Wd = function Ieb(a) {
- return new TypeError(a);
- };
- mdb(Phe, "NullPointerException", 173);
- var Jeb, Keb, Leb, Meb;
- bcb(127, 32, { 3: 1, 102: 1, 32: 1, 127: 1, 60: 1, 78: 1 }, Oeb);
- mdb(Phe, "NumberFormatException", 127);
- bcb(184, 236, { 3: 1, 35: 1, 236: 1, 184: 1 }, Qeb);
- _2.wd = function Reb(a) {
- return Peb(this, BD(a, 184));
- };
- _2.ke = function Seb() {
- return this.a;
- };
- _2.Fb = function Teb(a) {
- return JD(a, 184) && BD(a, 184).a == this.a;
- };
- _2.Hb = function Ueb() {
- return this.a;
- };
- _2.Ib = function Veb() {
- return "" + this.a;
- };
- _2.a = 0;
- var UI = mdb(Phe, "Short", 184);
- var Xeb;
- bcb(310, 1, { 3: 1, 310: 1 }, Zeb);
- _2.Fb = function $eb(a) {
- var b;
- if (JD(a, 310)) {
- b = BD(a, 310);
- return this.c == b.c && this.d == b.d && this.a == b.a && this.b == b.b;
+ if (p3.triggerEvent) {
+ self2[p3.triggerFnName](p3.event);
}
- return false;
- };
- _2.Hb = function _eb() {
- return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [meb(this.c), this.a, this.d, this.b]));
- };
- _2.Ib = function afb() {
- return this.a + "." + this.d + "(" + (this.b != null ? this.b : "Unknown Source") + (this.c >= 0 ? ":" + this.c : "") + ")";
- };
- _2.c = 0;
- var VI = mdb(Phe, "StackTraceElement", 310);
- zD = { 3: 1, 475: 1, 35: 1, 2: 1 };
- var ZI = mdb(Phe, Vie, 2);
- bcb(107, 418, { 475: 1 }, Hfb, Ifb, Jfb);
- mdb(Phe, "StringBuffer", 107);
- bcb(100, 418, { 475: 1 }, Ufb, Vfb, Wfb);
- mdb(Phe, "StringBuilder", 100);
- bcb(687, 73, Mje, Xfb);
- mdb(Phe, "StringIndexOutOfBoundsException", 687);
- bcb(2043, 1, {});
- var Yfb;
- bcb(844, 1, {}, _fb);
- _2.Kb = function agb(a) {
- return BD(a, 78).e;
- };
- mdb(Phe, "Throwable/lambda$0$Type", 844);
- bcb(41, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 41: 1 }, bgb, cgb);
- mdb(Phe, "UnsupportedOperationException", 41);
- bcb(240, 236, { 3: 1, 35: 1, 236: 1, 240: 1 }, sgb, tgb);
- _2.wd = function wgb(a) {
- return mgb(this, BD(a, 240));
- };
- _2.ke = function xgb() {
- return Hcb(rgb2(this));
- };
- _2.Fb = function ygb(a) {
- var b;
- if (this === a) {
- return true;
+ } else if (names === void 0) {
+ for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) {
+ var _privateFields = all[_i_a]._private[p3.field];
+ var _keys = Object.keys(_privateFields);
+ for (var _i2 = 0; _i2 < _keys.length; _i2++) {
+ var _key = _keys[_i2];
+ var validKeyToDelete = !p3.immutableKeys[_key];
+ if (validKeyToDelete) {
+ _privateFields[_key] = void 0;
+ }
+ }
}
- if (JD(a, 240)) {
- b = BD(a, 240);
- return this.e == b.e && mgb(this, b) == 0;
+ if (p3.triggerEvent) {
+ self2[p3.triggerFnName](p3.event);
}
- return false;
- };
- _2.Hb = function zgb() {
- var a;
- if (this.b != 0) {
- return this.b;
- }
- if (this.a < 54) {
- a = Cbb(this.f);
- this.b = Tbb(xbb(a, -1));
- this.b = 33 * this.b + Tbb(xbb(Obb(a, 32), -1));
- this.b = 17 * this.b + QD(this.e);
- return this.b;
- }
- this.b = 17 * Ngb(this.c) + QD(this.e);
- return this.b;
- };
- _2.Ib = function Agb() {
- return rgb2(this);
- };
- _2.a = 0;
- _2.b = 0;
- _2.d = 0;
- _2.e = 0;
- _2.f = 0;
- var dgb, egb, fgb, ggb, hgb, igb, jgb, kgb;
- var bJ = mdb("java.math", "BigDecimal", 240);
- bcb(91, 236, { 3: 1, 35: 1, 236: 1, 91: 1 }, Tgb, Ugb, Vgb, Wgb, Xgb, Ygb);
- _2.wd = function $gb(a) {
- return Igb(this, BD(a, 91));
- };
- _2.ke = function _gb() {
- return Hcb(shb(this, 0));
- };
- _2.Fb = function ahb(a) {
- return Kgb(this, a);
- };
- _2.Hb = function chb() {
- return Ngb(this);
- };
- _2.Ib = function ehb() {
- return shb(this, 0);
- };
- _2.b = -2;
- _2.c = 0;
- _2.d = 0;
- _2.e = 0;
- var Bgb, Cgb, Dgb, Egb, Fgb, Ggb;
- var cJ = mdb("java.math", "BigInteger", 91);
- var nhb, ohb;
- var Bhb, Chb;
- bcb(488, 1967, cie);
- _2.$b = function Xhb() {
- Uhb(this);
- };
- _2._b = function Yhb(a) {
- return Mhb(this, a);
- };
- _2.uc = function Zhb(a) {
- return Nhb(this, a, this.g) || Nhb(this, a, this.f);
- };
- _2.vc = function $hb() {
- return new eib(this);
- };
- _2.xc = function _hb(a) {
- return Ohb(this, a);
- };
- _2.zc = function aib(a, b) {
- return Rhb(this, a, b);
- };
- _2.Bc = function bib(a) {
- return Thb(this, a);
- };
- _2.gc = function cib() {
- return Vhb(this);
- };
- mdb(bie, "AbstractHashMap", 488);
- bcb(261, eie, fie, eib);
- _2.$b = function fib() {
- this.a.$b();
- };
- _2.Hc = function gib(a) {
- return dib(this, a);
- };
- _2.Kc = function hib() {
- return new nib(this.a);
- };
- _2.Mc = function iib(a) {
- var b;
- if (dib(this, a)) {
- b = BD(a, 42).cd();
- this.a.Bc(b);
- return true;
+ }
+ return self2;
+ }, "removeDataImpl");
+ }, "removeData")
+ // removeData
+ };
+ define$1 = {
+ eventAliasesOn: /* @__PURE__ */ __name(function eventAliasesOn(proto) {
+ var p3 = proto;
+ p3.addListener = p3.listen = p3.bind = p3.on;
+ p3.unlisten = p3.unbind = p3.off = p3.removeListener;
+ p3.trigger = p3.emit;
+ p3.pon = p3.promiseOn = function(events, selector) {
+ var self2 = this;
+ var args = Array.prototype.slice.call(arguments, 0);
+ return new Promise$1(function(resolve3, reject3) {
+ var callback = /* @__PURE__ */ __name(function callback2(e3) {
+ self2.off.apply(self2, offArgs);
+ resolve3(e3);
+ }, "callback");
+ var onArgs = args.concat([callback]);
+ var offArgs = onArgs.concat([]);
+ self2.on.apply(self2, onArgs);
+ });
+ };
+ }, "eventAliasesOn")
+ };
+ define2 = {};
+ [define$3, define$2, define$1].forEach(function(m2) {
+ extend2(define2, m2);
+ });
+ elesfn$i = {
+ animate: define2.animate(),
+ animation: define2.animation(),
+ animated: define2.animated(),
+ clearQueue: define2.clearQueue(),
+ delay: define2.delay(),
+ delayAnimation: define2.delayAnimation(),
+ stop: define2.stop()
+ };
+ elesfn$h = {
+ classes: /* @__PURE__ */ __name(function classes4(_classes) {
+ var self2 = this;
+ if (_classes === void 0) {
+ var ret = [];
+ self2[0]._private.classes.forEach(function(cls2) {
+ return ret.push(cls2);
+ });
+ return ret;
+ } else if (!array2(_classes)) {
+ _classes = (_classes || "").match(/\S+/g) || [];
+ }
+ var changed = [];
+ var classesSet = new Set$1(_classes);
+ for (var j2 = 0; j2 < self2.length; j2++) {
+ var ele = self2[j2];
+ var _p = ele._private;
+ var eleClasses = _p.classes;
+ var changedEle = false;
+ for (var i2 = 0; i2 < _classes.length; i2++) {
+ var cls = _classes[i2];
+ var eleHasClass = eleClasses.has(cls);
+ if (!eleHasClass) {
+ changedEle = true;
+ break;
}
- return false;
- };
- _2.gc = function jib() {
- return this.a.gc();
- };
- mdb(bie, "AbstractHashMap/EntrySet", 261);
- bcb(262, 1, aie, nib);
- _2.Nb = function oib(a) {
- Rrb(this, a);
- };
- _2.Pb = function qib() {
- return lib(this);
- };
- _2.Ob = function pib() {
- return this.b;
- };
- _2.Qb = function rib() {
- mib(this);
- };
- _2.b = false;
- mdb(bie, "AbstractHashMap/EntrySetIterator", 262);
- bcb(417, 1, aie, vib);
- _2.Nb = function wib(a) {
- Rrb(this, a);
- };
- _2.Ob = function xib() {
- return sib(this);
- };
- _2.Pb = function yib() {
- return tib(this);
- };
- _2.Qb = function zib() {
- uib(this);
- };
- _2.b = 0;
- _2.c = -1;
- mdb(bie, "AbstractList/IteratorImpl", 417);
- bcb(96, 417, jie, Bib);
- _2.Qb = function Hib() {
- uib(this);
- };
- _2.Rb = function Cib(a) {
- Aib(this, a);
- };
- _2.Sb = function Dib() {
- return this.b > 0;
- };
- _2.Tb = function Eib() {
- return this.b;
- };
- _2.Ub = function Fib() {
- return sCb(this.b > 0), this.a.Xb(this.c = --this.b);
- };
- _2.Vb = function Gib() {
- return this.b - 1;
- };
- _2.Wb = function Iib(a) {
- yCb(this.c != -1);
- this.a._c(this.c, a);
- };
- mdb(bie, "AbstractList/ListIteratorImpl", 96);
- bcb(219, 52, Lie, Jib);
- _2.Vc = function Kib(a, b) {
- wCb(a, this.b);
- this.c.Vc(this.a + a, b);
- ++this.b;
- };
- _2.Xb = function Lib(a) {
- tCb(a, this.b);
- return this.c.Xb(this.a + a);
- };
- _2.$c = function Mib(a) {
- var b;
- tCb(a, this.b);
- b = this.c.$c(this.a + a);
- --this.b;
- return b;
- };
- _2._c = function Nib(a, b) {
- tCb(a, this.b);
- return this.c._c(this.a + a, b);
- };
- _2.gc = function Oib() {
- return this.b;
- };
- _2.a = 0;
- _2.b = 0;
- mdb(bie, "AbstractList/SubList", 219);
- bcb(384, eie, fie, Pib);
- _2.$b = function Qib() {
- this.a.$b();
- };
- _2.Hc = function Rib(a) {
- return this.a._b(a);
- };
- _2.Kc = function Sib() {
- var a;
- return a = this.a.vc().Kc(), new Vib(a);
- };
- _2.Mc = function Tib(a) {
- if (this.a._b(a)) {
- this.a.Bc(a);
- return true;
- }
- return false;
- };
- _2.gc = function Uib() {
- return this.a.gc();
- };
- mdb(bie, "AbstractMap/1", 384);
- bcb(691, 1, aie, Vib);
- _2.Nb = function Wib(a) {
- Rrb(this, a);
- };
- _2.Ob = function Xib() {
- return this.a.Ob();
- };
- _2.Pb = function Yib() {
- var a;
- return a = BD(this.a.Pb(), 42), a.cd();
- };
- _2.Qb = function Zib() {
- this.a.Qb();
- };
- mdb(bie, "AbstractMap/1/1", 691);
- bcb(226, 28, die, $ib);
- _2.$b = function _ib() {
- this.a.$b();
- };
- _2.Hc = function ajb(a) {
- return this.a.uc(a);
- };
- _2.Kc = function bjb() {
- var a;
- return a = this.a.vc().Kc(), new djb(a);
- };
- _2.gc = function cjb() {
- return this.a.gc();
- };
- mdb(bie, "AbstractMap/2", 226);
- bcb(294, 1, aie, djb);
- _2.Nb = function ejb(a) {
- Rrb(this, a);
- };
- _2.Ob = function fjb() {
- return this.a.Ob();
- };
- _2.Pb = function gjb() {
- var a;
- return a = BD(this.a.Pb(), 42), a.dd();
- };
- _2.Qb = function hjb() {
- this.a.Qb();
- };
- mdb(bie, "AbstractMap/2/1", 294);
- bcb(484, 1, { 484: 1, 42: 1 });
- _2.Fb = function jjb(a) {
- var b;
- if (!JD(a, 42)) {
- return false;
- }
- b = BD(a, 42);
- return wtb(this.d, b.cd()) && wtb(this.e, b.dd());
- };
- _2.cd = function kjb() {
- return this.d;
- };
- _2.dd = function ljb() {
- return this.e;
- };
- _2.Hb = function mjb() {
- return xtb(this.d) ^ xtb(this.e);
- };
- _2.ed = function njb(a) {
- return ijb(this, a);
- };
- _2.Ib = function ojb() {
- return this.d + "=" + this.e;
- };
- mdb(bie, "AbstractMap/AbstractEntry", 484);
- bcb(383, 484, { 484: 1, 383: 1, 42: 1 }, pjb);
- mdb(bie, "AbstractMap/SimpleEntry", 383);
- bcb(1984, 1, _je);
- _2.Fb = function qjb(a) {
- var b;
- if (!JD(a, 42)) {
- return false;
- }
- b = BD(a, 42);
- return wtb(this.cd(), b.cd()) && wtb(this.dd(), b.dd());
- };
- _2.Hb = function rjb() {
- return xtb(this.cd()) ^ xtb(this.dd());
- };
- _2.Ib = function sjb() {
- return this.cd() + "=" + this.dd();
- };
- mdb(bie, lie, 1984);
- bcb(1992, 1967, gie);
- _2.tc = function vjb(a) {
- return tjb(this, a);
- };
- _2._b = function wjb(a) {
- return ujb(this, a);
- };
- _2.vc = function xjb() {
- return new Bjb(this);
- };
- _2.xc = function yjb(a) {
- var b;
- b = a;
- return Wd(Awb(this, b));
- };
- _2.ec = function Ajb() {
- return new Gjb(this);
- };
- mdb(bie, "AbstractNavigableMap", 1992);
- bcb(739, eie, fie, Bjb);
- _2.Hc = function Cjb(a) {
- return JD(a, 42) && tjb(this.b, BD(a, 42));
- };
- _2.Kc = function Djb() {
- return new Ywb(this.b);
- };
- _2.Mc = function Ejb(a) {
- var b;
- if (JD(a, 42)) {
- b = BD(a, 42);
- return Kwb(this.b, b);
- }
- return false;
- };
- _2.gc = function Fjb() {
- return this.b.c;
- };
- mdb(bie, "AbstractNavigableMap/EntrySet", 739);
- bcb(493, eie, iie, Gjb);
- _2.Nc = function Mjb() {
- return new Rub(this);
- };
- _2.$b = function Hjb() {
- zwb(this.a);
- };
- _2.Hc = function Ijb(a) {
- return ujb(this.a, a);
- };
- _2.Kc = function Jjb() {
- var a;
- return a = new Ywb(new cxb(this.a).b), new Njb(a);
- };
- _2.Mc = function Kjb(a) {
- if (ujb(this.a, a)) {
- Jwb(this.a, a);
- return true;
- }
- return false;
- };
- _2.gc = function Ljb() {
- return this.a.c;
- };
- mdb(bie, "AbstractNavigableMap/NavigableKeySet", 493);
- bcb(494, 1, aie, Njb);
- _2.Nb = function Ojb(a) {
- Rrb(this, a);
- };
- _2.Ob = function Pjb() {
- return sib(this.a.a);
- };
- _2.Pb = function Qjb() {
- var a;
- return a = Wwb(this.a), a.cd();
- };
- _2.Qb = function Rjb() {
- Xwb(this.a);
- };
- mdb(bie, "AbstractNavigableMap/NavigableKeySet/1", 494);
- bcb(2004, 28, die);
- _2.Fc = function Sjb(a) {
- return zCb(cub(this, a)), true;
- };
- _2.Gc = function Tjb(a) {
- uCb(a);
- mCb(a != this, "Can't add a queue to itself");
- return ye(this, a);
- };
- _2.$b = function Ujb() {
- while (dub(this) != null)
- ;
- };
- mdb(bie, "AbstractQueue", 2004);
- bcb(302, 28, { 4: 1, 20: 1, 28: 1, 14: 1 }, jkb, kkb);
- _2.Fc = function lkb(a) {
- return Xjb(this, a), true;
- };
- _2.$b = function nkb() {
- Yjb(this);
- };
- _2.Hc = function okb(a) {
- return Zjb(new xkb(this), a);
- };
- _2.dc = function pkb() {
- return akb(this);
- };
- _2.Kc = function qkb() {
- return new xkb(this);
- };
- _2.Mc = function rkb(a) {
- return dkb(new xkb(this), a);
- };
- _2.gc = function skb() {
- return this.c - this.b & this.a.length - 1;
- };
- _2.Nc = function tkb() {
- return new Kub(this, 272);
- };
- _2.Qc = function ukb(a) {
- var b;
- b = this.c - this.b & this.a.length - 1;
- a.length < b && (a = eCb(new Array(b), a));
- $jb(this, a, b);
- a.length > b && NC(a, b, null);
- return a;
- };
- _2.b = 0;
- _2.c = 0;
- mdb(bie, "ArrayDeque", 302);
- bcb(446, 1, aie, xkb);
- _2.Nb = function ykb(a) {
- Rrb(this, a);
- };
- _2.Ob = function zkb() {
- return this.a != this.b;
- };
- _2.Pb = function Akb() {
- return vkb(this);
- };
- _2.Qb = function Bkb() {
- wkb(this);
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = -1;
- mdb(bie, "ArrayDeque/IteratorImpl", 446);
- bcb(12, 52, ake, Rkb, Skb, Tkb);
- _2.Vc = function Ukb(a, b) {
- Dkb(this, a, b);
- };
- _2.Fc = function Vkb(a) {
- return Ekb(this, a);
- };
- _2.Wc = function Wkb(a, b) {
- return Fkb(this, a, b);
- };
- _2.Gc = function Xkb(a) {
- return Gkb(this, a);
- };
- _2.$b = function Ykb() {
- this.c = KC(SI, Uhe, 1, 0, 5, 1);
- };
- _2.Hc = function Zkb(a) {
- return Jkb(this, a, 0) != -1;
- };
- _2.Jc = function $kb(a) {
- Hkb(this, a);
- };
- _2.Xb = function _kb(a) {
- return Ikb(this, a);
- };
- _2.Xc = function alb(a) {
- return Jkb(this, a, 0);
- };
- _2.dc = function blb() {
- return this.c.length == 0;
- };
- _2.Kc = function clb() {
- return new olb(this);
- };
- _2.$c = function dlb(a) {
- return Kkb(this, a);
- };
- _2.Mc = function elb(a) {
- return Lkb(this, a);
- };
- _2.Ud = function flb(a, b) {
- Mkb(this, a, b);
- };
- _2._c = function glb(a, b) {
- return Nkb(this, a, b);
- };
- _2.gc = function hlb() {
- return this.c.length;
- };
- _2.ad = function ilb(a) {
- Okb(this, a);
- };
- _2.Pc = function jlb() {
- return Pkb(this);
- };
- _2.Qc = function klb(a) {
- return Qkb(this, a);
- };
- var DJ = mdb(bie, "ArrayList", 12);
- bcb(7, 1, aie, olb);
- _2.Nb = function plb(a) {
- Rrb(this, a);
- };
- _2.Ob = function qlb() {
- return llb(this);
- };
- _2.Pb = function rlb() {
- return mlb(this);
- };
- _2.Qb = function slb() {
- nlb(this);
- };
- _2.a = 0;
- _2.b = -1;
- mdb(bie, "ArrayList/1", 7);
- bcb(2013, $wnd.Function, {}, Ylb);
- _2.te = function Zlb(a, b) {
- return Kdb(a, b);
- };
- bcb(154, 52, bke, amb);
- _2.Hc = function bmb(a) {
- return Bt(this, a) != -1;
- };
- _2.Jc = function cmb(a) {
- var b, c2, d, e;
- uCb(a);
- for (c2 = this.a, d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- a.td(b);
- }
- };
- _2.Xb = function dmb(a) {
- return $lb(this, a);
- };
- _2._c = function emb(a, b) {
- var c2;
- c2 = (tCb(a, this.a.length), this.a[a]);
- NC(this.a, a, b);
- return c2;
- };
- _2.gc = function fmb() {
- return this.a.length;
- };
- _2.ad = function gmb(a) {
- Mlb(this.a, this.a.length, a);
- };
- _2.Pc = function hmb() {
- return _lb(this, KC(SI, Uhe, 1, this.a.length, 5, 1));
- };
- _2.Qc = function imb(a) {
- return _lb(this, a);
- };
- mdb(bie, "Arrays/ArrayList", 154);
- var jmb, kmb, lmb;
- bcb(940, 52, bke, xmb);
- _2.Hc = function ymb(a) {
- return false;
- };
- _2.Xb = function zmb(a) {
- return wmb(a);
- };
- _2.Kc = function Amb() {
- return mmb(), Emb(), Dmb;
- };
- _2.Yc = function Bmb() {
- return mmb(), Emb(), Dmb;
- };
- _2.gc = function Cmb() {
- return 0;
- };
- mdb(bie, "Collections/EmptyList", 940);
- bcb(941, 1, jie, Fmb);
- _2.Nb = function Hmb(a) {
- Rrb(this, a);
- };
- _2.Rb = function Gmb(a) {
- throw vbb(new bgb());
- };
- _2.Ob = function Imb() {
- return false;
- };
- _2.Sb = function Jmb() {
- return false;
- };
- _2.Pb = function Kmb() {
- throw vbb(new utb());
- };
- _2.Tb = function Lmb() {
- return 0;
- };
- _2.Ub = function Mmb() {
- throw vbb(new utb());
- };
- _2.Vb = function Nmb() {
- return -1;
- };
- _2.Qb = function Omb() {
- throw vbb(new Ydb());
- };
- _2.Wb = function Pmb(a) {
- throw vbb(new Ydb());
- };
- var Dmb;
- mdb(bie, "Collections/EmptyListIterator", 941);
- bcb(943, 1967, Aie, Qmb);
- _2._b = function Rmb(a) {
- return false;
- };
- _2.uc = function Smb(a) {
- return false;
- };
- _2.vc = function Tmb() {
- return mmb(), lmb;
- };
- _2.xc = function Umb(a) {
- return null;
- };
- _2.ec = function Vmb() {
- return mmb(), lmb;
- };
- _2.gc = function Wmb() {
- return 0;
- };
- _2.Cc = function Xmb() {
- return mmb(), jmb;
- };
- mdb(bie, "Collections/EmptyMap", 943);
- bcb(942, eie, Cie, Ymb);
- _2.Hc = function Zmb(a) {
- return false;
- };
- _2.Kc = function $mb() {
- return mmb(), Emb(), Dmb;
- };
- _2.gc = function _mb() {
- return 0;
- };
- mdb(bie, "Collections/EmptySet", 942);
- bcb(599, 52, { 3: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, anb);
- _2.Hc = function bnb(a) {
- return wtb(this.a, a);
- };
- _2.Xb = function cnb(a) {
- tCb(a, 1);
- return this.a;
- };
- _2.gc = function dnb() {
- return 1;
- };
- mdb(bie, "Collections/SingletonList", 599);
- bcb(372, 1, wie, lnb);
- _2.Jc = function rnb(a) {
- reb(this, a);
- };
- _2.Lc = function unb() {
- return new YAb(null, this.Nc());
- };
- _2.Nc = function xnb() {
- return new Kub(this, 0);
- };
- _2.Oc = function ynb() {
- return new YAb(null, this.Nc());
- };
- _2.Fc = function mnb(a) {
- return enb();
- };
- _2.Gc = function nnb(a) {
- return fnb();
- };
- _2.$b = function onb() {
- gnb();
- };
- _2.Hc = function pnb(a) {
- return hnb(this, a);
- };
- _2.Ic = function qnb(a) {
- return inb(this, a);
- };
- _2.dc = function snb() {
- return this.b.dc();
- };
- _2.Kc = function tnb() {
- return new Dnb(this.b.Kc());
- };
- _2.Mc = function vnb(a) {
- return jnb();
- };
- _2.gc = function wnb() {
- return this.b.gc();
- };
- _2.Pc = function znb() {
- return this.b.Pc();
- };
- _2.Qc = function Anb(a) {
- return knb(this, a);
- };
- _2.Ib = function Bnb() {
- return fcb(this.b);
- };
- mdb(bie, "Collections/UnmodifiableCollection", 372);
- bcb(371, 1, aie, Dnb);
- _2.Nb = function Enb(a) {
- Rrb(this, a);
- };
- _2.Ob = function Fnb() {
- return this.b.Ob();
- };
- _2.Pb = function Gnb() {
- return this.b.Pb();
- };
- _2.Qb = function Hnb() {
- Cnb();
- };
- mdb(bie, "Collections/UnmodifiableCollectionIterator", 371);
- bcb(531, 372, cke, Inb);
- _2.Nc = function Vnb() {
- return new Kub(this, 16);
- };
- _2.Vc = function Jnb(a, b) {
- throw vbb(new bgb());
- };
- _2.Wc = function Knb(a, b) {
- throw vbb(new bgb());
- };
- _2.Fb = function Lnb(a) {
- return pb(this.a, a);
- };
- _2.Xb = function Mnb(a) {
- return this.a.Xb(a);
- };
- _2.Hb = function Nnb() {
- return tb(this.a);
- };
- _2.Xc = function Onb(a) {
- return this.a.Xc(a);
- };
- _2.dc = function Pnb() {
- return this.a.dc();
- };
- _2.Yc = function Qnb() {
- return new Xnb(this.a.Zc(0));
- };
- _2.Zc = function Rnb(a) {
- return new Xnb(this.a.Zc(a));
- };
- _2.$c = function Snb(a) {
- throw vbb(new bgb());
- };
- _2._c = function Tnb(a, b) {
- throw vbb(new bgb());
- };
- _2.ad = function Unb(a) {
- throw vbb(new bgb());
- };
- _2.bd = function Wnb(a, b) {
- return new Inb(this.a.bd(a, b));
- };
- mdb(bie, "Collections/UnmodifiableList", 531);
- bcb(690, 371, jie, Xnb);
- _2.Qb = function bob() {
- Cnb();
- };
- _2.Rb = function Ynb(a) {
- throw vbb(new bgb());
- };
- _2.Sb = function Znb() {
- return this.a.Sb();
- };
- _2.Tb = function $nb() {
- return this.a.Tb();
- };
- _2.Ub = function _nb() {
- return this.a.Ub();
- };
- _2.Vb = function aob() {
- return this.a.Vb();
- };
- _2.Wb = function cob(a) {
- throw vbb(new bgb());
- };
- mdb(bie, "Collections/UnmodifiableListIterator", 690);
- bcb(600, 1, cie, iob);
- _2.wc = function oob(a) {
- stb(this, a);
- };
- _2.yc = function tob(a, b, c2) {
- return ttb(this, a, b, c2);
- };
- _2.$b = function job() {
- throw vbb(new bgb());
- };
- _2._b = function kob(a) {
- return this.c._b(a);
- };
- _2.uc = function lob(a) {
- return dob(this, a);
- };
- _2.vc = function mob() {
- return eob(this);
- };
- _2.Fb = function nob(a) {
- return fob(this, a);
- };
- _2.xc = function pob(a) {
- return this.c.xc(a);
- };
- _2.Hb = function qob() {
- return tb(this.c);
- };
- _2.dc = function rob() {
- return this.c.dc();
- };
- _2.ec = function sob() {
- return gob(this);
- };
- _2.zc = function uob(a, b) {
- throw vbb(new bgb());
- };
- _2.Bc = function vob(a) {
- throw vbb(new bgb());
- };
- _2.gc = function wob() {
- return this.c.gc();
- };
- _2.Ib = function xob() {
- return fcb(this.c);
- };
- _2.Cc = function yob() {
- return hob(this);
- };
- mdb(bie, "Collections/UnmodifiableMap", 600);
- bcb(382, 372, Bie, zob);
- _2.Nc = function Cob() {
- return new Kub(this, 1);
- };
- _2.Fb = function Aob(a) {
- return pb(this.b, a);
- };
- _2.Hb = function Bob() {
- return tb(this.b);
- };
- mdb(bie, "Collections/UnmodifiableSet", 382);
- bcb(944, 382, Bie, Gob);
- _2.Hc = function Hob(a) {
- return Dob(this, a);
- };
- _2.Ic = function Iob(a) {
- return this.b.Ic(a);
- };
- _2.Kc = function Job() {
- var a;
- a = this.b.Kc();
- return new Mob(a);
- };
- _2.Pc = function Kob() {
- var a;
- a = this.b.Pc();
- Fob(a, a.length);
- return a;
- };
- _2.Qc = function Lob(a) {
- return Eob(this, a);
- };
- mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet", 944);
- bcb(945, 1, aie, Mob);
- _2.Nb = function Nob(a) {
- Rrb(this, a);
- };
- _2.Pb = function Pob() {
- return new Rob(BD(this.a.Pb(), 42));
- };
- _2.Ob = function Oob() {
- return this.a.Ob();
- };
- _2.Qb = function Qob() {
- throw vbb(new bgb());
- };
- mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/1", 945);
- bcb(688, 1, _je, Rob);
- _2.Fb = function Sob(a) {
- return this.a.Fb(a);
- };
- _2.cd = function Tob() {
- return this.a.cd();
- };
- _2.dd = function Uob() {
- return this.a.dd();
- };
- _2.Hb = function Vob() {
- return this.a.Hb();
- };
- _2.ed = function Wob(a) {
- throw vbb(new bgb());
- };
- _2.Ib = function Xob() {
- return fcb(this.a);
- };
- mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry", 688);
- bcb(601, 531, { 20: 1, 14: 1, 15: 1, 54: 1 }, Yob);
- mdb(bie, "Collections/UnmodifiableRandomAccessList", 601);
- bcb(689, 382, Die, Zob);
- _2.Nc = function apb() {
- return new Rub(this);
- };
- _2.Fb = function $ob(a) {
- return pb(this.a, a);
- };
- _2.Hb = function _ob() {
- return tb(this.a);
- };
- mdb(bie, "Collections/UnmodifiableSortedSet", 689);
- bcb(847, 1, dke, bpb);
- _2.ue = function cpb(a, b) {
- var c2;
- return c2 = Ucc(BD(a, 11), BD(b, 11)), c2 != 0 ? c2 : Wcc(BD(a, 11), BD(b, 11));
- };
- _2.Fb = function dpb(a) {
- return this === a;
- };
- _2.ve = function epb() {
- return new tpb(this);
- };
- mdb(bie, "Comparator/lambda$0$Type", 847);
- var fpb, gpb, hpb;
- bcb(751, 1, dke, kpb);
- _2.ue = function lpb(a, b) {
- return jpb(BD(a, 35), BD(b, 35));
- };
- _2.Fb = function mpb(a) {
- return this === a;
- };
- _2.ve = function npb() {
- return ipb(), hpb;
- };
- mdb(bie, "Comparators/NaturalOrderComparator", 751);
- bcb(1177, 1, dke, ppb);
- _2.ue = function qpb(a, b) {
- return opb(BD(a, 35), BD(b, 35));
- };
- _2.Fb = function rpb(a) {
- return this === a;
- };
- _2.ve = function spb() {
- return ipb(), gpb;
- };
- mdb(bie, "Comparators/ReverseNaturalOrderComparator", 1177);
- bcb(64, 1, dke, tpb);
- _2.Fb = function vpb(a) {
- return this === a;
- };
- _2.ue = function upb(a, b) {
- return this.a.ue(b, a);
- };
- _2.ve = function wpb() {
- return this.a;
- };
- mdb(bie, "Comparators/ReversedComparator", 64);
- bcb(166, 60, Tie, Apb);
- mdb(bie, "ConcurrentModificationException", 166);
- var Bpb, Cpb;
- bcb(1904, 1, eke, Gpb);
- _2.we = function Hpb(a) {
- Epb(this, a);
- };
- _2.Ib = function Ipb() {
- return "DoubleSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Fpb(this) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Fpb(this) + "]";
- };
- _2.a = 0;
- _2.b = Qje;
- _2.c = Pje;
- _2.d = 0;
- _2.e = 0;
- _2.f = 0;
- mdb(bie, "DoubleSummaryStatistics", 1904);
- bcb(1805, 60, Tie, Jpb);
- mdb(bie, "EmptyStackException", 1805);
- bcb(451, 1967, cie, Rpb);
- _2.zc = function Xpb(a, b) {
- return Opb(this, a, b);
- };
- _2.$b = function Spb() {
- Kpb(this);
- };
- _2._b = function Tpb(a) {
- return Lpb(this, a);
- };
- _2.uc = function Upb(a) {
- var b, c2;
- for (c2 = new Gqb(this.a); c2.a < c2.c.a.length; ) {
- b = Fqb(c2);
- if (wtb(a, this.b[b.g])) {
- return true;
- }
- }
- return false;
- };
- _2.vc = function Vpb() {
- return new _pb(this);
- };
- _2.xc = function Wpb(a) {
- return Mpb(this, a);
- };
- _2.Bc = function Ypb(a) {
- return Ppb(this, a);
- };
- _2.gc = function Zpb() {
- return this.a.c;
- };
- mdb(bie, "EnumMap", 451);
- bcb(1352, eie, fie, _pb);
- _2.$b = function aqb() {
- Kpb(this.a);
- };
- _2.Hc = function bqb(a) {
- return $pb(this, a);
- };
- _2.Kc = function cqb() {
- return new fqb(this.a);
- };
- _2.Mc = function dqb(a) {
- var b;
- if ($pb(this, a)) {
- b = BD(a, 42).cd();
- Ppb(this.a, b);
- return true;
- }
- return false;
- };
- _2.gc = function eqb() {
- return this.a.a.c;
- };
- mdb(bie, "EnumMap/EntrySet", 1352);
- bcb(1353, 1, aie, fqb);
- _2.Nb = function gqb(a) {
- Rrb(this, a);
- };
- _2.Pb = function iqb() {
- return this.b = Fqb(this.a), new kqb(this.c, this.b);
- };
- _2.Ob = function hqb() {
- return Eqb(this.a);
- };
- _2.Qb = function jqb() {
- yCb(!!this.b);
- Ppb(this.c, this.b);
- this.b = null;
- };
- mdb(bie, "EnumMap/EntrySetIterator", 1353);
- bcb(1354, 1984, _je, kqb);
- _2.cd = function lqb() {
- return this.a;
- };
- _2.dd = function mqb() {
- return this.b.b[this.a.g];
- };
- _2.ed = function nqb(a) {
- return Qpb(this.b, this.a.g, a);
- };
- mdb(bie, "EnumMap/MapEntry", 1354);
- bcb(174, eie, { 20: 1, 28: 1, 14: 1, 174: 1, 21: 1 });
- var hK = mdb(bie, "EnumSet", 174);
- bcb(156, 174, { 20: 1, 28: 1, 14: 1, 174: 1, 156: 1, 21: 1 }, xqb);
- _2.Fc = function yqb(a) {
- return rqb(this, BD(a, 22));
- };
- _2.Hc = function zqb(a) {
- return tqb(this, a);
- };
- _2.Kc = function Aqb() {
- return new Gqb(this);
- };
- _2.Mc = function Bqb(a) {
- return vqb(this, a);
- };
- _2.gc = function Cqb() {
- return this.c;
- };
- _2.c = 0;
- mdb(bie, "EnumSet/EnumSetImpl", 156);
- bcb(343, 1, aie, Gqb);
- _2.Nb = function Hqb(a) {
- Rrb(this, a);
- };
- _2.Pb = function Jqb() {
- return Fqb(this);
- };
- _2.Ob = function Iqb() {
- return Eqb(this);
- };
- _2.Qb = function Kqb() {
- yCb(this.b != -1);
- NC(this.c.b, this.b, null);
- --this.c.c;
- this.b = -1;
- };
- _2.a = -1;
- _2.b = -1;
- mdb(bie, "EnumSet/EnumSetImpl/IteratorImpl", 343);
- bcb(43, 488, fke, Lqb, Mqb, Nqb);
- _2.re = function Oqb(a, b) {
- return PD(a) === PD(b) || a != null && pb(a, b);
- };
- _2.se = function Pqb(a) {
- var b;
- b = tb(a);
- return b | 0;
- };
- mdb(bie, "HashMap", 43);
- bcb(53, eie, gke, Tqb, Uqb, Vqb);
- _2.Fc = function Xqb(a) {
- return Qqb(this, a);
- };
- _2.$b = function Yqb() {
- this.a.$b();
- };
- _2.Hc = function Zqb(a) {
- return Rqb(this, a);
- };
- _2.dc = function $qb() {
- return this.a.gc() == 0;
- };
- _2.Kc = function _qb() {
- return this.a.ec().Kc();
- };
- _2.Mc = function arb(a) {
- return Sqb(this, a);
- };
- _2.gc = function brb() {
- return this.a.gc();
- };
- var jK = mdb(bie, "HashSet", 53);
- bcb(1781, 1, sie, drb);
- _2.ud = function erb(a) {
- crb(this, a);
- };
- _2.Ib = function frb() {
- return "IntSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Sbb(this.d) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Ubb(this.d) + "]";
- };
- _2.a = 0;
- _2.b = Rie;
- _2.c = Ohe;
- _2.d = 0;
- mdb(bie, "IntSummaryStatistics", 1781);
- bcb(1049, 1, vie, lrb);
- _2.Jc = function mrb(a) {
- reb(this, a);
- };
- _2.Kc = function nrb() {
- return new orb(this);
- };
- _2.c = 0;
- mdb(bie, "InternalHashCodeMap", 1049);
- bcb(711, 1, aie, orb);
- _2.Nb = function prb(a) {
- Rrb(this, a);
- };
- _2.Pb = function rrb() {
- return this.d = this.a[this.c++], this.d;
- };
- _2.Ob = function qrb() {
- var a;
- if (this.c < this.a.length) {
- return true;
- }
- a = this.b.next();
- if (!a.done) {
- this.a = a.value[1];
- this.c = 0;
- return true;
- }
- return false;
- };
- _2.Qb = function srb() {
- krb(this.e, this.d.cd());
- this.c != 0 && --this.c;
- };
- _2.c = 0;
- _2.d = null;
- mdb(bie, "InternalHashCodeMap/1", 711);
- var vrb;
- bcb(1047, 1, vie, Frb);
- _2.Jc = function Grb(a) {
- reb(this, a);
- };
- _2.Kc = function Hrb() {
- return new Irb(this);
- };
- _2.c = 0;
- _2.d = 0;
- mdb(bie, "InternalStringMap", 1047);
- bcb(710, 1, aie, Irb);
- _2.Nb = function Jrb(a) {
- Rrb(this, a);
- };
- _2.Pb = function Lrb() {
- return this.c = this.a, this.a = this.b.next(), new Nrb(this.d, this.c, this.d.d);
- };
- _2.Ob = function Krb() {
- return !this.a.done;
- };
- _2.Qb = function Mrb() {
- Erb(this.d, this.c.value[0]);
- };
- mdb(bie, "InternalStringMap/1", 710);
- bcb(1048, 1984, _je, Nrb);
- _2.cd = function Orb() {
- return this.b.value[0];
- };
- _2.dd = function Prb() {
- if (this.a.d != this.c) {
- return Crb(this.a, this.b.value[0]);
- }
- return this.b.value[1];
- };
- _2.ed = function Qrb(a) {
- return Drb(this.a, this.b.value[0], a);
- };
- _2.c = 0;
- mdb(bie, "InternalStringMap/2", 1048);
- bcb(228, 43, fke, $rb, _rb);
- _2.$b = function asb() {
- Urb(this);
- };
- _2._b = function bsb(a) {
- return Vrb(this, a);
- };
- _2.uc = function csb(a) {
- var b;
- b = this.d.a;
- while (b != this.d) {
- if (wtb(b.e, a)) {
- return true;
- }
- b = b.a;
- }
- return false;
- };
- _2.vc = function dsb() {
- return new nsb(this);
- };
- _2.xc = function esb(a) {
- return Wrb(this, a);
- };
- _2.zc = function fsb(a, b) {
- return Xrb(this, a, b);
- };
- _2.Bc = function gsb(a) {
- return Zrb(this, a);
- };
- _2.gc = function hsb() {
- return Vhb(this.e);
- };
- _2.c = false;
- mdb(bie, "LinkedHashMap", 228);
- bcb(387, 383, { 484: 1, 383: 1, 387: 1, 42: 1 }, ksb, lsb);
- mdb(bie, "LinkedHashMap/ChainEntry", 387);
- bcb(701, eie, fie, nsb);
- _2.$b = function osb() {
- Urb(this.a);
- };
- _2.Hc = function psb(a) {
- return msb(this, a);
- };
- _2.Kc = function qsb() {
- return new usb(this);
- };
- _2.Mc = function rsb(a) {
- var b;
- if (msb(this, a)) {
- b = BD(a, 42).cd();
- Zrb(this.a, b);
- return true;
- }
- return false;
- };
- _2.gc = function ssb() {
- return Vhb(this.a.e);
- };
- mdb(bie, "LinkedHashMap/EntrySet", 701);
- bcb(702, 1, aie, usb);
- _2.Nb = function vsb(a) {
- Rrb(this, a);
- };
- _2.Pb = function xsb() {
- return tsb(this);
- };
- _2.Ob = function wsb() {
- return this.b != this.c.a.d;
- };
- _2.Qb = function ysb() {
- yCb(!!this.a);
- xpb(this.c.a.e, this);
- jsb(this.a);
- Thb(this.c.a.e, this.a.d);
- ypb(this.c.a.e, this);
- this.a = null;
- };
- mdb(bie, "LinkedHashMap/EntrySet/EntryIterator", 702);
- bcb(178, 53, gke, zsb, Asb, Bsb);
- var uK = mdb(bie, "LinkedHashSet", 178);
- bcb(68, 1964, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1 }, Psb, Qsb);
- _2.Fc = function Rsb(a) {
- return Dsb(this, a);
- };
- _2.$b = function Ssb() {
- Osb(this);
- };
- _2.Zc = function Tsb(a) {
- return Jsb(this, a);
- };
- _2.gc = function Usb() {
- return this.b;
- };
- _2.b = 0;
- var xK = mdb(bie, "LinkedList", 68);
- bcb(970, 1, jie, $sb);
- _2.Nb = function atb(a) {
- Rrb(this, a);
- };
- _2.Rb = function _sb(a) {
- Vsb(this, a);
- };
- _2.Ob = function btb() {
- return Wsb(this);
- };
- _2.Sb = function ctb() {
- return this.b.b != this.d.a;
- };
- _2.Pb = function dtb() {
- return Xsb(this);
- };
- _2.Tb = function etb() {
- return this.a;
- };
- _2.Ub = function ftb() {
- return Ysb(this);
- };
- _2.Vb = function gtb() {
- return this.a - 1;
- };
- _2.Qb = function htb() {
- Zsb(this);
- };
- _2.Wb = function itb(a) {
- yCb(!!this.c);
- this.c.c = a;
- };
- _2.a = 0;
- _2.c = null;
- mdb(bie, "LinkedList/ListIteratorImpl", 970);
- bcb(608, 1, {}, jtb);
- mdb(bie, "LinkedList/Node", 608);
- bcb(1959, 1, {});
- var ltb, mtb;
- mdb(bie, "Locale", 1959);
- bcb(861, 1959, {}, otb);
- _2.Ib = function ptb() {
- return "";
- };
- mdb(bie, "Locale/1", 861);
- bcb(862, 1959, {}, qtb);
- _2.Ib = function rtb() {
- return "unknown";
- };
- mdb(bie, "Locale/4", 862);
- bcb(109, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 109: 1 }, utb, vtb);
- mdb(bie, "NoSuchElementException", 109);
- bcb(404, 1, { 404: 1 }, Ftb);
- _2.Fb = function Gtb(a) {
- var b;
- if (a === this) {
- return true;
- }
- if (!JD(a, 404)) {
- return false;
- }
- b = BD(a, 404);
- return wtb(this.a, b.a);
- };
- _2.Hb = function Htb() {
- return xtb(this.a);
- };
- _2.Ib = function Jtb() {
- return this.a != null ? Whe + xfb(this.a) + ")" : "Optional.empty()";
- };
- var ztb;
- mdb(bie, "Optional", 404);
- bcb(463, 1, { 463: 1 }, Otb, Ptb);
- _2.Fb = function Qtb(a) {
- var b;
- if (a === this) {
- return true;
- }
- if (!JD(a, 463)) {
- return false;
- }
- b = BD(a, 463);
- return this.a == b.a && Kdb(this.b, b.b) == 0;
- };
- _2.Hb = function Rtb() {
- return this.a ? QD(this.b) : 0;
- };
- _2.Ib = function Stb() {
- return this.a ? "OptionalDouble.of(" + ("" + this.b) + ")" : "OptionalDouble.empty()";
- };
- _2.a = false;
- _2.b = 0;
- var Ktb;
- mdb(bie, "OptionalDouble", 463);
- bcb(517, 1, { 517: 1 }, Wtb, Xtb);
- _2.Fb = function Ytb(a) {
- var b;
- if (a === this) {
- return true;
+ }
+ if (!changedEle) {
+ changedEle = eleClasses.size !== _classes.length;
+ }
+ if (changedEle) {
+ _p.classes = classesSet;
+ changed.push(ele);
+ }
+ }
+ if (changed.length > 0) {
+ this.spawn(changed).updateStyle().emit("class");
+ }
+ return self2;
+ }, "classes"),
+ addClass: /* @__PURE__ */ __name(function addClass4(classes6) {
+ return this.toggleClass(classes6, true);
+ }, "addClass"),
+ hasClass: /* @__PURE__ */ __name(function hasClass(className) {
+ var ele = this[0];
+ return ele != null && ele._private.classes.has(className);
+ }, "hasClass"),
+ toggleClass: /* @__PURE__ */ __name(function toggleClass(classes6, toggle) {
+ if (!array2(classes6)) {
+ classes6 = classes6.match(/\S+/g) || [];
+ }
+ var self2 = this;
+ var toggleUndefd = toggle === void 0;
+ var changed = [];
+ for (var i2 = 0, il = self2.length; i2 < il; i2++) {
+ var ele = self2[i2];
+ var eleClasses = ele._private.classes;
+ var changedEle = false;
+ for (var j2 = 0; j2 < classes6.length; j2++) {
+ var cls = classes6[j2];
+ var hasClass2 = eleClasses.has(cls);
+ var changedNow = false;
+ if (toggle || toggleUndefd && !hasClass2) {
+ eleClasses.add(cls);
+ changedNow = true;
+ } else if (!toggle || toggleUndefd && hasClass2) {
+ eleClasses["delete"](cls);
+ changedNow = true;
}
- if (!JD(a, 517)) {
- return false;
- }
- b = BD(a, 517);
- return this.a == b.a && beb(this.b, b.b) == 0;
- };
- _2.Hb = function Ztb() {
- return this.a ? this.b : 0;
- };
- _2.Ib = function $tb() {
- return this.a ? "OptionalInt.of(" + ("" + this.b) + ")" : "OptionalInt.empty()";
- };
- _2.a = false;
- _2.b = 0;
- var Ttb;
- mdb(bie, "OptionalInt", 517);
- bcb(503, 2004, die, gub);
- _2.Gc = function hub(a) {
- return _tb(this, a);
- };
- _2.$b = function iub() {
- this.b.c = KC(SI, Uhe, 1, 0, 5, 1);
- };
- _2.Hc = function jub(a) {
- return (a == null ? -1 : Jkb(this.b, a, 0)) != -1;
- };
- _2.Kc = function kub() {
- return new qub(this);
- };
- _2.Mc = function lub(a) {
- return eub(this, a);
- };
- _2.gc = function mub() {
- return this.b.c.length;
- };
- _2.Nc = function nub() {
- return new Kub(this, 256);
- };
- _2.Pc = function oub() {
- return Pkb(this.b);
- };
- _2.Qc = function pub(a) {
- return Qkb(this.b, a);
- };
- mdb(bie, "PriorityQueue", 503);
- bcb(1277, 1, aie, qub);
- _2.Nb = function rub(a) {
- Rrb(this, a);
- };
- _2.Ob = function tub() {
- return this.a < this.c.b.c.length;
- };
- _2.Pb = function uub() {
- sCb(this.a < this.c.b.c.length);
- this.b = this.a++;
- return Ikb(this.c.b, this.b);
- };
- _2.Qb = function vub() {
- yCb(this.b != -1);
- fub(this.c, this.a = this.b);
- this.b = -1;
- };
- _2.a = 0;
- _2.b = -1;
- mdb(bie, "PriorityQueue/1", 1277);
- bcb(230, 1, { 230: 1 }, Gub, Hub);
- _2.a = 0;
- _2.b = 0;
- var wub, xub, yub = 0;
- mdb(bie, "Random", 230);
- bcb(27, 1, pie2, Kub, Lub, Mub);
- _2.qd = function Nub() {
- return this.a;
- };
- _2.rd = function Oub() {
- Iub(this);
- return this.c;
- };
- _2.Nb = function Pub(a) {
- Iub(this);
- this.d.Nb(a);
- };
- _2.sd = function Qub(a) {
- return Jub(this, a);
- };
- _2.a = 0;
- _2.c = 0;
- mdb(bie, "Spliterators/IteratorSpliterator", 27);
- bcb(485, 27, pie2, Rub);
- mdb(bie, "SortedSet/1", 485);
- bcb(602, 1, eke, Tub);
- _2.we = function Uub(a) {
- this.a.td(a);
- };
- mdb(bie, "Spliterator/OfDouble/0methodref$accept$Type", 602);
- bcb(603, 1, eke, Vub);
- _2.we = function Wub(a) {
- this.a.td(a);
- };
- mdb(bie, "Spliterator/OfDouble/1methodref$accept$Type", 603);
- bcb(604, 1, sie, Xub);
- _2.ud = function Yub(a) {
- this.a.td(meb(a));
- };
- mdb(bie, "Spliterator/OfInt/2methodref$accept$Type", 604);
- bcb(605, 1, sie, Zub);
- _2.ud = function $ub(a) {
- this.a.td(meb(a));
- };
- mdb(bie, "Spliterator/OfInt/3methodref$accept$Type", 605);
- bcb(617, 1, pie2);
- _2.Nb = function evb(a) {
- Sub(this, a);
- };
- _2.qd = function cvb() {
- return this.d;
- };
- _2.rd = function dvb() {
- return this.e;
- };
- _2.d = 0;
- _2.e = 0;
- mdb(bie, "Spliterators/BaseSpliterator", 617);
- bcb(721, 617, pie2);
- _2.xe = function gvb(a) {
- _ub(this, a);
- };
- _2.Nb = function hvb(a) {
- JD(a, 182) ? _ub(this, BD(a, 182)) : _ub(this, new Vub(a));
- };
- _2.sd = function ivb(a) {
- return JD(a, 182) ? this.ye(BD(a, 182)) : this.ye(new Tub(a));
- };
- mdb(bie, "Spliterators/AbstractDoubleSpliterator", 721);
- bcb(720, 617, pie2);
- _2.xe = function kvb(a) {
- _ub(this, a);
- };
- _2.Nb = function lvb(a) {
- JD(a, 196) ? _ub(this, BD(a, 196)) : _ub(this, new Zub(a));
- };
- _2.sd = function mvb(a) {
- return JD(a, 196) ? this.ye(BD(a, 196)) : this.ye(new Xub(a));
- };
- mdb(bie, "Spliterators/AbstractIntSpliterator", 720);
- bcb(540, 617, pie2);
- mdb(bie, "Spliterators/AbstractSpliterator", 540);
- bcb(692, 1, pie2);
- _2.Nb = function tvb(a) {
- Sub(this, a);
- };
- _2.qd = function rvb() {
- return this.b;
- };
- _2.rd = function svb() {
- return this.d - this.c;
- };
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- mdb(bie, "Spliterators/BaseArraySpliterator", 692);
- bcb(947, 692, pie2, vvb);
- _2.ze = function wvb(a, b) {
- uvb(this, BD(a, 38), b);
- };
- _2.Nb = function xvb(a) {
- ovb(this, a);
- };
- _2.sd = function yvb(a) {
- return pvb(this, a);
- };
- mdb(bie, "Spliterators/ArraySpliterator", 947);
- bcb(693, 692, pie2, Avb);
- _2.ze = function Cvb(a, b) {
- zvb(this, BD(a, 182), b);
- };
- _2.xe = function Dvb(a) {
- ovb(this, a);
- };
- _2.Nb = function Evb(a) {
- JD(a, 182) ? ovb(this, BD(a, 182)) : ovb(this, new Vub(a));
- };
- _2.ye = function Fvb(a) {
- return pvb(this, a);
- };
- _2.sd = function Gvb(a) {
- return JD(a, 182) ? pvb(this, BD(a, 182)) : pvb(this, new Tub(a));
- };
- mdb(bie, "Spliterators/DoubleArraySpliterator", 693);
- bcb(1968, 1, pie2);
- _2.Nb = function Lvb(a) {
- Sub(this, a);
- };
- _2.qd = function Jvb() {
- return 16448;
- };
- _2.rd = function Kvb() {
- return 0;
- };
- var Hvb;
- mdb(bie, "Spliterators/EmptySpliterator", 1968);
- bcb(946, 1968, pie2, Ovb);
- _2.xe = function Pvb(a) {
- Mvb(a);
- };
- _2.Nb = function Qvb(a) {
- JD(a, 196) ? Mvb(BD(a, 196)) : Mvb(new Zub(a));
- };
- _2.ye = function Rvb(a) {
- return Nvb(a);
- };
- _2.sd = function Svb(a) {
- return JD(a, 196) ? Nvb(BD(a, 196)) : Nvb(new Xub(a));
- };
- mdb(bie, "Spliterators/EmptySpliterator/OfInt", 946);
- bcb(580, 52, pke, Wvb);
- _2.Vc = function Xvb(a, b) {
- _vb(a, this.a.c.length + 1);
- Dkb(this.a, a, b);
- };
- _2.Fc = function Yvb(a) {
- return Ekb(this.a, a);
- };
- _2.Wc = function Zvb(a, b) {
- _vb(a, this.a.c.length + 1);
- return Fkb(this.a, a, b);
- };
- _2.Gc = function $vb(a) {
- return Gkb(this.a, a);
- };
- _2.$b = function awb() {
- this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- };
- _2.Hc = function bwb(a) {
- return Jkb(this.a, a, 0) != -1;
- };
- _2.Ic = function cwb(a) {
- return Be(this.a, a);
- };
- _2.Jc = function dwb(a) {
- Hkb(this.a, a);
- };
- _2.Xb = function ewb(a) {
- return _vb(a, this.a.c.length), Ikb(this.a, a);
- };
- _2.Xc = function fwb(a) {
- return Jkb(this.a, a, 0);
- };
- _2.dc = function gwb() {
- return this.a.c.length == 0;
- };
- _2.Kc = function hwb() {
- return new olb(this.a);
- };
- _2.$c = function iwb(a) {
- return _vb(a, this.a.c.length), Kkb(this.a, a);
- };
- _2.Ud = function jwb(a, b) {
- Mkb(this.a, a, b);
- };
- _2._c = function kwb(a, b) {
- return _vb(a, this.a.c.length), Nkb(this.a, a, b);
- };
- _2.gc = function lwb() {
- return this.a.c.length;
- };
- _2.ad = function mwb(a) {
- Okb(this.a, a);
- };
- _2.bd = function nwb(a, b) {
- return new Jib(this.a, a, b);
- };
- _2.Pc = function owb() {
- return Pkb(this.a);
- };
- _2.Qc = function pwb(a) {
- return Qkb(this.a, a);
- };
- _2.Ib = function qwb() {
- return Fe(this.a);
- };
- mdb(bie, "Vector", 580);
- bcb(809, 580, pke, twb);
- mdb(bie, "Stack", 809);
- bcb(206, 1, { 206: 1 }, xwb);
- _2.Ib = function ywb() {
- return wwb(this);
- };
- mdb(bie, "StringJoiner", 206);
- bcb(544, 1992, { 3: 1, 83: 1, 171: 1, 161: 1 }, Pwb, Qwb);
- _2.$b = function Rwb() {
- zwb(this);
- };
- _2.vc = function Swb() {
- return new cxb(this);
- };
- _2.zc = function Twb(a, b) {
- return Iwb(this, a, b);
- };
- _2.Bc = function Uwb(a) {
- return Jwb(this, a);
- };
- _2.gc = function Vwb() {
- return this.c;
- };
- _2.c = 0;
- mdb(bie, "TreeMap", 544);
- bcb(390, 1, aie, Ywb);
- _2.Nb = function $wb(a) {
- Rrb(this, a);
- };
- _2.Pb = function axb() {
- return Wwb(this);
- };
- _2.Ob = function _wb() {
- return sib(this.a);
- };
- _2.Qb = function bxb() {
- Xwb(this);
- };
- mdb(bie, "TreeMap/EntryIterator", 390);
- bcb(435, 739, fie, cxb);
- _2.$b = function dxb() {
- zwb(this.a);
- };
- mdb(bie, "TreeMap/EntrySet", 435);
- bcb(436, 383, { 484: 1, 383: 1, 42: 1, 436: 1 }, exb);
- _2.b = false;
- var dL = mdb(bie, "TreeMap/Node", 436);
- bcb(621, 1, {}, fxb);
- _2.Ib = function gxb() {
- return "State: mv=" + this.c + " value=" + this.d + " done=" + this.a + " found=" + this.b;
- };
- _2.a = false;
- _2.b = false;
- _2.c = false;
- mdb(bie, "TreeMap/State", 621);
- bcb(297, 22, qke, mxb);
- _2.Ae = function nxb() {
- return false;
- };
- _2.Be = function oxb() {
- return false;
- };
- var hxb, ixb, jxb, kxb;
- var iL = ndb(bie, "TreeMap/SubMapType", 297, CI, qxb, pxb);
- bcb(1112, 297, qke, rxb);
- _2.Be = function sxb() {
- return true;
- };
- ndb(bie, "TreeMap/SubMapType/1", 1112, iL, null, null);
- bcb(1113, 297, qke, txb);
- _2.Ae = function uxb() {
- return true;
- };
- _2.Be = function vxb() {
- return true;
- };
- ndb(bie, "TreeMap/SubMapType/2", 1113, iL, null, null);
- bcb(1114, 297, qke, wxb);
- _2.Ae = function xxb() {
- return true;
- };
- ndb(bie, "TreeMap/SubMapType/3", 1114, iL, null, null);
- var yxb;
- bcb(208, eie, { 3: 1, 20: 1, 28: 1, 14: 1, 271: 1, 21: 1, 84: 1, 208: 1 }, Gxb, Hxb);
- _2.Nc = function Oxb() {
- return new Rub(this);
- };
- _2.Fc = function Ixb(a) {
- return Axb(this, a);
- };
- _2.$b = function Jxb() {
- zwb(this.a);
- };
- _2.Hc = function Kxb(a) {
- return ujb(this.a, a);
- };
- _2.Kc = function Lxb() {
- var a;
- return a = new Ywb(new cxb(new Gjb(this.a).a).b), new Njb(a);
- };
- _2.Mc = function Mxb(a) {
- return Fxb(this, a);
- };
- _2.gc = function Nxb() {
- return this.a.c;
- };
- var kL = mdb(bie, "TreeSet", 208);
- bcb(966, 1, {}, Rxb);
- _2.Ce = function Sxb(a, b) {
- return Pxb(this.a, a, b);
- };
- mdb(rke, "BinaryOperator/lambda$0$Type", 966);
- bcb(967, 1, {}, Txb);
- _2.Ce = function Uxb(a, b) {
- return Qxb(this.a, a, b);
- };
- mdb(rke, "BinaryOperator/lambda$1$Type", 967);
- bcb(846, 1, {}, Vxb);
- _2.Kb = function Wxb(a) {
- return a;
- };
- mdb(rke, "Function/lambda$0$Type", 846);
- bcb(431, 1, Oie, Xxb);
- _2.Mb = function Yxb(a) {
- return !this.a.Mb(a);
- };
- mdb(rke, "Predicate/lambda$2$Type", 431);
- bcb(572, 1, { 572: 1 });
- var qL = mdb(ske, "Handler", 572);
- bcb(2007, 1, Qhe);
- _2.ne = function _xb() {
- return "DUMMY";
- };
- _2.Ib = function ayb() {
- return this.ne();
- };
- var Zxb;
- mdb(ske, "Level", 2007);
- bcb(1621, 2007, Qhe, byb);
- _2.ne = function cyb() {
- return "INFO";
- };
- mdb(ske, "Level/LevelInfo", 1621);
- bcb(1640, 1, {}, gyb);
- var dyb;
- mdb(ske, "LogManager", 1640);
- bcb(1780, 1, Qhe, iyb);
- _2.b = null;
- mdb(ske, "LogRecord", 1780);
- bcb(512, 1, { 512: 1 }, wyb);
- _2.e = false;
- var jyb = false, kyb = false, lyb = false, myb = false, nyb = false;
- mdb(ske, "Logger", 512);
- bcb(819, 572, { 572: 1 }, zyb);
- mdb(ske, "SimpleConsoleLogHandler", 819);
- bcb(132, 22, { 3: 1, 35: 1, 22: 1, 132: 1 }, Gyb);
- var Cyb, Dyb, Eyb;
- var xL = ndb(vke, "Collector/Characteristics", 132, CI, Iyb, Hyb);
- var Jyb;
- bcb(744, 1, {}, Lyb);
- mdb(vke, "CollectorImpl", 744);
- bcb(1060, 1, {}, Zyb);
- _2.Ce = function $yb(a, b) {
- return vwb(BD(a, 206), BD(b, 206));
- };
- mdb(vke, "Collectors/10methodref$merge$Type", 1060);
- bcb(1061, 1, {}, _yb);
- _2.Kb = function azb(a) {
- return wwb(BD(a, 206));
- };
- mdb(vke, "Collectors/11methodref$toString$Type", 1061);
- bcb(1062, 1, {}, bzb);
- _2.Kb = function czb(a) {
- return Bcb(), _Pb(a) ? true : false;
- };
- mdb(vke, "Collectors/12methodref$test$Type", 1062);
- bcb(251, 1, {}, dzb);
- _2.Od = function ezb(a, b) {
- BD(a, 14).Fc(b);
- };
- mdb(vke, "Collectors/20methodref$add$Type", 251);
- bcb(253, 1, {}, fzb);
- _2.Ee = function gzb() {
- return new Rkb();
- };
- mdb(vke, "Collectors/21methodref$ctor$Type", 253);
- bcb(346, 1, {}, hzb);
- _2.Ee = function izb() {
- return new Tqb();
- };
- mdb(vke, "Collectors/23methodref$ctor$Type", 346);
- bcb(347, 1, {}, jzb);
- _2.Od = function kzb(a, b) {
- Qqb(BD(a, 53), b);
- };
- mdb(vke, "Collectors/24methodref$add$Type", 347);
- bcb(1055, 1, {}, lzb);
- _2.Ce = function mzb(a, b) {
- return Myb(BD(a, 15), BD(b, 14));
- };
- mdb(vke, "Collectors/4methodref$addAll$Type", 1055);
- bcb(1059, 1, {}, nzb);
- _2.Od = function ozb(a, b) {
- uwb(BD(a, 206), BD(b, 475));
- };
- mdb(vke, "Collectors/9methodref$add$Type", 1059);
- bcb(1058, 1, {}, pzb);
- _2.Ee = function qzb() {
- return new xwb(this.a, this.b, this.c);
- };
- mdb(vke, "Collectors/lambda$15$Type", 1058);
- bcb(1063, 1, {}, rzb);
- _2.Ee = function szb() {
- var a;
- return a = new $rb(), Xrb(a, (Bcb(), false), new Rkb()), Xrb(a, true, new Rkb()), a;
- };
- mdb(vke, "Collectors/lambda$22$Type", 1063);
- bcb(1064, 1, {}, tzb);
- _2.Ee = function uzb() {
- return OC(GC(SI, 1), Uhe, 1, 5, [this.a]);
- };
- mdb(vke, "Collectors/lambda$25$Type", 1064);
- bcb(1065, 1, {}, vzb);
- _2.Od = function wzb(a, b) {
- Oyb(this.a, CD(a));
- };
- mdb(vke, "Collectors/lambda$26$Type", 1065);
- bcb(1066, 1, {}, xzb);
- _2.Ce = function yzb(a, b) {
- return Pyb(this.a, CD(a), CD(b));
- };
- mdb(vke, "Collectors/lambda$27$Type", 1066);
- bcb(1067, 1, {}, zzb);
- _2.Kb = function Azb(a) {
- return CD(a)[0];
- };
- mdb(vke, "Collectors/lambda$28$Type", 1067);
- bcb(713, 1, {}, Czb);
- _2.Ce = function Dzb(a, b) {
- return Bzb(a, b);
- };
- mdb(vke, "Collectors/lambda$4$Type", 713);
- bcb(252, 1, {}, Ezb);
- _2.Ce = function Fzb(a, b) {
- return Ryb(BD(a, 14), BD(b, 14));
- };
- mdb(vke, "Collectors/lambda$42$Type", 252);
- bcb(348, 1, {}, Gzb);
- _2.Ce = function Hzb(a, b) {
- return Syb(BD(a, 53), BD(b, 53));
- };
- mdb(vke, "Collectors/lambda$50$Type", 348);
- bcb(349, 1, {}, Izb);
- _2.Kb = function Jzb(a) {
- return BD(a, 53);
- };
- mdb(vke, "Collectors/lambda$51$Type", 349);
- bcb(1054, 1, {}, Kzb);
- _2.Od = function Lzb(a, b) {
- Tyb(this.a, BD(a, 83), b);
- };
- mdb(vke, "Collectors/lambda$7$Type", 1054);
- bcb(1056, 1, {}, Mzb);
- _2.Ce = function Nzb(a, b) {
- return Vyb(BD(a, 83), BD(b, 83), new lzb());
- };
- mdb(vke, "Collectors/lambda$8$Type", 1056);
- bcb(1057, 1, {}, Ozb);
- _2.Kb = function Pzb(a) {
- return Uyb(this.a, BD(a, 83));
- };
- mdb(vke, "Collectors/lambda$9$Type", 1057);
- bcb(539, 1, {});
- _2.He = function Wzb() {
- Qzb(this);
- };
- _2.d = false;
- mdb(vke, "TerminatableStream", 539);
- bcb(812, 539, wke, bAb);
- _2.He = function cAb() {
- Qzb(this);
- };
- mdb(vke, "DoubleStreamImpl", 812);
- bcb(1784, 721, pie2, fAb);
- _2.ye = function hAb(a) {
- return eAb(this, BD(a, 182));
- };
- _2.a = null;
- mdb(vke, "DoubleStreamImpl/2", 1784);
- bcb(1785, 1, eke, iAb);
- _2.we = function jAb(a) {
- gAb(this.a, a);
- };
- mdb(vke, "DoubleStreamImpl/2/lambda$0$Type", 1785);
- bcb(1782, 1, eke, kAb);
- _2.we = function lAb(a) {
- dAb(this.a, a);
- };
- mdb(vke, "DoubleStreamImpl/lambda$0$Type", 1782);
- bcb(1783, 1, eke, mAb);
- _2.we = function nAb(a) {
- Epb(this.a, a);
- };
- mdb(vke, "DoubleStreamImpl/lambda$2$Type", 1783);
- bcb(1358, 720, pie2, rAb);
- _2.ye = function sAb(a) {
- return qAb(this, BD(a, 196));
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- mdb(vke, "IntStream/5", 1358);
- bcb(787, 539, wke, vAb);
- _2.He = function wAb() {
- Qzb(this);
- };
- _2.Ie = function xAb() {
- return Tzb(this), this.a;
- };
- mdb(vke, "IntStreamImpl", 787);
- bcb(788, 539, wke, yAb);
- _2.He = function zAb() {
- Qzb(this);
- };
- _2.Ie = function AAb() {
- return Tzb(this), Ivb(), Hvb;
- };
- mdb(vke, "IntStreamImpl/Empty", 788);
- bcb(1463, 1, sie, BAb);
- _2.ud = function CAb(a) {
- crb(this.a, a);
- };
- mdb(vke, "IntStreamImpl/lambda$4$Type", 1463);
- var xM = odb(vke, "Stream");
- bcb(30, 539, { 525: 1, 670: 1, 833: 1 }, YAb);
- _2.He = function ZAb() {
- Qzb(this);
- };
- var DAb;
- mdb(vke, "StreamImpl", 30);
- bcb(845, 1, {}, bBb);
- _2.ld = function cBb(a) {
- return aBb(a);
- };
- mdb(vke, "StreamImpl/0methodref$lambda$2$Type", 845);
- bcb(1084, 540, pie2, fBb);
- _2.sd = function gBb(a) {
- while (dBb(this)) {
- if (this.a.sd(a)) {
- return true;
- } else {
- Qzb(this.b);
- this.b = null;
- this.a = null;
- }
+ if (!changedEle && changedNow) {
+ changed.push(ele);
+ changedEle = true;
}
+ }
+ }
+ if (changed.length > 0) {
+ this.spawn(changed).updateStyle().emit("class");
+ }
+ return self2;
+ }, "toggleClass"),
+ removeClass: /* @__PURE__ */ __name(function removeClass(classes6) {
+ return this.toggleClass(classes6, false);
+ }, "removeClass"),
+ flashClass: /* @__PURE__ */ __name(function flashClass(classes6, duration) {
+ var self2 = this;
+ if (duration == null) {
+ duration = 250;
+ } else if (duration === 0) {
+ return self2;
+ }
+ self2.addClass(classes6);
+ setTimeout(function() {
+ self2.removeClass(classes6);
+ }, duration);
+ return self2;
+ }, "flashClass")
+ };
+ elesfn$h.className = elesfn$h.classNames = elesfn$h.classes;
+ tokens = {
+ metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",
+ // chars we need to escape in let names, etc
+ comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",
+ // binary comparison op (used in data selectors)
+ boolOp: "\\?|\\!|\\^",
+ // boolean (unary) operators (used in data selectors)
+ string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,
+ // string literals (used in data selectors) -- doublequotes | singlequotes
+ number: number6,
+ // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123
+ meta: "degree|indegree|outdegree",
+ // allowed metadata fields (i.e. allowed functions to use from Collection)
+ separator: "\\s*,\\s*",
+ // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass
+ descendant: "\\s+",
+ child: "\\s+>\\s+",
+ subject: "\\$",
+ group: "node|edge|\\*",
+ directedEdge: "\\s+->\\s+",
+ undirectedEdge: "\\s+<->\\s+"
+ };
+ tokens.variable = "(?:[\\w-.]|(?:\\\\" + tokens.metaChar + "))+";
+ tokens.className = "(?:[\\w-]|(?:\\\\" + tokens.metaChar + "))+";
+ tokens.value = tokens.string + "|" + tokens.number;
+ tokens.id = tokens.variable;
+ (function() {
+ var ops, op2, i2;
+ ops = tokens.comparatorOp.split("|");
+ for (i2 = 0; i2 < ops.length; i2++) {
+ op2 = ops[i2];
+ tokens.comparatorOp += "|@" + op2;
+ }
+ ops = tokens.comparatorOp.split("|");
+ for (i2 = 0; i2 < ops.length; i2++) {
+ op2 = ops[i2];
+ if (op2.indexOf("!") >= 0) {
+ continue;
+ }
+ if (op2 === "=") {
+ continue;
+ }
+ tokens.comparatorOp += "|\\!" + op2;
+ }
+ })();
+ newQuery = /* @__PURE__ */ __name(function newQuery2() {
+ return {
+ checks: []
+ };
+ }, "newQuery");
+ Type3 = {
+ /** E.g. node */
+ GROUP: 0,
+ /** A collection of elements */
+ COLLECTION: 1,
+ /** A filter(ele) function */
+ FILTER: 2,
+ /** E.g. [foo > 1] */
+ DATA_COMPARE: 3,
+ /** E.g. [foo] */
+ DATA_EXIST: 4,
+ /** E.g. [?foo] */
+ DATA_BOOL: 5,
+ /** E.g. [[degree > 2]] */
+ META_COMPARE: 6,
+ /** E.g. :selected */
+ STATE: 7,
+ /** E.g. #foo */
+ ID: 8,
+ /** E.g. .foo */
+ CLASS: 9,
+ /** E.g. #foo <-> #bar */
+ UNDIRECTED_EDGE: 10,
+ /** E.g. #foo -> #bar */
+ DIRECTED_EDGE: 11,
+ /** E.g. $#foo -> #bar */
+ NODE_SOURCE: 12,
+ /** E.g. #foo -> $#bar */
+ NODE_TARGET: 13,
+ /** E.g. $#foo <-> #bar */
+ NODE_NEIGHBOR: 14,
+ /** E.g. #foo > #bar */
+ CHILD: 15,
+ /** E.g. #foo #bar */
+ DESCENDANT: 16,
+ /** E.g. $#foo > #bar */
+ PARENT: 17,
+ /** E.g. $#foo #bar */
+ ANCESTOR: 18,
+ /** E.g. #foo > $bar > #baz */
+ COMPOUND_SPLIT: 19,
+ /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */
+ TRUE: 20
+ };
+ stateSelectors = [{
+ selector: ":selected",
+ matches: /* @__PURE__ */ __name(function matches(ele) {
+ return ele.selected();
+ }, "matches")
+ }, {
+ selector: ":unselected",
+ matches: /* @__PURE__ */ __name(function matches2(ele) {
+ return !ele.selected();
+ }, "matches")
+ }, {
+ selector: ":selectable",
+ matches: /* @__PURE__ */ __name(function matches3(ele) {
+ return ele.selectable();
+ }, "matches")
+ }, {
+ selector: ":unselectable",
+ matches: /* @__PURE__ */ __name(function matches4(ele) {
+ return !ele.selectable();
+ }, "matches")
+ }, {
+ selector: ":locked",
+ matches: /* @__PURE__ */ __name(function matches5(ele) {
+ return ele.locked();
+ }, "matches")
+ }, {
+ selector: ":unlocked",
+ matches: /* @__PURE__ */ __name(function matches6(ele) {
+ return !ele.locked();
+ }, "matches")
+ }, {
+ selector: ":visible",
+ matches: /* @__PURE__ */ __name(function matches7(ele) {
+ return ele.visible();
+ }, "matches")
+ }, {
+ selector: ":hidden",
+ matches: /* @__PURE__ */ __name(function matches8(ele) {
+ return !ele.visible();
+ }, "matches")
+ }, {
+ selector: ":transparent",
+ matches: /* @__PURE__ */ __name(function matches9(ele) {
+ return ele.transparent();
+ }, "matches")
+ }, {
+ selector: ":grabbed",
+ matches: /* @__PURE__ */ __name(function matches10(ele) {
+ return ele.grabbed();
+ }, "matches")
+ }, {
+ selector: ":free",
+ matches: /* @__PURE__ */ __name(function matches11(ele) {
+ return !ele.grabbed();
+ }, "matches")
+ }, {
+ selector: ":removed",
+ matches: /* @__PURE__ */ __name(function matches12(ele) {
+ return ele.removed();
+ }, "matches")
+ }, {
+ selector: ":inside",
+ matches: /* @__PURE__ */ __name(function matches13(ele) {
+ return !ele.removed();
+ }, "matches")
+ }, {
+ selector: ":grabbable",
+ matches: /* @__PURE__ */ __name(function matches14(ele) {
+ return ele.grabbable();
+ }, "matches")
+ }, {
+ selector: ":ungrabbable",
+ matches: /* @__PURE__ */ __name(function matches15(ele) {
+ return !ele.grabbable();
+ }, "matches")
+ }, {
+ selector: ":animated",
+ matches: /* @__PURE__ */ __name(function matches16(ele) {
+ return ele.animated();
+ }, "matches")
+ }, {
+ selector: ":unanimated",
+ matches: /* @__PURE__ */ __name(function matches17(ele) {
+ return !ele.animated();
+ }, "matches")
+ }, {
+ selector: ":parent",
+ matches: /* @__PURE__ */ __name(function matches18(ele) {
+ return ele.isParent();
+ }, "matches")
+ }, {
+ selector: ":childless",
+ matches: /* @__PURE__ */ __name(function matches19(ele) {
+ return ele.isChildless();
+ }, "matches")
+ }, {
+ selector: ":child",
+ matches: /* @__PURE__ */ __name(function matches20(ele) {
+ return ele.isChild();
+ }, "matches")
+ }, {
+ selector: ":orphan",
+ matches: /* @__PURE__ */ __name(function matches21(ele) {
+ return ele.isOrphan();
+ }, "matches")
+ }, {
+ selector: ":nonorphan",
+ matches: /* @__PURE__ */ __name(function matches22(ele) {
+ return ele.isChild();
+ }, "matches")
+ }, {
+ selector: ":compound",
+ matches: /* @__PURE__ */ __name(function matches23(ele) {
+ if (ele.isNode()) {
+ return ele.isParent();
+ } else {
+ return ele.source().isParent() || ele.target().isParent();
+ }
+ }, "matches")
+ }, {
+ selector: ":loop",
+ matches: /* @__PURE__ */ __name(function matches24(ele) {
+ return ele.isLoop();
+ }, "matches")
+ }, {
+ selector: ":simple",
+ matches: /* @__PURE__ */ __name(function matches25(ele) {
+ return ele.isSimple();
+ }, "matches")
+ }, {
+ selector: ":active",
+ matches: /* @__PURE__ */ __name(function matches26(ele) {
+ return ele.active();
+ }, "matches")
+ }, {
+ selector: ":inactive",
+ matches: /* @__PURE__ */ __name(function matches27(ele) {
+ return !ele.active();
+ }, "matches")
+ }, {
+ selector: ":backgrounding",
+ matches: /* @__PURE__ */ __name(function matches28(ele) {
+ return ele.backgrounding();
+ }, "matches")
+ }, {
+ selector: ":nonbackgrounding",
+ matches: /* @__PURE__ */ __name(function matches29(ele) {
+ return !ele.backgrounding();
+ }, "matches")
+ }].sort(function(a2, b2) {
+ return descending2(a2.selector, b2.selector);
+ });
+ lookup = function() {
+ var selToFn = {};
+ var s2;
+ for (var i2 = 0; i2 < stateSelectors.length; i2++) {
+ s2 = stateSelectors[i2];
+ selToFn[s2.selector] = s2.matches;
+ }
+ return selToFn;
+ }();
+ stateSelectorMatches = /* @__PURE__ */ __name(function stateSelectorMatches2(sel, ele) {
+ return lookup[sel](ele);
+ }, "stateSelectorMatches");
+ stateSelectorRegex = "(" + stateSelectors.map(function(s2) {
+ return s2.selector;
+ }).join("|") + ")";
+ cleanMetaChars = /* @__PURE__ */ __name(function cleanMetaChars2(str2) {
+ return str2.replace(new RegExp("\\\\(" + tokens.metaChar + ")", "g"), function(match2, $1) {
+ return $1;
+ });
+ }, "cleanMetaChars");
+ replaceLastQuery = /* @__PURE__ */ __name(function replaceLastQuery2(selector, examiningQuery, replacementQuery) {
+ selector[selector.length - 1] = replacementQuery;
+ }, "replaceLastQuery");
+ exprs = [{
+ name: "group",
+ // just used for identifying when debugging
+ query: true,
+ regex: "(" + tokens.group + ")",
+ populate: /* @__PURE__ */ __name(function populate2(selector, query, _ref) {
+ var _ref2 = _slicedToArray(_ref, 1), group2 = _ref2[0];
+ query.checks.push({
+ type: Type3.GROUP,
+ value: group2 === "*" ? group2 : group2 + "s"
+ });
+ }, "populate")
+ }, {
+ name: "state",
+ query: true,
+ regex: stateSelectorRegex,
+ populate: /* @__PURE__ */ __name(function populate3(selector, query, _ref3) {
+ var _ref4 = _slicedToArray(_ref3, 1), state5 = _ref4[0];
+ query.checks.push({
+ type: Type3.STATE,
+ value: state5
+ });
+ }, "populate")
+ }, {
+ name: "id",
+ query: true,
+ regex: "\\#(" + tokens.id + ")",
+ populate: /* @__PURE__ */ __name(function populate4(selector, query, _ref5) {
+ var _ref6 = _slicedToArray(_ref5, 1), id27 = _ref6[0];
+ query.checks.push({
+ type: Type3.ID,
+ value: cleanMetaChars(id27)
+ });
+ }, "populate")
+ }, {
+ name: "className",
+ query: true,
+ regex: "\\.(" + tokens.className + ")",
+ populate: /* @__PURE__ */ __name(function populate5(selector, query, _ref7) {
+ var _ref8 = _slicedToArray(_ref7, 1), className = _ref8[0];
+ query.checks.push({
+ type: Type3.CLASS,
+ value: cleanMetaChars(className)
+ });
+ }, "populate")
+ }, {
+ name: "dataExists",
+ query: true,
+ regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]",
+ populate: /* @__PURE__ */ __name(function populate6(selector, query, _ref9) {
+ var _ref10 = _slicedToArray(_ref9, 1), variable = _ref10[0];
+ query.checks.push({
+ type: Type3.DATA_EXIST,
+ field: cleanMetaChars(variable)
+ });
+ }, "populate")
+ }, {
+ name: "dataCompare",
+ query: true,
+ regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]",
+ populate: /* @__PURE__ */ __name(function populate7(selector, query, _ref11) {
+ var _ref12 = _slicedToArray(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value2 = _ref12[2];
+ var valueIsString = new RegExp("^" + tokens.string + "$").exec(value2) != null;
+ if (valueIsString) {
+ value2 = value2.substring(1, value2.length - 1);
+ } else {
+ value2 = parseFloat(value2);
+ }
+ query.checks.push({
+ type: Type3.DATA_COMPARE,
+ field: cleanMetaChars(variable),
+ operator: comparatorOp,
+ value: value2
+ });
+ }, "populate")
+ }, {
+ name: "dataBool",
+ query: true,
+ regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]",
+ populate: /* @__PURE__ */ __name(function populate8(selector, query, _ref13) {
+ var _ref14 = _slicedToArray(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1];
+ query.checks.push({
+ type: Type3.DATA_BOOL,
+ field: cleanMetaChars(variable),
+ operator: boolOp
+ });
+ }, "populate")
+ }, {
+ name: "metaCompare",
+ query: true,
+ regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]",
+ populate: /* @__PURE__ */ __name(function populate9(selector, query, _ref15) {
+ var _ref16 = _slicedToArray(_ref15, 3), meta3 = _ref16[0], comparatorOp = _ref16[1], number7 = _ref16[2];
+ query.checks.push({
+ type: Type3.META_COMPARE,
+ field: cleanMetaChars(meta3),
+ operator: comparatorOp,
+ value: parseFloat(number7)
+ });
+ }, "populate")
+ }, {
+ name: "nextQuery",
+ separator: true,
+ regex: tokens.separator,
+ populate: /* @__PURE__ */ __name(function populate10(selector, query) {
+ var currentSubject = selector.currentSubject;
+ var edgeCount4 = selector.edgeCount;
+ var compoundCount = selector.compoundCount;
+ var lastQ = selector[selector.length - 1];
+ if (currentSubject != null) {
+ lastQ.subject = currentSubject;
+ selector.currentSubject = null;
+ }
+ lastQ.edgeCount = edgeCount4;
+ lastQ.compoundCount = compoundCount;
+ selector.edgeCount = 0;
+ selector.compoundCount = 0;
+ var nextQuery = selector[selector.length++] = newQuery();
+ return nextQuery;
+ }, "populate")
+ }, {
+ name: "directedEdge",
+ separator: true,
+ regex: tokens.directedEdge,
+ populate: /* @__PURE__ */ __name(function populate11(selector, query) {
+ if (selector.currentSubject == null) {
+ var edgeQuery = newQuery();
+ var source = query;
+ var target = newQuery();
+ edgeQuery.checks.push({
+ type: Type3.DIRECTED_EDGE,
+ source,
+ target
+ });
+ replaceLastQuery(selector, query, edgeQuery);
+ selector.edgeCount++;
+ return target;
+ } else {
+ var srcTgtQ = newQuery();
+ var _source = query;
+ var _target = newQuery();
+ srcTgtQ.checks.push({
+ type: Type3.NODE_SOURCE,
+ source: _source,
+ target: _target
+ });
+ replaceLastQuery(selector, query, srcTgtQ);
+ selector.edgeCount++;
+ return _target;
+ }
+ }, "populate")
+ }, {
+ name: "undirectedEdge",
+ separator: true,
+ regex: tokens.undirectedEdge,
+ populate: /* @__PURE__ */ __name(function populate12(selector, query) {
+ if (selector.currentSubject == null) {
+ var edgeQuery = newQuery();
+ var source = query;
+ var target = newQuery();
+ edgeQuery.checks.push({
+ type: Type3.UNDIRECTED_EDGE,
+ nodes: [source, target]
+ });
+ replaceLastQuery(selector, query, edgeQuery);
+ selector.edgeCount++;
+ return target;
+ } else {
+ var nhoodQ = newQuery();
+ var node2 = query;
+ var neighbor = newQuery();
+ nhoodQ.checks.push({
+ type: Type3.NODE_NEIGHBOR,
+ node: node2,
+ neighbor
+ });
+ replaceLastQuery(selector, query, nhoodQ);
+ return neighbor;
+ }
+ }, "populate")
+ }, {
+ name: "child",
+ separator: true,
+ regex: tokens.child,
+ populate: /* @__PURE__ */ __name(function populate13(selector, query) {
+ if (selector.currentSubject == null) {
+ var parentChildQuery = newQuery();
+ var child = newQuery();
+ var parent4 = selector[selector.length - 1];
+ parentChildQuery.checks.push({
+ type: Type3.CHILD,
+ parent: parent4,
+ child
+ });
+ replaceLastQuery(selector, query, parentChildQuery);
+ selector.compoundCount++;
+ return child;
+ } else if (selector.currentSubject === query) {
+ var compound = newQuery();
+ var left3 = selector[selector.length - 1];
+ var right3 = newQuery();
+ var subject = newQuery();
+ var _child = newQuery();
+ var _parent = newQuery();
+ compound.checks.push({
+ type: Type3.COMPOUND_SPLIT,
+ left: left3,
+ right: right3,
+ subject
+ });
+ subject.checks = query.checks;
+ query.checks = [{
+ type: Type3.TRUE
+ }];
+ _parent.checks.push({
+ type: Type3.TRUE
+ });
+ right3.checks.push({
+ type: Type3.PARENT,
+ // type is swapped on right side queries
+ parent: _parent,
+ child: _child
+ // empty for now
+ });
+ replaceLastQuery(selector, left3, compound);
+ selector.currentSubject = subject;
+ selector.compoundCount++;
+ return _child;
+ } else {
+ var _parent2 = newQuery();
+ var _child2 = newQuery();
+ var pcQChecks = [{
+ type: Type3.PARENT,
+ parent: _parent2,
+ child: _child2
+ }];
+ _parent2.checks = query.checks;
+ query.checks = pcQChecks;
+ selector.compoundCount++;
+ return _child2;
+ }
+ }, "populate")
+ }, {
+ name: "descendant",
+ separator: true,
+ regex: tokens.descendant,
+ populate: /* @__PURE__ */ __name(function populate14(selector, query) {
+ if (selector.currentSubject == null) {
+ var ancChQuery = newQuery();
+ var descendant = newQuery();
+ var ancestor = selector[selector.length - 1];
+ ancChQuery.checks.push({
+ type: Type3.DESCENDANT,
+ ancestor,
+ descendant
+ });
+ replaceLastQuery(selector, query, ancChQuery);
+ selector.compoundCount++;
+ return descendant;
+ } else if (selector.currentSubject === query) {
+ var compound = newQuery();
+ var left3 = selector[selector.length - 1];
+ var right3 = newQuery();
+ var subject = newQuery();
+ var _descendant = newQuery();
+ var _ancestor = newQuery();
+ compound.checks.push({
+ type: Type3.COMPOUND_SPLIT,
+ left: left3,
+ right: right3,
+ subject
+ });
+ subject.checks = query.checks;
+ query.checks = [{
+ type: Type3.TRUE
+ }];
+ _ancestor.checks.push({
+ type: Type3.TRUE
+ });
+ right3.checks.push({
+ type: Type3.ANCESTOR,
+ // type is swapped on right side queries
+ ancestor: _ancestor,
+ descendant: _descendant
+ // empty for now
+ });
+ replaceLastQuery(selector, left3, compound);
+ selector.currentSubject = subject;
+ selector.compoundCount++;
+ return _descendant;
+ } else {
+ var _ancestor2 = newQuery();
+ var _descendant2 = newQuery();
+ var adQChecks = [{
+ type: Type3.ANCESTOR,
+ ancestor: _ancestor2,
+ descendant: _descendant2
+ }];
+ _ancestor2.checks = query.checks;
+ query.checks = adQChecks;
+ selector.compoundCount++;
+ return _descendant2;
+ }
+ }, "populate")
+ }, {
+ name: "subject",
+ modifier: true,
+ regex: tokens.subject,
+ populate: /* @__PURE__ */ __name(function populate15(selector, query) {
+ if (selector.currentSubject != null && selector.currentSubject !== query) {
+ warn("Redefinition of subject in selector `" + selector.toString() + "`");
+ return false;
+ }
+ selector.currentSubject = query;
+ var topQ = selector[selector.length - 1];
+ var topChk = topQ.checks[0];
+ var topType = topChk == null ? null : topChk.type;
+ if (topType === Type3.DIRECTED_EDGE) {
+ topChk.type = Type3.NODE_TARGET;
+ } else if (topType === Type3.UNDIRECTED_EDGE) {
+ topChk.type = Type3.NODE_NEIGHBOR;
+ topChk.node = topChk.nodes[1];
+ topChk.neighbor = topChk.nodes[0];
+ topChk.nodes = null;
+ }
+ }, "populate")
+ }];
+ exprs.forEach(function(e3) {
+ return e3.regexObj = new RegExp("^" + e3.regex);
+ });
+ consumeExpr = /* @__PURE__ */ __name(function consumeExpr2(remaining) {
+ var expr;
+ var match2;
+ var name;
+ for (var j2 = 0; j2 < exprs.length; j2++) {
+ var e3 = exprs[j2];
+ var n2 = e3.name;
+ var m2 = remaining.match(e3.regexObj);
+ if (m2 != null) {
+ match2 = m2;
+ expr = e3;
+ name = n2;
+ var consumed = m2[0];
+ remaining = remaining.substring(consumed.length);
+ break;
+ }
+ }
+ return {
+ expr,
+ match: match2,
+ name,
+ remaining
+ };
+ }, "consumeExpr");
+ consumeWhitespace = /* @__PURE__ */ __name(function consumeWhitespace2(remaining) {
+ var match2 = remaining.match(/^\s+/);
+ if (match2) {
+ var consumed = match2[0];
+ remaining = remaining.substring(consumed.length);
+ }
+ return remaining;
+ }, "consumeWhitespace");
+ parse3 = /* @__PURE__ */ __name(function parse4(selector) {
+ var self2 = this;
+ var remaining = self2.inputText = selector;
+ var currentQuery = self2[0] = newQuery();
+ self2.length = 1;
+ remaining = consumeWhitespace(remaining);
+ for (; ; ) {
+ var exprInfo = consumeExpr(remaining);
+ if (exprInfo.expr == null) {
+ warn("The selector `" + selector + "`is invalid");
+ return false;
+ } else {
+ var args = exprInfo.match.slice(1);
+ var ret = exprInfo.expr.populate(self2, currentQuery, args);
+ if (ret === false) {
return false;
- };
- mdb(vke, "StreamImpl/1", 1084);
- bcb(1085, 1, qie, hBb);
- _2.td = function iBb(a) {
- eBb(this.a, BD(a, 833));
- };
- mdb(vke, "StreamImpl/1/lambda$0$Type", 1085);
- bcb(1086, 1, Oie, jBb);
- _2.Mb = function kBb(a) {
- return Qqb(this.a, a);
- };
- mdb(vke, "StreamImpl/1methodref$add$Type", 1086);
- bcb(1087, 540, pie2, lBb);
- _2.sd = function mBb(a) {
- var b;
- if (!this.a) {
- b = new Rkb();
- this.b.a.Nb(new nBb(b));
- mmb();
- Okb(b, this.c);
- this.a = new Kub(b, 16);
- }
- return Jub(this.a, a);
- };
- _2.a = null;
- mdb(vke, "StreamImpl/5", 1087);
- bcb(1088, 1, qie, nBb);
- _2.td = function oBb(a) {
- Ekb(this.a, a);
- };
- mdb(vke, "StreamImpl/5/2methodref$add$Type", 1088);
- bcb(722, 540, pie2, qBb);
- _2.sd = function rBb(a) {
- this.b = false;
- while (!this.b && this.c.sd(new sBb(this, a)))
- ;
- return this.b;
- };
- _2.b = false;
- mdb(vke, "StreamImpl/FilterSpliterator", 722);
- bcb(1079, 1, qie, sBb);
- _2.td = function tBb(a) {
- pBb(this.a, this.b, a);
- };
- mdb(vke, "StreamImpl/FilterSpliterator/lambda$0$Type", 1079);
- bcb(1075, 721, pie2, wBb);
- _2.ye = function xBb(a) {
- return vBb(this, BD(a, 182));
- };
- mdb(vke, "StreamImpl/MapToDoubleSpliterator", 1075);
- bcb(1078, 1, qie, yBb);
- _2.td = function zBb(a) {
- uBb(this.a, this.b, a);
- };
- mdb(vke, "StreamImpl/MapToDoubleSpliterator/lambda$0$Type", 1078);
- bcb(1074, 720, pie2, CBb);
- _2.ye = function DBb(a) {
- return BBb(this, BD(a, 196));
- };
- mdb(vke, "StreamImpl/MapToIntSpliterator", 1074);
- bcb(1077, 1, qie, EBb);
- _2.td = function FBb(a) {
- ABb(this.a, this.b, a);
- };
- mdb(vke, "StreamImpl/MapToIntSpliterator/lambda$0$Type", 1077);
- bcb(719, 540, pie2, IBb);
- _2.sd = function JBb(a) {
- return HBb(this, a);
- };
- mdb(vke, "StreamImpl/MapToObjSpliterator", 719);
- bcb(1076, 1, qie, KBb);
- _2.td = function LBb(a) {
- GBb(this.a, this.b, a);
- };
- mdb(vke, "StreamImpl/MapToObjSpliterator/lambda$0$Type", 1076);
- bcb(618, 1, qie, NBb);
- _2.td = function OBb(a) {
- MBb(this, a);
- };
- mdb(vke, "StreamImpl/ValueConsumer", 618);
- bcb(1080, 1, qie, PBb);
- _2.td = function QBb(a) {
- EAb();
- };
- mdb(vke, "StreamImpl/lambda$0$Type", 1080);
- bcb(1081, 1, qie, RBb);
- _2.td = function SBb(a) {
- EAb();
- };
- mdb(vke, "StreamImpl/lambda$1$Type", 1081);
- bcb(1082, 1, {}, TBb);
- _2.Ce = function UBb(a, b) {
- return $Ab(this.a, a, b);
- };
- mdb(vke, "StreamImpl/lambda$4$Type", 1082);
- bcb(1083, 1, qie, VBb);
- _2.td = function WBb(a) {
- _Ab(this.b, this.a, a);
- };
- mdb(vke, "StreamImpl/lambda$5$Type", 1083);
- bcb(1089, 1, qie, XBb);
- _2.td = function YBb(a) {
- Xzb(this.a, BD(a, 365));
- };
- mdb(vke, "TerminatableStream/lambda$0$Type", 1089);
- bcb(2041, 1, {});
- bcb(1914, 1, {}, iCb);
- mdb("javaemul.internal", "ConsoleLogger", 1914);
- bcb(2038, 1, {});
- var ECb = 0;
- var GCb, HCb = 0, ICb;
- bcb(1768, 1, qie, OCb);
- _2.td = function PCb(a) {
- BD(a, 308);
- };
- mdb(Cke, "BowyerWatsonTriangulation/lambda$0$Type", 1768);
- bcb(1769, 1, qie, QCb);
- _2.td = function RCb(a) {
- ye(this.a, BD(a, 308).e);
- };
- mdb(Cke, "BowyerWatsonTriangulation/lambda$1$Type", 1769);
- bcb(1770, 1, qie, SCb);
- _2.td = function TCb(a) {
- BD(a, 168);
- };
- mdb(Cke, "BowyerWatsonTriangulation/lambda$2$Type", 1770);
- bcb(1765, 1, Dke, WCb);
- _2.ue = function XCb(a, b) {
- return VCb(this.a, BD(a, 168), BD(b, 168));
- };
- _2.Fb = function YCb(a) {
- return this === a;
- };
- _2.ve = function ZCb() {
- return new tpb(this);
- };
- mdb(Cke, "NaiveMinST/lambda$0$Type", 1765);
- bcb(499, 1, {}, _Cb);
- mdb(Cke, "NodeMicroLayout", 499);
- bcb(168, 1, { 168: 1 }, aDb);
- _2.Fb = function bDb(a) {
- var b;
- if (JD(a, 168)) {
- b = BD(a, 168);
- return wtb(this.a, b.a) && wtb(this.b, b.b) || wtb(this.a, b.b) && wtb(this.b, b.a);
- } else {
- return false;
- }
- };
- _2.Hb = function cDb() {
- return xtb(this.a) + xtb(this.b);
- };
- var GM = mdb(Cke, "TEdge", 168);
- bcb(308, 1, { 308: 1 }, eDb);
- _2.Fb = function fDb(a) {
- var b;
- if (JD(a, 308)) {
- b = BD(a, 308);
- return dDb(this, b.a) && dDb(this, b.b) && dDb(this, b.c);
- } else {
- return false;
- }
- };
- _2.Hb = function gDb() {
- return xtb(this.a) + xtb(this.b) + xtb(this.c);
- };
- mdb(Cke, "TTriangle", 308);
- bcb(221, 1, { 221: 1 }, hDb);
- mdb(Cke, "Tree", 221);
- bcb(1254, 1, {}, jDb);
- mdb(Eke, "Scanline", 1254);
- var JM = odb(Eke, Fke);
- bcb(1692, 1, {}, mDb);
- mdb(Gke, "CGraph", 1692);
- bcb(307, 1, { 307: 1 }, oDb);
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- _2.g = 0;
- _2.i = 0;
- _2.k = Qje;
- mdb(Gke, "CGroup", 307);
- bcb(815, 1, {}, sDb);
- mdb(Gke, "CGroup/CGroupBuilder", 815);
- bcb(57, 1, { 57: 1 }, tDb);
- _2.Ib = function uDb() {
- var a;
- if (this.j) {
- return GD(this.j.Kb(this));
- }
- return fdb(PM), PM.o + "@" + (a = FCb(this) >>> 0, a.toString(16));
- };
- _2.f = 0;
- _2.i = Qje;
- var PM = mdb(Gke, "CNode", 57);
- bcb(814, 1, {}, zDb);
- mdb(Gke, "CNode/CNodeBuilder", 814);
- var EDb;
- bcb(1525, 1, {}, GDb);
- _2.Oe = function HDb(a, b) {
- return 0;
- };
- _2.Pe = function IDb(a, b) {
- return 0;
- };
- mdb(Gke, Ike, 1525);
- bcb(1790, 1, {}, JDb);
- _2.Le = function KDb(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- j = Pje;
- for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
- b = BD(mlb(d), 57);
- j = $wnd.Math.min(j, b.a.j.d.c + b.b.a);
- }
- n = new Psb();
- for (g = new olb(a.a.a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 307);
- f2.k = j;
- f2.g == 0 && (Gsb(n, f2, n.c.b, n.c), true);
- }
- while (n.b != 0) {
- f2 = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 307);
- e = f2.j.d.c;
- for (m = f2.a.a.ec().Kc(); m.Ob(); ) {
- k = BD(m.Pb(), 57);
- p = f2.k + k.b.a;
- !UDb(a, f2, a.d) || k.d.c < p ? k.i = p : k.i = k.d.c;
- }
- e -= f2.j.i;
- f2.b += e;
- a.d == (ead(), bad) || a.d == _9c ? f2.c += e : f2.c -= e;
- for (l = f2.a.a.ec().Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 57);
- for (i3 = k.c.Kc(); i3.Ob(); ) {
- h = BD(i3.Pb(), 57);
- fad(a.d) ? o2 = a.g.Oe(k, h) : o2 = a.g.Pe(k, h);
- h.a.k = $wnd.Math.max(h.a.k, k.i + k.d.b + o2 - h.b.a);
- VDb(a, h, a.d) && (h.a.k = $wnd.Math.max(h.a.k, h.d.c - h.b.a));
- --h.a.g;
- h.a.g == 0 && Dsb(n, h.a);
- }
- }
- }
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- b.d.c = b.i;
+ } else if (ret != null) {
+ currentQuery = ret;
+ }
+ }
+ remaining = exprInfo.remaining;
+ if (remaining.match(/^\s*$/)) {
+ break;
+ }
+ }
+ var lastQ = self2[self2.length - 1];
+ if (self2.currentSubject != null) {
+ lastQ.subject = self2.currentSubject;
+ }
+ lastQ.edgeCount = self2.edgeCount;
+ lastQ.compoundCount = self2.compoundCount;
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var q2 = self2[i2];
+ if (q2.compoundCount > 0 && q2.edgeCount > 0) {
+ warn("The selector `" + selector + "` is invalid because it uses both a compound selector and an edge selector");
+ return false;
+ }
+ if (q2.edgeCount > 1) {
+ warn("The selector `" + selector + "` is invalid because it uses multiple edge selectors");
+ return false;
+ } else if (q2.edgeCount === 1) {
+ warn("The selector `" + selector + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.");
+ }
+ }
+ return true;
+ }, "parse");
+ toString3 = /* @__PURE__ */ __name(function toString4() {
+ if (this.toStringCache != null) {
+ return this.toStringCache;
+ }
+ var clean = /* @__PURE__ */ __name(function clean2(obj) {
+ if (obj == null) {
+ return "";
+ } else {
+ return obj;
+ }
+ }, "clean");
+ var cleanVal = /* @__PURE__ */ __name(function cleanVal2(val) {
+ if (string(val)) {
+ return '"' + val + '"';
+ } else {
+ return clean(val);
+ }
+ }, "cleanVal");
+ var space = /* @__PURE__ */ __name(function space2(val) {
+ return " " + val + " ";
+ }, "space");
+ var checkToString = /* @__PURE__ */ __name(function checkToString2(check, subject) {
+ var type3 = check.type, value2 = check.value;
+ switch (type3) {
+ case Type3.GROUP: {
+ var group2 = clean(value2);
+ return group2.substring(0, group2.length - 1);
+ }
+ case Type3.DATA_COMPARE: {
+ var field = check.field, operator = check.operator;
+ return "[" + field + space(clean(operator)) + cleanVal(value2) + "]";
+ }
+ case Type3.DATA_BOOL: {
+ var _operator = check.operator, _field = check.field;
+ return "[" + clean(_operator) + _field + "]";
+ }
+ case Type3.DATA_EXIST: {
+ var _field2 = check.field;
+ return "[" + _field2 + "]";
+ }
+ case Type3.META_COMPARE: {
+ var _operator2 = check.operator, _field3 = check.field;
+ return "[[" + _field3 + space(clean(_operator2)) + cleanVal(value2) + "]]";
+ }
+ case Type3.STATE: {
+ return value2;
+ }
+ case Type3.ID: {
+ return "#" + value2;
+ }
+ case Type3.CLASS: {
+ return "." + value2;
+ }
+ case Type3.PARENT:
+ case Type3.CHILD: {
+ return queryToString(check.parent, subject) + space(">") + queryToString(check.child, subject);
+ }
+ case Type3.ANCESTOR:
+ case Type3.DESCENDANT: {
+ return queryToString(check.ancestor, subject) + " " + queryToString(check.descendant, subject);
+ }
+ case Type3.COMPOUND_SPLIT: {
+ var lhs = queryToString(check.left, subject);
+ var sub2 = queryToString(check.subject, subject);
+ var rhs = queryToString(check.right, subject);
+ return lhs + (lhs.length > 0 ? " " : "") + sub2 + rhs;
+ }
+ case Type3.TRUE: {
+ return "";
+ }
+ }
+ }, "checkToString");
+ var queryToString = /* @__PURE__ */ __name(function queryToString2(query2, subject) {
+ return query2.checks.reduce(function(str3, chk, i3) {
+ return str3 + (subject === query2 && i3 === 0 ? "$" : "") + checkToString(chk, subject);
+ }, "");
+ }, "queryToString");
+ var str2 = "";
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var query = this[i2];
+ str2 += queryToString(query, query.subject);
+ if (this.length > 1 && i2 < this.length - 1) {
+ str2 += ", ";
+ }
+ }
+ this.toStringCache = str2;
+ return str2;
+ }, "toString");
+ parse$1 = {
+ parse: parse3,
+ toString: toString3
+ };
+ valCmp = /* @__PURE__ */ __name(function valCmp2(fieldVal, operator, value2) {
+ var matches33;
+ var isFieldStr = string(fieldVal);
+ var isFieldNum = number$1(fieldVal);
+ var isValStr = string(value2);
+ var fieldStr, valStr;
+ var caseInsensitive = false;
+ var notExpr = false;
+ var isIneqCmp = false;
+ if (operator.indexOf("!") >= 0) {
+ operator = operator.replace("!", "");
+ notExpr = true;
+ }
+ if (operator.indexOf("@") >= 0) {
+ operator = operator.replace("@", "");
+ caseInsensitive = true;
+ }
+ if (isFieldStr || isValStr || caseInsensitive) {
+ fieldStr = !isFieldStr && !isFieldNum ? "" : "" + fieldVal;
+ valStr = "" + value2;
+ }
+ if (caseInsensitive) {
+ fieldVal = fieldStr = fieldStr.toLowerCase();
+ value2 = valStr = valStr.toLowerCase();
+ }
+ switch (operator) {
+ case "*=":
+ matches33 = fieldStr.indexOf(valStr) >= 0;
+ break;
+ case "$=":
+ matches33 = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;
+ break;
+ case "^=":
+ matches33 = fieldStr.indexOf(valStr) === 0;
+ break;
+ case "=":
+ matches33 = fieldVal === value2;
+ break;
+ case ">":
+ isIneqCmp = true;
+ matches33 = fieldVal > value2;
+ break;
+ case ">=":
+ isIneqCmp = true;
+ matches33 = fieldVal >= value2;
+ break;
+ case "<":
+ isIneqCmp = true;
+ matches33 = fieldVal < value2;
+ break;
+ case "<=":
+ isIneqCmp = true;
+ matches33 = fieldVal <= value2;
+ break;
+ default:
+ matches33 = false;
+ break;
+ }
+ if (notExpr && (fieldVal != null || !isIneqCmp)) {
+ matches33 = !matches33;
+ }
+ return matches33;
+ }, "valCmp");
+ boolCmp = /* @__PURE__ */ __name(function boolCmp2(fieldVal, operator) {
+ switch (operator) {
+ case "?":
+ return fieldVal ? true : false;
+ case "!":
+ return fieldVal ? false : true;
+ case "^":
+ return fieldVal === void 0;
+ }
+ }, "boolCmp");
+ existCmp = /* @__PURE__ */ __name(function existCmp2(fieldVal) {
+ return fieldVal !== void 0;
+ }, "existCmp");
+ data$1 = /* @__PURE__ */ __name(function data2(ele, field) {
+ return ele.data(field);
+ }, "data");
+ meta = /* @__PURE__ */ __name(function meta2(ele, field) {
+ return ele[field]();
+ }, "meta");
+ match = [];
+ matches$1 = /* @__PURE__ */ __name(function matches30(query, ele) {
+ return query.checks.every(function(chk) {
+ return match[chk.type](chk, ele);
+ });
+ }, "matches");
+ match[Type3.GROUP] = function(check, ele) {
+ var group2 = check.value;
+ return group2 === "*" || group2 === ele.group();
+ };
+ match[Type3.STATE] = function(check, ele) {
+ var stateSelector = check.value;
+ return stateSelectorMatches(stateSelector, ele);
+ };
+ match[Type3.ID] = function(check, ele) {
+ var id27 = check.value;
+ return ele.id() === id27;
+ };
+ match[Type3.CLASS] = function(check, ele) {
+ var cls = check.value;
+ return ele.hasClass(cls);
+ };
+ match[Type3.META_COMPARE] = function(check, ele) {
+ var field = check.field, operator = check.operator, value2 = check.value;
+ return valCmp(meta(ele, field), operator, value2);
+ };
+ match[Type3.DATA_COMPARE] = function(check, ele) {
+ var field = check.field, operator = check.operator, value2 = check.value;
+ return valCmp(data$1(ele, field), operator, value2);
+ };
+ match[Type3.DATA_BOOL] = function(check, ele) {
+ var field = check.field, operator = check.operator;
+ return boolCmp(data$1(ele, field), operator);
+ };
+ match[Type3.DATA_EXIST] = function(check, ele) {
+ var field = check.field;
+ check.operator;
+ return existCmp(data$1(ele, field));
+ };
+ match[Type3.UNDIRECTED_EDGE] = function(check, ele) {
+ var qA = check.nodes[0];
+ var qB = check.nodes[1];
+ var src = ele.source();
+ var tgt = ele.target();
+ return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);
+ };
+ match[Type3.NODE_NEIGHBOR] = function(check, ele) {
+ return matches$1(check.node, ele) && ele.neighborhood().some(function(n2) {
+ return n2.isNode() && matches$1(check.neighbor, n2);
+ });
+ };
+ match[Type3.DIRECTED_EDGE] = function(check, ele) {
+ return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());
+ };
+ match[Type3.NODE_SOURCE] = function(check, ele) {
+ return matches$1(check.source, ele) && ele.outgoers().some(function(n2) {
+ return n2.isNode() && matches$1(check.target, n2);
+ });
+ };
+ match[Type3.NODE_TARGET] = function(check, ele) {
+ return matches$1(check.target, ele) && ele.incomers().some(function(n2) {
+ return n2.isNode() && matches$1(check.source, n2);
+ });
+ };
+ match[Type3.CHILD] = function(check, ele) {
+ return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());
+ };
+ match[Type3.PARENT] = function(check, ele) {
+ return matches$1(check.parent, ele) && ele.children().some(function(c3) {
+ return matches$1(check.child, c3);
+ });
+ };
+ match[Type3.DESCENDANT] = function(check, ele) {
+ return matches$1(check.descendant, ele) && ele.ancestors().some(function(a2) {
+ return matches$1(check.ancestor, a2);
+ });
+ };
+ match[Type3.ANCESTOR] = function(check, ele) {
+ return matches$1(check.ancestor, ele) && ele.descendants().some(function(d2) {
+ return matches$1(check.descendant, d2);
+ });
+ };
+ match[Type3.COMPOUND_SPLIT] = function(check, ele) {
+ return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);
+ };
+ match[Type3.TRUE] = function() {
+ return true;
+ };
+ match[Type3.COLLECTION] = function(check, ele) {
+ var collection4 = check.value;
+ return collection4.has(ele);
+ };
+ match[Type3.FILTER] = function(check, ele) {
+ var filter6 = check.value;
+ return filter6(ele);
+ };
+ filter3 = /* @__PURE__ */ __name(function filter4(collection4) {
+ var self2 = this;
+ if (self2.length === 1 && self2[0].checks.length === 1 && self2[0].checks[0].type === Type3.ID) {
+ return collection4.getElementById(self2[0].checks[0].value).collection();
+ }
+ var selectorFunction = /* @__PURE__ */ __name(function selectorFunction2(element3) {
+ for (var j2 = 0; j2 < self2.length; j2++) {
+ var query = self2[j2];
+ if (matches$1(query, element3)) {
+ return true;
+ }
+ }
+ return false;
+ }, "selectorFunction");
+ if (self2.text() == null) {
+ selectorFunction = /* @__PURE__ */ __name(function selectorFunction2() {
+ return true;
+ }, "selectorFunction");
+ }
+ return collection4.filter(selectorFunction);
+ }, "filter");
+ matches31 = /* @__PURE__ */ __name(function matches32(ele) {
+ var self2 = this;
+ for (var j2 = 0; j2 < self2.length; j2++) {
+ var query = self2[j2];
+ if (matches$1(query, ele)) {
+ return true;
+ }
+ }
+ return false;
+ }, "matches");
+ matching = {
+ matches: matches31,
+ filter: filter3
+ };
+ Selector = /* @__PURE__ */ __name(function Selector2(selector) {
+ this.inputText = selector;
+ this.currentSubject = null;
+ this.compoundCount = 0;
+ this.edgeCount = 0;
+ this.length = 0;
+ if (selector == null || string(selector) && selector.match(/^\s*$/)) ;
+ else if (elementOrCollection(selector)) {
+ this.addQuery({
+ checks: [{
+ type: Type3.COLLECTION,
+ value: selector.collection()
+ }]
+ });
+ } else if (fn$6(selector)) {
+ this.addQuery({
+ checks: [{
+ type: Type3.FILTER,
+ value: selector
+ }]
+ });
+ } else if (string(selector)) {
+ if (!this.parse(selector)) {
+ this.invalid = true;
+ }
+ } else {
+ error("A selector must be created from a string; found ");
+ }
+ }, "Selector");
+ selfn = Selector.prototype;
+ [parse$1, matching].forEach(function(p3) {
+ return extend2(selfn, p3);
+ });
+ selfn.text = function() {
+ return this.inputText;
+ };
+ selfn.size = function() {
+ return this.length;
+ };
+ selfn.eq = function(i2) {
+ return this[i2];
+ };
+ selfn.sameText = function(otherSel) {
+ return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();
+ };
+ selfn.addQuery = function(q2) {
+ this[this.length++] = q2;
+ };
+ selfn.selector = selfn.toString;
+ elesfn$g = {
+ allAre: /* @__PURE__ */ __name(function allAre(selector) {
+ var selObj = new Selector(selector);
+ return this.every(function(ele) {
+ return selObj.matches(ele);
+ });
+ }, "allAre"),
+ is: /* @__PURE__ */ __name(function is(selector) {
+ var selObj = new Selector(selector);
+ return this.some(function(ele) {
+ return selObj.matches(ele);
+ });
+ }, "is"),
+ some: /* @__PURE__ */ __name(function some2(fn3, thisArg) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ret = !thisArg ? fn3(this[i2], i2, this) : fn3.apply(thisArg, [this[i2], i2, this]);
+ if (ret) {
+ return true;
+ }
+ }
+ return false;
+ }, "some"),
+ every: /* @__PURE__ */ __name(function every2(fn3, thisArg) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ret = !thisArg ? fn3(this[i2], i2, this) : fn3.apply(thisArg, [this[i2], i2, this]);
+ if (!ret) {
+ return false;
+ }
+ }
+ return true;
+ }, "every"),
+ same: /* @__PURE__ */ __name(function same(collection4) {
+ if (this === collection4) {
+ return true;
+ }
+ collection4 = this.cy().collection(collection4);
+ var thisLength = this.length;
+ var collectionLength = collection4.length;
+ if (thisLength !== collectionLength) {
+ return false;
+ }
+ if (thisLength === 1) {
+ return this[0] === collection4[0];
+ }
+ return this.every(function(ele) {
+ return collection4.hasElementWithId(ele.id());
+ });
+ }, "same"),
+ anySame: /* @__PURE__ */ __name(function anySame(collection4) {
+ collection4 = this.cy().collection(collection4);
+ return this.some(function(ele) {
+ return collection4.hasElementWithId(ele.id());
+ });
+ }, "anySame"),
+ allAreNeighbors: /* @__PURE__ */ __name(function allAreNeighbors(collection4) {
+ collection4 = this.cy().collection(collection4);
+ var nhood = this.neighborhood();
+ return collection4.every(function(ele) {
+ return nhood.hasElementWithId(ele.id());
+ });
+ }, "allAreNeighbors"),
+ contains: /* @__PURE__ */ __name(function contains3(collection4) {
+ collection4 = this.cy().collection(collection4);
+ var self2 = this;
+ return collection4.every(function(ele) {
+ return self2.hasElementWithId(ele.id());
+ });
+ }, "contains")
+ };
+ elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;
+ elesfn$g.has = elesfn$g.contains;
+ elesfn$g.equal = elesfn$g.equals = elesfn$g.same;
+ cache = /* @__PURE__ */ __name(function cache2(fn3, name) {
+ return /* @__PURE__ */ __name(function traversalCache(arg1, arg2, arg3, arg4) {
+ var selectorOrEles = arg1;
+ var eles = this;
+ var key;
+ if (selectorOrEles == null) {
+ key = "";
+ } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {
+ key = selectorOrEles.id();
+ }
+ if (eles.length === 1 && key) {
+ var _p = eles[0]._private;
+ var tch = _p.traversalCache = _p.traversalCache || {};
+ var ch = tch[name] = tch[name] || [];
+ var hash = hashString(key);
+ var cacheHit = ch[hash];
+ if (cacheHit) {
+ return cacheHit;
+ } else {
+ return ch[hash] = fn3.call(eles, arg1, arg2, arg3, arg4);
+ }
+ } else {
+ return fn3.call(eles, arg1, arg2, arg3, arg4);
+ }
+ }, "traversalCache");
+ }, "cache");
+ elesfn$f = {
+ parent: /* @__PURE__ */ __name(function parent(selector) {
+ var parents4 = [];
+ if (this.length === 1) {
+ var parent4 = this[0]._private.parent;
+ if (parent4) {
+ return parent4;
+ }
+ }
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _parent = ele._private.parent;
+ if (_parent) {
+ parents4.push(_parent);
+ }
+ }
+ return this.spawn(parents4, true).filter(selector);
+ }, "parent"),
+ parents: /* @__PURE__ */ __name(function parents3(selector) {
+ var parents4 = [];
+ var eles = this.parent();
+ while (eles.nonempty()) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ parents4.push(ele);
+ }
+ eles = eles.parent();
+ }
+ return this.spawn(parents4, true).filter(selector);
+ }, "parents"),
+ commonAncestors: /* @__PURE__ */ __name(function commonAncestors(selector) {
+ var ancestors;
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var parents4 = ele.parents();
+ ancestors = ancestors || parents4;
+ ancestors = ancestors.intersect(parents4);
+ }
+ return ancestors.filter(selector);
+ }, "commonAncestors"),
+ orphans: /* @__PURE__ */ __name(function orphans(selector) {
+ return this.stdFilter(function(ele) {
+ return ele.isOrphan();
+ }).filter(selector);
+ }, "orphans"),
+ nonorphans: /* @__PURE__ */ __name(function nonorphans(selector) {
+ return this.stdFilter(function(ele) {
+ return ele.isChild();
+ }).filter(selector);
+ }, "nonorphans"),
+ children: cache(function(selector) {
+ var children2 = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var eleChildren = ele._private.children;
+ for (var j2 = 0; j2 < eleChildren.length; j2++) {
+ children2.push(eleChildren[j2]);
+ }
+ }
+ return this.spawn(children2, true).filter(selector);
+ }, "children"),
+ siblings: /* @__PURE__ */ __name(function siblings(selector) {
+ return this.parent().children().not(this).filter(selector);
+ }, "siblings"),
+ isParent: /* @__PURE__ */ __name(function isParent() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.children.length !== 0;
+ }
+ }, "isParent"),
+ isChildless: /* @__PURE__ */ __name(function isChildless() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.children.length === 0;
+ }
+ }, "isChildless"),
+ isChild: /* @__PURE__ */ __name(function isChild() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.parent != null;
+ }
+ }, "isChild"),
+ isOrphan: /* @__PURE__ */ __name(function isOrphan() {
+ var ele = this[0];
+ if (ele) {
+ return ele.isNode() && ele._private.parent == null;
+ }
+ }, "isOrphan"),
+ descendants: /* @__PURE__ */ __name(function descendants3(selector) {
+ var elements3 = [];
+ function add3(eles) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ elements3.push(ele);
+ if (ele.children().nonempty()) {
+ add3(ele.children());
}
+ }
+ }
+ __name(add3, "add");
+ add3(this.children());
+ return this.spawn(elements3, true).filter(selector);
+ }, "descendants")
+ };
+ __name(forEachCompound, "forEachCompound");
+ __name(addChildren, "addChildren");
+ elesfn$f.forEachDown = function(fn3) {
+ var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ return forEachCompound(this, fn3, includeSelf, addChildren);
+ };
+ __name(addParent, "addParent");
+ elesfn$f.forEachUp = function(fn3) {
+ var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ return forEachCompound(this, fn3, includeSelf, addParent);
+ };
+ __name(addParentAndChildren, "addParentAndChildren");
+ elesfn$f.forEachUpAndDown = function(fn3) {
+ var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ return forEachCompound(this, fn3, includeSelf, addParentAndChildren);
+ };
+ elesfn$f.ancestors = elesfn$f.parents;
+ fn$5 = elesfn$e = {
+ data: define2.data({
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "data",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ immutableKeys: {
+ "id": true,
+ "source": true,
+ "target": true,
+ "parent": true
+ },
+ updateStyle: true
+ }),
+ removeData: define2.removeData({
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ immutableKeys: {
+ "id": true,
+ "source": true,
+ "target": true,
+ "parent": true
+ },
+ updateStyle: true
+ }),
+ scratch: define2.data({
+ field: "scratch",
+ bindingEvent: "scratch",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "scratch",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ updateStyle: true
+ }),
+ removeScratch: define2.removeData({
+ field: "scratch",
+ event: "scratch",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ updateStyle: true
+ }),
+ rscratch: define2.data({
+ field: "rscratch",
+ allowBinding: false,
+ allowSetting: true,
+ settingTriggersEvent: false,
+ allowGetting: true
+ }),
+ removeRscratch: define2.removeData({
+ field: "rscratch",
+ triggerEvent: false
+ }),
+ id: /* @__PURE__ */ __name(function id21() {
+ var ele = this[0];
+ if (ele) {
+ return ele._private.data.id;
+ }
+ }, "id")
+ };
+ fn$5.attr = fn$5.data;
+ fn$5.removeAttr = fn$5.removeData;
+ data3 = elesfn$e;
+ elesfn$d = {};
+ __name(defineDegreeFunction, "defineDegreeFunction");
+ extend2(elesfn$d, {
+ degree: defineDegreeFunction(function(node2, edge) {
+ if (edge.source().same(edge.target())) {
+ return 2;
+ } else {
+ return 1;
+ }
+ }),
+ indegree: defineDegreeFunction(function(node2, edge) {
+ if (edge.target().same(node2)) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }),
+ outdegree: defineDegreeFunction(function(node2, edge) {
+ if (edge.source().same(node2)) {
+ return 1;
+ } else {
+ return 0;
+ }
+ })
+ });
+ __name(defineDegreeBoundsFunction, "defineDegreeBoundsFunction");
+ extend2(elesfn$d, {
+ minDegree: defineDegreeBoundsFunction("degree", function(degree, min9) {
+ return degree < min9;
+ }),
+ maxDegree: defineDegreeBoundsFunction("degree", function(degree, max10) {
+ return degree > max10;
+ }),
+ minIndegree: defineDegreeBoundsFunction("indegree", function(degree, min9) {
+ return degree < min9;
+ }),
+ maxIndegree: defineDegreeBoundsFunction("indegree", function(degree, max10) {
+ return degree > max10;
+ }),
+ minOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, min9) {
+ return degree < min9;
+ }),
+ maxOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, max10) {
+ return degree > max10;
+ })
+ });
+ extend2(elesfn$d, {
+ totalDegree: /* @__PURE__ */ __name(function totalDegree(includeLoops) {
+ var total = 0;
+ var nodes6 = this.nodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ total += nodes6[i2].degree(includeLoops);
+ }
+ return total;
+ }, "totalDegree")
+ });
+ beforePositionSet = /* @__PURE__ */ __name(function beforePositionSet2(eles, newPos, silent) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.locked()) {
+ var oldPos = ele._private.position;
+ var delta = {
+ x: newPos.x != null ? newPos.x - oldPos.x : 0,
+ y: newPos.y != null ? newPos.y - oldPos.y : 0
};
- mdb(Gke, "LongestPathCompaction", 1790);
- bcb(1690, 1, {}, cEb);
- _2.e = false;
- var LDb, MDb, NDb;
- var TM = mdb(Gke, Nke, 1690);
- bcb(1691, 1, qie, dEb);
- _2.td = function eEb(a) {
- WDb(this.a, BD(a, 46));
- };
- mdb(Gke, Oke, 1691);
- bcb(1791, 1, {}, fEb);
- _2.Me = function gEb(a) {
- var b, c2, d, e, f2, g, h;
- for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 57);
- b.c.$b();
- }
- for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 57);
- for (g = new olb(a.a.b); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 57);
- if (d == f2) {
- continue;
- }
- if (!!d.a && d.a == f2.a) {
- continue;
- }
- fad(a.d) ? h = a.g.Pe(d, f2) : h = a.g.Oe(d, f2);
- (f2.d.c > d.d.c || d.d.c == f2.d.c && d.d.b < f2.d.b) && BDb(f2.d.d + f2.d.a + h, d.d.d) && DDb(f2.d.d, d.d.d + d.d.a + h) && d.c.Fc(f2);
+ if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {
+ ele.children().shift(delta, silent);
+ }
+ ele.dirtyBoundingBoxCache();
+ }
+ }
+ }, "beforePositionSet");
+ positionDef = {
+ field: "position",
+ bindingEvent: "position",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "position",
+ settingTriggersEvent: true,
+ triggerFnName: "emitAndNotify",
+ allowGetting: true,
+ validKeys: ["x", "y"],
+ beforeGet: /* @__PURE__ */ __name(function beforeGet(ele) {
+ ele.updateCompoundBounds();
+ }, "beforeGet"),
+ beforeSet: /* @__PURE__ */ __name(function beforeSet(eles, newPos) {
+ beforePositionSet(eles, newPos, false);
+ }, "beforeSet"),
+ onSet: /* @__PURE__ */ __name(function onSet(eles) {
+ eles.dirtyCompoundBoundsCache();
+ }, "onSet"),
+ canSet: /* @__PURE__ */ __name(function canSet(ele) {
+ return !ele.locked();
+ }, "canSet")
+ };
+ fn$4 = elesfn$c = {
+ position: define2.data(positionDef),
+ // position but no notification to renderer
+ silentPosition: define2.data(extend2({}, positionDef, {
+ allowBinding: false,
+ allowSetting: true,
+ settingTriggersEvent: false,
+ allowGetting: false,
+ beforeSet: /* @__PURE__ */ __name(function beforeSet2(eles, newPos) {
+ beforePositionSet(eles, newPos, true);
+ }, "beforeSet"),
+ onSet: /* @__PURE__ */ __name(function onSet2(eles) {
+ eles.dirtyCompoundBoundsCache();
+ }, "onSet")
+ })),
+ positions: /* @__PURE__ */ __name(function positions(pos, silent) {
+ if (plainObject(pos)) {
+ if (silent) {
+ this.silentPosition(pos);
+ } else {
+ this.position(pos);
+ }
+ } else if (fn$6(pos)) {
+ var _fn = pos;
+ var cy = this.cy();
+ cy.startBatch();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _pos = void 0;
+ if (_pos = _fn(ele, i2)) {
+ if (silent) {
+ ele.silentPosition(_pos);
+ } else {
+ ele.position(_pos);
}
}
+ }
+ cy.endBatch();
+ }
+ return this;
+ }, "positions"),
+ silentPositions: /* @__PURE__ */ __name(function silentPositions(pos) {
+ return this.positions(pos, true);
+ }, "silentPositions"),
+ shift: /* @__PURE__ */ __name(function shift(dim, val, silent) {
+ var delta;
+ if (plainObject(dim)) {
+ delta = {
+ x: number$1(dim.x) ? dim.x : 0,
+ y: number$1(dim.y) ? dim.y : 0
};
- mdb(Gke, "QuadraticConstraintCalculation", 1791);
- bcb(522, 1, { 522: 1 }, lEb);
- _2.a = false;
- _2.b = false;
- _2.c = false;
- _2.d = false;
- mdb(Gke, Pke, 522);
- bcb(803, 1, {}, oEb);
- _2.Me = function pEb(a) {
- this.c = a;
- nEb(this, new GEb());
- };
- mdb(Gke, Qke, 803);
- bcb(1718, 1, { 679: 1 }, uEb);
- _2.Ke = function vEb(a) {
- rEb(this, BD(a, 464));
- };
- mdb(Gke, Rke, 1718);
- bcb(1719, 1, Dke, xEb);
- _2.ue = function yEb(a, b) {
- return wEb(BD(a, 57), BD(b, 57));
- };
- _2.Fb = function zEb(a) {
- return this === a;
- };
- _2.ve = function AEb() {
- return new tpb(this);
- };
- mdb(Gke, Ske, 1719);
- bcb(464, 1, { 464: 1 }, BEb);
- _2.a = false;
- mdb(Gke, Tke, 464);
- bcb(1720, 1, Dke, CEb);
- _2.ue = function DEb(a, b) {
- return qEb(BD(a, 464), BD(b, 464));
- };
- _2.Fb = function EEb(a) {
- return this === a;
- };
- _2.ve = function FEb() {
- return new tpb(this);
- };
- mdb(Gke, Uke, 1720);
- bcb(1721, 1, Vke, GEb);
- _2.Lb = function HEb(a) {
- return BD(a, 57), true;
- };
- _2.Fb = function IEb(a) {
- return this === a;
- };
- _2.Mb = function JEb(a) {
- return BD(a, 57), true;
- };
- mdb(Gke, "ScanlineConstraintCalculator/lambda$1$Type", 1721);
- bcb(428, 22, { 3: 1, 35: 1, 22: 1, 428: 1 }, NEb);
- var KEb, LEb;
- var aN = ndb(Wke, "HighLevelSortingCriterion", 428, CI, PEb, OEb);
- var QEb;
- bcb(427, 22, { 3: 1, 35: 1, 22: 1, 427: 1 }, VEb);
- var SEb, TEb;
- var bN = ndb(Wke, "LowLevelSortingCriterion", 427, CI, XEb, WEb);
- var YEb;
- var C0 = odb(Xke, "ILayoutMetaDataProvider");
- bcb(853, 1, ale, gFb);
- _2.Qe = function hFb(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yke), ble), "Polyomino Traversal Strategy"), "Traversal strategy for trying different candidate positions for polyominoes."), eFb), (_5c(), V5c)), dN), pqb((N5c(), L5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zke), ble), "Polyomino Secondary Sorting Criterion"), "Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."), cFb), V5c), bN), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ke), ble), "Polyomino Primary Sorting Criterion"), "Possible primary sorting criteria for the processing order of polyominoes."), aFb), V5c), aN), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ke), ble), "Fill Polyominoes"), "Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."), (Bcb(), true)), T5c), wI), pqb(L5c))));
- };
- var $Eb, _Eb, aFb, bFb, cFb, dFb, eFb;
- mdb(Wke, "PolyominoOptions", 853);
- bcb(250, 22, { 3: 1, 35: 1, 22: 1, 250: 1 }, sFb);
- var iFb, jFb, kFb, lFb, mFb, nFb, oFb, pFb, qFb;
- var dN = ndb(Wke, "TraversalStrategy", 250, CI, uFb, tFb);
- var vFb;
- bcb(213, 1, { 213: 1 }, yFb);
- _2.Ib = function zFb() {
- return "NEdge[id=" + this.b + " w=" + this.g + " d=" + this.a + "]";
- };
- _2.a = 1;
- _2.b = 0;
- _2.c = 0;
- _2.f = false;
- _2.g = 0;
- var fN = mdb(cle, "NEdge", 213);
- bcb(176, 1, {}, FFb);
- mdb(cle, "NEdge/NEdgeBuilder", 176);
- bcb(653, 1, {}, KFb);
- mdb(cle, "NGraph", 653);
- bcb(121, 1, { 121: 1 }, MFb);
- _2.c = -1;
- _2.d = 0;
- _2.e = 0;
- _2.i = -1;
- _2.j = false;
- var jN = mdb(cle, "NNode", 121);
- bcb(795, 1, cke, PFb);
- _2.Jc = function XFb(a) {
- reb(this, a);
- };
- _2.Lc = function cGb() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.ad = function hGb(a) {
- ktb(this, a);
- };
- _2.Nc = function iGb() {
- return new Kub(this, 16);
+ silent = val;
+ } else if (string(dim) && number$1(val)) {
+ delta = {
+ x: 0,
+ y: 0
};
- _2.Oc = function jGb() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.Vc = function QFb(a, b) {
- ++this.b;
- Dkb(this.a, a, b);
- };
- _2.Fc = function RFb(a) {
- return NFb(this, a);
- };
- _2.Wc = function SFb(a, b) {
- ++this.b;
- return Fkb(this.a, a, b);
- };
- _2.Gc = function TFb(a) {
- ++this.b;
- return Gkb(this.a, a);
- };
- _2.$b = function UFb() {
- ++this.b;
- this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- };
- _2.Hc = function VFb(a) {
- return Jkb(this.a, a, 0) != -1;
- };
- _2.Ic = function WFb(a) {
- return Be(this.a, a);
- };
- _2.Xb = function YFb(a) {
- return Ikb(this.a, a);
- };
- _2.Xc = function ZFb(a) {
- return Jkb(this.a, a, 0);
- };
- _2.dc = function $Fb() {
- return this.a.c.length == 0;
- };
- _2.Kc = function _Fb() {
- return vr(new olb(this.a));
- };
- _2.Yc = function aGb() {
- throw vbb(new bgb());
- };
- _2.Zc = function bGb(a) {
- throw vbb(new bgb());
- };
- _2.$c = function dGb(a) {
- ++this.b;
- return Kkb(this.a, a);
- };
- _2.Mc = function eGb(a) {
- return OFb(this, a);
- };
- _2._c = function fGb(a, b) {
- ++this.b;
- return Nkb(this.a, a, b);
- };
- _2.gc = function gGb() {
- return this.a.c.length;
- };
- _2.bd = function kGb(a, b) {
- return new Jib(this.a, a, b);
- };
- _2.Pc = function lGb() {
- return Pkb(this.a);
- };
- _2.Qc = function mGb(a) {
- return Qkb(this.a, a);
- };
- _2.b = 0;
- mdb(cle, "NNode/ChangeAwareArrayList", 795);
- bcb(269, 1, {}, pGb);
- mdb(cle, "NNode/NNodeBuilder", 269);
- bcb(1630, 1, {}, KGb);
- _2.a = false;
- _2.f = Ohe;
- _2.j = 0;
- mdb(cle, "NetworkSimplex", 1630);
- bcb(1294, 1, qie, QGb);
- _2.td = function RGb(a) {
- PGb(this.a, BD(a, 680), true, false);
- };
- mdb(ele, "NodeLabelAndSizeCalculator/lambda$0$Type", 1294);
- bcb(558, 1, {}, YGb);
- _2.b = true;
- _2.c = true;
- _2.d = true;
- _2.e = true;
- mdb(ele, "NodeMarginCalculator", 558);
- bcb(212, 1, { 212: 1 });
- _2.j = false;
- _2.k = false;
- var oN = mdb(fle, "Cell", 212);
- bcb(124, 212, { 124: 1, 212: 1 }, aHb);
- _2.Re = function bHb() {
- return _Gb(this);
- };
- _2.Se = function cHb() {
- var a;
- a = this.n;
- return this.a.a + a.b + a.c;
- };
- mdb(fle, "AtomicCell", 124);
- bcb(232, 22, { 3: 1, 35: 1, 22: 1, 232: 1 }, hHb);
- var dHb, eHb, fHb;
- var pN = ndb(fle, "ContainerArea", 232, CI, jHb, iHb);
- var kHb;
- bcb(326, 212, hle);
- mdb(fle, "ContainerCell", 326);
- bcb(1473, 326, hle, FHb);
- _2.Re = function GHb() {
- var a;
- a = 0;
- this.e ? this.b ? a = this.b.b : !!this.a[1][1] && (a = this.a[1][1].Re()) : a = EHb(this, AHb(this, true));
- return a > 0 ? a + this.n.d + this.n.a : 0;
- };
- _2.Se = function HHb() {
- var a, b, c2, d, e;
- e = 0;
- if (this.e) {
- this.b ? e = this.b.a : !!this.a[1][1] && (e = this.a[1][1].Se());
- } else if (this.g) {
- e = EHb(this, yHb(this, null, true));
- } else {
- for (b = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), c2 = 0, d = b.length; c2 < d; ++c2) {
- a = b[c2];
- e = $wnd.Math.max(e, EHb(this, yHb(this, a, true)));
- }
+ delta[dim] = val;
+ }
+ if (delta != null) {
+ var cy = this.cy();
+ cy.startBatch();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {
+ continue;
}
- return e > 0 ? e + this.n.b + this.n.c : 0;
- };
- _2.Te = function IHb() {
- var a, b, c2, d, e;
- if (this.g) {
- a = yHb(this, null, false);
- for (c2 = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- wHb(this, b, a);
- }
+ var pos = ele.position();
+ var newPos = {
+ x: pos.x + delta.x,
+ y: pos.y + delta.y
+ };
+ if (silent) {
+ ele.silentPosition(newPos);
} else {
- for (c2 = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c2.length; d < e; ++d) {
- b = c2[d];
- a = yHb(this, b, false);
- wHb(this, b, a);
- }
- }
- };
- _2.Ue = function JHb() {
- var a, b, c2, d;
- b = this.i;
- a = this.n;
- d = AHb(this, false);
- uHb(this, (gHb(), dHb), b.d + a.d, d);
- uHb(this, fHb, b.d + b.a - a.a - d[2], d);
- c2 = b.a - a.d - a.a;
- if (d[0] > 0) {
- d[0] += this.d;
- c2 -= d[0];
- }
- if (d[2] > 0) {
- d[2] += this.d;
- c2 -= d[2];
- }
- this.c.a = $wnd.Math.max(0, c2);
- this.c.d = b.d + a.d + (this.c.a - c2) / 2;
- d[1] = $wnd.Math.max(d[1], c2);
- uHb(this, eHb, b.d + a.d + d[0] - (d[1] - c2) / 2, d);
- };
- _2.b = null;
- _2.d = 0;
- _2.e = false;
- _2.f = false;
- _2.g = false;
- var rHb = 0, sHb = 0;
- mdb(fle, "GridContainerCell", 1473);
- bcb(461, 22, { 3: 1, 35: 1, 22: 1, 461: 1 }, OHb);
- var KHb, LHb, MHb;
- var sN = ndb(fle, "HorizontalLabelAlignment", 461, CI, QHb, PHb);
- var RHb;
- bcb(306, 212, { 212: 1, 306: 1 }, aIb, bIb, cIb);
- _2.Re = function dIb() {
- return YHb(this);
- };
- _2.Se = function eIb() {
- return ZHb(this);
- };
- _2.a = 0;
- _2.c = false;
- var tN = mdb(fle, "LabelCell", 306);
- bcb(244, 326, { 212: 1, 326: 1, 244: 1 }, mIb);
- _2.Re = function nIb() {
- return fIb(this);
- };
- _2.Se = function oIb() {
- return gIb(this);
- };
- _2.Te = function rIb() {
- hIb(this);
- };
- _2.Ue = function sIb() {
- iIb(this);
- };
- _2.b = 0;
- _2.c = 0;
- _2.d = false;
- mdb(fle, "StripContainerCell", 244);
- bcb(1626, 1, Oie, tIb);
- _2.Mb = function uIb(a) {
- return pIb(BD(a, 212));
- };
- mdb(fle, "StripContainerCell/lambda$0$Type", 1626);
- bcb(1627, 1, {}, vIb);
- _2.Fe = function wIb(a) {
- return BD(a, 212).Se();
- };
- mdb(fle, "StripContainerCell/lambda$1$Type", 1627);
- bcb(1628, 1, Oie, xIb);
- _2.Mb = function yIb(a) {
- return qIb(BD(a, 212));
- };
- mdb(fle, "StripContainerCell/lambda$2$Type", 1628);
- bcb(1629, 1, {}, zIb);
- _2.Fe = function AIb(a) {
- return BD(a, 212).Re();
- };
- mdb(fle, "StripContainerCell/lambda$3$Type", 1629);
- bcb(462, 22, { 3: 1, 35: 1, 22: 1, 462: 1 }, FIb);
- var BIb, CIb, DIb;
- var zN = ndb(fle, "VerticalLabelAlignment", 462, CI, HIb, GIb);
- var IIb;
- bcb(789, 1, {}, LIb);
- _2.c = 0;
- _2.d = 0;
- _2.k = 0;
- _2.s = 0;
- _2.t = 0;
- _2.v = false;
- _2.w = 0;
- _2.D = false;
- mdb(nle, "NodeContext", 789);
- bcb(1471, 1, Dke, OIb);
- _2.ue = function PIb(a, b) {
- return NIb(BD(a, 61), BD(b, 61));
- };
- _2.Fb = function QIb(a) {
- return this === a;
- };
- _2.ve = function RIb() {
- return new tpb(this);
- };
- mdb(nle, "NodeContext/0methodref$comparePortSides$Type", 1471);
- bcb(1472, 1, Dke, SIb);
- _2.ue = function TIb(a, b) {
- return MIb(BD(a, 111), BD(b, 111));
- };
- _2.Fb = function UIb(a) {
- return this === a;
- };
- _2.ve = function VIb() {
- return new tpb(this);
- };
- mdb(nle, "NodeContext/1methodref$comparePortContexts$Type", 1472);
- bcb(159, 22, { 3: 1, 35: 1, 22: 1, 159: 1 }, tJb);
- var WIb, XIb, YIb, ZIb, $Ib, _Ib, aJb, bJb, cJb, dJb, eJb, fJb, gJb, hJb, iJb, jJb, kJb, lJb, mJb, nJb, oJb, pJb;
- var DN = ndb(nle, "NodeLabelLocation", 159, CI, wJb, vJb);
- var xJb;
- bcb(111, 1, { 111: 1 }, AJb);
- _2.a = false;
- mdb(nle, "PortContext", 111);
- bcb(1476, 1, qie, TJb);
- _2.td = function UJb(a) {
- WHb(BD(a, 306));
- };
- mdb(qle, rle, 1476);
- bcb(1477, 1, Oie, VJb);
- _2.Mb = function WJb(a) {
- return !!BD(a, 111).c;
- };
- mdb(qle, sle, 1477);
- bcb(1478, 1, qie, XJb);
- _2.td = function YJb(a) {
- WHb(BD(a, 111).c);
- };
- mdb(qle, "LabelPlacer/lambda$2$Type", 1478);
- var ZJb;
- bcb(1475, 1, qie, fKb);
- _2.td = function gKb(a) {
- $Jb();
- zJb(BD(a, 111));
- };
- mdb(qle, "NodeLabelAndSizeUtilities/lambda$0$Type", 1475);
- bcb(790, 1, qie, mKb);
- _2.td = function nKb(a) {
- kKb(this.b, this.c, this.a, BD(a, 181));
- };
- _2.a = false;
- _2.c = false;
- mdb(qle, "NodeLabelCellCreator/lambda$0$Type", 790);
- bcb(1474, 1, qie, tKb);
- _2.td = function uKb(a) {
- sKb(this.a, BD(a, 181));
- };
- mdb(qle, "PortContextCreator/lambda$0$Type", 1474);
- var BKb;
- bcb(1829, 1, {}, VKb);
- mdb(ule, "GreedyRectangleStripOverlapRemover", 1829);
- bcb(1830, 1, Dke, XKb);
- _2.ue = function YKb(a, b) {
- return WKb(BD(a, 222), BD(b, 222));
- };
- _2.Fb = function ZKb(a) {
- return this === a;
- };
- _2.ve = function $Kb() {
- return new tpb(this);
- };
- mdb(ule, "GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type", 1830);
- bcb(1786, 1, {}, fLb);
- _2.a = 5;
- _2.e = 0;
- mdb(ule, "RectangleStripOverlapRemover", 1786);
- bcb(1787, 1, Dke, jLb);
- _2.ue = function kLb(a, b) {
- return gLb(BD(a, 222), BD(b, 222));
- };
- _2.Fb = function lLb(a) {
- return this === a;
- };
- _2.ve = function mLb() {
- return new tpb(this);
- };
- mdb(ule, "RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type", 1787);
- bcb(1789, 1, Dke, nLb);
- _2.ue = function oLb(a, b) {
- return hLb(BD(a, 222), BD(b, 222));
- };
- _2.Fb = function pLb(a) {
- return this === a;
- };
- _2.ve = function qLb() {
- return new tpb(this);
- };
- mdb(ule, "RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type", 1789);
- bcb(406, 22, { 3: 1, 35: 1, 22: 1, 406: 1 }, wLb);
- var rLb, sLb, tLb, uLb;
- var PN = ndb(ule, "RectangleStripOverlapRemover/OverlapRemovalDirection", 406, CI, yLb, xLb);
- var zLb;
- bcb(222, 1, { 222: 1 }, BLb);
- mdb(ule, "RectangleStripOverlapRemover/RectangleNode", 222);
- bcb(1788, 1, qie, CLb);
- _2.td = function DLb(a) {
- aLb(this.a, BD(a, 222));
- };
- mdb(ule, "RectangleStripOverlapRemover/lambda$1$Type", 1788);
- bcb(1304, 1, Dke, GLb);
- _2.ue = function HLb(a, b) {
- return FLb(BD(a, 167), BD(b, 167));
- };
- _2.Fb = function ILb(a) {
- return this === a;
- };
- _2.ve = function JLb() {
- return new tpb(this);
- };
- mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator", 1304);
- bcb(1307, 1, {}, KLb);
- _2.Kb = function LLb(a) {
- return BD(a, 324).a;
- };
- mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type", 1307);
- bcb(1308, 1, Oie, MLb);
- _2.Mb = function NLb(a) {
- return BD(a, 323).a;
- };
- mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type", 1308);
- bcb(1309, 1, Oie, OLb);
- _2.Mb = function PLb(a) {
- return BD(a, 323).a;
- };
- mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type", 1309);
- bcb(1302, 1, Dke, RLb);
- _2.ue = function SLb(a, b) {
- return QLb(BD(a, 167), BD(b, 167));
- };
- _2.Fb = function TLb(a) {
- return this === a;
- };
- _2.ve = function ULb() {
- return new tpb(this);
- };
- mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator", 1302);
- bcb(1305, 1, {}, VLb);
- _2.Kb = function WLb(a) {
- return BD(a, 324).a;
- };
- mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type", 1305);
- bcb(767, 1, Dke, YLb);
- _2.ue = function ZLb(a, b) {
- return XLb(BD(a, 167), BD(b, 167));
- };
- _2.Fb = function $Lb(a) {
- return this === a;
- };
- _2.ve = function _Lb() {
- return new tpb(this);
- };
- mdb(wle, "PolyominoCompactor/MinNumOfExtensionsComparator", 767);
- bcb(1300, 1, Dke, bMb);
- _2.ue = function cMb(a, b) {
- return aMb(BD(a, 321), BD(b, 321));
- };
- _2.Fb = function dMb(a) {
- return this === a;
- };
- _2.ve = function eMb() {
- return new tpb(this);
- };
- mdb(wle, "PolyominoCompactor/MinPerimeterComparator", 1300);
- bcb(1301, 1, Dke, gMb);
- _2.ue = function hMb(a, b) {
- return fMb(BD(a, 321), BD(b, 321));
- };
- _2.Fb = function iMb(a) {
- return this === a;
- };
- _2.ve = function jMb() {
- return new tpb(this);
- };
- mdb(wle, "PolyominoCompactor/MinPerimeterComparatorWithShape", 1301);
- bcb(1303, 1, Dke, lMb);
- _2.ue = function mMb(a, b) {
- return kMb(BD(a, 167), BD(b, 167));
- };
- _2.Fb = function nMb(a) {
- return this === a;
- };
- _2.ve = function oMb() {
- return new tpb(this);
- };
- mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator", 1303);
- bcb(1306, 1, {}, pMb);
- _2.Kb = function qMb(a) {
- return BD(a, 324).a;
- };
- mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type", 1306);
- bcb(777, 1, {}, tMb);
- _2.Ce = function uMb(a, b) {
- return sMb(this, BD(a, 46), BD(b, 167));
- };
- mdb(wle, "SuccessorCombination", 777);
- bcb(644, 1, {}, wMb);
- _2.Ce = function xMb(a, b) {
- var c2;
- return vMb((c2 = BD(a, 46), BD(b, 167), c2));
- };
- mdb(wle, "SuccessorJitter", 644);
- bcb(643, 1, {}, zMb);
- _2.Ce = function AMb(a, b) {
- var c2;
- return yMb((c2 = BD(a, 46), BD(b, 167), c2));
- };
- mdb(wle, "SuccessorLineByLine", 643);
- bcb(568, 1, {}, CMb);
- _2.Ce = function DMb(a, b) {
- var c2;
- return BMb((c2 = BD(a, 46), BD(b, 167), c2));
- };
- mdb(wle, "SuccessorManhattan", 568);
- bcb(1356, 1, {}, FMb);
- _2.Ce = function GMb(a, b) {
- var c2;
- return EMb((c2 = BD(a, 46), BD(b, 167), c2));
- };
- mdb(wle, "SuccessorMaxNormWindingInMathPosSense", 1356);
- bcb(400, 1, {}, JMb);
- _2.Ce = function KMb(a, b) {
- return HMb(this, a, b);
- };
- _2.c = false;
- _2.d = false;
- _2.e = false;
- _2.f = false;
- mdb(wle, "SuccessorQuadrantsGeneric", 400);
- bcb(1357, 1, {}, LMb);
- _2.Kb = function MMb(a) {
- return BD(a, 324).a;
- };
- mdb(wle, "SuccessorQuadrantsGeneric/lambda$0$Type", 1357);
- bcb(323, 22, { 3: 1, 35: 1, 22: 1, 323: 1 }, SMb);
- _2.a = false;
- var NMb, OMb, PMb, QMb;
- var jO = ndb(Ble, Cle, 323, CI, UMb, TMb);
- var VMb;
- bcb(1298, 1, {});
- _2.Ib = function bNb() {
- var a, b, c2, d, e, f2;
- c2 = " ";
- a = meb(0);
- for (e = 0; e < this.o; e++) {
- c2 += "" + a.a;
- a = meb(XMb(a.a));
- }
- c2 += "\n";
- a = meb(0);
- for (f2 = 0; f2 < this.p; f2++) {
- c2 += "" + a.a;
- a = meb(XMb(a.a));
- for (d = 0; d < this.o; d++) {
- b = _Mb(this, d, f2);
- ybb(b, 0) == 0 ? c2 += "_" : ybb(b, 1) == 0 ? c2 += "X" : c2 += "0";
- }
- c2 += "\n";
- }
- return qfb(c2, 0, c2.length - 1);
- };
- _2.o = 0;
- _2.p = 0;
- mdb(Ble, "TwoBitGrid", 1298);
- bcb(321, 1298, { 321: 1 }, pNb);
- _2.j = 0;
- _2.k = 0;
- mdb(Ble, "PlanarGrid", 321);
- bcb(167, 321, { 321: 1, 167: 1 });
- _2.g = 0;
- _2.i = 0;
- mdb(Ble, "Polyomino", 167);
- var P3 = odb(Hle, Ile);
- bcb(134, 1, Jle, zNb);
- _2.Ye = function DNb(a, b) {
- return xNb(this, a, b);
- };
- _2.Ve = function ANb() {
- return uNb(this);
- };
- _2.We = function BNb(a) {
- return vNb(this, a);
- };
- _2.Xe = function CNb(a) {
- return wNb(this, a);
- };
- mdb(Hle, "MapPropertyHolder", 134);
- bcb(1299, 134, Jle, ENb);
- mdb(Ble, "Polyominoes", 1299);
- var FNb = false, GNb, HNb;
- bcb(1766, 1, qie, PNb);
- _2.td = function QNb(a) {
- JNb(BD(a, 221));
- };
- mdb(Kle, "DepthFirstCompaction/0methodref$compactTree$Type", 1766);
- bcb(810, 1, qie, RNb);
- _2.td = function SNb(a) {
- MNb(this.a, BD(a, 221));
- };
- mdb(Kle, "DepthFirstCompaction/lambda$1$Type", 810);
- bcb(1767, 1, qie, TNb);
- _2.td = function UNb(a) {
- NNb(this.a, this.b, this.c, BD(a, 221));
- };
- mdb(Kle, "DepthFirstCompaction/lambda$2$Type", 1767);
- var VNb, WNb;
- bcb(65, 1, { 65: 1 }, aOb);
- mdb(Kle, "Node", 65);
- bcb(1250, 1, {}, dOb);
- mdb(Kle, "ScanlineOverlapCheck", 1250);
- bcb(1251, 1, { 679: 1 }, hOb);
- _2.Ke = function iOb(a) {
- fOb(this, BD(a, 440));
- };
- mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler", 1251);
- bcb(1252, 1, Dke, kOb);
- _2.ue = function lOb(a, b) {
- return jOb(BD(a, 65), BD(b, 65));
- };
- _2.Fb = function mOb(a) {
- return this === a;
- };
- _2.ve = function nOb() {
- return new tpb(this);
- };
- mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type", 1252);
- bcb(440, 1, { 440: 1 }, oOb);
- _2.a = false;
- mdb(Kle, "ScanlineOverlapCheck/Timestamp", 440);
- bcb(1253, 1, Dke, pOb);
- _2.ue = function qOb(a, b) {
- return eOb(BD(a, 440), BD(b, 440));
- };
- _2.Fb = function rOb(a) {
- return this === a;
- };
- _2.ve = function sOb() {
- return new tpb(this);
- };
- mdb(Kle, "ScanlineOverlapCheck/lambda$0$Type", 1253);
- bcb(550, 1, {}, tOb);
- mdb(Lle, "SVGImage", 550);
- bcb(324, 1, { 324: 1 }, uOb);
- _2.Ib = function vOb() {
- return "(" + this.a + She + this.b + She + this.c + ")";
- };
- mdb(Lle, "UniqueTriple", 324);
- bcb(209, 1, Mle);
- mdb(Nle, "AbstractLayoutProvider", 209);
- bcb(1132, 209, Mle, yOb);
- _2.Ze = function zOb(a, b) {
- var c2, d, e, f2;
- Odd(b, Ole, 1);
- this.a = Edb(ED(hkd(a, (CPb(), BPb))));
- if (ikd(a, rPb)) {
- e = GD(hkd(a, rPb));
- c2 = h4c(n4c(), e);
- if (c2) {
- d = BD(hgd(c2.f), 209);
- d.Ze(a, Udd(b, 1));
- }
- }
- f2 = new AQb(this.a);
- this.b = yQb(f2, a);
- switch (BD(hkd(a, (nPb(), jPb)), 481).g) {
- case 0:
- BOb(new FOb(), this.b);
- jkd(a, uPb, vNb(this.b, uPb));
- break;
- default:
- Zfb();
+ ele.position(newPos);
}
- qQb(f2);
- jkd(a, tPb, this.b);
- Qdd(b);
- };
- _2.a = 0;
- mdb(Ple, "DisCoLayoutProvider", 1132);
- bcb(1244, 1, {}, FOb);
- _2.c = false;
- _2.e = 0;
- _2.f = 0;
- mdb(Ple, "DisCoPolyominoCompactor", 1244);
- bcb(561, 1, { 561: 1 }, MOb);
- _2.b = true;
- mdb(Qle, "DCComponent", 561);
- bcb(394, 22, { 3: 1, 35: 1, 22: 1, 394: 1 }, SOb);
- _2.a = false;
- var NOb, OOb, POb, QOb;
- var CO = ndb(Qle, "DCDirection", 394, CI, UOb, TOb);
- var VOb;
- bcb(266, 134, { 3: 1, 266: 1, 94: 1, 134: 1 }, XOb);
- mdb(Qle, "DCElement", 266);
- bcb(395, 1, { 395: 1 }, ZOb);
- _2.c = 0;
- mdb(Qle, "DCExtension", 395);
- bcb(755, 134, Jle, aPb);
- mdb(Qle, "DCGraph", 755);
- bcb(481, 22, { 3: 1, 35: 1, 22: 1, 481: 1 }, dPb);
- var bPb;
- var GO = ndb(Rle, Sle, 481, CI, fPb, ePb);
- var gPb;
- bcb(854, 1, ale, oPb);
- _2.Qe = function pPb(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tle), Xle), "Connected Components Compaction Strategy"), "Strategy for packing different connected components in order to save space and enhance readability of a graph."), kPb), (_5c(), V5c)), GO), pqb((N5c(), L5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Ule), Xle), "Connected Components Layout Algorithm"), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), Z5c), ZI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vle), "debug"), "DCGraph"), "Access to the DCGraph is intended for the debug view,"), Y5c), SI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wle), "debug"), "List of Polyominoes"), "Access to the polyominoes is intended for the debug view,"), Y5c), SI), pqb(L5c))));
- DPb((new EPb(), a));
- };
- var iPb, jPb, kPb, lPb, mPb;
- mdb(Rle, "DisCoMetaDataProvider", 854);
- bcb(998, 1, ale, EPb);
- _2.Qe = function FPb(a) {
- DPb(a);
- };
- var qPb, rPb, sPb, tPb, uPb, vPb, wPb, xPb, yPb, zPb, APb, BPb;
- mdb(Rle, "DisCoOptions", 998);
- bcb(999, 1, {}, GPb);
- _2.$e = function HPb() {
- var a;
- return a = new yOb(), a;
- };
- _2._e = function IPb(a) {
- };
- mdb(Rle, "DisCoOptions/DiscoFactory", 999);
- bcb(562, 167, { 321: 1, 167: 1, 562: 1 }, MPb);
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- mdb("org.eclipse.elk.alg.disco.structures", "DCPolyomino", 562);
- var NPb, OPb, PPb;
- bcb(1268, 1, Oie, aQb);
- _2.Mb = function bQb(a) {
- return _Pb(a);
- };
- mdb(bme, "ElkGraphComponentsProcessor/lambda$0$Type", 1268);
- bcb(1269, 1, {}, cQb);
- _2.Kb = function dQb(a) {
- return QPb(), jtd(BD(a, 79));
- };
- mdb(bme, "ElkGraphComponentsProcessor/lambda$1$Type", 1269);
- bcb(1270, 1, Oie, eQb);
- _2.Mb = function fQb(a) {
- return WPb(BD(a, 79));
- };
- mdb(bme, "ElkGraphComponentsProcessor/lambda$2$Type", 1270);
- bcb(1271, 1, {}, gQb);
- _2.Kb = function hQb(a) {
- return QPb(), ltd(BD(a, 79));
- };
- mdb(bme, "ElkGraphComponentsProcessor/lambda$3$Type", 1271);
- bcb(1272, 1, Oie, iQb);
- _2.Mb = function jQb(a) {
- return XPb(BD(a, 79));
- };
- mdb(bme, "ElkGraphComponentsProcessor/lambda$4$Type", 1272);
- bcb(1273, 1, Oie, kQb);
- _2.Mb = function lQb(a) {
- return YPb(this.a, BD(a, 79));
- };
- mdb(bme, "ElkGraphComponentsProcessor/lambda$5$Type", 1273);
- bcb(1274, 1, {}, mQb);
- _2.Kb = function nQb(a) {
- return ZPb(this.a, BD(a, 79));
- };
- mdb(bme, "ElkGraphComponentsProcessor/lambda$6$Type", 1274);
- bcb(1241, 1, {}, AQb);
- _2.a = 0;
- mdb(bme, "ElkGraphTransformer", 1241);
- bcb(1242, 1, {}, CQb);
- _2.Od = function DQb(a, b) {
- BQb(this, BD(a, 160), BD(b, 266));
- };
- mdb(bme, "ElkGraphTransformer/OffsetApplier", 1242);
- bcb(1243, 1, qie, FQb);
- _2.td = function GQb(a) {
- EQb(this, BD(a, 8));
- };
- mdb(bme, "ElkGraphTransformer/OffsetApplier/OffSetToChainApplier", 1243);
- bcb(753, 1, {}, MQb);
- mdb(gme, hme, 753);
- bcb(1232, 1, Dke, OQb);
- _2.ue = function PQb(a, b) {
- return NQb(BD(a, 231), BD(b, 231));
- };
- _2.Fb = function QQb(a) {
- return this === a;
- };
- _2.ve = function RQb() {
- return new tpb(this);
- };
- mdb(gme, ime, 1232);
- bcb(740, 209, Mle, ZQb);
- _2.Ze = function $Qb(a, b) {
- WQb(this, a, b);
- };
- mdb(gme, "ForceLayoutProvider", 740);
- bcb(357, 134, { 3: 1, 357: 1, 94: 1, 134: 1 });
- mdb(jme, "FParticle", 357);
- bcb(559, 357, { 3: 1, 559: 1, 357: 1, 94: 1, 134: 1 }, aRb);
- _2.Ib = function bRb() {
- var a;
- if (this.a) {
- a = Jkb(this.a.a, this, 0);
- return a >= 0 ? "b" + a + "[" + fRb(this.a) + "]" : "b[" + fRb(this.a) + "]";
- }
- return "b_" + FCb(this);
- };
- mdb(jme, "FBendpoint", 559);
- bcb(282, 134, { 3: 1, 282: 1, 94: 1, 134: 1 }, gRb);
- _2.Ib = function hRb() {
- return fRb(this);
- };
- mdb(jme, "FEdge", 282);
- bcb(231, 134, { 3: 1, 231: 1, 94: 1, 134: 1 }, kRb);
- var $O = mdb(jme, "FGraph", 231);
- bcb(447, 357, { 3: 1, 447: 1, 357: 1, 94: 1, 134: 1 }, mRb);
- _2.Ib = function nRb() {
- return this.b == null || this.b.length == 0 ? "l[" + fRb(this.a) + "]" : "l_" + this.b;
- };
- mdb(jme, "FLabel", 447);
- bcb(144, 357, { 3: 1, 144: 1, 357: 1, 94: 1, 134: 1 }, pRb);
- _2.Ib = function qRb() {
- return oRb(this);
- };
- _2.b = 0;
- mdb(jme, "FNode", 144);
- bcb(2003, 1, {});
- _2.bf = function vRb(a) {
- rRb(this, a);
- };
- _2.cf = function wRb() {
- sRb(this);
- };
- _2.d = 0;
- mdb(lme, "AbstractForceModel", 2003);
- bcb(631, 2003, { 631: 1 }, xRb);
- _2.af = function zRb(a, b) {
- var c2, d, e, f2, g;
- uRb(this.f, a, b);
- e = c7c(R6c(b.d), a.d);
- g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b);
- d = $wnd.Math.max(0, g - U6c(a.e) / 2 - U6c(b.e) / 2);
- c2 = jRb(this.e, a, b);
- c2 > 0 ? f2 = -yRb(d, this.c) * c2 : f2 = CRb(d, this.b) * BD(vNb(a, (wSb(), oSb)), 19).a;
- Y6c(e, f2 / g);
- return e;
- };
- _2.bf = function ARb(a) {
- rRb(this, a);
- this.a = BD(vNb(a, (wSb(), eSb)), 19).a;
- this.c = Edb(ED(vNb(a, uSb)));
- this.b = Edb(ED(vNb(a, qSb)));
- };
- _2.df = function BRb(a) {
- return a < this.a;
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- mdb(lme, "EadesModel", 631);
- bcb(632, 2003, { 632: 1 }, DRb);
- _2.af = function FRb(a, b) {
- var c2, d, e, f2, g;
- uRb(this.f, a, b);
- e = c7c(R6c(b.d), a.d);
- g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b);
- d = $wnd.Math.max(0, g - U6c(a.e) / 2 - U6c(b.e) / 2);
- f2 = JRb(d, this.a) * BD(vNb(a, (wSb(), oSb)), 19).a;
- c2 = jRb(this.e, a, b);
- c2 > 0 && (f2 -= ERb(d, this.a) * c2);
- Y6c(e, f2 * this.b / g);
- return e;
- };
- _2.bf = function GRb(a) {
- var b, c2, d, e, f2, g, h;
- rRb(this, a);
- this.b = Edb(ED(vNb(a, (wSb(), vSb))));
- this.c = this.b / BD(vNb(a, eSb), 19).a;
- d = a.e.c.length;
- f2 = 0;
- e = 0;
- for (h = new olb(a.e); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 144);
- f2 += g.e.a;
- e += g.e.b;
- }
- b = f2 * e;
- c2 = Edb(ED(vNb(a, uSb))) * ple;
- this.a = $wnd.Math.sqrt(b / (2 * d)) * c2;
- };
- _2.cf = function HRb() {
- sRb(this);
- this.b -= this.c;
- };
- _2.df = function IRb(a) {
- return this.b > 0;
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- mdb(lme, "FruchtermanReingoldModel", 632);
- bcb(849, 1, ale, TRb);
- _2.Qe = function URb(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mme), ""), "Force Model"), "Determines the model for force calculation."), MRb), (_5c(), V5c)), gP), pqb((N5c(), L5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nme), ""), "Iterations"), "The number of iterations on the force model."), meb(300)), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ome), ""), "Repulsive Power"), "Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"), meb(0)), X5c), JI), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pme), ""), "FR Temperature"), "The temperature is used as a scaling factor for particle displacements."), qme), U5c), BI), pqb(L5c))));
- o4c(a, pme, mme, RRb);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rme), ""), "Eades Repulsion"), "Factor for repulsive forces in Eades' model."), 5), U5c), BI), pqb(L5c))));
- o4c(a, rme, mme, ORb);
- xSb((new ySb(), a));
- };
- var KRb, LRb, MRb, NRb, ORb, PRb, QRb, RRb;
- mdb(sme, "ForceMetaDataProvider", 849);
- bcb(424, 22, { 3: 1, 35: 1, 22: 1, 424: 1 }, YRb);
- var VRb, WRb;
- var gP = ndb(sme, "ForceModelStrategy", 424, CI, $Rb, ZRb);
- var _Rb;
- bcb(988, 1, ale, ySb);
- _2.Qe = function zSb(a) {
- xSb(a);
- };
- var bSb, cSb, dSb, eSb, fSb, gSb, hSb, iSb, jSb, kSb, lSb, mSb, nSb, oSb, pSb, qSb, rSb, sSb, tSb, uSb, vSb;
- mdb(sme, "ForceOptions", 988);
- bcb(989, 1, {}, ASb);
- _2.$e = function BSb() {
- var a;
- return a = new ZQb(), a;
- };
- _2._e = function CSb(a) {
- };
- mdb(sme, "ForceOptions/ForceFactory", 989);
- var DSb, ESb, FSb, GSb;
- bcb(850, 1, ale, PSb);
- _2.Qe = function QSb(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mme), ""), "Fixed Position"), "Prevent that the node is moved by the layout algorithm."), (Bcb(), false)), (_5c(), T5c)), wI), pqb((N5c(), K5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Nme), ""), "Desired Edge Length"), "Either specified for parent nodes or for individual edges, where the latter takes higher precedence."), 100), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [I5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ome), ""), "Layout Dimension"), "Dimensions that are permitted to be altered during layout."), KSb), V5c), oP), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Pme), ""), "Stress Epsilon"), "Termination criterion for the iterative process."), qme), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qme), ""), "Iteration Limit"), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), meb(Ohe)), X5c), JI), pqb(L5c))));
- cTb((new dTb(), a));
- };
- var ISb, JSb, KSb, LSb, MSb, NSb;
- mdb(sme, "StressMetaDataProvider", 850);
- bcb(992, 1, ale, dTb);
- _2.Qe = function eTb(a) {
- cTb(a);
- };
- var RSb, SSb, TSb, USb, VSb, WSb, XSb, YSb, ZSb, $Sb, _Sb, aTb;
- mdb(sme, "StressOptions", 992);
- bcb(993, 1, {}, fTb);
- _2.$e = function gTb() {
- var a;
- return a = new iTb(), a;
- };
- _2._e = function hTb(a) {
- };
- mdb(sme, "StressOptions/StressFactory", 993);
- bcb(1128, 209, Mle, iTb);
- _2.Ze = function jTb(a, b) {
- var c2, d, e, f2, g;
- Odd(b, Sme, 1);
- Ccb(DD(hkd(a, (bTb(), VSb)))) ? Ccb(DD(hkd(a, _Sb))) || $Cb((c2 = new _Cb((Pgd(), new bhd(a))), c2)) : WQb(new ZQb(), a, Udd(b, 1));
- e = TQb(a);
- d = LQb(this.a, e);
- for (g = d.Kc(); g.Ob(); ) {
- f2 = BD(g.Pb(), 231);
- if (f2.e.c.length <= 1) {
- continue;
+ }
+ cy.endBatch();
+ }
+ return this;
+ }, "shift"),
+ silentShift: /* @__PURE__ */ __name(function silentShift(dim, val) {
+ if (plainObject(dim)) {
+ this.shift(dim, true);
+ } else if (string(dim) && number$1(val)) {
+ this.shift(dim, val, true);
+ }
+ return this;
+ }, "silentShift"),
+ // get/set the rendered (i.e. on screen) positon of the element
+ renderedPosition: /* @__PURE__ */ __name(function renderedPosition(dim, val) {
+ var ele = this[0];
+ var cy = this.cy();
+ var zoom2 = cy.zoom();
+ var pan2 = cy.pan();
+ var rpos = plainObject(dim) ? dim : void 0;
+ var setting = rpos !== void 0 || val !== void 0 && string(dim);
+ if (ele && ele.isNode()) {
+ if (setting) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var _ele = this[i2];
+ if (val !== void 0) {
+ _ele.position(dim, (val - pan2[dim]) / zoom2);
+ } else if (rpos !== void 0) {
+ _ele.position(renderedToModelPosition(rpos, zoom2, pan2));
}
- sTb(this.b, f2);
- qTb(this.b);
- Hkb(f2.d, new kTb());
- }
- e = KQb(d);
- SQb(e);
- Qdd(b);
- };
- mdb(Ume, "StressLayoutProvider", 1128);
- bcb(1129, 1, qie, kTb);
- _2.td = function lTb(a) {
- lRb(BD(a, 447));
- };
- mdb(Ume, "StressLayoutProvider/lambda$0$Type", 1129);
- bcb(990, 1, {}, tTb);
- _2.c = 0;
- _2.e = 0;
- _2.g = 0;
- mdb(Ume, "StressMajorization", 990);
- bcb(379, 22, { 3: 1, 35: 1, 22: 1, 379: 1 }, zTb);
- var vTb, wTb, xTb;
- var oP = ndb(Ume, "StressMajorization/Dimension", 379, CI, BTb, ATb);
- var CTb;
- bcb(991, 1, Dke, ETb);
- _2.ue = function FTb(a, b) {
- return uTb(this.a, BD(a, 144), BD(b, 144));
- };
- _2.Fb = function GTb(a) {
- return this === a;
- };
- _2.ve = function HTb() {
- return new tpb(this);
- };
- mdb(Ume, "StressMajorization/lambda$0$Type", 991);
- bcb(1229, 1, {}, PTb);
- mdb(Wme, "ElkLayered", 1229);
- bcb(1230, 1, qie, STb);
- _2.td = function TTb(a) {
- QTb(BD(a, 37));
- };
- mdb(Wme, "ElkLayered/lambda$0$Type", 1230);
- bcb(1231, 1, qie, UTb);
- _2.td = function VTb(a) {
- RTb(this.a, BD(a, 37));
- };
- mdb(Wme, "ElkLayered/lambda$1$Type", 1231);
- bcb(1263, 1, {}, bUb);
- var WTb, XTb, YTb;
- mdb(Wme, "GraphConfigurator", 1263);
- bcb(759, 1, qie, dUb);
- _2.td = function eUb(a) {
- $Tb(this.a, BD(a, 10));
- };
- mdb(Wme, "GraphConfigurator/lambda$0$Type", 759);
- bcb(760, 1, {}, fUb);
- _2.Kb = function gUb(a) {
- return ZTb(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Wme, "GraphConfigurator/lambda$1$Type", 760);
- bcb(761, 1, qie, hUb);
- _2.td = function iUb(a) {
- $Tb(this.a, BD(a, 10));
- };
- mdb(Wme, "GraphConfigurator/lambda$2$Type", 761);
- bcb(1127, 209, Mle, jUb);
- _2.Ze = function kUb(a, b) {
- var c2;
- c2 = U1b(new a2b(), a);
- PD(hkd(a, (Nyc(), axc))) === PD((hbd(), ebd)) ? JTb(this.a, c2, b) : KTb(this.a, c2, b);
- z2b(new D2b(), c2);
- };
- mdb(Wme, "LayeredLayoutProvider", 1127);
- bcb(356, 22, { 3: 1, 35: 1, 22: 1, 356: 1 }, rUb);
- var lUb, mUb, nUb, oUb, pUb;
- var zP = ndb(Wme, "LayeredPhases", 356, CI, tUb, sUb);
- var uUb;
- bcb(1651, 1, {}, CUb);
- _2.i = 0;
- var wUb;
- mdb(Xme, "ComponentsToCGraphTransformer", 1651);
- var hVb;
- bcb(1652, 1, {}, DUb);
- _2.ef = function EUb(a, b) {
- return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
- };
- _2.ff = function FUb(a, b) {
- return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
- };
- mdb(Xme, "ComponentsToCGraphTransformer/1", 1652);
- bcb(81, 1, { 81: 1 });
- _2.i = 0;
- _2.k = true;
- _2.o = Qje;
- var IP = mdb(Yme, "CNode", 81);
- bcb(460, 81, { 460: 1, 81: 1 }, GUb, HUb);
- _2.Ib = function IUb() {
- return "";
- };
- mdb(Xme, "ComponentsToCGraphTransformer/CRectNode", 460);
- bcb(1623, 1, {}, VUb);
- var JUb, KUb;
- mdb(Xme, "OneDimensionalComponentsCompaction", 1623);
- bcb(1624, 1, {}, YUb);
- _2.Kb = function ZUb(a) {
- return WUb(BD(a, 46));
- };
- _2.Fb = function $Ub(a) {
- return this === a;
- };
- mdb(Xme, "OneDimensionalComponentsCompaction/lambda$0$Type", 1624);
- bcb(1625, 1, {}, _Ub);
- _2.Kb = function aVb(a) {
- return XUb(BD(a, 46));
- };
- _2.Fb = function bVb(a) {
- return this === a;
- };
- mdb(Xme, "OneDimensionalComponentsCompaction/lambda$1$Type", 1625);
- bcb(1654, 1, {}, dVb);
- mdb(Yme, "CGraph", 1654);
- bcb(189, 1, { 189: 1 }, gVb);
- _2.b = 0;
- _2.c = 0;
- _2.e = 0;
- _2.g = true;
- _2.i = Qje;
- mdb(Yme, "CGroup", 189);
- bcb(1653, 1, {}, jVb);
- _2.ef = function kVb(a, b) {
- return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
- };
- _2.ff = function lVb(a, b) {
- return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
- };
- mdb(Yme, Ike, 1653);
- bcb(1655, 1, {}, CVb);
- _2.d = false;
- var mVb;
- var LP = mdb(Yme, Nke, 1655);
- bcb(1656, 1, {}, DVb);
- _2.Kb = function EVb(a) {
- return nVb(), Bcb(), BD(BD(a, 46).a, 81).d.e != 0 ? true : false;
- };
- _2.Fb = function FVb(a) {
- return this === a;
- };
- mdb(Yme, Oke, 1656);
- bcb(823, 1, {}, IVb);
- _2.a = false;
- _2.b = false;
- _2.c = false;
- _2.d = false;
- mdb(Yme, Pke, 823);
- bcb(1825, 1, {}, OVb);
- mdb(Zme, Qke, 1825);
- var bQ = odb($me, Fke);
- bcb(1826, 1, { 369: 1 }, SVb);
- _2.Ke = function TVb(a) {
- QVb(this, BD(a, 466));
- };
- mdb(Zme, Rke, 1826);
- bcb(1827, 1, Dke, VVb);
- _2.ue = function WVb(a, b) {
- return UVb(BD(a, 81), BD(b, 81));
- };
- _2.Fb = function XVb(a) {
- return this === a;
- };
- _2.ve = function YVb() {
- return new tpb(this);
- };
- mdb(Zme, Ske, 1827);
- bcb(466, 1, { 466: 1 }, ZVb);
- _2.a = false;
- mdb(Zme, Tke, 466);
- bcb(1828, 1, Dke, $Vb);
- _2.ue = function _Vb(a, b) {
- return PVb(BD(a, 466), BD(b, 466));
- };
- _2.Fb = function aWb(a) {
- return this === a;
- };
- _2.ve = function bWb() {
- return new tpb(this);
- };
- mdb(Zme, Uke, 1828);
- bcb(140, 1, { 140: 1 }, cWb, dWb);
- _2.Fb = function eWb(a) {
- var b;
- if (a == null) {
- return false;
- }
- if (TP != rb(a)) {
- return false;
}
- b = BD(a, 140);
- return wtb(this.c, b.c) && wtb(this.d, b.d);
- };
- _2.Hb = function fWb() {
- return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d]));
- };
- _2.Ib = function gWb() {
- return "(" + this.c + She + this.d + (this.a ? "cx" : "") + this.b + ")";
- };
- _2.a = true;
- _2.c = 0;
- _2.d = 0;
- var TP = mdb($me, "Point", 140);
- bcb(405, 22, { 3: 1, 35: 1, 22: 1, 405: 1 }, oWb);
- var hWb, iWb, jWb, kWb;
- var SP = ndb($me, "Point/Quadrant", 405, CI, sWb, rWb);
- var tWb;
- bcb(1642, 1, {}, CWb);
- _2.b = null;
- _2.c = null;
- _2.d = null;
- _2.e = null;
- _2.f = null;
- var vWb, wWb, xWb, yWb, zWb;
- mdb($me, "RectilinearConvexHull", 1642);
- bcb(574, 1, { 369: 1 }, NWb);
- _2.Ke = function OWb(a) {
- MWb(this, BD(a, 140));
- };
- _2.b = 0;
- var KWb;
- mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler", 574);
- bcb(1644, 1, Dke, QWb);
- _2.ue = function RWb(a, b) {
- return PWb(ED(a), ED(b));
- };
- _2.Fb = function SWb(a) {
- return this === a;
- };
- _2.ve = function TWb() {
- return new tpb(this);
- };
- mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type", 1644);
- bcb(1643, 1, { 369: 1 }, VWb);
- _2.Ke = function WWb(a) {
- UWb(this, BD(a, 140));
- };
- _2.a = 0;
- _2.b = null;
- _2.c = null;
- _2.d = null;
- _2.e = null;
- mdb($me, "RectilinearConvexHull/RectangleEventHandler", 1643);
- bcb(1645, 1, Dke, XWb);
- _2.ue = function YWb(a, b) {
- return EWb(BD(a, 140), BD(b, 140));
- };
- _2.Fb = function ZWb(a) {
- return this === a;
- };
- _2.ve = function $Wb() {
- return new tpb(this);
- };
- mdb($me, "RectilinearConvexHull/lambda$0$Type", 1645);
- bcb(1646, 1, Dke, _Wb);
- _2.ue = function aXb(a, b) {
- return FWb(BD(a, 140), BD(b, 140));
- };
- _2.Fb = function bXb(a) {
- return this === a;
- };
- _2.ve = function cXb() {
- return new tpb(this);
- };
- mdb($me, "RectilinearConvexHull/lambda$1$Type", 1646);
- bcb(1647, 1, Dke, dXb);
- _2.ue = function eXb(a, b) {
- return GWb(BD(a, 140), BD(b, 140));
- };
- _2.Fb = function fXb(a) {
- return this === a;
- };
- _2.ve = function gXb() {
- return new tpb(this);
- };
- mdb($me, "RectilinearConvexHull/lambda$2$Type", 1647);
- bcb(1648, 1, Dke, hXb);
- _2.ue = function iXb(a, b) {
- return HWb(BD(a, 140), BD(b, 140));
- };
- _2.Fb = function jXb(a) {
- return this === a;
- };
- _2.ve = function kXb() {
- return new tpb(this);
- };
- mdb($me, "RectilinearConvexHull/lambda$3$Type", 1648);
- bcb(1649, 1, Dke, lXb);
- _2.ue = function mXb(a, b) {
- return IWb(BD(a, 140), BD(b, 140));
- };
- _2.Fb = function nXb(a) {
- return this === a;
- };
- _2.ve = function oXb() {
- return new tpb(this);
- };
- mdb($me, "RectilinearConvexHull/lambda$4$Type", 1649);
- bcb(1650, 1, {}, qXb);
- mdb($me, "Scanline", 1650);
- bcb(2005, 1, {});
- mdb(_me, "AbstractGraphPlacer", 2005);
- bcb(325, 1, { 325: 1 }, AXb);
- _2.mf = function BXb(a) {
- if (this.nf(a)) {
- Rc(this.b, BD(vNb(a, (wtc(), Esc)), 21), a);
- return true;
+ } else {
+ var pos = ele.position();
+ rpos = modelToRenderedPosition(pos, zoom2, pan2);
+ if (dim === void 0) {
+ return rpos;
} else {
- return false;
- }
- };
- _2.nf = function CXb(a) {
- var b, c2, d, e;
- b = BD(vNb(a, (wtc(), Esc)), 21);
- e = BD(Qc(wXb, b), 21);
- for (d = e.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 21);
- if (!BD(Qc(this.b, c2), 15).dc()) {
- return false;
- }
- }
- return true;
- };
- var wXb;
- mdb(_me, "ComponentGroup", 325);
- bcb(765, 2005, {}, HXb);
- _2.of = function IXb(a) {
- var b, c2;
- for (c2 = new olb(this.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 325);
- if (b.mf(a)) {
- return;
- }
- }
- Ekb(this.a, new AXb(a));
- };
- _2.lf = function JXb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
- this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- if (a.dc()) {
- b.f.a = 0;
- b.f.b = 0;
- return;
- }
- g = BD(a.Xb(0), 37);
- tNb(b, g);
- for (e = a.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 37);
- this.of(d);
- }
- o2 = new d7c();
- f2 = Edb(ED(vNb(g, (Nyc(), kyc))));
- for (j = new olb(this.a); j.a < j.c.c.length; ) {
- h = BD(mlb(j), 325);
- k = DXb(h, f2);
- vXb(Uc(h.b), o2.a, o2.b);
- o2.a += k.a;
- o2.b += k.b;
- }
- b.f.a = o2.a - f2;
- b.f.b = o2.b - f2;
- if (Ccb(DD(vNb(g, qwc))) && PD(vNb(g, Swc)) === PD((Aad(), wad))) {
- for (n = a.Kc(); n.Ob(); ) {
- l = BD(n.Pb(), 37);
- uXb(l, l.c.a, l.c.b);
- }
- c2 = new gYb();
- YXb(c2, a, f2);
- for (m = a.Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 37);
- P6c(X6c(l.c), c2.e);
- }
- P6c(X6c(b.f), c2.a);
- }
- for (i3 = new olb(this.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 325);
- tXb(b, Uc(h.b));
- }
- };
- mdb(_me, "ComponentGroupGraphPlacer", 765);
- bcb(1293, 765, {}, LXb);
- _2.of = function MXb(a) {
- KXb(this, a);
- };
- _2.lf = function NXb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
- this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- if (a.dc()) {
- b.f.a = 0;
- b.f.b = 0;
- return;
- }
- g = BD(a.Xb(0), 37);
- tNb(b, g);
- for (e = a.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 37);
- KXb(this, d);
- }
- t4 = new d7c();
- s = new d7c();
- p = new d7c();
- o2 = new d7c();
- f2 = Edb(ED(vNb(g, (Nyc(), kyc))));
- for (j = new olb(this.a); j.a < j.c.c.length; ) {
- h = BD(mlb(j), 325);
- if (fad(BD(vNb(b, (Y9c(), z8c)), 103))) {
- p.a = t4.a;
- for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
- q = BD(Lv(r.b.Pb()), 21);
- if (q.Hc((Ucd(), Acd))) {
- p.a = s.a;
- break;
- }
- }
- } else if (gad(BD(vNb(b, z8c), 103))) {
- p.b = t4.b;
- for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
- q = BD(Lv(r.b.Pb()), 21);
- if (q.Hc((Ucd(), Tcd))) {
- p.b = s.b;
- break;
- }
- }
- }
- k = DXb(BD(h, 570), f2);
- vXb(Uc(h.b), p.a, p.b);
- if (fad(BD(vNb(b, z8c), 103))) {
- s.a = p.a + k.a;
- o2.a = $wnd.Math.max(o2.a, s.a);
- for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
- q = BD(Lv(r.b.Pb()), 21);
- if (q.Hc((Ucd(), Rcd))) {
- t4.a = p.a + k.a;
- break;
- }
- }
- s.b = p.b + k.b;
- p.b = s.b;
- o2.b = $wnd.Math.max(o2.b, p.b);
- } else if (gad(BD(vNb(b, z8c), 103))) {
- s.b = p.b + k.b;
- o2.b = $wnd.Math.max(o2.b, s.b);
- for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
- q = BD(Lv(r.b.Pb()), 21);
- if (q.Hc((Ucd(), zcd))) {
- t4.b = p.b + k.b;
- break;
- }
- }
- s.a = p.a + k.a;
- p.a = s.a;
- o2.a = $wnd.Math.max(o2.a, p.a);
- }
- }
- b.f.a = o2.a - f2;
- b.f.b = o2.b - f2;
- if (Ccb(DD(vNb(g, qwc))) && PD(vNb(g, Swc)) === PD((Aad(), wad))) {
- for (n = a.Kc(); n.Ob(); ) {
- l = BD(n.Pb(), 37);
- uXb(l, l.c.a, l.c.b);
- }
- c2 = new gYb();
- YXb(c2, a, f2);
- for (m = a.Kc(); m.Ob(); ) {
- l = BD(m.Pb(), 37);
- P6c(X6c(l.c), c2.e);
- }
- P6c(X6c(b.f), c2.a);
- }
- for (i3 = new olb(this.a); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 325);
- tXb(b, Uc(h.b));
- }
- };
- mdb(_me, "ComponentGroupModelOrderGraphPlacer", 1293);
- bcb(423, 22, { 3: 1, 35: 1, 22: 1, 423: 1 }, SXb);
- var OXb, PXb, QXb;
- var hQ = ndb(_me, "ComponentOrderingStrategy", 423, CI, UXb, TXb);
- var VXb;
- bcb(650, 1, {}, gYb);
- mdb(_me, "ComponentsCompactor", 650);
- bcb(1468, 12, ake, jYb);
- _2.Fc = function kYb(a) {
- return hYb(this, BD(a, 140));
- };
- mdb(_me, "ComponentsCompactor/Hullpoints", 1468);
- bcb(1465, 1, { 841: 1 }, mYb);
- _2.a = false;
- mdb(_me, "ComponentsCompactor/InternalComponent", 1465);
- bcb(1464, 1, vie, nYb);
- _2.Jc = function oYb(a) {
- reb(this, a);
- };
- _2.Kc = function pYb() {
- return new olb(this.a);
- };
- mdb(_me, "ComponentsCompactor/InternalConnectedComponents", 1464);
- bcb(1467, 1, { 594: 1 }, qYb);
- _2.hf = function sYb() {
- return null;
- };
- _2.jf = function tYb() {
- return this.a;
- };
- _2.gf = function rYb() {
- return cYb(this.d);
- };
- _2.kf = function uYb() {
- return this.b;
- };
- mdb(_me, "ComponentsCompactor/InternalExternalExtension", 1467);
- bcb(1466, 1, { 594: 1 }, vYb);
- _2.jf = function yYb() {
- return this.a;
- };
- _2.gf = function wYb() {
- return cYb(this.d);
- };
- _2.hf = function xYb() {
- return this.c;
- };
- _2.kf = function zYb() {
- return this.b;
- };
- mdb(_me, "ComponentsCompactor/InternalUnionExternalExtension", 1466);
- bcb(1470, 1, {}, AYb);
- mdb(_me, "ComponentsCompactor/OuterSegments", 1470);
- bcb(1469, 1, {}, BYb);
- mdb(_me, "ComponentsCompactor/Segments", 1469);
- bcb(1264, 1, {}, FYb);
- mdb(_me, hme, 1264);
- bcb(1265, 1, Dke, HYb);
- _2.ue = function IYb(a, b) {
- return GYb(BD(a, 37), BD(b, 37));
- };
- _2.Fb = function JYb(a) {
- return this === a;
- };
- _2.ve = function KYb() {
- return new tpb(this);
- };
- mdb(_me, "ComponentsProcessor/lambda$0$Type", 1265);
- bcb(570, 325, { 325: 1, 570: 1 }, PYb);
- _2.mf = function QYb(a) {
- return NYb(this, a);
- };
- _2.nf = function RYb(a) {
- return OYb(this, a);
- };
- var LYb;
- mdb(_me, "ModelOrderComponentGroup", 570);
- bcb(1291, 2005, {}, SYb);
- _2.lf = function TYb(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
- if (a.gc() == 1) {
- t4 = BD(a.Xb(0), 37);
- if (t4 != b) {
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- sXb(b, t4, 0, 0);
- tNb(b, t4);
- u_b(b.d, t4.d);
- b.f.a = t4.f.a;
- b.f.b = t4.f.b;
- }
- return;
- } else if (a.dc()) {
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- b.f.a = 0;
- b.f.b = 0;
- return;
- }
- if (PD(vNb(b, (Nyc(), twc))) === PD((RXb(), QXb))) {
- for (i3 = a.Kc(); i3.Ob(); ) {
- g = BD(i3.Pb(), 37);
- r = 0;
- for (p = new olb(g.a); p.a < p.c.c.length; ) {
- o2 = BD(mlb(p), 10);
- r += BD(vNb(o2, byc), 19).a;
- }
- g.p = r;
- }
- mmb();
- a.ad(new VYb());
- }
- f2 = BD(a.Xb(0), 37);
- b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
- tNb(b, f2);
- n = 0;
- u2 = 0;
- for (j = a.Kc(); j.Ob(); ) {
- g = BD(j.Pb(), 37);
- s = g.f;
- n = $wnd.Math.max(n, s.a);
- u2 += s.a * s.b;
- }
- n = $wnd.Math.max(n, $wnd.Math.sqrt(u2) * Edb(ED(vNb(b, owc))));
- e = Edb(ED(vNb(b, kyc)));
- v = 0;
- w2 = 0;
- m = 0;
- c2 = e;
- for (h = a.Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 37);
- s = g.f;
- if (v + s.a > n) {
- v = 0;
- w2 += m + e;
- m = 0;
- }
- q = g.c;
- uXb(g, v + q.a, w2 + q.b);
- X6c(q);
- c2 = $wnd.Math.max(c2, v + s.a);
- m = $wnd.Math.max(m, s.b);
- v += s.a + e;
- }
- b.f.a = c2;
- b.f.b = w2 + m;
- if (Ccb(DD(vNb(f2, qwc)))) {
- d = new gYb();
- YXb(d, a, e);
- for (l = a.Kc(); l.Ob(); ) {
- k = BD(l.Pb(), 37);
- P6c(X6c(k.c), d.e);
- }
- P6c(X6c(b.f), d.a);
- }
- tXb(b, a);
- };
- mdb(_me, "SimpleRowGraphPlacer", 1291);
- bcb(1292, 1, Dke, VYb);
- _2.ue = function WYb(a, b) {
- return UYb(BD(a, 37), BD(b, 37));
- };
- _2.Fb = function XYb(a) {
- return this === a;
- };
- _2.ve = function YYb() {
- return new tpb(this);
- };
- mdb(_me, "SimpleRowGraphPlacer/1", 1292);
- var ZYb;
- bcb(1262, 1, Vke, dZb);
- _2.Lb = function eZb(a) {
- var b;
- return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0;
- };
- _2.Fb = function fZb(a) {
- return this === a;
- };
- _2.Mb = function gZb(a) {
- var b;
- return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0;
- };
- mdb(dne, "CompoundGraphPostprocessor/1", 1262);
- bcb(1261, 1, ene, wZb);
- _2.pf = function xZb(a, b) {
- qZb(this, BD(a, 37), b);
- };
- mdb(dne, "CompoundGraphPreprocessor", 1261);
- bcb(441, 1, { 441: 1 }, yZb);
- _2.c = false;
- mdb(dne, "CompoundGraphPreprocessor/ExternalPort", 441);
- bcb(243, 1, { 243: 1 }, BZb);
- _2.Ib = function CZb() {
- return Zr(this.c) + ":" + TZb(this.b);
- };
- mdb(dne, "CrossHierarchyEdge", 243);
- bcb(763, 1, Dke, EZb);
- _2.ue = function FZb(a, b) {
- return DZb(this, BD(a, 243), BD(b, 243));
- };
- _2.Fb = function GZb(a) {
- return this === a;
- };
- _2.ve = function IZb() {
- return new tpb(this);
- };
- mdb(dne, "CrossHierarchyEdgeComparator", 763);
- bcb(299, 134, { 3: 1, 299: 1, 94: 1, 134: 1 });
- _2.p = 0;
- mdb(fne, "LGraphElement", 299);
- bcb(17, 299, { 3: 1, 17: 1, 299: 1, 94: 1, 134: 1 }, UZb);
- _2.Ib = function VZb() {
- return TZb(this);
- };
- var AQ = mdb(fne, "LEdge", 17);
- bcb(37, 299, { 3: 1, 20: 1, 37: 1, 299: 1, 94: 1, 134: 1 }, XZb);
- _2.Jc = function YZb(a) {
- reb(this, a);
- };
- _2.Kc = function ZZb() {
- return new olb(this.b);
- };
- _2.Ib = function $Zb() {
- if (this.b.c.length == 0) {
- return "G-unlayered" + Fe(this.a);
- } else if (this.a.c.length == 0) {
- return "G-layered" + Fe(this.b);
- }
- return "G[layerless" + Fe(this.a) + ", layers" + Fe(this.b) + "]";
- };
- var KQ = mdb(fne, "LGraph", 37);
- var _Zb;
- bcb(657, 1, {});
- _2.qf = function b$b() {
- return this.e.n;
- };
- _2.We = function c$b(a) {
- return vNb(this.e, a);
- };
- _2.rf = function d$b() {
- return this.e.o;
- };
- _2.sf = function e$b() {
- return this.e.p;
- };
- _2.Xe = function f$b(a) {
- return wNb(this.e, a);
- };
- _2.tf = function g$b(a) {
- this.e.n.a = a.a;
- this.e.n.b = a.b;
- };
- _2.uf = function h$b(a) {
- this.e.o.a = a.a;
- this.e.o.b = a.b;
- };
- _2.vf = function i$b(a) {
- this.e.p = a;
- };
- mdb(fne, "LGraphAdapters/AbstractLShapeAdapter", 657);
- bcb(577, 1, { 839: 1 }, j$b);
- _2.wf = function k$b() {
- var a, b;
- if (!this.b) {
- this.b = Pu(this.a.b.c.length);
- for (b = new olb(this.a.b); b.a < b.c.c.length; ) {
- a = BD(mlb(b), 70);
- Ekb(this.b, new v$b(a));
- }
- }
- return this.b;
- };
- _2.b = null;
- mdb(fne, "LGraphAdapters/LEdgeAdapter", 577);
- bcb(656, 1, {}, l$b);
- _2.xf = function m$b() {
- var a, b, c2, d, e, f2;
- if (!this.b) {
- this.b = new Rkb();
- for (d = new olb(this.a.b); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 29);
- for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 10);
- if (this.c.Mb(e)) {
- Ekb(this.b, new x$b(this, e, this.e));
- if (this.d) {
- if (wNb(e, (wtc(), vtc))) {
- for (b = BD(vNb(e, vtc), 15).Kc(); b.Ob(); ) {
- a = BD(b.Pb(), 10);
- Ekb(this.b, new x$b(this, a, false));
- }
- }
- if (wNb(e, tsc)) {
- for (b = BD(vNb(e, tsc), 15).Kc(); b.Ob(); ) {
- a = BD(b.Pb(), 10);
- Ekb(this.b, new x$b(this, a, false));
- }
- }
- }
- }
- }
- }
- }
- return this.b;
- };
- _2.qf = function n$b() {
- throw vbb(new cgb(hne));
- };
- _2.We = function o$b(a) {
- return vNb(this.a, a);
- };
- _2.rf = function p$b() {
- return this.a.f;
- };
- _2.sf = function q$b() {
- return this.a.p;
- };
- _2.Xe = function r$b(a) {
- return wNb(this.a, a);
- };
- _2.tf = function s$b(a) {
- throw vbb(new cgb(hne));
- };
- _2.uf = function t$b(a) {
- this.a.f.a = a.a;
- this.a.f.b = a.b;
- };
- _2.vf = function u$b(a) {
- this.a.p = a;
- };
- _2.b = null;
- _2.d = false;
- _2.e = false;
- mdb(fne, "LGraphAdapters/LGraphAdapter", 656);
- bcb(576, 657, { 181: 1 }, v$b);
- mdb(fne, "LGraphAdapters/LLabelAdapter", 576);
- bcb(575, 657, { 680: 1 }, x$b);
- _2.yf = function y$b() {
- return this.b;
- };
- _2.zf = function z$b() {
- return mmb(), mmb(), jmb;
- };
- _2.wf = function A$b() {
- var a, b;
- if (!this.a) {
- this.a = Pu(BD(this.e, 10).b.c.length);
- for (b = new olb(BD(this.e, 10).b); b.a < b.c.c.length; ) {
- a = BD(mlb(b), 70);
- Ekb(this.a, new v$b(a));
- }
- }
- return this.a;
- };
- _2.Af = function B$b() {
- var a;
- a = BD(this.e, 10).d;
- return new J_b(a.d, a.c, a.a, a.b);
- };
- _2.Bf = function C$b() {
- return mmb(), mmb(), jmb;
- };
- _2.Cf = function D$b() {
- var a, b;
- if (!this.c) {
- this.c = Pu(BD(this.e, 10).j.c.length);
- for (b = new olb(BD(this.e, 10).j); b.a < b.c.c.length; ) {
- a = BD(mlb(b), 11);
- Ekb(this.c, new I$b(a, this.d));
- }
+ return rpos[dim];
}
- return this.c;
- };
- _2.Df = function E$b() {
- return Ccb(DD(vNb(BD(this.e, 10), (wtc(), wsc))));
- };
- _2.Ef = function F$b(a) {
- BD(this.e, 10).d.b = a.b;
- BD(this.e, 10).d.d = a.d;
- BD(this.e, 10).d.c = a.c;
- BD(this.e, 10).d.a = a.a;
- };
- _2.Ff = function G$b(a) {
- BD(this.e, 10).f.b = a.b;
- BD(this.e, 10).f.d = a.d;
- BD(this.e, 10).f.c = a.c;
- BD(this.e, 10).f.a = a.a;
- };
- _2.Gf = function H$b() {
- w$b(this, (a$b(), _Zb));
- };
- _2.a = null;
- _2.b = null;
- _2.c = null;
- _2.d = false;
- mdb(fne, "LGraphAdapters/LNodeAdapter", 575);
- bcb(1722, 657, { 838: 1 }, I$b);
- _2.zf = function J$b() {
- var a, b, c2, d;
- if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) {
- return mmb(), mmb(), jmb;
- } else if (!this.a) {
- this.a = new Rkb();
- for (c2 = new olb(BD(this.e, 11).e); c2.a < c2.c.c.length; ) {
- a = BD(mlb(c2), 17);
- Ekb(this.a, new j$b(a));
- }
- if (this.d) {
- d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10);
- if (d) {
- for (b = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(b); ) {
- a = BD(Rr(b), 17);
- Ekb(this.a, new j$b(a));
- }
- }
+ }
+ } else if (!setting) {
+ return void 0;
+ }
+ return this;
+ }, "renderedPosition"),
+ // get/set the position relative to the parent
+ relativePosition: /* @__PURE__ */ __name(function relativePosition(dim, val) {
+ var ele = this[0];
+ var cy = this.cy();
+ var ppos = plainObject(dim) ? dim : void 0;
+ var setting = ppos !== void 0 || val !== void 0 && string(dim);
+ var hasCompoundNodes2 = cy.hasCompoundNodes();
+ if (ele && ele.isNode()) {
+ if (setting) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var _ele2 = this[i2];
+ var parent4 = hasCompoundNodes2 ? _ele2.parent() : null;
+ var hasParent = parent4 && parent4.length > 0;
+ var relativeToParent = hasParent;
+ if (hasParent) {
+ parent4 = parent4[0];
}
- }
- return this.a;
- };
- _2.wf = function K$b() {
- var a, b;
- if (!this.b) {
- this.b = Pu(BD(this.e, 11).f.c.length);
- for (b = new olb(BD(this.e, 11).f); b.a < b.c.c.length; ) {
- a = BD(mlb(b), 70);
- Ekb(this.b, new v$b(a));
+ var origin = relativeToParent ? parent4.position() : {
+ x: 0,
+ y: 0
+ };
+ if (val !== void 0) {
+ _ele2.position(dim, val + origin[dim]);
+ } else if (ppos !== void 0) {
+ _ele2.position({
+ x: ppos.x + origin.x,
+ y: ppos.y + origin.y
+ });
}
}
- return this.b;
- };
- _2.Bf = function L$b() {
- var a, b, c2, d;
- if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) {
- return mmb(), mmb(), jmb;
- } else if (!this.c) {
- this.c = new Rkb();
- for (c2 = new olb(BD(this.e, 11).g); c2.a < c2.c.c.length; ) {
- a = BD(mlb(c2), 17);
- Ekb(this.c, new j$b(a));
- }
- if (this.d) {
- d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10);
- if (d) {
- for (b = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(b); ) {
- a = BD(Rr(b), 17);
- Ekb(this.c, new j$b(a));
- }
- }
- }
+ } else {
+ var pos = ele.position();
+ var _parent = hasCompoundNodes2 ? ele.parent() : null;
+ var _hasParent = _parent && _parent.length > 0;
+ var _relativeToParent = _hasParent;
+ if (_hasParent) {
+ _parent = _parent[0];
}
- return this.c;
- };
- _2.Hf = function M$b() {
- return BD(this.e, 11).j;
- };
- _2.If = function N$b() {
- return Ccb(DD(vNb(BD(this.e, 11), (wtc(), Nsc))));
- };
- _2.a = null;
- _2.b = null;
- _2.c = null;
- _2.d = false;
- mdb(fne, "LGraphAdapters/LPortAdapter", 1722);
- bcb(1723, 1, Dke, P$b);
- _2.ue = function Q$b(a, b) {
- return O$b(BD(a, 11), BD(b, 11));
- };
- _2.Fb = function R$b(a) {
- return this === a;
- };
- _2.ve = function S$b() {
- return new tpb(this);
- };
- mdb(fne, "LGraphAdapters/PortComparator", 1723);
- bcb(804, 1, Oie, T$b);
- _2.Mb = function U$b(a) {
- return BD(a, 10), a$b(), true;
- };
- mdb(fne, "LGraphAdapters/lambda$0$Type", 804);
- bcb(392, 299, { 3: 1, 299: 1, 392: 1, 94: 1, 134: 1 });
- mdb(fne, "LShape", 392);
- bcb(70, 392, { 3: 1, 299: 1, 70: 1, 392: 1, 94: 1, 134: 1 }, p_b, q_b);
- _2.Ib = function r_b() {
- var a;
- a = o_b(this);
- return a == null ? "label" : "l_" + a;
- };
- mdb(fne, "LLabel", 70);
- bcb(207, 1, { 3: 1, 4: 1, 207: 1, 414: 1 });
- _2.Fb = function C_b(a) {
- var b;
- if (JD(a, 207)) {
- b = BD(a, 207);
- return this.d == b.d && this.a == b.a && this.b == b.b && this.c == b.c;
+ var _origin = _relativeToParent ? _parent.position() : {
+ x: 0,
+ y: 0
+ };
+ ppos = {
+ x: pos.x - _origin.x,
+ y: pos.y - _origin.y
+ };
+ if (dim === void 0) {
+ return ppos;
} else {
- return false;
- }
- };
- _2.Hb = function D_b() {
- var a, b;
- a = Hdb(this.b) << 16;
- a |= Hdb(this.a) & aje;
- b = Hdb(this.c) << 16;
- b |= Hdb(this.d) & aje;
- return a ^ b;
- };
- _2.Jf = function F_b(b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- g = 0;
- while (g < b.length && E_b((BCb(g, b.length), b.charCodeAt(g)), mne)) {
- ++g;
- }
- c2 = b.length;
- while (c2 > 0 && E_b((BCb(c2 - 1, b.length), b.charCodeAt(c2 - 1)), nne)) {
- --c2;
- }
- if (g < c2) {
- l = mfb(b.substr(g, c2 - g), ",|;");
- try {
- for (i3 = l, j = 0, k = i3.length; j < k; ++j) {
- h = i3[j];
- f2 = mfb(h, "=");
- if (f2.length != 2) {
- throw vbb(new Wdb("Expecting a list of key-value pairs."));
- }
- e = ufb(f2[0]);
- m = Hcb(ufb(f2[1]));
- dfb(e, "top") ? this.d = m : dfb(e, "left") ? this.b = m : dfb(e, "bottom") ? this.a = m : dfb(e, "right") && (this.c = m);
- }
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- d = a;
- throw vbb(new Wdb(one2 + d));
- } else
- throw vbb(a);
- }
+ return ppos[dim];
}
+ }
+ } else if (!setting) {
+ return void 0;
+ }
+ return this;
+ }, "relativePosition")
+ };
+ fn$4.modelPosition = fn$4.point = fn$4.position;
+ fn$4.modelPositions = fn$4.points = fn$4.positions;
+ fn$4.renderedPoint = fn$4.renderedPosition;
+ fn$4.relativePoint = fn$4.relativePosition;
+ position2 = elesfn$c;
+ fn$3 = elesfn$b = {};
+ elesfn$b.renderedBoundingBox = function(options3) {
+ var bb = this.boundingBox(options3);
+ var cy = this.cy();
+ var zoom2 = cy.zoom();
+ var pan2 = cy.pan();
+ var x1 = bb.x1 * zoom2 + pan2.x;
+ var x22 = bb.x2 * zoom2 + pan2.x;
+ var y1 = bb.y1 * zoom2 + pan2.y;
+ var y22 = bb.y2 * zoom2 + pan2.y;
+ return {
+ x1,
+ x2: x22,
+ y1,
+ y2: y22,
+ w: x22 - x1,
+ h: y22 - y1
+ };
+ };
+ elesfn$b.dirtyCompoundBoundsCache = function() {
+ var silent = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
+ var cy = this.cy();
+ if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
+ return this;
+ }
+ this.forEachUp(function(ele) {
+ if (ele.isParent()) {
+ var _p = ele._private;
+ _p.compoundBoundsClean = false;
+ _p.bbCache = null;
+ if (!silent) {
+ ele.emitAndNotify("bounds");
+ }
+ }
+ });
+ return this;
+ };
+ elesfn$b.updateCompoundBounds = function() {
+ var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
+ var cy = this.cy();
+ if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
+ return this;
+ }
+ if (!force && cy.batching()) {
+ return this;
+ }
+ function update2(parent4) {
+ if (!parent4.isParent()) {
+ return;
+ }
+ var _p2 = parent4._private;
+ var children2 = parent4.children();
+ var includeLabels = parent4.pstyle("compound-sizing-wrt-labels").value === "include";
+ var min9 = {
+ width: {
+ val: parent4.pstyle("min-width").pfValue,
+ left: parent4.pstyle("min-width-bias-left"),
+ right: parent4.pstyle("min-width-bias-right")
+ },
+ height: {
+ val: parent4.pstyle("min-height").pfValue,
+ top: parent4.pstyle("min-height-bias-top"),
+ bottom: parent4.pstyle("min-height-bias-bottom")
+ }
+ };
+ var bb = children2.boundingBox({
+ includeLabels,
+ includeOverlays: false,
+ // updating the compound bounds happens outside of the regular
+ // cache cycle (i.e. before fired events)
+ useCache: false
+ });
+ var pos = _p2.position;
+ if (bb.w === 0 || bb.h === 0) {
+ bb = {
+ w: parent4.pstyle("width").pfValue,
+ h: parent4.pstyle("height").pfValue
};
- _2.Ib = function G_b() {
- return "[top=" + this.d + ",left=" + this.b + ",bottom=" + this.a + ",right=" + this.c + "]";
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- mdb(pne, "Spacing", 207);
- bcb(142, 207, qne, H_b, I_b, J_b, K_b);
- var i1 = mdb(pne, "ElkMargin", 142);
- bcb(651, 142, qne, L_b);
- mdb(fne, "LMargin", 651);
- bcb(10, 392, { 3: 1, 299: 1, 10: 1, 392: 1, 94: 1, 134: 1 }, b0b);
- _2.Ib = function c0b() {
- return a0b(this);
- };
- _2.i = false;
- var OQ = mdb(fne, "LNode", 10);
- bcb(267, 22, { 3: 1, 35: 1, 22: 1, 267: 1 }, k0b);
- var d0b, e0b, f0b, g0b, h0b, i0b;
- var NQ = ndb(fne, "LNode/NodeType", 267, CI, m0b, l0b);
- var n0b;
- bcb(116, 207, rne, p0b, q0b, r0b);
- var j1 = mdb(pne, "ElkPadding", 116);
- bcb(764, 116, rne, s0b);
- mdb(fne, "LPadding", 764);
- bcb(11, 392, { 3: 1, 299: 1, 11: 1, 392: 1, 94: 1, 134: 1 }, H0b);
- _2.Ib = function I0b() {
- var a, b, c2;
- a = new Ufb();
- Qfb((a.a += "p_", a), C0b(this));
- !!this.i && Qfb(Pfb((a.a += "[", a), this.i), "]");
- if (this.e.c.length == 1 && this.g.c.length == 0 && BD(Ikb(this.e, 0), 17).c != this) {
- b = BD(Ikb(this.e, 0), 17).c;
- Qfb((a.a += " << ", a), C0b(b));
- Qfb(Pfb((a.a += "[", a), b.i), "]");
- }
- if (this.e.c.length == 0 && this.g.c.length == 1 && BD(Ikb(this.g, 0), 17).d != this) {
- c2 = BD(Ikb(this.g, 0), 17).d;
- Qfb((a.a += " >> ", a), C0b(c2));
- Qfb(Pfb((a.a += "[", a), c2.i), "]");
- }
- return a.a;
- };
- _2.c = true;
- _2.d = false;
- var t0b, u0b, v0b, w0b, x0b, y0b;
- var aR = mdb(fne, "LPort", 11);
- bcb(397, 1, vie, J0b);
- _2.Jc = function K0b(a) {
- reb(this, a);
+ bb.x1 = pos.x - bb.w / 2;
+ bb.x2 = pos.x + bb.w / 2;
+ bb.y1 = pos.y - bb.h / 2;
+ bb.y2 = pos.y + bb.h / 2;
+ }
+ function computeBiasValues(propDiff, propBias, propBiasComplement) {
+ var biasDiff = 0;
+ var biasComplementDiff = 0;
+ var biasTotal = propBias + propBiasComplement;
+ if (propDiff > 0 && biasTotal > 0) {
+ biasDiff = propBias / biasTotal * propDiff;
+ biasComplementDiff = propBiasComplement / biasTotal * propDiff;
+ }
+ return {
+ biasDiff,
+ biasComplementDiff
};
- _2.Kc = function L0b() {
- var a;
- a = new olb(this.a.e);
- return new M0b(a);
- };
- mdb(fne, "LPort/1", 397);
- bcb(1290, 1, aie, M0b);
- _2.Nb = function N0b(a) {
- Rrb(this, a);
- };
- _2.Pb = function P0b() {
- return BD(mlb(this.a), 17).c;
- };
- _2.Ob = function O0b() {
- return llb(this.a);
- };
- _2.Qb = function Q0b() {
- nlb(this.a);
- };
- mdb(fne, "LPort/1/1", 1290);
- bcb(359, 1, vie, R0b);
- _2.Jc = function S0b(a) {
- reb(this, a);
- };
- _2.Kc = function T0b() {
- var a;
- return a = new olb(this.a.g), new U0b(a);
- };
- mdb(fne, "LPort/2", 359);
- bcb(762, 1, aie, U0b);
- _2.Nb = function V0b(a) {
- Rrb(this, a);
- };
- _2.Pb = function X0b() {
- return BD(mlb(this.a), 17).d;
- };
- _2.Ob = function W0b() {
- return llb(this.a);
- };
- _2.Qb = function Y0b() {
- nlb(this.a);
- };
- mdb(fne, "LPort/2/1", 762);
- bcb(1283, 1, vie, Z0b);
- _2.Jc = function $0b(a) {
- reb(this, a);
- };
- _2.Kc = function _0b() {
- return new b1b(this);
- };
- mdb(fne, "LPort/CombineIter", 1283);
- bcb(201, 1, aie, b1b);
- _2.Nb = function c1b(a) {
- Rrb(this, a);
- };
- _2.Qb = function f1b() {
- Srb();
- };
- _2.Ob = function d1b() {
- return a1b(this);
- };
- _2.Pb = function e1b() {
- return llb(this.a) ? mlb(this.a) : mlb(this.b);
- };
- mdb(fne, "LPort/CombineIter/1", 201);
- bcb(1285, 1, Vke, h1b);
- _2.Lb = function i1b(a) {
- return g1b(a);
- };
- _2.Fb = function j1b(a) {
- return this === a;
- };
- _2.Mb = function k1b(a) {
- return z0b(), BD(a, 11).e.c.length != 0;
- };
- mdb(fne, "LPort/lambda$0$Type", 1285);
- bcb(1284, 1, Vke, m1b);
- _2.Lb = function n1b(a) {
- return l1b(a);
- };
- _2.Fb = function o1b(a) {
- return this === a;
- };
- _2.Mb = function p1b(a) {
- return z0b(), BD(a, 11).g.c.length != 0;
- };
- mdb(fne, "LPort/lambda$1$Type", 1284);
- bcb(1286, 1, Vke, q1b);
- _2.Lb = function r1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), Acd);
- };
- _2.Fb = function s1b(a) {
- return this === a;
- };
- _2.Mb = function t1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), Acd);
- };
- mdb(fne, "LPort/lambda$2$Type", 1286);
- bcb(1287, 1, Vke, u1b);
- _2.Lb = function v1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), zcd);
- };
- _2.Fb = function w1b(a) {
- return this === a;
- };
- _2.Mb = function x1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), zcd);
- };
- mdb(fne, "LPort/lambda$3$Type", 1287);
- bcb(1288, 1, Vke, y1b);
- _2.Lb = function z1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), Rcd);
- };
- _2.Fb = function A1b(a) {
- return this === a;
- };
- _2.Mb = function B1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), Rcd);
- };
- mdb(fne, "LPort/lambda$4$Type", 1288);
- bcb(1289, 1, Vke, C1b);
- _2.Lb = function D1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), Tcd);
- };
- _2.Fb = function E1b(a) {
- return this === a;
- };
- _2.Mb = function F1b(a) {
- return z0b(), BD(a, 11).j == (Ucd(), Tcd);
- };
- mdb(fne, "LPort/lambda$5$Type", 1289);
- bcb(29, 299, { 3: 1, 20: 1, 299: 1, 29: 1, 94: 1, 134: 1 }, H1b);
- _2.Jc = function I1b(a) {
- reb(this, a);
- };
- _2.Kc = function J1b() {
- return new olb(this.a);
- };
- _2.Ib = function K1b() {
- return "L_" + Jkb(this.b.b, this, 0) + Fe(this.a);
- };
- mdb(fne, "Layer", 29);
- bcb(1342, 1, {}, a2b);
- mdb(tne, une, 1342);
- bcb(1346, 1, {}, e2b);
- _2.Kb = function f2b(a) {
- return atd(BD(a, 82));
- };
- mdb(tne, "ElkGraphImporter/0methodref$connectableShapeToNode$Type", 1346);
- bcb(1349, 1, {}, g2b);
- _2.Kb = function h2b(a) {
- return atd(BD(a, 82));
- };
- mdb(tne, "ElkGraphImporter/1methodref$connectableShapeToNode$Type", 1349);
- bcb(1343, 1, qie, i2b);
- _2.td = function j2b(a) {
- Q1b(this.a, BD(a, 118));
- };
- mdb(tne, vne, 1343);
- bcb(1344, 1, qie, k2b);
- _2.td = function l2b(a) {
- Q1b(this.a, BD(a, 118));
- };
- mdb(tne, wne, 1344);
- bcb(1345, 1, {}, m2b);
- _2.Kb = function n2b(a) {
- return new YAb(null, new Kub(Old(BD(a, 79)), 16));
- };
- mdb(tne, xne, 1345);
- bcb(1347, 1, Oie, o2b);
- _2.Mb = function p2b(a) {
- return b2b(this.a, BD(a, 33));
- };
- mdb(tne, yne, 1347);
- bcb(1348, 1, {}, q2b);
- _2.Kb = function r2b(a) {
- return new YAb(null, new Kub(Nld(BD(a, 79)), 16));
- };
- mdb(tne, "ElkGraphImporter/lambda$5$Type", 1348);
- bcb(1350, 1, Oie, s2b);
- _2.Mb = function t2b(a) {
- return c2b(this.a, BD(a, 33));
- };
- mdb(tne, "ElkGraphImporter/lambda$7$Type", 1350);
- bcb(1351, 1, Oie, u2b);
- _2.Mb = function v2b(a) {
- return d2b(BD(a, 79));
- };
- mdb(tne, "ElkGraphImporter/lambda$8$Type", 1351);
- bcb(1278, 1, {}, D2b);
- var w2b;
- mdb(tne, "ElkGraphLayoutTransferrer", 1278);
- bcb(1279, 1, Oie, G2b);
- _2.Mb = function H2b(a) {
- return E2b(this.a, BD(a, 17));
- };
- mdb(tne, "ElkGraphLayoutTransferrer/lambda$0$Type", 1279);
- bcb(1280, 1, qie, I2b);
- _2.td = function J2b(a) {
- x2b();
- Ekb(this.a, BD(a, 17));
- };
- mdb(tne, "ElkGraphLayoutTransferrer/lambda$1$Type", 1280);
- bcb(1281, 1, Oie, K2b);
- _2.Mb = function L2b(a) {
- return F2b(this.a, BD(a, 17));
- };
- mdb(tne, "ElkGraphLayoutTransferrer/lambda$2$Type", 1281);
- bcb(1282, 1, qie, M2b);
- _2.td = function N2b(a) {
- x2b();
- Ekb(this.a, BD(a, 17));
- };
- mdb(tne, "ElkGraphLayoutTransferrer/lambda$3$Type", 1282);
- bcb(1485, 1, ene, S2b);
- _2.pf = function T2b(a, b) {
- Q2b(BD(a, 37), b);
- };
- mdb(Ane, "CommentNodeMarginCalculator", 1485);
- bcb(1486, 1, {}, U2b);
- _2.Kb = function V2b(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "CommentNodeMarginCalculator/lambda$0$Type", 1486);
- bcb(1487, 1, qie, W2b);
- _2.td = function X2b(a) {
- R2b(BD(a, 10));
- };
- mdb(Ane, "CommentNodeMarginCalculator/lambda$1$Type", 1487);
- bcb(1488, 1, ene, _2b);
- _2.pf = function a3b(a, b) {
- Z2b(BD(a, 37), b);
- };
- mdb(Ane, "CommentPostprocessor", 1488);
- bcb(1489, 1, ene, e3b);
- _2.pf = function f3b(a, b) {
- b3b(BD(a, 37), b);
- };
- mdb(Ane, "CommentPreprocessor", 1489);
- bcb(1490, 1, ene, h3b);
- _2.pf = function i3b(a, b) {
- g3b(BD(a, 37), b);
- };
- mdb(Ane, "ConstraintsPostprocessor", 1490);
- bcb(1491, 1, ene, p3b);
- _2.pf = function q3b(a, b) {
- n3b(BD(a, 37), b);
- };
- mdb(Ane, "EdgeAndLayerConstraintEdgeReverser", 1491);
- bcb(1492, 1, ene, t3b);
- _2.pf = function v3b(a, b) {
- r3b(BD(a, 37), b);
- };
- mdb(Ane, "EndLabelPostprocessor", 1492);
- bcb(1493, 1, {}, w3b);
- _2.Kb = function x3b(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "EndLabelPostprocessor/lambda$0$Type", 1493);
- bcb(1494, 1, Oie, y3b);
- _2.Mb = function z3b(a) {
- return u3b(BD(a, 10));
- };
- mdb(Ane, "EndLabelPostprocessor/lambda$1$Type", 1494);
- bcb(1495, 1, qie, A3b);
- _2.td = function B3b(a) {
- s3b(BD(a, 10));
- };
- mdb(Ane, "EndLabelPostprocessor/lambda$2$Type", 1495);
- bcb(1496, 1, ene, M3b);
- _2.pf = function P3b(a, b) {
- I3b(BD(a, 37), b);
- };
- mdb(Ane, "EndLabelPreprocessor", 1496);
- bcb(1497, 1, {}, Q3b);
- _2.Kb = function R3b(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "EndLabelPreprocessor/lambda$0$Type", 1497);
- bcb(1498, 1, qie, S3b);
- _2.td = function T3b(a) {
- E3b(this.a, this.b, this.c, BD(a, 10));
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = false;
- mdb(Ane, "EndLabelPreprocessor/lambda$1$Type", 1498);
- bcb(1499, 1, Oie, U3b);
- _2.Mb = function V3b(a) {
- return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad2));
- };
- mdb(Ane, "EndLabelPreprocessor/lambda$2$Type", 1499);
- bcb(1500, 1, qie, W3b);
- _2.td = function X3b(a) {
- Dsb(this.a, BD(a, 70));
- };
- mdb(Ane, "EndLabelPreprocessor/lambda$3$Type", 1500);
- bcb(1501, 1, Oie, Y3b);
- _2.Mb = function Z3b(a) {
- return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad));
- };
- mdb(Ane, "EndLabelPreprocessor/lambda$4$Type", 1501);
- bcb(1502, 1, qie, $3b);
- _2.td = function _3b(a) {
- Dsb(this.a, BD(a, 70));
- };
- mdb(Ane, "EndLabelPreprocessor/lambda$5$Type", 1502);
- bcb(1551, 1, ene, i4b);
- _2.pf = function j4b(a, b) {
- f4b(BD(a, 37), b);
- };
- var a4b;
- mdb(Ane, "EndLabelSorter", 1551);
- bcb(1552, 1, Dke, l4b);
- _2.ue = function m4b(a, b) {
- return k4b(BD(a, 456), BD(b, 456));
- };
- _2.Fb = function n4b(a) {
- return this === a;
- };
- _2.ve = function o4b() {
- return new tpb(this);
- };
- mdb(Ane, "EndLabelSorter/1", 1552);
- bcb(456, 1, { 456: 1 }, p4b);
- mdb(Ane, "EndLabelSorter/LabelGroup", 456);
- bcb(1553, 1, {}, q4b);
- _2.Kb = function r4b(a) {
- return b4b(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "EndLabelSorter/lambda$0$Type", 1553);
- bcb(1554, 1, Oie, s4b);
- _2.Mb = function t4b(a) {
- return b4b(), BD(a, 10).k == (j0b(), h0b);
- };
- mdb(Ane, "EndLabelSorter/lambda$1$Type", 1554);
- bcb(1555, 1, qie, u4b);
- _2.td = function v4b(a) {
- g4b(BD(a, 10));
- };
- mdb(Ane, "EndLabelSorter/lambda$2$Type", 1555);
- bcb(1556, 1, Oie, w4b);
- _2.Mb = function x4b(a) {
- return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad));
- };
- mdb(Ane, "EndLabelSorter/lambda$3$Type", 1556);
- bcb(1557, 1, Oie, y4b);
- _2.Mb = function z4b(a) {
- return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad2));
- };
- mdb(Ane, "EndLabelSorter/lambda$4$Type", 1557);
- bcb(1503, 1, ene, L4b);
- _2.pf = function M4b(a, b) {
- J4b(this, BD(a, 37));
- };
- _2.b = 0;
- _2.c = 0;
- mdb(Ane, "FinalSplineBendpointsCalculator", 1503);
- bcb(1504, 1, {}, N4b);
- _2.Kb = function O4b(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "FinalSplineBendpointsCalculator/lambda$0$Type", 1504);
- bcb(1505, 1, {}, P4b);
- _2.Kb = function Q4b(a) {
- return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
- };
- mdb(Ane, "FinalSplineBendpointsCalculator/lambda$1$Type", 1505);
- bcb(1506, 1, Oie, R4b);
- _2.Mb = function S4b(a) {
- return !OZb(BD(a, 17));
- };
- mdb(Ane, "FinalSplineBendpointsCalculator/lambda$2$Type", 1506);
- bcb(1507, 1, Oie, T4b);
- _2.Mb = function U4b(a) {
- return wNb(BD(a, 17), (wtc(), rtc));
- };
- mdb(Ane, "FinalSplineBendpointsCalculator/lambda$3$Type", 1507);
- bcb(1508, 1, qie, V4b);
- _2.td = function W4b(a) {
- C4b(this.a, BD(a, 128));
- };
- mdb(Ane, "FinalSplineBendpointsCalculator/lambda$4$Type", 1508);
- bcb(1509, 1, qie, X4b);
- _2.td = function Y4b(a) {
- smb(BD(a, 17).a);
- };
- mdb(Ane, "FinalSplineBendpointsCalculator/lambda$5$Type", 1509);
- bcb(792, 1, ene, u5b);
- _2.pf = function v5b(a, b) {
- l5b(this, BD(a, 37), b);
- };
- mdb(Ane, "GraphTransformer", 792);
- bcb(511, 22, { 3: 1, 35: 1, 22: 1, 511: 1 }, z5b);
- var w5b, x5b;
- var ZR = ndb(Ane, "GraphTransformer/Mode", 511, CI, B5b, A5b);
- var C5b;
- bcb(1510, 1, ene, I5b);
- _2.pf = function J5b(a, b) {
- F5b(BD(a, 37), b);
- };
- mdb(Ane, "HierarchicalNodeResizingProcessor", 1510);
- bcb(1511, 1, ene, Q5b);
- _2.pf = function R5b(a, b) {
- M5b(BD(a, 37), b);
- };
- mdb(Ane, "HierarchicalPortConstraintProcessor", 1511);
- bcb(1512, 1, Dke, T5b);
- _2.ue = function U5b(a, b) {
- return S5b(BD(a, 10), BD(b, 10));
- };
- _2.Fb = function V5b(a) {
- return this === a;
- };
- _2.ve = function W5b() {
- return new tpb(this);
- };
- mdb(Ane, "HierarchicalPortConstraintProcessor/NodeComparator", 1512);
- bcb(1513, 1, ene, Z5b);
- _2.pf = function $5b(a, b) {
- X5b(BD(a, 37), b);
- };
- mdb(Ane, "HierarchicalPortDummySizeProcessor", 1513);
- bcb(1514, 1, ene, l6b);
- _2.pf = function m6b(a, b) {
- e6b(this, BD(a, 37), b);
- };
- _2.a = 0;
- mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter", 1514);
- bcb(1515, 1, Dke, o6b);
- _2.ue = function p6b(a, b) {
- return n6b(BD(a, 10), BD(b, 10));
- };
- _2.Fb = function q6b(a) {
- return this === a;
- };
- _2.ve = function r6b() {
- return new tpb(this);
- };
- mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/1", 1515);
- bcb(1516, 1, Dke, t6b);
- _2.ue = function u6b(a, b) {
- return s6b(BD(a, 10), BD(b, 10));
- };
- _2.Fb = function v6b(a) {
- return this === a;
- };
- _2.ve = function w6b() {
- return new tpb(this);
- };
- mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/2", 1516);
- bcb(1517, 1, ene, z6b);
- _2.pf = function A6b(a, b) {
- y6b(BD(a, 37), b);
- };
- mdb(Ane, "HierarchicalPortPositionProcessor", 1517);
- bcb(1518, 1, ene, J6b);
- _2.pf = function K6b(a, b) {
- I6b(this, BD(a, 37));
- };
- _2.a = 0;
- _2.c = 0;
- var B6b, C6b;
- mdb(Ane, "HighDegreeNodeLayeringProcessor", 1518);
- bcb(571, 1, { 571: 1 }, L6b);
- _2.b = -1;
- _2.d = -1;
- mdb(Ane, "HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation", 571);
- bcb(1519, 1, {}, M6b);
- _2.Kb = function N6b(a) {
- return D6b(), R_b(BD(a, 10));
- };
- _2.Fb = function O6b(a) {
- return this === a;
- };
- mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$0$Type", 1519);
- bcb(1520, 1, {}, P6b);
- _2.Kb = function Q6b(a) {
- return D6b(), U_b(BD(a, 10));
- };
- _2.Fb = function R6b(a) {
- return this === a;
- };
- mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$1$Type", 1520);
- bcb(1526, 1, ene, X6b);
- _2.pf = function Y6b(a, b) {
- W6b(this, BD(a, 37), b);
- };
- mdb(Ane, "HyperedgeDummyMerger", 1526);
- bcb(793, 1, {}, Z6b);
- _2.a = false;
- _2.b = false;
- _2.c = false;
- mdb(Ane, "HyperedgeDummyMerger/MergeState", 793);
- bcb(1527, 1, {}, $6b);
- _2.Kb = function _6b(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "HyperedgeDummyMerger/lambda$0$Type", 1527);
- bcb(1528, 1, {}, a7b);
- _2.Kb = function b7b(a) {
- return new YAb(null, new Kub(BD(a, 10).j, 16));
- };
- mdb(Ane, "HyperedgeDummyMerger/lambda$1$Type", 1528);
- bcb(1529, 1, qie, c7b);
- _2.td = function d7b(a) {
- BD(a, 11).p = -1;
- };
- mdb(Ane, "HyperedgeDummyMerger/lambda$2$Type", 1529);
- bcb(1530, 1, ene, g7b);
- _2.pf = function h7b(a, b) {
- f7b(BD(a, 37), b);
- };
- mdb(Ane, "HypernodesProcessor", 1530);
- bcb(1531, 1, ene, j7b);
- _2.pf = function k7b(a, b) {
- i7b(BD(a, 37), b);
- };
- mdb(Ane, "InLayerConstraintProcessor", 1531);
- bcb(1532, 1, ene, m7b);
- _2.pf = function n7b(a, b) {
- l7b(BD(a, 37), b);
- };
- mdb(Ane, "InnermostNodeMarginCalculator", 1532);
- bcb(1533, 1, ene, r7b);
- _2.pf = function w7b(a, b) {
- q7b(this, BD(a, 37));
- };
- _2.a = Qje;
- _2.b = Qje;
- _2.c = Pje;
- _2.d = Pje;
- var zS = mdb(Ane, "InteractiveExternalPortPositioner", 1533);
- bcb(1534, 1, {}, x7b);
- _2.Kb = function y7b(a) {
- return BD(a, 17).d.i;
- };
- _2.Fb = function z7b(a) {
- return this === a;
- };
- mdb(Ane, "InteractiveExternalPortPositioner/lambda$0$Type", 1534);
- bcb(1535, 1, {}, A7b);
- _2.Kb = function B7b(a) {
- return s7b(this.a, ED(a));
- };
- _2.Fb = function C7b(a) {
- return this === a;
- };
- mdb(Ane, "InteractiveExternalPortPositioner/lambda$1$Type", 1535);
- bcb(1536, 1, {}, D7b);
- _2.Kb = function E7b(a) {
- return BD(a, 17).c.i;
- };
- _2.Fb = function F7b(a) {
- return this === a;
- };
- mdb(Ane, "InteractiveExternalPortPositioner/lambda$2$Type", 1536);
- bcb(1537, 1, {}, G7b);
- _2.Kb = function H7b(a) {
- return t7b(this.a, ED(a));
- };
- _2.Fb = function I7b(a) {
- return this === a;
- };
- mdb(Ane, "InteractiveExternalPortPositioner/lambda$3$Type", 1537);
- bcb(1538, 1, {}, J7b);
- _2.Kb = function K7b(a) {
- return u7b(this.a, ED(a));
- };
- _2.Fb = function L7b(a) {
- return this === a;
- };
- mdb(Ane, "InteractiveExternalPortPositioner/lambda$4$Type", 1538);
- bcb(1539, 1, {}, M7b);
- _2.Kb = function N7b(a) {
- return v7b(this.a, ED(a));
- };
- _2.Fb = function O7b(a) {
- return this === a;
- };
- mdb(Ane, "InteractiveExternalPortPositioner/lambda$5$Type", 1539);
- bcb(77, 22, { 3: 1, 35: 1, 22: 1, 77: 1, 234: 1 }, T8b);
- _2.Kf = function U8b() {
- switch (this.g) {
- case 15:
- return new eoc();
- case 22:
- return new Aoc();
- case 47:
- return new Joc();
- case 28:
- case 35:
- return new uac();
- case 32:
- return new S2b();
- case 42:
- return new _2b();
- case 1:
- return new e3b();
- case 41:
- return new h3b();
- case 56:
- return new u5b((y5b(), x5b));
- case 0:
- return new u5b((y5b(), w5b));
- case 2:
- return new p3b();
- case 54:
- return new t3b();
- case 33:
- return new M3b();
- case 51:
- return new L4b();
- case 55:
- return new I5b();
- case 13:
- return new Q5b();
- case 38:
- return new Z5b();
- case 44:
- return new l6b();
- case 40:
- return new z6b();
- case 9:
- return new J6b();
- case 49:
- return new sgc();
- case 37:
- return new X6b();
- case 43:
- return new g7b();
- case 27:
- return new j7b();
- case 30:
- return new m7b();
- case 3:
- return new r7b();
- case 18:
- return new b9b();
- case 29:
- return new h9b();
- case 5:
- return new u9b();
- case 50:
- return new D9b();
- case 34:
- return new $9b();
- case 36:
- return new Iac();
- case 52:
- return new i4b();
- case 11:
- return new Sac();
- case 7:
- return new abc();
- case 39:
- return new obc();
- case 45:
- return new rbc();
- case 16:
- return new vbc();
- case 10:
- return new Fbc();
- case 48:
- return new Xbc();
- case 21:
- return new ccc();
- case 23:
- return new fGc((rGc(), pGc));
- case 8:
- return new lcc();
- case 12:
- return new tcc();
- case 4:
- return new ycc();
- case 19:
- return new Tcc();
- case 17:
- return new pdc();
- case 53:
- return new sdc();
- case 6:
- return new hec();
- case 25:
- return new wdc();
- case 46:
- return new Ndc();
- case 31:
- return new sec();
- case 14:
- return new Fec();
- case 26:
- return new ppc();
- case 20:
- return new Uec();
- case 24:
- return new fGc((rGc(), qGc));
+ }
+ __name(computeBiasValues, "computeBiasValues");
+ function computePaddingValues(width3, height2, paddingObject, relativeTo) {
+ if (paddingObject.units === "%") {
+ switch (relativeTo) {
+ case "width":
+ return width3 > 0 ? paddingObject.pfValue * width3 : 0;
+ case "height":
+ return height2 > 0 ? paddingObject.pfValue * height2 : 0;
+ case "average":
+ return width3 > 0 && height2 > 0 ? paddingObject.pfValue * (width3 + height2) / 2 : 0;
+ case "min":
+ return width3 > 0 && height2 > 0 ? width3 > height2 ? paddingObject.pfValue * height2 : paddingObject.pfValue * width3 : 0;
+ case "max":
+ return width3 > 0 && height2 > 0 ? width3 > height2 ? paddingObject.pfValue * width3 : paddingObject.pfValue * height2 : 0;
default:
- throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
+ return 0;
}
- };
- var P7b, Q7b, R7b, S7b, T7b, U7b, V7b, W7b, X7b, Y7b, Z7b, $7b, _7b, a8b, b8b, c8b, d8b, e8b, f8b, g8b, h8b, i8b, j8b, k8b, l8b, m8b, n8b, o8b, p8b, q8b, r8b, s8b, t8b, u8b, v8b, w8b, x8b, y8b, z8b, A8b, B8b, C8b, D8b, E8b, F8b, G8b, H8b, I8b, J8b, K8b, L8b, M8b, N8b, O8b, P8b, Q8b, R8b;
- var AS = ndb(Ane, Ene, 77, CI, W8b, V8b);
- var X8b;
- bcb(1540, 1, ene, b9b);
- _2.pf = function c9b(a, b) {
- _8b(BD(a, 37), b);
- };
- mdb(Ane, "InvertedPortProcessor", 1540);
- bcb(1541, 1, ene, h9b);
- _2.pf = function i9b(a, b) {
- g9b(BD(a, 37), b);
- };
- mdb(Ane, "LabelAndNodeSizeProcessor", 1541);
- bcb(1542, 1, Oie, j9b);
- _2.Mb = function k9b(a) {
- return BD(a, 10).k == (j0b(), h0b);
- };
- mdb(Ane, "LabelAndNodeSizeProcessor/lambda$0$Type", 1542);
- bcb(1543, 1, Oie, l9b);
- _2.Mb = function m9b(a) {
- return BD(a, 10).k == (j0b(), e0b);
- };
- mdb(Ane, "LabelAndNodeSizeProcessor/lambda$1$Type", 1543);
- bcb(1544, 1, qie, n9b);
- _2.td = function o9b(a) {
- e9b(this.b, this.a, this.c, BD(a, 10));
- };
- _2.a = false;
- _2.c = false;
- mdb(Ane, "LabelAndNodeSizeProcessor/lambda$2$Type", 1544);
- bcb(1545, 1, ene, u9b);
- _2.pf = function v9b(a, b) {
- s9b(BD(a, 37), b);
- };
- var p9b;
- mdb(Ane, "LabelDummyInserter", 1545);
- bcb(1546, 1, Vke, w9b);
- _2.Lb = function x9b(a) {
- return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad));
- };
- _2.Fb = function y9b(a) {
- return this === a;
- };
- _2.Mb = function z9b(a) {
- return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad));
- };
- mdb(Ane, "LabelDummyInserter/1", 1546);
- bcb(1547, 1, ene, D9b);
- _2.pf = function E9b(a, b) {
- C9b(BD(a, 37), b);
- };
- mdb(Ane, "LabelDummyRemover", 1547);
- bcb(1548, 1, Oie, F9b);
- _2.Mb = function G9b(a) {
- return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc))));
- };
- mdb(Ane, "LabelDummyRemover/lambda$0$Type", 1548);
- bcb(1359, 1, ene, $9b);
- _2.pf = function cac(a, b) {
- W9b(this, BD(a, 37), b);
- };
- _2.a = null;
- var H9b;
- mdb(Ane, "LabelDummySwitcher", 1359);
- bcb(286, 1, { 286: 1 }, gac);
- _2.c = 0;
- _2.d = null;
- _2.f = 0;
- mdb(Ane, "LabelDummySwitcher/LabelDummyInfo", 286);
- bcb(1360, 1, {}, hac);
- _2.Kb = function iac(a) {
- return I9b(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "LabelDummySwitcher/lambda$0$Type", 1360);
- bcb(1361, 1, Oie, jac);
- _2.Mb = function kac(a) {
- return I9b(), BD(a, 10).k == (j0b(), f0b);
- };
- mdb(Ane, "LabelDummySwitcher/lambda$1$Type", 1361);
- bcb(1362, 1, {}, lac);
- _2.Kb = function mac(a) {
- return _9b(this.a, BD(a, 10));
- };
- mdb(Ane, "LabelDummySwitcher/lambda$2$Type", 1362);
- bcb(1363, 1, qie, nac);
- _2.td = function oac(a) {
- aac(this.a, BD(a, 286));
- };
- mdb(Ane, "LabelDummySwitcher/lambda$3$Type", 1363);
- bcb(1364, 1, Dke, pac);
- _2.ue = function qac(a, b) {
- return bac(BD(a, 286), BD(b, 286));
- };
- _2.Fb = function rac(a) {
- return this === a;
- };
- _2.ve = function sac() {
- return new tpb(this);
- };
- mdb(Ane, "LabelDummySwitcher/lambda$4$Type", 1364);
- bcb(791, 1, ene, uac);
- _2.pf = function vac(a, b) {
- tac(BD(a, 37), b);
- };
- mdb(Ane, "LabelManagementProcessor", 791);
- bcb(1549, 1, ene, Iac);
- _2.pf = function Jac(a, b) {
- Cac(BD(a, 37), b);
- };
- mdb(Ane, "LabelSideSelector", 1549);
- bcb(1550, 1, Oie, Kac);
- _2.Mb = function Lac(a) {
- return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc))));
- };
- mdb(Ane, "LabelSideSelector/lambda$0$Type", 1550);
- bcb(1558, 1, ene, Sac);
- _2.pf = function Tac(a, b) {
- Oac(BD(a, 37), b);
- };
- mdb(Ane, "LayerConstraintPostprocessor", 1558);
- bcb(1559, 1, ene, abc);
- _2.pf = function bbc(a, b) {
- $ac(BD(a, 37), b);
- };
- var Uac;
- mdb(Ane, "LayerConstraintPreprocessor", 1559);
- bcb(360, 22, { 3: 1, 35: 1, 22: 1, 360: 1 }, ibc);
- var cbc, dbc, ebc, fbc;
- var VS = ndb(Ane, "LayerConstraintPreprocessor/HiddenNodeConnections", 360, CI, kbc, jbc);
- var lbc;
- bcb(1560, 1, ene, obc);
- _2.pf = function pbc(a, b) {
- nbc(BD(a, 37), b);
- };
- mdb(Ane, "LayerSizeAndGraphHeightCalculator", 1560);
- bcb(1561, 1, ene, rbc);
- _2.pf = function tbc(a, b) {
- qbc(BD(a, 37), b);
- };
- mdb(Ane, "LongEdgeJoiner", 1561);
- bcb(1562, 1, ene, vbc);
- _2.pf = function xbc(a, b) {
- ubc(BD(a, 37), b);
- };
- mdb(Ane, "LongEdgeSplitter", 1562);
- bcb(1563, 1, ene, Fbc);
- _2.pf = function Ibc(a, b) {
- Bbc(this, BD(a, 37), b);
- };
- _2.d = 0;
- _2.e = 0;
- _2.i = 0;
- _2.j = 0;
- _2.k = 0;
- _2.n = 0;
- mdb(Ane, "NodePromotion", 1563);
- bcb(1564, 1, {}, Jbc);
- _2.Kb = function Kbc(a) {
- return BD(a, 46), Bcb(), true;
- };
- _2.Fb = function Lbc(a) {
- return this === a;
- };
- mdb(Ane, "NodePromotion/lambda$0$Type", 1564);
- bcb(1565, 1, {}, Mbc);
- _2.Kb = function Nbc(a) {
- return Gbc(this.a, BD(a, 46));
- };
- _2.Fb = function Obc(a) {
- return this === a;
- };
- _2.a = 0;
- mdb(Ane, "NodePromotion/lambda$1$Type", 1565);
- bcb(1566, 1, {}, Pbc);
- _2.Kb = function Qbc(a) {
- return Hbc(this.a, BD(a, 46));
- };
- _2.Fb = function Rbc(a) {
- return this === a;
- };
- _2.a = 0;
- mdb(Ane, "NodePromotion/lambda$2$Type", 1566);
- bcb(1567, 1, ene, Xbc);
- _2.pf = function Ybc(a, b) {
- Sbc(BD(a, 37), b);
- };
- mdb(Ane, "NorthSouthPortPostprocessor", 1567);
- bcb(1568, 1, ene, ccc);
- _2.pf = function ecc(a, b) {
- acc(BD(a, 37), b);
- };
- mdb(Ane, "NorthSouthPortPreprocessor", 1568);
- bcb(1569, 1, Dke, fcc);
- _2.ue = function gcc(a, b) {
- return dcc(BD(a, 11), BD(b, 11));
- };
- _2.Fb = function hcc(a) {
- return this === a;
- };
- _2.ve = function icc() {
- return new tpb(this);
- };
- mdb(Ane, "NorthSouthPortPreprocessor/lambda$0$Type", 1569);
- bcb(1570, 1, ene, lcc);
- _2.pf = function ncc(a, b) {
- kcc(BD(a, 37), b);
- };
- mdb(Ane, "PartitionMidprocessor", 1570);
- bcb(1571, 1, Oie, occ);
- _2.Mb = function pcc(a) {
- return wNb(BD(a, 10), (Nyc(), Nxc));
- };
- mdb(Ane, "PartitionMidprocessor/lambda$0$Type", 1571);
- bcb(1572, 1, qie, qcc);
- _2.td = function rcc(a) {
- mcc(this.a, BD(a, 10));
- };
- mdb(Ane, "PartitionMidprocessor/lambda$1$Type", 1572);
- bcb(1573, 1, ene, tcc);
- _2.pf = function ucc(a, b) {
- scc(BD(a, 37), b);
- };
- mdb(Ane, "PartitionPostprocessor", 1573);
- bcb(1574, 1, ene, ycc);
- _2.pf = function zcc(a, b) {
- wcc(BD(a, 37), b);
- };
- mdb(Ane, "PartitionPreprocessor", 1574);
- bcb(1575, 1, Oie, Acc);
- _2.Mb = function Bcc(a) {
- return wNb(BD(a, 10), (Nyc(), Nxc));
- };
- mdb(Ane, "PartitionPreprocessor/lambda$0$Type", 1575);
- bcb(1576, 1, {}, Ccc);
- _2.Kb = function Dcc(a) {
- return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
- };
- mdb(Ane, "PartitionPreprocessor/lambda$1$Type", 1576);
- bcb(1577, 1, Oie, Ecc);
- _2.Mb = function Fcc(a) {
- return vcc(BD(a, 17));
- };
- mdb(Ane, "PartitionPreprocessor/lambda$2$Type", 1577);
- bcb(1578, 1, qie, Gcc);
- _2.td = function Hcc(a) {
- xcc(BD(a, 17));
- };
- mdb(Ane, "PartitionPreprocessor/lambda$3$Type", 1578);
- bcb(1579, 1, ene, Tcc);
- _2.pf = function Xcc(a, b) {
- Qcc(BD(a, 37), b);
- };
- var Icc, Jcc, Kcc, Lcc, Mcc, Ncc;
- mdb(Ane, "PortListSorter", 1579);
- bcb(1580, 1, {}, Zcc);
- _2.Kb = function $cc(a) {
- return Occ(), BD(a, 11).e;
- };
- mdb(Ane, "PortListSorter/lambda$0$Type", 1580);
- bcb(1581, 1, {}, _cc);
- _2.Kb = function adc(a) {
- return Occ(), BD(a, 11).g;
- };
- mdb(Ane, "PortListSorter/lambda$1$Type", 1581);
- bcb(1582, 1, Dke, bdc);
- _2.ue = function cdc(a, b) {
- return Ucc(BD(a, 11), BD(b, 11));
- };
- _2.Fb = function ddc(a) {
- return this === a;
- };
- _2.ve = function edc() {
- return new tpb(this);
- };
- mdb(Ane, "PortListSorter/lambda$2$Type", 1582);
- bcb(1583, 1, Dke, fdc);
- _2.ue = function gdc(a, b) {
- return Vcc(BD(a, 11), BD(b, 11));
- };
- _2.Fb = function hdc(a) {
- return this === a;
- };
- _2.ve = function idc() {
- return new tpb(this);
- };
- mdb(Ane, "PortListSorter/lambda$3$Type", 1583);
- bcb(1584, 1, Dke, jdc);
- _2.ue = function kdc(a, b) {
- return Wcc(BD(a, 11), BD(b, 11));
- };
- _2.Fb = function ldc(a) {
- return this === a;
- };
- _2.ve = function mdc() {
- return new tpb(this);
- };
- mdb(Ane, "PortListSorter/lambda$4$Type", 1584);
- bcb(1585, 1, ene, pdc);
- _2.pf = function qdc(a, b) {
- ndc(BD(a, 37), b);
- };
- mdb(Ane, "PortSideProcessor", 1585);
- bcb(1586, 1, ene, sdc);
- _2.pf = function tdc(a, b) {
- rdc(BD(a, 37), b);
- };
- mdb(Ane, "ReversedEdgeRestorer", 1586);
- bcb(1591, 1, ene, wdc);
- _2.pf = function xdc(a, b) {
- udc(this, BD(a, 37), b);
- };
- mdb(Ane, "SelfLoopPortRestorer", 1591);
- bcb(1592, 1, {}, ydc);
- _2.Kb = function zdc(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "SelfLoopPortRestorer/lambda$0$Type", 1592);
- bcb(1593, 1, Oie, Adc);
- _2.Mb = function Bdc(a) {
- return BD(a, 10).k == (j0b(), h0b);
- };
- mdb(Ane, "SelfLoopPortRestorer/lambda$1$Type", 1593);
- bcb(1594, 1, Oie, Cdc);
- _2.Mb = function Ddc(a) {
- return wNb(BD(a, 10), (wtc(), ntc));
- };
- mdb(Ane, "SelfLoopPortRestorer/lambda$2$Type", 1594);
- bcb(1595, 1, {}, Edc);
- _2.Kb = function Fdc(a) {
- return BD(vNb(BD(a, 10), (wtc(), ntc)), 403);
- };
- mdb(Ane, "SelfLoopPortRestorer/lambda$3$Type", 1595);
- bcb(1596, 1, qie, Gdc);
- _2.td = function Hdc(a) {
- vdc(this.a, BD(a, 403));
- };
- mdb(Ane, "SelfLoopPortRestorer/lambda$4$Type", 1596);
- bcb(794, 1, qie, Idc);
- _2.td = function Jdc(a) {
- ljc(BD(a, 101));
- };
- mdb(Ane, "SelfLoopPortRestorer/lambda$5$Type", 794);
- bcb(1597, 1, ene, Ndc);
- _2.pf = function Pdc(a, b) {
- Kdc(BD(a, 37), b);
- };
- mdb(Ane, "SelfLoopPostProcessor", 1597);
- bcb(1598, 1, {}, Qdc);
- _2.Kb = function Rdc(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$0$Type", 1598);
- bcb(1599, 1, Oie, Sdc);
- _2.Mb = function Tdc(a) {
- return BD(a, 10).k == (j0b(), h0b);
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$1$Type", 1599);
- bcb(1600, 1, Oie, Udc);
- _2.Mb = function Vdc(a) {
- return wNb(BD(a, 10), (wtc(), ntc));
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$2$Type", 1600);
- bcb(1601, 1, qie, Wdc);
- _2.td = function Xdc(a) {
- Ldc(BD(a, 10));
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$3$Type", 1601);
- bcb(1602, 1, {}, Ydc);
- _2.Kb = function Zdc(a) {
- return new YAb(null, new Kub(BD(a, 101).f, 1));
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$4$Type", 1602);
- bcb(1603, 1, qie, $dc);
- _2.td = function _dc(a) {
- Mdc(this.a, BD(a, 409));
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$5$Type", 1603);
- bcb(1604, 1, Oie, aec);
- _2.Mb = function bec(a) {
- return !!BD(a, 101).i;
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$6$Type", 1604);
- bcb(1605, 1, qie, cec);
- _2.td = function dec(a) {
- Odc(this.a, BD(a, 101));
- };
- mdb(Ane, "SelfLoopPostProcessor/lambda$7$Type", 1605);
- bcb(1587, 1, ene, hec);
- _2.pf = function iec(a, b) {
- gec(BD(a, 37), b);
- };
- mdb(Ane, "SelfLoopPreProcessor", 1587);
- bcb(1588, 1, {}, jec);
- _2.Kb = function kec(a) {
- return new YAb(null, new Kub(BD(a, 101).f, 1));
- };
- mdb(Ane, "SelfLoopPreProcessor/lambda$0$Type", 1588);
- bcb(1589, 1, {}, lec);
- _2.Kb = function mec(a) {
- return BD(a, 409).a;
- };
- mdb(Ane, "SelfLoopPreProcessor/lambda$1$Type", 1589);
- bcb(1590, 1, qie, nec);
- _2.td = function oec(a) {
- fec(BD(a, 17));
- };
- mdb(Ane, "SelfLoopPreProcessor/lambda$2$Type", 1590);
- bcb(1606, 1, ene, sec);
- _2.pf = function tec(a, b) {
- qec(this, BD(a, 37), b);
- };
- mdb(Ane, "SelfLoopRouter", 1606);
- bcb(1607, 1, {}, uec);
- _2.Kb = function vec(a) {
- return new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Ane, "SelfLoopRouter/lambda$0$Type", 1607);
- bcb(1608, 1, Oie, wec);
- _2.Mb = function xec(a) {
- return BD(a, 10).k == (j0b(), h0b);
- };
- mdb(Ane, "SelfLoopRouter/lambda$1$Type", 1608);
- bcb(1609, 1, Oie, yec);
- _2.Mb = function zec(a) {
- return wNb(BD(a, 10), (wtc(), ntc));
- };
- mdb(Ane, "SelfLoopRouter/lambda$2$Type", 1609);
- bcb(1610, 1, {}, Aec);
- _2.Kb = function Bec(a) {
- return BD(vNb(BD(a, 10), (wtc(), ntc)), 403);
- };
- mdb(Ane, "SelfLoopRouter/lambda$3$Type", 1610);
- bcb(1611, 1, qie, Cec);
- _2.td = function Dec(a) {
- pec(this.a, this.b, BD(a, 403));
- };
- mdb(Ane, "SelfLoopRouter/lambda$4$Type", 1611);
- bcb(1612, 1, ene, Fec);
- _2.pf = function Iec(a, b) {
- Eec(BD(a, 37), b);
- };
- mdb(Ane, "SemiInteractiveCrossMinProcessor", 1612);
- bcb(1613, 1, Oie, Jec);
- _2.Mb = function Kec(a) {
- return BD(a, 10).k == (j0b(), h0b);
- };
- mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$0$Type", 1613);
- bcb(1614, 1, Oie, Lec);
- _2.Mb = function Mec(a) {
- return uNb(BD(a, 10))._b((Nyc(), ayc));
- };
- mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$1$Type", 1614);
- bcb(1615, 1, Dke, Nec);
- _2.ue = function Oec(a, b) {
- return Gec(BD(a, 10), BD(b, 10));
- };
- _2.Fb = function Pec(a) {
- return this === a;
- };
- _2.ve = function Qec() {
- return new tpb(this);
- };
- mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$2$Type", 1615);
- bcb(1616, 1, {}, Rec);
- _2.Ce = function Sec(a, b) {
- return Hec(BD(a, 10), BD(b, 10));
- };
- mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$3$Type", 1616);
- bcb(1618, 1, ene, Uec);
- _2.pf = function Yec(a, b) {
- Tec(BD(a, 37), b);
- };
- mdb(Ane, "SortByInputModelProcessor", 1618);
- bcb(1619, 1, Oie, Zec);
- _2.Mb = function $ec(a) {
- return BD(a, 11).g.c.length != 0;
- };
- mdb(Ane, "SortByInputModelProcessor/lambda$0$Type", 1619);
- bcb(1620, 1, qie, _ec);
- _2.td = function afc(a) {
- Wec(this.a, BD(a, 11));
- };
- mdb(Ane, "SortByInputModelProcessor/lambda$1$Type", 1620);
- bcb(1693, 803, {}, jfc);
- _2.Me = function kfc(a) {
- var b, c2, d, e;
- this.c = a;
- switch (this.a.g) {
- case 2:
- b = new Rkb();
- MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new lgc()), new ngc(this, b));
- nEb(this, new tfc());
- Hkb(b, new xfc());
- b.c = KC(SI, Uhe, 1, 0, 5, 1);
- MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new zfc()), new Bfc(b));
- nEb(this, new Ffc());
- Hkb(b, new Jfc());
- b.c = KC(SI, Uhe, 1, 0, 5, 1);
- c2 = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new Lfc(this))), new Nfc());
- MAb(new YAb(null, new Kub(this.c.a.a, 16)), new Rfc(c2, b));
- nEb(this, new Vfc());
- Hkb(b, new Zfc());
- b.c = KC(SI, Uhe, 1, 0, 5, 1);
+ } else if (paddingObject.units === "px") {
+ return paddingObject.pfValue;
+ } else {
+ return 0;
+ }
+ }
+ __name(computePaddingValues, "computePaddingValues");
+ var leftVal = min9.width.left.value;
+ if (min9.width.left.units === "px" && min9.width.val > 0) {
+ leftVal = leftVal * 100 / min9.width.val;
+ }
+ var rightVal = min9.width.right.value;
+ if (min9.width.right.units === "px" && min9.width.val > 0) {
+ rightVal = rightVal * 100 / min9.width.val;
+ }
+ var topVal = min9.height.top.value;
+ if (min9.height.top.units === "px" && min9.height.val > 0) {
+ topVal = topVal * 100 / min9.height.val;
+ }
+ var bottomVal = min9.height.bottom.value;
+ if (min9.height.bottom.units === "px" && min9.height.val > 0) {
+ bottomVal = bottomVal * 100 / min9.height.val;
+ }
+ var widthBiasDiffs = computeBiasValues(min9.width.val - bb.w, leftVal, rightVal);
+ var diffLeft = widthBiasDiffs.biasDiff;
+ var diffRight = widthBiasDiffs.biasComplementDiff;
+ var heightBiasDiffs = computeBiasValues(min9.height.val - bb.h, topVal, bottomVal);
+ var diffTop = heightBiasDiffs.biasDiff;
+ var diffBottom = heightBiasDiffs.biasComplementDiff;
+ _p2.autoPadding = computePaddingValues(bb.w, bb.h, parent4.pstyle("padding"), parent4.pstyle("padding-relative-to").value);
+ _p2.autoWidth = Math.max(bb.w, min9.width.val);
+ pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;
+ _p2.autoHeight = Math.max(bb.h, min9.height.val);
+ pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;
+ }
+ __name(update2, "update");
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _p = ele._private;
+ if (!_p.compoundBoundsClean || force) {
+ update2(ele);
+ if (!cy.batching()) {
+ _p.compoundBoundsClean = true;
+ }
+ }
+ }
+ return this;
+ };
+ noninf = /* @__PURE__ */ __name(function noninf2(x5) {
+ if (x5 === Infinity || x5 === -Infinity) {
+ return 0;
+ }
+ return x5;
+ }, "noninf");
+ updateBounds = /* @__PURE__ */ __name(function updateBounds2(b2, x1, y1, x22, y22) {
+ if (x22 - x1 === 0 || y22 - y1 === 0) {
+ return;
+ }
+ if (x1 == null || y1 == null || x22 == null || y22 == null) {
+ return;
+ }
+ b2.x1 = x1 < b2.x1 ? x1 : b2.x1;
+ b2.x2 = x22 > b2.x2 ? x22 : b2.x2;
+ b2.y1 = y1 < b2.y1 ? y1 : b2.y1;
+ b2.y2 = y22 > b2.y2 ? y22 : b2.y2;
+ b2.w = b2.x2 - b2.x1;
+ b2.h = b2.y2 - b2.y1;
+ }, "updateBounds");
+ updateBoundsFromBox = /* @__PURE__ */ __name(function updateBoundsFromBox2(b2, b22) {
+ if (b22 == null) {
+ return b2;
+ }
+ return updateBounds(b2, b22.x1, b22.y1, b22.x2, b22.y2);
+ }, "updateBoundsFromBox");
+ prefixedProperty = /* @__PURE__ */ __name(function prefixedProperty2(obj, field, prefix) {
+ return getPrefixedProperty(obj, field, prefix);
+ }, "prefixedProperty");
+ updateBoundsFromArrow = /* @__PURE__ */ __name(function updateBoundsFromArrow2(bounds4, ele, prefix) {
+ if (ele.cy().headless()) {
+ return;
+ }
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ var halfArW = rstyle.arrowWidth / 2;
+ var arrowType = ele.pstyle(prefix + "-arrow-shape").value;
+ var x5;
+ var y5;
+ if (arrowType !== "none") {
+ if (prefix === "source") {
+ x5 = rstyle.srcX;
+ y5 = rstyle.srcY;
+ } else if (prefix === "target") {
+ x5 = rstyle.tgtX;
+ y5 = rstyle.tgtY;
+ } else {
+ x5 = rstyle.midX;
+ y5 = rstyle.midY;
+ }
+ var bbs = _p.arrowBounds = _p.arrowBounds || {};
+ var bb = bbs[prefix] = bbs[prefix] || {};
+ bb.x1 = x5 - halfArW;
+ bb.y1 = y5 - halfArW;
+ bb.x2 = x5 + halfArW;
+ bb.y2 = y5 + halfArW;
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ expandBoundingBox(bb, 1);
+ updateBounds(bounds4, bb.x1, bb.y1, bb.x2, bb.y2);
+ }
+ }, "updateBoundsFromArrow");
+ updateBoundsFromLabel = /* @__PURE__ */ __name(function updateBoundsFromLabel2(bounds4, ele, prefix) {
+ if (ele.cy().headless()) {
+ return;
+ }
+ var prefixDash;
+ if (prefix) {
+ prefixDash = prefix + "-";
+ } else {
+ prefixDash = "";
+ }
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ var label = ele.pstyle(prefixDash + "label").strValue;
+ if (label) {
+ var halign = ele.pstyle("text-halign");
+ var valign = ele.pstyle("text-valign");
+ var labelWidth = prefixedProperty(rstyle, "labelWidth", prefix);
+ var labelHeight = prefixedProperty(rstyle, "labelHeight", prefix);
+ var labelX = prefixedProperty(rstyle, "labelX", prefix);
+ var labelY = prefixedProperty(rstyle, "labelY", prefix);
+ var marginX = ele.pstyle(prefixDash + "text-margin-x").pfValue;
+ var marginY = ele.pstyle(prefixDash + "text-margin-y").pfValue;
+ var isEdge2 = ele.isEdge();
+ var rotation = ele.pstyle(prefixDash + "text-rotation");
+ var outlineWidth = ele.pstyle("text-outline-width").pfValue;
+ var borderWidth = ele.pstyle("text-border-width").pfValue;
+ var halfBorderWidth = borderWidth / 2;
+ var padding3 = ele.pstyle("text-background-padding").pfValue;
+ var marginOfError = 2;
+ var lh = labelHeight;
+ var lw = labelWidth;
+ var lw_2 = lw / 2;
+ var lh_2 = lh / 2;
+ var lx1, lx2, ly1, ly2;
+ if (isEdge2) {
+ lx1 = labelX - lw_2;
+ lx2 = labelX + lw_2;
+ ly1 = labelY - lh_2;
+ ly2 = labelY + lh_2;
+ } else {
+ switch (halign.value) {
+ case "left":
+ lx1 = labelX - lw;
+ lx2 = labelX;
+ break;
+ case "center":
+ lx1 = labelX - lw_2;
+ lx2 = labelX + lw_2;
+ break;
+ case "right":
+ lx1 = labelX;
+ lx2 = labelX + lw;
+ break;
+ }
+ switch (valign.value) {
+ case "top":
+ ly1 = labelY - lh;
+ ly2 = labelY;
+ break;
+ case "center":
+ ly1 = labelY - lh_2;
+ ly2 = labelY + lh_2;
+ break;
+ case "bottom":
+ ly1 = labelY;
+ ly2 = labelY + lh;
+ break;
+ }
+ }
+ lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding3 - marginOfError;
+ lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding3 + marginOfError;
+ ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding3 - marginOfError;
+ ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding3 + marginOfError;
+ var bbPrefix = prefix || "main";
+ var bbs = _p.labelBounds;
+ var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};
+ bb.x1 = lx1;
+ bb.y1 = ly1;
+ bb.x2 = lx2;
+ bb.y2 = ly2;
+ bb.w = lx2 - lx1;
+ bb.h = ly2 - ly1;
+ var isAutorotate = isEdge2 && rotation.strValue === "autorotate";
+ var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;
+ if (isAutorotate || isPfValue) {
+ var theta = isAutorotate ? prefixedProperty(_p.rstyle, "labelAngle", prefix) : rotation.pfValue;
+ var cos3 = Math.cos(theta);
+ var sin3 = Math.sin(theta);
+ var xo = (lx1 + lx2) / 2;
+ var yo = (ly1 + ly2) / 2;
+ if (!isEdge2) {
+ switch (halign.value) {
+ case "left":
+ xo = lx2;
break;
- case 3:
- d = new Rkb();
- nEb(this, new lfc());
- e = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new pfc(this))), new Pfc());
- MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new _fc()), new bgc(e, d));
- nEb(this, new fgc());
- Hkb(d, new jgc());
- d.c = KC(SI, Uhe, 1, 0, 5, 1);
+ case "right":
+ xo = lx1;
break;
- default:
- throw vbb(new x2c());
- }
- };
- _2.b = 0;
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation", 1693);
- bcb(1694, 1, Vke, lfc);
- _2.Lb = function mfc(a) {
- return JD(BD(a, 57).g, 145);
- };
- _2.Fb = function nfc(a) {
- return this === a;
- };
- _2.Mb = function ofc(a) {
- return JD(BD(a, 57).g, 145);
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$0$Type", 1694);
- bcb(1695, 1, {}, pfc);
- _2.Fe = function qfc(a) {
- return dfc(this.a, BD(a, 57));
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$1$Type", 1695);
- bcb(1703, 1, Pie, rfc);
- _2.Vd = function sfc() {
- cfc(this.a, this.b, -1);
- };
- _2.b = 0;
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$10$Type", 1703);
- bcb(1705, 1, Vke, tfc);
- _2.Lb = function ufc(a) {
- return JD(BD(a, 57).g, 145);
- };
- _2.Fb = function vfc(a) {
- return this === a;
- };
- _2.Mb = function wfc(a) {
- return JD(BD(a, 57).g, 145);
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$11$Type", 1705);
- bcb(1706, 1, qie, xfc);
- _2.td = function yfc(a) {
- BD(a, 365).Vd();
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$12$Type", 1706);
- bcb(1707, 1, Oie, zfc);
- _2.Mb = function Afc(a) {
- return JD(BD(a, 57).g, 10);
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$13$Type", 1707);
- bcb(1709, 1, qie, Bfc);
- _2.td = function Cfc(a) {
- efc(this.a, BD(a, 57));
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$14$Type", 1709);
- bcb(1708, 1, Pie, Dfc);
- _2.Vd = function Efc() {
- cfc(this.b, this.a, -1);
- };
- _2.a = 0;
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$15$Type", 1708);
- bcb(1710, 1, Vke, Ffc);
- _2.Lb = function Gfc(a) {
- return JD(BD(a, 57).g, 10);
- };
- _2.Fb = function Hfc(a) {
- return this === a;
- };
- _2.Mb = function Ifc(a) {
- return JD(BD(a, 57).g, 10);
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$16$Type", 1710);
- bcb(1711, 1, qie, Jfc);
- _2.td = function Kfc(a) {
- BD(a, 365).Vd();
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$17$Type", 1711);
- bcb(1712, 1, {}, Lfc);
- _2.Fe = function Mfc(a) {
- return ffc(this.a, BD(a, 57));
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$18$Type", 1712);
- bcb(1713, 1, {}, Nfc);
- _2.De = function Ofc() {
- return 0;
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$19$Type", 1713);
- bcb(1696, 1, {}, Pfc);
- _2.De = function Qfc() {
- return 0;
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$2$Type", 1696);
- bcb(1715, 1, qie, Rfc);
- _2.td = function Sfc(a) {
- gfc(this.a, this.b, BD(a, 307));
- };
- _2.a = 0;
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$20$Type", 1715);
- bcb(1714, 1, Pie, Tfc);
- _2.Vd = function Ufc() {
- bfc(this.a, this.b, -1);
- };
- _2.b = 0;
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$21$Type", 1714);
- bcb(1716, 1, Vke, Vfc);
- _2.Lb = function Wfc(a) {
- return BD(a, 57), true;
- };
- _2.Fb = function Xfc(a) {
- return this === a;
- };
- _2.Mb = function Yfc(a) {
- return BD(a, 57), true;
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$22$Type", 1716);
- bcb(1717, 1, qie, Zfc);
- _2.td = function $fc(a) {
- BD(a, 365).Vd();
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$23$Type", 1717);
- bcb(1697, 1, Oie, _fc);
- _2.Mb = function agc(a) {
- return JD(BD(a, 57).g, 10);
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$3$Type", 1697);
- bcb(1699, 1, qie, bgc);
- _2.td = function cgc(a) {
- hfc(this.a, this.b, BD(a, 57));
- };
- _2.a = 0;
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$4$Type", 1699);
- bcb(1698, 1, Pie, dgc);
- _2.Vd = function egc() {
- cfc(this.b, this.a, -1);
- };
- _2.a = 0;
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$5$Type", 1698);
- bcb(1700, 1, Vke, fgc);
- _2.Lb = function ggc(a) {
- return BD(a, 57), true;
- };
- _2.Fb = function hgc(a) {
- return this === a;
- };
- _2.Mb = function igc(a) {
- return BD(a, 57), true;
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$6$Type", 1700);
- bcb(1701, 1, qie, jgc);
- _2.td = function kgc(a) {
- BD(a, 365).Vd();
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$7$Type", 1701);
- bcb(1702, 1, Oie, lgc);
- _2.Mb = function mgc(a) {
- return JD(BD(a, 57).g, 145);
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$8$Type", 1702);
- bcb(1704, 1, qie, ngc);
- _2.td = function ogc(a) {
- ifc(this.a, this.b, BD(a, 57));
- };
- mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$9$Type", 1704);
- bcb(1521, 1, ene, sgc);
- _2.pf = function xgc(a, b) {
- rgc(this, BD(a, 37), b);
- };
- var pgc;
- mdb(Jne, "HorizontalGraphCompactor", 1521);
- bcb(1522, 1, {}, ygc);
- _2.Oe = function zgc(a, b) {
- var c2, d, e;
- if (vgc(a, b)) {
- return 0;
}
- c2 = tgc(a);
- d = tgc(b);
- if (!!c2 && c2.k == (j0b(), e0b) || !!d && d.k == (j0b(), e0b)) {
- return 0;
- }
- e = BD(vNb(this.a.a, (wtc(), otc)), 304);
- return fBc(e, c2 ? c2.k : (j0b(), g0b), d ? d.k : (j0b(), g0b));
- };
- _2.Pe = function Agc(a, b) {
- var c2, d, e;
- if (vgc(a, b)) {
- return 1;
- }
- c2 = tgc(a);
- d = tgc(b);
- e = BD(vNb(this.a.a, (wtc(), otc)), 304);
- return iBc(e, c2 ? c2.k : (j0b(), g0b), d ? d.k : (j0b(), g0b));
- };
- mdb(Jne, "HorizontalGraphCompactor/1", 1522);
- bcb(1523, 1, {}, Bgc);
- _2.Ne = function Cgc(a, b) {
- return qgc(), a.a.i == 0;
- };
- mdb(Jne, "HorizontalGraphCompactor/lambda$0$Type", 1523);
- bcb(1524, 1, {}, Dgc);
- _2.Ne = function Egc(a, b) {
- return wgc(this.a, a, b);
- };
- mdb(Jne, "HorizontalGraphCompactor/lambda$1$Type", 1524);
- bcb(1664, 1, {}, Ygc);
- var Fgc, Ggc;
- mdb(Jne, "LGraphToCGraphTransformer", 1664);
- bcb(1672, 1, Oie, ehc);
- _2.Mb = function fhc(a) {
- return a != null;
- };
- mdb(Jne, "LGraphToCGraphTransformer/0methodref$nonNull$Type", 1672);
- bcb(1665, 1, {}, ghc);
- _2.Kb = function hhc(a) {
- return Hgc(), fcb(vNb(BD(BD(a, 57).g, 10), (wtc(), $sc)));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$0$Type", 1665);
- bcb(1666, 1, {}, ihc);
- _2.Kb = function jhc(a) {
- return Hgc(), gic(BD(BD(a, 57).g, 145));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$1$Type", 1666);
- bcb(1675, 1, Oie, khc);
- _2.Mb = function lhc(a) {
- return Hgc(), JD(BD(a, 57).g, 10);
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$10$Type", 1675);
- bcb(1676, 1, qie, mhc);
- _2.td = function nhc(a) {
- Zgc(BD(a, 57));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$11$Type", 1676);
- bcb(1677, 1, Oie, ohc);
- _2.Mb = function phc(a) {
- return Hgc(), JD(BD(a, 57).g, 145);
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$12$Type", 1677);
- bcb(1681, 1, qie, qhc);
- _2.td = function rhc(a) {
- $gc(BD(a, 57));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$13$Type", 1681);
- bcb(1678, 1, qie, shc);
- _2.td = function thc(a) {
- _gc(this.a, BD(a, 8));
- };
- _2.a = 0;
- mdb(Jne, "LGraphToCGraphTransformer/lambda$14$Type", 1678);
- bcb(1679, 1, qie, uhc);
- _2.td = function vhc(a) {
- ahc(this.a, BD(a, 110));
- };
- _2.a = 0;
- mdb(Jne, "LGraphToCGraphTransformer/lambda$15$Type", 1679);
- bcb(1680, 1, qie, whc);
- _2.td = function xhc(a) {
- bhc(this.a, BD(a, 8));
- };
- _2.a = 0;
- mdb(Jne, "LGraphToCGraphTransformer/lambda$16$Type", 1680);
- bcb(1682, 1, {}, yhc);
- _2.Kb = function zhc(a) {
- return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$17$Type", 1682);
- bcb(1683, 1, Oie, Ahc);
- _2.Mb = function Bhc(a) {
- return Hgc(), OZb(BD(a, 17));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$18$Type", 1683);
- bcb(1684, 1, qie, Chc);
- _2.td = function Dhc(a) {
- Qgc(this.a, BD(a, 17));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$19$Type", 1684);
- bcb(1668, 1, qie, Ehc);
- _2.td = function Fhc(a) {
- Rgc(this.a, BD(a, 145));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$2$Type", 1668);
- bcb(1685, 1, {}, Ghc);
- _2.Kb = function Hhc(a) {
- return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$20$Type", 1685);
- bcb(1686, 1, {}, Ihc);
- _2.Kb = function Jhc(a) {
- return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$21$Type", 1686);
- bcb(1687, 1, {}, Khc);
- _2.Kb = function Lhc(a) {
- return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15);
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$22$Type", 1687);
- bcb(1688, 1, Oie, Mhc);
- _2.Mb = function Nhc(a) {
- return chc(BD(a, 15));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$23$Type", 1688);
- bcb(1689, 1, qie, Ohc);
- _2.td = function Phc(a) {
- Jgc(this.a, BD(a, 15));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$24$Type", 1689);
- bcb(1667, 1, qie, Qhc);
- _2.td = function Rhc(a) {
- Sgc(this.a, this.b, BD(a, 145));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$3$Type", 1667);
- bcb(1669, 1, {}, Shc);
- _2.Kb = function Thc(a) {
- return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$4$Type", 1669);
- bcb(1670, 1, {}, Uhc);
- _2.Kb = function Vhc(a) {
- return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$5$Type", 1670);
- bcb(1671, 1, {}, Whc);
- _2.Kb = function Xhc(a) {
- return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15);
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$6$Type", 1671);
- bcb(1673, 1, qie, Yhc);
- _2.td = function Zhc(a) {
- dhc(this.a, BD(a, 15));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$8$Type", 1673);
- bcb(1674, 1, qie, $hc);
- _2.td = function _hc(a) {
- Tgc(this.a, this.b, BD(a, 145));
- };
- mdb(Jne, "LGraphToCGraphTransformer/lambda$9$Type", 1674);
- bcb(1663, 1, {}, dic);
- _2.Le = function eic(a) {
- var b, c2, d, e, f2;
- this.a = a;
- this.d = new KFb();
- this.c = KC(jN, Uhe, 121, this.a.a.a.c.length, 0, 1);
- this.b = 0;
- for (c2 = new olb(this.a.a.a); c2.a < c2.c.c.length; ) {
- b = BD(mlb(c2), 307);
- b.d = this.b;
- f2 = nGb(oGb(new pGb(), b), this.d);
- this.c[this.b] = f2;
- ++this.b;
- }
- cic(this);
- bic(this);
- aic(this);
- uGb(LGb(this.d), new Zdd());
- for (e = new olb(this.a.a.b); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 57);
- d.d.c = this.c[d.a.d].e + d.b.a;
+ switch (valign.value) {
+ case "top":
+ yo = ly2;
+ break;
+ case "bottom":
+ yo = ly1;
+ break;
}
- };
- _2.b = 0;
- mdb(Jne, "NetworkSimplexCompaction", 1663);
- bcb(145, 1, { 35: 1, 145: 1 }, hic);
- _2.wd = function iic(a) {
- return fic(this, BD(a, 145));
- };
- _2.Ib = function jic() {
- return gic(this);
- };
- mdb(Jne, "VerticalSegment", 145);
- bcb(827, 1, {}, sic);
- _2.c = 0;
- _2.e = 0;
- _2.i = 0;
- mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter", 827);
- bcb(663, 1, { 663: 1 }, zic);
- _2.Ib = function Aic() {
- return "AdjacencyList [node=" + this.d + ", adjacencies= " + this.a + "]";
- };
- _2.b = 0;
- _2.c = 0;
- _2.f = 0;
- mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList", 663);
- bcb(287, 1, { 35: 1, 287: 1 }, Dic);
- _2.wd = function Eic(a) {
- return Bic(this, BD(a, 287));
- };
- _2.Ib = function Fic() {
- return "Adjacency [position=" + this.c + ", cardinality=" + this.a + ", currentCardinality=" + this.b + "]";
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency", 287);
- bcb(1929, 1, {}, Iic);
- _2.b = 0;
- _2.e = false;
- mdb(Kne, "CrossingMatrixFiller", 1929);
- var qY = odb(Lne, "IInitializable");
- bcb(1804, 1, Mne, Oic);
- _2.Nf = function Ric(a, b, c2, d, e, f2) {
- };
- _2.Pf = function Tic(a, b, c2) {
- };
- _2.Lf = function Pic() {
- return this.c != (rGc(), pGc);
- };
- _2.Mf = function Qic() {
- this.e = KC(WD, oje, 25, this.d, 15, 1);
- };
- _2.Of = function Sic(a, b) {
- b[a][0].c.p = a;
- };
- _2.Qf = function Uic(a, b, c2, d) {
- ++this.d;
- };
- _2.Rf = function Vic() {
- return true;
- };
- _2.Sf = function Wic(a, b, c2, d) {
- Kic(this, a, b, c2);
- return Jic(this, b);
- };
- _2.Tf = function Xic(a, b) {
- var c2;
- c2 = Lic(b, a.length);
- Kic(this, a, c2, b);
- return Mic(this, c2);
- };
- _2.d = 0;
- mdb(Kne, "GreedySwitchHeuristic", 1804);
- bcb(1930, 1, {}, ejc);
- _2.b = 0;
- _2.d = 0;
- mdb(Kne, "NorthSouthEdgeNeighbouringNodeCrossingsCounter", 1930);
- bcb(1917, 1, {}, jjc);
- _2.a = false;
- mdb(Kne, "SwitchDecider", 1917);
- bcb(101, 1, { 101: 1 }, pjc);
- _2.a = null;
- _2.c = null;
- _2.i = null;
- mdb(Nne, "SelfHyperLoop", 101);
- bcb(1916, 1, {}, vjc);
- _2.c = 0;
- _2.e = 0;
- mdb(Nne, "SelfHyperLoopLabels", 1916);
- bcb(411, 22, { 3: 1, 35: 1, 22: 1, 411: 1 }, Bjc);
- var wjc, xjc, yjc, zjc;
- var mV = ndb(Nne, "SelfHyperLoopLabels/Alignment", 411, CI, Djc, Cjc);
- var Ejc;
- bcb(409, 1, { 409: 1 }, Gjc);
- mdb(Nne, "SelfLoopEdge", 409);
- bcb(403, 1, { 403: 1 }, Kjc);
- _2.a = false;
- mdb(Nne, "SelfLoopHolder", 403);
- bcb(1724, 1, Oie, Mjc);
- _2.Mb = function Njc(a) {
- return OZb(BD(a, 17));
- };
- mdb(Nne, "SelfLoopHolder/lambda$0$Type", 1724);
- bcb(113, 1, { 113: 1 }, Pjc);
- _2.a = false;
- _2.c = false;
- mdb(Nne, "SelfLoopPort", 113);
- bcb(1792, 1, Oie, Qjc);
- _2.Mb = function Rjc(a) {
- return OZb(BD(a, 17));
- };
- mdb(Nne, "SelfLoopPort/lambda$0$Type", 1792);
- bcb(363, 22, { 3: 1, 35: 1, 22: 1, 363: 1 }, Yjc);
- var Sjc, Tjc, Ujc, Vjc, Wjc;
- var uV = ndb(Nne, "SelfLoopType", 363, CI, _jc, $jc);
- var akc;
- bcb(1732, 1, {}, xkc);
- var ckc, dkc, ekc, fkc;
- mdb(One, "PortRestorer", 1732);
- bcb(361, 22, { 3: 1, 35: 1, 22: 1, 361: 1 }, Gkc);
- var Ckc, Dkc, Ekc;
- var vV = ndb(One, "PortRestorer/PortSideArea", 361, CI, Ikc, Hkc);
- var Jkc;
- bcb(1733, 1, {}, Lkc);
- _2.Kb = function Mkc(a) {
- return gkc(), BD(a, 15).Oc();
- };
- mdb(One, "PortRestorer/lambda$0$Type", 1733);
- bcb(1734, 1, qie, Nkc);
- _2.td = function Okc(a) {
- gkc();
- BD(a, 113).c = false;
- };
- mdb(One, "PortRestorer/lambda$1$Type", 1734);
- bcb(1743, 1, Oie, Pkc);
- _2.Mb = function Qkc(a) {
- return gkc(), BD(a, 11).j == (Ucd(), Tcd);
- };
- mdb(One, "PortRestorer/lambda$10$Type", 1743);
- bcb(1744, 1, {}, Rkc);
- _2.Kb = function Skc(a) {
- return gkc(), BD(a, 113).d;
- };
- mdb(One, "PortRestorer/lambda$11$Type", 1744);
- bcb(1745, 1, qie, Tkc);
- _2.td = function Ukc(a) {
- ykc(this.a, BD(a, 11));
- };
- mdb(One, "PortRestorer/lambda$12$Type", 1745);
- bcb(1735, 1, qie, Vkc);
- _2.td = function Wkc(a) {
- zkc(this.a, BD(a, 101));
- };
- mdb(One, "PortRestorer/lambda$2$Type", 1735);
- bcb(1736, 1, Dke, Xkc);
- _2.ue = function Ykc(a, b) {
- return Akc(BD(a, 113), BD(b, 113));
- };
- _2.Fb = function Zkc(a) {
- return this === a;
- };
- _2.ve = function $kc() {
- return new tpb(this);
- };
- mdb(One, "PortRestorer/lambda$3$Type", 1736);
- bcb(1737, 1, Oie, _kc);
- _2.Mb = function alc(a) {
- return gkc(), BD(a, 113).c;
- };
- mdb(One, "PortRestorer/lambda$4$Type", 1737);
- bcb(1738, 1, Oie, blc);
- _2.Mb = function clc(a) {
- return nkc(BD(a, 11));
- };
- mdb(One, "PortRestorer/lambda$5$Type", 1738);
- bcb(1739, 1, Oie, dlc);
- _2.Mb = function elc(a) {
- return gkc(), BD(a, 11).j == (Ucd(), Acd);
- };
- mdb(One, "PortRestorer/lambda$6$Type", 1739);
- bcb(1740, 1, Oie, flc);
- _2.Mb = function glc(a) {
- return gkc(), BD(a, 11).j == (Ucd(), zcd);
- };
- mdb(One, "PortRestorer/lambda$7$Type", 1740);
- bcb(1741, 1, Oie, hlc);
- _2.Mb = function ilc(a) {
- return okc(BD(a, 11));
- };
- mdb(One, "PortRestorer/lambda$8$Type", 1741);
- bcb(1742, 1, Oie, jlc);
- _2.Mb = function klc(a) {
- return gkc(), BD(a, 11).j == (Ucd(), Rcd);
- };
- mdb(One, "PortRestorer/lambda$9$Type", 1742);
- bcb(270, 22, { 3: 1, 35: 1, 22: 1, 270: 1 }, Blc);
- var slc, tlc, ulc, vlc, wlc, xlc, ylc, zlc;
- var KV = ndb(One, "PortSideAssigner/Target", 270, CI, Dlc, Clc);
- var Elc;
- bcb(1725, 1, {}, Glc);
- _2.Kb = function Hlc(a) {
- return JAb(new YAb(null, new Kub(BD(a, 101).j, 16)), new Ylc());
- };
- mdb(One, "PortSideAssigner/lambda$1$Type", 1725);
- bcb(1726, 1, {}, Ilc);
- _2.Kb = function Jlc(a) {
- return BD(a, 113).d;
- };
- mdb(One, "PortSideAssigner/lambda$2$Type", 1726);
- bcb(1727, 1, qie, Klc);
- _2.td = function Llc(a) {
- G0b(BD(a, 11), (Ucd(), Acd));
- };
- mdb(One, "PortSideAssigner/lambda$3$Type", 1727);
- bcb(1728, 1, {}, Mlc);
- _2.Kb = function Nlc(a) {
- return BD(a, 113).d;
- };
- mdb(One, "PortSideAssigner/lambda$4$Type", 1728);
- bcb(1729, 1, qie, Olc);
- _2.td = function Plc(a) {
- plc(this.a, BD(a, 11));
- };
- mdb(One, "PortSideAssigner/lambda$5$Type", 1729);
- bcb(1730, 1, Dke, Qlc);
- _2.ue = function Rlc(a, b) {
- return qlc(BD(a, 101), BD(b, 101));
- };
- _2.Fb = function Slc(a) {
- return this === a;
- };
- _2.ve = function Tlc() {
- return new tpb(this);
- };
- mdb(One, "PortSideAssigner/lambda$6$Type", 1730);
- bcb(1731, 1, Dke, Ulc);
- _2.ue = function Vlc(a, b) {
- return rlc(BD(a, 113), BD(b, 113));
- };
- _2.Fb = function Wlc(a) {
- return this === a;
- };
- _2.ve = function Xlc() {
- return new tpb(this);
- };
- mdb(One, "PortSideAssigner/lambda$7$Type", 1731);
- bcb(805, 1, Oie, Ylc);
- _2.Mb = function Zlc(a) {
- return BD(a, 113).c;
- };
- mdb(One, "PortSideAssigner/lambda$8$Type", 805);
- bcb(2009, 1, {});
- mdb(Pne, "AbstractSelfLoopRouter", 2009);
- bcb(1750, 1, Dke, gmc);
- _2.ue = function hmc(a, b) {
- return emc(BD(a, 101), BD(b, 101));
- };
- _2.Fb = function imc(a) {
- return this === a;
- };
- _2.ve = function jmc() {
- return new tpb(this);
- };
- mdb(Pne, rle, 1750);
- bcb(1751, 1, Dke, kmc);
- _2.ue = function lmc(a, b) {
- return fmc(BD(a, 101), BD(b, 101));
- };
- _2.Fb = function mmc(a) {
- return this === a;
- };
- _2.ve = function nmc() {
- return new tpb(this);
- };
- mdb(Pne, sle, 1751);
- bcb(1793, 2009, {}, zmc);
- _2.Uf = function Amc(a, b, c2) {
- return c2;
- };
- mdb(Pne, "OrthogonalSelfLoopRouter", 1793);
- bcb(1795, 1, qie, Bmc);
- _2.td = function Cmc(a) {
- ymc(this.b, this.a, BD(a, 8));
- };
- mdb(Pne, "OrthogonalSelfLoopRouter/lambda$0$Type", 1795);
- bcb(1794, 1793, {}, Fmc);
- _2.Uf = function Gmc(a, b, c2) {
- var d, e;
- d = a.c.d;
- St(c2, 0, P6c(R6c(d.n), d.a));
- e = a.d.d;
- Dsb(c2, P6c(R6c(e.n), e.a));
- return Dmc(c2);
- };
- mdb(Pne, "PolylineSelfLoopRouter", 1794);
- bcb(1746, 1, {}, Umc);
- _2.a = null;
- var Hmc;
- mdb(Pne, "RoutingDirector", 1746);
- bcb(1747, 1, Dke, Wmc);
- _2.ue = function Xmc(a, b) {
- return Vmc(BD(a, 113), BD(b, 113));
- };
- _2.Fb = function Ymc(a) {
- return this === a;
- };
- _2.ve = function Zmc() {
- return new tpb(this);
- };
- mdb(Pne, "RoutingDirector/lambda$0$Type", 1747);
- bcb(1748, 1, {}, $mc);
- _2.Kb = function _mc(a) {
- return Imc(), BD(a, 101).j;
- };
- mdb(Pne, "RoutingDirector/lambda$1$Type", 1748);
- bcb(1749, 1, qie, anc);
- _2.td = function bnc(a) {
- Imc();
- BD(a, 15).ad(Hmc);
- };
- mdb(Pne, "RoutingDirector/lambda$2$Type", 1749);
- bcb(1752, 1, {}, mnc);
- mdb(Pne, "RoutingSlotAssigner", 1752);
- bcb(1753, 1, Oie, pnc);
- _2.Mb = function qnc(a) {
- return nnc(this.a, BD(a, 101));
- };
- mdb(Pne, "RoutingSlotAssigner/lambda$0$Type", 1753);
- bcb(1754, 1, Dke, rnc);
- _2.ue = function snc(a, b) {
- return onc(this.a, BD(a, 101), BD(b, 101));
- };
- _2.Fb = function tnc(a) {
- return this === a;
- };
- _2.ve = function unc() {
- return new tpb(this);
- };
- mdb(Pne, "RoutingSlotAssigner/lambda$1$Type", 1754);
- bcb(1796, 1793, {}, wnc);
- _2.Uf = function xnc(a, b, c2) {
- var d, e, f2, g;
- d = Edb(ED(c_b(a.b.g.b, (Nyc(), nyc))));
- g = new u7c(OC(GC(m1, 1), nie, 8, 0, [(f2 = a.c.d, P6c(new g7c(f2.n), f2.a))]));
- vnc(a, b, c2, g, d);
- Dsb(g, (e = a.d.d, P6c(new g7c(e.n), e.a)));
- return UPc(new YPc(g));
- };
- mdb(Pne, "SplineSelfLoopRouter", 1796);
- bcb(578, 1, Dke, Bnc, Dnc);
- _2.ue = function Enc(a, b) {
- return ync(this, BD(a, 10), BD(b, 10));
- };
- _2.Fb = function Fnc(a) {
- return this === a;
- };
- _2.ve = function Gnc() {
- return new tpb(this);
- };
- mdb(Qne, "ModelOrderNodeComparator", 578);
- bcb(1755, 1, Oie, Hnc);
- _2.Mb = function Inc(a) {
- return BD(a, 11).e.c.length != 0;
- };
- mdb(Qne, "ModelOrderNodeComparator/lambda$0$Type", 1755);
- bcb(1756, 1, {}, Jnc);
- _2.Kb = function Knc(a) {
- return BD(Ikb(BD(a, 11).e, 0), 17).c;
- };
- mdb(Qne, "ModelOrderNodeComparator/lambda$1$Type", 1756);
- bcb(1757, 1, Oie, Lnc);
- _2.Mb = function Mnc(a) {
- return BD(a, 11).e.c.length != 0;
- };
- mdb(Qne, "ModelOrderNodeComparator/lambda$2$Type", 1757);
- bcb(1758, 1, {}, Nnc);
- _2.Kb = function Onc(a) {
- return BD(Ikb(BD(a, 11).e, 0), 17).c;
- };
- mdb(Qne, "ModelOrderNodeComparator/lambda$3$Type", 1758);
- bcb(1759, 1, Oie, Pnc);
- _2.Mb = function Qnc(a) {
- return BD(a, 11).e.c.length != 0;
- };
- mdb(Qne, "ModelOrderNodeComparator/lambda$4$Type", 1759);
- bcb(806, 1, Dke, Tnc, Unc);
- _2.ue = function Vnc(a, b) {
- return Rnc(this, a, b);
- };
- _2.Fb = function Wnc(a) {
- return this === a;
- };
- _2.ve = function Xnc() {
- return new tpb(this);
- };
- mdb(Qne, "ModelOrderPortComparator", 806);
- bcb(801, 1, {}, Ync);
- _2.Vf = function $nc(a, b) {
- var c2, d, e, f2;
- e = Znc(b);
- c2 = new Rkb();
- f2 = b.f / e;
- for (d = 1; d < e; ++d) {
- Ekb(c2, meb(Tbb(Cbb($wnd.Math.round(d * f2)))));
- }
- return c2;
- };
- _2.Wf = function _nc() {
- return false;
- };
- mdb(Rne, "ARDCutIndexHeuristic", 801);
- bcb(1479, 1, ene, eoc);
- _2.pf = function foc(a, b) {
- doc(BD(a, 37), b);
- };
- mdb(Rne, "BreakingPointInserter", 1479);
- bcb(305, 1, { 305: 1 }, goc);
- _2.Ib = function joc() {
- var a;
- a = new Ufb();
- a.a += "BPInfo[";
- a.a += "\n start=";
- Pfb(a, this.i);
- a.a += "\n end=";
- Pfb(a, this.a);
- a.a += "\n nodeStartEdge=";
- Pfb(a, this.e);
- a.a += "\n startEndEdge=";
- Pfb(a, this.j);
- a.a += "\n originalEdge=";
- Pfb(a, this.f);
- a.a += "\n startInLayerDummy=";
- Pfb(a, this.k);
- a.a += "\n startInLayerEdge=";
- Pfb(a, this.n);
- a.a += "\n endInLayerDummy=";
- Pfb(a, this.b);
- a.a += "\n endInLayerEdge=";
- Pfb(a, this.c);
- return a.a;
- };
- mdb(Rne, "BreakingPointInserter/BPInfo", 305);
- bcb(652, 1, { 652: 1 }, qoc);
- _2.a = false;
- _2.b = 0;
- _2.c = 0;
- mdb(Rne, "BreakingPointInserter/Cut", 652);
- bcb(1480, 1, ene, Aoc);
- _2.pf = function Boc(a, b) {
- yoc(BD(a, 37), b);
- };
- mdb(Rne, "BreakingPointProcessor", 1480);
- bcb(1481, 1, Oie, Coc);
- _2.Mb = function Doc(a) {
- return hoc(BD(a, 10));
- };
- mdb(Rne, "BreakingPointProcessor/0methodref$isEnd$Type", 1481);
- bcb(1482, 1, Oie, Eoc);
- _2.Mb = function Foc(a) {
- return ioc(BD(a, 10));
- };
- mdb(Rne, "BreakingPointProcessor/1methodref$isStart$Type", 1482);
- bcb(1483, 1, ene, Joc);
- _2.pf = function Koc(a, b) {
- Hoc(this, BD(a, 37), b);
- };
- mdb(Rne, "BreakingPointRemover", 1483);
- bcb(1484, 1, qie, Loc);
- _2.td = function Moc(a) {
- BD(a, 128).k = true;
- };
- mdb(Rne, "BreakingPointRemover/lambda$0$Type", 1484);
- bcb(797, 1, {}, Xoc);
- _2.b = 0;
- _2.e = 0;
- _2.f = 0;
- _2.j = 0;
- mdb(Rne, "GraphStats", 797);
- bcb(798, 1, {}, Zoc);
- _2.Ce = function $oc(a, b) {
- return $wnd.Math.max(Edb(ED(a)), Edb(ED(b)));
- };
- mdb(Rne, "GraphStats/0methodref$max$Type", 798);
- bcb(799, 1, {}, _oc);
- _2.Ce = function apc(a, b) {
- return $wnd.Math.max(Edb(ED(a)), Edb(ED(b)));
- };
- mdb(Rne, "GraphStats/2methodref$max$Type", 799);
- bcb(1660, 1, {}, bpc);
- _2.Ce = function cpc(a, b) {
- return Yoc(ED(a), ED(b));
- };
- mdb(Rne, "GraphStats/lambda$1$Type", 1660);
- bcb(1661, 1, {}, dpc);
- _2.Kb = function epc(a) {
- return Roc(this.a, BD(a, 29));
- };
- mdb(Rne, "GraphStats/lambda$2$Type", 1661);
- bcb(1662, 1, {}, fpc);
- _2.Kb = function gpc(a) {
- return Qoc(this.a, BD(a, 29));
- };
- mdb(Rne, "GraphStats/lambda$6$Type", 1662);
- bcb(800, 1, {}, hpc);
- _2.Vf = function ipc(a, b) {
- var c2;
- c2 = BD(vNb(a, (Nyc(), Eyc)), 15);
- return c2 ? c2 : (mmb(), mmb(), jmb);
- };
- _2.Wf = function jpc() {
- return false;
- };
- mdb(Rne, "ICutIndexCalculator/ManualCutIndexCalculator", 800);
- bcb(802, 1, {}, kpc);
- _2.Vf = function lpc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
- u2 = (b.n == null && Uoc(b), b.n);
- i3 = (b.d == null && Uoc(b), b.d);
- t4 = KC(UD, Vje, 25, u2.length, 15, 1);
- t4[0] = u2[0];
- r = u2[0];
- for (j = 1; j < u2.length; j++) {
- t4[j] = t4[j - 1] + u2[j];
- r += u2[j];
- }
- e = Znc(b) - 1;
- g = BD(vNb(a, (Nyc(), Fyc)), 19).a;
- d = Qje;
- c2 = new Rkb();
- for (m = $wnd.Math.max(0, e - g); m <= $wnd.Math.min(b.f - 1, e + g); m++) {
- p = r / (m + 1);
- q = 0;
- k = 1;
- f2 = new Rkb();
- s = Qje;
- l = 0;
- h = 0;
- o2 = i3[0];
- if (m == 0) {
- s = r;
- h = (b.g == null && (b.g = Poc(b, new _oc())), Edb(b.g));
- } else {
- while (k < b.f) {
- if (t4[k - 1] - q >= p) {
- Ekb(f2, meb(k));
- s = $wnd.Math.max(s, t4[k - 1] - l);
- h += o2;
- q += t4[k - 1] - q;
- l = t4[k - 1];
- o2 = i3[k];
- }
- o2 = $wnd.Math.max(o2, i3[k]);
- ++k;
- }
- h += o2;
- }
- n = $wnd.Math.min(1 / s, 1 / b.b / h);
- if (n > d) {
- d = n;
- c2 = f2;
- }
- }
- return c2;
- };
- _2.Wf = function mpc() {
- return false;
- };
- mdb(Rne, "MSDCutIndexHeuristic", 802);
- bcb(1617, 1, ene, ppc);
- _2.pf = function qpc(a, b) {
- opc(BD(a, 37), b);
- };
- mdb(Rne, "SingleEdgeGraphWrapper", 1617);
- bcb(227, 22, { 3: 1, 35: 1, 22: 1, 227: 1 }, Bpc);
- var upc, vpc, wpc, xpc, ypc, zpc;
- var EW = ndb(Sne, "CenterEdgeLabelPlacementStrategy", 227, CI, Dpc, Cpc);
- var Epc;
- bcb(422, 22, { 3: 1, 35: 1, 22: 1, 422: 1 }, Jpc);
- var Gpc, Hpc;
- var FW = ndb(Sne, "ConstraintCalculationStrategy", 422, CI, Lpc, Kpc);
- var Mpc;
- bcb(314, 22, { 3: 1, 35: 1, 22: 1, 314: 1, 246: 1, 234: 1 }, Tpc);
- _2.Kf = function Vpc() {
- return Spc(this);
- };
- _2.Xf = function Upc() {
- return Spc(this);
- };
- var Opc, Ppc, Qpc;
- var GW = ndb(Sne, "CrossingMinimizationStrategy", 314, CI, Xpc, Wpc);
- var Ypc;
- bcb(337, 22, { 3: 1, 35: 1, 22: 1, 337: 1 }, cqc);
- var $pc, _pc, aqc;
- var HW = ndb(Sne, "CuttingStrategy", 337, CI, eqc, dqc);
- var fqc;
- bcb(335, 22, { 3: 1, 35: 1, 22: 1, 335: 1, 246: 1, 234: 1 }, oqc);
- _2.Kf = function qqc() {
- return nqc(this);
- };
- _2.Xf = function pqc() {
- return nqc(this);
- };
- var hqc, iqc, jqc, kqc, lqc;
- var IW = ndb(Sne, "CycleBreakingStrategy", 335, CI, sqc, rqc);
- var tqc;
- bcb(419, 22, { 3: 1, 35: 1, 22: 1, 419: 1 }, yqc);
- var vqc, wqc;
- var JW = ndb(Sne, "DirectionCongruency", 419, CI, Aqc, zqc);
- var Bqc;
- bcb(450, 22, { 3: 1, 35: 1, 22: 1, 450: 1 }, Hqc);
- var Dqc, Eqc, Fqc;
- var KW = ndb(Sne, "EdgeConstraint", 450, CI, Jqc, Iqc);
- var Kqc;
- bcb(276, 22, { 3: 1, 35: 1, 22: 1, 276: 1 }, Uqc);
- var Mqc, Nqc, Oqc, Pqc, Qqc, Rqc;
- var LW = ndb(Sne, "EdgeLabelSideSelection", 276, CI, Wqc, Vqc);
- var Xqc;
- bcb(479, 22, { 3: 1, 35: 1, 22: 1, 479: 1 }, arc);
- var Zqc, $qc;
- var MW = ndb(Sne, "EdgeStraighteningStrategy", 479, CI, crc, brc);
- var drc;
- bcb(274, 22, { 3: 1, 35: 1, 22: 1, 274: 1 }, mrc);
- var frc, grc, hrc, irc, jrc, krc;
- var NW = ndb(Sne, "FixedAlignment", 274, CI, orc, nrc);
- var prc;
- bcb(275, 22, { 3: 1, 35: 1, 22: 1, 275: 1 }, zrc);
- var rrc, trc, urc, vrc, wrc, xrc;
- var OW = ndb(Sne, "GraphCompactionStrategy", 275, CI, Brc, Arc);
- var Crc;
- bcb(256, 22, { 3: 1, 35: 1, 22: 1, 256: 1 }, Prc);
- var Erc, Frc, Grc, Hrc, Irc, Jrc, Krc, Lrc, Mrc, Nrc;
- var PW = ndb(Sne, "GraphProperties", 256, CI, Rrc, Qrc);
- var Src;
- bcb(292, 22, { 3: 1, 35: 1, 22: 1, 292: 1 }, Yrc);
- var Urc, Vrc, Wrc;
- var QW = ndb(Sne, "GreedySwitchType", 292, CI, $rc, Zrc);
- var _rc;
- bcb(303, 22, { 3: 1, 35: 1, 22: 1, 303: 1 }, fsc);
- var bsc, csc, dsc;
- var RW = ndb(Sne, "InLayerConstraint", 303, CI, hsc, gsc);
- var isc;
- bcb(420, 22, { 3: 1, 35: 1, 22: 1, 420: 1 }, nsc);
- var ksc, lsc;
- var SW = ndb(Sne, "InteractiveReferencePoint", 420, CI, psc, osc);
- var qsc;
- var ssc, tsc, usc, vsc, wsc, xsc, ysc, zsc, Asc, Bsc, Csc, Dsc, Esc, Fsc, Gsc, Hsc, Isc, Jsc, Ksc, Lsc, Msc, Nsc, Osc, Psc, Qsc, Rsc, Ssc, Tsc, Usc, Vsc, Wsc, Xsc, Ysc, Zsc, $sc, _sc, atc, btc, ctc, dtc, etc, ftc, gtc, htc, itc, jtc, ktc, ltc, mtc, ntc, otc, ptc, qtc, rtc, stc, ttc, utc, vtc;
- bcb(163, 22, { 3: 1, 35: 1, 22: 1, 163: 1 }, Dtc);
- var xtc, ytc, ztc, Atc, Btc;
- var TW = ndb(Sne, "LayerConstraint", 163, CI, Ftc, Etc);
- var Gtc;
- bcb(848, 1, ale, kwc);
- _2.Qe = function lwc(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yne), ""), "Direction Congruency"), "Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."), puc), (_5c(), V5c)), JW), pqb((N5c(), L5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zne), ""), "Feedback Edges"), "Whether feedback edges should be highlighted by routing around the nodes."), (Bcb(), false)), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ne), ""), "Interactive Reference Point"), "Determines which point of a node is considered by interactive layout phases."), Muc), V5c), SW), pqb(L5c))));
- o4c(a, $ne, goe, Ouc);
- o4c(a, $ne, qoe, Nuc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ne), ""), "Merge Edges"), "Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aoe), ""), "Merge Hierarchy-Crossing Edges"), "If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."), true), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), boe), ""), "Allow Non-Flow Ports To Switch Sides"), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), T5c), wI), pqb(M5c)), OC(GC(ZI, 1), nie, 2, 6, ["org.eclipse.elk.layered.northOrSouthPort"]))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), coe), ""), "Port Sorting Strategy"), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), xvc), V5c), cX), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), doe), ""), "Thoroughness"), "How much effort should be spent to produce a nice layout."), meb(7)), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eoe), ""), "Add Unnecessary Bendpoints"), "Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), foe), ""), "Generate Position and Layer IDs"), "If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), goe), "cycleBreaking"), "Cycle Breaking Strategy"), "Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."), nuc), V5c), IW), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hoe), ppe), "Node Layering Strategy"), "Strategy for node layering."), bvc), V5c), YW), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ioe), ppe), "Layer Constraint"), "Determines a constraint on the placement of the node regarding the layering."), Tuc), V5c), TW), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), joe), ppe), "Layer Choice Constraint"), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), koe), ppe), "Layer ID"), "Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), loe), qpe), "Upper Bound On Width [MinWidth Layerer]"), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), meb(4)), X5c), JI), pqb(L5c))));
- o4c(a, loe, hoe, Wuc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), moe), qpe), "Upper Layer Estimation Scaling Factor [MinWidth Layerer]"), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), meb(2)), X5c), JI), pqb(L5c))));
- o4c(a, moe, hoe, Yuc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), noe), rpe), "Node Promotion Strategy"), "Reduces number of dummy nodes after layering phase (if possible)."), _uc), V5c), aX), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ooe), rpe), "Max Node Promotion Iterations"), "Limits the number of iterations for node promotion."), meb(0)), X5c), JI), pqb(L5c))));
- o4c(a, ooe, noe, null);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), poe), "layering.coffmanGraham"), "Layer Bound"), "The maximum number of nodes allowed per layer."), meb(Ohe)), X5c), JI), pqb(L5c))));
- o4c(a, poe, hoe, Quc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qoe), spe), "Crossing Minimization Strategy"), "Strategy for crossing minimization."), luc), V5c), GW), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), roe), spe), "Force Node Model Order"), "The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), soe), spe), "Hierarchical Sweepiness"), "How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."), 0.1), U5c), BI), pqb(L5c))));
- o4c(a, soe, tpe, fuc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), toe), spe), "Semi-Interactive Crossing Minimization"), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), T5c), wI), pqb(L5c))));
- o4c(a, toe, qoe, juc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), uoe), spe), "Position Choice Constraint"), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), voe), spe), "Position ID"), "Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), woe), upe), "Greedy Switch Activation Threshold"), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), meb(40)), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xoe), upe), "Greedy Switch Crossing Minimization"), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), cuc), V5c), QW), pqb(L5c))));
- o4c(a, xoe, qoe, duc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yoe), "crossingMinimization.greedySwitchHierarchical"), "Greedy Switch Crossing Minimization (hierarchical)"), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), $tc), V5c), QW), pqb(L5c))));
- o4c(a, yoe, qoe, _tc);
- o4c(a, yoe, tpe, auc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zoe), vpe), "Node Placement Strategy"), "Strategy for node placement."), vvc), V5c), _W), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Aoe), vpe), "Favor Straight Edges Over Balancing"), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), T5c), wI), pqb(L5c))));
- o4c(a, Aoe, zoe, lvc);
- o4c(a, Aoe, zoe, mvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Boe), wpe), "BK Edge Straightening"), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), fvc), V5c), MW), pqb(L5c))));
- o4c(a, Boe, zoe, gvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Coe), wpe), "BK Fixed Alignment"), "Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."), ivc), V5c), NW), pqb(L5c))));
- o4c(a, Coe, zoe, jvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Doe), "nodePlacement.linearSegments"), "Linear Segments Deflection Dampening"), "Dampens the movement of nodes to keep the diagram from getting too large."), 0.3), U5c), BI), pqb(L5c))));
- o4c(a, Doe, zoe, ovc);
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Eoe), "nodePlacement.networkSimplex"), "Node Flexibility"), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), V5c), $W), pqb(K5c))));
- o4c(a, Eoe, zoe, tvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Foe), "nodePlacement.networkSimplex.nodeFlexibility"), "Node Flexibility Default"), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), rvc), V5c), $W), pqb(L5c))));
- o4c(a, Foe, zoe, svc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Goe), xpe), "Self-Loop Distribution"), "Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."), xuc), V5c), eX), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hoe), xpe), "Self-Loop Ordering"), "Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."), zuc), V5c), fX), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ioe), "edgeRouting.splines"), "Spline Routing Mode"), "Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."), Buc), V5c), hX), pqb(L5c))));
- o4c(a, Ioe, ype, Cuc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Joe), "edgeRouting.splines.sloppy"), "Sloppy Spline Layer Spacing Factor"), "Spacing factor for routing area between layers when using sloppy spline routing."), 0.2), U5c), BI), pqb(L5c))));
- o4c(a, Joe, ype, Euc);
- o4c(a, Joe, Ioe, Fuc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Koe), "edgeRouting.polyline"), "Sloped Edge Zone Width"), "Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."), 2), U5c), BI), pqb(L5c))));
- o4c(a, Koe, ype, vuc);
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Loe), zpe), "Spacing Base Value"), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Moe), zpe), "Edge Node Between Layers Spacing"), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Noe), zpe), "Edge Edge Between Layer Spacing"), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ooe), zpe), "Node Node Between Layers Spacing"), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Poe), Ape), "Direction Priority"), "Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."), meb(0)), X5c), JI), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qoe), Ape), "Shortness Priority"), "Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."), meb(0)), X5c), JI), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Roe), Ape), "Straightness Priority"), "Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."), meb(0)), X5c), JI), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Soe), Bpe), Ole), "Tries to further compact components (disconnected sub-graphs)."), false), T5c), wI), pqb(L5c))));
- o4c(a, Soe, zme, true);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Toe), Cpe), "Post Compaction Strategy"), Dpe), Ntc), V5c), OW), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Uoe), Cpe), "Post Compaction Constraint Calculation"), Dpe), Ltc), V5c), FW), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Voe), Epe), "High Degree Node Treatment"), "Makes room around high degree nodes to place leafs and trees."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Woe), Epe), "High Degree Node Threshold"), "Whether a node is considered to have a high degree."), meb(16)), X5c), JI), pqb(L5c))));
- o4c(a, Woe, Voe, true);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xoe), Epe), "High Degree Node Maximum Tree Height"), "Maximum height of a subtree connected to a high degree node to be moved to separate layers."), meb(5)), X5c), JI), pqb(L5c))));
- o4c(a, Xoe, Voe, true);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yoe), Fpe), "Graph Wrapping Strategy"), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), bwc), V5c), jX), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zoe), Fpe), "Additional Wrapped Edges Spacing"), "To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."), 10), U5c), BI), pqb(L5c))));
- o4c(a, Zoe, Yoe, Ivc);
- o4c(a, Zoe, Yoe, Jvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $oe), Fpe), "Correction Factor for Wrapping"), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), U5c), BI), pqb(L5c))));
- o4c(a, $oe, Yoe, Lvc);
- o4c(a, $oe, Yoe, Mvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _oe), Gpe), "Cutting Strategy"), "The strategy by which the layer indexes are determined at which the layering crumbles into chunks."), Tvc), V5c), HW), pqb(L5c))));
- o4c(a, _oe, Yoe, Uvc);
- o4c(a, _oe, Yoe, Vvc);
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), ape), Gpe), "Manually Specified Cuts"), "Allows the user to specify her own cuts for a certain graph."), Y5c), yK), pqb(L5c))));
- o4c(a, ape, _oe, Ovc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bpe), "wrapping.cutting.msd"), "MSD Freedom"), "The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."), Qvc), X5c), JI), pqb(L5c))));
- o4c(a, bpe, _oe, Rvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cpe), Hpe), "Validification Strategy"), "When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."), gwc), V5c), iX), pqb(L5c))));
- o4c(a, cpe, Yoe, hwc);
- o4c(a, cpe, Yoe, iwc);
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), dpe), Hpe), "Valid Indices for Wrapping"), null), Y5c), yK), pqb(L5c))));
- o4c(a, dpe, Yoe, dwc);
- o4c(a, dpe, Yoe, ewc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), epe), Ipe), "Improve Cuts"), "For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."), true), T5c), wI), pqb(L5c))));
- o4c(a, epe, Yoe, Zvc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fpe), Ipe), "Distance Penalty When Improving Cuts"), null), 2), U5c), BI), pqb(L5c))));
- o4c(a, fpe, Yoe, Xvc);
- o4c(a, fpe, epe, true);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gpe), Ipe), "Improve Wrapped Edges"), "The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."), true), T5c), wI), pqb(L5c))));
- o4c(a, gpe, Yoe, _vc);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hpe), Jpe), "Edge Label Side Selection"), "Method to decide on edge label sides."), tuc), V5c), LW), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ipe), Jpe), "Edge Center Label Placement Strategy"), "Determines in which layer center labels of long edges should be placed."), ruc), V5c), EW), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), jpe), Kpe), "Consider Model Order"), "Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."), Wtc), V5c), bX), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), kpe), Kpe), "No Model Order"), "Set on a node to not set a model order for this node even though it is a real node."), false), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lpe), Kpe), "Consider Model Order for Components"), "If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."), Ptc), V5c), hQ), pqb(L5c))));
- o4c(a, lpe, zme, null);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mpe), Kpe), "Long Edge Ordering Strategy"), "Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."), Ttc), V5c), ZW), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), npe), Kpe), "Crossing Counter Node Order Influence"), "Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c))));
- o4c(a, npe, jpe, null);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ope), Kpe), "Crossing Counter Port Order Influence"), "Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c))));
- o4c(a, ope, jpe, null);
- Oyc((new Pyc(), a));
- };
- var Itc, Jtc, Ktc, Ltc, Mtc, Ntc, Otc, Ptc, Qtc, Rtc, Stc, Ttc, Utc, Vtc, Wtc, Xtc, Ytc, Ztc, $tc, _tc, auc, buc, cuc, duc, euc, fuc, guc, huc, iuc, juc, kuc, luc, muc, nuc, ouc, puc, quc, ruc, suc, tuc, uuc, vuc, wuc, xuc, yuc, zuc, Auc, Buc, Cuc, Duc, Euc, Fuc, Guc, Huc, Iuc, Juc, Kuc, Luc, Muc, Nuc, Ouc, Puc, Quc, Ruc, Suc, Tuc, Uuc, Vuc, Wuc, Xuc, Yuc, Zuc, $uc, _uc, avc, bvc, cvc, dvc, evc, fvc, gvc, hvc, ivc, jvc, kvc, lvc, mvc, nvc, ovc, pvc, qvc, rvc, svc, tvc, uvc, vvc, wvc, xvc, yvc, zvc, Avc, Bvc, Cvc, Dvc, Evc, Fvc, Gvc, Hvc, Ivc, Jvc, Kvc, Lvc, Mvc, Nvc, Ovc, Pvc, Qvc, Rvc, Svc, Tvc, Uvc, Vvc, Wvc, Xvc, Yvc, Zvc, $vc, _vc, awc, bwc, cwc, dwc, ewc, fwc, gwc, hwc, iwc;
- mdb(Sne, "LayeredMetaDataProvider", 848);
- bcb(986, 1, ale, Pyc);
- _2.Qe = function Qyc(a) {
- Oyc(a);
- };
- var mwc, nwc, owc, pwc, qwc, rwc, swc, twc, uwc, vwc, wwc, xwc, ywc, zwc, Awc, Bwc, Cwc, Dwc, Ewc, Fwc, Gwc, Hwc, Iwc, Jwc, Kwc, Lwc, Mwc, Nwc, Owc, Pwc, Qwc, Rwc, Swc, Twc, Uwc, Vwc, Wwc, Xwc, Ywc, Zwc, $wc, _wc, axc, bxc, cxc, dxc, exc, fxc, gxc, hxc, ixc, jxc, kxc, lxc, mxc, nxc, oxc, pxc, qxc, rxc, sxc, txc, uxc, vxc, wxc, xxc, yxc, zxc, Axc, Bxc, Cxc, Dxc, Exc, Fxc, Gxc, Hxc, Ixc, Jxc, Kxc, Lxc, Mxc, Nxc, Oxc, Pxc, Qxc, Rxc, Sxc, Txc, Uxc, Vxc, Wxc, Xxc, Yxc, Zxc, $xc, _xc, ayc, byc, cyc, dyc, eyc, fyc, gyc, hyc, iyc, jyc, kyc, lyc, myc, nyc, oyc, pyc, qyc, ryc, syc, tyc, uyc, vyc, wyc, xyc, yyc, zyc, Ayc, Byc, Cyc, Dyc, Eyc, Fyc, Gyc, Hyc, Iyc, Jyc, Kyc, Lyc, Myc;
- mdb(Sne, "LayeredOptions", 986);
- bcb(987, 1, {}, Ryc);
- _2.$e = function Syc() {
- var a;
- return a = new jUb(), a;
- };
- _2._e = function Tyc(a) {
- };
- mdb(Sne, "LayeredOptions/LayeredFactory", 987);
- bcb(1372, 1, {});
- _2.a = 0;
- var Uyc;
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder", 1372);
- bcb(779, 1372, {}, ezc);
- var bzc, czc;
- mdb(Sne, "LayeredSpacings/LayeredSpacingsBuilder", 779);
- bcb(313, 22, { 3: 1, 35: 1, 22: 1, 313: 1, 246: 1, 234: 1 }, nzc);
- _2.Kf = function pzc() {
- return mzc(this);
- };
- _2.Xf = function ozc() {
- return mzc(this);
- };
- var fzc, gzc, hzc, izc, jzc, kzc;
- var YW = ndb(Sne, "LayeringStrategy", 313, CI, rzc, qzc);
- var szc;
- bcb(378, 22, { 3: 1, 35: 1, 22: 1, 378: 1 }, zzc);
- var uzc, vzc, wzc;
- var ZW = ndb(Sne, "LongEdgeOrderingStrategy", 378, CI, Bzc, Azc);
- var Czc;
- bcb(197, 22, { 3: 1, 35: 1, 22: 1, 197: 1 }, Kzc);
- var Ezc, Fzc, Gzc, Hzc;
- var $W = ndb(Sne, "NodeFlexibility", 197, CI, Nzc, Mzc);
- var Ozc;
- bcb(315, 22, { 3: 1, 35: 1, 22: 1, 315: 1, 246: 1, 234: 1 }, Xzc);
- _2.Kf = function Zzc() {
- return Wzc(this);
- };
- _2.Xf = function Yzc() {
- return Wzc(this);
- };
- var Qzc, Rzc, Szc, Tzc, Uzc;
- var _W = ndb(Sne, "NodePlacementStrategy", 315, CI, _zc, $zc);
- var aAc;
- bcb(260, 22, { 3: 1, 35: 1, 22: 1, 260: 1 }, lAc);
- var cAc, dAc, eAc, fAc, gAc, hAc, iAc, jAc;
- var aX = ndb(Sne, "NodePromotionStrategy", 260, CI, nAc, mAc);
- var oAc;
- bcb(339, 22, { 3: 1, 35: 1, 22: 1, 339: 1 }, uAc);
- var qAc, rAc, sAc;
- var bX = ndb(Sne, "OrderingStrategy", 339, CI, wAc, vAc);
- var xAc;
- bcb(421, 22, { 3: 1, 35: 1, 22: 1, 421: 1 }, CAc);
- var zAc, AAc;
- var cX = ndb(Sne, "PortSortingStrategy", 421, CI, EAc, DAc);
- var FAc;
- bcb(452, 22, { 3: 1, 35: 1, 22: 1, 452: 1 }, LAc);
- var HAc, IAc, JAc;
- var dX = ndb(Sne, "PortType", 452, CI, NAc, MAc);
- var OAc;
- bcb(375, 22, { 3: 1, 35: 1, 22: 1, 375: 1 }, UAc);
- var QAc, RAc, SAc;
- var eX = ndb(Sne, "SelfLoopDistributionStrategy", 375, CI, WAc, VAc);
- var XAc;
- bcb(376, 22, { 3: 1, 35: 1, 22: 1, 376: 1 }, aBc);
- var ZAc, $Ac;
- var fX = ndb(Sne, "SelfLoopOrderingStrategy", 376, CI, cBc, bBc);
- var dBc;
- bcb(304, 1, { 304: 1 }, oBc);
- mdb(Sne, "Spacings", 304);
- bcb(336, 22, { 3: 1, 35: 1, 22: 1, 336: 1 }, uBc);
- var qBc, rBc, sBc;
- var hX = ndb(Sne, "SplineRoutingMode", 336, CI, wBc, vBc);
- var xBc;
- bcb(338, 22, { 3: 1, 35: 1, 22: 1, 338: 1 }, DBc);
- var zBc, ABc, BBc;
- var iX = ndb(Sne, "ValidifyStrategy", 338, CI, FBc, EBc);
- var GBc;
- bcb(377, 22, { 3: 1, 35: 1, 22: 1, 377: 1 }, MBc);
- var IBc, JBc, KBc;
- var jX = ndb(Sne, "WrappingStrategy", 377, CI, OBc, NBc);
- var PBc;
- bcb(1383, 1, Bqe, VBc);
- _2.Yf = function WBc(a) {
- return BD(a, 37), RBc;
- };
- _2.pf = function XBc(a, b) {
- UBc(this, BD(a, 37), b);
- };
- var RBc;
- mdb(Cqe, "DepthFirstCycleBreaker", 1383);
- bcb(782, 1, Bqe, aCc);
- _2.Yf = function cCc(a) {
- return BD(a, 37), YBc;
- };
- _2.pf = function dCc(a, b) {
- $Bc(this, BD(a, 37), b);
- };
- _2.Zf = function bCc(a) {
- return BD(Ikb(a, Bub(this.d, a.c.length)), 10);
- };
- var YBc;
- mdb(Cqe, "GreedyCycleBreaker", 782);
- bcb(1386, 782, Bqe, eCc);
- _2.Zf = function fCc(a) {
- var b, c2, d, e;
- e = null;
- b = Ohe;
- for (d = new olb(a); d.a < d.c.c.length; ) {
- c2 = BD(mlb(d), 10);
- if (wNb(c2, (wtc(), Zsc)) && BD(vNb(c2, Zsc), 19).a < b) {
- b = BD(vNb(c2, Zsc), 19).a;
- e = c2;
- }
- }
- if (!e) {
- return BD(Ikb(a, Bub(this.d, a.c.length)), 10);
- }
- return e;
- };
- mdb(Cqe, "GreedyModelOrderCycleBreaker", 1386);
- bcb(1384, 1, Bqe, kCc);
- _2.Yf = function lCc(a) {
- return BD(a, 37), gCc;
- };
- _2.pf = function mCc(a, b) {
- jCc(this, BD(a, 37), b);
- };
- var gCc;
- mdb(Cqe, "InteractiveCycleBreaker", 1384);
- bcb(1385, 1, Bqe, rCc);
- _2.Yf = function sCc(a) {
- return BD(a, 37), nCc;
- };
- _2.pf = function tCc(a, b) {
- qCc(this, BD(a, 37), b);
- };
- _2.a = 0;
- _2.b = 0;
- var nCc;
- mdb(Cqe, "ModelOrderCycleBreaker", 1385);
- bcb(1389, 1, Bqe, DCc);
- _2.Yf = function ECc(a) {
- return BD(a, 37), uCc;
- };
- _2.pf = function FCc(a, b) {
- BCc(this, BD(a, 37), b);
- };
- var uCc;
- mdb(Dqe, "CoffmanGrahamLayerer", 1389);
- bcb(1390, 1, Dke, GCc);
- _2.ue = function HCc(a, b) {
- return xCc(this.a, BD(a, 10), BD(b, 10));
- };
- _2.Fb = function ICc(a) {
- return this === a;
- };
- _2.ve = function JCc() {
- return new tpb(this);
- };
- mdb(Dqe, "CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type", 1390);
- bcb(1391, 1, Dke, KCc);
- _2.ue = function LCc(a, b) {
- return ACc(this.a, BD(a, 10), BD(b, 10));
- };
- _2.Fb = function MCc(a) {
- return this === a;
- };
- _2.ve = function NCc() {
- return new tpb(this);
- };
- mdb(Dqe, "CoffmanGrahamLayerer/lambda$1$Type", 1391);
- bcb(1392, 1, Bqe, QCc);
- _2.Yf = function RCc(a) {
- return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), mUb, w8b), nUb, v8b);
- };
- _2.pf = function SCc(a, b) {
- PCc(this, BD(a, 37), b);
- };
- mdb(Dqe, "InteractiveLayerer", 1392);
- bcb(569, 1, { 569: 1 }, TCc);
- _2.a = 0;
- _2.c = 0;
- mdb(Dqe, "InteractiveLayerer/LayerSpan", 569);
- bcb(1388, 1, Bqe, ZCc);
- _2.Yf = function $Cc(a) {
- return BD(a, 37), UCc;
- };
- _2.pf = function _Cc(a, b) {
- WCc(this, BD(a, 37), b);
- };
- var UCc;
- mdb(Dqe, "LongestPathLayerer", 1388);
- bcb(1395, 1, Bqe, iDc);
- _2.Yf = function jDc(a) {
- return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
- };
- _2.pf = function kDc(a, b) {
- gDc(this, BD(a, 37), b);
- };
- _2.a = 0;
- _2.b = 0;
- _2.d = 0;
- var aDc, bDc;
- mdb(Dqe, "MinWidthLayerer", 1395);
- bcb(1396, 1, Dke, mDc);
- _2.ue = function nDc(a, b) {
- return lDc(this, BD(a, 10), BD(b, 10));
- };
- _2.Fb = function oDc(a) {
- return this === a;
- };
- _2.ve = function pDc() {
- return new tpb(this);
- };
- mdb(Dqe, "MinWidthLayerer/MinOutgoingEdgesComparator", 1396);
- bcb(1387, 1, Bqe, xDc);
- _2.Yf = function yDc(a) {
- return BD(a, 37), qDc;
- };
- _2.pf = function zDc(a, b) {
- wDc(this, BD(a, 37), b);
- };
- var qDc;
- mdb(Dqe, "NetworkSimplexLayerer", 1387);
- bcb(1393, 1, Bqe, LDc);
- _2.Yf = function MDc(a) {
- return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
- };
- _2.pf = function NDc(a, b) {
- IDc(this, BD(a, 37), b);
- };
- _2.d = 0;
- _2.f = 0;
- _2.g = 0;
- _2.i = 0;
- _2.s = 0;
- _2.t = 0;
- _2.u = 0;
- mdb(Dqe, "StretchWidthLayerer", 1393);
- bcb(1394, 1, Dke, PDc);
- _2.ue = function QDc(a, b) {
- return ODc(BD(a, 10), BD(b, 10));
- };
- _2.Fb = function RDc(a) {
- return this === a;
- };
- _2.ve = function SDc() {
- return new tpb(this);
- };
- mdb(Dqe, "StretchWidthLayerer/1", 1394);
- bcb(402, 1, Eqe);
- _2.Nf = function fEc(a, b, c2, d, e, f2) {
- };
- _2._f = function dEc(a, b, c2) {
- return YDc(this, a, b, c2);
- };
- _2.Mf = function eEc() {
- this.g = KC(VD, Fqe, 25, this.d, 15, 1);
- this.f = KC(VD, Fqe, 25, this.d, 15, 1);
- };
- _2.Of = function gEc(a, b) {
- this.e[a] = KC(WD, oje, 25, b[a].length, 15, 1);
- };
- _2.Pf = function hEc(a, b, c2) {
- var d;
- d = c2[a][b];
- d.p = b;
- this.e[a][b] = b;
- };
- _2.Qf = function iEc(a, b, c2, d) {
- BD(Ikb(d[a][b].j, c2), 11).p = this.d++;
- };
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- mdb(Gqe, "AbstractBarycenterPortDistributor", 402);
- bcb(1633, 1, Dke, jEc);
- _2.ue = function kEc(a, b) {
- return _Dc(this.a, BD(a, 11), BD(b, 11));
- };
- _2.Fb = function lEc(a) {
- return this === a;
- };
- _2.ve = function mEc() {
- return new tpb(this);
- };
- mdb(Gqe, "AbstractBarycenterPortDistributor/lambda$0$Type", 1633);
- bcb(817, 1, Mne, uEc);
- _2.Nf = function xEc(a, b, c2, d, e, f2) {
- };
- _2.Pf = function zEc(a, b, c2) {
- };
- _2.Qf = function AEc(a, b, c2, d) {
- };
- _2.Lf = function vEc() {
- return false;
- };
- _2.Mf = function wEc() {
- this.c = this.e.a;
- this.g = this.f.g;
- };
- _2.Of = function yEc(a, b) {
- b[a][0].c.p = a;
- };
- _2.Rf = function BEc() {
- return false;
- };
- _2.ag = function CEc(a, b, c2, d) {
- if (c2) {
- rEc(this, a);
- } else {
- oEc(this, a, d);
- pEc(this, a, b);
- }
- if (a.c.length > 1) {
- Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, BD(this, 660)) : (mmb(), Okb(a, this.d));
- PEc(this.e, a);
- }
- };
- _2.Sf = function DEc(a, b, c2, d) {
- var e, f2, g, h, i3, j, k;
- if (b != sEc(c2, a.length)) {
- f2 = a[b - (c2 ? 1 : -1)];
- UDc(this.f, f2, c2 ? (KAc(), IAc) : (KAc(), HAc));
- }
- e = a[b][0];
- k = !d || e.k == (j0b(), e0b);
- j = Ou(a[b]);
- this.ag(j, k, false, c2);
- g = 0;
- for (i3 = new olb(j); i3.a < i3.c.c.length; ) {
- h = BD(mlb(i3), 10);
- a[b][g++] = h;
- }
- return false;
- };
- _2.Tf = function EEc(a, b) {
- var c2, d, e, f2, g;
- g = sEc(b, a.length);
- f2 = Ou(a[g]);
- this.ag(f2, false, true, b);
- c2 = 0;
- for (e = new olb(f2); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 10);
- a[g][c2++] = d;
- }
- return false;
- };
- mdb(Gqe, "BarycenterHeuristic", 817);
- bcb(658, 1, { 658: 1 }, FEc);
- _2.Ib = function GEc() {
- return "BarycenterState [node=" + this.c + ", summedWeight=" + this.d + ", degree=" + this.b + ", barycenter=" + this.a + ", visited=" + this.e + "]";
- };
- _2.b = 0;
- _2.d = 0;
- _2.e = false;
- var CX = mdb(Gqe, "BarycenterHeuristic/BarycenterState", 658);
- bcb(1802, 1, Dke, HEc);
- _2.ue = function IEc(a, b) {
- return qEc(this.a, BD(a, 10), BD(b, 10));
- };
- _2.Fb = function JEc(a) {
- return this === a;
- };
- _2.ve = function KEc() {
- return new tpb(this);
- };
- mdb(Gqe, "BarycenterHeuristic/lambda$0$Type", 1802);
- bcb(816, 1, Mne, SEc);
- _2.Mf = function TEc() {
- };
- _2.Nf = function UEc(a, b, c2, d, e, f2) {
- };
- _2.Qf = function XEc(a, b, c2, d) {
- };
- _2.Of = function VEc(a, b) {
- this.a[a] = KC(CX, { 3: 1, 4: 1, 5: 1, 2018: 1 }, 658, b[a].length, 0, 1);
- this.b[a] = KC(FX, { 3: 1, 4: 1, 5: 1, 2019: 1 }, 233, b[a].length, 0, 1);
- };
- _2.Pf = function WEc(a, b, c2) {
- OEc(this, c2[a][b], true);
- };
- _2.c = false;
- mdb(Gqe, "ForsterConstraintResolver", 816);
- bcb(233, 1, { 233: 1 }, $Ec, _Ec);
- _2.Ib = function aFc() {
- var a, b;
- b = new Ufb();
- b.a += "[";
- for (a = 0; a < this.d.length; a++) {
- Qfb(b, a0b(this.d[a]));
- REc(this.g, this.d[0]).a != null && Qfb(Qfb((b.a += "<", b), Jdb(REc(this.g, this.d[0]).a)), ">");
- a < this.d.length - 1 && (b.a += She, b);
- }
- return (b.a += "]", b).a;
- };
- _2.a = 0;
- _2.c = 0;
- _2.f = 0;
- var FX = mdb(Gqe, "ForsterConstraintResolver/ConstraintGroup", 233);
- bcb(1797, 1, qie, bFc);
- _2.td = function cFc(a) {
- OEc(this.a, BD(a, 10), false);
- };
- mdb(Gqe, "ForsterConstraintResolver/lambda$0$Type", 1797);
- bcb(214, 1, { 214: 1, 225: 1 }, fFc);
- _2.Nf = function hFc(a, b, c2, d, e, f2) {
- };
- _2.Of = function iFc(a, b) {
- };
- _2.Mf = function gFc() {
- this.r = KC(WD, oje, 25, this.n, 15, 1);
- };
- _2.Pf = function jFc(a, b, c2) {
- var d, e;
- e = c2[a][b];
- d = e.e;
- !!d && Ekb(this.b, d);
- };
- _2.Qf = function kFc(a, b, c2, d) {
- ++this.n;
- };
- _2.Ib = function lFc() {
- return wlb(this.e, new Tqb());
- };
- _2.g = false;
- _2.i = false;
- _2.n = 0;
- _2.s = false;
- mdb(Gqe, "GraphInfoHolder", 214);
- bcb(1832, 1, Mne, pFc);
- _2.Nf = function sFc(a, b, c2, d, e, f2) {
- };
- _2.Of = function tFc(a, b) {
- };
- _2.Qf = function vFc(a, b, c2, d) {
- };
- _2._f = function qFc(a, b, c2) {
- c2 && b > 0 ? (RHc(this.a, a[b - 1], a[b]), void 0) : !c2 && b < a.length - 1 ? (RHc(this.a, a[b], a[b + 1]), void 0) : THc(this.a, a[b], c2 ? (Ucd(), Tcd) : (Ucd(), zcd));
- return mFc(this, a, b, c2);
- };
- _2.Mf = function rFc() {
- this.d = KC(WD, oje, 25, this.c, 15, 1);
- this.a = new dIc(this.d);
- };
- _2.Pf = function uFc(a, b, c2) {
- var d;
- d = c2[a][b];
- this.c += d.j.c.length;
- };
- _2.c = 0;
- mdb(Gqe, "GreedyPortDistributor", 1832);
- bcb(1401, 1, Bqe, CFc);
- _2.Yf = function DFc(a) {
- return zFc(BD(a, 37));
- };
- _2.pf = function EFc(a, b) {
- BFc(BD(a, 37), b);
- };
- var xFc;
- mdb(Gqe, "InteractiveCrossingMinimizer", 1401);
- bcb(1402, 1, Dke, GFc);
- _2.ue = function HFc(a, b) {
- return FFc(this, BD(a, 10), BD(b, 10));
- };
- _2.Fb = function IFc(a) {
- return this === a;
- };
- _2.ve = function JFc() {
- return new tpb(this);
- };
- mdb(Gqe, "InteractiveCrossingMinimizer/1", 1402);
- bcb(507, 1, { 507: 1, 123: 1, 51: 1 }, fGc);
- _2.Yf = function gGc(a) {
- var b;
- return BD(a, 37), b = k3c(KFc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b;
- };
- _2.pf = function hGc(a, b) {
- YFc(this, BD(a, 37), b);
- };
- _2.e = 0;
- var KFc;
- mdb(Gqe, "LayerSweepCrossingMinimizer", 507);
- bcb(1398, 1, qie, iGc);
- _2.td = function jGc(a) {
- MFc(this.a, BD(a, 214));
- };
- mdb(Gqe, "LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type", 1398);
- bcb(1399, 1, qie, kGc);
- _2.td = function lGc(a) {
- VFc(this.a, BD(a, 214));
- };
- mdb(Gqe, "LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type", 1399);
- bcb(1400, 1, qie, mGc);
- _2.td = function nGc(a) {
- XFc(this.a, BD(a, 214));
- };
- mdb(Gqe, "LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type", 1400);
- bcb(454, 22, { 3: 1, 35: 1, 22: 1, 454: 1 }, sGc);
- var oGc, pGc, qGc;
- var PX = ndb(Gqe, "LayerSweepCrossingMinimizer/CrossMinType", 454, CI, uGc, tGc);
- var vGc;
- bcb(1397, 1, Oie, xGc);
- _2.Mb = function yGc(a) {
- return LFc(), BD(a, 29).a.c.length == 0;
- };
- mdb(Gqe, "LayerSweepCrossingMinimizer/lambda$0$Type", 1397);
- bcb(1799, 1, Mne, BGc);
- _2.Mf = function CGc() {
- };
- _2.Nf = function DGc(a, b, c2, d, e, f2) {
- };
- _2.Qf = function GGc(a, b, c2, d) {
- };
- _2.Of = function EGc(a, b) {
- b[a][0].c.p = a;
- this.b[a] = KC(SX, { 3: 1, 4: 1, 5: 1, 1944: 1 }, 659, b[a].length, 0, 1);
- };
- _2.Pf = function FGc(a, b, c2) {
- var d;
- d = c2[a][b];
- d.p = b;
- NC(this.b[a], b, new HGc());
- };
- mdb(Gqe, "LayerSweepTypeDecider", 1799);
- bcb(659, 1, { 659: 1 }, HGc);
- _2.Ib = function IGc() {
- return "NodeInfo [connectedEdges=" + this.a + ", hierarchicalInfluence=" + this.b + ", randomInfluence=" + this.c + "]";
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- var SX = mdb(Gqe, "LayerSweepTypeDecider/NodeInfo", 659);
- bcb(1800, 1, Vke, JGc);
- _2.Lb = function KGc(a) {
- return a1b(new b1b(BD(a, 11).b));
- };
- _2.Fb = function LGc(a) {
- return this === a;
- };
- _2.Mb = function MGc(a) {
- return a1b(new b1b(BD(a, 11).b));
- };
- mdb(Gqe, "LayerSweepTypeDecider/lambda$0$Type", 1800);
- bcb(1801, 1, Vke, NGc);
- _2.Lb = function OGc(a) {
- return a1b(new b1b(BD(a, 11).b));
- };
- _2.Fb = function PGc(a) {
- return this === a;
- };
- _2.Mb = function QGc(a) {
- return a1b(new b1b(BD(a, 11).b));
- };
- mdb(Gqe, "LayerSweepTypeDecider/lambda$1$Type", 1801);
- bcb(1833, 402, Eqe, RGc);
- _2.$f = function SGc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l;
- j = this.g;
- switch (c2.g) {
- case 1: {
- d = 0;
- e = 0;
- for (i3 = new olb(a.j); i3.a < i3.c.c.length; ) {
- g = BD(mlb(i3), 11);
- if (g.e.c.length != 0) {
- ++d;
- g.j == (Ucd(), Acd) && ++e;
- }
- }
- f2 = b + e;
- l = b + d;
- for (h = W_b(a, (KAc(), HAc)).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 11);
- if (g.j == (Ucd(), Acd)) {
- j[g.p] = f2;
- --f2;
- } else {
- j[g.p] = l;
- --l;
- }
+ }
+ var rotate = /* @__PURE__ */ __name(function rotate2(x5, y5) {
+ x5 = x5 - xo;
+ y5 = y5 - yo;
+ return {
+ x: x5 * cos3 - y5 * sin3 + xo,
+ y: x5 * sin3 + y5 * cos3 + yo
+ };
+ }, "rotate");
+ var px1y1 = rotate(lx1, ly1);
+ var px1y2 = rotate(lx1, ly2);
+ var px2y1 = rotate(lx2, ly1);
+ var px2y2 = rotate(lx2, ly2);
+ lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
+ lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
+ ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
+ ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
+ }
+ var bbPrefixRot = bbPrefix + "Rot";
+ var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};
+ bbRot.x1 = lx1;
+ bbRot.y1 = ly1;
+ bbRot.x2 = lx2;
+ bbRot.y2 = ly2;
+ bbRot.w = lx2 - lx1;
+ bbRot.h = ly2 - ly1;
+ updateBounds(bounds4, lx1, ly1, lx2, ly2);
+ updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);
+ }
+ return bounds4;
+ }, "updateBoundsFromLabel");
+ updateBoundsFromOutline = /* @__PURE__ */ __name(function updateBoundsFromOutline2(bounds4, ele) {
+ if (ele.cy().headless()) {
+ return;
+ }
+ var outlineOpacity = ele.pstyle("outline-opacity").value;
+ var outlineWidth = ele.pstyle("outline-width").value;
+ if (outlineOpacity > 0 && outlineWidth > 0) {
+ var outlineOffset = ele.pstyle("outline-offset").value;
+ var nodeShape = ele.pstyle("shape").value;
+ var outlineSize = outlineWidth + outlineOffset;
+ var scaleX = (bounds4.w + outlineSize * 2) / bounds4.w;
+ var scaleY = (bounds4.h + outlineSize * 2) / bounds4.h;
+ var xOffset = 0;
+ var yOffset = 0;
+ if (["diamond", "pentagon", "round-triangle"].includes(nodeShape)) {
+ scaleX = (bounds4.w + outlineSize * 2.4) / bounds4.w;
+ yOffset = -outlineSize / 3.6;
+ } else if (["concave-hexagon", "rhomboid", "right-rhomboid"].includes(nodeShape)) {
+ scaleX = (bounds4.w + outlineSize * 2.4) / bounds4.w;
+ } else if (nodeShape === "star") {
+ scaleX = (bounds4.w + outlineSize * 2.8) / bounds4.w;
+ scaleY = (bounds4.h + outlineSize * 2.6) / bounds4.h;
+ yOffset = -outlineSize / 3.8;
+ } else if (nodeShape === "triangle") {
+ scaleX = (bounds4.w + outlineSize * 2.8) / bounds4.w;
+ scaleY = (bounds4.h + outlineSize * 2.4) / bounds4.h;
+ yOffset = -outlineSize / 1.4;
+ } else if (nodeShape === "vee") {
+ scaleX = (bounds4.w + outlineSize * 4.4) / bounds4.w;
+ scaleY = (bounds4.h + outlineSize * 3.8) / bounds4.h;
+ yOffset = -outlineSize * 0.5;
+ }
+ var hDelta = bounds4.h * scaleY - bounds4.h;
+ var wDelta = bounds4.w * scaleX - bounds4.w;
+ expandBoundingBoxSides(bounds4, [Math.ceil(hDelta / 2), Math.ceil(wDelta / 2)]);
+ if (xOffset != 0 || yOffset !== 0) {
+ var oBounds = shiftBoundingBox(bounds4, xOffset, yOffset);
+ updateBoundingBox(bounds4, oBounds);
+ }
+ }
+ }, "updateBoundsFromOutline");
+ boundingBoxImpl = /* @__PURE__ */ __name(function boundingBoxImpl2(ele, options3) {
+ var cy = ele._private.cy;
+ var styleEnabled2 = cy.styleEnabled();
+ var headless2 = cy.headless();
+ var bounds4 = makeBoundingBox();
+ var _p = ele._private;
+ var isNode2 = ele.isNode();
+ var isEdge2 = ele.isEdge();
+ var ex1, ex2, ey1, ey2;
+ var x5, y5;
+ var rstyle = _p.rstyle;
+ var manualExpansion = isNode2 && styleEnabled2 ? ele.pstyle("bounds-expansion").pfValue : [0];
+ var isDisplayed = /* @__PURE__ */ __name(function isDisplayed2(ele2) {
+ return ele2.pstyle("display").value !== "none";
+ }, "isDisplayed");
+ var displayed = !styleEnabled2 || isDisplayed(ele) && (!isEdge2 || isDisplayed(ele.source()) && isDisplayed(ele.target()));
+ if (displayed) {
+ var overlayOpacity = 0;
+ var overlayPadding = 0;
+ if (styleEnabled2 && options3.includeOverlays) {
+ overlayOpacity = ele.pstyle("overlay-opacity").value;
+ if (overlayOpacity !== 0) {
+ overlayPadding = ele.pstyle("overlay-padding").value;
+ }
+ }
+ var underlayOpacity = 0;
+ var underlayPadding = 0;
+ if (styleEnabled2 && options3.includeUnderlays) {
+ underlayOpacity = ele.pstyle("underlay-opacity").value;
+ if (underlayOpacity !== 0) {
+ underlayPadding = ele.pstyle("underlay-padding").value;
+ }
+ }
+ var padding3 = Math.max(overlayPadding, underlayPadding);
+ var w3 = 0;
+ var wHalf = 0;
+ if (styleEnabled2) {
+ w3 = ele.pstyle("width").pfValue;
+ wHalf = w3 / 2;
+ }
+ if (isNode2 && options3.includeNodes) {
+ var pos = ele.position();
+ x5 = pos.x;
+ y5 = pos.y;
+ var _w = ele.outerWidth();
+ var halfW = _w / 2;
+ var h2 = ele.outerHeight();
+ var halfH = h2 / 2;
+ ex1 = x5 - halfW;
+ ex2 = x5 + halfW;
+ ey1 = y5 - halfH;
+ ey2 = y5 + halfH;
+ updateBounds(bounds4, ex1, ey1, ex2, ey2);
+ if (styleEnabled2 && options3.includeOutlines) {
+ updateBoundsFromOutline(bounds4, ele);
+ }
+ } else if (isEdge2 && options3.includeEdges) {
+ if (styleEnabled2 && !headless2) {
+ var curveStyle = ele.pstyle("curve-style").strValue;
+ ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);
+ ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);
+ ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);
+ ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);
+ ex1 -= wHalf;
+ ex2 += wHalf;
+ ey1 -= wHalf;
+ ey2 += wHalf;
+ updateBounds(bounds4, ex1, ey1, ex2, ey2);
+ if (curveStyle === "haystack") {
+ var hpts = rstyle.haystackPts;
+ if (hpts && hpts.length === 2) {
+ ex1 = hpts[0].x;
+ ey1 = hpts[0].y;
+ ex2 = hpts[1].x;
+ ey2 = hpts[1].y;
+ if (ex1 > ex2) {
+ var temp = ex1;
+ ex1 = ex2;
+ ex2 = temp;
}
- return d;
- }
- case 2: {
- k = 0;
- for (h = W_b(a, (KAc(), IAc)).Kc(); h.Ob(); ) {
- g = BD(h.Pb(), 11);
- ++k;
- j[g.p] = b + k;
+ if (ey1 > ey2) {
+ var _temp = ey1;
+ ey1 = ey2;
+ ey2 = _temp;
}
- return k;
+ updateBounds(bounds4, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);
}
- default:
- throw vbb(new Vdb());
- }
- };
- mdb(Gqe, "LayerTotalPortDistributor", 1833);
- bcb(660, 817, { 660: 1, 225: 1 }, XGc);
- _2.ag = function ZGc(a, b, c2, d) {
- if (c2) {
- rEc(this, a);
- } else {
- oEc(this, a, d);
- pEc(this, a, b);
- }
- if (a.c.length > 1) {
- Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, this) : (mmb(), Okb(a, this.d));
- Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), Awc))) || PEc(this.e, a);
- }
- };
- mdb(Gqe, "ModelOrderBarycenterHeuristic", 660);
- bcb(1803, 1, Dke, $Gc);
- _2.ue = function _Gc(a, b) {
- return VGc(this.a, BD(a, 10), BD(b, 10));
- };
- _2.Fb = function aHc(a) {
- return this === a;
- };
- _2.ve = function bHc() {
- return new tpb(this);
- };
- mdb(Gqe, "ModelOrderBarycenterHeuristic/lambda$0$Type", 1803);
- bcb(1403, 1, Bqe, fHc);
- _2.Yf = function gHc(a) {
- var b;
- return BD(a, 37), b = k3c(cHc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b;
- };
- _2.pf = function hHc(a, b) {
- eHc((BD(a, 37), b));
- };
- var cHc;
- mdb(Gqe, "NoCrossingMinimizer", 1403);
- bcb(796, 402, Eqe, iHc);
- _2.$f = function jHc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n;
- l = this.g;
- switch (c2.g) {
- case 1: {
- e = 0;
- f2 = 0;
- for (k = new olb(a.j); k.a < k.c.c.length; ) {
- i3 = BD(mlb(k), 11);
- if (i3.e.c.length != 0) {
- ++e;
- i3.j == (Ucd(), Acd) && ++f2;
- }
- }
- d = 1 / (e + 1);
- g = b + f2 * d;
- n = b + 1 - d;
- for (j = W_b(a, (KAc(), HAc)).Kc(); j.Ob(); ) {
- i3 = BD(j.Pb(), 11);
- if (i3.j == (Ucd(), Acd)) {
- l[i3.p] = g;
- g -= d;
- } else {
- l[i3.p] = n;
- n -= d;
- }
- }
- break;
+ } else if (curveStyle === "bezier" || curveStyle === "unbundled-bezier" || curveStyle.endsWith("segments") || curveStyle.endsWith("taxi")) {
+ var pts2;
+ switch (curveStyle) {
+ case "bezier":
+ case "unbundled-bezier":
+ pts2 = rstyle.bezierPts;
+ break;
+ case "segments":
+ case "taxi":
+ case "round-segments":
+ case "round-taxi":
+ pts2 = rstyle.linePts;
+ break;
}
- case 2: {
- h = 0;
- for (k = new olb(a.j); k.a < k.c.c.length; ) {
- i3 = BD(mlb(k), 11);
- i3.g.c.length == 0 || ++h;
- }
- d = 1 / (h + 1);
- m = b + d;
- for (j = W_b(a, (KAc(), IAc)).Kc(); j.Ob(); ) {
- i3 = BD(j.Pb(), 11);
- l[i3.p] = m;
- m += d;
+ if (pts2 != null) {
+ for (var j2 = 0; j2 < pts2.length; j2++) {
+ var pt = pts2[j2];
+ ex1 = pt.x - wHalf;
+ ex2 = pt.x + wHalf;
+ ey1 = pt.y - wHalf;
+ ey2 = pt.y + wHalf;
+ updateBounds(bounds4, ex1, ey1, ex2, ey2);
}
- break;
- }
- default:
- throw vbb(new Wdb("Port type is undefined"));
- }
- return 1;
- };
- mdb(Gqe, "NodeRelativePortDistributor", 796);
- bcb(807, 1, {}, nHc, oHc);
- mdb(Gqe, "SweepCopy", 807);
- bcb(1798, 1, Mne, rHc);
- _2.Of = function uHc(a, b) {
- };
- _2.Mf = function sHc() {
- var a;
- a = KC(WD, oje, 25, this.f, 15, 1);
- this.d = new LIc(a);
- this.a = new dIc(a);
- };
- _2.Nf = function tHc(a, b, c2, d, e, f2) {
- var g;
- g = BD(Ikb(f2[a][b].j, c2), 11);
- e.c == g && e.c.i.c == e.d.i.c && ++this.e[a];
- };
- _2.Pf = function vHc(a, b, c2) {
- var d;
- d = c2[a][b];
- this.c[a] = this.c[a] | d.k == (j0b(), i0b);
- };
- _2.Qf = function wHc(a, b, c2, d) {
- var e;
- e = BD(Ikb(d[a][b].j, c2), 11);
- e.p = this.f++;
- e.g.c.length + e.e.c.length > 1 && (e.j == (Ucd(), zcd) ? this.b[a] = true : e.j == Tcd && a > 0 && (this.b[a - 1] = true));
- };
- _2.f = 0;
- mdb(Lne, "AllCrossingsCounter", 1798);
- bcb(587, 1, {}, BHc);
- _2.b = 0;
- _2.d = 0;
- mdb(Lne, "BinaryIndexedTree", 587);
- bcb(524, 1, {}, dIc);
- var DHc, EHc;
- mdb(Lne, "CrossingsCounter", 524);
- bcb(1906, 1, Dke, hIc);
- _2.ue = function iIc(a, b) {
- return YHc(this.a, BD(a, 11), BD(b, 11));
- };
- _2.Fb = function jIc(a) {
- return this === a;
- };
- _2.ve = function kIc() {
- return new tpb(this);
- };
- mdb(Lne, "CrossingsCounter/lambda$0$Type", 1906);
- bcb(1907, 1, Dke, lIc);
- _2.ue = function mIc(a, b) {
- return ZHc(this.a, BD(a, 11), BD(b, 11));
- };
- _2.Fb = function nIc(a) {
- return this === a;
- };
- _2.ve = function oIc() {
- return new tpb(this);
- };
- mdb(Lne, "CrossingsCounter/lambda$1$Type", 1907);
- bcb(1908, 1, Dke, pIc);
- _2.ue = function qIc(a, b) {
- return $Hc(this.a, BD(a, 11), BD(b, 11));
- };
- _2.Fb = function rIc(a) {
- return this === a;
- };
- _2.ve = function sIc() {
- return new tpb(this);
- };
- mdb(Lne, "CrossingsCounter/lambda$2$Type", 1908);
- bcb(1909, 1, Dke, tIc);
- _2.ue = function uIc(a, b) {
- return _Hc(this.a, BD(a, 11), BD(b, 11));
- };
- _2.Fb = function vIc(a) {
- return this === a;
- };
- _2.ve = function wIc() {
- return new tpb(this);
- };
- mdb(Lne, "CrossingsCounter/lambda$3$Type", 1909);
- bcb(1910, 1, qie, xIc);
- _2.td = function yIc(a) {
- eIc(this.a, BD(a, 11));
- };
- mdb(Lne, "CrossingsCounter/lambda$4$Type", 1910);
- bcb(1911, 1, Oie, zIc);
- _2.Mb = function AIc(a) {
- return fIc(this.a, BD(a, 11));
- };
- mdb(Lne, "CrossingsCounter/lambda$5$Type", 1911);
- bcb(1912, 1, qie, CIc);
- _2.td = function DIc(a) {
- BIc(this, a);
- };
- mdb(Lne, "CrossingsCounter/lambda$6$Type", 1912);
- bcb(1913, 1, qie, EIc);
- _2.td = function FIc(a) {
- var b;
- FHc();
- Wjb(this.b, (b = this.a, BD(a, 11), b));
- };
- mdb(Lne, "CrossingsCounter/lambda$7$Type", 1913);
- bcb(826, 1, Vke, GIc);
- _2.Lb = function HIc(a) {
- return FHc(), wNb(BD(a, 11), (wtc(), gtc));
- };
- _2.Fb = function IIc(a) {
- return this === a;
- };
- _2.Mb = function JIc(a) {
- return FHc(), wNb(BD(a, 11), (wtc(), gtc));
- };
- mdb(Lne, "CrossingsCounter/lambda$8$Type", 826);
- bcb(1905, 1, {}, LIc);
- mdb(Lne, "HyperedgeCrossingsCounter", 1905);
- bcb(467, 1, { 35: 1, 467: 1 }, NIc);
- _2.wd = function OIc(a) {
- return MIc(this, BD(a, 467));
- };
- _2.b = 0;
- _2.c = 0;
- _2.e = 0;
- _2.f = 0;
- var oY = mdb(Lne, "HyperedgeCrossingsCounter/Hyperedge", 467);
- bcb(362, 1, { 35: 1, 362: 1 }, QIc);
- _2.wd = function RIc(a) {
- return PIc(this, BD(a, 362));
- };
- _2.b = 0;
- _2.c = 0;
- var nY = mdb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner", 362);
- bcb(523, 22, { 3: 1, 35: 1, 22: 1, 523: 1 }, VIc);
- var SIc, TIc;
- var mY = ndb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner/Type", 523, CI, XIc, WIc);
- var YIc;
- bcb(1405, 1, Bqe, dJc);
- _2.Yf = function eJc(a) {
- return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? _Ic : null;
- };
- _2.pf = function fJc(a, b) {
- cJc(this, BD(a, 37), b);
- };
- var _Ic;
- mdb(Hqe, "InteractiveNodePlacer", 1405);
- bcb(1406, 1, Bqe, tJc);
- _2.Yf = function uJc(a) {
- return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? gJc : null;
- };
- _2.pf = function vJc(a, b) {
- rJc(this, BD(a, 37), b);
- };
- var gJc, hJc, iJc;
- mdb(Hqe, "LinearSegmentsNodePlacer", 1406);
- bcb(257, 1, { 35: 1, 257: 1 }, zJc);
- _2.wd = function AJc(a) {
- return wJc(this, BD(a, 257));
- };
- _2.Fb = function BJc(a) {
- var b;
- if (JD(a, 257)) {
- b = BD(a, 257);
- return this.b == b.b;
- }
- return false;
- };
- _2.Hb = function CJc() {
- return this.b;
- };
- _2.Ib = function DJc() {
- return "ls" + Fe(this.e);
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = -1;
- _2.d = -1;
- _2.g = 0;
- var sY = mdb(Hqe, "LinearSegmentsNodePlacer/LinearSegment", 257);
- bcb(1408, 1, Bqe, $Jc);
- _2.Yf = function _Jc(a) {
- return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? EJc : null;
- };
- _2.pf = function hKc(a, b) {
- WJc(this, BD(a, 37), b);
- };
- _2.b = 0;
- _2.g = 0;
- var EJc;
- mdb(Hqe, "NetworkSimplexPlacer", 1408);
- bcb(1427, 1, Dke, iKc);
- _2.ue = function jKc(a, b) {
- return beb(BD(a, 19).a, BD(b, 19).a);
- };
- _2.Fb = function kKc(a) {
- return this === a;
- };
- _2.ve = function lKc() {
- return new tpb(this);
- };
- mdb(Hqe, "NetworkSimplexPlacer/0methodref$compare$Type", 1427);
- bcb(1429, 1, Dke, mKc);
- _2.ue = function nKc(a, b) {
- return beb(BD(a, 19).a, BD(b, 19).a);
- };
- _2.Fb = function oKc(a) {
- return this === a;
- };
- _2.ve = function pKc() {
- return new tpb(this);
- };
- mdb(Hqe, "NetworkSimplexPlacer/1methodref$compare$Type", 1429);
- bcb(649, 1, { 649: 1 }, qKc);
- var wY = mdb(Hqe, "NetworkSimplexPlacer/EdgeRep", 649);
- bcb(401, 1, { 401: 1 }, rKc);
- _2.b = false;
- var xY = mdb(Hqe, "NetworkSimplexPlacer/NodeRep", 401);
- bcb(508, 12, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 12: 1, 14: 1, 15: 1, 54: 1, 508: 1 }, vKc);
- mdb(Hqe, "NetworkSimplexPlacer/Path", 508);
- bcb(1409, 1, {}, wKc);
- _2.Kb = function xKc(a) {
- return BD(a, 17).d.i.k;
- };
- mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$0$Type", 1409);
- bcb(1410, 1, Oie, yKc);
- _2.Mb = function zKc(a) {
- return BD(a, 267) == (j0b(), g0b);
- };
- mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$1$Type", 1410);
- bcb(1411, 1, {}, AKc);
- _2.Kb = function BKc(a) {
- return BD(a, 17).d.i;
- };
- mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$2$Type", 1411);
- bcb(1412, 1, Oie, CKc);
- _2.Mb = function DKc(a) {
- return eLc(Lzc(BD(a, 10)));
- };
- mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$3$Type", 1412);
- bcb(1413, 1, Oie, EKc);
- _2.Mb = function FKc(a) {
- return dKc(BD(a, 11));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$0$Type", 1413);
- bcb(1414, 1, qie, GKc);
- _2.td = function HKc(a) {
- LJc(this.a, this.b, BD(a, 11));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$1$Type", 1414);
- bcb(1423, 1, qie, IKc);
- _2.td = function JKc(a) {
- MJc(this.a, BD(a, 17));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$10$Type", 1423);
- bcb(1424, 1, {}, KKc);
- _2.Kb = function LKc(a) {
- return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$11$Type", 1424);
- bcb(1425, 1, qie, MKc);
- _2.td = function NKc(a) {
- NJc(this.a, BD(a, 10));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$12$Type", 1425);
- bcb(1426, 1, {}, OKc);
- _2.Kb = function PKc(a) {
- return FJc(), meb(BD(a, 121).e);
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$13$Type", 1426);
- bcb(1428, 1, {}, QKc);
- _2.Kb = function RKc(a) {
- return FJc(), meb(BD(a, 121).e);
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$15$Type", 1428);
- bcb(1430, 1, Oie, SKc);
- _2.Mb = function TKc(a) {
- return FJc(), BD(a, 401).c.k == (j0b(), h0b);
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$17$Type", 1430);
- bcb(1431, 1, Oie, UKc);
- _2.Mb = function VKc(a) {
- return FJc(), BD(a, 401).c.j.c.length > 1;
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$18$Type", 1431);
- bcb(1432, 1, qie, WKc);
- _2.td = function XKc(a) {
- eKc(this.c, this.b, this.d, this.a, BD(a, 401));
- };
- _2.c = 0;
- _2.d = 0;
- mdb(Hqe, "NetworkSimplexPlacer/lambda$19$Type", 1432);
- bcb(1415, 1, {}, YKc);
- _2.Kb = function ZKc(a) {
- return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$2$Type", 1415);
- bcb(1433, 1, qie, $Kc);
- _2.td = function _Kc(a) {
- fKc(this.a, BD(a, 11));
- };
- _2.a = 0;
- mdb(Hqe, "NetworkSimplexPlacer/lambda$20$Type", 1433);
- bcb(1434, 1, {}, aLc);
- _2.Kb = function bLc(a) {
- return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$21$Type", 1434);
- bcb(1435, 1, qie, cLc);
- _2.td = function dLc(a) {
- OJc(this.a, BD(a, 10));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$22$Type", 1435);
- bcb(1436, 1, Oie, fLc);
- _2.Mb = function gLc(a) {
- return eLc(a);
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$23$Type", 1436);
- bcb(1437, 1, {}, hLc);
- _2.Kb = function iLc(a) {
- return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$24$Type", 1437);
- bcb(1438, 1, Oie, jLc);
- _2.Mb = function kLc(a) {
- return PJc(this.a, BD(a, 10));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$25$Type", 1438);
- bcb(1439, 1, qie, lLc);
- _2.td = function mLc(a) {
- QJc(this.a, this.b, BD(a, 10));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$26$Type", 1439);
- bcb(1440, 1, Oie, nLc);
- _2.Mb = function oLc(a) {
- return FJc(), !OZb(BD(a, 17));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$27$Type", 1440);
- bcb(1441, 1, Oie, pLc);
- _2.Mb = function qLc(a) {
- return FJc(), !OZb(BD(a, 17));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$28$Type", 1441);
- bcb(1442, 1, {}, rLc);
- _2.Ce = function sLc(a, b) {
- return RJc(this.a, BD(a, 29), BD(b, 29));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$29$Type", 1442);
- bcb(1416, 1, {}, tLc);
- _2.Kb = function uLc(a) {
- return FJc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$3$Type", 1416);
- bcb(1417, 1, Oie, vLc);
- _2.Mb = function wLc(a) {
- return FJc(), cKc(BD(a, 17));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$4$Type", 1417);
- bcb(1418, 1, qie, xLc);
- _2.td = function yLc(a) {
- XJc(this.a, BD(a, 17));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$5$Type", 1418);
- bcb(1419, 1, {}, zLc);
- _2.Kb = function ALc(a) {
- return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$6$Type", 1419);
- bcb(1420, 1, Oie, BLc);
- _2.Mb = function CLc(a) {
- return FJc(), BD(a, 10).k == (j0b(), h0b);
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$7$Type", 1420);
- bcb(1421, 1, {}, DLc);
- _2.Kb = function ELc(a) {
- return FJc(), new YAb(null, new Lub(new Sr(ur(O_b(BD(a, 10)).a.Kc(), new Sq()))));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$8$Type", 1421);
- bcb(1422, 1, Oie, FLc);
- _2.Mb = function GLc(a) {
- return FJc(), NZb(BD(a, 17));
- };
- mdb(Hqe, "NetworkSimplexPlacer/lambda$9$Type", 1422);
- bcb(1404, 1, Bqe, KLc);
- _2.Yf = function LLc(a) {
- return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? HLc : null;
- };
- _2.pf = function MLc(a, b) {
- JLc(BD(a, 37), b);
- };
- var HLc;
- mdb(Hqe, "SimpleNodePlacer", 1404);
- bcb(180, 1, { 180: 1 }, ULc);
- _2.Ib = function VLc() {
- var a;
- a = "";
- this.c == (YLc(), XLc) ? a += kle : this.c == WLc && (a += jle);
- this.o == (eMc(), cMc) ? a += vle : this.o == dMc ? a += "UP" : a += "BALANCED";
- return a;
- };
- mdb(Kqe, "BKAlignedLayout", 180);
- bcb(516, 22, { 3: 1, 35: 1, 22: 1, 516: 1 }, ZLc);
- var WLc, XLc;
- var fZ = ndb(Kqe, "BKAlignedLayout/HDirection", 516, CI, _Lc, $Lc);
- var aMc;
- bcb(515, 22, { 3: 1, 35: 1, 22: 1, 515: 1 }, fMc);
- var cMc, dMc;
- var gZ = ndb(Kqe, "BKAlignedLayout/VDirection", 515, CI, hMc, gMc);
- var iMc;
- bcb(1634, 1, {}, mMc);
- mdb(Kqe, "BKAligner", 1634);
- bcb(1637, 1, {}, rMc);
- mdb(Kqe, "BKCompactor", 1637);
- bcb(654, 1, { 654: 1 }, sMc);
- _2.a = 0;
- mdb(Kqe, "BKCompactor/ClassEdge", 654);
- bcb(458, 1, { 458: 1 }, uMc);
- _2.a = null;
- _2.b = 0;
- mdb(Kqe, "BKCompactor/ClassNode", 458);
- bcb(1407, 1, Bqe, CMc);
- _2.Yf = function GMc(a) {
- return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? vMc : null;
- };
- _2.pf = function HMc(a, b) {
- BMc(this, BD(a, 37), b);
- };
- _2.d = false;
- var vMc;
- mdb(Kqe, "BKNodePlacer", 1407);
- bcb(1635, 1, {}, JMc);
- _2.d = 0;
- mdb(Kqe, "NeighborhoodInformation", 1635);
- bcb(1636, 1, Dke, OMc);
- _2.ue = function PMc(a, b) {
- return NMc(this, BD(a, 46), BD(b, 46));
- };
- _2.Fb = function QMc(a) {
- return this === a;
- };
- _2.ve = function RMc() {
- return new tpb(this);
- };
- mdb(Kqe, "NeighborhoodInformation/NeighborComparator", 1636);
- bcb(808, 1, {});
- mdb(Kqe, "ThresholdStrategy", 808);
- bcb(1763, 808, {}, WMc);
- _2.bg = function XMc(a, b, c2) {
- return this.a.o == (eMc(), dMc) ? Pje : Qje;
- };
- _2.cg = function YMc() {
- };
- mdb(Kqe, "ThresholdStrategy/NullThresholdStrategy", 1763);
- bcb(579, 1, { 579: 1 }, ZMc);
- _2.c = false;
- _2.d = false;
- mdb(Kqe, "ThresholdStrategy/Postprocessable", 579);
- bcb(1764, 808, {}, bNc);
- _2.bg = function cNc(a, b, c2) {
- var d, e, f2;
- e = b == c2;
- d = this.a.a[c2.p] == b;
- if (!(e || d)) {
- return a;
- }
- f2 = a;
- if (this.a.c == (YLc(), XLc)) {
- e && (f2 = $Mc(this, b, true));
- !isNaN(f2) && !isFinite(f2) && d && (f2 = $Mc(this, c2, false));
- } else {
- e && (f2 = $Mc(this, b, true));
- !isNaN(f2) && !isFinite(f2) && d && (f2 = $Mc(this, c2, false));
- }
- return f2;
- };
- _2.cg = function dNc() {
- var a, b, c2, d, e;
- while (this.d.b != 0) {
- e = BD(Ksb(this.d), 579);
- d = _Mc(this, e);
- if (!d.a) {
- continue;
- }
- a = d.a;
- c2 = Ccb(this.a.f[this.a.g[e.b.p].p]);
- if (!c2 && !OZb(a) && a.c.i.c == a.d.i.c) {
- continue;
}
- b = aNc(this, e);
- b || swb(this.e, e);
}
- while (this.e.a.c.length != 0) {
- aNc(this, BD(rwb(this.e), 579));
+ } else {
+ var n1 = ele.source();
+ var n1pos = n1.position();
+ var n2 = ele.target();
+ var n2pos = n2.position();
+ ex1 = n1pos.x;
+ ex2 = n2pos.x;
+ ey1 = n1pos.y;
+ ey2 = n2pos.y;
+ if (ex1 > ex2) {
+ var _temp2 = ex1;
+ ex1 = ex2;
+ ex2 = _temp2;
}
- };
- mdb(Kqe, "ThresholdStrategy/SimpleThresholdStrategy", 1764);
- bcb(635, 1, { 635: 1, 246: 1, 234: 1 }, hNc);
- _2.Kf = function jNc() {
- return gNc(this);
- };
- _2.Xf = function iNc() {
- return gNc(this);
- };
- var eNc;
- mdb(Lqe, "EdgeRouterFactory", 635);
- bcb(1458, 1, Bqe, wNc);
- _2.Yf = function xNc(a) {
- return uNc(BD(a, 37));
- };
- _2.pf = function yNc(a, b) {
- vNc(BD(a, 37), b);
- };
- var lNc, mNc, nNc, oNc, pNc, qNc, rNc, sNc;
- mdb(Lqe, "OrthogonalEdgeRouter", 1458);
- bcb(1451, 1, Bqe, NNc);
- _2.Yf = function ONc(a) {
- return INc(BD(a, 37));
- };
- _2.pf = function PNc(a, b) {
- KNc(this, BD(a, 37), b);
- };
- var zNc, ANc, BNc, CNc, DNc, ENc;
- mdb(Lqe, "PolylineEdgeRouter", 1451);
- bcb(1452, 1, Vke, RNc);
- _2.Lb = function SNc(a) {
- return QNc(BD(a, 10));
- };
- _2.Fb = function TNc(a) {
- return this === a;
- };
- _2.Mb = function UNc(a) {
- return QNc(BD(a, 10));
- };
- mdb(Lqe, "PolylineEdgeRouter/1", 1452);
- bcb(1809, 1, Oie, ZNc);
- _2.Mb = function $Nc(a) {
- return BD(a, 129).c == (HOc(), FOc);
- };
- mdb(Mqe, "HyperEdgeCycleDetector/lambda$0$Type", 1809);
- bcb(1810, 1, {}, _Nc);
- _2.Ge = function aOc(a) {
- return BD(a, 129).d;
- };
- mdb(Mqe, "HyperEdgeCycleDetector/lambda$1$Type", 1810);
- bcb(1811, 1, Oie, bOc);
- _2.Mb = function cOc(a) {
- return BD(a, 129).c == (HOc(), FOc);
- };
- mdb(Mqe, "HyperEdgeCycleDetector/lambda$2$Type", 1811);
- bcb(1812, 1, {}, dOc);
- _2.Ge = function eOc(a) {
- return BD(a, 129).d;
- };
- mdb(Mqe, "HyperEdgeCycleDetector/lambda$3$Type", 1812);
- bcb(1813, 1, {}, fOc);
- _2.Ge = function gOc(a) {
- return BD(a, 129).d;
- };
- mdb(Mqe, "HyperEdgeCycleDetector/lambda$4$Type", 1813);
- bcb(1814, 1, {}, hOc);
- _2.Ge = function iOc(a) {
- return BD(a, 129).d;
- };
- mdb(Mqe, "HyperEdgeCycleDetector/lambda$5$Type", 1814);
- bcb(112, 1, { 35: 1, 112: 1 }, uOc);
- _2.wd = function vOc(a) {
- return kOc(this, BD(a, 112));
- };
- _2.Fb = function wOc(a) {
- var b;
- if (JD(a, 112)) {
- b = BD(a, 112);
- return this.g == b.g;
+ if (ey1 > ey2) {
+ var _temp3 = ey1;
+ ey1 = ey2;
+ ey2 = _temp3;
}
- return false;
- };
- _2.Hb = function xOc() {
- return this.g;
- };
- _2.Ib = function zOc() {
- var a, b, c2, d;
- a = new Wfb("{");
- d = new olb(this.n);
- while (d.a < d.c.c.length) {
- c2 = BD(mlb(d), 11);
- b = P_b(c2.i);
- b == null && (b = "n" + S_b(c2.i));
- a.a += "" + b;
- d.a < d.c.c.length && (a.a += ",", a);
- }
- a.a += "}";
- return a.a;
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = NaN;
- _2.d = 0;
- _2.g = 0;
- _2.i = 0;
- _2.o = 0;
- _2.s = NaN;
- mdb(Mqe, "HyperEdgeSegment", 112);
- bcb(129, 1, { 129: 1 }, DOc);
- _2.Ib = function EOc() {
- return this.a + "->" + this.b + " (" + Yr(this.c) + ")";
- };
- _2.d = 0;
- mdb(Mqe, "HyperEdgeSegmentDependency", 129);
- bcb(520, 22, { 3: 1, 35: 1, 22: 1, 520: 1 }, IOc);
- var FOc, GOc;
- var DZ = ndb(Mqe, "HyperEdgeSegmentDependency/DependencyType", 520, CI, KOc, JOc);
- var LOc;
- bcb(1815, 1, {}, ZOc);
- mdb(Mqe, "HyperEdgeSegmentSplitter", 1815);
- bcb(1816, 1, {}, aPc);
- _2.a = 0;
- _2.b = 0;
- mdb(Mqe, "HyperEdgeSegmentSplitter/AreaRating", 1816);
- bcb(329, 1, { 329: 1 }, bPc);
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- mdb(Mqe, "HyperEdgeSegmentSplitter/FreeArea", 329);
- bcb(1817, 1, Dke, cPc);
- _2.ue = function dPc(a, b) {
- return _Oc(BD(a, 112), BD(b, 112));
- };
- _2.Fb = function ePc(a) {
- return this === a;
- };
- _2.ve = function fPc() {
- return new tpb(this);
- };
- mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$0$Type", 1817);
- bcb(1818, 1, qie, gPc);
- _2.td = function hPc(a) {
- TOc(this.a, this.d, this.c, this.b, BD(a, 112));
- };
- _2.b = 0;
- mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$1$Type", 1818);
- bcb(1819, 1, {}, iPc);
- _2.Kb = function jPc(a) {
- return new YAb(null, new Kub(BD(a, 112).e, 16));
- };
- mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$2$Type", 1819);
- bcb(1820, 1, {}, kPc);
- _2.Kb = function lPc(a) {
- return new YAb(null, new Kub(BD(a, 112).j, 16));
- };
- mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$3$Type", 1820);
- bcb(1821, 1, {}, mPc);
- _2.Fe = function nPc(a) {
- return Edb(ED(a));
- };
- mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$4$Type", 1821);
- bcb(655, 1, {}, tPc);
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- mdb(Mqe, "OrthogonalRoutingGenerator", 655);
- bcb(1638, 1, {}, xPc);
- _2.Kb = function yPc(a) {
- return new YAb(null, new Kub(BD(a, 112).e, 16));
- };
- mdb(Mqe, "OrthogonalRoutingGenerator/lambda$0$Type", 1638);
- bcb(1639, 1, {}, zPc);
- _2.Kb = function APc(a) {
- return new YAb(null, new Kub(BD(a, 112).j, 16));
- };
- mdb(Mqe, "OrthogonalRoutingGenerator/lambda$1$Type", 1639);
- bcb(661, 1, {});
- mdb(Nqe, "BaseRoutingDirectionStrategy", 661);
- bcb(1807, 661, {}, EPc);
- _2.dg = function FPc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- if (!!a.r && !a.q) {
- return;
+ ex1 -= wHalf;
+ ex2 += wHalf;
+ ey1 -= wHalf;
+ ey2 += wHalf;
+ updateBounds(bounds4, ex1, ey1, ex2, ey2);
+ }
+ }
+ if (styleEnabled2 && options3.includeEdges && isEdge2) {
+ updateBoundsFromArrow(bounds4, ele, "mid-source");
+ updateBoundsFromArrow(bounds4, ele, "mid-target");
+ updateBoundsFromArrow(bounds4, ele, "source");
+ updateBoundsFromArrow(bounds4, ele, "target");
+ }
+ if (styleEnabled2) {
+ var ghost = ele.pstyle("ghost").value === "yes";
+ if (ghost) {
+ var gx = ele.pstyle("ghost-offset-x").pfValue;
+ var gy = ele.pstyle("ghost-offset-y").pfValue;
+ updateBounds(bounds4, bounds4.x1 + gx, bounds4.y1 + gy, bounds4.x2 + gx, bounds4.y2 + gy);
+ }
+ }
+ var bbBody = _p.bodyBounds = _p.bodyBounds || {};
+ assignBoundingBox(bbBody, bounds4);
+ expandBoundingBoxSides(bbBody, manualExpansion);
+ expandBoundingBox(bbBody, 1);
+ if (styleEnabled2) {
+ ex1 = bounds4.x1;
+ ex2 = bounds4.x2;
+ ey1 = bounds4.y1;
+ ey2 = bounds4.y2;
+ updateBounds(bounds4, ex1 - padding3, ey1 - padding3, ex2 + padding3, ey2 + padding3);
+ }
+ var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};
+ assignBoundingBox(bbOverlay, bounds4);
+ expandBoundingBoxSides(bbOverlay, manualExpansion);
+ expandBoundingBox(bbOverlay, 1);
+ var bbLabels = _p.labelBounds = _p.labelBounds || {};
+ if (bbLabels.all != null) {
+ clearBoundingBox(bbLabels.all);
+ } else {
+ bbLabels.all = makeBoundingBox();
+ }
+ if (styleEnabled2 && options3.includeLabels) {
+ if (options3.includeMainLabels) {
+ updateBoundsFromLabel(bounds4, ele, null);
+ }
+ if (isEdge2) {
+ if (options3.includeSourceLabels) {
+ updateBoundsFromLabel(bounds4, ele, "source");
}
- k = b + a.o * c2;
- for (j = new olb(a.n); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 11);
- l = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).a;
- for (h = new olb(i3.g); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- if (!OZb(g)) {
- o2 = g.d;
- p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a;
- if ($wnd.Math.abs(l - p) > qme) {
- f2 = k;
- e = a;
- d = new f7c(l, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- m = a.r;
- if (m) {
- n = Edb(ED(Ut(m.e, 0)));
- d = new f7c(n, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- f2 = b + m.o * c2;
- e = m;
- d = new f7c(n, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- }
- d = new f7c(p, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- }
- }
- }
+ if (options3.includeTargetLabels) {
+ updateBoundsFromLabel(bounds4, ele, "target");
}
- };
- _2.eg = function GPc(a) {
- return a.i.n.a + a.n.a + a.a.a;
- };
- _2.fg = function HPc() {
- return Ucd(), Rcd;
- };
- _2.gg = function IPc() {
- return Ucd(), Acd;
- };
- mdb(Nqe, "NorthToSouthRoutingStrategy", 1807);
- bcb(1808, 661, {}, JPc);
- _2.dg = function KPc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- if (!!a.r && !a.q) {
- return;
+ }
+ }
+ }
+ bounds4.x1 = noninf(bounds4.x1);
+ bounds4.y1 = noninf(bounds4.y1);
+ bounds4.x2 = noninf(bounds4.x2);
+ bounds4.y2 = noninf(bounds4.y2);
+ bounds4.w = noninf(bounds4.x2 - bounds4.x1);
+ bounds4.h = noninf(bounds4.y2 - bounds4.y1);
+ if (bounds4.w > 0 && bounds4.h > 0 && displayed) {
+ expandBoundingBoxSides(bounds4, manualExpansion);
+ expandBoundingBox(bounds4, 1);
+ }
+ return bounds4;
+ }, "boundingBoxImpl");
+ getKey = /* @__PURE__ */ __name(function getKey2(opts) {
+ var i2 = 0;
+ var tf = /* @__PURE__ */ __name(function tf2(val) {
+ return (val ? 1 : 0) << i2++;
+ }, "tf");
+ var key = 0;
+ key += tf(opts.incudeNodes);
+ key += tf(opts.includeEdges);
+ key += tf(opts.includeLabels);
+ key += tf(opts.includeMainLabels);
+ key += tf(opts.includeSourceLabels);
+ key += tf(opts.includeTargetLabels);
+ key += tf(opts.includeOverlays);
+ key += tf(opts.includeOutlines);
+ return key;
+ }, "getKey");
+ getBoundingBoxPosKey = /* @__PURE__ */ __name(function getBoundingBoxPosKey2(ele) {
+ if (ele.isEdge()) {
+ var p1 = ele.source().position();
+ var p22 = ele.target().position();
+ var r2 = /* @__PURE__ */ __name(function r3(x5) {
+ return Math.round(x5);
+ }, "r");
+ return hashIntsArray([r2(p1.x), r2(p1.y), r2(p22.x), r2(p22.y)]);
+ } else {
+ return 0;
+ }
+ }, "getBoundingBoxPosKey");
+ cachedBoundingBoxImpl = /* @__PURE__ */ __name(function cachedBoundingBoxImpl2(ele, opts) {
+ var _p = ele._private;
+ var bb;
+ var isEdge2 = ele.isEdge();
+ var key = opts == null ? defBbOptsKey : getKey(opts);
+ var usingDefOpts = key === defBbOptsKey;
+ var currPosKey = getBoundingBoxPosKey(ele);
+ var isPosKeySame = _p.bbCachePosKey === currPosKey;
+ var useCache = opts.useCache && isPosKeySame;
+ var isDirty = /* @__PURE__ */ __name(function isDirty2(ele2) {
+ return ele2._private.bbCache == null || ele2._private.styleDirty;
+ }, "isDirty");
+ var needRecalc = !useCache || isDirty(ele) || isEdge2 && isDirty(ele.source()) || isDirty(ele.target());
+ if (needRecalc) {
+ if (!isPosKeySame) {
+ ele.recalculateRenderedStyle(useCache);
+ }
+ bb = boundingBoxImpl(ele, defBbOpts);
+ _p.bbCache = bb;
+ _p.bbCachePosKey = currPosKey;
+ } else {
+ bb = _p.bbCache;
+ }
+ if (!usingDefOpts) {
+ var isNode2 = ele.isNode();
+ bb = makeBoundingBox();
+ if (opts.includeNodes && isNode2 || opts.includeEdges && !isNode2) {
+ if (opts.includeOverlays) {
+ updateBoundsFromBox(bb, _p.overlayBounds);
+ } else {
+ updateBoundsFromBox(bb, _p.bodyBounds);
+ }
+ }
+ if (opts.includeLabels) {
+ if (opts.includeMainLabels && (!isEdge2 || opts.includeSourceLabels && opts.includeTargetLabels)) {
+ updateBoundsFromBox(bb, _p.labelBounds.all);
+ } else {
+ if (opts.includeMainLabels) {
+ updateBoundsFromBox(bb, _p.labelBounds.mainRot);
}
- k = b - a.o * c2;
- for (j = new olb(a.n); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 11);
- l = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).a;
- for (h = new olb(i3.g); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- if (!OZb(g)) {
- o2 = g.d;
- p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a;
- if ($wnd.Math.abs(l - p) > qme) {
- f2 = k;
- e = a;
- d = new f7c(l, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- m = a.r;
- if (m) {
- n = Edb(ED(Ut(m.e, 0)));
- d = new f7c(n, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- f2 = b - m.o * c2;
- e = m;
- d = new f7c(n, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- }
- d = new f7c(p, f2);
- Dsb(g.a, d);
- BPc(this, g, e, d, false);
- }
- }
- }
+ if (opts.includeSourceLabels) {
+ updateBoundsFromBox(bb, _p.labelBounds.sourceRot);
}
- };
- _2.eg = function LPc(a) {
- return a.i.n.a + a.n.a + a.a.a;
- };
- _2.fg = function MPc() {
- return Ucd(), Acd;
- };
- _2.gg = function NPc() {
- return Ucd(), Rcd;
- };
- mdb(Nqe, "SouthToNorthRoutingStrategy", 1808);
- bcb(1806, 661, {}, OPc);
- _2.dg = function PPc(a, b, c2) {
- var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
- if (!!a.r && !a.q) {
- return;
+ if (opts.includeTargetLabels) {
+ updateBoundsFromBox(bb, _p.labelBounds.targetRot);
}
- k = b + a.o * c2;
- for (j = new olb(a.n); j.a < j.c.c.length; ) {
- i3 = BD(mlb(j), 11);
- l = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).b;
- for (h = new olb(i3.g); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 17);
- if (!OZb(g)) {
- o2 = g.d;
- p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).b;
- if ($wnd.Math.abs(l - p) > qme) {
- f2 = k;
- e = a;
- d = new f7c(f2, l);
- Dsb(g.a, d);
- BPc(this, g, e, d, true);
- m = a.r;
- if (m) {
- n = Edb(ED(Ut(m.e, 0)));
- d = new f7c(f2, n);
- Dsb(g.a, d);
- BPc(this, g, e, d, true);
- f2 = b + m.o * c2;
- e = m;
- d = new f7c(f2, n);
- Dsb(g.a, d);
- BPc(this, g, e, d, true);
- }
- d = new f7c(f2, p);
- Dsb(g.a, d);
- BPc(this, g, e, d, true);
- }
- }
- }
+ }
+ }
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ }
+ return bb;
+ }, "cachedBoundingBoxImpl");
+ defBbOpts = {
+ includeNodes: true,
+ includeEdges: true,
+ includeLabels: true,
+ includeMainLabels: true,
+ includeSourceLabels: true,
+ includeTargetLabels: true,
+ includeOverlays: true,
+ includeUnderlays: true,
+ includeOutlines: true,
+ useCache: true
+ };
+ defBbOptsKey = getKey(defBbOpts);
+ filledBbOpts = defaults$g(defBbOpts);
+ elesfn$b.boundingBox = function(options3) {
+ var bounds4;
+ if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options3 === void 0 || options3.useCache === void 0 || options3.useCache === true)) {
+ if (options3 === void 0) {
+ options3 = defBbOpts;
+ } else {
+ options3 = filledBbOpts(options3);
+ }
+ bounds4 = cachedBoundingBoxImpl(this[0], options3);
+ } else {
+ bounds4 = makeBoundingBox();
+ options3 = options3 || defBbOpts;
+ var opts = filledBbOpts(options3);
+ var eles = this;
+ var cy = eles.cy();
+ var styleEnabled2 = cy.styleEnabled();
+ if (styleEnabled2) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _p = ele._private;
+ var currPosKey = getBoundingBoxPosKey(ele);
+ var isPosKeySame = _p.bbCachePosKey === currPosKey;
+ var useCache = opts.useCache && isPosKeySame && !_p.styleDirty;
+ ele.recalculateRenderedStyle(useCache);
+ }
+ }
+ this.updateCompoundBounds(!options3.useCache);
+ for (var _i = 0; _i < eles.length; _i++) {
+ var _ele = eles[_i];
+ updateBoundsFromBox(bounds4, cachedBoundingBoxImpl(_ele, opts));
+ }
+ }
+ bounds4.x1 = noninf(bounds4.x1);
+ bounds4.y1 = noninf(bounds4.y1);
+ bounds4.x2 = noninf(bounds4.x2);
+ bounds4.y2 = noninf(bounds4.y2);
+ bounds4.w = noninf(bounds4.x2 - bounds4.x1);
+ bounds4.h = noninf(bounds4.y2 - bounds4.y1);
+ return bounds4;
+ };
+ elesfn$b.dirtyBoundingBoxCache = function() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var _p = this[i2]._private;
+ _p.bbCache = null;
+ _p.bbCachePosKey = null;
+ _p.bodyBounds = null;
+ _p.overlayBounds = null;
+ _p.labelBounds.all = null;
+ _p.labelBounds.source = null;
+ _p.labelBounds.target = null;
+ _p.labelBounds.main = null;
+ _p.labelBounds.sourceRot = null;
+ _p.labelBounds.targetRot = null;
+ _p.labelBounds.mainRot = null;
+ _p.arrowBounds.source = null;
+ _p.arrowBounds.target = null;
+ _p.arrowBounds["mid-source"] = null;
+ _p.arrowBounds["mid-target"] = null;
+ }
+ this.emitAndNotify("bounds");
+ return this;
+ };
+ elesfn$b.boundingBoxAt = function(fn3) {
+ var nodes6 = this.nodes();
+ var cy = this.cy();
+ var hasCompoundNodes2 = cy.hasCompoundNodes();
+ var parents4 = cy.collection();
+ if (hasCompoundNodes2) {
+ parents4 = nodes6.filter(function(node2) {
+ return node2.isParent();
+ });
+ nodes6 = nodes6.not(parents4);
+ }
+ if (plainObject(fn3)) {
+ var obj = fn3;
+ fn3 = /* @__PURE__ */ __name(function fn4() {
+ return obj;
+ }, "fn");
+ }
+ var storeOldPos = /* @__PURE__ */ __name(function storeOldPos2(node2, i2) {
+ return node2._private.bbAtOldPos = fn3(node2, i2);
+ }, "storeOldPos");
+ var getOldPos = /* @__PURE__ */ __name(function getOldPos2(node2) {
+ return node2._private.bbAtOldPos;
+ }, "getOldPos");
+ cy.startBatch();
+ nodes6.forEach(storeOldPos).silentPositions(fn3);
+ if (hasCompoundNodes2) {
+ parents4.dirtyCompoundBoundsCache();
+ parents4.dirtyBoundingBoxCache();
+ parents4.updateCompoundBounds(true);
+ }
+ var bb = copyBoundingBox(this.boundingBox({
+ useCache: false
+ }));
+ nodes6.silentPositions(getOldPos);
+ if (hasCompoundNodes2) {
+ parents4.dirtyCompoundBoundsCache();
+ parents4.dirtyBoundingBoxCache();
+ parents4.updateCompoundBounds(true);
+ }
+ cy.endBatch();
+ return bb;
+ };
+ fn$3.boundingbox = fn$3.bb = fn$3.boundingBox;
+ fn$3.renderedBoundingbox = fn$3.renderedBoundingBox;
+ bounds3 = elesfn$b;
+ fn$2 = elesfn$a = {};
+ defineDimFns = /* @__PURE__ */ __name(function defineDimFns2(opts) {
+ opts.uppercaseName = capitalize(opts.name);
+ opts.autoName = "auto" + opts.uppercaseName;
+ opts.labelName = "label" + opts.uppercaseName;
+ opts.outerName = "outer" + opts.uppercaseName;
+ opts.uppercaseOuterName = capitalize(opts.outerName);
+ fn$2[opts.name] = /* @__PURE__ */ __name(function dimImpl() {
+ var ele = this[0];
+ var _p = ele._private;
+ var cy = _p.cy;
+ var styleEnabled2 = cy._private.styleEnabled;
+ if (ele) {
+ if (styleEnabled2) {
+ if (ele.isParent()) {
+ ele.updateCompoundBounds();
+ return _p[opts.autoName] || 0;
}
- };
- _2.eg = function QPc(a) {
- return a.i.n.b + a.n.b + a.a.b;
- };
- _2.fg = function RPc() {
- return Ucd(), zcd;
- };
- _2.gg = function SPc() {
- return Ucd(), Tcd;
- };
- mdb(Nqe, "WestToEastRoutingStrategy", 1806);
- bcb(813, 1, {}, YPc);
- _2.Ib = function ZPc() {
- return Fe(this.a);
- };
- _2.b = 0;
- _2.c = false;
- _2.d = false;
- _2.f = 0;
- mdb(Pqe, "NubSpline", 813);
- bcb(407, 1, { 407: 1 }, aQc, bQc);
- mdb(Pqe, "NubSpline/PolarCP", 407);
- bcb(1453, 1, Bqe, vQc);
- _2.Yf = function xQc(a) {
- return qQc(BD(a, 37));
- };
- _2.pf = function yQc(a, b) {
- uQc(this, BD(a, 37), b);
- };
- var cQc, dQc, eQc, fQc, gQc;
- mdb(Pqe, "SplineEdgeRouter", 1453);
- bcb(268, 1, { 268: 1 }, BQc);
- _2.Ib = function CQc() {
- return this.a + " ->(" + this.c + ") " + this.b;
- };
- _2.c = 0;
- mdb(Pqe, "SplineEdgeRouter/Dependency", 268);
- bcb(455, 22, { 3: 1, 35: 1, 22: 1, 455: 1 }, GQc);
- var DQc, EQc;
- var YZ = ndb(Pqe, "SplineEdgeRouter/SideToProcess", 455, CI, IQc, HQc);
- var JQc;
- bcb(1454, 1, Oie, LQc);
- _2.Mb = function MQc(a) {
- return hQc(), !BD(a, 128).o;
- };
- mdb(Pqe, "SplineEdgeRouter/lambda$0$Type", 1454);
- bcb(1455, 1, {}, NQc);
- _2.Ge = function OQc(a) {
- return hQc(), BD(a, 128).v + 1;
- };
- mdb(Pqe, "SplineEdgeRouter/lambda$1$Type", 1455);
- bcb(1456, 1, qie, PQc);
- _2.td = function QQc(a) {
- sQc(this.a, this.b, BD(a, 46));
- };
- mdb(Pqe, "SplineEdgeRouter/lambda$2$Type", 1456);
- bcb(1457, 1, qie, RQc);
- _2.td = function SQc(a) {
- tQc(this.a, this.b, BD(a, 46));
- };
- mdb(Pqe, "SplineEdgeRouter/lambda$3$Type", 1457);
- bcb(128, 1, { 35: 1, 128: 1 }, YQc, ZQc);
- _2.wd = function $Qc(a) {
- return WQc(this, BD(a, 128));
- };
- _2.b = 0;
- _2.e = false;
- _2.f = 0;
- _2.g = 0;
- _2.j = false;
- _2.k = false;
- _2.n = 0;
- _2.o = false;
- _2.p = false;
- _2.q = false;
- _2.s = 0;
- _2.u = 0;
- _2.v = 0;
- _2.F = 0;
- mdb(Pqe, "SplineSegment", 128);
- bcb(459, 1, { 459: 1 }, _Qc);
- _2.a = 0;
- _2.b = false;
- _2.c = false;
- _2.d = false;
- _2.e = false;
- _2.f = 0;
- mdb(Pqe, "SplineSegment/EdgeInformation", 459);
- bcb(1234, 1, {}, hRc);
- mdb(Uqe, hme, 1234);
- bcb(1235, 1, Dke, jRc);
- _2.ue = function kRc(a, b) {
- return iRc(BD(a, 135), BD(b, 135));
- };
- _2.Fb = function lRc(a) {
- return this === a;
- };
- _2.ve = function mRc() {
- return new tpb(this);
- };
- mdb(Uqe, ime, 1235);
- bcb(1233, 1, {}, tRc);
- mdb(Uqe, "MrTree", 1233);
- bcb(393, 22, { 3: 1, 35: 1, 22: 1, 393: 1, 246: 1, 234: 1 }, ARc);
- _2.Kf = function CRc() {
- return zRc(this);
- };
- _2.Xf = function BRc() {
- return zRc(this);
- };
- var uRc, vRc, wRc, xRc;
- var h$ = ndb(Uqe, "TreeLayoutPhases", 393, CI, ERc, DRc);
- var FRc;
- bcb(1130, 209, Mle, HRc);
- _2.Ze = function IRc(a, b) {
- var c2, d, e, f2, g, h, i3;
- Ccb(DD(hkd(a, (JTc(), ATc)))) || $Cb((c2 = new _Cb((Pgd(), new bhd(a))), c2));
- g = (h = new SRc(), tNb(h, a), yNb(h, (mTc(), dTc), a), i3 = new Lqb(), pRc(a, h, i3), oRc(a, h, i3), h);
- f2 = gRc(this.a, g);
- for (e = new olb(f2); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 135);
- rRc(this.b, d, Udd(b, 1 / f2.c.length));
- }
- g = fRc(f2);
- nRc(g);
- };
- mdb(Uqe, "TreeLayoutProvider", 1130);
- bcb(1847, 1, vie, KRc);
- _2.Jc = function LRc(a) {
- reb(this, a);
- };
- _2.Kc = function MRc() {
- return mmb(), Emb(), Dmb;
- };
- mdb(Uqe, "TreeUtil/1", 1847);
- bcb(1848, 1, vie, NRc);
- _2.Jc = function ORc(a) {
- reb(this, a);
- };
- _2.Kc = function PRc() {
- return mmb(), Emb(), Dmb;
- };
- mdb(Uqe, "TreeUtil/2", 1848);
- bcb(502, 134, { 3: 1, 502: 1, 94: 1, 134: 1 });
- _2.g = 0;
- mdb(Vqe, "TGraphElement", 502);
- bcb(188, 502, { 3: 1, 188: 1, 502: 1, 94: 1, 134: 1 }, QRc);
- _2.Ib = function RRc() {
- return !!this.b && !!this.c ? WRc(this.b) + "->" + WRc(this.c) : "e_" + tb(this);
- };
- mdb(Vqe, "TEdge", 188);
- bcb(135, 134, { 3: 1, 135: 1, 94: 1, 134: 1 }, SRc);
- _2.Ib = function TRc() {
- var a, b, c2, d, e;
- e = null;
- for (d = Jsb(this.b, 0); d.b != d.d.c; ) {
- c2 = BD(Xsb(d), 86);
- e += (c2.c == null || c2.c.length == 0 ? "n_" + c2.g : "n_" + c2.c) + "\n";
- }
- for (b = Jsb(this.a, 0); b.b != b.d.c; ) {
- a = BD(Xsb(b), 188);
- e += (!!a.b && !!a.c ? WRc(a.b) + "->" + WRc(a.c) : "e_" + tb(a)) + "\n";
- }
- return e;
- };
- var n$ = mdb(Vqe, "TGraph", 135);
- bcb(633, 502, { 3: 1, 502: 1, 633: 1, 94: 1, 134: 1 });
- mdb(Vqe, "TShape", 633);
- bcb(86, 633, { 3: 1, 502: 1, 86: 1, 633: 1, 94: 1, 134: 1 }, XRc);
- _2.Ib = function YRc() {
- return WRc(this);
- };
- var q$ = mdb(Vqe, "TNode", 86);
- bcb(255, 1, vie, ZRc);
- _2.Jc = function $Rc(a) {
- reb(this, a);
- };
- _2.Kc = function _Rc() {
- var a;
- return a = Jsb(this.a.d, 0), new aSc(a);
- };
- mdb(Vqe, "TNode/2", 255);
- bcb(358, 1, aie, aSc);
- _2.Nb = function bSc(a) {
- Rrb(this, a);
- };
- _2.Pb = function dSc() {
- return BD(Xsb(this.a), 188).c;
- };
- _2.Ob = function cSc() {
- return Wsb(this.a);
- };
- _2.Qb = function eSc() {
- Zsb(this.a);
- };
- mdb(Vqe, "TNode/2/1", 358);
- bcb(1840, 1, ene, hSc);
- _2.pf = function jSc(a, b) {
- gSc(this, BD(a, 135), b);
- };
- mdb(Wqe, "FanProcessor", 1840);
- bcb(327, 22, { 3: 1, 35: 1, 22: 1, 327: 1, 234: 1 }, rSc);
- _2.Kf = function sSc() {
- switch (this.g) {
- case 0:
- return new QSc();
- case 1:
- return new hSc();
- case 2:
- return new GSc();
- case 3:
- return new zSc();
- case 4:
- return new NSc();
- case 5:
- return new TSc();
+ var d2 = ele.pstyle(opts.name);
+ switch (d2.strValue) {
+ case "label":
+ ele.recalculateRenderedStyle();
+ return _p.rstyle[opts.labelName] || 0;
default:
- throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
+ return d2.pfValue;
}
+ } else {
+ return 1;
+ }
+ }
+ }, "dimImpl");
+ fn$2["outer" + opts.uppercaseName] = /* @__PURE__ */ __name(function outerDimImpl() {
+ var ele = this[0];
+ var _p = ele._private;
+ var cy = _p.cy;
+ var styleEnabled2 = cy._private.styleEnabled;
+ if (ele) {
+ if (styleEnabled2) {
+ var dim = ele[opts.name]();
+ var border = ele.pstyle("border-width").pfValue;
+ var padding3 = 2 * ele.padding();
+ return dim + border + padding3;
+ } else {
+ return 1;
+ }
+ }
+ }, "outerDimImpl");
+ fn$2["rendered" + opts.uppercaseName] = /* @__PURE__ */ __name(function renderedDimImpl() {
+ var ele = this[0];
+ if (ele) {
+ var d2 = ele[opts.name]();
+ return d2 * this.cy().zoom();
+ }
+ }, "renderedDimImpl");
+ fn$2["rendered" + opts.uppercaseOuterName] = /* @__PURE__ */ __name(function renderedOuterDimImpl() {
+ var ele = this[0];
+ if (ele) {
+ var od = ele[opts.outerName]();
+ return od * this.cy().zoom();
+ }
+ }, "renderedOuterDimImpl");
+ }, "defineDimFns");
+ defineDimFns({
+ name: "width"
+ });
+ defineDimFns({
+ name: "height"
+ });
+ elesfn$a.padding = function() {
+ var ele = this[0];
+ var _p = ele._private;
+ if (ele.isParent()) {
+ ele.updateCompoundBounds();
+ if (_p.autoPadding !== void 0) {
+ return _p.autoPadding;
+ } else {
+ return ele.pstyle("padding").pfValue;
+ }
+ } else {
+ return ele.pstyle("padding").pfValue;
+ }
+ };
+ elesfn$a.paddedHeight = function() {
+ var ele = this[0];
+ return ele.height() + 2 * ele.padding();
+ };
+ elesfn$a.paddedWidth = function() {
+ var ele = this[0];
+ return ele.width() + 2 * ele.padding();
+ };
+ widthHeight = elesfn$a;
+ ifEdge = /* @__PURE__ */ __name(function ifEdge2(ele, getValue3) {
+ if (ele.isEdge()) {
+ return getValue3(ele);
+ }
+ }, "ifEdge");
+ ifEdgeRenderedPosition = /* @__PURE__ */ __name(function ifEdgeRenderedPosition2(ele, getPoint) {
+ if (ele.isEdge()) {
+ var cy = ele.cy();
+ return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan());
+ }
+ }, "ifEdgeRenderedPosition");
+ ifEdgeRenderedPositions = /* @__PURE__ */ __name(function ifEdgeRenderedPositions2(ele, getPoints) {
+ if (ele.isEdge()) {
+ var cy = ele.cy();
+ var pan2 = cy.pan();
+ var zoom2 = cy.zoom();
+ return getPoints(ele).map(function(p3) {
+ return modelToRenderedPosition(p3, zoom2, pan2);
+ });
+ }
+ }, "ifEdgeRenderedPositions");
+ controlPoints2 = /* @__PURE__ */ __name(function controlPoints3(ele) {
+ return ele.renderer().getControlPoints(ele);
+ }, "controlPoints");
+ segmentPoints = /* @__PURE__ */ __name(function segmentPoints2(ele) {
+ return ele.renderer().getSegmentPoints(ele);
+ }, "segmentPoints");
+ sourceEndpoint = /* @__PURE__ */ __name(function sourceEndpoint2(ele) {
+ return ele.renderer().getSourceEndpoint(ele);
+ }, "sourceEndpoint");
+ targetEndpoint = /* @__PURE__ */ __name(function targetEndpoint2(ele) {
+ return ele.renderer().getTargetEndpoint(ele);
+ }, "targetEndpoint");
+ midpoint = /* @__PURE__ */ __name(function midpoint2(ele) {
+ return ele.renderer().getEdgeMidpoint(ele);
+ }, "midpoint");
+ pts = {
+ controlPoints: {
+ get: controlPoints2,
+ mult: true
+ },
+ segmentPoints: {
+ get: segmentPoints,
+ mult: true
+ },
+ sourceEndpoint: {
+ get: sourceEndpoint
+ },
+ targetEndpoint: {
+ get: targetEndpoint
+ },
+ midpoint: {
+ get: midpoint
+ }
+ };
+ renderedName = /* @__PURE__ */ __name(function renderedName2(name) {
+ return "rendered" + name[0].toUpperCase() + name.substr(1);
+ }, "renderedName");
+ edgePoints = Object.keys(pts).reduce(function(obj, name) {
+ var spec = pts[name];
+ var rName = renderedName(name);
+ obj[name] = function() {
+ return ifEdge(this, spec.get);
+ };
+ if (spec.mult) {
+ obj[rName] = function() {
+ return ifEdgeRenderedPositions(this, spec.get);
+ };
+ } else {
+ obj[rName] = function() {
+ return ifEdgeRenderedPosition(this, spec.get);
+ };
+ }
+ return obj;
+ }, {});
+ dimensions = extend2({}, position2, bounds3, widthHeight, edgePoints);
+ Event = /* @__PURE__ */ __name(function Event2(src, props) {
+ this.recycle(src, props);
+ }, "Event");
+ __name(returnFalse, "returnFalse");
+ __name(returnTrue, "returnTrue");
+ Event.prototype = {
+ instanceString: /* @__PURE__ */ __name(function instanceString2() {
+ return "event";
+ }, "instanceString"),
+ recycle: /* @__PURE__ */ __name(function recycle(src, props) {
+ this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;
+ if (src != null && src.preventDefault) {
+ this.type = src.type;
+ this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;
+ } else if (src != null && src.type) {
+ props = src;
+ } else {
+ this.type = src;
+ }
+ if (props != null) {
+ this.originalEvent = props.originalEvent;
+ this.type = props.type != null ? props.type : this.type;
+ this.cy = props.cy;
+ this.target = props.target;
+ this.position = props.position;
+ this.renderedPosition = props.renderedPosition;
+ this.namespace = props.namespace;
+ this.layout = props.layout;
+ }
+ if (this.cy != null && this.position != null && this.renderedPosition == null) {
+ var pos = this.position;
+ var zoom2 = this.cy.zoom();
+ var pan2 = this.cy.pan();
+ this.renderedPosition = {
+ x: pos.x * zoom2 + pan2.x,
+ y: pos.y * zoom2 + pan2.y
};
- var kSc, lSc, mSc, nSc, oSc, pSc;
- var t$ = ndb(Wqe, Ene, 327, CI, uSc, tSc);
- var vSc;
- bcb(1843, 1, ene, zSc);
- _2.pf = function ASc(a, b) {
- xSc(this, BD(a, 135), b);
- };
- _2.a = 0;
- mdb(Wqe, "LevelHeightProcessor", 1843);
- bcb(1844, 1, vie, BSc);
- _2.Jc = function CSc(a) {
- reb(this, a);
- };
- _2.Kc = function DSc() {
- return mmb(), Emb(), Dmb;
- };
- mdb(Wqe, "LevelHeightProcessor/1", 1844);
- bcb(1841, 1, ene, GSc);
- _2.pf = function HSc(a, b) {
- ESc(this, BD(a, 135), b);
- };
- _2.a = 0;
- mdb(Wqe, "NeighborsProcessor", 1841);
- bcb(1842, 1, vie, ISc);
- _2.Jc = function JSc(a) {
- reb(this, a);
- };
- _2.Kc = function KSc() {
- return mmb(), Emb(), Dmb;
- };
- mdb(Wqe, "NeighborsProcessor/1", 1842);
- bcb(1845, 1, ene, NSc);
- _2.pf = function OSc(a, b) {
- LSc(this, BD(a, 135), b);
- };
- _2.a = 0;
- mdb(Wqe, "NodePositionProcessor", 1845);
- bcb(1839, 1, ene, QSc);
- _2.pf = function RSc(a, b) {
- PSc(this, BD(a, 135));
- };
- mdb(Wqe, "RootProcessor", 1839);
- bcb(1846, 1, ene, TSc);
- _2.pf = function USc(a, b) {
- SSc(BD(a, 135));
- };
- mdb(Wqe, "Untreeifyer", 1846);
- var VSc, WSc, XSc, YSc, ZSc, $Sc, _Sc, aTc, bTc, cTc, dTc, eTc, fTc, gTc, hTc, iTc, jTc, kTc, lTc;
- bcb(851, 1, ale, sTc);
- _2.Qe = function tTc(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zqe), ""), "Weighting of Nodes"), "Which weighting to use when computing a node order."), qTc), (_5c(), V5c)), E$), pqb((N5c(), L5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $qe), ""), "Search Order"), "Which search order to use when computing a spanning tree."), oTc), V5c), F$), pqb(L5c))));
- KTc((new LTc(), a));
- };
- var nTc, oTc, pTc, qTc;
- mdb(_qe, "MrTreeMetaDataProvider", 851);
- bcb(994, 1, ale, LTc);
- _2.Qe = function MTc(a) {
- KTc(a);
- };
- var uTc, vTc, wTc, xTc, yTc, zTc, ATc, BTc, CTc, DTc, ETc, FTc, GTc, HTc, ITc;
- mdb(_qe, "MrTreeOptions", 994);
- bcb(995, 1, {}, NTc);
- _2.$e = function OTc() {
- var a;
- return a = new HRc(), a;
- };
- _2._e = function PTc(a) {
- };
- mdb(_qe, "MrTreeOptions/MrtreeFactory", 995);
- bcb(480, 22, { 3: 1, 35: 1, 22: 1, 480: 1 }, TTc);
- var QTc, RTc;
- var E$ = ndb(_qe, "OrderWeighting", 480, CI, VTc, UTc);
- var WTc;
- bcb(425, 22, { 3: 1, 35: 1, 22: 1, 425: 1 }, _Tc);
- var YTc, ZTc;
- var F$ = ndb(_qe, "TreeifyingOrder", 425, CI, bUc, aUc);
- var cUc;
- bcb(1459, 1, Bqe, lUc);
- _2.Yf = function mUc(a) {
- return BD(a, 135), eUc;
- };
- _2.pf = function nUc(a, b) {
- kUc(this, BD(a, 135), b);
- };
- var eUc;
- mdb("org.eclipse.elk.alg.mrtree.p1treeify", "DFSTreeifyer", 1459);
- bcb(1460, 1, Bqe, sUc);
- _2.Yf = function tUc(a) {
- return BD(a, 135), oUc;
- };
- _2.pf = function uUc(a, b) {
- rUc(this, BD(a, 135), b);
- };
- var oUc;
- mdb("org.eclipse.elk.alg.mrtree.p2order", "NodeOrderer", 1460);
- bcb(1461, 1, Bqe, CUc);
- _2.Yf = function DUc(a) {
- return BD(a, 135), vUc;
- };
- _2.pf = function EUc(a, b) {
- AUc(this, BD(a, 135), b);
- };
- _2.a = 0;
- var vUc;
- mdb("org.eclipse.elk.alg.mrtree.p3place", "NodePlacer", 1461);
- bcb(1462, 1, Bqe, IUc);
- _2.Yf = function JUc(a) {
- return BD(a, 135), FUc;
- };
- _2.pf = function KUc(a, b) {
- HUc(BD(a, 135), b);
- };
- var FUc;
- mdb("org.eclipse.elk.alg.mrtree.p4route", "EdgeRouter", 1462);
- var LUc;
- bcb(495, 22, { 3: 1, 35: 1, 22: 1, 495: 1, 246: 1, 234: 1 }, RUc);
- _2.Kf = function TUc() {
- return QUc(this);
- };
- _2.Xf = function SUc() {
- return QUc(this);
- };
- var NUc, OUc;
- var K$ = ndb(cre, "RadialLayoutPhases", 495, CI, VUc, UUc);
- var WUc;
- bcb(1131, 209, Mle, ZUc);
- _2.Ze = function $Uc(a, b) {
- var c2, d, e, f2, g, h;
- c2 = YUc(this, a);
- Odd(b, "Radial layout", c2.c.length);
- Ccb(DD(hkd(a, (ZWc(), QWc)))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d));
- h = aVc(a);
- jkd(a, (MUc(), LUc), h);
- if (!h) {
- throw vbb(new Wdb("The given graph is not a tree!"));
- }
- e = Edb(ED(hkd(a, VWc)));
- e == 0 && (e = _Uc(a));
- jkd(a, VWc, e);
- for (g = new olb(YUc(this, a)); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 51);
- f2.pf(a, Udd(b, 1));
- }
- Qdd(b);
- };
- mdb(cre, "RadialLayoutProvider", 1131);
- bcb(549, 1, Dke, jVc);
- _2.ue = function kVc(a, b) {
- return iVc(this.a, this.b, BD(a, 33), BD(b, 33));
- };
- _2.Fb = function lVc(a) {
- return this === a;
- };
- _2.ve = function mVc() {
- return new tpb(this);
- };
- _2.a = 0;
- _2.b = 0;
- mdb(cre, "RadialUtil/lambda$0$Type", 549);
- bcb(1375, 1, ene, oVc);
- _2.pf = function pVc(a, b) {
- nVc(BD(a, 33), b);
- };
- mdb(fre, "CalculateGraphSize", 1375);
- bcb(442, 22, { 3: 1, 35: 1, 22: 1, 442: 1, 234: 1 }, uVc);
- _2.Kf = function vVc() {
- switch (this.g) {
- case 0:
- return new bWc();
- case 1:
- return new NVc();
- case 2:
- return new oVc();
- default:
- throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
+ }
+ this.timeStamp = src && src.timeStamp || Date.now();
+ }, "recycle"),
+ preventDefault: /* @__PURE__ */ __name(function preventDefault() {
+ this.isDefaultPrevented = returnTrue;
+ var e3 = this.originalEvent;
+ if (!e3) {
+ return;
+ }
+ if (e3.preventDefault) {
+ e3.preventDefault();
+ }
+ }, "preventDefault"),
+ stopPropagation: /* @__PURE__ */ __name(function stopPropagation() {
+ this.isPropagationStopped = returnTrue;
+ var e3 = this.originalEvent;
+ if (!e3) {
+ return;
+ }
+ if (e3.stopPropagation) {
+ e3.stopPropagation();
+ }
+ }, "stopPropagation"),
+ stopImmediatePropagation: /* @__PURE__ */ __name(function stopImmediatePropagation() {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ }, "stopImmediatePropagation"),
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+ };
+ eventRegex = /^([^.]+)(\.(?:[^.]+))?$/;
+ universalNamespace = ".*";
+ defaults$8 = {
+ qualifierCompare: /* @__PURE__ */ __name(function qualifierCompare(q1, q2) {
+ return q1 === q2;
+ }, "qualifierCompare"),
+ eventMatches: /* @__PURE__ */ __name(function eventMatches() {
+ return true;
+ }, "eventMatches"),
+ addEventFields: /* @__PURE__ */ __name(function addEventFields() {
+ }, "addEventFields"),
+ callbackContext: /* @__PURE__ */ __name(function callbackContext(context) {
+ return context;
+ }, "callbackContext"),
+ beforeEmit: /* @__PURE__ */ __name(function beforeEmit() {
+ }, "beforeEmit"),
+ afterEmit: /* @__PURE__ */ __name(function afterEmit() {
+ }, "afterEmit"),
+ bubble: /* @__PURE__ */ __name(function bubble() {
+ return false;
+ }, "bubble"),
+ parent: /* @__PURE__ */ __name(function parent2() {
+ return null;
+ }, "parent"),
+ context: null
+ };
+ defaultsKeys = Object.keys(defaults$8);
+ emptyOpts = {};
+ __name(Emitter2, "Emitter");
+ p2 = Emitter2.prototype;
+ forEachEvent = /* @__PURE__ */ __name(function forEachEvent2(self2, handler, events, qualifier, callback, conf8, confOverrides) {
+ if (fn$6(qualifier)) {
+ callback = qualifier;
+ qualifier = null;
+ }
+ if (confOverrides) {
+ if (conf8 == null) {
+ conf8 = confOverrides;
+ } else {
+ conf8 = extend2({}, conf8, confOverrides);
+ }
+ }
+ var eventList = array2(events) ? events : events.split(/\s+/);
+ for (var i2 = 0; i2 < eventList.length; i2++) {
+ var evt = eventList[i2];
+ if (emptyString(evt)) {
+ continue;
+ }
+ var match2 = evt.match(eventRegex);
+ if (match2) {
+ var type3 = match2[1];
+ var namespace = match2[2] ? match2[2] : null;
+ var ret = handler(self2, evt, type3, namespace, qualifier, callback, conf8);
+ if (ret === false) {
+ break;
+ }
+ }
+ }
+ }, "forEachEvent");
+ makeEventObj = /* @__PURE__ */ __name(function makeEventObj2(self2, obj) {
+ self2.addEventFields(self2.context, obj);
+ return new Event(obj.type, obj);
+ }, "makeEventObj");
+ forEachEventObj = /* @__PURE__ */ __name(function forEachEventObj2(self2, handler, events) {
+ if (event(events)) {
+ handler(self2, events);
+ return;
+ } else if (plainObject(events)) {
+ handler(self2, makeEventObj(self2, events));
+ return;
+ }
+ var eventList = array2(events) ? events : events.split(/\s+/);
+ for (var i2 = 0; i2 < eventList.length; i2++) {
+ var evt = eventList[i2];
+ if (emptyString(evt)) {
+ continue;
+ }
+ var match2 = evt.match(eventRegex);
+ if (match2) {
+ var type3 = match2[1];
+ var namespace = match2[2] ? match2[2] : null;
+ var eventObj = makeEventObj(self2, {
+ type: type3,
+ namespace,
+ target: self2.context
+ });
+ handler(self2, eventObj);
+ }
+ }
+ }, "forEachEventObj");
+ p2.on = p2.addListener = function(events, qualifier, callback, conf8, confOverrides) {
+ forEachEvent(this, function(self2, event3, type3, namespace, qualifier2, callback2, conf9) {
+ if (fn$6(callback2)) {
+ self2.listeners.push({
+ event: event3,
+ // full event string
+ callback: callback2,
+ // callback to run
+ type: type3,
+ // the event type (e.g. 'click')
+ namespace,
+ // the event namespace (e.g. ".foo")
+ qualifier: qualifier2,
+ // a restriction on whether to match this emitter
+ conf: conf9
+ // additional configuration
+ });
+ }
+ }, events, qualifier, callback, conf8, confOverrides);
+ return this;
+ };
+ p2.one = function(events, qualifier, callback, conf8) {
+ return this.on(events, qualifier, callback, conf8, {
+ one: true
+ });
+ };
+ p2.removeListener = p2.off = function(events, qualifier, callback, conf8) {
+ var _this = this;
+ if (this.emitting !== 0) {
+ this.listeners = copyArray$1(this.listeners);
+ }
+ var listeners = this.listeners;
+ var _loop = /* @__PURE__ */ __name(function _loop2(i3) {
+ var listener = listeners[i3];
+ forEachEvent(_this, function(self2, event3, type3, namespace, qualifier2, callback2) {
+ if ((listener.type === type3 || events === "*") && (!namespace && listener.namespace !== ".*" || listener.namespace === namespace) && (!qualifier2 || self2.qualifierCompare(listener.qualifier, qualifier2)) && (!callback2 || listener.callback === callback2)) {
+ listeners.splice(i3, 1);
+ return false;
+ }
+ }, events, qualifier, callback, conf8);
+ }, "_loop");
+ for (var i2 = listeners.length - 1; i2 >= 0; i2--) {
+ _loop(i2);
+ }
+ return this;
+ };
+ p2.removeAllListeners = function() {
+ return this.removeListener("*");
+ };
+ p2.emit = p2.trigger = function(events, extraParams, manualCallback) {
+ var listeners = this.listeners;
+ var numListenersBeforeEmit = listeners.length;
+ this.emitting++;
+ if (!array2(extraParams)) {
+ extraParams = [extraParams];
+ }
+ forEachEventObj(this, function(self2, eventObj) {
+ if (manualCallback != null) {
+ listeners = [{
+ event: eventObj.event,
+ type: eventObj.type,
+ namespace: eventObj.namespace,
+ callback: manualCallback
+ }];
+ numListenersBeforeEmit = listeners.length;
+ }
+ var _loop2 = /* @__PURE__ */ __name(function _loop22(i3) {
+ var listener = listeners[i3];
+ if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self2.eventMatches(self2.context, listener, eventObj)) {
+ var args = [eventObj];
+ if (extraParams != null) {
+ push(args, extraParams);
}
- };
- var qVc, rVc, sVc;
- var O$ = ndb(fre, Ene, 442, CI, xVc, wVc);
- var yVc;
- bcb(645, 1, {});
- _2.e = 1;
- _2.g = 0;
- mdb(gre, "AbstractRadiusExtensionCompaction", 645);
- bcb(1772, 645, {}, KVc);
- _2.hg = function LVc(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- this.c = BD(hkd(a, (MUc(), LUc)), 33);
- EVc(this, this.c);
- this.d = tXc(BD(hkd(a, (ZWc(), WWc)), 293));
- i3 = BD(hkd(a, KWc), 19);
- !!i3 && DVc(this, i3.a);
- h = ED(hkd(a, (Y9c(), T9c)));
- FVc(this, (uCb(h), h));
- j = gVc(this.c);
- !!this.d && this.d.lg(j);
- GVc(this, j);
- g = new amb(OC(GC(E2, 1), hre, 33, 0, [this.c]));
- for (c2 = 0; c2 < 2; c2++) {
- for (b = 0; b < j.c.length; b++) {
- e = new amb(OC(GC(E2, 1), hre, 33, 0, [(tCb(b, j.c.length), BD(j.c[b], 33))]));
- f2 = b < j.c.length - 1 ? (tCb(b + 1, j.c.length), BD(j.c[b + 1], 33)) : (tCb(0, j.c.length), BD(j.c[0], 33));
- d = b == 0 ? BD(Ikb(j, j.c.length - 1), 33) : (tCb(b - 1, j.c.length), BD(j.c[b - 1], 33));
- IVc(this, (tCb(b, j.c.length), BD(j.c[b], 33), g), d, f2, e);
- }
+ self2.beforeEmit(self2.context, listener, eventObj);
+ if (listener.conf && listener.conf.one) {
+ self2.listeners = self2.listeners.filter(function(l2) {
+ return l2 !== listener;
+ });
}
- };
- mdb(gre, "AnnulusWedgeCompaction", 1772);
- bcb(1374, 1, ene, NVc);
- _2.pf = function OVc(a, b) {
- MVc(BD(a, 33), b);
- };
- mdb(gre, "GeneralCompactor", 1374);
- bcb(1771, 645, {}, SVc);
- _2.hg = function TVc(a) {
- var b, c2, d, e;
- c2 = BD(hkd(a, (MUc(), LUc)), 33);
- this.f = c2;
- this.b = tXc(BD(hkd(a, (ZWc(), WWc)), 293));
- e = BD(hkd(a, KWc), 19);
- !!e && DVc(this, e.a);
- d = ED(hkd(a, (Y9c(), T9c)));
- FVc(this, (uCb(d), d));
- b = gVc(c2);
- !!this.b && this.b.lg(b);
- QVc(this, b);
- };
- _2.a = 0;
- mdb(gre, "RadialCompaction", 1771);
- bcb(1779, 1, {}, VVc);
- _2.ig = function WVc(a) {
- var b, c2, d, e, f2, g;
- this.a = a;
- b = 0;
- g = gVc(a);
- d = 0;
- for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
- e = BD(mlb(f2), 33);
- ++d;
- for (c2 = d; c2 < g.c.length; c2++) {
- UVc(this, e, (tCb(c2, g.c.length), BD(g.c[c2], 33))) && (b += 1);
- }
- }
- return b;
- };
- mdb(ire, "CrossingMinimizationPosition", 1779);
- bcb(1777, 1, {}, XVc);
- _2.ig = function YVc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
- d = 0;
- for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 79);
- h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
- j = h.i + h.g / 2;
- k = h.j + h.f / 2;
- e = a.i + a.g / 2;
- f2 = a.j + a.f / 2;
- l = new d7c();
- l.a = j - e;
- l.b = k - f2;
- g = new f7c(l.a, l.b);
- l6c(g, a.g, a.f);
- l.a -= g.a;
- l.b -= g.b;
- e = j - l.a;
- f2 = k - l.b;
- i3 = new f7c(l.a, l.b);
- l6c(i3, h.g, h.f);
- l.a -= i3.a;
- l.b -= i3.b;
- j = e + l.a;
- k = f2 + l.b;
- m = j - e;
- n = k - f2;
- d += $wnd.Math.sqrt(m * m + n * n);
- }
- return d;
- };
- mdb(ire, "EdgeLengthOptimization", 1777);
- bcb(1778, 1, {}, ZVc);
- _2.ig = function $Vc(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- d = 0;
- for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
- b = BD(Rr(c2), 79);
- h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
- i3 = h.i + h.g / 2;
- j = h.j + h.f / 2;
- e = BD(hkd(h, (Y9c(), C9c)), 8);
- f2 = a.i + e.a + a.g / 2;
- g = a.j + e.b + a.f;
- k = i3 - f2;
- l = j - g;
- d += $wnd.Math.sqrt(k * k + l * l);
- }
- return d;
- };
- mdb(ire, "EdgeLengthPositionOptimization", 1778);
- bcb(1373, 645, ene, bWc);
- _2.pf = function cWc(a, b) {
- aWc(this, BD(a, 33), b);
- };
- mdb("org.eclipse.elk.alg.radial.intermediate.overlaps", "RadiusExtensionOverlapRemoval", 1373);
- bcb(426, 22, { 3: 1, 35: 1, 22: 1, 426: 1 }, hWc);
- var dWc, eWc;
- var X$ = ndb(kre, "AnnulusWedgeCriteria", 426, CI, jWc, iWc);
- var kWc;
- bcb(380, 22, { 3: 1, 35: 1, 22: 1, 380: 1 }, rWc);
- var mWc, nWc, oWc;
- var Y$ = ndb(kre, Sle, 380, CI, tWc, sWc);
- var uWc;
- bcb(852, 1, ale, IWc);
- _2.Qe = function JWc(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lre), ""), "Order ID"), "The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."), meb(0)), (_5c(), X5c)), JI), pqb((N5c(), K5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mre), ""), "Radius"), "The radius option can be used to set the initial radius for the radial layouter."), 0), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nre), ""), "Compaction"), "With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."), yWc), V5c), Y$), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ore), ""), "Compaction Step Size"), "Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."), meb(1)), X5c), JI), pqb(L5c))));
- o4c(a, ore, nre, null);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pre), ""), "Sorter"), "Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."), EWc), V5c), b_), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qre), ""), "Annulus Wedge Criteria"), "Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."), GWc), V5c), X$), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rre), ""), "Translation Optimization"), "Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."), AWc), V5c), a_), pqb(L5c))));
- $Wc((new _Wc(), a));
- };
- var wWc, xWc, yWc, zWc, AWc, BWc, CWc, DWc, EWc, FWc, GWc;
- mdb(kre, "RadialMetaDataProvider", 852);
- bcb(996, 1, ale, _Wc);
- _2.Qe = function aXc(a) {
- $Wc(a);
- };
- var KWc, LWc, MWc, NWc, OWc, PWc, QWc, RWc, SWc, TWc, UWc, VWc, WWc, XWc, YWc;
- mdb(kre, "RadialOptions", 996);
- bcb(997, 1, {}, bXc);
- _2.$e = function cXc() {
- var a;
- return a = new ZUc(), a;
- };
- _2._e = function dXc(a) {
- };
- mdb(kre, "RadialOptions/RadialFactory", 997);
- bcb(340, 22, { 3: 1, 35: 1, 22: 1, 340: 1 }, kXc);
- var eXc, fXc, gXc, hXc;
- var a_ = ndb(kre, "RadialTranslationStrategy", 340, CI, mXc, lXc);
- var nXc;
- bcb(293, 22, { 3: 1, 35: 1, 22: 1, 293: 1 }, uXc);
- var pXc, qXc, rXc;
- var b_ = ndb(kre, "SortingStrategy", 293, CI, wXc, vXc);
- var xXc;
- bcb(1449, 1, Bqe, CXc);
- _2.Yf = function DXc(a) {
- return BD(a, 33), null;
- };
- _2.pf = function EXc(a, b) {
- AXc(this, BD(a, 33), b);
- };
- _2.c = 0;
- mdb("org.eclipse.elk.alg.radial.p1position", "EadesRadial", 1449);
- bcb(1775, 1, {}, FXc);
- _2.jg = function GXc(a) {
- return eVc(a);
- };
- mdb(tre, "AnnulusWedgeByLeafs", 1775);
- bcb(1776, 1, {}, IXc);
- _2.jg = function JXc(a) {
- return HXc(this, a);
- };
- mdb(tre, "AnnulusWedgeByNodeSpace", 1776);
- bcb(1450, 1, Bqe, MXc);
- _2.Yf = function NXc(a) {
- return BD(a, 33), null;
- };
- _2.pf = function OXc(a, b) {
- KXc(this, BD(a, 33), b);
- };
- mdb("org.eclipse.elk.alg.radial.p2routing", "StraightLineEdgeRouter", 1450);
- bcb(811, 1, {}, QXc);
- _2.kg = function RXc(a) {
- };
- _2.lg = function TXc(a) {
- PXc(this, a);
- };
- mdb(ure, "IDSorter", 811);
- bcb(1774, 1, Dke, UXc);
- _2.ue = function VXc(a, b) {
- return SXc(BD(a, 33), BD(b, 33));
- };
- _2.Fb = function WXc(a) {
- return this === a;
- };
- _2.ve = function XXc() {
- return new tpb(this);
- };
- mdb(ure, "IDSorter/lambda$0$Type", 1774);
- bcb(1773, 1, {}, $Xc);
- _2.kg = function _Xc(a) {
- YXc(this, a);
- };
- _2.lg = function aYc(a) {
- var b;
- if (!a.dc()) {
- if (!this.e) {
- b = bVc(BD(a.Xb(0), 33));
- YXc(this, b);
- }
- PXc(this.e, a);
+ var context = self2.callbackContext(self2.context, listener, eventObj);
+ var ret = listener.callback.apply(context, args);
+ self2.afterEmit(self2.context, listener, eventObj);
+ if (ret === false) {
+ eventObj.stopPropagation();
+ eventObj.preventDefault();
}
- };
- mdb(ure, "PolarCoordinateSorter", 1773);
- bcb(1136, 209, Mle, bYc);
- _2.Ze = function eYc(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
- Odd(b, "Rectangle Packing", 1);
- b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
- c2 = Edb(ED(hkd(a, (lZc(), RYc))));
- p = BD(hkd(a, eZc), 381);
- s = Ccb(DD(hkd(a, ZYc)));
- w2 = Ccb(DD(hkd(a, dZc)));
- l = Ccb(DD(hkd(a, VYc)));
- A = BD(hkd(a, fZc), 116);
- v = Edb(ED(hkd(a, jZc)));
- e = Ccb(DD(hkd(a, iZc)));
- m = Ccb(DD(hkd(a, WYc)));
- r = Ccb(DD(hkd(a, XYc)));
- F = Edb(ED(hkd(a, kZc)));
- C = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a);
- r$c(C);
- if (r) {
- o2 = new Rkb();
- for (i3 = new Fyd(C); i3.e != i3.i.gc(); ) {
- g = BD(Dyd(i3), 33);
- ikd(g, UYc) && (o2.c[o2.c.length] = g, true);
- }
- for (j = new olb(o2); j.a < j.c.c.length; ) {
- g = BD(mlb(j), 33);
- Ftd(C, g);
- }
- mmb();
- Okb(o2, new fYc());
- for (k = new olb(o2); k.a < k.c.c.length; ) {
- g = BD(mlb(k), 33);
- B = BD(hkd(g, UYc), 19).a;
- B = $wnd.Math.min(B, C.i);
- vtd(C, B, g);
- }
- q = 0;
- for (h = new Fyd(C); h.e != h.i.gc(); ) {
- g = BD(Dyd(h), 33);
- jkd(g, TYc, meb(q));
- ++q;
- }
- }
- u2 = rfd(a);
- u2.a -= A.b + A.c;
- u2.b -= A.d + A.a;
- t4 = u2.a;
- if (F < 0 || F < u2.a) {
- n = new nYc(c2, p, s);
- f2 = jYc(n, C, v, A);
- b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
- } else {
- f2 = new d$c(c2, F, 0, (k$c(), j$c));
- }
- u2.a += A.b + A.c;
- u2.b += A.d + A.a;
- if (!w2) {
- r$c(C);
- D3 = new DZc(c2, l, m, e, v);
- t4 = $wnd.Math.max(u2.a, f2.c);
- f2 = CZc(D3, C, t4, u2, b, a, A);
- }
- cYc(C, A);
- Afd(a, f2.c + (A.b + A.c), f2.b + (A.d + A.a), false, true);
- Ccb(DD(hkd(a, cZc))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d));
- b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
- Qdd(b);
- };
- mdb(yre, "RectPackingLayoutProvider", 1136);
- bcb(1137, 1, Dke, fYc);
- _2.ue = function gYc(a, b) {
- return dYc(BD(a, 33), BD(b, 33));
- };
- _2.Fb = function hYc(a) {
- return this === a;
- };
- _2.ve = function iYc() {
- return new tpb(this);
- };
- mdb(yre, "RectPackingLayoutProvider/lambda$0$Type", 1137);
- bcb(1256, 1, {}, nYc);
- _2.a = 0;
- _2.c = false;
- mdb(zre, "AreaApproximation", 1256);
- var o_ = odb(zre, "BestCandidateFilter");
- bcb(638, 1, { 526: 1 }, oYc);
- _2.mg = function pYc(a, b, c2) {
- var d, e, f2, g, h, i3;
- i3 = new Rkb();
- f2 = Pje;
- for (h = new olb(a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 220);
- f2 = $wnd.Math.min(f2, (g.c + (c2.b + c2.c)) * (g.b + (c2.d + c2.a)));
- }
- for (e = new olb(a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 220);
- (d.c + (c2.b + c2.c)) * (d.b + (c2.d + c2.a)) == f2 && (i3.c[i3.c.length] = d, true);
- }
- return i3;
- };
- mdb(zre, "AreaFilter", 638);
- bcb(639, 1, { 526: 1 }, qYc);
- _2.mg = function rYc(a, b, c2) {
- var d, e, f2, g, h, i3;
- h = new Rkb();
- i3 = Pje;
- for (g = new olb(a); g.a < g.c.c.length; ) {
- f2 = BD(mlb(g), 220);
- i3 = $wnd.Math.min(i3, $wnd.Math.abs((f2.c + (c2.b + c2.c)) / (f2.b + (c2.d + c2.a)) - b));
- }
- for (e = new olb(a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 220);
- $wnd.Math.abs((d.c + (c2.b + c2.c)) / (d.b + (c2.d + c2.a)) - b) == i3 && (h.c[h.c.length] = d, true);
- }
- return h;
- };
- mdb(zre, "AspectRatioFilter", 639);
- bcb(637, 1, { 526: 1 }, uYc);
- _2.mg = function vYc(a, b, c2) {
- var d, e, f2, g, h, i3;
- i3 = new Rkb();
- f2 = Qje;
- for (h = new olb(a); h.a < h.c.c.length; ) {
- g = BD(mlb(h), 220);
- f2 = $wnd.Math.max(f2, q$c(g.c + (c2.b + c2.c), g.b + (c2.d + c2.a), g.a));
- }
- for (e = new olb(a); e.a < e.c.c.length; ) {
- d = BD(mlb(e), 220);
- q$c(d.c + (c2.b + c2.c), d.b + (c2.d + c2.a), d.a) == f2 && (i3.c[i3.c.length] = d, true);
- }
- return i3;
- };
- mdb(zre, "ScaleMeasureFilter", 637);
- bcb(381, 22, { 3: 1, 35: 1, 22: 1, 381: 1 }, AYc);
- var wYc, xYc, yYc;
- var q_ = ndb(Are, "OptimizationGoal", 381, CI, CYc, BYc);
- var DYc;
- bcb(856, 1, ale, PYc);
- _2.Qe = function QYc(a) {
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bre), ""), "Optimization Goal"), "Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."), LYc), (_5c(), V5c)), q_), pqb((N5c(), K5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cre), ""), "Shift Last Placed."), "When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."), (Bcb(), true)), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dre), ""), "Current position of a node in the order of nodes"), "The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."), meb(-1)), X5c), JI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ere), ""), "Desired index of node"), "The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."), meb(-1)), X5c), JI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fre), ""), "Only Area Approximation"), "If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."), false), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gre), ""), "Compact Rows"), "Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."), true), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hre), ""), "Fit Aspect Ratio"), "Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."), false), T5c), wI), pqb(K5c))));
- o4c(a, Hre, Jre, null);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ire), ""), "Target Width"), "Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."), -1), U5c), BI), pqb(K5c))));
- mZc((new nZc(), a));
- };
- var FYc, GYc, HYc, IYc, JYc, KYc, LYc, MYc, NYc;
- mdb(Are, "RectPackingMetaDataProvider", 856);
- bcb(1004, 1, ale, nZc);
- _2.Qe = function oZc(a) {
- mZc(a);
- };
- var RYc, SYc, TYc, UYc, VYc, WYc, XYc, YYc, ZYc, $Yc, _Yc, aZc, bZc, cZc, dZc, eZc, fZc, gZc, hZc, iZc, jZc, kZc;
- mdb(Are, "RectPackingOptions", 1004);
- bcb(1005, 1, {}, pZc);
- _2.$e = function qZc() {
- var a;
- return a = new bYc(), a;
- };
- _2._e = function rZc(a) {
- };
- mdb(Are, "RectPackingOptions/RectpackingFactory", 1005);
- bcb(1257, 1, {}, DZc);
- _2.a = 0;
- _2.b = false;
- _2.c = 0;
- _2.d = 0;
- _2.e = false;
- _2.f = false;
- _2.g = 0;
- mdb("org.eclipse.elk.alg.rectpacking.seconditeration", "RowFillingAndCompaction", 1257);
- bcb(187, 1, { 187: 1 }, PZc);
- _2.a = 0;
- _2.c = false;
- _2.d = 0;
- _2.e = 0;
- _2.f = 0;
- _2.g = 0;
- _2.i = 0;
- _2.k = false;
- _2.o = Pje;
- _2.p = Pje;
- _2.r = 0;
- _2.s = 0;
- _2.t = 0;
- mdb(Lre, "Block", 187);
- bcb(211, 1, { 211: 1 }, VZc);
- _2.a = 0;
- _2.b = 0;
- _2.d = 0;
- _2.e = 0;
- _2.f = 0;
- mdb(Lre, "BlockRow", 211);
- bcb(443, 1, { 443: 1 }, b$c);
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- _2.e = 0;
- _2.f = 0;
- mdb(Lre, "BlockStack", 443);
- bcb(220, 1, { 220: 1 }, d$c, e$c);
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- _2.e = 0;
- var z_ = mdb(Lre, "DrawingData", 220);
- bcb(355, 22, { 3: 1, 35: 1, 22: 1, 355: 1 }, l$c);
- var f$c, g$c, h$c, i$c, j$c;
- var y_ = ndb(Lre, "DrawingDataDescriptor", 355, CI, n$c, m$c);
- var o$c;
- bcb(200, 1, { 200: 1 }, x$c);
- _2.b = 0;
- _2.c = 0;
- _2.e = 0;
- _2.f = 0;
- mdb(Lre, "RectRow", 200);
- bcb(756, 1, {}, F$c);
- _2.j = 0;
- mdb(Nre, une, 756);
- bcb(1245, 1, {}, G$c);
- _2.Je = function H$c(a) {
- return S6c(a.a, a.b);
- };
- mdb(Nre, vne, 1245);
- bcb(1246, 1, {}, I$c);
- _2.Je = function J$c(a) {
- return A$c(this.a, a);
- };
- mdb(Nre, wne, 1246);
- bcb(1247, 1, {}, K$c);
- _2.Je = function L$c(a) {
- return B$c(this.a, a);
- };
- mdb(Nre, xne, 1247);
- bcb(1248, 1, {}, M$c);
- _2.Je = function N$c(a) {
- return C$c(this.a, a);
- };
- mdb(Nre, "ElkGraphImporter/lambda$3$Type", 1248);
- bcb(1249, 1, {}, O$c);
- _2.Je = function P$c(a) {
- return D$c(this.a, a);
- };
- mdb(Nre, yne, 1249);
- bcb(1133, 209, Mle, Q$c);
- _2.Ze = function S$c(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n;
- if (ikd(a, (d0c(), c0c))) {
- n = GD(hkd(a, (J0c(), I0c)));
- f2 = h4c(n4c(), n);
- if (f2) {
- g = BD(hgd(f2.f), 209);
- g.Ze(a, Udd(b, 1));
- }
- }
- jkd(a, Z_c, (C_c(), A_c));
- jkd(a, $_c, (N_c(), K_c));
- jkd(a, __c, (a1c(), _0c));
- h = BD(hkd(a, (J0c(), E0c)), 19).a;
- Odd(b, "Overlap removal", 1);
- Ccb(DD(hkd(a, D0c))) && "null45scanlineOverlaps";
- i3 = new Tqb();
- j = new U$c(i3);
- d = new F$c();
- c2 = z$c(d, a);
- k = true;
- e = 0;
- while (e < h && k) {
- if (Ccb(DD(hkd(a, F0c)))) {
- i3.a.$b();
- cOb(new dOb(j), c2.i);
- if (i3.a.gc() == 0) {
- break;
- }
- c2.e = i3;
- }
- H2c(this.b);
- K2c(this.b, (Y$c(), V$c), (R0c(), Q0c));
- K2c(this.b, W$c, c2.g);
- K2c(this.b, X$c, (s_c(), r_c));
- this.a = F2c(this.b, c2);
- for (m = new olb(this.a); m.a < m.c.c.length; ) {
- l = BD(mlb(m), 51);
- l.pf(c2, Udd(b, 1));
- }
- E$c(d, c2);
- k = Ccb(DD(vNb(c2, (XNb(), WNb))));
- ++e;
- }
- y$c(d, c2);
- Qdd(b);
- };
- mdb(Nre, "OverlapRemovalLayoutProvider", 1133);
- bcb(1134, 1, {}, U$c);
- mdb(Nre, "OverlapRemovalLayoutProvider/lambda$0$Type", 1134);
- bcb(437, 22, { 3: 1, 35: 1, 22: 1, 437: 1 }, Z$c);
- var V$c, W$c, X$c;
- var J_ = ndb(Nre, "SPOrEPhases", 437, CI, _$c, $$c);
- var a_c;
- bcb(1255, 1, {}, d_c);
- mdb(Nre, "ShrinkTree", 1255);
- bcb(1135, 209, Mle, e_c);
- _2.Ze = function f_c(a, b) {
- var c2, d, e, f2, g;
- if (ikd(a, (d0c(), c0c))) {
- g = GD(hkd(a, c0c));
- e = h4c(n4c(), g);
- if (e) {
- f2 = BD(hgd(e.f), 209);
- f2.Ze(a, Udd(b, 1));
- }
- }
- d = new F$c();
- c2 = z$c(d, a);
- c_c(this.a, c2, Udd(b, 1));
- y$c(d, c2);
- };
- mdb(Nre, "ShrinkTreeLayoutProvider", 1135);
- bcb(300, 134, { 3: 1, 300: 1, 94: 1, 134: 1 }, g_c);
- _2.c = false;
- mdb("org.eclipse.elk.alg.spore.graph", "Graph", 300);
- bcb(482, 22, { 3: 1, 35: 1, 22: 1, 482: 1, 246: 1, 234: 1 }, k_c);
- _2.Kf = function m_c() {
- return j_c(this);
- };
- _2.Xf = function l_c() {
- return j_c(this);
- };
- var h_c;
- var N_ = ndb(Ore, Sle, 482, CI, o_c, n_c);
- var p_c;
- bcb(551, 22, { 3: 1, 35: 1, 22: 1, 551: 1, 246: 1, 234: 1 }, t_c);
- _2.Kf = function v_c() {
- return new I1c();
- };
- _2.Xf = function u_c() {
- return new I1c();
- };
- var r_c;
- var O_ = ndb(Ore, "OverlapRemovalStrategy", 551, CI, x_c, w_c);
- var y_c;
- bcb(430, 22, { 3: 1, 35: 1, 22: 1, 430: 1 }, D_c);
- var A_c, B_c;
- var P_ = ndb(Ore, "RootSelection", 430, CI, F_c, E_c);
- var G_c;
- bcb(316, 22, { 3: 1, 35: 1, 22: 1, 316: 1 }, O_c);
- var I_c, J_c, K_c, L_c, M_c;
- var Q_ = ndb(Ore, "SpanningTreeCostFunction", 316, CI, Q_c, P_c);
- var R_c;
- bcb(1002, 1, ale, f0c);
- _2.Qe = function g0c(a) {
- e0c(a);
- };
- var T_c, U_c, V_c, W_c, X_c, Y_c, Z_c, $_c, __c, a0c, b0c, c0c;
- mdb(Ore, "SporeCompactionOptions", 1002);
- bcb(1003, 1, {}, h0c);
- _2.$e = function i0c() {
- var a;
- return a = new e_c(), a;
- };
- _2._e = function j0c(a) {
- };
- mdb(Ore, "SporeCompactionOptions/SporeCompactionFactory", 1003);
- bcb(855, 1, ale, B0c);
- _2.Qe = function C0c(a) {
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Qre), ""), "Underlying Layout Algorithm"), "A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Vre), "structure"), "Structure Extraction Strategy"), "This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."), y0c), V5c), W_), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rre), $re), "Tree Construction Strategy"), "Whether a minimum spanning tree or a maximum spanning tree should be constructed."), w0c), V5c), X_), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Sre), $re), "Cost Function for Spanning Tree"), "The cost function is used in the creation of the spanning tree."), u0c), V5c), Q_), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tre), $re), "Root node for spanning tree construction"), "The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."), null), Z5c), ZI), pqb(L5c))));
- o4c(a, Tre, Ure, q0c);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ure), $re), "Root selection for spanning tree"), "This sets the method used to select a root node for the construction of a spanning tree"), s0c), V5c), P_), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Wre), Bpe), "Compaction Strategy"), "This option defines how the compaction is applied."), l0c), V5c), N_), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xre), Bpe), "Orthogonal Compaction"), "Restricts the translation of nodes to orthogonal directions in the compaction phase."), (Bcb(), false)), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yre), _re), "Upper limit for iterations of overlap removal"), null), meb(64)), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zre), _re), "Whether to run a supplementary scanline overlap check."), null), true), T5c), wI), pqb(L5c))));
- K0c((new L0c(), a));
- e0c((new f0c(), a));
- };
- var k0c, l0c, m0c, n0c, o0c, p0c, q0c, r0c, s0c, t0c, u0c, v0c, w0c, x0c, y0c, z0c;
- mdb(Ore, "SporeMetaDataProvider", 855);
- bcb(_ie, 1, ale, L0c);
- _2.Qe = function M0c(a) {
- K0c(a);
- };
- var D0c, E0c, F0c, G0c, H0c, I0c;
- mdb(Ore, "SporeOverlapRemovalOptions", _ie);
- bcb(1001, 1, {}, N0c);
- _2.$e = function O0c() {
- var a;
- return a = new Q$c(), a;
- };
- _2._e = function P0c(a) {
- };
- mdb(Ore, "SporeOverlapRemovalOptions/SporeOverlapFactory", 1001);
- bcb(530, 22, { 3: 1, 35: 1, 22: 1, 530: 1, 246: 1, 234: 1 }, T0c);
- _2.Kf = function V0c() {
- return S0c(this);
- };
- _2.Xf = function U0c() {
- return S0c(this);
- };
- var Q0c;
- var W_ = ndb(Ore, "StructureExtractionStrategy", 530, CI, X0c, W0c);
- var Y0c;
- bcb(429, 22, { 3: 1, 35: 1, 22: 1, 429: 1, 246: 1, 234: 1 }, c1c);
- _2.Kf = function e1c() {
- return b1c(this);
- };
- _2.Xf = function d1c() {
- return b1c(this);
- };
- var $0c, _0c;
- var X_ = ndb(Ore, "TreeConstructionStrategy", 429, CI, g1c, f1c);
- var h1c;
- bcb(1443, 1, Bqe, k1c);
- _2.Yf = function l1c(a) {
- return BD(a, 300), new j3c();
- };
- _2.pf = function m1c(a, b) {
- j1c(BD(a, 300), b);
- };
- mdb(bse, "DelaunayTriangulationPhase", 1443);
- bcb(1444, 1, qie, n1c);
- _2.td = function o1c(a) {
- Ekb(this.a, BD(a, 65).a);
- };
- mdb(bse, "DelaunayTriangulationPhase/lambda$0$Type", 1444);
- bcb(783, 1, Bqe, s1c);
- _2.Yf = function t1c(a) {
- return BD(a, 300), new j3c();
- };
- _2.pf = function u1c(a, b) {
- this.ng(BD(a, 300), b);
- };
- _2.ng = function v1c(a, b) {
- var c2, d, e;
- Odd(b, "Minimum spanning tree construction", 1);
- a.d ? d = a.d.a : d = BD(Ikb(a.i, 0), 65).a;
- Ccb(DD(vNb(a, (XNb(), VNb)))) ? e = UCb(a.e, d, (c2 = a.b, c2)) : e = UCb(a.e, d, a.b);
- q1c(this, e, a);
- Qdd(b);
- };
- mdb(cse, "MinSTPhase", 783);
- bcb(1446, 783, Bqe, w1c);
- _2.ng = function y1c(a, b) {
- var c2, d, e, f2;
- Odd(b, "Maximum spanning tree construction", 1);
- c2 = new z1c(a);
- a.d ? e = a.d.c : e = BD(Ikb(a.i, 0), 65).c;
- Ccb(DD(vNb(a, (XNb(), VNb)))) ? f2 = UCb(a.e, e, (d = c2, d)) : f2 = UCb(a.e, e, c2);
- q1c(this, f2, a);
- Qdd(b);
- };
- mdb(cse, "MaxSTPhase", 1446);
- bcb(1447, 1, {}, z1c);
- _2.Je = function A1c(a) {
- return x1c(this.a, a);
- };
- mdb(cse, "MaxSTPhase/lambda$0$Type", 1447);
- bcb(1445, 1, qie, B1c);
- _2.td = function C1c(a) {
- r1c(this.a, BD(a, 65));
- };
- mdb(cse, "MinSTPhase/lambda$0$Type", 1445);
- bcb(785, 1, Bqe, I1c);
- _2.Yf = function J1c(a) {
- return BD(a, 300), new j3c();
- };
- _2.pf = function K1c(a, b) {
- H1c(this, BD(a, 300), b);
- };
- _2.a = false;
- mdb(dse, "GrowTreePhase", 785);
- bcb(786, 1, qie, L1c);
- _2.td = function M1c(a) {
- G1c(this.a, this.b, this.c, BD(a, 221));
- };
- mdb(dse, "GrowTreePhase/lambda$0$Type", 786);
- bcb(1448, 1, Bqe, Q1c);
- _2.Yf = function R1c(a) {
- return BD(a, 300), new j3c();
- };
- _2.pf = function S1c(a, b) {
- P1c(this, BD(a, 300), b);
- };
- mdb(dse, "ShrinkTreeCompactionPhase", 1448);
- bcb(784, 1, qie, T1c);
- _2.td = function U1c(a) {
- O1c(this.a, this.b, this.c, BD(a, 221));
- };
- mdb(dse, "ShrinkTreeCompactionPhase/lambda$0$Type", 784);
- var g2 = odb(yqe, "IGraphElementVisitor");
- bcb(860, 1, { 527: 1 }, b2c);
- _2.og = function e2c(a) {
- var b;
- b = a2c(this, a);
- tNb(b, BD(Ohb(this.b, a), 94));
- $1c(this, a, b);
- };
- var V1c, W1c;
- mdb(Nle, "LayoutConfigurator", 860);
- var h0 = odb(Nle, "LayoutConfigurator/IPropertyHolderOptionFilter");
- bcb(932, 1, { 1933: 1 }, f2c);
- _2.pg = function g2c(a, b) {
- return Y1c(), !a.Xe(b);
- };
- mdb(Nle, "LayoutConfigurator/lambda$0$Type", 932);
- bcb(933, 1, { 1933: 1 }, i2c);
- _2.pg = function j2c(a, b) {
- return h2c(a, b);
- };
- mdb(Nle, "LayoutConfigurator/lambda$1$Type", 933);
- bcb(931, 1, { 831: 1 }, k2c);
- _2.qg = function l2c(a, b) {
- return Y1c(), !a.Xe(b);
- };
- mdb(Nle, "LayoutConfigurator/lambda$2$Type", 931);
- bcb(934, 1, Oie, m2c);
- _2.Mb = function n2c(a) {
- return d2c(this.a, this.b, BD(a, 1933));
- };
- mdb(Nle, "LayoutConfigurator/lambda$3$Type", 934);
- bcb(858, 1, {}, w2c);
- mdb(Nle, "RecursiveGraphLayoutEngine", 858);
- bcb(296, 60, Tie, x2c, y2c);
- mdb(Nle, "UnsupportedConfigurationException", 296);
- bcb(453, 60, Tie, z2c);
- mdb(Nle, "UnsupportedGraphException", 453);
- bcb(754, 1, {});
- mdb(yqe, "AbstractRandomListAccessor", 754);
- bcb(500, 754, {}, L2c);
- _2.rg = function N2c() {
- return null;
- };
- _2.d = true;
- _2.e = true;
- _2.f = 0;
- mdb(fse, "AlgorithmAssembler", 500);
- bcb(1236, 1, Oie, O2c);
- _2.Mb = function P2c(a) {
- return !!BD(a, 123);
- };
- mdb(fse, "AlgorithmAssembler/lambda$0$Type", 1236);
- bcb(1237, 1, {}, Q2c);
- _2.Kb = function R2c(a) {
- return M2c(this.a, BD(a, 123));
- };
- mdb(fse, "AlgorithmAssembler/lambda$1$Type", 1237);
- bcb(1238, 1, Oie, S2c);
- _2.Mb = function T2c(a) {
- return !!BD(a, 80);
- };
- mdb(fse, "AlgorithmAssembler/lambda$2$Type", 1238);
- bcb(1239, 1, qie, U2c);
- _2.td = function V2c(a) {
- d3c(this.a, BD(a, 80));
- };
- mdb(fse, "AlgorithmAssembler/lambda$3$Type", 1239);
- bcb(1240, 1, qie, W2c);
- _2.td = function X2c(a) {
- G2c(this.a, this.b, BD(a, 234));
- };
- mdb(fse, "AlgorithmAssembler/lambda$4$Type", 1240);
- bcb(1355, 1, Dke, Z2c);
- _2.ue = function $2c(a, b) {
- return Y2c(BD(a, 234), BD(b, 234));
- };
- _2.Fb = function _2c(a) {
- return this === a;
- };
- _2.ve = function a3c() {
- return new tpb(this);
- };
- mdb(fse, "EnumBasedFactoryComparator", 1355);
- bcb(80, 754, { 80: 1 }, j3c);
- _2.rg = function l3c() {
- return new Tqb();
- };
- _2.a = 0;
- mdb(fse, "LayoutProcessorConfiguration", 80);
- bcb(1013, 1, { 527: 1 }, q3c);
- _2.og = function u3c(a) {
- stb(n3c, new z3c(a));
- };
- var m3c, n3c, o3c;
- mdb(Xke, "DeprecatedLayoutOptionReplacer", 1013);
- bcb(1014, 1, qie, v3c);
- _2.td = function w3c(a) {
- r3c(BD(a, 160));
- };
- mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$0$Type", 1014);
- bcb(1015, 1, qie, x3c);
- _2.td = function y3c(a) {
- s3c(BD(a, 160));
- };
- mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$1$Type", 1015);
- bcb(1016, 1, {}, z3c);
- _2.Od = function A3c(a, b) {
- t3c(this.a, BD(a, 146), BD(b, 38));
- };
- mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$2$Type", 1016);
- bcb(149, 1, { 686: 1, 149: 1 }, E3c);
- _2.Fb = function F3c(a) {
- return C3c(this, a);
- };
- _2.sg = function G3c() {
- return this.b;
- };
- _2.tg = function H3c() {
- return this.c;
- };
- _2.ne = function I3c() {
- return this.e;
- };
- _2.Hb = function J3c() {
- return LCb(this.c);
- };
- _2.Ib = function K3c() {
- return "Layout Algorithm: " + this.c;
- };
- var E0 = mdb(Xke, "LayoutAlgorithmData", 149);
- bcb(263, 1, {}, R3c);
- mdb(Xke, "LayoutAlgorithmData/Builder", 263);
- bcb(1017, 1, { 527: 1 }, U3c);
- _2.og = function V3c(a) {
- JD(a, 239) && !Ccb(DD(a.We((Y9c(), d9c)))) && S3c(BD(a, 33));
- };
- mdb(Xke, "LayoutAlgorithmResolver", 1017);
- bcb(229, 1, { 686: 1, 229: 1 }, W3c);
- _2.Fb = function X3c(a) {
- if (JD(a, 229)) {
- return dfb(this.b, BD(a, 229).b);
- }
- return false;
- };
- _2.sg = function Y3c() {
- return this.a;
- };
- _2.tg = function Z3c() {
- return this.b;
- };
- _2.ne = function $3c() {
- return this.d;
- };
- _2.Hb = function _3c() {
- return LCb(this.b);
- };
- _2.Ib = function a4c() {
- return "Layout Type: " + this.b;
- };
- mdb(Xke, "LayoutCategoryData", 229);
- bcb(344, 1, {}, e4c);
- mdb(Xke, "LayoutCategoryData/Builder", 344);
- bcb(867, 1, {}, m4c);
- var f4c;
- mdb(Xke, "LayoutMetaDataService", 867);
- bcb(868, 1, {}, v4c);
- mdb(Xke, "LayoutMetaDataService/Registry", 868);
- bcb(478, 1, { 478: 1 }, w4c);
- mdb(Xke, "LayoutMetaDataService/Registry/Triple", 478);
- bcb(869, 1, gse, x4c);
- _2.ug = function y4c() {
- return new d7c();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$0$Type", 869);
- bcb(870, 1, hse, z4c);
- _2.vg = function A4c(a) {
- return R6c(BD(a, 8));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$1$Type", 870);
- bcb(879, 1, gse, B4c);
- _2.ug = function C4c() {
- return new Rkb();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$10$Type", 879);
- bcb(880, 1, hse, D4c);
- _2.vg = function E4c(a) {
- return new Tkb(BD(a, 12));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$11$Type", 880);
- bcb(881, 1, gse, F4c);
- _2.ug = function G4c() {
- return new Psb();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$12$Type", 881);
- bcb(882, 1, hse, H4c);
- _2.vg = function I4c(a) {
- return Ru(BD(a, 68));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$13$Type", 882);
- bcb(883, 1, gse, J4c);
- _2.ug = function K4c() {
- return new Tqb();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$14$Type", 883);
- bcb(884, 1, hse, L4c);
- _2.vg = function M4c(a) {
- return Dx(BD(a, 53));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$15$Type", 884);
- bcb(885, 1, gse, N4c);
- _2.ug = function O4c() {
- return new zsb();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$16$Type", 885);
- bcb(886, 1, hse, P4c);
- _2.vg = function Q4c(a) {
- return Gx(BD(a, 53));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$17$Type", 886);
- bcb(887, 1, gse, R4c);
- _2.ug = function S4c() {
- return new Gxb();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$18$Type", 887);
- bcb(888, 1, hse, T4c);
- _2.vg = function U4c(a) {
- return Hx(BD(a, 208));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$19$Type", 888);
- bcb(871, 1, gse, V4c);
- _2.ug = function W4c() {
- return new s7c();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$2$Type", 871);
- bcb(872, 1, hse, X4c);
- _2.vg = function Y4c(a) {
- return new t7c(BD(a, 74));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$3$Type", 872);
- bcb(873, 1, gse, Z4c);
- _2.ug = function $4c() {
- return new H_b();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$4$Type", 873);
- bcb(874, 1, hse, _4c);
- _2.vg = function a5c(a) {
- return new K_b(BD(a, 142));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$5$Type", 874);
- bcb(875, 1, gse, b5c);
- _2.ug = function c5c() {
- return new p0b();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$6$Type", 875);
- bcb(876, 1, hse, d5c);
- _2.vg = function e5c(a) {
- return new r0b(BD(a, 116));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$7$Type", 876);
- bcb(877, 1, gse, f5c);
- _2.ug = function g5c() {
- return new _fd();
- };
- mdb(Xke, "LayoutMetaDataService/lambda$8$Type", 877);
- bcb(878, 1, hse, h5c);
- _2.vg = function i5c(a) {
- return new agd(BD(a, 373));
- };
- mdb(Xke, "LayoutMetaDataService/lambda$9$Type", 878);
- var Q3 = odb(Hle, "IProperty");
- bcb(23, 1, { 35: 1, 686: 1, 23: 1, 146: 1 }, p5c);
- _2.wd = function q5c(a) {
- return k5c(this, BD(a, 146));
- };
- _2.Fb = function r5c(a) {
- return JD(a, 23) ? dfb(this.f, BD(a, 23).f) : JD(a, 146) && dfb(this.f, BD(a, 146).tg());
- };
- _2.wg = function s5c() {
- var a;
- if (JD(this.b, 4)) {
- a = fvd(this.b);
- if (a == null) {
- throw vbb(new Zdb(mse + this.f + "'. Make sure it's type is registered with the " + (fdb(Y3), Y3.k) + jse));
- }
- return a;
- } else {
- return this.b;
- }
- };
- _2.sg = function t5c() {
- return this.d;
- };
- _2.tg = function u5c() {
- return this.f;
- };
- _2.ne = function v5c() {
- return this.i;
- };
- _2.Hb = function w5c() {
- return LCb(this.f);
- };
- _2.Ib = function x5c() {
- return "Layout Option: " + this.f;
- };
- mdb(Xke, "LayoutOptionData", 23);
- bcb(24, 1, {}, H5c);
- mdb(Xke, "LayoutOptionData/Builder", 24);
- bcb(175, 22, { 3: 1, 35: 1, 22: 1, 175: 1 }, O5c);
- var I5c, J5c, K5c, L5c, M5c;
- var e1 = ndb(Xke, "LayoutOptionData/Target", 175, CI, Q5c, P5c);
- var R5c;
- bcb(277, 22, { 3: 1, 35: 1, 22: 1, 277: 1 }, a6c);
- var T5c, U5c, V5c, W5c, X5c, Y5c, Z5c, $5c;
- var f1 = ndb(Xke, "LayoutOptionData/Type", 277, CI, c6c, b6c);
- var d6c;
- var f6c;
- var h6c;
- bcb(110, 1, { 110: 1 }, I6c, J6c, K6c);
- _2.Fb = function L6c(a) {
- var b;
- if (a == null || !JD(a, 110)) {
- return false;
- }
- b = BD(a, 110);
- return wtb(this.c, b.c) && wtb(this.d, b.d) && wtb(this.b, b.b) && wtb(this.a, b.a);
- };
- _2.Hb = function M6c() {
- return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d, this.b, this.a]));
- };
- _2.Ib = function N6c() {
- return "Rect[x=" + this.c + ",y=" + this.d + ",w=" + this.b + ",h=" + this.a + "]";
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- mdb(pne, "ElkRectangle", 110);
- bcb(8, 1, { 3: 1, 4: 1, 8: 1, 414: 1 }, d7c, e7c, f7c, g7c);
- _2.Fb = function h7c(a) {
- return T6c(this, a);
- };
- _2.Hb = function i7c() {
- return Hdb(this.a) + jeb(Hdb(this.b));
- };
- _2.Jf = function k7c(b) {
- var c2, d, e, f2;
- e = 0;
- while (e < b.length && j7c((BCb(e, b.length), b.charCodeAt(e)), mne)) {
- ++e;
- }
- c2 = b.length;
- while (c2 > 0 && j7c((BCb(c2 - 1, b.length), b.charCodeAt(c2 - 1)), nne)) {
- --c2;
+ }
+ }, "_loop2");
+ for (var i2 = 0; i2 < numListenersBeforeEmit; i2++) {
+ _loop2(i2);
+ }
+ if (self2.bubble(self2.context) && !eventObj.isPropagationStopped()) {
+ self2.parent(self2.context).emit(eventObj, extraParams);
+ }
+ }, events);
+ this.emitting--;
+ return this;
+ };
+ emitterOptions$1 = {
+ qualifierCompare: /* @__PURE__ */ __name(function qualifierCompare2(selector1, selector2) {
+ if (selector1 == null || selector2 == null) {
+ return selector1 == null && selector2 == null;
+ } else {
+ return selector1.sameText(selector2);
+ }
+ }, "qualifierCompare"),
+ eventMatches: /* @__PURE__ */ __name(function eventMatches2(ele, listener, eventObj) {
+ var selector = listener.qualifier;
+ if (selector != null) {
+ return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);
+ }
+ return true;
+ }, "eventMatches"),
+ addEventFields: /* @__PURE__ */ __name(function addEventFields2(ele, evt) {
+ evt.cy = ele.cy();
+ evt.target = ele;
+ }, "addEventFields"),
+ callbackContext: /* @__PURE__ */ __name(function callbackContext2(ele, listener, eventObj) {
+ return listener.qualifier != null ? eventObj.target : ele;
+ }, "callbackContext"),
+ beforeEmit: /* @__PURE__ */ __name(function beforeEmit2(context, listener) {
+ if (listener.conf && listener.conf.once) {
+ listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);
+ }
+ }, "beforeEmit"),
+ bubble: /* @__PURE__ */ __name(function bubble2() {
+ return true;
+ }, "bubble"),
+ parent: /* @__PURE__ */ __name(function parent3(ele) {
+ return ele.isChild() ? ele.parent() : ele.cy();
+ }, "parent")
+ };
+ argSelector$1 = /* @__PURE__ */ __name(function argSelector(arg) {
+ if (string(arg)) {
+ return new Selector(arg);
+ } else {
+ return arg;
+ }
+ }, "argSelector");
+ elesfn$9 = {
+ createEmitter: /* @__PURE__ */ __name(function createEmitter() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var _p = ele._private;
+ if (!_p.emitter) {
+ _p.emitter = new Emitter2(emitterOptions$1, ele);
+ }
+ }
+ return this;
+ }, "createEmitter"),
+ emitter: /* @__PURE__ */ __name(function emitter() {
+ return this._private.emitter;
+ }, "emitter"),
+ on: /* @__PURE__ */ __name(function on(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().on(events, argSel, callback);
+ }
+ return this;
+ }, "on"),
+ removeListener: /* @__PURE__ */ __name(function removeListener(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().removeListener(events, argSel, callback);
+ }
+ return this;
+ }, "removeListener"),
+ removeAllListeners: /* @__PURE__ */ __name(function removeAllListeners() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().removeAllListeners();
+ }
+ return this;
+ }, "removeAllListeners"),
+ one: /* @__PURE__ */ __name(function one2(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().one(events, argSel, callback);
+ }
+ return this;
+ }, "one"),
+ once: /* @__PURE__ */ __name(function once(events, selector, callback) {
+ var argSel = argSelector$1(selector);
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().on(events, argSel, callback, {
+ once: true,
+ onceCollection: this
+ });
+ }
+ }, "once"),
+ emit: /* @__PURE__ */ __name(function emit(events, extraParams) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ ele.emitter().emit(events, extraParams);
+ }
+ return this;
+ }, "emit"),
+ emitAndNotify: /* @__PURE__ */ __name(function emitAndNotify(event3, extraParams) {
+ if (this.length === 0) {
+ return;
+ }
+ this.cy().notify(event3, this);
+ this.emit(event3, extraParams);
+ return this;
+ }, "emitAndNotify")
+ };
+ define2.eventAliasesOn(elesfn$9);
+ elesfn$8 = {
+ nodes: /* @__PURE__ */ __name(function nodes3(selector) {
+ return this.filter(function(ele) {
+ return ele.isNode();
+ }).filter(selector);
+ }, "nodes"),
+ edges: /* @__PURE__ */ __name(function edges3(selector) {
+ return this.filter(function(ele) {
+ return ele.isEdge();
+ }).filter(selector);
+ }, "edges"),
+ // internal helper to get nodes and edges as separate collections with single iteration over elements
+ byGroup: /* @__PURE__ */ __name(function byGroup() {
+ var nodes6 = this.spawn();
+ var edges5 = this.spawn();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ if (ele.isNode()) {
+ nodes6.push(ele);
+ } else {
+ edges5.push(ele);
+ }
+ }
+ return {
+ nodes: nodes6,
+ edges: edges5
+ };
+ }, "byGroup"),
+ filter: /* @__PURE__ */ __name(function filter5(_filter, thisArg) {
+ if (_filter === void 0) {
+ return this;
+ } else if (string(_filter) || elementOrCollection(_filter)) {
+ return new Selector(_filter).filter(this);
+ } else if (fn$6(_filter)) {
+ var filterEles = this.spawn();
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var include = thisArg ? _filter.apply(thisArg, [ele, i2, eles]) : _filter(ele, i2, eles);
+ if (include) {
+ filterEles.push(ele);
}
- if (e >= c2) {
- throw vbb(new Wdb("The given string does not contain any numbers."));
+ }
+ return filterEles;
+ }
+ return this.spawn();
+ }, "filter"),
+ not: /* @__PURE__ */ __name(function not(toRemove) {
+ if (!toRemove) {
+ return this;
+ } else {
+ if (string(toRemove)) {
+ toRemove = this.filter(toRemove);
+ }
+ var elements3 = this.spawn();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var element3 = this[i2];
+ var remove3 = toRemove.has(element3);
+ if (!remove3) {
+ elements3.push(element3);
}
- f2 = mfb(b.substr(e, c2 - e), ",|;|\r|\n");
- if (f2.length != 2) {
- throw vbb(new Wdb("Exactly two numbers are expected, " + f2.length + " were found."));
+ }
+ return elements3;
+ }
+ }, "not"),
+ absoluteComplement: /* @__PURE__ */ __name(function absoluteComplement() {
+ var cy = this.cy();
+ return cy.mutableElements().not(this);
+ }, "absoluteComplement"),
+ intersect: /* @__PURE__ */ __name(function intersect2(other) {
+ if (string(other)) {
+ var selector = other;
+ return this.filter(selector);
+ }
+ var elements3 = this.spawn();
+ var col1 = this;
+ var col2 = other;
+ var col1Smaller = this.length < other.length;
+ var colS = col1Smaller ? col1 : col2;
+ var colL = col1Smaller ? col2 : col1;
+ for (var i2 = 0; i2 < colS.length; i2++) {
+ var ele = colS[i2];
+ if (colL.has(ele)) {
+ elements3.push(ele);
+ }
+ }
+ return elements3;
+ }, "intersect"),
+ xor: /* @__PURE__ */ __name(function xor(other) {
+ var cy = this._private.cy;
+ if (string(other)) {
+ other = cy.$(other);
+ }
+ var elements3 = this.spawn();
+ var col1 = this;
+ var col2 = other;
+ var add3 = /* @__PURE__ */ __name(function add4(col, other2) {
+ for (var i2 = 0; i2 < col.length; i2++) {
+ var ele = col[i2];
+ var id27 = ele._private.data.id;
+ var inOther = other2.hasElementWithId(id27);
+ if (!inOther) {
+ elements3.push(ele);
}
- try {
- this.a = Hcb(ufb(f2[0]));
- this.b = Hcb(ufb(f2[1]));
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- d = a;
- throw vbb(new Wdb(one2 + d));
- } else
- throw vbb(a);
+ }
+ }, "add");
+ add3(col1, col2);
+ add3(col2, col1);
+ return elements3;
+ }, "xor"),
+ diff: /* @__PURE__ */ __name(function diff(other) {
+ var cy = this._private.cy;
+ if (string(other)) {
+ other = cy.$(other);
+ }
+ var left3 = this.spawn();
+ var right3 = this.spawn();
+ var both = this.spawn();
+ var col1 = this;
+ var col2 = other;
+ var add3 = /* @__PURE__ */ __name(function add4(col, other2, retEles) {
+ for (var i2 = 0; i2 < col.length; i2++) {
+ var ele = col[i2];
+ var id27 = ele._private.data.id;
+ var inOther = other2.hasElementWithId(id27);
+ if (inOther) {
+ both.merge(ele);
+ } else {
+ retEles.push(ele);
}
- };
- _2.Ib = function m7c() {
- return "(" + this.a + "," + this.b + ")";
- };
- _2.a = 0;
- _2.b = 0;
- var m1 = mdb(pne, "KVector", 8);
- bcb(74, 68, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1, 74: 1, 414: 1 }, s7c, t7c, u7c);
- _2.Pc = function x7c() {
- return r7c(this);
- };
- _2.Jf = function v7c(b) {
- var c2, d, e, f2, g, h;
- e = mfb(b, ",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n");
- Osb(this);
- try {
- d = 0;
- g = 0;
- f2 = 0;
- h = 0;
- while (d < e.length) {
- if (e[d] != null && ufb(e[d]).length > 0) {
- g % 2 == 0 ? f2 = Hcb(e[d]) : h = Hcb(e[d]);
- g > 0 && g % 2 != 0 && Dsb(this, new f7c(f2, h));
- ++g;
- }
- ++d;
- }
- } catch (a) {
- a = ubb(a);
- if (JD(a, 127)) {
- c2 = a;
- throw vbb(new Wdb("The given string does not match the expected format for vectors." + c2));
- } else
- throw vbb(a);
+ }
+ }, "add");
+ add3(col1, col2, left3);
+ add3(col2, col1, right3);
+ return {
+ left: left3,
+ right: right3,
+ both
+ };
+ }, "diff"),
+ add: /* @__PURE__ */ __name(function add(toAdd) {
+ var cy = this._private.cy;
+ if (!toAdd) {
+ return this;
+ }
+ if (string(toAdd)) {
+ var selector = toAdd;
+ toAdd = cy.mutableElements().filter(selector);
+ }
+ var elements3 = this.spawnSelf();
+ for (var i2 = 0; i2 < toAdd.length; i2++) {
+ var ele = toAdd[i2];
+ var add3 = !this.has(ele);
+ if (add3) {
+ elements3.push(ele);
+ }
+ }
+ return elements3;
+ }, "add"),
+ // in place merge on calling collection
+ merge: /* @__PURE__ */ __name(function merge3(toAdd) {
+ var _p = this._private;
+ var cy = _p.cy;
+ if (!toAdd) {
+ return this;
+ }
+ if (toAdd && string(toAdd)) {
+ var selector = toAdd;
+ toAdd = cy.mutableElements().filter(selector);
+ }
+ var map5 = _p.map;
+ for (var i2 = 0; i2 < toAdd.length; i2++) {
+ var toAddEle = toAdd[i2];
+ var id27 = toAddEle._private.data.id;
+ var add3 = !map5.has(id27);
+ if (add3) {
+ var index = this.length++;
+ this[index] = toAddEle;
+ map5.set(id27, {
+ ele: toAddEle,
+ index
+ });
+ }
+ }
+ return this;
+ }, "merge"),
+ unmergeAt: /* @__PURE__ */ __name(function unmergeAt(i2) {
+ var ele = this[i2];
+ var id27 = ele.id();
+ var _p = this._private;
+ var map5 = _p.map;
+ this[i2] = void 0;
+ map5["delete"](id27);
+ var unmergedLastEle = i2 === this.length - 1;
+ if (this.length > 1 && !unmergedLastEle) {
+ var lastEleI = this.length - 1;
+ var lastEle = this[lastEleI];
+ var lastEleId = lastEle._private.data.id;
+ this[lastEleI] = void 0;
+ this[i2] = lastEle;
+ map5.set(lastEleId, {
+ ele: lastEle,
+ index: i2
+ });
+ }
+ this.length--;
+ return this;
+ }, "unmergeAt"),
+ // remove single ele in place in calling collection
+ unmergeOne: /* @__PURE__ */ __name(function unmergeOne(ele) {
+ ele = ele[0];
+ var _p = this._private;
+ var id27 = ele._private.data.id;
+ var map5 = _p.map;
+ var entry = map5.get(id27);
+ if (!entry) {
+ return this;
+ }
+ var i2 = entry.index;
+ this.unmergeAt(i2);
+ return this;
+ }, "unmergeOne"),
+ // remove eles in place on calling collection
+ unmerge: /* @__PURE__ */ __name(function unmerge(toRemove) {
+ var cy = this._private.cy;
+ if (!toRemove) {
+ return this;
+ }
+ if (toRemove && string(toRemove)) {
+ var selector = toRemove;
+ toRemove = cy.mutableElements().filter(selector);
+ }
+ for (var i2 = 0; i2 < toRemove.length; i2++) {
+ this.unmergeOne(toRemove[i2]);
+ }
+ return this;
+ }, "unmerge"),
+ unmergeBy: /* @__PURE__ */ __name(function unmergeBy(toRmFn) {
+ for (var i2 = this.length - 1; i2 >= 0; i2--) {
+ var ele = this[i2];
+ if (toRmFn(ele)) {
+ this.unmergeAt(i2);
+ }
+ }
+ return this;
+ }, "unmergeBy"),
+ map: /* @__PURE__ */ __name(function map3(mapFn, thisArg) {
+ var arr = [];
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var ret = thisArg ? mapFn.apply(thisArg, [ele, i2, eles]) : mapFn(ele, i2, eles);
+ arr.push(ret);
+ }
+ return arr;
+ }, "map"),
+ reduce: /* @__PURE__ */ __name(function reduce2(fn3, initialValue) {
+ var val = initialValue;
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ val = fn3(val, eles[i2], i2, eles);
+ }
+ return val;
+ }, "reduce"),
+ max: /* @__PURE__ */ __name(function max8(valFn, thisArg) {
+ var max10 = -Infinity;
+ var maxEle;
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles);
+ if (val > max10) {
+ max10 = val;
+ maxEle = ele;
+ }
+ }
+ return {
+ value: max10,
+ ele: maxEle
+ };
+ }, "max"),
+ min: /* @__PURE__ */ __name(function min7(valFn, thisArg) {
+ var min9 = Infinity;
+ var minEle;
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles);
+ if (val < min9) {
+ min9 = val;
+ minEle = ele;
+ }
+ }
+ return {
+ value: min9,
+ ele: minEle
+ };
+ }, "min")
+ };
+ fn$1 = elesfn$8;
+ fn$1["u"] = fn$1["|"] = fn$1["+"] = fn$1.union = fn$1.or = fn$1.add;
+ fn$1["\\"] = fn$1["!"] = fn$1["-"] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;
+ fn$1["n"] = fn$1["&"] = fn$1["."] = fn$1.and = fn$1.intersection = fn$1.intersect;
+ fn$1["^"] = fn$1["(+)"] = fn$1["(-)"] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;
+ fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;
+ fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;
+ elesfn$7 = {
+ isNode: /* @__PURE__ */ __name(function isNode() {
+ return this.group() === "nodes";
+ }, "isNode"),
+ isEdge: /* @__PURE__ */ __name(function isEdge() {
+ return this.group() === "edges";
+ }, "isEdge"),
+ isLoop: /* @__PURE__ */ __name(function isLoop() {
+ return this.isEdge() && this.source()[0] === this.target()[0];
+ }, "isLoop"),
+ isSimple: /* @__PURE__ */ __name(function isSimple() {
+ return this.isEdge() && this.source()[0] !== this.target()[0];
+ }, "isSimple"),
+ group: /* @__PURE__ */ __name(function group() {
+ var ele = this[0];
+ if (ele) {
+ return ele._private.group;
+ }
+ }, "group")
+ };
+ zIndexSort = /* @__PURE__ */ __name(function zIndexSort2(a2, b2) {
+ var cy = a2.cy();
+ var hasCompoundNodes2 = cy.hasCompoundNodes();
+ function getDepth(ele) {
+ var style3 = ele.pstyle("z-compound-depth");
+ if (style3.value === "auto") {
+ return hasCompoundNodes2 ? ele.zDepth() : 0;
+ } else if (style3.value === "bottom") {
+ return -1;
+ } else if (style3.value === "top") {
+ return MAX_INT$1;
+ }
+ return 0;
+ }
+ __name(getDepth, "getDepth");
+ var depthDiff = getDepth(a2) - getDepth(b2);
+ if (depthDiff !== 0) {
+ return depthDiff;
+ }
+ function getEleDepth(ele) {
+ var style3 = ele.pstyle("z-index-compare");
+ if (style3.value === "auto") {
+ return ele.isNode() ? 1 : 0;
+ }
+ return 0;
+ }
+ __name(getEleDepth, "getEleDepth");
+ var eleDiff = getEleDepth(a2) - getEleDepth(b2);
+ if (eleDiff !== 0) {
+ return eleDiff;
+ }
+ var zDiff = a2.pstyle("z-index").value - b2.pstyle("z-index").value;
+ if (zDiff !== 0) {
+ return zDiff;
+ }
+ return a2.poolIndex() - b2.poolIndex();
+ }, "zIndexSort");
+ elesfn$6 = {
+ forEach: /* @__PURE__ */ __name(function forEach2(fn3, thisArg) {
+ if (fn$6(fn3)) {
+ var N2 = this.length;
+ for (var i2 = 0; i2 < N2; i2++) {
+ var ele = this[i2];
+ var ret = thisArg ? fn3.apply(thisArg, [ele, i2, this]) : fn3(ele, i2, this);
+ if (ret === false) {
+ break;
}
+ }
+ }
+ return this;
+ }, "forEach"),
+ toArray: /* @__PURE__ */ __name(function toArray() {
+ var array4 = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ array4.push(this[i2]);
+ }
+ return array4;
+ }, "toArray"),
+ slice: /* @__PURE__ */ __name(function slice2(start3, end2) {
+ var array4 = [];
+ var thisSize = this.length;
+ if (end2 == null) {
+ end2 = thisSize;
+ }
+ if (start3 == null) {
+ start3 = 0;
+ }
+ if (start3 < 0) {
+ start3 = thisSize + start3;
+ }
+ if (end2 < 0) {
+ end2 = thisSize + end2;
+ }
+ for (var i2 = start3; i2 >= 0 && i2 < end2 && i2 < thisSize; i2++) {
+ array4.push(this[i2]);
+ }
+ return this.spawn(array4);
+ }, "slice"),
+ size: /* @__PURE__ */ __name(function size3() {
+ return this.length;
+ }, "size"),
+ eq: /* @__PURE__ */ __name(function eq3(i2) {
+ return this[i2] || this.spawn();
+ }, "eq"),
+ first: /* @__PURE__ */ __name(function first2() {
+ return this[0] || this.spawn();
+ }, "first"),
+ last: /* @__PURE__ */ __name(function last2() {
+ return this[this.length - 1] || this.spawn();
+ }, "last"),
+ empty: /* @__PURE__ */ __name(function empty2() {
+ return this.length === 0;
+ }, "empty"),
+ nonempty: /* @__PURE__ */ __name(function nonempty() {
+ return !this.empty();
+ }, "nonempty"),
+ sort: /* @__PURE__ */ __name(function sort2(sortFn) {
+ if (!fn$6(sortFn)) {
+ return this;
+ }
+ var sorted = this.toArray().sort(sortFn);
+ return this.spawn(sorted);
+ }, "sort"),
+ sortByZIndex: /* @__PURE__ */ __name(function sortByZIndex() {
+ return this.sort(zIndexSort);
+ }, "sortByZIndex"),
+ zDepth: /* @__PURE__ */ __name(function zDepth() {
+ var ele = this[0];
+ if (!ele) {
+ return void 0;
+ }
+ var _p = ele._private;
+ var group2 = _p.group;
+ if (group2 === "nodes") {
+ var depth = _p.data.parent ? ele.parents().size() : 0;
+ if (!ele.isParent()) {
+ return MAX_INT$1 - 1;
+ }
+ return depth;
+ } else {
+ var src = _p.source;
+ var tgt = _p.target;
+ var srcDepth = src.zDepth();
+ var tgtDepth = tgt.zDepth();
+ return Math.max(srcDepth, tgtDepth, 0);
+ }
+ }, "zDepth")
+ };
+ elesfn$6.each = elesfn$6.forEach;
+ defineSymbolIterator = /* @__PURE__ */ __name(function defineSymbolIterator2() {
+ var typeofUndef = "undefined";
+ var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef;
+ if (isIteratorSupported) {
+ elesfn$6[Symbol.iterator] = function() {
+ var _this = this;
+ var entry = {
+ value: void 0,
+ done: false
};
- _2.Ib = function y7c() {
- var a, b, c2;
- a = new Wfb("(");
- b = Jsb(this, 0);
- while (b.b != b.d.c) {
- c2 = BD(Xsb(b), 8);
- Qfb(a, c2.a + "," + c2.b);
- b.b != b.d.c && (a.a += "; ", a);
- }
- return (a.a += ")", a).a;
- };
- var l1 = mdb(pne, "KVectorChain", 74);
- bcb(248, 22, { 3: 1, 35: 1, 22: 1, 248: 1 }, G7c);
- var z7c, A7c, B7c, C7c, D7c, E7c;
- var o1 = ndb(ose, "Alignment", 248, CI, I7c, H7c);
- var J7c;
- bcb(979, 1, ale, Z7c);
- _2.Qe = function $7c(a) {
- Y7c(a);
- };
- var L7c, M7c, N7c, O7c, P7c, Q7c, R7c, S7c, T7c, U7c, V7c, W7c;
- mdb(ose, "BoxLayouterOptions", 979);
- bcb(980, 1, {}, _7c);
- _2.$e = function a8c() {
- var a;
- return a = new ged(), a;
- };
- _2._e = function b8c(a) {
- };
- mdb(ose, "BoxLayouterOptions/BoxFactory", 980);
- bcb(291, 22, { 3: 1, 35: 1, 22: 1, 291: 1 }, j8c);
- var c8c, d8c, e8c, f8c, g8c, h8c;
- var r1 = ndb(ose, "ContentAlignment", 291, CI, l8c, k8c);
- var m8c;
- bcb(684, 1, ale, Z9c);
- _2.Qe = function $9c(a) {
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), sse), ""), "Layout Algorithm"), "Select a specific layout algorithm."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c)))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tse), ""), "Resolved Layout Algorithm"), "Meta data associated with the selected algorithm."), Y5c), E0), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $pe), ""), "Alignment"), "Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."), q8c), V5c), o1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), _le), ""), "Aspect Ratio"), "The desired aspect ratio of the drawing, that is the quotient of width by height."), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), use), ""), "Bend Points"), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), Y5c), l1), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lqe), ""), "Content Alignment"), "Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."), x8c), W5c), r1), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zpe), ""), "Debug Mode"), "Whether additional debug information shall be generated."), (Bcb(), false)), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cqe), ""), Cle), "Overall direction of edges: horizontal (right / left) or vertical (down / up)."), A8c), V5c), t12), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ype), ""), "Edge Routing"), "What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."), F8c), V5c), v1), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Jre), ""), "Expand Nodes"), "If active, nodes are expanded to fill the area of their parent."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), tpe), ""), "Hierarchy Handling"), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), K8c), V5c), z1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ame), ""), "Padding"), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), g9c), Y5c), j1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ame), ""), "Interactive"), "Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xqe), ""), "interactive Layout"), "Whether the graph should be changeable interactively and by setting constraints"), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dme), ""), "Omit Node Micro Layout"), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bme), ""), "Port Constraints"), "Defines constraints of the position of the ports of a node."), u9c), V5c), D1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), uqe), ""), "Position"), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), Y5c), m1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [M5c, J5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vme), ""), "Priority"), "Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."), X5c), JI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), yme), ""), "Randomization Seed"), "Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), zme), ""), "Separate Connected Components"), "Whether each connected component should be processed separately."), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mqe), ""), "Junction Points"), "This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."), R8c), Y5c), l1), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pqe), ""), "Comment Box"), "Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."), false), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qqe), ""), "Hypernode"), "Whether the node should be handled as a hypernode."), false), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vse), ""), "Label Manager"), "Label managers can shorten labels upon a layout algorithm's request."), Y5c), h1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), vqe), ""), "Margins"), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), T8c), Y5c), i1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xpe), ""), "No Layout"), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), T5c), wI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wse), ""), "Scale Factor"), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), U5c), BI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xse), ""), "Animate"), "Whether the shift from the old layout to the new computed layout shall be animated."), true), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yse), ""), "Animation Time Factor"), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), meb(100)), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zse), ""), "Layout Ancestors"), "Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ase), ""), "Maximal Animation Time"), "The maximal time for animations, in milliseconds."), meb(4e3)), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bse), ""), "Minimal Animation Time"), "The minimal time for animations, in milliseconds."), meb(400)), X5c), JI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cse), ""), "Progress Bar"), "Whether a progress bar shall be displayed during layout computations."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dse), ""), "Validate Graph"), "Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ese), ""), "Validate Options"), "Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), true), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fse), ""), "Zoom to Fit"), "Whether the zoom level shall be set to view the whole diagram after layout."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rse), "box"), "Box Layout Mode"), "Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."), u8c), V5c), O1), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Lpe), zpe), "Comment Comment Spacing"), "Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mpe), zpe), "Comment Node Spacing"), "Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zle), zpe), "Components Spacing"), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Npe), zpe), "Edge Spacing"), "Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."), 10), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xme), zpe), "Edge Label Spacing"), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ope), zpe), "Edge Node Spacing"), "Spacing to be preserved between nodes and edges."), 10), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ppe), zpe), "Label Spacing"), "Determines the amount of space to be left between two labels of the same graph element."), 0), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Spe), zpe), "Label Node Spacing"), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qpe), zpe), "Horizontal spacing between Label and Port"), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rpe), zpe), "Vertical spacing between Label and Port"), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wme), zpe), "Node Spacing"), "The minimal distance to be preserved between each two nodes."), 20), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tpe), zpe), "Node Self Loop Spacing"), "Spacing to be preserved between a node and its self loops."), 10), U5c), BI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Upe), zpe), "Port Spacing"), "Spacing between pairs of ports of the same node."), 10), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vpe), zpe), "Individual Spacing"), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), Y5c), i2), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wqe), zpe), "Additional Port Space"), "Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."), W9c), Y5c), i1), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tqe), Jse), "Layout Partition"), "Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."), X5c), JI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
- o4c(a, tqe, sqe, k9c);
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), sqe), Jse), "Layout Partitioning"), "Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."), i9c), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), dqe), Kse), "Node Label Padding"), "Define padding for node labels that are placed inside of a node."), V8c), Y5c), j1), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gme), Kse), "Node Label Placement"), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), X8c), W5c), B1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gqe), Lse), "Port Alignment"), "Defines the default port distribution for a node. May be overridden for each side individually."), m9c), V5c), C1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), hqe), Lse), "Port Alignment (North)"), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), iqe), Lse), "Port Alignment (South)"), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), jqe), Lse), "Port Alignment (West)"), "Defines how ports on the western side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), kqe), Lse), "Port Alignment (East)"), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fme), Mse), "Node Size Constraints"), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), Z8c), W5c), I1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Eme), Mse), "Node Size Options"), "Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."), c9c), W5c), J1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tme), Mse), "Node Size Minimum"), "The minimal size to which a node can be reduced."), a9c), Y5c), m1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bqe), Mse), "Fixed Graph Size"), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), T5c), wI), pqb(L5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nqe), Jpe), "Edge Label Placement"), "Gives a hint on where to put edge labels."), D8c), V5c), u1), pqb(J5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cme), Jpe), "Inline Edge Labels"), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), T5c), wI), pqb(J5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Gse), "font"), "Font Name"), "Font name used for a label."), Z5c), ZI), pqb(J5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Hse), "font"), "Font Size"), "Font size used for a label."), X5c), JI), pqb(J5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), rqe), Nse), "Port Anchor Offset"), "The offset to the port position where connections shall be attached."), Y5c), m1), pqb(M5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), oqe), Nse), "Port Index"), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), X5c), JI), pqb(M5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ype), Nse), "Port Side"), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), B9c), V5c), F1), pqb(M5c))));
- t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wpe), Nse), "Port Border Offset"), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), U5c), BI), pqb(M5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hme), Ose), "Port Label Placement"), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), y9c), W5c), E1), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eqe), Ose), "Port Labels Next to Port"), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fqe), Ose), "Treat Port Labels as Group"), "If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."), true), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _pe), Pse), "Activate Inside Self Loops"), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), T5c), wI), pqb(K5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aqe), Pse), "Inside Self Loop"), "Whether a self loop should be routed inside a node instead of around that node."), false), T5c), wI), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $le), "edge"), "Edge Thickness"), "The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."), 1), U5c), BI), pqb(I5c))));
- t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ise), "edge"), "Edge Type"), "The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."), H8c), V5c), w1), pqb(I5c))));
- s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sne), "Layered"), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));
- s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.orthogonal"), "Orthogonal"), `Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`)));
- s4c(a, new W3c(b4c(d4c(c4c(new e4c(), ume), "Force"), "Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.")));
- s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.circle"), "Circle"), "Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.")));
- s4c(a, new W3c(b4c(d4c(c4c(new e4c(), bre), "Tree"), "Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.")));
- s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.planar"), "Planar"), "Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.")));
- s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sre), "Radial"), "Radial layout algorithms usually position the nodes of the graph on concentric circles.")));
- $ad((new _ad(), a));
- Y7c((new Z7c(), a));
- jdd((new kdd(), a));
- };
- var o8c, p8c, q8c, r8c, s8c, t8c, u8c, v8c, w8c, x8c, y8c, z8c, A8c, B8c, C8c, D8c, E8c, F8c, G8c, H8c, I8c, J8c, K8c, L8c, M8c, N8c, O8c, P8c, Q8c, R8c, S8c, T8c, U8c, V8c, W8c, X8c, Y8c, Z8c, $8c, _8c, a9c, b9c, c9c, d9c, e9c, f9c, g9c, h9c, i9c, j9c, k9c, l9c, m9c, n9c, o9c, p9c, q9c, r9c, s9c, t9c, u9c, v9c, w9c, x9c, y9c, z9c, A9c, B9c, C9c, D9c, E9c, F9c, G9c, H9c, I9c, J9c, K9c, L9c, M9c, N9c, O9c, P9c, Q9c, R9c, S9c, T9c, U9c, V9c, W9c, X9c;
- mdb(ose, "CoreOptions", 684);
- bcb(103, 22, { 3: 1, 35: 1, 22: 1, 103: 1 }, iad);
- var _9c, aad, bad, cad, dad;
- var t12 = ndb(ose, Cle, 103, CI, kad, jad);
- var lad;
- bcb(272, 22, { 3: 1, 35: 1, 22: 1, 272: 1 }, rad);
- var nad, oad, pad2;
- var u1 = ndb(ose, "EdgeLabelPlacement", 272, CI, tad, sad);
- var uad;
- bcb(218, 22, { 3: 1, 35: 1, 22: 1, 218: 1 }, Bad);
- var wad, xad, yad, zad;
- var v1 = ndb(ose, "EdgeRouting", 218, CI, Dad, Cad);
- var Ead;
- bcb(312, 22, { 3: 1, 35: 1, 22: 1, 312: 1 }, Nad);
- var Gad, Had, Iad, Jad, Kad, Lad;
- var w1 = ndb(ose, "EdgeType", 312, CI, Pad, Oad);
- var Qad;
- bcb(977, 1, ale, _ad);
- _2.Qe = function abd(a) {
- $ad(a);
+ var i2 = 0;
+ var length2 = this.length;
+ return _defineProperty$1({
+ next: /* @__PURE__ */ __name(function next3() {
+ if (i2 < length2) {
+ entry.value = _this[i2++];
+ } else {
+ entry.value = void 0;
+ entry.done = true;
+ }
+ return entry;
+ }, "next")
+ }, Symbol.iterator, function() {
+ return this;
+ });
+ };
+ }
+ }, "defineSymbolIterator");
+ defineSymbolIterator();
+ getLayoutDimensionOptions = defaults$g({
+ nodeDimensionsIncludeLabels: false
+ });
+ elesfn$5 = {
+ // Calculates and returns node dimensions { x, y } based on options given
+ layoutDimensions: /* @__PURE__ */ __name(function layoutDimensions(options3) {
+ options3 = getLayoutDimensionOptions(options3);
+ var dims;
+ if (!this.takesUpSpace()) {
+ dims = {
+ w: 0,
+ h: 0
};
- var Sad, Tad, Uad, Vad, Wad, Xad, Yad;
- mdb(ose, "FixedLayouterOptions", 977);
- bcb(978, 1, {}, bbd);
- _2.$e = function cbd() {
- var a;
- return a = new Zfd(), a;
+ } else if (options3.nodeDimensionsIncludeLabels) {
+ var bbDim = this.boundingBox();
+ dims = {
+ w: bbDim.w,
+ h: bbDim.h
};
- _2._e = function dbd(a) {
+ } else {
+ dims = {
+ w: this.outerWidth(),
+ h: this.outerHeight()
};
- mdb(ose, "FixedLayouterOptions/FixedFactory", 978);
- bcb(334, 22, { 3: 1, 35: 1, 22: 1, 334: 1 }, ibd);
- var ebd, fbd, gbd;
- var z1 = ndb(ose, "HierarchyHandling", 334, CI, kbd, jbd);
- var lbd;
- bcb(285, 22, { 3: 1, 35: 1, 22: 1, 285: 1 }, tbd);
- var nbd, obd, pbd, qbd;
- var A1 = ndb(ose, "LabelSide", 285, CI, vbd, ubd);
- var wbd;
- bcb(93, 22, { 3: 1, 35: 1, 22: 1, 93: 1 }, Ibd);
- var ybd, zbd, Abd, Bbd, Cbd, Dbd, Ebd, Fbd, Gbd;
- var B1 = ndb(ose, "NodeLabelPlacement", 93, CI, Lbd, Kbd);
- var Mbd;
- bcb(249, 22, { 3: 1, 35: 1, 22: 1, 249: 1 }, Ubd);
- var Obd, Pbd, Qbd, Rbd, Sbd;
- var C1 = ndb(ose, "PortAlignment", 249, CI, Wbd, Vbd);
- var Xbd;
- bcb(98, 22, { 3: 1, 35: 1, 22: 1, 98: 1 }, gcd);
- var Zbd, $bd, _bd, acd, bcd, ccd;
- var D1 = ndb(ose, "PortConstraints", 98, CI, icd, hcd);
- var jcd;
- bcb(273, 22, { 3: 1, 35: 1, 22: 1, 273: 1 }, scd);
- var lcd, mcd, ncd, ocd, pcd, qcd;
- var E1 = ndb(ose, "PortLabelPlacement", 273, CI, wcd, vcd);
- var xcd;
- bcb(61, 22, { 3: 1, 35: 1, 22: 1, 61: 1 }, Ycd);
- var zcd, Acd, Bcd, Ccd, Dcd, Ecd, Fcd, Gcd, Hcd, Icd, Jcd, Kcd, Lcd, Mcd, Ncd, Ocd, Pcd, Qcd, Rcd, Scd, Tcd;
- var F1 = ndb(ose, "PortSide", 61, CI, _cd, $cd);
- var bdd;
- bcb(981, 1, ale, kdd);
- _2.Qe = function ldd(a) {
- jdd(a);
+ }
+ if (dims.w === 0 || dims.h === 0) {
+ dims.w = dims.h = 1;
+ }
+ return dims;
+ }, "layoutDimensions"),
+ // using standard layout options, apply position function (w/ or w/o animation)
+ layoutPositions: /* @__PURE__ */ __name(function layoutPositions(layout6, options3, fn3) {
+ var nodes6 = this.nodes().filter(function(n2) {
+ return !n2.isParent();
+ });
+ var cy = this.cy();
+ var layoutEles = options3.eles;
+ var getMemoizeKey = /* @__PURE__ */ __name(function getMemoizeKey2(node3) {
+ return node3.id();
+ }, "getMemoizeKey");
+ var fnMem = memoize$1(fn3, getMemoizeKey);
+ layout6.emit({
+ type: "layoutstart",
+ layout: layout6
+ });
+ layout6.animations = [];
+ var calculateSpacing = /* @__PURE__ */ __name(function calculateSpacing2(spacing2, nodesBb, pos) {
+ var center4 = {
+ x: nodesBb.x1 + nodesBb.w / 2,
+ y: nodesBb.y1 + nodesBb.h / 2
};
- var ddd, edd, fdd, gdd, hdd;
- mdb(ose, "RandomLayouterOptions", 981);
- bcb(982, 1, {}, mdd);
- _2.$e = function ndd() {
- var a;
- return a = new Mgd(), a;
+ var spacingVector = {
+ // scale from center of bounding box (not necessarily 0,0)
+ x: (pos.x - center4.x) * spacing2,
+ y: (pos.y - center4.y) * spacing2
};
- _2._e = function odd(a) {
+ return {
+ x: center4.x + spacingVector.x,
+ y: center4.y + spacingVector.y
};
- mdb(ose, "RandomLayouterOptions/RandomFactory", 982);
- bcb(374, 22, { 3: 1, 35: 1, 22: 1, 374: 1 }, udd);
- var pdd, qdd, rdd, sdd;
- var I1 = ndb(ose, "SizeConstraint", 374, CI, wdd, vdd);
- var xdd;
- bcb(259, 22, { 3: 1, 35: 1, 22: 1, 259: 1 }, Jdd);
- var zdd, Add, Bdd, Cdd, Ddd, Edd, Fdd, Gdd, Hdd;
- var J1 = ndb(ose, "SizeOptions", 259, CI, Ldd, Kdd);
- var Mdd;
- bcb(370, 1, { 1949: 1 }, Zdd);
- _2.b = false;
- _2.c = 0;
- _2.d = -1;
- _2.e = null;
- _2.f = null;
- _2.g = -1;
- _2.j = false;
- _2.k = false;
- _2.n = false;
- _2.o = 0;
- _2.q = 0;
- _2.r = 0;
- mdb(yqe, "BasicProgressMonitor", 370);
- bcb(972, 209, Mle, ged);
- _2.Ze = function ked(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- Odd(b, "Box layout", 2);
- e = Gdb(ED(hkd(a, (X7c(), W7c))));
- f2 = BD(hkd(a, T7c), 116);
- c2 = Ccb(DD(hkd(a, O7c)));
- d = Ccb(DD(hkd(a, P7c)));
- switch (BD(hkd(a, M7c), 311).g) {
- case 0:
- g = (h = new Tkb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)), mmb(), Okb(h, new med(d)), h);
- i3 = rfd(a);
- j = ED(hkd(a, L7c));
- (j == null || (uCb(j), j) <= 0) && (j = 1.3);
- k = ded(g, e, f2, i3.a, i3.b, c2, (uCb(j), j));
- Afd(a, k.a, k.b, false, true);
- break;
- default:
- eed(a, e, f2, c2);
+ }, "calculateSpacing");
+ var useSpacingFactor = options3.spacingFactor && options3.spacingFactor !== 1;
+ var spacingBb = /* @__PURE__ */ __name(function spacingBb2() {
+ if (!useSpacingFactor) {
+ return null;
+ }
+ var bb2 = makeBoundingBox();
+ for (var i3 = 0; i3 < nodes6.length; i3++) {
+ var node3 = nodes6[i3];
+ var pos = fnMem(node3, i3);
+ expandBoundingBoxByPoint(bb2, pos.x, pos.y);
+ }
+ return bb2;
+ }, "spacingBb");
+ var bb = spacingBb();
+ var getFinalPos = memoize$1(function(node3, i3) {
+ var newPos2 = fnMem(node3, i3);
+ if (useSpacingFactor) {
+ var spacing2 = Math.abs(options3.spacingFactor);
+ newPos2 = calculateSpacing(spacing2, bb, newPos2);
+ }
+ if (options3.transform != null) {
+ newPos2 = options3.transform(node3, newPos2);
+ }
+ return newPos2;
+ }, getMemoizeKey);
+ if (options3.animate) {
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var node2 = nodes6[i2];
+ var newPos = getFinalPos(node2, i2);
+ var animateNode = options3.animateFilter == null || options3.animateFilter(node2, i2);
+ if (animateNode) {
+ var ani = node2.animation({
+ position: newPos,
+ duration: options3.animationDuration,
+ easing: options3.animationEasing
+ });
+ layout6.animations.push(ani);
+ } else {
+ node2.position(newPos);
}
- Qdd(b);
- };
- mdb(yqe, "BoxLayoutProvider", 972);
- bcb(973, 1, Dke, med);
- _2.ue = function ned(a, b) {
- return led(this, BD(a, 33), BD(b, 33));
- };
- _2.Fb = function oed(a) {
- return this === a;
- };
- _2.ve = function ped() {
- return new tpb(this);
- };
- _2.a = false;
- mdb(yqe, "BoxLayoutProvider/1", 973);
- bcb(157, 1, { 157: 1 }, wed, xed);
- _2.Ib = function yed() {
- return this.c ? _od(this.c) : Fe(this.b);
- };
- mdb(yqe, "BoxLayoutProvider/Group", 157);
- bcb(311, 22, { 3: 1, 35: 1, 22: 1, 311: 1 }, Eed);
- var zed, Aed, Bed, Ced;
- var O1 = ndb(yqe, "BoxLayoutProvider/PackingMode", 311, CI, Ged, Fed);
- var Hed;
- bcb(974, 1, Dke, Jed);
- _2.ue = function Ked(a, b) {
- return hed(BD(a, 157), BD(b, 157));
- };
- _2.Fb = function Led(a) {
- return this === a;
- };
- _2.ve = function Med() {
- return new tpb(this);
- };
- mdb(yqe, "BoxLayoutProvider/lambda$0$Type", 974);
- bcb(975, 1, Dke, Ned);
- _2.ue = function Oed(a, b) {
- return ied(BD(a, 157), BD(b, 157));
- };
- _2.Fb = function Ped(a) {
- return this === a;
- };
- _2.ve = function Qed() {
- return new tpb(this);
- };
- mdb(yqe, "BoxLayoutProvider/lambda$1$Type", 975);
- bcb(976, 1, Dke, Red);
- _2.ue = function Sed(a, b) {
- return jed(BD(a, 157), BD(b, 157));
- };
- _2.Fb = function Ted(a) {
- return this === a;
- };
- _2.ve = function Ued() {
- return new tpb(this);
- };
- mdb(yqe, "BoxLayoutProvider/lambda$2$Type", 976);
- bcb(1365, 1, { 831: 1 }, Ved);
- _2.qg = function Wed(a, b) {
- return Vyc(), !JD(b, 160) || h2c((Y1c(), BD(a, 160)), b);
- };
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type", 1365);
- bcb(1366, 1, qie, Xed);
- _2.td = function Yed(a) {
- Yyc(this.a, BD(a, 146));
- };
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type", 1366);
- bcb(1367, 1, qie, Zed);
- _2.td = function $ed(a) {
- BD(a, 94);
- Vyc();
- };
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type", 1367);
- bcb(1371, 1, qie, _ed);
- _2.td = function afd(a) {
- Zyc(this.a, BD(a, 94));
- };
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type", 1371);
- bcb(1369, 1, Oie, bfd);
- _2.Mb = function cfd(a) {
- return $yc(this.a, this.b, BD(a, 146));
- };
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type", 1369);
- bcb(1368, 1, Oie, dfd);
- _2.Mb = function efd(a) {
- return azc(this.a, this.b, BD(a, 831));
- };
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type", 1368);
- bcb(1370, 1, qie, ffd);
- _2.td = function gfd(a) {
- _yc(this.a, this.b, BD(a, 146));
- };
- mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type", 1370);
- bcb(935, 1, {}, Hfd);
- _2.Kb = function Ifd(a) {
- return Gfd(a);
- };
- _2.Fb = function Jfd(a) {
- return this === a;
- };
- mdb(yqe, "ElkUtil/lambda$0$Type", 935);
- bcb(936, 1, qie, Kfd);
- _2.td = function Lfd(a) {
- ufd(this.a, this.b, BD(a, 79));
- };
- _2.a = 0;
- _2.b = 0;
- mdb(yqe, "ElkUtil/lambda$1$Type", 936);
- bcb(937, 1, qie, Mfd);
- _2.td = function Nfd(a) {
- vfd(this.a, this.b, BD(a, 202));
- };
- _2.a = 0;
- _2.b = 0;
- mdb(yqe, "ElkUtil/lambda$2$Type", 937);
- bcb(938, 1, qie, Ofd);
- _2.td = function Pfd(a) {
- wfd(this.a, this.b, BD(a, 137));
- };
- _2.a = 0;
- _2.b = 0;
- mdb(yqe, "ElkUtil/lambda$3$Type", 938);
- bcb(939, 1, qie, Qfd);
- _2.td = function Rfd(a) {
- xfd(this.a, BD(a, 469));
- };
- mdb(yqe, "ElkUtil/lambda$4$Type", 939);
- bcb(342, 1, { 35: 1, 342: 1 }, Tfd);
- _2.wd = function Ufd(a) {
- return Sfd(this, BD(a, 236));
- };
- _2.Fb = function Vfd(a) {
- var b;
- if (JD(a, 342)) {
- b = BD(a, 342);
- return this.a == b.a;
- }
- return false;
- };
- _2.Hb = function Wfd() {
- return QD(this.a);
- };
- _2.Ib = function Xfd() {
- return this.a + " (exclusive)";
- };
- _2.a = 0;
- mdb(yqe, "ExclusiveBounds/ExclusiveLowerBound", 342);
- bcb(1138, 209, Mle, Zfd);
- _2.Ze = function $fd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
- Odd(b, "Fixed Layout", 1);
- f2 = BD(hkd(a, (Y9c(), E8c)), 218);
- l = 0;
- m = 0;
- for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) {
- q = BD(Dyd(s), 33);
- B = BD(hkd(q, (Zad(), Yad)), 8);
- if (B) {
- bld(q, B.a, B.b);
- if (BD(hkd(q, Tad), 174).Hc((tdd(), pdd))) {
- n = BD(hkd(q, Vad), 8);
- n.a > 0 && n.b > 0 && Afd(q, n.a, n.b, true, true);
- }
- }
- l = $wnd.Math.max(l, q.i + q.g);
- m = $wnd.Math.max(m, q.j + q.f);
- for (j = new Fyd((!q.n && (q.n = new cUd(D2, q, 1, 7)), q.n)); j.e != j.i.gc(); ) {
- h = BD(Dyd(j), 137);
- B = BD(hkd(h, Yad), 8);
- !!B && bld(h, B.a, B.b);
- l = $wnd.Math.max(l, q.i + h.i + h.g);
- m = $wnd.Math.max(m, q.j + h.j + h.f);
- }
- for (v = new Fyd((!q.c && (q.c = new cUd(F2, q, 9, 9)), q.c)); v.e != v.i.gc(); ) {
- u2 = BD(Dyd(v), 118);
- B = BD(hkd(u2, Yad), 8);
- !!B && bld(u2, B.a, B.b);
- w2 = q.i + u2.i;
- A = q.j + u2.j;
- l = $wnd.Math.max(l, w2 + u2.g);
- m = $wnd.Math.max(m, A + u2.f);
- for (i3 = new Fyd((!u2.n && (u2.n = new cUd(D2, u2, 1, 7)), u2.n)); i3.e != i3.i.gc(); ) {
- h = BD(Dyd(i3), 137);
- B = BD(hkd(h, Yad), 8);
- !!B && bld(h, B.a, B.b);
- l = $wnd.Math.max(l, w2 + h.i + h.g);
- m = $wnd.Math.max(m, A + h.j + h.f);
- }
- }
- for (e = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(e); ) {
- c2 = BD(Rr(e), 79);
- k = Yfd(c2);
- l = $wnd.Math.max(l, k.a);
- m = $wnd.Math.max(m, k.b);
- }
- for (d = new Sr(ur($sd(q).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 79);
- if (Xod(jtd(c2)) != a) {
- k = Yfd(c2);
- l = $wnd.Math.max(l, k.a);
- m = $wnd.Math.max(m, k.b);
- }
- }
- }
- if (f2 == (Aad(), wad)) {
- for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) {
- q = BD(Dyd(r), 33);
- for (d = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(d); ) {
- c2 = BD(Rr(d), 79);
- g = pfd(c2);
- g.b == 0 ? jkd(c2, Q8c, null) : jkd(c2, Q8c, g);
- }
- }
- }
- if (!Ccb(DD(hkd(a, (Zad(), Uad))))) {
- t4 = BD(hkd(a, Wad), 116);
- p = l + t4.b + t4.c;
- o2 = m + t4.d + t4.a;
- Afd(a, p, o2, true, true);
- }
- Qdd(b);
- };
- mdb(yqe, "FixedLayoutProvider", 1138);
- bcb(373, 134, { 3: 1, 414: 1, 373: 1, 94: 1, 134: 1 }, _fd, agd);
- _2.Jf = function dgd(b) {
- var c2, d, e, f2, g, h, i3, j, k;
- if (!b) {
- return;
- }
- try {
- j = mfb(b, ";,;");
- for (g = j, h = 0, i3 = g.length; h < i3; ++h) {
- f2 = g[h];
- d = mfb(f2, "\\:");
- e = k4c(n4c(), d[0]);
- if (!e) {
- throw vbb(new Wdb("Invalid option id: " + d[0]));
- }
- k = o5c(e, d[1]);
- if (k == null) {
- throw vbb(new Wdb("Invalid option value: " + d[1]));
- }
- k == null ? (!this.q && (this.q = new Lqb()), Thb(this.q, e)) : (!this.q && (this.q = new Lqb()), Rhb(this.q, e, k));
- }
- } catch (a) {
- a = ubb(a);
- if (JD(a, 102)) {
- c2 = a;
- throw vbb(new Xdb(c2));
- } else
- throw vbb(a);
- }
- };
- _2.Ib = function egd() {
- var a;
- a = GD(GAb(NAb((!this.q ? (mmb(), mmb(), kmb) : this.q).vc().Oc(), new fgd()), Ayb(new pzb(), new nzb(), new Zyb(), new _yb(), OC(GC(xL, 1), Kie, 132, 0, []))));
- return a;
- };
- var i2 = mdb(yqe, "IndividualSpacings", 373);
- bcb(971, 1, {}, fgd);
- _2.Kb = function ggd(a) {
- return cgd(BD(a, 42));
- };
- mdb(yqe, "IndividualSpacings/lambda$0$Type", 971);
- bcb(709, 1, {}, jgd);
- _2.c = 0;
- mdb(yqe, "InstancePool", 709);
- bcb(1275, 1, {}, kgd);
- mdb(yqe, "LoggedGraph", 1275);
- bcb(396, 22, { 3: 1, 35: 1, 22: 1, 396: 1 }, qgd);
- var lgd, mgd, ngd, ogd;
- var k2 = ndb(yqe, "LoggedGraph/Type", 396, CI, sgd, rgd);
- var tgd;
- bcb(46, 1, { 20: 1, 46: 1 }, vgd);
- _2.Jc = function xgd(a) {
- reb(this, a);
- };
- _2.Fb = function wgd(a) {
- var b, c2, d;
- if (JD(a, 46)) {
- c2 = BD(a, 46);
- b = this.a == null ? c2.a == null : pb(this.a, c2.a);
- d = this.b == null ? c2.b == null : pb(this.b, c2.b);
- return b && d;
+ }
+ if (options3.fit) {
+ var fitAni = cy.animation({
+ fit: {
+ boundingBox: layoutEles.boundingBoxAt(getFinalPos),
+ padding: options3.padding
+ },
+ duration: options3.animationDuration,
+ easing: options3.animationEasing
+ });
+ layout6.animations.push(fitAni);
+ } else if (options3.zoom !== void 0 && options3.pan !== void 0) {
+ var zoomPanAni = cy.animation({
+ zoom: options3.zoom,
+ pan: options3.pan,
+ duration: options3.animationDuration,
+ easing: options3.animationEasing
+ });
+ layout6.animations.push(zoomPanAni);
+ }
+ layout6.animations.forEach(function(ani2) {
+ return ani2.play();
+ });
+ layout6.one("layoutready", options3.ready);
+ layout6.emit({
+ type: "layoutready",
+ layout: layout6
+ });
+ Promise$1.all(layout6.animations.map(function(ani2) {
+ return ani2.promise();
+ })).then(function() {
+ layout6.one("layoutstop", options3.stop);
+ layout6.emit({
+ type: "layoutstop",
+ layout: layout6
+ });
+ });
+ } else {
+ nodes6.positions(getFinalPos);
+ if (options3.fit) {
+ cy.fit(options3.eles, options3.padding);
+ }
+ if (options3.zoom != null) {
+ cy.zoom(options3.zoom);
+ }
+ if (options3.pan) {
+ cy.pan(options3.pan);
+ }
+ layout6.one("layoutready", options3.ready);
+ layout6.emit({
+ type: "layoutready",
+ layout: layout6
+ });
+ layout6.one("layoutstop", options3.stop);
+ layout6.emit({
+ type: "layoutstop",
+ layout: layout6
+ });
+ }
+ return this;
+ }, "layoutPositions"),
+ layout: /* @__PURE__ */ __name(function layout2(options3) {
+ var cy = this.cy();
+ return cy.makeLayout(extend2({}, options3, {
+ eles: this
+ }));
+ }, "layout")
+ };
+ elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;
+ __name(styleCache, "styleCache");
+ __name(cacheStyleFunction, "cacheStyleFunction");
+ __name(cachePrototypeStyleFunction, "cachePrototypeStyleFunction");
+ elesfn$4 = {
+ recalculateRenderedStyle: /* @__PURE__ */ __name(function recalculateRenderedStyle(useCache) {
+ var cy = this.cy();
+ var renderer8 = cy.renderer();
+ var styleEnabled2 = cy.styleEnabled();
+ if (renderer8 && styleEnabled2) {
+ renderer8.recalculateRenderedStyle(this, useCache);
+ }
+ return this;
+ }, "recalculateRenderedStyle"),
+ dirtyStyleCache: /* @__PURE__ */ __name(function dirtyStyleCache() {
+ var cy = this.cy();
+ var dirty = /* @__PURE__ */ __name(function dirty2(ele) {
+ return ele._private.styleCache = null;
+ }, "dirty");
+ if (cy.hasCompoundNodes()) {
+ var eles;
+ eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
+ eles.merge(eles.connectedEdges());
+ eles.forEach(dirty);
+ } else {
+ this.forEach(function(ele) {
+ dirty(ele);
+ ele.connectedEdges().forEach(dirty);
+ });
+ }
+ return this;
+ }, "dirtyStyleCache"),
+ // fully updates (recalculates) the style for the elements
+ updateStyle: /* @__PURE__ */ __name(function updateStyle(notifyRenderer) {
+ var cy = this._private.cy;
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ if (cy.batching()) {
+ var bEles = cy._private.batchStyleEles;
+ bEles.merge(this);
+ return this;
+ }
+ var hasCompounds = cy.hasCompoundNodes();
+ var updatedEles = this;
+ notifyRenderer = notifyRenderer || notifyRenderer === void 0 ? true : false;
+ if (hasCompounds) {
+ updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
+ }
+ var changedEles = updatedEles;
+ if (notifyRenderer) {
+ changedEles.emitAndNotify("style");
+ } else {
+ changedEles.emit("style");
+ }
+ updatedEles.forEach(function(ele) {
+ return ele._private.styleDirty = true;
+ });
+ return this;
+ }, "updateStyle"),
+ // private: clears dirty flag and recalculates style
+ cleanStyle: /* @__PURE__ */ __name(function cleanStyle() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ if (ele._private.styleDirty) {
+ ele._private.styleDirty = false;
+ cy.style().apply(ele);
+ }
+ }
+ }, "cleanStyle"),
+ // get the internal parsed style object for the specified property
+ parsedStyle: /* @__PURE__ */ __name(function parsedStyle(property2) {
+ var includeNonDefault = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var ele = this[0];
+ var cy = ele.cy();
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ if (ele) {
+ this.cleanStyle();
+ var overriddenStyle = ele._private.style[property2];
+ if (overriddenStyle != null) {
+ return overriddenStyle;
+ } else if (includeNonDefault) {
+ return cy.style().getDefaultProperty(property2);
+ } else {
+ return null;
+ }
+ }
+ }, "parsedStyle"),
+ numericStyle: /* @__PURE__ */ __name(function numericStyle(property2) {
+ var ele = this[0];
+ if (!ele.cy().styleEnabled()) {
+ return;
+ }
+ if (ele) {
+ var pstyle = ele.pstyle(property2);
+ return pstyle.pfValue !== void 0 ? pstyle.pfValue : pstyle.value;
+ }
+ }, "numericStyle"),
+ numericStyleUnits: /* @__PURE__ */ __name(function numericStyleUnits(property2) {
+ var ele = this[0];
+ if (!ele.cy().styleEnabled()) {
+ return;
+ }
+ if (ele) {
+ return ele.pstyle(property2).units;
+ }
+ }, "numericStyleUnits"),
+ // get the specified css property as a rendered value (i.e. on-screen value)
+ // or get the whole rendered style if no property specified (NB doesn't allow setting)
+ renderedStyle: /* @__PURE__ */ __name(function renderedStyle(property2) {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var ele = this[0];
+ if (ele) {
+ return cy.style().getRenderedStyle(ele, property2);
+ }
+ }, "renderedStyle"),
+ // read the calculated css style of the element or override the style (via a bypass)
+ style: /* @__PURE__ */ __name(function style(name, value2) {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var updateTransitions = false;
+ var style3 = cy.style();
+ if (plainObject(name)) {
+ var props = name;
+ style3.applyBypass(this, props, updateTransitions);
+ this.emitAndNotify("style");
+ } else if (string(name)) {
+ if (value2 === void 0) {
+ var ele = this[0];
+ if (ele) {
+ return style3.getStylePropertyValue(ele, name);
} else {
- return false;
- }
- };
- _2.Hb = function ygd() {
- var a, b, c2, d, e, f2;
- c2 = this.a == null ? 0 : tb(this.a);
- a = c2 & aje;
- b = c2 & -65536;
- f2 = this.b == null ? 0 : tb(this.b);
- d = f2 & aje;
- e = f2 & -65536;
- return a ^ e >> 16 & aje | b ^ d << 16;
- };
- _2.Kc = function zgd() {
- return new Bgd(this);
- };
- _2.Ib = function Agd() {
- return this.a == null && this.b == null ? "pair(null,null)" : this.a == null ? "pair(null," + fcb(this.b) + ")" : this.b == null ? "pair(" + fcb(this.a) + ",null)" : "pair(" + fcb(this.a) + "," + fcb(this.b) + ")";
- };
- mdb(yqe, "Pair", 46);
- bcb(983, 1, aie, Bgd);
- _2.Nb = function Cgd(a) {
- Rrb(this, a);
- };
- _2.Ob = function Dgd() {
- return !this.c && (!this.b && this.a.a != null || this.a.b != null);
- };
- _2.Pb = function Egd() {
- if (!this.c && !this.b && this.a.a != null) {
- this.b = true;
- return this.a.a;
- } else if (!this.c && this.a.b != null) {
- this.c = true;
- return this.a.b;
- }
- throw vbb(new utb());
- };
- _2.Qb = function Fgd() {
- this.c && this.a.b != null ? this.a.b = null : this.b && this.a.a != null && (this.a.a = null);
- throw vbb(new Ydb());
- };
- _2.b = false;
- _2.c = false;
- mdb(yqe, "Pair/1", 983);
- bcb(448, 1, { 448: 1 }, Ggd);
- _2.Fb = function Hgd(a) {
- return wtb(this.a, BD(a, 448).a) && wtb(this.c, BD(a, 448).c) && wtb(this.d, BD(a, 448).d) && wtb(this.b, BD(a, 448).b);
- };
- _2.Hb = function Igd() {
- return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.a, this.c, this.d, this.b]));
- };
- _2.Ib = function Jgd() {
- return "(" + this.a + She + this.c + She + this.d + She + this.b + ")";
- };
- mdb(yqe, "Quadruple", 448);
- bcb(1126, 209, Mle, Mgd);
- _2.Ze = function Ngd(a, b) {
- var c2, d, e, f2, g;
- Odd(b, "Random Layout", 1);
- if ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i == 0) {
- Qdd(b);
return;
}
- f2 = BD(hkd(a, (idd(), gdd)), 19);
- !!f2 && f2.a != 0 ? e = new Hub(f2.a) : e = new Gub();
- c2 = Gdb(ED(hkd(a, ddd)));
- g = Gdb(ED(hkd(a, hdd)));
- d = BD(hkd(a, edd), 116);
- Lgd(a, e, c2, g, d);
- Qdd(b);
- };
- mdb(yqe, "RandomLayoutProvider", 1126);
- var Ogd;
- bcb(553, 1, {});
- _2.qf = function Sgd() {
- return new f7c(this.f.i, this.f.j);
- };
- _2.We = function Tgd(a) {
- if (Jsd(a, (Y9c(), s9c))) {
- return hkd(this.f, Qgd);
- }
- return hkd(this.f, a);
- };
- _2.rf = function Ugd() {
- return new f7c(this.f.g, this.f.f);
- };
- _2.sf = function Vgd() {
- return this.g;
- };
- _2.Xe = function Wgd(a) {
- return ikd(this.f, a);
- };
- _2.tf = function Xgd(a) {
- dld(this.f, a.a);
- eld(this.f, a.b);
- };
- _2.uf = function Ygd(a) {
- cld(this.f, a.a);
- ald(this.f, a.b);
- };
- _2.vf = function Zgd(a) {
- this.g = a;
- };
- _2.g = 0;
- var Qgd;
- mdb(Use, "ElkGraphAdapters/AbstractElkGraphElementAdapter", 553);
- bcb(554, 1, { 839: 1 }, $gd);
- _2.wf = function _gd() {
- var a, b;
- if (!this.b) {
- this.b = Qu(Kkd(this.a).i);
- for (b = new Fyd(Kkd(this.a)); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 137);
- Ekb(this.b, new dhd(a));
- }
- }
- return this.b;
- };
- _2.b = null;
- mdb(Use, "ElkGraphAdapters/ElkEdgeAdapter", 554);
- bcb(301, 553, {}, bhd);
- _2.xf = function chd() {
- return ahd(this);
- };
- _2.a = null;
- mdb(Use, "ElkGraphAdapters/ElkGraphAdapter", 301);
- bcb(630, 553, { 181: 1 }, dhd);
- mdb(Use, "ElkGraphAdapters/ElkLabelAdapter", 630);
- bcb(629, 553, { 680: 1 }, hhd);
- _2.wf = function khd() {
- return ehd(this);
- };
- _2.Af = function lhd() {
- var a;
- return a = BD(hkd(this.f, (Y9c(), S8c)), 142), !a && (a = new H_b()), a;
- };
- _2.Cf = function nhd() {
- return fhd(this);
- };
- _2.Ef = function phd(a) {
- var b;
- b = new K_b(a);
- jkd(this.f, (Y9c(), S8c), b);
- };
- _2.Ff = function qhd(a) {
- jkd(this.f, (Y9c(), f9c), new r0b(a));
- };
- _2.yf = function ihd() {
- return this.d;
- };
- _2.zf = function jhd() {
- var a, b;
- if (!this.a) {
- this.a = new Rkb();
- for (b = new Sr(ur($sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) {
- a = BD(Rr(b), 79);
- Ekb(this.a, new $gd(a));
- }
+ } else {
+ style3.applyBypass(this, name, value2, updateTransitions);
+ this.emitAndNotify("style");
+ }
+ } else if (name === void 0) {
+ var _ele = this[0];
+ if (_ele) {
+ return style3.getRawStyle(_ele);
+ } else {
+ return;
+ }
+ }
+ return this;
+ }, "style"),
+ removeStyle: /* @__PURE__ */ __name(function removeStyle(names) {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return this;
+ }
+ var updateTransitions = false;
+ var style3 = cy.style();
+ var eles = this;
+ if (names === void 0) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ style3.removeAllBypasses(ele, updateTransitions);
+ }
+ } else {
+ names = names.split(/\s+/);
+ for (var _i = 0; _i < eles.length; _i++) {
+ var _ele2 = eles[_i];
+ style3.removeBypasses(_ele2, names, updateTransitions);
+ }
+ }
+ this.emitAndNotify("style");
+ return this;
+ }, "removeStyle"),
+ show: /* @__PURE__ */ __name(function show() {
+ this.css("display", "element");
+ return this;
+ }, "show"),
+ hide: /* @__PURE__ */ __name(function hide() {
+ this.css("display", "none");
+ return this;
+ }, "hide"),
+ effectiveOpacity: /* @__PURE__ */ __name(function effectiveOpacity() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return 1;
+ }
+ var hasCompoundNodes2 = cy.hasCompoundNodes();
+ var ele = this[0];
+ if (ele) {
+ var _p = ele._private;
+ var parentOpacity = ele.pstyle("opacity").value;
+ if (!hasCompoundNodes2) {
+ return parentOpacity;
+ }
+ var parents4 = !_p.data.parent ? null : ele.parents();
+ if (parents4) {
+ for (var i2 = 0; i2 < parents4.length; i2++) {
+ var parent4 = parents4[i2];
+ var opacity = parent4.pstyle("opacity").value;
+ parentOpacity = opacity * parentOpacity;
}
- return this.a;
- };
- _2.Bf = function mhd() {
- var a, b;
- if (!this.c) {
- this.c = new Rkb();
- for (b = new Sr(ur(_sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) {
- a = BD(Rr(b), 79);
- Ekb(this.c, new $gd(a));
- }
+ }
+ return parentOpacity;
+ }
+ }, "effectiveOpacity"),
+ transparent: /* @__PURE__ */ __name(function transparent() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return false;
+ }
+ var ele = this[0];
+ var hasCompoundNodes2 = ele.cy().hasCompoundNodes();
+ if (ele) {
+ if (!hasCompoundNodes2) {
+ return ele.pstyle("opacity").value === 0;
+ } else {
+ return ele.effectiveOpacity() === 0;
+ }
+ }
+ }, "transparent"),
+ backgrounding: /* @__PURE__ */ __name(function backgrounding() {
+ var cy = this.cy();
+ if (!cy.styleEnabled()) {
+ return false;
+ }
+ var ele = this[0];
+ return ele._private.backgrounding ? true : false;
+ }, "backgrounding")
+ };
+ __name(checkCompound, "checkCompound");
+ __name(defineDerivedStateFunction, "defineDerivedStateFunction");
+ eleTakesUpSpace = cacheStyleFunction("eleTakesUpSpace", function(ele) {
+ return ele.pstyle("display").value === "element" && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);
+ });
+ elesfn$4.takesUpSpace = cachePrototypeStyleFunction("takesUpSpace", defineDerivedStateFunction({
+ ok: eleTakesUpSpace
+ }));
+ eleInteractive = cacheStyleFunction("eleInteractive", function(ele) {
+ return ele.pstyle("events").value === "yes" && ele.pstyle("visibility").value === "visible" && eleTakesUpSpace(ele);
+ });
+ parentInteractive = cacheStyleFunction("parentInteractive", function(parent4) {
+ return parent4.pstyle("visibility").value === "visible" && eleTakesUpSpace(parent4);
+ });
+ elesfn$4.interactive = cachePrototypeStyleFunction("interactive", defineDerivedStateFunction({
+ ok: eleInteractive,
+ parentOk: parentInteractive,
+ edgeOkViaNode: eleTakesUpSpace
+ }));
+ elesfn$4.noninteractive = function() {
+ var ele = this[0];
+ if (ele) {
+ return !ele.interactive();
+ }
+ };
+ eleVisible = cacheStyleFunction("eleVisible", function(ele) {
+ return ele.pstyle("visibility").value === "visible" && ele.pstyle("opacity").pfValue !== 0 && eleTakesUpSpace(ele);
+ });
+ edgeVisibleViaNode = eleTakesUpSpace;
+ elesfn$4.visible = cachePrototypeStyleFunction("visible", defineDerivedStateFunction({
+ ok: eleVisible,
+ edgeOkViaNode: edgeVisibleViaNode
+ }));
+ elesfn$4.hidden = function() {
+ var ele = this[0];
+ if (ele) {
+ return !ele.visible();
+ }
+ };
+ elesfn$4.isBundledBezier = cachePrototypeStyleFunction("isBundledBezier", function() {
+ if (!this.cy().styleEnabled()) {
+ return false;
+ }
+ return !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace();
+ });
+ elesfn$4.bypass = elesfn$4.css = elesfn$4.style;
+ elesfn$4.renderedCss = elesfn$4.renderedStyle;
+ elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;
+ elesfn$4.pstyle = elesfn$4.parsedStyle;
+ elesfn$3 = {};
+ __name(defineSwitchFunction, "defineSwitchFunction");
+ __name(defineSwitchSet, "defineSwitchSet");
+ defineSwitchSet({
+ field: "locked",
+ overrideField: /* @__PURE__ */ __name(function overrideField(ele) {
+ return ele.cy().autolock() ? true : void 0;
+ }, "overrideField"),
+ on: "lock",
+ off: "unlock"
+ });
+ defineSwitchSet({
+ field: "grabbable",
+ overrideField: /* @__PURE__ */ __name(function overrideField2(ele) {
+ return ele.cy().autoungrabify() || ele.pannable() ? false : void 0;
+ }, "overrideField"),
+ on: "grabify",
+ off: "ungrabify"
+ });
+ defineSwitchSet({
+ field: "selected",
+ ableField: "selectable",
+ overrideAble: /* @__PURE__ */ __name(function overrideAble(ele) {
+ return ele.cy().autounselectify() ? false : void 0;
+ }, "overrideAble"),
+ on: "select",
+ off: "unselect"
+ });
+ defineSwitchSet({
+ field: "selectable",
+ overrideField: /* @__PURE__ */ __name(function overrideField3(ele) {
+ return ele.cy().autounselectify() ? false : void 0;
+ }, "overrideField"),
+ on: "selectify",
+ off: "unselectify"
+ });
+ elesfn$3.deselect = elesfn$3.unselect;
+ elesfn$3.grabbed = function() {
+ var ele = this[0];
+ if (ele) {
+ return ele._private.grabbed;
+ }
+ };
+ defineSwitchSet({
+ field: "active",
+ on: "activate",
+ off: "unactivate"
+ });
+ defineSwitchSet({
+ field: "pannable",
+ on: "panify",
+ off: "unpanify"
+ });
+ elesfn$3.inactive = function() {
+ var ele = this[0];
+ if (ele) {
+ return !ele._private.active;
+ }
+ };
+ elesfn$2 = {};
+ defineDagExtremity = /* @__PURE__ */ __name(function defineDagExtremity2(params) {
+ return /* @__PURE__ */ __name(function dagExtremityImpl(selector) {
+ var eles = this;
+ var ret = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.isNode()) {
+ continue;
+ }
+ var disqualified = false;
+ var edges5 = ele.connectedEdges();
+ for (var j2 = 0; j2 < edges5.length; j2++) {
+ var edge = edges5[j2];
+ var src = edge.source();
+ var tgt = edge.target();
+ if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {
+ disqualified = true;
+ break;
}
- return this.c;
- };
- _2.Df = function ohd() {
- return Vod(BD(this.f, 33)).i != 0 || Ccb(DD(BD(this.f, 33).We((Y9c(), M8c))));
- };
- _2.Gf = function rhd() {
- ghd(this, (Pgd(), Ogd));
- };
- _2.a = null;
- _2.b = null;
- _2.c = null;
- _2.d = null;
- _2.e = null;
- mdb(Use, "ElkGraphAdapters/ElkNodeAdapter", 629);
- bcb(1266, 553, { 838: 1 }, thd);
- _2.wf = function vhd() {
- return shd(this);
- };
- _2.zf = function uhd() {
- var a, b;
- if (!this.a) {
- this.a = Pu(BD(this.f, 118).xg().i);
- for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 79);
- Ekb(this.a, new $gd(a));
- }
+ }
+ if (!disqualified) {
+ ret.push(ele);
+ }
+ }
+ return this.spawn(ret, true).filter(selector);
+ }, "dagExtremityImpl");
+ }, "defineDagExtremity");
+ defineDagOneHop = /* @__PURE__ */ __name(function defineDagOneHop2(params) {
+ return function(selector) {
+ var eles = this;
+ var oEles = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.isNode()) {
+ continue;
+ }
+ var edges5 = ele.connectedEdges();
+ for (var j2 = 0; j2 < edges5.length; j2++) {
+ var edge = edges5[j2];
+ var src = edge.source();
+ var tgt = edge.target();
+ if (params.outgoing && src === ele) {
+ oEles.push(edge);
+ oEles.push(tgt);
+ } else if (params.incoming && tgt === ele) {
+ oEles.push(edge);
+ oEles.push(src);
}
- return this.a;
- };
- _2.Bf = function whd() {
- var a, b;
- if (!this.c) {
- this.c = Pu(BD(this.f, 118).yg().i);
- for (b = new Fyd(BD(this.f, 118).yg()); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 79);
- Ekb(this.c, new $gd(a));
- }
+ }
+ }
+ return this.spawn(oEles, true).filter(selector);
+ };
+ }, "defineDagOneHop");
+ defineDagAllHops = /* @__PURE__ */ __name(function defineDagAllHops2(params) {
+ return function(selector) {
+ var eles = this;
+ var sEles = [];
+ var sElesIds = {};
+ for (; ; ) {
+ var next3 = params.outgoing ? eles.outgoers() : eles.incomers();
+ if (next3.length === 0) {
+ break;
+ }
+ var newNext = false;
+ for (var i2 = 0; i2 < next3.length; i2++) {
+ var n2 = next3[i2];
+ var nid = n2.id();
+ if (!sElesIds[nid]) {
+ sElesIds[nid] = true;
+ sEles.push(n2);
+ newNext = true;
}
- return this.c;
- };
- _2.Hf = function xhd() {
- return BD(BD(this.f, 118).We((Y9c(), A9c)), 61);
- };
- _2.If = function yhd() {
- var a, b, c2, d, e, f2, g, h;
- d = mpd(BD(this.f, 118));
- for (c2 = new Fyd(BD(this.f, 118).yg()); c2.e != c2.i.gc(); ) {
- a = BD(Dyd(c2), 79);
- for (h = new Fyd((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)); h.e != h.i.gc(); ) {
- g = BD(Dyd(h), 82);
- if (ntd(atd(g), d)) {
- return true;
- } else if (atd(g) == d && Ccb(DD(hkd(a, (Y9c(), N8c))))) {
- return true;
- }
- }
+ }
+ if (!newNext) {
+ break;
+ }
+ eles = next3;
+ }
+ return this.spawn(sEles, true).filter(selector);
+ };
+ }, "defineDagAllHops");
+ elesfn$2.clearTraversalCache = function() {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ this[i2]._private.traversalCache = null;
+ }
+ };
+ extend2(elesfn$2, {
+ // get the root nodes in the DAG
+ roots: defineDagExtremity({
+ noIncomingEdges: true
+ }),
+ // get the leaf nodes in the DAG
+ leaves: defineDagExtremity({
+ noOutgoingEdges: true
+ }),
+ // normally called children in graph theory
+ // these nodes =edges=> outgoing nodes
+ outgoers: cache(defineDagOneHop({
+ outgoing: true
+ }), "outgoers"),
+ // aka DAG descendants
+ successors: defineDagAllHops({
+ outgoing: true
+ }),
+ // normally called parents in graph theory
+ // these nodes <=edges= incoming nodes
+ incomers: cache(defineDagOneHop({
+ incoming: true
+ }), "incomers"),
+ // aka DAG ancestors
+ predecessors: defineDagAllHops({
+ incoming: true
+ })
+ });
+ extend2(elesfn$2, {
+ neighborhood: cache(function(selector) {
+ var elements3 = [];
+ var nodes6 = this.nodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var node2 = nodes6[i2];
+ var connectedEdges = node2.connectedEdges();
+ for (var j2 = 0; j2 < connectedEdges.length; j2++) {
+ var edge = connectedEdges[j2];
+ var src = edge.source();
+ var tgt = edge.target();
+ var otherNode = node2 === src ? tgt : src;
+ if (otherNode.length > 0) {
+ elements3.push(otherNode[0]);
}
- for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 79);
- for (f2 = new Fyd((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b)); f2.e != f2.i.gc(); ) {
- e = BD(Dyd(f2), 82);
- if (ntd(atd(e), d)) {
- return true;
- }
+ elements3.push(edge[0]);
+ }
+ }
+ return this.spawn(elements3, true).filter(selector);
+ }, "neighborhood"),
+ closedNeighborhood: /* @__PURE__ */ __name(function closedNeighborhood(selector) {
+ return this.neighborhood().add(this).filter(selector);
+ }, "closedNeighborhood"),
+ openNeighborhood: /* @__PURE__ */ __name(function openNeighborhood(selector) {
+ return this.neighborhood(selector);
+ }, "openNeighborhood")
+ });
+ elesfn$2.neighbourhood = elesfn$2.neighborhood;
+ elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;
+ elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;
+ extend2(elesfn$2, {
+ source: cache(/* @__PURE__ */ __name(function sourceImpl(selector) {
+ var ele = this[0];
+ var src;
+ if (ele) {
+ src = ele._private.source || ele.cy().collection();
+ }
+ return src && selector ? src.filter(selector) : src;
+ }, "sourceImpl"), "source"),
+ target: cache(/* @__PURE__ */ __name(function targetImpl(selector) {
+ var ele = this[0];
+ var tgt;
+ if (ele) {
+ tgt = ele._private.target || ele.cy().collection();
+ }
+ return tgt && selector ? tgt.filter(selector) : tgt;
+ }, "targetImpl"), "target"),
+ sources: defineSourceFunction({
+ attr: "source"
+ }),
+ targets: defineSourceFunction({
+ attr: "target"
+ })
+ });
+ __name(defineSourceFunction, "defineSourceFunction");
+ extend2(elesfn$2, {
+ edgesWith: cache(defineEdgesWithFunction(), "edgesWith"),
+ edgesTo: cache(defineEdgesWithFunction({
+ thisIsSrc: true
+ }), "edgesTo")
+ });
+ __name(defineEdgesWithFunction, "defineEdgesWithFunction");
+ extend2(elesfn$2, {
+ connectedEdges: cache(function(selector) {
+ var retEles = [];
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var node2 = eles[i2];
+ if (!node2.isNode()) {
+ continue;
+ }
+ var edges5 = node2._private.edges;
+ for (var j2 = 0; j2 < edges5.length; j2++) {
+ var edge = edges5[j2];
+ retEles.push(edge);
+ }
+ }
+ return this.spawn(retEles, true).filter(selector);
+ }, "connectedEdges"),
+ connectedNodes: cache(function(selector) {
+ var retEles = [];
+ var eles = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var edge = eles[i2];
+ if (!edge.isEdge()) {
+ continue;
+ }
+ retEles.push(edge.source()[0]);
+ retEles.push(edge.target()[0]);
+ }
+ return this.spawn(retEles, true).filter(selector);
+ }, "connectedNodes"),
+ parallelEdges: cache(defineParallelEdgesFunction(), "parallelEdges"),
+ codirectedEdges: cache(defineParallelEdgesFunction({
+ codirected: true
+ }), "codirectedEdges")
+ });
+ __name(defineParallelEdgesFunction, "defineParallelEdgesFunction");
+ extend2(elesfn$2, {
+ components: /* @__PURE__ */ __name(function components2(root4) {
+ var self2 = this;
+ var cy = self2.cy();
+ var visited = cy.collection();
+ var unvisited = root4 == null ? self2.nodes() : root4.nodes();
+ var components3 = [];
+ if (root4 != null && unvisited.empty()) {
+ unvisited = root4.sources();
+ }
+ var visitInComponent = /* @__PURE__ */ __name(function visitInComponent2(node2, component2) {
+ visited.merge(node2);
+ unvisited.unmerge(node2);
+ component2.merge(node2);
+ }, "visitInComponent");
+ if (unvisited.empty()) {
+ return self2.spawn();
+ }
+ var _loop = /* @__PURE__ */ __name(function _loop2() {
+ var cmpt = cy.collection();
+ components3.push(cmpt);
+ var root5 = unvisited[0];
+ visitInComponent(root5, cmpt);
+ self2.bfs({
+ directed: false,
+ roots: root5,
+ visit: /* @__PURE__ */ __name(function visit(v3) {
+ return visitInComponent(v3, cmpt);
+ }, "visit")
+ });
+ cmpt.forEach(function(node2) {
+ node2.connectedEdges().forEach(function(e3) {
+ if (self2.has(e3) && cmpt.has(e3.source()) && cmpt.has(e3.target())) {
+ cmpt.merge(e3);
}
+ });
+ });
+ }, "_loop");
+ do {
+ _loop();
+ } while (unvisited.length > 0);
+ return components3;
+ }, "components"),
+ component: /* @__PURE__ */ __name(function component() {
+ var ele = this[0];
+ return ele.cy().mutableElements().components(ele)[0];
+ }, "component")
+ });
+ elesfn$2.componentsOf = elesfn$2.components;
+ Collection = /* @__PURE__ */ __name(function Collection2(cy, elements3) {
+ var unique = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
+ var removed = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
+ if (cy === void 0) {
+ error("A collection must have a reference to the core");
+ return;
+ }
+ var map5 = new Map$2();
+ var createdElements = false;
+ if (!elements3) {
+ elements3 = [];
+ } else if (elements3.length > 0 && plainObject(elements3[0]) && !element(elements3[0])) {
+ createdElements = true;
+ var eles = [];
+ var elesIds = new Set$1();
+ for (var i2 = 0, l2 = elements3.length; i2 < l2; i2++) {
+ var json3 = elements3[i2];
+ if (json3.data == null) {
+ json3.data = {};
+ }
+ var _data = json3.data;
+ if (_data.id == null) {
+ _data.id = uuid();
+ } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {
+ continue;
+ }
+ var ele = new Element(cy, json3, false);
+ eles.push(ele);
+ elesIds.add(_data.id);
+ }
+ elements3 = eles;
+ }
+ this.length = 0;
+ for (var _i = 0, _l = elements3.length; _i < _l; _i++) {
+ var element$1 = elements3[_i][0];
+ if (element$1 == null) {
+ continue;
+ }
+ var id27 = element$1._private.data.id;
+ if (!unique || !map5.has(id27)) {
+ if (unique) {
+ map5.set(id27, {
+ index: this.length,
+ ele: element$1
+ });
+ }
+ this[this.length] = element$1;
+ this.length++;
+ }
+ }
+ this._private = {
+ eles: this,
+ cy,
+ get map() {
+ if (this.lazyMap == null) {
+ this.rebuildMap();
+ }
+ return this.lazyMap;
+ },
+ set map(m2) {
+ this.lazyMap = m2;
+ },
+ rebuildMap: /* @__PURE__ */ __name(function rebuildMap() {
+ var m2 = this.lazyMap = new Map$2();
+ var eles2 = this.eles;
+ for (var _i2 = 0; _i2 < eles2.length; _i2++) {
+ var _ele = eles2[_i2];
+ m2.set(_ele.id(), {
+ index: _i2,
+ ele: _ele
+ });
+ }
+ }, "rebuildMap")
+ };
+ if (unique) {
+ this._private.map = map5;
+ }
+ if (createdElements && !removed) {
+ this.restore();
+ }
+ }, "Collection");
+ elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);
+ elesfn$1.instanceString = function() {
+ return "collection";
+ };
+ elesfn$1.spawn = function(eles, unique) {
+ return new Collection(this.cy(), eles, unique);
+ };
+ elesfn$1.spawnSelf = function() {
+ return this.spawn(this);
+ };
+ elesfn$1.cy = function() {
+ return this._private.cy;
+ };
+ elesfn$1.renderer = function() {
+ return this._private.cy.renderer();
+ };
+ elesfn$1.element = function() {
+ return this[0];
+ };
+ elesfn$1.collection = function() {
+ if (collection(this)) {
+ return this;
+ } else {
+ return new Collection(this._private.cy, [this]);
+ }
+ };
+ elesfn$1.unique = function() {
+ return new Collection(this._private.cy, this, true);
+ };
+ elesfn$1.hasElementWithId = function(id27) {
+ id27 = "" + id27;
+ return this._private.map.has(id27);
+ };
+ elesfn$1.getElementById = function(id27) {
+ id27 = "" + id27;
+ var cy = this._private.cy;
+ var entry = this._private.map.get(id27);
+ return entry ? entry.ele : new Collection(cy);
+ };
+ elesfn$1.$id = elesfn$1.getElementById;
+ elesfn$1.poolIndex = function() {
+ var cy = this._private.cy;
+ var eles = cy._private.elements;
+ var id27 = this[0]._private.data.id;
+ return eles._private.map.get(id27).index;
+ };
+ elesfn$1.indexOf = function(ele) {
+ var id27 = ele[0]._private.data.id;
+ return this._private.map.get(id27).index;
+ };
+ elesfn$1.indexOfId = function(id27) {
+ id27 = "" + id27;
+ return this._private.map.get(id27).index;
+ };
+ elesfn$1.json = function(obj) {
+ var ele = this.element();
+ var cy = this.cy();
+ if (ele == null && obj) {
+ return this;
+ }
+ if (ele == null) {
+ return void 0;
+ }
+ var p3 = ele._private;
+ if (plainObject(obj)) {
+ cy.startBatch();
+ if (obj.data) {
+ ele.data(obj.data);
+ var _data2 = p3.data;
+ if (ele.isEdge()) {
+ var move = false;
+ var spec = {};
+ var src = obj.data.source;
+ var tgt = obj.data.target;
+ if (src != null && src != _data2.source) {
+ spec.source = "" + src;
+ move = true;
}
- return false;
- };
- _2.a = null;
- _2.b = null;
- _2.c = null;
- mdb(Use, "ElkGraphAdapters/ElkPortAdapter", 1266);
- bcb(1267, 1, Dke, Ahd);
- _2.ue = function Bhd(a, b) {
- return zhd(BD(a, 118), BD(b, 118));
- };
- _2.Fb = function Chd(a) {
- return this === a;
- };
- _2.ve = function Dhd() {
- return new tpb(this);
- };
- mdb(Use, "ElkGraphAdapters/PortComparator", 1267);
- var m5 = odb(Vse, "EObject");
- var x2 = odb(Wse, Xse);
- var y2 = odb(Wse, Yse);
- var C2 = odb(Wse, Zse);
- var G2 = odb(Wse, "ElkShape");
- var z2 = odb(Wse, $se);
- var B2 = odb(Wse, _se);
- var A2 = odb(Wse, ate);
- var k5 = odb(Vse, bte);
- var i5 = odb(Vse, "EFactory");
- var Ehd;
- var l5 = odb(Vse, cte);
- var o5 = odb(Vse, "EPackage");
- var Ghd;
- var Ihd, Jhd, Khd, Lhd, Mhd, Nhd, Ohd, Phd, Qhd, Rhd, Shd;
- var D2 = odb(Wse, dte);
- var E2 = odb(Wse, ete);
- var F2 = odb(Wse, fte);
- bcb(90, 1, gte);
- _2.Jg = function Vhd() {
- this.Kg();
- return null;
- };
- _2.Kg = function Whd() {
- return null;
- };
- _2.Lg = function Xhd() {
- return this.Kg(), false;
- };
- _2.Mg = function Yhd() {
- return false;
- };
- _2.Ng = function Zhd(a) {
- Uhd(this, a);
- };
- mdb(hte, "BasicNotifierImpl", 90);
- bcb(97, 90, pte);
- _2.nh = function fjd() {
- return oid(this);
- };
- _2.Og = function Fid(a, b) {
- return a;
- };
- _2.Pg = function Gid() {
- throw vbb(new bgb());
- };
- _2.Qg = function Hid(a) {
- var b;
- return b = zUd(BD(XKd(this.Tg(), this.Vg()), 18)), this.eh().ih(this, b.n, b.f, a);
- };
- _2.Rg = function Iid(a, b) {
- throw vbb(new bgb());
- };
- _2.Sg = function Jid(a, b, c2) {
- return _hd(this, a, b, c2);
- };
- _2.Tg = function Kid() {
- var a;
- if (this.Pg()) {
- a = this.Pg().ck();
- if (a) {
- return a;
- }
- }
- return this.zh();
- };
- _2.Ug = function Lid() {
- return aid(this);
- };
- _2.Vg = function Mid() {
- throw vbb(new bgb());
- };
- _2.Wg = function Oid() {
- var a, b;
- b = this.ph().dk();
- !b && this.Pg().ik(b = (nRd(), a = pNd(TKd(this.Tg())), a == null ? mRd : new qRd(this, a)));
- return b;
- };
- _2.Xg = function Qid(a, b) {
- return a;
- };
- _2.Yg = function Rid(a) {
- var b;
- b = a.Gj();
- return !b ? bLd(this.Tg(), a) : a.aj();
- };
- _2.Zg = function Sid() {
- var a;
- a = this.Pg();
- return !a ? null : a.fk();
- };
- _2.$g = function Tid() {
- return !this.Pg() ? null : this.Pg().ck();
- };
- _2._g = function Uid(a, b, c2) {
- return fid(this, a, b, c2);
- };
- _2.ah = function Vid(a) {
- return gid(this, a);
- };
- _2.bh = function Wid(a, b) {
- return hid(this, a, b);
- };
- _2.dh = function Xid() {
- var a;
- a = this.Pg();
- return !!a && a.gk();
- };
- _2.eh = function Yid() {
- throw vbb(new bgb());
- };
- _2.fh = function Zid() {
- return jid(this);
- };
- _2.gh = function $id(a, b, c2, d) {
- return kid(this, a, b, d);
- };
- _2.hh = function _id(a, b, c2) {
- var d;
- return d = BD(XKd(this.Tg(), b), 66), d.Nj().Qj(this, this.yh(), b - this.Ah(), a, c2);
- };
- _2.ih = function ajd(a, b, c2, d) {
- return lid(this, a, b, d);
- };
- _2.jh = function bjd(a, b, c2) {
- var d;
- return d = BD(XKd(this.Tg(), b), 66), d.Nj().Rj(this, this.yh(), b - this.Ah(), a, c2);
- };
- _2.kh = function cjd() {
- return !!this.Pg() && !!this.Pg().ek();
- };
- _2.lh = function djd(a) {
- return mid(this, a);
- };
- _2.mh = function ejd(a) {
- return nid(this, a);
- };
- _2.oh = function gjd(a) {
- return rid(this, a);
- };
- _2.ph = function hjd() {
- throw vbb(new bgb());
- };
- _2.qh = function ijd() {
- return !this.Pg() ? null : this.Pg().ek();
- };
- _2.rh = function jjd() {
- return jid(this);
- };
- _2.sh = function kjd(a, b) {
- yid(this, a, b);
- };
- _2.th = function ljd(a) {
- this.ph().hk(a);
- };
- _2.uh = function mjd(a) {
- this.ph().kk(a);
- };
- _2.vh = function njd(a) {
- this.ph().jk(a);
- };
- _2.wh = function ojd(a, b) {
- var c2, d, e, f2;
- f2 = this.Zg();
- if (!!f2 && !!a) {
- b = Txd(f2.Vk(), this, b);
- f2.Zk(this);
- }
- d = this.eh();
- if (d) {
- if ((Nid(this, this.eh(), this.Vg()).Bb & Tje) != 0) {
- e = d.fh();
- !!e && (!a ? e.Yk(this) : !f2 && e.Zk(this));
- } else {
- b = (c2 = this.Vg(), c2 >= 0 ? this.Qg(b) : this.eh().ih(this, -1 - c2, null, b));
- b = this.Sg(null, -1, b);
- }
- }
- this.uh(a);
- return b;
- };
- _2.xh = function pjd(a) {
- var b, c2, d, e, f2, g, h, i3;
- c2 = this.Tg();
- f2 = bLd(c2, a);
- b = this.Ah();
- if (f2 >= b) {
- return BD(a, 66).Nj().Uj(this, this.yh(), f2 - b);
- } else if (f2 <= -1) {
- g = e1d((O6d(), M6d), c2, a);
- if (g) {
- Q6d();
- BD(g, 66).Oj() || (g = _1d(q1d(M6d, g)));
- e = (d = this.Yg(g), BD(d >= 0 ? this._g(d, true, true) : sid(this, g, true), 153));
- i3 = g.Zj();
- if (i3 > 1 || i3 == -1) {
- return BD(BD(e, 215).hl(a, false), 76);
- }
- } else {
- throw vbb(new Wdb(ite + a.ne() + lte));
- }
- } else if (a.$j()) {
- return d = this.Yg(a), BD(d >= 0 ? this._g(d, false, true) : sid(this, a, false), 76);
- }
- h = new nGd(this, a);
- return h;
- };
- _2.yh = function qjd() {
- return Aid(this);
- };
- _2.zh = function rjd() {
- return (NFd(), MFd).S;
- };
- _2.Ah = function sjd() {
- return aLd(this.zh());
- };
- _2.Bh = function tjd(a) {
- Cid(this, a);
- };
- _2.Ib = function ujd() {
- return Eid(this);
- };
- mdb(qte, "BasicEObjectImpl", 97);
- var zFd;
- bcb(114, 97, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1 });
- _2.Ch = function Djd(a) {
- var b;
- b = xjd(this);
- return b[a];
- };
- _2.Dh = function Ejd(a, b) {
- var c2;
- c2 = xjd(this);
- NC(c2, a, b);
- };
- _2.Eh = function Fjd(a) {
- var b;
- b = xjd(this);
- NC(b, a, null);
- };
- _2.Jg = function Gjd() {
- return BD(Ajd(this, 4), 126);
- };
- _2.Kg = function Hjd() {
- throw vbb(new bgb());
- };
- _2.Lg = function Ijd() {
- return (this.Db & 4) != 0;
- };
- _2.Pg = function Jjd() {
- throw vbb(new bgb());
- };
- _2.Fh = function Kjd(a) {
- Cjd(this, 2, a);
- };
- _2.Rg = function Ljd(a, b) {
- this.Db = b << 16 | this.Db & 255;
- this.Fh(a);
- };
- _2.Tg = function Mjd() {
- return wjd(this);
- };
- _2.Vg = function Njd() {
- return this.Db >> 16;
- };
- _2.Wg = function Ojd() {
- var a, b;
- return nRd(), b = pNd(TKd((a = BD(Ajd(this, 16), 26), !a ? this.zh() : a))), b == null ? mRd : new qRd(this, b);
- };
- _2.Mg = function Pjd() {
- return (this.Db & 1) == 0;
- };
- _2.Zg = function Qjd() {
- return BD(Ajd(this, 128), 1935);
- };
- _2.$g = function Rjd() {
- return BD(Ajd(this, 16), 26);
- };
- _2.dh = function Sjd() {
- return (this.Db & 32) != 0;
- };
- _2.eh = function Tjd() {
- return BD(Ajd(this, 2), 49);
- };
- _2.kh = function Ujd() {
- return (this.Db & 64) != 0;
- };
- _2.ph = function Vjd() {
- throw vbb(new bgb());
- };
- _2.qh = function Wjd() {
- return BD(Ajd(this, 64), 281);
- };
- _2.th = function Xjd(a) {
- Cjd(this, 16, a);
- };
- _2.uh = function Yjd(a) {
- Cjd(this, 128, a);
- };
- _2.vh = function Zjd(a) {
- Cjd(this, 64, a);
- };
- _2.yh = function $jd() {
- return yjd(this);
- };
- _2.Db = 0;
- mdb(qte, "MinimalEObjectImpl", 114);
- bcb(115, 114, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
- _2.Fh = function _jd(a) {
- this.Cb = a;
- };
- _2.eh = function akd() {
- return this.Cb;
- };
- mdb(qte, "MinimalEObjectImpl/Container", 115);
- bcb(1985, 115, { 105: 1, 413: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
- _2._g = function kkd(a, b, c2) {
- return bkd(this, a, b, c2);
- };
- _2.jh = function lkd(a, b, c2) {
- return ckd(this, a, b, c2);
- };
- _2.lh = function mkd(a) {
- return dkd(this, a);
- };
- _2.sh = function nkd(a, b) {
- ekd(this, a, b);
- };
- _2.zh = function okd() {
- return Thd(), Shd;
- };
- _2.Bh = function pkd(a) {
- fkd(this, a);
- };
- _2.Ve = function qkd() {
- return gkd(this);
- };
- _2.We = function rkd(a) {
- return hkd(this, a);
- };
- _2.Xe = function skd(a) {
- return ikd(this, a);
- };
- _2.Ye = function tkd(a, b) {
- return jkd(this, a, b);
- };
- mdb(rte, "EMapPropertyHolderImpl", 1985);
- bcb(567, 115, { 105: 1, 469: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, xkd);
- _2._g = function ykd(a, b, c2) {
- switch (a) {
- case 0:
- return this.a;
- case 1:
- return this.b;
- }
- return fid(this, a, b, c2);
- };
- _2.lh = function zkd(a) {
- switch (a) {
- case 0:
- return this.a != 0;
- case 1:
- return this.b != 0;
- }
- return mid(this, a);
- };
- _2.sh = function Akd(a, b) {
- switch (a) {
- case 0:
- vkd(this, Edb(ED(b)));
- return;
- case 1:
- wkd(this, Edb(ED(b)));
- return;
- }
- yid(this, a, b);
- };
- _2.zh = function Bkd() {
- return Thd(), Ihd;
- };
- _2.Bh = function Ckd(a) {
- switch (a) {
- case 0:
- vkd(this, 0);
- return;
- case 1:
- wkd(this, 0);
- return;
- }
- Cid(this, a);
- };
- _2.Ib = function Dkd() {
- var a;
- if ((this.Db & 64) != 0)
- return Eid(this);
- a = new Jfb(Eid(this));
- a.a += " (x: ";
- Bfb(a, this.a);
- a.a += ", y: ";
- Bfb(a, this.b);
- a.a += ")";
- return a.a;
- };
- _2.a = 0;
- _2.b = 0;
- mdb(rte, "ElkBendPointImpl", 567);
- bcb(723, 1985, { 105: 1, 413: 1, 160: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
- _2._g = function Nkd(a, b, c2) {
- return Ekd(this, a, b, c2);
- };
- _2.hh = function Okd(a, b, c2) {
- return Fkd(this, a, b, c2);
- };
- _2.jh = function Pkd(a, b, c2) {
- return Gkd(this, a, b, c2);
- };
- _2.lh = function Qkd(a) {
- return Hkd(this, a);
- };
- _2.sh = function Rkd(a, b) {
- Ikd(this, a, b);
- };
- _2.zh = function Skd() {
- return Thd(), Mhd;
- };
- _2.Bh = function Tkd(a) {
- Jkd(this, a);
- };
- _2.zg = function Ukd() {
- return this.k;
- };
- _2.Ag = function Vkd() {
- return Kkd(this);
- };
- _2.Ib = function Wkd() {
- return Mkd(this);
- };
- _2.k = null;
- mdb(rte, "ElkGraphElementImpl", 723);
- bcb(724, 723, { 105: 1, 413: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
- _2._g = function gld(a, b, c2) {
- return Xkd(this, a, b, c2);
- };
- _2.lh = function hld(a) {
- return Ykd(this, a);
- };
- _2.sh = function ild(a, b) {
- Zkd(this, a, b);
- };
- _2.zh = function jld() {
- return Thd(), Rhd;
- };
- _2.Bh = function kld(a) {
- $kd(this, a);
- };
- _2.Bg = function lld() {
- return this.f;
- };
- _2.Cg = function mld() {
- return this.g;
- };
- _2.Dg = function nld() {
- return this.i;
- };
- _2.Eg = function old() {
- return this.j;
- };
- _2.Fg = function pld(a, b) {
- _kd(this, a, b);
- };
- _2.Gg = function qld(a, b) {
- bld(this, a, b);
- };
- _2.Hg = function rld(a) {
- dld(this, a);
- };
- _2.Ig = function sld(a) {
- eld(this, a);
- };
- _2.Ib = function tld() {
- return fld(this);
- };
- _2.f = 0;
- _2.g = 0;
- _2.i = 0;
- _2.j = 0;
- mdb(rte, "ElkShapeImpl", 724);
- bcb(725, 724, { 105: 1, 413: 1, 82: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
- _2._g = function Bld(a, b, c2) {
- return uld(this, a, b, c2);
- };
- _2.hh = function Cld(a, b, c2) {
- return vld(this, a, b, c2);
- };
- _2.jh = function Dld(a, b, c2) {
- return wld(this, a, b, c2);
- };
- _2.lh = function Eld(a) {
- return xld(this, a);
- };
- _2.sh = function Fld(a, b) {
- yld(this, a, b);
- };
- _2.zh = function Gld() {
- return Thd(), Jhd;
- };
- _2.Bh = function Hld(a) {
- zld(this, a);
- };
- _2.xg = function Ild() {
- return !this.d && (this.d = new y5d(B2, this, 8, 5)), this.d;
- };
- _2.yg = function Jld() {
- return !this.e && (this.e = new y5d(B2, this, 7, 4)), this.e;
- };
- mdb(rte, "ElkConnectableShapeImpl", 725);
- bcb(352, 723, { 105: 1, 413: 1, 79: 1, 160: 1, 352: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Tld);
- _2.Qg = function Uld(a) {
- return Lld(this, a);
- };
- _2._g = function Vld(a, b, c2) {
- switch (a) {
- case 3:
- return Mld(this);
- case 4:
- return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b;
- case 5:
- return !this.c && (this.c = new y5d(z2, this, 5, 8)), this.c;
- case 6:
- return !this.a && (this.a = new cUd(A2, this, 6, 6)), this.a;
- case 7:
- return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1) ? false : true;
- case 8:
- return Bcb(), Pld(this) ? true : false;
- case 9:
- return Bcb(), Qld(this) ? true : false;
- case 10:
- return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0) ? true : false;
- }
- return Ekd(this, a, b, c2);
- };
- _2.hh = function Wld(a, b, c2) {
- var d;
- switch (b) {
- case 3:
- !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? Lld(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
- return Kld(this, BD(a, 33), c2);
- case 4:
- return !this.b && (this.b = new y5d(z2, this, 4, 7)), Sxd(this.b, a, c2);
- case 5:
- return !this.c && (this.c = new y5d(z2, this, 5, 8)), Sxd(this.c, a, c2);
- case 6:
- return !this.a && (this.a = new cUd(A2, this, 6, 6)), Sxd(this.a, a, c2);
- }
- return Fkd(this, a, b, c2);
- };
- _2.jh = function Xld(a, b, c2) {
- switch (b) {
- case 3:
- return Kld(this, null, c2);
- case 4:
- return !this.b && (this.b = new y5d(z2, this, 4, 7)), Txd(this.b, a, c2);
- case 5:
- return !this.c && (this.c = new y5d(z2, this, 5, 8)), Txd(this.c, a, c2);
- case 6:
- return !this.a && (this.a = new cUd(A2, this, 6, 6)), Txd(this.a, a, c2);
+ if (tgt != null && tgt != _data2.target) {
+ spec.target = "" + tgt;
+ move = true;
}
- return Gkd(this, a, b, c2);
- };
- _2.lh = function Yld(a) {
- switch (a) {
- case 3:
- return !!Mld(this);
- case 4:
- return !!this.b && this.b.i != 0;
- case 5:
- return !!this.c && this.c.i != 0;
- case 6:
- return !!this.a && this.a.i != 0;
- case 7:
- return !this.b && (this.b = new y5d(z2, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1));
- case 8:
- return Pld(this);
- case 9:
- return Qld(this);
- case 10:
- return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0);
+ if (move) {
+ ele = ele.move(spec);
}
- return Hkd(this, a);
- };
- _2.sh = function Zld(a, b) {
- switch (a) {
- case 3:
- Rld(this, BD(b, 33));
- return;
- case 4:
- !this.b && (this.b = new y5d(z2, this, 4, 7));
- Uxd(this.b);
- !this.b && (this.b = new y5d(z2, this, 4, 7));
- ytd(this.b, BD(b, 14));
- return;
- case 5:
- !this.c && (this.c = new y5d(z2, this, 5, 8));
- Uxd(this.c);
- !this.c && (this.c = new y5d(z2, this, 5, 8));
- ytd(this.c, BD(b, 14));
- return;
- case 6:
- !this.a && (this.a = new cUd(A2, this, 6, 6));
- Uxd(this.a);
- !this.a && (this.a = new cUd(A2, this, 6, 6));
- ytd(this.a, BD(b, 14));
- return;
+ } else {
+ var newParentValSpecd = "parent" in obj.data;
+ var parent4 = obj.data.parent;
+ if (newParentValSpecd && (parent4 != null || _data2.parent != null) && parent4 != _data2.parent) {
+ if (parent4 === void 0) {
+ parent4 = null;
+ }
+ if (parent4 != null) {
+ parent4 = "" + parent4;
+ }
+ ele = ele.move({
+ parent: parent4
+ });
}
- Ikd(this, a, b);
- };
- _2.zh = function $ld() {
- return Thd(), Khd;
- };
- _2.Bh = function _ld(a) {
- switch (a) {
- case 3:
- Rld(this, null);
- return;
- case 4:
- !this.b && (this.b = new y5d(z2, this, 4, 7));
- Uxd(this.b);
- return;
- case 5:
- !this.c && (this.c = new y5d(z2, this, 5, 8));
- Uxd(this.c);
- return;
- case 6:
- !this.a && (this.a = new cUd(A2, this, 6, 6));
- Uxd(this.a);
- return;
+ }
+ }
+ if (obj.position) {
+ ele.position(obj.position);
+ }
+ var checkSwitch = /* @__PURE__ */ __name(function checkSwitch2(k2, trueFnName, falseFnName) {
+ var obj_k = obj[k2];
+ if (obj_k != null && obj_k !== p3[k2]) {
+ if (obj_k) {
+ ele[trueFnName]();
+ } else {
+ ele[falseFnName]();
}
- Jkd(this, a);
- };
- _2.Ib = function amd() {
- return Sld(this);
- };
- mdb(rte, "ElkEdgeImpl", 352);
- bcb(439, 1985, { 105: 1, 413: 1, 202: 1, 439: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, rmd);
- _2.Qg = function smd(a) {
- return cmd(this, a);
- };
- _2._g = function tmd(a, b, c2) {
- switch (a) {
- case 1:
- return this.j;
- case 2:
- return this.k;
- case 3:
- return this.b;
- case 4:
- return this.c;
- case 5:
- return !this.a && (this.a = new xMd(y2, this, 5)), this.a;
- case 6:
- return fmd(this);
- case 7:
- if (b)
- return emd(this);
- return this.i;
- case 8:
- if (b)
- return dmd(this);
- return this.f;
- case 9:
- return !this.g && (this.g = new y5d(A2, this, 9, 10)), this.g;
- case 10:
- return !this.e && (this.e = new y5d(A2, this, 10, 9)), this.e;
- case 11:
- return this.d;
+ }
+ }, "checkSwitch");
+ checkSwitch("removed", "remove", "restore");
+ checkSwitch("selected", "select", "unselect");
+ checkSwitch("selectable", "selectify", "unselectify");
+ checkSwitch("locked", "lock", "unlock");
+ checkSwitch("grabbable", "grabify", "ungrabify");
+ checkSwitch("pannable", "panify", "unpanify");
+ if (obj.classes != null) {
+ ele.classes(obj.classes);
+ }
+ cy.endBatch();
+ return this;
+ } else if (obj === void 0) {
+ var json3 = {
+ data: copy4(p3.data),
+ position: copy4(p3.position),
+ group: p3.group,
+ removed: p3.removed,
+ selected: p3.selected,
+ selectable: p3.selectable,
+ locked: p3.locked,
+ grabbable: p3.grabbable,
+ pannable: p3.pannable,
+ classes: null
+ };
+ json3.classes = "";
+ var i2 = 0;
+ p3.classes.forEach(function(cls) {
+ return json3.classes += i2++ === 0 ? cls : " " + cls;
+ });
+ return json3;
+ }
+ };
+ elesfn$1.jsons = function() {
+ var jsons = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var json3 = ele.json();
+ jsons.push(json3);
+ }
+ return jsons;
+ };
+ elesfn$1.clone = function() {
+ var cy = this.cy();
+ var elesArr = [];
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var ele = this[i2];
+ var json3 = ele.json();
+ var clone5 = new Element(cy, json3, false);
+ elesArr.push(clone5);
+ }
+ return new Collection(cy, elesArr);
+ };
+ elesfn$1.copy = elesfn$1.clone;
+ elesfn$1.restore = function() {
+ var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
+ var addToPool2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var self2 = this;
+ var cy = self2.cy();
+ var cy_p = cy._private;
+ var nodes6 = [];
+ var edges5 = [];
+ var elements3;
+ for (var _i3 = 0, l2 = self2.length; _i3 < l2; _i3++) {
+ var ele = self2[_i3];
+ if (addToPool2 && !ele.removed()) {
+ continue;
+ }
+ if (ele.isNode()) {
+ nodes6.push(ele);
+ } else {
+ edges5.push(ele);
+ }
+ }
+ elements3 = nodes6.concat(edges5);
+ var i2;
+ var removeFromElements = /* @__PURE__ */ __name(function removeFromElements2() {
+ elements3.splice(i2, 1);
+ i2--;
+ }, "removeFromElements");
+ for (i2 = 0; i2 < elements3.length; i2++) {
+ var _ele2 = elements3[i2];
+ var _private = _ele2._private;
+ var _data3 = _private.data;
+ _ele2.clearTraversalCache();
+ if (!addToPool2 && !_private.removed) ;
+ else if (_data3.id === void 0) {
+ _data3.id = uuid();
+ } else if (number$1(_data3.id)) {
+ _data3.id = "" + _data3.id;
+ } else if (emptyString(_data3.id) || !string(_data3.id)) {
+ error("Can not create element with invalid string ID `" + _data3.id + "`");
+ removeFromElements();
+ continue;
+ } else if (cy.hasElementWithId(_data3.id)) {
+ error("Can not create second element with ID `" + _data3.id + "`");
+ removeFromElements();
+ continue;
+ }
+ var id27 = _data3.id;
+ if (_ele2.isNode()) {
+ var pos = _private.position;
+ if (pos.x == null) {
+ pos.x = 0;
+ }
+ if (pos.y == null) {
+ pos.y = 0;
+ }
+ }
+ if (_ele2.isEdge()) {
+ var edge = _ele2;
+ var fields = ["source", "target"];
+ var fieldsLength = fields.length;
+ var badSourceOrTarget = false;
+ for (var j2 = 0; j2 < fieldsLength; j2++) {
+ var field = fields[j2];
+ var val = _data3[field];
+ if (number$1(val)) {
+ val = _data3[field] = "" + _data3[field];
}
- return bkd(this, a, b, c2);
- };
- _2.hh = function umd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 6:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? cmd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return bmd(this, BD(a, 79), c2);
- case 9:
- return !this.g && (this.g = new y5d(A2, this, 9, 10)), Sxd(this.g, a, c2);
- case 10:
- return !this.e && (this.e = new y5d(A2, this, 10, 9)), Sxd(this.e, a, c2);
+ if (val == null || val === "") {
+ error("Can not create edge `" + id27 + "` with unspecified " + field);
+ badSourceOrTarget = true;
+ } else if (!cy.hasElementWithId(val)) {
+ error("Can not create edge `" + id27 + "` with nonexistant " + field + " `" + val + "`");
+ badSourceOrTarget = true;
}
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (Thd(), Lhd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((Thd(), Lhd)), a, c2);
- };
- _2.jh = function vmd(a, b, c2) {
- switch (b) {
- case 5:
- return !this.a && (this.a = new xMd(y2, this, 5)), Txd(this.a, a, c2);
- case 6:
- return bmd(this, null, c2);
- case 9:
- return !this.g && (this.g = new y5d(A2, this, 9, 10)), Txd(this.g, a, c2);
- case 10:
- return !this.e && (this.e = new y5d(A2, this, 10, 9)), Txd(this.e, a, c2);
+ }
+ if (badSourceOrTarget) {
+ removeFromElements();
+ continue;
+ }
+ var src = cy.getElementById(_data3.source);
+ var tgt = cy.getElementById(_data3.target);
+ if (src.same(tgt)) {
+ src._private.edges.push(edge);
+ } else {
+ src._private.edges.push(edge);
+ tgt._private.edges.push(edge);
+ }
+ edge._private.source = src;
+ edge._private.target = tgt;
+ }
+ _private.map = new Map$2();
+ _private.map.set(id27, {
+ ele: _ele2,
+ index: 0
+ });
+ _private.removed = false;
+ if (addToPool2) {
+ cy.addToPool(_ele2);
+ }
+ }
+ for (var _i4 = 0; _i4 < nodes6.length; _i4++) {
+ var node2 = nodes6[_i4];
+ var _data4 = node2._private.data;
+ if (number$1(_data4.parent)) {
+ _data4.parent = "" + _data4.parent;
+ }
+ var parentId = _data4.parent;
+ var specifiedParent = parentId != null;
+ if (specifiedParent || node2._private.parent) {
+ var parent4 = node2._private.parent ? cy.collection().merge(node2._private.parent) : cy.getElementById(parentId);
+ if (parent4.empty()) {
+ _data4.parent = void 0;
+ } else if (parent4[0].removed()) {
+ warn("Node added with missing parent, reference to parent removed");
+ _data4.parent = void 0;
+ node2._private.parent = null;
+ } else {
+ var selfAsParent = false;
+ var ancestor = parent4;
+ while (!ancestor.empty()) {
+ if (node2.same(ancestor)) {
+ selfAsParent = true;
+ _data4.parent = void 0;
+ break;
+ }
+ ancestor = ancestor.parent();
}
- return ckd(this, a, b, c2);
- };
- _2.lh = function wmd(a) {
- switch (a) {
- case 1:
- return this.j != 0;
- case 2:
- return this.k != 0;
- case 3:
- return this.b != 0;
- case 4:
- return this.c != 0;
- case 5:
- return !!this.a && this.a.i != 0;
- case 6:
- return !!fmd(this);
- case 7:
- return !!this.i;
- case 8:
- return !!this.f;
- case 9:
- return !!this.g && this.g.i != 0;
- case 10:
- return !!this.e && this.e.i != 0;
- case 11:
- return this.d != null;
+ if (!selfAsParent) {
+ parent4[0]._private.children.push(node2);
+ node2._private.parent = parent4[0];
+ cy_p.hasCompoundNodes = true;
}
- return dkd(this, a);
- };
- _2.sh = function xmd(a, b) {
- switch (a) {
- case 1:
- omd(this, Edb(ED(b)));
- return;
- case 2:
- pmd(this, Edb(ED(b)));
- return;
- case 3:
- hmd(this, Edb(ED(b)));
- return;
- case 4:
- imd(this, Edb(ED(b)));
- return;
- case 5:
- !this.a && (this.a = new xMd(y2, this, 5));
- Uxd(this.a);
- !this.a && (this.a = new xMd(y2, this, 5));
- ytd(this.a, BD(b, 14));
- return;
- case 6:
- mmd(this, BD(b, 79));
- return;
- case 7:
- lmd(this, BD(b, 82));
- return;
- case 8:
- kmd(this, BD(b, 82));
- return;
- case 9:
- !this.g && (this.g = new y5d(A2, this, 9, 10));
- Uxd(this.g);
- !this.g && (this.g = new y5d(A2, this, 9, 10));
- ytd(this.g, BD(b, 14));
- return;
- case 10:
- !this.e && (this.e = new y5d(A2, this, 10, 9));
- Uxd(this.e);
- !this.e && (this.e = new y5d(A2, this, 10, 9));
- ytd(this.e, BD(b, 14));
- return;
- case 11:
- jmd(this, GD(b));
- return;
- }
- ekd(this, a, b);
- };
- _2.zh = function ymd() {
- return Thd(), Lhd;
- };
- _2.Bh = function zmd(a) {
- switch (a) {
- case 1:
- omd(this, 0);
- return;
- case 2:
- pmd(this, 0);
- return;
- case 3:
- hmd(this, 0);
- return;
- case 4:
- imd(this, 0);
- return;
- case 5:
- !this.a && (this.a = new xMd(y2, this, 5));
- Uxd(this.a);
- return;
- case 6:
- mmd(this, null);
- return;
- case 7:
- lmd(this, null);
- return;
- case 8:
- kmd(this, null);
- return;
- case 9:
- !this.g && (this.g = new y5d(A2, this, 9, 10));
- Uxd(this.g);
- return;
- case 10:
- !this.e && (this.e = new y5d(A2, this, 10, 9));
- Uxd(this.e);
- return;
- case 11:
- jmd(this, null);
- return;
- }
- fkd(this, a);
- };
- _2.Ib = function Amd() {
- return qmd(this);
- };
- _2.b = 0;
- _2.c = 0;
- _2.d = null;
- _2.j = 0;
- _2.k = 0;
- mdb(rte, "ElkEdgeSectionImpl", 439);
- bcb(150, 115, { 105: 1, 92: 1, 90: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 });
- _2._g = function Emd(a, b, c2) {
- var d;
- if (a == 0) {
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- }
- return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
- };
- _2.hh = function Fmd(a, b, c2) {
- var d, e;
- if (b == 0) {
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c2);
- };
- _2.jh = function Gmd(a, b, c2) {
- var d, e;
- if (b == 0) {
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
- };
- _2.lh = function Hmd(a) {
- var b;
- if (a == 0) {
- return !!this.Ab && this.Ab.i != 0;
- }
- return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.oh = function Imd(a) {
- return Bmd(this, a);
- };
- _2.sh = function Jmd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- }
- did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
- };
- _2.uh = function Kmd(a) {
- Cjd(this, 128, a);
- };
- _2.zh = function Lmd() {
- return jGd(), ZFd;
- };
- _2.Bh = function Mmd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- }
- eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.Gh = function Nmd() {
- this.Bb |= 1;
- };
- _2.Hh = function Omd(a) {
- return Dmd(this, a);
- };
- _2.Bb = 0;
- mdb(qte, "EModelElementImpl", 150);
- bcb(704, 150, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, $md);
- _2.Ih = function _md(a, b) {
- return Vmd(this, a, b);
- };
- _2.Jh = function and(a) {
- var b, c2, d, e, f2;
- if (this.a != bKd(a) || (a.Bb & 256) != 0) {
- throw vbb(new Wdb(xte + a.zb + ute));
+ }
+ }
+ }
+ if (elements3.length > 0) {
+ var restored = elements3.length === self2.length ? self2 : new Collection(cy, elements3);
+ for (var _i5 = 0; _i5 < restored.length; _i5++) {
+ var _ele3 = restored[_i5];
+ if (_ele3.isNode()) {
+ continue;
+ }
+ _ele3.parallelEdges().clearTraversalCache();
+ _ele3.source().clearTraversalCache();
+ _ele3.target().clearTraversalCache();
+ }
+ var toUpdateStyle;
+ if (cy_p.hasCompoundNodes) {
+ toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());
+ } else {
+ toUpdateStyle = restored;
+ }
+ toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);
+ if (notifyRenderer) {
+ restored.emitAndNotify("add");
+ } else if (addToPool2) {
+ restored.emit("add");
+ }
+ }
+ return self2;
+ };
+ elesfn$1.removed = function() {
+ var ele = this[0];
+ return ele && ele._private.removed;
+ };
+ elesfn$1.inside = function() {
+ var ele = this[0];
+ return ele && !ele._private.removed;
+ };
+ elesfn$1.remove = function() {
+ var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
+ var removeFromPool2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var self2 = this;
+ var elesToRemove = [];
+ var elesToRemoveIds = {};
+ var cy = self2._private.cy;
+ function addConnectedEdges(node2) {
+ var edges5 = node2._private.edges;
+ for (var i3 = 0; i3 < edges5.length; i3++) {
+ add3(edges5[i3]);
+ }
+ }
+ __name(addConnectedEdges, "addConnectedEdges");
+ function addChildren2(node2) {
+ var children2 = node2._private.children;
+ for (var i3 = 0; i3 < children2.length; i3++) {
+ add3(children2[i3]);
+ }
+ }
+ __name(addChildren2, "addChildren");
+ function add3(ele2) {
+ var alreadyAdded = elesToRemoveIds[ele2.id()];
+ if (removeFromPool2 && ele2.removed() || alreadyAdded) {
+ return;
+ } else {
+ elesToRemoveIds[ele2.id()] = true;
+ }
+ if (ele2.isNode()) {
+ elesToRemove.push(ele2);
+ addConnectedEdges(ele2);
+ addChildren2(ele2);
+ } else {
+ elesToRemove.unshift(ele2);
+ }
+ }
+ __name(add3, "add");
+ for (var i2 = 0, l2 = self2.length; i2 < l2; i2++) {
+ var ele = self2[i2];
+ add3(ele);
+ }
+ function removeEdgeRef(node2, edge) {
+ var connectedEdges = node2._private.edges;
+ removeFromArray(connectedEdges, edge);
+ node2.clearTraversalCache();
+ }
+ __name(removeEdgeRef, "removeEdgeRef");
+ function removeParallelRef(pllEdge2) {
+ pllEdge2.clearTraversalCache();
+ }
+ __name(removeParallelRef, "removeParallelRef");
+ var alteredParents = [];
+ alteredParents.ids = {};
+ function removeChildRef(parent5, ele2) {
+ ele2 = ele2[0];
+ parent5 = parent5[0];
+ var children2 = parent5._private.children;
+ var pid = parent5.id();
+ removeFromArray(children2, ele2);
+ ele2._private.parent = null;
+ if (!alteredParents.ids[pid]) {
+ alteredParents.ids[pid] = true;
+ alteredParents.push(parent5);
+ }
+ }
+ __name(removeChildRef, "removeChildRef");
+ self2.dirtyCompoundBoundsCache();
+ if (removeFromPool2) {
+ cy.removeFromPool(elesToRemove);
+ }
+ for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {
+ var _ele4 = elesToRemove[_i6];
+ if (_ele4.isEdge()) {
+ var src = _ele4.source()[0];
+ var tgt = _ele4.target()[0];
+ removeEdgeRef(src, _ele4);
+ removeEdgeRef(tgt, _ele4);
+ var pllEdges = _ele4.parallelEdges();
+ for (var j2 = 0; j2 < pllEdges.length; j2++) {
+ var pllEdge = pllEdges[j2];
+ removeParallelRef(pllEdge);
+ if (pllEdge.isBundledBezier()) {
+ pllEdge.dirtyBoundingBoxCache();
}
- for (d = _Kd(a); VKd(d.a).i != 0; ) {
- c2 = BD(nOd(d, 0, (b = BD(qud(VKd(d.a), 0), 87), f2 = b.c, JD(f2, 88) ? BD(f2, 26) : (jGd(), _Fd))), 26);
- if (dKd(c2)) {
- e = bKd(c2).Nh().Jh(c2);
- BD(e, 49).th(a);
- return e;
+ }
+ } else {
+ var parent4 = _ele4.parent();
+ if (parent4.length !== 0) {
+ removeChildRef(parent4, _ele4);
+ }
+ }
+ if (removeFromPool2) {
+ _ele4._private.removed = true;
+ }
+ }
+ var elesStillInside = cy._private.elements;
+ cy._private.hasCompoundNodes = false;
+ for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {
+ var _ele5 = elesStillInside[_i7];
+ if (_ele5.isParent()) {
+ cy._private.hasCompoundNodes = true;
+ break;
+ }
+ }
+ var removedElements = new Collection(this.cy(), elesToRemove);
+ if (removedElements.size() > 0) {
+ if (notifyRenderer) {
+ removedElements.emitAndNotify("remove");
+ } else if (removeFromPool2) {
+ removedElements.emit("remove");
+ }
+ }
+ for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {
+ var _ele6 = alteredParents[_i8];
+ if (!removeFromPool2 || !_ele6.removed()) {
+ _ele6.updateStyle();
+ }
+ }
+ return removedElements;
+ };
+ elesfn$1.move = function(struct) {
+ var cy = this._private.cy;
+ var eles = this;
+ var notifyRenderer = false;
+ var modifyPool = false;
+ var toString6 = /* @__PURE__ */ __name(function toString7(id27) {
+ return id27 == null ? id27 : "" + id27;
+ }, "toString");
+ if (struct.source !== void 0 || struct.target !== void 0) {
+ var srcId = toString6(struct.source);
+ var tgtId = toString6(struct.target);
+ var srcExists = srcId != null && cy.hasElementWithId(srcId);
+ var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);
+ if (srcExists || tgtExists) {
+ cy.batch(function() {
+ eles.remove(notifyRenderer, modifyPool);
+ eles.emitAndNotify("moveout");
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _data5 = ele._private.data;
+ if (ele.isEdge()) {
+ if (srcExists) {
+ _data5.source = srcId;
+ }
+ if (tgtExists) {
+ _data5.target = tgtId;
+ }
}
- d = _Kd(c2);
- }
- return (a.D != null ? a.D : a.B) == "java.util.Map$Entry" ? new lHd(a) : new _Gd(a);
- };
- _2.Kh = function bnd(a, b) {
- return Wmd(this, a, b);
- };
- _2._g = function cnd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.a;
- }
- return bid(this, a - aLd((jGd(), WFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? WFd : d), a), b, c2);
- };
- _2.hh = function dnd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 1:
- !!this.a && (c2 = BD(this.a, 49).ih(this, 4, o5, c2));
- return Tmd(this, BD(a, 235), c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd((jGd(), WFd)), a, c2);
- };
- _2.jh = function end2(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 1:
- return Tmd(this, null, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), WFd)), a, c2);
- };
- _2.lh = function fnd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return !!this.a;
- }
- return cid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a));
- };
- _2.sh = function gnd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- Ymd(this, BD(b, 235));
- return;
- }
- did(this, a - aLd((jGd(), WFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? WFd : c2), a), b);
- };
- _2.zh = function hnd() {
- return jGd(), WFd;
- };
- _2.Bh = function ind(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- Ymd(this, null);
- return;
- }
- eid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a));
- };
- var Pmd, Qmd, Rmd;
- mdb(qte, "EFactoryImpl", 704);
- bcb(zte, 704, { 105: 1, 2014: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, knd);
- _2.Ih = function lnd(a, b) {
- switch (a.yj()) {
- case 12:
- return BD(b, 146).tg();
- case 13:
- return fcb(b);
- default:
- throw vbb(new Wdb(tte + a.ne() + ute));
- }
- };
- _2.Jh = function mnd(a) {
- var b, c2, d, e, f2, g, h, i3;
- switch (a.G == -1 && (a.G = (b = bKd(a), b ? HLd(b.Mh(), a) : -1)), a.G) {
- case 4:
- return f2 = new Jod(), f2;
- case 6:
- return g = new apd(), g;
- case 7:
- return h = new ppd(), h;
- case 8:
- return d = new Tld(), d;
- case 9:
- return c2 = new xkd(), c2;
- case 10:
- return e = new rmd(), e;
- case 11:
- return i3 = new Bpd(), i3;
- default:
- throw vbb(new Wdb(xte + a.zb + ute));
- }
- };
- _2.Kh = function nnd(a, b) {
- switch (a.yj()) {
- case 13:
- case 12:
- return null;
- default:
- throw vbb(new Wdb(tte + a.ne() + ute));
- }
- };
- mdb(rte, "ElkGraphFactoryImpl", zte);
- bcb(438, 150, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 });
- _2.Wg = function rnd() {
- var a, b;
- b = (a = BD(Ajd(this, 16), 26), pNd(TKd(!a ? this.zh() : a)));
- return b == null ? (nRd(), nRd(), mRd) : new GRd(this, b);
- };
- _2._g = function snd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.ne();
- }
- return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
- };
- _2.lh = function tnd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- }
- return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.sh = function und(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- this.Lh(GD(b));
- return;
- }
- did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
- };
- _2.zh = function vnd() {
- return jGd(), $Fd;
- };
- _2.Bh = function wnd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- this.Lh(null);
- return;
- }
- eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.ne = function xnd() {
- return this.zb;
- };
- _2.Lh = function ynd(a) {
- pnd(this, a);
- };
- _2.Ib = function znd() {
- return qnd(this);
- };
- _2.zb = null;
- mdb(qte, "ENamedElementImpl", 438);
- bcb(179, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, eod);
- _2.Qg = function god(a) {
- return Snd(this, a);
- };
- _2._g = function hod(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return this.yb;
- case 3:
- return this.xb;
- case 4:
- return this.sb;
- case 5:
- return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb;
- case 6:
- return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), this.vb;
- case 7:
- if (b)
- return this.Db >> 16 == 7 ? BD(this.Cb, 235) : null;
- return Ind(this);
- }
- return bid(this, a - aLd((jGd(), cGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? cGd : d), a), b, c2);
- };
- _2.hh = function iod(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 4:
- !!this.sb && (c2 = BD(this.sb, 49).ih(this, 1, i5, c2));
- return Jnd(this, BD(a, 471), c2);
- case 5:
- return !this.rb && (this.rb = new jUd(this, d5, this)), Sxd(this.rb, a, c2);
- case 6:
- return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Sxd(this.vb, a, c2);
- case 7:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? Snd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 7, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), cGd)), a, c2);
- };
- _2.jh = function jod(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 4:
- return Jnd(this, null, c2);
- case 5:
- return !this.rb && (this.rb = new jUd(this, d5, this)), Txd(this.rb, a, c2);
- case 6:
- return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Txd(this.vb, a, c2);
- case 7:
- return _hd(this, null, 7, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), cGd)), a, c2);
- };
- _2.lh = function kod(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return this.yb != null;
- case 3:
- return this.xb != null;
- case 4:
- return !!this.sb;
- case 5:
- return !!this.rb && this.rb.i != 0;
- case 6:
- return !!this.vb && this.vb.i != 0;
- case 7:
- return !!Ind(this);
- }
- return cid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a));
- };
- _2.oh = function lod(a) {
- var b;
- b = Und(this, a);
- return b ? b : Bmd(this, a);
- };
- _2.sh = function mod(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- pnd(this, GD(b));
- return;
- case 2:
- dod(this, GD(b));
- return;
- case 3:
- cod(this, GD(b));
- return;
- case 4:
- bod(this, BD(b, 471));
- return;
- case 5:
- !this.rb && (this.rb = new jUd(this, d5, this));
- Uxd(this.rb);
- !this.rb && (this.rb = new jUd(this, d5, this));
- ytd(this.rb, BD(b, 14));
- return;
- case 6:
- !this.vb && (this.vb = new gUd(o5, this, 6, 7));
- Uxd(this.vb);
- !this.vb && (this.vb = new gUd(o5, this, 6, 7));
- ytd(this.vb, BD(b, 14));
- return;
}
- did(this, a - aLd((jGd(), cGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? cGd : c2), a), b);
- };
- _2.vh = function nod(a) {
- var b, c2;
- if (!!a && !!this.rb) {
- for (c2 = new Fyd(this.rb); c2.e != c2.i.gc(); ) {
- b = Dyd(c2);
- JD(b, 351) && (BD(b, 351).w = null);
+ eles.restore(notifyRenderer, modifyPool);
+ });
+ eles.emitAndNotify("move");
+ }
+ } else if (struct.parent !== void 0) {
+ var parentId = toString6(struct.parent);
+ var parentExists = parentId === null || cy.hasElementWithId(parentId);
+ if (parentExists) {
+ var pidToAssign = parentId === null ? void 0 : parentId;
+ cy.batch(function() {
+ var updated = eles.remove(notifyRenderer, modifyPool);
+ updated.emitAndNotify("moveout");
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _data6 = ele._private.data;
+ if (ele.isNode()) {
+ _data6.parent = pidToAssign;
}
}
- Cjd(this, 64, a);
- };
- _2.zh = function ood() {
- return jGd(), cGd;
- };
- _2.Bh = function pod(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- pnd(this, null);
- return;
- case 2:
- dod(this, null);
- return;
- case 3:
- cod(this, null);
- return;
- case 4:
- bod(this, null);
- return;
- case 5:
- !this.rb && (this.rb = new jUd(this, d5, this));
- Uxd(this.rb);
- return;
- case 6:
- !this.vb && (this.vb = new gUd(o5, this, 6, 7));
- Uxd(this.vb);
- return;
- }
- eid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a));
- };
- _2.Gh = function qod() {
- Tnd(this);
- };
- _2.Mh = function rod() {
- return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb;
- };
- _2.Nh = function sod() {
- return this.sb;
- };
- _2.Oh = function tod() {
- return this.ub;
- };
- _2.Ph = function uod() {
- return this.xb;
- };
- _2.Qh = function vod() {
- return this.yb;
- };
- _2.Rh = function wod(a) {
- this.ub = a;
- };
- _2.Ib = function xod() {
- var a;
- if ((this.Db & 64) != 0)
- return qnd(this);
- a = new Jfb(qnd(this));
- a.a += " (nsURI: ";
- Efb(a, this.yb);
- a.a += ", nsPrefix: ";
- Efb(a, this.xb);
- a.a += ")";
- return a.a;
- };
- _2.xb = null;
- _2.yb = null;
- mdb(qte, "EPackageImpl", 179);
- bcb(555, 179, { 105: 1, 2016: 1, 555: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, Bod);
- _2.q = false;
- _2.r = false;
- var yod = false;
- mdb(rte, "ElkGraphPackageImpl", 555);
- bcb(354, 724, { 105: 1, 413: 1, 160: 1, 137: 1, 470: 1, 354: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Jod);
- _2.Qg = function Kod(a) {
- return Eod(this, a);
- };
- _2._g = function Lod(a, b, c2) {
- switch (a) {
- case 7:
- return Fod(this);
- case 8:
- return this.a;
- }
- return Xkd(this, a, b, c2);
- };
- _2.hh = function Mod(a, b, c2) {
- var d;
- switch (b) {
- case 7:
- !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? Eod(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
- return Dod(this, BD(a, 160), c2);
- }
- return Fkd(this, a, b, c2);
- };
- _2.jh = function Nod(a, b, c2) {
- if (b == 7) {
- return Dod(this, null, c2);
- }
- return Gkd(this, a, b, c2);
- };
- _2.lh = function Ood(a) {
- switch (a) {
- case 7:
- return !!Fod(this);
- case 8:
- return !dfb("", this.a);
- }
- return Ykd(this, a);
- };
- _2.sh = function Pod(a, b) {
- switch (a) {
- case 7:
- God(this, BD(b, 160));
- return;
- case 8:
- Hod(this, GD(b));
- return;
- }
- Zkd(this, a, b);
- };
- _2.zh = function Qod() {
- return Thd(), Nhd;
- };
- _2.Bh = function Rod(a) {
- switch (a) {
- case 7:
- God(this, null);
- return;
- case 8:
- Hod(this, "");
- return;
- }
- $kd(this, a);
- };
- _2.Ib = function Sod() {
- return Iod(this);
- };
- _2.a = "";
- mdb(rte, "ElkLabelImpl", 354);
- bcb(239, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 33: 1, 470: 1, 239: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, apd);
- _2.Qg = function bpd(a) {
- return Uod(this, a);
- };
- _2._g = function cpd(a, b, c2) {
- switch (a) {
- case 9:
- return !this.c && (this.c = new cUd(F2, this, 9, 9)), this.c;
- case 10:
- return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a;
- case 11:
- return Xod(this);
- case 12:
- return !this.b && (this.b = new cUd(B2, this, 12, 3)), this.b;
- case 13:
- return Bcb(), !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0 ? true : false;
- }
- return uld(this, a, b, c2);
- };
- _2.hh = function dpd(a, b, c2) {
- var d;
- switch (b) {
- case 9:
- return !this.c && (this.c = new cUd(F2, this, 9, 9)), Sxd(this.c, a, c2);
- case 10:
- return !this.a && (this.a = new cUd(E2, this, 10, 11)), Sxd(this.a, a, c2);
- case 11:
- !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? Uod(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
- return Tod(this, BD(a, 33), c2);
- case 12:
- return !this.b && (this.b = new cUd(B2, this, 12, 3)), Sxd(this.b, a, c2);
- }
- return vld(this, a, b, c2);
- };
- _2.jh = function epd(a, b, c2) {
- switch (b) {
- case 9:
- return !this.c && (this.c = new cUd(F2, this, 9, 9)), Txd(this.c, a, c2);
- case 10:
- return !this.a && (this.a = new cUd(E2, this, 10, 11)), Txd(this.a, a, c2);
- case 11:
- return Tod(this, null, c2);
- case 12:
- return !this.b && (this.b = new cUd(B2, this, 12, 3)), Txd(this.b, a, c2);
- }
- return wld(this, a, b, c2);
- };
- _2.lh = function fpd(a) {
- switch (a) {
- case 9:
- return !!this.c && this.c.i != 0;
- case 10:
- return !!this.a && this.a.i != 0;
- case 11:
- return !!Xod(this);
- case 12:
- return !!this.b && this.b.i != 0;
- case 13:
- return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0;
- }
- return xld(this, a);
- };
- _2.sh = function gpd(a, b) {
- switch (a) {
- case 9:
- !this.c && (this.c = new cUd(F2, this, 9, 9));
- Uxd(this.c);
- !this.c && (this.c = new cUd(F2, this, 9, 9));
- ytd(this.c, BD(b, 14));
- return;
- case 10:
- !this.a && (this.a = new cUd(E2, this, 10, 11));
- Uxd(this.a);
- !this.a && (this.a = new cUd(E2, this, 10, 11));
- ytd(this.a, BD(b, 14));
- return;
- case 11:
- $od(this, BD(b, 33));
- return;
- case 12:
- !this.b && (this.b = new cUd(B2, this, 12, 3));
- Uxd(this.b);
- !this.b && (this.b = new cUd(B2, this, 12, 3));
- ytd(this.b, BD(b, 14));
- return;
- }
- yld(this, a, b);
- };
- _2.zh = function hpd() {
- return Thd(), Ohd;
- };
- _2.Bh = function ipd(a) {
- switch (a) {
- case 9:
- !this.c && (this.c = new cUd(F2, this, 9, 9));
- Uxd(this.c);
- return;
- case 10:
- !this.a && (this.a = new cUd(E2, this, 10, 11));
- Uxd(this.a);
- return;
- case 11:
- $od(this, null);
- return;
- case 12:
- !this.b && (this.b = new cUd(B2, this, 12, 3));
- Uxd(this.b);
- return;
- }
- zld(this, a);
- };
- _2.Ib = function jpd() {
- return _od(this);
- };
- mdb(rte, "ElkNodeImpl", 239);
- bcb(186, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 118: 1, 470: 1, 186: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, ppd);
- _2.Qg = function qpd(a) {
- return lpd(this, a);
- };
- _2._g = function rpd(a, b, c2) {
- if (a == 9) {
- return mpd(this);
- }
- return uld(this, a, b, c2);
- };
- _2.hh = function spd(a, b, c2) {
- var d;
- switch (b) {
- case 9:
- !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? lpd(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
- return kpd(this, BD(a, 33), c2);
- }
- return vld(this, a, b, c2);
- };
- _2.jh = function tpd(a, b, c2) {
- if (b == 9) {
- return kpd(this, null, c2);
- }
- return wld(this, a, b, c2);
- };
- _2.lh = function upd(a) {
- if (a == 9) {
- return !!mpd(this);
- }
- return xld(this, a);
- };
- _2.sh = function vpd(a, b) {
- switch (a) {
- case 9:
- npd(this, BD(b, 33));
- return;
- }
- yld(this, a, b);
- };
- _2.zh = function wpd() {
- return Thd(), Phd;
- };
- _2.Bh = function xpd(a) {
- switch (a) {
- case 9:
- npd(this, null);
- return;
- }
- zld(this, a);
- };
- _2.Ib = function ypd() {
- return opd(this);
- };
- mdb(rte, "ElkPortImpl", 186);
- var J4 = odb(Tte, "BasicEMap/Entry");
- bcb(1092, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Bpd);
- _2.Fb = function Hpd(a) {
- return this === a;
- };
- _2.cd = function Jpd() {
- return this.b;
- };
- _2.Hb = function Lpd() {
- return FCb(this);
- };
- _2.Uh = function Npd(a) {
- zpd(this, BD(a, 146));
- };
- _2._g = function Cpd(a, b, c2) {
- switch (a) {
- case 0:
- return this.b;
- case 1:
- return this.c;
- }
- return fid(this, a, b, c2);
- };
- _2.lh = function Dpd(a) {
- switch (a) {
- case 0:
- return !!this.b;
- case 1:
- return this.c != null;
+ updated.restore(notifyRenderer, modifyPool);
+ });
+ eles.emitAndNotify("move");
+ }
+ }
+ return this;
+ };
+ [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data3, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function(props) {
+ extend2(elesfn$1, props);
+ });
+ corefn$9 = {
+ add: /* @__PURE__ */ __name(function add2(opts) {
+ var elements3;
+ var cy = this;
+ if (elementOrCollection(opts)) {
+ var eles = opts;
+ if (eles._private.cy === cy) {
+ elements3 = eles.restore();
+ } else {
+ var jsons = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ jsons.push(ele.json());
}
- return mid(this, a);
- };
- _2.sh = function Epd(a, b) {
- switch (a) {
- case 0:
- zpd(this, BD(b, 146));
- return;
- case 1:
- Apd(this, b);
- return;
+ elements3 = new Collection(cy, jsons);
+ }
+ } else if (array2(opts)) {
+ var _jsons = opts;
+ elements3 = new Collection(cy, _jsons);
+ } else if (plainObject(opts) && (array2(opts.nodes) || array2(opts.edges))) {
+ var elesByGroup = opts;
+ var _jsons2 = [];
+ var grs = ["nodes", "edges"];
+ for (var _i = 0, il = grs.length; _i < il; _i++) {
+ var group2 = grs[_i];
+ var elesArray = elesByGroup[group2];
+ if (array2(elesArray)) {
+ for (var j2 = 0, jl = elesArray.length; j2 < jl; j2++) {
+ var json3 = extend2({
+ group: group2
+ }, elesArray[j2]);
+ _jsons2.push(json3);
+ }
}
- yid(this, a, b);
- };
- _2.zh = function Fpd() {
- return Thd(), Qhd;
- };
- _2.Bh = function Gpd(a) {
- switch (a) {
- case 0:
- zpd(this, null);
- return;
- case 1:
- Apd(this, null);
- return;
- }
- Cid(this, a);
- };
- _2.Sh = function Ipd() {
- var a;
- if (this.a == -1) {
- a = this.b;
- this.a = !a ? 0 : tb(a);
- }
- return this.a;
- };
- _2.dd = function Kpd() {
- return this.c;
- };
- _2.Th = function Mpd(a) {
- this.a = a;
- };
- _2.ed = function Opd(a) {
- var b;
- b = this.c;
- Apd(this, a);
- return b;
- };
- _2.Ib = function Ppd() {
- var a;
- if ((this.Db & 64) != 0)
- return Eid(this);
- a = new Ufb();
- Qfb(Qfb(Qfb(a, this.b ? this.b.tg() : Xhe), gne), xfb(this.c));
- return a.a;
- };
- _2.a = -1;
- _2.c = null;
- var S2 = mdb(rte, "ElkPropertyToValueMapEntryImpl", 1092);
- bcb(984, 1, {}, bqd);
- mdb(Wte, "JsonAdapter", 984);
- bcb(210, 60, Tie, cqd);
- mdb(Wte, "JsonImportException", 210);
- bcb(857, 1, {}, ird);
- mdb(Wte, "JsonImporter", 857);
- bcb(891, 1, {}, jrd);
- mdb(Wte, "JsonImporter/lambda$0$Type", 891);
- bcb(892, 1, {}, krd);
- mdb(Wte, "JsonImporter/lambda$1$Type", 892);
- bcb(900, 1, {}, lrd);
- mdb(Wte, "JsonImporter/lambda$10$Type", 900);
- bcb(902, 1, {}, mrd);
- mdb(Wte, "JsonImporter/lambda$11$Type", 902);
- bcb(903, 1, {}, nrd);
- mdb(Wte, "JsonImporter/lambda$12$Type", 903);
- bcb(909, 1, {}, ord);
- mdb(Wte, "JsonImporter/lambda$13$Type", 909);
- bcb(908, 1, {}, prd);
- mdb(Wte, "JsonImporter/lambda$14$Type", 908);
- bcb(904, 1, {}, qrd);
- mdb(Wte, "JsonImporter/lambda$15$Type", 904);
- bcb(905, 1, {}, rrd);
- mdb(Wte, "JsonImporter/lambda$16$Type", 905);
- bcb(906, 1, {}, srd);
- mdb(Wte, "JsonImporter/lambda$17$Type", 906);
- bcb(907, 1, {}, trd);
- mdb(Wte, "JsonImporter/lambda$18$Type", 907);
- bcb(912, 1, {}, urd);
- mdb(Wte, "JsonImporter/lambda$19$Type", 912);
- bcb(893, 1, {}, vrd);
- mdb(Wte, "JsonImporter/lambda$2$Type", 893);
- bcb(910, 1, {}, wrd);
- mdb(Wte, "JsonImporter/lambda$20$Type", 910);
- bcb(911, 1, {}, xrd);
- mdb(Wte, "JsonImporter/lambda$21$Type", 911);
- bcb(915, 1, {}, yrd);
- mdb(Wte, "JsonImporter/lambda$22$Type", 915);
- bcb(913, 1, {}, zrd);
- mdb(Wte, "JsonImporter/lambda$23$Type", 913);
- bcb(914, 1, {}, Ard);
- mdb(Wte, "JsonImporter/lambda$24$Type", 914);
- bcb(917, 1, {}, Brd);
- mdb(Wte, "JsonImporter/lambda$25$Type", 917);
- bcb(916, 1, {}, Crd);
- mdb(Wte, "JsonImporter/lambda$26$Type", 916);
- bcb(918, 1, qie, Drd);
- _2.td = function Erd(a) {
- Bqd(this.b, this.a, GD(a));
- };
- mdb(Wte, "JsonImporter/lambda$27$Type", 918);
- bcb(919, 1, qie, Frd);
- _2.td = function Grd(a) {
- Cqd(this.b, this.a, GD(a));
- };
- mdb(Wte, "JsonImporter/lambda$28$Type", 919);
- bcb(920, 1, {}, Hrd);
- mdb(Wte, "JsonImporter/lambda$29$Type", 920);
- bcb(896, 1, {}, Ird);
- mdb(Wte, "JsonImporter/lambda$3$Type", 896);
- bcb(921, 1, {}, Jrd);
- mdb(Wte, "JsonImporter/lambda$30$Type", 921);
- bcb(922, 1, {}, Krd);
- mdb(Wte, "JsonImporter/lambda$31$Type", 922);
- bcb(923, 1, {}, Lrd);
- mdb(Wte, "JsonImporter/lambda$32$Type", 923);
- bcb(924, 1, {}, Mrd);
- mdb(Wte, "JsonImporter/lambda$33$Type", 924);
- bcb(925, 1, {}, Nrd);
- mdb(Wte, "JsonImporter/lambda$34$Type", 925);
- bcb(859, 1, {}, Prd);
- mdb(Wte, "JsonImporter/lambda$35$Type", 859);
- bcb(929, 1, {}, Rrd);
- mdb(Wte, "JsonImporter/lambda$36$Type", 929);
- bcb(926, 1, qie, Srd);
- _2.td = function Trd(a) {
- Lqd(this.a, BD(a, 469));
- };
- mdb(Wte, "JsonImporter/lambda$37$Type", 926);
- bcb(927, 1, qie, Urd);
- _2.td = function Vrd(a) {
- Mqd(this.a, this.b, BD(a, 202));
- };
- mdb(Wte, "JsonImporter/lambda$38$Type", 927);
- bcb(928, 1, qie, Wrd);
- _2.td = function Xrd(a) {
- Nqd(this.a, this.b, BD(a, 202));
- };
- mdb(Wte, "JsonImporter/lambda$39$Type", 928);
- bcb(894, 1, {}, Yrd);
- mdb(Wte, "JsonImporter/lambda$4$Type", 894);
- bcb(930, 1, qie, Zrd);
- _2.td = function $rd(a) {
- Oqd(this.a, BD(a, 8));
- };
- mdb(Wte, "JsonImporter/lambda$40$Type", 930);
- bcb(895, 1, {}, _rd);
- mdb(Wte, "JsonImporter/lambda$5$Type", 895);
- bcb(899, 1, {}, asd);
- mdb(Wte, "JsonImporter/lambda$6$Type", 899);
- bcb(897, 1, {}, bsd);
- mdb(Wte, "JsonImporter/lambda$7$Type", 897);
- bcb(898, 1, {}, csd);
- mdb(Wte, "JsonImporter/lambda$8$Type", 898);
- bcb(901, 1, {}, dsd);
- mdb(Wte, "JsonImporter/lambda$9$Type", 901);
- bcb(948, 1, qie, msd);
- _2.td = function nsd(a) {
- Qpd(this.a, new yC(GD(a)));
- };
- mdb(Wte, "JsonMetaDataConverter/lambda$0$Type", 948);
- bcb(949, 1, qie, osd);
- _2.td = function psd(a) {
- isd(this.a, BD(a, 237));
- };
- mdb(Wte, "JsonMetaDataConverter/lambda$1$Type", 949);
- bcb(950, 1, qie, qsd);
- _2.td = function rsd(a) {
- jsd(this.a, BD(a, 149));
- };
- mdb(Wte, "JsonMetaDataConverter/lambda$2$Type", 950);
- bcb(951, 1, qie, ssd);
- _2.td = function tsd(a) {
- ksd(this.a, BD(a, 175));
- };
- mdb(Wte, "JsonMetaDataConverter/lambda$3$Type", 951);
- bcb(237, 22, { 3: 1, 35: 1, 22: 1, 237: 1 }, Dsd);
- var usd, vsd, wsd, xsd, ysd, zsd, Asd, Bsd;
- var O3 = ndb(Hle, "GraphFeature", 237, CI, Fsd, Esd);
- var Gsd;
- bcb(13, 1, { 35: 1, 146: 1 }, Lsd, Msd, Nsd, Osd);
- _2.wd = function Psd(a) {
- return Isd(this, BD(a, 146));
- };
- _2.Fb = function Qsd(a) {
- return Jsd(this, a);
- };
- _2.wg = function Rsd() {
- return Ksd(this);
- };
- _2.tg = function Ssd() {
- return this.b;
- };
- _2.Hb = function Tsd() {
- return LCb(this.b);
- };
- _2.Ib = function Usd() {
- return this.b;
- };
- mdb(Hle, "Property", 13);
- bcb(818, 1, Dke, Wsd);
- _2.ue = function Xsd(a, b) {
- return Vsd(this, BD(a, 94), BD(b, 94));
- };
- _2.Fb = function Ysd(a) {
- return this === a;
- };
- _2.ve = function Zsd() {
- return new tpb(this);
- };
- mdb(Hle, "PropertyHolderComparator", 818);
- bcb(695, 1, aie, qtd);
- _2.Nb = function rtd(a) {
- Rrb(this, a);
- };
- _2.Pb = function ttd() {
- return ptd(this);
- };
- _2.Qb = function utd() {
- Srb();
- };
- _2.Ob = function std() {
- return !!this.a;
- };
- mdb(jue, "ElkGraphUtil/AncestorIterator", 695);
- var T4 = odb(Tte, "EList");
- bcb(67, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 });
- _2.Vc = function Jtd(a, b) {
- vtd(this, a, b);
- };
- _2.Fc = function Ktd(a) {
- return wtd(this, a);
- };
- _2.Wc = function Ltd(a, b) {
- return xtd(this, a, b);
- };
- _2.Gc = function Mtd(a) {
- return ytd(this, a);
- };
- _2.Zh = function Ntd() {
- return new $yd(this);
- };
- _2.$h = function Otd() {
- return new bzd(this);
- };
- _2._h = function Ptd(a) {
- return ztd(this, a);
- };
- _2.ai = function Qtd() {
- return true;
- };
- _2.bi = function Rtd(a, b) {
- };
- _2.ci = function Std() {
- };
- _2.di = function Ttd(a, b) {
- Atd(this, a, b);
- };
- _2.ei = function Utd(a, b, c2) {
- };
- _2.fi = function Vtd(a, b) {
- };
- _2.gi = function Wtd(a, b, c2) {
- };
- _2.Fb = function Xtd(a) {
- return Btd(this, a);
- };
- _2.Hb = function Ytd() {
- return Etd(this);
- };
- _2.hi = function Ztd() {
- return false;
- };
- _2.Kc = function $td() {
- return new Fyd(this);
- };
- _2.Yc = function _td() {
- return new Oyd(this);
- };
- _2.Zc = function aud(a) {
- var b;
- b = this.gc();
- if (a < 0 || a > b)
- throw vbb(new Cyd(a, b));
- return new Pyd(this, a);
- };
- _2.ji = function bud(a, b) {
- this.ii(a, this.Xc(b));
- };
- _2.Mc = function cud(a) {
- return Ftd(this, a);
- };
- _2.li = function dud(a, b) {
- return b;
- };
- _2._c = function eud(a, b) {
- return Gtd(this, a, b);
- };
- _2.Ib = function fud() {
- return Htd(this);
- };
- _2.ni = function gud() {
- return true;
- };
- _2.oi = function hud(a, b) {
- return Itd(this, b);
- };
- mdb(Tte, "AbstractEList", 67);
- bcb(63, 67, oue, yud, zud, Aud);
- _2.Vh = function Bud(a, b) {
- return iud(this, a, b);
- };
- _2.Wh = function Cud(a) {
- return jud(this, a);
- };
- _2.Xh = function Dud(a, b) {
- kud(this, a, b);
- };
- _2.Yh = function Eud(a) {
- lud(this, a);
- };
- _2.pi = function Fud(a) {
- return nud(this, a);
- };
- _2.$b = function Gud() {
- oud(this);
- };
- _2.Hc = function Hud(a) {
- return pud(this, a);
- };
- _2.Xb = function Iud(a) {
- return qud(this, a);
- };
- _2.qi = function Jud(a) {
- var b, c2, d;
- ++this.j;
- c2 = this.g == null ? 0 : this.g.length;
- if (a > c2) {
- d = this.g;
- b = c2 + (c2 / 2 | 0) + 4;
- b < a && (b = a);
- this.g = this.ri(b);
- d != null && $fb(d, 0, this.g, 0, this.i);
- }
- };
- _2.Xc = function Kud(a) {
- return rud(this, a);
- };
- _2.dc = function Lud() {
- return this.i == 0;
- };
- _2.ii = function Mud(a, b) {
- return sud(this, a, b);
- };
- _2.ri = function Nud(a) {
- return KC(SI, Uhe, 1, a, 5, 1);
- };
- _2.ki = function Oud(a) {
- return this.g[a];
- };
- _2.$c = function Pud(a) {
- return tud(this, a);
- };
- _2.mi = function Qud(a, b) {
- return uud(this, a, b);
- };
- _2.gc = function Rud() {
- return this.i;
- };
- _2.Pc = function Sud() {
- return wud(this);
- };
- _2.Qc = function Tud(a) {
- return xud(this, a);
- };
- _2.i = 0;
- var y4 = mdb(Tte, "BasicEList", 63);
- var X4 = odb(Tte, "TreeIterator");
- bcb(694, 63, pue);
- _2.Nb = function Xud(a) {
- Rrb(this, a);
- };
- _2.Ob = function Yud() {
- return this.g == null && !this.c ? Uud(this) : this.g == null || this.i != 0 && BD(this.g[this.i - 1], 47).Ob();
- };
- _2.Pb = function Zud() {
- return Vud(this);
- };
- _2.Qb = function $ud() {
- if (!this.e) {
- throw vbb(new Zdb("There is no valid object to remove."));
- }
- this.e.Qb();
- };
- _2.c = false;
- mdb(Tte, "AbstractTreeIterator", 694);
- bcb(685, 694, pue, _ud);
- _2.si = function avd(a) {
- var b;
- b = BD(a, 56).Wg().Kc();
- JD(b, 279) && BD(b, 279).Nk(new bvd());
- return b;
- };
- mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator", 685);
- bcb(952, 1, {}, bvd);
- mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator/1", 952);
- var cvd, dvd;
- var Y3 = mdb(jue, "ElkReflect", null);
- bcb(889, 1, hse, jvd);
- _2.vg = function kvd(a) {
- return evd(), sqb(BD(a, 174));
- };
- mdb(jue, "ElkReflect/lambda$0$Type", 889);
- var lvd;
- odb(Tte, "ResourceLocator");
- bcb(1051, 1, {});
- mdb(Tte, "DelegatingResourceLocator", 1051);
- bcb(1052, 1051, {});
- mdb("org.eclipse.emf.common", "EMFPlugin", 1052);
- var $3 = odb(cve, "Adapter");
- var _3 = odb(cve, "Notification");
- bcb(1153, 1, dve);
- _2.ti = function vvd() {
- return this.d;
- };
- _2.ui = function wvd(a) {
- };
- _2.vi = function xvd(a) {
- this.d = a;
- };
- _2.wi = function yvd(a) {
- this.d == a && (this.d = null);
- };
- _2.d = null;
- mdb(hte, "AdapterImpl", 1153);
- bcb(1995, 67, eve);
- _2.Vh = function Fvd(a, b) {
- return zvd(this, a, b);
- };
- _2.Wh = function Gvd(a) {
- var b, c2, d;
- ++this.j;
- if (a.dc()) {
- return false;
- } else {
- b = this.Vi();
- for (d = a.Kc(); d.Ob(); ) {
- c2 = d.Pb();
- this.Ii(this.oi(b, c2));
- ++b;
- }
- return true;
- }
- };
- _2.Xh = function Hvd(a, b) {
- Avd(this, a, b);
- };
- _2.Yh = function Ivd(a) {
- Bvd(this, a);
- };
- _2.Gi = function Jvd() {
- return this.Ji();
- };
- _2.$b = function Kvd() {
- Cvd(this, this.Vi(), this.Wi());
- };
- _2.Hc = function Lvd(a) {
- return this.Li(a);
- };
- _2.Ic = function Mvd(a) {
- return this.Mi(a);
- };
- _2.Hi = function Nvd(a, b) {
- this.Si().jm();
- };
- _2.Ii = function Ovd(a) {
- this.Si().jm();
- };
- _2.Ji = function Pvd() {
- return this.Si();
- };
- _2.Ki = function Qvd() {
- this.Si().jm();
- };
- _2.Li = function Rvd(a) {
- return this.Si().jm();
- };
- _2.Mi = function Svd(a) {
- return this.Si().jm();
- };
- _2.Ni = function Tvd(a) {
- return this.Si().jm();
- };
- _2.Oi = function Uvd(a) {
- return this.Si().jm();
- };
- _2.Pi = function Vvd() {
- return this.Si().jm();
- };
- _2.Qi = function Wvd(a) {
- return this.Si().jm();
- };
- _2.Ri = function Xvd() {
- return this.Si().jm();
- };
- _2.Ti = function Yvd(a) {
- return this.Si().jm();
- };
- _2.Ui = function Zvd(a, b) {
- return this.Si().jm();
- };
- _2.Vi = function $vd() {
- return this.Si().jm();
- };
- _2.Wi = function _vd() {
- return this.Si().jm();
- };
- _2.Xi = function awd(a) {
- return this.Si().jm();
- };
- _2.Yi = function bwd() {
- return this.Si().jm();
- };
- _2.Fb = function cwd(a) {
- return this.Ni(a);
- };
- _2.Xb = function dwd(a) {
- return this.li(a, this.Oi(a));
- };
- _2.Hb = function ewd() {
- return this.Pi();
- };
- _2.Xc = function fwd(a) {
- return this.Qi(a);
- };
- _2.dc = function gwd() {
- return this.Ri();
- };
- _2.ii = function hwd(a, b) {
- return Dvd(this, a, b);
- };
- _2.ki = function iwd(a) {
- return this.Oi(a);
- };
- _2.$c = function jwd(a) {
- return Evd(this, a);
- };
- _2.Mc = function kwd(a) {
- var b;
- b = this.Xc(a);
- if (b >= 0) {
- this.$c(b);
- return true;
- } else {
- return false;
- }
- };
- _2.mi = function lwd(a, b) {
- return this.Ui(a, this.oi(a, b));
- };
- _2.gc = function mwd() {
- return this.Vi();
- };
- _2.Pc = function nwd() {
- return this.Wi();
- };
- _2.Qc = function owd(a) {
- return this.Xi(a);
- };
- _2.Ib = function pwd() {
- return this.Yi();
- };
- mdb(Tte, "DelegatingEList", 1995);
- bcb(1996, 1995, eve);
- _2.Vh = function xwd(a, b) {
- return qwd(this, a, b);
- };
- _2.Wh = function ywd(a) {
- return this.Vh(this.Vi(), a);
- };
- _2.Xh = function zwd(a, b) {
- rwd(this, a, b);
- };
- _2.Yh = function Awd(a) {
- swd(this, a);
- };
- _2.ai = function Bwd() {
- return !this.bj();
- };
- _2.$b = function Cwd() {
- vwd(this);
- };
- _2.Zi = function Dwd(a, b, c2, d, e) {
- return new Cxd(this, a, b, c2, d, e);
- };
- _2.$i = function Ewd(a) {
- Uhd(this.Ai(), a);
- };
- _2._i = function Fwd() {
- return null;
- };
- _2.aj = function Gwd() {
- return -1;
- };
- _2.Ai = function Hwd() {
- return null;
- };
- _2.bj = function Iwd() {
- return false;
- };
- _2.cj = function Jwd(a, b) {
- return b;
- };
- _2.dj = function Kwd(a, b) {
- return b;
- };
- _2.ej = function Lwd() {
- return false;
- };
- _2.fj = function Mwd() {
- return !this.Ri();
- };
- _2.ii = function Nwd(a, b) {
- var c2, d;
- if (this.ej()) {
- d = this.fj();
- c2 = Dvd(this, a, b);
- this.$i(this.Zi(7, meb(b), c2, a, d));
- return c2;
+ }
+ elements3 = new Collection(cy, _jsons2);
+ } else {
+ var _json = opts;
+ elements3 = new Element(cy, _json).collection();
+ }
+ return elements3;
+ }, "add"),
+ remove: /* @__PURE__ */ __name(function remove2(collection4) {
+ if (elementOrCollection(collection4)) ;
+ else if (string(collection4)) {
+ var selector = collection4;
+ collection4 = this.$(selector);
+ }
+ return collection4.remove();
+ }, "remove")
+ };
+ __name(generateCubicBezier, "generateCubicBezier");
+ generateSpringRK4 = /* @__PURE__ */ function() {
+ function springAccelerationForState(state5) {
+ return -state5.tension * state5.x - state5.friction * state5.v;
+ }
+ __name(springAccelerationForState, "springAccelerationForState");
+ function springEvaluateStateWithDerivative(initialState, dt, derivative) {
+ var state5 = {
+ x: initialState.x + derivative.dx * dt,
+ v: initialState.v + derivative.dv * dt,
+ tension: initialState.tension,
+ friction: initialState.friction
+ };
+ return {
+ dx: state5.v,
+ dv: springAccelerationForState(state5)
+ };
+ }
+ __name(springEvaluateStateWithDerivative, "springEvaluateStateWithDerivative");
+ function springIntegrateState(state5, dt) {
+ var a2 = {
+ dx: state5.v,
+ dv: springAccelerationForState(state5)
+ }, b2 = springEvaluateStateWithDerivative(state5, dt * 0.5, a2), c3 = springEvaluateStateWithDerivative(state5, dt * 0.5, b2), d2 = springEvaluateStateWithDerivative(state5, dt, c3), dxdt = 1 / 6 * (a2.dx + 2 * (b2.dx + c3.dx) + d2.dx), dvdt = 1 / 6 * (a2.dv + 2 * (b2.dv + c3.dv) + d2.dv);
+ state5.x = state5.x + dxdt * dt;
+ state5.v = state5.v + dvdt * dt;
+ return state5;
+ }
+ __name(springIntegrateState, "springIntegrateState");
+ return /* @__PURE__ */ __name(function springRK4Factory(tension, friction, duration) {
+ var initState = {
+ x: -1,
+ v: 0,
+ tension: null,
+ friction: null
+ }, path4 = [0], time_lapsed = 0, tolerance = 1 / 1e4, DT = 16 / 1e3, have_duration, dt, last_state;
+ tension = parseFloat(tension) || 500;
+ friction = parseFloat(friction) || 20;
+ duration = duration || null;
+ initState.tension = tension;
+ initState.friction = friction;
+ have_duration = duration !== null;
+ if (have_duration) {
+ time_lapsed = springRK4Factory(tension, friction);
+ dt = time_lapsed / duration * DT;
+ } else {
+ dt = DT;
+ }
+ for (; ; ) {
+ last_state = springIntegrateState(last_state || initState, dt);
+ path4.push(1 + last_state.x);
+ time_lapsed += 16;
+ if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {
+ break;
+ }
+ }
+ return !have_duration ? time_lapsed : function(percentComplete) {
+ return path4[percentComplete * (path4.length - 1) | 0];
+ };
+ }, "springRK4Factory");
+ }();
+ cubicBezier = /* @__PURE__ */ __name(function cubicBezier2(t13, p1, t22, p22) {
+ var bezier = generateCubicBezier(t13, p1, t22, p22);
+ return function(start3, end2, percent) {
+ return start3 + (end2 - start3) * bezier(percent);
+ };
+ }, "cubicBezier");
+ easings = {
+ "linear": /* @__PURE__ */ __name(function linear3(start3, end2, percent) {
+ return start3 + (end2 - start3) * percent;
+ }, "linear"),
+ // default easings
+ "ease": cubicBezier(0.25, 0.1, 0.25, 1),
+ "ease-in": cubicBezier(0.42, 0, 1, 1),
+ "ease-out": cubicBezier(0, 0, 0.58, 1),
+ "ease-in-out": cubicBezier(0.42, 0, 0.58, 1),
+ // sine
+ "ease-in-sine": cubicBezier(0.47, 0, 0.745, 0.715),
+ "ease-out-sine": cubicBezier(0.39, 0.575, 0.565, 1),
+ "ease-in-out-sine": cubicBezier(0.445, 0.05, 0.55, 0.95),
+ // quad
+ "ease-in-quad": cubicBezier(0.55, 0.085, 0.68, 0.53),
+ "ease-out-quad": cubicBezier(0.25, 0.46, 0.45, 0.94),
+ "ease-in-out-quad": cubicBezier(0.455, 0.03, 0.515, 0.955),
+ // cubic
+ "ease-in-cubic": cubicBezier(0.55, 0.055, 0.675, 0.19),
+ "ease-out-cubic": cubicBezier(0.215, 0.61, 0.355, 1),
+ "ease-in-out-cubic": cubicBezier(0.645, 0.045, 0.355, 1),
+ // quart
+ "ease-in-quart": cubicBezier(0.895, 0.03, 0.685, 0.22),
+ "ease-out-quart": cubicBezier(0.165, 0.84, 0.44, 1),
+ "ease-in-out-quart": cubicBezier(0.77, 0, 0.175, 1),
+ // quint
+ "ease-in-quint": cubicBezier(0.755, 0.05, 0.855, 0.06),
+ "ease-out-quint": cubicBezier(0.23, 1, 0.32, 1),
+ "ease-in-out-quint": cubicBezier(0.86, 0, 0.07, 1),
+ // expo
+ "ease-in-expo": cubicBezier(0.95, 0.05, 0.795, 0.035),
+ "ease-out-expo": cubicBezier(0.19, 1, 0.22, 1),
+ "ease-in-out-expo": cubicBezier(1, 0, 0, 1),
+ // circ
+ "ease-in-circ": cubicBezier(0.6, 0.04, 0.98, 0.335),
+ "ease-out-circ": cubicBezier(0.075, 0.82, 0.165, 1),
+ "ease-in-out-circ": cubicBezier(0.785, 0.135, 0.15, 0.86),
+ // user param easings...
+ "spring": /* @__PURE__ */ __name(function spring(tension, friction, duration) {
+ if (duration === 0) {
+ return easings.linear;
+ }
+ var spring2 = generateSpringRK4(tension, friction, duration);
+ return function(start3, end2, percent) {
+ return start3 + (end2 - start3) * spring2(percent);
+ };
+ }, "spring"),
+ "cubic-bezier": cubicBezier
+ };
+ __name(getEasedValue, "getEasedValue");
+ __name(getValue2, "getValue");
+ __name(ease, "ease");
+ __name(step$1, "step$1");
+ __name(valid, "valid");
+ __name(startAnimation, "startAnimation");
+ __name(stepAll, "stepAll");
+ corefn$8 = {
+ // pull in animation functions
+ animate: define2.animate(),
+ animation: define2.animation(),
+ animated: define2.animated(),
+ clearQueue: define2.clearQueue(),
+ delay: define2.delay(),
+ delayAnimation: define2.delayAnimation(),
+ stop: define2.stop(),
+ addToAnimationPool: /* @__PURE__ */ __name(function addToAnimationPool(eles) {
+ var cy = this;
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ cy._private.aniEles.merge(eles);
+ }, "addToAnimationPool"),
+ stopAnimationLoop: /* @__PURE__ */ __name(function stopAnimationLoop() {
+ this._private.animationsRunning = false;
+ }, "stopAnimationLoop"),
+ startAnimationLoop: /* @__PURE__ */ __name(function startAnimationLoop() {
+ var cy = this;
+ cy._private.animationsRunning = true;
+ if (!cy.styleEnabled()) {
+ return;
+ }
+ function headlessStep() {
+ if (!cy._private.animationsRunning) {
+ return;
+ }
+ requestAnimationFrame2(/* @__PURE__ */ __name(function animationStep(now4) {
+ stepAll(now4, cy);
+ headlessStep();
+ }, "animationStep"));
+ }
+ __name(headlessStep, "headlessStep");
+ var renderer8 = cy.renderer();
+ if (renderer8 && renderer8.beforeRender) {
+ renderer8.beforeRender(/* @__PURE__ */ __name(function rendererAnimationStep(willDraw, now4) {
+ stepAll(now4, cy);
+ }, "rendererAnimationStep"), renderer8.beforeRenderPriorities.animations);
+ } else {
+ headlessStep();
+ }
+ }, "startAnimationLoop")
+ };
+ emitterOptions = {
+ qualifierCompare: /* @__PURE__ */ __name(function qualifierCompare3(selector1, selector2) {
+ if (selector1 == null || selector2 == null) {
+ return selector1 == null && selector2 == null;
+ } else {
+ return selector1.sameText(selector2);
+ }
+ }, "qualifierCompare"),
+ eventMatches: /* @__PURE__ */ __name(function eventMatches3(cy, listener, eventObj) {
+ var selector = listener.qualifier;
+ if (selector != null) {
+ return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);
+ }
+ return true;
+ }, "eventMatches"),
+ addEventFields: /* @__PURE__ */ __name(function addEventFields3(cy, evt) {
+ evt.cy = cy;
+ evt.target = cy;
+ }, "addEventFields"),
+ callbackContext: /* @__PURE__ */ __name(function callbackContext3(cy, listener, eventObj) {
+ return listener.qualifier != null ? eventObj.target : cy;
+ }, "callbackContext")
+ };
+ argSelector2 = /* @__PURE__ */ __name(function argSelector3(arg) {
+ if (string(arg)) {
+ return new Selector(arg);
+ } else {
+ return arg;
+ }
+ }, "argSelector");
+ elesfn = {
+ createEmitter: /* @__PURE__ */ __name(function createEmitter2() {
+ var _p = this._private;
+ if (!_p.emitter) {
+ _p.emitter = new Emitter2(emitterOptions, this);
+ }
+ return this;
+ }, "createEmitter"),
+ emitter: /* @__PURE__ */ __name(function emitter2() {
+ return this._private.emitter;
+ }, "emitter"),
+ on: /* @__PURE__ */ __name(function on2(events, selector, callback) {
+ this.emitter().on(events, argSelector2(selector), callback);
+ return this;
+ }, "on"),
+ removeListener: /* @__PURE__ */ __name(function removeListener2(events, selector, callback) {
+ this.emitter().removeListener(events, argSelector2(selector), callback);
+ return this;
+ }, "removeListener"),
+ removeAllListeners: /* @__PURE__ */ __name(function removeAllListeners2() {
+ this.emitter().removeAllListeners();
+ return this;
+ }, "removeAllListeners"),
+ one: /* @__PURE__ */ __name(function one3(events, selector, callback) {
+ this.emitter().one(events, argSelector2(selector), callback);
+ return this;
+ }, "one"),
+ once: /* @__PURE__ */ __name(function once2(events, selector, callback) {
+ this.emitter().one(events, argSelector2(selector), callback);
+ return this;
+ }, "once"),
+ emit: /* @__PURE__ */ __name(function emit2(events, extraParams) {
+ this.emitter().emit(events, extraParams);
+ return this;
+ }, "emit"),
+ emitAndNotify: /* @__PURE__ */ __name(function emitAndNotify2(event3, eles) {
+ this.emit(event3);
+ this.notify(event3, eles);
+ return this;
+ }, "emitAndNotify")
+ };
+ define2.eventAliasesOn(elesfn);
+ corefn$7 = {
+ png: /* @__PURE__ */ __name(function png(options3) {
+ var renderer8 = this._private.renderer;
+ options3 = options3 || {};
+ return renderer8.png(options3);
+ }, "png"),
+ jpg: /* @__PURE__ */ __name(function jpg(options3) {
+ var renderer8 = this._private.renderer;
+ options3 = options3 || {};
+ options3.bg = options3.bg || "#fff";
+ return renderer8.jpg(options3);
+ }, "jpg")
+ };
+ corefn$7.jpeg = corefn$7.jpg;
+ corefn$6 = {
+ layout: /* @__PURE__ */ __name(function layout3(options3) {
+ var cy = this;
+ if (options3 == null) {
+ error("Layout options must be specified to make a layout");
+ return;
+ }
+ if (options3.name == null) {
+ error("A `name` must be specified to make a layout");
+ return;
+ }
+ var name = options3.name;
+ var Layout2 = cy.extension("layout", name);
+ if (Layout2 == null) {
+ error("No such layout `" + name + "` found. Did you forget to import it and `cytoscape.use()` it?");
+ return;
+ }
+ var eles;
+ if (string(options3.eles)) {
+ eles = cy.$(options3.eles);
+ } else {
+ eles = options3.eles != null ? options3.eles : cy.$();
+ }
+ var layout6 = new Layout2(extend2({}, options3, {
+ cy,
+ eles
+ }));
+ return layout6;
+ }, "layout")
+ };
+ corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;
+ corefn$5 = {
+ notify: /* @__PURE__ */ __name(function notify(eventName, eventEles) {
+ var _p = this._private;
+ if (this.batching()) {
+ _p.batchNotifications = _p.batchNotifications || {};
+ var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();
+ if (eventEles != null) {
+ eles.merge(eventEles);
+ }
+ return;
+ }
+ if (!_p.notificationsEnabled) {
+ return;
+ }
+ var renderer8 = this.renderer();
+ if (this.destroyed() || !renderer8) {
+ return;
+ }
+ renderer8.notify(eventName, eventEles);
+ }, "notify"),
+ notifications: /* @__PURE__ */ __name(function notifications(bool2) {
+ var p3 = this._private;
+ if (bool2 === void 0) {
+ return p3.notificationsEnabled;
+ } else {
+ p3.notificationsEnabled = bool2 ? true : false;
+ }
+ return this;
+ }, "notifications"),
+ noNotifications: /* @__PURE__ */ __name(function noNotifications(callback) {
+ this.notifications(false);
+ callback();
+ this.notifications(true);
+ }, "noNotifications"),
+ batching: /* @__PURE__ */ __name(function batching() {
+ return this._private.batchCount > 0;
+ }, "batching"),
+ startBatch: /* @__PURE__ */ __name(function startBatch() {
+ var _p = this._private;
+ if (_p.batchCount == null) {
+ _p.batchCount = 0;
+ }
+ if (_p.batchCount === 0) {
+ _p.batchStyleEles = this.collection();
+ _p.batchNotifications = {};
+ }
+ _p.batchCount++;
+ return this;
+ }, "startBatch"),
+ endBatch: /* @__PURE__ */ __name(function endBatch() {
+ var _p = this._private;
+ if (_p.batchCount === 0) {
+ return this;
+ }
+ _p.batchCount--;
+ if (_p.batchCount === 0) {
+ _p.batchStyleEles.updateStyle();
+ var renderer8 = this.renderer();
+ Object.keys(_p.batchNotifications).forEach(function(eventName) {
+ var eles = _p.batchNotifications[eventName];
+ if (eles.empty()) {
+ renderer8.notify(eventName);
} else {
- return Dvd(this, a, b);
+ renderer8.notify(eventName, eles);
}
- };
- _2.$c = function Owd(a) {
- var b, c2, d, e;
- if (this.ej()) {
- c2 = null;
- d = this.fj();
- b = this.Zi(4, e = Evd(this, a), null, a, d);
- if (this.bj() && !!e) {
- c2 = this.dj(e, c2);
- if (!c2) {
- this.$i(b);
- } else {
- c2.Ei(b);
- c2.Fi();
- }
- } else {
- if (!c2) {
- this.$i(b);
- } else {
- c2.Ei(b);
- c2.Fi();
- }
+ });
+ }
+ return this;
+ }, "endBatch"),
+ batch: /* @__PURE__ */ __name(function batch(callback) {
+ this.startBatch();
+ callback();
+ this.endBatch();
+ return this;
+ }, "batch"),
+ // for backwards compatibility
+ batchData: /* @__PURE__ */ __name(function batchData(map5) {
+ var cy = this;
+ return this.batch(function() {
+ var ids = Object.keys(map5);
+ for (var i2 = 0; i2 < ids.length; i2++) {
+ var id27 = ids[i2];
+ var data5 = map5[id27];
+ var ele = cy.getElementById(id27);
+ ele.data(data5);
+ }
+ });
+ }, "batchData")
+ };
+ rendererDefaults = defaults$g({
+ hideEdgesOnViewport: false,
+ textureOnViewport: false,
+ motionBlur: false,
+ motionBlurOpacity: 0.05,
+ pixelRatio: void 0,
+ desktopTapThreshold: 4,
+ touchTapThreshold: 8,
+ wheelSensitivity: 1,
+ debug: false,
+ showFps: false
+ });
+ corefn$4 = {
+ renderTo: /* @__PURE__ */ __name(function renderTo(context, zoom2, pan2, pxRatio) {
+ var r2 = this._private.renderer;
+ r2.renderTo(context, zoom2, pan2, pxRatio);
+ return this;
+ }, "renderTo"),
+ renderer: /* @__PURE__ */ __name(function renderer4() {
+ return this._private.renderer;
+ }, "renderer"),
+ forceRender: /* @__PURE__ */ __name(function forceRender() {
+ this.notify("draw");
+ return this;
+ }, "forceRender"),
+ resize: /* @__PURE__ */ __name(function resize() {
+ this.invalidateSize();
+ this.emitAndNotify("resize");
+ return this;
+ }, "resize"),
+ initRenderer: /* @__PURE__ */ __name(function initRenderer(options3) {
+ var cy = this;
+ var RendererProto = cy.extension("renderer", options3.name);
+ if (RendererProto == null) {
+ error("Can not initialise: No such renderer `".concat(options3.name, "` found. Did you forget to import it and `cytoscape.use()` it?"));
+ return;
+ }
+ if (options3.wheelSensitivity !== void 0) {
+ warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");
+ }
+ var rOpts = rendererDefaults(options3);
+ rOpts.cy = cy;
+ cy._private.renderer = new RendererProto(rOpts);
+ this.notify("init");
+ }, "initRenderer"),
+ destroyRenderer: /* @__PURE__ */ __name(function destroyRenderer() {
+ var cy = this;
+ cy.notify("destroy");
+ var domEle = cy.container();
+ if (domEle) {
+ domEle._cyreg = null;
+ while (domEle.childNodes.length > 0) {
+ domEle.removeChild(domEle.childNodes[0]);
+ }
+ }
+ cy._private.renderer = null;
+ cy.mutableElements().forEach(function(ele) {
+ var _p = ele._private;
+ _p.rscratch = {};
+ _p.rstyle = {};
+ _p.animation.current = [];
+ _p.animation.queue = [];
+ });
+ }, "destroyRenderer"),
+ onRender: /* @__PURE__ */ __name(function onRender(fn3) {
+ return this.on("render", fn3);
+ }, "onRender"),
+ offRender: /* @__PURE__ */ __name(function offRender(fn3) {
+ return this.off("render", fn3);
+ }, "offRender")
+ };
+ corefn$4.invalidateDimensions = corefn$4.resize;
+ corefn$3 = {
+ // get a collection
+ // - empty collection on no args
+ // - collection of elements in the graph on selector arg
+ // - guarantee a returned collection when elements or collection specified
+ collection: /* @__PURE__ */ __name(function collection3(eles, opts) {
+ if (string(eles)) {
+ return this.$(eles);
+ } else if (elementOrCollection(eles)) {
+ return eles.collection();
+ } else if (array2(eles)) {
+ if (!opts) {
+ opts = {};
+ }
+ return new Collection(this, eles, opts.unique, opts.removed);
+ }
+ return new Collection(this);
+ }, "collection"),
+ nodes: /* @__PURE__ */ __name(function nodes4(selector) {
+ var nodes6 = this.$(function(ele) {
+ return ele.isNode();
+ });
+ if (selector) {
+ return nodes6.filter(selector);
+ }
+ return nodes6;
+ }, "nodes"),
+ edges: /* @__PURE__ */ __name(function edges4(selector) {
+ var edges5 = this.$(function(ele) {
+ return ele.isEdge();
+ });
+ if (selector) {
+ return edges5.filter(selector);
+ }
+ return edges5;
+ }, "edges"),
+ // search the graph like jQuery
+ $: /* @__PURE__ */ __name(function $2(selector) {
+ var eles = this._private.elements;
+ if (selector) {
+ return eles.filter(selector);
+ } else {
+ return eles.spawnSelf();
+ }
+ }, "$"),
+ mutableElements: /* @__PURE__ */ __name(function mutableElements() {
+ return this._private.elements;
+ }, "mutableElements")
+ };
+ corefn$3.elements = corefn$3.filter = corefn$3.$;
+ styfn$8 = {};
+ TRUE = "t";
+ FALSE = "f";
+ styfn$8.apply = function(eles) {
+ var self2 = this;
+ var _p = self2._private;
+ var cy = _p.cy;
+ var updatedEles = cy.collection();
+ for (var ie = 0; ie < eles.length; ie++) {
+ var ele = eles[ie];
+ var cxtMeta = self2.getContextMeta(ele);
+ if (cxtMeta.empty) {
+ continue;
+ }
+ var cxtStyle = self2.getContextStyle(cxtMeta);
+ var app = self2.applyContextStyle(cxtMeta, cxtStyle, ele);
+ if (ele._private.appliedInitStyle) {
+ self2.updateTransitions(ele, app.diffProps);
+ } else {
+ ele._private.appliedInitStyle = true;
+ }
+ var hintsDiff = self2.updateStyleHints(ele);
+ if (hintsDiff) {
+ updatedEles.push(ele);
+ }
+ }
+ return updatedEles;
+ };
+ styfn$8.getPropertiesDiff = function(oldCxtKey, newCxtKey) {
+ var self2 = this;
+ var cache3 = self2._private.propDiffs = self2._private.propDiffs || {};
+ var dualCxtKey = oldCxtKey + "-" + newCxtKey;
+ var cachedVal = cache3[dualCxtKey];
+ if (cachedVal) {
+ return cachedVal;
+ }
+ var diffProps = [];
+ var addedProp = {};
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var cxt = self2[i2];
+ var oldHasCxt = oldCxtKey[i2] === TRUE;
+ var newHasCxt = newCxtKey[i2] === TRUE;
+ var cxtHasDiffed = oldHasCxt !== newHasCxt;
+ var cxtHasMappedProps = cxt.mappedProperties.length > 0;
+ if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {
+ var props = void 0;
+ if (cxtHasDiffed && cxtHasMappedProps) {
+ props = cxt.properties;
+ } else if (cxtHasDiffed) {
+ props = cxt.properties;
+ } else if (cxtHasMappedProps) {
+ props = cxt.mappedProperties;
+ }
+ for (var j2 = 0; j2 < props.length; j2++) {
+ var prop = props[j2];
+ var name = prop.name;
+ var laterCxtOverrides = false;
+ for (var k2 = i2 + 1; k2 < self2.length; k2++) {
+ var laterCxt = self2[k2];
+ var hasLaterCxt = newCxtKey[k2] === TRUE;
+ if (!hasLaterCxt) {
+ continue;
}
- return e;
- } else {
- e = Evd(this, a);
- if (this.bj() && !!e) {
- c2 = this.dj(e, null);
- !!c2 && c2.Fi();
+ laterCxtOverrides = laterCxt.properties[prop.name] != null;
+ if (laterCxtOverrides) {
+ break;
}
- return e;
}
- };
- _2.mi = function Pwd(a, b) {
- return wwd(this, a, b);
- };
- mdb(hte, "DelegatingNotifyingListImpl", 1996);
- bcb(143, 1, fve);
- _2.Ei = function pxd(a) {
- return Qwd(this, a);
- };
- _2.Fi = function qxd() {
- Rwd(this);
- };
- _2.xi = function rxd() {
- return this.d;
- };
- _2._i = function sxd() {
- return null;
- };
- _2.gj = function txd() {
- return null;
- };
- _2.yi = function uxd(a) {
- return -1;
- };
- _2.zi = function vxd() {
- return $wd(this);
- };
- _2.Ai = function wxd() {
- return null;
- };
- _2.Bi = function xxd() {
- return hxd(this);
- };
- _2.Ci = function yxd() {
- return this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o;
- };
- _2.hj = function zxd() {
- return false;
- };
- _2.Di = function Axd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l;
- switch (this.d) {
- case 1:
- case 2: {
- e = a.xi();
- switch (e) {
- case 1:
- case 2: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
- this.g = a.zi();
- a.xi() == 1 && (this.d = 1);
- return true;
- }
- }
- }
- }
- case 4: {
- e = a.xi();
- switch (e) {
- case 4: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
- j = jxd(this);
- i3 = this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o;
- g = a.Ci();
- this.d = 6;
- l = new zud(2);
- if (i3 <= g) {
- wtd(l, this.n);
- wtd(l, a.Bi());
- this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = i3, g + 1]);
- } else {
- wtd(l, a.Bi());
- wtd(l, this.n);
- this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = g, i3]);
- }
- this.n = l;
- j || (this.o = -2 - this.o - 1);
- return true;
- }
- break;
- }
- }
- break;
- }
- case 6: {
- e = a.xi();
- switch (e) {
- case 4: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
- j = jxd(this);
- g = a.Ci();
- k = BD(this.g, 48);
- d = KC(WD, oje, 25, k.length + 1, 15, 1);
- b = 0;
- while (b < k.length) {
- h = k[b];
- if (h <= g) {
- d[b++] = h;
- ++g;
- } else {
- break;
- }
- }
- c2 = BD(this.n, 15);
- c2.Vc(b, a.Bi());
- d[b] = g;
- while (++b < d.length) {
- d[b] = k[b - 1];
- }
- this.g = d;
- j || (this.o = -2 - d[0]);
- return true;
- }
- break;
- }
- }
- break;
- }
+ if (!addedProp[name] && !laterCxtOverrides) {
+ addedProp[name] = true;
+ diffProps.push(name);
}
+ }
+ }
+ }
+ cache3[dualCxtKey] = diffProps;
+ return diffProps;
+ };
+ styfn$8.getContextMeta = function(ele) {
+ var self2 = this;
+ var cxtKey = "";
+ var diffProps;
+ var prevKey = ele._private.styleCxtKey || "";
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var context = self2[i2];
+ var contextSelectorMatches = context.selector && context.selector.matches(ele);
+ if (contextSelectorMatches) {
+ cxtKey += TRUE;
+ } else {
+ cxtKey += FALSE;
+ }
+ }
+ diffProps = self2.getPropertiesDiff(prevKey, cxtKey);
+ ele._private.styleCxtKey = cxtKey;
+ return {
+ key: cxtKey,
+ diffPropNames: diffProps,
+ empty: diffProps.length === 0
+ };
+ };
+ styfn$8.getContextStyle = function(cxtMeta) {
+ var cxtKey = cxtMeta.key;
+ var self2 = this;
+ var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};
+ if (cxtStyles[cxtKey]) {
+ return cxtStyles[cxtKey];
+ }
+ var style3 = {
+ _private: {
+ key: cxtKey
+ }
+ };
+ for (var i2 = 0; i2 < self2.length; i2++) {
+ var cxt = self2[i2];
+ var hasCxt = cxtKey[i2] === TRUE;
+ if (!hasCxt) {
+ continue;
+ }
+ for (var j2 = 0; j2 < cxt.properties.length; j2++) {
+ var prop = cxt.properties[j2];
+ style3[prop.name] = prop;
+ }
+ }
+ cxtStyles[cxtKey] = style3;
+ return style3;
+ };
+ styfn$8.applyContextStyle = function(cxtMeta, cxtStyle, ele) {
+ var self2 = this;
+ var diffProps = cxtMeta.diffPropNames;
+ var retDiffProps = {};
+ var types = self2.types;
+ for (var i2 = 0; i2 < diffProps.length; i2++) {
+ var diffPropName = diffProps[i2];
+ var cxtProp = cxtStyle[diffPropName];
+ var eleProp = ele.pstyle(diffPropName);
+ if (!cxtProp) {
+ if (!eleProp) {
+ continue;
+ } else if (eleProp.bypass) {
+ cxtProp = {
+ name: diffPropName,
+ deleteBypassed: true
+ };
+ } else {
+ cxtProp = {
+ name: diffPropName,
+ "delete": true
+ };
+ }
+ }
+ if (eleProp === cxtProp) {
+ continue;
+ }
+ if (cxtProp.mapped === types.fn && eleProp != null && eleProp.mapping != null && eleProp.mapping.value === cxtProp.value) {
+ var mapping = eleProp.mapping;
+ var fnValue = mapping.fnValue = cxtProp.value(ele);
+ if (fnValue === mapping.prevFnValue) {
+ continue;
+ }
+ }
+ var retDiffProp = retDiffProps[diffPropName] = {
+ prev: eleProp
+ };
+ self2.applyParsedProperty(ele, cxtProp);
+ retDiffProp.next = ele.pstyle(diffPropName);
+ if (retDiffProp.next && retDiffProp.next.bypass) {
+ retDiffProp.next = retDiffProp.next.bypassed;
+ }
+ }
+ return {
+ diffProps: retDiffProps
+ };
+ };
+ styfn$8.updateStyleHints = function(ele) {
+ var _p = ele._private;
+ var self2 = this;
+ var propNames = self2.propertyGroupNames;
+ var propGrKeys = self2.propertyGroupKeys;
+ var propHash = /* @__PURE__ */ __name(function propHash2(ele2, propNames2, seedKey) {
+ return self2.getPropertiesHash(ele2, propNames2, seedKey);
+ }, "propHash");
+ var oldStyleKey = _p.styleKey;
+ if (ele.removed()) {
+ return false;
+ }
+ var isNode2 = _p.group === "nodes";
+ var overriddenStyles = ele._private.style;
+ propNames = Object.keys(overriddenStyles);
+ for (var i2 = 0; i2 < propGrKeys.length; i2++) {
+ var grKey = propGrKeys[i2];
+ _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
+ }
+ var updateGrKey1 = /* @__PURE__ */ __name(function updateGrKey12(val, grKey2) {
+ return _p.styleKeys[grKey2][0] = hashInt(val, _p.styleKeys[grKey2][0]);
+ }, "updateGrKey1");
+ var updateGrKey2 = /* @__PURE__ */ __name(function updateGrKey22(val, grKey2) {
+ return _p.styleKeys[grKey2][1] = hashIntAlt(val, _p.styleKeys[grKey2][1]);
+ }, "updateGrKey2");
+ var updateGrKey = /* @__PURE__ */ __name(function updateGrKey3(val, grKey2) {
+ updateGrKey1(val, grKey2);
+ updateGrKey2(val, grKey2);
+ }, "updateGrKey");
+ var updateGrKeyWStr = /* @__PURE__ */ __name(function updateGrKeyWStr2(strVal, grKey2) {
+ for (var j2 = 0; j2 < strVal.length; j2++) {
+ var ch = strVal.charCodeAt(j2);
+ updateGrKey1(ch, grKey2);
+ updateGrKey2(ch, grKey2);
+ }
+ }, "updateGrKeyWStr");
+ var N2 = 2e9;
+ var cleanNum = /* @__PURE__ */ __name(function cleanNum2(val) {
+ return -128 < val && val < 128 && Math.floor(val) !== val ? N2 - (val * 1024 | 0) : val;
+ }, "cleanNum");
+ for (var _i = 0; _i < propNames.length; _i++) {
+ var name = propNames[_i];
+ var parsedProp = overriddenStyles[name];
+ if (parsedProp == null) {
+ continue;
+ }
+ var propInfo = this.properties[name];
+ var type3 = propInfo.type;
+ var _grKey = propInfo.groupKey;
+ var normalizedNumberVal = void 0;
+ if (propInfo.hashOverride != null) {
+ normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);
+ } else if (parsedProp.pfValue != null) {
+ normalizedNumberVal = parsedProp.pfValue;
+ }
+ var numberVal = propInfo.enums == null ? parsedProp.value : null;
+ var haveNormNum = normalizedNumberVal != null;
+ var haveUnitedNum = numberVal != null;
+ var haveNum = haveNormNum || haveUnitedNum;
+ var units = parsedProp.units;
+ if (type3.number && haveNum && !type3.multiple) {
+ var v3 = haveNormNum ? normalizedNumberVal : numberVal;
+ updateGrKey(cleanNum(v3), _grKey);
+ if (!haveNormNum && units != null) {
+ updateGrKeyWStr(units, _grKey);
+ }
+ } else {
+ updateGrKeyWStr(parsedProp.strValue, _grKey);
+ }
+ }
+ var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
+ for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {
+ var _grKey2 = propGrKeys[_i2];
+ var grHash = _p.styleKeys[_grKey2];
+ hash[0] = hashInt(grHash[0], hash[0]);
+ hash[1] = hashIntAlt(grHash[1], hash[1]);
+ }
+ _p.styleKey = combineHashes(hash[0], hash[1]);
+ var sk = _p.styleKeys;
+ _p.labelDimsKey = combineHashesArray(sk.labelDimensions);
+ var labelKeys = propHash(ele, ["label"], sk.labelDimensions);
+ _p.labelKey = combineHashesArray(labelKeys);
+ _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));
+ if (!isNode2) {
+ var sourceLabelKeys = propHash(ele, ["source-label"], sk.labelDimensions);
+ _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);
+ _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));
+ var targetLabelKeys = propHash(ele, ["target-label"], sk.labelDimensions);
+ _p.targetLabelKey = combineHashesArray(targetLabelKeys);
+ _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));
+ }
+ if (isNode2) {
+ var _p$styleKeys = _p.styleKeys, nodeBody = _p$styleKeys.nodeBody, nodeBorder = _p$styleKeys.nodeBorder, nodeOutline = _p$styleKeys.nodeOutline, backgroundImage = _p$styleKeys.backgroundImage, compound = _p$styleKeys.compound, pie2 = _p$styleKeys.pie;
+ var nodeKeys = [nodeBody, nodeBorder, nodeOutline, backgroundImage, compound, pie2].filter(function(k2) {
+ return k2 != null;
+ }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);
+ _p.nodeKey = combineHashesArray(nodeKeys);
+ _p.hasPie = pie2 != null && pie2[0] !== DEFAULT_HASH_SEED && pie2[1] !== DEFAULT_HASH_SEED_ALT;
+ }
+ return oldStyleKey !== _p.styleKey;
+ };
+ styfn$8.clearStyleHints = function(ele) {
+ var _p = ele._private;
+ _p.styleCxtKey = "";
+ _p.styleKeys = {};
+ _p.styleKey = null;
+ _p.labelKey = null;
+ _p.labelStyleKey = null;
+ _p.sourceLabelKey = null;
+ _p.sourceLabelStyleKey = null;
+ _p.targetLabelKey = null;
+ _p.targetLabelStyleKey = null;
+ _p.nodeKey = null;
+ _p.hasPie = null;
+ };
+ styfn$8.applyParsedProperty = function(ele, parsedProp) {
+ var self2 = this;
+ var prop = parsedProp;
+ var style3 = ele._private.style;
+ var flatProp;
+ var types = self2.types;
+ var type3 = self2.properties[prop.name].type;
+ var propIsBypass = prop.bypass;
+ var origProp = style3[prop.name];
+ var origPropIsBypass = origProp && origProp.bypass;
+ var _p = ele._private;
+ var flatPropMapping = "mapping";
+ var getVal = /* @__PURE__ */ __name(function getVal2(p3) {
+ if (p3 == null) {
+ return null;
+ } else if (p3.pfValue != null) {
+ return p3.pfValue;
+ } else {
+ return p3.value;
+ }
+ }, "getVal");
+ var checkTriggers = /* @__PURE__ */ __name(function checkTriggers2() {
+ var fromVal = getVal(origProp);
+ var toVal = getVal(prop);
+ self2.checkTriggers(ele, prop.name, fromVal, toVal);
+ }, "checkTriggers");
+ if (parsedProp.name === "curve-style" && ele.isEdge() && // loops must be bundled beziers
+ (parsedProp.value !== "bezier" && ele.isLoop() || // edges connected to compound nodes can not be haystacks
+ parsedProp.value === "haystack" && (ele.source().isParent() || ele.target().isParent()))) {
+ prop = parsedProp = this.parse(parsedProp.name, "bezier", propIsBypass);
+ }
+ if (prop["delete"]) {
+ style3[prop.name] = void 0;
+ checkTriggers();
+ return true;
+ }
+ if (prop.deleteBypassed) {
+ if (!origProp) {
+ checkTriggers();
+ return true;
+ } else if (origProp.bypass) {
+ origProp.bypassed = void 0;
+ checkTriggers();
+ return true;
+ } else {
+ return false;
+ }
+ }
+ if (prop.deleteBypass) {
+ if (!origProp) {
+ checkTriggers();
+ return true;
+ } else if (origProp.bypass) {
+ style3[prop.name] = origProp.bypassed;
+ checkTriggers();
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var printMappingErr = /* @__PURE__ */ __name(function printMappingErr2() {
+ warn("Do not assign mappings to elements without corresponding data (i.e. ele `" + ele.id() + "` has no mapping for property `" + prop.name + "` with data field `" + prop.field + "`); try a `[" + prop.field + "]` selector to limit scope to elements with `" + prop.field + "` defined");
+ }, "printMappingErr");
+ switch (prop.mapped) {
+ case types.mapData: {
+ var fields = prop.field.split(".");
+ var fieldVal = _p.data;
+ for (var i2 = 0; i2 < fields.length && fieldVal; i2++) {
+ var field = fields[i2];
+ fieldVal = fieldVal[field];
+ }
+ if (fieldVal == null) {
+ printMappingErr();
return false;
- };
- _2.Ib = function Bxd() {
- var a, b, c2, d;
- d = new Jfb(hdb(this.gm) + "@" + (b = tb(this) >>> 0, b.toString(16)));
- d.a += " (eventType: ";
- switch (this.d) {
- case 1: {
- d.a += "SET";
- break;
- }
- case 2: {
- d.a += "UNSET";
- break;
- }
- case 3: {
- d.a += "ADD";
- break;
- }
- case 5: {
- d.a += "ADD_MANY";
- break;
- }
- case 4: {
- d.a += "REMOVE";
- break;
- }
- case 6: {
- d.a += "REMOVE_MANY";
- break;
- }
- case 7: {
- d.a += "MOVE";
- break;
- }
- case 8: {
- d.a += "REMOVING_ADAPTER";
- break;
- }
- case 9: {
- d.a += "RESOLVE";
- break;
- }
- default: {
- Cfb(d, this.d);
- break;
- }
- }
- ixd(this) && (d.a += ", touch: true", d);
- d.a += ", position: ";
- Cfb(d, this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o);
- d.a += ", notifier: ";
- Dfb(d, this.Ai());
- d.a += ", feature: ";
- Dfb(d, this._i());
- d.a += ", oldValue: ";
- Dfb(d, hxd(this));
- d.a += ", newValue: ";
- if (this.d == 6 && JD(this.g, 48)) {
- c2 = BD(this.g, 48);
- d.a += "[";
- for (a = 0; a < c2.length; ) {
- d.a += c2[a];
- ++a < c2.length && (d.a += She, d);
- }
- d.a += "]";
+ }
+ var percent;
+ if (!number$1(fieldVal)) {
+ warn("Do not use continuous mappers without specifying numeric data (i.e. `" + prop.field + ": " + fieldVal + "` for `" + ele.id() + "` is non-numeric)");
+ return false;
+ } else {
+ var fieldWidth = prop.fieldMax - prop.fieldMin;
+ if (fieldWidth === 0) {
+ percent = 0;
} else {
- Dfb(d, $wd(this));
- }
- d.a += ", isTouch: ";
- Ffb(d, ixd(this));
- d.a += ", wasSet: ";
- Ffb(d, jxd(this));
- d.a += ")";
- return d.a;
- };
- _2.d = 0;
- _2.e = 0;
- _2.f = 0;
- _2.j = 0;
- _2.k = 0;
- _2.o = 0;
- _2.p = 0;
- mdb(hte, "NotificationImpl", 143);
- bcb(1167, 143, fve, Cxd);
- _2._i = function Dxd() {
- return this.a._i();
- };
- _2.yi = function Exd(a) {
- return this.a.aj();
- };
- _2.Ai = function Fxd() {
- return this.a.Ai();
- };
- mdb(hte, "DelegatingNotifyingListImpl/1", 1167);
- bcb(242, 63, oue, Hxd, Ixd);
- _2.Fc = function Jxd(a) {
- return Gxd(this, BD(a, 366));
- };
- _2.Ei = function Kxd(a) {
- return Gxd(this, a);
- };
- _2.Fi = function Lxd() {
- var a, b, c2;
- for (a = 0; a < this.i; ++a) {
- b = BD(this.g[a], 366);
- c2 = b.Ai();
- c2 != null && b.xi() != -1 && BD(c2, 92).Ng(b);
+ percent = (fieldVal - prop.fieldMin) / fieldWidth;
}
- };
- _2.ri = function Mxd(a) {
- return KC(_3, Uhe, 366, a, 0, 1);
- };
- mdb(hte, "NotificationChainImpl", 242);
- bcb(1378, 90, gte);
- _2.Kg = function Nxd() {
- return this.e;
- };
- _2.Mg = function Oxd() {
- return (this.f & 1) != 0;
- };
- _2.f = 1;
- mdb(hte, "NotifierImpl", 1378);
- bcb(1993, 63, oue);
- _2.Vh = function $xd(a, b) {
- return Pxd(this, a, b);
- };
- _2.Wh = function _xd(a) {
- return this.Vh(this.i, a);
- };
- _2.Xh = function ayd(a, b) {
- Qxd(this, a, b);
- };
- _2.Yh = function byd(a) {
- Rxd(this, a);
- };
- _2.ai = function cyd() {
- return !this.bj();
- };
- _2.$b = function dyd() {
- Uxd(this);
- };
- _2.Zi = function eyd(a, b, c2, d, e) {
- return new vyd(this, a, b, c2, d, e);
- };
- _2.$i = function fyd(a) {
- Uhd(this.Ai(), a);
- };
- _2._i = function gyd() {
- return null;
- };
- _2.aj = function hyd() {
- return -1;
- };
- _2.Ai = function iyd() {
- return null;
- };
- _2.bj = function jyd() {
+ }
+ if (percent < 0) {
+ percent = 0;
+ } else if (percent > 1) {
+ percent = 1;
+ }
+ if (type3.color) {
+ var r1 = prop.valueMin[0];
+ var r2 = prop.valueMax[0];
+ var g1 = prop.valueMin[1];
+ var g2 = prop.valueMax[1];
+ var b1 = prop.valueMin[2];
+ var b2 = prop.valueMax[2];
+ var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];
+ var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];
+ var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];
+ flatProp = {
+ // colours are simple, so just create the flat property instead of expensive string parsing
+ bypass: prop.bypass,
+ // we're a bypass if the mapping property is a bypass
+ name: prop.name,
+ value: clr,
+ strValue: "rgb(" + clr[0] + ", " + clr[1] + ", " + clr[2] + ")"
+ };
+ } else if (type3.number) {
+ var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;
+ flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);
+ } else {
return false;
- };
- _2.ij = function kyd() {
+ }
+ if (!flatProp) {
+ printMappingErr();
return false;
- };
- _2.cj = function lyd(a, b) {
- return b;
- };
- _2.dj = function myd(a, b) {
- return b;
- };
- _2.ej = function nyd() {
+ }
+ flatProp.mapping = prop;
+ prop = flatProp;
+ break;
+ }
+ case types.data: {
+ var _fields = prop.field.split(".");
+ var _fieldVal = _p.data;
+ for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {
+ var _field = _fields[_i3];
+ _fieldVal = _fieldVal[_field];
+ }
+ if (_fieldVal != null) {
+ flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);
+ }
+ if (!flatProp) {
+ printMappingErr();
return false;
- };
- _2.fj = function oyd() {
- return this.i != 0;
- };
- _2.ii = function pyd(a, b) {
- return Wxd(this, a, b);
- };
- _2.$c = function qyd(a) {
- return Xxd(this, a);
- };
- _2.mi = function ryd(a, b) {
- return Zxd(this, a, b);
- };
- _2.jj = function syd(a, b) {
- return b;
- };
- _2.kj = function tyd(a, b) {
- return b;
- };
- _2.lj = function uyd(a, b, c2) {
- return c2;
- };
- mdb(hte, "NotifyingListImpl", 1993);
- bcb(1166, 143, fve, vyd);
- _2._i = function wyd() {
- return this.a._i();
- };
- _2.yi = function xyd(a) {
- return this.a.aj();
- };
- _2.Ai = function yyd() {
- return this.a.Ai();
- };
- mdb(hte, "NotifyingListImpl/1", 1166);
- bcb(953, 63, oue, zyd);
- _2.Hc = function Ayd(a) {
- if (this.i > 10) {
- if (!this.b || this.c.j != this.a) {
- this.b = new Vqb(this);
- this.a = this.j;
- }
- return Rqb(this.b, a);
- } else {
- return pud(this, a);
- }
- };
- _2.ni = function Byd() {
- return true;
- };
- _2.a = 0;
- mdb(Tte, "AbstractEList/1", 953);
- bcb(295, 73, Mje, Cyd);
- mdb(Tte, "AbstractEList/BasicIndexOutOfBoundsException", 295);
- bcb(40, 1, aie, Fyd);
- _2.Nb = function Iyd(a) {
- Rrb(this, a);
- };
- _2.mj = function Gyd() {
- if (this.i.j != this.f) {
- throw vbb(new Apb());
- }
- };
- _2.nj = function Hyd() {
- return Dyd(this);
- };
- _2.Ob = function Jyd() {
- return this.e != this.i.gc();
- };
- _2.Pb = function Kyd() {
- return this.nj();
- };
- _2.Qb = function Lyd() {
- Eyd(this);
- };
- _2.e = 0;
- _2.f = 0;
- _2.g = -1;
- mdb(Tte, "AbstractEList/EIterator", 40);
- bcb(278, 40, jie, Oyd, Pyd);
- _2.Qb = function Xyd() {
- Eyd(this);
- };
- _2.Rb = function Qyd(a) {
- Myd(this, a);
- };
- _2.oj = function Ryd() {
- var b;
- try {
- b = this.d.Xb(--this.e);
- this.mj();
- this.g = this.e;
- return b;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- this.mj();
- throw vbb(new utb());
- } else
- throw vbb(a);
- }
- };
- _2.pj = function Syd(a) {
- Nyd(this, a);
- };
- _2.Sb = function Tyd() {
- return this.e != 0;
- };
- _2.Tb = function Uyd() {
- return this.e;
- };
- _2.Ub = function Vyd() {
- return this.oj();
- };
- _2.Vb = function Wyd() {
- return this.e - 1;
- };
- _2.Wb = function Yyd(a) {
- this.pj(a);
- };
- mdb(Tte, "AbstractEList/EListIterator", 278);
- bcb(341, 40, aie, $yd);
- _2.nj = function _yd() {
- return Zyd(this);
- };
- _2.Qb = function azd() {
- throw vbb(new bgb());
- };
- mdb(Tte, "AbstractEList/NonResolvingEIterator", 341);
- bcb(385, 278, jie, bzd, czd);
- _2.Rb = function dzd(a) {
- throw vbb(new bgb());
- };
- _2.nj = function ezd() {
- var b;
- try {
- b = this.c.ki(this.e);
- this.mj();
- this.g = this.e++;
- return b;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- this.mj();
- throw vbb(new utb());
- } else
- throw vbb(a);
- }
- };
- _2.oj = function fzd() {
- var b;
- try {
- b = this.c.ki(--this.e);
- this.mj();
- this.g = this.e;
- return b;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- this.mj();
- throw vbb(new utb());
- } else
- throw vbb(a);
- }
- };
- _2.Qb = function gzd() {
- throw vbb(new bgb());
- };
- _2.Wb = function hzd(a) {
- throw vbb(new bgb());
- };
- mdb(Tte, "AbstractEList/NonResolvingEListIterator", 385);
- bcb(1982, 67, ive);
- _2.Vh = function pzd(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m;
- e = b.gc();
- if (e != 0) {
- j = BD(Ajd(this.a, 4), 126);
- k = j == null ? 0 : j.length;
- m = k + e;
- d = nzd(this, m);
- l = k - a;
- l > 0 && $fb(j, a, d, a + e, l);
- i3 = b.Kc();
- for (g = 0; g < e; ++g) {
- h = i3.Pb();
- c2 = a + g;
- lzd(d, c2, Itd(this, h));
- }
- b0d(this, d);
- for (f2 = 0; f2 < e; ++f2) {
- h = d[a];
- this.bi(a, h);
- ++a;
- }
- return true;
- } else {
- ++this.j;
- return false;
- }
- };
- _2.Wh = function qzd(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- d = a.gc();
- if (d != 0) {
- i3 = (c2 = BD(Ajd(this.a, 4), 126), c2 == null ? 0 : c2.length);
- j = i3 + d;
- b = nzd(this, j);
- h = a.Kc();
- for (f2 = i3; f2 < j; ++f2) {
- g = h.Pb();
- lzd(b, f2, Itd(this, g));
- }
- b0d(this, b);
- for (e = i3; e < j; ++e) {
- g = b[e];
- this.bi(e, g);
- }
- return true;
- } else {
- ++this.j;
- return false;
- }
- };
- _2.Xh = function rzd(a, b) {
- var c2, d, e, f2;
- d = BD(Ajd(this.a, 4), 126);
- e = d == null ? 0 : d.length;
- c2 = nzd(this, e + 1);
- f2 = Itd(this, b);
- a != e && $fb(d, a, c2, a + 1, e - a);
- NC(c2, a, f2);
- b0d(this, c2);
- this.bi(a, b);
- };
- _2.Yh = function szd(a) {
- var b, c2, d;
- d = (c2 = BD(Ajd(this.a, 4), 126), c2 == null ? 0 : c2.length);
- b = nzd(this, d + 1);
- lzd(b, d, Itd(this, a));
- b0d(this, b);
- this.bi(d, a);
- };
- _2.Zh = function tzd() {
- return new Uzd(this);
- };
- _2.$h = function uzd() {
- return new Xzd(this);
- };
- _2._h = function vzd(a) {
- var b, c2;
- c2 = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length);
- if (a < 0 || a > c2)
- throw vbb(new Cyd(a, c2));
- return new Yzd(this, a);
- };
- _2.$b = function wzd() {
- var a, b;
- ++this.j;
- a = BD(Ajd(this.a, 4), 126);
- b = a == null ? 0 : a.length;
- b0d(this, null);
- Atd(this, b, a);
- };
- _2.Hc = function xzd(a) {
- var b, c2, d, e, f2;
- b = BD(Ajd(this.a, 4), 126);
- if (b != null) {
- if (a != null) {
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- if (pb(a, c2)) {
- return true;
- }
- }
- } else {
- for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
- c2 = d[e];
- if (PD(c2) === PD(a)) {
- return true;
- }
- }
- }
- }
+ }
+ flatProp.mapping = prop;
+ prop = flatProp;
+ break;
+ }
+ case types.fn: {
+ var fn3 = prop.value;
+ var fnRetVal = prop.fnValue != null ? prop.fnValue : fn3(ele);
+ prop.prevFnValue = fnRetVal;
+ if (fnRetVal == null) {
+ warn("Custom function mappers may not return null (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is null)");
return false;
- };
- _2.Xb = function yzd(a) {
- var b, c2;
- b = BD(Ajd(this.a, 4), 126);
- c2 = b == null ? 0 : b.length;
- if (a >= c2)
- throw vbb(new Cyd(a, c2));
- return b[a];
- };
- _2.Xc = function zzd(a) {
- var b, c2, d;
- b = BD(Ajd(this.a, 4), 126);
- if (b != null) {
- if (a != null) {
- for (c2 = 0, d = b.length; c2 < d; ++c2) {
- if (pb(a, b[c2])) {
- return c2;
- }
- }
+ }
+ flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);
+ if (!flatProp) {
+ warn("Custom function mappers may not return invalid values for the property type (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is invalid)");
+ return false;
+ }
+ flatProp.mapping = copy4(prop);
+ prop = flatProp;
+ break;
+ }
+ case void 0:
+ break;
+ default:
+ return false;
+ }
+ if (propIsBypass) {
+ if (origPropIsBypass) {
+ prop.bypassed = origProp.bypassed;
+ } else {
+ prop.bypassed = origProp;
+ }
+ style3[prop.name] = prop;
+ } else {
+ if (origPropIsBypass) {
+ origProp.bypassed = prop;
+ } else {
+ style3[prop.name] = prop;
+ }
+ }
+ checkTriggers();
+ return true;
+ };
+ styfn$8.cleanElements = function(eles, keepBypasses) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ this.clearStyleHints(ele);
+ ele.dirtyCompoundBoundsCache();
+ ele.dirtyBoundingBoxCache();
+ if (!keepBypasses) {
+ ele._private.style = {};
+ } else {
+ var style3 = ele._private.style;
+ var propNames = Object.keys(style3);
+ for (var j2 = 0; j2 < propNames.length; j2++) {
+ var propName = propNames[j2];
+ var eleProp = style3[propName];
+ if (eleProp != null) {
+ if (eleProp.bypass) {
+ eleProp.bypassed = null;
} else {
- for (c2 = 0, d = b.length; c2 < d; ++c2) {
- if (PD(b[c2]) === PD(a)) {
- return c2;
- }
- }
+ style3[propName] = null;
}
}
- return -1;
- };
- _2.dc = function Azd() {
- return BD(Ajd(this.a, 4), 126) == null;
- };
- _2.Kc = function Bzd() {
- return new Lzd(this);
- };
- _2.Yc = function Czd() {
- return new Pzd(this);
- };
- _2.Zc = function Dzd(a) {
- var b, c2;
- c2 = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length);
- if (a < 0 || a > c2)
- throw vbb(new Cyd(a, c2));
- return new Qzd(this, a);
- };
- _2.ii = function Ezd(a, b) {
- var c2, d, e;
- c2 = mzd(this);
- e = c2 == null ? 0 : c2.length;
- if (a >= e)
- throw vbb(new qcb(lue + a + mue + e));
- if (b >= e)
- throw vbb(new qcb(nue + b + mue + e));
- d = c2[b];
- if (a != b) {
- a < b ? $fb(c2, a, c2, a + 1, b - a) : $fb(c2, b + 1, c2, b, a - b);
- NC(c2, a, d);
- b0d(this, c2);
- }
- return d;
- };
- _2.ki = function Fzd(a) {
- return BD(Ajd(this.a, 4), 126)[a];
- };
- _2.$c = function Gzd(a) {
- return ozd(this, a);
- };
- _2.mi = function Hzd(a, b) {
- var c2, d;
- c2 = mzd(this);
- d = c2[a];
- lzd(c2, a, Itd(this, b));
- b0d(this, c2);
- return d;
- };
- _2.gc = function Izd() {
- var a;
- return a = BD(Ajd(this.a, 4), 126), a == null ? 0 : a.length;
- };
- _2.Pc = function Jzd() {
- var a, b, c2;
- a = BD(Ajd(this.a, 4), 126);
- c2 = a == null ? 0 : a.length;
- b = KC($3, hve, 415, c2, 0, 1);
- c2 > 0 && $fb(a, 0, b, 0, c2);
- return b;
- };
- _2.Qc = function Kzd(a) {
- var b, c2, d;
- b = BD(Ajd(this.a, 4), 126);
- d = b == null ? 0 : b.length;
- if (d > 0) {
- if (a.length < d) {
- c2 = izd(rb(a).c, d);
- a = c2;
- }
- $fb(b, 0, a, 0, d);
- }
- a.length > d && NC(a, d, null);
- return a;
- };
- var jzd;
- mdb(Tte, "ArrayDelegatingEList", 1982);
- bcb(1038, 40, aie, Lzd);
- _2.mj = function Mzd() {
- if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
- throw vbb(new Apb());
- }
- };
- _2.Qb = function Nzd() {
- Eyd(this);
- this.a = BD(Ajd(this.b.a, 4), 126);
- };
- mdb(Tte, "ArrayDelegatingEList/EIterator", 1038);
- bcb(706, 278, jie, Pzd, Qzd);
- _2.mj = function Rzd() {
- if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
- throw vbb(new Apb());
- }
- };
- _2.pj = function Szd(a) {
- Nyd(this, a);
- this.a = BD(Ajd(this.b.a, 4), 126);
- };
- _2.Qb = function Tzd() {
- Eyd(this);
- this.a = BD(Ajd(this.b.a, 4), 126);
- };
- mdb(Tte, "ArrayDelegatingEList/EListIterator", 706);
- bcb(1039, 341, aie, Uzd);
- _2.mj = function Vzd() {
- if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
- throw vbb(new Apb());
+ }
+ }
+ }
+ };
+ styfn$8.update = function() {
+ var cy = this._private.cy;
+ var eles = cy.mutableElements();
+ eles.updateStyle();
+ };
+ styfn$8.updateTransitions = function(ele, diffProps) {
+ var self2 = this;
+ var _p = ele._private;
+ var props = ele.pstyle("transition-property").value;
+ var duration = ele.pstyle("transition-duration").pfValue;
+ var delay2 = ele.pstyle("transition-delay").pfValue;
+ if (props.length > 0 && duration > 0) {
+ var style3 = {};
+ var anyPrev = false;
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var prop = props[i2];
+ var styProp = ele.pstyle(prop);
+ var diffProp = diffProps[prop];
+ if (!diffProp) {
+ continue;
+ }
+ var prevProp = diffProp.prev;
+ var fromProp = prevProp;
+ var toProp = diffProp.next != null ? diffProp.next : styProp;
+ var diff2 = false;
+ var initVal = void 0;
+ var initDt = 1e-6;
+ if (!fromProp) {
+ continue;
+ }
+ if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) {
+ diff2 = toProp.pfValue - fromProp.pfValue;
+ initVal = fromProp.pfValue + initDt * diff2;
+ } else if (number$1(fromProp.value) && number$1(toProp.value)) {
+ diff2 = toProp.value - fromProp.value;
+ initVal = fromProp.value + initDt * diff2;
+ } else if (array2(fromProp.value) && array2(toProp.value)) {
+ diff2 = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];
+ initVal = fromProp.strValue;
+ }
+ if (diff2) {
+ style3[prop] = toProp.strValue;
+ this.applyBypass(ele, prop, initVal);
+ anyPrev = true;
+ }
+ }
+ if (!anyPrev) {
+ return;
+ }
+ _p.transitioning = true;
+ new Promise$1(function(resolve3) {
+ if (delay2 > 0) {
+ ele.delayAnimation(delay2).play().promise().then(resolve3);
+ } else {
+ resolve3();
+ }
+ }).then(function() {
+ return ele.animation({
+ style: style3,
+ duration,
+ easing: ele.pstyle("transition-timing-function").value,
+ queue: false
+ }).play().promise();
+ }).then(function() {
+ self2.removeBypasses(ele, props);
+ ele.emitAndNotify("style");
+ _p.transitioning = false;
+ });
+ } else if (_p.transitioning) {
+ this.removeBypasses(ele, props);
+ ele.emitAndNotify("style");
+ _p.transitioning = false;
+ }
+ };
+ styfn$8.checkTrigger = function(ele, name, fromValue, toValue, getTrigger, onTrigger) {
+ var prop = this.properties[name];
+ var triggerCheck = getTrigger(prop);
+ if (triggerCheck != null && triggerCheck(fromValue, toValue)) {
+ onTrigger(prop);
+ }
+ };
+ styfn$8.checkZOrderTrigger = function(ele, name, fromValue, toValue) {
+ var _this = this;
+ this.checkTrigger(ele, name, fromValue, toValue, function(prop) {
+ return prop.triggersZOrder;
+ }, function() {
+ _this._private.cy.notify("zorder", ele);
+ });
+ };
+ styfn$8.checkBoundsTrigger = function(ele, name, fromValue, toValue) {
+ this.checkTrigger(ele, name, fromValue, toValue, function(prop) {
+ return prop.triggersBounds;
+ }, function(prop) {
+ ele.dirtyCompoundBoundsCache();
+ ele.dirtyBoundingBoxCache();
+ if (
+ // only for beziers -- so performance of other edges isn't affected
+ prop.triggersBoundsOfParallelBeziers && name === "curve-style" && (fromValue === "bezier" || toValue === "bezier")
+ ) {
+ ele.parallelEdges().forEach(function(pllEdge) {
+ if (pllEdge.isBundledBezier()) {
+ pllEdge.dirtyBoundingBoxCache();
}
- };
- mdb(Tte, "ArrayDelegatingEList/NonResolvingEIterator", 1039);
- bcb(707, 385, jie, Xzd, Yzd);
- _2.mj = function Zzd() {
- if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
- throw vbb(new Apb());
+ });
+ }
+ if (prop.triggersBoundsOfConnectedEdges && name === "display" && (fromValue === "none" || toValue === "none")) {
+ ele.connectedEdges().forEach(function(edge) {
+ edge.dirtyBoundingBoxCache();
+ });
+ }
+ });
+ };
+ styfn$8.checkTriggers = function(ele, name, fromValue, toValue) {
+ ele.dirtyStyleCache();
+ this.checkZOrderTrigger(ele, name, fromValue, toValue);
+ this.checkBoundsTrigger(ele, name, fromValue, toValue);
+ };
+ styfn$7 = {};
+ styfn$7.applyBypass = function(eles, name, value2, updateTransitions) {
+ var self2 = this;
+ var props = [];
+ var isBypass = true;
+ if (name === "*" || name === "**") {
+ if (value2 !== void 0) {
+ for (var i2 = 0; i2 < self2.properties.length; i2++) {
+ var prop = self2.properties[i2];
+ var _name = prop.name;
+ var parsedProp = this.parse(_name, value2, true);
+ if (parsedProp) {
+ props.push(parsedProp);
}
- };
- mdb(Tte, "ArrayDelegatingEList/NonResolvingEListIterator", 707);
- bcb(606, 295, Mje, $zd);
- mdb(Tte, "BasicEList/BasicIndexOutOfBoundsException", 606);
- bcb(696, 63, oue, _zd);
- _2.Vc = function aAd(a, b) {
- throw vbb(new bgb());
- };
- _2.Fc = function bAd(a) {
- throw vbb(new bgb());
- };
- _2.Wc = function cAd(a, b) {
- throw vbb(new bgb());
- };
- _2.Gc = function dAd(a) {
- throw vbb(new bgb());
- };
- _2.$b = function eAd() {
- throw vbb(new bgb());
- };
- _2.qi = function fAd(a) {
- throw vbb(new bgb());
- };
- _2.Kc = function gAd() {
- return this.Zh();
- };
- _2.Yc = function hAd() {
- return this.$h();
- };
- _2.Zc = function iAd(a) {
- return this._h(a);
- };
- _2.ii = function jAd(a, b) {
- throw vbb(new bgb());
- };
- _2.ji = function kAd(a, b) {
- throw vbb(new bgb());
- };
- _2.$c = function lAd(a) {
- throw vbb(new bgb());
- };
- _2.Mc = function mAd(a) {
- throw vbb(new bgb());
- };
- _2._c = function nAd(a, b) {
- throw vbb(new bgb());
- };
- mdb(Tte, "BasicEList/UnmodifiableEList", 696);
- bcb(705, 1, { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 });
- _2.Vc = function OAd(a, b) {
- oAd(this, a, BD(b, 42));
- };
- _2.Fc = function PAd(a) {
- return pAd(this, BD(a, 42));
- };
- _2.Jc = function XAd(a) {
- reb(this, a);
- };
- _2.Xb = function YAd(a) {
- return BD(qud(this.c, a), 133);
- };
- _2.ii = function fBd(a, b) {
- return BD(this.c.ii(a, b), 42);
- };
- _2.ji = function gBd(a, b) {
- GAd(this, a, BD(b, 42));
- };
- _2.Lc = function jBd() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.$c = function kBd(a) {
- return BD(this.c.$c(a), 42);
- };
- _2._c = function mBd(a, b) {
- return MAd(this, a, BD(b, 42));
- };
- _2.ad = function oBd(a) {
- ktb(this, a);
- };
- _2.Nc = function pBd() {
- return new Kub(this, 16);
- };
- _2.Oc = function qBd() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.Wc = function QAd(a, b) {
- return this.c.Wc(a, b);
- };
- _2.Gc = function RAd(a) {
- return this.c.Gc(a);
- };
- _2.$b = function SAd() {
- this.c.$b();
- };
- _2.Hc = function TAd(a) {
- return this.c.Hc(a);
- };
- _2.Ic = function UAd(a) {
- return Be(this.c, a);
- };
- _2.qj = function VAd() {
- var a, b, c2;
- if (this.d == null) {
- this.d = KC(y4, jve, 63, 2 * this.f + 1, 0, 1);
- c2 = this.e;
- this.f = 0;
- for (b = this.c.Kc(); b.e != b.i.gc(); ) {
- a = BD(b.nj(), 133);
- uAd(this, a);
- }
- this.e = c2;
+ }
+ }
+ } else if (string(name)) {
+ var _parsedProp = this.parse(name, value2, true);
+ if (_parsedProp) {
+ props.push(_parsedProp);
+ }
+ } else if (plainObject(name)) {
+ var specifiedProps = name;
+ updateTransitions = value2;
+ var names = Object.keys(specifiedProps);
+ for (var _i = 0; _i < names.length; _i++) {
+ var _name2 = names[_i];
+ var _value = specifiedProps[_name2];
+ if (_value === void 0) {
+ _value = specifiedProps[dash2camel(_name2)];
+ }
+ if (_value !== void 0) {
+ var _parsedProp2 = this.parse(_name2, _value, true);
+ if (_parsedProp2) {
+ props.push(_parsedProp2);
}
+ }
+ }
+ } else {
+ return false;
+ }
+ if (props.length === 0) {
+ return false;
+ }
+ var ret = false;
+ for (var _i2 = 0; _i2 < eles.length; _i2++) {
+ var ele = eles[_i2];
+ var diffProps = {};
+ var diffProp = void 0;
+ for (var j2 = 0; j2 < props.length; j2++) {
+ var _prop = props[j2];
+ if (updateTransitions) {
+ var prevProp = ele.pstyle(_prop.name);
+ diffProp = diffProps[_prop.name] = {
+ prev: prevProp
+ };
+ }
+ ret = this.applyParsedProperty(ele, copy4(_prop)) || ret;
+ if (updateTransitions) {
+ diffProp.next = ele.pstyle(_prop.name);
+ }
+ }
+ if (ret) {
+ this.updateStyleHints(ele);
+ }
+ if (updateTransitions) {
+ this.updateTransitions(ele, diffProps, isBypass);
+ }
+ }
+ return ret;
+ };
+ styfn$7.overrideBypass = function(eles, name, value2) {
+ name = camel2dash(name);
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var prop = ele._private.style[name];
+ var type3 = this.properties[name].type;
+ var isColor = type3.color;
+ var isMulti = type3.mutiple;
+ var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;
+ if (!prop || !prop.bypass) {
+ this.applyBypass(ele, name, value2);
+ } else {
+ prop.value = value2;
+ if (prop.pfValue != null) {
+ prop.pfValue = value2;
+ }
+ if (isColor) {
+ prop.strValue = "rgb(" + value2.join(",") + ")";
+ } else if (isMulti) {
+ prop.strValue = value2.join(" ");
+ } else {
+ prop.strValue = "" + value2;
+ }
+ this.updateStyleHints(ele);
+ }
+ this.checkTriggers(ele, name, oldValue, value2);
+ }
+ };
+ styfn$7.removeAllBypasses = function(eles, updateTransitions) {
+ return this.removeBypasses(eles, this.propertyNames, updateTransitions);
+ };
+ styfn$7.removeBypasses = function(eles, props, updateTransitions) {
+ var isBypass = true;
+ for (var j2 = 0; j2 < eles.length; j2++) {
+ var ele = eles[j2];
+ var diffProps = {};
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var name = props[i2];
+ var prop = this.properties[name];
+ var prevProp = ele.pstyle(prop.name);
+ if (!prevProp || !prevProp.bypass) {
+ continue;
+ }
+ var value2 = "";
+ var parsedProp = this.parse(name, value2, true);
+ var diffProp = diffProps[prop.name] = {
+ prev: prevProp
};
- _2.Fb = function WAd(a) {
- return zAd(this, a);
- };
- _2.Hb = function ZAd() {
- return Etd(this.c);
- };
- _2.Xc = function $Ad(a) {
- return this.c.Xc(a);
- };
- _2.rj = function _Ad() {
- this.c = new yBd(this);
- };
- _2.dc = function aBd() {
- return this.f == 0;
- };
- _2.Kc = function bBd() {
- return this.c.Kc();
- };
- _2.Yc = function cBd() {
- return this.c.Yc();
- };
- _2.Zc = function dBd(a) {
- return this.c.Zc(a);
- };
- _2.sj = function eBd() {
- return FAd(this);
- };
- _2.tj = function hBd(a, b, c2) {
- return new zCd(a, b, c2);
- };
- _2.uj = function iBd() {
- return new EBd();
- };
- _2.Mc = function lBd(a) {
- return JAd(this, a);
- };
- _2.gc = function nBd() {
- return this.f;
- };
- _2.bd = function rBd(a, b) {
- return new Jib(this.c, a, b);
- };
- _2.Pc = function sBd() {
- return this.c.Pc();
- };
- _2.Qc = function tBd(a) {
- return this.c.Qc(a);
- };
- _2.Ib = function uBd() {
- return Htd(this.c);
- };
- _2.e = 0;
- _2.f = 0;
- mdb(Tte, "BasicEMap", 705);
- bcb(1033, 63, oue, yBd);
- _2.bi = function zBd(a, b) {
- vBd(this, BD(b, 133));
- };
- _2.ei = function BBd(a, b, c2) {
- var d;
- ++(d = this, BD(b, 133), d).a.e;
- };
- _2.fi = function CBd(a, b) {
- wBd(this, BD(b, 133));
- };
- _2.gi = function DBd(a, b, c2) {
- xBd(this, BD(b, 133), BD(c2, 133));
- };
- _2.di = function ABd(a, b) {
- tAd(this.a);
- };
- mdb(Tte, "BasicEMap/1", 1033);
- bcb(1034, 63, oue, EBd);
- _2.ri = function FBd(a) {
- return KC(I4, kve, 612, a, 0, 1);
- };
- mdb(Tte, "BasicEMap/2", 1034);
- bcb(1035, eie, fie, GBd);
- _2.$b = function HBd() {
- this.a.c.$b();
- };
- _2.Hc = function IBd(a) {
- return qAd(this.a, a);
- };
- _2.Kc = function JBd() {
- return this.a.f == 0 ? (LCd(), KCd.a) : new dCd(this.a);
- };
- _2.Mc = function KBd(a) {
- var b;
- b = this.a.f;
- LAd(this.a, a);
- return this.a.f != b;
- };
- _2.gc = function LBd() {
- return this.a.f;
- };
- mdb(Tte, "BasicEMap/3", 1035);
- bcb(1036, 28, die, MBd);
- _2.$b = function NBd() {
- this.a.c.$b();
- };
- _2.Hc = function OBd(a) {
- return rAd(this.a, a);
- };
- _2.Kc = function PBd() {
- return this.a.f == 0 ? (LCd(), KCd.a) : new fCd(this.a);
- };
- _2.gc = function QBd() {
- return this.a.f;
- };
- mdb(Tte, "BasicEMap/4", 1036);
- bcb(1037, eie, fie, SBd);
- _2.$b = function TBd() {
- this.a.c.$b();
- };
- _2.Hc = function UBd(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- if (this.a.f > 0 && JD(a, 42)) {
- this.a.qj();
- i3 = BD(a, 42);
- h = i3.cd();
- e = h == null ? 0 : tb(h);
- f2 = DAd(this.a, e);
- b = this.a.d[f2];
- if (b) {
- c2 = BD(b.g, 367);
- j = b.i;
- for (g = 0; g < j; ++g) {
- d = c2[g];
- if (d.Sh() == e && d.Fb(i3)) {
- return true;
- }
- }
+ this.applyParsedProperty(ele, parsedProp);
+ diffProp.next = ele.pstyle(prop.name);
+ }
+ this.updateStyleHints(ele);
+ if (updateTransitions) {
+ this.updateTransitions(ele, diffProps, isBypass);
+ }
+ }
+ };
+ styfn$6 = {};
+ styfn$6.getEmSizeInPixels = function() {
+ var px = this.containerCss("font-size");
+ if (px != null) {
+ return parseFloat(px);
+ } else {
+ return 1;
+ }
+ };
+ styfn$6.containerCss = function(propName) {
+ var cy = this._private.cy;
+ var domElement3 = cy.container();
+ var containerWindow = cy.window();
+ if (containerWindow && domElement3 && containerWindow.getComputedStyle) {
+ return containerWindow.getComputedStyle(domElement3).getPropertyValue(propName);
+ }
+ };
+ styfn$5 = {};
+ styfn$5.getRenderedStyle = function(ele, prop) {
+ if (prop) {
+ return this.getStylePropertyValue(ele, prop, true);
+ } else {
+ return this.getRawStyle(ele, true);
+ }
+ };
+ styfn$5.getRawStyle = function(ele, isRenderedVal) {
+ var self2 = this;
+ ele = ele[0];
+ if (ele) {
+ var rstyle = {};
+ for (var i2 = 0; i2 < self2.properties.length; i2++) {
+ var prop = self2.properties[i2];
+ var val = self2.getStylePropertyValue(ele, prop.name, isRenderedVal);
+ if (val != null) {
+ rstyle[prop.name] = val;
+ rstyle[dash2camel(prop.name)] = val;
+ }
+ }
+ return rstyle;
+ }
+ };
+ styfn$5.getIndexedStyle = function(ele, property2, subproperty, index) {
+ var pstyle = ele.pstyle(property2)[subproperty][index];
+ return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property2)[subproperty][0];
+ };
+ styfn$5.getStylePropertyValue = function(ele, propName, isRenderedVal) {
+ var self2 = this;
+ ele = ele[0];
+ if (ele) {
+ var prop = self2.properties[propName];
+ if (prop.alias) {
+ prop = prop.pointsTo;
+ }
+ var type3 = prop.type;
+ var styleProp = ele.pstyle(prop.name);
+ if (styleProp) {
+ var value2 = styleProp.value, units = styleProp.units, strValue = styleProp.strValue;
+ if (isRenderedVal && type3.number && value2 != null && number$1(value2)) {
+ var zoom2 = ele.cy().zoom();
+ var getRenderedValue = /* @__PURE__ */ __name(function getRenderedValue2(val) {
+ return val * zoom2;
+ }, "getRenderedValue");
+ var getValueStringWithUnits = /* @__PURE__ */ __name(function getValueStringWithUnits2(val, units2) {
+ return getRenderedValue(val) + units2;
+ }, "getValueStringWithUnits");
+ var isArrayValue = array2(value2);
+ var haveUnits = isArrayValue ? units.every(function(u2) {
+ return u2 != null;
+ }) : units != null;
+ if (haveUnits) {
+ if (isArrayValue) {
+ return value2.map(function(v3, i2) {
+ return getValueStringWithUnits(v3, units[i2]);
+ }).join(" ");
+ } else {
+ return getValueStringWithUnits(value2, units);
}
- }
- return false;
- };
- _2.Kc = function VBd() {
- return this.a.f == 0 ? (LCd(), KCd.a) : new ZBd(this.a);
- };
- _2.Mc = function WBd(a) {
- return RBd(this, a);
- };
- _2.gc = function XBd() {
- return this.a.f;
- };
- mdb(Tte, "BasicEMap/5", 1037);
- bcb(613, 1, aie, ZBd);
- _2.Nb = function $Bd(a) {
- Rrb(this, a);
- };
- _2.Ob = function _Bd() {
- return this.b != -1;
- };
- _2.Pb = function aCd() {
- var a;
- if (this.f.e != this.c) {
- throw vbb(new Apb());
- }
- if (this.b == -1) {
- throw vbb(new utb());
- }
- this.d = this.a;
- this.e = this.b;
- YBd(this);
- a = BD(this.f.d[this.d].g[this.e], 133);
- return this.vj(a);
- };
- _2.Qb = function bCd() {
- if (this.f.e != this.c) {
- throw vbb(new Apb());
- }
- if (this.e == -1) {
- throw vbb(new Ydb());
- }
- this.f.c.Mc(qud(this.f.d[this.d], this.e));
- this.c = this.f.e;
- this.e = -1;
- this.a == this.d && this.b != -1 && --this.b;
- };
- _2.vj = function cCd(a) {
- return a;
- };
- _2.a = 0;
- _2.b = -1;
- _2.c = 0;
- _2.d = 0;
- _2.e = 0;
- mdb(Tte, "BasicEMap/BasicEMapIterator", 613);
- bcb(1031, 613, aie, dCd);
- _2.vj = function eCd(a) {
- return a.cd();
- };
- mdb(Tte, "BasicEMap/BasicEMapKeyIterator", 1031);
- bcb(1032, 613, aie, fCd);
- _2.vj = function gCd(a) {
- return a.dd();
- };
- mdb(Tte, "BasicEMap/BasicEMapValueIterator", 1032);
- bcb(1030, 1, cie, iCd);
- _2.wc = function oCd(a) {
- stb(this, a);
- };
- _2.yc = function tCd(a, b, c2) {
- return ttb(this, a, b, c2);
- };
- _2.$b = function jCd() {
- this.a.c.$b();
- };
- _2._b = function kCd(a) {
- return hCd(this, a);
- };
- _2.uc = function lCd(a) {
- return rAd(this.a, a);
- };
- _2.vc = function mCd() {
- return yAd(this.a);
- };
- _2.Fb = function nCd(a) {
- return zAd(this.a, a);
- };
- _2.xc = function pCd(a) {
- return AAd(this.a, a);
- };
- _2.Hb = function qCd() {
- return Etd(this.a.c);
- };
- _2.dc = function rCd() {
- return this.a.f == 0;
- };
- _2.ec = function sCd() {
- return EAd(this.a);
- };
- _2.zc = function uCd(a, b) {
- return HAd(this.a, a, b);
- };
- _2.Bc = function vCd(a) {
- return LAd(this.a, a);
- };
- _2.gc = function wCd() {
- return this.a.f;
- };
- _2.Ib = function xCd() {
- return Htd(this.a.c);
- };
- _2.Cc = function yCd() {
- return NAd(this.a);
- };
- mdb(Tte, "BasicEMap/DelegatingMap", 1030);
- bcb(612, 1, { 42: 1, 133: 1, 612: 1 }, zCd);
- _2.Fb = function ACd(a) {
- var b;
- if (JD(a, 42)) {
- b = BD(a, 42);
- return (this.b != null ? pb(this.b, b.cd()) : PD(this.b) === PD(b.cd())) && (this.c != null ? pb(this.c, b.dd()) : PD(this.c) === PD(b.dd()));
} else {
- return false;
- }
- };
- _2.Sh = function BCd() {
- return this.a;
- };
- _2.cd = function CCd() {
- return this.b;
- };
- _2.dd = function DCd() {
- return this.c;
- };
- _2.Hb = function ECd() {
- return this.a ^ (this.c == null ? 0 : tb(this.c));
- };
- _2.Th = function FCd(a) {
- this.a = a;
- };
- _2.Uh = function GCd(a) {
- throw vbb(new gz());
- };
- _2.ed = function HCd(a) {
- var b;
- b = this.c;
- this.c = a;
- return b;
- };
- _2.Ib = function ICd() {
- return this.b + "->" + this.c;
- };
- _2.a = 0;
- var I4 = mdb(Tte, "BasicEMap/EntryImpl", 612);
- bcb(536, 1, {}, JCd);
- mdb(Tte, "BasicEMap/View", 536);
- var KCd;
- bcb(768, 1, {});
- _2.Fb = function ZCd(a) {
- return At((mmb(), jmb), a);
- };
- _2.Hb = function $Cd() {
- return qmb((mmb(), jmb));
- };
- _2.Ib = function _Cd() {
- return Fe((mmb(), jmb));
- };
- mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList", 768);
- bcb(1312, 1, jie, aDd);
- _2.Nb = function cDd(a) {
- Rrb(this, a);
- };
- _2.Rb = function bDd(a) {
- throw vbb(new bgb());
- };
- _2.Ob = function dDd() {
- return false;
- };
- _2.Sb = function eDd() {
- return false;
- };
- _2.Pb = function fDd() {
- throw vbb(new utb());
- };
- _2.Tb = function gDd() {
- return 0;
- };
- _2.Ub = function hDd() {
- throw vbb(new utb());
- };
- _2.Vb = function iDd() {
- return -1;
- };
- _2.Qb = function jDd() {
- throw vbb(new bgb());
- };
- _2.Wb = function kDd(a) {
- throw vbb(new bgb());
- };
- mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList/1", 1312);
- bcb(1310, 768, { 20: 1, 14: 1, 15: 1, 58: 1 }, lDd);
- _2.Vc = function mDd(a, b) {
- OCd();
- };
- _2.Fc = function nDd(a) {
- return PCd();
- };
- _2.Wc = function oDd(a, b) {
- return QCd();
- };
- _2.Gc = function pDd(a) {
- return RCd();
- };
- _2.$b = function qDd() {
- SCd();
- };
- _2.Hc = function rDd(a) {
- return false;
- };
- _2.Ic = function sDd(a) {
- return false;
- };
- _2.Jc = function tDd(a) {
- reb(this, a);
- };
- _2.Xb = function uDd(a) {
- return wmb((mmb(), a)), null;
- };
- _2.Xc = function vDd(a) {
- return -1;
- };
- _2.dc = function wDd() {
- return true;
- };
- _2.Kc = function xDd() {
- return this.a;
- };
- _2.Yc = function yDd() {
- return this.a;
- };
- _2.Zc = function zDd(a) {
- return this.a;
- };
- _2.ii = function ADd(a, b) {
- return TCd();
- };
- _2.ji = function BDd(a, b) {
- UCd();
- };
- _2.Lc = function CDd() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.$c = function DDd(a) {
- return VCd();
- };
- _2.Mc = function EDd(a) {
- return WCd();
- };
- _2._c = function FDd(a, b) {
- return XCd();
- };
- _2.gc = function GDd() {
- return 0;
- };
- _2.ad = function HDd(a) {
- ktb(this, a);
- };
- _2.Nc = function IDd() {
- return new Kub(this, 16);
- };
- _2.Oc = function JDd() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.bd = function KDd(a, b) {
- return mmb(), new Jib(jmb, a, b);
- };
- _2.Pc = function LDd() {
- return De((mmb(), jmb));
- };
- _2.Qc = function MDd(a) {
- return mmb(), Ee(jmb, a);
- };
- mdb(Tte, "ECollections/EmptyUnmodifiableEList", 1310);
- bcb(1311, 768, { 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 }, NDd);
- _2.Vc = function ODd(a, b) {
- OCd();
- };
- _2.Fc = function PDd(a) {
- return PCd();
- };
- _2.Wc = function QDd(a, b) {
- return QCd();
- };
- _2.Gc = function RDd(a) {
- return RCd();
- };
- _2.$b = function SDd() {
- SCd();
- };
- _2.Hc = function TDd(a) {
- return false;
- };
- _2.Ic = function UDd(a) {
- return false;
- };
- _2.Jc = function VDd(a) {
- reb(this, a);
- };
- _2.Xb = function WDd(a) {
- return wmb((mmb(), a)), null;
- };
- _2.Xc = function XDd(a) {
- return -1;
- };
- _2.dc = function YDd() {
- return true;
- };
- _2.Kc = function ZDd() {
- return this.a;
- };
- _2.Yc = function $Dd() {
- return this.a;
- };
- _2.Zc = function _Dd(a) {
- return this.a;
- };
- _2.ii = function bEd(a, b) {
- return TCd();
- };
- _2.ji = function cEd(a, b) {
- UCd();
- };
- _2.Lc = function dEd() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.$c = function eEd(a) {
- return VCd();
- };
- _2.Mc = function fEd(a) {
- return WCd();
- };
- _2._c = function gEd(a, b) {
- return XCd();
- };
- _2.gc = function hEd() {
- return 0;
- };
- _2.ad = function iEd(a) {
- ktb(this, a);
- };
- _2.Nc = function jEd() {
- return new Kub(this, 16);
- };
- _2.Oc = function kEd() {
- return new YAb(null, new Kub(this, 16));
- };
- _2.bd = function lEd(a, b) {
- return mmb(), new Jib(jmb, a, b);
- };
- _2.Pc = function mEd() {
- return De((mmb(), jmb));
- };
- _2.Qc = function nEd(a) {
- return mmb(), Ee(jmb, a);
- };
- _2.sj = function aEd() {
- return mmb(), mmb(), kmb;
- };
- mdb(Tte, "ECollections/EmptyUnmodifiableEMap", 1311);
- var U4 = odb(Tte, "Enumerator");
- var oEd;
- bcb(281, 1, { 281: 1 }, NEd);
- _2.Fb = function REd(a) {
- var b;
- if (this === a)
- return true;
- if (!JD(a, 281))
- return false;
- b = BD(a, 281);
- return this.f == b.f && TEd(this.i, b.i) && SEd(this.a, (this.f & 256) != 0 ? (b.f & 256) != 0 ? b.a : null : (b.f & 256) != 0 ? null : b.a) && SEd(this.d, b.d) && SEd(this.g, b.g) && SEd(this.e, b.e) && KEd(this, b);
- };
- _2.Hb = function WEd() {
- return this.f;
- };
- _2.Ib = function cFd() {
- return LEd(this);
- };
- _2.f = 0;
- var sEd = 0, tEd = 0, uEd = 0, vEd = 0, wEd = 0, xEd = 0, yEd = 0, zEd = 0, AEd = 0, BEd, CEd = 0, DEd = 0, EEd = 0, FEd = 0, GEd, HEd;
- mdb(Tte, "URI", 281);
- bcb(1091, 43, fke, mFd);
- _2.zc = function nFd(a, b) {
- return BD(Shb(this, GD(a), BD(b, 281)), 281);
- };
- mdb(Tte, "URI/URICache", 1091);
- bcb(497, 63, oue, oFd, pFd);
- _2.hi = function qFd() {
- return true;
- };
- mdb(Tte, "UniqueEList", 497);
- bcb(581, 60, Tie, rFd);
- mdb(Tte, "WrappedException", 581);
- var a5 = odb(Vse, nve);
- var v52 = odb(Vse, ove);
- var t5 = odb(Vse, pve);
- var b5 = odb(Vse, qve);
- var d5 = odb(Vse, rve);
- var c5 = odb(Vse, "EClass");
- var f5 = odb(Vse, "EDataType");
- var sFd;
- bcb(1183, 43, fke, vFd);
- _2.xc = function wFd(a) {
- return ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
- };
- mdb(Vse, "EDataType/Internal/ConversionDelegate/Factory/Registry/Impl", 1183);
- var h5 = odb(Vse, "EEnum");
- var g5 = odb(Vse, sve);
- var j5 = odb(Vse, tve);
- var n5 = odb(Vse, uve);
- var xFd;
- var p5 = odb(Vse, vve);
- var q5 = odb(Vse, wve);
- bcb(1029, 1, {}, BFd);
- _2.Ib = function CFd() {
- return "NIL";
- };
- mdb(Vse, "EStructuralFeature/Internal/DynamicValueHolder/1", 1029);
- var DFd;
- bcb(1028, 43, fke, GFd);
- _2.xc = function HFd(a) {
- return ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
- };
- mdb(Vse, "EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl", 1028);
- var u5 = odb(Vse, xve);
- var w5 = odb(Vse, "EValidator/PatternMatcher");
- var IFd;
- var KFd;
- var MFd;
- var OFd, PFd, QFd, RFd, SFd, TFd, UFd, VFd, WFd, XFd, YFd, ZFd, $Fd, _Fd, aGd, bGd, cGd, dGd, eGd, fGd, gGd, hGd, iGd;
- var E9 = odb(yve, "FeatureMap/Entry");
- bcb(535, 1, { 72: 1 }, kGd);
- _2.ak = function lGd() {
- return this.a;
- };
- _2.dd = function mGd() {
- return this.b;
- };
- mdb(qte, "BasicEObjectImpl/1", 535);
- bcb(1027, 1, zve, nGd);
- _2.Wj = function oGd(a) {
- return hid(this.a, this.b, a);
- };
- _2.fj = function pGd() {
- return nid(this.a, this.b);
- };
- _2.Wb = function qGd(a) {
- zid(this.a, this.b, a);
- };
- _2.Xj = function rGd() {
- Did(this.a, this.b);
- };
- mdb(qte, "BasicEObjectImpl/4", 1027);
- bcb(1983, 1, { 108: 1 });
- _2.bk = function uGd(a) {
- this.e = a == 0 ? sGd : KC(SI, Uhe, 1, a, 5, 1);
- };
- _2.Ch = function vGd(a) {
- return this.e[a];
- };
- _2.Dh = function wGd(a, b) {
- this.e[a] = b;
- };
- _2.Eh = function xGd(a) {
- this.e[a] = null;
- };
- _2.ck = function yGd() {
- return this.c;
- };
- _2.dk = function zGd() {
- throw vbb(new bgb());
- };
- _2.ek = function AGd() {
- throw vbb(new bgb());
- };
- _2.fk = function BGd() {
- return this.d;
- };
- _2.gk = function CGd() {
- return this.e != null;
- };
- _2.hk = function DGd(a) {
- this.c = a;
- };
- _2.ik = function EGd(a) {
- throw vbb(new bgb());
- };
- _2.jk = function FGd(a) {
- throw vbb(new bgb());
- };
- _2.kk = function GGd(a) {
- this.d = a;
- };
- var sGd;
- mdb(qte, "BasicEObjectImpl/EPropertiesHolderBaseImpl", 1983);
- bcb(185, 1983, { 108: 1 }, HGd);
- _2.dk = function IGd() {
- return this.a;
- };
- _2.ek = function JGd() {
- return this.b;
- };
- _2.ik = function KGd(a) {
- this.a = a;
- };
- _2.jk = function LGd(a) {
- this.b = a;
- };
- mdb(qte, "BasicEObjectImpl/EPropertiesHolderImpl", 185);
- bcb(506, 97, pte, MGd);
- _2.Kg = function NGd() {
- return this.f;
- };
- _2.Pg = function OGd() {
- return this.k;
- };
- _2.Rg = function PGd(a, b) {
- this.g = a;
- this.i = b;
- };
- _2.Tg = function QGd() {
- return (this.j & 2) == 0 ? this.zh() : this.ph().ck();
- };
- _2.Vg = function RGd() {
- return this.i;
- };
- _2.Mg = function SGd() {
- return (this.j & 1) != 0;
- };
- _2.eh = function TGd() {
- return this.g;
- };
- _2.kh = function UGd() {
- return (this.j & 4) != 0;
- };
- _2.ph = function VGd() {
- return !this.k && (this.k = new HGd()), this.k;
- };
- _2.th = function WGd(a) {
- this.ph().hk(a);
- a ? this.j |= 2 : this.j &= -3;
- };
- _2.vh = function XGd(a) {
- this.ph().jk(a);
- a ? this.j |= 4 : this.j &= -5;
- };
- _2.zh = function YGd() {
- return (NFd(), MFd).S;
- };
- _2.i = 0;
- _2.j = 1;
- mdb(qte, "EObjectImpl", 506);
- bcb(780, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, _Gd);
- _2.Ch = function aHd(a) {
- return this.e[a];
- };
- _2.Dh = function bHd(a, b) {
- this.e[a] = b;
- };
- _2.Eh = function cHd(a) {
- this.e[a] = null;
- };
- _2.Tg = function dHd() {
- return this.d;
- };
- _2.Yg = function eHd(a) {
- return bLd(this.d, a);
- };
- _2.$g = function fHd() {
- return this.d;
- };
- _2.dh = function gHd() {
- return this.e != null;
- };
- _2.ph = function hHd() {
- !this.k && (this.k = new vHd());
- return this.k;
- };
- _2.th = function iHd(a) {
- this.d = a;
- };
- _2.yh = function jHd() {
- var a;
- if (this.e == null) {
- a = aLd(this.d);
- this.e = a == 0 ? ZGd : KC(SI, Uhe, 1, a, 5, 1);
- }
- return this;
- };
- _2.Ah = function kHd() {
- return 0;
- };
- var ZGd;
- mdb(qte, "DynamicEObjectImpl", 780);
- bcb(1376, 780, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, lHd);
- _2.Fb = function nHd(a) {
- return this === a;
- };
- _2.Hb = function rHd() {
- return FCb(this);
- };
- _2.th = function mHd(a) {
- this.d = a;
- this.b = YKd(a, "key");
- this.c = YKd(a, Bte);
- };
- _2.Sh = function oHd() {
- var a;
- if (this.a == -1) {
- a = iid(this, this.b);
- this.a = a == null ? 0 : tb(a);
+ if (isArrayValue) {
+ return value2.map(function(v3) {
+ return string(v3) ? v3 : "" + getRenderedValue(v3);
+ }).join(" ");
+ } else {
+ return "" + getRenderedValue(value2);
+ }
}
- return this.a;
- };
- _2.cd = function pHd() {
- return iid(this, this.b);
- };
- _2.dd = function qHd() {
- return iid(this, this.c);
- };
- _2.Th = function sHd(a) {
- this.a = a;
- };
- _2.Uh = function tHd(a) {
- zid(this, this.b, a);
- };
- _2.ed = function uHd(a) {
- var b;
- b = iid(this, this.c);
- zid(this, this.c, a);
- return b;
- };
- _2.a = 0;
- mdb(qte, "DynamicEObjectImpl/BasicEMapEntry", 1376);
- bcb(1377, 1, { 108: 1 }, vHd);
- _2.bk = function wHd(a) {
- throw vbb(new bgb());
- };
- _2.Ch = function xHd(a) {
- throw vbb(new bgb());
- };
- _2.Dh = function yHd(a, b) {
- throw vbb(new bgb());
- };
- _2.Eh = function zHd(a) {
- throw vbb(new bgb());
- };
- _2.ck = function AHd() {
- throw vbb(new bgb());
- };
- _2.dk = function BHd() {
- return this.a;
- };
- _2.ek = function CHd() {
- return this.b;
- };
- _2.fk = function DHd() {
- return this.c;
- };
- _2.gk = function EHd() {
- throw vbb(new bgb());
- };
- _2.hk = function FHd(a) {
- throw vbb(new bgb());
- };
- _2.ik = function GHd(a) {
- this.a = a;
- };
- _2.jk = function HHd(a) {
- this.b = a;
- };
- _2.kk = function IHd(a) {
- this.c = a;
- };
- mdb(qte, "DynamicEObjectImpl/DynamicEPropertiesHolderImpl", 1377);
- bcb(510, 150, { 105: 1, 92: 1, 90: 1, 590: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 510: 1, 150: 1, 114: 1, 115: 1 }, RHd);
- _2.Qg = function SHd(a) {
- return KHd(this, a);
- };
- _2._g = function THd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.d;
- case 2:
- return c2 ? (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), this.b) : (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), FAd(this.b));
- case 3:
- return MHd(this);
- case 4:
- return !this.a && (this.a = new xMd(m5, this, 4)), this.a;
- case 5:
- return !this.c && (this.c = new _4d(m5, this, 5)), this.c;
- }
- return bid(this, a - aLd((jGd(), OFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? OFd : d), a), b, c2);
- };
- _2.hh = function UHd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 3:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? KHd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return JHd(this, BD(a, 147), c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), OFd)), a, c2);
- };
- _2.jh = function VHd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 2:
- return !this.b && (this.b = new sId((jGd(), fGd), x6, this)), bId(this.b, a, c2);
- case 3:
- return JHd(this, null, c2);
- case 4:
- return !this.a && (this.a = new xMd(m5, this, 4)), Txd(this.a, a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), OFd)), a, c2);
- };
- _2.lh = function WHd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.d != null;
+ } else if (strValue != null) {
+ return strValue;
+ }
+ }
+ return null;
+ }
+ };
+ styfn$5.getAnimationStartStyle = function(ele, aniProps) {
+ var rstyle = {};
+ for (var i2 = 0; i2 < aniProps.length; i2++) {
+ var aniProp = aniProps[i2];
+ var name = aniProp.name;
+ var styleProp = ele.pstyle(name);
+ if (styleProp !== void 0) {
+ if (plainObject(styleProp)) {
+ styleProp = this.parse(name, styleProp.strValue);
+ } else {
+ styleProp = this.parse(name, styleProp);
+ }
+ }
+ if (styleProp) {
+ rstyle[name] = styleProp;
+ }
+ }
+ return rstyle;
+ };
+ styfn$5.getPropsList = function(propsObj) {
+ var self2 = this;
+ var rstyle = [];
+ var style3 = propsObj;
+ var props = self2.properties;
+ if (style3) {
+ var names = Object.keys(style3);
+ for (var i2 = 0; i2 < names.length; i2++) {
+ var name = names[i2];
+ var val = style3[name];
+ var prop = props[name] || props[camel2dash(name)];
+ var styleProp = this.parse(prop.name, val);
+ if (styleProp) {
+ rstyle.push(styleProp);
+ }
+ }
+ }
+ return rstyle;
+ };
+ styfn$5.getNonDefaultPropertiesHash = function(ele, propNames, seed) {
+ var hash = seed.slice();
+ var name, val, strVal, chVal;
+ var i2, j2;
+ for (i2 = 0; i2 < propNames.length; i2++) {
+ name = propNames[i2];
+ val = ele.pstyle(name, false);
+ if (val == null) {
+ continue;
+ } else if (val.pfValue != null) {
+ hash[0] = hashInt(chVal, hash[0]);
+ hash[1] = hashIntAlt(chVal, hash[1]);
+ } else {
+ strVal = val.strValue;
+ for (j2 = 0; j2 < strVal.length; j2++) {
+ chVal = strVal.charCodeAt(j2);
+ hash[0] = hashInt(chVal, hash[0]);
+ hash[1] = hashIntAlt(chVal, hash[1]);
+ }
+ }
+ }
+ return hash;
+ };
+ styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;
+ styfn$4 = {};
+ styfn$4.appendFromJson = function(json3) {
+ var style3 = this;
+ for (var i2 = 0; i2 < json3.length; i2++) {
+ var context = json3[i2];
+ var selector = context.selector;
+ var props = context.style || context.css;
+ var names = Object.keys(props);
+ style3.selector(selector);
+ for (var j2 = 0; j2 < names.length; j2++) {
+ var name = names[j2];
+ var value2 = props[name];
+ style3.css(name, value2);
+ }
+ }
+ return style3;
+ };
+ styfn$4.fromJson = function(json3) {
+ var style3 = this;
+ style3.resetToDefault();
+ style3.appendFromJson(json3);
+ return style3;
+ };
+ styfn$4.json = function() {
+ var json3 = [];
+ for (var i2 = this.defaultLength; i2 < this.length; i2++) {
+ var cxt = this[i2];
+ var selector = cxt.selector;
+ var props = cxt.properties;
+ var css = {};
+ for (var j2 = 0; j2 < props.length; j2++) {
+ var prop = props[j2];
+ css[prop.name] = prop.strValue;
+ }
+ json3.push({
+ selector: !selector ? "core" : selector.toString(),
+ style: css
+ });
+ }
+ return json3;
+ };
+ styfn$3 = {};
+ styfn$3.appendFromString = function(string3) {
+ var self2 = this;
+ var style3 = this;
+ var remaining = "" + string3;
+ var selAndBlockStr;
+ var blockRem;
+ var propAndValStr;
+ remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, "");
+ function removeSelAndBlockFromRemaining() {
+ if (remaining.length > selAndBlockStr.length) {
+ remaining = remaining.substr(selAndBlockStr.length);
+ } else {
+ remaining = "";
+ }
+ }
+ __name(removeSelAndBlockFromRemaining, "removeSelAndBlockFromRemaining");
+ function removePropAndValFromRem() {
+ if (blockRem.length > propAndValStr.length) {
+ blockRem = blockRem.substr(propAndValStr.length);
+ } else {
+ blockRem = "";
+ }
+ }
+ __name(removePropAndValFromRem, "removePropAndValFromRem");
+ for (; ; ) {
+ var nothingLeftToParse = remaining.match(/^\s*$/);
+ if (nothingLeftToParse) {
+ break;
+ }
+ var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);
+ if (!selAndBlock) {
+ warn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + remaining);
+ break;
+ }
+ selAndBlockStr = selAndBlock[0];
+ var selectorStr = selAndBlock[1];
+ if (selectorStr !== "core") {
+ var selector = new Selector(selectorStr);
+ if (selector.invalid) {
+ warn("Skipping parsing of block: Invalid selector found in string stylesheet: " + selectorStr);
+ removeSelAndBlockFromRemaining();
+ continue;
+ }
+ }
+ var blockStr = selAndBlock[2];
+ var invalidBlock = false;
+ blockRem = blockStr;
+ var props = [];
+ for (; ; ) {
+ var _nothingLeftToParse = blockRem.match(/^\s*$/);
+ if (_nothingLeftToParse) {
+ break;
+ }
+ var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);
+ if (!propAndVal) {
+ warn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + blockStr);
+ invalidBlock = true;
+ break;
+ }
+ propAndValStr = propAndVal[0];
+ var propStr = propAndVal[1];
+ var valStr = propAndVal[2];
+ var prop = self2.properties[propStr];
+ if (!prop) {
+ warn("Skipping property: Invalid property name in: " + propAndValStr);
+ removePropAndValFromRem();
+ continue;
+ }
+ var parsedProp = style3.parse(propStr, valStr);
+ if (!parsedProp) {
+ warn("Skipping property: Invalid property definition in: " + propAndValStr);
+ removePropAndValFromRem();
+ continue;
+ }
+ props.push({
+ name: propStr,
+ val: valStr
+ });
+ removePropAndValFromRem();
+ }
+ if (invalidBlock) {
+ removeSelAndBlockFromRemaining();
+ break;
+ }
+ style3.selector(selectorStr);
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var _prop = props[i2];
+ style3.css(_prop.name, _prop.val);
+ }
+ removeSelAndBlockFromRemaining();
+ }
+ return style3;
+ };
+ styfn$3.fromString = function(string3) {
+ var style3 = this;
+ style3.resetToDefault();
+ style3.appendFromString(string3);
+ return style3;
+ };
+ styfn$2 = {};
+ (function() {
+ var number$12 = number6;
+ var rgba4 = rgbaNoBackRefs;
+ var hsla3 = hslaNoBackRefs;
+ var hex3$1 = hex3;
+ var hex6$1 = hex6;
+ var data5 = /* @__PURE__ */ __name(function data6(prefix) {
+ return "^" + prefix + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$";
+ }, "data");
+ var mapData = /* @__PURE__ */ __name(function mapData2(prefix) {
+ var mapArg = number$12 + "|\\w+|" + rgba4 + "|" + hsla3 + "|" + hex3$1 + "|" + hex6$1;
+ return "^" + prefix + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + number$12 + ")\\s*\\,\\s*(" + number$12 + ")\\s*,\\s*(" + mapArg + ")\\s*\\,\\s*(" + mapArg + ")\\)$";
+ }, "mapData");
+ var urlRegexes = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"];
+ styfn$2.types = {
+ time: {
+ number: true,
+ min: 0,
+ units: "s|ms",
+ implicitUnits: "ms"
+ },
+ percent: {
+ number: true,
+ min: 0,
+ max: 100,
+ units: "%",
+ implicitUnits: "%"
+ },
+ percentages: {
+ number: true,
+ min: 0,
+ max: 100,
+ units: "%",
+ implicitUnits: "%",
+ multiple: true
+ },
+ zeroOneNumber: {
+ number: true,
+ min: 0,
+ max: 1,
+ unitless: true
+ },
+ zeroOneNumbers: {
+ number: true,
+ min: 0,
+ max: 1,
+ unitless: true,
+ multiple: true
+ },
+ nOneOneNumber: {
+ number: true,
+ min: -1,
+ max: 1,
+ unitless: true
+ },
+ nonNegativeInt: {
+ number: true,
+ min: 0,
+ integer: true,
+ unitless: true
+ },
+ nonNegativeNumber: {
+ number: true,
+ min: 0,
+ unitless: true
+ },
+ position: {
+ enums: ["parent", "origin"]
+ },
+ nodeSize: {
+ number: true,
+ min: 0,
+ enums: ["label"]
+ },
+ number: {
+ number: true,
+ unitless: true
+ },
+ numbers: {
+ number: true,
+ unitless: true,
+ multiple: true
+ },
+ positiveNumber: {
+ number: true,
+ unitless: true,
+ min: 0,
+ strictMin: true
+ },
+ size: {
+ number: true,
+ min: 0
+ },
+ bidirectionalSize: {
+ number: true
+ },
+ // allows negative
+ bidirectionalSizeMaybePercent: {
+ number: true,
+ allowPercent: true
+ },
+ // allows negative
+ bidirectionalSizes: {
+ number: true,
+ multiple: true
+ },
+ // allows negative
+ sizeMaybePercent: {
+ number: true,
+ min: 0,
+ allowPercent: true
+ },
+ axisDirection: {
+ enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"]
+ },
+ paddingRelativeTo: {
+ enums: ["width", "height", "average", "min", "max"]
+ },
+ bgWH: {
+ number: true,
+ min: 0,
+ allowPercent: true,
+ enums: ["auto"],
+ multiple: true
+ },
+ bgPos: {
+ number: true,
+ allowPercent: true,
+ multiple: true
+ },
+ bgRelativeTo: {
+ enums: ["inner", "include-padding"],
+ multiple: true
+ },
+ bgRepeat: {
+ enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"],
+ multiple: true
+ },
+ bgFit: {
+ enums: ["none", "contain", "cover"],
+ multiple: true
+ },
+ bgCrossOrigin: {
+ enums: ["anonymous", "use-credentials", "null"],
+ multiple: true
+ },
+ bgClip: {
+ enums: ["none", "node"],
+ multiple: true
+ },
+ bgContainment: {
+ enums: ["inside", "over"],
+ multiple: true
+ },
+ color: {
+ color: true
+ },
+ colors: {
+ color: true,
+ multiple: true
+ },
+ fill: {
+ enums: ["solid", "linear-gradient", "radial-gradient"]
+ },
+ bool: {
+ enums: ["yes", "no"]
+ },
+ bools: {
+ enums: ["yes", "no"],
+ multiple: true
+ },
+ lineStyle: {
+ enums: ["solid", "dotted", "dashed"]
+ },
+ lineCap: {
+ enums: ["butt", "round", "square"]
+ },
+ linePosition: {
+ enums: ["center", "inside", "outside"]
+ },
+ lineJoin: {
+ enums: ["round", "bevel", "miter"]
+ },
+ borderStyle: {
+ enums: ["solid", "dotted", "dashed", "double"]
+ },
+ curveStyle: {
+ enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi", "round-segments", "round-taxi"]
+ },
+ radiusType: {
+ enums: ["arc-radius", "influence-radius"],
+ multiple: true
+ },
+ fontFamily: {
+ regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'
+ },
+ fontStyle: {
+ enums: ["italic", "normal", "oblique"]
+ },
+ fontWeight: {
+ enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900]
+ },
+ textDecoration: {
+ enums: ["none", "underline", "overline", "line-through"]
+ },
+ textTransform: {
+ enums: ["none", "uppercase", "lowercase"]
+ },
+ textWrap: {
+ enums: ["none", "wrap", "ellipsis"]
+ },
+ textOverflowWrap: {
+ enums: ["whitespace", "anywhere"]
+ },
+ textBackgroundShape: {
+ enums: ["rectangle", "roundrectangle", "round-rectangle"]
+ },
+ nodeShape: {
+ enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "right-rhomboid", "polygon"]
+ },
+ overlayShape: {
+ enums: ["roundrectangle", "round-rectangle", "ellipse"]
+ },
+ cornerRadius: {
+ number: true,
+ min: 0,
+ units: "px|em",
+ implicitUnits: "px",
+ enums: ["auto"]
+ },
+ compoundIncludeLabels: {
+ enums: ["include", "exclude"]
+ },
+ arrowShape: {
+ enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"]
+ },
+ arrowFill: {
+ enums: ["filled", "hollow"]
+ },
+ arrowWidth: {
+ number: true,
+ units: "%|px|em",
+ implicitUnits: "px",
+ enums: ["match-line"]
+ },
+ display: {
+ enums: ["element", "none"]
+ },
+ visibility: {
+ enums: ["hidden", "visible"]
+ },
+ zCompoundDepth: {
+ enums: ["bottom", "orphan", "auto", "top"]
+ },
+ zIndexCompare: {
+ enums: ["auto", "manual"]
+ },
+ valign: {
+ enums: ["top", "center", "bottom"]
+ },
+ halign: {
+ enums: ["left", "center", "right"]
+ },
+ justification: {
+ enums: ["left", "center", "right", "auto"]
+ },
+ text: {
+ string: true
+ },
+ data: {
+ mapping: true,
+ regex: data5("data")
+ },
+ layoutData: {
+ mapping: true,
+ regex: data5("layoutData")
+ },
+ scratch: {
+ mapping: true,
+ regex: data5("scratch")
+ },
+ mapData: {
+ mapping: true,
+ regex: mapData("mapData")
+ },
+ mapLayoutData: {
+ mapping: true,
+ regex: mapData("mapLayoutData")
+ },
+ mapScratch: {
+ mapping: true,
+ regex: mapData("mapScratch")
+ },
+ fn: {
+ mapping: true,
+ fn: true
+ },
+ url: {
+ regexes: urlRegexes,
+ singleRegexMatchValue: true
+ },
+ urls: {
+ regexes: urlRegexes,
+ singleRegexMatchValue: true,
+ multiple: true
+ },
+ propList: {
+ propList: true
+ },
+ angle: {
+ number: true,
+ units: "deg|rad",
+ implicitUnits: "rad"
+ },
+ textRotation: {
+ number: true,
+ units: "deg|rad",
+ implicitUnits: "rad",
+ enums: ["none", "autorotate"]
+ },
+ polygonPointList: {
+ number: true,
+ multiple: true,
+ evenMultiple: true,
+ min: -1,
+ max: 1,
+ unitless: true
+ },
+ edgeDistances: {
+ enums: ["intersection", "node-position", "endpoints"]
+ },
+ edgeEndpoint: {
+ number: true,
+ multiple: true,
+ units: "%|px|em|deg|rad",
+ implicitUnits: "px",
+ enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"],
+ singleEnum: true,
+ validate: /* @__PURE__ */ __name(function validate2(valArr, unitsArr) {
+ switch (valArr.length) {
case 2:
- return !!this.b && this.b.f != 0;
- case 3:
- return !!MHd(this);
- case 4:
- return !!this.a && this.a.i != 0;
- case 5:
- return !!this.c && this.c.i != 0;
- }
- return cid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a));
- };
- _2.sh = function XHd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
+ return unitsArr[0] !== "deg" && unitsArr[0] !== "rad" && unitsArr[1] !== "deg" && unitsArr[1] !== "rad";
case 1:
- OHd(this, GD(b));
- return;
- case 2:
- !this.b && (this.b = new sId((jGd(), fGd), x6, this));
- cId(this.b, b);
- return;
- case 3:
- NHd(this, BD(b, 147));
- return;
- case 4:
- !this.a && (this.a = new xMd(m5, this, 4));
- Uxd(this.a);
- !this.a && (this.a = new xMd(m5, this, 4));
- ytd(this.a, BD(b, 14));
- return;
- case 5:
- !this.c && (this.c = new _4d(m5, this, 5));
- Uxd(this.c);
- !this.c && (this.c = new _4d(m5, this, 5));
- ytd(this.c, BD(b, 14));
- return;
+ return string(valArr[0]) || unitsArr[0] === "deg" || unitsArr[0] === "rad";
+ default:
+ return false;
}
- did(this, a - aLd((jGd(), OFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? OFd : c2), a), b);
- };
- _2.zh = function YHd() {
- return jGd(), OFd;
- };
- _2.Bh = function ZHd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- PHd(this, null);
- return;
- case 2:
- !this.b && (this.b = new sId((jGd(), fGd), x6, this));
- this.b.c.$b();
- return;
- case 3:
- NHd(this, null);
- return;
- case 4:
- !this.a && (this.a = new xMd(m5, this, 4));
- Uxd(this.a);
- return;
- case 5:
- !this.c && (this.c = new _4d(m5, this, 5));
- Uxd(this.c);
- return;
- }
- eid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a));
- };
- _2.Ib = function $Hd() {
- return QHd(this);
- };
- _2.d = null;
- mdb(qte, "EAnnotationImpl", 510);
- bcb(151, 705, Ave, dId);
- _2.Xh = function eId(a, b) {
- _Hd(this, a, BD(b, 42));
- };
- _2.lk = function fId(a, b) {
- return aId(this, BD(a, 42), b);
- };
- _2.pi = function gId(a) {
- return BD(BD(this.c, 69).pi(a), 133);
- };
- _2.Zh = function hId() {
- return BD(this.c, 69).Zh();
- };
- _2.$h = function iId() {
- return BD(this.c, 69).$h();
- };
- _2._h = function jId(a) {
- return BD(this.c, 69)._h(a);
- };
- _2.mk = function kId(a, b) {
- return bId(this, a, b);
- };
- _2.Wj = function lId(a) {
- return BD(this.c, 76).Wj(a);
- };
- _2.rj = function mId() {
- };
- _2.fj = function nId() {
- return BD(this.c, 76).fj();
- };
- _2.tj = function oId(a, b, c2) {
- var d;
- d = BD(bKd(this.b).Nh().Jh(this.b), 133);
- d.Th(a);
- d.Uh(b);
- d.ed(c2);
- return d;
- };
- _2.uj = function pId() {
- return new W5d(this);
- };
- _2.Wb = function qId(a) {
- cId(this, a);
- };
- _2.Xj = function rId() {
- BD(this.c, 76).Xj();
- };
- mdb(yve, "EcoreEMap", 151);
- bcb(158, 151, Ave, sId);
- _2.qj = function tId() {
- var a, b, c2, d, e, f2;
- if (this.d == null) {
- f2 = KC(y4, jve, 63, 2 * this.f + 1, 0, 1);
- for (c2 = this.c.Kc(); c2.e != c2.i.gc(); ) {
- b = BD(c2.nj(), 133);
- d = b.Sh();
- e = (d & Ohe) % f2.length;
- a = f2[e];
- !a && (a = f2[e] = new W5d(this));
- a.Fc(b);
- }
- this.d = f2;
- }
- };
- mdb(qte, "EAnnotationImpl/1", 158);
- bcb(284, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 284: 1, 114: 1, 115: 1 });
- _2._g = function GId(a, b, c2) {
- var d, e;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 3:
- return Bcb(), (this.Bb & 512) != 0 ? true : false;
- case 4:
- return meb(this.s);
- case 5:
- return meb(this.t);
- case 6:
- return Bcb(), this.$j() ? true : false;
- case 7:
- return Bcb(), e = this.s, e >= 1 ? true : false;
- case 8:
- if (b)
- return wId(this);
- return this.r;
- case 9:
- return this.q;
- }
- return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
- };
- _2.jh = function HId(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 9:
- return vId(this, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
- };
- _2.lh = function IId(a) {
- var b, c2;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return (this.Bb & 256) == 0;
- case 3:
- return (this.Bb & 512) == 0;
- case 4:
- return this.s != 0;
- case 5:
- return this.t != 1;
- case 6:
- return this.$j();
- case 7:
- return c2 = this.s, c2 >= 1;
- case 8:
- return !!this.r && !this.q.e && LQd(this.q).i == 0;
- case 9:
- return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
- }
- return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.sh = function JId(a, b) {
- var c2, d;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- this.Lh(GD(b));
- return;
- case 2:
- BId(this, Ccb(DD(b)));
- return;
- case 3:
- CId(this, Ccb(DD(b)));
- return;
- case 4:
- AId(this, BD(b, 19).a);
- return;
- case 5:
- this.ok(BD(b, 19).a);
- return;
- case 8:
- yId(this, BD(b, 138));
- return;
- case 9:
- d = xId(this, BD(b, 87), null);
- !!d && d.Fi();
- return;
- }
- did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
- };
- _2.zh = function KId() {
- return jGd(), hGd;
- };
- _2.Bh = function LId(a) {
- var b, c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- this.Lh(null);
- return;
- case 2:
- BId(this, true);
- return;
- case 3:
- CId(this, true);
- return;
- case 4:
- AId(this, 0);
- return;
- case 5:
- this.ok(1);
- return;
- case 8:
- yId(this, null);
- return;
- case 9:
- c2 = xId(this, null, null);
- !!c2 && c2.Fi();
- return;
- }
- eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.Gh = function MId() {
- wId(this);
- this.Bb |= 1;
- };
- _2.Yj = function NId() {
- return wId(this);
- };
- _2.Zj = function OId() {
- return this.t;
- };
- _2.$j = function PId() {
- var a;
- return a = this.t, a > 1 || a == -1;
- };
- _2.hi = function QId() {
- return (this.Bb & 512) != 0;
- };
- _2.nk = function RId(a, b) {
- return zId(this, a, b);
- };
- _2.ok = function SId(a) {
- DId(this, a);
- };
- _2.Ib = function TId() {
- return EId(this);
- };
- _2.s = 0;
- _2.t = 1;
- mdb(qte, "ETypedElementImpl", 284);
- bcb(449, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 });
- _2.Qg = function iJd(a) {
- return UId(this, a);
- };
- _2._g = function jJd(a, b, c2) {
- var d, e;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 3:
- return Bcb(), (this.Bb & 512) != 0 ? true : false;
- case 4:
- return meb(this.s);
- case 5:
- return meb(this.t);
- case 6:
- return Bcb(), this.$j() ? true : false;
- case 7:
- return Bcb(), e = this.s, e >= 1 ? true : false;
- case 8:
- if (b)
- return wId(this);
- return this.r;
- case 9:
- return this.q;
- case 10:
- return Bcb(), (this.Bb & zte) != 0 ? true : false;
- case 11:
- return Bcb(), (this.Bb & Dve) != 0 ? true : false;
- case 12:
- return Bcb(), (this.Bb & Rje) != 0 ? true : false;
- case 13:
- return this.j;
- case 14:
- return VId(this);
- case 15:
- return Bcb(), (this.Bb & Cve) != 0 ? true : false;
- case 16:
- return Bcb(), (this.Bb & oie) != 0 ? true : false;
- case 17:
- return WId(this);
- }
- return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
- };
- _2.hh = function kJd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 17:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? UId(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 17, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c2);
- };
- _2.jh = function lJd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 9:
- return vId(this, c2);
- case 17:
- return _hd(this, null, 17, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
- };
- _2.lh = function mJd(a) {
- var b, c2;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return (this.Bb & 256) == 0;
- case 3:
- return (this.Bb & 512) == 0;
- case 4:
- return this.s != 0;
- case 5:
- return this.t != 1;
- case 6:
- return this.$j();
- case 7:
- return c2 = this.s, c2 >= 1;
- case 8:
- return !!this.r && !this.q.e && LQd(this.q).i == 0;
- case 9:
- return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
- case 10:
- return (this.Bb & zte) == 0;
- case 11:
- return (this.Bb & Dve) != 0;
- case 12:
- return (this.Bb & Rje) != 0;
- case 13:
- return this.j != null;
- case 14:
- return VId(this) != null;
- case 15:
- return (this.Bb & Cve) != 0;
- case 16:
- return (this.Bb & oie) != 0;
- case 17:
- return !!WId(this);
- }
- return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.sh = function nJd(a, b) {
- var c2, d;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- cJd(this, GD(b));
- return;
- case 2:
- BId(this, Ccb(DD(b)));
- return;
- case 3:
- CId(this, Ccb(DD(b)));
- return;
- case 4:
- AId(this, BD(b, 19).a);
- return;
- case 5:
- this.ok(BD(b, 19).a);
- return;
- case 8:
- yId(this, BD(b, 138));
- return;
- case 9:
- d = xId(this, BD(b, 87), null);
- !!d && d.Fi();
- return;
- case 10:
- ZId(this, Ccb(DD(b)));
- return;
- case 11:
- fJd(this, Ccb(DD(b)));
- return;
- case 12:
- dJd(this, Ccb(DD(b)));
- return;
- case 13:
- $Id(this, GD(b));
- return;
- case 15:
- eJd(this, Ccb(DD(b)));
- return;
- case 16:
- aJd(this, Ccb(DD(b)));
- return;
- }
- did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
- };
- _2.zh = function oJd() {
- return jGd(), gGd;
- };
- _2.Bh = function pJd(a) {
- var b, c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
- pnd(this, null);
- return;
- case 2:
- BId(this, true);
- return;
- case 3:
- CId(this, true);
- return;
- case 4:
- AId(this, 0);
- return;
- case 5:
- this.ok(1);
- return;
- case 8:
- yId(this, null);
- return;
- case 9:
- c2 = xId(this, null, null);
- !!c2 && c2.Fi();
- return;
- case 10:
- ZId(this, true);
- return;
- case 11:
- fJd(this, false);
- return;
- case 12:
- dJd(this, false);
- return;
- case 13:
- this.i = null;
- _Id(this, null);
- return;
- case 15:
- eJd(this, false);
- return;
- case 16:
- aJd(this, false);
- return;
- }
- eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.Gh = function qJd() {
- a2d(q1d((O6d(), M6d), this));
- wId(this);
- this.Bb |= 1;
- };
- _2.Gj = function rJd() {
- return this.f;
- };
- _2.zj = function sJd() {
- return VId(this);
- };
- _2.Hj = function tJd() {
- return WId(this);
- };
- _2.Lj = function uJd() {
- return null;
- };
- _2.pk = function vJd() {
- return this.k;
- };
- _2.aj = function wJd() {
- return this.n;
- };
- _2.Mj = function xJd() {
- return XId(this);
- };
- _2.Nj = function yJd() {
- var a, b, c2, d, e, f2, g, h, i3;
- if (!this.p) {
- c2 = WId(this);
- (c2.i == null && TKd(c2), c2.i).length;
- d = this.Lj();
- !!d && aLd(WId(d));
- e = wId(this);
- g = e.Bj();
- a = !g ? null : (g.i & 1) != 0 ? g == sbb ? wI : g == WD ? JI : g == VD ? FI : g == UD ? BI : g == XD ? MI : g == rbb ? UI : g == SD ? xI : yI : g;
- b = VId(this);
- h = e.zj();
- n6d(this);
- (this.Bb & oie) != 0 && (!!(f2 = t1d((O6d(), M6d), c2)) && f2 != this || !!(f2 = _1d(q1d(M6d, this)))) ? this.p = new zVd(this, f2) : this.$j() ? this.rk() ? !d ? (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new KVd(42, this) : this.p = new KVd(0, this) : a == CK ? this.p = new IVd(50, J4, this) : this.sk() ? this.p = new IVd(43, a, this) : this.p = new IVd(1, a, this) : !a ? this.sk() ? this.p = new KVd(44, this) : this.p = new KVd(2, this) : a == CK ? this.p = new IVd(41, J4, this) : this.sk() ? this.p = new IVd(45, a, this) : this.p = new IVd(3, a, this) : (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new LVd(46, this, d) : this.p = new LVd(4, this, d) : this.sk() ? this.p = new JVd(47, a, this, d) : this.p = new JVd(5, a, this, d) : !a ? this.sk() ? this.p = new LVd(48, this, d) : this.p = new LVd(6, this, d) : this.sk() ? this.p = new JVd(49, a, this, d) : this.p = new JVd(7, a, this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & 512) != 0 ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(8, this) : this.p = new IVd(9, a, this) : !a ? this.p = new KVd(10, this) : this.p = new IVd(11, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(12, this) : this.p = new IVd(13, a, this) : !a ? this.p = new KVd(14, this) : this.p = new IVd(15, a, this) : !d ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(16, this) : this.p = new IVd(17, a, this) : !a ? this.p = new KVd(18, this) : this.p = new IVd(19, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(20, this) : this.p = new IVd(21, a, this) : !a ? this.p = new KVd(22, this) : this.p = new IVd(23, a, this) : (i3 = d.t, i3 > 1 || i3 == -1 ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(24, this, d) : this.p = new JVd(25, a, this, d) : !a ? this.p = new LVd(26, this, d) : this.p = new JVd(27, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(28, this, d) : this.p = new JVd(29, a, this, d) : !a ? this.p = new LVd(30, this, d) : this.p = new JVd(31, a, this, d) : this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(32, this, d) : this.p = new JVd(33, a, this, d) : !a ? this.p = new LVd(34, this, d) : this.p = new JVd(35, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(36, this, d) : this.p = new JVd(37, a, this, d) : !a ? this.p = new LVd(38, this, d) : this.p = new JVd(39, a, this, d)) : this.qk() ? this.sk() ? this.p = new kWd(BD(e, 26), this, d) : this.p = new cWd(BD(e, 26), this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new jXd(BD(e, 148), b, h, this) : this.p = new lXd(b, h, this, (CWd(), g == WD ? yWd : g == sbb ? tWd : g == XD ? zWd : g == VD ? xWd : g == UD ? wWd : g == rbb ? BWd : g == SD ? uWd : g == TD ? vWd : AWd)) : !a ? this.p = new cXd(BD(e, 148), b, h, this) : this.p = new eXd(b, h, this, (CWd(), g == WD ? yWd : g == sbb ? tWd : g == XD ? zWd : g == VD ? xWd : g == UD ? wWd : g == rbb ? BWd : g == SD ? uWd : g == TD ? vWd : AWd)) : this.rk() ? !d ? (this.Bb & Cve) != 0 ? this.sk() ? this.p = new FXd(BD(e, 26), this) : this.p = new DXd(BD(e, 26), this) : this.sk() ? this.p = new BXd(BD(e, 26), this) : this.p = new zXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.sk() ? this.p = new NXd(BD(e, 26), this, d) : this.p = new LXd(BD(e, 26), this, d) : this.sk() ? this.p = new JXd(BD(e, 26), this, d) : this.p = new HXd(BD(e, 26), this, d) : this.sk() ? !d ? (this.Bb & Cve) != 0 ? this.p = new RXd(BD(e, 26), this) : this.p = new PXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new VXd(BD(e, 26), this, d) : this.p = new TXd(BD(e, 26), this, d) : !d ? (this.Bb & Cve) != 0 ? this.p = new XXd(BD(e, 26), this) : this.p = new nXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new _Xd(BD(e, 26), this, d) : this.p = new ZXd(BD(e, 26), this, d);
- }
- return this.p;
- };
- _2.Ij = function zJd() {
- return (this.Bb & zte) != 0;
- };
- _2.qk = function AJd() {
- return false;
- };
- _2.rk = function BJd() {
- return false;
- };
- _2.Jj = function CJd() {
- return (this.Bb & oie) != 0;
- };
- _2.Oj = function DJd() {
- return YId(this);
- };
- _2.sk = function EJd() {
+ }, "validate")
+ },
+ easing: {
+ regexes: ["^(spring)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$"],
+ enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"]
+ },
+ gradientDirection: {
+ enums: [
+ "to-bottom",
+ "to-top",
+ "to-left",
+ "to-right",
+ "to-bottom-right",
+ "to-bottom-left",
+ "to-top-right",
+ "to-top-left",
+ "to-right-bottom",
+ "to-left-bottom",
+ "to-right-top",
+ "to-left-top"
+ // different order
+ ]
+ },
+ boundsExpansion: {
+ number: true,
+ multiple: true,
+ min: 0,
+ validate: /* @__PURE__ */ __name(function validate2(valArr) {
+ var length2 = valArr.length;
+ return length2 === 1 || length2 === 2 || length2 === 4;
+ }, "validate")
+ }
+ };
+ var diff2 = {
+ zeroNonZero: /* @__PURE__ */ __name(function zeroNonZero(val1, val2) {
+ if ((val1 == null || val2 == null) && val1 !== val2) {
+ return true;
+ }
+ if (val1 == 0 && val2 != 0) {
+ return true;
+ } else if (val1 != 0 && val2 == 0) {
+ return true;
+ } else {
return false;
- };
- _2.Kj = function FJd() {
- return (this.Bb & Cve) != 0;
- };
- _2.tk = function GJd(a) {
- this.k = a;
- };
- _2.Lh = function HJd(a) {
- cJd(this, a);
- };
- _2.Ib = function IJd() {
- return gJd(this);
- };
- _2.e = false;
- _2.n = 0;
- mdb(qte, "EStructuralFeatureImpl", 449);
- bcb(322, 449, { 105: 1, 92: 1, 90: 1, 34: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 322: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, OJd);
- _2._g = function PJd(a, b, c2) {
- var d, e;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 3:
- return Bcb(), (this.Bb & 512) != 0 ? true : false;
- case 4:
- return meb(this.s);
- case 5:
- return meb(this.t);
- case 6:
- return Bcb(), LJd(this) ? true : false;
- case 7:
- return Bcb(), e = this.s, e >= 1 ? true : false;
- case 8:
- if (b)
- return wId(this);
- return this.r;
- case 9:
- return this.q;
- case 10:
- return Bcb(), (this.Bb & zte) != 0 ? true : false;
- case 11:
- return Bcb(), (this.Bb & Dve) != 0 ? true : false;
- case 12:
- return Bcb(), (this.Bb & Rje) != 0 ? true : false;
- case 13:
- return this.j;
- case 14:
- return VId(this);
- case 15:
- return Bcb(), (this.Bb & Cve) != 0 ? true : false;
- case 16:
- return Bcb(), (this.Bb & oie) != 0 ? true : false;
- case 17:
- return WId(this);
- case 18:
- return Bcb(), (this.Bb & ote) != 0 ? true : false;
- case 19:
- if (b)
- return KJd(this);
- return JJd(this);
- }
- return bid(this, a - aLd((jGd(), PFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? PFd : d), a), b, c2);
- };
- _2.lh = function QJd(a) {
- var b, c2;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return (this.Bb & 256) == 0;
- case 3:
- return (this.Bb & 512) == 0;
- case 4:
- return this.s != 0;
- case 5:
- return this.t != 1;
- case 6:
- return LJd(this);
- case 7:
- return c2 = this.s, c2 >= 1;
- case 8:
- return !!this.r && !this.q.e && LQd(this.q).i == 0;
- case 9:
- return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
- case 10:
- return (this.Bb & zte) == 0;
- case 11:
- return (this.Bb & Dve) != 0;
- case 12:
- return (this.Bb & Rje) != 0;
- case 13:
- return this.j != null;
- case 14:
- return VId(this) != null;
- case 15:
- return (this.Bb & Cve) != 0;
- case 16:
- return (this.Bb & oie) != 0;
- case 17:
- return !!WId(this);
- case 18:
- return (this.Bb & ote) != 0;
- case 19:
- return !!JJd(this);
- }
- return cid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a));
- };
- _2.sh = function RJd(a, b) {
- var c2, d;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- cJd(this, GD(b));
- return;
- case 2:
- BId(this, Ccb(DD(b)));
- return;
- case 3:
- CId(this, Ccb(DD(b)));
- return;
- case 4:
- AId(this, BD(b, 19).a);
- return;
- case 5:
- NJd(this, BD(b, 19).a);
- return;
- case 8:
- yId(this, BD(b, 138));
- return;
- case 9:
- d = xId(this, BD(b, 87), null);
- !!d && d.Fi();
- return;
- case 10:
- ZId(this, Ccb(DD(b)));
- return;
- case 11:
- fJd(this, Ccb(DD(b)));
- return;
- case 12:
- dJd(this, Ccb(DD(b)));
- return;
- case 13:
- $Id(this, GD(b));
- return;
- case 15:
- eJd(this, Ccb(DD(b)));
- return;
- case 16:
- aJd(this, Ccb(DD(b)));
- return;
- case 18:
- MJd(this, Ccb(DD(b)));
- return;
- }
- did(this, a - aLd((jGd(), PFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? PFd : c2), a), b);
- };
- _2.zh = function SJd() {
- return jGd(), PFd;
- };
- _2.Bh = function TJd(a) {
- var b, c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
- pnd(this, null);
- return;
- case 2:
- BId(this, true);
- return;
- case 3:
- CId(this, true);
- return;
- case 4:
- AId(this, 0);
- return;
- case 5:
- this.b = 0;
- DId(this, 1);
- return;
- case 8:
- yId(this, null);
- return;
- case 9:
- c2 = xId(this, null, null);
- !!c2 && c2.Fi();
- return;
- case 10:
- ZId(this, true);
- return;
- case 11:
- fJd(this, false);
- return;
- case 12:
- dJd(this, false);
- return;
- case 13:
- this.i = null;
- _Id(this, null);
- return;
- case 15:
- eJd(this, false);
- return;
- case 16:
- aJd(this, false);
- return;
- case 18:
- MJd(this, false);
- return;
- }
- eid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a));
- };
- _2.Gh = function UJd() {
- KJd(this);
- a2d(q1d((O6d(), M6d), this));
- wId(this);
- this.Bb |= 1;
- };
- _2.$j = function VJd() {
- return LJd(this);
- };
- _2.nk = function WJd(a, b) {
- this.b = 0;
- this.a = null;
- return zId(this, a, b);
- };
- _2.ok = function XJd(a) {
- NJd(this, a);
- };
- _2.Ib = function YJd() {
- var a;
- if ((this.Db & 64) != 0)
- return gJd(this);
- a = new Jfb(gJd(this));
- a.a += " (iD: ";
- Ffb(a, (this.Bb & ote) != 0);
- a.a += ")";
- return a.a;
- };
- _2.b = 0;
- mdb(qte, "EAttributeImpl", 322);
- bcb(351, 438, { 105: 1, 92: 1, 90: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 });
- _2.uk = function nKd(a) {
- return a.Tg() == this;
- };
- _2.Qg = function oKd(a) {
- return aKd(this, a);
- };
- _2.Rg = function pKd(a, b) {
- this.w = null;
- this.Db = b << 16 | this.Db & 255;
- this.Cb = a;
- };
- _2._g = function qKd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return this.D != null ? this.D : this.B;
- case 3:
- return dKd(this);
- case 4:
- return this.zj();
- case 5:
- return this.F;
- case 6:
- if (b)
- return bKd(this);
- return ZJd(this);
- case 7:
- return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
- }
- return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
- };
- _2.hh = function rKd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 6:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? aKd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 6, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c2);
- };
- _2.jh = function sKd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 6:
- return _hd(this, null, 6, c2);
- case 7:
- return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
- };
- _2.lh = function tKd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return this.D != null && this.D == this.F;
- case 3:
- return !!dKd(this);
- case 4:
- return this.zj() != null;
- case 5:
- return this.F != null && this.F != this.D && this.F != this.B;
- case 6:
- return !!ZJd(this);
- case 7:
- return !!this.A && this.A.i != 0;
- }
- return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.sh = function uKd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- lKd(this, GD(b));
- return;
- case 2:
- iKd(this, GD(b));
- return;
- case 5:
- kKd(this, GD(b));
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- !this.A && (this.A = new K4d(u5, this, 7));
- ytd(this.A, BD(b, 14));
- return;
- }
- did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
- };
- _2.zh = function vKd() {
- return jGd(), RFd;
- };
- _2.Bh = function wKd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
- pnd(this, null);
- return;
- case 2:
- $Jd(this, null);
- _Jd(this, this.D);
- return;
- case 5:
- kKd(this, null);
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- return;
- }
- eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.yj = function xKd() {
- var a;
- return this.G == -1 && (this.G = (a = bKd(this), a ? HLd(a.Mh(), this) : -1)), this.G;
- };
- _2.zj = function yKd() {
- return null;
- };
- _2.Aj = function zKd() {
- return bKd(this);
- };
- _2.vk = function AKd() {
- return this.v;
- };
- _2.Bj = function BKd() {
- return dKd(this);
- };
- _2.Cj = function CKd() {
- return this.D != null ? this.D : this.B;
- };
- _2.Dj = function DKd() {
- return this.F;
- };
- _2.wj = function EKd(a) {
- return fKd(this, a);
- };
- _2.wk = function FKd(a) {
- this.v = a;
- };
- _2.xk = function GKd(a) {
- gKd(this, a);
- };
- _2.yk = function HKd(a) {
- this.C = a;
- };
- _2.Lh = function IKd(a) {
- lKd(this, a);
- };
- _2.Ib = function JKd() {
- return mKd(this);
- };
- _2.C = null;
- _2.D = null;
- _2.G = -1;
- mdb(qte, "EClassifierImpl", 351);
- bcb(88, 351, { 105: 1, 92: 1, 90: 1, 26: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 88: 1, 351: 1, 150: 1, 473: 1, 114: 1, 115: 1, 676: 1 }, hLd);
- _2.uk = function iLd(a) {
- return dLd(this, a.Tg());
- };
- _2._g = function jLd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return this.D != null ? this.D : this.B;
- case 3:
- return dKd(this);
- case 4:
- return null;
- case 5:
- return this.F;
- case 6:
- if (b)
- return bKd(this);
- return ZJd(this);
- case 7:
- return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
- case 8:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 9:
- return Bcb(), (this.Bb & 512) != 0 ? true : false;
- case 10:
- return _Kd(this);
- case 11:
- return !this.q && (this.q = new cUd(n5, this, 11, 10)), this.q;
- case 12:
- return OKd(this);
- case 13:
- return SKd(this);
- case 14:
- return SKd(this), this.r;
- case 15:
- return OKd(this), this.k;
- case 16:
- return PKd(this);
- case 17:
- return RKd(this);
- case 18:
- return TKd(this);
- case 19:
- return UKd(this);
- case 20:
- return OKd(this), this.o;
- case 21:
- return !this.s && (this.s = new cUd(t5, this, 21, 17)), this.s;
- case 22:
- return VKd(this);
- case 23:
- return QKd(this);
- }
- return bid(this, a - aLd((jGd(), QFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? QFd : d), a), b, c2);
- };
- _2.hh = function kLd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 6:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? aKd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 6, c2);
- case 11:
- return !this.q && (this.q = new cUd(n5, this, 11, 10)), Sxd(this.q, a, c2);
- case 21:
- return !this.s && (this.s = new cUd(t5, this, 21, 17)), Sxd(this.s, a, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), QFd)), a, c2);
- };
- _2.jh = function lLd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 6:
- return _hd(this, null, 6, c2);
- case 7:
- return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c2);
- case 11:
- return !this.q && (this.q = new cUd(n5, this, 11, 10)), Txd(this.q, a, c2);
- case 21:
- return !this.s && (this.s = new cUd(t5, this, 21, 17)), Txd(this.s, a, c2);
- case 22:
- return Txd(VKd(this), a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), QFd)), a, c2);
- };
- _2.lh = function mLd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return this.D != null && this.D == this.F;
- case 3:
- return !!dKd(this);
- case 4:
- return false;
- case 5:
- return this.F != null && this.F != this.D && this.F != this.B;
- case 6:
- return !!ZJd(this);
- case 7:
- return !!this.A && this.A.i != 0;
- case 8:
- return (this.Bb & 256) != 0;
- case 9:
- return (this.Bb & 512) != 0;
- case 10:
- return !!this.u && VKd(this.u.a).i != 0 && !(!!this.n && FMd(this.n));
- case 11:
- return !!this.q && this.q.i != 0;
- case 12:
- return OKd(this).i != 0;
- case 13:
- return SKd(this).i != 0;
- case 14:
- return SKd(this), this.r.i != 0;
- case 15:
- return OKd(this), this.k.i != 0;
- case 16:
- return PKd(this).i != 0;
- case 17:
- return RKd(this).i != 0;
- case 18:
- return TKd(this).i != 0;
- case 19:
- return UKd(this).i != 0;
- case 20:
- return OKd(this), !!this.o;
- case 21:
- return !!this.s && this.s.i != 0;
- case 22:
- return !!this.n && FMd(this.n);
- case 23:
- return QKd(this).i != 0;
- }
- return cid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a));
- };
- _2.oh = function nLd(a) {
- var b;
- b = this.i == null || !!this.q && this.q.i != 0 ? null : YKd(this, a);
- return b ? b : Bmd(this, a);
- };
- _2.sh = function oLd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- lKd(this, GD(b));
- return;
- case 2:
- iKd(this, GD(b));
- return;
- case 5:
- kKd(this, GD(b));
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- !this.A && (this.A = new K4d(u5, this, 7));
- ytd(this.A, BD(b, 14));
- return;
- case 8:
- eLd(this, Ccb(DD(b)));
- return;
- case 9:
- fLd(this, Ccb(DD(b)));
- return;
- case 10:
- vwd(_Kd(this));
- ytd(_Kd(this), BD(b, 14));
- return;
- case 11:
- !this.q && (this.q = new cUd(n5, this, 11, 10));
- Uxd(this.q);
- !this.q && (this.q = new cUd(n5, this, 11, 10));
- ytd(this.q, BD(b, 14));
- return;
- case 21:
- !this.s && (this.s = new cUd(t5, this, 21, 17));
- Uxd(this.s);
- !this.s && (this.s = new cUd(t5, this, 21, 17));
- ytd(this.s, BD(b, 14));
- return;
- case 22:
- Uxd(VKd(this));
- ytd(VKd(this), BD(b, 14));
- return;
- }
- did(this, a - aLd((jGd(), QFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? QFd : c2), a), b);
- };
- _2.zh = function pLd() {
- return jGd(), QFd;
- };
- _2.Bh = function qLd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
- pnd(this, null);
- return;
- case 2:
- $Jd(this, null);
- _Jd(this, this.D);
- return;
- case 5:
- kKd(this, null);
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- return;
- case 8:
- eLd(this, false);
- return;
- case 9:
- fLd(this, false);
- return;
- case 10:
- !!this.u && vwd(this.u);
- return;
- case 11:
- !this.q && (this.q = new cUd(n5, this, 11, 10));
- Uxd(this.q);
- return;
- case 21:
- !this.s && (this.s = new cUd(t5, this, 21, 17));
- Uxd(this.s);
- return;
- case 22:
- !!this.n && Uxd(this.n);
- return;
- }
- eid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a));
- };
- _2.Gh = function rLd() {
- var a, b;
- OKd(this);
- SKd(this);
- PKd(this);
- RKd(this);
- TKd(this);
- UKd(this);
- QKd(this);
- oud(SMd($Kd(this)));
- if (this.s) {
- for (a = 0, b = this.s.i; a < b; ++a) {
- Cmd(qud(this.s, a));
- }
- }
- if (this.q) {
- for (a = 0, b = this.q.i; a < b; ++a) {
- Cmd(qud(this.q, a));
- }
- }
- o1d((O6d(), M6d), this).ne();
- this.Bb |= 1;
- };
- _2.Ib = function sLd() {
- return gLd(this);
- };
- _2.k = null;
- _2.r = null;
- var KKd, LKd, MKd;
- mdb(qte, "EClassImpl", 88);
- bcb(1994, 1993, Ove);
- _2.Vh = function tLd(a, b) {
- return Pxd(this, a, b);
- };
- _2.Wh = function uLd(a) {
- return Pxd(this, this.i, a);
- };
- _2.Xh = function vLd(a, b) {
- Qxd(this, a, b);
- };
- _2.Yh = function wLd(a) {
- Rxd(this, a);
- };
- _2.lk = function xLd(a, b) {
- return Sxd(this, a, b);
- };
- _2.pi = function yLd(a) {
- return nud(this, a);
- };
- _2.mk = function CLd(a, b) {
- return Txd(this, a, b);
- };
- _2.mi = function DLd(a, b) {
- return Zxd(this, a, b);
- };
- _2.Zh = function zLd() {
- return new $yd(this);
- };
- _2.$h = function ALd() {
- return new bzd(this);
- };
- _2._h = function BLd(a) {
- return ztd(this, a);
- };
- mdb(yve, "NotifyingInternalEListImpl", 1994);
- bcb(622, 1994, Pve);
- _2.Hc = function NLd(a) {
- return ELd(this, a);
- };
- _2.Zi = function OLd(a, b, c2, d, e) {
- return FLd(this, a, b, c2, d, e);
- };
- _2.$i = function PLd(a) {
- GLd(this, a);
- };
- _2.Wj = function QLd(a) {
- return this;
- };
- _2.ak = function RLd() {
- return XKd(this.e.Tg(), this.aj());
- };
- _2._i = function SLd() {
- return this.ak();
- };
- _2.aj = function TLd() {
- return bLd(this.e.Tg(), this.ak());
- };
- _2.zk = function ULd() {
- return BD(this.ak().Yj(), 26).Bj();
- };
- _2.Ak = function VLd() {
- return zUd(BD(this.ak(), 18)).n;
- };
- _2.Ai = function WLd() {
- return this.e;
- };
- _2.Bk = function XLd() {
- return true;
- };
- _2.Ck = function YLd() {
- return false;
- };
- _2.Dk = function ZLd() {
- return false;
- };
- _2.Ek = function $Ld() {
- return false;
- };
- _2.Xc = function _Ld(a) {
- return HLd(this, a);
- };
- _2.cj = function aMd(a, b) {
- var c2;
- return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.gh(this.e, this.Ak(), this.zk(), b) : c2.gh(this.e, bLd(c2.Tg(), zUd(BD(this.ak(), 18))), null, b) : c2.gh(this.e, -1 - this.aj(), null, b);
- };
- _2.dj = function bMd(a, b) {
- var c2;
- return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.ih(this.e, this.Ak(), this.zk(), b) : c2.ih(this.e, bLd(c2.Tg(), zUd(BD(this.ak(), 18))), null, b) : c2.ih(this.e, -1 - this.aj(), null, b);
- };
- _2.rk = function cMd() {
- return false;
- };
- _2.Fk = function dMd() {
- return true;
- };
- _2.wj = function eMd(a) {
- return qEd(this.d, a);
- };
- _2.ej = function fMd() {
- return oid(this.e);
- };
- _2.fj = function gMd() {
- return this.i != 0;
- };
- _2.ri = function hMd(a) {
- return izd(this.d, a);
- };
- _2.li = function iMd(a, b) {
- return this.Fk() && this.Ek() ? ILd(this, a, BD(b, 56)) : b;
- };
- _2.Gk = function jMd(a) {
- return a.kh() ? xid(this.e, BD(a, 49)) : a;
- };
- _2.Wb = function kMd(a) {
- JLd(this, a);
- };
- _2.Pc = function lMd() {
- return KLd(this);
- };
- _2.Qc = function mMd(a) {
- var b;
- if (this.Ek()) {
- for (b = this.i - 1; b >= 0; --b) {
- qud(this, b);
- }
- }
- return xud(this, a);
- };
- _2.Xj = function nMd() {
- Uxd(this);
- };
- _2.oi = function oMd(a, b) {
- return LLd(this, a, b);
- };
- mdb(yve, "EcoreEList", 622);
- bcb(496, 622, Pve, pMd);
- _2.ai = function qMd() {
- return false;
- };
- _2.aj = function rMd() {
- return this.c;
- };
- _2.bj = function sMd() {
- return false;
- };
- _2.Fk = function tMd() {
- return true;
- };
- _2.hi = function uMd() {
- return true;
- };
- _2.li = function vMd(a, b) {
- return b;
- };
- _2.ni = function wMd() {
- return false;
- };
- _2.c = 0;
- mdb(yve, "EObjectEList", 496);
- bcb(85, 496, Pve, xMd);
- _2.bj = function yMd() {
- return true;
- };
- _2.Dk = function zMd() {
- return false;
- };
- _2.rk = function AMd() {
- return true;
- };
- mdb(yve, "EObjectContainmentEList", 85);
- bcb(545, 85, Pve, BMd);
- _2.ci = function CMd() {
- this.b = true;
- };
- _2.fj = function DMd() {
- return this.b;
- };
- _2.Xj = function EMd() {
- var a;
- Uxd(this);
- if (oid(this.e)) {
- a = this.b;
- this.b = false;
- Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
- } else {
- this.b = false;
- }
- };
- _2.b = false;
- mdb(yve, "EObjectContainmentEList/Unsettable", 545);
- bcb(1140, 545, Pve, JMd);
- _2.ii = function NMd(a, b) {
- var c2, d;
- return c2 = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), SFd), meb(b), (d = c2.c, JD(d, 88) ? BD(d, 26) : _Fd), a)), c2;
- };
- _2.jj = function OMd(a, b) {
- return GMd(this, BD(a, 87), b);
- };
- _2.kj = function PMd(a, b) {
- return HMd(this, BD(a, 87), b);
- };
- _2.lj = function QMd(a, b, c2) {
- return IMd(this, BD(a, 87), BD(b, 87), c2);
- };
- _2.Zi = function KMd(a, b, c2, d, e) {
- switch (a) {
- case 3: {
- return FLd(this, a, b, c2, d, this.i > 1);
- }
- case 5: {
- return FLd(this, a, b, c2, d, this.i - BD(c2, 15).gc() > 0);
- }
- default: {
- return new pSd(this.e, a, this.c, b, c2, d, true);
- }
- }
- };
- _2.ij = function LMd() {
- return true;
- };
- _2.fj = function MMd() {
- return FMd(this);
- };
- _2.Xj = function RMd() {
- Uxd(this);
- };
- mdb(qte, "EClassImpl/1", 1140);
- bcb(1154, 1153, dve);
- _2.ui = function VMd(a) {
- var b, c2, d, e, f2, g, h;
- c2 = a.xi();
- if (c2 != 8) {
- d = UMd(a);
- if (d == 0) {
- switch (c2) {
- case 1:
- case 9: {
- h = a.Bi();
- if (h != null) {
- b = $Kd(BD(h, 473));
- !b.c && (b.c = new xYd());
- Ftd(b.c, a.Ai());
- }
- g = a.zi();
- if (g != null) {
- e = BD(g, 473);
- if ((e.Bb & 1) == 0) {
- b = $Kd(e);
- !b.c && (b.c = new xYd());
- wtd(b.c, BD(a.Ai(), 26));
- }
- }
- break;
- }
- case 3: {
- g = a.zi();
- if (g != null) {
- e = BD(g, 473);
- if ((e.Bb & 1) == 0) {
- b = $Kd(e);
- !b.c && (b.c = new xYd());
- wtd(b.c, BD(a.Ai(), 26));
- }
- }
- break;
- }
- case 5: {
- g = a.zi();
- if (g != null) {
- for (f2 = BD(g, 14).Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 473);
- if ((e.Bb & 1) == 0) {
- b = $Kd(e);
- !b.c && (b.c = new xYd());
- wtd(b.c, BD(a.Ai(), 26));
- }
- }
- }
- break;
- }
- case 4: {
- h = a.Bi();
- if (h != null) {
- e = BD(h, 473);
- if ((e.Bb & 1) == 0) {
- b = $Kd(e);
- !b.c && (b.c = new xYd());
- Ftd(b.c, a.Ai());
- }
- }
- break;
- }
- case 6: {
- h = a.Bi();
- if (h != null) {
- for (f2 = BD(h, 14).Kc(); f2.Ob(); ) {
- e = BD(f2.Pb(), 473);
- if ((e.Bb & 1) == 0) {
- b = $Kd(e);
- !b.c && (b.c = new xYd());
- Ftd(b.c, a.Ai());
- }
- }
- }
- break;
- }
- }
- }
- this.Hk(d);
- }
- };
- _2.Hk = function WMd(a) {
- TMd(this, a);
- };
- _2.b = 63;
- mdb(qte, "ESuperAdapter", 1154);
- bcb(1155, 1154, dve, YMd);
- _2.Hk = function ZMd(a) {
- XMd(this, a);
- };
- mdb(qte, "EClassImpl/10", 1155);
- bcb(1144, 696, Pve);
- _2.Vh = function $Md(a, b) {
- return iud(this, a, b);
- };
- _2.Wh = function _Md(a) {
- return jud(this, a);
- };
- _2.Xh = function aNd(a, b) {
- kud(this, a, b);
- };
- _2.Yh = function bNd(a) {
- lud(this, a);
- };
- _2.pi = function dNd(a) {
- return nud(this, a);
- };
- _2.mi = function lNd(a, b) {
- return uud(this, a, b);
- };
- _2.lk = function cNd(a, b) {
- throw vbb(new bgb());
- };
- _2.Zh = function eNd() {
- return new $yd(this);
- };
- _2.$h = function fNd() {
- return new bzd(this);
- };
- _2._h = function gNd(a) {
- return ztd(this, a);
- };
- _2.mk = function hNd(a, b) {
- throw vbb(new bgb());
- };
- _2.Wj = function iNd(a) {
- return this;
- };
- _2.fj = function jNd() {
- return this.i != 0;
- };
- _2.Wb = function kNd(a) {
- throw vbb(new bgb());
- };
- _2.Xj = function mNd() {
- throw vbb(new bgb());
- };
- mdb(yve, "EcoreEList/UnmodifiableEList", 1144);
- bcb(319, 1144, Pve, nNd);
- _2.ni = function oNd() {
- return false;
- };
- mdb(yve, "EcoreEList/UnmodifiableEList/FastCompare", 319);
- bcb(1147, 319, Pve, rNd);
- _2.Xc = function sNd(a) {
- var b, c2, d;
- if (JD(a, 170)) {
- b = BD(a, 170);
- c2 = b.aj();
- if (c2 != -1) {
- for (d = this.i; c2 < d; ++c2) {
- if (PD(this.g[c2]) === PD(a)) {
- return c2;
- }
- }
- }
- }
- return -1;
- };
- mdb(qte, "EClassImpl/1EAllStructuralFeaturesList", 1147);
- bcb(1141, 497, oue, wNd);
- _2.ri = function xNd(a) {
- return KC(j5, Tve, 87, a, 0, 1);
- };
- _2.ni = function yNd() {
- return false;
- };
- mdb(qte, "EClassImpl/1EGenericSuperTypeEList", 1141);
- bcb(623, 497, oue, zNd);
- _2.ri = function ANd(a) {
- return KC(t5, Mve, 170, a, 0, 1);
- };
- _2.ni = function BNd() {
- return false;
- };
- mdb(qte, "EClassImpl/1EStructuralFeatureUniqueEList", 623);
- bcb(741, 497, oue, CNd);
- _2.ri = function DNd(a) {
- return KC(q5, Mve, 18, a, 0, 1);
- };
- _2.ni = function ENd() {
- return false;
- };
- mdb(qte, "EClassImpl/1ReferenceList", 741);
- bcb(1142, 497, oue, GNd);
- _2.bi = function HNd(a, b) {
- FNd(this, BD(b, 34));
- };
- _2.ri = function INd(a) {
- return KC(b5, Mve, 34, a, 0, 1);
- };
- _2.ni = function JNd() {
- return false;
- };
- mdb(qte, "EClassImpl/2", 1142);
- bcb(1143, 497, oue, KNd);
- _2.ri = function LNd(a) {
- return KC(b5, Mve, 34, a, 0, 1);
- };
- _2.ni = function MNd() {
- return false;
- };
- mdb(qte, "EClassImpl/3", 1143);
- bcb(1145, 319, Pve, PNd);
- _2.Fc = function QNd(a) {
- return NNd(this, BD(a, 34));
- };
- _2.Yh = function RNd(a) {
- ONd(this, BD(a, 34));
- };
- mdb(qte, "EClassImpl/4", 1145);
- bcb(1146, 319, Pve, UNd);
- _2.Fc = function VNd(a) {
- return SNd(this, BD(a, 18));
- };
- _2.Yh = function WNd(a) {
- TNd(this, BD(a, 18));
- };
- mdb(qte, "EClassImpl/5", 1146);
- bcb(1148, 497, oue, XNd);
- _2.ri = function YNd(a) {
- return KC(n5, Nve, 59, a, 0, 1);
- };
- _2.ni = function ZNd() {
- return false;
- };
- mdb(qte, "EClassImpl/6", 1148);
- bcb(1149, 497, oue, $Nd);
- _2.ri = function _Nd(a) {
- return KC(q5, Mve, 18, a, 0, 1);
- };
- _2.ni = function aOd() {
- return false;
- };
- mdb(qte, "EClassImpl/7", 1149);
- bcb(1997, 1996, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 69: 1 });
- _2.Vh = function bOd(a, b) {
- return qwd(this, a, b);
- };
- _2.Wh = function cOd(a) {
- return qwd(this, this.Vi(), a);
- };
- _2.Xh = function dOd(a, b) {
- rwd(this, a, b);
- };
- _2.Yh = function eOd(a) {
- swd(this, a);
- };
- _2.lk = function fOd(a, b) {
- return twd(this, a, b);
- };
- _2.mk = function lOd(a, b) {
- return uwd(this, a, b);
- };
- _2.mi = function mOd(a, b) {
- return wwd(this, a, b);
- };
- _2.pi = function gOd(a) {
- return this.Oi(a);
- };
- _2.Zh = function hOd() {
- return new $yd(this);
- };
- _2.Gi = function iOd() {
- return this.Ji();
- };
- _2.$h = function jOd() {
- return new bzd(this);
- };
- _2._h = function kOd(a) {
- return ztd(this, a);
- };
- mdb(yve, "DelegatingNotifyingInternalEListImpl", 1997);
- bcb(742, 1997, Uve);
- _2.ai = function rOd() {
- var a;
- a = XKd(wjd(this.b), this.aj()).Yj();
- return JD(a, 148) && !JD(a, 457) && (a.Bj().i & 1) == 0;
- };
- _2.Hc = function sOd(a) {
- var b, c2, d, e, f2, g, h, i3;
- if (this.Fk()) {
- i3 = this.Vi();
- if (i3 > 4) {
- if (this.wj(a)) {
- if (this.rk()) {
- d = BD(a, 49);
- c2 = d.Ug();
- h = c2 == this.b && (this.Dk() ? d.Og(d.Vg(), BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj()) == zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n : -1 - d.Vg() == this.aj());
- if (this.Ek() && !h && !c2 && !!d.Zg()) {
- for (e = 0; e < i3; ++e) {
- b = oOd(this, this.Oi(e));
- if (PD(b) === PD(a)) {
- return true;
- }
- }
- }
- return h;
- } else if (this.Dk() && !this.Ck()) {
- f2 = BD(a, 56).ah(zUd(BD(XKd(wjd(this.b), this.aj()), 18)));
- if (PD(f2) === PD(this.b)) {
- return true;
- } else if (f2 == null || !BD(f2, 56).kh()) {
- return false;
- }
- }
- } else {
- return false;
- }
- }
- g = this.Li(a);
- if (this.Ek() && !g) {
- for (e = 0; e < i3; ++e) {
- d = oOd(this, this.Oi(e));
- if (PD(d) === PD(a)) {
- return true;
- }
- }
- }
- return g;
- } else {
- return this.Li(a);
- }
- };
- _2.Zi = function tOd(a, b, c2, d, e) {
- return new pSd(this.b, a, this.aj(), b, c2, d, e);
- };
- _2.$i = function uOd(a) {
- Uhd(this.b, a);
- };
- _2.Wj = function vOd(a) {
- return this;
- };
- _2._i = function wOd() {
- return XKd(wjd(this.b), this.aj());
- };
- _2.aj = function xOd() {
- return bLd(wjd(this.b), XKd(wjd(this.b), this.aj()));
- };
- _2.Ai = function yOd() {
- return this.b;
- };
- _2.Bk = function zOd() {
- return !!XKd(wjd(this.b), this.aj()).Yj().Bj();
- };
- _2.bj = function AOd() {
- var a, b;
- b = XKd(wjd(this.b), this.aj());
- if (JD(b, 99)) {
- a = BD(b, 18);
- return (a.Bb & ote) != 0 || !!zUd(BD(b, 18));
- } else {
- return false;
- }
- };
- _2.Ck = function BOd() {
- var a, b, c2, d;
- b = XKd(wjd(this.b), this.aj());
- if (JD(b, 99)) {
- a = BD(b, 18);
- c2 = zUd(a);
- return !!c2 && (d = c2.t, d > 1 || d == -1);
- } else {
- return false;
- }
- };
- _2.Dk = function COd() {
- var a, b, c2;
- b = XKd(wjd(this.b), this.aj());
- if (JD(b, 99)) {
- a = BD(b, 18);
- c2 = zUd(a);
- return !!c2;
- } else {
- return false;
- }
- };
- _2.Ek = function DOd() {
- var a, b;
- b = XKd(wjd(this.b), this.aj());
- if (JD(b, 99)) {
- a = BD(b, 18);
- return (a.Bb & Tje) != 0;
- } else {
- return false;
- }
- };
- _2.Xc = function EOd(a) {
- var b, c2, d, e;
- d = this.Qi(a);
- if (d >= 0)
- return d;
- if (this.Fk()) {
- for (c2 = 0, e = this.Vi(); c2 < e; ++c2) {
- b = oOd(this, this.Oi(c2));
- if (PD(b) === PD(a)) {
- return c2;
- }
- }
- }
- return -1;
- };
- _2.cj = function FOd(a, b) {
- var c2;
- return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.gh(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c2.gh(this.b, bLd(c2.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c2.gh(this.b, -1 - this.aj(), null, b);
- };
- _2.dj = function GOd(a, b) {
- var c2;
- return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.ih(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c2.ih(this.b, bLd(c2.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c2.ih(this.b, -1 - this.aj(), null, b);
- };
- _2.rk = function HOd() {
- var a, b;
- b = XKd(wjd(this.b), this.aj());
- if (JD(b, 99)) {
- a = BD(b, 18);
- return (a.Bb & ote) != 0;
- } else {
- return false;
- }
- };
- _2.Fk = function IOd() {
- return JD(XKd(wjd(this.b), this.aj()).Yj(), 88);
- };
- _2.wj = function JOd(a) {
- return XKd(wjd(this.b), this.aj()).Yj().wj(a);
- };
- _2.ej = function KOd() {
- return oid(this.b);
- };
- _2.fj = function LOd() {
- return !this.Ri();
- };
- _2.hi = function MOd() {
- return XKd(wjd(this.b), this.aj()).hi();
- };
- _2.li = function NOd(a, b) {
- return nOd(this, a, b);
- };
- _2.Wb = function OOd(a) {
- vwd(this);
- ytd(this, BD(a, 15));
- };
- _2.Pc = function POd() {
- var a;
- if (this.Ek()) {
- for (a = this.Vi() - 1; a >= 0; --a) {
- nOd(this, a, this.Oi(a));
- }
- }
- return this.Wi();
- };
- _2.Qc = function QOd(a) {
- var b;
- if (this.Ek()) {
- for (b = this.Vi() - 1; b >= 0; --b) {
- nOd(this, b, this.Oi(b));
- }
- }
- return this.Xi(a);
- };
- _2.Xj = function ROd() {
- vwd(this);
- };
- _2.oi = function SOd(a, b) {
- return pOd(this, a, b);
- };
- mdb(yve, "DelegatingEcoreEList", 742);
- bcb(1150, 742, Uve, YOd);
- _2.Hi = function _Od(a, b) {
- TOd(this, a, BD(b, 26));
- };
- _2.Ii = function aPd(a) {
- UOd(this, BD(a, 26));
- };
- _2.Oi = function gPd(a) {
- var b, c2;
- return b = BD(qud(VKd(this.a), a), 87), c2 = b.c, JD(c2, 88) ? BD(c2, 26) : (jGd(), _Fd);
- };
- _2.Ti = function lPd(a) {
- var b, c2;
- return b = BD(Xxd(VKd(this.a), a), 87), c2 = b.c, JD(c2, 88) ? BD(c2, 26) : (jGd(), _Fd);
- };
- _2.Ui = function mPd(a, b) {
- return WOd(this, a, BD(b, 26));
- };
- _2.ai = function ZOd() {
- return false;
- };
- _2.Zi = function $Od(a, b, c2, d, e) {
- return null;
- };
- _2.Ji = function bPd() {
- return new EPd(this);
- };
- _2.Ki = function cPd() {
- Uxd(VKd(this.a));
- };
- _2.Li = function dPd(a) {
- return VOd(this, a);
- };
- _2.Mi = function ePd(a) {
- var b, c2;
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = c2.Pb();
- if (!VOd(this, b)) {
- return false;
- }
- }
- return true;
- };
- _2.Ni = function fPd(a) {
- var b, c2, d;
- if (JD(a, 15)) {
- d = BD(a, 15);
- if (d.gc() == VKd(this.a).i) {
- for (b = d.Kc(), c2 = new Fyd(this); b.Ob(); ) {
- if (PD(b.Pb()) !== PD(Dyd(c2))) {
- return false;
- }
- }
- return true;
- }
- }
- return false;
- };
- _2.Pi = function hPd() {
- var a, b, c2, d, e;
- c2 = 1;
- for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 87);
- d = (e = a.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd));
- c2 = 31 * c2 + (!d ? 0 : FCb(d));
- }
- return c2;
- };
- _2.Qi = function iPd(a) {
- var b, c2, d, e;
- d = 0;
- for (c2 = new Fyd(VKd(this.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 87);
- if (PD(a) === PD((e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)))) {
- return d;
- }
- ++d;
- }
- return -1;
- };
- _2.Ri = function jPd() {
- return VKd(this.a).i == 0;
- };
- _2.Si = function kPd() {
- return null;
- };
- _2.Vi = function nPd() {
- return VKd(this.a).i;
- };
- _2.Wi = function oPd() {
- var a, b, c2, d, e, f2;
- f2 = VKd(this.a).i;
- e = KC(SI, Uhe, 1, f2, 5, 1);
- c2 = 0;
- for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 87);
- e[c2++] = (d = a.c, JD(d, 88) ? BD(d, 26) : (jGd(), _Fd));
- }
- return e;
- };
- _2.Xi = function pPd(a) {
- var b, c2, d, e, f2, g, h;
- h = VKd(this.a).i;
- if (a.length < h) {
- e = izd(rb(a).c, h);
- a = e;
- }
- a.length > h && NC(a, h, null);
- d = 0;
- for (c2 = new Fyd(VKd(this.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 87);
- f2 = (g = b.c, JD(g, 88) ? BD(g, 26) : (jGd(), _Fd));
- NC(a, d++, f2);
- }
- return a;
- };
- _2.Yi = function qPd() {
- var a, b, c2, d, e;
- e = new Hfb();
- e.a += "[";
- a = VKd(this.a);
- for (b = 0, d = VKd(this.a).i; b < d; ) {
- Efb(e, xfb((c2 = BD(qud(a, b), 87).c, JD(c2, 88) ? BD(c2, 26) : (jGd(), _Fd))));
- ++b < d && (e.a += She, e);
- }
- e.a += "]";
- return e.a;
- };
- _2.$i = function rPd(a) {
- };
- _2.aj = function sPd() {
- return 10;
- };
- _2.Bk = function tPd() {
- return true;
- };
- _2.bj = function uPd() {
- return false;
- };
- _2.Ck = function vPd() {
- return false;
- };
- _2.Dk = function wPd() {
- return false;
- };
- _2.Ek = function xPd() {
- return true;
- };
- _2.rk = function yPd() {
- return false;
- };
- _2.Fk = function zPd() {
- return true;
- };
- _2.wj = function APd(a) {
- return JD(a, 88);
- };
- _2.fj = function BPd() {
- return cLd(this.a);
- };
- _2.hi = function CPd() {
- return true;
- };
- _2.ni = function DPd() {
- return true;
- };
- mdb(qte, "EClassImpl/8", 1150);
- bcb(1151, 1964, Lie, EPd);
- _2.Zc = function FPd(a) {
- return ztd(this.a, a);
- };
- _2.gc = function GPd() {
- return VKd(this.a.a).i;
- };
- mdb(qte, "EClassImpl/8/1", 1151);
- bcb(1152, 497, oue, HPd);
- _2.ri = function IPd(a) {
- return KC(d5, Uhe, 138, a, 0, 1);
- };
- _2.ni = function JPd() {
- return false;
- };
- mdb(qte, "EClassImpl/9", 1152);
- bcb(1139, 53, gke, KPd);
- mdb(qte, "EClassImpl/MyHashSet", 1139);
- bcb(566, 351, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, MPd);
- _2._g = function NPd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return this.D != null ? this.D : this.B;
- case 3:
- return dKd(this);
- case 4:
- return this.zj();
- case 5:
- return this.F;
- case 6:
- if (b)
- return bKd(this);
- return ZJd(this);
- case 7:
- return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
- case 8:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- }
- return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
- };
- _2.lh = function OPd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return this.D != null && this.D == this.F;
- case 3:
- return !!dKd(this);
- case 4:
- return this.zj() != null;
- case 5:
- return this.F != null && this.F != this.D && this.F != this.B;
- case 6:
- return !!ZJd(this);
- case 7:
- return !!this.A && this.A.i != 0;
- case 8:
- return (this.Bb & 256) == 0;
- }
- return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.sh = function PPd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- lKd(this, GD(b));
- return;
- case 2:
- iKd(this, GD(b));
- return;
- case 5:
- kKd(this, GD(b));
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- !this.A && (this.A = new K4d(u5, this, 7));
- ytd(this.A, BD(b, 14));
- return;
- case 8:
- LPd(this, Ccb(DD(b)));
- return;
- }
- did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
- };
- _2.zh = function QPd() {
- return jGd(), TFd;
- };
- _2.Bh = function RPd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
- pnd(this, null);
- return;
- case 2:
- $Jd(this, null);
- _Jd(this, this.D);
- return;
- case 5:
- kKd(this, null);
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- return;
- case 8:
- LPd(this, true);
- return;
- }
- eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
- };
- _2.Gh = function SPd() {
- o1d((O6d(), M6d), this).ne();
- this.Bb |= 1;
- };
- _2.Fj = function TPd() {
- var a, b, c2;
- if (!this.c) {
- a = l6d(bKd(this));
- if (!a.dc()) {
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = GD(c2.Pb());
- !!Dmd(this, b) && k6d(this);
- }
- }
- }
- return this.b;
- };
- _2.zj = function UPd() {
- var b;
- if (!this.e) {
- b = null;
- try {
- b = dKd(this);
- } catch (a) {
- a = ubb(a);
- if (!JD(a, 102))
- throw vbb(a);
- }
- this.d = null;
- !!b && (b.i & 1) != 0 && (b == sbb ? this.d = (Bcb(), zcb) : b == WD ? this.d = meb(0) : b == VD ? this.d = new Ndb(0) : b == UD ? this.d = 0 : b == XD ? this.d = Aeb(0) : b == rbb ? this.d = Web(0) : b == SD ? this.d = Scb(0) : this.d = bdb(0));
- this.e = true;
- }
- return this.d;
- };
- _2.Ej = function VPd() {
- return (this.Bb & 256) != 0;
- };
- _2.Ik = function WPd(a) {
- a && (this.D = "org.eclipse.emf.common.util.AbstractEnumerator");
- };
- _2.xk = function XPd(a) {
- gKd(this, a);
- this.Ik(a);
- };
- _2.yk = function YPd(a) {
- this.C = a;
- this.e = false;
- };
- _2.Ib = function ZPd() {
- var a;
- if ((this.Db & 64) != 0)
- return mKd(this);
- a = new Jfb(mKd(this));
- a.a += " (serializable: ";
- Ffb(a, (this.Bb & 256) != 0);
- a.a += ")";
- return a.a;
- };
- _2.c = false;
- _2.d = null;
- _2.e = false;
- mdb(qte, "EDataTypeImpl", 566);
- bcb(457, 566, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 671: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 457: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, aQd);
- _2._g = function bQd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return this.D != null ? this.D : this.B;
- case 3:
- return dKd(this);
- case 4:
- return $Pd(this);
- case 5:
- return this.F;
- case 6:
- if (b)
- return bKd(this);
- return ZJd(this);
- case 7:
- return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
- case 8:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 9:
- return !this.a && (this.a = new cUd(g5, this, 9, 5)), this.a;
- }
- return bid(this, a - aLd((jGd(), UFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? UFd : d), a), b, c2);
- };
- _2.hh = function cQd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 6:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? aKd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 6, c2);
- case 9:
- return !this.a && (this.a = new cUd(g5, this, 9, 5)), Sxd(this.a, a, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), UFd)), a, c2);
- };
- _2.jh = function dQd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 6:
- return _hd(this, null, 6, c2);
- case 7:
- return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c2);
- case 9:
- return !this.a && (this.a = new cUd(g5, this, 9, 5)), Txd(this.a, a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), UFd)), a, c2);
- };
- _2.lh = function eQd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return this.D != null && this.D == this.F;
- case 3:
- return !!dKd(this);
- case 4:
- return !!$Pd(this);
- case 5:
- return this.F != null && this.F != this.D && this.F != this.B;
- case 6:
- return !!ZJd(this);
- case 7:
- return !!this.A && this.A.i != 0;
- case 8:
- return (this.Bb & 256) == 0;
- case 9:
- return !!this.a && this.a.i != 0;
- }
- return cid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a));
- };
- _2.sh = function fQd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- lKd(this, GD(b));
- return;
- case 2:
- iKd(this, GD(b));
- return;
- case 5:
- kKd(this, GD(b));
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- !this.A && (this.A = new K4d(u5, this, 7));
- ytd(this.A, BD(b, 14));
- return;
- case 8:
- LPd(this, Ccb(DD(b)));
- return;
- case 9:
- !this.a && (this.a = new cUd(g5, this, 9, 5));
- Uxd(this.a);
- !this.a && (this.a = new cUd(g5, this, 9, 5));
- ytd(this.a, BD(b, 14));
- return;
- }
- did(this, a - aLd((jGd(), UFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? UFd : c2), a), b);
- };
- _2.zh = function gQd() {
- return jGd(), UFd;
- };
- _2.Bh = function hQd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
- pnd(this, null);
- return;
- case 2:
- $Jd(this, null);
- _Jd(this, this.D);
- return;
- case 5:
- kKd(this, null);
- return;
- case 7:
- !this.A && (this.A = new K4d(u5, this, 7));
- Uxd(this.A);
- return;
- case 8:
- LPd(this, true);
- return;
- case 9:
- !this.a && (this.a = new cUd(g5, this, 9, 5));
- Uxd(this.a);
- return;
- }
- eid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a));
- };
- _2.Gh = function iQd() {
- var a, b;
- if (this.a) {
- for (a = 0, b = this.a.i; a < b; ++a) {
- Cmd(qud(this.a, a));
- }
- }
- o1d((O6d(), M6d), this).ne();
- this.Bb |= 1;
- };
- _2.zj = function jQd() {
- return $Pd(this);
- };
- _2.wj = function kQd(a) {
- if (a != null) {
- return true;
- }
- return false;
- };
- _2.Ik = function lQd(a) {
- };
- mdb(qte, "EEnumImpl", 457);
- bcb(573, 438, { 105: 1, 92: 1, 90: 1, 1940: 1, 678: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 573: 1, 150: 1, 114: 1, 115: 1 }, rQd);
- _2.ne = function AQd() {
- return this.zb;
- };
- _2.Qg = function sQd(a) {
- return mQd(this, a);
- };
- _2._g = function tQd(a, b, c2) {
- var d, e;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return meb(this.d);
- case 3:
- return this.b ? this.b : this.a;
- case 4:
- return e = this.c, e == null ? this.zb : e;
- case 5:
- return this.Db >> 16 == 5 ? BD(this.Cb, 671) : null;
- }
- return bid(this, a - aLd((jGd(), VFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? VFd : d), a), b, c2);
- };
- _2.hh = function uQd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 5:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? mQd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 5, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), VFd)), a, c2);
- };
- _2.jh = function vQd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 5:
- return _hd(this, null, 5, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), VFd)), a, c2);
- };
- _2.lh = function wQd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return this.d != 0;
- case 3:
- return !!this.b;
- case 4:
- return this.c != null;
- case 5:
- return !!(this.Db >> 16 == 5 ? BD(this.Cb, 671) : null);
- }
- return cid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a));
- };
- _2.sh = function xQd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- pnd(this, GD(b));
- return;
- case 2:
- qQd(this, BD(b, 19).a);
- return;
- case 3:
- oQd(this, BD(b, 1940));
- return;
- case 4:
- pQd(this, GD(b));
- return;
- }
- did(this, a - aLd((jGd(), VFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? VFd : c2), a), b);
- };
- _2.zh = function yQd() {
- return jGd(), VFd;
- };
- _2.Bh = function zQd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- pnd(this, null);
- return;
- case 2:
- qQd(this, 0);
- return;
- case 3:
- oQd(this, null);
- return;
- case 4:
- pQd(this, null);
- return;
- }
- eid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a));
- };
- _2.Ib = function BQd() {
- var a;
- return a = this.c, a == null ? this.zb : a;
- };
- _2.b = null;
- _2.c = null;
- _2.d = 0;
- mdb(qte, "EEnumLiteralImpl", 573);
- var c6 = odb(qte, "EFactoryImpl/InternalEDateTimeFormat");
- bcb(489, 1, { 2015: 1 }, EQd);
- mdb(qte, "EFactoryImpl/1ClientInternalEDateTimeFormat", 489);
- bcb(241, 115, { 105: 1, 92: 1, 90: 1, 87: 1, 56: 1, 108: 1, 49: 1, 97: 1, 241: 1, 114: 1, 115: 1 }, UQd);
- _2.Sg = function VQd(a, b, c2) {
- var d;
- c2 = _hd(this, a, b, c2);
- if (!!this.e && JD(a, 170)) {
- d = MQd(this, this.e);
- d != this.c && (c2 = QQd(this, d, c2));
- }
- return c2;
- };
- _2._g = function WQd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return this.f;
- case 1:
- return !this.d && (this.d = new xMd(j5, this, 1)), this.d;
- case 2:
- if (b)
- return KQd(this);
- return this.c;
- case 3:
- return this.b;
- case 4:
- return this.e;
- case 5:
- if (b)
- return JQd(this);
- return this.a;
- }
- return bid(this, a - aLd((jGd(), XFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? XFd : d), a), b, c2);
- };
- _2.jh = function XQd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return IQd(this, null, c2);
- case 1:
- return !this.d && (this.d = new xMd(j5, this, 1)), Txd(this.d, a, c2);
- case 3:
- return GQd(this, null, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), XFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), XFd)), a, c2);
- };
- _2.lh = function YQd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.f;
- case 1:
- return !!this.d && this.d.i != 0;
- case 2:
- return !!this.c;
- case 3:
- return !!this.b;
- case 4:
- return !!this.e;
- case 5:
- return !!this.a;
- }
- return cid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a));
- };
- _2.sh = function ZQd(a, b) {
- var c2;
- switch (a) {
- case 0:
- SQd(this, BD(b, 87));
- return;
- case 1:
- !this.d && (this.d = new xMd(j5, this, 1));
- Uxd(this.d);
- !this.d && (this.d = new xMd(j5, this, 1));
- ytd(this.d, BD(b, 14));
- return;
- case 3:
- PQd(this, BD(b, 87));
- return;
- case 4:
- RQd(this, BD(b, 836));
- return;
- case 5:
- NQd(this, BD(b, 138));
- return;
- }
- did(this, a - aLd((jGd(), XFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? XFd : c2), a), b);
- };
- _2.zh = function $Qd() {
- return jGd(), XFd;
- };
- _2.Bh = function _Qd(a) {
- var b;
- switch (a) {
- case 0:
- SQd(this, null);
- return;
- case 1:
- !this.d && (this.d = new xMd(j5, this, 1));
- Uxd(this.d);
- return;
- case 3:
- PQd(this, null);
- return;
- case 4:
- RQd(this, null);
- return;
- case 5:
- NQd(this, null);
- return;
- }
- eid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a));
- };
- _2.Ib = function aRd() {
- var a;
- a = new Wfb(Eid(this));
- a.a += " (expression: ";
- TQd(this, a);
- a.a += ")";
- return a.a;
- };
- var FQd;
- mdb(qte, "EGenericTypeImpl", 241);
- bcb(1969, 1964, Vve);
- _2.Xh = function cRd(a, b) {
- bRd(this, a, b);
- };
- _2.lk = function dRd(a, b) {
- bRd(this, this.gc(), a);
- return b;
- };
- _2.pi = function eRd(a) {
- return Ut(this.Gi(), a);
- };
- _2.Zh = function fRd() {
- return this.$h();
- };
- _2.Gi = function gRd() {
- return new O0d(this);
- };
- _2.$h = function hRd() {
- return this._h(0);
- };
- _2._h = function iRd(a) {
- return this.Gi().Zc(a);
- };
- _2.mk = function jRd(a, b) {
- ze(this, a, true);
- return b;
- };
- _2.ii = function kRd(a, b) {
- var c2, d;
- d = Vt(this, b);
- c2 = this.Zc(a);
- c2.Rb(d);
- return d;
- };
- _2.ji = function lRd(a, b) {
- var c2;
- ze(this, b, true);
- c2 = this.Zc(a);
- c2.Rb(b);
- };
- mdb(yve, "AbstractSequentialInternalEList", 1969);
- bcb(486, 1969, Vve, qRd);
- _2.pi = function rRd(a) {
- return Ut(this.Gi(), a);
- };
- _2.Zh = function sRd() {
- if (this.b == null) {
- return LRd(), LRd(), KRd;
- }
- return this.Jk();
- };
- _2.Gi = function tRd() {
- return new w4d(this.a, this.b);
- };
- _2.$h = function uRd() {
- if (this.b == null) {
- return LRd(), LRd(), KRd;
- }
- return this.Jk();
- };
- _2._h = function vRd(a) {
- var b, c2;
- if (this.b == null) {
- if (a < 0 || a > 1) {
- throw vbb(new qcb(gve + a + ", size=0"));
- }
- return LRd(), LRd(), KRd;
- }
- c2 = this.Jk();
- for (b = 0; b < a; ++b) {
- MRd(c2);
- }
- return c2;
- };
- _2.dc = function wRd() {
- var a, b, c2, d, e, f2;
- if (this.b != null) {
- for (c2 = 0; c2 < this.b.length; ++c2) {
- a = this.b[c2];
- if (!this.Mk() || this.a.mh(a)) {
- f2 = this.a.bh(a, false);
- Q6d();
- if (BD(a, 66).Oj()) {
- b = BD(f2, 153);
- for (d = 0, e = b.gc(); d < e; ++d) {
- if (oRd(b.il(d)) && b.jl(d) != null) {
- return false;
- }
- }
- } else if (a.$j()) {
- if (!BD(f2, 14).dc()) {
- return false;
- }
- } else if (f2 != null) {
- return false;
- }
- }
- }
- }
- return true;
- };
- _2.Kc = function xRd() {
- return pRd(this);
- };
- _2.Zc = function yRd(a) {
- var b, c2;
- if (this.b == null) {
- if (a != 0) {
- throw vbb(new qcb(gve + a + ", size=0"));
- }
- return LRd(), LRd(), KRd;
- }
- c2 = this.Lk() ? this.Kk() : this.Jk();
- for (b = 0; b < a; ++b) {
- MRd(c2);
- }
- return c2;
- };
- _2.ii = function zRd(a, b) {
- throw vbb(new bgb());
- };
- _2.ji = function ARd(a, b) {
- throw vbb(new bgb());
- };
- _2.Jk = function BRd() {
- return new RRd(this.a, this.b);
- };
- _2.Kk = function CRd() {
- return new dSd(this.a, this.b);
- };
- _2.Lk = function DRd() {
- return true;
- };
- _2.gc = function ERd() {
- var a, b, c2, d, e, f2, g;
- e = 0;
- if (this.b != null) {
- for (c2 = 0; c2 < this.b.length; ++c2) {
- a = this.b[c2];
- if (!this.Mk() || this.a.mh(a)) {
- g = this.a.bh(a, false);
- Q6d();
- if (BD(a, 66).Oj()) {
- b = BD(g, 153);
- for (d = 0, f2 = b.gc(); d < f2; ++d) {
- oRd(b.il(d)) && b.jl(d) != null && ++e;
- }
- } else
- a.$j() ? e += BD(g, 14).gc() : g != null && ++e;
- }
- }
- }
- return e;
- };
- _2.Mk = function FRd() {
- return true;
- };
- var mRd;
- mdb(yve, "EContentsEList", 486);
- bcb(1156, 486, Vve, GRd);
- _2.Jk = function HRd() {
- return new hSd(this.a, this.b);
- };
- _2.Kk = function IRd() {
- return new fSd(this.a, this.b);
- };
- _2.Mk = function JRd() {
- return false;
- };
- mdb(qte, "ENamedElementImpl/1", 1156);
- bcb(279, 1, Wve, RRd);
- _2.Nb = function URd(a) {
- Rrb(this, a);
- };
- _2.Rb = function SRd(a) {
- throw vbb(new bgb());
- };
- _2.Nk = function TRd(a) {
- if (this.g != 0 || !!this.e) {
- throw vbb(new Zdb("Iterator already in use or already filtered"));
- }
- this.e = a;
- };
- _2.Ob = function VRd() {
- var a, b, c2, d, e, f2;
- switch (this.g) {
- case 3:
- case 2: {
- return true;
- }
- case 1: {
- return false;
- }
- case -3: {
- !this.p ? ++this.n : this.p.Pb();
- }
- default: {
- if (!this.k || (!this.p ? !NRd(this) : !ORd(this, this.p))) {
- while (this.d < this.c.length) {
- b = this.c[this.d++];
- if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) {
- f2 = this.b.bh(b, this.Lk());
- this.f = (Q6d(), BD(b, 66).Oj());
- if (this.f || b.$j()) {
- if (this.Lk()) {
- d = BD(f2, 15);
- this.k = d;
- } else {
- d = BD(f2, 69);
- this.k = this.j = d;
- }
- if (JD(this.k, 54)) {
- this.p = null;
- this.o = this.k.gc();
- this.n = 0;
- } else {
- this.p = !this.j ? this.k.Yc() : this.j.$h();
- }
- if (!this.p ? NRd(this) : ORd(this, this.p)) {
- e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb();
- if (this.f) {
- a = BD(e, 72);
- a.ak();
- c2 = a.dd();
- this.i = c2;
- } else {
- c2 = e;
- this.i = c2;
- }
- this.g = 3;
- return true;
- }
- } else if (f2 != null) {
- this.k = null;
- this.p = null;
- c2 = f2;
- this.i = c2;
- this.g = 2;
- return true;
- }
- }
- }
- this.k = null;
- this.p = null;
- this.f = false;
- this.g = 1;
- return false;
- } else {
- e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb();
- if (this.f) {
- a = BD(e, 72);
- a.ak();
- c2 = a.dd();
- this.i = c2;
- } else {
- c2 = e;
- this.i = c2;
- }
- this.g = 3;
- return true;
- }
- }
- }
- };
- _2.Sb = function WRd() {
- var a, b, c2, d, e, f2;
- switch (this.g) {
- case -3:
- case -2: {
- return true;
- }
- case -1: {
- return false;
- }
- case 3: {
- !this.p ? --this.n : this.p.Ub();
- }
- default: {
- if (!this.k || (!this.p ? !PRd(this) : !QRd(this, this.p))) {
- while (this.d > 0) {
- b = this.c[--this.d];
- if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) {
- f2 = this.b.bh(b, this.Lk());
- this.f = (Q6d(), BD(b, 66).Oj());
- if (this.f || b.$j()) {
- if (this.Lk()) {
- d = BD(f2, 15);
- this.k = d;
- } else {
- d = BD(f2, 69);
- this.k = this.j = d;
- }
- if (JD(this.k, 54)) {
- this.o = this.k.gc();
- this.n = this.o;
- } else {
- this.p = !this.j ? this.k.Zc(this.k.gc()) : this.j._h(this.k.gc());
- }
- if (!this.p ? PRd(this) : QRd(this, this.p)) {
- e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub();
- if (this.f) {
- a = BD(e, 72);
- a.ak();
- c2 = a.dd();
- this.i = c2;
- } else {
- c2 = e;
- this.i = c2;
- }
- this.g = -3;
- return true;
- }
- } else if (f2 != null) {
- this.k = null;
- this.p = null;
- c2 = f2;
- this.i = c2;
- this.g = -2;
- return true;
- }
- }
- }
- this.k = null;
- this.p = null;
- this.g = -1;
- return false;
- } else {
- e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub();
- if (this.f) {
- a = BD(e, 72);
- a.ak();
- c2 = a.dd();
- this.i = c2;
- } else {
- c2 = e;
- this.i = c2;
- }
- this.g = -3;
- return true;
- }
- }
- }
- };
- _2.Pb = function XRd() {
- return MRd(this);
- };
- _2.Tb = function YRd() {
- return this.a;
- };
- _2.Ub = function ZRd() {
- var a;
- if (this.g < -1 || this.Sb()) {
- --this.a;
- this.g = 0;
- a = this.i;
- this.Sb();
- return a;
- } else {
- throw vbb(new utb());
- }
- };
- _2.Vb = function $Rd() {
- return this.a - 1;
- };
- _2.Qb = function _Rd() {
- throw vbb(new bgb());
- };
- _2.Lk = function aSd() {
- return false;
- };
- _2.Wb = function bSd(a) {
- throw vbb(new bgb());
- };
- _2.Mk = function cSd() {
- return true;
- };
- _2.a = 0;
- _2.d = 0;
- _2.f = false;
- _2.g = 0;
- _2.n = 0;
- _2.o = 0;
- var KRd;
- mdb(yve, "EContentsEList/FeatureIteratorImpl", 279);
- bcb(697, 279, Wve, dSd);
- _2.Lk = function eSd() {
- return true;
- };
- mdb(yve, "EContentsEList/ResolvingFeatureIteratorImpl", 697);
- bcb(1157, 697, Wve, fSd);
- _2.Mk = function gSd() {
- return false;
- };
- mdb(qte, "ENamedElementImpl/1/1", 1157);
- bcb(1158, 279, Wve, hSd);
- _2.Mk = function iSd() {
- return false;
- };
- mdb(qte, "ENamedElementImpl/1/2", 1158);
- bcb(36, 143, fve, lSd, mSd, nSd, oSd, pSd, qSd, rSd, sSd, tSd, uSd, vSd, wSd, xSd, ySd, zSd, ASd, BSd, CSd, DSd, ESd, FSd, GSd, HSd, ISd, JSd);
- _2._i = function KSd() {
- return kSd(this);
- };
- _2.gj = function LSd() {
- var a;
- a = kSd(this);
- if (a) {
- return a.zj();
- }
- return null;
- };
- _2.yi = function MSd(a) {
- this.b == -1 && !!this.a && (this.b = this.c.Xg(this.a.aj(), this.a.Gj()));
- return this.c.Og(this.b, a);
- };
- _2.Ai = function NSd() {
- return this.c;
- };
- _2.hj = function OSd() {
- var a;
- a = kSd(this);
- if (a) {
- return a.Kj();
- }
- return false;
- };
- _2.b = -1;
- mdb(qte, "ENotificationImpl", 36);
- bcb(399, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 59: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 399: 1, 284: 1, 114: 1, 115: 1 }, SSd);
- _2.Qg = function TSd(a) {
- return PSd(this, a);
- };
- _2._g = function USd(a, b, c2) {
- var d, e, f2;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 3:
- return Bcb(), (this.Bb & 512) != 0 ? true : false;
- case 4:
- return meb(this.s);
- case 5:
- return meb(this.t);
- case 6:
- return Bcb(), f2 = this.t, f2 > 1 || f2 == -1 ? true : false;
- case 7:
- return Bcb(), e = this.s, e >= 1 ? true : false;
- case 8:
- if (b)
- return wId(this);
- return this.r;
- case 9:
- return this.q;
- case 10:
- return this.Db >> 16 == 10 ? BD(this.Cb, 26) : null;
- case 11:
- return !this.d && (this.d = new K4d(u5, this, 11)), this.d;
- case 12:
- return !this.c && (this.c = new cUd(p5, this, 12, 10)), this.c;
- case 13:
- return !this.a && (this.a = new fTd(this, this)), this.a;
- case 14:
- return QSd(this);
- }
- return bid(this, a - aLd((jGd(), aGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? aGd : d), a), b, c2);
- };
- _2.hh = function VSd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 10:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? PSd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 10, c2);
- case 12:
- return !this.c && (this.c = new cUd(p5, this, 12, 10)), Sxd(this.c, a, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), aGd)), a, c2);
- };
- _2.jh = function WSd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 9:
- return vId(this, c2);
- case 10:
- return _hd(this, null, 10, c2);
- case 11:
- return !this.d && (this.d = new K4d(u5, this, 11)), Txd(this.d, a, c2);
- case 12:
- return !this.c && (this.c = new cUd(p5, this, 12, 10)), Txd(this.c, a, c2);
- case 14:
- return Txd(QSd(this), a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), aGd)), a, c2);
- };
- _2.lh = function XSd(a) {
- var b, c2, d;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return (this.Bb & 256) == 0;
- case 3:
- return (this.Bb & 512) == 0;
- case 4:
- return this.s != 0;
- case 5:
- return this.t != 1;
- case 6:
- return d = this.t, d > 1 || d == -1;
- case 7:
- return c2 = this.s, c2 >= 1;
- case 8:
- return !!this.r && !this.q.e && LQd(this.q).i == 0;
- case 9:
- return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
- case 10:
- return !!(this.Db >> 16 == 10 ? BD(this.Cb, 26) : null);
- case 11:
- return !!this.d && this.d.i != 0;
- case 12:
- return !!this.c && this.c.i != 0;
- case 13:
- return !!this.a && QSd(this.a.a).i != 0 && !(!!this.b && QTd(this.b));
- case 14:
- return !!this.b && QTd(this.b);
- }
- return cid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a));
- };
- _2.sh = function YSd(a, b) {
- var c2, d;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- pnd(this, GD(b));
- return;
- case 2:
- BId(this, Ccb(DD(b)));
- return;
- case 3:
- CId(this, Ccb(DD(b)));
- return;
- case 4:
- AId(this, BD(b, 19).a);
- return;
- case 5:
- DId(this, BD(b, 19).a);
- return;
- case 8:
- yId(this, BD(b, 138));
- return;
- case 9:
- d = xId(this, BD(b, 87), null);
- !!d && d.Fi();
- return;
- case 11:
- !this.d && (this.d = new K4d(u5, this, 11));
- Uxd(this.d);
- !this.d && (this.d = new K4d(u5, this, 11));
- ytd(this.d, BD(b, 14));
- return;
- case 12:
- !this.c && (this.c = new cUd(p5, this, 12, 10));
- Uxd(this.c);
- !this.c && (this.c = new cUd(p5, this, 12, 10));
- ytd(this.c, BD(b, 14));
- return;
- case 13:
- !this.a && (this.a = new fTd(this, this));
- vwd(this.a);
- !this.a && (this.a = new fTd(this, this));
- ytd(this.a, BD(b, 14));
- return;
- case 14:
- Uxd(QSd(this));
- ytd(QSd(this), BD(b, 14));
- return;
- }
- did(this, a - aLd((jGd(), aGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? aGd : c2), a), b);
- };
- _2.zh = function ZSd() {
- return jGd(), aGd;
- };
- _2.Bh = function $Sd(a) {
- var b, c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- pnd(this, null);
- return;
- case 2:
- BId(this, true);
- return;
- case 3:
- CId(this, true);
- return;
- case 4:
- AId(this, 0);
- return;
- case 5:
- DId(this, 1);
- return;
- case 8:
- yId(this, null);
- return;
- case 9:
- c2 = xId(this, null, null);
- !!c2 && c2.Fi();
- return;
- case 11:
- !this.d && (this.d = new K4d(u5, this, 11));
- Uxd(this.d);
- return;
- case 12:
- !this.c && (this.c = new cUd(p5, this, 12, 10));
- Uxd(this.c);
- return;
- case 13:
- !!this.a && vwd(this.a);
- return;
- case 14:
- !!this.b && Uxd(this.b);
- return;
- }
- eid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a));
- };
- _2.Gh = function _Sd() {
- var a, b;
- if (this.c) {
- for (a = 0, b = this.c.i; a < b; ++a) {
- Cmd(qud(this.c, a));
- }
- }
- wId(this);
- this.Bb |= 1;
- };
- mdb(qte, "EOperationImpl", 399);
- bcb(505, 742, Uve, fTd);
- _2.Hi = function iTd(a, b) {
- aTd(this, a, BD(b, 138));
- };
- _2.Ii = function jTd(a) {
- bTd(this, BD(a, 138));
- };
- _2.Oi = function pTd(a) {
- var b, c2;
- return b = BD(qud(QSd(this.a), a), 87), c2 = b.c, c2 ? c2 : (jGd(), YFd);
- };
- _2.Ti = function uTd(a) {
- var b, c2;
- return b = BD(Xxd(QSd(this.a), a), 87), c2 = b.c, c2 ? c2 : (jGd(), YFd);
- };
- _2.Ui = function vTd(a, b) {
- return dTd(this, a, BD(b, 138));
- };
- _2.ai = function gTd() {
- return false;
- };
- _2.Zi = function hTd(a, b, c2, d, e) {
- return null;
- };
- _2.Ji = function kTd() {
- return new NTd(this);
- };
- _2.Ki = function lTd() {
- Uxd(QSd(this.a));
- };
- _2.Li = function mTd(a) {
- return cTd(this, a);
- };
- _2.Mi = function nTd(a) {
- var b, c2;
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = c2.Pb();
- if (!cTd(this, b)) {
- return false;
- }
- }
- return true;
- };
- _2.Ni = function oTd(a) {
- var b, c2, d;
- if (JD(a, 15)) {
- d = BD(a, 15);
- if (d.gc() == QSd(this.a).i) {
- for (b = d.Kc(), c2 = new Fyd(this); b.Ob(); ) {
- if (PD(b.Pb()) !== PD(Dyd(c2))) {
- return false;
- }
- }
- return true;
- }
- }
- return false;
- };
- _2.Pi = function qTd() {
- var a, b, c2, d, e;
- c2 = 1;
- for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 87);
- d = (e = a.c, e ? e : (jGd(), YFd));
- c2 = 31 * c2 + (!d ? 0 : tb(d));
- }
- return c2;
- };
- _2.Qi = function rTd(a) {
- var b, c2, d, e;
- d = 0;
- for (c2 = new Fyd(QSd(this.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 87);
- if (PD(a) === PD((e = b.c, e ? e : (jGd(), YFd)))) {
- return d;
- }
- ++d;
- }
- return -1;
- };
- _2.Ri = function sTd() {
- return QSd(this.a).i == 0;
- };
- _2.Si = function tTd() {
- return null;
- };
- _2.Vi = function wTd() {
- return QSd(this.a).i;
- };
- _2.Wi = function xTd() {
- var a, b, c2, d, e, f2;
- f2 = QSd(this.a).i;
- e = KC(SI, Uhe, 1, f2, 5, 1);
- c2 = 0;
- for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) {
- a = BD(Dyd(b), 87);
- e[c2++] = (d = a.c, d ? d : (jGd(), YFd));
- }
- return e;
- };
- _2.Xi = function yTd(a) {
- var b, c2, d, e, f2, g, h;
- h = QSd(this.a).i;
- if (a.length < h) {
- e = izd(rb(a).c, h);
- a = e;
- }
- a.length > h && NC(a, h, null);
- d = 0;
- for (c2 = new Fyd(QSd(this.a)); c2.e != c2.i.gc(); ) {
- b = BD(Dyd(c2), 87);
- f2 = (g = b.c, g ? g : (jGd(), YFd));
- NC(a, d++, f2);
- }
- return a;
- };
- _2.Yi = function zTd() {
- var a, b, c2, d, e;
- e = new Hfb();
- e.a += "[";
- a = QSd(this.a);
- for (b = 0, d = QSd(this.a).i; b < d; ) {
- Efb(e, xfb((c2 = BD(qud(a, b), 87).c, c2 ? c2 : (jGd(), YFd))));
- ++b < d && (e.a += She, e);
- }
- e.a += "]";
- return e.a;
- };
- _2.$i = function ATd(a) {
- };
- _2.aj = function BTd() {
- return 13;
- };
- _2.Bk = function CTd() {
- return true;
- };
- _2.bj = function DTd() {
- return false;
- };
- _2.Ck = function ETd() {
- return false;
- };
- _2.Dk = function FTd() {
- return false;
- };
- _2.Ek = function GTd() {
- return true;
- };
- _2.rk = function HTd() {
- return false;
- };
- _2.Fk = function ITd() {
- return true;
- };
- _2.wj = function JTd(a) {
- return JD(a, 138);
- };
- _2.fj = function KTd() {
- return RSd(this.a);
- };
- _2.hi = function LTd() {
- return true;
- };
- _2.ni = function MTd() {
- return true;
- };
- mdb(qte, "EOperationImpl/1", 505);
- bcb(1340, 1964, Lie, NTd);
- _2.Zc = function OTd(a) {
- return ztd(this.a, a);
- };
- _2.gc = function PTd() {
- return QSd(this.a.a).i;
- };
- mdb(qte, "EOperationImpl/1/1", 1340);
- bcb(1341, 545, Pve, UTd);
- _2.ii = function YTd(a, b) {
- var c2, d;
- return c2 = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), bGd), meb(b), (d = c2.c, d ? d : YFd), a)), c2;
- };
- _2.jj = function ZTd(a, b) {
- return RTd(this, BD(a, 87), b);
- };
- _2.kj = function $Td(a, b) {
- return STd(this, BD(a, 87), b);
- };
- _2.lj = function _Td(a, b, c2) {
- return TTd(this, BD(a, 87), BD(b, 87), c2);
- };
- _2.Zi = function VTd(a, b, c2, d, e) {
- switch (a) {
- case 3: {
- return FLd(this, a, b, c2, d, this.i > 1);
- }
- case 5: {
- return FLd(this, a, b, c2, d, this.i - BD(c2, 15).gc() > 0);
- }
- default: {
- return new pSd(this.e, a, this.c, b, c2, d, true);
- }
- }
- };
- _2.ij = function WTd() {
- return true;
- };
- _2.fj = function XTd() {
- return QTd(this);
- };
- _2.Xj = function aUd() {
- Uxd(this);
- };
- mdb(qte, "EOperationImpl/2", 1341);
- bcb(498, 1, { 1938: 1, 498: 1 }, bUd);
- mdb(qte, "EPackageImpl/1", 498);
- bcb(16, 85, Pve, cUd);
- _2.zk = function dUd() {
- return this.d;
- };
- _2.Ak = function eUd() {
- return this.b;
- };
- _2.Dk = function fUd() {
- return true;
- };
- _2.b = 0;
- mdb(yve, "EObjectContainmentWithInverseEList", 16);
- bcb(353, 16, Pve, gUd);
- _2.Ek = function hUd() {
- return true;
- };
- _2.li = function iUd(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectContainmentWithInverseEList/Resolving", 353);
- bcb(298, 353, Pve, jUd);
- _2.ci = function kUd() {
- this.a.tb = null;
- };
- mdb(qte, "EPackageImpl/2", 298);
- bcb(1228, 1, {}, lUd);
- mdb(qte, "EPackageImpl/3", 1228);
- bcb(718, 43, fke, oUd);
- _2._b = function pUd(a) {
- return ND(a) ? Qhb(this, a) : !!irb(this.f, a);
- };
- mdb(qte, "EPackageRegistryImpl", 718);
- bcb(509, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 2017: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 509: 1, 284: 1, 114: 1, 115: 1 }, rUd);
- _2.Qg = function sUd(a) {
- return qUd(this, a);
- };
- _2._g = function tUd(a, b, c2) {
- var d, e, f2;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 3:
- return Bcb(), (this.Bb & 512) != 0 ? true : false;
- case 4:
- return meb(this.s);
- case 5:
- return meb(this.t);
- case 6:
- return Bcb(), f2 = this.t, f2 > 1 || f2 == -1 ? true : false;
- case 7:
- return Bcb(), e = this.s, e >= 1 ? true : false;
- case 8:
- if (b)
- return wId(this);
- return this.r;
- case 9:
- return this.q;
- case 10:
- return this.Db >> 16 == 10 ? BD(this.Cb, 59) : null;
- }
- return bid(this, a - aLd((jGd(), dGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? dGd : d), a), b, c2);
- };
- _2.hh = function uUd(a, b, c2) {
- var d, e, f2;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
- case 10:
- !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? qUd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
- return _hd(this, a, 10, c2);
- }
- return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), dGd)), a, c2);
- };
- _2.jh = function vUd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 9:
- return vId(this, c2);
- case 10:
- return _hd(this, null, 10, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), dGd)), a, c2);
- };
- _2.lh = function wUd(a) {
- var b, c2, d;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return (this.Bb & 256) == 0;
- case 3:
- return (this.Bb & 512) == 0;
- case 4:
- return this.s != 0;
- case 5:
- return this.t != 1;
- case 6:
- return d = this.t, d > 1 || d == -1;
- case 7:
- return c2 = this.s, c2 >= 1;
- case 8:
- return !!this.r && !this.q.e && LQd(this.q).i == 0;
- case 9:
- return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
- case 10:
- return !!(this.Db >> 16 == 10 ? BD(this.Cb, 59) : null);
- }
- return cid(this, a - aLd((jGd(), dGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? dGd : b), a));
- };
- _2.zh = function xUd() {
- return jGd(), dGd;
- };
- mdb(qte, "EParameterImpl", 509);
- bcb(99, 449, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 18: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 99: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, FUd);
- _2._g = function GUd(a, b, c2) {
- var d, e, f2, g;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return Bcb(), (this.Bb & 256) != 0 ? true : false;
- case 3:
- return Bcb(), (this.Bb & 512) != 0 ? true : false;
- case 4:
- return meb(this.s);
- case 5:
- return meb(this.t);
- case 6:
- return Bcb(), g = this.t, g > 1 || g == -1 ? true : false;
- case 7:
- return Bcb(), e = this.s, e >= 1 ? true : false;
- case 8:
- if (b)
- return wId(this);
- return this.r;
- case 9:
- return this.q;
- case 10:
- return Bcb(), (this.Bb & zte) != 0 ? true : false;
- case 11:
- return Bcb(), (this.Bb & Dve) != 0 ? true : false;
- case 12:
- return Bcb(), (this.Bb & Rje) != 0 ? true : false;
- case 13:
- return this.j;
- case 14:
- return VId(this);
- case 15:
- return Bcb(), (this.Bb & Cve) != 0 ? true : false;
- case 16:
- return Bcb(), (this.Bb & oie) != 0 ? true : false;
- case 17:
- return WId(this);
- case 18:
- return Bcb(), (this.Bb & ote) != 0 ? true : false;
- case 19:
- return Bcb(), f2 = zUd(this), !!f2 && (f2.Bb & ote) != 0 ? true : false;
- case 20:
- return Bcb(), (this.Bb & Tje) != 0 ? true : false;
- case 21:
- if (b)
- return zUd(this);
- return this.b;
- case 22:
- if (b)
- return AUd(this);
- return yUd(this);
- case 23:
- return !this.a && (this.a = new _4d(b5, this, 23)), this.a;
- }
- return bid(this, a - aLd((jGd(), eGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? eGd : d), a), b, c2);
- };
- _2.lh = function HUd(a) {
- var b, c2, d, e;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return (this.Bb & 256) == 0;
- case 3:
- return (this.Bb & 512) == 0;
- case 4:
- return this.s != 0;
- case 5:
- return this.t != 1;
- case 6:
- return e = this.t, e > 1 || e == -1;
- case 7:
- return c2 = this.s, c2 >= 1;
- case 8:
- return !!this.r && !this.q.e && LQd(this.q).i == 0;
- case 9:
- return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
- case 10:
- return (this.Bb & zte) == 0;
- case 11:
- return (this.Bb & Dve) != 0;
- case 12:
- return (this.Bb & Rje) != 0;
- case 13:
- return this.j != null;
- case 14:
- return VId(this) != null;
- case 15:
- return (this.Bb & Cve) != 0;
- case 16:
- return (this.Bb & oie) != 0;
- case 17:
- return !!WId(this);
- case 18:
- return (this.Bb & ote) != 0;
- case 19:
- return d = zUd(this), !!d && (d.Bb & ote) != 0;
- case 20:
- return (this.Bb & Tje) == 0;
- case 21:
- return !!this.b;
- case 22:
- return !!yUd(this);
- case 23:
- return !!this.a && this.a.i != 0;
- }
- return cid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a));
- };
- _2.sh = function IUd(a, b) {
- var c2, d;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- cJd(this, GD(b));
- return;
- case 2:
- BId(this, Ccb(DD(b)));
- return;
- case 3:
- CId(this, Ccb(DD(b)));
- return;
- case 4:
- AId(this, BD(b, 19).a);
- return;
- case 5:
- DId(this, BD(b, 19).a);
- return;
- case 8:
- yId(this, BD(b, 138));
- return;
- case 9:
- d = xId(this, BD(b, 87), null);
- !!d && d.Fi();
- return;
- case 10:
- ZId(this, Ccb(DD(b)));
- return;
- case 11:
- fJd(this, Ccb(DD(b)));
- return;
- case 12:
- dJd(this, Ccb(DD(b)));
- return;
- case 13:
- $Id(this, GD(b));
- return;
- case 15:
- eJd(this, Ccb(DD(b)));
- return;
- case 16:
- aJd(this, Ccb(DD(b)));
- return;
- case 18:
- BUd(this, Ccb(DD(b)));
- return;
- case 20:
- EUd(this, Ccb(DD(b)));
- return;
- case 21:
- DUd(this, BD(b, 18));
- return;
- case 23:
- !this.a && (this.a = new _4d(b5, this, 23));
- Uxd(this.a);
- !this.a && (this.a = new _4d(b5, this, 23));
- ytd(this.a, BD(b, 14));
- return;
- }
- did(this, a - aLd((jGd(), eGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? eGd : c2), a), b);
- };
- _2.zh = function JUd() {
- return jGd(), eGd;
- };
- _2.Bh = function KUd(a) {
- var b, c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
- pnd(this, null);
- return;
- case 2:
- BId(this, true);
- return;
- case 3:
- CId(this, true);
- return;
- case 4:
- AId(this, 0);
- return;
- case 5:
- DId(this, 1);
- return;
- case 8:
- yId(this, null);
- return;
- case 9:
- c2 = xId(this, null, null);
- !!c2 && c2.Fi();
- return;
- case 10:
- ZId(this, true);
- return;
- case 11:
- fJd(this, false);
- return;
- case 12:
- dJd(this, false);
- return;
- case 13:
- this.i = null;
- _Id(this, null);
- return;
- case 15:
- eJd(this, false);
- return;
- case 16:
- aJd(this, false);
- return;
- case 18:
- CUd(this, false);
- JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 2);
- return;
- case 20:
- EUd(this, true);
- return;
- case 21:
- DUd(this, null);
- return;
- case 23:
- !this.a && (this.a = new _4d(b5, this, 23));
- Uxd(this.a);
- return;
- }
- eid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a));
- };
- _2.Gh = function LUd() {
- AUd(this);
- a2d(q1d((O6d(), M6d), this));
- wId(this);
- this.Bb |= 1;
- };
- _2.Lj = function MUd() {
- return zUd(this);
- };
- _2.qk = function NUd() {
- var a;
- return a = zUd(this), !!a && (a.Bb & ote) != 0;
- };
- _2.rk = function OUd() {
- return (this.Bb & ote) != 0;
- };
- _2.sk = function PUd() {
- return (this.Bb & Tje) != 0;
- };
- _2.nk = function QUd(a, b) {
- this.c = null;
- return zId(this, a, b);
- };
- _2.Ib = function RUd() {
- var a;
- if ((this.Db & 64) != 0)
- return gJd(this);
- a = new Jfb(gJd(this));
- a.a += " (containment: ";
- Ffb(a, (this.Bb & ote) != 0);
- a.a += ", resolveProxies: ";
- Ffb(a, (this.Bb & Tje) != 0);
- a.a += ")";
- return a.a;
- };
- mdb(qte, "EReferenceImpl", 99);
- bcb(548, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 548: 1, 114: 1, 115: 1 }, XUd);
- _2.Fb = function bVd(a) {
- return this === a;
- };
- _2.cd = function dVd() {
- return this.b;
- };
- _2.dd = function eVd() {
- return this.c;
- };
- _2.Hb = function fVd() {
- return FCb(this);
- };
- _2.Uh = function hVd(a) {
- SUd(this, GD(a));
- };
- _2.ed = function iVd(a) {
- return WUd(this, GD(a));
- };
- _2._g = function YUd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return this.b;
- case 1:
- return this.c;
- }
- return bid(this, a - aLd((jGd(), fGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? fGd : d), a), b, c2);
- };
- _2.lh = function ZUd(a) {
- var b;
- switch (a) {
- case 0:
- return this.b != null;
- case 1:
- return this.c != null;
- }
- return cid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a));
- };
- _2.sh = function $Ud(a, b) {
- var c2;
- switch (a) {
- case 0:
- TUd(this, GD(b));
- return;
- case 1:
- VUd(this, GD(b));
- return;
- }
- did(this, a - aLd((jGd(), fGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? fGd : c2), a), b);
- };
- _2.zh = function _Ud() {
- return jGd(), fGd;
- };
- _2.Bh = function aVd(a) {
- var b;
- switch (a) {
- case 0:
- UUd(this, null);
- return;
- case 1:
- VUd(this, null);
- return;
- }
- eid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a));
- };
- _2.Sh = function cVd() {
- var a;
- if (this.a == -1) {
- a = this.b;
- this.a = a == null ? 0 : LCb(a);
- }
- return this.a;
- };
- _2.Th = function gVd(a) {
- this.a = a;
- };
- _2.Ib = function jVd() {
- var a;
- if ((this.Db & 64) != 0)
- return Eid(this);
- a = new Jfb(Eid(this));
- a.a += " (key: ";
- Efb(a, this.b);
- a.a += ", value: ";
- Efb(a, this.c);
- a.a += ")";
- return a.a;
- };
- _2.a = -1;
- _2.b = null;
- _2.c = null;
- var x6 = mdb(qte, "EStringToStringMapEntryImpl", 548);
- var D9 = odb(yve, "FeatureMap/Entry/Internal");
- bcb(565, 1, Xve);
- _2.Ok = function mVd(a) {
- return this.Pk(BD(a, 49));
- };
- _2.Pk = function nVd(a) {
- return this.Ok(a);
- };
- _2.Fb = function oVd(a) {
- var b, c2;
- if (this === a) {
- return true;
- } else if (JD(a, 72)) {
- b = BD(a, 72);
- if (b.ak() == this.c) {
- c2 = this.dd();
- return c2 == null ? b.dd() == null : pb(c2, b.dd());
- } else {
- return false;
- }
- } else {
- return false;
- }
- };
- _2.ak = function pVd() {
- return this.c;
- };
- _2.Hb = function qVd() {
- var a;
- a = this.dd();
- return tb(this.c) ^ (a == null ? 0 : tb(a));
- };
- _2.Ib = function rVd() {
- var a, b;
- a = this.c;
- b = bKd(a.Hj()).Ph();
- a.ne();
- return (b != null && b.length != 0 ? b + ":" + a.ne() : a.ne()) + "=" + this.dd();
- };
- mdb(qte, "EStructuralFeatureImpl/BasicFeatureMapEntry", 565);
- bcb(776, 565, Xve, uVd);
- _2.Pk = function vVd(a) {
- return new uVd(this.c, a);
- };
- _2.dd = function wVd() {
- return this.a;
- };
- _2.Qk = function xVd(a, b, c2) {
- return sVd(this, a, this.a, b, c2);
- };
- _2.Rk = function yVd(a, b, c2) {
- return tVd(this, a, this.a, b, c2);
- };
- mdb(qte, "EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry", 776);
- bcb(1314, 1, {}, zVd);
- _2.Pj = function AVd(a, b, c2, d, e) {
- var f2;
- f2 = BD(gid(a, this.b), 215);
- return f2.nl(this.a).Wj(d);
- };
- _2.Qj = function BVd(a, b, c2, d, e) {
- var f2;
- f2 = BD(gid(a, this.b), 215);
- return f2.el(this.a, d, e);
- };
- _2.Rj = function CVd(a, b, c2, d, e) {
- var f2;
- f2 = BD(gid(a, this.b), 215);
- return f2.fl(this.a, d, e);
- };
- _2.Sj = function DVd(a, b, c2) {
- var d;
- d = BD(gid(a, this.b), 215);
- return d.nl(this.a).fj();
- };
- _2.Tj = function EVd(a, b, c2, d) {
- var e;
- e = BD(gid(a, this.b), 215);
- e.nl(this.a).Wb(d);
- };
- _2.Uj = function FVd(a, b, c2) {
- return BD(gid(a, this.b), 215).nl(this.a);
- };
- _2.Vj = function GVd(a, b, c2) {
- var d;
- d = BD(gid(a, this.b), 215);
- d.nl(this.a).Xj();
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator", 1314);
- bcb(89, 1, {}, IVd, JVd, KVd, LVd);
- _2.Pj = function MVd(a, b, c2, d, e) {
- var f2;
- f2 = b.Ch(c2);
- f2 == null && b.Dh(c2, f2 = HVd(this, a));
- if (!e) {
- switch (this.e) {
- case 50:
- case 41:
- return BD(f2, 589).sj();
- case 40:
- return BD(f2, 215).kl();
- }
- }
- return f2;
- };
- _2.Qj = function NVd(a, b, c2, d, e) {
- var f2, g;
- g = b.Ch(c2);
- g == null && b.Dh(c2, g = HVd(this, a));
- f2 = BD(g, 69).lk(d, e);
- return f2;
- };
- _2.Rj = function OVd(a, b, c2, d, e) {
- var f2;
- f2 = b.Ch(c2);
- f2 != null && (e = BD(f2, 69).mk(d, e));
- return e;
- };
- _2.Sj = function PVd(a, b, c2) {
- var d;
- d = b.Ch(c2);
- return d != null && BD(d, 76).fj();
- };
- _2.Tj = function QVd(a, b, c2, d) {
- var e;
- e = BD(b.Ch(c2), 76);
- !e && b.Dh(c2, e = HVd(this, a));
- e.Wb(d);
- };
- _2.Uj = function RVd(a, b, c2) {
- var d, e;
- e = b.Ch(c2);
- e == null && b.Dh(c2, e = HVd(this, a));
- if (JD(e, 76)) {
- return BD(e, 76);
- } else {
- d = BD(b.Ch(c2), 15);
- return new iYd(d);
- }
- };
- _2.Vj = function SVd(a, b, c2) {
- var d;
- d = BD(b.Ch(c2), 76);
- !d && b.Dh(c2, d = HVd(this, a));
- d.Xj();
- };
- _2.b = 0;
- _2.e = 0;
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateMany", 89);
- bcb(504, 1, {});
- _2.Qj = function WVd(a, b, c2, d, e) {
- throw vbb(new bgb());
- };
- _2.Rj = function XVd(a, b, c2, d, e) {
- throw vbb(new bgb());
- };
- _2.Uj = function YVd(a, b, c2) {
- return new ZVd(this, a, b, c2);
- };
- var TVd;
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle", 504);
- bcb(1331, 1, zve, ZVd);
- _2.Wj = function $Vd(a) {
- return this.a.Pj(this.c, this.d, this.b, a, true);
- };
- _2.fj = function _Vd() {
- return this.a.Sj(this.c, this.d, this.b);
- };
- _2.Wb = function aWd(a) {
- this.a.Tj(this.c, this.d, this.b, a);
- };
- _2.Xj = function bWd() {
- this.a.Vj(this.c, this.d, this.b);
- };
- _2.b = 0;
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle/1", 1331);
- bcb(769, 504, {}, cWd);
- _2.Pj = function dWd(a, b, c2, d, e) {
- return Nid(a, a.eh(), a.Vg()) == this.b ? this.sk() && d ? aid(a) : a.eh() : null;
- };
- _2.Qj = function eWd(a, b, c2, d, e) {
- var f2, g;
- !!a.eh() && (e = (f2 = a.Vg(), f2 >= 0 ? a.Qg(e) : a.eh().ih(a, -1 - f2, null, e)));
- g = bLd(a.Tg(), this.e);
- return a.Sg(d, g, e);
- };
- _2.Rj = function fWd(a, b, c2, d, e) {
- var f2;
- f2 = bLd(a.Tg(), this.e);
- return a.Sg(null, f2, e);
- };
- _2.Sj = function gWd(a, b, c2) {
- var d;
- d = bLd(a.Tg(), this.e);
- return !!a.eh() && a.Vg() == d;
- };
- _2.Tj = function hWd(a, b, c2, d) {
- var e, f2, g, h, i3;
- if (d != null && !fKd(this.a, d)) {
- throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'"));
- }
- e = a.eh();
- g = bLd(a.Tg(), this.e);
- if (PD(d) !== PD(e) || a.Vg() != g && d != null) {
- if (p6d(a, BD(d, 56)))
- throw vbb(new Wdb(ste + a.Ib()));
- i3 = null;
- !!e && (i3 = (f2 = a.Vg(), f2 >= 0 ? a.Qg(i3) : a.eh().ih(a, -1 - f2, null, i3)));
- h = BD(d, 49);
- !!h && (i3 = h.gh(a, bLd(h.Tg(), this.b), null, i3));
- i3 = a.Sg(h, g, i3);
- !!i3 && i3.Fi();
- } else {
- a.Lg() && a.Mg() && Uhd(a, new nSd(a, 1, g, d, d));
- }
- };
- _2.Vj = function iWd(a, b, c2) {
- var d, e, f2, g;
- d = a.eh();
- if (d) {
- g = (e = a.Vg(), e >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - e, null, null));
- f2 = bLd(a.Tg(), this.e);
- g = a.Sg(null, f2, g);
- !!g && g.Fi();
- } else {
- a.Lg() && a.Mg() && Uhd(a, new DSd(a, 1, this.e, null, null));
- }
- };
- _2.sk = function jWd() {
- return false;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainer", 769);
- bcb(1315, 769, {}, kWd);
- _2.sk = function lWd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving", 1315);
- bcb(563, 504, {});
- _2.Pj = function oWd(a, b, c2, d, e) {
- var f2;
- return f2 = b.Ch(c2), f2 == null ? this.b : PD(f2) === PD(TVd) ? null : f2;
- };
- _2.Sj = function pWd(a, b, c2) {
- var d;
- d = b.Ch(c2);
- return d != null && (PD(d) === PD(TVd) || !pb(d, this.b));
- };
- _2.Tj = function qWd(a, b, c2, d) {
- var e, f2;
- if (a.Lg() && a.Mg()) {
- e = (f2 = b.Ch(c2), f2 == null ? this.b : PD(f2) === PD(TVd) ? null : f2);
- if (d == null) {
- if (this.c != null) {
- b.Dh(c2, null);
- d = this.b;
- } else
- this.b != null ? b.Dh(c2, TVd) : b.Dh(c2, null);
- } else {
- this.Sk(d);
- b.Dh(c2, d);
- }
- Uhd(a, this.d.Tk(a, 1, this.e, e, d));
- } else {
- if (d == null) {
- this.c != null ? b.Dh(c2, null) : this.b != null ? b.Dh(c2, TVd) : b.Dh(c2, null);
- } else {
- this.Sk(d);
- b.Dh(c2, d);
- }
- }
- };
- _2.Vj = function rWd(a, b, c2) {
- var d, e;
- if (a.Lg() && a.Mg()) {
- d = (e = b.Ch(c2), e == null ? this.b : PD(e) === PD(TVd) ? null : e);
- b.Eh(c2);
- Uhd(a, this.d.Tk(a, 1, this.e, d, this.b));
- } else {
- b.Eh(c2);
- }
- };
- _2.Sk = function sWd(a) {
- throw vbb(new Bdb());
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData", 563);
- bcb($ve, 1, {}, DWd);
- _2.Tk = function EWd(a, b, c2, d, e) {
- return new DSd(a, b, c2, d, e);
- };
- _2.Uk = function FWd(a, b, c2, d, e, f2) {
- return new FSd(a, b, c2, d, e, f2);
- };
- var tWd, uWd, vWd, wWd, xWd, yWd, zWd, AWd, BWd;
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator", $ve);
- bcb(1332, $ve, {}, GWd);
- _2.Tk = function HWd(a, b, c2, d, e) {
- return new ISd(a, b, c2, Ccb(DD(d)), Ccb(DD(e)));
- };
- _2.Uk = function IWd(a, b, c2, d, e, f2) {
- return new JSd(a, b, c2, Ccb(DD(d)), Ccb(DD(e)), f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1", 1332);
- bcb(1333, $ve, {}, JWd);
- _2.Tk = function KWd(a, b, c2, d, e) {
- return new rSd(a, b, c2, BD(d, 217).a, BD(e, 217).a);
- };
- _2.Uk = function LWd(a, b, c2, d, e, f2) {
- return new sSd(a, b, c2, BD(d, 217).a, BD(e, 217).a, f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2", 1333);
- bcb(1334, $ve, {}, MWd);
- _2.Tk = function NWd(a, b, c2, d, e) {
- return new tSd(a, b, c2, BD(d, 172).a, BD(e, 172).a);
- };
- _2.Uk = function OWd(a, b, c2, d, e, f2) {
- return new uSd(a, b, c2, BD(d, 172).a, BD(e, 172).a, f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3", 1334);
- bcb(1335, $ve, {}, PWd);
- _2.Tk = function QWd(a, b, c2, d, e) {
- return new vSd(a, b, c2, Edb(ED(d)), Edb(ED(e)));
- };
- _2.Uk = function RWd(a, b, c2, d, e, f2) {
- return new wSd(a, b, c2, Edb(ED(d)), Edb(ED(e)), f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4", 1335);
- bcb(1336, $ve, {}, SWd);
- _2.Tk = function TWd(a, b, c2, d, e) {
- return new xSd(a, b, c2, BD(d, 155).a, BD(e, 155).a);
- };
- _2.Uk = function UWd(a, b, c2, d, e, f2) {
- return new ySd(a, b, c2, BD(d, 155).a, BD(e, 155).a, f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5", 1336);
- bcb(1337, $ve, {}, VWd);
- _2.Tk = function WWd(a, b, c2, d, e) {
- return new zSd(a, b, c2, BD(d, 19).a, BD(e, 19).a);
- };
- _2.Uk = function XWd(a, b, c2, d, e, f2) {
- return new ASd(a, b, c2, BD(d, 19).a, BD(e, 19).a, f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6", 1337);
- bcb(1338, $ve, {}, YWd);
- _2.Tk = function ZWd(a, b, c2, d, e) {
- return new BSd(a, b, c2, BD(d, 162).a, BD(e, 162).a);
- };
- _2.Uk = function $Wd(a, b, c2, d, e, f2) {
- return new CSd(a, b, c2, BD(d, 162).a, BD(e, 162).a, f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7", 1338);
- bcb(1339, $ve, {}, _Wd);
- _2.Tk = function aXd(a, b, c2, d, e) {
- return new GSd(a, b, c2, BD(d, 184).a, BD(e, 184).a);
- };
- _2.Uk = function bXd(a, b, c2, d, e, f2) {
- return new HSd(a, b, c2, BD(d, 184).a, BD(e, 184).a, f2);
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8", 1339);
- bcb(1317, 563, {}, cXd);
- _2.Sk = function dXd(a) {
- if (!this.a.wj(a)) {
- throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'"));
- }
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic", 1317);
- bcb(1318, 563, {}, eXd);
- _2.Sk = function fXd(a) {
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic", 1318);
- bcb(770, 563, {});
- _2.Sj = function gXd(a, b, c2) {
- var d;
- d = b.Ch(c2);
- return d != null;
- };
- _2.Tj = function hXd(a, b, c2, d) {
- var e, f2;
- if (a.Lg() && a.Mg()) {
- e = true;
- f2 = b.Ch(c2);
- if (f2 == null) {
- e = false;
- f2 = this.b;
- } else
- PD(f2) === PD(TVd) && (f2 = null);
- if (d == null) {
- if (this.c != null) {
- b.Dh(c2, null);
- d = this.b;
- } else {
- b.Dh(c2, TVd);
- }
- } else {
- this.Sk(d);
- b.Dh(c2, d);
- }
- Uhd(a, this.d.Uk(a, 1, this.e, f2, d, !e));
- } else {
- if (d == null) {
- this.c != null ? b.Dh(c2, null) : b.Dh(c2, TVd);
- } else {
- this.Sk(d);
- b.Dh(c2, d);
- }
- }
- };
- _2.Vj = function iXd(a, b, c2) {
- var d, e;
- if (a.Lg() && a.Mg()) {
- d = true;
- e = b.Ch(c2);
- if (e == null) {
- d = false;
- e = this.b;
- } else
- PD(e) === PD(TVd) && (e = null);
- b.Eh(c2);
- Uhd(a, this.d.Uk(a, 2, this.e, e, this.b, d));
- } else {
- b.Eh(c2);
- }
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable", 770);
- bcb(1319, 770, {}, jXd);
- _2.Sk = function kXd(a) {
- if (!this.a.wj(a)) {
- throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'"));
- }
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic", 1319);
- bcb(1320, 770, {}, lXd);
- _2.Sk = function mXd(a) {
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic", 1320);
- bcb(398, 504, {}, nXd);
- _2.Pj = function pXd(a, b, c2, d, e) {
- var f2, g, h, i3, j;
- j = b.Ch(c2);
- if (this.Kj() && PD(j) === PD(TVd)) {
- return null;
- } else if (this.sk() && d && j != null) {
- h = BD(j, 49);
- if (h.kh()) {
- i3 = xid(a, h);
- if (h != i3) {
- if (!fKd(this.a, i3)) {
- throw vbb(new Cdb(Yve + rb(i3) + Zve + this.a + "'"));
- }
- b.Dh(c2, j = i3);
- if (this.rk()) {
- f2 = BD(i3, 49);
- g = h.ih(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(h.Tg(), this.b), null, null);
- !f2.eh() && (g = f2.gh(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(f2.Tg(), this.b), null, g));
- !!g && g.Fi();
- }
- a.Lg() && a.Mg() && Uhd(a, new DSd(a, 9, this.e, h, i3));
- }
- }
- return j;
- } else {
- return j;
- }
- };
- _2.Qj = function qXd(a, b, c2, d, e) {
- var f2, g;
- g = b.Ch(c2);
- PD(g) === PD(TVd) && (g = null);
- b.Dh(c2, d);
- if (this.bj()) {
- if (PD(g) !== PD(d) && g != null) {
- f2 = BD(g, 49);
- e = f2.ih(a, bLd(f2.Tg(), this.b), null, e);
- }
- } else
- this.rk() && g != null && (e = BD(g, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, e));
- if (a.Lg() && a.Mg()) {
- !e && (e = new Ixd(4));
- e.Ei(new DSd(a, 1, this.e, g, d));
- }
- return e;
- };
- _2.Rj = function rXd(a, b, c2, d, e) {
- var f2;
- f2 = b.Ch(c2);
- PD(f2) === PD(TVd) && (f2 = null);
- b.Eh(c2);
- if (a.Lg() && a.Mg()) {
- !e && (e = new Ixd(4));
- this.Kj() ? e.Ei(new DSd(a, 2, this.e, f2, null)) : e.Ei(new DSd(a, 1, this.e, f2, null));
- }
- return e;
- };
- _2.Sj = function sXd(a, b, c2) {
- var d;
- d = b.Ch(c2);
- return d != null;
- };
- _2.Tj = function tXd(a, b, c2, d) {
- var e, f2, g, h, i3;
- if (d != null && !fKd(this.a, d)) {
- throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'"));
- }
- i3 = b.Ch(c2);
- h = i3 != null;
- this.Kj() && PD(i3) === PD(TVd) && (i3 = null);
- g = null;
- if (this.bj()) {
- if (PD(i3) !== PD(d)) {
- if (i3 != null) {
- e = BD(i3, 49);
- g = e.ih(a, bLd(e.Tg(), this.b), null, g);
- }
- if (d != null) {
- e = BD(d, 49);
- g = e.gh(a, bLd(e.Tg(), this.b), null, g);
- }
- }
- } else if (this.rk()) {
- if (PD(i3) !== PD(d)) {
- i3 != null && (g = BD(i3, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, g));
- d != null && (g = BD(d, 49).gh(a, -1 - bLd(a.Tg(), this.e), null, g));
- }
- }
- d == null && this.Kj() ? b.Dh(c2, TVd) : b.Dh(c2, d);
- if (a.Lg() && a.Mg()) {
- f2 = new FSd(a, 1, this.e, i3, d, this.Kj() && !h);
- if (!g) {
- Uhd(a, f2);
- } else {
- g.Ei(f2);
- g.Fi();
- }
- } else
- !!g && g.Fi();
- };
- _2.Vj = function uXd(a, b, c2) {
- var d, e, f2, g, h;
- h = b.Ch(c2);
- g = h != null;
- this.Kj() && PD(h) === PD(TVd) && (h = null);
- f2 = null;
- if (h != null) {
- if (this.bj()) {
- d = BD(h, 49);
- f2 = d.ih(a, bLd(d.Tg(), this.b), null, f2);
- } else
- this.rk() && (f2 = BD(h, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, f2));
- }
- b.Eh(c2);
- if (a.Lg() && a.Mg()) {
- e = new FSd(a, this.Kj() ? 2 : 1, this.e, h, null, g);
- if (!f2) {
- Uhd(a, e);
- } else {
- f2.Ei(e);
- f2.Fi();
- }
- } else
- !!f2 && f2.Fi();
- };
- _2.bj = function vXd() {
- return false;
- };
- _2.rk = function wXd() {
- return false;
- };
- _2.sk = function xXd() {
- return false;
- };
- _2.Kj = function yXd() {
- return false;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObject", 398);
- bcb(564, 398, {}, zXd);
- _2.rk = function AXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment", 564);
- bcb(1323, 564, {}, BXd);
- _2.sk = function CXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving", 1323);
- bcb(772, 564, {}, DXd);
- _2.Kj = function EXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable", 772);
- bcb(1325, 772, {}, FXd);
- _2.sk = function GXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving", 1325);
- bcb(640, 564, {}, HXd);
- _2.bj = function IXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse", 640);
- bcb(1324, 640, {}, JXd);
- _2.sk = function KXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving", 1324);
- bcb(773, 640, {}, LXd);
- _2.Kj = function MXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable", 773);
- bcb(1326, 773, {}, NXd);
- _2.sk = function OXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving", 1326);
- bcb(641, 398, {}, PXd);
- _2.sk = function QXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving", 641);
- bcb(1327, 641, {}, RXd);
- _2.Kj = function SXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable", 1327);
- bcb(774, 641, {}, TXd);
- _2.bj = function UXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse", 774);
- bcb(1328, 774, {}, VXd);
- _2.Kj = function WXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable", 1328);
- bcb(1321, 398, {}, XXd);
- _2.Kj = function YXd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable", 1321);
- bcb(771, 398, {}, ZXd);
- _2.bj = function $Xd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse", 771);
- bcb(1322, 771, {}, _Xd);
- _2.Kj = function aYd() {
- return true;
- };
- mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable", 1322);
- bcb(775, 565, Xve, dYd);
- _2.Pk = function eYd(a) {
- return new dYd(this.a, this.c, a);
- };
- _2.dd = function fYd() {
- return this.b;
- };
- _2.Qk = function gYd(a, b, c2) {
- return bYd(this, a, this.b, c2);
- };
- _2.Rk = function hYd(a, b, c2) {
- return cYd(this, a, this.b, c2);
- };
- mdb(qte, "EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry", 775);
- bcb(1329, 1, zve, iYd);
- _2.Wj = function jYd(a) {
- return this.a;
- };
- _2.fj = function kYd() {
- return JD(this.a, 95) ? BD(this.a, 95).fj() : !this.a.dc();
- };
- _2.Wb = function lYd(a) {
- this.a.$b();
- this.a.Gc(BD(a, 15));
- };
- _2.Xj = function mYd() {
- JD(this.a, 95) ? BD(this.a, 95).Xj() : this.a.$b();
- };
- mdb(qte, "EStructuralFeatureImpl/SettingMany", 1329);
- bcb(1330, 565, Xve, nYd);
- _2.Ok = function oYd(a) {
- return new sYd((Q8d(), P8d), this.b.Ih(this.a, a));
- };
- _2.dd = function pYd() {
- return null;
- };
- _2.Qk = function qYd(a, b, c2) {
- return c2;
- };
- _2.Rk = function rYd(a, b, c2) {
- return c2;
- };
- mdb(qte, "EStructuralFeatureImpl/SimpleContentFeatureMapEntry", 1330);
- bcb(642, 565, Xve, sYd);
- _2.Ok = function tYd(a) {
- return new sYd(this.c, a);
- };
- _2.dd = function uYd() {
- return this.a;
- };
- _2.Qk = function vYd(a, b, c2) {
- return c2;
- };
- _2.Rk = function wYd(a, b, c2) {
- return c2;
- };
- mdb(qte, "EStructuralFeatureImpl/SimpleFeatureMapEntry", 642);
- bcb(391, 497, oue, xYd);
- _2.ri = function yYd(a) {
- return KC(c5, Uhe, 26, a, 0, 1);
- };
- _2.ni = function zYd() {
- return false;
- };
- mdb(qte, "ESuperAdapter/1", 391);
- bcb(444, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 836: 1, 49: 1, 97: 1, 150: 1, 444: 1, 114: 1, 115: 1 }, BYd);
- _2._g = function CYd(a, b, c2) {
- var d;
- switch (a) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
- case 1:
- return this.zb;
- case 2:
- return !this.a && (this.a = new KYd(this, j5, this)), this.a;
- }
- return bid(this, a - aLd((jGd(), iGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? iGd : d), a), b, c2);
- };
- _2.jh = function DYd(a, b, c2) {
- var d, e;
- switch (b) {
- case 0:
- return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
- case 2:
- return !this.a && (this.a = new KYd(this, j5, this)), Txd(this.a, a, c2);
- }
- return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), iGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), iGd)), a, c2);
- };
- _2.lh = function EYd(a) {
- var b;
- switch (a) {
- case 0:
- return !!this.Ab && this.Ab.i != 0;
- case 1:
- return this.zb != null;
- case 2:
- return !!this.a && this.a.i != 0;
- }
- return cid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a));
- };
- _2.sh = function FYd(a, b) {
- var c2;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- ytd(this.Ab, BD(b, 14));
- return;
- case 1:
- pnd(this, GD(b));
- return;
- case 2:
- !this.a && (this.a = new KYd(this, j5, this));
- Uxd(this.a);
- !this.a && (this.a = new KYd(this, j5, this));
- ytd(this.a, BD(b, 14));
- return;
- }
- did(this, a - aLd((jGd(), iGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? iGd : c2), a), b);
- };
- _2.zh = function GYd() {
- return jGd(), iGd;
- };
- _2.Bh = function HYd(a) {
- var b;
- switch (a) {
- case 0:
- !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
- Uxd(this.Ab);
- return;
- case 1:
- pnd(this, null);
- return;
- case 2:
- !this.a && (this.a = new KYd(this, j5, this));
- Uxd(this.a);
- return;
- }
- eid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a));
- };
- mdb(qte, "ETypeParameterImpl", 444);
- bcb(445, 85, Pve, KYd);
- _2.cj = function LYd(a, b) {
- return IYd(this, BD(a, 87), b);
- };
- _2.dj = function MYd(a, b) {
- return JYd(this, BD(a, 87), b);
- };
- mdb(qte, "ETypeParameterImpl/1", 445);
- bcb(634, 43, fke, NYd);
- _2.ec = function OYd() {
- return new RYd(this);
- };
- mdb(qte, "ETypeParameterImpl/2", 634);
- bcb(556, eie, fie, RYd);
- _2.Fc = function SYd(a) {
- return PYd(this, BD(a, 87));
- };
- _2.Gc = function TYd(a) {
- var b, c2, d;
- d = false;
- for (c2 = a.Kc(); c2.Ob(); ) {
- b = BD(c2.Pb(), 87);
- Rhb(this.a, b, "") == null && (d = true);
- }
- return d;
- };
- _2.$b = function UYd() {
- Uhb(this.a);
- };
- _2.Hc = function VYd(a) {
- return Mhb(this.a, a);
- };
- _2.Kc = function WYd() {
- var a;
- return a = new nib(new eib(this.a).a), new ZYd(a);
- };
- _2.Mc = function XYd(a) {
- return QYd(this, a);
- };
- _2.gc = function YYd() {
- return Vhb(this.a);
- };
- mdb(qte, "ETypeParameterImpl/2/1", 556);
- bcb(557, 1, aie, ZYd);
- _2.Nb = function $Yd(a) {
- Rrb(this, a);
- };
- _2.Pb = function aZd() {
- return BD(lib(this.a).cd(), 87);
- };
- _2.Ob = function _Yd() {
- return this.a.b;
- };
- _2.Qb = function bZd() {
- mib(this.a);
- };
- mdb(qte, "ETypeParameterImpl/2/1/1", 557);
- bcb(1276, 43, fke, cZd);
- _2._b = function dZd(a) {
- return ND(a) ? Qhb(this, a) : !!irb(this.f, a);
- };
- _2.xc = function eZd(a) {
- var b, c2;
- b = ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
- if (JD(b, 837)) {
- c2 = BD(b, 837);
- b = c2._j();
- Rhb(this, BD(a, 235), b);
- return b;
- } else
- return b != null ? b : a == null ? (g5d(), f5d) : null;
- };
- mdb(qte, "EValidatorRegistryImpl", 1276);
- bcb(1313, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 1941: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, mZd);
- _2.Ih = function nZd(a, b) {
- switch (a.yj()) {
- case 21:
- case 22:
- case 23:
- case 24:
- case 26:
- case 31:
- case 32:
- case 37:
- case 38:
- case 39:
- case 40:
- case 43:
- case 44:
- case 48:
- case 49:
- case 20:
- return b == null ? null : fcb(b);
- case 25:
- return gZd(b);
- case 27:
- return hZd(b);
- case 28:
- return iZd(b);
- case 29:
- return b == null ? null : CQd(Pmd[0], BD(b, 199));
- case 41:
- return b == null ? "" : hdb(BD(b, 290));
- case 42:
- return fcb(b);
- case 50:
- return GD(b);
- default:
- throw vbb(new Wdb(tte + a.ne() + ute));
- }
- };
- _2.Jh = function oZd(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
- switch (a.G == -1 && (a.G = (m = bKd(a), m ? HLd(m.Mh(), a) : -1)), a.G) {
- case 0:
- return c2 = new OJd(), c2;
- case 1:
- return b = new RHd(), b;
- case 2:
- return d = new hLd(), d;
- case 4:
- return e = new MPd(), e;
- case 5:
- return f2 = new aQd(), f2;
- case 6:
- return g = new rQd(), g;
- case 7:
- return h = new $md(), h;
- case 10:
- return j = new MGd(), j;
- case 11:
- return k = new SSd(), k;
- case 12:
- return l = new eod(), l;
- case 13:
- return n = new rUd(), n;
- case 14:
- return o2 = new FUd(), o2;
- case 17:
- return p = new XUd(), p;
- case 18:
- return i3 = new UQd(), i3;
- case 19:
- return q = new BYd(), q;
- default:
- throw vbb(new Wdb(xte + a.zb + ute));
- }
- };
- _2.Kh = function pZd(a, b) {
- switch (a.yj()) {
- case 20:
- return b == null ? null : new tgb(b);
- case 21:
- return b == null ? null : new Ygb(b);
- case 23:
- case 22:
- return b == null ? null : fZd(b);
- case 26:
- case 24:
- return b == null ? null : Scb(Icb(b, -128, 127) << 24 >> 24);
- case 25:
- return Xmd(b);
- case 27:
- return jZd(b);
- case 28:
- return kZd(b);
- case 29:
- return lZd(b);
- case 32:
- case 31:
- return b == null ? null : Hcb(b);
- case 38:
- case 37:
- return b == null ? null : new Odb(b);
- case 40:
- case 39:
- return b == null ? null : meb(Icb(b, Rie, Ohe));
- case 41:
- return null;
- case 42:
- return b == null ? null : null;
- case 44:
- case 43:
- return b == null ? null : Aeb(Jcb(b));
- case 49:
- case 48:
- return b == null ? null : Web(Icb(b, awe, 32767) << 16 >> 16);
- case 50:
- return b;
- default:
- throw vbb(new Wdb(tte + a.ne() + ute));
- }
- };
- mdb(qte, "EcoreFactoryImpl", 1313);
- bcb(547, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 1939: 1, 49: 1, 97: 1, 150: 1, 179: 1, 547: 1, 114: 1, 115: 1, 675: 1 }, AZd);
- _2.gb = false;
- _2.hb = false;
- var rZd, sZd = false;
- mdb(qte, "EcorePackageImpl", 547);
- bcb(1184, 1, { 837: 1 }, EZd);
- _2._j = function FZd() {
- return I6d(), H6d;
- };
- mdb(qte, "EcorePackageImpl/1", 1184);
- bcb(1193, 1, nwe, GZd);
- _2.wj = function HZd(a) {
- return JD(a, 147);
- };
- _2.xj = function IZd(a) {
- return KC(k5, Uhe, 147, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/10", 1193);
- bcb(1194, 1, nwe, JZd);
- _2.wj = function KZd(a) {
- return JD(a, 191);
- };
- _2.xj = function LZd(a) {
- return KC(l5, Uhe, 191, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/11", 1194);
- bcb(1195, 1, nwe, MZd);
- _2.wj = function NZd(a) {
- return JD(a, 56);
- };
- _2.xj = function OZd(a) {
- return KC(m5, Uhe, 56, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/12", 1195);
- bcb(1196, 1, nwe, PZd);
- _2.wj = function QZd(a) {
- return JD(a, 399);
- };
- _2.xj = function RZd(a) {
- return KC(n5, Nve, 59, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/13", 1196);
- bcb(1197, 1, nwe, SZd);
- _2.wj = function TZd(a) {
- return JD(a, 235);
- };
- _2.xj = function UZd(a) {
- return KC(o5, Uhe, 235, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/14", 1197);
- bcb(1198, 1, nwe, VZd);
- _2.wj = function WZd(a) {
- return JD(a, 509);
- };
- _2.xj = function XZd(a) {
- return KC(p5, Uhe, 2017, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/15", 1198);
- bcb(1199, 1, nwe, YZd);
- _2.wj = function ZZd(a) {
- return JD(a, 99);
- };
- _2.xj = function $Zd(a) {
- return KC(q5, Mve, 18, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/16", 1199);
- bcb(1200, 1, nwe, _Zd);
- _2.wj = function a$d(a) {
- return JD(a, 170);
- };
- _2.xj = function b$d(a) {
- return KC(t5, Mve, 170, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/17", 1200);
- bcb(1201, 1, nwe, c$d);
- _2.wj = function d$d(a) {
- return JD(a, 472);
- };
- _2.xj = function e$d(a) {
- return KC(v52, Uhe, 472, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/18", 1201);
- bcb(1202, 1, nwe, f$d);
- _2.wj = function g$d(a) {
- return JD(a, 548);
- };
- _2.xj = function h$d(a) {
- return KC(x6, kve, 548, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/19", 1202);
- bcb(1185, 1, nwe, i$d);
- _2.wj = function j$d(a) {
- return JD(a, 322);
- };
- _2.xj = function k$d(a) {
- return KC(b5, Mve, 34, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/2", 1185);
- bcb(1203, 1, nwe, l$d);
- _2.wj = function m$d(a) {
- return JD(a, 241);
- };
- _2.xj = function n$d(a) {
- return KC(j5, Tve, 87, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/20", 1203);
- bcb(1204, 1, nwe, o$d);
- _2.wj = function p$d(a) {
- return JD(a, 444);
- };
- _2.xj = function q$d(a) {
- return KC(u5, Uhe, 836, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/21", 1204);
- bcb(1205, 1, nwe, r$d);
- _2.wj = function s$d(a) {
- return KD(a);
- };
- _2.xj = function t$d(a) {
- return KC(wI, nie, 476, a, 8, 1);
- };
- mdb(qte, "EcorePackageImpl/22", 1205);
- bcb(1206, 1, nwe, u$d);
- _2.wj = function v$d(a) {
- return JD(a, 190);
- };
- _2.xj = function w$d(a) {
- return KC(SD, nie, 190, a, 0, 2);
- };
- mdb(qte, "EcorePackageImpl/23", 1206);
- bcb(1207, 1, nwe, x$d);
- _2.wj = function y$d(a) {
- return JD(a, 217);
- };
- _2.xj = function z$d(a) {
- return KC(xI, nie, 217, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/24", 1207);
- bcb(1208, 1, nwe, A$d);
- _2.wj = function B$d(a) {
- return JD(a, 172);
- };
- _2.xj = function C$d(a) {
- return KC(yI, nie, 172, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/25", 1208);
- bcb(1209, 1, nwe, D$d);
- _2.wj = function E$d(a) {
- return JD(a, 199);
- };
- _2.xj = function F$d(a) {
- return KC($J, nie, 199, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/26", 1209);
- bcb(1210, 1, nwe, G$d);
- _2.wj = function H$d(a) {
- return false;
- };
- _2.xj = function I$d(a) {
- return KC(O4, Uhe, 2110, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/27", 1210);
- bcb(1211, 1, nwe, J$d);
- _2.wj = function K$d(a) {
- return LD(a);
- };
- _2.xj = function L$d(a) {
- return KC(BI, nie, 333, a, 7, 1);
- };
- mdb(qte, "EcorePackageImpl/28", 1211);
- bcb(1212, 1, nwe, M$d);
- _2.wj = function N$d(a) {
- return JD(a, 58);
- };
- _2.xj = function O$d(a) {
- return KC(T4, eme, 58, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/29", 1212);
- bcb(1186, 1, nwe, P$d);
- _2.wj = function Q$d(a) {
- return JD(a, 510);
- };
- _2.xj = function R$d(a) {
- return KC(a5, { 3: 1, 4: 1, 5: 1, 1934: 1 }, 590, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/3", 1186);
- bcb(1213, 1, nwe, S$d);
- _2.wj = function T$d(a) {
- return JD(a, 573);
- };
- _2.xj = function U$d(a) {
- return KC(U4, Uhe, 1940, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/30", 1213);
- bcb(1214, 1, nwe, V$d);
- _2.wj = function W$d(a) {
- return JD(a, 153);
- };
- _2.xj = function X$d(a) {
- return KC(O9, eme, 153, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/31", 1214);
- bcb(1215, 1, nwe, Y$d);
- _2.wj = function Z$d(a) {
- return JD(a, 72);
- };
- _2.xj = function $$d(a) {
- return KC(E9, owe, 72, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/32", 1215);
- bcb(1216, 1, nwe, _$d);
- _2.wj = function a_d(a) {
- return JD(a, 155);
- };
- _2.xj = function b_d(a) {
- return KC(FI, nie, 155, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/33", 1216);
- bcb(1217, 1, nwe, c_d);
- _2.wj = function d_d(a) {
- return JD(a, 19);
- };
- _2.xj = function e_d(a) {
- return KC(JI, nie, 19, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/34", 1217);
- bcb(1218, 1, nwe, f_d);
- _2.wj = function g_d(a) {
- return JD(a, 290);
- };
- _2.xj = function h_d(a) {
- return KC(AI, Uhe, 290, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/35", 1218);
- bcb(1219, 1, nwe, i_d);
- _2.wj = function j_d(a) {
- return JD(a, 162);
- };
- _2.xj = function k_d(a) {
- return KC(MI, nie, 162, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/36", 1219);
- bcb(1220, 1, nwe, l_d);
- _2.wj = function m_d(a) {
- return JD(a, 83);
- };
- _2.xj = function n_d(a) {
- return KC(DK, Uhe, 83, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/37", 1220);
- bcb(1221, 1, nwe, o_d);
- _2.wj = function p_d(a) {
- return JD(a, 591);
- };
- _2.xj = function q_d(a) {
- return KC(v8, Uhe, 591, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/38", 1221);
- bcb(1222, 1, nwe, r_d);
- _2.wj = function s_d(a) {
- return false;
- };
- _2.xj = function t_d(a) {
- return KC(u8, Uhe, 2111, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/39", 1222);
- bcb(1187, 1, nwe, u_d);
- _2.wj = function v_d(a) {
- return JD(a, 88);
- };
- _2.xj = function w_d(a) {
- return KC(c5, Uhe, 26, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/4", 1187);
- bcb(1223, 1, nwe, x_d);
- _2.wj = function y_d(a) {
- return JD(a, 184);
- };
- _2.xj = function z_d(a) {
- return KC(UI, nie, 184, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/40", 1223);
- bcb(1224, 1, nwe, A_d);
- _2.wj = function B_d(a) {
- return ND(a);
- };
- _2.xj = function C_d(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(qte, "EcorePackageImpl/41", 1224);
- bcb(1225, 1, nwe, D_d);
- _2.wj = function E_d(a) {
- return JD(a, 588);
- };
- _2.xj = function F_d(a) {
- return KC(X4, Uhe, 588, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/42", 1225);
- bcb(1226, 1, nwe, G_d);
- _2.wj = function H_d(a) {
- return false;
- };
- _2.xj = function I_d(a) {
- return KC(V4, nie, 2112, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/43", 1226);
- bcb(1227, 1, nwe, J_d);
- _2.wj = function K_d(a) {
- return JD(a, 42);
- };
- _2.xj = function L_d(a) {
- return KC(CK, zie, 42, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/44", 1227);
- bcb(1188, 1, nwe, M_d);
- _2.wj = function N_d(a) {
- return JD(a, 138);
- };
- _2.xj = function O_d(a) {
- return KC(d5, Uhe, 138, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/5", 1188);
- bcb(1189, 1, nwe, P_d);
- _2.wj = function Q_d(a) {
- return JD(a, 148);
- };
- _2.xj = function R_d(a) {
- return KC(f5, Uhe, 148, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/6", 1189);
- bcb(1190, 1, nwe, S_d);
- _2.wj = function T_d(a) {
- return JD(a, 457);
- };
- _2.xj = function U_d(a) {
- return KC(h5, Uhe, 671, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/7", 1190);
- bcb(1191, 1, nwe, V_d);
- _2.wj = function W_d(a) {
- return JD(a, 573);
- };
- _2.xj = function X_d(a) {
- return KC(g5, Uhe, 678, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/8", 1191);
- bcb(1192, 1, nwe, Y_d);
- _2.wj = function Z_d(a) {
- return JD(a, 471);
- };
- _2.xj = function $_d(a) {
- return KC(i5, Uhe, 471, a, 0, 1);
- };
- mdb(qte, "EcorePackageImpl/9", 1192);
- bcb(1025, 1982, ive, c0d);
- _2.bi = function d0d(a, b) {
- __d(this, BD(b, 415));
- };
- _2.fi = function e0d(a, b) {
- a0d(this, a, BD(b, 415));
- };
- mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList", 1025);
- bcb(1026, 143, fve, f0d);
- _2.Ai = function g0d() {
- return this.a.a;
- };
- mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList/1", 1026);
- bcb(1053, 1052, {}, i0d);
- mdb("org.eclipse.emf.ecore.plugin", "EcorePlugin", 1053);
- var v8 = odb(pwe, "Resource");
- bcb(781, 1378, qwe);
- _2.Yk = function m0d(a) {
- };
- _2.Zk = function n0d(a) {
- };
- _2.Vk = function o0d() {
- return !this.a && (this.a = new z0d(this)), this.a;
- };
- _2.Wk = function p0d(a) {
- var b, c2, d, e, f2;
- d = a.length;
- if (d > 0) {
- BCb(0, a.length);
- if (a.charCodeAt(0) == 47) {
- f2 = new Skb(4);
- e = 1;
- for (b = 1; b < d; ++b) {
- BCb(b, a.length);
- if (a.charCodeAt(b) == 47) {
- Ekb(f2, e == b ? "" : a.substr(e, b - e));
- e = b + 1;
- }
- }
- Ekb(f2, a.substr(e));
- return j0d(this, f2);
- } else {
- BCb(d - 1, a.length);
- if (a.charCodeAt(d - 1) == 63) {
- c2 = lfb(a, wfb(63), d - 2);
- c2 > 0 && (a = a.substr(0, c2));
- }
- }
- }
- return k0d(this, a);
- };
- _2.Xk = function q0d() {
- return this.c;
- };
- _2.Ib = function r0d() {
- var a;
- return hdb(this.gm) + "@" + (a = tb(this) >>> 0, a.toString(16)) + " uri='" + this.d + "'";
- };
- _2.b = false;
- mdb(rwe, "ResourceImpl", 781);
- bcb(1379, 781, qwe, s0d);
- mdb(rwe, "BinaryResourceImpl", 1379);
- bcb(1169, 694, pue);
- _2.si = function v0d(a) {
- return JD(a, 56) ? t0d(this, BD(a, 56)) : JD(a, 591) ? new Fyd(BD(a, 591).Vk()) : PD(a) === PD(this.f) ? BD(a, 14).Kc() : (LCd(), KCd.a);
- };
- _2.Ob = function w0d() {
- return u0d(this);
- };
- _2.a = false;
- mdb(yve, "EcoreUtil/ContentTreeIterator", 1169);
- bcb(1380, 1169, pue, x0d);
- _2.si = function y0d(a) {
- return PD(a) === PD(this.f) ? BD(a, 15).Kc() : new C6d(BD(a, 56));
- };
- mdb(rwe, "ResourceImpl/5", 1380);
- bcb(648, 1994, Ove, z0d);
- _2.Hc = function A0d(a) {
- return this.i <= 4 ? pud(this, a) : JD(a, 49) && BD(a, 49).Zg() == this.a;
- };
- _2.bi = function B0d(a, b) {
- a == this.i - 1 && (this.a.b || (this.a.b = true, null));
- };
- _2.di = function C0d(a, b) {
- a == 0 ? this.a.b || (this.a.b = true, null) : Atd(this, a, b);
- };
- _2.fi = function D0d(a, b) {
- };
- _2.gi = function E0d(a, b, c2) {
- };
- _2.aj = function F0d() {
- return 2;
- };
- _2.Ai = function G0d() {
- return this.a;
- };
- _2.bj = function H0d() {
- return true;
- };
- _2.cj = function I0d(a, b) {
- var c2;
- c2 = BD(a, 49);
- b = c2.wh(this.a, b);
- return b;
- };
- _2.dj = function J0d(a, b) {
- var c2;
- c2 = BD(a, 49);
- return c2.wh(null, b);
- };
- _2.ej = function K0d() {
- return false;
- };
- _2.hi = function L0d() {
- return true;
- };
- _2.ri = function M0d(a) {
- return KC(m5, Uhe, 56, a, 0, 1);
- };
- _2.ni = function N0d() {
- return false;
- };
- mdb(rwe, "ResourceImpl/ContentsEList", 648);
- bcb(957, 1964, Lie, O0d);
- _2.Zc = function P0d(a) {
- return this.a._h(a);
- };
- _2.gc = function Q0d() {
- return this.a.gc();
- };
- mdb(yve, "AbstractSequentialInternalEList/1", 957);
- var K6d, L6d, M6d, N6d;
- bcb(624, 1, {}, y1d);
- var R0d, S0d;
- mdb(yve, "BasicExtendedMetaData", 624);
- bcb(1160, 1, {}, C1d);
- _2.$k = function D1d() {
- return null;
- };
- _2._k = function E1d() {
- this.a == -2 && A1d(this, W0d(this.d, this.b));
- return this.a;
- };
- _2.al = function F1d() {
- return null;
- };
- _2.bl = function G1d() {
- return mmb(), mmb(), jmb;
- };
- _2.ne = function H1d() {
- this.c == Gwe && B1d(this, _0d(this.d, this.b));
- return this.c;
- };
- _2.cl = function I1d() {
- return 0;
- };
- _2.a = -2;
- _2.c = Gwe;
- mdb(yve, "BasicExtendedMetaData/EClassExtendedMetaDataImpl", 1160);
- bcb(1161, 1, {}, O1d);
- _2.$k = function P1d() {
- this.a == (T0d(), R0d) && J1d(this, V0d(this.f, this.b));
- return this.a;
- };
- _2._k = function Q1d() {
- return 0;
- };
- _2.al = function R1d() {
- this.c == (T0d(), R0d) && K1d(this, Z0d(this.f, this.b));
- return this.c;
- };
- _2.bl = function S1d() {
- !this.d && L1d(this, $0d(this.f, this.b));
- return this.d;
- };
- _2.ne = function T1d() {
- this.e == Gwe && M1d(this, _0d(this.f, this.b));
- return this.e;
- };
- _2.cl = function U1d() {
- this.g == -2 && N1d(this, c1d(this.f, this.b));
- return this.g;
- };
- _2.e = Gwe;
- _2.g = -2;
- mdb(yve, "BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl", 1161);
- bcb(1159, 1, {}, Y1d);
- _2.b = false;
- _2.c = false;
- mdb(yve, "BasicExtendedMetaData/EPackageExtendedMetaDataImpl", 1159);
- bcb(1162, 1, {}, j2d);
- _2.c = -2;
- _2.e = Gwe;
- _2.f = Gwe;
- mdb(yve, "BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl", 1162);
- bcb(585, 622, Pve, k2d);
- _2.aj = function l2d() {
- return this.c;
- };
- _2.Fk = function m2d() {
- return false;
- };
- _2.li = function n2d(a, b) {
- return b;
- };
- _2.c = 0;
- mdb(yve, "EDataTypeEList", 585);
- var O9 = odb(yve, "FeatureMap");
- bcb(75, 585, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, u3d);
- _2.Vc = function v3d(a, b) {
- o2d(this, a, BD(b, 72));
- };
- _2.Fc = function w3d(a) {
- return r2d(this, BD(a, 72));
- };
- _2.Yh = function B3d(a) {
- w2d(this, BD(a, 72));
- };
- _2.cj = function M3d(a, b) {
- return O2d(this, BD(a, 72), b);
- };
- _2.dj = function N3d(a, b) {
- return Q2d(this, BD(a, 72), b);
- };
- _2.ii = function P3d(a, b) {
- return W2d(this, a, b);
- };
- _2.li = function R3d(a, b) {
- return _2d(this, a, BD(b, 72));
- };
- _2._c = function T3d(a, b) {
- return c3d(this, a, BD(b, 72));
- };
- _2.jj = function X3d(a, b) {
- return i3d(this, BD(a, 72), b);
- };
- _2.kj = function Y3d(a, b) {
- return k3d(this, BD(a, 72), b);
- };
- _2.lj = function Z3d(a, b, c2) {
- return l3d(this, BD(a, 72), BD(b, 72), c2);
- };
- _2.oi = function _3d(a, b) {
- return t3d(this, a, BD(b, 72));
- };
- _2.dl = function x3d(a, b) {
- return q2d(this, a, b);
- };
- _2.Wc = function y3d(a, b) {
- var c2, d, e, f2, g, h, i3, j, k;
- j = new zud(b.gc());
- for (e = b.Kc(); e.Ob(); ) {
- d = BD(e.Pb(), 72);
- f2 = d.ak();
- if (T6d(this.e, f2)) {
- (!f2.hi() || !E2d(this, f2, d.dd()) && !pud(j, d)) && wtd(j, d);
- } else {
- k = S6d(this.e.Tg(), f2);
- c2 = BD(this.g, 119);
- g = true;
- for (h = 0; h < this.i; ++h) {
- i3 = c2[h];
- if (k.rl(i3.ak())) {
- BD(Gtd(this, h, d), 72);
- g = false;
- break;
- }
- }
- g && wtd(j, d);
- }
- }
- return xtd(this, a, j);
- };
- _2.Gc = function z3d(a) {
- var b, c2, d, e, f2, g, h, i3, j;
- i3 = new zud(a.gc());
- for (d = a.Kc(); d.Ob(); ) {
- c2 = BD(d.Pb(), 72);
- e = c2.ak();
- if (T6d(this.e, e)) {
- (!e.hi() || !E2d(this, e, c2.dd()) && !pud(i3, c2)) && wtd(i3, c2);
- } else {
- j = S6d(this.e.Tg(), e);
- b = BD(this.g, 119);
- f2 = true;
- for (g = 0; g < this.i; ++g) {
- h = b[g];
- if (j.rl(h.ak())) {
- BD(Gtd(this, g, c2), 72);
- f2 = false;
- break;
- }
- }
- f2 && wtd(i3, c2);
- }
- }
- return ytd(this, i3);
- };
- _2.Wh = function A3d(a) {
- this.j = -1;
- return Pxd(this, this.i, a);
- };
- _2.el = function C3d(a, b, c2) {
- return x2d(this, a, b, c2);
- };
- _2.mk = function D3d(a, b) {
- return B2d(this, a, b);
- };
- _2.fl = function E3d(a, b, c2) {
- return C2d(this, a, b, c2);
- };
- _2.gl = function F3d() {
- return this;
- };
- _2.hl = function G3d(a, b) {
- return K2d(this, a, b);
- };
- _2.il = function H3d(a) {
- return BD(qud(this, a), 72).ak();
- };
- _2.jl = function I3d(a) {
- return BD(qud(this, a), 72).dd();
- };
- _2.kl = function J3d() {
- return this.b;
- };
- _2.bj = function K3d() {
- return true;
- };
- _2.ij = function L3d() {
- return true;
- };
- _2.ll = function O3d(a) {
- return !R2d(this, a);
- };
- _2.ri = function Q3d(a) {
- return KC(D9, owe, 332, a, 0, 1);
- };
- _2.Gk = function S3d(a) {
- return a3d(this, a);
- };
- _2.Wb = function U3d(a) {
- d3d(this, a);
- };
- _2.ml = function V3d(a, b) {
- f3d(this, a, b);
- };
- _2.nl = function W3d(a) {
- return g3d(this, a);
- };
- _2.ol = function $3d(a) {
- s3d(this, a);
- };
- mdb(yve, "BasicFeatureMap", 75);
- bcb(1851, 1, jie);
- _2.Nb = function f4d(a) {
- Rrb(this, a);
- };
- _2.Rb = function e4d(b) {
- if (this.g == -1) {
- throw vbb(new Ydb());
- }
- a4d(this);
- try {
- p2d(this.e, this.b, this.a, b);
- this.d = this.e.j;
- d4d(this);
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- throw vbb(new Apb());
- } else
- throw vbb(a);
- }
- };
- _2.Ob = function g4d() {
- return b4d(this);
- };
- _2.Sb = function h4d() {
- return c4d(this);
- };
- _2.Pb = function i4d() {
- return d4d(this);
- };
- _2.Tb = function j4d() {
- return this.a;
- };
- _2.Ub = function k4d() {
- var a;
- if (c4d(this)) {
- a4d(this);
- this.g = --this.a;
- if (this.Lk()) {
- a = b3d(this.e, this.b, this.c, this.a, this.j);
- this.j = a;
- }
- this.i = 0;
- return this.j;
- } else {
- throw vbb(new utb());
- }
- };
- _2.Vb = function l4d() {
- return this.a - 1;
- };
- _2.Qb = function m4d() {
- if (this.g == -1) {
- throw vbb(new Ydb());
- }
- a4d(this);
- try {
- Z2d(this.e, this.b, this.g);
- this.d = this.e.j;
- if (this.g < this.a) {
- --this.a;
- --this.c;
- }
- --this.g;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- throw vbb(new Apb());
- } else
- throw vbb(a);
- }
- };
- _2.Lk = function n4d() {
- return false;
- };
- _2.Wb = function o4d(b) {
- if (this.g == -1) {
- throw vbb(new Ydb());
- }
- a4d(this);
- try {
- e3d(this.e, this.b, this.g, b);
- this.d = this.e.j;
- } catch (a) {
- a = ubb(a);
- if (JD(a, 73)) {
- throw vbb(new Apb());
- } else
- throw vbb(a);
- }
- };
- _2.a = 0;
- _2.c = 0;
- _2.d = 0;
- _2.f = false;
- _2.g = 0;
- _2.i = 0;
- mdb(yve, "FeatureMapUtil/BasicFeatureEIterator", 1851);
- bcb(410, 1851, jie, p4d);
- _2.pl = function q4d() {
- var a, b, c2;
- c2 = this.e.i;
- a = BD(this.e.g, 119);
- while (this.c < c2) {
- b = a[this.c];
- if (this.k.rl(b.ak())) {
- this.j = this.f ? b : b.dd();
- this.i = 2;
- return true;
- }
- ++this.c;
- }
- this.i = 1;
- this.g = -1;
- return false;
- };
- _2.ql = function r4d() {
- var a, b;
- a = BD(this.e.g, 119);
- while (--this.c >= 0) {
- b = a[this.c];
- if (this.k.rl(b.ak())) {
- this.j = this.f ? b : b.dd();
- this.i = -2;
- return true;
- }
- }
- this.i = -1;
- this.g = -1;
- return false;
- };
- mdb(yve, "BasicFeatureMap/FeatureEIterator", 410);
- bcb(662, 410, jie, s4d);
- _2.Lk = function t4d() {
- return true;
- };
- mdb(yve, "BasicFeatureMap/ResolvingFeatureEIterator", 662);
- bcb(955, 486, Vve, u4d);
- _2.Gi = function v4d() {
- return this;
- };
- mdb(yve, "EContentsEList/1", 955);
- bcb(956, 486, Vve, w4d);
- _2.Lk = function x4d() {
- return false;
- };
- mdb(yve, "EContentsEList/2", 956);
- bcb(954, 279, Wve, y4d);
- _2.Nk = function z4d(a) {
- };
- _2.Ob = function A4d() {
- return false;
- };
- _2.Sb = function B4d() {
- return false;
- };
- mdb(yve, "EContentsEList/FeatureIteratorImpl/1", 954);
- bcb(825, 585, Pve, C4d);
- _2.ci = function D4d() {
- this.a = true;
- };
- _2.fj = function E4d() {
- return this.a;
- };
- _2.Xj = function F4d() {
- var a;
- Uxd(this);
- if (oid(this.e)) {
- a = this.a;
- this.a = false;
- Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
- } else {
- this.a = false;
- }
- };
- _2.a = false;
- mdb(yve, "EDataTypeEList/Unsettable", 825);
- bcb(1849, 585, Pve, G4d);
- _2.hi = function H4d() {
- return true;
- };
- mdb(yve, "EDataTypeUniqueEList", 1849);
- bcb(1850, 825, Pve, I4d);
- _2.hi = function J4d() {
- return true;
- };
- mdb(yve, "EDataTypeUniqueEList/Unsettable", 1850);
- bcb(139, 85, Pve, K4d);
- _2.Ek = function L4d() {
- return true;
- };
- _2.li = function M4d(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectContainmentEList/Resolving", 139);
- bcb(1163, 545, Pve, N4d);
- _2.Ek = function O4d() {
- return true;
- };
- _2.li = function P4d(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectContainmentEList/Unsettable/Resolving", 1163);
- bcb(748, 16, Pve, Q4d);
- _2.ci = function R4d() {
- this.a = true;
- };
- _2.fj = function S4d() {
- return this.a;
- };
- _2.Xj = function T4d() {
- var a;
- Uxd(this);
- if (oid(this.e)) {
- a = this.a;
- this.a = false;
- Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
- } else {
- this.a = false;
- }
- };
- _2.a = false;
- mdb(yve, "EObjectContainmentWithInverseEList/Unsettable", 748);
- bcb(1173, 748, Pve, U4d);
- _2.Ek = function V4d() {
- return true;
- };
- _2.li = function W4d(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectContainmentWithInverseEList/Unsettable/Resolving", 1173);
- bcb(743, 496, Pve, X4d);
- _2.ci = function Y4d() {
- this.a = true;
- };
- _2.fj = function Z4d() {
- return this.a;
- };
- _2.Xj = function $4d() {
- var a;
- Uxd(this);
- if (oid(this.e)) {
- a = this.a;
- this.a = false;
- Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
- } else {
- this.a = false;
- }
- };
- _2.a = false;
- mdb(yve, "EObjectEList/Unsettable", 743);
- bcb(328, 496, Pve, _4d);
- _2.Ek = function a5d() {
- return true;
- };
- _2.li = function b5d(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectResolvingEList", 328);
- bcb(1641, 743, Pve, c5d);
- _2.Ek = function d5d() {
- return true;
- };
- _2.li = function e5d(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectResolvingEList/Unsettable", 1641);
- bcb(1381, 1, {}, h5d);
- var f5d;
- mdb(yve, "EObjectValidator", 1381);
- bcb(546, 496, Pve, i5d);
- _2.zk = function j5d() {
- return this.d;
- };
- _2.Ak = function k5d() {
- return this.b;
- };
- _2.bj = function l5d() {
- return true;
- };
- _2.Dk = function m5d() {
- return true;
- };
- _2.b = 0;
- mdb(yve, "EObjectWithInverseEList", 546);
- bcb(1176, 546, Pve, n5d);
- _2.Ck = function o5d() {
- return true;
- };
- mdb(yve, "EObjectWithInverseEList/ManyInverse", 1176);
- bcb(625, 546, Pve, p5d);
- _2.ci = function q5d() {
- this.a = true;
- };
- _2.fj = function r5d() {
- return this.a;
- };
- _2.Xj = function s5d() {
- var a;
- Uxd(this);
- if (oid(this.e)) {
- a = this.a;
- this.a = false;
- Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
- } else {
- this.a = false;
- }
- };
- _2.a = false;
- mdb(yve, "EObjectWithInverseEList/Unsettable", 625);
- bcb(1175, 625, Pve, t5d);
- _2.Ck = function u5d() {
- return true;
- };
- mdb(yve, "EObjectWithInverseEList/Unsettable/ManyInverse", 1175);
- bcb(749, 546, Pve, v5d);
- _2.Ek = function w5d() {
- return true;
- };
- _2.li = function x5d(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectWithInverseResolvingEList", 749);
- bcb(31, 749, Pve, y5d);
- _2.Ck = function z5d() {
- return true;
- };
- mdb(yve, "EObjectWithInverseResolvingEList/ManyInverse", 31);
- bcb(750, 625, Pve, A5d);
- _2.Ek = function B5d() {
- return true;
- };
- _2.li = function C5d(a, b) {
- return ILd(this, a, BD(b, 56));
- };
- mdb(yve, "EObjectWithInverseResolvingEList/Unsettable", 750);
- bcb(1174, 750, Pve, D5d);
- _2.Ck = function E5d() {
- return true;
- };
- mdb(yve, "EObjectWithInverseResolvingEList/Unsettable/ManyInverse", 1174);
- bcb(1164, 622, Pve);
- _2.ai = function F5d() {
- return (this.b & 1792) == 0;
- };
- _2.ci = function G5d() {
- this.b |= 1;
- };
- _2.Bk = function H5d() {
- return (this.b & 4) != 0;
- };
- _2.bj = function I5d() {
- return (this.b & 40) != 0;
- };
- _2.Ck = function J5d() {
- return (this.b & 16) != 0;
- };
- _2.Dk = function K5d() {
- return (this.b & 8) != 0;
- };
- _2.Ek = function L5d() {
- return (this.b & Dve) != 0;
- };
- _2.rk = function M5d() {
- return (this.b & 32) != 0;
- };
- _2.Fk = function N5d() {
- return (this.b & zte) != 0;
- };
- _2.wj = function O5d(a) {
- return !this.d ? this.ak().Yj().wj(a) : qEd(this.d, a);
- };
- _2.fj = function P5d() {
- return (this.b & 2) != 0 ? (this.b & 1) != 0 : this.i != 0;
- };
- _2.hi = function Q5d() {
- return (this.b & 128) != 0;
- };
- _2.Xj = function S5d() {
- var a;
- Uxd(this);
- if ((this.b & 2) != 0) {
- if (oid(this.e)) {
- a = (this.b & 1) != 0;
- this.b &= -2;
- GLd(this, new qSd(this.e, 2, bLd(this.e.Tg(), this.ak()), a, false));
- } else {
- this.b &= -2;
- }
- }
- };
- _2.ni = function T5d() {
- return (this.b & 1536) == 0;
- };
- _2.b = 0;
- mdb(yve, "EcoreEList/Generic", 1164);
- bcb(1165, 1164, Pve, U5d);
- _2.ak = function V5d() {
- return this.a;
- };
- mdb(yve, "EcoreEList/Dynamic", 1165);
- bcb(747, 63, oue, W5d);
- _2.ri = function X5d(a) {
- return izd(this.a.a, a);
- };
- mdb(yve, "EcoreEMap/1", 747);
- bcb(746, 85, Pve, Y5d);
- _2.bi = function Z5d(a, b) {
- uAd(this.b, BD(b, 133));
- };
- _2.di = function $5d(a, b) {
- tAd(this.b);
- };
- _2.ei = function _5d(a, b, c2) {
- var d;
- ++(d = this.b, BD(b, 133), d).e;
- };
- _2.fi = function a6d(a, b) {
- vAd(this.b, BD(b, 133));
- };
- _2.gi = function b6d(a, b, c2) {
- vAd(this.b, BD(c2, 133));
- PD(c2) === PD(b) && BD(c2, 133).Th(CAd(BD(b, 133).cd()));
- uAd(this.b, BD(b, 133));
- };
- mdb(yve, "EcoreEMap/DelegateEObjectContainmentEList", 746);
- bcb(1171, 151, Ave, c6d);
- mdb(yve, "EcoreEMap/Unsettable", 1171);
- bcb(1172, 746, Pve, d6d);
- _2.ci = function e6d() {
- this.a = true;
- };
- _2.fj = function f6d() {
- return this.a;
- };
- _2.Xj = function g6d() {
- var a;
- Uxd(this);
- if (oid(this.e)) {
- a = this.a;
- this.a = false;
- Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
- } else {
- this.a = false;
- }
- };
- _2.a = false;
- mdb(yve, "EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList", 1172);
- bcb(1168, 228, fke, A6d);
- _2.a = false;
- _2.b = false;
- mdb(yve, "EcoreUtil/Copier", 1168);
- bcb(745, 1, aie, C6d);
- _2.Nb = function D6d(a) {
- Rrb(this, a);
- };
- _2.Ob = function E6d() {
- return B6d(this);
- };
- _2.Pb = function F6d() {
- var a;
- B6d(this);
- a = this.b;
- this.b = null;
- return a;
- };
- _2.Qb = function G6d() {
- this.a.Qb();
- };
- mdb(yve, "EcoreUtil/ProperContentIterator", 745);
- bcb(1382, 1381, {}, J6d);
- var H6d;
- mdb(yve, "EcoreValidator", 1382);
- var P6d;
- odb(yve, "FeatureMapUtil/Validator");
- bcb(1260, 1, { 1942: 1 }, U6d);
- _2.rl = function V6d(a) {
- return true;
- };
- mdb(yve, "FeatureMapUtil/1", 1260);
- bcb(757, 1, { 1942: 1 }, Z6d);
- _2.rl = function $6d(a) {
- var b;
- if (this.c == a)
- return true;
- b = DD(Ohb(this.a, a));
- if (b == null) {
- if (Y6d(this, a)) {
- _6d(this.a, a, (Bcb(), Acb));
- return true;
- } else {
- _6d(this.a, a, (Bcb(), zcb));
- return false;
- }
- } else {
- return b == (Bcb(), Acb);
- }
- };
- _2.e = false;
- var W6d;
- mdb(yve, "FeatureMapUtil/BasicValidator", 757);
- bcb(758, 43, fke, a7d);
- mdb(yve, "FeatureMapUtil/BasicValidator/Cache", 758);
- bcb(501, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, f7d);
- _2.Vc = function g7d(a, b) {
- p2d(this.c, this.b, a, b);
- };
- _2.Fc = function h7d(a) {
- return q2d(this.c, this.b, a);
- };
- _2.Wc = function i7d(a, b) {
- return s2d(this.c, this.b, a, b);
- };
- _2.Gc = function j7d(a) {
- return b7d(this, a);
- };
- _2.Xh = function k7d(a, b) {
- u2d(this.c, this.b, a, b);
- };
- _2.lk = function l7d(a, b) {
- return x2d(this.c, this.b, a, b);
- };
- _2.pi = function m7d(a) {
- return J2d(this.c, this.b, a, false);
- };
- _2.Zh = function n7d() {
- return y2d(this.c, this.b);
- };
- _2.$h = function o7d() {
- return z2d(this.c, this.b);
- };
- _2._h = function p7d(a) {
- return A2d(this.c, this.b, a);
- };
- _2.mk = function q7d(a, b) {
- return c7d(this, a, b);
- };
- _2.$b = function r7d() {
- d7d(this);
- };
- _2.Hc = function s7d(a) {
- return E2d(this.c, this.b, a);
- };
- _2.Ic = function t7d(a) {
- return G2d(this.c, this.b, a);
- };
- _2.Xb = function u7d(a) {
- return J2d(this.c, this.b, a, true);
- };
- _2.Wj = function v7d(a) {
- return this;
- };
- _2.Xc = function w7d(a) {
- return L2d(this.c, this.b, a);
- };
- _2.dc = function x7d() {
- return e7d(this);
- };
- _2.fj = function y7d() {
- return !R2d(this.c, this.b);
- };
- _2.Kc = function z7d() {
- return S2d(this.c, this.b);
- };
- _2.Yc = function A7d() {
- return U2d(this.c, this.b);
- };
- _2.Zc = function B7d(a) {
- return V2d(this.c, this.b, a);
- };
- _2.ii = function C7d(a, b) {
- return X2d(this.c, this.b, a, b);
- };
- _2.ji = function D7d(a, b) {
- Y2d(this.c, this.b, a, b);
- };
- _2.$c = function E7d(a) {
- return Z2d(this.c, this.b, a);
- };
- _2.Mc = function F7d(a) {
- return $2d(this.c, this.b, a);
- };
- _2._c = function G7d(a, b) {
- return e3d(this.c, this.b, a, b);
- };
- _2.Wb = function H7d(a) {
- D2d(this.c, this.b);
- b7d(this, BD(a, 15));
- };
- _2.gc = function I7d() {
- return n3d(this.c, this.b);
- };
- _2.Pc = function J7d() {
- return o3d(this.c, this.b);
- };
- _2.Qc = function K7d(a) {
- return q3d(this.c, this.b, a);
- };
- _2.Ib = function L7d() {
- var a, b;
- b = new Hfb();
- b.a += "[";
- for (a = y2d(this.c, this.b); b4d(a); ) {
- Efb(b, xfb(d4d(a)));
- b4d(a) && (b.a += She, b);
- }
- b.a += "]";
- return b.a;
- };
- _2.Xj = function M7d() {
- D2d(this.c, this.b);
- };
- mdb(yve, "FeatureMapUtil/FeatureEList", 501);
- bcb(627, 36, fve, O7d);
- _2.yi = function P7d(a) {
- return N7d(this, a);
- };
- _2.Di = function Q7d(a) {
- var b, c2, d, e, f2, g, h;
- switch (this.d) {
- case 1:
- case 2: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
- this.g = a.zi();
- a.xi() == 1 && (this.d = 1);
- return true;
- }
- break;
- }
- case 3: {
- e = a.xi();
- switch (e) {
- case 3: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
- this.d = 5;
- b = new zud(2);
- wtd(b, this.g);
- wtd(b, a.zi());
- this.g = b;
- return true;
- }
- break;
- }
- }
- break;
- }
- case 5: {
- e = a.xi();
- switch (e) {
- case 3: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
- c2 = BD(this.g, 14);
- c2.Fc(a.zi());
- return true;
- }
- break;
- }
- }
- break;
- }
- case 4: {
- e = a.xi();
- switch (e) {
- case 3: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
- this.d = 1;
- this.g = a.zi();
- return true;
- }
- break;
- }
- case 4: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
- this.d = 6;
- h = new zud(2);
- wtd(h, this.n);
- wtd(h, a.Bi());
- this.n = h;
- g = OC(GC(WD, 1), oje, 25, 15, [this.o, a.Ci()]);
- this.g = g;
- return true;
- }
- break;
- }
- }
- break;
- }
- case 6: {
- e = a.xi();
- switch (e) {
- case 4: {
- f2 = a.Ai();
- if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
- c2 = BD(this.n, 14);
- c2.Fc(a.Bi());
- g = BD(this.g, 48);
- d = KC(WD, oje, 25, g.length + 1, 15, 1);
- $fb(g, 0, d, 0, g.length);
- d[g.length] = a.Ci();
- this.g = d;
- return true;
- }
- break;
- }
- }
- break;
- }
- }
- return false;
- };
- mdb(yve, "FeatureMapUtil/FeatureENotificationImpl", 627);
- bcb(552, 501, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, R7d);
- _2.dl = function S7d(a, b) {
- return q2d(this.c, a, b);
- };
- _2.el = function T7d(a, b, c2) {
- return x2d(this.c, a, b, c2);
- };
- _2.fl = function U7d(a, b, c2) {
- return C2d(this.c, a, b, c2);
- };
- _2.gl = function V7d() {
- return this;
- };
- _2.hl = function W7d(a, b) {
- return K2d(this.c, a, b);
- };
- _2.il = function X7d(a) {
- return BD(J2d(this.c, this.b, a, false), 72).ak();
- };
- _2.jl = function Y7d(a) {
- return BD(J2d(this.c, this.b, a, false), 72).dd();
- };
- _2.kl = function Z7d() {
- return this.a;
- };
- _2.ll = function $7d(a) {
- return !R2d(this.c, a);
- };
- _2.ml = function _7d(a, b) {
- f3d(this.c, a, b);
- };
- _2.nl = function a8d(a) {
- return g3d(this.c, a);
- };
- _2.ol = function b8d(a) {
- s3d(this.c, a);
- };
- mdb(yve, "FeatureMapUtil/FeatureFeatureMap", 552);
- bcb(1259, 1, zve, c8d);
- _2.Wj = function d8d(a) {
- return J2d(this.b, this.a, -1, a);
- };
- _2.fj = function e8d() {
- return !R2d(this.b, this.a);
- };
- _2.Wb = function f8d(a) {
- f3d(this.b, this.a, a);
- };
- _2.Xj = function g8d() {
- D2d(this.b, this.a);
- };
- mdb(yve, "FeatureMapUtil/FeatureValue", 1259);
- var h8d, i8d, j8d, k8d, l8d;
- var Q9 = odb(Iwe, "AnyType");
- bcb(666, 60, Tie, n8d);
- mdb(Iwe, "InvalidDatatypeValueException", 666);
- var S9 = odb(Iwe, Jwe);
- var T9 = odb(Iwe, Kwe);
- var U9 = odb(Iwe, Lwe);
- var o8d;
- var q8d;
- var s8d, t8d, u8d, v8d, w8d, x8d, y8d, z8d, A8d, B8d, C8d, D8d, E8d, F8d, G8d, H8d, I8d, J8d, K8d, L8d, M8d, N8d, O8d, P8d;
- bcb(830, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1 }, R8d);
- _2._g = function S8d(a, b, c2) {
- switch (a) {
- case 0:
- if (c2)
- return !this.c && (this.c = new u3d(this, 0)), this.c;
- return !this.c && (this.c = new u3d(this, 0)), this.c.b;
- case 1:
- if (c2)
- return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153);
- return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl();
- case 2:
- if (c2)
- return !this.b && (this.b = new u3d(this, 2)), this.b;
- return !this.b && (this.b = new u3d(this, 2)), this.b.b;
- }
- return bid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
- };
- _2.jh = function T8d(a, b, c2) {
- var d;
- switch (b) {
- case 0:
- return !this.c && (this.c = new u3d(this, 0)), B2d(this.c, a, c2);
- case 1:
- return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 69)).mk(a, c2);
- case 2:
- return !this.b && (this.b = new u3d(this, 2)), B2d(this.b, a, c2);
- }
- return d = BD(XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd(this.zh()), a, c2);
- };
- _2.lh = function U8d(a) {
- switch (a) {
- case 0:
- return !!this.c && this.c.i != 0;
- case 1:
- return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc();
- case 2:
- return !!this.b && this.b.i != 0;
- }
- return cid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- _2.sh = function V8d(a, b) {
- switch (a) {
- case 0:
- !this.c && (this.c = new u3d(this, 0));
- d3d(this.c, b);
- return;
- case 1:
- (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b);
- return;
- case 2:
- !this.b && (this.b = new u3d(this, 2));
- d3d(this.b, b);
- return;
- }
- did(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
- };
- _2.zh = function W8d() {
- return Q8d(), s8d;
- };
- _2.Bh = function X8d(a) {
- switch (a) {
- case 0:
- !this.c && (this.c = new u3d(this, 0));
- Uxd(this.c);
- return;
- case 1:
- (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b();
- return;
- case 2:
- !this.b && (this.b = new u3d(this, 2));
- Uxd(this.b);
- return;
- }
- eid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- _2.Ib = function Y8d() {
- var a;
- if ((this.j & 4) != 0)
- return Eid(this);
- a = new Jfb(Eid(this));
- a.a += " (mixed: ";
- Dfb(a, this.c);
- a.a += ", anyAttribute: ";
- Dfb(a, this.b);
- a.a += ")";
- return a.a;
- };
- mdb(Mwe, "AnyTypeImpl", 830);
- bcb(667, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2021: 1, 667: 1 }, _8d);
- _2._g = function a9d(a, b, c2) {
- switch (a) {
- case 0:
- return this.a;
- case 1:
- return this.b;
- }
- return bid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
- };
- _2.lh = function b9d(a) {
- switch (a) {
- case 0:
- return this.a != null;
- case 1:
- return this.b != null;
- }
- return cid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- _2.sh = function c9d(a, b) {
- switch (a) {
- case 0:
- Z8d(this, GD(b));
- return;
- case 1:
- $8d(this, GD(b));
- return;
- }
- did(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
- };
- _2.zh = function d9d() {
- return Q8d(), F8d;
- };
- _2.Bh = function e9d(a) {
- switch (a) {
- case 0:
- this.a = null;
- return;
- case 1:
- this.b = null;
- return;
- }
- eid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- _2.Ib = function f9d() {
- var a;
- if ((this.j & 4) != 0)
- return Eid(this);
- a = new Jfb(Eid(this));
- a.a += " (data: ";
- Efb(a, this.a);
- a.a += ", target: ";
- Efb(a, this.b);
- a.a += ")";
- return a.a;
- };
- _2.a = null;
- _2.b = null;
- mdb(Mwe, "ProcessingInstructionImpl", 667);
- bcb(668, 830, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1, 2022: 1, 668: 1 }, i9d);
- _2._g = function j9d(a, b, c2) {
- switch (a) {
- case 0:
- if (c2)
- return !this.c && (this.c = new u3d(this, 0)), this.c;
- return !this.c && (this.c = new u3d(this, 0)), this.c.b;
- case 1:
- if (c2)
- return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153);
- return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl();
- case 2:
- if (c2)
- return !this.b && (this.b = new u3d(this, 2)), this.b;
- return !this.b && (this.b = new u3d(this, 2)), this.b.b;
- case 3:
- return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true));
- case 4:
- return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true))));
- case 5:
- return this.a;
- }
- return bid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
- };
- _2.lh = function k9d(a) {
- switch (a) {
- case 0:
- return !!this.c && this.c.i != 0;
- case 1:
- return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc();
- case 2:
- return !!this.b && this.b.i != 0;
- case 3:
- return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)) != null;
- case 4:
- return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)))) != null;
- case 5:
- return !!this.a;
- }
- return cid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- _2.sh = function l9d(a, b) {
- switch (a) {
- case 0:
- !this.c && (this.c = new u3d(this, 0));
- d3d(this.c, b);
- return;
- case 1:
- (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b);
- return;
- case 2:
- !this.b && (this.b = new u3d(this, 2));
- d3d(this.b, b);
- return;
- case 3:
- h9d(this, GD(b));
- return;
- case 4:
- h9d(this, h6d(this.a, b));
- return;
- case 5:
- g9d(this, BD(b, 148));
- return;
- }
- did(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
- };
- _2.zh = function m9d() {
- return Q8d(), H8d;
- };
- _2.Bh = function n9d(a) {
- switch (a) {
- case 0:
- !this.c && (this.c = new u3d(this, 0));
- Uxd(this.c);
- return;
- case 1:
- (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b();
- return;
- case 2:
- !this.b && (this.b = new u3d(this, 2));
- Uxd(this.b);
- return;
- case 3:
- !this.c && (this.c = new u3d(this, 0));
- f3d(this.c, (Q8d(), I8d), null);
- return;
- case 4:
- h9d(this, h6d(this.a, null));
- return;
- case 5:
- this.a = null;
- return;
- }
- eid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- mdb(Mwe, "SimpleAnyTypeImpl", 668);
- bcb(669, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2023: 1, 669: 1 }, o9d);
- _2._g = function p9d(a, b, c2) {
- switch (a) {
- case 0:
- if (c2)
- return !this.a && (this.a = new u3d(this, 0)), this.a;
- return !this.a && (this.a = new u3d(this, 0)), this.a.b;
- case 1:
- return c2 ? (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), this.b) : (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), FAd(this.b));
- case 2:
- return c2 ? (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), this.c) : (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), FAd(this.c));
- case 3:
- return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), L8d));
- case 4:
- return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), M8d));
- case 5:
- return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), O8d));
- case 6:
- return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), P8d));
- }
- return bid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
- };
- _2.jh = function q9d(a, b, c2) {
- var d;
- switch (b) {
- case 0:
- return !this.a && (this.a = new u3d(this, 0)), B2d(this.a, a, c2);
- case 1:
- return !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), bId(this.b, a, c2);
- case 2:
- return !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), bId(this.c, a, c2);
- case 5:
- return !this.a && (this.a = new u3d(this, 0)), c7d(T2d(this.a, (Q8d(), O8d)), a, c2);
- }
- return d = BD(XKd((this.j & 2) == 0 ? (Q8d(), K8d) : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd((Q8d(), K8d)), a, c2);
- };
- _2.lh = function r9d(a) {
- switch (a) {
- case 0:
- return !!this.a && this.a.i != 0;
- case 1:
- return !!this.b && this.b.f != 0;
- case 2:
- return !!this.c && this.c.f != 0;
- case 3:
- return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), L8d)));
- case 4:
- return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), M8d)));
- case 5:
- return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), O8d)));
- case 6:
- return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), P8d)));
- }
- return cid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- _2.sh = function s9d(a, b) {
- switch (a) {
- case 0:
- !this.a && (this.a = new u3d(this, 0));
- d3d(this.a, b);
- return;
- case 1:
- !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1));
- cId(this.b, b);
- return;
- case 2:
- !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2));
- cId(this.c, b);
- return;
- case 3:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), L8d)));
- !this.a && (this.a = new u3d(this, 0));
- b7d(T2d(this.a, L8d), BD(b, 14));
- return;
- case 4:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), M8d)));
- !this.a && (this.a = new u3d(this, 0));
- b7d(T2d(this.a, M8d), BD(b, 14));
- return;
- case 5:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), O8d)));
- !this.a && (this.a = new u3d(this, 0));
- b7d(T2d(this.a, O8d), BD(b, 14));
- return;
- case 6:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), P8d)));
- !this.a && (this.a = new u3d(this, 0));
- b7d(T2d(this.a, P8d), BD(b, 14));
- return;
- }
- did(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
- };
- _2.zh = function t9d() {
- return Q8d(), K8d;
- };
- _2.Bh = function u9d(a) {
- switch (a) {
- case 0:
- !this.a && (this.a = new u3d(this, 0));
- Uxd(this.a);
- return;
- case 1:
- !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1));
- this.b.c.$b();
- return;
- case 2:
- !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2));
- this.c.c.$b();
- return;
- case 3:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), L8d)));
- return;
- case 4:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), M8d)));
- return;
- case 5:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), O8d)));
- return;
- case 6:
- !this.a && (this.a = new u3d(this, 0));
- d7d(T2d(this.a, (Q8d(), P8d)));
- return;
- }
- eid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
- };
- _2.Ib = function v9d() {
- var a;
- if ((this.j & 4) != 0)
- return Eid(this);
- a = new Jfb(Eid(this));
- a.a += " (mixed: ";
- Dfb(a, this.a);
- a.a += ")";
- return a.a;
- };
- mdb(Mwe, "XMLTypeDocumentRootImpl", 669);
- bcb(1919, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1, 2024: 1 }, U9d);
- _2.Ih = function V9d(a, b) {
- switch (a.yj()) {
- case 7:
- case 8:
- case 9:
- case 10:
- case 16:
- case 22:
- case 23:
- case 24:
- case 25:
- case 26:
- case 32:
- case 33:
- case 34:
- case 36:
- case 37:
- case 44:
- case 45:
- case 50:
- case 51:
- case 53:
- case 55:
- case 56:
- case 57:
- case 58:
- case 60:
- case 61:
- case 4:
- return b == null ? null : fcb(b);
- case 19:
- case 28:
- case 29:
- case 35:
- case 38:
- case 39:
- case 41:
- case 46:
- case 52:
- case 54:
- case 5:
- return GD(b);
- case 6:
- return C9d(BD(b, 190));
- case 12:
- case 47:
- case 49:
- case 11:
- return Vmd(this, a, b);
- case 13:
- return b == null ? null : qgb(BD(b, 240));
- case 15:
- case 14:
- return b == null ? null : D9d(Edb(ED(b)));
- case 17:
- return E9d((Q8d(), b));
- case 18:
- return E9d(b);
- case 21:
- case 20:
- return b == null ? null : F9d(BD(b, 155).a);
- case 27:
- return G9d(BD(b, 190));
- case 30:
- return H9d((Q8d(), BD(b, 15)));
- case 31:
- return H9d(BD(b, 15));
- case 40:
- return K9d((Q8d(), b));
- case 42:
- return I9d((Q8d(), b));
- case 43:
- return I9d(b);
- case 59:
- case 48:
- return J9d((Q8d(), b));
- default:
- throw vbb(new Wdb(tte + a.ne() + ute));
- }
- };
- _2.Jh = function W9d(a) {
- var b, c2, d, e, f2;
- switch (a.G == -1 && (a.G = (c2 = bKd(a), c2 ? HLd(c2.Mh(), a) : -1)), a.G) {
- case 0:
- return b = new R8d(), b;
- case 1:
- return d = new _8d(), d;
- case 2:
- return e = new i9d(), e;
- case 3:
- return f2 = new o9d(), f2;
- default:
- throw vbb(new Wdb(xte + a.zb + ute));
- }
- };
- _2.Kh = function X9d(a, b) {
- var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
- switch (a.yj()) {
- case 5:
- case 52:
- case 4:
- return b;
- case 6:
- return L9d(b);
- case 8:
- case 7:
- return b == null ? null : B9d(b);
- case 9:
- return b == null ? null : Scb(Icb((d = Qge(b, true), d.length > 0 && (BCb(0, d.length), d.charCodeAt(0) == 43) ? d.substr(1) : d), -128, 127) << 24 >> 24);
- case 10:
- return b == null ? null : Scb(Icb((e = Qge(b, true), e.length > 0 && (BCb(0, e.length), e.charCodeAt(0) == 43) ? e.substr(1) : e), -128, 127) << 24 >> 24);
- case 11:
- return GD(Wmd(this, (Q8d(), w8d), b));
- case 12:
- return GD(Wmd(this, (Q8d(), x8d), b));
- case 13:
- return b == null ? null : new tgb(Qge(b, true));
- case 15:
- case 14:
- return M9d(b);
- case 16:
- return GD(Wmd(this, (Q8d(), y8d), b));
- case 17:
- return N9d((Q8d(), b));
- case 18:
- return N9d(b);
- case 28:
- case 29:
- case 35:
- case 38:
- case 39:
- case 41:
- case 54:
- case 19:
- return Qge(b, true);
- case 21:
- case 20:
- return O9d(b);
- case 22:
- return GD(Wmd(this, (Q8d(), z8d), b));
- case 23:
- return GD(Wmd(this, (Q8d(), A8d), b));
- case 24:
- return GD(Wmd(this, (Q8d(), B8d), b));
- case 25:
- return GD(Wmd(this, (Q8d(), C8d), b));
- case 26:
- return GD(Wmd(this, (Q8d(), D8d), b));
- case 27:
- return P9d(b);
- case 30:
- return Q9d((Q8d(), b));
- case 31:
- return Q9d(b);
- case 32:
- return b == null ? null : meb(Icb((k = Qge(b, true), k.length > 0 && (BCb(0, k.length), k.charCodeAt(0) == 43) ? k.substr(1) : k), Rie, Ohe));
- case 33:
- return b == null ? null : new Ygb((l = Qge(b, true), l.length > 0 && (BCb(0, l.length), l.charCodeAt(0) == 43) ? l.substr(1) : l));
- case 34:
- return b == null ? null : meb(Icb((m = Qge(b, true), m.length > 0 && (BCb(0, m.length), m.charCodeAt(0) == 43) ? m.substr(1) : m), Rie, Ohe));
- case 36:
- return b == null ? null : Aeb(Jcb((n = Qge(b, true), n.length > 0 && (BCb(0, n.length), n.charCodeAt(0) == 43) ? n.substr(1) : n)));
- case 37:
- return b == null ? null : Aeb(Jcb((o2 = Qge(b, true), o2.length > 0 && (BCb(0, o2.length), o2.charCodeAt(0) == 43) ? o2.substr(1) : o2)));
- case 40:
- return T9d((Q8d(), b));
- case 42:
- return R9d((Q8d(), b));
- case 43:
- return R9d(b);
- case 44:
- return b == null ? null : new Ygb((p = Qge(b, true), p.length > 0 && (BCb(0, p.length), p.charCodeAt(0) == 43) ? p.substr(1) : p));
- case 45:
- return b == null ? null : new Ygb((q = Qge(b, true), q.length > 0 && (BCb(0, q.length), q.charCodeAt(0) == 43) ? q.substr(1) : q));
- case 46:
- return Qge(b, false);
- case 47:
- return GD(Wmd(this, (Q8d(), E8d), b));
- case 59:
- case 48:
- return S9d((Q8d(), b));
- case 49:
- return GD(Wmd(this, (Q8d(), G8d), b));
- case 50:
- return b == null ? null : Web(Icb((r = Qge(b, true), r.length > 0 && (BCb(0, r.length), r.charCodeAt(0) == 43) ? r.substr(1) : r), awe, 32767) << 16 >> 16);
- case 51:
- return b == null ? null : Web(Icb((f2 = Qge(b, true), f2.length > 0 && (BCb(0, f2.length), f2.charCodeAt(0) == 43) ? f2.substr(1) : f2), awe, 32767) << 16 >> 16);
- case 53:
- return GD(Wmd(this, (Q8d(), J8d), b));
- case 55:
- return b == null ? null : Web(Icb((g = Qge(b, true), g.length > 0 && (BCb(0, g.length), g.charCodeAt(0) == 43) ? g.substr(1) : g), awe, 32767) << 16 >> 16);
- case 56:
- return b == null ? null : Web(Icb((h = Qge(b, true), h.length > 0 && (BCb(0, h.length), h.charCodeAt(0) == 43) ? h.substr(1) : h), awe, 32767) << 16 >> 16);
- case 57:
- return b == null ? null : Aeb(Jcb((i3 = Qge(b, true), i3.length > 0 && (BCb(0, i3.length), i3.charCodeAt(0) == 43) ? i3.substr(1) : i3)));
- case 58:
- return b == null ? null : Aeb(Jcb((j = Qge(b, true), j.length > 0 && (BCb(0, j.length), j.charCodeAt(0) == 43) ? j.substr(1) : j)));
- case 60:
- return b == null ? null : meb(Icb((c2 = Qge(b, true), c2.length > 0 && (BCb(0, c2.length), c2.charCodeAt(0) == 43) ? c2.substr(1) : c2), Rie, Ohe));
- case 61:
- return b == null ? null : meb(Icb(Qge(b, true), Rie, Ohe));
- default:
- throw vbb(new Wdb(tte + a.ne() + ute));
- }
- };
- var w9d, x9d, y9d, z9d;
- mdb(Mwe, "XMLTypeFactoryImpl", 1919);
- bcb(586, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1, 1945: 1, 586: 1 }, cae);
- _2.N = false;
- _2.O = false;
- var Z9d = false;
- mdb(Mwe, "XMLTypePackageImpl", 586);
- bcb(1852, 1, { 837: 1 }, fae);
- _2._j = function gae() {
- return Uge(), Tge;
- };
- mdb(Mwe, "XMLTypePackageImpl/1", 1852);
- bcb(1861, 1, nwe, hae);
- _2.wj = function iae(a) {
- return ND(a);
- };
- _2.xj = function jae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/10", 1861);
- bcb(1862, 1, nwe, kae);
- _2.wj = function lae(a) {
- return ND(a);
- };
- _2.xj = function mae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/11", 1862);
- bcb(1863, 1, nwe, nae);
- _2.wj = function oae(a) {
- return ND(a);
- };
- _2.xj = function pae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/12", 1863);
- bcb(1864, 1, nwe, qae);
- _2.wj = function rae(a) {
- return LD(a);
- };
- _2.xj = function sae(a) {
- return KC(BI, nie, 333, a, 7, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/13", 1864);
- bcb(1865, 1, nwe, tae);
- _2.wj = function uae(a) {
- return ND(a);
- };
- _2.xj = function vae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/14", 1865);
- bcb(1866, 1, nwe, wae);
- _2.wj = function xae(a) {
- return JD(a, 15);
- };
- _2.xj = function yae(a) {
- return KC(yK, eme, 15, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/15", 1866);
- bcb(1867, 1, nwe, zae);
- _2.wj = function Aae(a) {
- return JD(a, 15);
- };
- _2.xj = function Bae(a) {
- return KC(yK, eme, 15, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/16", 1867);
- bcb(1868, 1, nwe, Cae);
- _2.wj = function Dae(a) {
- return ND(a);
- };
- _2.xj = function Eae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/17", 1868);
- bcb(1869, 1, nwe, Fae);
- _2.wj = function Gae(a) {
- return JD(a, 155);
- };
- _2.xj = function Hae(a) {
- return KC(FI, nie, 155, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/18", 1869);
- bcb(1870, 1, nwe, Iae);
- _2.wj = function Jae(a) {
- return ND(a);
- };
- _2.xj = function Kae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/19", 1870);
- bcb(1853, 1, nwe, Lae);
- _2.wj = function Mae(a) {
- return JD(a, 843);
- };
- _2.xj = function Nae(a) {
- return KC(Q9, Uhe, 843, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/2", 1853);
- bcb(1871, 1, nwe, Oae);
- _2.wj = function Pae(a) {
- return ND(a);
- };
- _2.xj = function Qae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/20", 1871);
- bcb(1872, 1, nwe, Rae);
- _2.wj = function Sae(a) {
- return ND(a);
- };
- _2.xj = function Tae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/21", 1872);
- bcb(1873, 1, nwe, Uae);
- _2.wj = function Vae(a) {
- return ND(a);
- };
- _2.xj = function Wae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/22", 1873);
- bcb(1874, 1, nwe, Xae);
- _2.wj = function Yae(a) {
- return ND(a);
- };
- _2.xj = function Zae(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/23", 1874);
- bcb(1875, 1, nwe, $ae);
- _2.wj = function _ae(a) {
- return JD(a, 190);
- };
- _2.xj = function abe(a) {
- return KC(SD, nie, 190, a, 0, 2);
- };
- mdb(Mwe, "XMLTypePackageImpl/24", 1875);
- bcb(1876, 1, nwe, bbe);
- _2.wj = function cbe(a) {
- return ND(a);
- };
- _2.xj = function dbe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/25", 1876);
- bcb(1877, 1, nwe, ebe);
- _2.wj = function fbe(a) {
- return ND(a);
- };
- _2.xj = function gbe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/26", 1877);
- bcb(1878, 1, nwe, hbe);
- _2.wj = function ibe(a) {
- return JD(a, 15);
- };
- _2.xj = function jbe(a) {
- return KC(yK, eme, 15, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/27", 1878);
- bcb(1879, 1, nwe, kbe);
- _2.wj = function lbe(a) {
- return JD(a, 15);
- };
- _2.xj = function mbe(a) {
- return KC(yK, eme, 15, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/28", 1879);
- bcb(1880, 1, nwe, nbe);
- _2.wj = function obe(a) {
- return ND(a);
- };
- _2.xj = function pbe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/29", 1880);
- bcb(1854, 1, nwe, qbe);
- _2.wj = function rbe(a) {
- return JD(a, 667);
- };
- _2.xj = function sbe(a) {
- return KC(S9, Uhe, 2021, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/3", 1854);
- bcb(1881, 1, nwe, tbe);
- _2.wj = function ube(a) {
- return JD(a, 19);
- };
- _2.xj = function vbe(a) {
- return KC(JI, nie, 19, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/30", 1881);
- bcb(1882, 1, nwe, wbe);
- _2.wj = function xbe(a) {
- return ND(a);
- };
- _2.xj = function ybe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/31", 1882);
- bcb(1883, 1, nwe, zbe);
- _2.wj = function Abe(a) {
- return JD(a, 162);
- };
- _2.xj = function Bbe(a) {
- return KC(MI, nie, 162, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/32", 1883);
- bcb(1884, 1, nwe, Cbe);
- _2.wj = function Dbe(a) {
- return ND(a);
- };
- _2.xj = function Ebe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/33", 1884);
- bcb(1885, 1, nwe, Fbe);
- _2.wj = function Gbe(a) {
- return ND(a);
- };
- _2.xj = function Hbe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/34", 1885);
- bcb(1886, 1, nwe, Ibe);
- _2.wj = function Jbe(a) {
- return ND(a);
- };
- _2.xj = function Kbe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/35", 1886);
- bcb(1887, 1, nwe, Lbe);
- _2.wj = function Mbe(a) {
- return ND(a);
- };
- _2.xj = function Nbe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/36", 1887);
- bcb(1888, 1, nwe, Obe);
- _2.wj = function Pbe(a) {
- return JD(a, 15);
- };
- _2.xj = function Qbe(a) {
- return KC(yK, eme, 15, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/37", 1888);
- bcb(1889, 1, nwe, Rbe);
- _2.wj = function Sbe(a) {
- return JD(a, 15);
- };
- _2.xj = function Tbe(a) {
- return KC(yK, eme, 15, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/38", 1889);
- bcb(1890, 1, nwe, Ube);
- _2.wj = function Vbe(a) {
- return ND(a);
- };
- _2.xj = function Wbe(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/39", 1890);
- bcb(1855, 1, nwe, Xbe);
- _2.wj = function Ybe(a) {
- return JD(a, 668);
- };
- _2.xj = function Zbe(a) {
- return KC(T9, Uhe, 2022, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/4", 1855);
- bcb(1891, 1, nwe, $be);
- _2.wj = function _be(a) {
- return ND(a);
- };
- _2.xj = function ace(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/40", 1891);
- bcb(1892, 1, nwe, bce);
- _2.wj = function cce(a) {
- return ND(a);
- };
- _2.xj = function dce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/41", 1892);
- bcb(1893, 1, nwe, ece);
- _2.wj = function fce(a) {
- return ND(a);
- };
- _2.xj = function gce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/42", 1893);
- bcb(1894, 1, nwe, hce);
- _2.wj = function ice(a) {
- return ND(a);
- };
- _2.xj = function jce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/43", 1894);
- bcb(1895, 1, nwe, kce);
- _2.wj = function lce(a) {
- return ND(a);
- };
- _2.xj = function mce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/44", 1895);
- bcb(1896, 1, nwe, nce);
- _2.wj = function oce(a) {
- return JD(a, 184);
- };
- _2.xj = function pce(a) {
- return KC(UI, nie, 184, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/45", 1896);
- bcb(1897, 1, nwe, qce);
- _2.wj = function rce(a) {
- return ND(a);
- };
- _2.xj = function sce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/46", 1897);
- bcb(1898, 1, nwe, tce);
- _2.wj = function uce(a) {
- return ND(a);
- };
- _2.xj = function vce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/47", 1898);
- bcb(1899, 1, nwe, wce);
- _2.wj = function xce(a) {
- return ND(a);
- };
- _2.xj = function yce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/48", 1899);
- bcb(nje, 1, nwe, zce);
- _2.wj = function Ace(a) {
- return JD(a, 184);
- };
- _2.xj = function Bce(a) {
- return KC(UI, nie, 184, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/49", nje);
- bcb(1856, 1, nwe, Cce);
- _2.wj = function Dce(a) {
- return JD(a, 669);
- };
- _2.xj = function Ece(a) {
- return KC(U9, Uhe, 2023, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/5", 1856);
- bcb(1901, 1, nwe, Fce);
- _2.wj = function Gce(a) {
- return JD(a, 162);
- };
- _2.xj = function Hce(a) {
- return KC(MI, nie, 162, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/50", 1901);
- bcb(1902, 1, nwe, Ice);
- _2.wj = function Jce(a) {
- return ND(a);
- };
- _2.xj = function Kce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/51", 1902);
- bcb(1903, 1, nwe, Lce);
- _2.wj = function Mce(a) {
- return JD(a, 19);
- };
- _2.xj = function Nce(a) {
- return KC(JI, nie, 19, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/52", 1903);
- bcb(1857, 1, nwe, Oce);
- _2.wj = function Pce(a) {
- return ND(a);
- };
- _2.xj = function Qce(a) {
- return KC(ZI, nie, 2, a, 6, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/6", 1857);
- bcb(1858, 1, nwe, Rce);
- _2.wj = function Sce(a) {
- return JD(a, 190);
- };
- _2.xj = function Tce(a) {
- return KC(SD, nie, 190, a, 0, 2);
- };
- mdb(Mwe, "XMLTypePackageImpl/7", 1858);
- bcb(1859, 1, nwe, Uce);
- _2.wj = function Vce(a) {
- return KD(a);
- };
- _2.xj = function Wce(a) {
- return KC(wI, nie, 476, a, 8, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/8", 1859);
- bcb(1860, 1, nwe, Xce);
- _2.wj = function Yce(a) {
- return JD(a, 217);
- };
- _2.xj = function Zce(a) {
- return KC(xI, nie, 217, a, 0, 1);
- };
- mdb(Mwe, "XMLTypePackageImpl/9", 1860);
- var $ce, _ce;
- var fde, gde;
- var kde;
- bcb(50, 60, Tie, mde);
- mdb(kxe, "RegEx/ParseException", 50);
- bcb(820, 1, {}, ude);
- _2.sl = function vde(a) {
- return a < this.j && bfb(this.i, a) == 63;
- };
- _2.tl = function wde() {
- var a, b, c2, d, e;
- if (this.c != 10)
- throw vbb(new mde(tvd((h0d(), uue))));
- a = this.a;
- switch (a) {
- case 101:
- a = 27;
- break;
- case 102:
- a = 12;
- break;
- case 110:
- a = 10;
- break;
- case 114:
- a = 13;
- break;
- case 116:
- a = 9;
- break;
- case 120:
- nde(this);
- if (this.c != 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- if (this.a == 123) {
- e = 0;
- c2 = 0;
- do {
- nde(this);
- if (this.c != 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- if ((e = yde(this.a)) < 0)
- break;
- if (c2 > c2 * 16)
- throw vbb(new mde(tvd((h0d(), Uue))));
- c2 = c2 * 16 + e;
- } while (true);
- if (this.a != 125)
- throw vbb(new mde(tvd((h0d(), Vue))));
- if (c2 > lxe)
- throw vbb(new mde(tvd((h0d(), Wue))));
- a = c2;
- } else {
- e = 0;
- if (this.c != 0 || (e = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- c2 = e;
- nde(this);
- if (this.c != 0 || (e = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- c2 = c2 * 16 + e;
- a = c2;
- }
- break;
- case 117:
- d = 0;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- a = b;
- break;
- case 118:
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- nde(this);
- if (this.c != 0 || (d = yde(this.a)) < 0)
- throw vbb(new mde(tvd((h0d(), Tue))));
- b = b * 16 + d;
- if (b > lxe)
- throw vbb(new mde(tvd((h0d(), "parser.descappe.4"))));
- a = b;
- break;
- case 65:
- case 90:
- case 122:
- throw vbb(new mde(tvd((h0d(), Xue))));
- }
- return a;
- };
- _2.ul = function xde(a) {
- var b, c2;
- switch (a) {
- case 100:
- c2 = (this.e & 32) == 32 ? Kfe("Nd", true) : (wfe(), cfe);
- break;
- case 68:
- c2 = (this.e & 32) == 32 ? Kfe("Nd", false) : (wfe(), jfe);
- break;
- case 119:
- c2 = (this.e & 32) == 32 ? Kfe("IsWord", true) : (wfe(), sfe);
- break;
- case 87:
- c2 = (this.e & 32) == 32 ? Kfe("IsWord", false) : (wfe(), lfe);
- break;
- case 115:
- c2 = (this.e & 32) == 32 ? Kfe("IsSpace", true) : (wfe(), nfe);
- break;
- case 83:
- c2 = (this.e & 32) == 32 ? Kfe("IsSpace", false) : (wfe(), kfe);
- break;
- default:
- throw vbb(new hz((b = a, mxe + b.toString(16))));
- }
- return c2;
- };
- _2.vl = function zde(a) {
- var b, c2, d, e, f2, g, h, i3, j, k, l, m;
- this.b = 1;
- nde(this);
- b = null;
- if (this.c == 0 && this.a == 94) {
- nde(this);
- if (a) {
- k = (wfe(), wfe(), new $fe(5));
- } else {
- b = (wfe(), wfe(), new $fe(4));
- Ufe(b, 0, lxe);
- k = new $fe(4);
- }
- } else {
- k = (wfe(), wfe(), new $fe(4));
- }
- e = true;
- while ((m = this.c) != 1) {
- if (m == 0 && this.a == 93 && !e)
- break;
- e = false;
- c2 = this.a;
- d = false;
- if (m == 10) {
- switch (c2) {
- case 100:
- case 68:
- case 119:
- case 87:
- case 115:
- case 83:
- Xfe(k, this.ul(c2));
- d = true;
- break;
- case 105:
- case 73:
- case 99:
- case 67:
- c2 = this.Ll(k, c2);
- c2 < 0 && (d = true);
- break;
- case 112:
- case 80:
- l = tde(this, c2);
- if (!l)
- throw vbb(new mde(tvd((h0d(), Iue))));
- Xfe(k, l);
- d = true;
- break;
- default:
- c2 = this.tl();
- }
- } else if (m == 20) {
- g = gfb(this.i, 58, this.d);
- if (g < 0)
- throw vbb(new mde(tvd((h0d(), Jue))));
- h = true;
- if (bfb(this.i, this.d) == 94) {
- ++this.d;
- h = false;
- }
- f2 = qfb(this.i, this.d, g);
- i3 = Lfe(f2, h, (this.e & 512) == 512);
- if (!i3)
- throw vbb(new mde(tvd((h0d(), Lue))));
- Xfe(k, i3);
- d = true;
- if (g + 1 >= this.j || bfb(this.i, g + 1) != 93)
- throw vbb(new mde(tvd((h0d(), Jue))));
- this.d = g + 2;
- }
- nde(this);
- if (!d) {
- if (this.c != 0 || this.a != 45) {
- Ufe(k, c2, c2);
- } else {
- nde(this);
- if ((m = this.c) == 1)
- throw vbb(new mde(tvd((h0d(), Kue))));
- if (m == 0 && this.a == 93) {
- Ufe(k, c2, c2);
- Ufe(k, 45, 45);
- } else {
- j = this.a;
- m == 10 && (j = this.tl());
- nde(this);
- Ufe(k, c2, j);
- }
- }
- }
- (this.e & zte) == zte && this.c == 0 && this.a == 44 && nde(this);
- }
- if (this.c == 1)
- throw vbb(new mde(tvd((h0d(), Kue))));
- if (b) {
- Zfe(b, k);
- k = b;
- }
- Yfe(k);
- Vfe(k);
- this.b = 0;
- nde(this);
- return k;
- };
- _2.wl = function Ade() {
- var a, b, c2, d;
- c2 = this.vl(false);
- while ((d = this.c) != 7) {
- a = this.a;
- if (d == 0 && (a == 45 || a == 38) || d == 4) {
- nde(this);
- if (this.c != 9)
- throw vbb(new mde(tvd((h0d(), Que))));
- b = this.vl(false);
- if (d == 4)
- Xfe(c2, b);
- else if (a == 45)
- Zfe(c2, b);
- else if (a == 38)
- Wfe(c2, b);
- else
- throw vbb(new hz("ASSERT"));
- } else {
- throw vbb(new mde(tvd((h0d(), Rue))));
- }
- }
- nde(this);
- return c2;
- };
- _2.xl = function Bde() {
- var a, b;
- a = this.a - 48;
- b = (wfe(), wfe(), new Hge(12, null, a));
- !this.g && (this.g = new Wvb());
- Tvb(this.g, new cge(a));
- nde(this);
- return b;
- };
- _2.yl = function Cde() {
- nde(this);
- return wfe(), ofe;
- };
- _2.zl = function Dde() {
- nde(this);
- return wfe(), mfe;
- };
- _2.Al = function Ede() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Bl = function Fde() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Cl = function Gde() {
- nde(this);
- return Ife();
- };
- _2.Dl = function Hde() {
- nde(this);
- return wfe(), qfe;
- };
- _2.El = function Ide() {
- nde(this);
- return wfe(), tfe;
- };
- _2.Fl = function Jde() {
- var a;
- if (this.d >= this.j || ((a = bfb(this.i, this.d++)) & 65504) != 64)
- throw vbb(new mde(tvd((h0d(), Eue))));
- nde(this);
- return wfe(), wfe(), new ige(0, a - 64);
- };
- _2.Gl = function Kde() {
- nde(this);
- return Jfe();
- };
- _2.Hl = function Lde() {
- nde(this);
- return wfe(), ufe;
- };
- _2.Il = function Mde() {
- var a;
- a = (wfe(), wfe(), new ige(0, 105));
- nde(this);
- return a;
- };
- _2.Jl = function Nde() {
- nde(this);
- return wfe(), rfe;
- };
- _2.Kl = function Ode() {
- nde(this);
- return wfe(), pfe;
- };
- _2.Ll = function Pde(a, b) {
- return this.tl();
- };
- _2.Ml = function Qde() {
- nde(this);
- return wfe(), hfe;
- };
- _2.Nl = function Rde() {
- var a, b, c2, d, e;
- if (this.d + 1 >= this.j)
- throw vbb(new mde(tvd((h0d(), Bue))));
- d = -1;
- b = null;
- a = bfb(this.i, this.d);
- if (49 <= a && a <= 57) {
- d = a - 48;
- !this.g && (this.g = new Wvb());
- Tvb(this.g, new cge(d));
- ++this.d;
- if (bfb(this.i, this.d) != 41)
- throw vbb(new mde(tvd((h0d(), yue))));
- ++this.d;
- } else {
- a == 63 && --this.d;
- nde(this);
- b = qde(this);
- switch (b.e) {
- case 20:
- case 21:
- case 22:
- case 23:
- break;
- case 8:
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- break;
- default:
- throw vbb(new mde(tvd((h0d(), Cue))));
- }
- }
- nde(this);
- e = rde(this);
- c2 = null;
- if (e.e == 2) {
- if (e.em() != 2)
- throw vbb(new mde(tvd((h0d(), Due))));
- c2 = e.am(1);
- e = e.am(0);
- }
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return wfe(), wfe(), new vge(d, b, e, c2);
- };
- _2.Ol = function Sde() {
- nde(this);
- return wfe(), ife;
- };
- _2.Pl = function Tde() {
- var a;
- nde(this);
- a = Cfe(24, rde(this));
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return a;
- };
- _2.Ql = function Ude() {
- var a;
- nde(this);
- a = Cfe(20, rde(this));
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return a;
- };
- _2.Rl = function Vde() {
- var a;
- nde(this);
- a = Cfe(22, rde(this));
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return a;
- };
- _2.Sl = function Wde() {
- var a, b, c2, d, e;
- a = 0;
- c2 = 0;
- b = -1;
- while (this.d < this.j) {
- b = bfb(this.i, this.d);
- e = Uee(b);
- if (e == 0)
- break;
- a |= e;
- ++this.d;
- }
- if (this.d >= this.j)
- throw vbb(new mde(tvd((h0d(), zue))));
- if (b == 45) {
- ++this.d;
- while (this.d < this.j) {
- b = bfb(this.i, this.d);
- e = Uee(b);
- if (e == 0)
- break;
- c2 |= e;
- ++this.d;
- }
- if (this.d >= this.j)
- throw vbb(new mde(tvd((h0d(), zue))));
- }
- if (b == 58) {
- ++this.d;
- nde(this);
- d = Dfe(rde(this), a, c2);
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- } else if (b == 41) {
- ++this.d;
- nde(this);
- d = Dfe(rde(this), a, c2);
- } else
- throw vbb(new mde(tvd((h0d(), Aue))));
- return d;
- };
- _2.Tl = function Xde() {
- var a;
- nde(this);
- a = Cfe(21, rde(this));
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return a;
- };
- _2.Ul = function Yde() {
- var a;
- nde(this);
- a = Cfe(23, rde(this));
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return a;
- };
- _2.Vl = function Zde() {
- var a, b;
- nde(this);
- a = this.f++;
- b = Efe(rde(this), a);
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return b;
- };
- _2.Wl = function $de() {
- var a;
- nde(this);
- a = Efe(rde(this), 0);
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return a;
- };
- _2.Xl = function _de(a) {
- nde(this);
- if (this.c == 5) {
- nde(this);
- return Bfe(a, (wfe(), wfe(), new lge(9, a)));
- } else
- return Bfe(a, (wfe(), wfe(), new lge(3, a)));
- };
- _2.Yl = function aee(a) {
- var b;
- nde(this);
- b = (wfe(), wfe(), new Lge(2));
- if (this.c == 5) {
- nde(this);
- Kge(b, ffe);
- Kge(b, a);
- } else {
- Kge(b, a);
- Kge(b, ffe);
- }
- return b;
- };
- _2.Zl = function bee(a) {
- nde(this);
- if (this.c == 5) {
- nde(this);
- return wfe(), wfe(), new lge(9, a);
- } else
- return wfe(), wfe(), new lge(3, a);
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- _2.d = 0;
- _2.e = 0;
- _2.f = 1;
- _2.g = null;
- _2.j = 0;
- mdb(kxe, "RegEx/RegexParser", 820);
- bcb(1824, 820, {}, hee);
- _2.sl = function iee(a) {
- return false;
- };
- _2.tl = function jee() {
- return eee(this);
- };
- _2.ul = function lee(a) {
- return fee(a);
- };
- _2.vl = function mee(a) {
- return gee(this);
- };
- _2.wl = function nee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.xl = function oee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.yl = function pee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.zl = function qee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Al = function ree() {
- nde(this);
- return fee(67);
- };
- _2.Bl = function see() {
- nde(this);
- return fee(73);
- };
- _2.Cl = function tee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Dl = function uee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.El = function vee2() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Fl = function wee() {
- nde(this);
- return fee(99);
- };
- _2.Gl = function xee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Hl = function yee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Il = function zee() {
- nde(this);
- return fee(105);
- };
- _2.Jl = function Aee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Kl = function Bee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Ll = function Cee(a, b) {
- return Xfe(a, fee(b)), -1;
- };
- _2.Ml = function Dee() {
- nde(this);
- return wfe(), wfe(), new ige(0, 94);
- };
- _2.Nl = function Eee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Ol = function Fee() {
- nde(this);
- return wfe(), wfe(), new ige(0, 36);
- };
- _2.Pl = function Gee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Ql = function Hee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Rl = function Iee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Sl = function Jee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Tl = function Kee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Ul = function Lee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Vl = function Mee() {
- var a;
- nde(this);
- a = Efe(rde(this), 0);
- if (this.c != 7)
- throw vbb(new mde(tvd((h0d(), yue))));
- nde(this);
- return a;
- };
- _2.Wl = function Nee() {
- throw vbb(new mde(tvd((h0d(), Yue))));
- };
- _2.Xl = function Oee(a) {
- nde(this);
- return Bfe(a, (wfe(), wfe(), new lge(3, a)));
- };
- _2.Yl = function Pee(a) {
- var b;
- nde(this);
- b = (wfe(), wfe(), new Lge(2));
- Kge(b, a);
- Kge(b, ffe);
- return b;
- };
- _2.Zl = function Qee(a) {
- nde(this);
- return wfe(), wfe(), new lge(3, a);
- };
- var cee = null, dee = null;
- mdb(kxe, "RegEx/ParserForXMLSchema", 1824);
- bcb(117, 1, yxe, xfe);
- _2.$l = function yfe(a) {
- throw vbb(new hz("Not supported."));
- };
- _2._l = function Gfe() {
- return -1;
- };
- _2.am = function Hfe(a) {
- return null;
- };
- _2.bm = function Mfe() {
- return null;
- };
- _2.cm = function Pfe(a) {
- };
- _2.dm = function Qfe(a) {
- };
- _2.em = function Rfe() {
- return 0;
- };
- _2.Ib = function Sfe() {
- return this.fm(0);
- };
- _2.fm = function Tfe(a) {
- return this.e == 11 ? "." : "";
- };
- _2.e = 0;
- var Yee, Zee, $ee, _ee, afe, bfe = null, cfe, dfe = null, efe, ffe, gfe = null, hfe, ife, jfe, kfe, lfe, mfe, nfe, ofe, pfe, qfe, rfe, sfe, tfe, ufe;
- var lbb = mdb(kxe, "RegEx/Token", 117);
- bcb(136, 117, { 3: 1, 136: 1, 117: 1 }, $fe);
- _2.fm = function bge(a) {
- var b, c2, d;
- if (this.e == 4) {
- if (this == efe)
- c2 = ".";
- else if (this == cfe)
- c2 = "\\d";
- else if (this == sfe)
- c2 = "\\w";
- else if (this == nfe)
- c2 = "\\s";
- else {
- d = new Hfb();
- d.a += "[";
- for (b = 0; b < this.b.length; b += 2) {
- (a & zte) != 0 && b > 0 && (d.a += ",", d);
- if (this.b[b] === this.b[b + 1]) {
- Efb(d, age(this.b[b]));
- } else {
- Efb(d, age(this.b[b]));
- d.a += "-";
- Efb(d, age(this.b[b + 1]));
- }
- }
- d.a += "]";
- c2 = d.a;
- }
- } else {
- if (this == jfe)
- c2 = "\\D";
- else if (this == lfe)
- c2 = "\\W";
- else if (this == kfe)
- c2 = "\\S";
- else {
- d = new Hfb();
- d.a += "[^";
- for (b = 0; b < this.b.length; b += 2) {
- (a & zte) != 0 && b > 0 && (d.a += ",", d);
- if (this.b[b] === this.b[b + 1]) {
- Efb(d, age(this.b[b]));
- } else {
- Efb(d, age(this.b[b]));
- d.a += "-";
- Efb(d, age(this.b[b + 1]));
- }
- }
- d.a += "]";
- c2 = d.a;
- }
- }
- return c2;
- };
- _2.a = false;
- _2.c = false;
- mdb(kxe, "RegEx/RangeToken", 136);
- bcb(584, 1, { 584: 1 }, cge);
- _2.a = 0;
- mdb(kxe, "RegEx/RegexParser/ReferencePosition", 584);
- bcb(583, 1, { 3: 1, 583: 1 }, ege);
- _2.Fb = function fge(a) {
- var b;
- if (a == null)
- return false;
- if (!JD(a, 583))
- return false;
- b = BD(a, 583);
- return dfb(this.b, b.b) && this.a == b.a;
- };
- _2.Hb = function gge() {
- return LCb(this.b + "/" + See(this.a));
- };
- _2.Ib = function hge() {
- return this.c.fm(this.a);
- };
- _2.a = 0;
- mdb(kxe, "RegEx/RegularExpression", 583);
- bcb(223, 117, yxe, ige);
- _2._l = function jge() {
- return this.a;
- };
- _2.fm = function kge(a) {
- var b, c2, d;
- switch (this.e) {
- case 0:
- switch (this.a) {
- case 124:
- case 42:
- case 43:
- case 63:
- case 40:
- case 41:
- case 46:
- case 91:
- case 123:
- case 92:
- d = "\\" + HD(this.a & aje);
- break;
- case 12:
- d = "\\f";
- break;
- case 10:
- d = "\\n";
- break;
- case 13:
- d = "\\r";
- break;
- case 9:
- d = "\\t";
- break;
- case 27:
- d = "\\e";
- break;
- default:
- if (this.a >= Tje) {
- c2 = (b = this.a >>> 0, "0" + b.toString(16));
- d = "\\v" + qfb(c2, c2.length - 6, c2.length);
- } else
- d = "" + HD(this.a & aje);
- }
- break;
- case 8:
- this == hfe || this == ife ? d = "" + HD(this.a & aje) : d = "\\" + HD(this.a & aje);
- break;
- default:
- d = null;
- }
- return d;
- };
- _2.a = 0;
- mdb(kxe, "RegEx/Token/CharToken", 223);
- bcb(309, 117, yxe, lge);
- _2.am = function mge(a) {
- return this.a;
- };
- _2.cm = function nge(a) {
- this.b = a;
- };
- _2.dm = function oge(a) {
- this.c = a;
- };
- _2.em = function pge() {
- return 1;
- };
- _2.fm = function qge(a) {
- var b;
- if (this.e == 3) {
- if (this.c < 0 && this.b < 0) {
- b = this.a.fm(a) + "*";
- } else if (this.c == this.b) {
- b = this.a.fm(a) + "{" + this.c + "}";
- } else if (this.c >= 0 && this.b >= 0) {
- b = this.a.fm(a) + "{" + this.c + "," + this.b + "}";
- } else if (this.c >= 0 && this.b < 0) {
- b = this.a.fm(a) + "{" + this.c + ",}";
- } else
- throw vbb(new hz("Token#toString(): CLOSURE " + this.c + She + this.b));
- } else {
- if (this.c < 0 && this.b < 0) {
- b = this.a.fm(a) + "*?";
- } else if (this.c == this.b) {
- b = this.a.fm(a) + "{" + this.c + "}?";
- } else if (this.c >= 0 && this.b >= 0) {
- b = this.a.fm(a) + "{" + this.c + "," + this.b + "}?";
- } else if (this.c >= 0 && this.b < 0) {
- b = this.a.fm(a) + "{" + this.c + ",}?";
- } else
- throw vbb(new hz("Token#toString(): NONGREEDYCLOSURE " + this.c + She + this.b));
- }
- return b;
- };
- _2.b = 0;
- _2.c = 0;
- mdb(kxe, "RegEx/Token/ClosureToken", 309);
- bcb(821, 117, yxe, rge);
- _2.am = function sge(a) {
- return a == 0 ? this.a : this.b;
- };
- _2.em = function tge() {
- return 2;
- };
- _2.fm = function uge(a) {
- var b;
- this.b.e == 3 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+" : this.b.e == 9 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+?" : b = this.a.fm(a) + ("" + this.b.fm(a));
- return b;
- };
- mdb(kxe, "RegEx/Token/ConcatToken", 821);
- bcb(1822, 117, yxe, vge);
- _2.am = function wge(a) {
- if (a == 0)
- return this.d;
- if (a == 1)
- return this.b;
- throw vbb(new hz("Internal Error: " + a));
- };
- _2.em = function xge() {
- return !this.b ? 1 : 2;
- };
- _2.fm = function yge(a) {
- var b;
- this.c > 0 ? b = "(?(" + this.c + ")" : this.a.e == 8 ? b = "(?(" + this.a + ")" : b = "(?" + this.a;
- !this.b ? b += this.d + ")" : b += this.d + "|" + this.b + ")";
- return b;
- };
- _2.c = 0;
- mdb(kxe, "RegEx/Token/ConditionToken", 1822);
- bcb(1823, 117, yxe, zge);
- _2.am = function Age(a) {
- return this.b;
- };
- _2.em = function Bge() {
- return 1;
- };
- _2.fm = function Cge(a) {
- return "(?" + (this.a == 0 ? "" : See(this.a)) + (this.c == 0 ? "" : See(this.c)) + ":" + this.b.fm(a) + ")";
- };
- _2.a = 0;
- _2.c = 0;
- mdb(kxe, "RegEx/Token/ModifierToken", 1823);
- bcb(822, 117, yxe, Dge);
- _2.am = function Ege(a) {
- return this.a;
- };
- _2.em = function Fge() {
- return 1;
- };
- _2.fm = function Gge(a) {
- var b;
- b = null;
- switch (this.e) {
- case 6:
- this.b == 0 ? b = "(?:" + this.a.fm(a) + ")" : b = "(" + this.a.fm(a) + ")";
- break;
- case 20:
- b = "(?=" + this.a.fm(a) + ")";
- break;
- case 21:
- b = "(?!" + this.a.fm(a) + ")";
- break;
- case 22:
- b = "(?<=" + this.a.fm(a) + ")";
- break;
- case 23:
- b = "(?" + this.a.fm(a) + ")";
- }
- return b;
- };
- _2.b = 0;
- mdb(kxe, "RegEx/Token/ParenToken", 822);
- bcb(521, 117, { 3: 1, 117: 1, 521: 1 }, Hge);
- _2.bm = function Ige() {
- return this.b;
- };
- _2.fm = function Jge(a) {
- return this.e == 12 ? "\\" + this.a : Wee(this.b);
- };
- _2.a = 0;
- mdb(kxe, "RegEx/Token/StringToken", 521);
- bcb(465, 117, yxe, Lge);
- _2.$l = function Mge(a) {
- Kge(this, a);
- };
- _2.am = function Nge(a) {
- return BD(Uvb(this.a, a), 117);
- };
- _2.em = function Oge() {
- return !this.a ? 0 : this.a.a.c.length;
- };
- _2.fm = function Pge(a) {
- var b, c2, d, e, f2;
- if (this.e == 1) {
- if (this.a.a.c.length == 2) {
- b = BD(Uvb(this.a, 0), 117);
- c2 = BD(Uvb(this.a, 1), 117);
- c2.e == 3 && c2.am(0) == b ? e = b.fm(a) + "+" : c2.e == 9 && c2.am(0) == b ? e = b.fm(a) + "+?" : e = b.fm(a) + ("" + c2.fm(a));
- } else {
- f2 = new Hfb();
- for (d = 0; d < this.a.a.c.length; d++) {
- Efb(f2, BD(Uvb(this.a, d), 117).fm(a));
- }
- e = f2.a;
- }
- return e;
- }
- if (this.a.a.c.length == 2 && BD(Uvb(this.a, 1), 117).e == 7) {
- e = BD(Uvb(this.a, 0), 117).fm(a) + "?";
- } else if (this.a.a.c.length == 2 && BD(Uvb(this.a, 0), 117).e == 7) {
- e = BD(Uvb(this.a, 1), 117).fm(a) + "??";
- } else {
- f2 = new Hfb();
- Efb(f2, BD(Uvb(this.a, 0), 117).fm(a));
- for (d = 1; d < this.a.a.c.length; d++) {
- f2.a += "|";
- Efb(f2, BD(Uvb(this.a, d), 117).fm(a));
- }
- e = f2.a;
- }
- return e;
- };
- mdb(kxe, "RegEx/Token/UnionToken", 465);
- bcb(518, 1, { 592: 1 }, Rge);
- _2.Ib = function Sge() {
- return this.a.b;
- };
- mdb(zxe, "XMLTypeUtil/PatternMatcherImpl", 518);
- bcb(1622, 1381, {}, Vge);
- var Tge;
- mdb(zxe, "XMLTypeValidator", 1622);
- bcb(264, 1, vie, Yge);
- _2.Jc = function Zge(a) {
- reb(this, a);
- };
- _2.Kc = function $ge() {
- return (this.b - this.a) * this.c < 0 ? Wge : new she(this);
- };
- _2.a = 0;
- _2.b = 0;
- _2.c = 0;
- var Wge;
- mdb(Bxe, "ExclusiveRange", 264);
- bcb(1068, 1, jie, dhe);
- _2.Rb = function ehe(a) {
- BD(a, 19);
- _ge();
- };
- _2.Nb = function fhe(a) {
- Rrb(this, a);
- };
- _2.Pb = function ihe() {
- return ahe();
- };
- _2.Ub = function khe() {
- return bhe();
- };
- _2.Wb = function nhe(a) {
- BD(a, 19);
- che();
- };
- _2.Ob = function ghe() {
- return false;
- };
- _2.Sb = function hhe() {
- return false;
- };
- _2.Tb = function jhe() {
- return -1;
- };
- _2.Vb = function lhe() {
- return -1;
- };
- _2.Qb = function mhe() {
- throw vbb(new cgb(Exe));
- };
- mdb(Bxe, "ExclusiveRange/1", 1068);
- bcb(254, 1, jie, she);
- _2.Rb = function the(a) {
- BD(a, 19);
- ohe();
- };
- _2.Nb = function uhe(a) {
- Rrb(this, a);
- };
- _2.Pb = function xhe() {
- return phe(this);
- };
- _2.Ub = function zhe() {
- return qhe(this);
- };
- _2.Wb = function Che(a) {
- BD(a, 19);
- rhe();
- };
- _2.Ob = function vhe() {
- return this.c.c < 0 ? this.a >= this.c.b : this.a <= this.c.b;
- };
- _2.Sb = function whe() {
- return this.b > 0;
- };
- _2.Tb = function yhe() {
- return this.b;
- };
- _2.Vb = function Ahe() {
- return this.b - 1;
- };
- _2.Qb = function Bhe() {
- throw vbb(new cgb(Exe));
- };
- _2.a = 0;
- _2.b = 0;
- mdb(Bxe, "ExclusiveRange/RangeIterator", 254);
- var TD = pdb(Fve, "C");
- var WD = pdb(Ive, "I");
- var sbb = pdb(Khe, "Z");
- var XD = pdb(Jve, "J");
- var SD = pdb(Eve, "B");
- var UD = pdb(Gve, "D");
- var VD = pdb(Hve, "F");
- var rbb = pdb(Kve, "S");
- var h1 = odb("org.eclipse.elk.core.labels", "ILabelManager");
- var O4 = odb(Tte, "DiagnosticChain");
- var u8 = odb(pwe, "ResourceSet");
- var V4 = mdb(Tte, "InvocationTargetException", null);
- var Ihe = (Az(), Dz);
- var gwtOnLoad = gwtOnLoad = Zbb;
- Xbb(hcb);
- $bb("permProps", [[[Fxe, Gxe], [Hxe, "gecko1_8"]], [[Fxe, Gxe], [Hxe, "ie10"]], [[Fxe, Gxe], [Hxe, "ie8"]], [[Fxe, Gxe], [Hxe, "ie9"]], [[Fxe, Gxe], [Hxe, "safari"]]]);
- gwtOnLoad(null, "elk", null);
- }).call(this);
- }).call(this, typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {});
- }, {}], 3: [function(require, module3, exports3) {
- function _classCallCheck(instance2, Constructor) {
- if (!(instance2 instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
- function _possibleConstructorReturn(self2, call) {
- if (!self2) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return call && (typeof call === "object" || typeof call === "function") ? call : self2;
- }
- function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
- if (superClass)
- Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
- }
- var ELK2 = require("./elk-api.js").default;
- var ELKNode = function(_ELK) {
- _inherits(ELKNode2, _ELK);
- function ELKNode2() {
- var options2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
- _classCallCheck(this, ELKNode2);
- var optionsClone = Object.assign({}, options2);
- var workerThreadsExist = false;
- try {
- require.resolve("web-worker");
- workerThreadsExist = true;
- } catch (e) {
- }
- if (options2.workerUrl) {
- if (workerThreadsExist) {
- var Worker2 = require("web-worker");
- optionsClone.workerFactory = function(url) {
- return new Worker2(url);
- };
- } else {
- console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.");
- }
- }
- if (!optionsClone.workerFactory) {
- var _require = require("./elk-worker.min.js"), _Worker = _require.Worker;
- optionsClone.workerFactory = function(url) {
- return new _Worker(url);
- };
- }
- return _possibleConstructorReturn(this, (ELKNode2.__proto__ || Object.getPrototypeOf(ELKNode2)).call(this, optionsClone));
- }
- return ELKNode2;
- }(ELK2);
- Object.defineProperty(module3.exports, "__esModule", {
- value: true
- });
- module3.exports = ELKNode;
- ELKNode.default = ELKNode;
- }, { "./elk-api.js": 1, "./elk-worker.min.js": 2, "web-worker": 4 }], 4: [function(require, module3, exports3) {
- module3.exports = Worker;
- }, {}] }, {}, [3])(3);
- });
- })(elk_bundled);
- const ELK = /* @__PURE__ */ getDefaultExportFromCjs(elk_bundledExports);
- const elk = new ELK();
- let portPos = {};
- const conf = {};
- let nodeDb = {};
- const addVertices = async function(vert, svgId, root2, doc, diagObj, parentLookupDb, graph) {
- const svg2 = root2.select(`[id="${svgId}"]`);
- const nodes2 = svg2.insert("g").attr("class", "nodes");
- const keys2 = Object.keys(vert);
- await Promise.all(
- keys2.map(async function(id2) {
- const vertex = vert[id2];
- let classStr = "default";
- if (vertex.classes.length > 0) {
- classStr = vertex.classes.join(" ");
- }
- classStr = classStr + " flowchart-label";
- const styles2 = getStylesFromArray(vertex.styles);
- let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
- const labelData = { width: 0, height: 0 };
- const ports = [
- {
- id: vertex.id + "-west",
- layoutOptions: {
- "port.side": "WEST"
- }
- },
- {
- id: vertex.id + "-east",
- layoutOptions: {
- "port.side": "EAST"
- }
- },
- {
- id: vertex.id + "-south",
- layoutOptions: {
- "port.side": "SOUTH"
- }
- },
- {
- id: vertex.id + "-north",
- layoutOptions: {
- "port.side": "NORTH"
- }
- }
- ];
- let radious = 0;
- let _shape = "";
- let layoutOptions = {};
- switch (vertex.type) {
- case "round":
- radious = 5;
- _shape = "rect";
- break;
- case "square":
- _shape = "rect";
- break;
- case "diamond":
- _shape = "question";
- layoutOptions = {
- portConstraints: "FIXED_SIDE"
- };
- break;
- case "hexagon":
- _shape = "hexagon";
- break;
- case "odd":
- _shape = "rect_left_inv_arrow";
- break;
- case "lean_right":
- _shape = "lean_right";
- break;
- case "lean_left":
- _shape = "lean_left";
- break;
- case "trapezoid":
- _shape = "trapezoid";
- break;
- case "inv_trapezoid":
- _shape = "inv_trapezoid";
- break;
- case "odd_right":
- _shape = "rect_left_inv_arrow";
- break;
- case "circle":
- _shape = "circle";
- break;
- case "ellipse":
- _shape = "ellipse";
- break;
- case "stadium":
- _shape = "stadium";
- break;
- case "subroutine":
- _shape = "subroutine";
- break;
- case "cylinder":
- _shape = "cylinder";
- break;
- case "group":
- _shape = "rect";
- break;
- case "doublecircle":
- _shape = "doublecircle";
- break;
- default:
- _shape = "rect";
- }
- const node2 = {
- labelStyle: styles2.labelStyle,
- shape: _shape,
- labelText: vertexText,
- labelType: vertex.labelType,
- rx: radious,
- ry: radious,
- class: classStr,
- style: styles2.style,
- id: vertex.id,
- link: vertex.link,
- linkTarget: vertex.linkTarget,
- tooltip: diagObj.db.getTooltip(vertex.id) || "",
- domId: diagObj.db.lookUpDomId(vertex.id),
- haveCallback: vertex.haveCallback,
- width: vertex.type === "group" ? 500 : void 0,
- dir: vertex.dir,
- type: vertex.type,
- props: vertex.props,
- padding: getConfig$1().flowchart.padding
- };
- let boundingBox;
- let nodeEl;
- if (node2.type !== "group") {
- nodeEl = await insertNode(nodes2, node2, vertex.dir);
- boundingBox = nodeEl.node().getBBox();
- } else {
- doc.createElementNS("http://www.w3.org/2000/svg", "text");
- const { shapeSvg, bbox } = await labelHelper(nodes2, node2, void 0, true);
- labelData.width = bbox.width;
- labelData.wrappingWidth = getConfig$1().flowchart.wrappingWidth;
- labelData.height = bbox.height;
- labelData.labelNode = shapeSvg.node();
- node2.labelData = labelData;
- }
- const data = {
- id: vertex.id,
- ports: vertex.type === "diamond" ? ports : [],
- // labelStyle: styles.labelStyle,
- // shape: _shape,
- layoutOptions,
- labelText: vertexText,
- labelData,
- // labels: [{ text: vertexText }],
- // rx: radius,
- // ry: radius,
- // class: classStr,
- // style: styles.style,
- // link: vertex.link,
- // linkTarget: vertex.linkTarget,
- // tooltip: diagObj.db.getTooltip(vertex.id) || '',
- domId: diagObj.db.lookUpDomId(vertex.id),
- // haveCallback: vertex.haveCallback,
- width: boundingBox == null ? void 0 : boundingBox.width,
- height: boundingBox == null ? void 0 : boundingBox.height,
- // dir: vertex.dir,
- type: vertex.type,
- // props: vertex.props,
- // padding: getConfig().flowchart.padding,
- // boundingBox,
- el: nodeEl,
- parent: parentLookupDb.parentById[vertex.id]
- };
- nodeDb[node2.id] = data;
- })
- );
- return graph;
- };
- const getNextPosition = (position2, edgeDirection, graphDirection) => {
- const portPos2 = {
- TB: {
- in: {
- north: "north"
- },
- out: {
- south: "west",
- west: "east",
- east: "south"
- }
- },
- LR: {
- in: {
- west: "west"
- },
- out: {
- east: "south",
- south: "north",
- north: "east"
- }
- },
- RL: {
- in: {
- east: "east"
- },
- out: {
- west: "north",
- north: "south",
- south: "west"
- }
- },
- BT: {
- in: {
- south: "south"
- },
- out: {
- north: "east",
- east: "west",
- west: "north"
- }
- }
- };
- portPos2.TD = portPos2.TB;
- log$1.info("abc88", graphDirection, edgeDirection, position2);
- return portPos2[graphDirection][edgeDirection][position2];
- };
- const getNextPort = (node2, edgeDirection, graphDirection) => {
- log$1.info("getNextPort abc88", { node: node2, edgeDirection, graphDirection });
- if (!portPos[node2]) {
- switch (graphDirection) {
- case "TB":
- case "TD":
- portPos[node2] = {
- inPosition: "north",
- outPosition: "south"
- };
- break;
- case "BT":
- portPos[node2] = {
- inPosition: "south",
- outPosition: "north"
- };
- break;
- case "RL":
- portPos[node2] = {
- inPosition: "east",
- outPosition: "west"
- };
- break;
- case "LR":
- portPos[node2] = {
- inPosition: "west",
- outPosition: "east"
- };
- break;
- }
- }
- const result = edgeDirection === "in" ? portPos[node2].inPosition : portPos[node2].outPosition;
- if (edgeDirection === "in") {
- portPos[node2].inPosition = getNextPosition(
- portPos[node2].inPosition,
- edgeDirection,
- graphDirection
- );
- } else {
- portPos[node2].outPosition = getNextPosition(
- portPos[node2].outPosition,
- edgeDirection,
- graphDirection
- );
- }
- return result;
- };
- const getEdgeStartEndPoint = (edge, dir) => {
- let source = edge.start;
- let target = edge.end;
- const sourceId = source;
- const targetId = target;
- const startNode = nodeDb[source];
- const endNode = nodeDb[target];
- if (!startNode || !endNode) {
- return { source, target };
- }
- if (startNode.type === "diamond") {
- source = `${source}-${getNextPort(source, "out", dir)}`;
- }
- if (endNode.type === "diamond") {
- target = `${target}-${getNextPort(target, "in", dir)}`;
- }
- return { source, target, sourceId, targetId };
- };
- const addEdges = function(edges2, diagObj, graph, svg2) {
- log$1.info("abc78 edges = ", edges2);
- const labelsEl = svg2.insert("g").attr("class", "edgeLabels");
- let linkIdCnt = {};
- let dir = diagObj.db.getDirection();
- let defaultStyle2;
- let defaultLabelStyle;
- if (edges2.defaultStyle !== void 0) {
- const defaultStyles = getStylesFromArray(edges2.defaultStyle);
- defaultStyle2 = defaultStyles.style;
- defaultLabelStyle = defaultStyles.labelStyle;
- }
- edges2.forEach(function(edge) {
- var linkIdBase = "L-" + edge.start + "-" + edge.end;
- if (linkIdCnt[linkIdBase] === void 0) {
- linkIdCnt[linkIdBase] = 0;
- log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
- } else {
- linkIdCnt[linkIdBase]++;
- log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
- }
- let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
- log$1.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
- var linkNameStart = "LS-" + edge.start;
- var linkNameEnd = "LE-" + edge.end;
- const edgeData = { style: "", labelStyle: "" };
- edgeData.minlen = edge.length || 1;
- if (edge.type === "arrow_open") {
- edgeData.arrowhead = "none";
- } else {
- edgeData.arrowhead = "normal";
- }
- edgeData.arrowTypeStart = "arrow_open";
- edgeData.arrowTypeEnd = "arrow_open";
- switch (edge.type) {
- case "double_arrow_cross":
- edgeData.arrowTypeStart = "arrow_cross";
- case "arrow_cross":
- edgeData.arrowTypeEnd = "arrow_cross";
- break;
- case "double_arrow_point":
- edgeData.arrowTypeStart = "arrow_point";
- case "arrow_point":
- edgeData.arrowTypeEnd = "arrow_point";
- break;
- case "double_arrow_circle":
- edgeData.arrowTypeStart = "arrow_circle";
- case "arrow_circle":
- edgeData.arrowTypeEnd = "arrow_circle";
- break;
- }
- let style = "";
- let labelStyle = "";
- switch (edge.stroke) {
- case "normal":
- style = "fill:none;";
- if (defaultStyle2 !== void 0) {
- style = defaultStyle2;
- }
- if (defaultLabelStyle !== void 0) {
- labelStyle = defaultLabelStyle;
- }
- edgeData.thickness = "normal";
- edgeData.pattern = "solid";
- break;
- case "dotted":
- edgeData.thickness = "normal";
- edgeData.pattern = "dotted";
- edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
- break;
- case "thick":
- edgeData.thickness = "thick";
- edgeData.pattern = "solid";
- edgeData.style = "stroke-width: 3.5px;fill:none;";
- break;
- }
- if (edge.style !== void 0) {
- const styles2 = getStylesFromArray(edge.style);
- style = styles2.style;
- labelStyle = styles2.labelStyle;
- }
- edgeData.style = edgeData.style += style;
- edgeData.labelStyle = edgeData.labelStyle += labelStyle;
- if (edge.interpolate !== void 0) {
- edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
- } else if (edges2.defaultInterpolate !== void 0) {
- edgeData.curve = interpolateToCurve(edges2.defaultInterpolate, curveLinear);
- } else {
- edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
- }
- if (edge.text === void 0) {
- if (edge.style !== void 0) {
- edgeData.arrowheadStyle = "fill: #333";
- }
- } else {
- edgeData.arrowheadStyle = "fill: #333";
- edgeData.labelpos = "c";
- }
- edgeData.labelType = edge.labelType;
- edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
- if (edge.style === void 0) {
- edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
- }
- edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
- edgeData.id = linkId;
- edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
- const labelEl = insertEdgeLabel(labelsEl, edgeData);
- const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir);
- log$1.debug("abc78 source and target", source, target);
- graph.edges.push({
- id: "e" + edge.start + edge.end,
- sources: [source],
- targets: [target],
- sourceId,
- targetId,
- labelEl,
- labels: [
- {
- width: edgeData.width,
- height: edgeData.height,
- orgWidth: edgeData.width,
- orgHeight: edgeData.height,
- text: edgeData.label,
- layoutOptions: {
- "edgeLabels.inline": "true",
- "edgeLabels.placement": "CENTER"
- }
- }
- ],
- edgeData
- });
- });
- return graph;
- };
- const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute) {
- let url = "";
- if (arrowMarkerAbsolute) {
- url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
- url = url.replace(/\(/g, "\\(");
- url = url.replace(/\)/g, "\\)");
- }
- switch (edgeData.arrowTypeStart) {
- case "arrow_cross":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
- break;
- case "arrow_point":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
- break;
- case "arrow_barb":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
- break;
- case "arrow_circle":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
- break;
- case "aggregation":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
- break;
- case "extension":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
- break;
- case "composition":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
- break;
- case "dependency":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
- break;
- case "lollipop":
- svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
- break;
- }
- switch (edgeData.arrowTypeEnd) {
- case "arrow_cross":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
- break;
- case "arrow_point":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
- break;
- case "arrow_barb":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
- break;
- case "arrow_circle":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
- break;
- case "aggregation":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
- break;
- case "extension":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
- break;
- case "composition":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
- break;
- case "dependency":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
- break;
- case "lollipop":
- svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
- break;
- }
- };
- const getClasses = function(text2, diagObj) {
- log$1.info("Extracting classes");
- diagObj.db.clear("ver-2");
- try {
- diagObj.parse(text2);
- return diagObj.db.getClasses();
- } catch (e) {
- return {};
- }
- };
- const addSubGraphs = function(db2) {
- const parentLookupDb = { parentById: {}, childrenById: {} };
- const subgraphs = db2.getSubGraphs();
- log$1.info("Subgraphs - ", subgraphs);
- subgraphs.forEach(function(subgraph) {
- subgraph.nodes.forEach(function(node2) {
- parentLookupDb.parentById[node2] = subgraph.id;
- if (parentLookupDb.childrenById[subgraph.id] === void 0) {
- parentLookupDb.childrenById[subgraph.id] = [];
- }
- parentLookupDb.childrenById[subgraph.id].push(node2);
- });
- });
- subgraphs.forEach(function(subgraph) {
- ({ id: subgraph.id });
- if (parentLookupDb.parentById[subgraph.id] !== void 0) {
- parentLookupDb.parentById[subgraph.id];
- }
- });
- return parentLookupDb;
- };
- const calcOffset = function(src, dest, parentLookupDb) {
- const ancestor = findCommonAncestor(src, dest, parentLookupDb);
- if (ancestor === void 0 || ancestor === "root") {
- return { x: 0, y: 0 };
- }
- const ancestorOffset = nodeDb[ancestor].offset;
- return { x: ancestorOffset.posX, y: ancestorOffset.posY };
- };
- const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb) {
- const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb);
- const src = edge.sections[0].startPoint;
- const dest = edge.sections[0].endPoint;
- const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];
- const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);
- const points = [
- [src.x + offset.x, src.y + offset.y],
- ...segPoints,
- [dest.x + offset.x, dest.y + offset.y]
- ];
- const curve = line$1().curve(curveLinear);
- const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path").attr("fill", "none");
- const edgeG = edgesEl.insert("g").attr("class", "edgeLabel");
- const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl));
- const box = edgeWithLabel.node().firstChild.getBoundingClientRect();
- edgeWithLabel.attr("width", box.width);
- edgeWithLabel.attr("height", box.height);
- edgeG.attr(
- "transform",
- `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})`
- );
- addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute);
- };
- const insertChildren = (nodeArray, parentLookupDb) => {
- nodeArray.forEach((node2) => {
- if (!node2.children) {
- node2.children = [];
- }
- const childIds = parentLookupDb.childrenById[node2.id];
- if (childIds) {
- childIds.forEach((childId) => {
- node2.children.push(nodeDb[childId]);
- });
- }
- insertChildren(node2.children, parentLookupDb);
- });
- };
- const draw$2 = async function(text2, id2, _version, diagObj) {
- var _a;
- diagObj.db.clear();
- nodeDb = {};
- portPos = {};
- diagObj.db.setGen("gen-2");
- diagObj.parser.parse(text2);
- const renderEl = select("body").append("div").attr("style", "height:400px").attr("id", "cy");
- let graph = {
- id: "root",
- layoutOptions: {
- "elk.hierarchyHandling": "INCLUDE_CHILDREN",
- "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]",
- "elk.layered.spacing.edgeNodeBetweenLayers": "30",
- // 'elk.layered.mergeEdges': 'true',
- "elk.direction": "DOWN"
- // 'elk.ports.sameLayerEdges': true,
- // 'nodePlacement.strategy': 'SIMPLE',
- },
- children: [],
- edges: []
- };
- log$1.info("Drawing flowchart using v3 renderer", elk);
- let dir = diagObj.db.getDirection();
- switch (dir) {
- case "BT":
- graph.layoutOptions["elk.direction"] = "UP";
- break;
- case "TB":
- graph.layoutOptions["elk.direction"] = "DOWN";
- break;
- case "LR":
- graph.layoutOptions["elk.direction"] = "RIGHT";
- break;
- case "RL":
- graph.layoutOptions["elk.direction"] = "LEFT";
- break;
- }
- const { securityLevel, flowchart: conf2 } = getConfig$1();
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
- const svg2 = root2.select(`[id="${id2}"]`);
- const markers2 = ["point", "circle", "cross"];
- insertMarkers$4(svg2, markers2, diagObj.type, diagObj.arrowMarkerAbsolute);
- const vert = diagObj.db.getVertices();
- let subG;
- const subGraphs2 = diagObj.db.getSubGraphs();
- log$1.info("Subgraphs - ", subGraphs2);
- for (let i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
- subG = subGraphs2[i2];
- diagObj.db.addVertex(
- subG.id,
- { text: subG.title, type: subG.labelType },
- "group",
- void 0,
- subG.classes,
- subG.dir
- );
- }
- const subGraphsEl = svg2.insert("g").attr("class", "subgraphs");
- const parentLookupDb = addSubGraphs(diagObj.db);
- graph = await addVertices(vert, id2, root2, doc, diagObj, parentLookupDb, graph);
- const edgesEl = svg2.insert("g").attr("class", "edges edgePath");
- const edges2 = diagObj.db.getEdges();
- graph = addEdges(edges2, diagObj, graph, svg2);
- const nodes2 = Object.keys(nodeDb);
- nodes2.forEach((nodeId) => {
- const node2 = nodeDb[nodeId];
- if (!node2.parent) {
- graph.children.push(node2);
- }
- if (parentLookupDb.childrenById[nodeId] !== void 0) {
- node2.labels = [
- {
- text: node2.labelText,
- layoutOptions: {
- "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]"
- },
- width: node2.labelData.width,
- height: node2.labelData.height
- // width: 100,
- // height: 100,
- }
- ];
- delete node2.x;
- delete node2.y;
- delete node2.width;
- delete node2.height;
- }
- });
- insertChildren(graph.children, parentLookupDb);
- log$1.info("after layout", JSON.stringify(graph, null, 2));
- const g = await elk.layout(graph);
- drawNodes$1(0, 0, g.children, svg2, subGraphsEl, diagObj, 0);
- log$1.info("after layout", g);
- (_a = g.edges) == null ? void 0 : _a.map((edge) => {
- insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb);
- });
- setupGraphViewbox$1({}, svg2, conf2.diagramPadding, conf2.useMaxWidth);
- renderEl.remove();
- };
- const drawNodes$1 = (relX, relY, nodeArray, svg2, subgraphsEl, diagObj, depth) => {
- nodeArray.forEach(function(node2) {
- if (node2) {
- nodeDb[node2.id].offset = {
- posX: node2.x + relX,
- posY: node2.y + relY,
- x: relX,
- y: relY,
- depth,
- width: node2.width,
- height: node2.height
- };
- if (node2.type === "group") {
- const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph");
- subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node2.x + relX).attr("y", node2.y + relY).attr("width", node2.width).attr("height", node2.height);
- const label = subgraphEl.insert("g").attr("class", "label");
- const labelCentering = getConfig$1().flowchart.htmlLabels ? node2.labelData.width / 2 : 0;
- label.attr(
- "transform",
- `translate(${node2.labels[0].x + relX + node2.x + labelCentering}, ${node2.labels[0].y + relY + node2.y + 3})`
- );
- label.node().appendChild(node2.labelData.labelNode);
- log$1.info("Id (UGH)= ", node2.type, node2.labels);
- } else {
- log$1.info("Id (UGH)= ", node2.id);
- node2.el.attr(
- "transform",
- `translate(${node2.x + relX + node2.width / 2}, ${node2.y + relY + node2.height / 2})`
- );
- }
- }
- });
- nodeArray.forEach(function(node2) {
- if (node2 && node2.type === "group") {
- drawNodes$1(relX + node2.x, relY + node2.y, node2.children, svg2, subgraphsEl, diagObj, depth + 1);
- }
- });
- };
- const renderer$1 = {
- getClasses,
- draw: draw$2
- };
- const genSections$2 = (options2) => {
- let sections2 = "";
- for (let i2 = 0; i2 < 5; i2++) {
- sections2 += `
- .subgraph-lvl-${i2} {
- fill: ${options2[`surface${i2}`]};
- stroke: ${options2[`surfacePeer${i2}`]};
- }
- `;
- }
- return sections2;
- };
- const getStyles$2 = (options2) => `.label {
- font-family: ${options2.fontFamily};
- color: ${options2.nodeTextColor || options2.textColor};
- }
- .cluster-label text {
- fill: ${options2.titleColor};
- }
- .cluster-label span {
- color: ${options2.titleColor};
- }
-
- .label text,span {
- fill: ${options2.nodeTextColor || options2.textColor};
- color: ${options2.nodeTextColor || options2.textColor};
- }
-
- .node rect,
- .node circle,
- .node ellipse,
- .node polygon,
- .node path {
- fill: ${options2.mainBkg};
- stroke: ${options2.nodeBorder};
- stroke-width: 1px;
- }
-
- .node .label {
- text-align: center;
- }
- .node.clickable {
- cursor: pointer;
- }
-
- .arrowheadPath {
- fill: ${options2.arrowheadColor};
- }
-
- .edgePath .path {
- stroke: ${options2.lineColor};
- stroke-width: 2.0px;
- }
-
- .flowchart-link {
- stroke: ${options2.lineColor};
- fill: none;
- }
-
- .edgeLabel {
- background-color: ${options2.edgeLabelBackground};
- rect {
- opacity: 0.85;
- background-color: ${options2.edgeLabelBackground};
- fill: ${options2.edgeLabelBackground};
- }
- text-align: center;
- }
-
- .cluster rect {
- fill: ${options2.clusterBkg};
- stroke: ${options2.clusterBorder};
- stroke-width: 1px;
- }
-
- .cluster text {
- fill: ${options2.titleColor};
- }
-
- .cluster span {
- color: ${options2.titleColor};
- }
- /* .cluster div {
- color: ${options2.titleColor};
- } */
-
- div.mermaidTooltip {
- position: absolute;
- text-align: center;
- max-width: 200px;
- padding: 2px;
- font-family: ${options2.fontFamily};
- font-size: 12px;
- background: ${options2.tertiaryColor};
- border: 1px solid ${options2.border2};
- border-radius: 2px;
- pointer-events: none;
- z-index: 100;
- }
-
- .flowchartTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${options2.textColor};
- }
- .subgraph {
- stroke-width:2;
- rx:3;
- }
- // .subgraph-lvl-1 {
- // fill:#ccc;
- // // stroke:black;
- // }
-
- .flowchart-label text {
- text-anchor: middle;
- }
-
- ${genSections$2(options2)}
-`;
- const styles$1 = getStyles$2;
- const diagram$2 = {
- db: db$8,
- renderer: renderer$1,
- parser: parser$l,
- styles: styles$1
- };
- const flowchartElkDefinition = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$2
- }, Symbol.toStringTag, { value: "Module" }));
- var parser$1 = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "period_statement": 24, "event_statement": 25, "period": 26, "event": 27, "open_directive": 28, "type_directive": 29, "arg_directive": 30, "close_directive": 31, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 4: "timeline", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 26: "period", 27: "event", 28: "open_directive", 29: "type_directive", 30: "arg_directive", 31: "close_directive" },
- productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 1:
- return $$[$0 - 1];
- case 3:
- this.$ = [];
- break;
- case 4:
- $$[$0 - 1].push($$[$0]);
- this.$ = $$[$0 - 1];
- break;
- case 5:
- case 6:
- this.$ = $$[$0];
- break;
- case 7:
- case 8:
- this.$ = [];
- break;
- case 11:
- yy.getCommonDb().setDiagramTitle($$[$0].substr(6));
- this.$ = $$[$0].substr(6);
- break;
- case 12:
- this.$ = $$[$0].trim();
- yy.getCommonDb().setAccTitle(this.$);
- break;
- case 13:
- case 14:
- this.$ = $$[$0].trim();
- yy.getCommonDb().setAccDescription(this.$);
- break;
- case 15:
- yy.addSection($$[$0].substr(8));
- this.$ = $$[$0].substr(8);
- break;
- case 19:
- yy.addTask($$[$0], 0, "");
- this.$ = $$[$0];
- break;
- case 20:
- yy.addEvent($$[$0].substr(2));
- this.$ = $$[$0];
- break;
- case 21:
- yy.parseDirective("%%{", "open_directive");
- break;
- case 22:
- yy.parseDirective($$[$0], "type_directive");
- break;
- case 23:
- $$[$0] = $$[$0].trim().replace(/'/g, '"');
- yy.parseDirective($$[$0], "arg_directive");
- break;
- case 24:
- yy.parseDirective("}%%", "close_directive", "timeline");
- break;
- }
- },
- table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])],
- defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
- }
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- this.begin("open_directive");
- return 28;
- case 1:
- this.begin("type_directive");
- return 29;
- case 2:
- this.popState();
- this.begin("arg_directive");
- return 15;
- case 3:
- this.popState();
- this.popState();
- return 31;
- case 4:
- return 30;
- case 5:
- break;
- case 6:
- break;
- case 7:
- return 11;
- case 8:
- break;
- case 9:
- break;
- case 10:
- return 4;
- case 11:
- return 17;
- case 12:
- this.begin("acc_title");
- return 18;
- case 13:
- this.popState();
- return "acc_title_value";
- case 14:
- this.begin("acc_descr");
- return 20;
- case 15:
- this.popState();
- return "acc_descr_value";
- case 16:
- this.begin("acc_descr_multiline");
- break;
- case 17:
- this.popState();
- break;
- case 18:
- return "acc_descr_multiline_value";
- case 19:
- return 23;
- case 20:
- return 27;
- case 21:
- return 26;
- case 22:
- return 6;
- case 23:
- return "INVALID";
- }
- },
- rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i],
- conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser$1.parser = parser$1;
- const parser$2 = parser$1;
- let currentSection = "";
- let currentTaskId = 0;
- const sections = [];
- const tasks = [];
- const rawTasks = [];
- const getCommonDb = () => commonDb$1;
- const parseDirective = (statement, context, type2) => {
- parseDirective$d(globalThis, statement, context, type2);
- };
- const clear$1 = function() {
- sections.length = 0;
- tasks.length = 0;
- currentSection = "";
- rawTasks.length = 0;
- clear$i();
- };
- const addSection = function(txt) {
- currentSection = txt;
- sections.push(txt);
- };
- const getSections = function() {
- return sections;
- };
- const getTasks = function() {
- let allItemsProcessed = compileTasks();
- const maxDepth = 100;
- let iterationCount = 0;
- while (!allItemsProcessed && iterationCount < maxDepth) {
- allItemsProcessed = compileTasks();
- iterationCount++;
- }
- tasks.push(...rawTasks);
- return tasks;
- };
- const addTask = function(period, length2, event) {
- const rawTask = {
- id: currentTaskId++,
- section: currentSection,
- type: currentSection,
- task: period,
- score: length2 ? length2 : 0,
- //if event is defined, then add it the events array
- events: event ? [event] : []
- };
- rawTasks.push(rawTask);
- };
- const addEvent = function(event) {
- const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);
- currentTask.events.push(event);
- };
- const addTaskOrg = function(descr) {
- const newTask = {
- section: currentSection,
- type: currentSection,
- description: descr,
- task: descr,
- classes: []
- };
- tasks.push(newTask);
- };
- const compileTasks = function() {
- const compileTask = function(pos) {
- return rawTasks[pos].processed;
- };
- let allProcessed = true;
- for (const [i2, rawTask] of rawTasks.entries()) {
- compileTask(i2);
- allProcessed = allProcessed && rawTask.processed;
- }
- return allProcessed;
- };
- const timelineDb = {
- clear: clear$1,
- getCommonDb,
- addSection,
- getSections,
- getTasks,
- addTask,
- addTaskOrg,
- addEvent,
- parseDirective
- };
- const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- addEvent,
- addSection,
- addTask,
- addTaskOrg,
- clear: clear$1,
- default: timelineDb,
- getCommonDb,
- getSections,
- getTasks,
- parseDirective
- }, Symbol.toStringTag, { value: "Module" }));
- const MAX_SECTIONS$1 = 12;
- const drawRect = function(elem, rectData) {
- const rectElem = elem.append("rect");
- rectElem.attr("x", rectData.x);
- rectElem.attr("y", rectData.y);
- rectElem.attr("fill", rectData.fill);
- rectElem.attr("stroke", rectData.stroke);
- rectElem.attr("width", rectData.width);
- rectElem.attr("height", rectData.height);
- rectElem.attr("rx", rectData.rx);
- rectElem.attr("ry", rectData.ry);
- if (rectData.class !== void 0) {
- rectElem.attr("class", rectData.class);
- }
- return rectElem;
- };
- const drawFace = function(element, faceData) {
- const radius = 15;
- const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
- const face = element.append("g");
- face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
- face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
- function smile(face2) {
- const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
- face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
- }
- function sad(face2) {
- const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
- face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
- }
- function ambivalent(face2) {
- face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
- }
- if (faceData.score > 3) {
- smile(face);
- } else if (faceData.score < 3) {
- sad(face);
- } else {
- ambivalent(face);
- }
- return circleElement;
- };
- const drawCircle = function(element, circleData) {
- const circleElement = element.append("circle");
- circleElement.attr("cx", circleData.cx);
- circleElement.attr("cy", circleData.cy);
- circleElement.attr("class", "actor-" + circleData.pos);
- circleElement.attr("fill", circleData.fill);
- circleElement.attr("stroke", circleData.stroke);
- circleElement.attr("r", circleData.r);
- if (circleElement.class !== void 0) {
- circleElement.attr("class", circleElement.class);
- }
- if (circleData.title !== void 0) {
- circleElement.append("title").text(circleData.title);
- }
- return circleElement;
- };
- const drawText = function(elem, textData) {
- const nText = textData.text.replace(/
/gi, " ");
- const textElem = elem.append("text");
- textElem.attr("x", textData.x);
- textElem.attr("y", textData.y);
- textElem.attr("class", "legend");
- textElem.style("text-anchor", textData.anchor);
- if (textData.class !== void 0) {
- textElem.attr("class", textData.class);
- }
- const span = textElem.append("tspan");
- span.attr("x", textData.x + textData.textMargin * 2);
- span.text(nText);
- return textElem;
- };
- const drawLabel = function(elem, txtObject) {
- function genPoints(x2, y2, width2, height2, cut) {
- return x2 + "," + y2 + " " + (x2 + width2) + "," + y2 + " " + (x2 + width2) + "," + (y2 + height2 - cut) + " " + (x2 + width2 - cut * 1.2) + "," + (y2 + height2) + " " + x2 + "," + (y2 + height2);
- }
- const polygon = elem.append("polygon");
- polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
- polygon.attr("class", "labelBox");
- txtObject.y = txtObject.y + txtObject.labelMargin;
- txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
- drawText(elem, txtObject);
- };
- const drawSection = function(elem, section, conf2) {
- const g = elem.append("g");
- const rect2 = getNoteRect();
- rect2.x = section.x;
- rect2.y = section.y;
- rect2.fill = section.fill;
- rect2.width = conf2.width;
- rect2.height = conf2.height;
- rect2.class = "journey-section section-type-" + section.num;
- rect2.rx = 3;
- rect2.ry = 3;
- drawRect(g, rect2);
- _drawTextCandidateFunc(conf2)(
- section.text,
- g,
- rect2.x,
- rect2.y,
- rect2.width,
- rect2.height,
- { class: "journey-section section-type-" + section.num },
- conf2,
- section.colour
- );
- };
- let taskCount = -1;
- const drawTask = function(elem, task, conf2) {
- const center2 = task.x + conf2.width / 2;
- const g = elem.append("g");
- taskCount++;
- const maxHeight = 300 + 5 * 30;
- g.append("line").attr("id", "task" + taskCount).attr("x1", center2).attr("y1", task.y).attr("x2", center2).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
- drawFace(g, {
- cx: center2,
- cy: 300 + (5 - task.score) * 30,
- score: task.score
- });
- const rect2 = getNoteRect();
- rect2.x = task.x;
- rect2.y = task.y;
- rect2.fill = task.fill;
- rect2.width = conf2.width;
- rect2.height = conf2.height;
- rect2.class = "task task-type-" + task.num;
- rect2.rx = 3;
- rect2.ry = 3;
- drawRect(g, rect2);
- task.x + 14;
- _drawTextCandidateFunc(conf2)(
- task.task,
- g,
- rect2.x,
- rect2.y,
- rect2.width,
- rect2.height,
- { class: "task" },
- conf2,
- task.colour
- );
- };
- const drawBackgroundRect = function(elem, bounds2) {
- const rectElem = drawRect(elem, {
- x: bounds2.startx,
- y: bounds2.starty,
- width: bounds2.stopx - bounds2.startx,
- height: bounds2.stopy - bounds2.starty,
- fill: bounds2.fill,
- class: "rect"
- });
- rectElem.lower();
- };
- const getTextObj = function() {
- return {
- x: 0,
- y: 0,
- fill: void 0,
- "text-anchor": "start",
- width: 100,
- height: 100,
- textMargin: 0,
- rx: 0,
- ry: 0
- };
- };
- const getNoteRect = function() {
- return {
- x: 0,
- y: 0,
- width: 100,
- anchor: "start",
- height: 100,
- rx: 0,
- ry: 0
- };
- };
- const _drawTextCandidateFunc = function() {
- function byText(content, g, x2, y2, width2, height2, textAttrs, colour) {
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
- _setTextAttrs(text2, textAttrs);
- }
- function byTspan(content, g, x2, y2, width2, height2, textAttrs, conf2, colour) {
- const { taskFontSize, taskFontFamily } = conf2;
- const lines = content.split(/
/gi);
- for (let i2 = 0; i2 < lines.length; i2++) {
- const dy = i2 * taskFontSize - taskFontSize * (lines.length - 1) / 2;
- const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
- text2.append("tspan").attr("x", x2 + width2 / 2).attr("dy", dy).text(lines[i2]);
- text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
- _setTextAttrs(text2, textAttrs);
- }
- }
- function byFo(content, g, x2, y2, width2, height2, textAttrs, conf2) {
- const body = g.append("switch");
- const f2 = body.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2).attr("position", "fixed");
- const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
- text2.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
- byTspan(content, body, x2, y2, width2, height2, textAttrs, conf2);
- _setTextAttrs(text2, textAttrs);
- }
- function _setTextAttrs(toText, fromTextAttrsDict) {
- for (const key in fromTextAttrsDict) {
- if (key in fromTextAttrsDict) {
- toText.attr(key, fromTextAttrsDict[key]);
- }
- }
- }
- return function(conf2) {
- return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
- };
- }();
- const initGraphics = function(graphics) {
- graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
- };
- function wrap(text2, width2) {
- text2.each(function() {
- var text3 = select(this), words = text3.text().split(/(\s+|
)/).reverse(), word, line2 = [], lineHeight = 1.1, y2 = text3.attr("y"), dy = parseFloat(text3.attr("dy")), tspan = text3.text(null).append("tspan").attr("x", 0).attr("y", y2).attr("dy", dy + "em");
- for (let j = 0; j < words.length; j++) {
- word = words[words.length - 1 - j];
- line2.push(word);
- tspan.text(line2.join(" ").trim());
- if (tspan.node().getComputedTextLength() > width2 || word === "
") {
- line2.pop();
- tspan.text(line2.join(" ").trim());
- if (word === "
") {
- line2 = [""];
- } else {
- line2 = [word];
- }
- tspan = text3.append("tspan").attr("x", 0).attr("y", y2).attr("dy", lineHeight + "em").text(word);
- }
- }
- });
- }
- const drawNode$1 = function(elem, node2, fullSection, conf2) {
- const section = fullSection % MAX_SECTIONS$1 - 1;
- const nodeElem = elem.append("g");
- node2.section = section;
- nodeElem.attr(
- "class",
- (node2.class ? node2.class + " " : "") + "timeline-node " + ("section-" + section)
- );
- const bkgElem = nodeElem.append("g");
- const textElem = nodeElem.append("g");
- const txt = textElem.append("text").text(node2.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node2.width);
- const bbox = txt.node().getBBox();
- const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize;
- node2.height = bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
- node2.height = Math.max(node2.height, node2.maxHeight);
- node2.width = node2.width + 2 * node2.padding;
- textElem.attr("transform", "translate(" + node2.width / 2 + ", " + node2.padding / 2 + ")");
- defaultBkg$1(bkgElem, node2, section);
- return node2;
- };
- const getVirtualNodeHeight = function(elem, node2, conf2) {
- const textElem = elem.append("g");
- const txt = textElem.append("text").text(node2.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node2.width);
- const bbox = txt.node().getBBox();
- const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize;
- textElem.remove();
- return bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
- };
- const defaultBkg$1 = function(elem, node2, section) {
- const rd = 5;
- elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + node2.type).attr(
- "d",
- `M0 ${node2.height - rd} v${-node2.height + 2 * rd} q0,-5 5,-5 h${node2.width - 2 * rd} q5,0 5,5 v${node2.height - rd} H0 Z`
- );
- elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node2.height).attr("x2", node2.width).attr("y2", node2.height);
- };
- const svgDraw$1 = {
- drawRect,
- drawCircle,
- drawSection,
- drawText,
- drawLabel,
- drawTask,
- drawBackgroundRect,
- getTextObj,
- getNoteRect,
- initGraphics,
- drawNode: drawNode$1,
- getVirtualNodeHeight
- };
- const draw$1 = function(text2, id2, version2, diagObj) {
- var _a, _b, _c, _d;
- const conf2 = getConfig$1();
- const LEFT_MARGIN2 = conf2.leftMargin ?? 50;
- (_b = (_a = diagObj.db).clear) == null ? void 0 : _b.call(_a);
- diagObj.parser.parse(text2 + "\n");
- log$1.debug("timeline", diagObj.db);
- const securityLevel = conf2.securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? (
- // @ts-ignore d3 types are wrong
- select(sandboxElement.nodes()[0].contentDocument.body)
- ) : select("body");
- const svg2 = root2.select("#" + id2);
- svg2.append("g");
- const tasks2 = diagObj.db.getTasks();
- const title2 = diagObj.db.getCommonDb().getDiagramTitle();
- log$1.debug("task", tasks2);
- svgDraw$1.initGraphics(svg2);
- const sections2 = diagObj.db.getSections();
- log$1.debug("sections", sections2);
- let maxSectionHeight = 0;
- let maxTaskHeight = 0;
- let depthY = 0;
- let sectionBeginY = 0;
- let masterX = 50 + LEFT_MARGIN2;
- let masterY = 50;
- sectionBeginY = 50;
- let sectionNumber = 0;
- let hasSections = true;
- sections2.forEach(function(section) {
- const sectionNode = {
- number: sectionNumber,
- descr: section,
- section: sectionNumber,
- width: 150,
- padding: 20,
- maxHeight: maxSectionHeight
- };
- const sectionHeight = svgDraw$1.getVirtualNodeHeight(svg2, sectionNode, conf2);
- log$1.debug("sectionHeight before draw", sectionHeight);
- maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);
- });
- let maxEventCount = 0;
- let maxEventLineLength = 0;
- log$1.debug("tasks.length", tasks2.length);
- for (const [i2, task] of tasks2.entries()) {
- const taskNode = {
- number: i2,
- descr: task,
- section: task.section,
- width: 150,
- padding: 20,
- maxHeight: maxTaskHeight
- };
- const taskHeight = svgDraw$1.getVirtualNodeHeight(svg2, taskNode, conf2);
- log$1.debug("taskHeight before draw", taskHeight);
- maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);
- maxEventCount = Math.max(maxEventCount, task.events.length);
- let maxEventLineLengthTemp = 0;
- for (let j = 0; j < task.events.length; j++) {
- const event = task.events[j];
- const eventNode = {
- descr: event,
- section: task.section,
- number: task.section,
- width: 150,
- padding: 20,
- maxHeight: 50
- };
- maxEventLineLengthTemp += svgDraw$1.getVirtualNodeHeight(svg2, eventNode, conf2);
- }
- maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);
- }
- log$1.debug("maxSectionHeight before draw", maxSectionHeight);
- log$1.debug("maxTaskHeight before draw", maxTaskHeight);
- if (sections2 && sections2.length > 0) {
- sections2.forEach((section) => {
- const tasksForSection = tasks2.filter((task) => task.section === section);
- const sectionNode = {
- number: sectionNumber,
- descr: section,
- section: sectionNumber,
- width: 200 * Math.max(tasksForSection.length, 1) - 50,
- padding: 20,
- maxHeight: maxSectionHeight
- };
- log$1.debug("sectionNode", sectionNode);
- const sectionNodeWrapper = svg2.append("g");
- const node2 = svgDraw$1.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf2);
- log$1.debug("sectionNode output", node2);
- sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`);
- masterY += maxSectionHeight + 50;
- if (tasksForSection.length > 0) {
- drawTasks(
- svg2,
- tasksForSection,
- sectionNumber,
- masterX,
- masterY,
- maxTaskHeight,
- conf2,
- maxEventCount,
- maxEventLineLength,
- maxSectionHeight,
- false
- );
- }
- masterX += 200 * Math.max(tasksForSection.length, 1);
- masterY = sectionBeginY;
- sectionNumber++;
- });
- } else {
- hasSections = false;
- drawTasks(
- svg2,
- tasks2,
- sectionNumber,
- masterX,
- masterY,
- maxTaskHeight,
- conf2,
- maxEventCount,
- maxEventLineLength,
- maxSectionHeight,
- true
- );
- }
- const box = svg2.node().getBBox();
- log$1.debug("bounds", box);
- if (title2) {
- svg2.append("text").text(title2).attr("x", box.width / 2 - LEFT_MARGIN2).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
- }
- depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;
- const lineWrapper = svg2.append("g").attr("class", "lineWrapper");
- lineWrapper.append("line").attr("x1", LEFT_MARGIN2).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN2).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
- setupGraphViewbox$1(
- void 0,
- svg2,
- ((_c = conf2.timeline) == null ? void 0 : _c.padding) ?? 50,
- ((_d = conf2.timeline) == null ? void 0 : _d.useMaxWidth) ?? false
- );
- };
- const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf2, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {
- var _a;
- for (const task of tasks2) {
- const taskNode = {
- descr: task.task,
- section: sectionColor,
- number: sectionColor,
- width: 150,
- padding: 20,
- maxHeight: maxTaskHeight
- };
- log$1.debug("taskNode", taskNode);
- const taskWrapper = diagram2.append("g").attr("class", "taskWrapper");
- const node2 = svgDraw$1.drawNode(taskWrapper, taskNode, sectionColor, conf2);
- const taskHeight = node2.height;
- log$1.debug("taskHeight after draw", taskHeight);
- taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
- maxTaskHeight = Math.max(maxTaskHeight, taskHeight);
- if (task.events) {
- const lineWrapper = diagram2.append("g").attr("class", "lineWrapper");
- let lineLength = maxTaskHeight;
- masterY += 100;
- lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf2);
- masterY -= 100;
- lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr(
- "y2",
- masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120
- ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
- }
- masterX = masterX + 200;
- if (isWithoutSections && !((_a = conf2.timeline) == null ? void 0 : _a.disableMulticolor)) {
- sectionColor++;
- }
- }
- masterY = masterY - 10;
- };
- const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf2) {
- let maxEventHeight = 0;
- const eventBeginY = masterY;
- masterY = masterY + 100;
- for (const event of events) {
- const eventNode = {
- descr: event,
- section: sectionColor,
- number: sectionColor,
- width: 150,
- padding: 20,
- maxHeight: 50
- };
- log$1.debug("eventNode", eventNode);
- const eventWrapper = diagram2.append("g").attr("class", "eventWrapper");
- const node2 = svgDraw$1.drawNode(eventWrapper, eventNode, sectionColor, conf2);
- const eventHeight = node2.height;
- maxEventHeight = maxEventHeight + eventHeight;
- eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
- masterY = masterY + 10 + eventHeight;
- }
- masterY = eventBeginY;
- return maxEventHeight;
- };
- const renderer = {
- setConf: () => {
- },
- draw: draw$1
- };
- const genSections$1 = (options2) => {
- let sections2 = "";
- for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
- options2["lineColor" + i2] = options2["lineColor" + i2] || options2["cScaleInv" + i2];
- if (isDark$1(options2["lineColor" + i2])) {
- options2["lineColor" + i2] = lighten$1(options2["lineColor" + i2], 20);
- } else {
- options2["lineColor" + i2] = darken$1(options2["lineColor" + i2], 20);
- }
- }
- for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
- const sw = "" + (17 - 3 * i2);
- sections2 += `
- .section-${i2 - 1} rect, .section-${i2 - 1} path, .section-${i2 - 1} circle, .section-${i2 - 1} path {
- fill: ${options2["cScale" + i2]};
- }
- .section-${i2 - 1} text {
- fill: ${options2["cScaleLabel" + i2]};
- }
- .node-icon-${i2 - 1} {
- font-size: 40px;
- color: ${options2["cScaleLabel" + i2]};
- }
- .section-edge-${i2 - 1}{
- stroke: ${options2["cScale" + i2]};
- }
- .edge-depth-${i2 - 1}{
- stroke-width: ${sw};
- }
- .section-${i2 - 1} line {
- stroke: ${options2["cScaleInv" + i2]} ;
- stroke-width: 3;
- }
-
- .lineWrapper line{
- stroke: ${options2["cScaleLabel" + i2]} ;
- }
-
- .disabled, .disabled circle, .disabled text {
- fill: lightgray;
- }
- .disabled text {
- fill: #efefef;
- }
- `;
- }
- return sections2;
- };
- const getStyles$1 = (options2) => `
- .edge {
- stroke-width: 3;
- }
- ${genSections$1(options2)}
- .section-root rect, .section-root path, .section-root circle {
- fill: ${options2.git0};
- }
- .section-root text {
- fill: ${options2.gitBranchLabel0};
- }
- .icon-container {
- height:100%;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .edge {
- fill: none;
- }
- .eventWrapper {
- filter: brightness(120%);
- }
-`;
- const styles = getStyles$1;
- const diagram$1 = {
- db,
- renderer,
- parser: parser$2,
- styles
- };
- const timelineDefinition = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram: diagram$1
- }, Symbol.toStringTag, { value: "Module" }));
- var parser = function() {
- var o = function(k, v, o2, l) {
- for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
- ;
- return o2;
- }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];
- var parser2 = {
- trace: function trace() {
- },
- yy: {},
- symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 },
- terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" },
- productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
- var $0 = $$.length - 1;
- switch (yystate) {
- case 6:
- case 7:
- return yy;
- case 8:
- yy.getLogger().trace("Stop NL ");
- break;
- case 9:
- yy.getLogger().trace("Stop EOF ");
- break;
- case 11:
- yy.getLogger().trace("Stop NL2 ");
- break;
- case 12:
- yy.getLogger().trace("Stop EOF2 ");
- break;
- case 15:
- yy.getLogger().info("Node: ", $$[$0].id);
- yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);
- break;
- case 16:
- yy.getLogger().trace("Icon: ", $$[$0]);
- yy.decorateNode({ icon: $$[$0] });
- break;
- case 17:
- case 21:
- yy.decorateNode({ class: $$[$0] });
- break;
- case 18:
- yy.getLogger().trace("SPACELIST");
- break;
- case 19:
- yy.getLogger().trace("Node: ", $$[$0].id);
- yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);
- break;
- case 20:
- yy.decorateNode({ icon: $$[$0] });
- break;
- case 25:
- yy.getLogger().trace("node found ..", $$[$0 - 2]);
- this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
- break;
- case 26:
- this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };
- break;
- case 27:
- yy.getLogger().trace("node found ..", $$[$0 - 3]);
- this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
- break;
- }
- },
- table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],
- defaultActions: { 2: [2, 1], 6: [2, 2] },
- parseError: function parseError2(str2, hash) {
- if (hash.recoverable) {
- this.trace(str2);
- } else {
- var error = new Error(str2);
- error.hash = hash;
- throw error;
- }
- },
- parse: function parse2(input) {
- var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer2 = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer2.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer2;
- sharedState.yy.parser = this;
- if (typeof lexer2.yylloc == "undefined") {
- lexer2.yylloc = {};
- }
- var yyloc = lexer2.yylloc;
- lstack.push(yyloc);
- var ranges = lexer2.options && lexer2.options.ranges;
- if (typeof sharedState.yy.parseError === "function") {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function lex2() {
- var token2;
- token2 = tstack.pop() || lexer2.lex() || EOF;
- if (typeof token2 !== "number") {
- if (token2 instanceof Array) {
- tstack = token2;
- token2 = tstack.pop();
- }
- token2 = self2.symbols_[token2] || token2;
- }
- return token2;
- }
- var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state2 = stack[stack.length - 1];
- if (this.defaultActions[state2]) {
- action = this.defaultActions[state2];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex2();
- }
- action = table[state2] && table[state2][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- expected = [];
- for (p in table[state2]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- }
- if (lexer2.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {
- text: lexer2.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer2.yylineno,
- loc: yyloc,
- expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer2.yytext);
- lstack.push(lexer2.yylloc);
- stack.push(action[1]);
- symbol = null;
- {
- yyleng = lexer2.yyleng;
- yytext = lexer2.yytext;
- yylineno = lexer2.yylineno;
- yyloc = lexer2.yylloc;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
- }
- };
- var lexer = function() {
- var lexer2 = {
- EOF: 1,
- parseError: function parseError2(str2, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str2, hash);
- } else {
- throw new Error(str2);
- }
- },
- // resets the lexer, sets new input
- setInput: function(input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = "";
- this.conditionStack = ["INITIAL"];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0, 0];
- }
- this.offset = 0;
- return this;
- },
- // consumes and returns one char from the input
- input: function() {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
- this._input = this._input.slice(1);
- return ch;
- },
- // unshifts one char (or a string) into the input
- unput: function(ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
- };
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
- // When called from action, caches matched text and appends it on next action
- more: function() {
- this._more = true;
- return this;
- },
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
- reject: function() {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- return this;
- },
- // retain first n characters of the match
- less: function(n) {
- this.unput(this.match.slice(n));
- },
- // displays already matched input, i.e. for error messages
- pastInput: function() {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
- },
- // displays upcoming input, i.e. for error messages
- upcomingInput: function() {
- var next2 = this.match;
- if (next2.length < 20) {
- next2 += this._input.substr(0, 20 - next2.length);
- }
- return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
- },
- // displays the character position where the lexing error occurred, i.e. for error messages
- showPosition: function() {
- var pre = this.pastInput();
- var c2 = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c2 + "^";
- },
- // test the lexed token: return FALSE when not a match, otherwise return token
- test_match: function(match, indexed_rule) {
- var token2, lines, backup;
- if (this.options.backtrack_lexer) {
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token2) {
- return token2;
- } else if (this._backtrack) {
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false;
- }
- return false;
- },
- // return next match in input
- next: function() {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
- var token2, match, tempMatch, index;
- if (!this._more) {
- this.yytext = "";
- this.match = "";
- }
- var rules = this._currentRules();
- for (var i2 = 0; i2 < rules.length; i2++) {
- tempMatch = this._input.match(this.rules[rules[i2]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i2;
- if (this.options.backtrack_lexer) {
- token2 = this.test_match(tempMatch, rules[i2]);
- if (token2 !== false) {
- return token2;
- } else if (this._backtrack) {
- match = false;
- continue;
- } else {
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token2 = this.test_match(match, rules[index]);
- if (token2 !== false) {
- return token2;
- }
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
- // return next match that has a token
- lex: function lex2() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
- begin: function begin(condition) {
- this.conditionStack.push(condition);
- },
- // pop the previously active lexer condition state off the condition stack
- popState: function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
- // produce the lexer rule set which is active for the currently active lexer condition state
- _currentRules: function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
- topState: function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
- // alias for begin(condition)
- pushState: function pushState(condition) {
- this.begin(condition);
- },
- // return the number of states currently on the stack
- stateStackSize: function stateStackSize() {
- return this.conditionStack.length;
- },
- options: { "case-insensitive": true },
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
- switch ($avoiding_name_collisions) {
- case 0:
- yy.getLogger().trace("Found comment", yy_.yytext);
- return 6;
- case 1:
- return 8;
- case 2:
- this.begin("CLASS");
- break;
- case 3:
- this.popState();
- return 16;
- case 4:
- this.popState();
- break;
- case 5:
- yy.getLogger().trace("Begin icon");
- this.begin("ICON");
- break;
- case 6:
- yy.getLogger().trace("SPACELINE");
- return 6;
- case 7:
- return 7;
- case 8:
- return 15;
- case 9:
- yy.getLogger().trace("end icon");
- this.popState();
- break;
- case 10:
- yy.getLogger().trace("Exploding node");
- this.begin("NODE");
- return 19;
- case 11:
- yy.getLogger().trace("Cloud");
- this.begin("NODE");
- return 19;
- case 12:
- yy.getLogger().trace("Explosion Bang");
- this.begin("NODE");
- return 19;
- case 13:
- yy.getLogger().trace("Cloud Bang");
- this.begin("NODE");
- return 19;
- case 14:
- this.begin("NODE");
- return 19;
- case 15:
- this.begin("NODE");
- return 19;
- case 16:
- this.begin("NODE");
- return 19;
- case 17:
- this.begin("NODE");
- return 19;
- case 18:
- return 13;
- case 19:
- return 22;
- case 20:
- return 11;
- case 21:
- this.begin("NSTR2");
- break;
- case 22:
- return "NODE_DESCR";
- case 23:
- this.popState();
- break;
- case 24:
- yy.getLogger().trace("Starting NSTR");
- this.begin("NSTR");
- break;
- case 25:
- yy.getLogger().trace("description:", yy_.yytext);
- return "NODE_DESCR";
- case 26:
- this.popState();
- break;
- case 27:
- this.popState();
- yy.getLogger().trace("node end ))");
- return "NODE_DEND";
- case 28:
- this.popState();
- yy.getLogger().trace("node end )");
- return "NODE_DEND";
- case 29:
- this.popState();
- yy.getLogger().trace("node end ...", yy_.yytext);
- return "NODE_DEND";
- case 30:
- this.popState();
- yy.getLogger().trace("node end ((");
- return "NODE_DEND";
- case 31:
- this.popState();
- yy.getLogger().trace("node end (-");
- return "NODE_DEND";
- case 32:
- this.popState();
- yy.getLogger().trace("node end (-");
- return "NODE_DEND";
- case 33:
- this.popState();
- yy.getLogger().trace("node end ((");
- return "NODE_DEND";
- case 34:
- this.popState();
- yy.getLogger().trace("node end ((");
- return "NODE_DEND";
- case 35:
- yy.getLogger().trace("Long description:", yy_.yytext);
- return 20;
- case 36:
- yy.getLogger().trace("Long description:", yy_.yytext);
- return 20;
- }
- },
- rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\-\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i],
- conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } }
- };
- return lexer2;
- }();
- parser2.lexer = lexer;
- function Parser() {
- this.yy = {};
- }
- Parser.prototype = parser2;
- parser2.Parser = Parser;
- return new Parser();
- }();
- parser.parser = parser;
- const mindmapParser = parser;
- const sanitizeText = (text2) => sanitizeText$7(text2, getConfig$1());
- let nodes = [];
- let cnt = 0;
- let elements = {};
- const clear = () => {
- nodes = [];
- cnt = 0;
- elements = {};
- };
- const getParent = function(level) {
- for (let i2 = nodes.length - 1; i2 >= 0; i2--) {
- if (nodes[i2].level < level) {
- return nodes[i2];
- }
- }
- return null;
- };
- const getMindmap = () => {
- return nodes.length > 0 ? nodes[0] : null;
- };
- const addNode = (level, id2, descr, type2) => {
- log$1.info("addNode", level, id2, descr, type2);
- const conf2 = getConfig$1();
- const node2 = {
- id: cnt++,
- nodeId: sanitizeText(id2),
- level,
- descr: sanitizeText(descr),
- type: type2,
- children: [],
- width: getConfig$1().mindmap.maxNodeWidth
- };
- switch (node2.type) {
- case nodeType.ROUNDED_RECT:
- node2.padding = 2 * conf2.mindmap.padding;
- break;
- case nodeType.RECT:
- node2.padding = 2 * conf2.mindmap.padding;
- break;
- case nodeType.HEXAGON:
- node2.padding = 2 * conf2.mindmap.padding;
- break;
- default:
- node2.padding = conf2.mindmap.padding;
- }
- const parent = getParent(level);
- if (parent) {
- parent.children.push(node2);
- nodes.push(node2);
- } else {
- if (nodes.length === 0) {
- nodes.push(node2);
- } else {
- let error = new Error(
- 'There can be only one root. No parent could be found for ("' + node2.descr + '")'
- );
- error.hash = {
- text: "branch " + name,
- token: "branch " + name,
- line: "1",
- loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
- expected: ['"checkout ' + name + '"']
- };
- throw error;
- }
- }
- };
- const nodeType = {
- DEFAULT: 0,
- NO_BORDER: 0,
- ROUNDED_RECT: 1,
- RECT: 2,
- CIRCLE: 3,
- CLOUD: 4,
- BANG: 5,
- HEXAGON: 6
- };
- const getType = (startStr, endStr) => {
- log$1.debug("In get type", startStr, endStr);
- switch (startStr) {
- case "[":
- return nodeType.RECT;
- case "(":
- return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;
- case "((":
- return nodeType.CIRCLE;
- case ")":
- return nodeType.CLOUD;
- case "))":
- return nodeType.BANG;
- case "{{":
- return nodeType.HEXAGON;
- default:
- return nodeType.DEFAULT;
- }
- };
- const setElementForId = (id2, element) => {
- elements[id2] = element;
- };
- const decorateNode = (decoration) => {
- const node2 = nodes[nodes.length - 1];
- if (decoration && decoration.icon) {
- node2.icon = sanitizeText(decoration.icon);
- }
- if (decoration && decoration.class) {
- node2.class = sanitizeText(decoration.class);
- }
- };
- const type2Str = (type2) => {
- switch (type2) {
- case nodeType.DEFAULT:
- return "no-border";
- case nodeType.RECT:
- return "rect";
- case nodeType.ROUNDED_RECT:
- return "rounded-rect";
- case nodeType.CIRCLE:
- return "circle";
- case nodeType.CLOUD:
- return "cloud";
- case nodeType.BANG:
- return "bang";
- case nodeType.HEXAGON:
- return "hexgon";
- default:
- return "no-border";
- }
- };
- let parseError;
- const setErrorHandler = (handler) => {
- parseError = handler;
- };
- const getLogger = () => log$1;
- const getNodeById = (id2) => nodes[id2];
- const getElementById = (id2) => elements[id2];
- const mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- addNode,
- clear,
- decorateNode,
- getElementById,
- getLogger,
- getMindmap,
- getNodeById,
- getType,
- nodeType,
- get parseError() {
- return parseError;
- },
- sanitizeText,
- setElementForId,
- setErrorHandler,
- type2Str
- }, Symbol.toStringTag, { value: "Module" }));
- const MAX_SECTIONS = 12;
- const defaultBkg = function(elem, node2, section) {
- const rd = 5;
- elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr(
- "d",
- `M0 ${node2.height - rd} v${-node2.height + 2 * rd} q0,-5 5,-5 h${node2.width - 2 * rd} q5,0 5,5 v${node2.height - rd} H0 Z`
- );
- elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node2.height).attr("x2", node2.width).attr("y2", node2.height);
- };
- const rectBkg = function(elem, node2) {
- elem.append("rect").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr("height", node2.height).attr("width", node2.width);
- };
- const cloudBkg = function(elem, node2) {
- const w2 = node2.width;
- const h = node2.height;
- const r1 = 0.15 * w2;
- const r2 = 0.25 * w2;
- const r3 = 0.35 * w2;
- const r4 = 0.2 * w2;
- elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr(
- "d",
- `M0 0 a${r1},${r1} 0 0,1 ${w2 * 0.25},${-1 * w2 * 0.1}
- a${r3},${r3} 1 0,1 ${w2 * 0.4},${-1 * w2 * 0.1}
- a${r2},${r2} 1 0,1 ${w2 * 0.35},${1 * w2 * 0.2}
-
- a${r1},${r1} 1 0,1 ${w2 * 0.15},${1 * h * 0.35}
- a${r4},${r4} 1 0,1 ${-1 * w2 * 0.15},${1 * h * 0.65}
-
- a${r2},${r1} 1 0,1 ${-1 * w2 * 0.25},${w2 * 0.15}
- a${r3},${r3} 1 0,1 ${-1 * w2 * 0.5},${0}
- a${r1},${r1} 1 0,1 ${-1 * w2 * 0.25},${-1 * w2 * 0.15}
-
- a${r1},${r1} 1 0,1 ${-1 * w2 * 0.1},${-1 * h * 0.35}
- a${r4},${r4} 1 0,1 ${w2 * 0.1},${-1 * h * 0.65}
-
- H0 V0 Z`
- );
- };
- const bangBkg = function(elem, node2) {
- const w2 = node2.width;
- const h = node2.height;
- const r = 0.15 * w2;
- elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr(
- "d",
- `M0 0 a${r},${r} 1 0,0 ${w2 * 0.25},${-1 * h * 0.1}
- a${r},${r} 1 0,0 ${w2 * 0.25},${0}
- a${r},${r} 1 0,0 ${w2 * 0.25},${0}
- a${r},${r} 1 0,0 ${w2 * 0.25},${1 * h * 0.1}
-
- a${r},${r} 1 0,0 ${w2 * 0.15},${1 * h * 0.33}
- a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}
- a${r},${r} 1 0,0 ${-1 * w2 * 0.15},${1 * h * 0.33}
-
- a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${h * 0.15}
- a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${0}
- a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${0}
- a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${-1 * h * 0.15}
-
- a${r},${r} 1 0,0 ${-1 * w2 * 0.1},${-1 * h * 0.33}
- a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}
- a${r},${r} 1 0,0 ${w2 * 0.1},${-1 * h * 0.33}
-
- H0 V0 Z`
- );
- };
- const circleBkg = function(elem, node2) {
- elem.append("circle").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr("r", node2.width / 2);
- };
- function insertPolygonShape(parent, w2, h, points, node2) {
- return parent.insert("polygon", ":first-child").attr(
- "points",
- points.map(function(d) {
- return d.x + "," + d.y;
- }).join(" ")
- ).attr("transform", "translate(" + (node2.width - w2) / 2 + ", " + h + ")");
- }
- const hexagonBkg = function(elem, node2) {
- const h = node2.height;
- const f2 = 4;
- const m = h / f2;
- const w2 = node2.width - node2.padding + 2 * m;
- const points = [
- { x: m, y: 0 },
- { x: w2 - m, y: 0 },
- { x: w2, y: -h / 2 },
- { x: w2 - m, y: -h },
- { x: m, y: -h },
- { x: 0, y: -h / 2 }
- ];
- insertPolygonShape(elem, w2, h, points, node2);
- };
- const roundedRectBkg = function(elem, node2) {
- elem.append("rect").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr("height", node2.height).attr("rx", node2.padding).attr("ry", node2.padding).attr("width", node2.width);
- };
- const drawNode = function(elem, node2, fullSection, conf2) {
- const htmlLabels = conf2.htmlLabels;
- const section = fullSection % (MAX_SECTIONS - 1);
- const nodeElem = elem.append("g");
- node2.section = section;
- let sectionClass = "section-" + section;
- if (section < 0) {
- sectionClass += " section-root";
- }
- nodeElem.attr("class", (node2.class ? node2.class + " " : "") + "mindmap-node " + sectionClass);
- const bkgElem = nodeElem.append("g");
- const textElem = nodeElem.append("g");
- const description2 = node2.descr.replace(/(
)/g, "\n");
- createText(textElem, description2, {
- useHtmlLabels: htmlLabels,
- width: node2.width,
- classes: "mindmap-node-label"
- });
- if (!htmlLabels) {
- textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
- }
- const bbox = textElem.node().getBBox();
- const fontSize = conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize;
- node2.height = bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
- node2.width = bbox.width + 2 * node2.padding;
- if (node2.icon) {
- if (node2.type === nodeType.CIRCLE) {
- node2.height += 50;
- node2.width += 50;
- const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node2.width).attr("style", "text-align: center;");
- icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node2.icon);
- textElem.attr(
- "transform",
- "translate(" + node2.width / 2 + ", " + (node2.height / 2 - 1.5 * node2.padding) + ")"
- );
- } else {
- node2.width += 50;
- const orgHeight = node2.height;
- node2.height = Math.max(orgHeight, 60);
- const heightDiff = Math.abs(node2.height - orgHeight);
- const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node2.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;");
- icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node2.icon);
- textElem.attr(
- "transform",
- "translate(" + (25 + node2.width / 2) + ", " + (heightDiff / 2 + node2.padding / 2) + ")"
- );
- }
- } else {
- if (!htmlLabels) {
- const dx = node2.width / 2;
- const dy = node2.padding / 2;
- textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
- } else {
- const dx = (node2.width - bbox.width) / 2;
- const dy = (node2.height - bbox.height) / 2;
- textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
- }
- }
- switch (node2.type) {
- case nodeType.DEFAULT:
- defaultBkg(bkgElem, node2, section);
- break;
- case nodeType.ROUNDED_RECT:
- roundedRectBkg(bkgElem, node2);
- break;
- case nodeType.RECT:
- rectBkg(bkgElem, node2);
- break;
- case nodeType.CIRCLE:
- bkgElem.attr("transform", "translate(" + node2.width / 2 + ", " + +node2.height / 2 + ")");
- circleBkg(bkgElem, node2);
- break;
- case nodeType.CLOUD:
- cloudBkg(bkgElem, node2);
- break;
- case nodeType.BANG:
- bangBkg(bkgElem, node2);
- break;
- case nodeType.HEXAGON:
- hexagonBkg(bkgElem, node2);
- break;
- }
- setElementForId(node2.id, nodeElem);
- return node2.height;
- };
- const drawEdge = function drawEdge2(edgesElem, mindmap2, parent, depth, fullSection) {
- const section = fullSection % (MAX_SECTIONS - 1);
- const sx = parent.x + parent.width / 2;
- const sy = parent.y + parent.height / 2;
- const ex = mindmap2.x + mindmap2.width / 2;
- const ey = mindmap2.y + mindmap2.height / 2;
- const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2;
- const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2;
- const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx;
- const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy;
- edgesElem.append("path").attr(
- "d",
- parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}`
- ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth);
- };
- const positionNode = function(node2) {
- const nodeElem = getElementById(node2.id);
- const x2 = node2.x || 0;
- const y2 = node2.y || 0;
- nodeElem.attr("transform", "translate(" + x2 + "," + y2 + ")");
- };
- const svgDraw = { drawNode, positionNode, drawEdge };
- var cytoscape_umdExports = {};
- var cytoscape_umd = {
- get exports() {
- return cytoscape_umdExports;
- },
- set exports(v) {
- cytoscape_umdExports = v;
- }
- };
- (function(module2, exports2) {
- (function(global2, factory) {
- module2.exports = factory();
- })(commonjsGlobal, function() {
- 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);
- }
- function _classCallCheck(instance2, Constructor) {
- if (!(instance2 instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
- function _defineProperties(target, props) {
- for (var i3 = 0; i3 < props.length; i3++) {
- var descriptor = props[i3];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
- function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties(Constructor, staticProps);
- Object.defineProperty(Constructor, "prototype", {
- writable: false
- });
- return Constructor;
- }
- 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;
- }
- function _slicedToArray(arr, i3) {
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i3) || _unsupportedIterableToArray(arr, i3) || _nonIterableRest();
- }
- function _arrayWithHoles(arr) {
- if (Array.isArray(arr))
- return arr;
- }
- function _iterableToArrayLimit(arr, i3) {
- 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 (i3 && _arr.length === i3)
- break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i["return"] != null)
- _i["return"]();
- } finally {
- if (_d)
- throw _e;
- }
- }
- return _arr;
- }
- 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);
- }
- function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length)
- len = arr.length;
- for (var i3 = 0, arr2 = new Array(len); i3 < len; i3++)
- arr2[i3] = arr[i3];
- return arr2;
- }
- 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.");
- }
- var window$1 = typeof window === "undefined" ? null : window;
- var navigator2 = window$1 ? window$1.navigator : null;
- window$1 ? window$1.document : null;
- var typeofstr = _typeof("");
- var typeofobj = _typeof({});
- var typeoffn = _typeof(function() {
- });
- var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement);
- var instanceStr = function instanceStr2(obj) {
- return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;
- };
- var string = function string2(obj) {
- return obj != null && _typeof(obj) == typeofstr;
- };
- var fn$6 = function fn2(obj) {
- return obj != null && _typeof(obj) === typeoffn;
- };
- var array2 = function array3(obj) {
- return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);
- };
- var plainObject = function plainObject2(obj) {
- return obj != null && _typeof(obj) === typeofobj && !array2(obj) && obj.constructor === Object;
- };
- var object2 = function object3(obj) {
- return obj != null && _typeof(obj) === typeofobj;
- };
- var number$12 = function number3(obj) {
- return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);
- };
- var integer = function integer2(obj) {
- return number$12(obj) && Math.floor(obj) === obj;
- };
- var htmlElement = function htmlElement2(obj) {
- if ("undefined" === typeofhtmlele) {
- return void 0;
- } else {
- return null != obj && obj instanceof HTMLElement;
- }
- };
- var elementOrCollection = function elementOrCollection2(obj) {
- return element(obj) || collection(obj);
- };
- var element = function element2(obj) {
- return instanceStr(obj) === "collection" && obj._private.single;
- };
- var collection = function collection2(obj) {
- return instanceStr(obj) === "collection" && !obj._private.single;
- };
- var core2 = function core3(obj) {
- return instanceStr(obj) === "core";
- };
- var stylesheet = function stylesheet2(obj) {
- return instanceStr(obj) === "stylesheet";
- };
- var event = function event2(obj) {
- return instanceStr(obj) === "event";
- };
- var emptyString = function emptyString2(obj) {
- if (obj === void 0 || obj === null) {
- return true;
- } else if (obj === "" || obj.match(/^\s+$/)) {
- return true;
- }
- return false;
- };
- var domElement = function domElement2(obj) {
- if (typeof HTMLElement === "undefined") {
- return false;
- } else {
- return obj instanceof HTMLElement;
- }
- };
- var boundingBox = function boundingBox2(obj) {
- return plainObject(obj) && number$12(obj.x1) && number$12(obj.x2) && number$12(obj.y1) && number$12(obj.y2);
- };
- var promise = function promise2(obj) {
- return object2(obj) && fn$6(obj.then);
- };
- var ms = function ms2() {
- return navigator2 && navigator2.userAgent.match(/msie|trident|edge/i);
- };
- var memoize$1 = function memoize3(fn2, keyFn) {
- if (!keyFn) {
- keyFn = function keyFn2() {
- if (arguments.length === 1) {
- return arguments[0];
- } else if (arguments.length === 0) {
- return "undefined";
- }
- var args = [];
- for (var i3 = 0; i3 < arguments.length; i3++) {
- args.push(arguments[i3]);
- }
- return args.join("$");
- };
- }
- var memoizedFn = function memoizedFn2() {
- var self2 = this;
- var args = arguments;
- var ret;
- var k = keyFn.apply(self2, args);
- var cache2 = memoizedFn2.cache;
- if (!(ret = cache2[k])) {
- ret = cache2[k] = fn2.apply(self2, args);
- }
- return ret;
- };
- memoizedFn.cache = {};
- return memoizedFn;
- };
- var camel2dash = memoize$1(function(str2) {
- return str2.replace(/([A-Z])/g, function(v) {
- return "-" + v.toLowerCase();
- });
- });
- var dash2camel = memoize$1(function(str2) {
- return str2.replace(/(-\w)/g, function(v) {
- return v[1].toUpperCase();
- });
- });
- var prependCamel = memoize$1(function(prefix, str2) {
- return prefix + str2[0].toUpperCase() + str2.substring(1);
- }, function(prefix, str2) {
- return prefix + "$" + str2;
- });
- var capitalize = function capitalize2(str2) {
- if (emptyString(str2)) {
- return str2;
- }
- return str2.charAt(0).toUpperCase() + str2.substring(1);
- };
- var number2 = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))";
- var rgba2 = "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 hsla2 = "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 ascending2 = function ascending3(a, b) {
- if (a < b) {
- return -1;
- } else if (a > b) {
- return 1;
- } else {
- return 0;
- }
- };
- var descending2 = function descending3(a, b) {
- return -1 * ascending2(a, b);
- };
- var extend2 = Object.assign != null ? Object.assign.bind(Object) : function(tgt) {
- var args = arguments;
- for (var i3 = 1; i3 < args.length; i3++) {
- var obj = args[i3];
- if (obj == null) {
- continue;
- }
- var keys2 = Object.keys(obj);
- for (var j = 0; j < keys2.length; j++) {
- var k = keys2[j];
- tgt[k] = obj[k];
- }
- }
- return tgt;
- };
- var hex2tuple = function hex2tuple2(hex2) {
- if (!(hex2.length === 4 || hex2.length === 7) || hex2[0] !== "#") {
- return;
- }
- var shortHex = hex2.length === 4;
- var r, g, b;
- var base = 16;
- if (shortHex) {
- r = parseInt(hex2[1] + hex2[1], base);
- g = parseInt(hex2[2] + hex2[2], base);
- b = parseInt(hex2[3] + hex2[3], base);
- } else {
- r = parseInt(hex2[1] + hex2[2], base);
- g = parseInt(hex2[3] + hex2[4], base);
- b = parseInt(hex2[5] + hex2[6], base);
- }
- return [r, g, b];
- };
- var hsl2tuple = function hsl2tuple2(hsl2) {
- var ret;
- var h, s, l, a, r, g, b;
- function hue2rgb(p3, q2, t4) {
- if (t4 < 0)
- t4 += 1;
- if (t4 > 1)
- t4 -= 1;
- if (t4 < 1 / 6)
- return p3 + (q2 - p3) * 6 * t4;
- if (t4 < 1 / 2)
- return q2;
- if (t4 < 2 / 3)
- return p3 + (q2 - p3) * (2 / 3 - t4) * 6;
- return p3;
- }
- var m = new RegExp("^" + hsla2 + "$").exec(hsl2);
- 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;
- };
- var rgb2tuple = function rgb2tuple2(rgb2) {
- var ret;
- var m = new RegExp("^" + rgba2 + "$").exec(rgb2);
- if (m) {
- ret = [];
- var isPct = [];
- for (var i3 = 1; i3 <= 3; i3++) {
- var channel2 = m[i3];
- if (channel2[channel2.length - 1] === "%") {
- isPct[i3] = true;
- }
- channel2 = parseFloat(channel2);
- if (isPct[i3]) {
- channel2 = channel2 / 100 * 255;
- }
- if (channel2 < 0 || channel2 > 255) {
- return;
- }
- ret.push(Math.floor(channel2));
- }
- 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;
- };
- var colorname2tuple = function colorname2tuple2(color2) {
- return colors[color2.toLowerCase()];
- };
- var color2tuple = function color2tuple2(color2) {
- return (array2(color2) ? color2 : null) || colorname2tuple(color2) || hex2tuple(color2) || rgb2tuple(color2) || hsl2tuple(color2);
- };
- 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 = function setMap2(options2) {
- var obj = options2.map;
- var keys2 = options2.keys;
- var l = keys2.length;
- for (var i3 = 0; i3 < l; i3++) {
- var key = keys2[i3];
- if (plainObject(key)) {
- throw Error("Tried to set map with object key");
- }
- if (i3 < keys2.length - 1) {
- if (obj[key] == null) {
- obj[key] = {};
- }
- obj = obj[key];
- } else {
- obj[key] = options2.value;
- }
- }
- };
- var getMap = function getMap2(options2) {
- var obj = options2.map;
- var keys2 = options2.keys;
- var l = keys2.length;
- for (var i3 = 0; i3 < l; i3++) {
- var key = keys2[i3];
- if (plainObject(key)) {
- throw Error("Tried to get map with object key");
- }
- obj = obj[key];
- if (obj == null) {
- return obj;
- }
- }
- return obj;
- };
- function isObject2(value) {
- var type2 = typeof value;
- return value != null && (type2 == "object" || type2 == "function");
- }
- var isObject_12 = isObject2;
- var commonjsGlobal$1 = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : {};
- function createCommonjsModule(fn2, module3) {
- return module3 = { exports: {} }, fn2(module3, module3.exports), module3.exports;
- }
- var freeGlobal2 = typeof commonjsGlobal$1 == "object" && commonjsGlobal$1 && commonjsGlobal$1.Object === Object && commonjsGlobal$1;
- var _freeGlobal = freeGlobal2;
- var freeSelf2 = typeof self == "object" && self && self.Object === Object && self;
- var root2 = _freeGlobal || freeSelf2 || Function("return this")();
- var _root = root2;
- var now2 = function() {
- return _root.Date.now();
- };
- var now_1 = now2;
- var reWhitespace2 = /\s/;
- function trimmedEndIndex2(string2) {
- var index = string2.length;
- while (index-- && reWhitespace2.test(string2.charAt(index))) {
- }
- return index;
- }
- var _trimmedEndIndex = trimmedEndIndex2;
- var reTrimStart2 = /^\s+/;
- function baseTrim2(string2) {
- return string2 ? string2.slice(0, _trimmedEndIndex(string2) + 1).replace(reTrimStart2, "") : string2;
- }
- var _baseTrim = baseTrim2;
- var Symbol$12 = _root.Symbol;
- var _Symbol = Symbol$12;
- var objectProto$52 = Object.prototype;
- var hasOwnProperty$42 = objectProto$52.hasOwnProperty;
- var nativeObjectToString$12 = objectProto$52.toString;
- var symToStringTag$12 = _Symbol ? _Symbol.toStringTag : void 0;
- function getRawTag2(value) {
- var isOwn = hasOwnProperty$42.call(value, symToStringTag$12), tag = value[symToStringTag$12];
- try {
- value[symToStringTag$12] = void 0;
- var unmasked = true;
- } catch (e) {
- }
- var result = nativeObjectToString$12.call(value);
- if (unmasked) {
- if (isOwn) {
- value[symToStringTag$12] = tag;
- } else {
- delete value[symToStringTag$12];
- }
- }
- return result;
- }
- var _getRawTag = getRawTag2;
- var objectProto$42 = Object.prototype;
- var nativeObjectToString2 = objectProto$42.toString;
- function objectToString2(value) {
- return nativeObjectToString2.call(value);
- }
- var _objectToString = objectToString2;
- var nullTag2 = "[object Null]", undefinedTag2 = "[object Undefined]";
- var symToStringTag2 = _Symbol ? _Symbol.toStringTag : void 0;
- function baseGetTag2(value) {
- if (value == null) {
- return value === void 0 ? undefinedTag2 : nullTag2;
- }
- return symToStringTag2 && symToStringTag2 in Object(value) ? _getRawTag(value) : _objectToString(value);
- }
- var _baseGetTag = baseGetTag2;
- function isObjectLike2(value) {
- return value != null && typeof value == "object";
- }
- var isObjectLike_1 = isObjectLike2;
- var symbolTag2 = "[object Symbol]";
- function isSymbol2(value) {
- return typeof value == "symbol" || isObjectLike_1(value) && _baseGetTag(value) == symbolTag2;
- }
- var isSymbol_1 = isSymbol2;
- var NAN2 = 0 / 0;
- var reIsBadHex2 = /^[-+]0x[0-9a-f]+$/i;
- var reIsBinary2 = /^0b[01]+$/i;
- var reIsOctal2 = /^0o[0-7]+$/i;
- var freeParseInt2 = parseInt;
- function toNumber2(value) {
- if (typeof value == "number") {
- return value;
- }
- if (isSymbol_1(value)) {
- return NAN2;
- }
- if (isObject_12(value)) {
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
- value = isObject_12(other) ? other + "" : other;
- }
- if (typeof value != "string") {
- return value === 0 ? value : +value;
- }
- value = _baseTrim(value);
- var isBinary2 = reIsBinary2.test(value);
- return isBinary2 || reIsOctal2.test(value) ? freeParseInt2(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex2.test(value) ? NAN2 : +value;
- }
- var toNumber_1 = toNumber2;
- var FUNC_ERROR_TEXT$1 = "Expected a function";
- var nativeMax2 = Math.max, 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_12(options2)) {
- leading = !!options2.leading;
- maxing = "maxWait" in options2;
- maxWait = maxing ? nativeMax2(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;
- }
- function leadingEdge(time2) {
- lastInvokeTime = time2;
- timerId = setTimeout(timerExpired, wait);
- return leading ? invokeFunc(time2) : result;
- }
- function remainingWait(time2) {
- var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
- return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
- }
- function shouldInvoke(time2) {
- var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime;
- return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
- }
- function timerExpired() {
- var time2 = now_1();
- if (shouldInvoke(time2)) {
- return trailingEdge(time2);
- }
- timerId = setTimeout(timerExpired, remainingWait(time2));
- }
- function trailingEdge(time2) {
- timerId = void 0;
- if (trailing && lastArgs) {
- return invokeFunc(time2);
- }
- lastArgs = lastThis = void 0;
- return result;
- }
- function cancel() {
- if (timerId !== void 0) {
- clearTimeout(timerId);
- }
- lastInvokeTime = 0;
- lastArgs = lastCallTime = lastThis = timerId = void 0;
- }
- function flush() {
- return timerId === void 0 ? result : trailingEdge(now_1());
- }
- 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;
- }
- debounced.cancel = cancel;
- debounced.flush = flush;
- return debounced;
- }
- var debounce_1 = debounce;
- var performance2 = window$1 ? window$1.performance : null;
- var pnow = performance2 && performance2.now ? function() {
- return performance2.now();
- } : function() {
- return Date.now();
- };
- var raf = function() {
- if (window$1) {
- if (window$1.requestAnimationFrame) {
- return function(fn2) {
- window$1.requestAnimationFrame(fn2);
- };
- } else if (window$1.mozRequestAnimationFrame) {
- return function(fn2) {
- window$1.mozRequestAnimationFrame(fn2);
- };
- } else if (window$1.webkitRequestAnimationFrame) {
- return function(fn2) {
- window$1.webkitRequestAnimationFrame(fn2);
- };
- } else if (window$1.msRequestAnimationFrame) {
- return function(fn2) {
- window$1.msRequestAnimationFrame(fn2);
- };
- }
- }
- return function(fn2) {
- if (fn2) {
- setTimeout(function() {
- fn2(pnow());
- }, 1e3 / 60);
- }
- };
- }();
- var requestAnimationFrame2 = function requestAnimationFrame3(fn2) {
- return raf(fn2);
- };
- var performanceNow = pnow;
- var DEFAULT_HASH_SEED = 9261;
- var K2 = 65599;
- var DEFAULT_HASH_SEED_ALT = 5381;
- var hashIterableInts = 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 * K2 + entry.value | 0;
- }
- return hash;
- };
- var hashInt = function hashInt2(num) {
- var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
- return seed * K2 + num | 0;
- };
- var hashIntAlt = function hashIntAlt2(num) {
- var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED_ALT;
- return (seed << 5) + seed + num | 0;
- };
- var combineHashes = function combineHashes2(hash1, hash2) {
- return hash1 * 2097152 + hash2;
- };
- var combineHashesArray = function combineHashesArray2(hashes) {
- return hashes[0] * 2097152 + hashes[1];
- };
- var hashArrays = function hashArrays2(hashes1, hashes2) {
- return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];
- };
- var hashIntsArray = function hashIntsArray2(ints, seed) {
- var entry = {
- value: 0,
- done: false
- };
- var i3 = 0;
- var length2 = ints.length;
- var iterator = {
- next: function next2() {
- if (i3 < length2) {
- entry.value = ints[i3++];
- } else {
- entry.done = true;
- }
- return entry;
- }
- };
- return hashIterableInts(iterator, seed);
- };
- var hashString = function hashString2(str2, seed) {
- var entry = {
- value: 0,
- done: false
- };
- var i3 = 0;
- var length2 = str2.length;
- var iterator = {
- next: function next2() {
- if (i3 < length2) {
- entry.value = str2.charCodeAt(i3++);
- } else {
- entry.done = true;
- }
- return entry;
- }
- };
- return hashIterableInts(iterator, seed);
- };
- var hashStrings = function hashStrings2() {
- return hashStringsArray(arguments);
- };
- var hashStringsArray = function hashStringsArray2(strs) {
- var hash;
- for (var i3 = 0; i3 < strs.length; i3++) {
- var str2 = strs[i3];
- if (i3 === 0) {
- hash = hashString(str2);
- } else {
- hash = hashString(str2, hash);
- }
- }
- return hash;
- };
- var warningsEnabled = true;
- var warnSupported = console.warn != null;
- var traceSupported = console.trace != null;
- var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;
- var trueify = function trueify2() {
- return true;
- };
- var falsify = function falsify2() {
- return false;
- };
- var zeroify = function zeroify2() {
- return 0;
- };
- var noop$12 = function noop3() {
- };
- var error = function error2(msg) {
- throw new Error(msg);
- };
- var warnings = function warnings2(enabled) {
- if (enabled !== void 0) {
- warningsEnabled = !!enabled;
- } else {
- return warningsEnabled;
- }
- };
- var warn = function warn2(msg) {
- if (!warnings()) {
- return;
- }
- if (warnSupported) {
- console.warn(msg);
- } else {
- console.log(msg);
- if (traceSupported) {
- console.trace();
- }
- }
- };
- var clone2 = function clone3(obj) {
- return extend2({}, obj);
- };
- var copy2 = function copy3(obj) {
- if (obj == null) {
- return obj;
- }
- if (array2(obj)) {
- return obj.slice();
- } else if (plainObject(obj)) {
- return clone2(obj);
- } else {
- return obj;
- }
- };
- var copyArray$1 = function copyArray3(arr) {
- return arr.slice();
- };
- var uuid = 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;
- };
- var _staticEmptyObject = {};
- var staticEmptyObject = function staticEmptyObject2() {
- return _staticEmptyObject;
- };
- var defaults$g = function defaults3(_defaults) {
- var keys2 = Object.keys(_defaults);
- return function(opts) {
- var filledOpts = {};
- for (var i3 = 0; i3 < keys2.length; i3++) {
- var key = keys2[i3];
- var optVal = opts == null ? void 0 : opts[key];
- filledOpts[key] = optVal === void 0 ? _defaults[key] : optVal;
- }
- return filledOpts;
- };
- };
- var removeFromArray = function removeFromArray2(arr, ele, oneCopy) {
- for (var i3 = arr.length - 1; i3 >= 0; i3--) {
- if (arr[i3] === ele) {
- arr.splice(i3, 1);
- if (oneCopy) {
- break;
- }
- }
- }
- };
- var clearArray = function clearArray2(arr) {
- arr.splice(0, arr.length);
- };
- var push = function push2(arr, otherArr) {
- for (var i3 = 0; i3 < otherArr.length; i3++) {
- var el = otherArr[i3];
- arr.push(el);
- }
- };
- var getPrefixedProperty = function getPrefixedProperty2(obj, propName, prefix) {
- if (prefix) {
- propName = prependCamel(prefix, propName);
- }
- return obj[propName];
- };
- var setPrefixedProperty = function setPrefixedProperty2(obj, propName, prefix, value) {
- if (prefix) {
- propName = prependCamel(prefix, propName);
- }
- obj[propName] = value;
- };
- var ObjectMap = /* @__PURE__ */ function() {
- function ObjectMap2() {
- _classCallCheck(this, ObjectMap2);
- this._obj = {};
- }
- _createClass(ObjectMap2, [{
- key: "set",
- value: function set3(key, val) {
- this._obj[key] = val;
- return this;
- }
- }, {
- key: "delete",
- value: function _delete(key) {
- this._obj[key] = void 0;
- return this;
- }
- }, {
- key: "clear",
- value: function clear2() {
- this._obj = {};
- }
- }, {
- key: "has",
- value: function has2(key) {
- return this._obj[key] !== void 0;
- }
- }, {
- key: "get",
- value: function get3(key) {
- return this._obj[key];
- }
- }]);
- return ObjectMap2;
- }();
- var Map$22 = 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 i3 = 0; i3 < arr.length; i3++) {
- this.add(arr[i3]);
- }
- }
- }
- _createClass(ObjectSet2, [{
- key: "instanceString",
- value: function instanceString() {
- return "set";
- }
- }, {
- key: "add",
- value: function add(val) {
- var o = this._obj;
- if (o[val] !== 1) {
- o[val] = 1;
- this.size++;
- }
- }
- }, {
- key: "delete",
- value: function _delete(val) {
- var o = this._obj;
- if (o[val] === 1) {
- o[val] = 0;
- this.size--;
- }
- }
- }, {
- key: "clear",
- value: function clear2() {
- this._obj = /* @__PURE__ */ Object.create(null);
- }
- }, {
- key: "has",
- value: function has2(val) {
- return this._obj[val] === 1;
- }
- }, {
- key: "toArray",
- value: function toArray2() {
- var _this = this;
- return Object.keys(this._obj).filter(function(key) {
- return _this.has(key);
- });
- }
- }, {
- key: "forEach",
- value: function forEach2(callback, thisArg) {
- return this.toArray().forEach(callback, thisArg);
- }
- }]);
- return ObjectSet2;
- }();
- var Set$12 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet;
- var Element = function Element2(cy, params) {
- var restore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
- if (cy === void 0 || params === void 0 || !core2(cy)) {
- error("An element must have a core reference and parameters set");
- return;
- }
- var group = params.group;
- if (group == null) {
- if (params.data && params.data.source != null && params.data.target != null) {
- group = "edges";
- } else {
- group = "nodes";
- }
- }
- if (group !== "nodes" && group !== "edges") {
- error("An element must be of type `nodes` or `edges`; you specified `" + group + "`");
- 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,
- // 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 ? group === "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$12(),
- // 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 pan = cy.pan();
- var zoom = cy.zoom();
- _p.position = {
- x: (rpos.x - pan.x) / zoom,
- y: (rpos.y - pan.y) / zoom
- };
- }
- var classes2 = [];
- if (array2(params.classes)) {
- classes2 = params.classes;
- } else if (string(params.classes)) {
- classes2 = params.classes.split(/\s+/);
- }
- for (var i3 = 0, l = classes2.length; i3 < l; i3++) {
- var cls = classes2[i3];
- 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();
- }
- };
- var defineSearch = function defineSearch2(params) {
- params = {
- bfs: params.bfs || !params.dfs,
- dfs: params.dfs || !params.bfs
- };
- return function searchFn(roots, fn2, directed) {
- var options2;
- if (plainObject(roots) && !elementOrCollection(roots)) {
- options2 = roots;
- roots = options2.roots || options2.root;
- fn2 = options2.visit;
- directed = options2.directed;
- }
- directed = arguments.length === 2 && !fn$6(fn2) ? fn2 : directed;
- fn2 = fn$6(fn2) ? fn2 : function() {
- };
- var cy = this._private.cy;
- var v = roots = string(roots) ? this.filter(roots) : roots;
- var Q2 = [];
- var connectedNodes = [];
- var connectedBy = {};
- var id2depth = {};
- var V = {};
- var j = 0;
- var found;
- var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
- for (var i3 = 0; i3 < v.length; i3++) {
- var vi = v[i3];
- var viId = vi.id();
- if (vi.isNode()) {
- Q2.unshift(vi);
- if (params.bfs) {
- V[viId] = true;
- connectedNodes.push(vi);
- }
- id2depth[viId] = 0;
- }
- }
- var _loop = function _loop2() {
- var v2 = params.bfs ? Q2.shift() : Q2.pop();
- var vId = v2.id();
- if (params.dfs) {
- if (V[vId]) {
- return "continue";
- }
- V[vId] = true;
- connectedNodes.push(v2);
- }
- 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 : v2.same(src) ? tgt[0] : src[0];
- var ret = void 0;
- ret = fn2(v2, prevEdge, prevNode, j++, depth);
- if (ret === true) {
- found = v2;
- return "break";
- }
- if (ret === false) {
- return "break";
- }
- var vwEdges = v2.connectedEdges().filter(function(e3) {
- return (!directed || e3.source().same(v2)) && edges2.has(e3);
- });
- for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {
- var e = vwEdges[_i2];
- var w2 = e.connectedNodes().filter(function(n) {
- return !n.same(v2) && nodes2.has(n);
- });
- var wId = w2.id();
- if (w2.length !== 0 && !V[wId]) {
- w2 = w2[0];
- Q2.push(w2);
- if (params.bfs) {
- V[wId] = true;
- connectedNodes.push(w2);
- }
- connectedBy[wId] = e;
- id2depth[wId] = id2depth[vId] + 1;
- }
- }
- };
- while (Q2.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 node2 = connectedNodes[_i];
- var edge = connectedBy[node2.id()];
- if (edge != null) {
- connectedEles.push(edge);
- }
- connectedEles.push(node2);
- }
- return {
- path: cy.collection(connectedEles),
- found: cy.collection(found)
- };
- };
- };
- 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(module3, exports3) {
- (function() {
- var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min3, nlargest, nsmallest, updateItem, _siftdown, _siftup;
- floor = Math.floor, min3 = Math.min;
- defaultCmp = function(x2, y2) {
- if (x2 < y2) {
- return -1;
- }
- if (x2 > y2) {
- return 1;
- }
- return 0;
- };
- insort = 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;
- };
- heappush = function(array3, item, cmp) {
- if (cmp == null) {
- cmp = defaultCmp;
- }
- array3.push(item);
- return _siftdown(array3, 0, array3.length - 1, cmp);
- };
- heappop = 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;
- };
- heapreplace = function(array3, item, cmp) {
- var returnitem;
- if (cmp == null) {
- cmp = defaultCmp;
- }
- returnitem = array3[0];
- array3[0] = item;
- _siftup(array3, 0, cmp);
- return returnitem;
- };
- heappushpop = 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;
- };
- heapify = function(array3, cmp) {
- var i3, _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++) {
- i3 = _ref1[_i];
- _results.push(_siftup(array3, i3, cmp));
- }
- return _results;
- };
- updateItem = 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);
- };
- nlargest = 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();
- };
- nsmallest = 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 = array3.slice(0, n).sort(cmp);
- if (!result.length) {
- return result;
- }
- los = result[result.length - 1];
- _ref = array3.slice(n);
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- elem = _ref[_i];
- if (cmp(elem, los) < 0) {
- insort(result, elem, 0, null, cmp);
- result.pop();
- los = result[result.length - 1];
- }
- }
- return result;
- }
- heapify(array3, cmp);
- _results = [];
- for (_j = 0, _ref1 = min3(n, array3.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {
- _results.push(heappop(array3, cmp));
- }
- return _results;
- };
- _siftdown = function(array3, startpos, pos, cmp) {
- var newitem, parent, parentpos;
- if (cmp == null) {
- cmp = defaultCmp;
- }
- newitem = array3[pos];
- while (pos > startpos) {
- parentpos = pos - 1 >> 1;
- parent = array3[parentpos];
- if (cmp(newitem, parent) < 0) {
- array3[pos] = parent;
- pos = parentpos;
- continue;
- }
- break;
- }
- return array3[pos] = newitem;
- };
- _siftup = function(array3, pos, cmp) {
- var childpos, endpos, newitem, rightpos, startpos;
- if (cmp == null) {
- cmp = defaultCmp;
- }
- endpos = array3.length;
- startpos = pos;
- newitem = array3[pos];
- childpos = 2 * pos + 1;
- while (childpos < endpos) {
- rightpos = childpos + 1;
- if (rightpos < endpos && !(cmp(array3[childpos], array3[rightpos]) < 0)) {
- childpos = rightpos;
- }
- array3[pos] = array3[childpos];
- pos = childpos;
- childpos = 2 * pos + 1;
- }
- array3[pos] = newitem;
- return _siftdown(array3, startpos, pos, cmp);
- };
- Heap = function() {
- Heap2.push = heappush;
- Heap2.pop = heappop;
- Heap2.replace = heapreplace;
- Heap2.pushpop = heappushpop;
- Heap2.heapify = heapify;
- Heap2.updateItem = updateItem;
- Heap2.nlargest = nlargest;
- Heap2.nsmallest = nsmallest;
- function Heap2(cmp) {
- this.cmp = cmp != null ? cmp : defaultCmp;
- this.nodes = [];
- }
- Heap2.prototype.push = function(x2) {
- return heappush(this.nodes, x2, this.cmp);
- };
- Heap2.prototype.pop = function() {
- return heappop(this.nodes, this.cmp);
- };
- Heap2.prototype.peek = function() {
- return this.nodes[0];
- };
- Heap2.prototype.contains = function(x2) {
- return this.nodes.indexOf(x2) !== -1;
- };
- Heap2.prototype.replace = function(x2) {
- return heapreplace(this.nodes, x2, this.cmp);
- };
- Heap2.prototype.pushpop = function(x2) {
- return heappushpop(this.nodes, x2, this.cmp);
- };
- Heap2.prototype.heapify = function() {
- return heapify(this.nodes, this.cmp);
- };
- Heap2.prototype.updateItem = function(x2) {
- return updateItem(this.nodes, x2, this.cmp);
- };
- Heap2.prototype.clear = function() {
- return this.nodes = [];
- };
- Heap2.prototype.empty = function() {
- return this.nodes.length === 0;
- };
- Heap2.prototype.size = function() {
- return this.nodes.length;
- };
- Heap2.prototype.clone = function() {
- var heap2;
- heap2 = new Heap2();
- heap2.nodes = this.nodes.slice(0);
- return heap2;
- };
- Heap2.prototype.toArray = function() {
- return this.nodes.slice(0);
- };
- Heap2.prototype.insert = Heap2.prototype.push;
- Heap2.prototype.top = Heap2.prototype.peek;
- Heap2.prototype.front = Heap2.prototype.peek;
- Heap2.prototype.has = Heap2.prototype.contains;
- Heap2.prototype.copy = Heap2.prototype.clone;
- return Heap2;
- }();
- (function(root3, factory) {
- {
- return module3.exports = factory();
- }
- })(this, function() {
- return Heap;
- });
- }).call(commonjsGlobal$1);
- });
- var heap = heap$1;
- var dijkstraDefaults = defaults$g({
- root: null,
- weight: function weight(edge) {
- return 1;
- },
- directed: false
- });
- var elesfn$u = {
- dijkstra: function dijkstra(options2) {
- if (!plainObject(options2)) {
- var args = arguments;
- options2 = {
- root: args[0],
- weight: args[1],
- directed: args[2]
- };
- }
- var _dijkstraDefaults = dijkstraDefaults(options2), root3 = _dijkstraDefaults.root, weight = _dijkstraDefaults.weight, directed = _dijkstraDefaults.directed;
- var eles = this;
- var weightFn = weight;
- var source = string(root3) ? this.filter(root3)[0] : root3[0];
- var dist3 = {};
- var prev2 = {};
- var knownDist = {};
- var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
- edges2.unmergeBy(function(ele) {
- return ele.isLoop();
- });
- var getDist2 = function getDist3(node3) {
- return dist3[node3.id()];
- };
- var setDist = function setDist2(node3, d) {
- dist3[node3.id()] = d;
- Q2.updateItem(node3);
- };
- var Q2 = new heap(function(a, b) {
- return getDist2(a) - getDist2(b);
- });
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var node2 = nodes2[i3];
- dist3[node2.id()] = node2.same(source) ? 0 : Infinity;
- Q2.push(node2);
- }
- var distBetween = function distBetween2(u3, v2) {
- var uvs = (directed ? u3.edgesTo(v2) : u3.edgesWith(v2)).intersect(edges2);
- var smallestDistance = Infinity;
- var smallestEdge;
- for (var _i = 0; _i < uvs.length; _i++) {
- var edge = uvs[_i];
- var _weight = weightFn(edge);
- if (_weight < smallestDistance || !smallestEdge) {
- smallestDistance = _weight;
- smallestEdge = edge;
- }
- }
- return {
- edge: smallestEdge,
- dist: smallestDistance
- };
- };
- while (Q2.size() > 0) {
- var u2 = Q2.pop();
- var smalletsDist = getDist2(u2);
- var uid = u2.id();
- knownDist[uid] = smalletsDist;
- if (smalletsDist === Infinity) {
- continue;
- }
- var neighbors = u2.neighborhood().intersect(nodes2);
- for (var _i2 = 0; _i2 < neighbors.length; _i2++) {
- var v = neighbors[_i2];
- var vid = v.id();
- var vDist = distBetween(u2, v);
- var alt = smalletsDist + vDist.dist;
- if (alt < getDist2(v)) {
- setDist(v, alt);
- prev2[vid] = {
- node: u2,
- edge: vDist.edge
- };
- }
- }
- }
- return {
- distanceTo: function distanceTo(node3) {
- var target = string(node3) ? nodes2.filter(node3)[0] : node3[0];
- return knownDist[target.id()];
- },
- pathTo: function pathTo(node3) {
- var target = string(node3) ? nodes2.filter(node3)[0] : node3[0];
- var S2 = [];
- var u3 = target;
- var uid2 = u3.id();
- if (target.length > 0) {
- S2.unshift(target);
- while (prev2[uid2]) {
- var p2 = prev2[uid2];
- S2.unshift(p2.edge);
- S2.unshift(p2.node);
- u3 = p2.node;
- uid2 = u3.id();
- }
- }
- return eles.spawn(S2);
- }
- };
- }
- };
- var elesfn$t = {
- // kruskal's algorithm (finds min spanning tree, assuming undirected graph)
- // implemented from pseudocode from wikipedia
- kruskal: function kruskal(weightFn) {
- weightFn = weightFn || function(edge2) {
- return 1;
- };
- var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
- var numNodes = nodes2.length;
- var forest = new Array(numNodes);
- var A = nodes2;
- var findSetIndex = function findSetIndex2(ele) {
- for (var i4 = 0; i4 < forest.length; i4++) {
- var eles = forest[i4];
- if (eles.has(ele)) {
- return i4;
- }
- }
- };
- for (var i3 = 0; i3 < numNodes; i3++) {
- forest[i3] = this.spawn(nodes2[i3]);
- }
- var S2 = edges2.sort(function(a, b) {
- return weightFn(a) - weightFn(b);
- });
- for (var _i = 0; _i < S2.length; _i++) {
- var edge = S2[_i];
- var u2 = edge.source()[0];
- var v = edge.target()[0];
- var setUIndex = findSetIndex(u2);
- var setVIndex = findSetIndex(v);
- var setU = forest[setUIndex];
- var setV = forest[setVIndex];
- if (setUIndex !== setVIndex) {
- A.merge(edge);
- setU.merge(setV);
- forest.splice(setVIndex, 1);
- }
- }
- return A;
- }
- };
- var aStarDefaults = defaults$g({
- root: null,
- goal: null,
- weight: function weight(edge) {
- return 1;
- },
- heuristic: function heuristic(edge) {
- return 0;
- },
- directed: false
- });
- var elesfn$s = {
- // Implemented from pseudocode from wikipedia
- aStar: function aStar(options2) {
- var cy = this.cy();
- var _aStarDefaults = aStarDefaults(options2), root3 = _aStarDefaults.root, goal = _aStarDefaults.goal, heuristic = _aStarDefaults.heuristic, directed = _aStarDefaults.directed, weight = _aStarDefaults.weight;
- root3 = cy.collection(root3)[0];
- goal = cy.collection(goal)[0];
- var sid = root3.id();
- var tid = goal.id();
- var gScore = {};
- var fScore = {};
- var closedSetIds = {};
- var openSet = new heap(function(a, b) {
- return fScore[a.id()] - fScore[b.id()];
- });
- var openSetIds = new Set$12();
- var cameFrom = {};
- var cameFromEdge = {};
- var addToOpenSet = function addToOpenSet2(ele, id2) {
- openSet.push(ele);
- openSetIds.add(id2);
- };
- var cMin, cMinId;
- var popFromOpenSet = function popFromOpenSet2() {
- cMin = openSet.pop();
- cMinId = cMin.id();
- openSetIds["delete"](cMinId);
- };
- var isInOpenSet = function isInOpenSet2(id2) {
- return openSetIds.has(id2);
- };
- addToOpenSet(root3, sid);
- gScore[sid] = 0;
- fScore[sid] = heuristic(root3);
- var steps = 0;
- while (openSet.size() > 0) {
- popFromOpenSet();
- steps++;
- if (cMinId === tid) {
- var path2 = [];
- var pathNode = goal;
- var pathNodeId = tid;
- var pathEdge = cameFromEdge[pathNodeId];
- for (; ; ) {
- path2.unshift(pathNode);
- if (pathEdge != null) {
- path2.unshift(pathEdge);
- }
- pathNode = cameFrom[pathNodeId];
- if (pathNode == null) {
- break;
- }
- pathNodeId = pathNode.id();
- pathEdge = cameFromEdge[pathNodeId];
- }
- return {
- found: true,
- distance: gScore[cMinId],
- path: this.spawn(path2),
- steps
- };
- }
- closedSetIds[cMinId] = true;
- var vwEdges = cMin._private.edges;
- for (var i3 = 0; i3 < vwEdges.length; i3++) {
- var e = vwEdges[i3];
- if (!this.hasElementWithId(e.id())) {
- continue;
- }
- if (directed && e.data("source") !== cMinId) {
- continue;
- }
- var wSrc = e.source();
- var wTgt = e.target();
- var w2 = wSrc.id() !== cMinId ? wSrc : wTgt;
- var wid = w2.id();
- if (!this.hasElementWithId(wid)) {
- continue;
- }
- if (closedSetIds[wid]) {
- continue;
- }
- var tempScore = gScore[cMinId] + weight(e);
- if (!isInOpenSet(wid)) {
- gScore[wid] = tempScore;
- fScore[wid] = tempScore + heuristic(w2);
- addToOpenSet(w2, wid);
- cameFrom[wid] = cMin;
- cameFromEdge[wid] = e;
- continue;
- }
- if (tempScore < gScore[wid]) {
- gScore[wid] = tempScore;
- fScore[wid] = tempScore + heuristic(w2);
- cameFrom[wid] = cMin;
- cameFromEdge[wid] = e;
- }
- }
- }
- return {
- found: false,
- distance: void 0,
- path: void 0,
- steps
- };
- }
- };
- var floydWarshallDefaults = defaults$g({
- weight: function weight(edge) {
- return 1;
- },
- directed: false
- });
- var elesfn$r = {
- // Implemented from pseudocode from wikipedia
- floydWarshall: function floydWarshall(options2) {
- var cy = this.cy();
- var _floydWarshallDefault = floydWarshallDefaults(options2), weight = _floydWarshallDefault.weight, directed = _floydWarshallDefault.directed;
- var weightFn = weight;
- var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
- var N = nodes2.length;
- var Nsq = N * N;
- var indexOf = function indexOf2(node2) {
- return nodes2.indexOf(node2);
- };
- var atIndex = function atIndex2(i4) {
- return nodes2[i4];
- };
- var dist3 = new Array(Nsq);
- for (var n = 0; n < Nsq; n++) {
- var j = n % N;
- var i3 = (n - j) / N;
- if (i3 === j) {
- dist3[n] = 0;
- } else {
- dist3[n] = Infinity;
- }
- }
- var next2 = new Array(Nsq);
- var edgeNext = new Array(Nsq);
- for (var _i = 0; _i < edges2.length; _i++) {
- var edge = edges2[_i];
- var src = edge.source()[0];
- var tgt = edge.target()[0];
- if (src === tgt) {
- continue;
- }
- var s = indexOf(src);
- var t4 = indexOf(tgt);
- var st = s * N + t4;
- var _weight = weightFn(edge);
- if (dist3[st] > _weight) {
- dist3[st] = _weight;
- next2[st] = t4;
- edgeNext[st] = edge;
- }
- if (!directed) {
- var ts = t4 * N + s;
- if (!directed && dist3[ts] > _weight) {
- dist3[ts] = _weight;
- next2[ts] = s;
- edgeNext[ts] = edge;
- }
- }
- }
- for (var k = 0; k < N; k++) {
- for (var _i2 = 0; _i2 < N; _i2++) {
- var ik = _i2 * N + k;
- for (var _j = 0; _j < N; _j++) {
- var ij = _i2 * N + _j;
- var kj = k * N + _j;
- if (dist3[ik] + dist3[kj] < dist3[ij]) {
- dist3[ij] = dist3[ik] + dist3[kj];
- next2[ij] = next2[ik];
- }
- }
- }
- }
- var getArgEle = function getArgEle2(ele) {
- return (string(ele) ? cy.filter(ele) : ele)[0];
- };
- var indexOfArgEle = function indexOfArgEle2(ele) {
- return indexOf(getArgEle(ele));
- };
- var res = {
- distance: function distance2(from2, to) {
- var i4 = indexOfArgEle(from2);
- var j2 = indexOfArgEle(to);
- return dist3[i4 * N + j2];
- },
- path: function path2(from2, to) {
- var i4 = indexOfArgEle(from2);
- var j2 = indexOfArgEle(to);
- var fromNode = atIndex(i4);
- if (i4 === j2) {
- return fromNode.collection();
- }
- if (next2[i4 * N + j2] == null) {
- return cy.collection();
- }
- var path3 = cy.collection();
- var prev2 = i4;
- var edge2;
- path3.merge(fromNode);
- while (i4 !== j2) {
- prev2 = i4;
- i4 = next2[i4 * N + j2];
- edge2 = edgeNext[prev2 * N + i4];
- path3.merge(edge2);
- path3.merge(atIndex(i4));
- }
- return path3;
- }
- };
- return res;
- }
- // floydWarshall
- };
- var bellmanFordDefaults = defaults$g({
- weight: function weight(edge) {
- return 1;
- },
- directed: false,
- root: null
- });
- var elesfn$q = {
- // Implemented from pseudocode from wikipedia
- bellmanFord: function bellmanFord(options2) {
- var _this = this;
- var _bellmanFordDefaults = bellmanFordDefaults(options2), weight = _bellmanFordDefaults.weight, directed = _bellmanFordDefaults.directed, root3 = _bellmanFordDefaults.root;
- var weightFn = weight;
- var eles = this;
- var cy = this.cy();
- var _this$byGroup = this.byGroup(), edges2 = _this$byGroup.edges, nodes2 = _this$byGroup.nodes;
- var numNodes = nodes2.length;
- var infoMap = new Map$22();
- var hasNegativeWeightCycle = false;
- var negativeWeightCycles = [];
- root3 = cy.collection(root3)[0];
- edges2.unmergeBy(function(edge2) {
- return edge2.isLoop();
- });
- var numEdges = edges2.length;
- var getInfo3 = function getInfo4(node3) {
- var obj = infoMap.get(node3.id());
- if (!obj) {
- obj = {};
- infoMap.set(node3.id(), obj);
- }
- return obj;
- };
- var getNodeFromTo = function getNodeFromTo2(to) {
- return (string(to) ? cy.$(to) : to)[0];
- };
- var distanceTo = function distanceTo2(to) {
- return getInfo3(getNodeFromTo(to)).dist;
- };
- var pathTo = function pathTo2(to) {
- var thisStart = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : root3;
- var end2 = getNodeFromTo(to);
- var path2 = [];
- var node3 = end2;
- for (; ; ) {
- if (node3 == null) {
- return _this.spawn();
- }
- var _getInfo = getInfo3(node3), edge2 = _getInfo.edge, pred = _getInfo.pred;
- path2.unshift(node3[0]);
- if (node3.same(thisStart) && path2.length > 0) {
- break;
- }
- if (edge2 != null) {
- path2.unshift(edge2);
- }
- node3 = pred;
- }
- return eles.spawn(path2);
- };
- for (var i3 = 0; i3 < numNodes; i3++) {
- var node2 = nodes2[i3];
- var info2 = getInfo3(node2);
- if (node2.same(root3)) {
- info2.dist = 0;
- } else {
- info2.dist = Infinity;
- }
- info2.pred = null;
- info2.edge = null;
- }
- var replacedEdge = false;
- var checkForEdgeReplacement = function checkForEdgeReplacement2(node1, node22, edge2, info1, info22, weight2) {
- var dist3 = info1.dist + weight2;
- if (dist3 < info22.dist && !edge2.same(info1.edge)) {
- info22.dist = dist3;
- info22.pred = node1;
- info22.edge = edge2;
- replacedEdge = true;
- }
- };
- for (var _i = 1; _i < numNodes; _i++) {
- replacedEdge = false;
- for (var e = 0; e < numEdges; e++) {
- var edge = edges2[e];
- var src = edge.source();
- var tgt = edge.target();
- var _weight = weightFn(edge);
- var srcInfo = getInfo3(src);
- var tgtInfo = getInfo3(tgt);
- checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);
- if (!directed) {
- checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);
- }
- }
- if (!replacedEdge) {
- break;
- }
- }
- if (replacedEdge) {
- var negativeWeightCycleIds = [];
- for (var _e = 0; _e < numEdges; _e++) {
- var _edge = edges2[_e];
- var _src = _edge.source();
- var _tgt = _edge.target();
- var _weight2 = weightFn(_edge);
- var srcDist = getInfo3(_src).dist;
- var tgtDist = getInfo3(_tgt).dist;
- if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {
- if (!hasNegativeWeightCycle) {
- warn("Graph contains a negative weight cycle for Bellman-Ford");
- hasNegativeWeightCycle = true;
- }
- if (options2.findNegativeWeightCycles !== false) {
- var negativeNodes = [];
- if (srcDist + _weight2 < tgtDist) {
- negativeNodes.push(_src);
- }
- if (!directed && tgtDist + _weight2 < srcDist) {
- negativeNodes.push(_tgt);
- }
- var numNegativeNodes = negativeNodes.length;
- for (var n = 0; n < numNegativeNodes; n++) {
- var start2 = negativeNodes[n];
- var cycle = [start2];
- cycle.push(getInfo3(start2).edge);
- var _node = getInfo3(start2).pred;
- while (cycle.indexOf(_node) === -1) {
- cycle.push(_node);
- cycle.push(getInfo3(_node).edge);
- _node = getInfo3(_node).pred;
- }
- cycle = cycle.slice(cycle.indexOf(_node));
- var smallestId = cycle[0].id();
- var smallestIndex = 0;
- for (var c2 = 2; c2 < cycle.length; c2 += 2) {
- if (cycle[c2].id() < smallestId) {
- smallestId = cycle[c2].id();
- smallestIndex = c2;
- }
- }
- cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));
- cycle.push(cycle[0]);
- var cycleId = cycle.map(function(el) {
- return el.id();
- }).join(",");
- if (negativeWeightCycleIds.indexOf(cycleId) === -1) {
- negativeWeightCycles.push(eles.spawn(cycle));
- negativeWeightCycleIds.push(cycleId);
- }
- }
- } else {
- break;
- }
- }
- }
- }
- return {
- distanceTo,
- pathTo,
- hasNegativeWeightCycle,
- negativeWeightCycles
- };
- }
- // bellmanFord
- };
- var sqrt2 = Math.sqrt(2);
- var collapse = function collapse2(edgeIndex, nodeMap, remainingEdges) {
- if (remainingEdges.length === 0) {
- error("Karger-Stein must be run on a connected (sub)graph");
- }
- var edgeInfo = remainingEdges[edgeIndex];
- var sourceIn = edgeInfo[1];
- var targetIn = edgeInfo[2];
- var partition1 = nodeMap[sourceIn];
- var partition2 = nodeMap[targetIn];
- var newEdges = remainingEdges;
- for (var i3 = newEdges.length - 1; i3 >= 0; i3--) {
- var edge = newEdges[i3];
- var src = edge[1];
- var tgt = edge[2];
- if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {
- newEdges.splice(i3, 1);
- }
- }
- for (var _i = 0; _i < newEdges.length; _i++) {
- var _edge = newEdges[_i];
- if (_edge[1] === partition2) {
- newEdges[_i] = _edge.slice();
- newEdges[_i][1] = partition1;
- } else if (_edge[2] === partition2) {
- newEdges[_i] = _edge.slice();
- newEdges[_i][2] = partition1;
- }
- }
- for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {
- if (nodeMap[_i2] === partition2) {
- nodeMap[_i2] = partition1;
- }
- }
- return newEdges;
- };
- var contractUntil = function contractUntil2(metaNodeMap, remainingEdges, size2, sizeLimit) {
- while (size2 > sizeLimit) {
- var edgeIndex = Math.floor(Math.random() * remainingEdges.length);
- remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);
- size2--;
- }
- return remainingEdges;
- };
- var elesfn$p = {
- // Computes the minimum cut of an undirected graph
- // Returns the correct answer with high probability
- kargerStein: function kargerStein() {
- var _this = this;
- var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
- edges2.unmergeBy(function(edge) {
- return edge.isLoop();
- });
- var numNodes = nodes2.length;
- var numEdges = edges2.length;
- var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));
- var stopSize = Math.floor(numNodes / sqrt2);
- if (numNodes < 2) {
- error("At least 2 nodes are required for Karger-Stein algorithm");
- return void 0;
- }
- var edgeIndexes = [];
- for (var i3 = 0; i3 < numEdges; i3++) {
- var e = edges2[i3];
- edgeIndexes.push([i3, nodes2.indexOf(e.source()), nodes2.indexOf(e.target())]);
- }
- var minCutSize = Infinity;
- var minCutEdgeIndexes = [];
- var minCutNodeMap = new Array(numNodes);
- var metaNodeMap = new Array(numNodes);
- var metaNodeMap2 = new Array(numNodes);
- var copyNodesMap = function copyNodesMap2(from2, to) {
- for (var _i3 = 0; _i3 < numNodes; _i3++) {
- to[_i3] = from2[_i3];
- }
- };
- for (var iter = 0; iter <= numIter; iter++) {
- for (var _i4 = 0; _i4 < numNodes; _i4++) {
- metaNodeMap[_i4] = _i4;
- }
- var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);
- var edgesState2 = edgesState.slice();
- copyNodesMap(metaNodeMap, metaNodeMap2);
- var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);
- var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);
- if (res1.length <= res2.length && res1.length < minCutSize) {
- minCutSize = res1.length;
- minCutEdgeIndexes = res1;
- copyNodesMap(metaNodeMap, minCutNodeMap);
- } else if (res2.length <= res1.length && res2.length < minCutSize) {
- minCutSize = res2.length;
- minCutEdgeIndexes = res2;
- copyNodesMap(metaNodeMap2, minCutNodeMap);
- }
- }
- var cut = this.spawn(minCutEdgeIndexes.map(function(e3) {
- return edges2[e3[0]];
- }));
- var partition1 = this.spawn();
- var partition2 = this.spawn();
- var witnessNodePartition = minCutNodeMap[0];
- for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {
- var partitionId = minCutNodeMap[_i5];
- var node2 = nodes2[_i5];
- if (partitionId === witnessNodePartition) {
- partition1.merge(node2);
- } else {
- partition2.merge(node2);
- }
- }
- var constructComponent = function constructComponent2(subset) {
- var component = _this.spawn();
- subset.forEach(function(node3) {
- component.merge(node3);
- node3.connectedEdges().forEach(function(edge) {
- if (_this.contains(edge) && !cut.contains(edge)) {
- component.merge(edge);
- }
- });
- });
- return component;
- };
- var components = [constructComponent(partition1), constructComponent(partition2)];
- var ret = {
- cut,
- components,
- // n.b. partitions are included to be compatible with the old api spec
- // (could be removed in a future major version)
- partition1,
- partition2
- };
- return ret;
- }
- };
- var copyPosition = function copyPosition2(p2) {
- return {
- x: p2.x,
- y: p2.y
- };
- };
- var modelToRenderedPosition = function modelToRenderedPosition2(p2, zoom, pan) {
- return {
- x: p2.x * zoom + pan.x,
- y: p2.y * zoom + pan.y
- };
- };
- var renderedToModelPosition = function renderedToModelPosition2(p2, zoom, pan) {
- return {
- x: (p2.x - pan.x) / zoom,
- y: (p2.y - pan.y) / zoom
- };
- };
- var array2point = function array2point2(arr) {
- return {
- x: arr[0],
- y: arr[1]
- };
- };
- var min2 = function min3(arr) {
- var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
- var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
- var min4 = Infinity;
- for (var i3 = begin; i3 < end2; i3++) {
- var val = arr[i3];
- if (isFinite(val)) {
- min4 = Math.min(val, min4);
- }
- }
- return min4;
- };
- var max2 = function max3(arr) {
- var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
- var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
- var max4 = -Infinity;
- for (var i3 = begin; i3 < end2; i3++) {
- var val = arr[i3];
- if (isFinite(val)) {
- max4 = Math.max(val, max4);
- }
- }
- return max4;
- };
- var mean = function mean2(arr) {
- var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
- var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
- var total = 0;
- var n = 0;
- for (var i3 = begin; i3 < end2; i3++) {
- var val = arr[i3];
- if (isFinite(val)) {
- total += val;
- n++;
- }
- }
- return total / n;
- };
- var median = function median2(arr) {
- var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
- var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
- var copy3 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
- var sort2 = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
- var includeHoles = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
- if (copy3) {
- arr = arr.slice(begin, end2);
- } else {
- if (end2 < arr.length) {
- arr.splice(end2, arr.length - end2);
- }
- if (begin > 0) {
- arr.splice(0, begin);
- }
- }
- var off = 0;
- for (var i3 = arr.length - 1; i3 >= 0; i3--) {
- var v = arr[i3];
- if (includeHoles) {
- if (!isFinite(v)) {
- arr[i3] = -Infinity;
- off++;
- }
- } else {
- arr.splice(i3, 1);
- }
- }
- if (sort2) {
- arr.sort(function(a, b) {
- return a - b;
- });
- }
- var len = arr.length;
- var mid = Math.floor(len / 2);
- if (len % 2 !== 0) {
- return arr[mid + 1 + off];
- } else {
- return (arr[mid - 1 + off] + arr[mid + off]) / 2;
- }
- };
- var deg2rad = function deg2rad2(deg) {
- return Math.PI * deg / 180;
- };
- var getAngleFromDisp = function getAngleFromDisp2(dispX, dispY) {
- return Math.atan2(dispY, dispX) - Math.PI / 2;
- };
- var log2 = Math.log2 || function(n) {
- return Math.log(n) / Math.log(2);
- };
- var signum = function signum2(x2) {
- if (x2 > 0) {
- return 1;
- } else if (x2 < 0) {
- return -1;
- } else {
- return 0;
- }
- };
- var dist2 = function dist3(p1, p2) {
- return Math.sqrt(sqdist(p1, p2));
- };
- var sqdist = function sqdist2(p1, p2) {
- var dx = p2.x - p1.x;
- var dy = p2.y - p1.y;
- return dx * dx + dy * dy;
- };
- var inPlaceSumNormalize = function inPlaceSumNormalize2(v) {
- var length2 = v.length;
- var total = 0;
- for (var i3 = 0; i3 < length2; i3++) {
- total += v[i3];
- }
- for (var _i = 0; _i < length2; _i++) {
- v[_i] = v[_i] / total;
- }
- return v;
- };
- var qbezierAt = function qbezierAt2(p0, p1, p2, t4) {
- return (1 - t4) * (1 - t4) * p0 + 2 * (1 - t4) * t4 * p1 + t4 * t4 * p2;
- };
- var qbezierPtAt = function qbezierPtAt2(p0, p1, p2, t4) {
- return {
- x: qbezierAt(p0.x, p1.x, p2.x, t4),
- y: qbezierAt(p0.y, p1.y, p2.y, t4)
- };
- };
- var lineAt = function lineAt2(p0, p1, t4, d) {
- var vec = {
- x: p1.x - p0.x,
- y: p1.y - p0.y
- };
- var vecDist = dist2(p0, p1);
- var normVec = {
- x: vec.x / vecDist,
- y: vec.y / vecDist
- };
- t4 = t4 == null ? 0 : t4;
- d = d != null ? d : t4 * vecDist;
- return {
- x: p0.x + normVec.x * d,
- y: p0.y + normVec.y * d
- };
- };
- var bound = function bound2(min3, val, max3) {
- return Math.max(min3, Math.min(max3, val));
- };
- var makeBoundingBox = function makeBoundingBox2(bb) {
- if (bb == null) {
- return {
- x1: Infinity,
- y1: Infinity,
- x2: -Infinity,
- y2: -Infinity,
- w: 0,
- h: 0
- };
- } else if (bb.x1 != null && bb.y1 != null) {
- if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {
- return {
- x1: bb.x1,
- y1: bb.y1,
- x2: bb.x2,
- y2: bb.y2,
- w: bb.x2 - bb.x1,
- h: bb.y2 - bb.y1
- };
- } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {
- return {
- x1: bb.x1,
- y1: bb.y1,
- x2: bb.x1 + bb.w,
- y2: bb.y1 + bb.h,
- w: bb.w,
- h: bb.h
- };
- }
- }
- };
- var copyBoundingBox = function copyBoundingBox2(bb) {
- return {
- x1: bb.x1,
- x2: bb.x2,
- w: bb.w,
- y1: bb.y1,
- y2: bb.y2,
- h: bb.h
- };
- };
- var clearBoundingBox = function clearBoundingBox2(bb) {
- bb.x1 = Infinity;
- bb.y1 = Infinity;
- bb.x2 = -Infinity;
- bb.y2 = -Infinity;
- bb.w = 0;
- bb.h = 0;
- };
- var updateBoundingBox = function updateBoundingBox2(bb1, bb2) {
- bb1.x1 = Math.min(bb1.x1, bb2.x1);
- bb1.x2 = Math.max(bb1.x2, bb2.x2);
- bb1.w = bb1.x2 - bb1.x1;
- bb1.y1 = Math.min(bb1.y1, bb2.y1);
- bb1.y2 = Math.max(bb1.y2, bb2.y2);
- bb1.h = bb1.y2 - bb1.y1;
- };
- var expandBoundingBoxByPoint = function expandBoundingBoxByPoint2(bb, x2, y2) {
- bb.x1 = Math.min(bb.x1, x2);
- bb.x2 = Math.max(bb.x2, x2);
- bb.w = bb.x2 - bb.x1;
- bb.y1 = Math.min(bb.y1, y2);
- bb.y2 = Math.max(bb.y2, y2);
- bb.h = bb.y2 - bb.y1;
- };
- var expandBoundingBox = function expandBoundingBox2(bb) {
- var padding2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
- bb.x1 -= padding2;
- bb.x2 += padding2;
- bb.y1 -= padding2;
- bb.y2 += padding2;
- bb.w = bb.x2 - bb.x1;
- bb.h = bb.y2 - bb.y1;
- return bb;
- };
- var expandBoundingBoxSides = function expandBoundingBoxSides2(bb) {
- var padding2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0];
- var top2, right2, bottom2, left2;
- if (padding2.length === 1) {
- top2 = right2 = bottom2 = left2 = padding2[0];
- } else if (padding2.length === 2) {
- top2 = bottom2 = padding2[0];
- left2 = right2 = padding2[1];
- } else if (padding2.length === 4) {
- var _padding = _slicedToArray(padding2, 4);
- top2 = _padding[0];
- right2 = _padding[1];
- bottom2 = _padding[2];
- left2 = _padding[3];
- }
- bb.x1 -= left2;
- bb.x2 += right2;
- bb.y1 -= top2;
- bb.y2 += bottom2;
- bb.w = bb.x2 - bb.x1;
- bb.h = bb.y2 - bb.y1;
- return bb;
- };
- var assignBoundingBox = function assignBoundingBox2(bb1, bb2) {
- bb1.x1 = bb2.x1;
- bb1.y1 = bb2.y1;
- bb1.x2 = bb2.x2;
- bb1.y2 = bb2.y2;
- bb1.w = bb1.x2 - bb1.x1;
- bb1.h = bb1.y2 - bb1.y1;
- };
- var boundingBoxesIntersect = function boundingBoxesIntersect2(bb1, bb2) {
- if (bb1.x1 > bb2.x2) {
- return false;
- }
- if (bb2.x1 > bb1.x2) {
- return false;
- }
- if (bb1.x2 < bb2.x1) {
- return false;
- }
- if (bb2.x2 < bb1.x1) {
- return false;
- }
- if (bb1.y2 < bb2.y1) {
- return false;
- }
- if (bb2.y2 < bb1.y1) {
- return false;
- }
- if (bb1.y1 > bb2.y2) {
- return false;
- }
- if (bb2.y1 > bb1.y2) {
- return false;
- }
- return true;
- };
- var inBoundingBox = function inBoundingBox2(bb, x2, y2) {
- return bb.x1 <= x2 && x2 <= bb.x2 && bb.y1 <= y2 && y2 <= bb.y2;
- };
- var pointInBoundingBox = function pointInBoundingBox2(bb, pt) {
- return inBoundingBox(bb, pt.x, pt.y);
- };
- var boundingBoxInBoundingBox = function boundingBoxInBoundingBox2(bb1, bb2) {
- return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);
- };
- var roundRectangleIntersectLine = function roundRectangleIntersectLine2(x2, y2, nodeX, nodeY, width2, height2, padding2) {
- var cornerRadius = getRoundRectangleRadius(width2, height2);
- var halfWidth = width2 / 2;
- var halfHeight = height2 / 2;
- var straightLineIntersections;
- {
- var topStartX = nodeX - halfWidth + cornerRadius - padding2;
- var topStartY = nodeY - halfHeight - padding2;
- var topEndX = nodeX + halfWidth - cornerRadius + padding2;
- var topEndY = topStartY;
- straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
- if (straightLineIntersections.length > 0) {
- return straightLineIntersections;
- }
- }
- {
- var rightStartX = nodeX + halfWidth + padding2;
- var rightStartY = nodeY - halfHeight + cornerRadius - padding2;
- var rightEndX = rightStartX;
- var rightEndY = nodeY + halfHeight - cornerRadius + padding2;
- straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);
- if (straightLineIntersections.length > 0) {
- return straightLineIntersections;
- }
- }
- {
- var bottomStartX = nodeX - halfWidth + cornerRadius - padding2;
- var bottomStartY = nodeY + halfHeight + padding2;
- var bottomEndX = nodeX + halfWidth - cornerRadius + padding2;
- var bottomEndY = bottomStartY;
- straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);
- if (straightLineIntersections.length > 0) {
- return straightLineIntersections;
- }
- }
- {
- var leftStartX = nodeX - halfWidth - padding2;
- var leftStartY = nodeY - halfHeight + cornerRadius - padding2;
- var leftEndX = leftStartX;
- var leftEndY = nodeY + halfHeight - cornerRadius + padding2;
- straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);
- if (straightLineIntersections.length > 0) {
- return straightLineIntersections;
- }
- }
- var arcIntersections;
- {
- var topLeftCenterX = nodeX - halfWidth + cornerRadius;
- var topLeftCenterY = nodeY - halfHeight + cornerRadius;
- arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding2);
- if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {
- return [arcIntersections[0], arcIntersections[1]];
- }
- }
- {
- var topRightCenterX = nodeX + halfWidth - cornerRadius;
- var topRightCenterY = nodeY - halfHeight + cornerRadius;
- arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding2);
- if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {
- return [arcIntersections[0], arcIntersections[1]];
- }
- }
- {
- var bottomRightCenterX = nodeX + halfWidth - cornerRadius;
- var bottomRightCenterY = nodeY + halfHeight - cornerRadius;
- arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding2);
- if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {
- return [arcIntersections[0], arcIntersections[1]];
- }
- }
- {
- var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;
- var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;
- arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding2);
- if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {
- return [arcIntersections[0], arcIntersections[1]];
- }
- }
- return [];
- };
- var inLineVicinity = function inLineVicinity2(x2, y2, lx1, ly1, lx2, ly2, tolerance) {
- var t4 = tolerance;
- var x1 = Math.min(lx1, lx2);
- var x22 = Math.max(lx1, lx2);
- var y1 = Math.min(ly1, ly2);
- var y22 = Math.max(ly1, ly2);
- return x1 - t4 <= x2 && x2 <= x22 + t4 && y1 - t4 <= y2 && y2 <= y22 + t4;
- };
- var inBezierVicinity = function inBezierVicinity2(x2, y2, x1, y1, x22, y22, x3, y3, tolerance) {
- var bb = {
- x1: Math.min(x1, x3, x22) - tolerance,
- x2: Math.max(x1, x3, x22) + tolerance,
- y1: Math.min(y1, y3, y22) - tolerance,
- y2: Math.max(y1, y3, y22) + tolerance
- };
- if (x2 < bb.x1 || x2 > bb.x2 || y2 < bb.y1 || y2 > bb.y2) {
- return false;
- } else {
- return true;
- }
- };
- var solveQuadratic = function solveQuadratic2(a, b, c2, val) {
- c2 -= val;
- var r = b * b - 4 * a * c2;
- if (r < 0) {
- return [];
- }
- var sqrtR = Math.sqrt(r);
- var denom = 2 * a;
- var root1 = (-b + sqrtR) / denom;
- var root22 = (-b - sqrtR) / denom;
- return [root1, root22];
- };
- var solveCubic = function solveCubic2(a, b, c2, d, result) {
- var epsilon2 = 1e-5;
- if (a === 0) {
- a = epsilon2;
- }
- b /= a;
- c2 /= a;
- d /= a;
- var discriminant, q, r, dum1, s, t4, term1, r13;
- q = (3 * c2 - b * b) / 9;
- r = -(27 * d) + b * (9 * c2 - 2 * (b * b));
- r /= 54;
- discriminant = q * q * q + r * r;
- result[1] = 0;
- term1 = b / 3;
- if (discriminant > 0) {
- s = r + Math.sqrt(discriminant);
- s = s < 0 ? -Math.pow(-s, 1 / 3) : Math.pow(s, 1 / 3);
- t4 = r - Math.sqrt(discriminant);
- t4 = t4 < 0 ? -Math.pow(-t4, 1 / 3) : Math.pow(t4, 1 / 3);
- result[0] = -term1 + s + t4;
- term1 += (s + t4) / 2;
- result[4] = result[2] = -term1;
- term1 = Math.sqrt(3) * (-t4 + s) / 2;
- result[3] = term1;
- result[5] = -term1;
- return;
- }
- result[5] = result[3] = 0;
- if (discriminant === 0) {
- r13 = r < 0 ? -Math.pow(-r, 1 / 3) : Math.pow(r, 1 / 3);
- result[0] = -term1 + 2 * r13;
- result[4] = result[2] = -(r13 + term1);
- return;
- }
- q = -q;
- dum1 = q * q * q;
- dum1 = Math.acos(r / Math.sqrt(dum1));
- r13 = 2 * Math.sqrt(q);
- result[0] = -term1 + r13 * Math.cos(dum1 / 3);
- result[2] = -term1 + r13 * Math.cos((dum1 + 2 * Math.PI) / 3);
- result[4] = -term1 + r13 * Math.cos((dum1 + 4 * Math.PI) / 3);
- return;
- };
- var sqdistToQuadraticBezier = function sqdistToQuadraticBezier2(x2, y2, x1, y1, x22, y22, x3, y3) {
- var a = 1 * x1 * x1 - 4 * x1 * x22 + 2 * x1 * x3 + 4 * x22 * x22 - 4 * x22 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y22 + 2 * y1 * y3 + 4 * y22 * y22 - 4 * y22 * y3 + y3 * y3;
- var b = 1 * 9 * x1 * x22 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x22 * x22 + 3 * x22 * x3 + 9 * y1 * y22 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y22 * y22 + 3 * y22 * y3;
- var c2 = 1 * 3 * x1 * x1 - 6 * x1 * x22 + x1 * x3 - x1 * x2 + 2 * x22 * x22 + 2 * x22 * x2 - x3 * x2 + 3 * y1 * y1 - 6 * y1 * y22 + y1 * y3 - y1 * y2 + 2 * y22 * y22 + 2 * y22 * y2 - y3 * y2;
- var d = 1 * x1 * x22 - x1 * x1 + x1 * x2 - x22 * x2 + y1 * y22 - y1 * y1 + y1 * y2 - y22 * y2;
- var roots = [];
- solveCubic(a, b, c2, d, roots);
- var zeroThreshold = 1e-7;
- var params = [];
- for (var index = 0; index < 6; index += 2) {
- if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1) {
- params.push(roots[index]);
- }
- }
- params.push(1);
- params.push(0);
- var minDistanceSquared = -1;
- var curX, curY, distSquared;
- for (var i3 = 0; i3 < params.length; i3++) {
- curX = Math.pow(1 - params[i3], 2) * x1 + 2 * (1 - params[i3]) * params[i3] * x22 + params[i3] * params[i3] * x3;
- curY = Math.pow(1 - params[i3], 2) * y1 + 2 * (1 - params[i3]) * params[i3] * y22 + params[i3] * params[i3] * y3;
- distSquared = Math.pow(curX - x2, 2) + Math.pow(curY - y2, 2);
- if (minDistanceSquared >= 0) {
- if (distSquared < minDistanceSquared) {
- minDistanceSquared = distSquared;
- }
- } else {
- minDistanceSquared = distSquared;
- }
- }
- return minDistanceSquared;
- };
- var sqdistToFiniteLine = function sqdistToFiniteLine2(x2, y2, x1, y1, x22, y22) {
- var offset = [x2 - x1, y2 - y1];
- var line2 = [x22 - x1, y22 - y1];
- var lineSq = line2[0] * line2[0] + line2[1] * line2[1];
- var hypSq = offset[0] * offset[0] + offset[1] * offset[1];
- var dotProduct = offset[0] * line2[0] + offset[1] * line2[1];
- var adjSq = dotProduct * dotProduct / lineSq;
- if (dotProduct < 0) {
- return hypSq;
- }
- if (adjSq > lineSq) {
- return (x2 - x22) * (x2 - x22) + (y2 - y22) * (y2 - y22);
- }
- return hypSq - adjSq;
- };
- var pointInsidePolygonPoints = function pointInsidePolygonPoints2(x2, y2, points) {
- var x1, y1, x22, y22;
- var y3;
- var up = 0;
- for (var i3 = 0; i3 < points.length / 2; i3++) {
- x1 = points[i3 * 2];
- y1 = points[i3 * 2 + 1];
- if (i3 + 1 < points.length / 2) {
- x22 = points[(i3 + 1) * 2];
- y22 = points[(i3 + 1) * 2 + 1];
- } else {
- x22 = points[(i3 + 1 - points.length / 2) * 2];
- y22 = points[(i3 + 1 - points.length / 2) * 2 + 1];
- }
- if (x1 == x2 && x22 == x2)
- ;
- else if (x1 >= x2 && x2 >= x22 || x1 <= x2 && x2 <= x22) {
- y3 = (x2 - x1) / (x22 - x1) * (y22 - y1) + y1;
- if (y3 > y2) {
- up++;
- }
- } else {
- continue;
- }
- }
- if (up % 2 === 0) {
- return false;
- } else {
- return true;
- }
- };
- var pointInsidePolygon = function pointInsidePolygon2(x2, y2, basePoints, centerX, centerY, width2, height2, direction2, padding2) {
- var transformedPoints = new Array(basePoints.length);
- var angle;
- if (direction2[0] != null) {
- angle = Math.atan(direction2[1] / direction2[0]);
- if (direction2[0] < 0) {
- angle = angle + Math.PI / 2;
- } else {
- angle = -angle - Math.PI / 2;
- }
- } else {
- angle = direction2;
- }
- var cos3 = Math.cos(-angle);
- var sin3 = Math.sin(-angle);
- for (var i3 = 0; i3 < transformedPoints.length / 2; i3++) {
- transformedPoints[i3 * 2] = width2 / 2 * (basePoints[i3 * 2] * cos3 - basePoints[i3 * 2 + 1] * sin3);
- transformedPoints[i3 * 2 + 1] = height2 / 2 * (basePoints[i3 * 2 + 1] * cos3 + basePoints[i3 * 2] * sin3);
- transformedPoints[i3 * 2] += centerX;
- transformedPoints[i3 * 2 + 1] += centerY;
- }
- var points;
- if (padding2 > 0) {
- var expandedLineSet = expandPolygon(transformedPoints, -padding2);
- points = joinLines(expandedLineSet);
- } else {
- points = transformedPoints;
- }
- return pointInsidePolygonPoints(x2, y2, points);
- };
- var pointInsideRoundPolygon = function pointInsideRoundPolygon2(x2, y2, basePoints, centerX, centerY, width2, height2) {
- var cutPolygonPoints = new Array(basePoints.length);
- var halfW = width2 / 2;
- var halfH = height2 / 2;
- var cornerRadius = getRoundPolygonRadius(width2, height2);
- var squaredCornerRadius = cornerRadius * cornerRadius;
- for (var i3 = 0; i3 < basePoints.length / 4; i3++) {
- var sourceUv = void 0, destUv = void 0;
- if (i3 === 0) {
- sourceUv = basePoints.length - 2;
- } else {
- sourceUv = i3 * 4 - 2;
- }
- destUv = i3 * 4 + 2;
- var px = centerX + halfW * basePoints[i3 * 4];
- var py = centerY + halfH * basePoints[i3 * 4 + 1];
- var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];
- var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
- var cp0x = px - offset * basePoints[sourceUv];
- var cp0y = py - offset * basePoints[sourceUv + 1];
- var cp1x = px + offset * basePoints[destUv];
- var cp1y = py + offset * basePoints[destUv + 1];
- cutPolygonPoints[i3 * 4] = cp0x;
- cutPolygonPoints[i3 * 4 + 1] = cp0y;
- cutPolygonPoints[i3 * 4 + 2] = cp1x;
- cutPolygonPoints[i3 * 4 + 3] = cp1y;
- var orthx = basePoints[sourceUv + 1];
- var orthy = -basePoints[sourceUv];
- var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];
- if (cosAlpha < 0) {
- orthx *= -1;
- orthy *= -1;
- }
- var cx = cp0x + orthx * cornerRadius;
- var cy = cp0y + orthy * cornerRadius;
- var squaredDistance = Math.pow(cx - x2, 2) + Math.pow(cy - y2, 2);
- if (squaredDistance <= squaredCornerRadius) {
- return true;
- }
- }
- return pointInsidePolygonPoints(x2, y2, cutPolygonPoints);
- };
- var joinLines = function joinLines2(lineSet) {
- var vertices2 = new Array(lineSet.length / 2);
- var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;
- var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;
- for (var i3 = 0; i3 < lineSet.length / 4; i3++) {
- currentLineStartX = lineSet[i3 * 4];
- currentLineStartY = lineSet[i3 * 4 + 1];
- currentLineEndX = lineSet[i3 * 4 + 2];
- currentLineEndY = lineSet[i3 * 4 + 3];
- if (i3 < lineSet.length / 4 - 1) {
- nextLineStartX = lineSet[(i3 + 1) * 4];
- nextLineStartY = lineSet[(i3 + 1) * 4 + 1];
- nextLineEndX = lineSet[(i3 + 1) * 4 + 2];
- nextLineEndY = lineSet[(i3 + 1) * 4 + 3];
- } else {
- nextLineStartX = lineSet[0];
- nextLineStartY = lineSet[1];
- nextLineEndX = lineSet[2];
- nextLineEndY = lineSet[3];
- }
- var intersection2 = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);
- vertices2[i3 * 2] = intersection2[0];
- vertices2[i3 * 2 + 1] = intersection2[1];
- }
- return vertices2;
- };
- var expandPolygon = function expandPolygon2(points, pad2) {
- var expandedLineSet = new Array(points.length * 2);
- var currentPointX, currentPointY, nextPointX, nextPointY;
- for (var i3 = 0; i3 < points.length / 2; i3++) {
- currentPointX = points[i3 * 2];
- currentPointY = points[i3 * 2 + 1];
- if (i3 < points.length / 2 - 1) {
- nextPointX = points[(i3 + 1) * 2];
- nextPointY = points[(i3 + 1) * 2 + 1];
- } else {
- nextPointX = points[0];
- nextPointY = points[1];
- }
- var offsetX = nextPointY - currentPointY;
- var offsetY = -(nextPointX - currentPointX);
- var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);
- var normalizedOffsetX = offsetX / offsetLength;
- var normalizedOffsetY = offsetY / offsetLength;
- expandedLineSet[i3 * 4] = currentPointX + normalizedOffsetX * pad2;
- expandedLineSet[i3 * 4 + 1] = currentPointY + normalizedOffsetY * pad2;
- expandedLineSet[i3 * 4 + 2] = nextPointX + normalizedOffsetX * pad2;
- expandedLineSet[i3 * 4 + 3] = nextPointY + normalizedOffsetY * pad2;
- }
- return expandedLineSet;
- };
- var intersectLineEllipse = function intersectLineEllipse2(x2, y2, centerX, centerY, ellipseWradius, ellipseHradius) {
- var dispX = centerX - x2;
- var dispY = centerY - y2;
- dispX /= ellipseWradius;
- dispY /= ellipseHradius;
- var len = Math.sqrt(dispX * dispX + dispY * dispY);
- var newLength = len - 1;
- if (newLength < 0) {
- return [];
- }
- var lenProportion = newLength / len;
- return [(centerX - x2) * lenProportion + x2, (centerY - y2) * lenProportion + y2];
- };
- var checkInEllipse = function checkInEllipse2(x2, y2, width2, height2, centerX, centerY, padding2) {
- x2 -= centerX;
- y2 -= centerY;
- x2 /= width2 / 2 + padding2;
- y2 /= height2 / 2 + padding2;
- return x2 * x2 + y2 * y2 <= 1;
- };
- var intersectLineCircle = function intersectLineCircle2(x1, y1, x2, y2, centerX, centerY, radius) {
- var d = [x2 - x1, y2 - y1];
- var f2 = [x1 - centerX, y1 - centerY];
- var a = d[0] * d[0] + d[1] * d[1];
- var b = 2 * (f2[0] * d[0] + f2[1] * d[1]);
- var c2 = f2[0] * f2[0] + f2[1] * f2[1] - radius * radius;
- var discriminant = b * b - 4 * a * c2;
- if (discriminant < 0) {
- return [];
- }
- var t12 = (-b + Math.sqrt(discriminant)) / (2 * a);
- var t22 = (-b - Math.sqrt(discriminant)) / (2 * a);
- var tMin = Math.min(t12, t22);
- var tMax = Math.max(t12, t22);
- var inRangeParams = [];
- if (tMin >= 0 && tMin <= 1) {
- inRangeParams.push(tMin);
- }
- if (tMax >= 0 && tMax <= 1) {
- inRangeParams.push(tMax);
- }
- if (inRangeParams.length === 0) {
- return [];
- }
- var nearIntersectionX = inRangeParams[0] * d[0] + x1;
- var nearIntersectionY = inRangeParams[0] * d[1] + y1;
- if (inRangeParams.length > 1) {
- if (inRangeParams[0] == inRangeParams[1]) {
- return [nearIntersectionX, nearIntersectionY];
- } else {
- var farIntersectionX = inRangeParams[1] * d[0] + x1;
- var farIntersectionY = inRangeParams[1] * d[1] + y1;
- return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];
- }
- } else {
- return [nearIntersectionX, nearIntersectionY];
- }
- };
- var midOfThree = function midOfThree2(a, b, c2) {
- if (b <= a && a <= c2 || c2 <= a && a <= b) {
- return a;
- } else if (a <= b && b <= c2 || c2 <= b && b <= a) {
- return b;
- } else {
- return c2;
- }
- };
- var finiteLinesIntersect = function finiteLinesIntersect2(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) {
- var dx13 = x1 - x3;
- var dx21 = x2 - x1;
- var dx43 = x4 - x3;
- var dy13 = y1 - y3;
- var dy21 = y2 - y1;
- var dy43 = y4 - y3;
- var ua_t = dx43 * dy13 - dy43 * dx13;
- var ub_t = dx21 * dy13 - dy21 * dx13;
- var u_b = dy43 * dx21 - dx43 * dy21;
- if (u_b !== 0) {
- var ua = ua_t / u_b;
- var ub = ub_t / u_b;
- var flptThreshold = 1e-3;
- var _min = 0 - flptThreshold;
- var _max = 1 + flptThreshold;
- if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {
- return [x1 + ua * dx21, y1 + ua * dy21];
- } else {
- if (!infiniteLines) {
- return [];
- } else {
- return [x1 + ua * dx21, y1 + ua * dy21];
- }
- }
- } else {
- if (ua_t === 0 || ub_t === 0) {
- if (midOfThree(x1, x2, x4) === x4) {
- return [x4, y4];
- }
- if (midOfThree(x1, x2, x3) === x3) {
- return [x3, y3];
- }
- if (midOfThree(x3, x4, x2) === x2) {
- return [x2, y2];
- }
- return [];
- } else {
- return [];
- }
- }
- };
- var polygonIntersectLine = function polygonIntersectLine2(x2, y2, basePoints, centerX, centerY, width2, height2, padding2) {
- var intersections = [];
- var intersection2;
- var transformedPoints = new Array(basePoints.length);
- var doTransform = true;
- if (width2 == null) {
- doTransform = false;
- }
- var points;
- if (doTransform) {
- for (var i3 = 0; i3 < transformedPoints.length / 2; i3++) {
- transformedPoints[i3 * 2] = basePoints[i3 * 2] * width2 + centerX;
- transformedPoints[i3 * 2 + 1] = basePoints[i3 * 2 + 1] * height2 + centerY;
- }
- if (padding2 > 0) {
- var expandedLineSet = expandPolygon(transformedPoints, -padding2);
- points = joinLines(expandedLineSet);
- } else {
- points = transformedPoints;
- }
- } else {
- points = basePoints;
- }
- var currentX, currentY, nextX, nextY;
- for (var _i2 = 0; _i2 < points.length / 2; _i2++) {
- currentX = points[_i2 * 2];
- currentY = points[_i2 * 2 + 1];
- if (_i2 < points.length / 2 - 1) {
- nextX = points[(_i2 + 1) * 2];
- nextY = points[(_i2 + 1) * 2 + 1];
- } else {
- nextX = points[0];
- nextY = points[1];
- }
- intersection2 = finiteLinesIntersect(x2, y2, centerX, centerY, currentX, currentY, nextX, nextY);
- if (intersection2.length !== 0) {
- intersections.push(intersection2[0], intersection2[1]);
- }
- }
- return intersections;
- };
- var roundPolygonIntersectLine = function roundPolygonIntersectLine2(x2, y2, basePoints, centerX, centerY, width2, height2, padding2) {
- var intersections = [];
- var intersection2;
- var lines = new Array(basePoints.length);
- var halfW = width2 / 2;
- var halfH = height2 / 2;
- var cornerRadius = getRoundPolygonRadius(width2, height2);
- for (var i3 = 0; i3 < basePoints.length / 4; i3++) {
- var sourceUv = void 0, destUv = void 0;
- if (i3 === 0) {
- sourceUv = basePoints.length - 2;
- } else {
- sourceUv = i3 * 4 - 2;
- }
- destUv = i3 * 4 + 2;
- var px = centerX + halfW * basePoints[i3 * 4];
- var py = centerY + halfH * basePoints[i3 * 4 + 1];
- var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];
- var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
- var cp0x = px - offset * basePoints[sourceUv];
- var cp0y = py - offset * basePoints[sourceUv + 1];
- var cp1x = px + offset * basePoints[destUv];
- var cp1y = py + offset * basePoints[destUv + 1];
- if (i3 === 0) {
- lines[basePoints.length - 2] = cp0x;
- lines[basePoints.length - 1] = cp0y;
- } else {
- lines[i3 * 4 - 2] = cp0x;
- lines[i3 * 4 - 1] = cp0y;
- }
- lines[i3 * 4] = cp1x;
- lines[i3 * 4 + 1] = cp1y;
- var orthx = basePoints[sourceUv + 1];
- var orthy = -basePoints[sourceUv];
- var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];
- if (cosAlpha < 0) {
- orthx *= -1;
- orthy *= -1;
- }
- var cx = cp0x + orthx * cornerRadius;
- var cy = cp0y + orthy * cornerRadius;
- intersection2 = intersectLineCircle(x2, y2, centerX, centerY, cx, cy, cornerRadius);
- if (intersection2.length !== 0) {
- intersections.push(intersection2[0], intersection2[1]);
- }
- }
- for (var _i3 = 0; _i3 < lines.length / 4; _i3++) {
- intersection2 = finiteLinesIntersect(x2, y2, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false);
- if (intersection2.length !== 0) {
- intersections.push(intersection2[0], intersection2[1]);
- }
- }
- if (intersections.length > 2) {
- var lowestIntersection = [intersections[0], intersections[1]];
- var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x2, 2) + Math.pow(lowestIntersection[1] - y2, 2);
- for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) {
- var squaredDistance = Math.pow(intersections[_i4 * 2] - x2, 2) + Math.pow(intersections[_i4 * 2 + 1] - y2, 2);
- if (squaredDistance <= lowestSquaredDistance) {
- lowestIntersection[0] = intersections[_i4 * 2];
- lowestIntersection[1] = intersections[_i4 * 2 + 1];
- lowestSquaredDistance = squaredDistance;
- }
- }
- return lowestIntersection;
- }
- return intersections;
- };
- var shortenIntersection = function shortenIntersection2(intersection2, offset, amount) {
- var disp = [intersection2[0] - offset[0], intersection2[1] - offset[1]];
- var length2 = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);
- var lenRatio = (length2 - amount) / length2;
- if (lenRatio < 0) {
- lenRatio = 1e-5;
- }
- return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];
- };
- var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare2(sides, rotationRadians) {
- var points = generateUnitNgonPoints(sides, rotationRadians);
- points = fitPolygonToSquare(points);
- return points;
- };
- var fitPolygonToSquare = function fitPolygonToSquare2(points) {
- var x2, y2;
- var sides = points.length / 2;
- var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
- for (var i3 = 0; i3 < sides; i3++) {
- x2 = points[2 * i3];
- y2 = points[2 * i3 + 1];
- minX = Math.min(minX, x2);
- maxX = Math.max(maxX, x2);
- minY = Math.min(minY, y2);
- maxY = Math.max(maxY, y2);
- }
- var sx = 2 / (maxX - minX);
- var sy = 2 / (maxY - minY);
- for (var _i5 = 0; _i5 < sides; _i5++) {
- x2 = points[2 * _i5] = points[2 * _i5] * sx;
- y2 = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy;
- minX = Math.min(minX, x2);
- maxX = Math.max(maxX, x2);
- minY = Math.min(minY, y2);
- maxY = Math.max(maxY, y2);
- }
- if (minY < -1) {
- for (var _i6 = 0; _i6 < sides; _i6++) {
- y2 = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY);
- }
- }
- return points;
- };
- var generateUnitNgonPoints = function generateUnitNgonPoints2(sides, rotationRadians) {
- var increment = 1 / sides * 2 * Math.PI;
- var startAngle = sides % 2 === 0 ? Math.PI / 2 + increment / 2 : Math.PI / 2;
- startAngle += rotationRadians;
- var points = new Array(sides * 2);
- var currentAngle;
- for (var i3 = 0; i3 < sides; i3++) {
- currentAngle = i3 * increment + startAngle;
- points[2 * i3] = Math.cos(currentAngle);
- points[2 * i3 + 1] = Math.sin(-currentAngle);
- }
- return points;
- };
- var getRoundRectangleRadius = function getRoundRectangleRadius2(width2, height2) {
- return Math.min(width2 / 4, height2 / 4, 8);
- };
- var getRoundPolygonRadius = function getRoundPolygonRadius2(width2, height2) {
- return Math.min(width2 / 10, height2 / 10, 8);
- };
- var getCutRectangleCornerLength = function getCutRectangleCornerLength2() {
- return 8;
- };
- var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff2(p0, p1, p2) {
- return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0];
- };
- var getBarrelCurveConstants = function getBarrelCurveConstants2(width2, height2) {
- return {
- heightOffset: Math.min(15, 0.05 * height2),
- widthOffset: Math.min(100, 0.25 * width2),
- ctrlPtOffsetPct: 0.05
- };
- };
- var pageRankDefaults = defaults$g({
- dampingFactor: 0.8,
- precision: 1e-6,
- iterations: 200,
- weight: function weight(edge) {
- return 1;
- }
- });
- var elesfn$o = {
- pageRank: function pageRank(options2) {
- var _pageRankDefaults = pageRankDefaults(options2), dampingFactor = _pageRankDefaults.dampingFactor, precision = _pageRankDefaults.precision, iterations = _pageRankDefaults.iterations, weight = _pageRankDefaults.weight;
- var cy = this._private.cy;
- var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
- var numNodes = nodes2.length;
- var numNodesSqd = numNodes * numNodes;
- var numEdges = edges2.length;
- var matrix = new Array(numNodesSqd);
- var columnSum = new Array(numNodes);
- var additionalProb = (1 - dampingFactor) / numNodes;
- for (var i3 = 0; i3 < numNodes; i3++) {
- for (var j = 0; j < numNodes; j++) {
- var n = i3 * numNodes + j;
- matrix[n] = 0;
- }
- columnSum[i3] = 0;
- }
- for (var _i = 0; _i < numEdges; _i++) {
- var edge = edges2[_i];
- var srcId = edge.data("source");
- var tgtId = edge.data("target");
- if (srcId === tgtId) {
- continue;
- }
- var s = nodes2.indexOfId(srcId);
- var t4 = nodes2.indexOfId(tgtId);
- var w2 = weight(edge);
- var _n = t4 * numNodes + s;
- matrix[_n] += w2;
- columnSum[s] += w2;
- }
- var p2 = 1 / numNodes + additionalProb;
- for (var _j = 0; _j < numNodes; _j++) {
- if (columnSum[_j] === 0) {
- for (var _i2 = 0; _i2 < numNodes; _i2++) {
- var _n2 = _i2 * numNodes + _j;
- matrix[_n2] = p2;
- }
- } else {
- for (var _i3 = 0; _i3 < numNodes; _i3++) {
- var _n3 = _i3 * numNodes + _j;
- matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;
- }
- }
- }
- var eigenvector = new Array(numNodes);
- var temp = new Array(numNodes);
- var previous;
- for (var _i4 = 0; _i4 < numNodes; _i4++) {
- eigenvector[_i4] = 1;
- }
- for (var iter = 0; iter < iterations; iter++) {
- for (var _i5 = 0; _i5 < numNodes; _i5++) {
- temp[_i5] = 0;
- }
- for (var _i6 = 0; _i6 < numNodes; _i6++) {
- for (var _j2 = 0; _j2 < numNodes; _j2++) {
- var _n4 = _i6 * numNodes + _j2;
- temp[_i6] += matrix[_n4] * eigenvector[_j2];
- }
- }
- inPlaceSumNormalize(temp);
- previous = eigenvector;
- eigenvector = temp;
- temp = previous;
- var diff = 0;
- for (var _i7 = 0; _i7 < numNodes; _i7++) {
- var delta = previous[_i7] - eigenvector[_i7];
- diff += delta * delta;
- }
- if (diff < precision) {
- break;
- }
- }
- var res = {
- rank: function rank2(node2) {
- node2 = cy.collection(node2)[0];
- return eigenvector[nodes2.indexOf(node2)];
- }
- };
- return res;
- }
- // pageRank
- };
- var defaults$f = defaults$g({
- root: null,
- weight: function weight(edge) {
- return 1;
- },
- directed: false,
- alpha: 0
- });
- var elesfn$n = {
- degreeCentralityNormalized: function degreeCentralityNormalized(options2) {
- options2 = defaults$f(options2);
- var cy = this.cy();
- var nodes2 = this.nodes();
- var numNodes = nodes2.length;
- if (!options2.directed) {
- var degrees2 = {};
- var maxDegree = 0;
- for (var i3 = 0; i3 < numNodes; i3++) {
- var node2 = nodes2[i3];
- options2.root = node2;
- var currDegree = this.degreeCentrality(options2);
- if (maxDegree < currDegree.degree) {
- maxDegree = currDegree.degree;
- }
- degrees2[node2.id()] = currDegree.degree;
- }
- return {
- degree: function degree(node3) {
- if (maxDegree === 0) {
- return 0;
- }
- if (string(node3)) {
- node3 = cy.filter(node3);
- }
- return degrees2[node3.id()] / maxDegree;
- }
- };
- } else {
- var indegrees = {};
- var outdegrees = {};
- var maxIndegree = 0;
- var maxOutdegree = 0;
- for (var _i = 0; _i < numNodes; _i++) {
- var _node = nodes2[_i];
- var id2 = _node.id();
- options2.root = _node;
- var _currDegree = this.degreeCentrality(options2);
- if (maxIndegree < _currDegree.indegree)
- maxIndegree = _currDegree.indegree;
- if (maxOutdegree < _currDegree.outdegree)
- maxOutdegree = _currDegree.outdegree;
- indegrees[id2] = _currDegree.indegree;
- outdegrees[id2] = _currDegree.outdegree;
- }
- return {
- indegree: function indegree(node3) {
- if (maxIndegree == 0) {
- return 0;
- }
- if (string(node3)) {
- node3 = cy.filter(node3);
- }
- return indegrees[node3.id()] / maxIndegree;
- },
- outdegree: function outdegree(node3) {
- if (maxOutdegree === 0) {
- return 0;
- }
- if (string(node3)) {
- node3 = cy.filter(node3);
- }
- return outdegrees[node3.id()] / maxOutdegree;
- }
- };
- }
- },
- // degreeCentralityNormalized
- // Implemented from the algorithm in Opsahl's paper
- // "Node centrality in weighted networks: Generalizing degree and shortest paths"
- // check the heading 2 "Degree"
- degreeCentrality: function degreeCentrality(options2) {
- options2 = defaults$f(options2);
- var cy = this.cy();
- var callingEles = this;
- var _options = options2, root3 = _options.root, weight = _options.weight, directed = _options.directed, alpha = _options.alpha;
- root3 = cy.collection(root3)[0];
- if (!directed) {
- var connEdges = root3.connectedEdges().intersection(callingEles);
- var k = connEdges.length;
- var s = 0;
- for (var i3 = 0; i3 < connEdges.length; i3++) {
- s += weight(connEdges[i3]);
- }
- return {
- degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha)
- };
- } else {
- var edges2 = root3.connectedEdges();
- var incoming = edges2.filter(function(edge) {
- return edge.target().same(root3) && callingEles.has(edge);
- });
- var outgoing = edges2.filter(function(edge) {
- return edge.source().same(root3) && callingEles.has(edge);
- });
- var k_in = incoming.length;
- var k_out = outgoing.length;
- var s_in = 0;
- var s_out = 0;
- for (var _i2 = 0; _i2 < incoming.length; _i2++) {
- s_in += weight(incoming[_i2]);
- }
- for (var _i3 = 0; _i3 < outgoing.length; _i3++) {
- s_out += weight(outgoing[_i3]);
- }
- return {
- indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),
- outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)
- };
- }
- }
- // degreeCentrality
- };
- elesfn$n.dc = elesfn$n.degreeCentrality;
- elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;
- var defaults$e = defaults$g({
- harmonic: true,
- weight: function weight() {
- return 1;
- },
- directed: false,
- root: null
- });
- var elesfn$m = {
- closenessCentralityNormalized: function closenessCentralityNormalized(options2) {
- var _defaults = defaults$e(options2), harmonic = _defaults.harmonic, weight = _defaults.weight, directed = _defaults.directed;
- var cy = this.cy();
- var closenesses = {};
- var maxCloseness = 0;
- var nodes2 = this.nodes();
- var fw = this.floydWarshall({
- weight,
- directed
- });
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var currCloseness = 0;
- var node_i = nodes2[i3];
- for (var j = 0; j < nodes2.length; j++) {
- if (i3 !== j) {
- var d = fw.distance(node_i, nodes2[j]);
- if (harmonic) {
- currCloseness += 1 / d;
- } else {
- currCloseness += d;
- }
- }
- }
- if (!harmonic) {
- currCloseness = 1 / currCloseness;
- }
- if (maxCloseness < currCloseness) {
- maxCloseness = currCloseness;
- }
- closenesses[node_i.id()] = currCloseness;
- }
- return {
- closeness: function closeness(node2) {
- if (maxCloseness == 0) {
- return 0;
- }
- if (string(node2)) {
- node2 = cy.filter(node2)[0].id();
- } else {
- node2 = node2.id();
- }
- return closenesses[node2] / maxCloseness;
- }
- };
- },
- // Implemented from pseudocode from wikipedia
- closenessCentrality: function closenessCentrality(options2) {
- var _defaults2 = defaults$e(options2), root3 = _defaults2.root, weight = _defaults2.weight, directed = _defaults2.directed, harmonic = _defaults2.harmonic;
- root3 = this.filter(root3)[0];
- var dijkstra = this.dijkstra({
- root: root3,
- weight,
- directed
- });
- var totalDistance = 0;
- var nodes2 = this.nodes();
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var n = nodes2[i3];
- if (!n.same(root3)) {
- var d = dijkstra.distanceTo(n);
- if (harmonic) {
- totalDistance += 1 / d;
- } else {
- totalDistance += d;
- }
- }
- }
- return harmonic ? totalDistance : 1 / totalDistance;
- }
- // closenessCentrality
- };
- elesfn$m.cc = elesfn$m.closenessCentrality;
- elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;
- var defaults$d = defaults$g({
- weight: null,
- directed: false
- });
- var elesfn$l = {
- // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes
- betweennessCentrality: function betweennessCentrality(options2) {
- var _defaults = defaults$d(options2), directed = _defaults.directed, weight = _defaults.weight;
- var weighted = weight != null;
- var cy = this.cy();
- var V = this.nodes();
- var A = {};
- var _C = {};
- var max3 = 0;
- var C = {
- set: function set3(key, val) {
- _C[key] = val;
- if (val > max3) {
- max3 = val;
- }
- },
- get: function get3(key) {
- return _C[key];
- }
- };
- for (var i3 = 0; i3 < V.length; i3++) {
- var v = V[i3];
- var vid = v.id();
- if (directed) {
- A[vid] = v.outgoers().nodes();
- } else {
- A[vid] = v.openNeighborhood().nodes();
- }
- C.set(vid, 0);
- }
- var _loop = function _loop2(s2) {
- var sid = V[s2].id();
- var S2 = [];
- var P = {};
- var g = {};
- var d = {};
- var Q2 = new heap(function(a, b) {
- return d[a] - d[b];
- });
- for (var _i = 0; _i < V.length; _i++) {
- var _vid = V[_i].id();
- P[_vid] = [];
- g[_vid] = 0;
- d[_vid] = Infinity;
- }
- g[sid] = 1;
- d[sid] = 0;
- Q2.push(sid);
- while (!Q2.empty()) {
- var _v = Q2.pop();
- S2.push(_v);
- if (weighted) {
- for (var j = 0; j < A[_v].length; j++) {
- var w2 = A[_v][j];
- var vEle = cy.getElementById(_v);
- var edge = void 0;
- if (vEle.edgesTo(w2).length > 0) {
- edge = vEle.edgesTo(w2)[0];
- } else {
- edge = w2.edgesTo(vEle)[0];
- }
- var edgeWeight = weight(edge);
- w2 = w2.id();
- if (d[w2] > d[_v] + edgeWeight) {
- d[w2] = d[_v] + edgeWeight;
- if (Q2.nodes.indexOf(w2) < 0) {
- Q2.push(w2);
- } else {
- Q2.updateItem(w2);
- }
- g[w2] = 0;
- P[w2] = [];
- }
- if (d[w2] == d[_v] + edgeWeight) {
- g[w2] = g[w2] + g[_v];
- P[w2].push(_v);
- }
- }
- } else {
- for (var _j = 0; _j < A[_v].length; _j++) {
- var _w = A[_v][_j].id();
- if (d[_w] == Infinity) {
- Q2.push(_w);
- d[_w] = d[_v] + 1;
- }
- if (d[_w] == d[_v] + 1) {
- g[_w] = g[_w] + g[_v];
- P[_w].push(_v);
- }
- }
- }
- }
- var e = {};
- for (var _i2 = 0; _i2 < V.length; _i2++) {
- e[V[_i2].id()] = 0;
- }
- while (S2.length > 0) {
- var _w2 = S2.pop();
- for (var _j2 = 0; _j2 < P[_w2].length; _j2++) {
- var _v2 = P[_w2][_j2];
- e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]);
- }
- if (_w2 != V[s2].id()) {
- C.set(_w2, C.get(_w2) + e[_w2]);
- }
- }
- };
- for (var s = 0; s < V.length; s++) {
- _loop(s);
- }
- var ret = {
- betweenness: function betweenness(node2) {
- var id2 = cy.collection(node2).id();
- return C.get(id2);
- },
- betweennessNormalized: function betweennessNormalized(node2) {
- if (max3 == 0) {
- return 0;
- }
- var id2 = cy.collection(node2).id();
- return C.get(id2) / max3;
- }
- };
- ret.betweennessNormalised = ret.betweennessNormalized;
- return ret;
- }
- // betweennessCentrality
- };
- elesfn$l.bc = elesfn$l.betweennessCentrality;
- var defaults$c = defaults$g({
- expandFactor: 2,
- // affects time of computation and cluster granularity to some extent: M * M
- inflateFactor: 2,
- // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)
- multFactor: 1,
- // optional self loops for each node. Use a neutral value to improve cluster computations.
- maxIterations: 20,
- // maximum number of iterations of the MCL algorithm in a single run
- attributes: [
- // attributes/features used to group nodes, ie. similarity values between nodes
- function(edge) {
- return 1;
- }
- ]
- });
- var setOptions$3 = function setOptions3(options2) {
- return defaults$c(options2);
- };
- var getSimilarity$1 = function getSimilarity2(edge, attributes) {
- var total = 0;
- for (var i3 = 0; i3 < attributes.length; i3++) {
- total += attributes[i3](edge);
- }
- return total;
- };
- var addLoops = function addLoops2(M2, n, val) {
- for (var i3 = 0; i3 < n; i3++) {
- M2[i3 * n + i3] = val;
- }
- };
- var normalize2 = function normalize3(M2, n) {
- var sum;
- for (var col = 0; col < n; col++) {
- sum = 0;
- for (var row = 0; row < n; row++) {
- sum += M2[row * n + col];
- }
- for (var _row = 0; _row < n; _row++) {
- M2[_row * n + col] = M2[_row * n + col] / sum;
- }
- }
- };
- var mmult = function mmult2(A, B, n) {
- var C = new Array(n * n);
- for (var i3 = 0; i3 < n; i3++) {
- for (var j = 0; j < n; j++) {
- C[i3 * n + j] = 0;
- }
- for (var k = 0; k < n; k++) {
- for (var _j = 0; _j < n; _j++) {
- C[i3 * n + _j] += A[i3 * n + k] * B[k * n + _j];
- }
- }
- }
- return C;
- };
- var expand = function expand2(M2, n, expandFactor) {
- var _M = M2.slice(0);
- for (var p2 = 1; p2 < expandFactor; p2++) {
- M2 = mmult(M2, _M, n);
- }
- return M2;
- };
- var inflate = function inflate2(M2, n, inflateFactor) {
- var _M = new Array(n * n);
- for (var i3 = 0; i3 < n * n; i3++) {
- _M[i3] = Math.pow(M2[i3], inflateFactor);
- }
- normalize2(_M, n);
- return _M;
- };
- var hasConverged = function hasConverged2(M2, _M, n2, roundFactor) {
- for (var i3 = 0; i3 < n2; i3++) {
- var v1 = Math.round(M2[i3] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
- var v2 = Math.round(_M[i3] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
- if (v1 !== v2) {
- return false;
- }
- }
- return true;
- };
- var assign$2 = function assign2(M2, n, nodes2, cy) {
- var clusters = [];
- for (var i3 = 0; i3 < n; i3++) {
- var cluster = [];
- for (var j = 0; j < n; j++) {
- if (Math.round(M2[i3 * n + j] * 1e3) / 1e3 > 0) {
- cluster.push(nodes2[j]);
- }
- }
- if (cluster.length !== 0) {
- clusters.push(cy.collection(cluster));
- }
- }
- return clusters;
- };
- var isDuplicate = function isDuplicate2(c1, c2) {
- for (var i3 = 0; i3 < c1.length; i3++) {
- if (!c2[i3] || c1[i3].id() !== c2[i3].id()) {
- return false;
- }
- }
- return true;
- };
- var removeDuplicates = function removeDuplicates2(clusters) {
- for (var i3 = 0; i3 < clusters.length; i3++) {
- for (var j = 0; j < clusters.length; j++) {
- if (i3 != j && isDuplicate(clusters[i3], clusters[j])) {
- clusters.splice(j, 1);
- }
- }
- }
- return clusters;
- };
- var markovClustering = function markovClustering2(options2) {
- var nodes2 = this.nodes();
- var edges2 = this.edges();
- var cy = this.cy();
- var opts = setOptions$3(options2);
- var id2position = {};
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- id2position[nodes2[i3].id()] = i3;
- }
- var n = nodes2.length, n2 = n * n;
- var M2 = new Array(n2), _M;
- for (var _i = 0; _i < n2; _i++) {
- M2[_i] = 0;
- }
- for (var e = 0; e < edges2.length; e++) {
- var edge = edges2[e];
- var _i2 = id2position[edge.source().id()];
- var j = id2position[edge.target().id()];
- var sim = getSimilarity$1(edge, opts.attributes);
- M2[_i2 * n + j] += sim;
- M2[j * n + _i2] += sim;
- }
- addLoops(M2, n, opts.multFactor);
- normalize2(M2, n);
- var isStillMoving = true;
- var iterations = 0;
- while (isStillMoving && iterations < opts.maxIterations) {
- isStillMoving = false;
- _M = expand(M2, n, opts.expandFactor);
- M2 = inflate(_M, n, opts.inflateFactor);
- if (!hasConverged(M2, _M, n2, 4)) {
- isStillMoving = true;
- }
- iterations++;
- }
- var clusters = assign$2(M2, n, nodes2, cy);
- clusters = removeDuplicates(clusters);
- return clusters;
- };
- var markovClustering$1 = {
- markovClustering,
- mcl: markovClustering
- };
- var identity2 = function identity3(x2) {
- return x2;
- };
- var absDiff = function absDiff2(p2, q) {
- return Math.abs(q - p2);
- };
- var addAbsDiff = function addAbsDiff2(total, p2, q) {
- return total + absDiff(p2, q);
- };
- var addSquaredDiff = function addSquaredDiff2(total, p2, q) {
- return total + Math.pow(q - p2, 2);
- };
- var sqrt3 = function sqrt4(x2) {
- return Math.sqrt(x2);
- };
- var maxAbsDiff = function maxAbsDiff2(currentMax, p2, q) {
- return Math.max(currentMax, absDiff(p2, q));
- };
- var getDistance = function getDistance2(length2, getP, getQ, init2, visit) {
- var post = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : identity2;
- var ret = init2;
- var p2, q;
- for (var dim = 0; dim < length2; dim++) {
- p2 = getP(dim);
- q = getQ(dim);
- ret = visit(ret, p2, q);
- }
- return post(ret);
- };
- var distances = {
- euclidean: function euclidean(length2, getP, getQ) {
- if (length2 >= 2) {
- return getDistance(length2, getP, getQ, 0, addSquaredDiff, sqrt3);
- } else {
- return getDistance(length2, getP, getQ, 0, addAbsDiff);
- }
- },
- squaredEuclidean: function squaredEuclidean(length2, getP, getQ) {
- return getDistance(length2, getP, getQ, 0, addSquaredDiff);
- },
- manhattan: function manhattan(length2, getP, getQ) {
- return getDistance(length2, getP, getQ, 0, addAbsDiff);
- },
- max: function max3(length2, getP, getQ) {
- return getDistance(length2, getP, getQ, -Infinity, maxAbsDiff);
- }
- };
- distances["squared-euclidean"] = distances["squaredEuclidean"];
- distances["squaredeuclidean"] = distances["squaredEuclidean"];
- function clusteringDistance(method, length2, getP, getQ, nodeP, nodeQ) {
- var impl2;
- if (fn$6(method)) {
- impl2 = method;
- } else {
- impl2 = distances[method] || distances.euclidean;
- }
- if (length2 === 0 && fn$6(method)) {
- return impl2(nodeP, nodeQ);
- } else {
- return impl2(length2, getP, getQ, nodeP, nodeQ);
- }
- }
- var defaults$b = defaults$g({
- k: 2,
- m: 2,
- sensitivityThreshold: 1e-4,
- distance: "euclidean",
- maxIterations: 10,
- attributes: [],
- testMode: false,
- testCentroids: null
- });
- var setOptions$2 = function setOptions3(options2) {
- return defaults$b(options2);
- };
- var getDist = function getDist2(type2, node2, centroid, attributes, mode) {
- var noNodeP = mode !== "kMedoids";
- var getP = noNodeP ? function(i3) {
- return centroid[i3];
- } : function(i3) {
- return attributes[i3](centroid);
- };
- var getQ = function getQ2(i3) {
- return attributes[i3](node2);
- };
- var nodeP = centroid;
- var nodeQ = node2;
- return clusteringDistance(type2, attributes.length, getP, getQ, nodeP, nodeQ);
- };
- var randomCentroids = function randomCentroids2(nodes2, k, attributes) {
- var ndim = attributes.length;
- var min3 = new Array(ndim);
- var max3 = new Array(ndim);
- var centroids = new Array(k);
- var centroid = null;
- for (var i3 = 0; i3 < ndim; i3++) {
- min3[i3] = nodes2.min(attributes[i3]).value;
- max3[i3] = nodes2.max(attributes[i3]).value;
- }
- for (var c2 = 0; c2 < k; c2++) {
- centroid = [];
- for (var _i = 0; _i < ndim; _i++) {
- centroid[_i] = Math.random() * (max3[_i] - min3[_i]) + min3[_i];
- }
- centroids[c2] = centroid;
- }
- return centroids;
- };
- var classify = function classify2(node2, centroids, distance2, attributes, type2) {
- var min3 = Infinity;
- var index = 0;
- for (var i3 = 0; i3 < centroids.length; i3++) {
- var dist3 = getDist(distance2, node2, centroids[i3], attributes, type2);
- if (dist3 < min3) {
- min3 = dist3;
- index = i3;
- }
- }
- return index;
- };
- var buildCluster = function buildCluster2(centroid, nodes2, assignment) {
- var cluster = [];
- var node2 = null;
- for (var n = 0; n < nodes2.length; n++) {
- node2 = nodes2[n];
- if (assignment[node2.id()] === centroid) {
- cluster.push(node2);
- }
- }
- return cluster;
- };
- var haveValuesConverged = function haveValuesConverged2(v1, v2, sensitivityThreshold) {
- return Math.abs(v2 - v1) <= sensitivityThreshold;
- };
- var haveMatricesConverged = function haveMatricesConverged2(v1, v2, sensitivityThreshold) {
- for (var i3 = 0; i3 < v1.length; i3++) {
- for (var j = 0; j < v1[i3].length; j++) {
- var diff = Math.abs(v1[i3][j] - v2[i3][j]);
- if (diff > sensitivityThreshold) {
- return false;
- }
- }
- }
- return true;
- };
- var seenBefore = function seenBefore2(node2, medoids, n) {
- for (var i3 = 0; i3 < n; i3++) {
- if (node2 === medoids[i3])
- return true;
- }
- return false;
- };
- var randomMedoids = function randomMedoids2(nodes2, k) {
- var medoids = new Array(k);
- if (nodes2.length < 50) {
- for (var i3 = 0; i3 < k; i3++) {
- var node2 = nodes2[Math.floor(Math.random() * nodes2.length)];
- while (seenBefore(node2, medoids, i3)) {
- node2 = nodes2[Math.floor(Math.random() * nodes2.length)];
- }
- medoids[i3] = node2;
- }
- } else {
- for (var _i2 = 0; _i2 < k; _i2++) {
- medoids[_i2] = nodes2[Math.floor(Math.random() * nodes2.length)];
- }
- }
- return medoids;
- };
- var findCost = function findCost2(potentialNewMedoid, cluster, attributes) {
- var cost = 0;
- for (var n = 0; n < cluster.length; n++) {
- cost += getDist("manhattan", cluster[n], potentialNewMedoid, attributes, "kMedoids");
- }
- return cost;
- };
- var kMeans = function kMeans2(options2) {
- var cy = this.cy();
- var nodes2 = this.nodes();
- var node2 = null;
- var opts = setOptions$2(options2);
- var clusters = new Array(opts.k);
- var assignment = {};
- var centroids;
- if (opts.testMode) {
- if (typeof opts.testCentroids === "number") {
- opts.testCentroids;
- centroids = randomCentroids(nodes2, opts.k, opts.attributes);
- } else if (_typeof(opts.testCentroids) === "object") {
- centroids = opts.testCentroids;
- } else {
- centroids = randomCentroids(nodes2, opts.k, opts.attributes);
- }
- } else {
- centroids = randomCentroids(nodes2, opts.k, opts.attributes);
- }
- var isStillMoving = true;
- var iterations = 0;
- while (isStillMoving && iterations < opts.maxIterations) {
- for (var n = 0; n < nodes2.length; n++) {
- node2 = nodes2[n];
- assignment[node2.id()] = classify(node2, centroids, opts.distance, opts.attributes, "kMeans");
- }
- isStillMoving = false;
- for (var c2 = 0; c2 < opts.k; c2++) {
- var cluster = buildCluster(c2, nodes2, assignment);
- if (cluster.length === 0) {
- continue;
- }
- var ndim = opts.attributes.length;
- var centroid = centroids[c2];
- var newCentroid = new Array(ndim);
- var sum = new Array(ndim);
- for (var d = 0; d < ndim; d++) {
- sum[d] = 0;
- for (var i3 = 0; i3 < cluster.length; i3++) {
- node2 = cluster[i3];
- sum[d] += opts.attributes[d](node2);
- }
- newCentroid[d] = sum[d] / cluster.length;
- if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) {
- isStillMoving = true;
- }
- }
- centroids[c2] = newCentroid;
- clusters[c2] = cy.collection(cluster);
- }
- iterations++;
- }
- return clusters;
- };
- var kMedoids = function kMedoids2(options2) {
- var cy = this.cy();
- var nodes2 = this.nodes();
- var node2 = null;
- var opts = setOptions$2(options2);
- var clusters = new Array(opts.k);
- var medoids;
- var assignment = {};
- var curCost;
- var minCosts = new Array(opts.k);
- if (opts.testMode) {
- if (typeof opts.testCentroids === "number")
- ;
- else if (_typeof(opts.testCentroids) === "object") {
- medoids = opts.testCentroids;
- } else {
- medoids = randomMedoids(nodes2, opts.k);
- }
- } else {
- medoids = randomMedoids(nodes2, opts.k);
- }
- var isStillMoving = true;
- var iterations = 0;
- while (isStillMoving && iterations < opts.maxIterations) {
- for (var n = 0; n < nodes2.length; n++) {
- node2 = nodes2[n];
- assignment[node2.id()] = classify(node2, medoids, opts.distance, opts.attributes, "kMedoids");
- }
- isStillMoving = false;
- for (var m = 0; m < medoids.length; m++) {
- var cluster = buildCluster(m, nodes2, assignment);
- if (cluster.length === 0) {
- continue;
- }
- minCosts[m] = findCost(medoids[m], cluster, opts.attributes);
- for (var _n = 0; _n < cluster.length; _n++) {
- curCost = findCost(cluster[_n], cluster, opts.attributes);
- if (curCost < minCosts[m]) {
- minCosts[m] = curCost;
- medoids[m] = cluster[_n];
- isStillMoving = true;
- }
- }
- clusters[m] = cy.collection(cluster);
- }
- iterations++;
- }
- return clusters;
- };
- var updateCentroids = function updateCentroids2(centroids, nodes2, U2, weight, opts) {
- var numerator, denominator;
- for (var n = 0; n < nodes2.length; n++) {
- for (var c2 = 0; c2 < centroids.length; c2++) {
- weight[n][c2] = Math.pow(U2[n][c2], opts.m);
- }
- }
- for (var _c = 0; _c < centroids.length; _c++) {
- for (var dim = 0; dim < opts.attributes.length; dim++) {
- numerator = 0;
- denominator = 0;
- for (var _n2 = 0; _n2 < nodes2.length; _n2++) {
- numerator += weight[_n2][_c] * opts.attributes[dim](nodes2[_n2]);
- denominator += weight[_n2][_c];
- }
- centroids[_c][dim] = numerator / denominator;
- }
- }
- };
- var updateMembership = function updateMembership2(U2, _U, centroids, nodes2, opts) {
- for (var i3 = 0; i3 < U2.length; i3++) {
- _U[i3] = U2[i3].slice();
- }
- var sum, numerator, denominator;
- var pow = 2 / (opts.m - 1);
- for (var c2 = 0; c2 < centroids.length; c2++) {
- for (var n = 0; n < nodes2.length; n++) {
- sum = 0;
- for (var k = 0; k < centroids.length; k++) {
- numerator = getDist(opts.distance, nodes2[n], centroids[c2], opts.attributes, "cmeans");
- denominator = getDist(opts.distance, nodes2[n], centroids[k], opts.attributes, "cmeans");
- sum += Math.pow(numerator / denominator, pow);
- }
- U2[n][c2] = 1 / sum;
- }
- }
- };
- var assign$1 = function assign2(nodes2, U2, opts, cy) {
- var clusters = new Array(opts.k);
- for (var c2 = 0; c2 < clusters.length; c2++) {
- clusters[c2] = [];
- }
- var max3;
- var index;
- for (var n = 0; n < U2.length; n++) {
- max3 = -Infinity;
- index = -1;
- for (var _c2 = 0; _c2 < U2[0].length; _c2++) {
- if (U2[n][_c2] > max3) {
- max3 = U2[n][_c2];
- index = _c2;
- }
- }
- clusters[index].push(nodes2[n]);
- }
- for (var _c3 = 0; _c3 < clusters.length; _c3++) {
- clusters[_c3] = cy.collection(clusters[_c3]);
- }
- return clusters;
- };
- var fuzzyCMeans = function fuzzyCMeans2(options2) {
- var cy = this.cy();
- var nodes2 = this.nodes();
- var opts = setOptions$2(options2);
- var clusters;
- var centroids;
- var U2;
- var _U;
- var weight;
- _U = new Array(nodes2.length);
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- _U[i3] = new Array(opts.k);
- }
- U2 = new Array(nodes2.length);
- for (var _i3 = 0; _i3 < nodes2.length; _i3++) {
- U2[_i3] = new Array(opts.k);
- }
- for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
- var total = 0;
- for (var j = 0; j < opts.k; j++) {
- U2[_i4][j] = Math.random();
- total += U2[_i4][j];
- }
- for (var _j = 0; _j < opts.k; _j++) {
- U2[_i4][_j] = U2[_i4][_j] / total;
- }
- }
- centroids = new Array(opts.k);
- for (var _i5 = 0; _i5 < opts.k; _i5++) {
- centroids[_i5] = new Array(opts.attributes.length);
- }
- weight = new Array(nodes2.length);
- for (var _i6 = 0; _i6 < nodes2.length; _i6++) {
- weight[_i6] = new Array(opts.k);
- }
- var isStillMoving = true;
- var iterations = 0;
- while (isStillMoving && iterations < opts.maxIterations) {
- isStillMoving = false;
- updateCentroids(centroids, nodes2, U2, weight, opts);
- updateMembership(U2, _U, centroids, nodes2, opts);
- if (!haveMatricesConverged(U2, _U, opts.sensitivityThreshold)) {
- isStillMoving = true;
- }
- iterations++;
- }
- clusters = assign$1(nodes2, U2, opts, cy);
- return {
- clusters,
- degreeOfMembership: U2
- };
- };
- var kClustering = {
- kMeans,
- kMedoids,
- fuzzyCMeans,
- fcm: fuzzyCMeans
- };
- var defaults$a = defaults$g({
- distance: "euclidean",
- // distance metric to compare nodes
- linkage: "min",
- // linkage criterion : how to determine the distance between clusters of nodes
- mode: "threshold",
- // mode:'threshold' => clusters must be threshold distance apart
- threshold: Infinity,
- // the distance threshold
- // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters
- addDendrogram: false,
- // whether to add the dendrogram to the graph for viz
- dendrogramDepth: 0,
- // depth at which dendrogram branches are merged into the returned clusters
- attributes: []
- // array of attr functions
- });
- var linkageAliases = {
- "single": "min",
- "complete": "max"
- };
- var setOptions$1 = function setOptions3(options2) {
- var opts = defaults$a(options2);
- var preferredAlias = linkageAliases[opts.linkage];
- if (preferredAlias != null) {
- opts.linkage = preferredAlias;
- }
- return opts;
- };
- var mergeClosest = function mergeClosest2(clusters, index, dists, mins, opts) {
- var minKey = 0;
- var min3 = Infinity;
- var dist3;
- var attrs = opts.attributes;
- var getDist2 = function getDist3(n1, n2) {
- return clusteringDistance(opts.distance, attrs.length, function(i4) {
- return attrs[i4](n1);
- }, function(i4) {
- return attrs[i4](n2);
- }, n1, n2);
- };
- for (var i3 = 0; i3 < clusters.length; i3++) {
- var key = clusters[i3].key;
- var _dist = dists[key][mins[key]];
- if (_dist < min3) {
- minKey = key;
- min3 = _dist;
- }
- }
- if (opts.mode === "threshold" && min3 >= opts.threshold || opts.mode === "dendrogram" && clusters.length === 1) {
- return false;
- }
- var c1 = index[minKey];
- var c2 = index[mins[minKey]];
- var merged;
- if (opts.mode === "dendrogram") {
- merged = {
- left: c1,
- right: c2,
- key: c1.key
- };
- } else {
- merged = {
- value: c1.value.concat(c2.value),
- key: c1.key
- };
- }
- clusters[c1.index] = merged;
- clusters.splice(c2.index, 1);
- index[c1.key] = merged;
- for (var _i = 0; _i < clusters.length; _i++) {
- var cur = clusters[_i];
- if (c1.key === cur.key) {
- dist3 = Infinity;
- } else if (opts.linkage === "min") {
- dist3 = dists[c1.key][cur.key];
- if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) {
- dist3 = dists[c2.key][cur.key];
- }
- } else if (opts.linkage === "max") {
- dist3 = dists[c1.key][cur.key];
- if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) {
- dist3 = dists[c2.key][cur.key];
- }
- } else if (opts.linkage === "mean") {
- dist3 = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size);
- } else {
- if (opts.mode === "dendrogram")
- dist3 = getDist2(cur.value, c1.value);
- else
- dist3 = getDist2(cur.value[0], c1.value[0]);
- }
- dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist3;
- }
- for (var _i2 = 0; _i2 < clusters.length; _i2++) {
- var key1 = clusters[_i2].key;
- if (mins[key1] === c1.key || mins[key1] === c2.key) {
- var _min = key1;
- for (var j = 0; j < clusters.length; j++) {
- var key2 = clusters[j].key;
- if (dists[key1][key2] < dists[key1][_min]) {
- _min = key2;
- }
- }
- mins[key1] = _min;
- }
- clusters[_i2].index = _i2;
- }
- c1.key = c2.key = c1.index = c2.index = null;
- return true;
- };
- var getAllChildren = function getAllChildren2(root3, arr, cy) {
- if (!root3)
- return;
- if (root3.value) {
- arr.push(root3.value);
- } else {
- if (root3.left)
- getAllChildren2(root3.left, arr);
- if (root3.right)
- getAllChildren2(root3.right, arr);
- }
- };
- var buildDendrogram = function buildDendrogram2(root3, cy) {
- if (!root3)
- return "";
- if (root3.left && root3.right) {
- var leftStr = buildDendrogram2(root3.left, cy);
- var rightStr = buildDendrogram2(root3.right, cy);
- var node2 = cy.add({
- group: "nodes",
- data: {
- id: leftStr + "," + rightStr
- }
- });
- cy.add({
- group: "edges",
- data: {
- source: leftStr,
- target: node2.id()
- }
- });
- cy.add({
- group: "edges",
- data: {
- source: rightStr,
- target: node2.id()
- }
- });
- return node2.id();
- } else if (root3.value) {
- return root3.value.id();
- }
- };
- var buildClustersFromTree = function buildClustersFromTree2(root3, k, cy) {
- if (!root3)
- return [];
- var left2 = [], right2 = [], leaves = [];
- if (k === 0) {
- if (root3.left)
- getAllChildren(root3.left, left2);
- if (root3.right)
- getAllChildren(root3.right, right2);
- leaves = left2.concat(right2);
- return [cy.collection(leaves)];
- } else if (k === 1) {
- if (root3.value) {
- return [cy.collection(root3.value)];
- } else {
- if (root3.left)
- getAllChildren(root3.left, left2);
- if (root3.right)
- getAllChildren(root3.right, right2);
- return [cy.collection(left2), cy.collection(right2)];
- }
- } else {
- if (root3.value) {
- return [cy.collection(root3.value)];
- } else {
- if (root3.left)
- left2 = buildClustersFromTree2(root3.left, k - 1, cy);
- if (root3.right)
- right2 = buildClustersFromTree2(root3.right, k - 1, cy);
- return left2.concat(right2);
- }
- }
- };
- var hierarchicalClustering = function hierarchicalClustering2(options2) {
- var cy = this.cy();
- var nodes2 = this.nodes();
- var opts = setOptions$1(options2);
- var attrs = opts.attributes;
- var getDist2 = function getDist3(n1, n2) {
- return clusteringDistance(opts.distance, attrs.length, function(i4) {
- return attrs[i4](n1);
- }, function(i4) {
- return attrs[i4](n2);
- }, n1, n2);
- };
- var clusters = [];
- var dists = [];
- var mins = [];
- var index = [];
- for (var n = 0; n < nodes2.length; n++) {
- var cluster = {
- value: opts.mode === "dendrogram" ? nodes2[n] : [nodes2[n]],
- key: n,
- index: n
- };
- clusters[n] = cluster;
- index[n] = cluster;
- dists[n] = [];
- mins[n] = 0;
- }
- for (var i3 = 0; i3 < clusters.length; i3++) {
- for (var j = 0; j <= i3; j++) {
- var dist3 = void 0;
- if (opts.mode === "dendrogram") {
- dist3 = i3 === j ? Infinity : getDist2(clusters[i3].value, clusters[j].value);
- } else {
- dist3 = i3 === j ? Infinity : getDist2(clusters[i3].value[0], clusters[j].value[0]);
- }
- dists[i3][j] = dist3;
- dists[j][i3] = dist3;
- if (dist3 < dists[i3][mins[i3]]) {
- mins[i3] = j;
- }
- }
- }
- var merged = mergeClosest(clusters, index, dists, mins, opts);
- while (merged) {
- merged = mergeClosest(clusters, index, dists, mins, opts);
- }
- var retClusters;
- if (opts.mode === "dendrogram") {
- retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);
- if (opts.addDendrogram)
- buildDendrogram(clusters[0], cy);
- } else {
- retClusters = new Array(clusters.length);
- clusters.forEach(function(cluster2, i4) {
- cluster2.key = cluster2.index = null;
- retClusters[i4] = cy.collection(cluster2.value);
- });
- }
- return retClusters;
- };
- var hierarchicalClustering$1 = {
- hierarchicalClustering,
- hca: hierarchicalClustering
- };
- var defaults$9 = defaults$g({
- distance: "euclidean",
- // distance metric to compare attributes between two nodes
- preference: "median",
- // suitability of a data point to serve as an exemplar
- damping: 0.8,
- // damping factor between [0.5, 1)
- maxIterations: 1e3,
- // max number of iterations to run
- minIterations: 100,
- // min number of iterations to run in order for clustering to stop
- attributes: [
- // functions to quantify the similarity between any two points
- // e.g. node => node.data('weight')
- ]
- });
- var setOptions2 = function setOptions3(options2) {
- var dmp = options2.damping;
- var pref = options2.preference;
- if (!(0.5 <= dmp && dmp < 1)) {
- error("Damping must range on [0.5, 1). Got: ".concat(dmp));
- }
- var validPrefs = ["median", "mean", "min", "max"];
- if (!(validPrefs.some(function(v) {
- return v === pref;
- }) || number$12(pref))) {
- error("Preference must be one of [".concat(validPrefs.map(function(p2) {
- return "'".concat(p2, "'");
- }).join(", "), "] or a number. Got: ").concat(pref));
- }
- return defaults$9(options2);
- };
- var getSimilarity = function getSimilarity2(type2, n1, n2, attributes) {
- var attr = function attr2(n, i3) {
- return attributes[i3](n);
- };
- return -clusteringDistance(type2, attributes.length, function(i3) {
- return attr(n1, i3);
- }, function(i3) {
- return attr(n2, i3);
- }, n1, n2);
- };
- var getPreference = function getPreference2(S2, preference) {
- var p2 = null;
- if (preference === "median") {
- p2 = median(S2);
- } else if (preference === "mean") {
- p2 = mean(S2);
- } else if (preference === "min") {
- p2 = min2(S2);
- } else if (preference === "max") {
- p2 = max2(S2);
- } else {
- p2 = preference;
- }
- return p2;
- };
- var findExemplars = function findExemplars2(n, R, A) {
- var indices = [];
- for (var i3 = 0; i3 < n; i3++) {
- if (R[i3 * n + i3] + A[i3 * n + i3] > 0) {
- indices.push(i3);
- }
- }
- return indices;
- };
- var assignClusters = function assignClusters2(n, S2, exemplars) {
- var clusters = [];
- for (var i3 = 0; i3 < n; i3++) {
- var index = -1;
- var max3 = -Infinity;
- for (var ei = 0; ei < exemplars.length; ei++) {
- var e = exemplars[ei];
- if (S2[i3 * n + e] > max3) {
- index = e;
- max3 = S2[i3 * n + e];
- }
- }
- if (index > 0) {
- clusters.push(index);
- }
- }
- for (var _ei = 0; _ei < exemplars.length; _ei++) {
- clusters[exemplars[_ei]] = exemplars[_ei];
- }
- return clusters;
- };
- var assign = function assign2(n, S2, exemplars) {
- var clusters = assignClusters(n, S2, exemplars);
- for (var ei = 0; ei < exemplars.length; ei++) {
- var ii = [];
- for (var c2 = 0; c2 < clusters.length; c2++) {
- if (clusters[c2] === exemplars[ei]) {
- ii.push(c2);
- }
- }
- var maxI = -1;
- var maxSum = -Infinity;
- for (var i3 = 0; i3 < ii.length; i3++) {
- var sum = 0;
- for (var j = 0; j < ii.length; j++) {
- sum += S2[ii[j] * n + ii[i3]];
- }
- if (sum > maxSum) {
- maxI = i3;
- maxSum = sum;
- }
- }
- exemplars[ei] = ii[maxI];
- }
- clusters = assignClusters(n, S2, exemplars);
- return clusters;
- };
- var affinityPropagation = function affinityPropagation2(options2) {
- var cy = this.cy();
- var nodes2 = this.nodes();
- var opts = setOptions2(options2);
- var id2position = {};
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- id2position[nodes2[i3].id()] = i3;
- }
- var n;
- var n2;
- var S2;
- var p2;
- var R;
- var A;
- n = nodes2.length;
- n2 = n * n;
- S2 = new Array(n2);
- for (var _i = 0; _i < n2; _i++) {
- S2[_i] = -Infinity;
- }
- for (var _i2 = 0; _i2 < n; _i2++) {
- for (var j = 0; j < n; j++) {
- if (_i2 !== j) {
- S2[_i2 * n + j] = getSimilarity(opts.distance, nodes2[_i2], nodes2[j], opts.attributes);
- }
- }
- }
- p2 = getPreference(S2, opts.preference);
- for (var _i3 = 0; _i3 < n; _i3++) {
- S2[_i3 * n + _i3] = p2;
- }
- R = new Array(n2);
- for (var _i4 = 0; _i4 < n2; _i4++) {
- R[_i4] = 0;
- }
- A = new Array(n2);
- for (var _i5 = 0; _i5 < n2; _i5++) {
- A[_i5] = 0;
- }
- var old = new Array(n);
- var Rp = new Array(n);
- var se = new Array(n);
- for (var _i6 = 0; _i6 < n; _i6++) {
- old[_i6] = 0;
- Rp[_i6] = 0;
- se[_i6] = 0;
- }
- var e = new Array(n * opts.minIterations);
- for (var _i7 = 0; _i7 < e.length; _i7++) {
- e[_i7] = 0;
- }
- var iter;
- for (iter = 0; iter < opts.maxIterations; iter++) {
- for (var _i8 = 0; _i8 < n; _i8++) {
- var max3 = -Infinity, max22 = -Infinity, maxI = -1, AS = 0;
- for (var _j = 0; _j < n; _j++) {
- old[_j] = R[_i8 * n + _j];
- AS = A[_i8 * n + _j] + S2[_i8 * n + _j];
- if (AS >= max3) {
- max22 = max3;
- max3 = AS;
- maxI = _j;
- } else if (AS > max22) {
- max22 = AS;
- }
- }
- for (var _j2 = 0; _j2 < n; _j2++) {
- R[_i8 * n + _j2] = (1 - opts.damping) * (S2[_i8 * n + _j2] - max3) + opts.damping * old[_j2];
- }
- R[_i8 * n + maxI] = (1 - opts.damping) * (S2[_i8 * n + maxI] - max22) + opts.damping * old[maxI];
- }
- for (var _i9 = 0; _i9 < n; _i9++) {
- var sum = 0;
- for (var _j3 = 0; _j3 < n; _j3++) {
- old[_j3] = A[_j3 * n + _i9];
- Rp[_j3] = Math.max(0, R[_j3 * n + _i9]);
- sum += Rp[_j3];
- }
- sum -= Rp[_i9];
- Rp[_i9] = R[_i9 * n + _i9];
- sum += Rp[_i9];
- for (var _j4 = 0; _j4 < n; _j4++) {
- A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4];
- }
- A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9];
- }
- var K3 = 0;
- for (var _i10 = 0; _i10 < n; _i10++) {
- var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0;
- e[iter % opts.minIterations * n + _i10] = E;
- K3 += E;
- }
- if (K3 > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {
- var _sum = 0;
- for (var _i11 = 0; _i11 < n; _i11++) {
- se[_i11] = 0;
- for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {
- se[_i11] += e[_j5 * n + _i11];
- }
- if (se[_i11] === 0 || se[_i11] === opts.minIterations) {
- _sum++;
- }
- }
- if (_sum === n) {
- break;
- }
- }
- }
- var exemplarsIndices = findExemplars(n, R, A);
- var clusterIndices = assign(n, S2, exemplarsIndices);
- var clusters = {};
- for (var c2 = 0; c2 < exemplarsIndices.length; c2++) {
- clusters[exemplarsIndices[c2]] = [];
- }
- for (var _i12 = 0; _i12 < nodes2.length; _i12++) {
- var pos = id2position[nodes2[_i12].id()];
- var clusterIndex = clusterIndices[pos];
- if (clusterIndex != null) {
- clusters[clusterIndex].push(nodes2[_i12]);
- }
- }
- var retClusters = new Array(exemplarsIndices.length);
- for (var _c = 0; _c < exemplarsIndices.length; _c++) {
- retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);
- }
- return retClusters;
- };
- var affinityPropagation$1 = {
- affinityPropagation,
- ap: affinityPropagation
- };
- var hierholzerDefaults = defaults$g({
- root: void 0,
- directed: false
- });
- var elesfn$k = {
- hierholzer: function hierholzer(options2) {
- if (!plainObject(options2)) {
- var args = arguments;
- options2 = {
- root: args[0],
- directed: args[1]
- };
- }
- var _hierholzerDefaults = hierholzerDefaults(options2), root3 = _hierholzerDefaults.root, directed = _hierholzerDefaults.directed;
- var eles = this;
- var dflag = false;
- var oddIn;
- var oddOut;
- var startVertex;
- if (root3)
- startVertex = string(root3) ? this.filter(root3)[0].id() : root3[0].id();
- var nodes2 = {};
- var edges2 = {};
- if (directed) {
- eles.forEach(function(ele) {
- var id2 = ele.id();
- if (ele.isNode()) {
- var ind = ele.indegree(true);
- var outd = ele.outdegree(true);
- var d1 = ind - outd;
- var d2 = outd - ind;
- if (d1 == 1) {
- if (oddIn)
- dflag = true;
- else
- oddIn = id2;
- } else if (d2 == 1) {
- if (oddOut)
- dflag = true;
- else
- oddOut = id2;
- } else if (d2 > 1 || d1 > 1) {
- dflag = true;
- }
- nodes2[id2] = [];
- ele.outgoers().forEach(function(e) {
- if (e.isEdge())
- nodes2[id2].push(e.id());
- });
- } else {
- edges2[id2] = [void 0, ele.target().id()];
- }
- });
- } else {
- eles.forEach(function(ele) {
- var id2 = ele.id();
- if (ele.isNode()) {
- var d2 = ele.degree(true);
- if (d2 % 2) {
- if (!oddIn)
- oddIn = id2;
- else if (!oddOut)
- oddOut = id2;
- else
- dflag = true;
- }
- nodes2[id2] = [];
- ele.connectedEdges().forEach(function(e) {
- return nodes2[id2].push(e.id());
- });
- } else {
- edges2[id2] = [ele.source().id(), ele.target().id()];
- }
- });
- }
- var result = {
- found: false,
- trail: void 0
- };
- if (dflag)
- return result;
- else if (oddOut && oddIn) {
- if (directed) {
- if (startVertex && oddOut != startVertex) {
- return result;
- }
- startVertex = oddOut;
- } else {
- if (startVertex && oddOut != startVertex && oddIn != startVertex) {
- return result;
- } else if (!startVertex) {
- startVertex = oddOut;
- }
- }
- } else {
- if (!startVertex)
- startVertex = eles[0].id();
- }
- var walk = function walk2(v) {
- var currentNode = v;
- var subtour2 = [v];
- var adj, adjTail, adjHead;
- while (nodes2[currentNode].length) {
- adj = nodes2[currentNode].shift();
- adjTail = edges2[adj][0];
- adjHead = edges2[adj][1];
- if (currentNode != adjHead) {
- nodes2[adjHead] = nodes2[adjHead].filter(function(e) {
- return e != adj;
- });
- currentNode = adjHead;
- } else if (!directed && currentNode != adjTail) {
- nodes2[adjTail] = nodes2[adjTail].filter(function(e) {
- return e != adj;
- });
- currentNode = adjTail;
- }
- subtour2.unshift(adj);
- subtour2.unshift(currentNode);
- }
- return subtour2;
- };
- var trail = [];
- var subtour = [];
- subtour = walk(startVertex);
- while (subtour.length != 1) {
- if (nodes2[subtour[0]].length == 0) {
- trail.unshift(eles.getElementById(subtour.shift()));
- trail.unshift(eles.getElementById(subtour.shift()));
- } else {
- subtour = walk(subtour.shift()).concat(subtour);
- }
- }
- trail.unshift(eles.getElementById(subtour.shift()));
- for (var d in nodes2) {
- if (nodes2[d].length) {
- return result;
- }
- }
- result.found = true;
- result.trail = this.spawn(trail, true);
- return result;
- }
- };
- var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected2() {
- var eles = this;
- var nodes2 = {};
- var id2 = 0;
- var edgeCount2 = 0;
- var components = [];
- var stack = [];
- var visitedEdges = {};
- var buildComponent = function buildComponent2(x2, y2) {
- var i3 = stack.length - 1;
- var cutset = [];
- var component = eles.spawn();
- while (stack[i3].x != x2 || stack[i3].y != y2) {
- cutset.push(stack.pop().edge);
- i3--;
- }
- cutset.push(stack.pop().edge);
- cutset.forEach(function(edge) {
- var connectedNodes = edge.connectedNodes().intersection(eles);
- component.merge(edge);
- connectedNodes.forEach(function(node2) {
- var nodeId = node2.id();
- var connectedEdges = node2.connectedEdges().intersection(eles);
- component.merge(node2);
- if (!nodes2[nodeId].cutVertex) {
- component.merge(connectedEdges);
- } else {
- component.merge(connectedEdges.filter(function(edge2) {
- return edge2.isLoop();
- }));
- }
- });
- });
- components.push(component);
- };
- var biconnectedSearch = function biconnectedSearch2(root3, currentNode, parent) {
- if (root3 === parent)
- edgeCount2 += 1;
- nodes2[currentNode] = {
- id: id2,
- low: id2++,
- cutVertex: false
- };
- var edges2 = eles.getElementById(currentNode).connectedEdges().intersection(eles);
- if (edges2.size() === 0) {
- components.push(eles.spawn(eles.getElementById(currentNode)));
- } else {
- var sourceId, targetId, otherNodeId, edgeId;
- edges2.forEach(function(edge) {
- sourceId = edge.source().id();
- targetId = edge.target().id();
- otherNodeId = sourceId === currentNode ? targetId : sourceId;
- if (otherNodeId !== parent) {
- edgeId = edge.id();
- if (!visitedEdges[edgeId]) {
- visitedEdges[edgeId] = true;
- stack.push({
- x: currentNode,
- y: otherNodeId,
- edge
- });
- }
- if (!(otherNodeId in nodes2)) {
- biconnectedSearch2(root3, otherNodeId, currentNode);
- nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].low);
- if (nodes2[currentNode].id <= nodes2[otherNodeId].low) {
- nodes2[currentNode].cutVertex = true;
- buildComponent(currentNode, otherNodeId);
- }
- } else {
- nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].id);
- }
- }
- });
- }
- };
- eles.forEach(function(ele) {
- if (ele.isNode()) {
- var nodeId = ele.id();
- if (!(nodeId in nodes2)) {
- edgeCount2 = 0;
- biconnectedSearch(nodeId, nodeId);
- nodes2[nodeId].cutVertex = edgeCount2 > 1;
- }
- }
- });
- var cutVertices = Object.keys(nodes2).filter(function(id3) {
- return nodes2[id3].cutVertex;
- }).map(function(id3) {
- return eles.getElementById(id3);
- });
- return {
- cut: eles.spawn(cutVertices),
- components
- };
- };
- var hopcroftTarjanBiconnected$1 = {
- hopcroftTarjanBiconnected,
- htbc: hopcroftTarjanBiconnected,
- htb: hopcroftTarjanBiconnected,
- hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected
- };
- var tarjanStronglyConnected = function tarjanStronglyConnected2() {
- var eles = this;
- var nodes2 = {};
- var index = 0;
- var components = [];
- var stack = [];
- var cut = eles.spawn(eles);
- var stronglyConnectedSearch = function stronglyConnectedSearch2(sourceNodeId) {
- stack.push(sourceNodeId);
- nodes2[sourceNodeId] = {
- index,
- low: index++,
- explored: false
- };
- var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);
- connectedEdges.forEach(function(edge) {
- var targetNodeId = edge.target().id();
- if (targetNodeId !== sourceNodeId) {
- if (!(targetNodeId in nodes2)) {
- stronglyConnectedSearch2(targetNodeId);
- }
- if (!nodes2[targetNodeId].explored) {
- nodes2[sourceNodeId].low = Math.min(nodes2[sourceNodeId].low, nodes2[targetNodeId].low);
- }
- }
- });
- if (nodes2[sourceNodeId].index === nodes2[sourceNodeId].low) {
- var componentNodes = eles.spawn();
- for (; ; ) {
- var nodeId = stack.pop();
- componentNodes.merge(eles.getElementById(nodeId));
- nodes2[nodeId].low = nodes2[sourceNodeId].index;
- nodes2[nodeId].explored = true;
- if (nodeId === sourceNodeId) {
- break;
- }
- }
- var componentEdges = componentNodes.edgesWith(componentNodes);
- var component = componentNodes.merge(componentEdges);
- components.push(component);
- cut = cut.difference(component);
- }
- };
- eles.forEach(function(ele) {
- if (ele.isNode()) {
- var nodeId = ele.id();
- if (!(nodeId in nodes2)) {
- stronglyConnectedSearch(nodeId);
- }
- }
- });
- return {
- cut,
- components
- };
- };
- var tarjanStronglyConnected$1 = {
- tarjanStronglyConnected,
- tsc: tarjanStronglyConnected,
- tscc: tarjanStronglyConnected,
- tarjanStronglyConnectedComponents: tarjanStronglyConnected
- };
- var elesfn$j = {};
- [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function(props) {
- extend2(elesfn$j, props);
- });
- /*!
- Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
- Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
- Licensed under The MIT License (http://opensource.org/licenses/MIT)
- */
- var STATE_PENDING = 0;
- var STATE_FULFILLED = 1;
- var STATE_REJECTED = 2;
- var api = function api2(executor) {
- if (!(this instanceof api2))
- return new api2(executor);
- this.id = "Thenable/1.0.7";
- this.state = STATE_PENDING;
- this.fulfillValue = void 0;
- this.rejectReason = void 0;
- this.onFulfilled = [];
- this.onRejected = [];
- this.proxy = {
- then: this.then.bind(this)
- };
- if (typeof executor === "function")
- executor.call(this, this.fulfill.bind(this), this.reject.bind(this));
- };
- api.prototype = {
- /* promise resolving methods */
- fulfill: function fulfill(value) {
- return deliver(this, STATE_FULFILLED, "fulfillValue", value);
- },
- reject: function reject(value) {
- return deliver(this, STATE_REJECTED, "rejectReason", value);
- },
- /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */
- then: function then(onFulfilled, onRejected) {
- var curr = this;
- var next2 = new api();
- curr.onFulfilled.push(resolver(onFulfilled, next2, "fulfill"));
- curr.onRejected.push(resolver(onRejected, next2, "reject"));
- execute(curr);
- return next2.proxy;
- }
- };
- var deliver = function deliver2(curr, state2, name2, value) {
- if (curr.state === STATE_PENDING) {
- curr.state = state2;
- curr[name2] = value;
- execute(curr);
- }
- return curr;
- };
- var execute = function execute2(curr) {
- if (curr.state === STATE_FULFILLED)
- execute_handlers(curr, "onFulfilled", curr.fulfillValue);
- else if (curr.state === STATE_REJECTED)
- execute_handlers(curr, "onRejected", curr.rejectReason);
- };
- var execute_handlers = function execute_handlers2(curr, name2, value) {
- if (curr[name2].length === 0)
- return;
- var handlers = curr[name2];
- curr[name2] = [];
- var func = function func2() {
- for (var i3 = 0; i3 < handlers.length; i3++) {
- handlers[i3](value);
- }
- };
- if (typeof setImmediate === "function")
- setImmediate(func);
- else
- setTimeout(func, 0);
- };
- var resolver = function resolver2(cb, next2, method) {
- return function(value) {
- if (typeof cb !== "function")
- next2[method].call(next2, value);
- else {
- var result;
- try {
- result = cb(value);
- } catch (e) {
- next2.reject(e);
- return;
- }
- resolve(next2, result);
- }
- };
- };
- var resolve = function resolve2(promise2, x2) {
- if (promise2 === x2 || promise2.proxy === x2) {
- promise2.reject(new TypeError("cannot resolve promise with itself"));
- return;
- }
- var then;
- if (_typeof(x2) === "object" && x2 !== null || typeof x2 === "function") {
- try {
- then = x2.then;
- } catch (e) {
- promise2.reject(e);
- return;
- }
- }
- if (typeof then === "function") {
- var resolved = false;
- try {
- then.call(
- x2,
- /* resolvePromise */
- /* [Promises/A+ 2.3.3.3.1] */
- function(y2) {
- if (resolved)
- return;
- resolved = true;
- if (y2 === x2)
- promise2.reject(new TypeError("circular thenable chain"));
- else
- resolve2(promise2, y2);
- },
- /* rejectPromise */
- /* [Promises/A+ 2.3.3.3.2] */
- function(r) {
- if (resolved)
- return;
- resolved = true;
- promise2.reject(r);
- }
- );
- } catch (e) {
- if (!resolved)
- promise2.reject(e);
- }
- return;
- }
- promise2.fulfill(x2);
- };
- api.all = function(ps) {
- return new api(function(resolveAll, rejectAll) {
- var vals = new Array(ps.length);
- var doneCount = 0;
- var fulfill = function fulfill2(i4, val) {
- vals[i4] = val;
- doneCount++;
- if (doneCount === ps.length) {
- resolveAll(vals);
- }
- };
- for (var i3 = 0; i3 < ps.length; i3++) {
- (function(i4) {
- var p2 = ps[i4];
- var isPromise = p2 != null && p2.then != null;
- if (isPromise) {
- p2.then(function(val2) {
- fulfill(i4, val2);
- }, function(err) {
- rejectAll(err);
- });
- } else {
- var val = p2;
- fulfill(i4, val);
- }
- })(i3);
- }
- });
- };
- api.resolve = function(val) {
- return new api(function(resolve2, reject) {
- resolve2(val);
- });
- };
- api.reject = function(val) {
- return new api(function(resolve2, reject) {
- reject(val);
- });
- };
- var Promise$12 = typeof Promise !== "undefined" ? Promise : api;
- var Animation = function Animation2(target, opts, opts2) {
- var isCore = core2(target);
- var isEle = !isCore;
- var _p = this._private = extend2({
- duration: 1e3
- }, opts, opts2);
- _p.target = target;
- _p.style = _p.style || _p.css;
- _p.started = false;
- _p.playing = false;
- _p.hooked = false;
- _p.applying = false;
- _p.progress = 0;
- _p.completes = [];
- _p.frames = [];
- if (_p.complete && fn$6(_p.complete)) {
- _p.completes.push(_p.complete);
- }
- if (isEle) {
- var pos = target.position();
- _p.startPosition = _p.startPosition || {
- x: pos.x,
- y: pos.y
- };
- _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);
- }
- if (isCore) {
- var pan = target.pan();
- _p.startPan = {
- x: pan.x,
- y: pan.y
- };
- _p.startZoom = target.zoom();
- }
- this.length = 1;
- this[0] = this;
- };
- var anifn = Animation.prototype;
- extend2(anifn, {
- instanceString: function instanceString() {
- return "animation";
- },
- hook: function hook() {
- var _p = this._private;
- if (!_p.hooked) {
- var q;
- var tAni = _p.target._private.animation;
- if (_p.queue) {
- q = tAni.queue;
- } else {
- q = tAni.current;
- }
- q.push(this);
- if (elementOrCollection(_p.target)) {
- _p.target.cy().addToAnimationPool(_p.target);
- }
- _p.hooked = true;
- }
- return this;
- },
- play: function play() {
- var _p = this._private;
- if (_p.progress === 1) {
- _p.progress = 0;
- }
- _p.playing = true;
- _p.started = false;
- _p.stopped = false;
- this.hook();
- return this;
- },
- playing: function playing() {
- return this._private.playing;
- },
- apply: function apply2() {
- var _p = this._private;
- _p.applying = true;
- _p.started = false;
- _p.stopped = false;
- this.hook();
- return this;
- },
- applying: function applying() {
- return this._private.applying;
- },
- pause: function pause() {
- var _p = this._private;
- _p.playing = false;
- _p.started = false;
- return this;
- },
- stop: function stop() {
- var _p = this._private;
- _p.playing = false;
- _p.started = false;
- _p.stopped = true;
- return this;
- },
- rewind: function rewind() {
- return this.progress(0);
- },
- fastforward: function fastforward() {
- return this.progress(1);
- },
- time: function time2(t4) {
- var _p = this._private;
- if (t4 === void 0) {
- return _p.progress * _p.duration;
- } else {
- return this.progress(t4 / _p.duration);
- }
- },
- progress: function progress(p2) {
- var _p = this._private;
- var wasPlaying = _p.playing;
- if (p2 === void 0) {
- return _p.progress;
- } else {
- if (wasPlaying) {
- this.pause();
- }
- _p.progress = p2;
- _p.started = false;
- if (wasPlaying) {
- this.play();
- }
- }
- return this;
- },
- completed: function completed() {
- return this._private.progress === 1;
- },
- reverse: function reverse() {
- var _p = this._private;
- var wasPlaying = _p.playing;
- if (wasPlaying) {
- this.pause();
- }
- _p.progress = 1 - _p.progress;
- _p.started = false;
- var swap = function swap2(a, b) {
- var _pa = _p[a];
- if (_pa == null) {
- return;
- }
- _p[a] = _p[b];
- _p[b] = _pa;
- };
- swap("zoom", "startZoom");
- swap("pan", "startPan");
- swap("position", "startPosition");
- if (_p.style) {
- for (var i3 = 0; i3 < _p.style.length; i3++) {
- var prop = _p.style[i3];
- var name2 = prop.name;
- var startStyleProp = _p.startStyle[name2];
- _p.startStyle[name2] = prop;
- _p.style[i3] = startStyleProp;
- }
- }
- if (wasPlaying) {
- this.play();
- }
- return this;
- },
- promise: function promise2(type2) {
- var _p = this._private;
- var arr;
- switch (type2) {
- case "frame":
- arr = _p.frames;
- break;
- default:
- case "complete":
- case "completed":
- arr = _p.completes;
- }
- return new Promise$12(function(resolve2, reject) {
- arr.push(function() {
- resolve2();
- });
- });
- }
- });
- anifn.complete = anifn.completed;
- anifn.run = anifn.play;
- anifn.running = anifn.playing;
- var define$3 = {
- animated: function animated() {
- return function animatedImpl() {
- var self2 = this;
- var selfIsArrayLike = self2.length !== void 0;
- var all = selfIsArrayLike ? self2 : [self2];
- var cy = this._private.cy || this;
- if (!cy.styleEnabled()) {
- return false;
- }
- var ele = all[0];
- if (ele) {
- return ele._private.animation.current.length > 0;
- }
- };
- },
- // animated
- clearQueue: function clearQueue() {
- return function clearQueueImpl() {
- var self2 = this;
- var selfIsArrayLike = self2.length !== void 0;
- var all = selfIsArrayLike ? self2 : [self2];
- var cy = this._private.cy || this;
- if (!cy.styleEnabled()) {
- return this;
- }
- for (var i3 = 0; i3 < all.length; i3++) {
- var ele = all[i3];
- ele._private.animation.queue = [];
- }
- return this;
- };
- },
- // clearQueue
- delay: function delay() {
- return function delayImpl(time2, complete) {
- var cy = this._private.cy || this;
- if (!cy.styleEnabled()) {
- return this;
- }
- return this.animate({
- delay: time2,
- duration: time2,
- complete
- });
- };
- },
- // delay
- delayAnimation: function delayAnimation() {
- return function delayAnimationImpl(time2, complete) {
- var cy = this._private.cy || this;
- if (!cy.styleEnabled()) {
- return this;
- }
- return this.animation({
- delay: time2,
- duration: time2,
- complete
- });
- };
- },
- // delay
- animation: function animation() {
- return function animationImpl(properties, params) {
- var self2 = this;
- var selfIsArrayLike = self2.length !== void 0;
- var all = selfIsArrayLike ? self2 : [self2];
- var cy = this._private.cy || this;
- var isCore = !selfIsArrayLike;
- var isEles = !isCore;
- if (!cy.styleEnabled()) {
- return this;
- }
- var style = cy.style();
- properties = extend2({}, properties, params);
- var propertiesEmpty = Object.keys(properties).length === 0;
- if (propertiesEmpty) {
- return new Animation(all[0], properties);
- }
- if (properties.duration === void 0) {
- properties.duration = 400;
- }
- switch (properties.duration) {
- case "slow":
- properties.duration = 600;
- break;
- case "fast":
- properties.duration = 200;
- break;
- }
- if (isEles) {
- properties.style = style.getPropsList(properties.style || properties.css);
- properties.css = void 0;
- }
- if (isEles && properties.renderedPosition != null) {
- var rpos = properties.renderedPosition;
- var pan = cy.pan();
- var zoom = cy.zoom();
- properties.position = renderedToModelPosition(rpos, zoom, pan);
- }
- if (isCore && properties.panBy != null) {
- var panBy = properties.panBy;
- var cyPan = cy.pan();
- properties.pan = {
- x: cyPan.x + panBy.x,
- y: cyPan.y + panBy.y
- };
- }
- var center2 = properties.center || properties.centre;
- if (isCore && center2 != null) {
- var centerPan = cy.getCenterPan(center2.eles, properties.zoom);
- if (centerPan != null) {
- properties.pan = centerPan;
- }
- }
- if (isCore && properties.fit != null) {
- var fit = properties.fit;
- var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding);
- if (fitVp != null) {
- properties.pan = fitVp.pan;
- properties.zoom = fitVp.zoom;
- }
- }
- if (isCore && plainObject(properties.zoom)) {
- var vp = cy.getZoomedViewport(properties.zoom);
- if (vp != null) {
- if (vp.zoomed) {
- properties.zoom = vp.zoom;
- }
- if (vp.panned) {
- properties.pan = vp.pan;
- }
- } else {
- properties.zoom = null;
- }
- }
- return new Animation(all[0], properties);
- };
- },
- // animate
- animate: function animate() {
- return function animateImpl(properties, params) {
- var self2 = this;
- var selfIsArrayLike = self2.length !== void 0;
- var all = selfIsArrayLike ? self2 : [self2];
- var cy = this._private.cy || this;
- if (!cy.styleEnabled()) {
- return this;
- }
- if (params) {
- properties = extend2({}, properties, params);
- }
- for (var i3 = 0; i3 < all.length; i3++) {
- var ele = all[i3];
- var queue = ele.animated() && (properties.queue === void 0 || properties.queue);
- var ani = ele.animation(properties, queue ? {
- queue: true
- } : void 0);
- ani.play();
- }
- return this;
- };
- },
- // animate
- stop: function stop() {
- return function stopImpl(clearQueue, jumpToEnd) {
- var self2 = this;
- var selfIsArrayLike = self2.length !== void 0;
- var all = selfIsArrayLike ? self2 : [self2];
- var cy = this._private.cy || this;
- if (!cy.styleEnabled()) {
- return this;
- }
- for (var i3 = 0; i3 < all.length; i3++) {
- var ele = all[i3];
- var _p = ele._private;
- var anis = _p.animation.current;
- for (var j = 0; j < anis.length; j++) {
- var ani = anis[j];
- var ani_p = ani._private;
- if (jumpToEnd) {
- ani_p.duration = 0;
- }
- }
- if (clearQueue) {
- _p.animation.queue = [];
- }
- if (!jumpToEnd) {
- _p.animation.current = [];
- }
- }
- cy.notify("draw");
- return this;
- };
- }
- // stop
- };
- var isArray2 = Array.isArray;
- var isArray_1 = isArray2;
- var reIsDeepProp2 = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp2 = /^\w*$/;
- function isKey2(value, object3) {
- if (isArray_1(value)) {
- return false;
- }
- var type2 = typeof value;
- if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol_1(value)) {
- return true;
- }
- return reIsPlainProp2.test(value) || !reIsDeepProp2.test(value) || object3 != null && value in Object(object3);
- }
- var _isKey = isKey2;
- var asyncTag2 = "[object AsyncFunction]", funcTag2 = "[object Function]", genTag2 = "[object GeneratorFunction]", proxyTag2 = "[object Proxy]";
- function isFunction2(value) {
- if (!isObject_12(value)) {
- return false;
- }
- var tag = _baseGetTag(value);
- return tag == funcTag2 || tag == genTag2 || tag == asyncTag2 || tag == proxyTag2;
- }
- var isFunction_1 = isFunction2;
- var coreJsData2 = _root["__core-js_shared__"];
- var _coreJsData = coreJsData2;
- var maskSrcKey2 = function() {
- var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || "");
- return uid ? "Symbol(src)_1." + uid : "";
- }();
- function isMasked2(func) {
- return !!maskSrcKey2 && maskSrcKey2 in func;
- }
- var _isMasked = isMasked2;
- var funcProto$12 = Function.prototype;
- var funcToString$12 = funcProto$12.toString;
- function toSource2(func) {
- if (func != null) {
- try {
- return funcToString$12.call(func);
- } catch (e) {
- }
- try {
- return func + "";
- } catch (e) {
- }
- }
- return "";
- }
- var _toSource = toSource2;
- var reRegExpChar2 = /[\\^$.*+?()[\]{}|]/g;
- var reIsHostCtor2 = /^\[object .+?Constructor\]$/;
- var funcProto2 = Function.prototype, objectProto$32 = Object.prototype;
- var funcToString2 = funcProto2.toString;
- var hasOwnProperty$32 = objectProto$32.hasOwnProperty;
- var reIsNative2 = RegExp(
- "^" + funcToString2.call(hasOwnProperty$32).replace(reRegExpChar2, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
- );
- function baseIsNative2(value) {
- if (!isObject_12(value) || _isMasked(value)) {
- return false;
- }
- var pattern = isFunction_1(value) ? reIsNative2 : reIsHostCtor2;
- return pattern.test(_toSource(value));
- }
- var _baseIsNative = baseIsNative2;
- function getValue$1(object3, key) {
- return object3 == null ? void 0 : object3[key];
- }
- var _getValue = getValue$1;
- function getNative2(object3, key) {
- var value = _getValue(object3, key);
- return _baseIsNative(value) ? value : void 0;
- }
- var _getNative = getNative2;
- var nativeCreate2 = _getNative(Object, "create");
- var _nativeCreate = nativeCreate2;
- function hashClear2() {
- this.__data__ = _nativeCreate ? _nativeCreate(null) : {};
- this.size = 0;
- }
- var _hashClear = hashClear2;
- function hashDelete2(key) {
- var result = this.has(key) && delete this.__data__[key];
- this.size -= result ? 1 : 0;
- return result;
- }
- var _hashDelete = hashDelete2;
- var HASH_UNDEFINED$12 = "__lodash_hash_undefined__";
- var objectProto$22 = Object.prototype;
- var hasOwnProperty$22 = objectProto$22.hasOwnProperty;
- function hashGet2(key) {
- var data2 = this.__data__;
- if (_nativeCreate) {
- var result = data2[key];
- return result === HASH_UNDEFINED$12 ? void 0 : result;
- }
- return hasOwnProperty$22.call(data2, key) ? data2[key] : void 0;
- }
- var _hashGet = hashGet2;
- var objectProto$12 = Object.prototype;
- var hasOwnProperty$12 = objectProto$12.hasOwnProperty;
- function hashHas2(key) {
- var data2 = this.__data__;
- return _nativeCreate ? data2[key] !== void 0 : hasOwnProperty$12.call(data2, key);
- }
- var _hashHas = hashHas2;
- var HASH_UNDEFINED2 = "__lodash_hash_undefined__";
- function hashSet2(key, value) {
- var data2 = this.__data__;
- this.size += this.has(key) ? 0 : 1;
- data2[key] = _nativeCreate && value === void 0 ? HASH_UNDEFINED2 : value;
- return this;
- }
- var _hashSet = hashSet2;
- function Hash2(entries2) {
- var index = -1, length2 = entries2 == null ? 0 : entries2.length;
- this.clear();
- while (++index < length2) {
- var entry = entries2[index];
- this.set(entry[0], entry[1]);
- }
- }
- Hash2.prototype.clear = _hashClear;
- Hash2.prototype["delete"] = _hashDelete;
- Hash2.prototype.get = _hashGet;
- Hash2.prototype.has = _hashHas;
- Hash2.prototype.set = _hashSet;
- var _Hash = Hash2;
- function listCacheClear2() {
- this.__data__ = [];
- this.size = 0;
- }
- var _listCacheClear = listCacheClear2;
- function eq2(value, other) {
- return value === other || value !== value && other !== other;
- }
- var eq_1 = eq2;
- function assocIndexOf2(array3, key) {
- var length2 = array3.length;
- while (length2--) {
- if (eq_1(array3[length2][0], key)) {
- return length2;
- }
- }
- return -1;
- }
- var _assocIndexOf = assocIndexOf2;
- var arrayProto2 = Array.prototype;
- var splice2 = arrayProto2.splice;
- function listCacheDelete2(key) {
- var data2 = this.__data__, index = _assocIndexOf(data2, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = data2.length - 1;
- if (index == lastIndex) {
- data2.pop();
- } else {
- splice2.call(data2, index, 1);
- }
- --this.size;
- return true;
- }
- var _listCacheDelete = listCacheDelete2;
- function listCacheGet2(key) {
- var data2 = this.__data__, index = _assocIndexOf(data2, key);
- return index < 0 ? void 0 : data2[index][1];
- }
- var _listCacheGet = listCacheGet2;
- function listCacheHas2(key) {
- return _assocIndexOf(this.__data__, key) > -1;
- }
- var _listCacheHas = listCacheHas2;
- function listCacheSet2(key, value) {
- var data2 = this.__data__, index = _assocIndexOf(data2, key);
- if (index < 0) {
- ++this.size;
- data2.push([key, value]);
- } else {
- data2[index][1] = value;
- }
- return this;
- }
- var _listCacheSet = listCacheSet2;
- function ListCache2(entries2) {
- var index = -1, length2 = entries2 == null ? 0 : entries2.length;
- this.clear();
- while (++index < length2) {
- var entry = entries2[index];
- this.set(entry[0], entry[1]);
- }
- }
- ListCache2.prototype.clear = _listCacheClear;
- ListCache2.prototype["delete"] = _listCacheDelete;
- ListCache2.prototype.get = _listCacheGet;
- ListCache2.prototype.has = _listCacheHas;
- ListCache2.prototype.set = _listCacheSet;
- var _ListCache = ListCache2;
- var Map$12 = _getNative(_root, "Map");
- var _Map = Map$12;
- function mapCacheClear2() {
- this.size = 0;
- this.__data__ = {
- "hash": new _Hash(),
- "map": new (_Map || _ListCache)(),
- "string": new _Hash()
- };
- }
- var _mapCacheClear = mapCacheClear2;
- function isKeyable2(value) {
- var type2 = typeof value;
- return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null;
- }
- var _isKeyable = isKeyable2;
- function getMapData2(map2, key) {
- var data2 = map2.__data__;
- return _isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map;
- }
- var _getMapData = getMapData2;
- function mapCacheDelete2(key) {
- var result = _getMapData(this, key)["delete"](key);
- this.size -= result ? 1 : 0;
- return result;
- }
- var _mapCacheDelete = mapCacheDelete2;
- function mapCacheGet2(key) {
- return _getMapData(this, key).get(key);
- }
- var _mapCacheGet = mapCacheGet2;
- function mapCacheHas2(key) {
- return _getMapData(this, key).has(key);
- }
- var _mapCacheHas = mapCacheHas2;
- function mapCacheSet2(key, value) {
- var data2 = _getMapData(this, key), size2 = data2.size;
- data2.set(key, value);
- this.size += data2.size == size2 ? 0 : 1;
- return this;
- }
- var _mapCacheSet = mapCacheSet2;
- function MapCache2(entries2) {
- var index = -1, length2 = entries2 == null ? 0 : entries2.length;
- this.clear();
- while (++index < length2) {
- var entry = entries2[index];
- this.set(entry[0], entry[1]);
- }
- }
- MapCache2.prototype.clear = _mapCacheClear;
- MapCache2.prototype["delete"] = _mapCacheDelete;
- MapCache2.prototype.get = _mapCacheGet;
- MapCache2.prototype.has = _mapCacheHas;
- MapCache2.prototype.set = _mapCacheSet;
- var _MapCache = MapCache2;
- var FUNC_ERROR_TEXT2 = "Expected a function";
- function memoize2(func, resolver2) {
- if (typeof func != "function" || resolver2 != null && typeof resolver2 != "function") {
- throw new TypeError(FUNC_ERROR_TEXT2);
- }
- var memoized = function() {
- var args = arguments, key = resolver2 ? resolver2.apply(this, args) : args[0], cache2 = memoized.cache;
- if (cache2.has(key)) {
- return cache2.get(key);
- }
- var result = func.apply(this, args);
- memoized.cache = cache2.set(key, result) || cache2;
- return result;
- };
- memoized.cache = new (memoize2.Cache || _MapCache)();
- return memoized;
- }
- memoize2.Cache = _MapCache;
- var memoize_1 = memoize2;
- var MAX_MEMOIZE_SIZE2 = 500;
- function memoizeCapped2(func) {
- var result = memoize_1(func, function(key) {
- if (cache2.size === MAX_MEMOIZE_SIZE2) {
- cache2.clear();
- }
- return key;
- });
- var cache2 = result.cache;
- return result;
- }
- var _memoizeCapped = memoizeCapped2;
- var rePropName2 = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
- var reEscapeChar2 = /\\(\\)?/g;
- var stringToPath2 = _memoizeCapped(function(string2) {
- var result = [];
- if (string2.charCodeAt(0) === 46) {
- result.push("");
- }
- string2.replace(rePropName2, function(match5, number3, quote, subString) {
- result.push(quote ? subString.replace(reEscapeChar2, "$1") : number3 || match5);
- });
- return result;
- });
- var _stringToPath = stringToPath2;
- function arrayMap2(array3, iteratee) {
- var index = -1, length2 = array3 == null ? 0 : array3.length, result = Array(length2);
- while (++index < length2) {
- result[index] = iteratee(array3[index], index, array3);
- }
- return result;
- }
- var _arrayMap = arrayMap2;
- var INFINITY$12 = 1 / 0;
- var symbolProto2 = _Symbol ? _Symbol.prototype : void 0, symbolToString2 = symbolProto2 ? symbolProto2.toString : void 0;
- function baseToString2(value) {
- if (typeof value == "string") {
- return value;
- }
- if (isArray_1(value)) {
- return _arrayMap(value, baseToString2) + "";
- }
- if (isSymbol_1(value)) {
- return symbolToString2 ? symbolToString2.call(value) : "";
- }
- var result = value + "";
- return result == "0" && 1 / value == -INFINITY$12 ? "-0" : result;
- }
- var _baseToString = baseToString2;
- function toString$1(value) {
- return value == null ? "" : _baseToString(value);
- }
- var toString_1 = toString$1;
- function castPath2(value, object3) {
- if (isArray_1(value)) {
- return value;
- }
- return _isKey(value, object3) ? [value] : _stringToPath(toString_1(value));
- }
- var _castPath = castPath2;
- var INFINITY2 = 1 / 0;
- function toKey2(value) {
- if (typeof value == "string" || isSymbol_1(value)) {
- return value;
- }
- var result = value + "";
- return result == "0" && 1 / value == -INFINITY2 ? "-0" : result;
- }
- var _toKey = toKey2;
- function baseGet2(object3, path2) {
- path2 = _castPath(path2, object3);
- var index = 0, length2 = path2.length;
- while (object3 != null && index < length2) {
- object3 = object3[_toKey(path2[index++])];
- }
- return index && index == length2 ? object3 : void 0;
- }
- var _baseGet = baseGet2;
- function get2(object3, path2, defaultValue) {
- var result = object3 == null ? void 0 : _baseGet(object3, path2);
- return result === void 0 ? defaultValue : result;
- }
- var get_1 = get2;
- var defineProperty2 = function() {
- try {
- var func = _getNative(Object, "defineProperty");
- func({}, "", {});
- return func;
- } catch (e) {
- }
- }();
- var _defineProperty = defineProperty2;
- function baseAssignValue2(object3, key, value) {
- if (key == "__proto__" && _defineProperty) {
- _defineProperty(object3, key, {
- "configurable": true,
- "enumerable": true,
- "value": value,
- "writable": true
- });
- } else {
- object3[key] = value;
- }
- }
- var _baseAssignValue = baseAssignValue2;
- var objectProto2 = Object.prototype;
- var hasOwnProperty2 = objectProto2.hasOwnProperty;
- function assignValue2(object3, key, value) {
- var objValue = object3[key];
- if (!(hasOwnProperty2.call(object3, key) && eq_1(objValue, value)) || value === void 0 && !(key in object3)) {
- _baseAssignValue(object3, key, value);
- }
- }
- var _assignValue = assignValue2;
- var MAX_SAFE_INTEGER2 = 9007199254740991;
- var reIsUint2 = /^(?:0|[1-9]\d*)$/;
- function isIndex2(value, length2) {
- var type2 = typeof value;
- length2 = length2 == null ? MAX_SAFE_INTEGER2 : length2;
- return !!length2 && (type2 == "number" || type2 != "symbol" && reIsUint2.test(value)) && (value > -1 && value % 1 == 0 && value < length2);
- }
- var _isIndex = isIndex2;
- function baseSet2(object3, path2, value, customizer) {
- if (!isObject_12(object3)) {
- return object3;
- }
- path2 = _castPath(path2, object3);
- var index = -1, length2 = path2.length, lastIndex = length2 - 1, nested = object3;
- while (nested != null && ++index < length2) {
- var key = _toKey(path2[index]), newValue = value;
- if (key === "__proto__" || key === "constructor" || key === "prototype") {
- return object3;
- }
- if (index != lastIndex) {
- var objValue = nested[key];
- newValue = customizer ? customizer(objValue, key, nested) : void 0;
- if (newValue === void 0) {
- newValue = isObject_12(objValue) ? objValue : _isIndex(path2[index + 1]) ? [] : {};
- }
- }
- _assignValue(nested, key, newValue);
- nested = nested[key];
- }
- return object3;
- }
- var _baseSet = baseSet2;
- function set2(object3, path2, value) {
- return object3 == null ? object3 : _baseSet(object3, path2, value);
- }
- var set_1 = set2;
- function copyArray2(source, array3) {
- var index = -1, length2 = source.length;
- array3 || (array3 = Array(length2));
- while (++index < length2) {
- array3[index] = source[index];
- }
- return array3;
- }
- var _copyArray = copyArray2;
- function toPath(value) {
- if (isArray_1(value)) {
- return _arrayMap(value, _toKey);
- }
- return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value)));
- }
- var toPath_1 = toPath;
- var define$2 = {
- // access data field
- data: function data2(params) {
- var defaults3 = {
- field: "data",
- bindingEvent: "data",
- allowBinding: false,
- allowSetting: false,
- allowGetting: false,
- settingEvent: "data",
- settingTriggersEvent: false,
- triggerFnName: "trigger",
- immutableKeys: {},
- // key => true if immutable
- updateStyle: false,
- beforeGet: function beforeGet(self2) {
- },
- beforeSet: function beforeSet(self2, obj) {
- },
- onSet: function onSet(self2) {
- },
- canSet: function canSet(self2) {
- return true;
- }
- };
- params = extend2({}, defaults3, params);
- return function dataImpl(name2, value) {
- var p2 = params;
- var self2 = this;
- var selfIsArrayLike = self2.length !== void 0;
- var all = selfIsArrayLike ? self2 : [self2];
- var single = selfIsArrayLike ? self2[0] : self2;
- if (string(name2)) {
- var isPathLike = name2.indexOf(".") !== -1;
- var path2 = isPathLike && toPath_1(name2);
- if (p2.allowGetting && value === void 0) {
- var ret;
- if (single) {
- p2.beforeGet(single);
- if (path2 && single._private[p2.field][name2] === void 0) {
- ret = get_1(single._private[p2.field], path2);
- } else {
- ret = single._private[p2.field][name2];
- }
- }
- return ret;
- } else if (p2.allowSetting && value !== void 0) {
- var valid2 = !p2.immutableKeys[name2];
- if (valid2) {
- var change2 = _defineProperty$1({}, name2, value);
- p2.beforeSet(self2, change2);
- for (var i3 = 0, l = all.length; i3 < l; i3++) {
- var ele = all[i3];
- if (p2.canSet(ele)) {
- if (path2 && single._private[p2.field][name2] === void 0) {
- set_1(ele._private[p2.field], path2, value);
- } else {
- ele._private[p2.field][name2] = value;
- }
- }
- }
- if (p2.updateStyle) {
- self2.updateStyle();
- }
- p2.onSet(self2);
- if (p2.settingTriggersEvent) {
- self2[p2.triggerFnName](p2.settingEvent);
- }
- }
- }
- } else if (p2.allowSetting && plainObject(name2)) {
- var obj = name2;
- var k, v;
- var keys2 = Object.keys(obj);
- p2.beforeSet(self2, obj);
- for (var _i = 0; _i < keys2.length; _i++) {
- k = keys2[_i];
- v = obj[k];
- var _valid = !p2.immutableKeys[k];
- if (_valid) {
- for (var j = 0; j < all.length; j++) {
- var _ele = all[j];
- if (p2.canSet(_ele)) {
- _ele._private[p2.field][k] = v;
- }
- }
- }
- }
- if (p2.updateStyle) {
- self2.updateStyle();
- }
- p2.onSet(self2);
- if (p2.settingTriggersEvent) {
- self2[p2.triggerFnName](p2.settingEvent);
- }
- } else if (p2.allowBinding && fn$6(name2)) {
- var fn2 = name2;
- self2.on(p2.bindingEvent, fn2);
- } else if (p2.allowGetting && name2 === void 0) {
- var _ret;
- if (single) {
- p2.beforeGet(single);
- _ret = single._private[p2.field];
- }
- return _ret;
- }
- return self2;
- };
- },
- // data
- // remove data field
- removeData: function removeData(params) {
- var defaults3 = {
- field: "data",
- event: "data",
- triggerFnName: "trigger",
- triggerEvent: false,
- immutableKeys: {}
- // key => true if immutable
- };
- params = extend2({}, defaults3, params);
- return function removeDataImpl(names) {
- var p2 = params;
- var self2 = this;
- var selfIsArrayLike = self2.length !== void 0;
- var all = selfIsArrayLike ? self2 : [self2];
- if (string(names)) {
- var keys2 = names.split(/\s+/);
- var l = keys2.length;
- for (var i3 = 0; i3 < l; i3++) {
- var key = keys2[i3];
- if (emptyString(key)) {
- continue;
- }
- var valid2 = !p2.immutableKeys[key];
- if (valid2) {
- for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) {
- all[i_a]._private[p2.field][key] = void 0;
- }
- }
- }
- if (p2.triggerEvent) {
- self2[p2.triggerFnName](p2.event);
- }
- } else if (names === void 0) {
- for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) {
- var _privateFields = all[_i_a]._private[p2.field];
- var _keys = Object.keys(_privateFields);
- for (var _i2 = 0; _i2 < _keys.length; _i2++) {
- var _key = _keys[_i2];
- var validKeyToDelete = !p2.immutableKeys[_key];
- if (validKeyToDelete) {
- _privateFields[_key] = void 0;
- }
- }
- }
- if (p2.triggerEvent) {
- self2[p2.triggerFnName](p2.event);
- }
- }
- return self2;
- };
- }
- // removeData
- };
- var define$1 = {
- eventAliasesOn: function eventAliasesOn(proto2) {
- var p2 = proto2;
- p2.addListener = p2.listen = p2.bind = p2.on;
- p2.unlisten = p2.unbind = p2.off = p2.removeListener;
- p2.trigger = p2.emit;
- p2.pon = p2.promiseOn = function(events, selector2) {
- var self2 = this;
- var args = Array.prototype.slice.call(arguments, 0);
- return new Promise$12(function(resolve2, reject) {
- var callback = function callback2(e) {
- self2.off.apply(self2, offArgs);
- resolve2(e);
- };
- var onArgs = args.concat([callback]);
- var offArgs = onArgs.concat([]);
- self2.on.apply(self2, onArgs);
- });
- };
- }
- };
- var define3 = {};
- [define$3, define$2, define$1].forEach(function(m) {
- extend2(define3, m);
- });
- var elesfn$i = {
- animate: define3.animate(),
- animation: define3.animation(),
- animated: define3.animated(),
- clearQueue: define3.clearQueue(),
- delay: define3.delay(),
- delayAnimation: define3.delayAnimation(),
- stop: define3.stop()
- };
- var elesfn$h = {
- classes: function classes2(_classes) {
- var self2 = this;
- if (_classes === void 0) {
- var ret = [];
- self2[0]._private.classes.forEach(function(cls2) {
- return ret.push(cls2);
- });
- return ret;
- } else if (!array2(_classes)) {
- _classes = (_classes || "").match(/\S+/g) || [];
- }
- var changed = [];
- var classesSet = new Set$12(_classes);
- for (var j = 0; j < self2.length; j++) {
- var ele = self2[j];
- var _p = ele._private;
- var eleClasses = _p.classes;
- var changedEle = false;
- for (var i3 = 0; i3 < _classes.length; i3++) {
- var cls = _classes[i3];
- var eleHasClass = eleClasses.has(cls);
- if (!eleHasClass) {
- changedEle = true;
- break;
- }
- }
- if (!changedEle) {
- changedEle = eleClasses.size !== _classes.length;
- }
- if (changedEle) {
- _p.classes = classesSet;
- changed.push(ele);
- }
- }
- if (changed.length > 0) {
- this.spawn(changed).updateStyle().emit("class");
- }
- return self2;
- },
- addClass: function addClass2(classes2) {
- return this.toggleClass(classes2, true);
- },
- hasClass: function hasClass(className) {
- var ele = this[0];
- return ele != null && ele._private.classes.has(className);
- },
- toggleClass: function toggleClass(classes2, toggle) {
- if (!array2(classes2)) {
- classes2 = classes2.match(/\S+/g) || [];
- }
- var self2 = this;
- var toggleUndefd = toggle === void 0;
- var changed = [];
- for (var i3 = 0, il = self2.length; i3 < il; i3++) {
- var ele = self2[i3];
- var eleClasses = ele._private.classes;
- var changedEle = false;
- for (var j = 0; j < classes2.length; j++) {
- var cls = classes2[j];
- var hasClass = eleClasses.has(cls);
- var changedNow = false;
- if (toggle || toggleUndefd && !hasClass) {
- eleClasses.add(cls);
- changedNow = true;
- } else if (!toggle || toggleUndefd && hasClass) {
- eleClasses["delete"](cls);
- changedNow = true;
- }
- if (!changedEle && changedNow) {
- changed.push(ele);
- changedEle = true;
- }
- }
- }
- if (changed.length > 0) {
- this.spawn(changed).updateStyle().emit("class");
- }
- return self2;
- },
- removeClass: function removeClass(classes2) {
- return this.toggleClass(classes2, false);
- },
- flashClass: function flashClass(classes2, duration) {
- var self2 = this;
- if (duration == null) {
- duration = 250;
- } else if (duration === 0) {
- return self2;
- }
- self2.addClass(classes2);
- setTimeout(function() {
- self2.removeClass(classes2);
- }, duration);
- return self2;
- }
- };
- elesfn$h.className = elesfn$h.classNames = elesfn$h.classes;
- var tokens = {
- metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",
- // chars we need to escape in let names, etc
- comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",
- // binary comparison op (used in data selectors)
- boolOp: "\\?|\\!|\\^",
- // boolean (unary) operators (used in data selectors)
- string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,
- // string literals (used in data selectors) -- doublequotes | singlequotes
- number: number2,
- // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123
- meta: "degree|indegree|outdegree",
- // allowed metadata fields (i.e. allowed functions to use from Collection)
- separator: "\\s*,\\s*",
- // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass
- descendant: "\\s+",
- child: "\\s+>\\s+",
- subject: "\\$",
- group: "node|edge|\\*",
- directedEdge: "\\s+->\\s+",
- undirectedEdge: "\\s+<->\\s+"
- };
- tokens.variable = "(?:[\\w-.]|(?:\\\\" + tokens.metaChar + "))+";
- tokens.className = "(?:[\\w-]|(?:\\\\" + tokens.metaChar + "))+";
- tokens.value = tokens.string + "|" + tokens.number;
- tokens.id = tokens.variable;
- (function() {
- var ops, op, i3;
- ops = tokens.comparatorOp.split("|");
- for (i3 = 0; i3 < ops.length; i3++) {
- op = ops[i3];
- tokens.comparatorOp += "|@" + op;
- }
- ops = tokens.comparatorOp.split("|");
- for (i3 = 0; i3 < ops.length; i3++) {
- op = ops[i3];
- if (op.indexOf("!") >= 0) {
- continue;
- }
- if (op === "=") {
- continue;
- }
- tokens.comparatorOp += "|\\!" + op;
- }
- })();
- var newQuery = function newQuery2() {
- return {
- checks: []
- };
- };
- var Type2 = {
- /** E.g. node */
- GROUP: 0,
- /** A collection of elements */
- COLLECTION: 1,
- /** A filter(ele) function */
- FILTER: 2,
- /** E.g. [foo > 1] */
- DATA_COMPARE: 3,
- /** E.g. [foo] */
- DATA_EXIST: 4,
- /** E.g. [?foo] */
- DATA_BOOL: 5,
- /** E.g. [[degree > 2]] */
- META_COMPARE: 6,
- /** E.g. :selected */
- STATE: 7,
- /** E.g. #foo */
- ID: 8,
- /** E.g. .foo */
- CLASS: 9,
- /** E.g. #foo <-> #bar */
- UNDIRECTED_EDGE: 10,
- /** E.g. #foo -> #bar */
- DIRECTED_EDGE: 11,
- /** E.g. $#foo -> #bar */
- NODE_SOURCE: 12,
- /** E.g. #foo -> $#bar */
- NODE_TARGET: 13,
- /** E.g. $#foo <-> #bar */
- NODE_NEIGHBOR: 14,
- /** E.g. #foo > #bar */
- CHILD: 15,
- /** E.g. #foo #bar */
- DESCENDANT: 16,
- /** E.g. $#foo > #bar */
- PARENT: 17,
- /** E.g. $#foo #bar */
- ANCESTOR: 18,
- /** E.g. #foo > $bar > #baz */
- COMPOUND_SPLIT: 19,
- /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */
- TRUE: 20
- };
- var stateSelectors = [{
- selector: ":selected",
- matches: function matches2(ele) {
- return ele.selected();
- }
- }, {
- selector: ":unselected",
- matches: function matches2(ele) {
- return !ele.selected();
- }
- }, {
- selector: ":selectable",
- matches: function matches2(ele) {
- return ele.selectable();
- }
- }, {
- selector: ":unselectable",
- matches: function matches2(ele) {
- return !ele.selectable();
- }
- }, {
- selector: ":locked",
- matches: function matches2(ele) {
- return ele.locked();
- }
- }, {
- selector: ":unlocked",
- matches: function matches2(ele) {
- return !ele.locked();
- }
- }, {
- selector: ":visible",
- matches: function matches2(ele) {
- return ele.visible();
- }
- }, {
- selector: ":hidden",
- matches: function matches2(ele) {
- return !ele.visible();
- }
- }, {
- selector: ":transparent",
- matches: function matches2(ele) {
- return ele.transparent();
- }
- }, {
- selector: ":grabbed",
- matches: function matches2(ele) {
- return ele.grabbed();
- }
- }, {
- selector: ":free",
- matches: function matches2(ele) {
- return !ele.grabbed();
- }
- }, {
- selector: ":removed",
- matches: function matches2(ele) {
- return ele.removed();
- }
- }, {
- selector: ":inside",
- matches: function matches2(ele) {
- return !ele.removed();
- }
- }, {
- selector: ":grabbable",
- matches: function matches2(ele) {
- return ele.grabbable();
- }
- }, {
- selector: ":ungrabbable",
- matches: function matches2(ele) {
- return !ele.grabbable();
- }
- }, {
- selector: ":animated",
- matches: function matches2(ele) {
- return ele.animated();
- }
- }, {
- selector: ":unanimated",
- matches: function matches2(ele) {
- return !ele.animated();
- }
- }, {
- selector: ":parent",
- matches: function matches2(ele) {
- return ele.isParent();
- }
- }, {
- selector: ":childless",
- matches: function matches2(ele) {
- return ele.isChildless();
- }
- }, {
- selector: ":child",
- matches: function matches2(ele) {
- return ele.isChild();
- }
- }, {
- selector: ":orphan",
- matches: function matches2(ele) {
- return ele.isOrphan();
- }
- }, {
- selector: ":nonorphan",
- matches: function matches2(ele) {
- return ele.isChild();
- }
- }, {
- selector: ":compound",
- matches: function matches2(ele) {
- if (ele.isNode()) {
- return ele.isParent();
- } else {
- return ele.source().isParent() || ele.target().isParent();
- }
- }
- }, {
- selector: ":loop",
- matches: function matches2(ele) {
- return ele.isLoop();
- }
- }, {
- selector: ":simple",
- matches: function matches2(ele) {
- return ele.isSimple();
- }
- }, {
- selector: ":active",
- matches: function matches2(ele) {
- return ele.active();
- }
- }, {
- selector: ":inactive",
- matches: function matches2(ele) {
- return !ele.active();
- }
- }, {
- selector: ":backgrounding",
- matches: function matches2(ele) {
- return ele.backgrounding();
- }
- }, {
- selector: ":nonbackgrounding",
- matches: function matches2(ele) {
- return !ele.backgrounding();
- }
- }].sort(function(a, b) {
- return descending2(a.selector, b.selector);
- });
- var lookup = function() {
- var selToFn = {};
- var s;
- for (var i3 = 0; i3 < stateSelectors.length; i3++) {
- s = stateSelectors[i3];
- selToFn[s.selector] = s.matches;
- }
- return selToFn;
- }();
- var stateSelectorMatches = function stateSelectorMatches2(sel, ele) {
- return lookup[sel](ele);
- };
- var stateSelectorRegex = "(" + stateSelectors.map(function(s) {
- return s.selector;
- }).join("|") + ")";
- var cleanMetaChars = function cleanMetaChars2(str2) {
- return str2.replace(new RegExp("\\\\(" + tokens.metaChar + ")", "g"), function(match5, $1) {
- return $1;
- });
- };
- var replaceLastQuery = function replaceLastQuery2(selector2, examiningQuery, replacementQuery) {
- selector2[selector2.length - 1] = replacementQuery;
- };
- var exprs = [{
- name: "group",
- // just used for identifying when debugging
- query: true,
- regex: "(" + tokens.group + ")",
- populate: function populate(selector2, query, _ref) {
- var _ref2 = _slicedToArray(_ref, 1), group = _ref2[0];
- query.checks.push({
- type: Type2.GROUP,
- value: group === "*" ? group : group + "s"
- });
- }
- }, {
- name: "state",
- query: true,
- regex: stateSelectorRegex,
- populate: function populate(selector2, query, _ref3) {
- var _ref4 = _slicedToArray(_ref3, 1), state2 = _ref4[0];
- query.checks.push({
- type: Type2.STATE,
- value: state2
- });
- }
- }, {
- name: "id",
- query: true,
- regex: "\\#(" + tokens.id + ")",
- populate: function populate(selector2, query, _ref5) {
- var _ref6 = _slicedToArray(_ref5, 1), id2 = _ref6[0];
- query.checks.push({
- type: Type2.ID,
- value: cleanMetaChars(id2)
- });
- }
- }, {
- name: "className",
- query: true,
- regex: "\\.(" + tokens.className + ")",
- populate: function populate(selector2, query, _ref7) {
- var _ref8 = _slicedToArray(_ref7, 1), className = _ref8[0];
- query.checks.push({
- type: Type2.CLASS,
- value: cleanMetaChars(className)
- });
- }
- }, {
- name: "dataExists",
- query: true,
- regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]",
- populate: function populate(selector2, query, _ref9) {
- var _ref10 = _slicedToArray(_ref9, 1), variable = _ref10[0];
- query.checks.push({
- type: Type2.DATA_EXIST,
- field: cleanMetaChars(variable)
- });
- }
- }, {
- name: "dataCompare",
- query: true,
- regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]",
- populate: function populate(selector2, query, _ref11) {
- var _ref12 = _slicedToArray(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value = _ref12[2];
- var valueIsString = new RegExp("^" + tokens.string + "$").exec(value) != null;
- if (valueIsString) {
- value = value.substring(1, value.length - 1);
- } else {
- value = parseFloat(value);
- }
- query.checks.push({
- type: Type2.DATA_COMPARE,
- field: cleanMetaChars(variable),
- operator: comparatorOp,
- value
- });
- }
- }, {
- name: "dataBool",
- query: true,
- regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]",
- populate: function populate(selector2, query, _ref13) {
- var _ref14 = _slicedToArray(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1];
- query.checks.push({
- type: Type2.DATA_BOOL,
- field: cleanMetaChars(variable),
- operator: boolOp
- });
- }
- }, {
- name: "metaCompare",
- query: true,
- regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]",
- populate: function populate(selector2, query, _ref15) {
- var _ref16 = _slicedToArray(_ref15, 3), meta2 = _ref16[0], comparatorOp = _ref16[1], number3 = _ref16[2];
- query.checks.push({
- type: Type2.META_COMPARE,
- field: cleanMetaChars(meta2),
- operator: comparatorOp,
- value: parseFloat(number3)
- });
- }
- }, {
- name: "nextQuery",
- separator: true,
- regex: tokens.separator,
- populate: function populate(selector2, query) {
- var currentSubject = selector2.currentSubject;
- var edgeCount2 = selector2.edgeCount;
- var compoundCount = selector2.compoundCount;
- var lastQ = selector2[selector2.length - 1];
- if (currentSubject != null) {
- lastQ.subject = currentSubject;
- selector2.currentSubject = null;
- }
- lastQ.edgeCount = edgeCount2;
- lastQ.compoundCount = compoundCount;
- selector2.edgeCount = 0;
- selector2.compoundCount = 0;
- var nextQuery = selector2[selector2.length++] = newQuery();
- return nextQuery;
- }
- }, {
- name: "directedEdge",
- separator: true,
- regex: tokens.directedEdge,
- populate: function populate(selector2, query) {
- if (selector2.currentSubject == null) {
- var edgeQuery = newQuery();
- var source = query;
- var target = newQuery();
- edgeQuery.checks.push({
- type: Type2.DIRECTED_EDGE,
- source,
- target
- });
- replaceLastQuery(selector2, query, edgeQuery);
- selector2.edgeCount++;
- return target;
- } else {
- var srcTgtQ = newQuery();
- var _source = query;
- var _target = newQuery();
- srcTgtQ.checks.push({
- type: Type2.NODE_SOURCE,
- source: _source,
- target: _target
- });
- replaceLastQuery(selector2, query, srcTgtQ);
- selector2.edgeCount++;
- return _target;
- }
- }
- }, {
- name: "undirectedEdge",
- separator: true,
- regex: tokens.undirectedEdge,
- populate: function populate(selector2, query) {
- if (selector2.currentSubject == null) {
- var edgeQuery = newQuery();
- var source = query;
- var target = newQuery();
- edgeQuery.checks.push({
- type: Type2.UNDIRECTED_EDGE,
- nodes: [source, target]
- });
- replaceLastQuery(selector2, query, edgeQuery);
- selector2.edgeCount++;
- return target;
- } else {
- var nhoodQ = newQuery();
- var node2 = query;
- var neighbor = newQuery();
- nhoodQ.checks.push({
- type: Type2.NODE_NEIGHBOR,
- node: node2,
- neighbor
- });
- replaceLastQuery(selector2, query, nhoodQ);
- return neighbor;
- }
- }
- }, {
- name: "child",
- separator: true,
- regex: tokens.child,
- populate: function populate(selector2, query) {
- if (selector2.currentSubject == null) {
- var parentChildQuery = newQuery();
- var child = newQuery();
- var parent = selector2[selector2.length - 1];
- parentChildQuery.checks.push({
- type: Type2.CHILD,
- parent,
- child
- });
- replaceLastQuery(selector2, query, parentChildQuery);
- selector2.compoundCount++;
- return child;
- } else if (selector2.currentSubject === query) {
- var compound = newQuery();
- var left2 = selector2[selector2.length - 1];
- var right2 = newQuery();
- var subject = newQuery();
- var _child = newQuery();
- var _parent = newQuery();
- compound.checks.push({
- type: Type2.COMPOUND_SPLIT,
- left: left2,
- right: right2,
- subject
- });
- subject.checks = query.checks;
- query.checks = [{
- type: Type2.TRUE
- }];
- _parent.checks.push({
- type: Type2.TRUE
- });
- right2.checks.push({
- type: Type2.PARENT,
- // type is swapped on right side queries
- parent: _parent,
- child: _child
- // empty for now
- });
- replaceLastQuery(selector2, left2, compound);
- selector2.currentSubject = subject;
- selector2.compoundCount++;
- return _child;
- } else {
- var _parent2 = newQuery();
- var _child2 = newQuery();
- var pcQChecks = [{
- type: Type2.PARENT,
- parent: _parent2,
- child: _child2
- }];
- _parent2.checks = query.checks;
- query.checks = pcQChecks;
- selector2.compoundCount++;
- return _child2;
- }
- }
- }, {
- name: "descendant",
- separator: true,
- regex: tokens.descendant,
- populate: function populate(selector2, query) {
- if (selector2.currentSubject == null) {
- var ancChQuery = newQuery();
- var descendant = newQuery();
- var ancestor = selector2[selector2.length - 1];
- ancChQuery.checks.push({
- type: Type2.DESCENDANT,
- ancestor,
- descendant
- });
- replaceLastQuery(selector2, query, ancChQuery);
- selector2.compoundCount++;
- return descendant;
- } else if (selector2.currentSubject === query) {
- var compound = newQuery();
- var left2 = selector2[selector2.length - 1];
- var right2 = newQuery();
- var subject = newQuery();
- var _descendant = newQuery();
- var _ancestor = newQuery();
- compound.checks.push({
- type: Type2.COMPOUND_SPLIT,
- left: left2,
- right: right2,
- subject
- });
- subject.checks = query.checks;
- query.checks = [{
- type: Type2.TRUE
- }];
- _ancestor.checks.push({
- type: Type2.TRUE
- });
- right2.checks.push({
- type: Type2.ANCESTOR,
- // type is swapped on right side queries
- ancestor: _ancestor,
- descendant: _descendant
- // empty for now
- });
- replaceLastQuery(selector2, left2, compound);
- selector2.currentSubject = subject;
- selector2.compoundCount++;
- return _descendant;
- } else {
- var _ancestor2 = newQuery();
- var _descendant2 = newQuery();
- var adQChecks = [{
- type: Type2.ANCESTOR,
- ancestor: _ancestor2,
- descendant: _descendant2
- }];
- _ancestor2.checks = query.checks;
- query.checks = adQChecks;
- selector2.compoundCount++;
- return _descendant2;
- }
- }
- }, {
- name: "subject",
- modifier: true,
- regex: tokens.subject,
- populate: function populate(selector2, query) {
- if (selector2.currentSubject != null && selector2.currentSubject !== query) {
- warn("Redefinition of subject in selector `" + selector2.toString() + "`");
- return false;
- }
- selector2.currentSubject = query;
- var topQ = selector2[selector2.length - 1];
- var topChk = topQ.checks[0];
- var topType = topChk == null ? null : topChk.type;
- if (topType === Type2.DIRECTED_EDGE) {
- topChk.type = Type2.NODE_TARGET;
- } else if (topType === Type2.UNDIRECTED_EDGE) {
- topChk.type = Type2.NODE_NEIGHBOR;
- topChk.node = topChk.nodes[1];
- topChk.neighbor = topChk.nodes[0];
- topChk.nodes = null;
- }
- }
- }];
- exprs.forEach(function(e) {
- return e.regexObj = new RegExp("^" + e.regex);
- });
- var consumeExpr = function consumeExpr2(remaining) {
- var expr;
- var match5;
- var name2;
- for (var j = 0; j < exprs.length; j++) {
- var e = exprs[j];
- var n = e.name;
- var m = remaining.match(e.regexObj);
- if (m != null) {
- match5 = m;
- expr = e;
- name2 = n;
- var consumed = m[0];
- remaining = remaining.substring(consumed.length);
- break;
- }
- }
- return {
- expr,
- match: match5,
- name: name2,
- remaining
- };
- };
- var consumeWhitespace = function consumeWhitespace2(remaining) {
- var match5 = remaining.match(/^\s+/);
- if (match5) {
- var consumed = match5[0];
- remaining = remaining.substring(consumed.length);
- }
- return remaining;
- };
- var parse2 = function parse3(selector2) {
- var self2 = this;
- var remaining = self2.inputText = selector2;
- var currentQuery = self2[0] = newQuery();
- self2.length = 1;
- remaining = consumeWhitespace(remaining);
- for (; ; ) {
- var exprInfo = consumeExpr(remaining);
- if (exprInfo.expr == null) {
- warn("The selector `" + selector2 + "`is invalid");
- return false;
- } else {
- var args = exprInfo.match.slice(1);
- var ret = exprInfo.expr.populate(self2, currentQuery, args);
- if (ret === false) {
- return false;
- } else if (ret != null) {
- currentQuery = ret;
- }
- }
- remaining = exprInfo.remaining;
- if (remaining.match(/^\s*$/)) {
- break;
- }
- }
- var lastQ = self2[self2.length - 1];
- if (self2.currentSubject != null) {
- lastQ.subject = self2.currentSubject;
- }
- lastQ.edgeCount = self2.edgeCount;
- lastQ.compoundCount = self2.compoundCount;
- for (var i3 = 0; i3 < self2.length; i3++) {
- var q = self2[i3];
- if (q.compoundCount > 0 && q.edgeCount > 0) {
- warn("The selector `" + selector2 + "` is invalid because it uses both a compound selector and an edge selector");
- return false;
- }
- if (q.edgeCount > 1) {
- warn("The selector `" + selector2 + "` is invalid because it uses multiple edge selectors");
- return false;
- } else if (q.edgeCount === 1) {
- warn("The selector `" + selector2 + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.");
- }
- }
- return true;
- };
- var toString2 = function toString3() {
- if (this.toStringCache != null) {
- return this.toStringCache;
- }
- var clean = function clean2(obj) {
- if (obj == null) {
- return "";
- } else {
- return obj;
- }
- };
- var cleanVal = function cleanVal2(val) {
- if (string(val)) {
- return '"' + val + '"';
- } else {
- return clean(val);
- }
- };
- var space = function space2(val) {
- return " " + val + " ";
- };
- var checkToString = function checkToString2(check, subject) {
- var type2 = check.type, value = check.value;
- switch (type2) {
- case Type2.GROUP: {
- var group = clean(value);
- return group.substring(0, group.length - 1);
- }
- case Type2.DATA_COMPARE: {
- var field = check.field, operator = check.operator;
- return "[" + field + space(clean(operator)) + cleanVal(value) + "]";
- }
- case Type2.DATA_BOOL: {
- var _operator = check.operator, _field = check.field;
- return "[" + clean(_operator) + _field + "]";
- }
- case Type2.DATA_EXIST: {
- var _field2 = check.field;
- return "[" + _field2 + "]";
- }
- case Type2.META_COMPARE: {
- var _operator2 = check.operator, _field3 = check.field;
- return "[[" + _field3 + space(clean(_operator2)) + cleanVal(value) + "]]";
- }
- case Type2.STATE: {
- return value;
- }
- case Type2.ID: {
- return "#" + value;
- }
- case Type2.CLASS: {
- return "." + value;
- }
- case Type2.PARENT:
- case Type2.CHILD: {
- return queryToString(check.parent, subject) + space(">") + queryToString(check.child, subject);
- }
- case Type2.ANCESTOR:
- case Type2.DESCENDANT: {
- return queryToString(check.ancestor, subject) + " " + queryToString(check.descendant, subject);
- }
- case Type2.COMPOUND_SPLIT: {
- var lhs = queryToString(check.left, subject);
- var sub = queryToString(check.subject, subject);
- var rhs = queryToString(check.right, subject);
- return lhs + (lhs.length > 0 ? " " : "") + sub + rhs;
- }
- case Type2.TRUE: {
- return "";
- }
- }
- };
- var queryToString = function queryToString2(query2, subject) {
- return query2.checks.reduce(function(str3, chk, i4) {
- return str3 + (subject === query2 && i4 === 0 ? "$" : "") + checkToString(chk, subject);
- }, "");
- };
- var str2 = "";
- for (var i3 = 0; i3 < this.length; i3++) {
- var query = this[i3];
- str2 += queryToString(query, query.subject);
- if (this.length > 1 && i3 < this.length - 1) {
- str2 += ", ";
- }
- }
- this.toStringCache = str2;
- return str2;
- };
- var parse$12 = {
- parse: parse2,
- toString: toString2
- };
- var valCmp = function valCmp2(fieldVal, operator, value) {
- var matches2;
- var isFieldStr = string(fieldVal);
- var isFieldNum = number$12(fieldVal);
- var isValStr = string(value);
- var fieldStr, valStr;
- var caseInsensitive = false;
- var notExpr = false;
- var isIneqCmp = false;
- if (operator.indexOf("!") >= 0) {
- operator = operator.replace("!", "");
- notExpr = true;
- }
- if (operator.indexOf("@") >= 0) {
- operator = operator.replace("@", "");
- caseInsensitive = true;
- }
- if (isFieldStr || isValStr || caseInsensitive) {
- fieldStr = !isFieldStr && !isFieldNum ? "" : "" + fieldVal;
- valStr = "" + value;
- }
- if (caseInsensitive) {
- fieldVal = fieldStr = fieldStr.toLowerCase();
- value = valStr = valStr.toLowerCase();
- }
- switch (operator) {
- case "*=":
- matches2 = fieldStr.indexOf(valStr) >= 0;
- break;
- case "$=":
- matches2 = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;
- break;
- case "^=":
- matches2 = fieldStr.indexOf(valStr) === 0;
- break;
- case "=":
- matches2 = fieldVal === value;
- break;
- case ">":
- isIneqCmp = true;
- matches2 = fieldVal > value;
- break;
- case ">=":
- isIneqCmp = true;
- matches2 = fieldVal >= value;
- break;
- case "<":
- isIneqCmp = true;
- matches2 = fieldVal < value;
- break;
- case "<=":
- isIneqCmp = true;
- matches2 = fieldVal <= value;
- break;
- default:
- matches2 = false;
- break;
- }
- if (notExpr && (fieldVal != null || !isIneqCmp)) {
- matches2 = !matches2;
- }
- return matches2;
- };
- var boolCmp = function boolCmp2(fieldVal, operator) {
- switch (operator) {
- case "?":
- return fieldVal ? true : false;
- case "!":
- return fieldVal ? false : true;
- case "^":
- return fieldVal === void 0;
- }
- };
- var existCmp = function existCmp2(fieldVal) {
- return fieldVal !== void 0;
- };
- var data$1 = function data2(ele, field) {
- return ele.data(field);
- };
- var meta = function meta2(ele, field) {
- return ele[field]();
- };
- var match = [];
- var matches$1 = function matches2(query, ele) {
- return query.checks.every(function(chk) {
- return match[chk.type](chk, ele);
- });
- };
- match[Type2.GROUP] = function(check, ele) {
- var group = check.value;
- return group === "*" || group === ele.group();
- };
- match[Type2.STATE] = function(check, ele) {
- var stateSelector = check.value;
- return stateSelectorMatches(stateSelector, ele);
- };
- match[Type2.ID] = function(check, ele) {
- var id2 = check.value;
- return ele.id() === id2;
- };
- match[Type2.CLASS] = function(check, ele) {
- var cls = check.value;
- return ele.hasClass(cls);
- };
- match[Type2.META_COMPARE] = function(check, ele) {
- var field = check.field, operator = check.operator, value = check.value;
- return valCmp(meta(ele, field), operator, value);
- };
- match[Type2.DATA_COMPARE] = function(check, ele) {
- var field = check.field, operator = check.operator, value = check.value;
- return valCmp(data$1(ele, field), operator, value);
- };
- match[Type2.DATA_BOOL] = function(check, ele) {
- var field = check.field, operator = check.operator;
- return boolCmp(data$1(ele, field), operator);
- };
- match[Type2.DATA_EXIST] = function(check, ele) {
- var field = check.field;
- check.operator;
- return existCmp(data$1(ele, field));
- };
- match[Type2.UNDIRECTED_EDGE] = function(check, ele) {
- var qA = check.nodes[0];
- var qB = check.nodes[1];
- var src = ele.source();
- var tgt = ele.target();
- return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);
- };
- match[Type2.NODE_NEIGHBOR] = function(check, ele) {
- return matches$1(check.node, ele) && ele.neighborhood().some(function(n) {
- return n.isNode() && matches$1(check.neighbor, n);
- });
- };
- match[Type2.DIRECTED_EDGE] = function(check, ele) {
- return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());
- };
- match[Type2.NODE_SOURCE] = function(check, ele) {
- return matches$1(check.source, ele) && ele.outgoers().some(function(n) {
- return n.isNode() && matches$1(check.target, n);
- });
- };
- match[Type2.NODE_TARGET] = function(check, ele) {
- return matches$1(check.target, ele) && ele.incomers().some(function(n) {
- return n.isNode() && matches$1(check.source, n);
- });
- };
- match[Type2.CHILD] = function(check, ele) {
- return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());
- };
- match[Type2.PARENT] = function(check, ele) {
- return matches$1(check.parent, ele) && ele.children().some(function(c2) {
- return matches$1(check.child, c2);
- });
- };
- match[Type2.DESCENDANT] = function(check, ele) {
- return matches$1(check.descendant, ele) && ele.ancestors().some(function(a) {
- return matches$1(check.ancestor, a);
- });
- };
- match[Type2.ANCESTOR] = function(check, ele) {
- return matches$1(check.ancestor, ele) && ele.descendants().some(function(d) {
- return matches$1(check.descendant, d);
- });
- };
- match[Type2.COMPOUND_SPLIT] = function(check, ele) {
- return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);
- };
- match[Type2.TRUE] = function() {
- return true;
- };
- match[Type2.COLLECTION] = function(check, ele) {
- var collection2 = check.value;
- return collection2.has(ele);
- };
- match[Type2.FILTER] = function(check, ele) {
- var filter3 = check.value;
- return filter3(ele);
- };
- var filter2 = function filter3(collection2) {
- var self2 = this;
- if (self2.length === 1 && self2[0].checks.length === 1 && self2[0].checks[0].type === Type2.ID) {
- return collection2.getElementById(self2[0].checks[0].value).collection();
- }
- var selectorFunction = function selectorFunction2(element2) {
- for (var j = 0; j < self2.length; j++) {
- var query = self2[j];
- if (matches$1(query, element2)) {
- return true;
- }
- }
- return false;
- };
- if (self2.text() == null) {
- selectorFunction = function selectorFunction2() {
- return true;
- };
- }
- return collection2.filter(selectorFunction);
- };
- var matches = function matches2(ele) {
- var self2 = this;
- for (var j = 0; j < self2.length; j++) {
- var query = self2[j];
- if (matches$1(query, ele)) {
- return true;
- }
- }
- return false;
- };
- var matching = {
- matches,
- filter: filter2
- };
- var Selector = function Selector2(selector2) {
- this.inputText = selector2;
- this.currentSubject = null;
- this.compoundCount = 0;
- this.edgeCount = 0;
- this.length = 0;
- if (selector2 == null || string(selector2) && selector2.match(/^\s*$/))
- ;
- else if (elementOrCollection(selector2)) {
- this.addQuery({
- checks: [{
- type: Type2.COLLECTION,
- value: selector2.collection()
- }]
- });
- } else if (fn$6(selector2)) {
- this.addQuery({
- checks: [{
- type: Type2.FILTER,
- value: selector2
- }]
- });
- } else if (string(selector2)) {
- if (!this.parse(selector2)) {
- this.invalid = true;
- }
- } else {
- error("A selector must be created from a string; found ");
- }
- };
- var selfn = Selector.prototype;
- [parse$12, matching].forEach(function(p2) {
- return extend2(selfn, p2);
- });
- selfn.text = function() {
- return this.inputText;
- };
- selfn.size = function() {
- return this.length;
- };
- selfn.eq = function(i3) {
- return this[i3];
- };
- selfn.sameText = function(otherSel) {
- return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();
- };
- selfn.addQuery = function(q) {
- this[this.length++] = q;
- };
- selfn.selector = selfn.toString;
- var elesfn$g = {
- allAre: function allAre(selector2) {
- var selObj = new Selector(selector2);
- return this.every(function(ele) {
- return selObj.matches(ele);
- });
- },
- is: function is(selector2) {
- var selObj = new Selector(selector2);
- return this.some(function(ele) {
- return selObj.matches(ele);
- });
- },
- some: function some(fn2, thisArg) {
- for (var i3 = 0; i3 < this.length; i3++) {
- var ret = !thisArg ? fn2(this[i3], i3, this) : fn2.apply(thisArg, [this[i3], i3, this]);
- if (ret) {
- return true;
- }
- }
- return false;
- },
- every: function every(fn2, thisArg) {
- for (var i3 = 0; i3 < this.length; i3++) {
- var ret = !thisArg ? fn2(this[i3], i3, this) : fn2.apply(thisArg, [this[i3], i3, this]);
- if (!ret) {
- return false;
- }
- }
- return true;
- },
- same: function same(collection2) {
- if (this === collection2) {
- return true;
- }
- collection2 = this.cy().collection(collection2);
- var thisLength = this.length;
- var collectionLength = collection2.length;
- if (thisLength !== collectionLength) {
- return false;
- }
- if (thisLength === 1) {
- return this[0] === collection2[0];
- }
- return this.every(function(ele) {
- return collection2.hasElementWithId(ele.id());
- });
- },
- anySame: function anySame(collection2) {
- collection2 = this.cy().collection(collection2);
- return this.some(function(ele) {
- return collection2.hasElementWithId(ele.id());
- });
- },
- allAreNeighbors: function allAreNeighbors(collection2) {
- collection2 = this.cy().collection(collection2);
- var nhood = this.neighborhood();
- return collection2.every(function(ele) {
- return nhood.hasElementWithId(ele.id());
- });
- },
- contains: function contains(collection2) {
- collection2 = this.cy().collection(collection2);
- var self2 = this;
- return collection2.every(function(ele) {
- return self2.hasElementWithId(ele.id());
- });
- }
- };
- elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;
- elesfn$g.has = elesfn$g.contains;
- elesfn$g.equal = elesfn$g.equals = elesfn$g.same;
- var cache = function cache2(fn2, name2) {
- return function traversalCache(arg1, arg2, arg3, arg4) {
- var selectorOrEles = arg1;
- var eles = this;
- var key;
- if (selectorOrEles == null) {
- key = "";
- } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {
- key = selectorOrEles.id();
- }
- if (eles.length === 1 && key) {
- var _p = eles[0]._private;
- var tch = _p.traversalCache = _p.traversalCache || {};
- var ch = tch[name2] = tch[name2] || [];
- var hash = hashString(key);
- var cacheHit = ch[hash];
- if (cacheHit) {
- return cacheHit;
- } else {
- return ch[hash] = fn2.call(eles, arg1, arg2, arg3, arg4);
- }
- } else {
- return fn2.call(eles, arg1, arg2, arg3, arg4);
- }
- };
- };
- var elesfn$f = {
- parent: function parent(selector2) {
- var parents2 = [];
- if (this.length === 1) {
- var parent2 = this[0]._private.parent;
- if (parent2) {
- return parent2;
- }
- }
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var _parent = ele._private.parent;
- if (_parent) {
- parents2.push(_parent);
- }
- }
- return this.spawn(parents2, true).filter(selector2);
- },
- parents: function parents2(selector2) {
- var parents3 = [];
- var eles = this.parent();
- while (eles.nonempty()) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- parents3.push(ele);
- }
- eles = eles.parent();
- }
- return this.spawn(parents3, true).filter(selector2);
- },
- commonAncestors: function commonAncestors(selector2) {
- var ancestors;
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var parents2 = ele.parents();
- ancestors = ancestors || parents2;
- ancestors = ancestors.intersect(parents2);
- }
- return ancestors.filter(selector2);
- },
- orphans: function orphans(selector2) {
- return this.stdFilter(function(ele) {
- return ele.isOrphan();
- }).filter(selector2);
- },
- nonorphans: function nonorphans(selector2) {
- return this.stdFilter(function(ele) {
- return ele.isChild();
- }).filter(selector2);
- },
- children: cache(function(selector2) {
- var children2 = [];
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var eleChildren = ele._private.children;
- for (var j = 0; j < eleChildren.length; j++) {
- children2.push(eleChildren[j]);
- }
- }
- return this.spawn(children2, true).filter(selector2);
- }, "children"),
- siblings: function siblings(selector2) {
- return this.parent().children().not(this).filter(selector2);
- },
- isParent: function isParent() {
- var ele = this[0];
- if (ele) {
- return ele.isNode() && ele._private.children.length !== 0;
- }
- },
- isChildless: function isChildless() {
- var ele = this[0];
- if (ele) {
- return ele.isNode() && ele._private.children.length === 0;
- }
- },
- isChild: function isChild() {
- var ele = this[0];
- if (ele) {
- return ele.isNode() && ele._private.parent != null;
- }
- },
- isOrphan: function isOrphan() {
- var ele = this[0];
- if (ele) {
- return ele.isNode() && ele._private.parent == null;
- }
- },
- descendants: function descendants2(selector2) {
- var elements2 = [];
- function add(eles) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- elements2.push(ele);
- if (ele.children().nonempty()) {
- add(ele.children());
- }
- }
- }
- add(this.children());
- return this.spawn(elements2, true).filter(selector2);
- }
- };
- function forEachCompound(eles, fn2, includeSelf, recursiveStep) {
- var q = [];
- var did = new Set$12();
- var cy = eles.cy();
- var hasCompounds = cy.hasCompoundNodes();
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- if (includeSelf) {
- q.push(ele);
- } else if (hasCompounds) {
- recursiveStep(q, did, ele);
- }
- }
- while (q.length > 0) {
- var _ele = q.shift();
- fn2(_ele);
- did.add(_ele.id());
- if (hasCompounds) {
- recursiveStep(q, did, _ele);
- }
- }
- return eles;
- }
- function addChildren(q, did, ele) {
- if (ele.isParent()) {
- var children2 = ele._private.children;
- for (var i3 = 0; i3 < children2.length; i3++) {
- var child = children2[i3];
- if (!did.has(child.id())) {
- q.push(child);
- }
- }
- }
- }
- elesfn$f.forEachDown = function(fn2) {
- var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- return forEachCompound(this, fn2, includeSelf, addChildren);
- };
- function addParent(q, did, ele) {
- if (ele.isChild()) {
- var parent = ele._private.parent;
- if (!did.has(parent.id())) {
- q.push(parent);
- }
- }
- }
- elesfn$f.forEachUp = function(fn2) {
- var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- return forEachCompound(this, fn2, includeSelf, addParent);
- };
- function addParentAndChildren(q, did, ele) {
- addParent(q, did, ele);
- addChildren(q, did, ele);
- }
- elesfn$f.forEachUpAndDown = function(fn2) {
- var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- return forEachCompound(this, fn2, includeSelf, addParentAndChildren);
- };
- elesfn$f.ancestors = elesfn$f.parents;
- var fn$5, elesfn$e;
- fn$5 = elesfn$e = {
- data: define3.data({
- field: "data",
- bindingEvent: "data",
- allowBinding: true,
- allowSetting: true,
- settingEvent: "data",
- settingTriggersEvent: true,
- triggerFnName: "trigger",
- allowGetting: true,
- immutableKeys: {
- "id": true,
- "source": true,
- "target": true,
- "parent": true
- },
- updateStyle: true
- }),
- removeData: define3.removeData({
- field: "data",
- event: "data",
- triggerFnName: "trigger",
- triggerEvent: true,
- immutableKeys: {
- "id": true,
- "source": true,
- "target": true,
- "parent": true
- },
- updateStyle: true
- }),
- scratch: define3.data({
- field: "scratch",
- bindingEvent: "scratch",
- allowBinding: true,
- allowSetting: true,
- settingEvent: "scratch",
- settingTriggersEvent: true,
- triggerFnName: "trigger",
- allowGetting: true,
- updateStyle: true
- }),
- removeScratch: define3.removeData({
- field: "scratch",
- event: "scratch",
- triggerFnName: "trigger",
- triggerEvent: true,
- updateStyle: true
- }),
- rscratch: define3.data({
- field: "rscratch",
- allowBinding: false,
- allowSetting: true,
- settingTriggersEvent: false,
- allowGetting: true
- }),
- removeRscratch: define3.removeData({
- field: "rscratch",
- triggerEvent: false
- }),
- id: function id2() {
- var ele = this[0];
- if (ele) {
- return ele._private.data.id;
- }
- }
- };
- fn$5.attr = fn$5.data;
- fn$5.removeAttr = fn$5.removeData;
- var data = elesfn$e;
- var elesfn$d = {};
- function defineDegreeFunction(callback) {
- return function(includeLoops) {
- var self2 = this;
- if (includeLoops === void 0) {
- includeLoops = true;
- }
- if (self2.length === 0) {
- return;
- }
- if (self2.isNode() && !self2.removed()) {
- var degree = 0;
- var node2 = self2[0];
- var connectedEdges = node2._private.edges;
- for (var i3 = 0; i3 < connectedEdges.length; i3++) {
- var edge = connectedEdges[i3];
- if (!includeLoops && edge.isLoop()) {
- continue;
- }
- degree += callback(node2, edge);
- }
- return degree;
- } else {
- return;
- }
- };
- }
- extend2(elesfn$d, {
- degree: defineDegreeFunction(function(node2, edge) {
- if (edge.source().same(edge.target())) {
- return 2;
- } else {
- return 1;
- }
- }),
- indegree: defineDegreeFunction(function(node2, edge) {
- if (edge.target().same(node2)) {
- return 1;
- } else {
- return 0;
- }
- }),
- outdegree: defineDegreeFunction(function(node2, edge) {
- if (edge.source().same(node2)) {
- return 1;
- } else {
- return 0;
- }
- })
- });
- function defineDegreeBoundsFunction(degreeFn, callback) {
- return function(includeLoops) {
- var ret;
- var nodes2 = this.nodes();
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var ele = nodes2[i3];
- var degree = ele[degreeFn](includeLoops);
- if (degree !== void 0 && (ret === void 0 || callback(degree, ret))) {
- ret = degree;
- }
- }
- return ret;
- };
- }
- extend2(elesfn$d, {
- minDegree: defineDegreeBoundsFunction("degree", function(degree, min3) {
- return degree < min3;
- }),
- maxDegree: defineDegreeBoundsFunction("degree", function(degree, max3) {
- return degree > max3;
- }),
- minIndegree: defineDegreeBoundsFunction("indegree", function(degree, min3) {
- return degree < min3;
- }),
- maxIndegree: defineDegreeBoundsFunction("indegree", function(degree, max3) {
- return degree > max3;
- }),
- minOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, min3) {
- return degree < min3;
- }),
- maxOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, max3) {
- return degree > max3;
- })
- });
- extend2(elesfn$d, {
- totalDegree: function totalDegree(includeLoops) {
- var total = 0;
- var nodes2 = this.nodes();
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- total += nodes2[i3].degree(includeLoops);
- }
- return total;
- }
- });
- var fn$4, elesfn$c;
- var beforePositionSet = function beforePositionSet2(eles, newPos, silent) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- if (!ele.locked()) {
- var oldPos = ele._private.position;
- var delta = {
- x: newPos.x != null ? newPos.x - oldPos.x : 0,
- y: newPos.y != null ? newPos.y - oldPos.y : 0
- };
- if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {
- ele.children().shift(delta, silent);
- }
- ele.dirtyBoundingBoxCache();
- }
- }
- };
- var positionDef = {
- field: "position",
- bindingEvent: "position",
- allowBinding: true,
- allowSetting: true,
- settingEvent: "position",
- settingTriggersEvent: true,
- triggerFnName: "emitAndNotify",
- allowGetting: true,
- validKeys: ["x", "y"],
- beforeGet: function beforeGet(ele) {
- ele.updateCompoundBounds();
- },
- beforeSet: function beforeSet(eles, newPos) {
- beforePositionSet(eles, newPos, false);
- },
- onSet: function onSet(eles) {
- eles.dirtyCompoundBoundsCache();
- },
- canSet: function canSet(ele) {
- return !ele.locked();
- }
- };
- fn$4 = elesfn$c = {
- position: define3.data(positionDef),
- // position but no notification to renderer
- silentPosition: define3.data(extend2({}, positionDef, {
- allowBinding: false,
- allowSetting: true,
- settingTriggersEvent: false,
- allowGetting: false,
- beforeSet: function beforeSet(eles, newPos) {
- beforePositionSet(eles, newPos, true);
- },
- onSet: function onSet(eles) {
- eles.dirtyCompoundBoundsCache();
- }
- })),
- positions: function positions(pos, silent) {
- if (plainObject(pos)) {
- if (silent) {
- this.silentPosition(pos);
- } else {
- this.position(pos);
- }
- } else if (fn$6(pos)) {
- var _fn = pos;
- var cy = this.cy();
- cy.startBatch();
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var _pos = void 0;
- if (_pos = _fn(ele, i3)) {
- if (silent) {
- ele.silentPosition(_pos);
- } else {
- ele.position(_pos);
- }
- }
- }
- cy.endBatch();
- }
- return this;
- },
- silentPositions: function silentPositions(pos) {
- return this.positions(pos, true);
- },
- shift: function shift(dim, val, silent) {
- var delta;
- if (plainObject(dim)) {
- delta = {
- x: number$12(dim.x) ? dim.x : 0,
- y: number$12(dim.y) ? dim.y : 0
- };
- silent = val;
- } else if (string(dim) && number$12(val)) {
- delta = {
- x: 0,
- y: 0
- };
- delta[dim] = val;
- }
- if (delta != null) {
- var cy = this.cy();
- cy.startBatch();
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {
- continue;
- }
- var pos = ele.position();
- var newPos = {
- x: pos.x + delta.x,
- y: pos.y + delta.y
- };
- if (silent) {
- ele.silentPosition(newPos);
- } else {
- ele.position(newPos);
- }
- }
- cy.endBatch();
- }
- return this;
- },
- silentShift: function silentShift(dim, val) {
- if (plainObject(dim)) {
- this.shift(dim, true);
- } else if (string(dim) && number$12(val)) {
- this.shift(dim, val, true);
- }
- return this;
- },
- // get/set the rendered (i.e. on screen) positon of the element
- renderedPosition: function renderedPosition(dim, val) {
- var ele = this[0];
- var cy = this.cy();
- var zoom = cy.zoom();
- var pan = cy.pan();
- var rpos = plainObject(dim) ? dim : void 0;
- var setting = rpos !== void 0 || val !== void 0 && string(dim);
- if (ele && ele.isNode()) {
- if (setting) {
- for (var i3 = 0; i3 < this.length; i3++) {
- var _ele = this[i3];
- if (val !== void 0) {
- _ele.position(dim, (val - pan[dim]) / zoom);
- } else if (rpos !== void 0) {
- _ele.position(renderedToModelPosition(rpos, zoom, pan));
- }
- }
- } else {
- var pos = ele.position();
- rpos = modelToRenderedPosition(pos, zoom, pan);
- if (dim === void 0) {
- return rpos;
- } else {
- return rpos[dim];
- }
- }
- } else if (!setting) {
- return void 0;
- }
- return this;
- },
- // get/set the position relative to the parent
- relativePosition: function relativePosition(dim, val) {
- var ele = this[0];
- var cy = this.cy();
- var ppos = plainObject(dim) ? dim : void 0;
- var setting = ppos !== void 0 || val !== void 0 && string(dim);
- var hasCompoundNodes = cy.hasCompoundNodes();
- if (ele && ele.isNode()) {
- if (setting) {
- for (var i3 = 0; i3 < this.length; i3++) {
- var _ele2 = this[i3];
- var parent = hasCompoundNodes ? _ele2.parent() : null;
- var hasParent = parent && parent.length > 0;
- var relativeToParent = hasParent;
- if (hasParent) {
- parent = parent[0];
- }
- var origin = relativeToParent ? parent.position() : {
- x: 0,
- y: 0
- };
- if (val !== void 0) {
- _ele2.position(dim, val + origin[dim]);
- } else if (ppos !== void 0) {
- _ele2.position({
- x: ppos.x + origin.x,
- y: ppos.y + origin.y
- });
- }
- }
- } else {
- var pos = ele.position();
- var _parent = hasCompoundNodes ? ele.parent() : null;
- var _hasParent = _parent && _parent.length > 0;
- var _relativeToParent = _hasParent;
- if (_hasParent) {
- _parent = _parent[0];
- }
- var _origin = _relativeToParent ? _parent.position() : {
- x: 0,
- y: 0
- };
- ppos = {
- x: pos.x - _origin.x,
- y: pos.y - _origin.y
- };
- if (dim === void 0) {
- return ppos;
- } else {
- return ppos[dim];
- }
- }
- } else if (!setting) {
- return void 0;
- }
- return this;
- }
- };
- fn$4.modelPosition = fn$4.point = fn$4.position;
- fn$4.modelPositions = fn$4.points = fn$4.positions;
- fn$4.renderedPoint = fn$4.renderedPosition;
- fn$4.relativePoint = fn$4.relativePosition;
- var position2 = elesfn$c;
- var fn$3, elesfn$b;
- fn$3 = elesfn$b = {};
- elesfn$b.renderedBoundingBox = function(options2) {
- var bb = this.boundingBox(options2);
- var cy = this.cy();
- var zoom = cy.zoom();
- var pan = cy.pan();
- var x1 = bb.x1 * zoom + pan.x;
- var x2 = bb.x2 * zoom + pan.x;
- var y1 = bb.y1 * zoom + pan.y;
- var y2 = bb.y2 * zoom + pan.y;
- return {
- x1,
- x2,
- y1,
- y2,
- w: x2 - x1,
- h: y2 - y1
- };
- };
- elesfn$b.dirtyCompoundBoundsCache = function() {
- var silent = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
- var cy = this.cy();
- if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
- return this;
- }
- this.forEachUp(function(ele) {
- if (ele.isParent()) {
- var _p = ele._private;
- _p.compoundBoundsClean = false;
- _p.bbCache = null;
- if (!silent) {
- ele.emitAndNotify("bounds");
- }
- }
- });
- return this;
- };
- elesfn$b.updateCompoundBounds = function() {
- var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
- var cy = this.cy();
- if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
- return this;
- }
- if (!force && cy.batching()) {
- return this;
- }
- function update2(parent) {
- if (!parent.isParent()) {
- return;
- }
- var _p2 = parent._private;
- var children2 = parent.children();
- var includeLabels = parent.pstyle("compound-sizing-wrt-labels").value === "include";
- var min3 = {
- width: {
- val: parent.pstyle("min-width").pfValue,
- left: parent.pstyle("min-width-bias-left"),
- right: parent.pstyle("min-width-bias-right")
- },
- height: {
- val: parent.pstyle("min-height").pfValue,
- top: parent.pstyle("min-height-bias-top"),
- bottom: parent.pstyle("min-height-bias-bottom")
- }
- };
- var bb = children2.boundingBox({
- includeLabels,
- includeOverlays: false,
- // updating the compound bounds happens outside of the regular
- // cache cycle (i.e. before fired events)
- useCache: false
- });
- var pos = _p2.position;
- if (bb.w === 0 || bb.h === 0) {
- bb = {
- w: parent.pstyle("width").pfValue,
- h: parent.pstyle("height").pfValue
- };
- bb.x1 = pos.x - bb.w / 2;
- bb.x2 = pos.x + bb.w / 2;
- bb.y1 = pos.y - bb.h / 2;
- bb.y2 = pos.y + bb.h / 2;
- }
- function computeBiasValues(propDiff, propBias, propBiasComplement) {
- var biasDiff = 0;
- var biasComplementDiff = 0;
- var biasTotal = propBias + propBiasComplement;
- if (propDiff > 0 && biasTotal > 0) {
- biasDiff = propBias / biasTotal * propDiff;
- biasComplementDiff = propBiasComplement / biasTotal * propDiff;
- }
- return {
- biasDiff,
- biasComplementDiff
- };
- }
- function computePaddingValues(width2, height2, paddingObject, relativeTo) {
- if (paddingObject.units === "%") {
- switch (relativeTo) {
- case "width":
- return width2 > 0 ? paddingObject.pfValue * width2 : 0;
- case "height":
- return height2 > 0 ? paddingObject.pfValue * height2 : 0;
- case "average":
- return width2 > 0 && height2 > 0 ? paddingObject.pfValue * (width2 + height2) / 2 : 0;
- case "min":
- return width2 > 0 && height2 > 0 ? width2 > height2 ? paddingObject.pfValue * height2 : paddingObject.pfValue * width2 : 0;
- case "max":
- return width2 > 0 && height2 > 0 ? width2 > height2 ? paddingObject.pfValue * width2 : paddingObject.pfValue * height2 : 0;
- default:
- return 0;
- }
- } else if (paddingObject.units === "px") {
- return paddingObject.pfValue;
- } else {
- return 0;
- }
- }
- var leftVal = min3.width.left.value;
- if (min3.width.left.units === "px" && min3.width.val > 0) {
- leftVal = leftVal * 100 / min3.width.val;
- }
- var rightVal = min3.width.right.value;
- if (min3.width.right.units === "px" && min3.width.val > 0) {
- rightVal = rightVal * 100 / min3.width.val;
- }
- var topVal = min3.height.top.value;
- if (min3.height.top.units === "px" && min3.height.val > 0) {
- topVal = topVal * 100 / min3.height.val;
- }
- var bottomVal = min3.height.bottom.value;
- if (min3.height.bottom.units === "px" && min3.height.val > 0) {
- bottomVal = bottomVal * 100 / min3.height.val;
- }
- var widthBiasDiffs = computeBiasValues(min3.width.val - bb.w, leftVal, rightVal);
- var diffLeft = widthBiasDiffs.biasDiff;
- var diffRight = widthBiasDiffs.biasComplementDiff;
- var heightBiasDiffs = computeBiasValues(min3.height.val - bb.h, topVal, bottomVal);
- var diffTop = heightBiasDiffs.biasDiff;
- var diffBottom = heightBiasDiffs.biasComplementDiff;
- _p2.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle("padding"), parent.pstyle("padding-relative-to").value);
- _p2.autoWidth = Math.max(bb.w, min3.width.val);
- pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;
- _p2.autoHeight = Math.max(bb.h, min3.height.val);
- pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;
- }
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var _p = ele._private;
- if (!_p.compoundBoundsClean || force) {
- update2(ele);
- if (!cy.batching()) {
- _p.compoundBoundsClean = true;
- }
- }
- }
- return this;
- };
- var noninf = function noninf2(x2) {
- if (x2 === Infinity || x2 === -Infinity) {
- return 0;
- }
- return x2;
- };
- var updateBounds = function updateBounds2(b, x1, y1, x2, y2) {
- if (x2 - x1 === 0 || y2 - y1 === 0) {
- return;
- }
- if (x1 == null || y1 == null || x2 == null || y2 == null) {
- return;
- }
- b.x1 = x1 < b.x1 ? x1 : b.x1;
- b.x2 = x2 > b.x2 ? x2 : b.x2;
- b.y1 = y1 < b.y1 ? y1 : b.y1;
- b.y2 = y2 > b.y2 ? y2 : b.y2;
- b.w = b.x2 - b.x1;
- b.h = b.y2 - b.y1;
- };
- var updateBoundsFromBox = function updateBoundsFromBox2(b, b2) {
- if (b2 == null) {
- return b;
- }
- return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2);
- };
- var prefixedProperty = function prefixedProperty2(obj, field, prefix) {
- return getPrefixedProperty(obj, field, prefix);
- };
- var updateBoundsFromArrow = function updateBoundsFromArrow2(bounds3, ele, prefix) {
- if (ele.cy().headless()) {
- return;
- }
- var _p = ele._private;
- var rstyle = _p.rstyle;
- var halfArW = rstyle.arrowWidth / 2;
- var arrowType = ele.pstyle(prefix + "-arrow-shape").value;
- var x2;
- var y2;
- if (arrowType !== "none") {
- if (prefix === "source") {
- x2 = rstyle.srcX;
- y2 = rstyle.srcY;
- } else if (prefix === "target") {
- x2 = rstyle.tgtX;
- y2 = rstyle.tgtY;
- } else {
- x2 = rstyle.midX;
- y2 = rstyle.midY;
- }
- var bbs = _p.arrowBounds = _p.arrowBounds || {};
- var bb = bbs[prefix] = bbs[prefix] || {};
- bb.x1 = x2 - halfArW;
- bb.y1 = y2 - halfArW;
- bb.x2 = x2 + halfArW;
- bb.y2 = y2 + halfArW;
- bb.w = bb.x2 - bb.x1;
- bb.h = bb.y2 - bb.y1;
- expandBoundingBox(bb, 1);
- updateBounds(bounds3, bb.x1, bb.y1, bb.x2, bb.y2);
- }
- };
- var updateBoundsFromLabel = function updateBoundsFromLabel2(bounds3, ele, prefix) {
- if (ele.cy().headless()) {
- return;
- }
- var prefixDash;
- if (prefix) {
- prefixDash = prefix + "-";
- } else {
- prefixDash = "";
- }
- var _p = ele._private;
- var rstyle = _p.rstyle;
- var label = ele.pstyle(prefixDash + "label").strValue;
- if (label) {
- var halign = ele.pstyle("text-halign");
- var valign = ele.pstyle("text-valign");
- var labelWidth = prefixedProperty(rstyle, "labelWidth", prefix);
- var labelHeight = prefixedProperty(rstyle, "labelHeight", prefix);
- var labelX = prefixedProperty(rstyle, "labelX", prefix);
- var labelY = prefixedProperty(rstyle, "labelY", prefix);
- var marginX = ele.pstyle(prefixDash + "text-margin-x").pfValue;
- var marginY = ele.pstyle(prefixDash + "text-margin-y").pfValue;
- var isEdge = ele.isEdge();
- var rotation = ele.pstyle(prefixDash + "text-rotation");
- var outlineWidth = ele.pstyle("text-outline-width").pfValue;
- var borderWidth = ele.pstyle("text-border-width").pfValue;
- var halfBorderWidth = borderWidth / 2;
- var padding2 = ele.pstyle("text-background-padding").pfValue;
- var marginOfError = 2;
- var lh = labelHeight;
- var lw = labelWidth;
- var lw_2 = lw / 2;
- var lh_2 = lh / 2;
- var lx1, lx2, ly1, ly2;
- if (isEdge) {
- lx1 = labelX - lw_2;
- lx2 = labelX + lw_2;
- ly1 = labelY - lh_2;
- ly2 = labelY + lh_2;
- } else {
- switch (halign.value) {
- case "left":
- lx1 = labelX - lw;
- lx2 = labelX;
- break;
- case "center":
- lx1 = labelX - lw_2;
- lx2 = labelX + lw_2;
- break;
- case "right":
- lx1 = labelX;
- lx2 = labelX + lw;
- break;
- }
- switch (valign.value) {
- case "top":
- ly1 = labelY - lh;
- ly2 = labelY;
- break;
- case "center":
- ly1 = labelY - lh_2;
- ly2 = labelY + lh_2;
- break;
- case "bottom":
- ly1 = labelY;
- ly2 = labelY + lh;
- break;
- }
- }
- lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding2 - marginOfError;
- lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding2 + marginOfError;
- ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding2 - marginOfError;
- ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding2 + marginOfError;
- var bbPrefix = prefix || "main";
- var bbs = _p.labelBounds;
- var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};
- bb.x1 = lx1;
- bb.y1 = ly1;
- bb.x2 = lx2;
- bb.y2 = ly2;
- bb.w = lx2 - lx1;
- bb.h = ly2 - ly1;
- var isAutorotate = isEdge && rotation.strValue === "autorotate";
- var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;
- if (isAutorotate || isPfValue) {
- var theta = isAutorotate ? prefixedProperty(_p.rstyle, "labelAngle", prefix) : rotation.pfValue;
- var cos3 = Math.cos(theta);
- var sin3 = Math.sin(theta);
- var xo = (lx1 + lx2) / 2;
- var yo = (ly1 + ly2) / 2;
- if (!isEdge) {
- switch (halign.value) {
- case "left":
- xo = lx2;
- break;
- case "right":
- xo = lx1;
- break;
- }
- switch (valign.value) {
- case "top":
- yo = ly2;
- break;
- case "bottom":
- yo = ly1;
- break;
- }
- }
- var rotate = function rotate2(x2, y2) {
- x2 = x2 - xo;
- y2 = y2 - yo;
- return {
- x: x2 * cos3 - y2 * sin3 + xo,
- y: x2 * sin3 + y2 * cos3 + yo
- };
- };
- var px1y1 = rotate(lx1, ly1);
- var px1y2 = rotate(lx1, ly2);
- var px2y1 = rotate(lx2, ly1);
- var px2y2 = rotate(lx2, ly2);
- lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
- lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
- ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
- ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
- }
- var bbPrefixRot = bbPrefix + "Rot";
- var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};
- bbRot.x1 = lx1;
- bbRot.y1 = ly1;
- bbRot.x2 = lx2;
- bbRot.y2 = ly2;
- bbRot.w = lx2 - lx1;
- bbRot.h = ly2 - ly1;
- updateBounds(bounds3, lx1, ly1, lx2, ly2);
- updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);
- }
- return bounds3;
- };
- var boundingBoxImpl = function boundingBoxImpl2(ele, options2) {
- var cy = ele._private.cy;
- var styleEnabled = cy.styleEnabled();
- var headless = cy.headless();
- var bounds3 = makeBoundingBox();
- var _p = ele._private;
- var isNode = ele.isNode();
- var isEdge = ele.isEdge();
- var ex1, ex2, ey1, ey2;
- var x2, y2;
- var rstyle = _p.rstyle;
- var manualExpansion = isNode && styleEnabled ? ele.pstyle("bounds-expansion").pfValue : [0];
- var isDisplayed = function isDisplayed2(ele2) {
- return ele2.pstyle("display").value !== "none";
- };
- var displayed = !styleEnabled || isDisplayed(ele) && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target()));
- if (displayed) {
- var overlayOpacity = 0;
- var overlayPadding = 0;
- if (styleEnabled && options2.includeOverlays) {
- overlayOpacity = ele.pstyle("overlay-opacity").value;
- if (overlayOpacity !== 0) {
- overlayPadding = ele.pstyle("overlay-padding").value;
- }
- }
- var underlayOpacity = 0;
- var underlayPadding = 0;
- if (styleEnabled && options2.includeUnderlays) {
- underlayOpacity = ele.pstyle("underlay-opacity").value;
- if (underlayOpacity !== 0) {
- underlayPadding = ele.pstyle("underlay-padding").value;
- }
- }
- var padding2 = Math.max(overlayPadding, underlayPadding);
- var w2 = 0;
- var wHalf = 0;
- if (styleEnabled) {
- w2 = ele.pstyle("width").pfValue;
- wHalf = w2 / 2;
- }
- if (isNode && options2.includeNodes) {
- var pos = ele.position();
- x2 = pos.x;
- y2 = pos.y;
- var _w = ele.outerWidth();
- var halfW = _w / 2;
- var h = ele.outerHeight();
- var halfH = h / 2;
- ex1 = x2 - halfW;
- ex2 = x2 + halfW;
- ey1 = y2 - halfH;
- ey2 = y2 + halfH;
- updateBounds(bounds3, ex1, ey1, ex2, ey2);
- } else if (isEdge && options2.includeEdges) {
- if (styleEnabled && !headless) {
- var curveStyle = ele.pstyle("curve-style").strValue;
- ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);
- ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);
- ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);
- ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);
- ex1 -= wHalf;
- ex2 += wHalf;
- ey1 -= wHalf;
- ey2 += wHalf;
- updateBounds(bounds3, ex1, ey1, ex2, ey2);
- if (curveStyle === "haystack") {
- var hpts = rstyle.haystackPts;
- if (hpts && hpts.length === 2) {
- ex1 = hpts[0].x;
- ey1 = hpts[0].y;
- ex2 = hpts[1].x;
- ey2 = hpts[1].y;
- if (ex1 > ex2) {
- var temp = ex1;
- ex1 = ex2;
- ex2 = temp;
- }
- if (ey1 > ey2) {
- var _temp = ey1;
- ey1 = ey2;
- ey2 = _temp;
- }
- updateBounds(bounds3, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);
- }
- } else if (curveStyle === "bezier" || curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "taxi") {
- var pts2;
- switch (curveStyle) {
- case "bezier":
- case "unbundled-bezier":
- pts2 = rstyle.bezierPts;
- break;
- case "segments":
- case "taxi":
- pts2 = rstyle.linePts;
- break;
- }
- if (pts2 != null) {
- for (var j = 0; j < pts2.length; j++) {
- var pt = pts2[j];
- ex1 = pt.x - wHalf;
- ex2 = pt.x + wHalf;
- ey1 = pt.y - wHalf;
- ey2 = pt.y + wHalf;
- updateBounds(bounds3, ex1, ey1, ex2, ey2);
- }
- }
- }
- } else {
- var n1 = ele.source();
- var n1pos = n1.position();
- var n2 = ele.target();
- var n2pos = n2.position();
- ex1 = n1pos.x;
- ex2 = n2pos.x;
- ey1 = n1pos.y;
- ey2 = n2pos.y;
- if (ex1 > ex2) {
- var _temp2 = ex1;
- ex1 = ex2;
- ex2 = _temp2;
- }
- if (ey1 > ey2) {
- var _temp3 = ey1;
- ey1 = ey2;
- ey2 = _temp3;
- }
- ex1 -= wHalf;
- ex2 += wHalf;
- ey1 -= wHalf;
- ey2 += wHalf;
- updateBounds(bounds3, ex1, ey1, ex2, ey2);
- }
- }
- if (styleEnabled && options2.includeEdges && isEdge) {
- updateBoundsFromArrow(bounds3, ele, "mid-source");
- updateBoundsFromArrow(bounds3, ele, "mid-target");
- updateBoundsFromArrow(bounds3, ele, "source");
- updateBoundsFromArrow(bounds3, ele, "target");
- }
- if (styleEnabled) {
- var ghost = ele.pstyle("ghost").value === "yes";
- if (ghost) {
- var gx = ele.pstyle("ghost-offset-x").pfValue;
- var gy = ele.pstyle("ghost-offset-y").pfValue;
- updateBounds(bounds3, bounds3.x1 + gx, bounds3.y1 + gy, bounds3.x2 + gx, bounds3.y2 + gy);
- }
- }
- var bbBody = _p.bodyBounds = _p.bodyBounds || {};
- assignBoundingBox(bbBody, bounds3);
- expandBoundingBoxSides(bbBody, manualExpansion);
- expandBoundingBox(bbBody, 1);
- if (styleEnabled) {
- ex1 = bounds3.x1;
- ex2 = bounds3.x2;
- ey1 = bounds3.y1;
- ey2 = bounds3.y2;
- updateBounds(bounds3, ex1 - padding2, ey1 - padding2, ex2 + padding2, ey2 + padding2);
- }
- var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};
- assignBoundingBox(bbOverlay, bounds3);
- expandBoundingBoxSides(bbOverlay, manualExpansion);
- expandBoundingBox(bbOverlay, 1);
- var bbLabels = _p.labelBounds = _p.labelBounds || {};
- if (bbLabels.all != null) {
- clearBoundingBox(bbLabels.all);
- } else {
- bbLabels.all = makeBoundingBox();
- }
- if (styleEnabled && options2.includeLabels) {
- if (options2.includeMainLabels) {
- updateBoundsFromLabel(bounds3, ele, null);
- }
- if (isEdge) {
- if (options2.includeSourceLabels) {
- updateBoundsFromLabel(bounds3, ele, "source");
- }
- if (options2.includeTargetLabels) {
- updateBoundsFromLabel(bounds3, ele, "target");
- }
- }
- }
- }
- bounds3.x1 = noninf(bounds3.x1);
- bounds3.y1 = noninf(bounds3.y1);
- bounds3.x2 = noninf(bounds3.x2);
- bounds3.y2 = noninf(bounds3.y2);
- bounds3.w = noninf(bounds3.x2 - bounds3.x1);
- bounds3.h = noninf(bounds3.y2 - bounds3.y1);
- if (bounds3.w > 0 && bounds3.h > 0 && displayed) {
- expandBoundingBoxSides(bounds3, manualExpansion);
- expandBoundingBox(bounds3, 1);
- }
- return bounds3;
- };
- var getKey = function getKey2(opts) {
- var i3 = 0;
- var tf = function tf2(val) {
- return (val ? 1 : 0) << i3++;
- };
- var key = 0;
- key += tf(opts.incudeNodes);
- key += tf(opts.includeEdges);
- key += tf(opts.includeLabels);
- key += tf(opts.includeMainLabels);
- key += tf(opts.includeSourceLabels);
- key += tf(opts.includeTargetLabels);
- key += tf(opts.includeOverlays);
- return key;
- };
- var getBoundingBoxPosKey = function getBoundingBoxPosKey2(ele) {
- if (ele.isEdge()) {
- var p1 = ele.source().position();
- var p2 = ele.target().position();
- var r = function r2(x2) {
- return Math.round(x2);
- };
- return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]);
- } else {
- return 0;
- }
- };
- var cachedBoundingBoxImpl = function cachedBoundingBoxImpl2(ele, opts) {
- var _p = ele._private;
- var bb;
- var isEdge = ele.isEdge();
- var key = opts == null ? defBbOptsKey : getKey(opts);
- var usingDefOpts = key === defBbOptsKey;
- var currPosKey = getBoundingBoxPosKey(ele);
- var isPosKeySame = _p.bbCachePosKey === currPosKey;
- var useCache = opts.useCache && isPosKeySame;
- var isDirty = function isDirty2(ele2) {
- return ele2._private.bbCache == null || ele2._private.styleDirty;
- };
- var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target());
- if (needRecalc) {
- if (!isPosKeySame) {
- ele.recalculateRenderedStyle(useCache);
- }
- bb = boundingBoxImpl(ele, defBbOpts);
- _p.bbCache = bb;
- _p.bbCachePosKey = currPosKey;
- } else {
- bb = _p.bbCache;
- }
- if (!usingDefOpts) {
- var isNode = ele.isNode();
- bb = makeBoundingBox();
- if (opts.includeNodes && isNode || opts.includeEdges && !isNode) {
- if (opts.includeOverlays) {
- updateBoundsFromBox(bb, _p.overlayBounds);
- } else {
- updateBoundsFromBox(bb, _p.bodyBounds);
- }
- }
- if (opts.includeLabels) {
- if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) {
- updateBoundsFromBox(bb, _p.labelBounds.all);
- } else {
- if (opts.includeMainLabels) {
- updateBoundsFromBox(bb, _p.labelBounds.mainRot);
- }
- if (opts.includeSourceLabels) {
- updateBoundsFromBox(bb, _p.labelBounds.sourceRot);
- }
- if (opts.includeTargetLabels) {
- updateBoundsFromBox(bb, _p.labelBounds.targetRot);
- }
- }
- }
- bb.w = bb.x2 - bb.x1;
- bb.h = bb.y2 - bb.y1;
- }
- return bb;
- };
- var defBbOpts = {
- includeNodes: true,
- includeEdges: true,
- includeLabels: true,
- includeMainLabels: true,
- includeSourceLabels: true,
- includeTargetLabels: true,
- includeOverlays: true,
- includeUnderlays: true,
- useCache: true
- };
- var defBbOptsKey = getKey(defBbOpts);
- var filledBbOpts = defaults$g(defBbOpts);
- elesfn$b.boundingBox = function(options2) {
- var bounds3;
- if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options2 === void 0 || options2.useCache === void 0 || options2.useCache === true)) {
- if (options2 === void 0) {
- options2 = defBbOpts;
- } else {
- options2 = filledBbOpts(options2);
- }
- bounds3 = cachedBoundingBoxImpl(this[0], options2);
- } else {
- bounds3 = makeBoundingBox();
- options2 = options2 || defBbOpts;
- var opts = filledBbOpts(options2);
- var eles = this;
- var cy = eles.cy();
- var styleEnabled = cy.styleEnabled();
- if (styleEnabled) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var _p = ele._private;
- var currPosKey = getBoundingBoxPosKey(ele);
- var isPosKeySame = _p.bbCachePosKey === currPosKey;
- var useCache = opts.useCache && isPosKeySame && !_p.styleDirty;
- ele.recalculateRenderedStyle(useCache);
- }
- }
- this.updateCompoundBounds(!options2.useCache);
- for (var _i = 0; _i < eles.length; _i++) {
- var _ele = eles[_i];
- updateBoundsFromBox(bounds3, cachedBoundingBoxImpl(_ele, opts));
- }
- }
- bounds3.x1 = noninf(bounds3.x1);
- bounds3.y1 = noninf(bounds3.y1);
- bounds3.x2 = noninf(bounds3.x2);
- bounds3.y2 = noninf(bounds3.y2);
- bounds3.w = noninf(bounds3.x2 - bounds3.x1);
- bounds3.h = noninf(bounds3.y2 - bounds3.y1);
- return bounds3;
- };
- elesfn$b.dirtyBoundingBoxCache = function() {
- for (var i3 = 0; i3 < this.length; i3++) {
- var _p = this[i3]._private;
- _p.bbCache = null;
- _p.bbCachePosKey = null;
- _p.bodyBounds = null;
- _p.overlayBounds = null;
- _p.labelBounds.all = null;
- _p.labelBounds.source = null;
- _p.labelBounds.target = null;
- _p.labelBounds.main = null;
- _p.labelBounds.sourceRot = null;
- _p.labelBounds.targetRot = null;
- _p.labelBounds.mainRot = null;
- _p.arrowBounds.source = null;
- _p.arrowBounds.target = null;
- _p.arrowBounds["mid-source"] = null;
- _p.arrowBounds["mid-target"] = null;
- }
- this.emitAndNotify("bounds");
- return this;
- };
- elesfn$b.boundingBoxAt = function(fn2) {
- var nodes2 = this.nodes();
- var cy = this.cy();
- var hasCompoundNodes = cy.hasCompoundNodes();
- var parents2 = cy.collection();
- if (hasCompoundNodes) {
- parents2 = nodes2.filter(function(node2) {
- return node2.isParent();
- });
- nodes2 = nodes2.not(parents2);
- }
- if (plainObject(fn2)) {
- var obj = fn2;
- fn2 = function fn3() {
- return obj;
- };
- }
- var storeOldPos = function storeOldPos2(node2, i3) {
- return node2._private.bbAtOldPos = fn2(node2, i3);
- };
- var getOldPos = function getOldPos2(node2) {
- return node2._private.bbAtOldPos;
- };
- cy.startBatch();
- nodes2.forEach(storeOldPos).silentPositions(fn2);
- if (hasCompoundNodes) {
- parents2.dirtyCompoundBoundsCache();
- parents2.dirtyBoundingBoxCache();
- parents2.updateCompoundBounds(true);
- }
- var bb = copyBoundingBox(this.boundingBox({
- useCache: false
- }));
- nodes2.silentPositions(getOldPos);
- if (hasCompoundNodes) {
- parents2.dirtyCompoundBoundsCache();
- parents2.dirtyBoundingBoxCache();
- parents2.updateCompoundBounds(true);
- }
- cy.endBatch();
- return bb;
- };
- fn$3.boundingbox = fn$3.bb = fn$3.boundingBox;
- fn$3.renderedBoundingbox = fn$3.renderedBoundingBox;
- var bounds2 = elesfn$b;
- var fn$2, elesfn$a;
- fn$2 = elesfn$a = {};
- var defineDimFns = function defineDimFns2(opts) {
- opts.uppercaseName = capitalize(opts.name);
- opts.autoName = "auto" + opts.uppercaseName;
- opts.labelName = "label" + opts.uppercaseName;
- opts.outerName = "outer" + opts.uppercaseName;
- opts.uppercaseOuterName = capitalize(opts.outerName);
- fn$2[opts.name] = function dimImpl() {
- var ele = this[0];
- var _p = ele._private;
- var cy = _p.cy;
- var styleEnabled = cy._private.styleEnabled;
- if (ele) {
- if (styleEnabled) {
- if (ele.isParent()) {
- ele.updateCompoundBounds();
- return _p[opts.autoName] || 0;
- }
- var d = ele.pstyle(opts.name);
- switch (d.strValue) {
- case "label":
- ele.recalculateRenderedStyle();
- return _p.rstyle[opts.labelName] || 0;
- default:
- return d.pfValue;
- }
- } else {
- return 1;
- }
- }
- };
- fn$2["outer" + opts.uppercaseName] = function outerDimImpl() {
- var ele = this[0];
- var _p = ele._private;
- var cy = _p.cy;
- var styleEnabled = cy._private.styleEnabled;
- if (ele) {
- if (styleEnabled) {
- var dim = ele[opts.name]();
- var border = ele.pstyle("border-width").pfValue;
- var padding2 = 2 * ele.padding();
- return dim + border + padding2;
- } else {
- return 1;
- }
- }
- };
- fn$2["rendered" + opts.uppercaseName] = function renderedDimImpl() {
- var ele = this[0];
- if (ele) {
- var d = ele[opts.name]();
- return d * this.cy().zoom();
- }
- };
- fn$2["rendered" + opts.uppercaseOuterName] = function renderedOuterDimImpl() {
- var ele = this[0];
- if (ele) {
- var od = ele[opts.outerName]();
- return od * this.cy().zoom();
- }
- };
- };
- defineDimFns({
- name: "width"
- });
- defineDimFns({
- name: "height"
- });
- elesfn$a.padding = function() {
- var ele = this[0];
- var _p = ele._private;
- if (ele.isParent()) {
- ele.updateCompoundBounds();
- if (_p.autoPadding !== void 0) {
- return _p.autoPadding;
- } else {
- return ele.pstyle("padding").pfValue;
- }
- } else {
- return ele.pstyle("padding").pfValue;
- }
- };
- elesfn$a.paddedHeight = function() {
- var ele = this[0];
- return ele.height() + 2 * ele.padding();
- };
- elesfn$a.paddedWidth = function() {
- var ele = this[0];
- return ele.width() + 2 * ele.padding();
- };
- var widthHeight = elesfn$a;
- var ifEdge = function ifEdge2(ele, getValue3) {
- if (ele.isEdge()) {
- return getValue3(ele);
- }
- };
- var ifEdgeRenderedPosition = function ifEdgeRenderedPosition2(ele, getPoint) {
- if (ele.isEdge()) {
- var cy = ele.cy();
- return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan());
- }
- };
- var ifEdgeRenderedPositions = function ifEdgeRenderedPositions2(ele, getPoints) {
- if (ele.isEdge()) {
- var cy = ele.cy();
- var pan = cy.pan();
- var zoom = cy.zoom();
- return getPoints(ele).map(function(p2) {
- return modelToRenderedPosition(p2, zoom, pan);
- });
- }
- };
- var controlPoints2 = function controlPoints3(ele) {
- return ele.renderer().getControlPoints(ele);
- };
- var segmentPoints = function segmentPoints2(ele) {
- return ele.renderer().getSegmentPoints(ele);
- };
- var sourceEndpoint = function sourceEndpoint2(ele) {
- return ele.renderer().getSourceEndpoint(ele);
- };
- var targetEndpoint = function targetEndpoint2(ele) {
- return ele.renderer().getTargetEndpoint(ele);
- };
- var midpoint = function midpoint2(ele) {
- return ele.renderer().getEdgeMidpoint(ele);
- };
- var pts = {
- controlPoints: {
- get: controlPoints2,
- mult: true
- },
- segmentPoints: {
- get: segmentPoints,
- mult: true
- },
- sourceEndpoint: {
- get: sourceEndpoint
- },
- targetEndpoint: {
- get: targetEndpoint
- },
- midpoint: {
- get: midpoint
- }
- };
- var renderedName = function renderedName2(name2) {
- return "rendered" + name2[0].toUpperCase() + name2.substr(1);
- };
- var edgePoints = Object.keys(pts).reduce(function(obj, name2) {
- var spec = pts[name2];
- var rName = renderedName(name2);
- obj[name2] = function() {
- return ifEdge(this, spec.get);
- };
- if (spec.mult) {
- obj[rName] = function() {
- return ifEdgeRenderedPositions(this, spec.get);
- };
- } else {
- obj[rName] = function() {
- return ifEdgeRenderedPosition(this, spec.get);
- };
- }
- return obj;
- }, {});
- var dimensions = extend2({}, position2, bounds2, widthHeight, edgePoints);
- /*!
- Event object based on jQuery events, MIT license
-
- https://jquery.org/license/
- https://tldrlegal.com/license/mit-license
- https://github.com/jquery/jquery/blob/master/src/event.js
- */
- var Event = function Event2(src, props) {
- this.recycle(src, props);
- };
- function returnFalse() {
- return false;
- }
- function returnTrue() {
- return true;
- }
- Event.prototype = {
- instanceString: function instanceString() {
- return "event";
- },
- recycle: function recycle(src, props) {
- this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;
- if (src != null && src.preventDefault) {
- this.type = src.type;
- this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;
- } else if (src != null && src.type) {
- props = src;
- } else {
- this.type = src;
- }
- if (props != null) {
- this.originalEvent = props.originalEvent;
- this.type = props.type != null ? props.type : this.type;
- this.cy = props.cy;
- this.target = props.target;
- this.position = props.position;
- this.renderedPosition = props.renderedPosition;
- this.namespace = props.namespace;
- this.layout = props.layout;
- }
- if (this.cy != null && this.position != null && this.renderedPosition == null) {
- var pos = this.position;
- var zoom = this.cy.zoom();
- var pan = this.cy.pan();
- this.renderedPosition = {
- x: pos.x * zoom + pan.x,
- y: pos.y * zoom + pan.y
- };
- }
- this.timeStamp = src && src.timeStamp || Date.now();
- },
- preventDefault: function preventDefault() {
- this.isDefaultPrevented = returnTrue;
- var e = this.originalEvent;
- if (!e) {
- return;
- }
- if (e.preventDefault) {
- e.preventDefault();
- }
- },
- stopPropagation: function stopPropagation() {
- this.isPropagationStopped = returnTrue;
- var e = this.originalEvent;
- if (!e) {
- return;
- }
- if (e.stopPropagation) {
- e.stopPropagation();
- }
- },
- stopImmediatePropagation: function stopImmediatePropagation() {
- this.isImmediatePropagationStopped = returnTrue;
- this.stopPropagation();
- },
- isDefaultPrevented: returnFalse,
- isPropagationStopped: returnFalse,
- isImmediatePropagationStopped: returnFalse
- };
- var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/;
- var universalNamespace = ".*";
- var defaults$8 = {
- qualifierCompare: function qualifierCompare(q1, q2) {
- return q1 === q2;
- },
- eventMatches: function eventMatches() {
- return true;
- },
- addEventFields: function addEventFields() {
- },
- callbackContext: function callbackContext(context) {
- return context;
- },
- beforeEmit: function beforeEmit() {
- },
- afterEmit: function afterEmit() {
- },
- bubble: function bubble() {
- return false;
- },
- parent: function parent() {
- return null;
- },
- context: null
- };
- var defaultsKeys = Object.keys(defaults$8);
- var emptyOpts = {};
- function Emitter() {
- var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : emptyOpts;
- var context = arguments.length > 1 ? arguments[1] : void 0;
- for (var i3 = 0; i3 < defaultsKeys.length; i3++) {
- var key = defaultsKeys[i3];
- this[key] = opts[key] || defaults$8[key];
- }
- this.context = context || this.context;
- this.listeners = [];
- this.emitting = 0;
- }
- var p = Emitter.prototype;
- var forEachEvent = function forEachEvent2(self2, handler, events, qualifier, callback, conf2, confOverrides) {
- if (fn$6(qualifier)) {
- callback = qualifier;
- qualifier = null;
- }
- if (confOverrides) {
- if (conf2 == null) {
- conf2 = confOverrides;
- } else {
- conf2 = extend2({}, conf2, confOverrides);
- }
- }
- var eventList = array2(events) ? events : events.split(/\s+/);
- for (var i3 = 0; i3 < eventList.length; i3++) {
- var evt = eventList[i3];
- if (emptyString(evt)) {
- continue;
- }
- var match5 = evt.match(eventRegex);
- if (match5) {
- var type2 = match5[1];
- var namespace2 = match5[2] ? match5[2] : null;
- var ret = handler(self2, evt, type2, namespace2, qualifier, callback, conf2);
- if (ret === false) {
- break;
- }
- }
- }
- };
- var makeEventObj = function makeEventObj2(self2, obj) {
- self2.addEventFields(self2.context, obj);
- return new Event(obj.type, obj);
- };
- var forEachEventObj = function forEachEventObj2(self2, handler, events) {
- if (event(events)) {
- handler(self2, events);
- return;
- } else if (plainObject(events)) {
- handler(self2, makeEventObj(self2, events));
- return;
- }
- var eventList = array2(events) ? events : events.split(/\s+/);
- for (var i3 = 0; i3 < eventList.length; i3++) {
- var evt = eventList[i3];
- if (emptyString(evt)) {
- continue;
- }
- var match5 = evt.match(eventRegex);
- if (match5) {
- var type2 = match5[1];
- var namespace2 = match5[2] ? match5[2] : null;
- var eventObj = makeEventObj(self2, {
- type: type2,
- namespace: namespace2,
- target: self2.context
- });
- handler(self2, eventObj);
- }
- }
- };
- p.on = p.addListener = function(events, qualifier, callback, conf2, confOverrides) {
- forEachEvent(this, function(self2, event2, type2, namespace2, qualifier2, callback2, conf3) {
- if (fn$6(callback2)) {
- self2.listeners.push({
- event: event2,
- // full event string
- callback: callback2,
- // callback to run
- type: type2,
- // the event type (e.g. 'click')
- namespace: namespace2,
- // the event namespace (e.g. ".foo")
- qualifier: qualifier2,
- // a restriction on whether to match this emitter
- conf: conf3
- // additional configuration
- });
- }
- }, events, qualifier, callback, conf2, confOverrides);
- return this;
- };
- p.one = function(events, qualifier, callback, conf2) {
- return this.on(events, qualifier, callback, conf2, {
- one: true
- });
- };
- p.removeListener = p.off = function(events, qualifier, callback, conf2) {
- var _this = this;
- if (this.emitting !== 0) {
- this.listeners = copyArray$1(this.listeners);
- }
- var listeners = this.listeners;
- var _loop = function _loop2(i4) {
- var listener = listeners[i4];
- forEachEvent(_this, function(self2, event2, type2, namespace2, qualifier2, callback2) {
- if ((listener.type === type2 || events === "*") && (!namespace2 && listener.namespace !== ".*" || listener.namespace === namespace2) && (!qualifier2 || self2.qualifierCompare(listener.qualifier, qualifier2)) && (!callback2 || listener.callback === callback2)) {
- listeners.splice(i4, 1);
- return false;
- }
- }, events, qualifier, callback, conf2);
- };
- for (var i3 = listeners.length - 1; i3 >= 0; i3--) {
- _loop(i3);
- }
- return this;
- };
- p.removeAllListeners = function() {
- return this.removeListener("*");
- };
- p.emit = p.trigger = function(events, extraParams, manualCallback) {
- var listeners = this.listeners;
- var numListenersBeforeEmit = listeners.length;
- this.emitting++;
- if (!array2(extraParams)) {
- extraParams = [extraParams];
- }
- forEachEventObj(this, function(self2, eventObj) {
- if (manualCallback != null) {
- listeners = [{
- event: eventObj.event,
- type: eventObj.type,
- namespace: eventObj.namespace,
- callback: manualCallback
- }];
- numListenersBeforeEmit = listeners.length;
- }
- var _loop2 = function _loop22(i4) {
- var listener = listeners[i4];
- if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self2.eventMatches(self2.context, listener, eventObj)) {
- var args = [eventObj];
- if (extraParams != null) {
- push(args, extraParams);
- }
- self2.beforeEmit(self2.context, listener, eventObj);
- if (listener.conf && listener.conf.one) {
- self2.listeners = self2.listeners.filter(function(l) {
- return l !== listener;
- });
- }
- var context = self2.callbackContext(self2.context, listener, eventObj);
- var ret = listener.callback.apply(context, args);
- self2.afterEmit(self2.context, listener, eventObj);
- if (ret === false) {
- eventObj.stopPropagation();
- eventObj.preventDefault();
- }
- }
- };
- for (var i3 = 0; i3 < numListenersBeforeEmit; i3++) {
- _loop2(i3);
- }
- if (self2.bubble(self2.context) && !eventObj.isPropagationStopped()) {
- self2.parent(self2.context).emit(eventObj, extraParams);
- }
- }, events);
- this.emitting--;
- return this;
- };
- var emitterOptions$1 = {
- qualifierCompare: function qualifierCompare(selector1, selector2) {
- if (selector1 == null || selector2 == null) {
- return selector1 == null && selector2 == null;
- } else {
- return selector1.sameText(selector2);
- }
- },
- eventMatches: function eventMatches(ele, listener, eventObj) {
- var selector2 = listener.qualifier;
- if (selector2 != null) {
- return ele !== eventObj.target && element(eventObj.target) && selector2.matches(eventObj.target);
- }
- return true;
- },
- addEventFields: function addEventFields(ele, evt) {
- evt.cy = ele.cy();
- evt.target = ele;
- },
- callbackContext: function callbackContext(ele, listener, eventObj) {
- return listener.qualifier != null ? eventObj.target : ele;
- },
- beforeEmit: function beforeEmit(context, listener) {
- if (listener.conf && listener.conf.once) {
- listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);
- }
- },
- bubble: function bubble() {
- return true;
- },
- parent: function parent(ele) {
- return ele.isChild() ? ele.parent() : ele.cy();
- }
- };
- var argSelector$1 = function argSelector2(arg) {
- if (string(arg)) {
- return new Selector(arg);
- } else {
- return arg;
- }
- };
- var elesfn$9 = {
- createEmitter: function createEmitter() {
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var _p = ele._private;
- if (!_p.emitter) {
- _p.emitter = new Emitter(emitterOptions$1, ele);
- }
- }
- return this;
- },
- emitter: function emitter() {
- return this._private.emitter;
- },
- on: function on(events, selector2, callback) {
- var argSel = argSelector$1(selector2);
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- ele.emitter().on(events, argSel, callback);
- }
- return this;
- },
- removeListener: function removeListener(events, selector2, callback) {
- var argSel = argSelector$1(selector2);
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- ele.emitter().removeListener(events, argSel, callback);
- }
- return this;
- },
- removeAllListeners: function removeAllListeners() {
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- ele.emitter().removeAllListeners();
- }
- return this;
- },
- one: function one2(events, selector2, callback) {
- var argSel = argSelector$1(selector2);
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- ele.emitter().one(events, argSel, callback);
- }
- return this;
- },
- once: function once(events, selector2, callback) {
- var argSel = argSelector$1(selector2);
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- ele.emitter().on(events, argSel, callback, {
- once: true,
- onceCollection: this
- });
- }
- },
- emit: function emit(events, extraParams) {
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- ele.emitter().emit(events, extraParams);
- }
- return this;
- },
- emitAndNotify: function emitAndNotify(event2, extraParams) {
- if (this.length === 0) {
- return;
- }
- this.cy().notify(event2, this);
- this.emit(event2, extraParams);
- return this;
- }
- };
- define3.eventAliasesOn(elesfn$9);
- var elesfn$8 = {
- nodes: function nodes2(selector2) {
- return this.filter(function(ele) {
- return ele.isNode();
- }).filter(selector2);
- },
- edges: function edges2(selector2) {
- return this.filter(function(ele) {
- return ele.isEdge();
- }).filter(selector2);
- },
- // internal helper to get nodes and edges as separate collections with single iteration over elements
- byGroup: function byGroup() {
- var nodes2 = this.spawn();
- var edges2 = this.spawn();
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- if (ele.isNode()) {
- nodes2.push(ele);
- } else {
- edges2.push(ele);
- }
- }
- return {
- nodes: nodes2,
- edges: edges2
- };
- },
- filter: function filter3(_filter, thisArg) {
- if (_filter === void 0) {
- return this;
- } else if (string(_filter) || elementOrCollection(_filter)) {
- return new Selector(_filter).filter(this);
- } else if (fn$6(_filter)) {
- var filterEles = this.spawn();
- var eles = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var include = thisArg ? _filter.apply(thisArg, [ele, i3, eles]) : _filter(ele, i3, eles);
- if (include) {
- filterEles.push(ele);
- }
- }
- return filterEles;
- }
- return this.spawn();
- },
- not: function not(toRemove) {
- if (!toRemove) {
- return this;
- } else {
- if (string(toRemove)) {
- toRemove = this.filter(toRemove);
- }
- var elements2 = this.spawn();
- for (var i3 = 0; i3 < this.length; i3++) {
- var element2 = this[i3];
- var remove2 = toRemove.has(element2);
- if (!remove2) {
- elements2.push(element2);
- }
- }
- return elements2;
- }
- },
- absoluteComplement: function absoluteComplement() {
- var cy = this.cy();
- return cy.mutableElements().not(this);
- },
- intersect: function intersect2(other) {
- if (string(other)) {
- var selector2 = other;
- return this.filter(selector2);
- }
- var elements2 = this.spawn();
- var col1 = this;
- var col2 = other;
- var col1Smaller = this.length < other.length;
- var colS = col1Smaller ? col1 : col2;
- var colL = col1Smaller ? col2 : col1;
- for (var i3 = 0; i3 < colS.length; i3++) {
- var ele = colS[i3];
- if (colL.has(ele)) {
- elements2.push(ele);
- }
- }
- return elements2;
- },
- xor: function xor(other) {
- var cy = this._private.cy;
- if (string(other)) {
- other = cy.$(other);
- }
- var elements2 = this.spawn();
- var col1 = this;
- var col2 = other;
- var add = function add2(col, other2) {
- for (var i3 = 0; i3 < col.length; i3++) {
- var ele = col[i3];
- var id2 = ele._private.data.id;
- var inOther = other2.hasElementWithId(id2);
- if (!inOther) {
- elements2.push(ele);
- }
- }
- };
- add(col1, col2);
- add(col2, col1);
- return elements2;
- },
- diff: function diff(other) {
- var cy = this._private.cy;
- if (string(other)) {
- other = cy.$(other);
- }
- var left2 = this.spawn();
- var right2 = this.spawn();
- var both = this.spawn();
- var col1 = this;
- var col2 = other;
- var add = function add2(col, other2, retEles) {
- for (var i3 = 0; i3 < col.length; i3++) {
- var ele = col[i3];
- var id2 = ele._private.data.id;
- var inOther = other2.hasElementWithId(id2);
- if (inOther) {
- both.merge(ele);
- } else {
- retEles.push(ele);
- }
- }
- };
- add(col1, col2, left2);
- add(col2, col1, right2);
- return {
- left: left2,
- right: right2,
- both
- };
- },
- add: function add(toAdd) {
- var cy = this._private.cy;
- if (!toAdd) {
- return this;
- }
- if (string(toAdd)) {
- var selector2 = toAdd;
- toAdd = cy.mutableElements().filter(selector2);
- }
- var elements2 = this.spawnSelf();
- for (var i3 = 0; i3 < toAdd.length; i3++) {
- var ele = toAdd[i3];
- var add2 = !this.has(ele);
- if (add2) {
- elements2.push(ele);
- }
- }
- return elements2;
- },
- // in place merge on calling collection
- merge: function merge2(toAdd) {
- var _p = this._private;
- var cy = _p.cy;
- if (!toAdd) {
- return this;
- }
- if (toAdd && string(toAdd)) {
- var selector2 = toAdd;
- toAdd = cy.mutableElements().filter(selector2);
- }
- var map2 = _p.map;
- for (var i3 = 0; i3 < toAdd.length; i3++) {
- var toAddEle = toAdd[i3];
- var id2 = toAddEle._private.data.id;
- var add = !map2.has(id2);
- if (add) {
- var index = this.length++;
- this[index] = toAddEle;
- map2.set(id2, {
- ele: toAddEle,
- index
- });
- }
- }
- return this;
- },
- unmergeAt: function unmergeAt(i3) {
- var ele = this[i3];
- var id2 = ele.id();
- var _p = this._private;
- var map2 = _p.map;
- this[i3] = void 0;
- map2["delete"](id2);
- var unmergedLastEle = i3 === this.length - 1;
- if (this.length > 1 && !unmergedLastEle) {
- var lastEleI = this.length - 1;
- var lastEle = this[lastEleI];
- var lastEleId = lastEle._private.data.id;
- this[lastEleI] = void 0;
- this[i3] = lastEle;
- map2.set(lastEleId, {
- ele: lastEle,
- index: i3
- });
- }
- this.length--;
- return this;
- },
- // remove single ele in place in calling collection
- unmergeOne: function unmergeOne(ele) {
- ele = ele[0];
- var _p = this._private;
- var id2 = ele._private.data.id;
- var map2 = _p.map;
- var entry = map2.get(id2);
- if (!entry) {
- return this;
- }
- var i3 = entry.index;
- this.unmergeAt(i3);
- return this;
- },
- // remove eles in place on calling collection
- unmerge: function unmerge(toRemove) {
- var cy = this._private.cy;
- if (!toRemove) {
- return this;
- }
- if (toRemove && string(toRemove)) {
- var selector2 = toRemove;
- toRemove = cy.mutableElements().filter(selector2);
- }
- for (var i3 = 0; i3 < toRemove.length; i3++) {
- this.unmergeOne(toRemove[i3]);
- }
- return this;
- },
- unmergeBy: function unmergeBy(toRmFn) {
- for (var i3 = this.length - 1; i3 >= 0; i3--) {
- var ele = this[i3];
- if (toRmFn(ele)) {
- this.unmergeAt(i3);
- }
- }
- return this;
- },
- map: function map2(mapFn, thisArg) {
- var arr = [];
- var eles = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var ret = thisArg ? mapFn.apply(thisArg, [ele, i3, eles]) : mapFn(ele, i3, eles);
- arr.push(ret);
- }
- return arr;
- },
- reduce: function reduce2(fn2, initialValue) {
- var val = initialValue;
- var eles = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- val = fn2(val, eles[i3], i3, eles);
- }
- return val;
- },
- max: function max3(valFn, thisArg) {
- var max4 = -Infinity;
- var maxEle;
- var eles = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var val = thisArg ? valFn.apply(thisArg, [ele, i3, eles]) : valFn(ele, i3, eles);
- if (val > max4) {
- max4 = val;
- maxEle = ele;
- }
- }
- return {
- value: max4,
- ele: maxEle
- };
- },
- min: function min3(valFn, thisArg) {
- var min4 = Infinity;
- var minEle;
- var eles = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var val = thisArg ? valFn.apply(thisArg, [ele, i3, eles]) : valFn(ele, i3, eles);
- if (val < min4) {
- min4 = val;
- minEle = ele;
- }
- }
- return {
- value: min4,
- ele: minEle
- };
- }
- };
- var fn$1 = elesfn$8;
- fn$1["u"] = fn$1["|"] = fn$1["+"] = fn$1.union = fn$1.or = fn$1.add;
- fn$1["\\"] = fn$1["!"] = fn$1["-"] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;
- fn$1["n"] = fn$1["&"] = fn$1["."] = fn$1.and = fn$1.intersection = fn$1.intersect;
- fn$1["^"] = fn$1["(+)"] = fn$1["(-)"] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;
- fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;
- fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;
- var elesfn$7 = {
- isNode: function isNode() {
- return this.group() === "nodes";
- },
- isEdge: function isEdge() {
- return this.group() === "edges";
- },
- isLoop: function isLoop() {
- return this.isEdge() && this.source()[0] === this.target()[0];
- },
- isSimple: function isSimple() {
- return this.isEdge() && this.source()[0] !== this.target()[0];
- },
- group: function group() {
- var ele = this[0];
- if (ele) {
- return ele._private.group;
- }
- }
- };
- var zIndexSort = function zIndexSort2(a, b) {
- var cy = a.cy();
- var hasCompoundNodes = cy.hasCompoundNodes();
- function getDepth(ele) {
- var style = ele.pstyle("z-compound-depth");
- if (style.value === "auto") {
- return hasCompoundNodes ? ele.zDepth() : 0;
- } else if (style.value === "bottom") {
- return -1;
- } else if (style.value === "top") {
- return MAX_INT$1;
- }
- return 0;
- }
- var depthDiff = getDepth(a) - getDepth(b);
- if (depthDiff !== 0) {
- return depthDiff;
- }
- function getEleDepth(ele) {
- var style = ele.pstyle("z-index-compare");
- if (style.value === "auto") {
- return ele.isNode() ? 1 : 0;
- }
- return 0;
- }
- var eleDiff = getEleDepth(a) - getEleDepth(b);
- if (eleDiff !== 0) {
- return eleDiff;
- }
- var zDiff = a.pstyle("z-index").value - b.pstyle("z-index").value;
- if (zDiff !== 0) {
- return zDiff;
- }
- return a.poolIndex() - b.poolIndex();
- };
- var elesfn$6 = {
- forEach: function forEach2(fn2, thisArg) {
- if (fn$6(fn2)) {
- var N = this.length;
- for (var i3 = 0; i3 < N; i3++) {
- var ele = this[i3];
- var ret = thisArg ? fn2.apply(thisArg, [ele, i3, this]) : fn2(ele, i3, this);
- if (ret === false) {
- break;
- }
- }
- }
- return this;
- },
- toArray: function toArray2() {
- var array3 = [];
- for (var i3 = 0; i3 < this.length; i3++) {
- array3.push(this[i3]);
- }
- return array3;
- },
- slice: function slice2(start2, end2) {
- var array3 = [];
- var thisSize = this.length;
- if (end2 == null) {
- end2 = thisSize;
- }
- if (start2 == null) {
- start2 = 0;
- }
- if (start2 < 0) {
- start2 = thisSize + start2;
- }
- if (end2 < 0) {
- end2 = thisSize + end2;
- }
- for (var i3 = start2; i3 >= 0 && i3 < end2 && i3 < thisSize; i3++) {
- array3.push(this[i3]);
- }
- return this.spawn(array3);
- },
- size: function size2() {
- return this.length;
- },
- eq: function eq3(i3) {
- return this[i3] || this.spawn();
- },
- first: function first() {
- return this[0] || this.spawn();
- },
- last: function last2() {
- return this[this.length - 1] || this.spawn();
- },
- empty: function empty2() {
- return this.length === 0;
- },
- nonempty: function nonempty() {
- return !this.empty();
- },
- sort: function sort2(sortFn) {
- if (!fn$6(sortFn)) {
- return this;
- }
- var sorted = this.toArray().sort(sortFn);
- return this.spawn(sorted);
- },
- sortByZIndex: function sortByZIndex() {
- return this.sort(zIndexSort);
- },
- zDepth: function zDepth() {
- var ele = this[0];
- if (!ele) {
- return void 0;
- }
- var _p = ele._private;
- var group = _p.group;
- if (group === "nodes") {
- var depth = _p.data.parent ? ele.parents().size() : 0;
- if (!ele.isParent()) {
- return MAX_INT$1 - 1;
}
- return depth;
+ }, "zeroNonZero"),
+ any: /* @__PURE__ */ __name(function any(val1, val2) {
+ return val1 != val2;
+ }, "any"),
+ emptyNonEmpty: /* @__PURE__ */ __name(function emptyNonEmpty(str1, str2) {
+ var empty1 = emptyString(str1);
+ var empty22 = emptyString(str2);
+ return empty1 && !empty22 || !empty1 && empty22;
+ }, "emptyNonEmpty")
+ };
+ var t4 = styfn$2.types;
+ var mainLabel = [{
+ name: "label",
+ type: t4.text,
+ triggersBounds: diff2.any,
+ triggersZOrder: diff2.emptyNonEmpty
+ }, {
+ name: "text-rotation",
+ type: t4.textRotation,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-margin-x",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-margin-y",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }];
+ var sourceLabel = [{
+ name: "source-label",
+ type: t4.text,
+ triggersBounds: diff2.any
+ }, {
+ name: "source-text-rotation",
+ type: t4.textRotation,
+ triggersBounds: diff2.any
+ }, {
+ name: "source-text-margin-x",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }, {
+ name: "source-text-margin-y",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }, {
+ name: "source-text-offset",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }];
+ var targetLabel = [{
+ name: "target-label",
+ type: t4.text,
+ triggersBounds: diff2.any
+ }, {
+ name: "target-text-rotation",
+ type: t4.textRotation,
+ triggersBounds: diff2.any
+ }, {
+ name: "target-text-margin-x",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }, {
+ name: "target-text-margin-y",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }, {
+ name: "target-text-offset",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }];
+ var labelDimensions = [{
+ name: "font-family",
+ type: t4.fontFamily,
+ triggersBounds: diff2.any
+ }, {
+ name: "font-style",
+ type: t4.fontStyle,
+ triggersBounds: diff2.any
+ }, {
+ name: "font-weight",
+ type: t4.fontWeight,
+ triggersBounds: diff2.any
+ }, {
+ name: "font-size",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-transform",
+ type: t4.textTransform,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-wrap",
+ type: t4.textWrap,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-overflow-wrap",
+ type: t4.textOverflowWrap,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-max-width",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-outline-width",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "line-height",
+ type: t4.positiveNumber,
+ triggersBounds: diff2.any
+ }];
+ var commonLabel = [{
+ name: "text-valign",
+ type: t4.valign,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-halign",
+ type: t4.halign,
+ triggersBounds: diff2.any
+ }, {
+ name: "color",
+ type: t4.color
+ }, {
+ name: "text-outline-color",
+ type: t4.color
+ }, {
+ name: "text-outline-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "text-background-color",
+ type: t4.color
+ }, {
+ name: "text-background-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "text-background-padding",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-border-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "text-border-color",
+ type: t4.color
+ }, {
+ name: "text-border-width",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-border-style",
+ type: t4.borderStyle,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-background-shape",
+ type: t4.textBackgroundShape,
+ triggersBounds: diff2.any
+ }, {
+ name: "text-justification",
+ type: t4.justification
+ }];
+ var behavior = [{
+ name: "events",
+ type: t4.bool,
+ triggersZOrder: diff2.any
+ }, {
+ name: "text-events",
+ type: t4.bool,
+ triggersZOrder: diff2.any
+ }];
+ var visibility = [{
+ name: "display",
+ type: t4.display,
+ triggersZOrder: diff2.any,
+ triggersBounds: diff2.any,
+ triggersBoundsOfConnectedEdges: true
+ }, {
+ name: "visibility",
+ type: t4.visibility,
+ triggersZOrder: diff2.any
+ }, {
+ name: "opacity",
+ type: t4.zeroOneNumber,
+ triggersZOrder: diff2.zeroNonZero
+ }, {
+ name: "text-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "min-zoomed-font-size",
+ type: t4.size
+ }, {
+ name: "z-compound-depth",
+ type: t4.zCompoundDepth,
+ triggersZOrder: diff2.any
+ }, {
+ name: "z-index-compare",
+ type: t4.zIndexCompare,
+ triggersZOrder: diff2.any
+ }, {
+ name: "z-index",
+ type: t4.number,
+ triggersZOrder: diff2.any
+ }];
+ var overlay = [{
+ name: "overlay-padding",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "overlay-color",
+ type: t4.color
+ }, {
+ name: "overlay-opacity",
+ type: t4.zeroOneNumber,
+ triggersBounds: diff2.zeroNonZero
+ }, {
+ name: "overlay-shape",
+ type: t4.overlayShape,
+ triggersBounds: diff2.any
+ }, {
+ name: "overlay-corner-radius",
+ type: t4.cornerRadius
+ }];
+ var underlay = [{
+ name: "underlay-padding",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "underlay-color",
+ type: t4.color
+ }, {
+ name: "underlay-opacity",
+ type: t4.zeroOneNumber,
+ triggersBounds: diff2.zeroNonZero
+ }, {
+ name: "underlay-shape",
+ type: t4.overlayShape,
+ triggersBounds: diff2.any
+ }, {
+ name: "underlay-corner-radius",
+ type: t4.cornerRadius
+ }];
+ var transition2 = [{
+ name: "transition-property",
+ type: t4.propList
+ }, {
+ name: "transition-duration",
+ type: t4.time
+ }, {
+ name: "transition-delay",
+ type: t4.time
+ }, {
+ name: "transition-timing-function",
+ type: t4.easing
+ }];
+ var nodeSizeHashOverride = /* @__PURE__ */ __name(function nodeSizeHashOverride2(ele, parsedProp) {
+ if (parsedProp.value === "label") {
+ return -ele.poolIndex();
} else {
- var src = _p.source;
- var tgt = _p.target;
- var srcDepth = src.zDepth();
- var tgtDepth = tgt.zDepth();
- return Math.max(srcDepth, tgtDepth, 0);
+ return parsedProp.pfValue;
}
+ }, "nodeSizeHashOverride");
+ var nodeBody = [{
+ name: "height",
+ type: t4.nodeSize,
+ triggersBounds: diff2.any,
+ hashOverride: nodeSizeHashOverride
+ }, {
+ name: "width",
+ type: t4.nodeSize,
+ triggersBounds: diff2.any,
+ hashOverride: nodeSizeHashOverride
+ }, {
+ name: "shape",
+ type: t4.nodeShape,
+ triggersBounds: diff2.any
+ }, {
+ name: "shape-polygon-points",
+ type: t4.polygonPointList,
+ triggersBounds: diff2.any
+ }, {
+ name: "corner-radius",
+ type: t4.cornerRadius
+ }, {
+ name: "background-color",
+ type: t4.color
+ }, {
+ name: "background-fill",
+ type: t4.fill
+ }, {
+ name: "background-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "background-blacken",
+ type: t4.nOneOneNumber
+ }, {
+ name: "background-gradient-stop-colors",
+ type: t4.colors
+ }, {
+ name: "background-gradient-stop-positions",
+ type: t4.percentages
+ }, {
+ name: "background-gradient-direction",
+ type: t4.gradientDirection
+ }, {
+ name: "padding",
+ type: t4.sizeMaybePercent,
+ triggersBounds: diff2.any
+ }, {
+ name: "padding-relative-to",
+ type: t4.paddingRelativeTo,
+ triggersBounds: diff2.any
+ }, {
+ name: "bounds-expansion",
+ type: t4.boundsExpansion,
+ triggersBounds: diff2.any
+ }];
+ var nodeBorder = [{
+ name: "border-color",
+ type: t4.color
+ }, {
+ name: "border-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "border-width",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "border-style",
+ type: t4.borderStyle
+ }, {
+ name: "border-cap",
+ type: t4.lineCap
+ }, {
+ name: "border-join",
+ type: t4.lineJoin
+ }, {
+ name: "border-dash-pattern",
+ type: t4.numbers
+ }, {
+ name: "border-dash-offset",
+ type: t4.number
+ }, {
+ name: "border-position",
+ type: t4.linePosition
+ }];
+ var nodeOutline = [{
+ name: "outline-color",
+ type: t4.color
+ }, {
+ name: "outline-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "outline-width",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "outline-style",
+ type: t4.borderStyle
+ }, {
+ name: "outline-offset",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }];
+ var backgroundImage = [{
+ name: "background-image",
+ type: t4.urls
+ }, {
+ name: "background-image-crossorigin",
+ type: t4.bgCrossOrigin
+ }, {
+ name: "background-image-opacity",
+ type: t4.zeroOneNumbers
+ }, {
+ name: "background-image-containment",
+ type: t4.bgContainment
+ }, {
+ name: "background-image-smoothing",
+ type: t4.bools
+ }, {
+ name: "background-position-x",
+ type: t4.bgPos
+ }, {
+ name: "background-position-y",
+ type: t4.bgPos
+ }, {
+ name: "background-width-relative-to",
+ type: t4.bgRelativeTo
+ }, {
+ name: "background-height-relative-to",
+ type: t4.bgRelativeTo
+ }, {
+ name: "background-repeat",
+ type: t4.bgRepeat
+ }, {
+ name: "background-fit",
+ type: t4.bgFit
+ }, {
+ name: "background-clip",
+ type: t4.bgClip
+ }, {
+ name: "background-width",
+ type: t4.bgWH
+ }, {
+ name: "background-height",
+ type: t4.bgWH
+ }, {
+ name: "background-offset-x",
+ type: t4.bgPos
+ }, {
+ name: "background-offset-y",
+ type: t4.bgPos
+ }];
+ var compound = [{
+ name: "position",
+ type: t4.position,
+ triggersBounds: diff2.any
+ }, {
+ name: "compound-sizing-wrt-labels",
+ type: t4.compoundIncludeLabels,
+ triggersBounds: diff2.any
+ }, {
+ name: "min-width",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "min-width-bias-left",
+ type: t4.sizeMaybePercent,
+ triggersBounds: diff2.any
+ }, {
+ name: "min-width-bias-right",
+ type: t4.sizeMaybePercent,
+ triggersBounds: diff2.any
+ }, {
+ name: "min-height",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "min-height-bias-top",
+ type: t4.sizeMaybePercent,
+ triggersBounds: diff2.any
+ }, {
+ name: "min-height-bias-bottom",
+ type: t4.sizeMaybePercent,
+ triggersBounds: diff2.any
+ }];
+ var edgeLine = [{
+ name: "line-style",
+ type: t4.lineStyle
+ }, {
+ name: "line-color",
+ type: t4.color
+ }, {
+ name: "line-fill",
+ type: t4.fill
+ }, {
+ name: "line-cap",
+ type: t4.lineCap
+ }, {
+ name: "line-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "line-dash-pattern",
+ type: t4.numbers
+ }, {
+ name: "line-dash-offset",
+ type: t4.number
+ }, {
+ name: "line-outline-width",
+ type: t4.size
+ }, {
+ name: "line-outline-color",
+ type: t4.color
+ }, {
+ name: "line-gradient-stop-colors",
+ type: t4.colors
+ }, {
+ name: "line-gradient-stop-positions",
+ type: t4.percentages
+ }, {
+ name: "curve-style",
+ type: t4.curveStyle,
+ triggersBounds: diff2.any,
+ triggersBoundsOfParallelBeziers: true
+ }, {
+ name: "haystack-radius",
+ type: t4.zeroOneNumber,
+ triggersBounds: diff2.any
+ }, {
+ name: "source-endpoint",
+ type: t4.edgeEndpoint,
+ triggersBounds: diff2.any
+ }, {
+ name: "target-endpoint",
+ type: t4.edgeEndpoint,
+ triggersBounds: diff2.any
+ }, {
+ name: "control-point-step-size",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "control-point-distances",
+ type: t4.bidirectionalSizes,
+ triggersBounds: diff2.any
+ }, {
+ name: "control-point-weights",
+ type: t4.numbers,
+ triggersBounds: diff2.any
+ }, {
+ name: "segment-distances",
+ type: t4.bidirectionalSizes,
+ triggersBounds: diff2.any
+ }, {
+ name: "segment-weights",
+ type: t4.numbers,
+ triggersBounds: diff2.any
+ }, {
+ name: "segment-radii",
+ type: t4.numbers,
+ triggersBounds: diff2.any
+ }, {
+ name: "radius-type",
+ type: t4.radiusType,
+ triggersBounds: diff2.any
+ }, {
+ name: "taxi-turn",
+ type: t4.bidirectionalSizeMaybePercent,
+ triggersBounds: diff2.any
+ }, {
+ name: "taxi-turn-min-distance",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "taxi-direction",
+ type: t4.axisDirection,
+ triggersBounds: diff2.any
+ }, {
+ name: "taxi-radius",
+ type: t4.number,
+ triggersBounds: diff2.any
+ }, {
+ name: "edge-distances",
+ type: t4.edgeDistances,
+ triggersBounds: diff2.any
+ }, {
+ name: "arrow-scale",
+ type: t4.positiveNumber,
+ triggersBounds: diff2.any
+ }, {
+ name: "loop-direction",
+ type: t4.angle,
+ triggersBounds: diff2.any
+ }, {
+ name: "loop-sweep",
+ type: t4.angle,
+ triggersBounds: diff2.any
+ }, {
+ name: "source-distance-from-node",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }, {
+ name: "target-distance-from-node",
+ type: t4.size,
+ triggersBounds: diff2.any
+ }];
+ var ghost = [{
+ name: "ghost",
+ type: t4.bool,
+ triggersBounds: diff2.any
+ }, {
+ name: "ghost-offset-x",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }, {
+ name: "ghost-offset-y",
+ type: t4.bidirectionalSize,
+ triggersBounds: diff2.any
+ }, {
+ name: "ghost-opacity",
+ type: t4.zeroOneNumber
+ }];
+ var core4 = [{
+ name: "selection-box-color",
+ type: t4.color
+ }, {
+ name: "selection-box-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "selection-box-border-color",
+ type: t4.color
+ }, {
+ name: "selection-box-border-width",
+ type: t4.size
+ }, {
+ name: "active-bg-color",
+ type: t4.color
+ }, {
+ name: "active-bg-opacity",
+ type: t4.zeroOneNumber
+ }, {
+ name: "active-bg-size",
+ type: t4.size
+ }, {
+ name: "outside-texture-bg-color",
+ type: t4.color
+ }, {
+ name: "outside-texture-bg-opacity",
+ type: t4.zeroOneNumber
+ }];
+ var pie2 = [];
+ styfn$2.pieBackgroundN = 16;
+ pie2.push({
+ name: "pie-size",
+ type: t4.sizeMaybePercent
+ });
+ for (var i2 = 1; i2 <= styfn$2.pieBackgroundN; i2++) {
+ pie2.push({
+ name: "pie-" + i2 + "-background-color",
+ type: t4.color
+ });
+ pie2.push({
+ name: "pie-" + i2 + "-background-size",
+ type: t4.percent
+ });
+ pie2.push({
+ name: "pie-" + i2 + "-background-opacity",
+ type: t4.zeroOneNumber
+ });
}
- };
- elesfn$6.each = elesfn$6.forEach;
- var defineSymbolIterator = function defineSymbolIterator2() {
- var typeofUndef = "undefined";
- var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef;
- if (isIteratorSupported) {
- elesfn$6[Symbol.iterator] = function() {
- var _this = this;
- var entry = {
- value: void 0,
- done: false
- };
- var i3 = 0;
- var length2 = this.length;
- return _defineProperty$1({
- next: function next2() {
- if (i3 < length2) {
- entry.value = _this[i3++];
- } else {
- entry.value = void 0;
- entry.done = true;
- }
- return entry;
- }
- }, Symbol.iterator, function() {
- return this;
- });
- };
- }
- };
- defineSymbolIterator();
- var getLayoutDimensionOptions = defaults$g({
- nodeDimensionsIncludeLabels: false
- });
- var elesfn$5 = {
- // Calculates and returns node dimensions { x, y } based on options given
- layoutDimensions: function layoutDimensions(options2) {
- options2 = getLayoutDimensionOptions(options2);
- var dims;
- if (!this.takesUpSpace()) {
- dims = {
- w: 0,
- h: 0
- };
- } else if (options2.nodeDimensionsIncludeLabels) {
- var bbDim = this.boundingBox();
- dims = {
- w: bbDim.w,
- h: bbDim.h
- };
- } else {
- dims = {
- w: this.outerWidth(),
- h: this.outerHeight()
- };
- }
- if (dims.w === 0 || dims.h === 0) {
- dims.w = dims.h = 1;
- }
- return dims;
- },
- // using standard layout options, apply position function (w/ or w/o animation)
- layoutPositions: function layoutPositions(layout3, options2, fn2) {
- var nodes2 = this.nodes().filter(function(n) {
- return !n.isParent();
+ var edgeArrow = [];
+ var arrowPrefixes = styfn$2.arrowPrefixes = ["source", "mid-source", "target", "mid-target"];
+ [{
+ name: "arrow-shape",
+ type: t4.arrowShape,
+ triggersBounds: diff2.any
+ }, {
+ name: "arrow-color",
+ type: t4.color
+ }, {
+ name: "arrow-fill",
+ type: t4.arrowFill
+ }, {
+ name: "arrow-width",
+ type: t4.arrowWidth
+ }].forEach(function(prop2) {
+ arrowPrefixes.forEach(function(prefix) {
+ var name = prefix + "-" + prop2.name;
+ var type3 = prop2.type, triggersBounds = prop2.triggersBounds;
+ edgeArrow.push({
+ name,
+ type: type3,
+ triggersBounds
+ });
});
- var cy = this.cy();
- var layoutEles = options2.eles;
- var getMemoizeKey = function getMemoizeKey2(node3) {
- return node3.id();
- };
- var fnMem = memoize$1(fn2, getMemoizeKey);
- layout3.emit({
- type: "layoutstart",
- layout: layout3
+ }, {});
+ var props = styfn$2.properties = [].concat(behavior, transition2, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, nodeOutline, backgroundImage, pie2, compound, edgeLine, edgeArrow, core4);
+ var propGroups = styfn$2.propertyGroups = {
+ // common to all eles
+ behavior,
+ transition: transition2,
+ visibility,
+ overlay,
+ underlay,
+ ghost,
+ // labels
+ commonLabel,
+ labelDimensions,
+ mainLabel,
+ sourceLabel,
+ targetLabel,
+ // node props
+ nodeBody,
+ nodeBorder,
+ nodeOutline,
+ backgroundImage,
+ pie: pie2,
+ compound,
+ // edge props
+ edgeLine,
+ edgeArrow,
+ core: core4
+ };
+ var propGroupNames = styfn$2.propertyGroupNames = {};
+ var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);
+ propGroupKeys.forEach(function(key) {
+ propGroupNames[key] = propGroups[key].map(function(prop2) {
+ return prop2.name;
});
- layout3.animations = [];
- var calculateSpacing = function calculateSpacing2(spacing, nodesBb, pos) {
- var center2 = {
- x: nodesBb.x1 + nodesBb.w / 2,
- y: nodesBb.y1 + nodesBb.h / 2
- };
- var spacingVector = {
- // scale from center of bounding box (not necessarily 0,0)
- x: (pos.x - center2.x) * spacing,
- y: (pos.y - center2.y) * spacing
- };
- return {
- x: center2.x + spacingVector.x,
- y: center2.y + spacingVector.y
- };
- };
- var useSpacingFactor = options2.spacingFactor && options2.spacingFactor !== 1;
- var spacingBb = function spacingBb2() {
- if (!useSpacingFactor) {
- return null;
- }
- var bb2 = makeBoundingBox();
- for (var i4 = 0; i4 < nodes2.length; i4++) {
- var node3 = nodes2[i4];
- var pos = fnMem(node3, i4);
- expandBoundingBoxByPoint(bb2, pos.x, pos.y);
- }
- return bb2;
+ propGroups[key].forEach(function(prop2) {
+ return prop2.groupKey = key;
+ });
+ });
+ var aliases = styfn$2.aliases = [{
+ name: "content",
+ pointsTo: "label"
+ }, {
+ name: "control-point-distance",
+ pointsTo: "control-point-distances"
+ }, {
+ name: "control-point-weight",
+ pointsTo: "control-point-weights"
+ }, {
+ name: "segment-distance",
+ pointsTo: "segment-distances"
+ }, {
+ name: "segment-weight",
+ pointsTo: "segment-weights"
+ }, {
+ name: "segment-radius",
+ pointsTo: "segment-radii"
+ }, {
+ name: "edge-text-rotation",
+ pointsTo: "text-rotation"
+ }, {
+ name: "padding-left",
+ pointsTo: "padding"
+ }, {
+ name: "padding-right",
+ pointsTo: "padding"
+ }, {
+ name: "padding-top",
+ pointsTo: "padding"
+ }, {
+ name: "padding-bottom",
+ pointsTo: "padding"
+ }];
+ styfn$2.propertyNames = props.map(function(p3) {
+ return p3.name;
+ });
+ for (var _i = 0; _i < props.length; _i++) {
+ var prop = props[_i];
+ props[prop.name] = prop;
+ }
+ for (var _i2 = 0; _i2 < aliases.length; _i2++) {
+ var alias = aliases[_i2];
+ var pointsToProp = props[alias.pointsTo];
+ var aliasProp = {
+ name: alias.name,
+ alias: true,
+ pointsTo: pointsToProp
};
- var bb = spacingBb();
- var getFinalPos = memoize$1(function(node3, i4) {
- var newPos2 = fnMem(node3, i4);
- if (useSpacingFactor) {
- var spacing = Math.abs(options2.spacingFactor);
- newPos2 = calculateSpacing(spacing, bb, newPos2);
- }
- if (options2.transform != null) {
- newPos2 = options2.transform(node3, newPos2);
- }
- return newPos2;
- }, getMemoizeKey);
- if (options2.animate) {
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var node2 = nodes2[i3];
- var newPos = getFinalPos(node2, i3);
- var animateNode = options2.animateFilter == null || options2.animateFilter(node2, i3);
- if (animateNode) {
- var ani = node2.animation({
- position: newPos,
- duration: options2.animationDuration,
- easing: options2.animationEasing
- });
- layout3.animations.push(ani);
- } else {
- node2.position(newPos);
- }
- }
- if (options2.fit) {
- var fitAni = cy.animation({
- fit: {
- boundingBox: layoutEles.boundingBoxAt(getFinalPos),
- padding: options2.padding
- },
- duration: options2.animationDuration,
- easing: options2.animationEasing
- });
- layout3.animations.push(fitAni);
- } else if (options2.zoom !== void 0 && options2.pan !== void 0) {
- var zoomPanAni = cy.animation({
- zoom: options2.zoom,
- pan: options2.pan,
- duration: options2.animationDuration,
- easing: options2.animationEasing
- });
- layout3.animations.push(zoomPanAni);
- }
- layout3.animations.forEach(function(ani2) {
- return ani2.play();
- });
- layout3.one("layoutready", options2.ready);
- layout3.emit({
- type: "layoutready",
- layout: layout3
- });
- Promise$12.all(layout3.animations.map(function(ani2) {
- return ani2.promise();
- })).then(function() {
- layout3.one("layoutstop", options2.stop);
- layout3.emit({
- type: "layoutstop",
- layout: layout3
- });
- });
- } else {
- nodes2.positions(getFinalPos);
- if (options2.fit) {
- cy.fit(options2.eles, options2.padding);
- }
- if (options2.zoom != null) {
- cy.zoom(options2.zoom);
- }
- if (options2.pan) {
- cy.pan(options2.pan);
- }
- layout3.one("layoutready", options2.ready);
- layout3.emit({
- type: "layoutready",
- layout: layout3
- });
- layout3.one("layoutstop", options2.stop);
- layout3.emit({
- type: "layoutstop",
- layout: layout3
- });
- }
- return this;
- },
- layout: function layout3(options2) {
- var cy = this.cy();
- return cy.makeLayout(extend2({}, options2, {
- eles: this
- }));
+ props.push(aliasProp);
+ props[alias.name] = aliasProp;
}
+ })();
+ styfn$2.getDefaultProperty = function(name) {
+ return this.getDefaultProperties()[name];
};
- elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;
- function styleCache(key, fn2, ele) {
- var _p = ele._private;
- var cache2 = _p.styleCache = _p.styleCache || [];
- var val;
- if ((val = cache2[key]) != null) {
- return val;
- } else {
- val = cache2[key] = fn2(ele);
- return val;
+ styfn$2.getDefaultProperties = function() {
+ var _p = this._private;
+ if (_p.defaultProperties != null) {
+ return _p.defaultProperties;
}
- }
- function cacheStyleFunction(key, fn2) {
- key = hashString(key);
- return function cachedStyleFunction(ele) {
- return styleCache(key, fn2, ele);
- };
- }
- function cachePrototypeStyleFunction(key, fn2) {
- key = hashString(key);
- var selfFn = function selfFn2(ele) {
- return fn2.call(ele);
- };
- return function cachedPrototypeStyleFunction() {
- var ele = this[0];
- if (ele) {
- return styleCache(key, selfFn, ele);
- }
- };
- }
- var elesfn$4 = {
- recalculateRenderedStyle: function recalculateRenderedStyle(useCache) {
- var cy = this.cy();
- var renderer3 = cy.renderer();
- var styleEnabled = cy.styleEnabled();
- if (renderer3 && styleEnabled) {
- renderer3.recalculateRenderedStyle(this, useCache);
- }
- return this;
- },
- dirtyStyleCache: function dirtyStyleCache() {
- var cy = this.cy();
- var dirty = function dirty2(ele) {
- return ele._private.styleCache = null;
- };
- if (cy.hasCompoundNodes()) {
- var eles;
- eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
- eles.merge(eles.connectedEdges());
- eles.forEach(dirty);
- } else {
- this.forEach(function(ele) {
- dirty(ele);
- ele.connectedEdges().forEach(dirty);
- });
- }
- return this;
- },
- // fully updates (recalculates) the style for the elements
- updateStyle: function updateStyle(notifyRenderer) {
- var cy = this._private.cy;
- if (!cy.styleEnabled()) {
- return this;
- }
- if (cy.batching()) {
- var bEles = cy._private.batchStyleEles;
- bEles.merge(this);
- return this;
- }
- var hasCompounds = cy.hasCompoundNodes();
- var updatedEles = this;
- notifyRenderer = notifyRenderer || notifyRenderer === void 0 ? true : false;
- if (hasCompounds) {
- updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
- }
- var changedEles = updatedEles;
- if (notifyRenderer) {
- changedEles.emitAndNotify("style");
- } else {
- changedEles.emit("style");
- }
- updatedEles.forEach(function(ele) {
- return ele._private.styleDirty = true;
- });
- return this;
- },
- // private: clears dirty flag and recalculates style
- cleanStyle: function cleanStyle() {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
- return;
- }
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- if (ele._private.styleDirty) {
- ele._private.styleDirty = false;
- cy.style().apply(ele);
- }
- }
- },
- // get the internal parsed style object for the specified property
- parsedStyle: function parsedStyle(property2) {
- var includeNonDefault = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- var ele = this[0];
- var cy = ele.cy();
- if (!cy.styleEnabled()) {
- return;
- }
- if (ele) {
- this.cleanStyle();
- var overriddenStyle = ele._private.style[property2];
- if (overriddenStyle != null) {
- return overriddenStyle;
- } else if (includeNonDefault) {
- return cy.style().getDefaultProperty(property2);
- } else {
- return null;
- }
- }
- },
- numericStyle: function numericStyle(property2) {
- var ele = this[0];
- if (!ele.cy().styleEnabled()) {
- return;
- }
- if (ele) {
- var pstyle = ele.pstyle(property2);
- return pstyle.pfValue !== void 0 ? pstyle.pfValue : pstyle.value;
- }
- },
- numericStyleUnits: function numericStyleUnits(property2) {
- var ele = this[0];
- if (!ele.cy().styleEnabled()) {
- return;
- }
- if (ele) {
- return ele.pstyle(property2).units;
- }
- },
- // get the specified css property as a rendered value (i.e. on-screen value)
- // or get the whole rendered style if no property specified (NB doesn't allow setting)
- renderedStyle: function renderedStyle(property2) {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
- return this;
- }
- var ele = this[0];
- if (ele) {
- return cy.style().getRenderedStyle(ele, property2);
- }
- },
- // read the calculated css style of the element or override the style (via a bypass)
- style: function style(name2, value) {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
- return this;
+ var rawProps = extend2({
+ // core props
+ "selection-box-color": "#ddd",
+ "selection-box-opacity": 0.65,
+ "selection-box-border-color": "#aaa",
+ "selection-box-border-width": 1,
+ "active-bg-color": "black",
+ "active-bg-opacity": 0.15,
+ "active-bg-size": 30,
+ "outside-texture-bg-color": "#000",
+ "outside-texture-bg-opacity": 0.125,
+ // common node/edge props
+ "events": "yes",
+ "text-events": "no",
+ "text-valign": "top",
+ "text-halign": "center",
+ "text-justification": "auto",
+ "line-height": 1,
+ "color": "#000",
+ "text-outline-color": "#000",
+ "text-outline-width": 0,
+ "text-outline-opacity": 1,
+ "text-opacity": 1,
+ "text-decoration": "none",
+ "text-transform": "none",
+ "text-wrap": "none",
+ "text-overflow-wrap": "whitespace",
+ "text-max-width": 9999,
+ "text-background-color": "#000",
+ "text-background-opacity": 0,
+ "text-background-shape": "rectangle",
+ "text-background-padding": 0,
+ "text-border-opacity": 0,
+ "text-border-width": 0,
+ "text-border-style": "solid",
+ "text-border-color": "#000",
+ "font-family": "Helvetica Neue, Helvetica, sans-serif",
+ "font-style": "normal",
+ "font-weight": "normal",
+ "font-size": 16,
+ "min-zoomed-font-size": 0,
+ "text-rotation": "none",
+ "source-text-rotation": "none",
+ "target-text-rotation": "none",
+ "visibility": "visible",
+ "display": "element",
+ "opacity": 1,
+ "z-compound-depth": "auto",
+ "z-index-compare": "auto",
+ "z-index": 0,
+ "label": "",
+ "text-margin-x": 0,
+ "text-margin-y": 0,
+ "source-label": "",
+ "source-text-offset": 0,
+ "source-text-margin-x": 0,
+ "source-text-margin-y": 0,
+ "target-label": "",
+ "target-text-offset": 0,
+ "target-text-margin-x": 0,
+ "target-text-margin-y": 0,
+ "overlay-opacity": 0,
+ "overlay-color": "#000",
+ "overlay-padding": 10,
+ "overlay-shape": "round-rectangle",
+ "overlay-corner-radius": "auto",
+ "underlay-opacity": 0,
+ "underlay-color": "#000",
+ "underlay-padding": 10,
+ "underlay-shape": "round-rectangle",
+ "underlay-corner-radius": "auto",
+ "transition-property": "none",
+ "transition-duration": 0,
+ "transition-delay": 0,
+ "transition-timing-function": "linear",
+ // node props
+ "background-blacken": 0,
+ "background-color": "#999",
+ "background-fill": "solid",
+ "background-opacity": 1,
+ "background-image": "none",
+ "background-image-crossorigin": "anonymous",
+ "background-image-opacity": 1,
+ "background-image-containment": "inside",
+ "background-image-smoothing": "yes",
+ "background-position-x": "50%",
+ "background-position-y": "50%",
+ "background-offset-x": 0,
+ "background-offset-y": 0,
+ "background-width-relative-to": "include-padding",
+ "background-height-relative-to": "include-padding",
+ "background-repeat": "no-repeat",
+ "background-fit": "none",
+ "background-clip": "node",
+ "background-width": "auto",
+ "background-height": "auto",
+ "border-color": "#000",
+ "border-opacity": 1,
+ "border-width": 0,
+ "border-style": "solid",
+ "border-dash-pattern": [4, 2],
+ "border-dash-offset": 0,
+ "border-cap": "butt",
+ "border-join": "miter",
+ "border-position": "center",
+ "outline-color": "#999",
+ "outline-opacity": 1,
+ "outline-width": 0,
+ "outline-offset": 0,
+ "outline-style": "solid",
+ "height": 30,
+ "width": 30,
+ "shape": "ellipse",
+ "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1",
+ "corner-radius": "auto",
+ "bounds-expansion": 0,
+ // node gradient
+ "background-gradient-direction": "to-bottom",
+ "background-gradient-stop-colors": "#999",
+ "background-gradient-stop-positions": "0%",
+ // ghost props
+ "ghost": "no",
+ "ghost-offset-y": 0,
+ "ghost-offset-x": 0,
+ "ghost-opacity": 0,
+ // compound props
+ "padding": 0,
+ "padding-relative-to": "width",
+ "position": "origin",
+ "compound-sizing-wrt-labels": "include",
+ "min-width": 0,
+ "min-width-bias-left": 0,
+ "min-width-bias-right": 0,
+ "min-height": 0,
+ "min-height-bias-top": 0,
+ "min-height-bias-bottom": 0
+ }, {
+ // node pie bg
+ "pie-size": "100%"
+ }, [{
+ name: "pie-{{i}}-background-color",
+ value: "black"
+ }, {
+ name: "pie-{{i}}-background-size",
+ value: "0%"
+ }, {
+ name: "pie-{{i}}-background-opacity",
+ value: 1
+ }].reduce(function(css, prop2) {
+ for (var i3 = 1; i3 <= styfn$2.pieBackgroundN; i3++) {
+ var name2 = prop2.name.replace("{{i}}", i3);
+ var val2 = prop2.value;
+ css[name2] = val2;
}
- var updateTransitions = false;
- var style2 = cy.style();
- if (plainObject(name2)) {
- var props = name2;
- style2.applyBypass(this, props, updateTransitions);
- this.emitAndNotify("style");
- } else if (string(name2)) {
- if (value === void 0) {
- var ele = this[0];
- if (ele) {
- return style2.getStylePropertyValue(ele, name2);
- } else {
- return;
- }
- } else {
- style2.applyBypass(this, name2, value, updateTransitions);
- this.emitAndNotify("style");
- }
- } else if (name2 === void 0) {
- var _ele = this[0];
- if (_ele) {
- return style2.getRawStyle(_ele);
- } else {
- return;
- }
+ return css;
+ }, {}), {
+ // edge props
+ "line-style": "solid",
+ "line-color": "#999",
+ "line-fill": "solid",
+ "line-cap": "butt",
+ "line-opacity": 1,
+ "line-outline-width": 0,
+ "line-outline-color": "#000",
+ "line-gradient-stop-colors": "#999",
+ "line-gradient-stop-positions": "0%",
+ "control-point-step-size": 40,
+ "control-point-weights": 0.5,
+ "segment-weights": 0.5,
+ "segment-distances": 20,
+ "segment-radii": 15,
+ "radius-type": "arc-radius",
+ "taxi-turn": "50%",
+ "taxi-radius": 15,
+ "taxi-turn-min-distance": 10,
+ "taxi-direction": "auto",
+ "edge-distances": "intersection",
+ "curve-style": "haystack",
+ "haystack-radius": 0,
+ "arrow-scale": 1,
+ "loop-direction": "-45deg",
+ "loop-sweep": "-90deg",
+ "source-distance-from-node": 0,
+ "target-distance-from-node": 0,
+ "source-endpoint": "outside-to-node",
+ "target-endpoint": "outside-to-node",
+ "line-dash-pattern": [6, 3],
+ "line-dash-offset": 0
+ }, [{
+ name: "arrow-shape",
+ value: "none"
+ }, {
+ name: "arrow-color",
+ value: "#999"
+ }, {
+ name: "arrow-fill",
+ value: "filled"
+ }, {
+ name: "arrow-width",
+ value: 1
+ }].reduce(function(css, prop2) {
+ styfn$2.arrowPrefixes.forEach(function(prefix) {
+ var name2 = prefix + "-" + prop2.name;
+ var val2 = prop2.value;
+ css[name2] = val2;
+ });
+ return css;
+ }, {}));
+ var parsedProps = {};
+ for (var i2 = 0; i2 < this.properties.length; i2++) {
+ var prop = this.properties[i2];
+ if (prop.pointsTo) {
+ continue;
}
- return this;
- },
- removeStyle: function removeStyle(names) {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
- return this;
+ var name = prop.name;
+ var val = rawProps[name];
+ var parsedProp = this.parse(name, val);
+ parsedProps[name] = parsedProp;
+ }
+ _p.defaultProperties = parsedProps;
+ return _p.defaultProperties;
+ };
+ styfn$2.addDefaultStylesheet = function() {
+ this.selector(":parent").css({
+ "shape": "rectangle",
+ "padding": 10,
+ "background-color": "#eee",
+ "border-color": "#ccc",
+ "border-width": 1
+ }).selector("edge").css({
+ "width": 3
+ }).selector(":loop").css({
+ "curve-style": "bezier"
+ }).selector("edge:compound").css({
+ "curve-style": "bezier",
+ "source-endpoint": "outside-to-line",
+ "target-endpoint": "outside-to-line"
+ }).selector(":selected").css({
+ "background-color": "#0169D9",
+ "line-color": "#0169D9",
+ "source-arrow-color": "#0169D9",
+ "target-arrow-color": "#0169D9",
+ "mid-source-arrow-color": "#0169D9",
+ "mid-target-arrow-color": "#0169D9"
+ }).selector(":parent:selected").css({
+ "background-color": "#CCE1F9",
+ "border-color": "#aec8e5"
+ }).selector(":active").css({
+ "overlay-color": "black",
+ "overlay-padding": 10,
+ "overlay-opacity": 0.25
+ });
+ this.defaultLength = this.length;
+ };
+ styfn$1 = {};
+ styfn$1.parse = function(name, value2, propIsBypass, propIsFlat) {
+ var self2 = this;
+ if (fn$6(value2)) {
+ return self2.parseImplWarn(name, value2, propIsBypass, propIsFlat);
+ }
+ var flatKey = propIsFlat === "mapping" || propIsFlat === true || propIsFlat === false || propIsFlat == null ? "dontcare" : propIsFlat;
+ var bypassKey = propIsBypass ? "t" : "f";
+ var valueKey = "" + value2;
+ var argHash = hashStrings(name, valueKey, bypassKey, flatKey);
+ var propCache = self2.propCache = self2.propCache || [];
+ var ret;
+ if (!(ret = propCache[argHash])) {
+ ret = propCache[argHash] = self2.parseImplWarn(name, value2, propIsBypass, propIsFlat);
+ }
+ if (propIsBypass || propIsFlat === "mapping") {
+ ret = copy4(ret);
+ if (ret) {
+ ret.value = copy4(ret.value);
}
- var updateTransitions = false;
- var style = cy.style();
- var eles = this;
- if (names === void 0) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- style.removeAllBypasses(ele, updateTransitions);
- }
- } else {
- names = names.split(/\s+/);
- for (var _i = 0; _i < eles.length; _i++) {
- var _ele2 = eles[_i];
- style.removeBypasses(_ele2, names, updateTransitions);
- }
+ }
+ return ret;
+ };
+ styfn$1.parseImplWarn = function(name, value2, propIsBypass, propIsFlat) {
+ var prop = this.parseImpl(name, value2, propIsBypass, propIsFlat);
+ if (!prop && value2 != null) {
+ warn("The style property `".concat(name, ": ").concat(value2, "` is invalid"));
+ }
+ if (prop && (prop.name === "width" || prop.name === "height") && value2 === "label") {
+ warn("The style value of `label` is deprecated for `" + prop.name + "`");
+ }
+ return prop;
+ };
+ styfn$1.parseImpl = function(name, value2, propIsBypass, propIsFlat) {
+ var self2 = this;
+ name = camel2dash(name);
+ var property2 = self2.properties[name];
+ var passedValue = value2;
+ var types = self2.types;
+ if (!property2) {
+ return null;
+ }
+ if (value2 === void 0) {
+ return null;
+ }
+ if (property2.alias) {
+ property2 = property2.pointsTo;
+ name = property2.name;
+ }
+ var valueIsString = string(value2);
+ if (valueIsString) {
+ value2 = value2.trim();
+ }
+ var type3 = property2.type;
+ if (!type3) {
+ return null;
+ }
+ if (propIsBypass && (value2 === "" || value2 === null)) {
+ return {
+ name,
+ value: value2,
+ bypass: true,
+ deleteBypass: true
+ };
+ }
+ if (fn$6(value2)) {
+ return {
+ name,
+ value: value2,
+ strValue: "fn",
+ mapped: types.fn,
+ bypass: propIsBypass
+ };
+ }
+ var data5, mapData;
+ if (!valueIsString || propIsFlat || value2.length < 7 || value2[1] !== "a") ;
+ else if (value2.length >= 7 && value2[0] === "d" && (data5 = new RegExp(types.data.regex).exec(value2))) {
+ if (propIsBypass) {
+ return false;
}
- this.emitAndNotify("style");
- return this;
- },
- show: function show() {
- this.css("display", "element");
- return this;
- },
- hide: function hide() {
- this.css("display", "none");
- return this;
- },
- effectiveOpacity: function effectiveOpacity() {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
- return 1;
+ var mapped = types.data;
+ return {
+ name,
+ value: data5,
+ strValue: "" + value2,
+ mapped,
+ field: data5[1],
+ bypass: propIsBypass
+ };
+ } else if (value2.length >= 10 && value2[0] === "m" && (mapData = new RegExp(types.mapData.regex).exec(value2))) {
+ if (propIsBypass) {
+ return false;
}
- var hasCompoundNodes = cy.hasCompoundNodes();
- var ele = this[0];
- if (ele) {
- var _p = ele._private;
- var parentOpacity = ele.pstyle("opacity").value;
- if (!hasCompoundNodes) {
- return parentOpacity;
- }
- var parents2 = !_p.data.parent ? null : ele.parents();
- if (parents2) {
- for (var i3 = 0; i3 < parents2.length; i3++) {
- var parent = parents2[i3];
- var opacity = parent.pstyle("opacity").value;
- parentOpacity = opacity * parentOpacity;
- }
- }
- return parentOpacity;
+ if (type3.multiple) {
+ return false;
}
- },
- transparent: function transparent() {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
+ var _mapped = types.mapData;
+ if (!(type3.color || type3.number)) {
return false;
}
- var ele = this[0];
- var hasCompoundNodes = ele.cy().hasCompoundNodes();
- if (ele) {
- if (!hasCompoundNodes) {
- return ele.pstyle("opacity").value === 0;
- } else {
- return ele.effectiveOpacity() === 0;
- }
+ var valueMin = this.parse(name, mapData[4]);
+ if (!valueMin || valueMin.mapped) {
+ return false;
}
- },
- backgrounding: function backgrounding() {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
+ var valueMax = this.parse(name, mapData[5]);
+ if (!valueMax || valueMax.mapped) {
return false;
}
- var ele = this[0];
- return ele._private.backgrounding ? true : false;
- }
- };
- function checkCompound(ele, parentOk) {
- var _p = ele._private;
- var parents2 = _p.data.parent ? ele.parents() : null;
- if (parents2) {
- for (var i3 = 0; i3 < parents2.length; i3++) {
- var parent = parents2[i3];
- if (!parentOk(parent)) {
+ if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {
+ warn("`" + name + ": " + value2 + "` is not a valid mapper because the output range is zero; converting to `" + name + ": " + valueMin.strValue + "`");
+ return this.parse(name, valueMin.strValue);
+ } else if (type3.color) {
+ var c1 = valueMin.value;
+ var c22 = valueMax.value;
+ var same2 = c1[0] === c22[0] && c1[1] === c22[1] && c1[2] === c22[2] && // optional alpha
+ (c1[3] === c22[3] || (c1[3] == null || c1[3] === 1) && (c22[3] == null || c22[3] === 1));
+ if (same2) {
return false;
}
}
+ return {
+ name,
+ value: mapData,
+ strValue: "" + value2,
+ mapped: _mapped,
+ field: mapData[1],
+ fieldMin: parseFloat(mapData[2]),
+ // min & max are numeric
+ fieldMax: parseFloat(mapData[3]),
+ valueMin: valueMin.value,
+ valueMax: valueMax.value,
+ bypass: propIsBypass
+ };
}
- return true;
- }
- function defineDerivedStateFunction(specs) {
- var ok = specs.ok;
- var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;
- var parentOk = specs.parentOk || specs.ok;
- return function() {
- var cy = this.cy();
- if (!cy.styleEnabled()) {
- return true;
+ if (type3.multiple && propIsFlat !== "multiple") {
+ var vals;
+ if (valueIsString) {
+ vals = value2.split(/\s+/);
+ } else if (array2(value2)) {
+ vals = value2;
+ } else {
+ vals = [value2];
}
- var ele = this[0];
- var hasCompoundNodes = cy.hasCompoundNodes();
- if (ele) {
- var _p = ele._private;
- if (!ok(ele)) {
- return false;
- }
- if (ele.isNode()) {
- return !hasCompoundNodes || checkCompound(ele, parentOk);
+ if (type3.evenMultiple && vals.length % 2 !== 0) {
+ return null;
+ }
+ var valArr = [];
+ var unitsArr = [];
+ var pfValArr = [];
+ var strVal = "";
+ var hasEnum = false;
+ for (var i2 = 0; i2 < vals.length; i2++) {
+ var p3 = self2.parse(name, vals[i2], propIsBypass, "multiple");
+ hasEnum = hasEnum || string(p3.value);
+ valArr.push(p3.value);
+ pfValArr.push(p3.pfValue != null ? p3.pfValue : p3.value);
+ unitsArr.push(p3.units);
+ strVal += (i2 > 0 ? " " : "") + p3.strValue;
+ }
+ if (type3.validate && !type3.validate(valArr, unitsArr)) {
+ return null;
+ }
+ if (type3.singleEnum && hasEnum) {
+ if (valArr.length === 1 && string(valArr[0])) {
+ return {
+ name,
+ value: valArr[0],
+ strValue: valArr[0],
+ bypass: propIsBypass
+ };
} else {
- var src = _p.source;
- var tgt = _p.target;
- return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode)));
+ return null;
}
}
- };
- }
- var eleTakesUpSpace = cacheStyleFunction("eleTakesUpSpace", function(ele) {
- return ele.pstyle("display").value === "element" && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);
- });
- elesfn$4.takesUpSpace = cachePrototypeStyleFunction("takesUpSpace", defineDerivedStateFunction({
- ok: eleTakesUpSpace
- }));
- var eleInteractive = cacheStyleFunction("eleInteractive", function(ele) {
- return ele.pstyle("events").value === "yes" && ele.pstyle("visibility").value === "visible" && eleTakesUpSpace(ele);
- });
- var parentInteractive = cacheStyleFunction("parentInteractive", function(parent) {
- return parent.pstyle("visibility").value === "visible" && eleTakesUpSpace(parent);
- });
- elesfn$4.interactive = cachePrototypeStyleFunction("interactive", defineDerivedStateFunction({
- ok: eleInteractive,
- parentOk: parentInteractive,
- edgeOkViaNode: eleTakesUpSpace
- }));
- elesfn$4.noninteractive = function() {
- var ele = this[0];
- if (ele) {
- return !ele.interactive();
- }
- };
- var eleVisible = cacheStyleFunction("eleVisible", function(ele) {
- return ele.pstyle("visibility").value === "visible" && ele.pstyle("opacity").pfValue !== 0 && eleTakesUpSpace(ele);
- });
- var edgeVisibleViaNode = eleTakesUpSpace;
- elesfn$4.visible = cachePrototypeStyleFunction("visible", defineDerivedStateFunction({
- ok: eleVisible,
- edgeOkViaNode: edgeVisibleViaNode
- }));
- elesfn$4.hidden = function() {
- var ele = this[0];
- if (ele) {
- return !ele.visible();
- }
- };
- elesfn$4.isBundledBezier = cachePrototypeStyleFunction("isBundledBezier", function() {
- if (!this.cy().styleEnabled()) {
- return false;
+ return {
+ name,
+ value: valArr,
+ pfValue: pfValArr,
+ strValue: strVal,
+ bypass: propIsBypass,
+ units: unitsArr
+ };
}
- return !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace();
- });
- elesfn$4.bypass = elesfn$4.css = elesfn$4.style;
- elesfn$4.renderedCss = elesfn$4.renderedStyle;
- elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;
- elesfn$4.pstyle = elesfn$4.parsedStyle;
- var elesfn$3 = {};
- function defineSwitchFunction(params) {
- return function() {
- var args = arguments;
- var changedEles = [];
- if (args.length === 2) {
- var data2 = args[0];
- var handler = args[1];
- this.on(params.event, data2, handler);
- } else if (args.length === 1 && fn$6(args[0])) {
- var _handler = args[0];
- this.on(params.event, _handler);
- } else if (args.length === 0 || args.length === 1 && array2(args[0])) {
- var addlEvents = args.length === 1 ? args[0] : null;
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var able = !params.ableField || ele._private[params.ableField];
- var changed = ele._private[params.field] != params.value;
- if (params.overrideAble) {
- var overrideAble = params.overrideAble(ele);
- if (overrideAble !== void 0) {
- able = overrideAble;
- if (!overrideAble) {
- return this;
- }
- }
- }
- if (able) {
- ele._private[params.field] = params.value;
- if (changed) {
- changedEles.push(ele);
- }
- }
- }
- var changedColl = this.spawn(changedEles);
- changedColl.updateStyle();
- changedColl.emit(params.event);
- if (addlEvents) {
- changedColl.emit(addlEvents);
+ var checkEnums = /* @__PURE__ */ __name(function checkEnums2() {
+ for (var _i = 0; _i < type3.enums.length; _i++) {
+ var en = type3.enums[_i];
+ if (en === value2) {
+ return {
+ name,
+ value: value2,
+ strValue: "" + value2,
+ bypass: propIsBypass
+ };
}
}
- return this;
- };
- }
- function defineSwitchSet(params) {
- elesfn$3[params.field] = function() {
- var ele = this[0];
- if (ele) {
- if (params.overrideField) {
- var val = params.overrideField(ele);
- if (val !== void 0) {
- return val;
- }
- }
- return ele._private[params.field];
+ return null;
+ }, "checkEnums");
+ if (type3.number) {
+ var units;
+ var implicitUnits = "px";
+ if (type3.units) {
+ units = type3.units;
}
- };
- elesfn$3[params.on] = defineSwitchFunction({
- event: params.on,
- field: params.field,
- ableField: params.ableField,
- overrideAble: params.overrideAble,
- value: true
- });
- elesfn$3[params.off] = defineSwitchFunction({
- event: params.off,
- field: params.field,
- ableField: params.ableField,
- overrideAble: params.overrideAble,
- value: false
- });
- }
- defineSwitchSet({
- field: "locked",
- overrideField: function overrideField(ele) {
- return ele.cy().autolock() ? true : void 0;
- },
- on: "lock",
- off: "unlock"
- });
- defineSwitchSet({
- field: "grabbable",
- overrideField: function overrideField(ele) {
- return ele.cy().autoungrabify() || ele.pannable() ? false : void 0;
- },
- on: "grabify",
- off: "ungrabify"
- });
- defineSwitchSet({
- field: "selected",
- ableField: "selectable",
- overrideAble: function overrideAble(ele) {
- return ele.cy().autounselectify() ? false : void 0;
- },
- on: "select",
- off: "unselect"
- });
- defineSwitchSet({
- field: "selectable",
- overrideField: function overrideField(ele) {
- return ele.cy().autounselectify() ? false : void 0;
- },
- on: "selectify",
- off: "unselectify"
- });
- elesfn$3.deselect = elesfn$3.unselect;
- elesfn$3.grabbed = function() {
- var ele = this[0];
- if (ele) {
- return ele._private.grabbed;
- }
- };
- defineSwitchSet({
- field: "active",
- on: "activate",
- off: "unactivate"
- });
- defineSwitchSet({
- field: "pannable",
- on: "panify",
- off: "unpanify"
- });
- elesfn$3.inactive = function() {
- var ele = this[0];
- if (ele) {
- return !ele._private.active;
- }
- };
- var elesfn$2 = {};
- var defineDagExtremity = function defineDagExtremity2(params) {
- return function dagExtremityImpl(selector2) {
- var eles = this;
- var ret = [];
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- if (!ele.isNode()) {
- continue;
- }
- var disqualified = false;
- var edges2 = ele.connectedEdges();
- for (var j = 0; j < edges2.length; j++) {
- var edge = edges2[j];
- var src = edge.source();
- var tgt = edge.target();
- if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {
- disqualified = true;
- break;
- }
- }
- if (!disqualified) {
- ret.push(ele);
- }
+ if (type3.implicitUnits) {
+ implicitUnits = type3.implicitUnits;
}
- return this.spawn(ret, true).filter(selector2);
- };
- };
- var defineDagOneHop = function defineDagOneHop2(params) {
- return function(selector2) {
- var eles = this;
- var oEles = [];
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- if (!ele.isNode()) {
- continue;
- }
- var edges2 = ele.connectedEdges();
- for (var j = 0; j < edges2.length; j++) {
- var edge = edges2[j];
- var src = edge.source();
- var tgt = edge.target();
- if (params.outgoing && src === ele) {
- oEles.push(edge);
- oEles.push(tgt);
- } else if (params.incoming && tgt === ele) {
- oEles.push(edge);
- oEles.push(src);
+ if (!type3.unitless) {
+ if (valueIsString) {
+ var unitsRegex = "px|em" + (type3.allowPercent ? "|\\%" : "");
+ if (units) {
+ unitsRegex = units;
}
- }
- }
- return this.spawn(oEles, true).filter(selector2);
- };
- };
- var defineDagAllHops = function defineDagAllHops2(params) {
- return function(selector2) {
- var eles = this;
- var sEles = [];
- var sElesIds = {};
- for (; ; ) {
- var next2 = params.outgoing ? eles.outgoers() : eles.incomers();
- if (next2.length === 0) {
- break;
- }
- var newNext = false;
- for (var i3 = 0; i3 < next2.length; i3++) {
- var n = next2[i3];
- var nid = n.id();
- if (!sElesIds[nid]) {
- sElesIds[nid] = true;
- sEles.push(n);
- newNext = true;
+ var match2 = value2.match("^(" + number6 + ")(" + unitsRegex + ")?$");
+ if (match2) {
+ value2 = match2[1];
+ units = match2[2] || implicitUnits;
}
+ } else if (!units || type3.implicitUnits) {
+ units = implicitUnits;
}
- if (!newNext) {
- break;
- }
- eles = next2;
}
- return this.spawn(sEles, true).filter(selector2);
- };
- };
- elesfn$2.clearTraversalCache = function() {
- for (var i3 = 0; i3 < this.length; i3++) {
- this[i3]._private.traversalCache = null;
- }
- };
- extend2(elesfn$2, {
- // get the root nodes in the DAG
- roots: defineDagExtremity({
- noIncomingEdges: true
- }),
- // get the leaf nodes in the DAG
- leaves: defineDagExtremity({
- noOutgoingEdges: true
- }),
- // normally called children in graph theory
- // these nodes =edges=> outgoing nodes
- outgoers: cache(defineDagOneHop({
- outgoing: true
- }), "outgoers"),
- // aka DAG descendants
- successors: defineDagAllHops({
- outgoing: true
- }),
- // normally called parents in graph theory
- // these nodes <=edges= incoming nodes
- incomers: cache(defineDagOneHop({
- incoming: true
- }), "incomers"),
- // aka DAG ancestors
- predecessors: defineDagAllHops({
- incoming: true
- })
- });
- extend2(elesfn$2, {
- neighborhood: cache(function(selector2) {
- var elements2 = [];
- var nodes2 = this.nodes();
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var node2 = nodes2[i3];
- var connectedEdges = node2.connectedEdges();
- for (var j = 0; j < connectedEdges.length; j++) {
- var edge = connectedEdges[j];
- var src = edge.source();
- var tgt = edge.target();
- var otherNode = node2 === src ? tgt : src;
- if (otherNode.length > 0) {
- elements2.push(otherNode[0]);
- }
- elements2.push(edge[0]);
- }
+ value2 = parseFloat(value2);
+ if (isNaN(value2) && type3.enums === void 0) {
+ return null;
}
- return this.spawn(elements2, true).filter(selector2);
- }, "neighborhood"),
- closedNeighborhood: function closedNeighborhood(selector2) {
- return this.neighborhood().add(this).filter(selector2);
- },
- openNeighborhood: function openNeighborhood(selector2) {
- return this.neighborhood(selector2);
- }
- });
- elesfn$2.neighbourhood = elesfn$2.neighborhood;
- elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;
- elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;
- extend2(elesfn$2, {
- source: cache(function sourceImpl(selector2) {
- var ele = this[0];
- var src;
- if (ele) {
- src = ele._private.source || ele.cy().collection();
+ if (isNaN(value2) && type3.enums !== void 0) {
+ value2 = passedValue;
+ return checkEnums();
}
- return src && selector2 ? src.filter(selector2) : src;
- }, "source"),
- target: cache(function targetImpl(selector2) {
- var ele = this[0];
- var tgt;
- if (ele) {
- tgt = ele._private.target || ele.cy().collection();
+ if (type3.integer && !integer2(value2)) {
+ return null;
}
- return tgt && selector2 ? tgt.filter(selector2) : tgt;
- }, "target"),
- sources: defineSourceFunction({
- attr: "source"
- }),
- targets: defineSourceFunction({
- attr: "target"
- })
- });
- function defineSourceFunction(params) {
- return function sourceImpl(selector2) {
- var sources = [];
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var src = ele._private[params.attr];
- if (src) {
- sources.push(src);
- }
+ if (type3.min !== void 0 && (value2 < type3.min || type3.strictMin && value2 === type3.min) || type3.max !== void 0 && (value2 > type3.max || type3.strictMax && value2 === type3.max)) {
+ return null;
}
- return this.spawn(sources, true).filter(selector2);
- };
- }
- extend2(elesfn$2, {
- edgesWith: cache(defineEdgesWithFunction(), "edgesWith"),
- edgesTo: cache(defineEdgesWithFunction({
- thisIsSrc: true
- }), "edgesTo")
- });
- function defineEdgesWithFunction(params) {
- return function edgesWithImpl(otherNodes) {
- var elements2 = [];
- var cy = this._private.cy;
- var p2 = params || {};
- if (string(otherNodes)) {
- otherNodes = cy.$(otherNodes);
- }
- for (var h = 0; h < otherNodes.length; h++) {
- var edges2 = otherNodes[h]._private.edges;
- for (var i3 = 0; i3 < edges2.length; i3++) {
- var edge = edges2[i3];
- var edgeData = edge._private.data;
- var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target);
- var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target);
- var edgeConnectsThisAndOther = thisToOther || otherToThis;
- if (!edgeConnectsThisAndOther) {
- continue;
- }
- if (p2.thisIsSrc || p2.thisIsTgt) {
- if (p2.thisIsSrc && !thisToOther) {
- continue;
- }
- if (p2.thisIsTgt && !otherToThis) {
- continue;
- }
- }
- elements2.push(edge);
- }
+ var ret = {
+ name,
+ value: value2,
+ strValue: "" + value2 + (units ? units : ""),
+ units,
+ bypass: propIsBypass
+ };
+ if (type3.unitless || units !== "px" && units !== "em") {
+ ret.pfValue = value2;
+ } else {
+ ret.pfValue = units === "px" || !units ? value2 : this.getEmSizeInPixels() * value2;
}
- return this.spawn(elements2, true);
- };
- }
- extend2(elesfn$2, {
- connectedEdges: cache(function(selector2) {
- var retEles = [];
- var eles = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var node2 = eles[i3];
- if (!node2.isNode()) {
- continue;
- }
- var edges2 = node2._private.edges;
- for (var j = 0; j < edges2.length; j++) {
- var edge = edges2[j];
- retEles.push(edge);
- }
+ if (units === "ms" || units === "s") {
+ ret.pfValue = units === "ms" ? value2 : 1e3 * value2;
}
- return this.spawn(retEles, true).filter(selector2);
- }, "connectedEdges"),
- connectedNodes: cache(function(selector2) {
- var retEles = [];
- var eles = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var edge = eles[i3];
- if (!edge.isEdge()) {
- continue;
- }
- retEles.push(edge.source()[0]);
- retEles.push(edge.target()[0]);
+ if (units === "deg" || units === "rad") {
+ ret.pfValue = units === "rad" ? value2 : deg2rad(value2);
}
- return this.spawn(retEles, true).filter(selector2);
- }, "connectedNodes"),
- parallelEdges: cache(defineParallelEdgesFunction(), "parallelEdges"),
- codirectedEdges: cache(defineParallelEdgesFunction({
- codirected: true
- }), "codirectedEdges")
- });
- function defineParallelEdgesFunction(params) {
- var defaults3 = {
- codirected: false
- };
- params = extend2({}, defaults3, params);
- return function parallelEdgesImpl(selector2) {
- var elements2 = [];
- var edges2 = this.edges();
- var p2 = params;
- for (var i3 = 0; i3 < edges2.length; i3++) {
- var edge1 = edges2[i3];
- var edge1_p = edge1._private;
- var src1 = edge1_p.source;
- var srcid1 = src1._private.data.id;
- var tgtid1 = edge1_p.data.target;
- var srcEdges1 = src1._private.edges;
- for (var j = 0; j < srcEdges1.length; j++) {
- var edge2 = srcEdges1[j];
- var edge2data = edge2._private.data;
- var tgtid2 = edge2data.target;
- var srcid2 = edge2data.source;
- var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;
- var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;
- if (p2.codirected && codirected || !p2.codirected && (codirected || oppdirected)) {
- elements2.push(edge2);
- }
- }
- }
- return this.spawn(elements2, true).filter(selector2);
- };
- }
- extend2(elesfn$2, {
- components: function components(root3) {
- var self2 = this;
- var cy = self2.cy();
- var visited = cy.collection();
- var unvisited = root3 == null ? self2.nodes() : root3.nodes();
- var components2 = [];
- if (root3 != null && unvisited.empty()) {
- unvisited = root3.sources();
+ if (units === "%") {
+ ret.pfValue = value2 / 100;
+ }
+ return ret;
+ } else if (type3.propList) {
+ var props = [];
+ var propsStr = "" + value2;
+ if (propsStr === "none") ;
+ else {
+ var propsSplit = propsStr.split(/\s*,\s*|\s+/);
+ for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {
+ var propName = propsSplit[_i2].trim();
+ if (self2.properties[propName]) {
+ props.push(propName);
+ } else {
+ warn("`" + propName + "` is not a valid property name");
+ }
+ }
+ if (props.length === 0) {
+ return null;
+ }
}
- var visitInComponent = function visitInComponent2(node2, component) {
- visited.merge(node2);
- unvisited.unmerge(node2);
- component.merge(node2);
+ return {
+ name,
+ value: props,
+ strValue: props.length === 0 ? "none" : props.join(" "),
+ bypass: propIsBypass
};
- if (unvisited.empty()) {
- return self2.spawn();
+ } else if (type3.color) {
+ var tuple = color2tuple(value2);
+ if (!tuple) {
+ return null;
}
- var _loop = function _loop2() {
- var cmpt = cy.collection();
- components2.push(cmpt);
- var root4 = unvisited[0];
- visitInComponent(root4, cmpt);
- self2.bfs({
- directed: false,
- roots: root4,
- visit: function visit(v) {
- return visitInComponent(v, cmpt);
- }
- });
- cmpt.forEach(function(node2) {
- node2.connectedEdges().forEach(function(e) {
- if (self2.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) {
- cmpt.merge(e);
- }
- });
- });
+ return {
+ name,
+ value: tuple,
+ pfValue: tuple,
+ strValue: "rgb(" + tuple[0] + "," + tuple[1] + "," + tuple[2] + ")",
+ // n.b. no spaces b/c of multiple support
+ bypass: propIsBypass
};
- do {
- _loop();
- } while (unvisited.length > 0);
- return components2;
- },
- component: function component() {
- var ele = this[0];
- return ele.cy().mutableElements().components(ele)[0];
- }
- });
- elesfn$2.componentsOf = elesfn$2.components;
- var Collection = function Collection2(cy, elements2) {
- var unique = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
- var removed = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
- if (cy === void 0) {
- error("A collection must have a reference to the core");
- return;
- }
- var map2 = new Map$22();
- var createdElements = false;
- if (!elements2) {
- elements2 = [];
- } else if (elements2.length > 0 && plainObject(elements2[0]) && !element(elements2[0])) {
- createdElements = true;
- var eles = [];
- var elesIds = new Set$12();
- for (var i3 = 0, l = elements2.length; i3 < l; i3++) {
- var json2 = elements2[i3];
- if (json2.data == null) {
- json2.data = {};
- }
- var _data = json2.data;
- if (_data.id == null) {
- _data.id = uuid();
- } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {
- continue;
+ } else if (type3.regex || type3.regexes) {
+ if (type3.enums) {
+ var enumProp = checkEnums();
+ if (enumProp) {
+ return enumProp;
}
- var ele = new Element(cy, json2, false);
- eles.push(ele);
- elesIds.add(_data.id);
- }
- elements2 = eles;
- }
- this.length = 0;
- for (var _i = 0, _l = elements2.length; _i < _l; _i++) {
- var element$1 = elements2[_i][0];
- if (element$1 == null) {
- continue;
}
- var id2 = element$1._private.data.id;
- if (!unique || !map2.has(id2)) {
- if (unique) {
- map2.set(id2, {
- index: this.length,
- ele: element$1
- });
+ var regexes = type3.regexes ? type3.regexes : [type3.regex];
+ for (var _i3 = 0; _i3 < regexes.length; _i3++) {
+ var regex2 = new RegExp(regexes[_i3]);
+ var m2 = regex2.exec(value2);
+ if (m2) {
+ return {
+ name,
+ value: type3.singleRegexMatchValue ? m2[1] : m2,
+ strValue: "" + value2,
+ bypass: propIsBypass
+ };
}
- this[this.length] = element$1;
- this.length++;
}
+ return null;
+ } else if (type3.string) {
+ return {
+ name,
+ value: "" + value2,
+ strValue: "" + value2,
+ bypass: propIsBypass
+ };
+ } else if (type3.enums) {
+ return checkEnums();
+ } else {
+ return null;
+ }
+ };
+ Style2 = /* @__PURE__ */ __name(function Style3(cy) {
+ if (!(this instanceof Style3)) {
+ return new Style3(cy);
+ }
+ if (!core(cy)) {
+ error("A style must have a core reference");
+ return;
}
this._private = {
- eles: this,
cy,
- get map() {
- if (this.lazyMap == null) {
- this.rebuildMap();
- }
- return this.lazyMap;
- },
- set map(m) {
- this.lazyMap = m;
- },
- rebuildMap: function rebuildMap() {
- var m = this.lazyMap = new Map$22();
- var eles2 = this.eles;
- for (var _i2 = 0; _i2 < eles2.length; _i2++) {
- var _ele = eles2[_i2];
- m.set(_ele.id(), {
- index: _i2,
- ele: _ele
- });
- }
- }
+ coreStyle: {}
};
- if (unique) {
- this._private.map = map2;
- }
- if (createdElements && !removed) {
- this.restore();
- }
- };
- var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);
- elesfn$1.instanceString = function() {
- return "collection";
- };
- elesfn$1.spawn = function(eles, unique) {
- return new Collection(this.cy(), eles, unique);
+ this.length = 0;
+ this.resetToDefault();
+ }, "Style");
+ styfn = Style2.prototype;
+ styfn.instanceString = function() {
+ return "style";
};
- elesfn$1.spawnSelf = function() {
- return this.spawn(this);
+ styfn.clear = function() {
+ var _p = this._private;
+ var cy = _p.cy;
+ var eles = cy.elements();
+ for (var i2 = 0; i2 < this.length; i2++) {
+ this[i2] = void 0;
+ }
+ this.length = 0;
+ _p.contextStyles = {};
+ _p.propDiffs = {};
+ this.cleanElements(eles, true);
+ eles.forEach(function(ele) {
+ var ele_p = ele[0]._private;
+ ele_p.styleDirty = true;
+ ele_p.appliedInitStyle = false;
+ });
+ return this;
};
- elesfn$1.cy = function() {
- return this._private.cy;
+ styfn.resetToDefault = function() {
+ this.clear();
+ this.addDefaultStylesheet();
+ return this;
};
- elesfn$1.renderer = function() {
- return this._private.cy.renderer();
+ styfn.core = function(propName) {
+ return this._private.coreStyle[propName] || this.getDefaultProperty(propName);
};
- elesfn$1.element = function() {
- return this[0];
+ styfn.selector = function(selectorStr) {
+ var selector = selectorStr === "core" ? null : new Selector(selectorStr);
+ var i2 = this.length++;
+ this[i2] = {
+ selector,
+ properties: [],
+ mappedProperties: [],
+ index: i2
+ };
+ return this;
};
- elesfn$1.collection = function() {
- if (collection(this)) {
- return this;
- } else {
- return new Collection(this._private.cy, [this]);
+ styfn.css = function() {
+ var self2 = this;
+ var args = arguments;
+ if (args.length === 1) {
+ var map5 = args[0];
+ for (var i2 = 0; i2 < self2.properties.length; i2++) {
+ var prop = self2.properties[i2];
+ var mapVal = map5[prop.name];
+ if (mapVal === void 0) {
+ mapVal = map5[dash2camel(prop.name)];
+ }
+ if (mapVal !== void 0) {
+ this.cssRule(prop.name, mapVal);
+ }
+ }
+ } else if (args.length === 2) {
+ this.cssRule(args[0], args[1]);
}
+ return this;
};
- elesfn$1.unique = function() {
- return new Collection(this._private.cy, this, true);
- };
- elesfn$1.hasElementWithId = function(id2) {
- id2 = "" + id2;
- return this._private.map.has(id2);
+ styfn.style = styfn.css;
+ styfn.cssRule = function(name, value2) {
+ var property2 = this.parse(name, value2);
+ if (property2) {
+ var i2 = this.length - 1;
+ this[i2].properties.push(property2);
+ this[i2].properties[property2.name] = property2;
+ if (property2.name.match(/pie-(\d+)-background-size/) && property2.value) {
+ this._private.hasPie = true;
+ }
+ if (property2.mapped) {
+ this[i2].mappedProperties.push(property2);
+ }
+ var currentSelectorIsCore = !this[i2].selector;
+ if (currentSelectorIsCore) {
+ this._private.coreStyle[property2.name] = property2;
+ }
+ }
+ return this;
};
- elesfn$1.getElementById = function(id2) {
- id2 = "" + id2;
- var cy = this._private.cy;
- var entry = this._private.map.get(id2);
- return entry ? entry.ele : new Collection(cy);
+ styfn.append = function(style3) {
+ if (stylesheet(style3)) {
+ style3.appendToStyle(this);
+ } else if (array2(style3)) {
+ this.appendFromJson(style3);
+ } else if (string(style3)) {
+ this.appendFromString(style3);
+ }
+ return this;
};
- elesfn$1.$id = elesfn$1.getElementById;
- elesfn$1.poolIndex = function() {
- var cy = this._private.cy;
- var eles = cy._private.elements;
- var id2 = this[0]._private.data.id;
- return eles._private.map.get(id2).index;
+ Style2.fromJson = function(cy, json3) {
+ var style3 = new Style2(cy);
+ style3.fromJson(json3);
+ return style3;
};
- elesfn$1.indexOf = function(ele) {
- var id2 = ele[0]._private.data.id;
- return this._private.map.get(id2).index;
+ Style2.fromString = function(cy, string3) {
+ return new Style2(cy).fromString(string3);
};
- elesfn$1.indexOfId = function(id2) {
- id2 = "" + id2;
- return this._private.map.get(id2).index;
+ [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function(props) {
+ extend2(styfn, props);
+ });
+ Style2.types = styfn.types;
+ Style2.properties = styfn.properties;
+ Style2.propertyGroups = styfn.propertyGroups;
+ Style2.propertyGroupNames = styfn.propertyGroupNames;
+ Style2.propertyGroupKeys = styfn.propertyGroupKeys;
+ corefn$2 = {
+ style: /* @__PURE__ */ __name(function style2(newStyle) {
+ if (newStyle) {
+ var s2 = this.setStyle(newStyle);
+ s2.update();
+ }
+ return this._private.style;
+ }, "style"),
+ setStyle: /* @__PURE__ */ __name(function setStyle2(style3) {
+ var _p = this._private;
+ if (stylesheet(style3)) {
+ _p.style = style3.generateStyle(this);
+ } else if (array2(style3)) {
+ _p.style = Style2.fromJson(this, style3);
+ } else if (string(style3)) {
+ _p.style = Style2.fromString(this, style3);
+ } else {
+ _p.style = Style2(this);
+ }
+ return _p.style;
+ }, "setStyle"),
+ // e.g. cy.data() changed => recalc ele mappers
+ updateStyle: /* @__PURE__ */ __name(function updateStyle2() {
+ this.mutableElements().updateStyle();
+ }, "updateStyle")
};
- elesfn$1.json = function(obj) {
- var ele = this.element();
- var cy = this.cy();
- if (ele == null && obj) {
+ defaultSelectionType = "single";
+ corefn$1 = {
+ autolock: /* @__PURE__ */ __name(function autolock(bool2) {
+ if (bool2 !== void 0) {
+ this._private.autolock = bool2 ? true : false;
+ } else {
+ return this._private.autolock;
+ }
return this;
- }
- if (ele == null) {
- return void 0;
- }
- var p2 = ele._private;
- if (plainObject(obj)) {
- cy.startBatch();
- if (obj.data) {
- ele.data(obj.data);
- var _data2 = p2.data;
- if (ele.isEdge()) {
- var move = false;
- var spec = {};
- var src = obj.data.source;
- var tgt = obj.data.target;
- if (src != null && src != _data2.source) {
- spec.source = "" + src;
- move = true;
+ }, "autolock"),
+ autoungrabify: /* @__PURE__ */ __name(function autoungrabify(bool2) {
+ if (bool2 !== void 0) {
+ this._private.autoungrabify = bool2 ? true : false;
+ } else {
+ return this._private.autoungrabify;
+ }
+ return this;
+ }, "autoungrabify"),
+ autounselectify: /* @__PURE__ */ __name(function autounselectify(bool2) {
+ if (bool2 !== void 0) {
+ this._private.autounselectify = bool2 ? true : false;
+ } else {
+ return this._private.autounselectify;
+ }
+ return this;
+ }, "autounselectify"),
+ selectionType: /* @__PURE__ */ __name(function selectionType(selType) {
+ var _p = this._private;
+ if (_p.selectionType == null) {
+ _p.selectionType = defaultSelectionType;
+ }
+ if (selType !== void 0) {
+ if (selType === "additive" || selType === "single") {
+ _p.selectionType = selType;
+ }
+ } else {
+ return _p.selectionType;
+ }
+ return this;
+ }, "selectionType"),
+ panningEnabled: /* @__PURE__ */ __name(function panningEnabled(bool2) {
+ if (bool2 !== void 0) {
+ this._private.panningEnabled = bool2 ? true : false;
+ } else {
+ return this._private.panningEnabled;
+ }
+ return this;
+ }, "panningEnabled"),
+ userPanningEnabled: /* @__PURE__ */ __name(function userPanningEnabled(bool2) {
+ if (bool2 !== void 0) {
+ this._private.userPanningEnabled = bool2 ? true : false;
+ } else {
+ return this._private.userPanningEnabled;
+ }
+ return this;
+ }, "userPanningEnabled"),
+ zoomingEnabled: /* @__PURE__ */ __name(function zoomingEnabled(bool2) {
+ if (bool2 !== void 0) {
+ this._private.zoomingEnabled = bool2 ? true : false;
+ } else {
+ return this._private.zoomingEnabled;
+ }
+ return this;
+ }, "zoomingEnabled"),
+ userZoomingEnabled: /* @__PURE__ */ __name(function userZoomingEnabled(bool2) {
+ if (bool2 !== void 0) {
+ this._private.userZoomingEnabled = bool2 ? true : false;
+ } else {
+ return this._private.userZoomingEnabled;
+ }
+ return this;
+ }, "userZoomingEnabled"),
+ boxSelectionEnabled: /* @__PURE__ */ __name(function boxSelectionEnabled(bool2) {
+ if (bool2 !== void 0) {
+ this._private.boxSelectionEnabled = bool2 ? true : false;
+ } else {
+ return this._private.boxSelectionEnabled;
+ }
+ return this;
+ }, "boxSelectionEnabled"),
+ pan: /* @__PURE__ */ __name(function pan() {
+ var args = arguments;
+ var pan2 = this._private.pan;
+ var dim, val, dims, x5, y5;
+ switch (args.length) {
+ case 0:
+ return pan2;
+ case 1:
+ if (string(args[0])) {
+ dim = args[0];
+ return pan2[dim];
+ } else if (plainObject(args[0])) {
+ if (!this._private.panningEnabled) {
+ return this;
+ }
+ dims = args[0];
+ x5 = dims.x;
+ y5 = dims.y;
+ if (number$1(x5)) {
+ pan2.x = x5;
+ }
+ if (number$1(y5)) {
+ pan2.y = y5;
+ }
+ this.emit("pan viewport");
}
- if (tgt != null && tgt != _data2.target) {
- spec.target = "" + tgt;
- move = true;
+ break;
+ case 2:
+ if (!this._private.panningEnabled) {
+ return this;
}
- if (move) {
- ele = ele.move(spec);
+ dim = args[0];
+ val = args[1];
+ if ((dim === "x" || dim === "y") && number$1(val)) {
+ pan2[dim] = val;
}
- } else {
- var newParentValSpecd = "parent" in obj.data;
- var parent = obj.data.parent;
- if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) {
- if (parent === void 0) {
- parent = null;
+ this.emit("pan viewport");
+ break;
+ }
+ this.notify("viewport");
+ return this;
+ }, "pan"),
+ panBy: /* @__PURE__ */ __name(function panBy(arg0, arg1) {
+ var args = arguments;
+ var pan2 = this._private.pan;
+ var dim, val, dims, x5, y5;
+ if (!this._private.panningEnabled) {
+ return this;
+ }
+ switch (args.length) {
+ case 1:
+ if (plainObject(arg0)) {
+ dims = args[0];
+ x5 = dims.x;
+ y5 = dims.y;
+ if (number$1(x5)) {
+ pan2.x += x5;
}
- if (parent != null) {
- parent = "" + parent;
+ if (number$1(y5)) {
+ pan2.y += y5;
}
- ele = ele.move({
- parent
- });
+ this.emit("pan viewport");
}
+ break;
+ case 2:
+ dim = arg0;
+ val = arg1;
+ if ((dim === "x" || dim === "y") && number$1(val)) {
+ pan2[dim] += val;
+ }
+ this.emit("pan viewport");
+ break;
+ }
+ this.notify("viewport");
+ return this;
+ }, "panBy"),
+ fit: /* @__PURE__ */ __name(function fit(elements3, padding3) {
+ var viewportState = this.getFitViewport(elements3, padding3);
+ if (viewportState) {
+ var _p = this._private;
+ _p.zoom = viewportState.zoom;
+ _p.pan = viewportState.pan;
+ this.emit("pan zoom viewport");
+ this.notify("viewport");
+ }
+ return this;
+ }, "fit"),
+ getFitViewport: /* @__PURE__ */ __name(function getFitViewport(elements3, padding3) {
+ if (number$1(elements3) && padding3 === void 0) {
+ padding3 = elements3;
+ elements3 = void 0;
+ }
+ if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
+ return;
+ }
+ var bb;
+ if (string(elements3)) {
+ var sel = elements3;
+ elements3 = this.$(sel);
+ } else if (boundingBox(elements3)) {
+ var bbe = elements3;
+ bb = {
+ x1: bbe.x1,
+ y1: bbe.y1,
+ x2: bbe.x2,
+ y2: bbe.y2
+ };
+ bb.w = bb.x2 - bb.x1;
+ bb.h = bb.y2 - bb.y1;
+ } else if (!elementOrCollection(elements3)) {
+ elements3 = this.mutableElements();
+ }
+ if (elementOrCollection(elements3) && elements3.empty()) {
+ return;
+ }
+ bb = bb || elements3.boundingBox();
+ var w3 = this.width();
+ var h2 = this.height();
+ var zoom2;
+ padding3 = number$1(padding3) ? padding3 : 0;
+ if (!isNaN(w3) && !isNaN(h2) && w3 > 0 && h2 > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {
+ zoom2 = Math.min((w3 - 2 * padding3) / bb.w, (h2 - 2 * padding3) / bb.h);
+ zoom2 = zoom2 > this._private.maxZoom ? this._private.maxZoom : zoom2;
+ zoom2 = zoom2 < this._private.minZoom ? this._private.minZoom : zoom2;
+ var pan2 = {
+ // now pan to middle
+ x: (w3 - zoom2 * (bb.x1 + bb.x2)) / 2,
+ y: (h2 - zoom2 * (bb.y1 + bb.y2)) / 2
+ };
+ return {
+ zoom: zoom2,
+ pan: pan2
+ };
+ }
+ return;
+ }, "getFitViewport"),
+ zoomRange: /* @__PURE__ */ __name(function zoomRange(min9, max10) {
+ var _p = this._private;
+ if (max10 == null) {
+ var opts = min9;
+ min9 = opts.min;
+ max10 = opts.max;
+ }
+ if (number$1(min9) && number$1(max10) && min9 <= max10) {
+ _p.minZoom = min9;
+ _p.maxZoom = max10;
+ } else if (number$1(min9) && max10 === void 0 && min9 <= _p.maxZoom) {
+ _p.minZoom = min9;
+ } else if (number$1(max10) && min9 === void 0 && max10 >= _p.minZoom) {
+ _p.maxZoom = max10;
+ }
+ return this;
+ }, "zoomRange"),
+ minZoom: /* @__PURE__ */ __name(function minZoom(zoom2) {
+ if (zoom2 === void 0) {
+ return this._private.minZoom;
+ } else {
+ return this.zoomRange({
+ min: zoom2
+ });
+ }
+ }, "minZoom"),
+ maxZoom: /* @__PURE__ */ __name(function maxZoom(zoom2) {
+ if (zoom2 === void 0) {
+ return this._private.maxZoom;
+ } else {
+ return this.zoomRange({
+ max: zoom2
+ });
+ }
+ }, "maxZoom"),
+ getZoomedViewport: /* @__PURE__ */ __name(function getZoomedViewport(params) {
+ var _p = this._private;
+ var currentPan = _p.pan;
+ var currentZoom = _p.zoom;
+ var pos;
+ var zoom2;
+ var bail = false;
+ if (!_p.zoomingEnabled) {
+ bail = true;
+ }
+ if (number$1(params)) {
+ zoom2 = params;
+ } else if (plainObject(params)) {
+ zoom2 = params.level;
+ if (params.position != null) {
+ pos = modelToRenderedPosition(params.position, currentZoom, currentPan);
+ } else if (params.renderedPosition != null) {
+ pos = params.renderedPosition;
+ }
+ if (pos != null && !_p.panningEnabled) {
+ bail = true;
}
}
- if (obj.position) {
- ele.position(obj.position);
+ zoom2 = zoom2 > _p.maxZoom ? _p.maxZoom : zoom2;
+ zoom2 = zoom2 < _p.minZoom ? _p.minZoom : zoom2;
+ if (bail || !number$1(zoom2) || zoom2 === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) {
+ return null;
}
- var checkSwitch = function checkSwitch2(k, trueFnName, falseFnName) {
- var obj_k = obj[k];
- if (obj_k != null && obj_k !== p2[k]) {
- if (obj_k) {
- ele[trueFnName]();
- } else {
- ele[falseFnName]();
- }
+ if (pos != null) {
+ var pan1 = currentPan;
+ var zoom1 = currentZoom;
+ var zoom22 = zoom2;
+ var pan2 = {
+ x: -zoom22 / zoom1 * (pos.x - pan1.x) + pos.x,
+ y: -zoom22 / zoom1 * (pos.y - pan1.y) + pos.y
+ };
+ return {
+ zoomed: true,
+ panned: true,
+ zoom: zoom22,
+ pan: pan2
+ };
+ } else {
+ return {
+ zoomed: true,
+ panned: false,
+ zoom: zoom2,
+ pan: currentPan
+ };
+ }
+ }, "getZoomedViewport"),
+ zoom: /* @__PURE__ */ __name(function zoom(params) {
+ if (params === void 0) {
+ return this._private.zoom;
+ } else {
+ var vp = this.getZoomedViewport(params);
+ var _p = this._private;
+ if (vp == null || !vp.zoomed) {
+ return this;
+ }
+ _p.zoom = vp.zoom;
+ if (vp.panned) {
+ _p.pan.x = vp.pan.x;
+ _p.pan.y = vp.pan.y;
+ }
+ this.emit("zoom" + (vp.panned ? " pan" : "") + " viewport");
+ this.notify("viewport");
+ return this;
+ }
+ }, "zoom"),
+ viewport: /* @__PURE__ */ __name(function viewport(opts) {
+ var _p = this._private;
+ var zoomDefd = true;
+ var panDefd = true;
+ var events = [];
+ var zoomFailed = false;
+ var panFailed = false;
+ if (!opts) {
+ return this;
+ }
+ if (!number$1(opts.zoom)) {
+ zoomDefd = false;
+ }
+ if (!plainObject(opts.pan)) {
+ panDefd = false;
+ }
+ if (!zoomDefd && !panDefd) {
+ return this;
+ }
+ if (zoomDefd) {
+ var z2 = opts.zoom;
+ if (z2 < _p.minZoom || z2 > _p.maxZoom || !_p.zoomingEnabled) {
+ zoomFailed = true;
+ } else {
+ _p.zoom = z2;
+ events.push("zoom");
+ }
+ }
+ if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {
+ var p3 = opts.pan;
+ if (number$1(p3.x)) {
+ _p.pan.x = p3.x;
+ panFailed = false;
+ }
+ if (number$1(p3.y)) {
+ _p.pan.y = p3.y;
+ panFailed = false;
+ }
+ if (!panFailed) {
+ events.push("pan");
}
+ }
+ if (events.length > 0) {
+ events.push("viewport");
+ this.emit(events.join(" "));
+ this.notify("viewport");
+ }
+ return this;
+ }, "viewport"),
+ center: /* @__PURE__ */ __name(function center2(elements3) {
+ var pan2 = this.getCenterPan(elements3);
+ if (pan2) {
+ this._private.pan = pan2;
+ this.emit("pan viewport");
+ this.notify("viewport");
+ }
+ return this;
+ }, "center"),
+ getCenterPan: /* @__PURE__ */ __name(function getCenterPan(elements3, zoom2) {
+ if (!this._private.panningEnabled) {
+ return;
+ }
+ if (string(elements3)) {
+ var selector = elements3;
+ elements3 = this.mutableElements().filter(selector);
+ } else if (!elementOrCollection(elements3)) {
+ elements3 = this.mutableElements();
+ }
+ if (elements3.length === 0) {
+ return;
+ }
+ var bb = elements3.boundingBox();
+ var w3 = this.width();
+ var h2 = this.height();
+ zoom2 = zoom2 === void 0 ? this._private.zoom : zoom2;
+ var pan2 = {
+ // middle
+ x: (w3 - zoom2 * (bb.x1 + bb.x2)) / 2,
+ y: (h2 - zoom2 * (bb.y1 + bb.y2)) / 2
};
- checkSwitch("removed", "remove", "restore");
- checkSwitch("selected", "select", "unselect");
- checkSwitch("selectable", "selectify", "unselectify");
- checkSwitch("locked", "lock", "unlock");
- checkSwitch("grabbable", "grabify", "ungrabify");
- checkSwitch("pannable", "panify", "unpanify");
- if (obj.classes != null) {
- ele.classes(obj.classes);
+ return pan2;
+ }, "getCenterPan"),
+ reset: /* @__PURE__ */ __name(function reset3() {
+ if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
+ return this;
}
- cy.endBatch();
+ this.viewport({
+ pan: {
+ x: 0,
+ y: 0
+ },
+ zoom: 1
+ });
return this;
- } else if (obj === void 0) {
- var json2 = {
- data: copy2(p2.data),
- position: copy2(p2.position),
- group: p2.group,
- removed: p2.removed,
- selected: p2.selected,
- selectable: p2.selectable,
- locked: p2.locked,
- grabbable: p2.grabbable,
- pannable: p2.pannable,
- classes: null
- };
- json2.classes = "";
- var i3 = 0;
- p2.classes.forEach(function(cls) {
- return json2.classes += i3++ === 0 ? cls : " " + cls;
+ }, "reset"),
+ invalidateSize: /* @__PURE__ */ __name(function invalidateSize() {
+ this._private.sizeCache = null;
+ }, "invalidateSize"),
+ size: /* @__PURE__ */ __name(function size4() {
+ var _p = this._private;
+ var container2 = _p.container;
+ var cy = this;
+ return _p.sizeCache = _p.sizeCache || (container2 ? function() {
+ var style3 = cy.window().getComputedStyle(container2);
+ var val = /* @__PURE__ */ __name(function val2(name) {
+ return parseFloat(style3.getPropertyValue(name));
+ }, "val");
+ return {
+ width: container2.clientWidth - val("padding-left") - val("padding-right"),
+ height: container2.clientHeight - val("padding-top") - val("padding-bottom")
+ };
+ }() : {
+ // fallback if no container (not 0 b/c can be used for dividing etc)
+ width: 1,
+ height: 1
});
- return json2;
- }
+ }, "size"),
+ width: /* @__PURE__ */ __name(function width2() {
+ return this.size().width;
+ }, "width"),
+ height: /* @__PURE__ */ __name(function height() {
+ return this.size().height;
+ }, "height"),
+ extent: /* @__PURE__ */ __name(function extent() {
+ var pan2 = this._private.pan;
+ var zoom2 = this._private.zoom;
+ var rb = this.renderedExtent();
+ var b2 = {
+ x1: (rb.x1 - pan2.x) / zoom2,
+ x2: (rb.x2 - pan2.x) / zoom2,
+ y1: (rb.y1 - pan2.y) / zoom2,
+ y2: (rb.y2 - pan2.y) / zoom2
+ };
+ b2.w = b2.x2 - b2.x1;
+ b2.h = b2.y2 - b2.y1;
+ return b2;
+ }, "extent"),
+ renderedExtent: /* @__PURE__ */ __name(function renderedExtent() {
+ var width3 = this.width();
+ var height2 = this.height();
+ return {
+ x1: 0,
+ y1: 0,
+ x2: width3,
+ y2: height2,
+ w: width3,
+ h: height2
+ };
+ }, "renderedExtent"),
+ multiClickDebounceTime: /* @__PURE__ */ __name(function multiClickDebounceTime(_int) {
+ if (_int) this._private.multiClickDebounceTime = _int;
+ else return this._private.multiClickDebounceTime;
+ return this;
+ }, "multiClickDebounceTime")
};
- elesfn$1.jsons = function() {
- var jsons = [];
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var json2 = ele.json();
- jsons.push(json2);
- }
- return jsons;
+ corefn$1.centre = corefn$1.center;
+ corefn$1.autolockNodes = corefn$1.autolock;
+ corefn$1.autoungrabifyNodes = corefn$1.autoungrabify;
+ fn2 = {
+ data: define2.data({
+ field: "data",
+ bindingEvent: "data",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "data",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ updateStyle: true
+ }),
+ removeData: define2.removeData({
+ field: "data",
+ event: "data",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ updateStyle: true
+ }),
+ scratch: define2.data({
+ field: "scratch",
+ bindingEvent: "scratch",
+ allowBinding: true,
+ allowSetting: true,
+ settingEvent: "scratch",
+ settingTriggersEvent: true,
+ triggerFnName: "trigger",
+ allowGetting: true,
+ updateStyle: true
+ }),
+ removeScratch: define2.removeData({
+ field: "scratch",
+ event: "scratch",
+ triggerFnName: "trigger",
+ triggerEvent: true,
+ updateStyle: true
+ })
};
- elesfn$1.clone = function() {
- var cy = this.cy();
- var elesArr = [];
- for (var i3 = 0; i3 < this.length; i3++) {
- var ele = this[i3];
- var json2 = ele.json();
- var clone3 = new Element(cy, json2, false);
- elesArr.push(clone3);
+ fn2.attr = fn2.data;
+ fn2.removeAttr = fn2.removeData;
+ Core = /* @__PURE__ */ __name(function Core2(opts) {
+ var cy = this;
+ opts = extend2({}, opts);
+ var container2 = opts.container;
+ if (container2 && !htmlElement(container2) && htmlElement(container2[0])) {
+ container2 = container2[0];
}
- return new Collection(cy, elesArr);
- };
- elesfn$1.copy = elesfn$1.clone;
- elesfn$1.restore = function() {
- var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
- var addToPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- var self2 = this;
- var cy = self2.cy();
- var cy_p = cy._private;
- var nodes2 = [];
- var edges2 = [];
- var elements2;
- for (var _i3 = 0, l = self2.length; _i3 < l; _i3++) {
- var ele = self2[_i3];
- if (addToPool && !ele.removed()) {
- continue;
+ var reg = container2 ? container2._cyreg : null;
+ reg = reg || {};
+ if (reg && reg.cy) {
+ reg.cy.destroy();
+ reg = {};
+ }
+ var readies = reg.readies = reg.readies || [];
+ if (container2) {
+ container2._cyreg = reg;
+ }
+ reg.cy = cy;
+ var head2 = _window !== void 0 && container2 !== void 0 && !opts.headless;
+ var options3 = opts;
+ options3.layout = extend2({
+ name: head2 ? "grid" : "null"
+ }, options3.layout);
+ options3.renderer = extend2({
+ name: head2 ? "canvas" : "null"
+ }, options3.renderer);
+ var defVal = /* @__PURE__ */ __name(function defVal2(def2, val, altVal) {
+ if (val !== void 0) {
+ return val;
+ } else if (altVal !== void 0) {
+ return altVal;
+ } else {
+ return def2;
}
- if (ele.isNode()) {
- nodes2.push(ele);
+ }, "defVal");
+ var _p = this._private = {
+ container: container2,
+ // html dom ele container
+ ready: false,
+ // whether ready has been triggered
+ options: options3,
+ // cached options
+ elements: new Collection(this),
+ // elements in the graph
+ listeners: [],
+ // list of listeners
+ aniEles: new Collection(this),
+ // elements being animated
+ data: options3.data || {},
+ // data for the core
+ scratch: {},
+ // scratch object for core
+ layout: null,
+ renderer: null,
+ destroyed: false,
+ // whether destroy was called
+ notificationsEnabled: true,
+ // whether notifications are sent to the renderer
+ minZoom: 1e-50,
+ maxZoom: 1e50,
+ zoomingEnabled: defVal(true, options3.zoomingEnabled),
+ userZoomingEnabled: defVal(true, options3.userZoomingEnabled),
+ panningEnabled: defVal(true, options3.panningEnabled),
+ userPanningEnabled: defVal(true, options3.userPanningEnabled),
+ boxSelectionEnabled: defVal(true, options3.boxSelectionEnabled),
+ autolock: defVal(false, options3.autolock, options3.autolockNodes),
+ autoungrabify: defVal(false, options3.autoungrabify, options3.autoungrabifyNodes),
+ autounselectify: defVal(false, options3.autounselectify),
+ styleEnabled: options3.styleEnabled === void 0 ? head2 : options3.styleEnabled,
+ zoom: number$1(options3.zoom) ? options3.zoom : 1,
+ pan: {
+ x: plainObject(options3.pan) && number$1(options3.pan.x) ? options3.pan.x : 0,
+ y: plainObject(options3.pan) && number$1(options3.pan.y) ? options3.pan.y : 0
+ },
+ animation: {
+ // object for currently-running animations
+ current: [],
+ queue: []
+ },
+ hasCompoundNodes: false,
+ multiClickDebounceTime: defVal(250, options3.multiClickDebounceTime)
+ };
+ this.createEmitter();
+ this.selectionType(options3.selectionType);
+ this.zoomRange({
+ min: options3.minZoom,
+ max: options3.maxZoom
+ });
+ var loadExtData = /* @__PURE__ */ __name(function loadExtData2(extData, next3) {
+ var anyIsPromise = extData.some(promise);
+ if (anyIsPromise) {
+ return Promise$1.all(extData).then(next3);
} else {
- edges2.push(ele);
+ next3(extData);
}
+ }, "loadExtData");
+ if (_p.styleEnabled) {
+ cy.setStyle([]);
}
- elements2 = nodes2.concat(edges2);
- var i3;
- var removeFromElements = function removeFromElements2() {
- elements2.splice(i3, 1);
- i3--;
- };
- for (i3 = 0; i3 < elements2.length; i3++) {
- var _ele2 = elements2[i3];
- var _private = _ele2._private;
- var _data3 = _private.data;
- _ele2.clearTraversalCache();
- if (!addToPool && !_private.removed)
- ;
- else if (_data3.id === void 0) {
- _data3.id = uuid();
- } else if (number$12(_data3.id)) {
- _data3.id = "" + _data3.id;
- } else if (emptyString(_data3.id) || !string(_data3.id)) {
- error("Can not create element with invalid string ID `" + _data3.id + "`");
- removeFromElements();
- continue;
- } else if (cy.hasElementWithId(_data3.id)) {
- error("Can not create second element with ID `" + _data3.id + "`");
- removeFromElements();
- continue;
+ var rendererOptions = extend2({}, options3, options3.renderer);
+ cy.initRenderer(rendererOptions);
+ var setElesAndLayout = /* @__PURE__ */ __name(function setElesAndLayout2(elements3, onload, ondone) {
+ cy.notifications(false);
+ var oldEles = cy.mutableElements();
+ if (oldEles.length > 0) {
+ oldEles.remove();
}
- var id2 = _data3.id;
- if (_ele2.isNode()) {
- var pos = _private.position;
- if (pos.x == null) {
- pos.x = 0;
- }
- if (pos.y == null) {
- pos.y = 0;
+ if (elements3 != null) {
+ if (plainObject(elements3) || array2(elements3)) {
+ cy.add(elements3);
}
}
- if (_ele2.isEdge()) {
- var edge = _ele2;
- var fields = ["source", "target"];
- var fieldsLength = fields.length;
- var badSourceOrTarget = false;
- for (var j = 0; j < fieldsLength; j++) {
- var field = fields[j];
- var val = _data3[field];
- if (number$12(val)) {
- val = _data3[field] = "" + _data3[field];
- }
- if (val == null || val === "") {
- error("Can not create edge `" + id2 + "` with unspecified " + field);
- badSourceOrTarget = true;
- } else if (!cy.hasElementWithId(val)) {
- error("Can not create edge `" + id2 + "` with nonexistant " + field + " `" + val + "`");
- badSourceOrTarget = true;
- }
+ cy.one("layoutready", function(e3) {
+ cy.notifications(true);
+ cy.emit(e3);
+ cy.one("load", onload);
+ cy.emitAndNotify("load");
+ }).one("layoutstop", function() {
+ cy.one("done", ondone);
+ cy.emit("done");
+ });
+ var layoutOpts = extend2({}, cy._private.options.layout);
+ layoutOpts.eles = cy.elements();
+ cy.layout(layoutOpts).run();
+ }, "setElesAndLayout");
+ loadExtData([options3.style, options3.elements], function(thens) {
+ var initStyle = thens[0];
+ var initEles = thens[1];
+ if (_p.styleEnabled) {
+ cy.style().append(initStyle);
+ }
+ setElesAndLayout(initEles, function() {
+ cy.startAnimationLoop();
+ _p.ready = true;
+ if (fn$6(options3.ready)) {
+ cy.on("ready", options3.ready);
}
- if (badSourceOrTarget) {
- removeFromElements();
- continue;
+ for (var i2 = 0; i2 < readies.length; i2++) {
+ var fn3 = readies[i2];
+ cy.on("ready", fn3);
}
- var src = cy.getElementById(_data3.source);
- var tgt = cy.getElementById(_data3.target);
- if (src.same(tgt)) {
- src._private.edges.push(edge);
- } else {
- src._private.edges.push(edge);
- tgt._private.edges.push(edge);
+ if (reg) {
+ reg.readies = [];
}
- edge._private.source = src;
- edge._private.target = tgt;
+ cy.emit("ready");
+ }, options3.done);
+ });
+ }, "Core");
+ corefn = Core.prototype;
+ extend2(corefn, {
+ instanceString: /* @__PURE__ */ __name(function instanceString3() {
+ return "core";
+ }, "instanceString"),
+ isReady: /* @__PURE__ */ __name(function isReady() {
+ return this._private.ready;
+ }, "isReady"),
+ destroyed: /* @__PURE__ */ __name(function destroyed() {
+ return this._private.destroyed;
+ }, "destroyed"),
+ ready: /* @__PURE__ */ __name(function ready(fn3) {
+ if (this.isReady()) {
+ this.emitter().emit("ready", [], fn3);
+ } else {
+ this.on("ready", fn3);
}
- _private.map = new Map$22();
- _private.map.set(id2, {
- ele: _ele2,
- index: 0
- });
- _private.removed = false;
- if (addToPool) {
- cy.addToPool(_ele2);
+ return this;
+ }, "ready"),
+ destroy: /* @__PURE__ */ __name(function destroy() {
+ var cy = this;
+ if (cy.destroyed()) return;
+ cy.stopAnimationLoop();
+ cy.destroyRenderer();
+ this.emit("destroy");
+ cy._private.destroyed = true;
+ return cy;
+ }, "destroy"),
+ hasElementWithId: /* @__PURE__ */ __name(function hasElementWithId(id27) {
+ return this._private.elements.hasElementWithId(id27);
+ }, "hasElementWithId"),
+ getElementById: /* @__PURE__ */ __name(function getElementById2(id27) {
+ return this._private.elements.getElementById(id27);
+ }, "getElementById"),
+ hasCompoundNodes: /* @__PURE__ */ __name(function hasCompoundNodes() {
+ return this._private.hasCompoundNodes;
+ }, "hasCompoundNodes"),
+ headless: /* @__PURE__ */ __name(function headless() {
+ return this._private.renderer.isHeadless();
+ }, "headless"),
+ styleEnabled: /* @__PURE__ */ __name(function styleEnabled() {
+ return this._private.styleEnabled;
+ }, "styleEnabled"),
+ addToPool: /* @__PURE__ */ __name(function addToPool(eles) {
+ this._private.elements.merge(eles);
+ return this;
+ }, "addToPool"),
+ removeFromPool: /* @__PURE__ */ __name(function removeFromPool(eles) {
+ this._private.elements.unmerge(eles);
+ return this;
+ }, "removeFromPool"),
+ container: /* @__PURE__ */ __name(function container() {
+ return this._private.container || null;
+ }, "container"),
+ window: /* @__PURE__ */ __name(function window2() {
+ var container2 = this._private.container;
+ if (container2 == null) return _window;
+ var ownerDocument = this._private.container.ownerDocument;
+ if (ownerDocument === void 0 || ownerDocument == null) {
+ return _window;
+ }
+ return ownerDocument.defaultView || _window;
+ }, "window"),
+ mount: /* @__PURE__ */ __name(function mount(container2) {
+ if (container2 == null) {
+ return;
}
- }
- for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
- var node2 = nodes2[_i4];
- var _data4 = node2._private.data;
- if (number$12(_data4.parent)) {
- _data4.parent = "" + _data4.parent;
+ var cy = this;
+ var _p = cy._private;
+ var options3 = _p.options;
+ if (!htmlElement(container2) && htmlElement(container2[0])) {
+ container2 = container2[0];
}
- var parentId = _data4.parent;
- var specifiedParent = parentId != null;
- if (specifiedParent || node2._private.parent) {
- var parent = node2._private.parent ? cy.collection().merge(node2._private.parent) : cy.getElementById(parentId);
- if (parent.empty()) {
- _data4.parent = void 0;
- } else if (parent[0].removed()) {
- warn("Node added with missing parent, reference to parent removed");
- _data4.parent = void 0;
- node2._private.parent = null;
- } else {
- var selfAsParent = false;
- var ancestor = parent;
- while (!ancestor.empty()) {
- if (node2.same(ancestor)) {
- selfAsParent = true;
- _data4.parent = void 0;
- break;
+ cy.stopAnimationLoop();
+ cy.destroyRenderer();
+ _p.container = container2;
+ _p.styleEnabled = true;
+ cy.invalidateSize();
+ cy.initRenderer(extend2({}, options3, options3.renderer, {
+ // allow custom renderer name to be re-used, otherwise use canvas
+ name: options3.renderer.name === "null" ? "canvas" : options3.renderer.name
+ }));
+ cy.startAnimationLoop();
+ cy.style(options3.style);
+ cy.emit("mount");
+ return cy;
+ }, "mount"),
+ unmount: /* @__PURE__ */ __name(function unmount() {
+ var cy = this;
+ cy.stopAnimationLoop();
+ cy.destroyRenderer();
+ cy.initRenderer({
+ name: "null"
+ });
+ cy.emit("unmount");
+ return cy;
+ }, "unmount"),
+ options: /* @__PURE__ */ __name(function options2() {
+ return copy4(this._private.options);
+ }, "options"),
+ json: /* @__PURE__ */ __name(function json(obj) {
+ var cy = this;
+ var _p = cy._private;
+ var eles = cy.mutableElements();
+ var getFreshRef = /* @__PURE__ */ __name(function getFreshRef2(ele) {
+ return cy.getElementById(ele.id());
+ }, "getFreshRef");
+ if (plainObject(obj)) {
+ cy.startBatch();
+ if (obj.elements) {
+ var idInJson = {};
+ var updateEles = /* @__PURE__ */ __name(function updateEles2(jsons, gr2) {
+ var toAdd = [];
+ var toMod = [];
+ for (var i3 = 0; i3 < jsons.length; i3++) {
+ var json4 = jsons[i3];
+ if (!json4.data.id) {
+ warn("cy.json() cannot handle elements without an ID attribute");
+ continue;
+ }
+ var id27 = "" + json4.data.id;
+ var ele = cy.getElementById(id27);
+ idInJson[id27] = true;
+ if (ele.length !== 0) {
+ toMod.push({
+ ele,
+ json: json4
+ });
+ } else {
+ if (gr2) {
+ json4.group = gr2;
+ toAdd.push(json4);
+ } else {
+ toAdd.push(json4);
+ }
+ }
+ }
+ cy.add(toAdd);
+ for (var _i = 0; _i < toMod.length; _i++) {
+ var _toMod$_i = toMod[_i], _ele = _toMod$_i.ele, _json = _toMod$_i.json;
+ _ele.json(_json);
+ }
+ }, "updateEles");
+ if (array2(obj.elements)) {
+ updateEles(obj.elements);
+ } else {
+ var grs = ["nodes", "edges"];
+ for (var i2 = 0; i2 < grs.length; i2++) {
+ var gr = grs[i2];
+ var elements3 = obj.elements[gr];
+ if (array2(elements3)) {
+ updateEles(elements3, gr);
+ }
}
- ancestor = ancestor.parent();
}
- if (!selfAsParent) {
- parent[0]._private.children.push(node2);
- node2._private.parent = parent[0];
- cy_p.hasCompoundNodes = true;
+ var parentsToRemove = cy.collection();
+ eles.filter(function(ele) {
+ return !idInJson[ele.id()];
+ }).forEach(function(ele) {
+ if (ele.isParent()) {
+ parentsToRemove.merge(ele);
+ } else {
+ ele.remove();
+ }
+ });
+ parentsToRemove.forEach(function(ele) {
+ return ele.children().move({
+ parent: null
+ });
+ });
+ parentsToRemove.forEach(function(ele) {
+ return getFreshRef(ele).remove();
+ });
+ }
+ if (obj.style) {
+ cy.style(obj.style);
+ }
+ if (obj.zoom != null && obj.zoom !== _p.zoom) {
+ cy.zoom(obj.zoom);
+ }
+ if (obj.pan) {
+ if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {
+ cy.pan(obj.pan);
}
}
- }
- }
- if (elements2.length > 0) {
- var restored = elements2.length === self2.length ? self2 : new Collection(cy, elements2);
- for (var _i5 = 0; _i5 < restored.length; _i5++) {
- var _ele3 = restored[_i5];
- if (_ele3.isNode()) {
- continue;
+ if (obj.data) {
+ cy.data(obj.data);
}
- _ele3.parallelEdges().clearTraversalCache();
- _ele3.source().clearTraversalCache();
- _ele3.target().clearTraversalCache();
- }
- var toUpdateStyle;
- if (cy_p.hasCompoundNodes) {
- toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());
+ var fields = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"];
+ for (var _i2 = 0; _i2 < fields.length; _i2++) {
+ var f3 = fields[_i2];
+ if (obj[f3] != null) {
+ cy[f3](obj[f3]);
+ }
+ }
+ cy.endBatch();
+ return this;
} else {
- toUpdateStyle = restored;
- }
- toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);
- if (notifyRenderer) {
- restored.emitAndNotify("add");
- } else if (addToPool) {
- restored.emit("add");
+ var flat = !!obj;
+ var json3 = {};
+ if (flat) {
+ json3.elements = this.elements().map(function(ele) {
+ return ele.json();
+ });
+ } else {
+ json3.elements = {};
+ eles.forEach(function(ele) {
+ var group2 = ele.group();
+ if (!json3.elements[group2]) {
+ json3.elements[group2] = [];
+ }
+ json3.elements[group2].push(ele.json());
+ });
+ }
+ if (this._private.styleEnabled) {
+ json3.style = cy.style().json();
+ }
+ json3.data = copy4(cy.data());
+ var options3 = _p.options;
+ json3.zoomingEnabled = _p.zoomingEnabled;
+ json3.userZoomingEnabled = _p.userZoomingEnabled;
+ json3.zoom = _p.zoom;
+ json3.minZoom = _p.minZoom;
+ json3.maxZoom = _p.maxZoom;
+ json3.panningEnabled = _p.panningEnabled;
+ json3.userPanningEnabled = _p.userPanningEnabled;
+ json3.pan = copy4(_p.pan);
+ json3.boxSelectionEnabled = _p.boxSelectionEnabled;
+ json3.renderer = copy4(options3.renderer);
+ json3.hideEdgesOnViewport = options3.hideEdgesOnViewport;
+ json3.textureOnViewport = options3.textureOnViewport;
+ json3.wheelSensitivity = options3.wheelSensitivity;
+ json3.motionBlur = options3.motionBlur;
+ json3.multiClickDebounceTime = options3.multiClickDebounceTime;
+ return json3;
}
- }
- return self2;
- };
- elesfn$1.removed = function() {
- var ele = this[0];
- return ele && ele._private.removed;
+ }, "json")
+ });
+ corefn.$id = corefn.getElementById;
+ [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn2].forEach(function(props) {
+ extend2(corefn, props);
+ });
+ defaults$7 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ directed: false,
+ // whether the tree is directed downwards (or edges can point in any direction if false)
+ padding: 30,
+ // padding on fit
+ circle: false,
+ // put depths in concentric circles if true, put depths top down if false
+ grid: false,
+ // whether to create an even grid into which the DAG is placed (circle:false only)
+ spacingFactor: 1.75,
+ // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ roots: void 0,
+ // the roots of the trees
+ depthSort: void 0,
+ // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled,
+ animateFilter: /* @__PURE__ */ __name(function animateFilter(node2, i2) {
+ return true;
+ }, "animateFilter"),
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: /* @__PURE__ */ __name(function transform2(node2, position5) {
+ return position5;
+ }, "transform")
+ // transform a given node position. Useful for changing flow direction in discrete layouts
};
- elesfn$1.inside = function() {
- var ele = this[0];
- return ele && !ele._private.removed;
+ deprecatedOptionDefaults = {
+ maximal: false,
+ // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also
+ acyclic: false
+ // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops
};
- elesfn$1.remove = function() {
- var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
- var removeFromPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- var self2 = this;
- var elesToRemove = [];
- var elesToRemoveIds = {};
- var cy = self2._private.cy;
- function addConnectedEdges(node2) {
- var edges2 = node2._private.edges;
- for (var i4 = 0; i4 < edges2.length; i4++) {
- add(edges2[i4]);
+ getInfo = /* @__PURE__ */ __name(function getInfo2(ele) {
+ return ele.scratch("breadthfirst");
+ }, "getInfo");
+ setInfo = /* @__PURE__ */ __name(function setInfo2(ele, obj) {
+ return ele.scratch("breadthfirst", obj);
+ }, "setInfo");
+ __name(BreadthFirstLayout, "BreadthFirstLayout");
+ BreadthFirstLayout.prototype.run = function() {
+ var params = this.options;
+ var options3 = params;
+ var cy = params.cy;
+ var eles = options3.eles;
+ var nodes6 = eles.nodes().filter(function(n3) {
+ return !n3.isParent();
+ });
+ var graph = eles;
+ var directed = options3.directed;
+ var maximal = options3.acyclic || options3.maximal || options3.maximalAdjustments > 0;
+ var bb = makeBoundingBox(options3.boundingBox ? options3.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var roots;
+ if (elementOrCollection(options3.roots)) {
+ roots = options3.roots;
+ } else if (array2(options3.roots)) {
+ var rootsArray = [];
+ for (var i2 = 0; i2 < options3.roots.length; i2++) {
+ var id27 = options3.roots[i2];
+ var ele = cy.getElementById(id27);
+ rootsArray.push(ele);
+ }
+ roots = cy.collection(rootsArray);
+ } else if (string(options3.roots)) {
+ roots = cy.$(options3.roots);
+ } else {
+ if (directed) {
+ roots = nodes6.roots();
+ } else {
+ var components3 = eles.components();
+ roots = cy.collection();
+ var _loop = /* @__PURE__ */ __name(function _loop2(_i3) {
+ var comp = components3[_i3];
+ var maxDegree = comp.maxDegree(false);
+ var compRoots = comp.filter(function(ele2) {
+ return ele2.degree(false) === maxDegree;
+ });
+ roots = roots.add(compRoots);
+ }, "_loop");
+ for (var _i = 0; _i < components3.length; _i++) {
+ _loop(_i);
+ }
}
}
- function addChildren2(node2) {
- var children2 = node2._private.children;
- for (var i4 = 0; i4 < children2.length; i4++) {
- add(children2[i4]);
+ var depths = [];
+ var foundByBfs = {};
+ var addToDepth = /* @__PURE__ */ __name(function addToDepth2(ele2, d2) {
+ if (depths[d2] == null) {
+ depths[d2] = [];
+ }
+ var i3 = depths[d2].length;
+ depths[d2].push(ele2);
+ setInfo(ele2, {
+ index: i3,
+ depth: d2
+ });
+ }, "addToDepth");
+ var changeDepth = /* @__PURE__ */ __name(function changeDepth2(ele2, newDepth) {
+ var _getInfo = getInfo(ele2), depth = _getInfo.depth, index = _getInfo.index;
+ depths[depth][index] = null;
+ addToDepth(ele2, newDepth);
+ }, "changeDepth");
+ graph.bfs({
+ roots,
+ directed: options3.directed,
+ visit: /* @__PURE__ */ __name(function visit(node2, edge, pNode, i3, depth) {
+ var ele2 = node2[0];
+ var id28 = ele2.id();
+ addToDepth(ele2, depth);
+ foundByBfs[id28] = true;
+ }, "visit")
+ });
+ var orphanNodes = [];
+ for (var _i2 = 0; _i2 < nodes6.length; _i2++) {
+ var _ele = nodes6[_i2];
+ if (foundByBfs[_ele.id()]) {
+ continue;
+ } else {
+ orphanNodes.push(_ele);
+ }
+ }
+ var assignDepthsAt = /* @__PURE__ */ __name(function assignDepthsAt2(i3) {
+ var eles2 = depths[i3];
+ for (var j2 = 0; j2 < eles2.length; j2++) {
+ var _ele2 = eles2[j2];
+ if (_ele2 == null) {
+ eles2.splice(j2, 1);
+ j2--;
+ continue;
+ }
+ setInfo(_ele2, {
+ depth: i3,
+ index: j2
+ });
+ }
+ }, "assignDepthsAt");
+ var assignDepths = /* @__PURE__ */ __name(function assignDepths2() {
+ for (var _i3 = 0; _i3 < depths.length; _i3++) {
+ assignDepthsAt(_i3);
+ }
+ }, "assignDepths");
+ var adjustMaximally = /* @__PURE__ */ __name(function adjustMaximally2(ele2, shifted2) {
+ var eInfo = getInfo(ele2);
+ var incomers = ele2.incomers().filter(function(el) {
+ return el.isNode() && eles.has(el);
+ });
+ var maxDepth = -1;
+ var id28 = ele2.id();
+ for (var k2 = 0; k2 < incomers.length; k2++) {
+ var incmr = incomers[k2];
+ var iInfo = getInfo(incmr);
+ maxDepth = Math.max(maxDepth, iInfo.depth);
}
- }
- function add(ele2) {
- var alreadyAdded = elesToRemoveIds[ele2.id()];
- if (removeFromPool && ele2.removed() || alreadyAdded) {
- return;
- } else {
- elesToRemoveIds[ele2.id()] = true;
+ if (eInfo.depth <= maxDepth) {
+ if (!options3.acyclic && shifted2[id28]) {
+ return null;
+ }
+ var newDepth = maxDepth + 1;
+ changeDepth(ele2, newDepth);
+ shifted2[id28] = newDepth;
+ return true;
}
- if (ele2.isNode()) {
- elesToRemove.push(ele2);
- addConnectedEdges(ele2);
- addChildren2(ele2);
- } else {
- elesToRemove.unshift(ele2);
+ return false;
+ }, "adjustMaximally");
+ if (directed && maximal) {
+ var Q2 = [];
+ var shifted = {};
+ var enqueue = /* @__PURE__ */ __name(function enqueue2(n3) {
+ return Q2.push(n3);
+ }, "enqueue");
+ var dequeue = /* @__PURE__ */ __name(function dequeue2() {
+ return Q2.shift();
+ }, "dequeue");
+ nodes6.forEach(function(n3) {
+ return Q2.push(n3);
+ });
+ while (Q2.length > 0) {
+ var _ele3 = dequeue();
+ var didShift = adjustMaximally(_ele3, shifted);
+ if (didShift) {
+ _ele3.outgoers().filter(function(el) {
+ return el.isNode() && eles.has(el);
+ }).forEach(enqueue);
+ } else if (didShift === null) {
+ warn("Detected double maximal shift for node `" + _ele3.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");
+ break;
+ }
}
}
- for (var i3 = 0, l = self2.length; i3 < l; i3++) {
- var ele = self2[i3];
- add(ele);
- }
- function removeEdgeRef(node2, edge) {
- var connectedEdges = node2._private.edges;
- removeFromArray(connectedEdges, edge);
- node2.clearTraversalCache();
- }
- function removeParallelRef(pllEdge2) {
- pllEdge2.clearTraversalCache();
- }
- var alteredParents = [];
- alteredParents.ids = {};
- function removeChildRef(parent2, ele2) {
- ele2 = ele2[0];
- parent2 = parent2[0];
- var children2 = parent2._private.children;
- var pid = parent2.id();
- removeFromArray(children2, ele2);
- ele2._private.parent = null;
- if (!alteredParents.ids[pid]) {
- alteredParents.ids[pid] = true;
- alteredParents.push(parent2);
+ assignDepths();
+ var minDistance = 0;
+ if (options3.avoidOverlap) {
+ for (var _i4 = 0; _i4 < nodes6.length; _i4++) {
+ var n2 = nodes6[_i4];
+ var nbb = n2.layoutDimensions(options3);
+ var w3 = nbb.w;
+ var h2 = nbb.h;
+ minDistance = Math.max(minDistance, w3, h2);
}
}
- self2.dirtyCompoundBoundsCache();
- if (removeFromPool) {
- cy.removeFromPool(elesToRemove);
- }
- for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {
- var _ele4 = elesToRemove[_i6];
- if (_ele4.isEdge()) {
- var src = _ele4.source()[0];
- var tgt = _ele4.target()[0];
- removeEdgeRef(src, _ele4);
- removeEdgeRef(tgt, _ele4);
- var pllEdges = _ele4.parallelEdges();
- for (var j = 0; j < pllEdges.length; j++) {
- var pllEdge = pllEdges[j];
- removeParallelRef(pllEdge);
- if (pllEdge.isBundledBezier()) {
- pllEdge.dirtyBoundingBoxCache();
- }
+ var cachedWeightedPercent = {};
+ var getWeightedPercent = /* @__PURE__ */ __name(function getWeightedPercent2(ele2) {
+ if (cachedWeightedPercent[ele2.id()]) {
+ return cachedWeightedPercent[ele2.id()];
+ }
+ var eleDepth = getInfo(ele2).depth;
+ var neighbors = ele2.neighborhood();
+ var percent = 0;
+ var samples = 0;
+ for (var _i5 = 0; _i5 < neighbors.length; _i5++) {
+ var neighbor = neighbors[_i5];
+ if (neighbor.isEdge() || neighbor.isParent() || !nodes6.has(neighbor)) {
+ continue;
}
- } else {
- var parent = _ele4.parent();
- if (parent.length !== 0) {
- removeChildRef(parent, _ele4);
+ var bf = getInfo(neighbor);
+ if (bf == null) {
+ continue;
+ }
+ var index = bf.index;
+ var depth = bf.depth;
+ if (index == null || depth == null) {
+ continue;
+ }
+ var nDepth = depths[depth].length;
+ if (depth < eleDepth) {
+ percent += index / nDepth;
+ samples++;
}
}
- if (removeFromPool) {
- _ele4._private.removed = true;
+ samples = Math.max(1, samples);
+ percent = percent / samples;
+ if (samples === 0) {
+ percent = 0;
}
- }
- var elesStillInside = cy._private.elements;
- cy._private.hasCompoundNodes = false;
- for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {
- var _ele5 = elesStillInside[_i7];
- if (_ele5.isParent()) {
- cy._private.hasCompoundNodes = true;
- break;
+ cachedWeightedPercent[ele2.id()] = percent;
+ return percent;
+ }, "getWeightedPercent");
+ var sortFn = /* @__PURE__ */ __name(function sortFn2(a2, b2) {
+ var apct = getWeightedPercent(a2);
+ var bpct = getWeightedPercent(b2);
+ var diff2 = apct - bpct;
+ if (diff2 === 0) {
+ return ascending3(a2.id(), b2.id());
+ } else {
+ return diff2;
}
+ }, "sortFn");
+ if (options3.depthSort !== void 0) {
+ sortFn = options3.depthSort;
}
- var removedElements = new Collection(this.cy(), elesToRemove);
- if (removedElements.size() > 0) {
- if (notifyRenderer) {
- removedElements.emitAndNotify("remove");
- } else if (removeFromPool) {
- removedElements.emit("remove");
- }
+ for (var _i6 = 0; _i6 < depths.length; _i6++) {
+ depths[_i6].sort(sortFn);
+ assignDepthsAt(_i6);
}
- for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {
- var _ele6 = alteredParents[_i8];
- if (!removeFromPool || !_ele6.removed()) {
- _ele6.updateStyle();
- }
+ var orphanDepth = [];
+ for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) {
+ orphanDepth.push(orphanNodes[_i7]);
}
- return removedElements;
- };
- elesfn$1.move = function(struct) {
- var cy = this._private.cy;
- var eles = this;
- var notifyRenderer = false;
- var modifyPool = false;
- var toString3 = function toString4(id2) {
- return id2 == null ? id2 : "" + id2;
+ depths.unshift(orphanDepth);
+ assignDepths();
+ var biggestDepthSize = 0;
+ for (var _i8 = 0; _i8 < depths.length; _i8++) {
+ biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);
+ }
+ var center4 = {
+ x: bb.x1 + bb.w / 2,
+ y: bb.x1 + bb.h / 2
};
- if (struct.source !== void 0 || struct.target !== void 0) {
- var srcId = toString3(struct.source);
- var tgtId = toString3(struct.target);
- var srcExists = srcId != null && cy.hasElementWithId(srcId);
- var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);
- if (srcExists || tgtExists) {
- cy.batch(function() {
- eles.remove(notifyRenderer, modifyPool);
- eles.emitAndNotify("moveout");
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var _data5 = ele._private.data;
- if (ele.isEdge()) {
- if (srcExists) {
- _data5.source = srcId;
- }
- if (tgtExists) {
- _data5.target = tgtId;
- }
- }
- }
- eles.restore(notifyRenderer, modifyPool);
- });
- eles.emitAndNotify("move");
- }
- } else if (struct.parent !== void 0) {
- var parentId = toString3(struct.parent);
- var parentExists = parentId === null || cy.hasElementWithId(parentId);
- if (parentExists) {
- var pidToAssign = parentId === null ? void 0 : parentId;
- cy.batch(function() {
- var updated = eles.remove(notifyRenderer, modifyPool);
- updated.emitAndNotify("moveout");
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var _data6 = ele._private.data;
- if (ele.isNode()) {
- _data6.parent = pidToAssign;
- }
- }
- updated.restore(notifyRenderer, modifyPool);
- });
- eles.emitAndNotify("move");
+ var maxDepthSize = depths.reduce(function(max10, eles2) {
+ return Math.max(max10, eles2.length);
+ }, 0);
+ var getPosition = /* @__PURE__ */ __name(function getPosition2(ele2) {
+ var _getInfo2 = getInfo(ele2), depth = _getInfo2.depth, index = _getInfo2.index;
+ var depthSize = depths[depth].length;
+ var distanceX = Math.max(bb.w / ((options3.grid ? maxDepthSize : depthSize) + 1), minDistance);
+ var distanceY = Math.max(bb.h / (depths.length + 1), minDistance);
+ var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length);
+ radiusStepSize = Math.max(radiusStepSize, minDistance);
+ if (!options3.circle) {
+ var epos = {
+ x: center4.x + (index + 1 - (depthSize + 1) / 2) * distanceX,
+ y: (depth + 1) * distanceY
+ };
+ return epos;
+ } else {
+ var radius2 = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);
+ var theta = 2 * Math.PI / depths[depth].length * index;
+ if (depth === 0 && depths[0].length === 1) {
+ radius2 = 1;
+ }
+ return {
+ x: center4.x + radius2 * Math.cos(theta),
+ y: center4.y + radius2 * Math.sin(theta)
+ };
}
- }
+ }, "getPosition");
+ eles.nodes().layoutPositions(this, options3, getPosition);
return this;
};
- [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function(props) {
- extend2(elesfn$1, props);
- });
- var corefn$9 = {
- add: function add(opts) {
- var elements2;
- var cy = this;
- if (elementOrCollection(opts)) {
- var eles = opts;
- if (eles._private.cy === cy) {
- elements2 = eles.restore();
- } else {
- var jsons = [];
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- jsons.push(ele.json());
- }
- elements2 = new Collection(cy, jsons);
- }
- } else if (array2(opts)) {
- var _jsons = opts;
- elements2 = new Collection(cy, _jsons);
- } else if (plainObject(opts) && (array2(opts.nodes) || array2(opts.edges))) {
- var elesByGroup = opts;
- var _jsons2 = [];
- var grs = ["nodes", "edges"];
- for (var _i = 0, il = grs.length; _i < il; _i++) {
- var group = grs[_i];
- var elesArray = elesByGroup[group];
- if (array2(elesArray)) {
- for (var j = 0, jl = elesArray.length; j < jl; j++) {
- var json2 = extend2({
- group
- }, elesArray[j]);
- _jsons2.push(json2);
- }
- }
- }
- elements2 = new Collection(cy, _jsons2);
- } else {
- var _json = opts;
- elements2 = new Element(cy, _json).collection();
- }
- return elements2;
- },
- remove: function remove2(collection2) {
- if (elementOrCollection(collection2))
- ;
- else if (string(collection2)) {
- var selector2 = collection2;
- collection2 = this.$(selector2);
- }
- return collection2.remove();
- }
+ defaults$6 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // the padding on fit
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox and radius if not enough space
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ radius: void 0,
+ // the radius of the circle
+ startAngle: 3 / 2 * Math.PI,
+ // where nodes start in radians
+ sweep: void 0,
+ // how many radians should be between the first and last node (defaults to full circle)
+ clockwise: true,
+ // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
+ sort: void 0,
+ // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: /* @__PURE__ */ __name(function animateFilter2(node2, i2) {
+ return true;
+ }, "animateFilter"),
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: /* @__PURE__ */ __name(function transform3(node2, position5) {
+ return position5;
+ }, "transform")
+ // transform a given node position. Useful for changing flow direction in discrete layouts
};
- /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
- function generateCubicBezier(mX1, mY1, mX2, mY2) {
- var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array !== "undefined";
- if (arguments.length !== 4) {
- return false;
- }
- for (var i3 = 0; i3 < 4; ++i3) {
- if (typeof arguments[i3] !== "number" || isNaN(arguments[i3]) || !isFinite(arguments[i3])) {
- return false;
- }
- }
- mX1 = Math.min(mX1, 1);
- mX2 = Math.min(mX2, 1);
- mX1 = Math.max(mX1, 0);
- mX2 = Math.max(mX2, 0);
- var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
- function A(aA1, aA2) {
- return 1 - 3 * aA2 + 3 * aA1;
+ __name(CircleLayout, "CircleLayout");
+ CircleLayout.prototype.run = function() {
+ var params = this.options;
+ var options3 = params;
+ var cy = params.cy;
+ var eles = options3.eles;
+ var clockwise = options3.counterclockwise !== void 0 ? !options3.counterclockwise : options3.clockwise;
+ var nodes6 = eles.nodes().not(":parent");
+ if (options3.sort) {
+ nodes6 = nodes6.sort(options3.sort);
}
- function B(aA1, aA2) {
- return 3 * aA2 - 6 * aA1;
+ var bb = makeBoundingBox(options3.boundingBox ? options3.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var center4 = {
+ x: bb.x1 + bb.w / 2,
+ y: bb.y1 + bb.h / 2
+ };
+ var sweep = options3.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / nodes6.length : options3.sweep;
+ var dTheta = sweep / Math.max(1, nodes6.length - 1);
+ var r2;
+ var minDistance = 0;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var n2 = nodes6[i2];
+ var nbb = n2.layoutDimensions(options3);
+ var w3 = nbb.w;
+ var h2 = nbb.h;
+ minDistance = Math.max(minDistance, w3, h2);
+ }
+ if (number$1(options3.radius)) {
+ r2 = options3.radius;
+ } else if (nodes6.length <= 1) {
+ r2 = 0;
+ } else {
+ r2 = Math.min(bb.h, bb.w) / 2 - minDistance;
}
- function C(aA1) {
- return 3 * aA1;
+ if (nodes6.length > 1 && options3.avoidOverlap) {
+ minDistance *= 1.75;
+ var dcos = Math.cos(dTheta) - Math.cos(0);
+ var dsin = Math.sin(dTheta) - Math.sin(0);
+ var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin));
+ r2 = Math.max(rMin, r2);
}
- function calcBezier(aT, aA1, aA2) {
- return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
+ var getPos = /* @__PURE__ */ __name(function getPos2(ele, i3) {
+ var theta = options3.startAngle + i3 * dTheta * (clockwise ? 1 : -1);
+ var rx = r2 * Math.cos(theta);
+ var ry = r2 * Math.sin(theta);
+ var pos = {
+ x: center4.x + rx,
+ y: center4.y + ry
+ };
+ return pos;
+ }, "getPos");
+ eles.nodes().layoutPositions(this, options3, getPos);
+ return this;
+ };
+ defaults$5 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // the padding on fit
+ startAngle: 3 / 2 * Math.PI,
+ // where nodes start in radians
+ sweep: void 0,
+ // how many radians should be between the first and last node (defaults to full circle)
+ clockwise: true,
+ // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
+ equidistant: false,
+ // whether levels have an equal radial distance betwen them, may cause bounding box overflow
+ minNodeSpacing: 10,
+ // min spacing between outside of nodes (used for radius adjustment)
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ height: void 0,
+ // height of layout area (overrides container height)
+ width: void 0,
+ // width of layout area (overrides container width)
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ concentric: /* @__PURE__ */ __name(function concentric(node2) {
+ return node2.degree();
+ }, "concentric"),
+ levelWidth: /* @__PURE__ */ __name(function levelWidth(nodes6) {
+ return nodes6.maxDegree() / 4;
+ }, "levelWidth"),
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: /* @__PURE__ */ __name(function animateFilter3(node2, i2) {
+ return true;
+ }, "animateFilter"),
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: /* @__PURE__ */ __name(function transform4(node2, position5) {
+ return position5;
+ }, "transform")
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ __name(ConcentricLayout, "ConcentricLayout");
+ ConcentricLayout.prototype.run = function() {
+ var params = this.options;
+ var options3 = params;
+ var clockwise = options3.counterclockwise !== void 0 ? !options3.counterclockwise : options3.clockwise;
+ var cy = params.cy;
+ var eles = options3.eles;
+ var nodes6 = eles.nodes().not(":parent");
+ var bb = makeBoundingBox(options3.boundingBox ? options3.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var center4 = {
+ x: bb.x1 + bb.w / 2,
+ y: bb.y1 + bb.h / 2
+ };
+ var nodeValues = [];
+ var maxNodeSize = 0;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var node2 = nodes6[i2];
+ var value2 = void 0;
+ value2 = options3.concentric(node2);
+ nodeValues.push({
+ value: value2,
+ node: node2
+ });
+ node2._private.scratch.concentric = value2;
}
- function getSlope(aT, aA1, aA2) {
- return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
+ nodes6.updateStyle();
+ for (var _i = 0; _i < nodes6.length; _i++) {
+ var _node = nodes6[_i];
+ var nbb = _node.layoutDimensions(options3);
+ maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);
}
- function newtonRaphsonIterate(aX, aGuessT) {
- for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {
- var currentSlope = getSlope(aGuessT, mX1, mX2);
- if (currentSlope === 0) {
- return aGuessT;
+ nodeValues.sort(function(a2, b2) {
+ return b2.value - a2.value;
+ });
+ var levelWidth2 = options3.levelWidth(nodes6);
+ var levels = [[]];
+ var currentLevel = levels[0];
+ for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {
+ var val = nodeValues[_i2];
+ if (currentLevel.length > 0) {
+ var diff2 = Math.abs(currentLevel[0].value - val.value);
+ if (diff2 >= levelWidth2) {
+ currentLevel = [];
+ levels.push(currentLevel);
}
- var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
- aGuessT -= currentX / currentSlope;
- }
- return aGuessT;
- }
- function calcSampleValues() {
- for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {
- mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);
}
+ currentLevel.push(val);
}
- function binarySubdivide(aX, aA, aB) {
- var currentX, currentT, i4 = 0;
- do {
- currentT = aA + (aB - aA) / 2;
- currentX = calcBezier(currentT, mX1, mX2) - aX;
- if (currentX > 0) {
- aB = currentT;
- } else {
- aA = currentT;
- }
- } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i4 < SUBDIVISION_MAX_ITERATIONS);
- return currentT;
- }
- function getTForX(aX) {
- var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1;
- for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {
- intervalStart += kSampleStepSize;
- }
- --currentSample;
- var dist3 = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), guessForT = intervalStart + dist3 * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2);
- if (initialSlope >= NEWTON_MIN_SLOPE) {
- return newtonRaphsonIterate(aX, guessForT);
- } else if (initialSlope === 0) {
- return guessForT;
- } else {
- return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);
- }
+ var minDist = maxNodeSize + options3.minNodeSpacing;
+ if (!options3.avoidOverlap) {
+ var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;
+ var maxR = Math.min(bb.w, bb.h) / 2 - minDist;
+ var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);
+ minDist = Math.min(minDist, rStep);
}
- var _precomputed = false;
- function precompute() {
- _precomputed = true;
- if (mX1 !== mY1 || mX2 !== mY2) {
- calcSampleValues();
+ var r2 = 0;
+ for (var _i3 = 0; _i3 < levels.length; _i3++) {
+ var level = levels[_i3];
+ var sweep = options3.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / level.length : options3.sweep;
+ var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);
+ if (level.length > 1 && options3.avoidOverlap) {
+ var dcos = Math.cos(dTheta) - Math.cos(0);
+ var dsin = Math.sin(dTheta) - Math.sin(0);
+ var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin));
+ r2 = Math.max(rMin, r2);
}
+ level.r = r2;
+ r2 += minDist;
}
- var f2 = function f3(aX) {
- if (!_precomputed) {
- precompute();
- }
- if (mX1 === mY1 && mX2 === mY2) {
- return aX;
- }
- if (aX === 0) {
- return 0;
+ if (options3.equidistant) {
+ var rDeltaMax = 0;
+ var _r = 0;
+ for (var _i4 = 0; _i4 < levels.length; _i4++) {
+ var _level = levels[_i4];
+ var rDelta = _level.r - _r;
+ rDeltaMax = Math.max(rDeltaMax, rDelta);
}
- if (aX === 1) {
- return 1;
+ _r = 0;
+ for (var _i5 = 0; _i5 < levels.length; _i5++) {
+ var _level2 = levels[_i5];
+ if (_i5 === 0) {
+ _r = _level2.r;
+ }
+ _level2.r = _r;
+ _r += rDeltaMax;
}
- return calcBezier(getTForX(aX), mY1, mY2);
- };
- f2.getControlPoints = function() {
- return [{
- x: mX1,
- y: mY1
- }, {
- x: mX2,
- y: mY2
- }];
- };
- var str2 = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")";
- f2.toString = function() {
- return str2;
- };
- return f2;
- }
- /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
- var generateSpringRK4 = function() {
- function springAccelerationForState(state2) {
- return -state2.tension * state2.x - state2.friction * state2.v;
- }
- function springEvaluateStateWithDerivative(initialState, dt, derivative) {
- var state2 = {
- x: initialState.x + derivative.dx * dt,
- v: initialState.v + derivative.dv * dt,
- tension: initialState.tension,
- friction: initialState.friction
- };
- return {
- dx: state2.v,
- dv: springAccelerationForState(state2)
- };
- }
- function springIntegrateState(state2, dt) {
- var a = {
- dx: state2.v,
- dv: springAccelerationForState(state2)
- }, b = springEvaluateStateWithDerivative(state2, dt * 0.5, a), c2 = springEvaluateStateWithDerivative(state2, dt * 0.5, b), d = springEvaluateStateWithDerivative(state2, dt, c2), dxdt = 1 / 6 * (a.dx + 2 * (b.dx + c2.dx) + d.dx), dvdt = 1 / 6 * (a.dv + 2 * (b.dv + c2.dv) + d.dv);
- state2.x = state2.x + dxdt * dt;
- state2.v = state2.v + dvdt * dt;
- return state2;
}
- return function springRK4Factory(tension, friction, duration) {
- var initState = {
- x: -1,
- v: 0,
- tension: null,
- friction: null
- }, path2 = [0], time_lapsed = 0, tolerance = 1 / 1e4, DT = 16 / 1e3, have_duration, dt, last_state;
- tension = parseFloat(tension) || 500;
- friction = parseFloat(friction) || 20;
- duration = duration || null;
- initState.tension = tension;
- initState.friction = friction;
- have_duration = duration !== null;
- if (have_duration) {
- time_lapsed = springRK4Factory(tension, friction);
- dt = time_lapsed / duration * DT;
- } else {
- dt = DT;
- }
- for (; ; ) {
- last_state = springIntegrateState(last_state || initState, dt);
- path2.push(1 + last_state.x);
- time_lapsed += 16;
- if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {
- break;
- }
+ var pos = {};
+ for (var _i6 = 0; _i6 < levels.length; _i6++) {
+ var _level3 = levels[_i6];
+ var _dTheta = _level3.dTheta;
+ var _r2 = _level3.r;
+ for (var j2 = 0; j2 < _level3.length; j2++) {
+ var _val = _level3[j2];
+ var theta = options3.startAngle + (clockwise ? 1 : -1) * _dTheta * j2;
+ var p3 = {
+ x: center4.x + _r2 * Math.cos(theta),
+ y: center4.y + _r2 * Math.sin(theta)
+ };
+ pos[_val.node.id()] = p3;
}
- return !have_duration ? time_lapsed : function(percentComplete) {
- return path2[percentComplete * (path2.length - 1) | 0];
- };
- };
- }();
- var cubicBezier = function cubicBezier2(t12, p1, t22, p2) {
- var bezier = generateCubicBezier(t12, p1, t22, p2);
- return function(start2, end2, percent) {
- return start2 + (end2 - start2) * bezier(percent);
- };
+ }
+ eles.nodes().layoutPositions(this, options3, function(ele) {
+ var id27 = ele.id();
+ return pos[id27];
+ });
+ return this;
};
- var easings = {
- "linear": function linear2(start2, end2, percent) {
- return start2 + (end2 - start2) * percent;
- },
- // default easings
- "ease": cubicBezier(0.25, 0.1, 0.25, 1),
- "ease-in": cubicBezier(0.42, 0, 1, 1),
- "ease-out": cubicBezier(0, 0, 0.58, 1),
- "ease-in-out": cubicBezier(0.42, 0, 0.58, 1),
- // sine
- "ease-in-sine": cubicBezier(0.47, 0, 0.745, 0.715),
- "ease-out-sine": cubicBezier(0.39, 0.575, 0.565, 1),
- "ease-in-out-sine": cubicBezier(0.445, 0.05, 0.55, 0.95),
- // quad
- "ease-in-quad": cubicBezier(0.55, 0.085, 0.68, 0.53),
- "ease-out-quad": cubicBezier(0.25, 0.46, 0.45, 0.94),
- "ease-in-out-quad": cubicBezier(0.455, 0.03, 0.515, 0.955),
- // cubic
- "ease-in-cubic": cubicBezier(0.55, 0.055, 0.675, 0.19),
- "ease-out-cubic": cubicBezier(0.215, 0.61, 0.355, 1),
- "ease-in-out-cubic": cubicBezier(0.645, 0.045, 0.355, 1),
- // quart
- "ease-in-quart": cubicBezier(0.895, 0.03, 0.685, 0.22),
- "ease-out-quart": cubicBezier(0.165, 0.84, 0.44, 1),
- "ease-in-out-quart": cubicBezier(0.77, 0, 0.175, 1),
- // quint
- "ease-in-quint": cubicBezier(0.755, 0.05, 0.855, 0.06),
- "ease-out-quint": cubicBezier(0.23, 1, 0.32, 1),
- "ease-in-out-quint": cubicBezier(0.86, 0, 0.07, 1),
- // expo
- "ease-in-expo": cubicBezier(0.95, 0.05, 0.795, 0.035),
- "ease-out-expo": cubicBezier(0.19, 1, 0.22, 1),
- "ease-in-out-expo": cubicBezier(1, 0, 0, 1),
- // circ
- "ease-in-circ": cubicBezier(0.6, 0.04, 0.98, 0.335),
- "ease-out-circ": cubicBezier(0.075, 0.82, 0.165, 1),
- "ease-in-out-circ": cubicBezier(0.785, 0.135, 0.15, 0.86),
- // user param easings...
- "spring": function spring(tension, friction, duration) {
- if (duration === 0) {
- return easings.linear;
- }
- var spring2 = generateSpringRK4(tension, friction, duration);
- return function(start2, end2, percent) {
- return start2 + (end2 - start2) * spring2(percent);
- };
- },
- "cubic-bezier": cubicBezier
+ defaults$4 = {
+ // Called on `layoutready`
+ ready: /* @__PURE__ */ __name(function ready2() {
+ }, "ready"),
+ // Called on `layoutstop`
+ stop: /* @__PURE__ */ __name(function stop3() {
+ }, "stop"),
+ // Whether to animate while running the layout
+ // true : Animate continuously as the layout is running
+ // false : Just show the end result
+ // 'end' : Animate with the end result, from the initial positions to the end positions
+ animate: true,
+ // Easing of the animation for animate:'end'
+ animationEasing: void 0,
+ // The duration of the animation for animate:'end'
+ animationDuration: void 0,
+ // A function that determines whether the node should be animated
+ // All nodes animated by default on animate enabled
+ // Non-animated nodes are positioned immediately when the layout starts
+ animateFilter: /* @__PURE__ */ __name(function animateFilter4(node2, i2) {
+ return true;
+ }, "animateFilter"),
+ // The layout animates only after this many milliseconds for animate:true
+ // (prevents flashing on fast runs)
+ animationThreshold: 250,
+ // Number of iterations between consecutive screen positions update
+ refresh: 20,
+ // Whether to fit the network view after when done
+ fit: true,
+ // Padding on fit
+ padding: 30,
+ // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ boundingBox: void 0,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ nodeDimensionsIncludeLabels: false,
+ // Randomize the initial positions of the nodes (true) or use existing positions (false)
+ randomize: false,
+ // Extra spacing between components in non-compound graphs
+ componentSpacing: 40,
+ // Node repulsion (non overlapping) multiplier
+ nodeRepulsion: /* @__PURE__ */ __name(function nodeRepulsion(node2) {
+ return 2048;
+ }, "nodeRepulsion"),
+ // Node repulsion (overlapping) multiplier
+ nodeOverlap: 4,
+ // Ideal edge (non nested) length
+ idealEdgeLength: /* @__PURE__ */ __name(function idealEdgeLength(edge) {
+ return 32;
+ }, "idealEdgeLength"),
+ // Divisor to compute edge forces
+ edgeElasticity: /* @__PURE__ */ __name(function edgeElasticity(edge) {
+ return 32;
+ }, "edgeElasticity"),
+ // Nesting factor (multiplier) to compute ideal edge length for nested edges
+ nestingFactor: 1.2,
+ // Gravity force (constant)
+ gravity: 1,
+ // Maximum number of iterations to perform
+ numIter: 1e3,
+ // Initial temperature (maximum node displacement)
+ initialTemp: 1e3,
+ // Cooling factor (how the temperature is reduced between consecutive iterations
+ coolingFactor: 0.99,
+ // Lower temperature threshold (below this point the layout will end)
+ minTemp: 1
};
- function getEasedValue(type2, start2, end2, percent, easingFn) {
- if (percent === 1) {
- return end2;
- }
- if (start2 === end2) {
- return end2;
- }
- var val = easingFn(start2, end2, percent);
- if (type2 == null) {
- return val;
+ __name(CoseLayout, "CoseLayout");
+ CoseLayout.prototype.run = function() {
+ var options3 = this.options;
+ var cy = options3.cy;
+ var layout6 = this;
+ layout6.stopped = false;
+ if (options3.animate === true || options3.animate === false) {
+ layout6.emit({
+ type: "layoutstart",
+ layout: layout6
+ });
}
- if (type2.roundValue || type2.color) {
- val = Math.round(val);
+ if (true === options3.debug) {
+ DEBUG = true;
+ } else {
+ DEBUG = false;
}
- if (type2.min !== void 0) {
- val = Math.max(val, type2.min);
+ var layoutInfo = createLayoutInfo(cy, layout6, options3);
+ if (DEBUG) {
+ printLayoutInfo(layoutInfo);
}
- if (type2.max !== void 0) {
- val = Math.min(val, type2.max);
+ if (options3.randomize) {
+ randomizePositions(layoutInfo);
}
- return val;
- }
- function getValue2(prop, spec) {
- if (prop.pfValue != null || prop.value != null) {
- if (prop.pfValue != null && (spec == null || spec.type.units !== "%")) {
- return prop.pfValue;
- } else {
- return prop.value;
+ var startTime = performanceNow();
+ var refresh = /* @__PURE__ */ __name(function refresh2() {
+ refreshPositions(layoutInfo, cy, options3);
+ if (true === options3.fit) {
+ cy.fit(options3.padding);
+ }
+ }, "refresh");
+ var mainLoop = /* @__PURE__ */ __name(function mainLoop2(i3) {
+ if (layout6.stopped || i3 >= options3.numIter) {
+ return false;
}
- } else {
- return prop;
- }
- }
- function ease(startProp, endProp, percent, easingFn, propSpec) {
- var type2 = propSpec != null ? propSpec.type : null;
- if (percent < 0) {
- percent = 0;
- } else if (percent > 1) {
- percent = 1;
- }
- var start2 = getValue2(startProp, propSpec);
- var end2 = getValue2(endProp, propSpec);
- if (number$12(start2) && number$12(end2)) {
- return getEasedValue(type2, start2, end2, percent, easingFn);
- } else if (array2(start2) && array2(end2)) {
- var easedArr = [];
- for (var i3 = 0; i3 < end2.length; i3++) {
- var si = start2[i3];
- var ei = end2[i3];
- if (si != null && ei != null) {
- var val = getEasedValue(type2, si, ei, percent, easingFn);
- easedArr.push(val);
- } else {
- easedArr.push(ei);
- }
+ step(layoutInfo, options3);
+ layoutInfo.temperature = layoutInfo.temperature * options3.coolingFactor;
+ if (layoutInfo.temperature < options3.minTemp) {
+ return false;
}
- return easedArr;
- }
- return void 0;
- }
- function step$1(self2, ani, now3, isCore) {
- var isEles = !isCore;
- var _p = self2._private;
- var ani_p = ani._private;
- var pEasing = ani_p.easing;
- var startTime = ani_p.startTime;
- var cy = isCore ? self2 : self2.cy();
- var style = cy.style();
- if (!ani_p.easingImpl) {
- if (pEasing == null) {
- ani_p.easingImpl = easings["linear"];
+ return true;
+ }, "mainLoop");
+ var done = /* @__PURE__ */ __name(function done2() {
+ if (options3.animate === true || options3.animate === false) {
+ refresh();
+ layout6.one("layoutstop", options3.stop);
+ layout6.emit({
+ type: "layoutstop",
+ layout: layout6
+ });
} else {
- var easingVals;
- if (string(pEasing)) {
- var easingProp = style.parse("transition-timing-function", pEasing);
- easingVals = easingProp.value;
- } else {
- easingVals = pEasing;
+ var nodes6 = options3.eles.nodes();
+ var getScaledPos = getScaleInBoundsFn(layoutInfo, options3, nodes6);
+ nodes6.layoutPositions(layout6, options3, getScaledPos);
+ }
+ }, "done");
+ var i2 = 0;
+ var loopRet = true;
+ if (options3.animate === true) {
+ var frame2 = /* @__PURE__ */ __name(function frame3() {
+ var f3 = 0;
+ while (loopRet && f3 < options3.refresh) {
+ loopRet = mainLoop(i2);
+ i2++;
+ f3++;
}
- var name2, args;
- if (string(easingVals)) {
- name2 = easingVals;
- args = [];
+ if (!loopRet) {
+ separateComponents(layoutInfo, options3);
+ done();
} else {
- name2 = easingVals[1];
- args = easingVals.slice(2).map(function(n) {
- return +n;
- });
- }
- if (args.length > 0) {
- if (name2 === "spring") {
- args.push(ani_p.duration);
+ var now4 = performanceNow();
+ if (now4 - startTime >= options3.animationThreshold) {
+ refresh();
}
- ani_p.easingImpl = easings[name2].apply(null, args);
- } else {
- ani_p.easingImpl = easings[name2];
+ requestAnimationFrame2(frame3);
}
- }
- }
- var easing = ani_p.easingImpl;
- var percent;
- if (ani_p.duration === 0) {
- percent = 1;
+ }, "frame");
+ frame2();
} else {
- percent = (now3 - startTime) / ani_p.duration;
- }
- if (ani_p.applying) {
- percent = ani_p.progress;
- }
- if (percent < 0) {
- percent = 0;
- } else if (percent > 1) {
- percent = 1;
- }
- if (ani_p.delay == null) {
- var startPos = ani_p.startPosition;
- var endPos = ani_p.position;
- if (endPos && isEles && !self2.locked()) {
- var newPos = {};
- if (valid(startPos.x, endPos.x)) {
- newPos.x = ease(startPos.x, endPos.x, percent, easing);
- }
- if (valid(startPos.y, endPos.y)) {
- newPos.y = ease(startPos.y, endPos.y, percent, easing);
- }
- self2.position(newPos);
- }
- var startPan = ani_p.startPan;
- var endPan = ani_p.pan;
- var pan = _p.pan;
- var animatingPan = endPan != null && isCore;
- if (animatingPan) {
- if (valid(startPan.x, endPan.x)) {
- pan.x = ease(startPan.x, endPan.x, percent, easing);
- }
- if (valid(startPan.y, endPan.y)) {
- pan.y = ease(startPan.y, endPan.y, percent, easing);
- }
- self2.emit("pan");
- }
- var startZoom = ani_p.startZoom;
- var endZoom = ani_p.zoom;
- var animatingZoom = endZoom != null && isCore;
- if (animatingZoom) {
- if (valid(startZoom, endZoom)) {
- _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);
- }
- self2.emit("zoom");
- }
- if (animatingPan || animatingZoom) {
- self2.emit("viewport");
- }
- var props = ani_p.style;
- if (props && props.length > 0 && isEles) {
- for (var i3 = 0; i3 < props.length; i3++) {
- var prop = props[i3];
- var _name = prop.name;
- var end2 = prop;
- var start2 = ani_p.startStyle[_name];
- var propSpec = style.properties[start2.name];
- var easedVal = ease(start2, end2, percent, easing, propSpec);
- style.overrideBypass(self2, _name, easedVal);
- }
- self2.emit("style");
+ while (loopRet) {
+ loopRet = mainLoop(i2);
+ i2++;
}
+ separateComponents(layoutInfo, options3);
+ done();
}
- ani_p.progress = percent;
- return percent;
- }
- function valid(start2, end2) {
- if (start2 == null || end2 == null) {
- return false;
+ return this;
+ };
+ CoseLayout.prototype.stop = function() {
+ this.stopped = true;
+ if (this.thread) {
+ this.thread.stop();
}
- if (number$12(start2) && number$12(end2)) {
- return true;
- } else if (start2 && end2) {
- return true;
+ this.emit("layoutstop");
+ return this;
+ };
+ CoseLayout.prototype.destroy = function() {
+ if (this.thread) {
+ this.thread.stop();
}
- return false;
- }
- function startAnimation(self2, ani, now3, isCore) {
- var ani_p = ani._private;
- ani_p.started = true;
- ani_p.startTime = now3 - ani_p.progress * ani_p.duration;
- }
- function stepAll(now3, cy) {
- var eles = cy._private.aniEles;
- var doneEles = [];
- function stepOne(ele2, isCore) {
- var _p = ele2._private;
- var current = _p.animation.current;
- var queue = _p.animation.queue;
- var ranAnis = false;
- if (current.length === 0) {
- var next2 = queue.shift();
- if (next2) {
- current.push(next2);
- }
- }
- var callbacks = function callbacks2(_callbacks) {
- for (var j = _callbacks.length - 1; j >= 0; j--) {
- var cb = _callbacks[j];
- cb();
- }
- _callbacks.splice(0, _callbacks.length);
- };
- for (var i3 = current.length - 1; i3 >= 0; i3--) {
- var ani = current[i3];
- var ani_p = ani._private;
- if (ani_p.stopped) {
- current.splice(i3, 1);
- ani_p.hooked = false;
- ani_p.playing = false;
- ani_p.started = false;
- callbacks(ani_p.frames);
- continue;
- }
- if (!ani_p.playing && !ani_p.applying) {
- continue;
- }
- if (ani_p.playing && ani_p.applying) {
- ani_p.applying = false;
- }
- if (!ani_p.started) {
- startAnimation(ele2, ani, now3);
- }
- step$1(ele2, ani, now3, isCore);
- if (ani_p.applying) {
- ani_p.applying = false;
- }
- callbacks(ani_p.frames);
- if (ani_p.step != null) {
- ani_p.step(now3);
- }
- if (ani.completed()) {
- current.splice(i3, 1);
- ani_p.hooked = false;
- ani_p.playing = false;
- ani_p.started = false;
- callbacks(ani_p.completes);
- }
- ranAnis = true;
- }
- if (!isCore && current.length === 0 && queue.length === 0) {
- doneEles.push(ele2);
+ return this;
+ };
+ createLayoutInfo = /* @__PURE__ */ __name(function createLayoutInfo2(cy, layout6, options3) {
+ var edges5 = options3.eles.edges();
+ var nodes6 = options3.eles.nodes();
+ var bb = makeBoundingBox(options3.boundingBox ? options3.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var layoutInfo = {
+ isCompound: cy.hasCompoundNodes(),
+ layoutNodes: [],
+ idToIndex: {},
+ nodeSize: nodes6.size(),
+ graphSet: [],
+ indexToGraph: [],
+ layoutEdges: [],
+ edgeSize: edges5.size(),
+ temperature: options3.initialTemp,
+ clientWidth: bb.w,
+ clientHeight: bb.h,
+ boundingBox: bb
+ };
+ var components3 = options3.eles.components();
+ var id2cmptId = {};
+ for (var i2 = 0; i2 < components3.length; i2++) {
+ var component2 = components3[i2];
+ for (var j2 = 0; j2 < component2.length; j2++) {
+ var node2 = component2[j2];
+ id2cmptId[node2.id()] = i2;
}
- return ranAnis;
}
- var ranEleAni = false;
- for (var e = 0; e < eles.length; e++) {
- var ele = eles[e];
- var handledThisEle = stepOne(ele);
- ranEleAni = ranEleAni || handledThisEle;
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n2 = nodes6[i2];
+ var nbb = n2.layoutDimensions(options3);
+ var tempNode = {};
+ tempNode.isLocked = n2.locked();
+ tempNode.id = n2.data("id");
+ tempNode.parentId = n2.data("parent");
+ tempNode.cmptId = id2cmptId[n2.id()];
+ tempNode.children = [];
+ tempNode.positionX = n2.position("x");
+ tempNode.positionY = n2.position("y");
+ tempNode.offsetX = 0;
+ tempNode.offsetY = 0;
+ tempNode.height = nbb.w;
+ tempNode.width = nbb.h;
+ tempNode.maxX = tempNode.positionX + tempNode.width / 2;
+ tempNode.minX = tempNode.positionX - tempNode.width / 2;
+ tempNode.maxY = tempNode.positionY + tempNode.height / 2;
+ tempNode.minY = tempNode.positionY - tempNode.height / 2;
+ tempNode.padLeft = parseFloat(n2.style("padding"));
+ tempNode.padRight = parseFloat(n2.style("padding"));
+ tempNode.padTop = parseFloat(n2.style("padding"));
+ tempNode.padBottom = parseFloat(n2.style("padding"));
+ tempNode.nodeRepulsion = fn$6(options3.nodeRepulsion) ? options3.nodeRepulsion(n2) : options3.nodeRepulsion;
+ layoutInfo.layoutNodes.push(tempNode);
+ layoutInfo.idToIndex[tempNode.id] = i2;
}
- var ranCoreAni = stepOne(cy, true);
- if (ranEleAni || ranCoreAni) {
- if (eles.length > 0) {
- cy.notify("draw", eles);
+ var queue = [];
+ var start3 = 0;
+ var end2 = -1;
+ var tempGraph = [];
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n2 = layoutInfo.layoutNodes[i2];
+ var p_id = n2.parentId;
+ if (null != p_id) {
+ layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n2.id);
} else {
- cy.notify("draw");
+ queue[++end2] = n2.id;
+ tempGraph.push(n2.id);
}
}
- eles.unmerge(doneEles);
- cy.emit("step");
- }
- var corefn$8 = {
- // pull in animation functions
- animate: define3.animate(),
- animation: define3.animation(),
- animated: define3.animated(),
- clearQueue: define3.clearQueue(),
- delay: define3.delay(),
- delayAnimation: define3.delayAnimation(),
- stop: define3.stop(),
- addToAnimationPool: function addToAnimationPool(eles) {
- var cy = this;
- if (!cy.styleEnabled()) {
- return;
- }
- cy._private.aniEles.merge(eles);
- },
- stopAnimationLoop: function stopAnimationLoop() {
- this._private.animationsRunning = false;
- },
- startAnimationLoop: function startAnimationLoop() {
- var cy = this;
- cy._private.animationsRunning = true;
- if (!cy.styleEnabled()) {
- return;
- }
- function headlessStep() {
- if (!cy._private.animationsRunning) {
- return;
+ layoutInfo.graphSet.push(tempGraph);
+ while (start3 <= end2) {
+ var node_id = queue[start3++];
+ var node_ix = layoutInfo.idToIndex[node_id];
+ var node2 = layoutInfo.layoutNodes[node_ix];
+ var children2 = node2.children;
+ if (children2.length > 0) {
+ layoutInfo.graphSet.push(children2);
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ queue[++end2] = children2[i2];
}
- requestAnimationFrame2(function animationStep(now3) {
- stepAll(now3, cy);
- headlessStep();
- });
- }
- var renderer3 = cy.renderer();
- if (renderer3 && renderer3.beforeRender) {
- renderer3.beforeRender(function rendererAnimationStep(willDraw, now3) {
- stepAll(now3, cy);
- }, renderer3.beforeRenderPriorities.animations);
- } else {
- headlessStep();
}
}
- };
- var emitterOptions = {
- qualifierCompare: function qualifierCompare(selector1, selector2) {
- if (selector1 == null || selector2 == null) {
- return selector1 == null && selector2 == null;
- } else {
- return selector1.sameText(selector2);
+ for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) {
+ var graph = layoutInfo.graphSet[i2];
+ for (var j2 = 0; j2 < graph.length; j2++) {
+ var index = layoutInfo.idToIndex[graph[j2]];
+ layoutInfo.indexToGraph[index] = i2;
}
- },
- eventMatches: function eventMatches(cy, listener, eventObj) {
- var selector2 = listener.qualifier;
- if (selector2 != null) {
- return cy !== eventObj.target && element(eventObj.target) && selector2.matches(eventObj.target);
+ }
+ for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) {
+ var e3 = edges5[i2];
+ var tempEdge = {};
+ tempEdge.id = e3.data("id");
+ tempEdge.sourceId = e3.data("source");
+ tempEdge.targetId = e3.data("target");
+ var idealLength = fn$6(options3.idealEdgeLength) ? options3.idealEdgeLength(e3) : options3.idealEdgeLength;
+ var elasticity = fn$6(options3.edgeElasticity) ? options3.edgeElasticity(e3) : options3.edgeElasticity;
+ var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];
+ var targetIx = layoutInfo.idToIndex[tempEdge.targetId];
+ var sourceGraph = layoutInfo.indexToGraph[sourceIx];
+ var targetGraph = layoutInfo.indexToGraph[targetIx];
+ if (sourceGraph != targetGraph) {
+ var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);
+ var lcaGraph = layoutInfo.graphSet[lca];
+ var depth = 0;
+ var tempNode = layoutInfo.layoutNodes[sourceIx];
+ while (-1 === lcaGraph.indexOf(tempNode.id)) {
+ tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
+ depth++;
+ }
+ tempNode = layoutInfo.layoutNodes[targetIx];
+ while (-1 === lcaGraph.indexOf(tempNode.id)) {
+ tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
+ depth++;
+ }
+ idealLength *= depth * options3.nestingFactor;
}
- return true;
- },
- addEventFields: function addEventFields(cy, evt) {
- evt.cy = cy;
- evt.target = cy;
- },
- callbackContext: function callbackContext(cy, listener, eventObj) {
- return listener.qualifier != null ? eventObj.target : cy;
+ tempEdge.idealLength = idealLength;
+ tempEdge.elasticity = elasticity;
+ layoutInfo.layoutEdges.push(tempEdge);
}
- };
- var argSelector = function argSelector2(arg) {
- if (string(arg)) {
- return new Selector(arg);
+ return layoutInfo;
+ }, "createLayoutInfo");
+ findLCA = /* @__PURE__ */ __name(function findLCA2(node1, node2, layoutInfo) {
+ var res = findLCA_aux(node1, node2, 0, layoutInfo);
+ if (2 > res.count) {
+ return 0;
} else {
- return arg;
- }
- };
- var elesfn = {
- createEmitter: function createEmitter() {
- var _p = this._private;
- if (!_p.emitter) {
- _p.emitter = new Emitter(emitterOptions, this);
- }
- return this;
- },
- emitter: function emitter() {
- return this._private.emitter;
- },
- on: function on(events, selector2, callback) {
- this.emitter().on(events, argSelector(selector2), callback);
- return this;
- },
- removeListener: function removeListener(events, selector2, callback) {
- this.emitter().removeListener(events, argSelector(selector2), callback);
- return this;
- },
- removeAllListeners: function removeAllListeners() {
- this.emitter().removeAllListeners();
- return this;
- },
- one: function one2(events, selector2, callback) {
- this.emitter().one(events, argSelector(selector2), callback);
- return this;
- },
- once: function once(events, selector2, callback) {
- this.emitter().one(events, argSelector(selector2), callback);
- return this;
- },
- emit: function emit(events, extraParams) {
- this.emitter().emit(events, extraParams);
- return this;
- },
- emitAndNotify: function emitAndNotify(event2, eles) {
- this.emit(event2);
- this.notify(event2, eles);
- return this;
+ return res.graph;
}
- };
- define3.eventAliasesOn(elesfn);
- var corefn$7 = {
- png: function png(options2) {
- var renderer3 = this._private.renderer;
- options2 = options2 || {};
- return renderer3.png(options2);
- },
- jpg: function jpg(options2) {
- var renderer3 = this._private.renderer;
- options2 = options2 || {};
- options2.bg = options2.bg || "#fff";
- return renderer3.jpg(options2);
+ }, "findLCA");
+ findLCA_aux = /* @__PURE__ */ __name(function findLCA_aux2(node1, node2, graphIx, layoutInfo) {
+ var graph = layoutInfo.graphSet[graphIx];
+ if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {
+ return {
+ count: 2,
+ graph: graphIx
+ };
}
- };
- corefn$7.jpeg = corefn$7.jpg;
- var corefn$6 = {
- layout: function layout3(options2) {
- var cy = this;
- if (options2 == null) {
- error("Layout options must be specified to make a layout");
- return;
- }
- if (options2.name == null) {
- error("A `name` must be specified to make a layout");
- return;
- }
- var name2 = options2.name;
- var Layout2 = cy.extension("layout", name2);
- if (Layout2 == null) {
- error("No such layout `" + name2 + "` found. Did you forget to import it and `cytoscape.use()` it?");
- return;
- }
- var eles;
- if (string(options2.eles)) {
- eles = cy.$(options2.eles);
- } else {
- eles = options2.eles != null ? options2.eles : cy.$();
+ var c3 = 0;
+ for (var i2 = 0; i2 < graph.length; i2++) {
+ var nodeId = graph[i2];
+ var nodeIx = layoutInfo.idToIndex[nodeId];
+ var children2 = layoutInfo.layoutNodes[nodeIx].children;
+ if (0 === children2.length) {
+ continue;
}
- var layout4 = new Layout2(extend2({}, options2, {
- cy,
- eles
- }));
- return layout4;
- }
- };
- corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;
- var corefn$5 = {
- notify: function notify(eventName, eventEles) {
- var _p = this._private;
- if (this.batching()) {
- _p.batchNotifications = _p.batchNotifications || {};
- var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();
- if (eventEles != null) {
- eles.merge(eventEles);
+ var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children2[0]]];
+ var result = findLCA_aux2(node1, node2, childGraphIx, layoutInfo);
+ if (0 === result.count) {
+ continue;
+ } else if (1 === result.count) {
+ c3++;
+ if (2 === c3) {
+ break;
}
- return;
- }
- if (!_p.notificationsEnabled) {
- return;
- }
- var renderer3 = this.renderer();
- if (this.destroyed() || !renderer3) {
- return;
- }
- renderer3.notify(eventName, eventEles);
- },
- notifications: function notifications(bool2) {
- var p2 = this._private;
- if (bool2 === void 0) {
- return p2.notificationsEnabled;
} else {
- p2.notificationsEnabled = bool2 ? true : false;
- }
- return this;
- },
- noNotifications: function noNotifications(callback) {
- this.notifications(false);
- callback();
- this.notifications(true);
- },
- batching: function batching() {
- return this._private.batchCount > 0;
- },
- startBatch: function startBatch() {
- var _p = this._private;
- if (_p.batchCount == null) {
- _p.batchCount = 0;
- }
- if (_p.batchCount === 0) {
- _p.batchStyleEles = this.collection();
- _p.batchNotifications = {};
- }
- _p.batchCount++;
- return this;
- },
- endBatch: function endBatch() {
- var _p = this._private;
- if (_p.batchCount === 0) {
- return this;
+ return result;
}
- _p.batchCount--;
- if (_p.batchCount === 0) {
- _p.batchStyleEles.updateStyle();
- var renderer3 = this.renderer();
- Object.keys(_p.batchNotifications).forEach(function(eventName) {
- var eles = _p.batchNotifications[eventName];
- if (eles.empty()) {
- renderer3.notify(eventName);
- } else {
- renderer3.notify(eventName, eles);
- }
- });
+ }
+ return {
+ count: c3,
+ graph: graphIx
+ };
+ }, "findLCA_aux");
+ randomizePositions = /* @__PURE__ */ __name(function randomizePositions2(layoutInfo, cy) {
+ var width3 = layoutInfo.clientWidth;
+ var height2 = layoutInfo.clientHeight;
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n2 = layoutInfo.layoutNodes[i2];
+ if (0 === n2.children.length && !n2.isLocked) {
+ n2.positionX = Math.random() * width3;
+ n2.positionY = Math.random() * height2;
}
- return this;
- },
- batch: function batch(callback) {
- this.startBatch();
- callback();
- this.endBatch();
- return this;
- },
- // for backwards compatibility
- batchData: function batchData(map2) {
- var cy = this;
- return this.batch(function() {
- var ids = Object.keys(map2);
- for (var i3 = 0; i3 < ids.length; i3++) {
- var id2 = ids[i3];
- var data2 = map2[id2];
- var ele = cy.getElementById(id2);
- ele.data(data2);
- }
+ }
+ }, "randomizePositions");
+ getScaleInBoundsFn = /* @__PURE__ */ __name(function getScaleInBoundsFn2(layoutInfo, options3, nodes6) {
+ var bb = layoutInfo.boundingBox;
+ var coseBB = {
+ x1: Infinity,
+ x2: -Infinity,
+ y1: Infinity,
+ y2: -Infinity
+ };
+ if (options3.boundingBox) {
+ nodes6.forEach(function(node2) {
+ var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node2.data("id")]];
+ coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);
+ coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);
+ coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);
+ coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);
});
+ coseBB.w = coseBB.x2 - coseBB.x1;
+ coseBB.h = coseBB.y2 - coseBB.y1;
}
- };
- var rendererDefaults = defaults$g({
- hideEdgesOnViewport: false,
- textureOnViewport: false,
- motionBlur: false,
- motionBlurOpacity: 0.05,
- pixelRatio: void 0,
- desktopTapThreshold: 4,
- touchTapThreshold: 8,
- wheelSensitivity: 1,
- debug: false,
- showFps: false
- });
- var corefn$4 = {
- renderTo: function renderTo(context, zoom, pan, pxRatio) {
- var r = this._private.renderer;
- r.renderTo(context, zoom, pan, pxRatio);
- return this;
- },
- renderer: function renderer3() {
- return this._private.renderer;
- },
- forceRender: function forceRender() {
- this.notify("draw");
- return this;
- },
- resize: function resize() {
- this.invalidateSize();
- this.emitAndNotify("resize");
- return this;
- },
- initRenderer: function initRenderer(options2) {
- var cy = this;
- var RendererProto = cy.extension("renderer", options2.name);
- if (RendererProto == null) {
- error("Can not initialise: No such renderer `".concat(options2.name, "` found. Did you forget to import it and `cytoscape.use()` it?"));
- return;
- }
- if (options2.wheelSensitivity !== void 0) {
- warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");
- }
- var rOpts = rendererDefaults(options2);
- rOpts.cy = cy;
- cy._private.renderer = new RendererProto(rOpts);
- this.notify("init");
- },
- destroyRenderer: function destroyRenderer() {
- var cy = this;
- cy.notify("destroy");
- var domEle = cy.container();
- if (domEle) {
- domEle._cyreg = null;
- while (domEle.childNodes.length > 0) {
- domEle.removeChild(domEle.childNodes[0]);
- }
+ return function(ele, i2) {
+ var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data("id")]];
+ if (options3.boundingBox) {
+ var pctX = (lnode.positionX - coseBB.x1) / coseBB.w;
+ var pctY = (lnode.positionY - coseBB.y1) / coseBB.h;
+ return {
+ x: bb.x1 + pctX * bb.w,
+ y: bb.y1 + pctY * bb.h
+ };
+ } else {
+ return {
+ x: lnode.positionX,
+ y: lnode.positionY
+ };
}
- cy._private.renderer = null;
- cy.mutableElements().forEach(function(ele) {
- var _p = ele._private;
- _p.rscratch = {};
- _p.rstyle = {};
- _p.animation.current = [];
- _p.animation.queue = [];
+ };
+ }, "getScaleInBoundsFn");
+ refreshPositions = /* @__PURE__ */ __name(function refreshPositions2(layoutInfo, cy, options3) {
+ var layout6 = options3.layout;
+ var nodes6 = options3.eles.nodes();
+ var getScaledPos = getScaleInBoundsFn(layoutInfo, options3, nodes6);
+ nodes6.positions(getScaledPos);
+ if (true !== layoutInfo.ready) {
+ layoutInfo.ready = true;
+ layout6.one("layoutready", options3.ready);
+ layout6.emit({
+ type: "layoutready",
+ layout: this
});
- },
- onRender: function onRender(fn2) {
- return this.on("render", fn2);
- },
- offRender: function offRender(fn2) {
- return this.off("render", fn2);
}
- };
- corefn$4.invalidateDimensions = corefn$4.resize;
- var corefn$3 = {
- // get a collection
- // - empty collection on no args
- // - collection of elements in the graph on selector arg
- // - guarantee a returned collection when elements or collection specified
- collection: function collection2(eles, opts) {
- if (string(eles)) {
- return this.$(eles);
- } else if (elementOrCollection(eles)) {
- return eles.collection();
- } else if (array2(eles)) {
- if (!opts) {
- opts = {};
+ }, "refreshPositions");
+ step = /* @__PURE__ */ __name(function step2(layoutInfo, options3, _step) {
+ calculateNodeForces(layoutInfo, options3);
+ calculateEdgeForces(layoutInfo);
+ calculateGravityForces(layoutInfo, options3);
+ propagateForces(layoutInfo);
+ updatePositions(layoutInfo);
+ }, "step");
+ calculateNodeForces = /* @__PURE__ */ __name(function calculateNodeForces2(layoutInfo, options3) {
+ for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) {
+ var graph = layoutInfo.graphSet[i2];
+ var numNodes = graph.length;
+ for (var j2 = 0; j2 < numNodes; j2++) {
+ var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j2]]];
+ for (var k2 = j2 + 1; k2 < numNodes; k2++) {
+ var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k2]]];
+ nodeRepulsion2(node1, node2, layoutInfo, options3);
}
- return new Collection(this, eles, opts.unique, opts.removed);
- }
- return new Collection(this);
- },
- nodes: function nodes2(selector2) {
- var nodes3 = this.$(function(ele) {
- return ele.isNode();
- });
- if (selector2) {
- return nodes3.filter(selector2);
- }
- return nodes3;
- },
- edges: function edges2(selector2) {
- var edges3 = this.$(function(ele) {
- return ele.isEdge();
- });
- if (selector2) {
- return edges3.filter(selector2);
- }
- return edges3;
- },
- // search the graph like jQuery
- $: function $(selector2) {
- var eles = this._private.elements;
- if (selector2) {
- return eles.filter(selector2);
- } else {
- return eles.spawnSelf();
}
- },
- mutableElements: function mutableElements() {
- return this._private.elements;
}
- };
- corefn$3.elements = corefn$3.filter = corefn$3.$;
- var styfn$8 = {};
- var TRUE = "t";
- var FALSE = "f";
- styfn$8.apply = function(eles) {
- var self2 = this;
- var _p = self2._private;
- var cy = _p.cy;
- var updatedEles = cy.collection();
- for (var ie = 0; ie < eles.length; ie++) {
- var ele = eles[ie];
- var cxtMeta = self2.getContextMeta(ele);
- if (cxtMeta.empty) {
+ }, "calculateNodeForces");
+ randomDistance = /* @__PURE__ */ __name(function randomDistance2(max10) {
+ return -max10 + 2 * max10 * Math.random();
+ }, "randomDistance");
+ nodeRepulsion2 = /* @__PURE__ */ __name(function nodeRepulsion3(node1, node2, layoutInfo, options3) {
+ var cmptId1 = node1.cmptId;
+ var cmptId2 = node2.cmptId;
+ if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {
+ return;
+ }
+ var directionX = node2.positionX - node1.positionX;
+ var directionY = node2.positionY - node1.positionY;
+ var maxRandDist = 1;
+ if (0 === directionX && 0 === directionY) {
+ directionX = randomDistance(maxRandDist);
+ directionY = randomDistance(maxRandDist);
+ }
+ var overlap = nodesOverlap(node1, node2, directionX, directionY);
+ if (overlap > 0) {
+ var force = options3.nodeOverlap * overlap;
+ var distance2 = Math.sqrt(directionX * directionX + directionY * directionY);
+ var forceX = force * directionX / distance2;
+ var forceY = force * directionY / distance2;
+ } else {
+ var point1 = findClippingPoint(node1, directionX, directionY);
+ var point22 = findClippingPoint(node2, -1 * directionX, -1 * directionY);
+ var distanceX = point22.x - point1.x;
+ var distanceY = point22.y - point1.y;
+ var distanceSqr = distanceX * distanceX + distanceY * distanceY;
+ var distance2 = Math.sqrt(distanceSqr);
+ var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;
+ var forceX = force * distanceX / distance2;
+ var forceY = force * distanceY / distance2;
+ }
+ if (!node1.isLocked) {
+ node1.offsetX -= forceX;
+ node1.offsetY -= forceY;
+ }
+ if (!node2.isLocked) {
+ node2.offsetX += forceX;
+ node2.offsetY += forceY;
+ }
+ return;
+ }, "nodeRepulsion");
+ nodesOverlap = /* @__PURE__ */ __name(function nodesOverlap2(node1, node2, dX, dY) {
+ if (dX > 0) {
+ var overlapX = node1.maxX - node2.minX;
+ } else {
+ var overlapX = node2.maxX - node1.minX;
+ }
+ if (dY > 0) {
+ var overlapY = node1.maxY - node2.minY;
+ } else {
+ var overlapY = node2.maxY - node1.minY;
+ }
+ if (overlapX >= 0 && overlapY >= 0) {
+ return Math.sqrt(overlapX * overlapX + overlapY * overlapY);
+ } else {
+ return 0;
+ }
+ }, "nodesOverlap");
+ findClippingPoint = /* @__PURE__ */ __name(function findClippingPoint2(node2, dX, dY) {
+ var X3 = node2.positionX;
+ var Y3 = node2.positionY;
+ var H2 = node2.height || 1;
+ var W2 = node2.width || 1;
+ var dirSlope = dY / dX;
+ var nodeSlope = H2 / W2;
+ var res = {};
+ if (0 === dX && 0 < dY) {
+ res.x = X3;
+ res.y = Y3 + H2 / 2;
+ return res;
+ }
+ if (0 === dX && 0 > dY) {
+ res.x = X3;
+ res.y = Y3 + H2 / 2;
+ return res;
+ }
+ if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
+ res.x = X3 + W2 / 2;
+ res.y = Y3 + W2 * dY / 2 / dX;
+ return res;
+ }
+ if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
+ res.x = X3 - W2 / 2;
+ res.y = Y3 - W2 * dY / 2 / dX;
+ return res;
+ }
+ if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
+ res.x = X3 + H2 * dX / 2 / dY;
+ res.y = Y3 + H2 / 2;
+ return res;
+ }
+ if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
+ res.x = X3 - H2 * dX / 2 / dY;
+ res.y = Y3 - H2 / 2;
+ return res;
+ }
+ return res;
+ }, "findClippingPoint");
+ calculateEdgeForces = /* @__PURE__ */ __name(function calculateEdgeForces2(layoutInfo, options3) {
+ for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) {
+ var edge = layoutInfo.layoutEdges[i2];
+ var sourceIx = layoutInfo.idToIndex[edge.sourceId];
+ var source = layoutInfo.layoutNodes[sourceIx];
+ var targetIx = layoutInfo.idToIndex[edge.targetId];
+ var target = layoutInfo.layoutNodes[targetIx];
+ var directionX = target.positionX - source.positionX;
+ var directionY = target.positionY - source.positionY;
+ if (0 === directionX && 0 === directionY) {
continue;
}
- var cxtStyle = self2.getContextStyle(cxtMeta);
- var app = self2.applyContextStyle(cxtMeta, cxtStyle, ele);
- if (ele._private.appliedInitStyle) {
- self2.updateTransitions(ele, app.diffProps);
+ var point1 = findClippingPoint(source, directionX, directionY);
+ var point22 = findClippingPoint(target, -1 * directionX, -1 * directionY);
+ var lx = point22.x - point1.x;
+ var ly = point22.y - point1.y;
+ var l2 = Math.sqrt(lx * lx + ly * ly);
+ var force = Math.pow(edge.idealLength - l2, 2) / edge.elasticity;
+ if (0 !== l2) {
+ var forceX = force * lx / l2;
+ var forceY = force * ly / l2;
} else {
- ele._private.appliedInitStyle = true;
+ var forceX = 0;
+ var forceY = 0;
}
- var hintsDiff = self2.updateStyleHints(ele);
- if (hintsDiff) {
- updatedEles.push(ele);
+ if (!source.isLocked) {
+ source.offsetX += forceX;
+ source.offsetY += forceY;
+ }
+ if (!target.isLocked) {
+ target.offsetX -= forceX;
+ target.offsetY -= forceY;
}
}
- return updatedEles;
- };
- styfn$8.getPropertiesDiff = function(oldCxtKey, newCxtKey) {
- var self2 = this;
- var cache2 = self2._private.propDiffs = self2._private.propDiffs || {};
- var dualCxtKey = oldCxtKey + "-" + newCxtKey;
- var cachedVal = cache2[dualCxtKey];
- if (cachedVal) {
- return cachedVal;
+ }, "calculateEdgeForces");
+ calculateGravityForces = /* @__PURE__ */ __name(function calculateGravityForces2(layoutInfo, options3) {
+ if (options3.gravity === 0) {
+ return;
}
- var diffProps = [];
- var addedProp = {};
- for (var i3 = 0; i3 < self2.length; i3++) {
- var cxt = self2[i3];
- var oldHasCxt = oldCxtKey[i3] === TRUE;
- var newHasCxt = newCxtKey[i3] === TRUE;
- var cxtHasDiffed = oldHasCxt !== newHasCxt;
- var cxtHasMappedProps = cxt.mappedProperties.length > 0;
- if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {
- var props = void 0;
- if (cxtHasDiffed && cxtHasMappedProps) {
- props = cxt.properties;
- } else if (cxtHasDiffed) {
- props = cxt.properties;
- } else if (cxtHasMappedProps) {
- props = cxt.mappedProperties;
+ var distThreshold = 1;
+ for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) {
+ var graph = layoutInfo.graphSet[i2];
+ var numNodes = graph.length;
+ if (0 === i2) {
+ var centerX = layoutInfo.clientHeight / 2;
+ var centerY = layoutInfo.clientWidth / 2;
+ } else {
+ var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];
+ var parent4 = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];
+ var centerX = parent4.positionX;
+ var centerY = parent4.positionY;
+ }
+ for (var j2 = 0; j2 < numNodes; j2++) {
+ var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j2]]];
+ if (node2.isLocked) {
+ continue;
}
- for (var j = 0; j < props.length; j++) {
- var prop = props[j];
- var name2 = prop.name;
- var laterCxtOverrides = false;
- for (var k = i3 + 1; k < self2.length; k++) {
- var laterCxt = self2[k];
- var hasLaterCxt = newCxtKey[k] === TRUE;
- if (!hasLaterCxt) {
- continue;
- }
- laterCxtOverrides = laterCxt.properties[prop.name] != null;
- if (laterCxtOverrides) {
- break;
- }
- }
- if (!addedProp[name2] && !laterCxtOverrides) {
- addedProp[name2] = true;
- diffProps.push(name2);
- }
+ var dx = centerX - node2.positionX;
+ var dy = centerY - node2.positionY;
+ var d2 = Math.sqrt(dx * dx + dy * dy);
+ if (d2 > distThreshold) {
+ var fx = options3.gravity * dx / d2;
+ var fy = options3.gravity * dy / d2;
+ node2.offsetX += fx;
+ node2.offsetY += fy;
}
}
}
- cache2[dualCxtKey] = diffProps;
- return diffProps;
- };
- styfn$8.getContextMeta = function(ele) {
- var self2 = this;
- var cxtKey = "";
- var diffProps;
- var prevKey = ele._private.styleCxtKey || "";
- for (var i3 = 0; i3 < self2.length; i3++) {
- var context = self2[i3];
- var contextSelectorMatches = context.selector && context.selector.matches(ele);
- if (contextSelectorMatches) {
- cxtKey += TRUE;
- } else {
- cxtKey += FALSE;
+ }, "calculateGravityForces");
+ propagateForces = /* @__PURE__ */ __name(function propagateForces2(layoutInfo, options3) {
+ var queue = [];
+ var start3 = 0;
+ var end2 = -1;
+ queue.push.apply(queue, layoutInfo.graphSet[0]);
+ end2 += layoutInfo.graphSet[0].length;
+ while (start3 <= end2) {
+ var nodeId = queue[start3++];
+ var nodeIndex = layoutInfo.idToIndex[nodeId];
+ var node2 = layoutInfo.layoutNodes[nodeIndex];
+ var children2 = node2.children;
+ if (0 < children2.length && !node2.isLocked) {
+ var offX = node2.offsetX;
+ var offY = node2.offsetY;
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children2[i2]]];
+ childNode.offsetX += offX;
+ childNode.offsetY += offY;
+ queue[++end2] = children2[i2];
+ }
+ node2.offsetX = 0;
+ node2.offsetY = 0;
}
}
- diffProps = self2.getPropertiesDiff(prevKey, cxtKey);
- ele._private.styleCxtKey = cxtKey;
- return {
- key: cxtKey,
- diffPropNames: diffProps,
- empty: diffProps.length === 0
- };
- };
- styfn$8.getContextStyle = function(cxtMeta) {
- var cxtKey = cxtMeta.key;
- var self2 = this;
- var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};
- if (cxtStyles[cxtKey]) {
- return cxtStyles[cxtKey];
- }
- var style = {
- _private: {
- key: cxtKey
- }
- };
- for (var i3 = 0; i3 < self2.length; i3++) {
- var cxt = self2[i3];
- var hasCxt = cxtKey[i3] === TRUE;
- if (!hasCxt) {
- continue;
- }
- for (var j = 0; j < cxt.properties.length; j++) {
- var prop = cxt.properties[j];
- style[prop.name] = prop;
+ }, "propagateForces");
+ updatePositions = /* @__PURE__ */ __name(function updatePositions2(layoutInfo, options3) {
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n2 = layoutInfo.layoutNodes[i2];
+ if (0 < n2.children.length) {
+ n2.maxX = void 0;
+ n2.minX = void 0;
+ n2.maxY = void 0;
+ n2.minY = void 0;
}
}
- cxtStyles[cxtKey] = style;
- return style;
- };
- styfn$8.applyContextStyle = function(cxtMeta, cxtStyle, ele) {
- var self2 = this;
- var diffProps = cxtMeta.diffPropNames;
- var retDiffProps = {};
- var types = self2.types;
- for (var i3 = 0; i3 < diffProps.length; i3++) {
- var diffPropName = diffProps[i3];
- var cxtProp = cxtStyle[diffPropName];
- var eleProp = ele.pstyle(diffPropName);
- if (!cxtProp) {
- if (!eleProp) {
- continue;
- } else if (eleProp.bypass) {
- cxtProp = {
- name: diffPropName,
- deleteBypassed: true
- };
- } else {
- cxtProp = {
- name: diffPropName,
- "delete": true
- };
- }
- }
- if (eleProp === cxtProp) {
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n2 = layoutInfo.layoutNodes[i2];
+ if (0 < n2.children.length || n2.isLocked) {
continue;
}
- if (cxtProp.mapped === types.fn && eleProp != null && eleProp.mapping != null && eleProp.mapping.value === cxtProp.value) {
- var mapping = eleProp.mapping;
- var fnValue = mapping.fnValue = cxtProp.value(ele);
- if (fnValue === mapping.prevFnValue) {
- continue;
- }
- }
- var retDiffProp = retDiffProps[diffPropName] = {
- prev: eleProp
+ var tempForce = limitForce(n2.offsetX, n2.offsetY, layoutInfo.temperature);
+ n2.positionX += tempForce.x;
+ n2.positionY += tempForce.y;
+ n2.offsetX = 0;
+ n2.offsetY = 0;
+ n2.minX = n2.positionX - n2.width;
+ n2.maxX = n2.positionX + n2.width;
+ n2.minY = n2.positionY - n2.height;
+ n2.maxY = n2.positionY + n2.height;
+ updateAncestryBoundaries(n2, layoutInfo);
+ }
+ for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) {
+ var n2 = layoutInfo.layoutNodes[i2];
+ if (0 < n2.children.length && !n2.isLocked) {
+ n2.positionX = (n2.maxX + n2.minX) / 2;
+ n2.positionY = (n2.maxY + n2.minY) / 2;
+ n2.width = n2.maxX - n2.minX;
+ n2.height = n2.maxY - n2.minY;
+ }
+ }
+ }, "updatePositions");
+ limitForce = /* @__PURE__ */ __name(function limitForce2(forceX, forceY, max10) {
+ var force = Math.sqrt(forceX * forceX + forceY * forceY);
+ if (force > max10) {
+ var res = {
+ x: max10 * forceX / force,
+ y: max10 * forceY / force
+ };
+ } else {
+ var res = {
+ x: forceX,
+ y: forceY
};
- self2.applyParsedProperty(ele, cxtProp);
- retDiffProp.next = ele.pstyle(diffPropName);
- if (retDiffProp.next && retDiffProp.next.bypass) {
- retDiffProp.next = retDiffProp.next.bypassed;
- }
}
- return {
- diffProps: retDiffProps
- };
- };
- styfn$8.updateStyleHints = function(ele) {
- var _p = ele._private;
- var self2 = this;
- var propNames = self2.propertyGroupNames;
- var propGrKeys = self2.propertyGroupKeys;
- var propHash = function propHash2(ele2, propNames2, seedKey) {
- return self2.getPropertiesHash(ele2, propNames2, seedKey);
- };
- var oldStyleKey = _p.styleKey;
- if (ele.removed()) {
- return false;
+ return res;
+ }, "limitForce");
+ updateAncestryBoundaries = /* @__PURE__ */ __name(function updateAncestryBoundaries2(node2, layoutInfo) {
+ var parentId = node2.parentId;
+ if (null == parentId) {
+ return;
}
- var isNode = _p.group === "nodes";
- var overriddenStyles = ele._private.style;
- propNames = Object.keys(overriddenStyles);
- for (var i3 = 0; i3 < propGrKeys.length; i3++) {
- var grKey = propGrKeys[i3];
- _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
+ var p3 = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];
+ var flag = false;
+ if (null == p3.maxX || node2.maxX + p3.padRight > p3.maxX) {
+ p3.maxX = node2.maxX + p3.padRight;
+ flag = true;
}
- var updateGrKey1 = function updateGrKey12(val, grKey2) {
- return _p.styleKeys[grKey2][0] = hashInt(val, _p.styleKeys[grKey2][0]);
- };
- var updateGrKey2 = function updateGrKey22(val, grKey2) {
- return _p.styleKeys[grKey2][1] = hashIntAlt(val, _p.styleKeys[grKey2][1]);
- };
- var updateGrKey = function updateGrKey3(val, grKey2) {
- updateGrKey1(val, grKey2);
- updateGrKey2(val, grKey2);
- };
- var updateGrKeyWStr = function updateGrKeyWStr2(strVal, grKey2) {
- for (var j = 0; j < strVal.length; j++) {
- var ch = strVal.charCodeAt(j);
- updateGrKey1(ch, grKey2);
- updateGrKey2(ch, grKey2);
- }
- };
- var N = 2e9;
- var cleanNum = function cleanNum2(val) {
- return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val;
- };
- for (var _i = 0; _i < propNames.length; _i++) {
- var name2 = propNames[_i];
- var parsedProp = overriddenStyles[name2];
- if (parsedProp == null) {
+ if (null == p3.minX || node2.minX - p3.padLeft < p3.minX) {
+ p3.minX = node2.minX - p3.padLeft;
+ flag = true;
+ }
+ if (null == p3.maxY || node2.maxY + p3.padBottom > p3.maxY) {
+ p3.maxY = node2.maxY + p3.padBottom;
+ flag = true;
+ }
+ if (null == p3.minY || node2.minY - p3.padTop < p3.minY) {
+ p3.minY = node2.minY - p3.padTop;
+ flag = true;
+ }
+ if (flag) {
+ return updateAncestryBoundaries2(p3, layoutInfo);
+ }
+ return;
+ }, "updateAncestryBoundaries");
+ separateComponents = /* @__PURE__ */ __name(function separateComponents2(layoutInfo, options3) {
+ var nodes6 = layoutInfo.layoutNodes;
+ var components3 = [];
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var node2 = nodes6[i2];
+ var cid = node2.cmptId;
+ var component2 = components3[cid] = components3[cid] || [];
+ component2.push(node2);
+ }
+ var totalA = 0;
+ for (var i2 = 0; i2 < components3.length; i2++) {
+ var c3 = components3[i2];
+ if (!c3) {
continue;
}
- var propInfo = this.properties[name2];
- var type2 = propInfo.type;
- var _grKey = propInfo.groupKey;
- var normalizedNumberVal = void 0;
- if (propInfo.hashOverride != null) {
- normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);
- } else if (parsedProp.pfValue != null) {
- normalizedNumberVal = parsedProp.pfValue;
+ c3.x1 = Infinity;
+ c3.x2 = -Infinity;
+ c3.y1 = Infinity;
+ c3.y2 = -Infinity;
+ for (var j2 = 0; j2 < c3.length; j2++) {
+ var n2 = c3[j2];
+ c3.x1 = Math.min(c3.x1, n2.positionX - n2.width / 2);
+ c3.x2 = Math.max(c3.x2, n2.positionX + n2.width / 2);
+ c3.y1 = Math.min(c3.y1, n2.positionY - n2.height / 2);
+ c3.y2 = Math.max(c3.y2, n2.positionY + n2.height / 2);
+ }
+ c3.w = c3.x2 - c3.x1;
+ c3.h = c3.y2 - c3.y1;
+ totalA += c3.w * c3.h;
+ }
+ components3.sort(function(c1, c22) {
+ return c22.w * c22.h - c1.w * c1.h;
+ });
+ var x5 = 0;
+ var y5 = 0;
+ var usedW = 0;
+ var rowH = 0;
+ var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;
+ for (var i2 = 0; i2 < components3.length; i2++) {
+ var c3 = components3[i2];
+ if (!c3) {
+ continue;
}
- var numberVal = propInfo.enums == null ? parsedProp.value : null;
- var haveNormNum = normalizedNumberVal != null;
- var haveUnitedNum = numberVal != null;
- var haveNum = haveNormNum || haveUnitedNum;
- var units = parsedProp.units;
- if (type2.number && haveNum && !type2.multiple) {
- var v = haveNormNum ? normalizedNumberVal : numberVal;
- updateGrKey(cleanNum(v), _grKey);
- if (!haveNormNum && units != null) {
- updateGrKeyWStr(units, _grKey);
+ for (var j2 = 0; j2 < c3.length; j2++) {
+ var n2 = c3[j2];
+ if (!n2.isLocked) {
+ n2.positionX += x5 - c3.x1;
+ n2.positionY += y5 - c3.y1;
}
- } else {
- updateGrKeyWStr(parsedProp.strValue, _grKey);
}
- }
- var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
- for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {
- var _grKey2 = propGrKeys[_i2];
- var grHash = _p.styleKeys[_grKey2];
- hash[0] = hashInt(grHash[0], hash[0]);
- hash[1] = hashIntAlt(grHash[1], hash[1]);
- }
- _p.styleKey = combineHashes(hash[0], hash[1]);
- var sk = _p.styleKeys;
- _p.labelDimsKey = combineHashesArray(sk.labelDimensions);
- var labelKeys = propHash(ele, ["label"], sk.labelDimensions);
- _p.labelKey = combineHashesArray(labelKeys);
- _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));
- if (!isNode) {
- var sourceLabelKeys = propHash(ele, ["source-label"], sk.labelDimensions);
- _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);
- _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));
- var targetLabelKeys = propHash(ele, ["target-label"], sk.labelDimensions);
- _p.targetLabelKey = combineHashesArray(targetLabelKeys);
- _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));
- }
- if (isNode) {
- var _p$styleKeys = _p.styleKeys, nodeBody = _p$styleKeys.nodeBody, nodeBorder = _p$styleKeys.nodeBorder, backgroundImage = _p$styleKeys.backgroundImage, compound = _p$styleKeys.compound, pie2 = _p$styleKeys.pie;
- var nodeKeys = [nodeBody, nodeBorder, backgroundImage, compound, pie2].filter(function(k) {
- return k != null;
- }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);
- _p.nodeKey = combineHashesArray(nodeKeys);
- _p.hasPie = pie2 != null && pie2[0] !== DEFAULT_HASH_SEED && pie2[1] !== DEFAULT_HASH_SEED_ALT;
- }
- return oldStyleKey !== _p.styleKey;
- };
- styfn$8.clearStyleHints = function(ele) {
- var _p = ele._private;
- _p.styleCxtKey = "";
- _p.styleKeys = {};
- _p.styleKey = null;
- _p.labelKey = null;
- _p.labelStyleKey = null;
- _p.sourceLabelKey = null;
- _p.sourceLabelStyleKey = null;
- _p.targetLabelKey = null;
- _p.targetLabelStyleKey = null;
- _p.nodeKey = null;
- _p.hasPie = null;
- };
- styfn$8.applyParsedProperty = function(ele, parsedProp) {
- var self2 = this;
- var prop = parsedProp;
- var style = ele._private.style;
- var flatProp;
- var types = self2.types;
- var type2 = self2.properties[prop.name].type;
- var propIsBypass = prop.bypass;
- var origProp = style[prop.name];
- var origPropIsBypass = origProp && origProp.bypass;
- var _p = ele._private;
- var flatPropMapping = "mapping";
- var getVal = function getVal2(p2) {
- if (p2 == null) {
- return null;
- } else if (p2.pfValue != null) {
- return p2.pfValue;
- } else {
- return p2.value;
+ x5 += c3.w + options3.componentSpacing;
+ usedW += c3.w + options3.componentSpacing;
+ rowH = Math.max(rowH, c3.h);
+ if (usedW > maxRowW) {
+ y5 += rowH + options3.componentSpacing;
+ x5 = 0;
+ usedW = 0;
+ rowH = 0;
}
- };
- var checkTriggers = function checkTriggers2() {
- var fromVal = getVal(origProp);
- var toVal = getVal(prop);
- self2.checkTriggers(ele, prop.name, fromVal, toVal);
- };
- if (prop && prop.name.substr(0, 3) === "pie") {
- warn("The pie style properties are deprecated. Create charts using background images instead.");
- }
- if (parsedProp.name === "curve-style" && ele.isEdge() && // loops must be bundled beziers
- (parsedProp.value !== "bezier" && ele.isLoop() || // edges connected to compound nodes can not be haystacks
- parsedProp.value === "haystack" && (ele.source().isParent() || ele.target().isParent()))) {
- prop = parsedProp = this.parse(parsedProp.name, "bezier", propIsBypass);
}
- if (prop["delete"]) {
- style[prop.name] = void 0;
- checkTriggers();
+ }, "separateComponents");
+ defaults$3 = {
+ fit: true,
+ // whether to fit the viewport to the graph
+ padding: 30,
+ // padding used on fit
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ avoidOverlap: true,
+ // prevents node overlap, may overflow boundingBox if not enough space
+ avoidOverlapPadding: 10,
+ // extra spacing around nodes when avoidOverlap: true
+ nodeDimensionsIncludeLabels: false,
+ // Excludes the label when calculating node bounding boxes for the layout algorithm
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ condense: false,
+ // uses all available space on false, uses minimal space on true
+ rows: void 0,
+ // force num of rows in the grid
+ cols: void 0,
+ // force num of columns in the grid
+ position: /* @__PURE__ */ __name(function position3(node2) {
+ }, "position"),
+ // returns { row, col } for element
+ sort: void 0,
+ // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: /* @__PURE__ */ __name(function animateFilter5(node2, i2) {
return true;
+ }, "animateFilter"),
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: /* @__PURE__ */ __name(function transform5(node2, position5) {
+ return position5;
+ }, "transform")
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ __name(GridLayout, "GridLayout");
+ GridLayout.prototype.run = function() {
+ var params = this.options;
+ var options3 = params;
+ var cy = params.cy;
+ var eles = options3.eles;
+ var nodes6 = eles.nodes().not(":parent");
+ if (options3.sort) {
+ nodes6 = nodes6.sort(options3.sort);
}
- if (prop.deleteBypassed) {
- if (!origProp) {
- checkTriggers();
- return true;
- } else if (origProp.bypass) {
- origProp.bypassed = void 0;
- checkTriggers();
- return true;
- } else {
- return false;
- }
- }
- if (prop.deleteBypass) {
- if (!origProp) {
- checkTriggers();
- return true;
- } else if (origProp.bypass) {
- style[prop.name] = origProp.bypassed;
- checkTriggers();
- return true;
- } else {
- return false;
- }
- }
- var printMappingErr = function printMappingErr2() {
- warn("Do not assign mappings to elements without corresponding data (i.e. ele `" + ele.id() + "` has no mapping for property `" + prop.name + "` with data field `" + prop.field + "`); try a `[" + prop.field + "]` selector to limit scope to elements with `" + prop.field + "` defined");
- };
- switch (prop.mapped) {
- case types.mapData: {
- var fields = prop.field.split(".");
- var fieldVal = _p.data;
- for (var i3 = 0; i3 < fields.length && fieldVal; i3++) {
- var field = fields[i3];
- fieldVal = fieldVal[field];
- }
- if (fieldVal == null) {
- printMappingErr();
- return false;
- }
- var percent;
- if (!number$12(fieldVal)) {
- warn("Do not use continuous mappers without specifying numeric data (i.e. `" + prop.field + ": " + fieldVal + "` for `" + ele.id() + "` is non-numeric)");
- return false;
+ var bb = makeBoundingBox(options3.boundingBox ? options3.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ if (bb.h === 0 || bb.w === 0) {
+ eles.nodes().layoutPositions(this, options3, function(ele) {
+ return {
+ x: bb.x1,
+ y: bb.y1
+ };
+ });
+ } else {
+ var cells = nodes6.size();
+ var splits = Math.sqrt(cells * bb.h / bb.w);
+ var rows = Math.round(splits);
+ var cols = Math.round(bb.w / bb.h * splits);
+ var small = /* @__PURE__ */ __name(function small2(val) {
+ if (val == null) {
+ return Math.min(rows, cols);
} else {
- var fieldWidth = prop.fieldMax - prop.fieldMin;
- if (fieldWidth === 0) {
- percent = 0;
+ var min9 = Math.min(rows, cols);
+ if (min9 == rows) {
+ rows = val;
} else {
- percent = (fieldVal - prop.fieldMin) / fieldWidth;
+ cols = val;
}
}
- if (percent < 0) {
- percent = 0;
- } else if (percent > 1) {
- percent = 1;
- }
- if (type2.color) {
- var r1 = prop.valueMin[0];
- var r2 = prop.valueMax[0];
- var g1 = prop.valueMin[1];
- var g2 = prop.valueMax[1];
- var b1 = prop.valueMin[2];
- var b2 = prop.valueMax[2];
- var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];
- var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];
- var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];
- flatProp = {
- // colours are simple, so just create the flat property instead of expensive string parsing
- bypass: prop.bypass,
- // we're a bypass if the mapping property is a bypass
- name: prop.name,
- value: clr,
- strValue: "rgb(" + clr[0] + ", " + clr[1] + ", " + clr[2] + ")"
- };
- } else if (type2.number) {
- var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;
- flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);
+ }, "small");
+ var large = /* @__PURE__ */ __name(function large2(val) {
+ if (val == null) {
+ return Math.max(rows, cols);
} else {
- return false;
+ var max10 = Math.max(rows, cols);
+ if (max10 == rows) {
+ rows = val;
+ } else {
+ cols = val;
+ }
}
- if (!flatProp) {
- printMappingErr();
- return false;
+ }, "large");
+ var oRows = options3.rows;
+ var oCols = options3.cols != null ? options3.cols : options3.columns;
+ if (oRows != null && oCols != null) {
+ rows = oRows;
+ cols = oCols;
+ } else if (oRows != null && oCols == null) {
+ rows = oRows;
+ cols = Math.ceil(cells / rows);
+ } else if (oRows == null && oCols != null) {
+ cols = oCols;
+ rows = Math.ceil(cells / cols);
+ } else if (cols * rows > cells) {
+ var sm = small();
+ var lg = large();
+ if ((sm - 1) * lg >= cells) {
+ small(sm - 1);
+ } else if ((lg - 1) * sm >= cells) {
+ large(lg - 1);
+ }
+ } else {
+ while (cols * rows < cells) {
+ var _sm = small();
+ var _lg = large();
+ if ((_lg + 1) * _sm >= cells) {
+ large(_lg + 1);
+ } else {
+ small(_sm + 1);
+ }
}
- flatProp.mapping = prop;
- prop = flatProp;
- break;
}
- case types.data: {
- var _fields = prop.field.split(".");
- var _fieldVal = _p.data;
- for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {
- var _field = _fields[_i3];
- _fieldVal = _fieldVal[_field];
+ var cellWidth = bb.w / cols;
+ var cellHeight = bb.h / rows;
+ if (options3.condense) {
+ cellWidth = 0;
+ cellHeight = 0;
+ }
+ if (options3.avoidOverlap) {
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var node2 = nodes6[i2];
+ var pos = node2._private.position;
+ if (pos.x == null || pos.y == null) {
+ pos.x = 0;
+ pos.y = 0;
+ }
+ var nbb = node2.layoutDimensions(options3);
+ var p3 = options3.avoidOverlapPadding;
+ var w3 = nbb.w + p3;
+ var h2 = nbb.h + p3;
+ cellWidth = Math.max(cellWidth, w3);
+ cellHeight = Math.max(cellHeight, h2);
}
- if (_fieldVal != null) {
- flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);
+ }
+ var cellUsed = {};
+ var used = /* @__PURE__ */ __name(function used2(row2, col2) {
+ return cellUsed["c-" + row2 + "-" + col2] ? true : false;
+ }, "used");
+ var use2 = /* @__PURE__ */ __name(function use3(row2, col2) {
+ cellUsed["c-" + row2 + "-" + col2] = true;
+ }, "use");
+ var row = 0;
+ var col = 0;
+ var moveToNextCell = /* @__PURE__ */ __name(function moveToNextCell2() {
+ col++;
+ if (col >= cols) {
+ col = 0;
+ row++;
}
- if (!flatProp) {
- printMappingErr();
- return false;
+ }, "moveToNextCell");
+ var id2manPos = {};
+ for (var _i = 0; _i < nodes6.length; _i++) {
+ var _node = nodes6[_i];
+ var rcPos = options3.position(_node);
+ if (rcPos && (rcPos.row !== void 0 || rcPos.col !== void 0)) {
+ var _pos = {
+ row: rcPos.row,
+ col: rcPos.col
+ };
+ if (_pos.col === void 0) {
+ _pos.col = 0;
+ while (used(_pos.row, _pos.col)) {
+ _pos.col++;
+ }
+ } else if (_pos.row === void 0) {
+ _pos.row = 0;
+ while (used(_pos.row, _pos.col)) {
+ _pos.row++;
+ }
+ }
+ id2manPos[_node.id()] = _pos;
+ use2(_pos.row, _pos.col);
}
- flatProp.mapping = prop;
- prop = flatProp;
- break;
}
- case types.fn: {
- var fn2 = prop.value;
- var fnRetVal = prop.fnValue != null ? prop.fnValue : fn2(ele);
- prop.prevFnValue = fnRetVal;
- if (fnRetVal == null) {
- warn("Custom function mappers may not return null (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is null)");
+ var getPos = /* @__PURE__ */ __name(function getPos2(element3, i3) {
+ var x5, y5;
+ if (element3.locked() || element3.isParent()) {
return false;
}
- flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);
- if (!flatProp) {
- warn("Custom function mappers may not return invalid values for the property type (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is invalid)");
- return false;
+ var rcPos2 = id2manPos[element3.id()];
+ if (rcPos2) {
+ x5 = rcPos2.col * cellWidth + cellWidth / 2 + bb.x1;
+ y5 = rcPos2.row * cellHeight + cellHeight / 2 + bb.y1;
+ } else {
+ while (used(row, col)) {
+ moveToNextCell();
+ }
+ x5 = col * cellWidth + cellWidth / 2 + bb.x1;
+ y5 = row * cellHeight + cellHeight / 2 + bb.y1;
+ use2(row, col);
+ moveToNextCell();
}
- flatProp.mapping = copy2(prop);
- prop = flatProp;
- break;
+ return {
+ x: x5,
+ y: y5
+ };
+ }, "getPos");
+ nodes6.layoutPositions(this, options3, getPos);
+ }
+ return this;
+ };
+ defaults$2 = {
+ ready: /* @__PURE__ */ __name(function ready3() {
+ }, "ready"),
+ // on layoutready
+ stop: /* @__PURE__ */ __name(function stop4() {
+ }, "stop")
+ // on layoutstop
+ };
+ __name(NullLayout, "NullLayout");
+ NullLayout.prototype.run = function() {
+ var options3 = this.options;
+ var eles = options3.eles;
+ var layout6 = this;
+ options3.cy;
+ layout6.emit("layoutstart");
+ eles.nodes().positions(function() {
+ return {
+ x: 0,
+ y: 0
+ };
+ });
+ layout6.one("layoutready", options3.ready);
+ layout6.emit("layoutready");
+ layout6.one("layoutstop", options3.stop);
+ layout6.emit("layoutstop");
+ return this;
+ };
+ NullLayout.prototype.stop = function() {
+ return this;
+ };
+ defaults$1 = {
+ positions: void 0,
+ // map of (node id) => (position obj); or function(node){ return somPos; }
+ zoom: void 0,
+ // the zoom level to set (prob want fit = false if set)
+ pan: void 0,
+ // the pan level to set (prob want fit = false if set)
+ fit: true,
+ // whether to fit to viewport
+ padding: 30,
+ // padding on fit
+ spacingFactor: void 0,
+ // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: /* @__PURE__ */ __name(function animateFilter6(node2, i2) {
+ return true;
+ }, "animateFilter"),
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: /* @__PURE__ */ __name(function transform6(node2, position5) {
+ return position5;
+ }, "transform")
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ __name(PresetLayout, "PresetLayout");
+ PresetLayout.prototype.run = function() {
+ var options3 = this.options;
+ var eles = options3.eles;
+ var nodes6 = eles.nodes();
+ var posIsFn = fn$6(options3.positions);
+ function getPosition(node2) {
+ if (options3.positions == null) {
+ return copyPosition(node2.position());
}
- case void 0:
- break;
- default:
- return false;
+ if (posIsFn) {
+ return options3.positions(node2);
+ }
+ var pos = options3.positions[node2._private.data.id];
+ if (pos == null) {
+ return null;
+ }
+ return pos;
}
- if (propIsBypass) {
- if (origPropIsBypass) {
- prop.bypassed = origProp.bypassed;
- } else {
- prop.bypassed = origProp;
+ __name(getPosition, "getPosition");
+ nodes6.layoutPositions(this, options3, function(node2, i2) {
+ var position5 = getPosition(node2);
+ if (node2.locked() || position5 == null) {
+ return false;
}
- style[prop.name] = prop;
- } else {
- if (origPropIsBypass) {
- origProp.bypassed = prop;
- } else {
- style[prop.name] = prop;
+ return position5;
+ });
+ return this;
+ };
+ defaults3 = {
+ fit: true,
+ // whether to fit to viewport
+ padding: 30,
+ // fit padding
+ boundingBox: void 0,
+ // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
+ animate: false,
+ // whether to transition the node positions
+ animationDuration: 500,
+ // duration of animation in ms if enabled
+ animationEasing: void 0,
+ // easing of animation if enabled
+ animateFilter: /* @__PURE__ */ __name(function animateFilter7(node2, i2) {
+ return true;
+ }, "animateFilter"),
+ // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
+ ready: void 0,
+ // callback on layoutready
+ stop: void 0,
+ // callback on layoutstop
+ transform: /* @__PURE__ */ __name(function transform7(node2, position5) {
+ return position5;
+ }, "transform")
+ // transform a given node position. Useful for changing flow direction in discrete layouts
+ };
+ __name(RandomLayout, "RandomLayout");
+ RandomLayout.prototype.run = function() {
+ var options3 = this.options;
+ var cy = options3.cy;
+ var eles = options3.eles;
+ var bb = makeBoundingBox(options3.boundingBox ? options3.boundingBox : {
+ x1: 0,
+ y1: 0,
+ w: cy.width(),
+ h: cy.height()
+ });
+ var getPos = /* @__PURE__ */ __name(function getPos2(node2, i2) {
+ return {
+ x: bb.x1 + Math.round(Math.random() * bb.w),
+ y: bb.y1 + Math.round(Math.random() * bb.h)
+ };
+ }, "getPos");
+ eles.nodes().layoutPositions(this, options3, getPos);
+ return this;
+ };
+ layout4 = [{
+ name: "breadthfirst",
+ impl: BreadthFirstLayout
+ }, {
+ name: "circle",
+ impl: CircleLayout
+ }, {
+ name: "concentric",
+ impl: ConcentricLayout
+ }, {
+ name: "cose",
+ impl: CoseLayout
+ }, {
+ name: "grid",
+ impl: GridLayout
+ }, {
+ name: "null",
+ impl: NullLayout
+ }, {
+ name: "preset",
+ impl: PresetLayout
+ }, {
+ name: "random",
+ impl: RandomLayout
+ }];
+ __name(NullRenderer, "NullRenderer");
+ noop4 = /* @__PURE__ */ __name(function noop5() {
+ }, "noop");
+ throwImgErr = /* @__PURE__ */ __name(function throwImgErr2() {
+ throw new Error("A headless instance can not render images");
+ }, "throwImgErr");
+ NullRenderer.prototype = {
+ recalculateRenderedStyle: noop4,
+ notify: /* @__PURE__ */ __name(function notify2() {
+ this.notifications++;
+ }, "notify"),
+ init: noop4,
+ isHeadless: /* @__PURE__ */ __name(function isHeadless() {
+ return true;
+ }, "isHeadless"),
+ png: throwImgErr,
+ jpg: throwImgErr
+ };
+ BRp$f = {};
+ BRp$f.arrowShapeWidth = 0.3;
+ BRp$f.registerArrowShapes = function() {
+ var arrowShapes = this.arrowShapes = {};
+ var renderer8 = this;
+ var bbCollide = /* @__PURE__ */ __name(function bbCollide2(x5, y5, size5, angle2, translation, edgeWidth, padding3) {
+ var x1 = translation.x - size5 / 2 - padding3;
+ var x22 = translation.x + size5 / 2 + padding3;
+ var y1 = translation.y - size5 / 2 - padding3;
+ var y22 = translation.y + size5 / 2 + padding3;
+ var inside = x1 <= x5 && x5 <= x22 && y1 <= y5 && y5 <= y22;
+ return inside;
+ }, "bbCollide");
+ var transform8 = /* @__PURE__ */ __name(function transform9(x5, y5, size5, angle2, translation) {
+ var xRotated = x5 * Math.cos(angle2) - y5 * Math.sin(angle2);
+ var yRotated = x5 * Math.sin(angle2) + y5 * Math.cos(angle2);
+ var xScaled = xRotated * size5;
+ var yScaled = yRotated * size5;
+ var xTranslated = xScaled + translation.x;
+ var yTranslated = yScaled + translation.y;
+ return {
+ x: xTranslated,
+ y: yTranslated
+ };
+ }, "transform");
+ var transformPoints = /* @__PURE__ */ __name(function transformPoints2(pts2, size5, angle2, translation) {
+ var retPts = [];
+ for (var i2 = 0; i2 < pts2.length; i2 += 2) {
+ var x5 = pts2[i2];
+ var y5 = pts2[i2 + 1];
+ retPts.push(transform8(x5, y5, size5, angle2, translation));
+ }
+ return retPts;
+ }, "transformPoints");
+ var pointsToArr = /* @__PURE__ */ __name(function pointsToArr2(pts2) {
+ var ret = [];
+ for (var i2 = 0; i2 < pts2.length; i2++) {
+ var p3 = pts2[i2];
+ ret.push(p3.x, p3.y);
+ }
+ return ret;
+ }, "pointsToArr");
+ var standardGap = /* @__PURE__ */ __name(function standardGap2(edge) {
+ return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").pfValue * 2;
+ }, "standardGap");
+ var defineArrowShape = /* @__PURE__ */ __name(function defineArrowShape2(name, defn) {
+ if (string(defn)) {
+ defn = arrowShapes[defn];
}
+ arrowShapes[name] = extend2({
+ name,
+ points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],
+ collide: /* @__PURE__ */ __name(function collide(x5, y5, size5, angle2, translation, padding3) {
+ var points = pointsToArr(transformPoints(this.points, size5 + 2 * padding3, angle2, translation));
+ var inside = pointInsidePolygonPoints(x5, y5, points);
+ return inside;
+ }, "collide"),
+ roughCollide: bbCollide,
+ draw: /* @__PURE__ */ __name(function draw24(context, size5, angle2, translation) {
+ var points = transformPoints(this.points, size5, angle2, translation);
+ renderer8.arrowShapeImpl("polygon")(context, points);
+ }, "draw"),
+ spacing: /* @__PURE__ */ __name(function spacing2(edge) {
+ return 0;
+ }, "spacing"),
+ gap: standardGap
+ }, defn);
+ }, "defineArrowShape");
+ defineArrowShape("none", {
+ collide: falsify,
+ roughCollide: falsify,
+ draw: noop$1,
+ spacing: zeroify,
+ gap: zeroify
+ });
+ defineArrowShape("triangle", {
+ points: [-0.15, -0.3, 0, 0, 0.15, -0.3]
+ });
+ defineArrowShape("arrow", "triangle");
+ defineArrowShape("triangle-backcurve", {
+ points: arrowShapes["triangle"].points,
+ controlPoint: [0, -0.15],
+ roughCollide: bbCollide,
+ draw: /* @__PURE__ */ __name(function draw24(context, size5, angle2, translation, edgeWidth) {
+ var ptsTrans = transformPoints(this.points, size5, angle2, translation);
+ var ctrlPt = this.controlPoint;
+ var ctrlPtTrans = transform8(ctrlPt[0], ctrlPt[1], size5, angle2, translation);
+ renderer8.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);
+ }, "draw"),
+ gap: /* @__PURE__ */ __name(function gap(edge) {
+ return standardGap(edge) * 0.8;
+ }, "gap")
+ });
+ defineArrowShape("triangle-tee", {
+ points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
+ pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],
+ collide: /* @__PURE__ */ __name(function collide(x5, y5, size5, angle2, translation, edgeWidth, padding3) {
+ var triPts = pointsToArr(transformPoints(this.points, size5 + 2 * padding3, angle2, translation));
+ var teePts = pointsToArr(transformPoints(this.pointsTee, size5 + 2 * padding3, angle2, translation));
+ var inside = pointInsidePolygonPoints(x5, y5, triPts) || pointInsidePolygonPoints(x5, y5, teePts);
+ return inside;
+ }, "collide"),
+ draw: /* @__PURE__ */ __name(function draw24(context, size5, angle2, translation, edgeWidth) {
+ var triPts = transformPoints(this.points, size5, angle2, translation);
+ var teePts = transformPoints(this.pointsTee, size5, angle2, translation);
+ renderer8.arrowShapeImpl(this.name)(context, triPts, teePts);
+ }, "draw")
+ });
+ defineArrowShape("circle-triangle", {
+ radius: 0.15,
+ pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],
+ collide: /* @__PURE__ */ __name(function collide(x5, y5, size5, angle2, translation, edgeWidth, padding3) {
+ var t4 = translation;
+ var circleInside = Math.pow(t4.x - x5, 2) + Math.pow(t4.y - y5, 2) <= Math.pow((size5 + 2 * padding3) * this.radius, 2);
+ var triPts = pointsToArr(transformPoints(this.points, size5 + 2 * padding3, angle2, translation));
+ return pointInsidePolygonPoints(x5, y5, triPts) || circleInside;
+ }, "collide"),
+ draw: /* @__PURE__ */ __name(function draw24(context, size5, angle2, translation, edgeWidth) {
+ var triPts = transformPoints(this.pointsTr, size5, angle2, translation);
+ renderer8.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size5);
+ }, "draw"),
+ spacing: /* @__PURE__ */ __name(function spacing2(edge) {
+ return renderer8.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
+ }, "spacing")
+ });
+ defineArrowShape("triangle-cross", {
+ points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
+ baseCrossLinePts: [
+ -0.15,
+ -0.4,
+ // first half of the rectangle
+ -0.15,
+ -0.4,
+ 0.15,
+ -0.4,
+ // second half of the rectangle
+ 0.15,
+ -0.4
+ ],
+ crossLinePts: /* @__PURE__ */ __name(function crossLinePts(size5, edgeWidth) {
+ var p3 = this.baseCrossLinePts.slice();
+ var shiftFactor = edgeWidth / size5;
+ var y0 = 3;
+ var y1 = 5;
+ p3[y0] = p3[y0] - shiftFactor;
+ p3[y1] = p3[y1] - shiftFactor;
+ return p3;
+ }, "crossLinePts"),
+ collide: /* @__PURE__ */ __name(function collide(x5, y5, size5, angle2, translation, edgeWidth, padding3) {
+ var triPts = pointsToArr(transformPoints(this.points, size5 + 2 * padding3, angle2, translation));
+ var teePts = pointsToArr(transformPoints(this.crossLinePts(size5, edgeWidth), size5 + 2 * padding3, angle2, translation));
+ var inside = pointInsidePolygonPoints(x5, y5, triPts) || pointInsidePolygonPoints(x5, y5, teePts);
+ return inside;
+ }, "collide"),
+ draw: /* @__PURE__ */ __name(function draw24(context, size5, angle2, translation, edgeWidth) {
+ var triPts = transformPoints(this.points, size5, angle2, translation);
+ var crossLinePts = transformPoints(this.crossLinePts(size5, edgeWidth), size5, angle2, translation);
+ renderer8.arrowShapeImpl(this.name)(context, triPts, crossLinePts);
+ }, "draw")
+ });
+ defineArrowShape("vee", {
+ points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],
+ gap: /* @__PURE__ */ __name(function gap(edge) {
+ return standardGap(edge) * 0.525;
+ }, "gap")
+ });
+ defineArrowShape("circle", {
+ radius: 0.15,
+ collide: /* @__PURE__ */ __name(function collide(x5, y5, size5, angle2, translation, edgeWidth, padding3) {
+ var t4 = translation;
+ var inside = Math.pow(t4.x - x5, 2) + Math.pow(t4.y - y5, 2) <= Math.pow((size5 + 2 * padding3) * this.radius, 2);
+ return inside;
+ }, "collide"),
+ draw: /* @__PURE__ */ __name(function draw24(context, size5, angle2, translation, edgeWidth) {
+ renderer8.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size5);
+ }, "draw"),
+ spacing: /* @__PURE__ */ __name(function spacing2(edge) {
+ return renderer8.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
+ }, "spacing")
+ });
+ defineArrowShape("tee", {
+ points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],
+ spacing: /* @__PURE__ */ __name(function spacing2(edge) {
+ return 1;
+ }, "spacing"),
+ gap: /* @__PURE__ */ __name(function gap(edge) {
+ return 1;
+ }, "gap")
+ });
+ defineArrowShape("square", {
+ points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3]
+ });
+ defineArrowShape("diamond", {
+ points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],
+ gap: /* @__PURE__ */ __name(function gap(edge) {
+ return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
+ }, "gap")
+ });
+ defineArrowShape("chevron", {
+ points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],
+ gap: /* @__PURE__ */ __name(function gap(edge) {
+ return 0.95 * edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
+ }, "gap")
+ });
+ };
+ BRp$e = {};
+ BRp$e.projectIntoViewport = function(clientX, clientY) {
+ var cy = this.cy;
+ var offsets = this.findContainerClientCoords();
+ var offsetLeft = offsets[0];
+ var offsetTop = offsets[1];
+ var scale = offsets[4];
+ var pan2 = cy.pan();
+ var zoom2 = cy.zoom();
+ var x5 = ((clientX - offsetLeft) / scale - pan2.x) / zoom2;
+ var y5 = ((clientY - offsetTop) / scale - pan2.y) / zoom2;
+ return [x5, y5];
+ };
+ BRp$e.findContainerClientCoords = function() {
+ if (this.containerBB) {
+ return this.containerBB;
}
- checkTriggers();
- return true;
+ var container2 = this.container;
+ var rect4 = container2.getBoundingClientRect();
+ var style3 = this.cy.window().getComputedStyle(container2);
+ var styleValue2 = /* @__PURE__ */ __name(function styleValue3(name) {
+ return parseFloat(style3.getPropertyValue(name));
+ }, "styleValue");
+ var padding3 = {
+ left: styleValue2("padding-left"),
+ right: styleValue2("padding-right"),
+ top: styleValue2("padding-top"),
+ bottom: styleValue2("padding-bottom")
+ };
+ var border = {
+ left: styleValue2("border-left-width"),
+ right: styleValue2("border-right-width"),
+ top: styleValue2("border-top-width"),
+ bottom: styleValue2("border-bottom-width")
+ };
+ var clientWidth = container2.clientWidth;
+ var clientHeight = container2.clientHeight;
+ var paddingHor = padding3.left + padding3.right;
+ var paddingVer = padding3.top + padding3.bottom;
+ var borderHor = border.left + border.right;
+ var scale = rect4.width / (clientWidth + borderHor);
+ var unscaledW = clientWidth - paddingHor;
+ var unscaledH = clientHeight - paddingVer;
+ var left3 = rect4.left + padding3.left + border.left;
+ var top2 = rect4.top + padding3.top + border.top;
+ return this.containerBB = [left3, top2, unscaledW, unscaledH, scale];
};
- styfn$8.cleanElements = function(eles, keepBypasses) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- this.clearStyleHints(ele);
- ele.dirtyCompoundBoundsCache();
- ele.dirtyBoundingBoxCache();
- if (!keepBypasses) {
- ele._private.style = {};
- } else {
- var style = ele._private.style;
- var propNames = Object.keys(style);
- for (var j = 0; j < propNames.length; j++) {
- var propName = propNames[j];
- var eleProp = style[propName];
- if (eleProp != null) {
- if (eleProp.bypass) {
- eleProp.bypassed = null;
- } else {
- style[propName] = null;
+ BRp$e.invalidateContainerClientCoordsCache = function() {
+ this.containerBB = null;
+ };
+ BRp$e.findNearestElement = function(x5, y5, interactiveElementsOnly, isTouch) {
+ return this.findNearestElements(x5, y5, interactiveElementsOnly, isTouch)[0];
+ };
+ BRp$e.findNearestElements = function(x5, y5, interactiveElementsOnly, isTouch) {
+ var self2 = this;
+ var r2 = this;
+ var eles = r2.getCachedZSortedEles();
+ var near = [];
+ var zoom2 = r2.cy.zoom();
+ var hasCompounds = r2.cy.hasCompoundNodes();
+ var edgeThreshold = (isTouch ? 24 : 8) / zoom2;
+ var nodeThreshold = (isTouch ? 8 : 2) / zoom2;
+ var labelThreshold = (isTouch ? 8 : 2) / zoom2;
+ var minSqDist = Infinity;
+ var nearEdge;
+ var nearNode;
+ if (interactiveElementsOnly) {
+ eles = eles.interactive;
+ }
+ function addEle(ele2, sqDist) {
+ if (ele2.isNode()) {
+ if (nearNode) {
+ return;
+ } else {
+ nearNode = ele2;
+ near.push(ele2);
+ }
+ }
+ if (ele2.isEdge() && (sqDist == null || sqDist < minSqDist)) {
+ if (nearEdge) {
+ if (nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value && nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value) {
+ for (var i3 = 0; i3 < near.length; i3++) {
+ if (near[i3].isEdge()) {
+ near[i3] = ele2;
+ nearEdge = ele2;
+ minSqDist = sqDist != null ? sqDist : minSqDist;
+ break;
+ }
}
}
+ } else {
+ near.push(ele2);
+ nearEdge = ele2;
+ minSqDist = sqDist != null ? sqDist : minSqDist;
}
}
}
- };
- styfn$8.update = function() {
- var cy = this._private.cy;
- var eles = cy.mutableElements();
- eles.updateStyle();
- };
- styfn$8.updateTransitions = function(ele, diffProps) {
- var self2 = this;
- var _p = ele._private;
- var props = ele.pstyle("transition-property").value;
- var duration = ele.pstyle("transition-duration").pfValue;
- var delay = ele.pstyle("transition-delay").pfValue;
- if (props.length > 0 && duration > 0) {
- var style = {};
- var anyPrev = false;
- for (var i3 = 0; i3 < props.length; i3++) {
- var prop = props[i3];
- var styProp = ele.pstyle(prop);
- var diffProp = diffProps[prop];
- if (!diffProp) {
- continue;
+ __name(addEle, "addEle");
+ function checkNode(node2) {
+ var width3 = node2.outerWidth() + 2 * nodeThreshold;
+ var height2 = node2.outerHeight() + 2 * nodeThreshold;
+ var hw = width3 / 2;
+ var hh = height2 / 2;
+ var pos = node2.position();
+ var cornerRadius = node2.pstyle("corner-radius").value === "auto" ? "auto" : node2.pstyle("corner-radius").pfValue;
+ var rs = node2._private.rscratch;
+ if (pos.x - hw <= x5 && x5 <= pos.x + hw && pos.y - hh <= y5 && y5 <= pos.y + hh) {
+ var shape = r2.nodeShapes[self2.getNodeShape(node2)];
+ if (shape.checkPoint(x5, y5, 0, width3, height2, pos.x, pos.y, cornerRadius, rs)) {
+ addEle(node2, 0);
+ return true;
}
- var prevProp = diffProp.prev;
- var fromProp = prevProp;
- var toProp = diffProp.next != null ? diffProp.next : styProp;
- var diff = false;
- var initVal = void 0;
- var initDt = 1e-6;
- if (!fromProp) {
- continue;
+ }
+ }
+ __name(checkNode, "checkNode");
+ function checkEdge(edge) {
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ var styleWidth = edge.pstyle("width").pfValue;
+ var scale = edge.pstyle("arrow-scale").value;
+ var width3 = styleWidth / 2 + edgeThreshold;
+ var widthSq = width3 * width3;
+ var width22 = width3 * 2;
+ var src = _p.source;
+ var tgt = _p.target;
+ var sqDist;
+ if (rs.edgeType === "segments" || rs.edgeType === "straight" || rs.edgeType === "haystack") {
+ var pts2 = rs.allpts;
+ for (var i3 = 0; i3 + 3 < pts2.length; i3 += 2) {
+ if (inLineVicinity(x5, y5, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], width22) && widthSq > (sqDist = sqdistToFiniteLine(x5, y5, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3]))) {
+ addEle(edge, sqDist);
+ return true;
+ }
}
- if (number$12(fromProp.pfValue) && number$12(toProp.pfValue)) {
- diff = toProp.pfValue - fromProp.pfValue;
- initVal = fromProp.pfValue + initDt * diff;
- } else if (number$12(fromProp.value) && number$12(toProp.value)) {
- diff = toProp.value - fromProp.value;
- initVal = fromProp.value + initDt * diff;
- } else if (array2(fromProp.value) && array2(toProp.value)) {
- diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];
- initVal = fromProp.strValue;
+ } else if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
+ var pts2 = rs.allpts;
+ for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) {
+ if (inBezierVicinity(x5, y5, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5], width22) && widthSq > (sqDist = sqdistToQuadraticBezier(x5, y5, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5]))) {
+ addEle(edge, sqDist);
+ return true;
+ }
}
- if (diff) {
- style[prop] = toProp.strValue;
- this.applyBypass(ele, prop, initVal);
- anyPrev = true;
+ }
+ var src = src || _p.source;
+ var tgt = tgt || _p.target;
+ var arSize = self2.getArrowWidth(styleWidth, scale);
+ var arrows = [{
+ name: "source",
+ x: rs.arrowStartX,
+ y: rs.arrowStartY,
+ angle: rs.srcArrowAngle
+ }, {
+ name: "target",
+ x: rs.arrowEndX,
+ y: rs.arrowEndY,
+ angle: rs.tgtArrowAngle
+ }, {
+ name: "mid-source",
+ x: rs.midX,
+ y: rs.midY,
+ angle: rs.midsrcArrowAngle
+ }, {
+ name: "mid-target",
+ x: rs.midX,
+ y: rs.midY,
+ angle: rs.midtgtArrowAngle
+ }];
+ for (var i3 = 0; i3 < arrows.length; i3++) {
+ var ar = arrows[i3];
+ var shape = r2.arrowShapes[edge.pstyle(ar.name + "-arrow-shape").value];
+ var edgeWidth = edge.pstyle("width").pfValue;
+ if (shape.roughCollide(x5, y5, arSize, ar.angle, {
+ x: ar.x,
+ y: ar.y
+ }, edgeWidth, edgeThreshold) && shape.collide(x5, y5, arSize, ar.angle, {
+ x: ar.x,
+ y: ar.y
+ }, edgeWidth, edgeThreshold)) {
+ addEle(edge);
+ return true;
}
}
- if (!anyPrev) {
- return;
+ if (hasCompounds && near.length > 0) {
+ checkNode(src);
+ checkNode(tgt);
}
- _p.transitioning = true;
- new Promise$12(function(resolve2) {
- if (delay > 0) {
- ele.delayAnimation(delay).play().promise().then(resolve2);
- } else {
- resolve2();
- }
- }).then(function() {
- return ele.animation({
- style,
- duration,
- easing: ele.pstyle("transition-timing-function").value,
- queue: false
- }).play().promise();
- }).then(function() {
- self2.removeBypasses(ele, props);
- ele.emitAndNotify("style");
- _p.transitioning = false;
- });
- } else if (_p.transitioning) {
- this.removeBypasses(ele, props);
- ele.emitAndNotify("style");
- _p.transitioning = false;
}
- };
- styfn$8.checkTrigger = function(ele, name2, fromValue, toValue, getTrigger, onTrigger) {
- var prop = this.properties[name2];
- var triggerCheck = getTrigger(prop);
- if (triggerCheck != null && triggerCheck(fromValue, toValue)) {
- onTrigger(prop);
+ __name(checkEdge, "checkEdge");
+ function preprop(obj, name, pre) {
+ return getPrefixedProperty(obj, name, pre);
}
- };
- styfn$8.checkZOrderTrigger = function(ele, name2, fromValue, toValue) {
- var _this = this;
- this.checkTrigger(ele, name2, fromValue, toValue, function(prop) {
- return prop.triggersZOrder;
- }, function() {
- _this._private.cy.notify("zorder", ele);
- });
- };
- styfn$8.checkBoundsTrigger = function(ele, name2, fromValue, toValue) {
- this.checkTrigger(ele, name2, fromValue, toValue, function(prop) {
- return prop.triggersBounds;
- }, function(prop) {
- ele.dirtyCompoundBoundsCache();
- ele.dirtyBoundingBoxCache();
- if (
- // only for beziers -- so performance of other edges isn't affected
- prop.triggersBoundsOfParallelBeziers && (name2 === "curve-style" && (fromValue === "bezier" || toValue === "bezier") || name2 === "display" && (fromValue === "none" || toValue === "none"))
- ) {
- ele.parallelEdges().forEach(function(pllEdge) {
- if (pllEdge.isBundledBezier()) {
- pllEdge.dirtyBoundingBoxCache();
- }
- });
+ __name(preprop, "preprop");
+ function checkLabel(ele2, prefix) {
+ var _p = ele2._private;
+ var th = labelThreshold;
+ var prefixDash;
+ if (prefix) {
+ prefixDash = prefix + "-";
+ } else {
+ prefixDash = "";
}
- });
- };
- styfn$8.checkTriggers = function(ele, name2, fromValue, toValue) {
- ele.dirtyStyleCache();
- this.checkZOrderTrigger(ele, name2, fromValue, toValue);
- this.checkBoundsTrigger(ele, name2, fromValue, toValue);
- };
- var styfn$7 = {};
- styfn$7.applyBypass = function(eles, name2, value, updateTransitions) {
- var self2 = this;
- var props = [];
- var isBypass = true;
- if (name2 === "*" || name2 === "**") {
- if (value !== void 0) {
- for (var i3 = 0; i3 < self2.properties.length; i3++) {
- var prop = self2.properties[i3];
- var _name = prop.name;
- var parsedProp = this.parse(_name, value, true);
- if (parsedProp) {
- props.push(parsedProp);
- }
+ ele2.boundingBox();
+ var bb = _p.labelBounds[prefix || "main"];
+ var text2 = ele2.pstyle(prefixDash + "label").value;
+ var eventsEnabled = ele2.pstyle("text-events").strValue === "yes";
+ if (!eventsEnabled || !text2) {
+ return;
+ }
+ var lx = preprop(_p.rscratch, "labelX", prefix);
+ var ly = preprop(_p.rscratch, "labelY", prefix);
+ var theta = preprop(_p.rscratch, "labelAngle", prefix);
+ var ox = ele2.pstyle(prefixDash + "text-margin-x").pfValue;
+ var oy = ele2.pstyle(prefixDash + "text-margin-y").pfValue;
+ var lx1 = bb.x1 - th - ox;
+ var lx2 = bb.x2 + th - ox;
+ var ly1 = bb.y1 - th - oy;
+ var ly2 = bb.y2 + th - oy;
+ if (theta) {
+ var cos3 = Math.cos(theta);
+ var sin3 = Math.sin(theta);
+ var rotate = /* @__PURE__ */ __name(function rotate2(x6, y6) {
+ x6 = x6 - lx;
+ y6 = y6 - ly;
+ return {
+ x: x6 * cos3 - y6 * sin3 + lx,
+ y: x6 * sin3 + y6 * cos3 + ly
+ };
+ }, "rotate");
+ var px1y1 = rotate(lx1, ly1);
+ var px1y2 = rotate(lx1, ly2);
+ var px2y1 = rotate(lx2, ly1);
+ var px2y2 = rotate(lx2, ly2);
+ var points = [
+ // with the margin added after the rotation is applied
+ px1y1.x + ox,
+ px1y1.y + oy,
+ px2y1.x + ox,
+ px2y1.y + oy,
+ px2y2.x + ox,
+ px2y2.y + oy,
+ px1y2.x + ox,
+ px1y2.y + oy
+ ];
+ if (pointInsidePolygonPoints(x5, y5, points)) {
+ addEle(ele2);
+ return true;
+ }
+ } else {
+ if (inBoundingBox(bb, x5, y5)) {
+ addEle(ele2);
+ return true;
}
}
- } else if (string(name2)) {
- var _parsedProp = this.parse(name2, value, true);
- if (_parsedProp) {
- props.push(_parsedProp);
+ }
+ __name(checkLabel, "checkLabel");
+ for (var i2 = eles.length - 1; i2 >= 0; i2--) {
+ var ele = eles[i2];
+ if (ele.isNode()) {
+ checkNode(ele) || checkLabel(ele);
+ } else {
+ checkEdge(ele) || checkLabel(ele) || checkLabel(ele, "source") || checkLabel(ele, "target");
}
- } else if (plainObject(name2)) {
- var specifiedProps = name2;
- updateTransitions = value;
- var names = Object.keys(specifiedProps);
- for (var _i = 0; _i < names.length; _i++) {
- var _name2 = names[_i];
- var _value = specifiedProps[_name2];
- if (_value === void 0) {
- _value = specifiedProps[dash2camel(_name2)];
+ }
+ return near;
+ };
+ BRp$e.getAllInBox = function(x1, y1, x22, y22) {
+ var eles = this.getCachedZSortedEles().interactive;
+ var box = [];
+ var x1c = Math.min(x1, x22);
+ var x2c = Math.max(x1, x22);
+ var y1c = Math.min(y1, y22);
+ var y2c = Math.max(y1, y22);
+ x1 = x1c;
+ x22 = x2c;
+ y1 = y1c;
+ y22 = y2c;
+ var boxBb = makeBoundingBox({
+ x1,
+ y1,
+ x2: x22,
+ y2: y22
+ });
+ for (var e3 = 0; e3 < eles.length; e3++) {
+ var ele = eles[e3];
+ if (ele.isNode()) {
+ var node2 = ele;
+ var nodeBb = node2.boundingBox({
+ includeNodes: true,
+ includeEdges: false,
+ includeLabels: false
+ });
+ if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) {
+ box.push(node2);
}
- if (_value !== void 0) {
- var _parsedProp2 = this.parse(_name2, _value, true);
- if (_parsedProp2) {
- props.push(_parsedProp2);
+ } else {
+ var edge = ele;
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {
+ continue;
+ }
+ if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {
+ continue;
+ }
+ if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound" || rs.edgeType === "segments" || rs.edgeType === "haystack") {
+ var pts2 = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;
+ var allInside = true;
+ for (var i2 = 0; i2 < pts2.length; i2++) {
+ if (!pointInBoundingBox(boxBb, pts2[i2])) {
+ allInside = false;
+ break;
+ }
+ }
+ if (allInside) {
+ box.push(edge);
}
+ } else if (rs.edgeType === "haystack" || rs.edgeType === "straight") {
+ box.push(edge);
}
}
+ }
+ return box;
+ };
+ BRp$d = {};
+ BRp$d.calculateArrowAngles = function(edge) {
+ var rs = edge._private.rscratch;
+ var isHaystack = rs.edgeType === "haystack";
+ var isBezier = rs.edgeType === "bezier";
+ var isMultibezier = rs.edgeType === "multibezier";
+ var isSegments = rs.edgeType === "segments";
+ var isCompound = rs.edgeType === "compound";
+ var isSelf = rs.edgeType === "self";
+ var dispX, dispY;
+ var startX2, startY2, endX, endY, midX, midY;
+ if (isHaystack) {
+ startX2 = rs.haystackPts[0];
+ startY2 = rs.haystackPts[1];
+ endX = rs.haystackPts[2];
+ endY = rs.haystackPts[3];
} else {
- return false;
+ startX2 = rs.arrowStartX;
+ startY2 = rs.arrowStartY;
+ endX = rs.arrowEndX;
+ endY = rs.arrowEndY;
}
- if (props.length === 0) {
- return false;
+ midX = rs.midX;
+ midY = rs.midY;
+ if (isSegments) {
+ dispX = startX2 - rs.segpts[0];
+ dispY = startY2 - rs.segpts[1];
+ } else if (isMultibezier || isCompound || isSelf || isBezier) {
+ var pts2 = rs.allpts;
+ var bX = qbezierAt(pts2[0], pts2[2], pts2[4], 0.1);
+ var bY = qbezierAt(pts2[1], pts2[3], pts2[5], 0.1);
+ dispX = startX2 - bX;
+ dispY = startY2 - bY;
+ } else {
+ dispX = startX2 - midX;
+ dispY = startY2 - midY;
}
- var ret = false;
- for (var _i2 = 0; _i2 < eles.length; _i2++) {
- var ele = eles[_i2];
- var diffProps = {};
- var diffProp = void 0;
- for (var j = 0; j < props.length; j++) {
- var _prop = props[j];
- if (updateTransitions) {
- var prevProp = ele.pstyle(_prop.name);
- diffProp = diffProps[_prop.name] = {
- prev: prevProp
- };
- }
- ret = this.applyParsedProperty(ele, copy2(_prop)) || ret;
- if (updateTransitions) {
- diffProp.next = ele.pstyle(_prop.name);
- }
+ rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);
+ var midX = rs.midX;
+ var midY = rs.midY;
+ if (isHaystack) {
+ midX = (startX2 + endX) / 2;
+ midY = (startY2 + endY) / 2;
+ }
+ dispX = endX - startX2;
+ dispY = endY - startY2;
+ if (isSegments) {
+ var pts2 = rs.allpts;
+ if (pts2.length / 2 % 2 === 0) {
+ var i2 = pts2.length / 2;
+ var i1 = i2 - 2;
+ dispX = pts2[i2] - pts2[i1];
+ dispY = pts2[i2 + 1] - pts2[i1 + 1];
+ } else if (rs.isRound) {
+ dispX = rs.midVector[1];
+ dispY = -rs.midVector[0];
+ } else {
+ var i2 = pts2.length / 2 - 1;
+ var i1 = i2 - 2;
+ dispX = pts2[i2] - pts2[i1];
+ dispY = pts2[i2 + 1] - pts2[i1 + 1];
}
- if (ret) {
- this.updateStyleHints(ele);
+ } else if (isMultibezier || isCompound || isSelf) {
+ var pts2 = rs.allpts;
+ var cpts = rs.ctrlpts;
+ var bp0x, bp0y;
+ var bp1x, bp1y;
+ if (cpts.length / 2 % 2 === 0) {
+ var p0 = pts2.length / 2 - 1;
+ var ic = p0 + 2;
+ var p1 = ic + 2;
+ bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0);
+ bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0);
+ bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 1e-4);
+ bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 1e-4);
+ } else {
+ var ic = pts2.length / 2 - 1;
+ var p0 = ic - 2;
+ var p1 = ic + 2;
+ bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.4999);
+ bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.4999);
+ bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.5);
+ bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.5);
}
- if (updateTransitions) {
- this.updateTransitions(ele, diffProps, isBypass);
+ dispX = bp1x - bp0x;
+ dispY = bp1y - bp0y;
+ }
+ rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);
+ rs.midDispX = dispX;
+ rs.midDispY = dispY;
+ dispX *= -1;
+ dispY *= -1;
+ if (isSegments) {
+ var pts2 = rs.allpts;
+ if (pts2.length / 2 % 2 === 0) ;
+ else if (!rs.isRound) {
+ var i2 = pts2.length / 2 - 1;
+ var i3 = i2 + 2;
+ dispX = -(pts2[i3] - pts2[i2]);
+ dispY = -(pts2[i3 + 1] - pts2[i2 + 1]);
}
}
- return ret;
+ rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);
+ if (isSegments) {
+ dispX = endX - rs.segpts[rs.segpts.length - 2];
+ dispY = endY - rs.segpts[rs.segpts.length - 1];
+ } else if (isMultibezier || isCompound || isSelf || isBezier) {
+ var pts2 = rs.allpts;
+ var l2 = pts2.length;
+ var bX = qbezierAt(pts2[l2 - 6], pts2[l2 - 4], pts2[l2 - 2], 0.9);
+ var bY = qbezierAt(pts2[l2 - 5], pts2[l2 - 3], pts2[l2 - 1], 0.9);
+ dispX = endX - bX;
+ dispY = endY - bY;
+ } else {
+ dispX = endX - midX;
+ dispY = endY - midY;
+ }
+ rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);
};
- styfn$7.overrideBypass = function(eles, name2, value) {
- name2 = camel2dash(name2);
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var prop = ele._private.style[name2];
- var type2 = this.properties[name2].type;
- var isColor = type2.color;
- var isMulti = type2.mutiple;
- var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;
- if (!prop || !prop.bypass) {
- this.applyBypass(ele, name2, value);
+ BRp$d.getArrowWidth = BRp$d.getArrowHeight = function(edgeWidth, scale) {
+ var cache3 = this.arrowWidthCache = this.arrowWidthCache || {};
+ var cachedVal = cache3[edgeWidth + ", " + scale];
+ if (cachedVal) {
+ return cachedVal;
+ }
+ cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;
+ cache3[edgeWidth + ", " + scale] = cachedVal;
+ return cachedVal;
+ };
+ v1 = {};
+ v2 = {};
+ asVec = /* @__PURE__ */ __name(function asVec2(p3, pp, v3) {
+ v3.x = pp.x - p3.x;
+ v3.y = pp.y - p3.y;
+ v3.len = Math.sqrt(v3.x * v3.x + v3.y * v3.y);
+ v3.nx = v3.x / v3.len;
+ v3.ny = v3.y / v3.len;
+ v3.ang = Math.atan2(v3.ny, v3.nx);
+ }, "asVec");
+ invertVec = /* @__PURE__ */ __name(function invertVec2(originalV, invertedV) {
+ invertedV.x = originalV.x * -1;
+ invertedV.y = originalV.y * -1;
+ invertedV.nx = originalV.nx * -1;
+ invertedV.ny = originalV.ny * -1;
+ invertedV.ang = originalV.ang > 0 ? -(Math.PI - originalV.ang) : Math.PI + originalV.ang;
+ }, "invertVec");
+ calcCornerArc = /* @__PURE__ */ __name(function calcCornerArc2(previousPoint, currentPoint, nextPoint, radiusMax, isArcRadius) {
+ previousPoint !== lastPoint ? asVec(currentPoint, previousPoint, v1) : invertVec(v2, v1);
+ asVec(currentPoint, nextPoint, v2);
+ sinA = v1.nx * v2.ny - v1.ny * v2.nx;
+ sinA90 = v1.nx * v2.nx - v1.ny * -v2.ny;
+ angle = Math.asin(Math.max(-1, Math.min(1, sinA)));
+ if (Math.abs(angle) < 1e-6) {
+ x3 = currentPoint.x;
+ y3 = currentPoint.y;
+ cRadius = radius = 0;
+ return;
+ }
+ radDirection = 1;
+ drawDirection = false;
+ if (sinA90 < 0) {
+ if (angle < 0) {
+ angle = Math.PI + angle;
} else {
- prop.value = value;
- if (prop.pfValue != null) {
- prop.pfValue = value;
- }
- if (isColor) {
- prop.strValue = "rgb(" + value.join(",") + ")";
- } else if (isMulti) {
- prop.strValue = value.join(" ");
+ angle = Math.PI - angle;
+ radDirection = -1;
+ drawDirection = true;
+ }
+ } else {
+ if (angle > 0) {
+ radDirection = -1;
+ drawDirection = true;
+ }
+ }
+ if (currentPoint.radius !== void 0) {
+ radius = currentPoint.radius;
+ } else {
+ radius = radiusMax;
+ }
+ halfAngle = angle / 2;
+ limit = Math.min(v1.len / 2, v2.len / 2);
+ if (isArcRadius) {
+ lenOut = Math.abs(Math.cos(halfAngle) * radius / Math.sin(halfAngle));
+ if (lenOut > limit) {
+ lenOut = limit;
+ cRadius = Math.abs(lenOut * Math.sin(halfAngle) / Math.cos(halfAngle));
+ } else {
+ cRadius = radius;
+ }
+ } else {
+ lenOut = Math.min(limit, radius);
+ cRadius = Math.abs(lenOut * Math.sin(halfAngle) / Math.cos(halfAngle));
+ }
+ stopX = currentPoint.x + v2.nx * lenOut;
+ stopY = currentPoint.y + v2.ny * lenOut;
+ x3 = stopX - v2.ny * cRadius * radDirection;
+ y3 = stopY + v2.nx * cRadius * radDirection;
+ startX = currentPoint.x + v1.nx * lenOut;
+ startY = currentPoint.y + v1.ny * lenOut;
+ lastPoint = currentPoint;
+ }, "calcCornerArc");
+ __name(drawPreparedRoundCorner, "drawPreparedRoundCorner");
+ __name(getRoundCorner, "getRoundCorner");
+ BRp$c = {};
+ BRp$c.findMidptPtsEtc = function(edge, pairInfo) {
+ var posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts, vectorNormInverse = pairInfo.vectorNormInverse;
+ var midptPts;
+ var srcManEndpt = edge.pstyle("source-endpoint");
+ var tgtManEndpt = edge.pstyle("target-endpoint");
+ var haveManualEndPts = srcManEndpt.units != null && tgtManEndpt.units != null;
+ var recalcVectorNormInverse = /* @__PURE__ */ __name(function recalcVectorNormInverse2(x12, y12, x23, y23) {
+ var dy = y23 - y12;
+ var dx = x23 - x12;
+ var l2 = Math.sqrt(dx * dx + dy * dy);
+ return {
+ x: -dy / l2,
+ y: dx / l2
+ };
+ }, "recalcVectorNormInverse");
+ var edgeDistances = edge.pstyle("edge-distances").value;
+ switch (edgeDistances) {
+ case "node-position":
+ midptPts = posPts;
+ break;
+ case "intersection":
+ midptPts = intersectionPts;
+ break;
+ case "endpoints": {
+ if (haveManualEndPts) {
+ var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt), _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2), x1 = _this$manualEndptToPx2[0], y1 = _this$manualEndptToPx2[1];
+ var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt), _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2), x22 = _this$manualEndptToPx4[0], y22 = _this$manualEndptToPx4[1];
+ var endPts = {
+ x1,
+ y1,
+ x2: x22,
+ y2: y22
+ };
+ vectorNormInverse = recalcVectorNormInverse(x1, y1, x22, y22);
+ midptPts = endPts;
} else {
- prop.strValue = "" + value;
+ warn("Edge ".concat(edge.id(), " has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default)."));
+ midptPts = intersectionPts;
}
- this.updateStyleHints(ele);
+ break;
}
- this.checkTriggers(ele, name2, oldValue, value);
}
+ return {
+ midptPts,
+ vectorNormInverse
+ };
};
- styfn$7.removeAllBypasses = function(eles, updateTransitions) {
- return this.removeBypasses(eles, this.propertyNames, updateTransitions);
- };
- styfn$7.removeBypasses = function(eles, props, updateTransitions) {
- var isBypass = true;
- for (var j = 0; j < eles.length; j++) {
- var ele = eles[j];
- var diffProps = {};
- for (var i3 = 0; i3 < props.length; i3++) {
- var name2 = props[i3];
- var prop = this.properties[name2];
- var prevProp = ele.pstyle(prop.name);
- if (!prevProp || !prevProp.bypass) {
- continue;
- }
- var value = "";
- var parsedProp = this.parse(name2, value, true);
- var diffProp = diffProps[prop.name] = {
- prev: prevProp
+ BRp$c.findHaystackPoints = function(edges5) {
+ for (var i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ if (!rs.haystack) {
+ var angle2 = Math.random() * 2 * Math.PI;
+ rs.source = {
+ x: Math.cos(angle2),
+ y: Math.sin(angle2)
+ };
+ angle2 = Math.random() * 2 * Math.PI;
+ rs.target = {
+ x: Math.cos(angle2),
+ y: Math.sin(angle2)
};
- this.applyParsedProperty(ele, parsedProp);
- diffProp.next = ele.pstyle(prop.name);
- }
- this.updateStyleHints(ele);
- if (updateTransitions) {
- this.updateTransitions(ele, diffProps, isBypass);
}
+ var src = _p.source;
+ var tgt = _p.target;
+ var srcPos = src.position();
+ var tgtPos = tgt.position();
+ var srcW = src.width();
+ var tgtW = tgt.width();
+ var srcH = src.height();
+ var tgtH = tgt.height();
+ var radius2 = edge.pstyle("haystack-radius").value;
+ var halfRadius = radius2 / 2;
+ rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];
+ rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;
+ rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;
+ rs.edgeType = "haystack";
+ rs.haystack = true;
+ this.storeEdgeProjections(edge);
+ this.calculateArrowAngles(edge);
+ this.recalculateEdgeLabelProjections(edge);
+ this.calculateLabelAngles(edge);
}
};
- var styfn$6 = {};
- styfn$6.getEmSizeInPixels = function() {
- var px = this.containerCss("font-size");
- if (px != null) {
- return parseFloat(px);
- } else {
- return 1;
- }
- };
- styfn$6.containerCss = function(propName) {
- var cy = this._private.cy;
- var domElement2 = cy.container();
- if (window$1 && domElement2 && window$1.getComputedStyle) {
- return window$1.getComputedStyle(domElement2).getPropertyValue(propName);
+ BRp$c.findSegmentsPoints = function(edge, pairInfo) {
+ var rs = edge._private.rscratch;
+ var segmentWs = edge.pstyle("segment-weights");
+ var segmentDs = edge.pstyle("segment-distances");
+ var segmentRs = edge.pstyle("segment-radii");
+ var segmentTs = edge.pstyle("radius-type");
+ var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);
+ var lastRadius = segmentRs.pfValue[segmentRs.pfValue.length - 1];
+ var lastRadiusType = segmentTs.pfValue[segmentTs.pfValue.length - 1];
+ rs.edgeType = "segments";
+ rs.segpts = [];
+ rs.radii = [];
+ rs.isArcRadius = [];
+ for (var s2 = 0; s2 < segmentsN; s2++) {
+ var w3 = segmentWs.pfValue[s2];
+ var d2 = segmentDs.pfValue[s2];
+ var w1 = 1 - w3;
+ var w22 = w3;
+ var _this$findMidptPtsEtc = this.findMidptPtsEtc(edge, pairInfo), midptPts = _this$findMidptPtsEtc.midptPts, vectorNormInverse = _this$findMidptPtsEtc.vectorNormInverse;
+ var adjustedMidpt = {
+ x: midptPts.x1 * w1 + midptPts.x2 * w22,
+ y: midptPts.y1 * w1 + midptPts.y2 * w22
+ };
+ rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d2, adjustedMidpt.y + vectorNormInverse.y * d2);
+ rs.radii.push(segmentRs.pfValue[s2] !== void 0 ? segmentRs.pfValue[s2] : lastRadius);
+ rs.isArcRadius.push((segmentTs.pfValue[s2] !== void 0 ? segmentTs.pfValue[s2] : lastRadiusType) === "arc-radius");
}
};
- var styfn$5 = {};
- styfn$5.getRenderedStyle = function(ele, prop) {
- if (prop) {
- return this.getStylePropertyValue(ele, prop, true);
- } else {
- return this.getRawStyle(ele, true);
+ BRp$c.findLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) {
+ var rs = edge._private.rscratch;
+ var dirCounts = pairInfo.dirCounts, srcPos = pairInfo.srcPos;
+ var ctrlptDists = edge.pstyle("control-point-distances");
+ var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
+ var loopDir = edge.pstyle("loop-direction").pfValue;
+ var loopSwp = edge.pstyle("loop-sweep").pfValue;
+ var stepSize = edge.pstyle("control-point-step-size").pfValue;
+ rs.edgeType = "self";
+ var j2 = i2;
+ var loopDist = stepSize;
+ if (edgeIsUnbundled) {
+ j2 = 0;
+ loopDist = ctrlptDist;
}
+ var loopAngle = loopDir - Math.PI / 2;
+ var outAngle = loopAngle - loopSwp / 2;
+ var inAngle = loopAngle + loopSwp / 2;
+ var dc = String(loopDir + "_" + loopSwp);
+ j2 = dirCounts[dc] === void 0 ? dirCounts[dc] = 0 : ++dirCounts[dc];
+ rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j2 / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j2 / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j2 / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j2 / 3 + 1)];
};
- styfn$5.getRawStyle = function(ele, isRenderedVal) {
- var self2 = this;
- ele = ele[0];
- if (ele) {
- var rstyle = {};
- for (var i3 = 0; i3 < self2.properties.length; i3++) {
- var prop = self2.properties[i3];
- var val = self2.getStylePropertyValue(ele, prop.name, isRenderedVal);
- if (val != null) {
- rstyle[prop.name] = val;
- rstyle[dash2camel(prop.name)] = val;
- }
- }
- return rstyle;
+ BRp$c.findCompoundLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) {
+ var rs = edge._private.rscratch;
+ rs.edgeType = "compound";
+ var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
+ var stepSize = edge.pstyle("control-point-step-size").pfValue;
+ var ctrlptDists = edge.pstyle("control-point-distances");
+ var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
+ var j2 = i2;
+ var loopDist = stepSize;
+ if (edgeIsUnbundled) {
+ j2 = 0;
+ loopDist = ctrlptDist;
}
+ var loopW = 50;
+ var loopaPos = {
+ x: srcPos.x - srcW / 2,
+ y: srcPos.y - srcH / 2
+ };
+ var loopbPos = {
+ x: tgtPos.x - tgtW / 2,
+ y: tgtPos.y - tgtH / 2
+ };
+ var loopPos = {
+ x: Math.min(loopaPos.x, loopbPos.x),
+ y: Math.min(loopaPos.y, loopbPos.y)
+ };
+ var minCompoundStretch = 0.5;
+ var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01));
+ var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01));
+ rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j2 / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j2 / 3 + 1) * compoundStretchB, loopPos.y];
};
- styfn$5.getIndexedStyle = function(ele, property2, subproperty, index) {
- var pstyle = ele.pstyle(property2)[subproperty][index];
- return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property2)[subproperty][0];
+ BRp$c.findStraightEdgePoints = function(edge) {
+ edge._private.rscratch.edgeType = "straight";
};
- styfn$5.getStylePropertyValue = function(ele, propName, isRenderedVal) {
- var self2 = this;
- ele = ele[0];
- if (ele) {
- var prop = self2.properties[propName];
- if (prop.alias) {
- prop = prop.pointsTo;
+ BRp$c.findBezierPoints = function(edge, pairInfo, i2, edgeIsUnbundled, edgeIsSwapped) {
+ var rs = edge._private.rscratch;
+ var stepSize = edge.pstyle("control-point-step-size").pfValue;
+ var ctrlptDists = edge.pstyle("control-point-distances");
+ var ctrlptWs = edge.pstyle("control-point-weights");
+ var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;
+ var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
+ var ctrlptWeight = ctrlptWs.value[0];
+ var multi = edgeIsUnbundled;
+ rs.edgeType = multi ? "multibezier" : "bezier";
+ rs.ctrlpts = [];
+ for (var b2 = 0; b2 < bezierN; b2++) {
+ var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i2) * stepSize * (edgeIsSwapped ? -1 : 1);
+ var manctrlptDist = void 0;
+ var sign2 = signum(normctrlptDist);
+ if (multi) {
+ ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b2] : stepSize;
+ ctrlptWeight = ctrlptWs.value[b2];
}
- var type2 = prop.type;
- var styleProp = ele.pstyle(prop.name);
- if (styleProp) {
- var value = styleProp.value, units = styleProp.units, strValue = styleProp.strValue;
- if (isRenderedVal && type2.number && value != null && number$12(value)) {
- var zoom = ele.cy().zoom();
- var getRenderedValue = function getRenderedValue2(val) {
- return val * zoom;
- };
- var getValueStringWithUnits = function getValueStringWithUnits2(val, units2) {
- return getRenderedValue(val) + units2;
- };
- var isArrayValue = array2(value);
- var haveUnits = isArrayValue ? units.every(function(u2) {
- return u2 != null;
- }) : units != null;
- if (haveUnits) {
- if (isArrayValue) {
- return value.map(function(v, i3) {
- return getValueStringWithUnits(v, units[i3]);
- }).join(" ");
- } else {
- return getValueStringWithUnits(value, units);
- }
- } else {
- if (isArrayValue) {
- return value.map(function(v) {
- return string(v) ? v : "" + getRenderedValue(v);
- }).join(" ");
- } else {
- return "" + getRenderedValue(value);
- }
- }
- } else if (strValue != null) {
- return strValue;
- }
+ if (edgeIsUnbundled) {
+ manctrlptDist = ctrlptDist;
+ } else {
+ manctrlptDist = ctrlptDist !== void 0 ? sign2 * ctrlptDist : void 0;
}
- return null;
+ var distanceFromMidpoint = manctrlptDist !== void 0 ? manctrlptDist : normctrlptDist;
+ var w1 = 1 - ctrlptWeight;
+ var w22 = ctrlptWeight;
+ var _this$findMidptPtsEtc2 = this.findMidptPtsEtc(edge, pairInfo), midptPts = _this$findMidptPtsEtc2.midptPts, vectorNormInverse = _this$findMidptPtsEtc2.vectorNormInverse;
+ var adjustedMidpt = {
+ x: midptPts.x1 * w1 + midptPts.x2 * w22,
+ y: midptPts.y1 * w1 + midptPts.y2 * w22
+ };
+ rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);
}
};
- styfn$5.getAnimationStartStyle = function(ele, aniProps) {
- var rstyle = {};
- for (var i3 = 0; i3 < aniProps.length; i3++) {
- var aniProp = aniProps[i3];
- var name2 = aniProp.name;
- var styleProp = ele.pstyle(name2);
- if (styleProp !== void 0) {
- if (plainObject(styleProp)) {
- styleProp = this.parse(name2, styleProp.strValue);
+ BRp$c.findTaxiPoints = function(edge, pairInfo) {
+ var rs = edge._private.rscratch;
+ rs.edgeType = "segments";
+ var VERTICAL = "vertical";
+ var HORIZONTAL = "horizontal";
+ var LEFTWARD = "leftward";
+ var RIGHTWARD = "rightward";
+ var DOWNWARD = "downward";
+ var UPWARD = "upward";
+ var AUTO = "auto";
+ var posPts = pairInfo.posPts, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
+ var edgeDistances = edge.pstyle("edge-distances").value;
+ var dIncludesNodeBody = edgeDistances !== "node-position";
+ var taxiDir = edge.pstyle("taxi-direction").value;
+ var rawTaxiDir = taxiDir;
+ var taxiTurn = edge.pstyle("taxi-turn");
+ var turnIsPercent = taxiTurn.units === "%";
+ var taxiTurnPfVal = taxiTurn.pfValue;
+ var turnIsNegative = taxiTurnPfVal < 0;
+ var minD = edge.pstyle("taxi-turn-min-distance").pfValue;
+ var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;
+ var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;
+ var pdx = posPts.x2 - posPts.x1;
+ var pdy = posPts.y2 - posPts.y1;
+ var subDWH = /* @__PURE__ */ __name(function subDWH2(dxy, dwh) {
+ if (dxy > 0) {
+ return Math.max(dxy - dwh, 0);
+ } else {
+ return Math.min(dxy + dwh, 0);
+ }
+ }, "subDWH");
+ var dx = subDWH(pdx, dw);
+ var dy = subDWH(pdy, dh);
+ var isExplicitDir = false;
+ if (rawTaxiDir === AUTO) {
+ taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;
+ } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {
+ taxiDir = VERTICAL;
+ isExplicitDir = true;
+ } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {
+ taxiDir = HORIZONTAL;
+ isExplicitDir = true;
+ }
+ var isVert = taxiDir === VERTICAL;
+ var l2 = isVert ? dy : dx;
+ var pl = isVert ? pdy : pdx;
+ var sgnL = signum(pl);
+ var forcedDir = false;
+ if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {
+ sgnL *= -1;
+ l2 = sgnL * Math.abs(l2);
+ forcedDir = true;
+ }
+ var d2;
+ if (turnIsPercent) {
+ var p3 = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;
+ d2 = p3 * l2;
+ } else {
+ var k2 = taxiTurnPfVal < 0 ? l2 : 0;
+ d2 = k2 + taxiTurnPfVal * sgnL;
+ }
+ var getIsTooClose = /* @__PURE__ */ __name(function getIsTooClose2(d3) {
+ return Math.abs(d3) < minD || Math.abs(d3) >= Math.abs(l2);
+ }, "getIsTooClose");
+ var isTooCloseSrc = getIsTooClose(d2);
+ var isTooCloseTgt = getIsTooClose(Math.abs(l2) - Math.abs(d2));
+ var isTooClose = isTooCloseSrc || isTooCloseTgt;
+ if (isTooClose && !forcedDir) {
+ if (isVert) {
+ var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;
+ var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;
+ if (lShapeInsideSrc) {
+ var x5 = (posPts.x1 + posPts.x2) / 2;
+ var y1 = posPts.y1, y22 = posPts.y2;
+ rs.segpts = [x5, y1, x5, y22];
+ } else if (lShapeInsideTgt) {
+ var y5 = (posPts.y1 + posPts.y2) / 2;
+ var x1 = posPts.x1, x22 = posPts.x2;
+ rs.segpts = [x1, y5, x22, y5];
+ } else {
+ rs.segpts = [posPts.x1, posPts.y2];
+ }
+ } else {
+ var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;
+ var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;
+ if (_lShapeInsideSrc) {
+ var _y = (posPts.y1 + posPts.y2) / 2;
+ var _x = posPts.x1, _x2 = posPts.x2;
+ rs.segpts = [_x, _y, _x2, _y];
+ } else if (_lShapeInsideTgt) {
+ var _x3 = (posPts.x1 + posPts.x2) / 2;
+ var _y2 = posPts.y1, _y3 = posPts.y2;
+ rs.segpts = [_x3, _y2, _x3, _y3];
} else {
- styleProp = this.parse(name2, styleProp);
+ rs.segpts = [posPts.x2, posPts.y1];
}
}
- if (styleProp) {
- rstyle[name2] = styleProp;
+ } else {
+ if (isVert) {
+ var _y4 = posPts.y1 + d2 + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);
+ var _x4 = posPts.x1, _x5 = posPts.x2;
+ rs.segpts = [_x4, _y4, _x5, _y4];
+ } else {
+ var _x6 = posPts.x1 + d2 + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);
+ var _y5 = posPts.y1, _y6 = posPts.y2;
+ rs.segpts = [_x6, _y5, _x6, _y6];
}
}
- return rstyle;
+ if (rs.isRound) {
+ var radius2 = edge.pstyle("taxi-radius").value;
+ var isArcRadius = edge.pstyle("radius-type").value[0] === "arc-radius";
+ rs.radii = new Array(rs.segpts.length / 2).fill(radius2);
+ rs.isArcRadius = new Array(rs.segpts.length / 2).fill(isArcRadius);
+ }
};
- styfn$5.getPropsList = function(propsObj) {
- var self2 = this;
- var rstyle = [];
- var style = propsObj;
- var props = self2.properties;
- if (style) {
- var names = Object.keys(style);
- for (var i3 = 0; i3 < names.length; i3++) {
- var name2 = names[i3];
- var val = style[name2];
- var prop = props[name2] || props[camel2dash(name2)];
- var styleProp = this.parse(prop.name, val);
- if (styleProp) {
- rstyle.push(styleProp);
+ BRp$c.tryToCorrectInvalidPoints = function(edge, pairInfo) {
+ var rs = edge._private.rscratch;
+ if (rs.edgeType === "bezier") {
+ var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH, srcShape = pairInfo.srcShape, tgtShape = pairInfo.tgtShape, srcCornerRadius = pairInfo.srcCornerRadius, tgtCornerRadius = pairInfo.tgtCornerRadius, srcRs = pairInfo.srcRs, tgtRs = pairInfo.tgtRs;
+ var badStart = !number$1(rs.startX) || !number$1(rs.startY);
+ var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY);
+ var badEnd = !number$1(rs.endX) || !number$1(rs.endY);
+ var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY);
+ var minCpADistFactor = 3;
+ var arrowW = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
+ var minCpADist = minCpADistFactor * arrowW;
+ var startACpDist = dist({
+ x: rs.ctrlpts[0],
+ y: rs.ctrlpts[1]
+ }, {
+ x: rs.startX,
+ y: rs.startY
+ });
+ var closeStartACp = startACpDist < minCpADist;
+ var endACpDist = dist({
+ x: rs.ctrlpts[0],
+ y: rs.ctrlpts[1]
+ }, {
+ x: rs.endX,
+ y: rs.endY
+ });
+ var closeEndACp = endACpDist < minCpADist;
+ var overlapping = false;
+ if (badStart || badAStart || closeStartACp) {
+ overlapping = true;
+ var cpD = {
+ // delta
+ x: rs.ctrlpts[0] - srcPos.x,
+ y: rs.ctrlpts[1] - srcPos.y
+ };
+ var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y);
+ var cpM = {
+ // normalised delta
+ x: cpD.x / cpL,
+ y: cpD.y / cpL
+ };
+ var radius2 = Math.max(srcW, srcH);
+ var cpProj = {
+ // *2 radius guarantees outside shape
+ x: rs.ctrlpts[0] + cpM.x * 2 * radius2,
+ y: rs.ctrlpts[1] + cpM.y * 2 * radius2
+ };
+ var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0, srcCornerRadius, srcRs);
+ if (closeStartACp) {
+ rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);
+ rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);
+ } else {
+ rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;
+ rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;
}
}
- }
- return rstyle;
- };
- styfn$5.getNonDefaultPropertiesHash = function(ele, propNames, seed) {
- var hash = seed.slice();
- var name2, val, strVal, chVal;
- var i3, j;
- for (i3 = 0; i3 < propNames.length; i3++) {
- name2 = propNames[i3];
- val = ele.pstyle(name2, false);
- if (val == null) {
- continue;
- } else if (val.pfValue != null) {
- hash[0] = hashInt(chVal, hash[0]);
- hash[1] = hashIntAlt(chVal, hash[1]);
- } else {
- strVal = val.strValue;
- for (j = 0; j < strVal.length; j++) {
- chVal = strVal.charCodeAt(j);
- hash[0] = hashInt(chVal, hash[0]);
- hash[1] = hashIntAlt(chVal, hash[1]);
+ if (badEnd || badAEnd || closeEndACp) {
+ overlapping = true;
+ var _cpD = {
+ // delta
+ x: rs.ctrlpts[0] - tgtPos.x,
+ y: rs.ctrlpts[1] - tgtPos.y
+ };
+ var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y);
+ var _cpM = {
+ // normalised delta
+ x: _cpD.x / _cpL,
+ y: _cpD.y / _cpL
+ };
+ var _radius = Math.max(srcW, srcH);
+ var _cpProj = {
+ // *2 radius guarantees outside shape
+ x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,
+ y: rs.ctrlpts[1] + _cpM.y * 2 * _radius
+ };
+ var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0, tgtCornerRadius, tgtRs);
+ if (closeEndACp) {
+ rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);
+ rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);
+ } else {
+ rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;
+ rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;
}
}
- }
- return hash;
- };
- styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;
- var styfn$4 = {};
- styfn$4.appendFromJson = function(json2) {
- var style = this;
- for (var i3 = 0; i3 < json2.length; i3++) {
- var context = json2[i3];
- var selector2 = context.selector;
- var props = context.style || context.css;
- var names = Object.keys(props);
- style.selector(selector2);
- for (var j = 0; j < names.length; j++) {
- var name2 = names[j];
- var value = props[name2];
- style.css(name2, value);
- }
- }
- return style;
- };
- styfn$4.fromJson = function(json2) {
- var style = this;
- style.resetToDefault();
- style.appendFromJson(json2);
- return style;
- };
- styfn$4.json = function() {
- var json2 = [];
- for (var i3 = this.defaultLength; i3 < this.length; i3++) {
- var cxt = this[i3];
- var selector2 = cxt.selector;
- var props = cxt.properties;
- var css = {};
- for (var j = 0; j < props.length; j++) {
- var prop = props[j];
- css[prop.name] = prop.strValue;
+ if (overlapping) {
+ this.findEndpoints(edge);
}
- json2.push({
- selector: !selector2 ? "core" : selector2.toString(),
- style: css
- });
}
- return json2;
};
- var styfn$3 = {};
- styfn$3.appendFromString = function(string2) {
- var self2 = this;
- var style = this;
- var remaining = "" + string2;
- var selAndBlockStr;
- var blockRem;
- var propAndValStr;
- remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, "");
- function removeSelAndBlockFromRemaining() {
- if (remaining.length > selAndBlockStr.length) {
- remaining = remaining.substr(selAndBlockStr.length);
- } else {
- remaining = "";
+ BRp$c.storeAllpts = function(edge) {
+ var rs = edge._private.rscratch;
+ if (rs.edgeType === "multibezier" || rs.edgeType === "bezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
+ rs.allpts = [];
+ rs.allpts.push(rs.startX, rs.startY);
+ for (var b2 = 0; b2 + 1 < rs.ctrlpts.length; b2 += 2) {
+ rs.allpts.push(rs.ctrlpts[b2], rs.ctrlpts[b2 + 1]);
+ if (b2 + 3 < rs.ctrlpts.length) {
+ rs.allpts.push((rs.ctrlpts[b2] + rs.ctrlpts[b2 + 2]) / 2, (rs.ctrlpts[b2 + 1] + rs.ctrlpts[b2 + 3]) / 2);
+ }
}
- }
- function removePropAndValFromRem() {
- if (blockRem.length > propAndValStr.length) {
- blockRem = blockRem.substr(propAndValStr.length);
+ rs.allpts.push(rs.endX, rs.endY);
+ var m2, mt;
+ if (rs.ctrlpts.length / 2 % 2 === 0) {
+ m2 = rs.allpts.length / 2 - 1;
+ rs.midX = rs.allpts[m2];
+ rs.midY = rs.allpts[m2 + 1];
} else {
- blockRem = "";
- }
- }
- for (; ; ) {
- var nothingLeftToParse = remaining.match(/^\s*$/);
- if (nothingLeftToParse) {
- break;
- }
- var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);
- if (!selAndBlock) {
- warn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + remaining);
- break;
+ m2 = rs.allpts.length / 2 - 3;
+ mt = 0.5;
+ rs.midX = qbezierAt(rs.allpts[m2], rs.allpts[m2 + 2], rs.allpts[m2 + 4], mt);
+ rs.midY = qbezierAt(rs.allpts[m2 + 1], rs.allpts[m2 + 3], rs.allpts[m2 + 5], mt);
}
- selAndBlockStr = selAndBlock[0];
- var selectorStr = selAndBlock[1];
- if (selectorStr !== "core") {
- var selector2 = new Selector(selectorStr);
- if (selector2.invalid) {
- warn("Skipping parsing of block: Invalid selector found in string stylesheet: " + selectorStr);
- removeSelAndBlockFromRemaining();
- continue;
+ } else if (rs.edgeType === "straight") {
+ rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];
+ rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;
+ rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;
+ } else if (rs.edgeType === "segments") {
+ rs.allpts = [];
+ rs.allpts.push(rs.startX, rs.startY);
+ rs.allpts.push.apply(rs.allpts, rs.segpts);
+ rs.allpts.push(rs.endX, rs.endY);
+ if (rs.isRound) {
+ rs.roundCorners = [];
+ for (var i2 = 2; i2 + 3 < rs.allpts.length; i2 += 2) {
+ var radius2 = rs.radii[i2 / 2 - 1];
+ var isArcRadius = rs.isArcRadius[i2 / 2 - 1];
+ rs.roundCorners.push(getRoundCorner({
+ x: rs.allpts[i2 - 2],
+ y: rs.allpts[i2 - 1]
+ }, {
+ x: rs.allpts[i2],
+ y: rs.allpts[i2 + 1],
+ radius: radius2
+ }, {
+ x: rs.allpts[i2 + 2],
+ y: rs.allpts[i2 + 3]
+ }, radius2, isArcRadius));
}
}
- var blockStr = selAndBlock[2];
- var invalidBlock = false;
- blockRem = blockStr;
- var props = [];
- for (; ; ) {
- var _nothingLeftToParse = blockRem.match(/^\s*$/);
- if (_nothingLeftToParse) {
- break;
- }
- var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);
- if (!propAndVal) {
- warn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + blockStr);
- invalidBlock = true;
- break;
- }
- propAndValStr = propAndVal[0];
- var propStr = propAndVal[1];
- var valStr = propAndVal[2];
- var prop = self2.properties[propStr];
- if (!prop) {
- warn("Skipping property: Invalid property name in: " + propAndValStr);
- removePropAndValFromRem();
- continue;
- }
- var parsedProp = style.parse(propStr, valStr);
- if (!parsedProp) {
- warn("Skipping property: Invalid property definition in: " + propAndValStr);
- removePropAndValFromRem();
- continue;
+ if (rs.segpts.length % 4 === 0) {
+ var i22 = rs.segpts.length / 2;
+ var i1 = i22 - 2;
+ rs.midX = (rs.segpts[i1] + rs.segpts[i22]) / 2;
+ rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i22 + 1]) / 2;
+ } else {
+ var _i = rs.segpts.length / 2 - 1;
+ if (!rs.isRound) {
+ rs.midX = rs.segpts[_i];
+ rs.midY = rs.segpts[_i + 1];
+ } else {
+ var point8 = {
+ x: rs.segpts[_i],
+ y: rs.segpts[_i + 1]
+ };
+ var corner = rs.roundCorners[_i / 2];
+ var v3 = [point8.x - corner.cx, point8.y - corner.cy];
+ var factor = corner.radius / Math.sqrt(Math.pow(v3[0], 2) + Math.pow(v3[1], 2));
+ v3 = v3.map(function(c3) {
+ return c3 * factor;
+ });
+ rs.midX = corner.cx + v3[0];
+ rs.midY = corner.cy + v3[1];
+ rs.midVector = v3;
}
- props.push({
- name: propStr,
- val: valStr
- });
- removePropAndValFromRem();
- }
- if (invalidBlock) {
- removeSelAndBlockFromRemaining();
- break;
}
- style.selector(selectorStr);
- for (var i3 = 0; i3 < props.length; i3++) {
- var _prop = props[i3];
- style.css(_prop.name, _prop.val);
- }
- removeSelAndBlockFromRemaining();
}
- return style;
};
- styfn$3.fromString = function(string2) {
- var style = this;
- style.resetToDefault();
- style.appendFromString(string2);
- return style;
- };
- var styfn$2 = {};
- (function() {
- var number$13 = number2;
- var rgba3 = rgbaNoBackRefs;
- var hsla3 = hslaNoBackRefs;
- var hex3$1 = hex3;
- var hex6$1 = hex6;
- var data2 = function data3(prefix) {
- return "^" + prefix + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$";
- };
- var mapData = function mapData2(prefix) {
- var mapArg = number$13 + "|\\w+|" + rgba3 + "|" + hsla3 + "|" + hex3$1 + "|" + hex6$1;
- return "^" + prefix + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + number$13 + ")\\s*\\,\\s*(" + number$13 + ")\\s*,\\s*(" + mapArg + ")\\s*\\,\\s*(" + mapArg + ")\\)$";
- };
- var urlRegexes = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"];
- styfn$2.types = {
- time: {
- number: true,
- min: 0,
- units: "s|ms",
- implicitUnits: "ms"
- },
- percent: {
- number: true,
- min: 0,
- max: 100,
- units: "%",
- implicitUnits: "%"
- },
- percentages: {
- number: true,
- min: 0,
- max: 100,
- units: "%",
- implicitUnits: "%",
- multiple: true
- },
- zeroOneNumber: {
- number: true,
- min: 0,
- max: 1,
- unitless: true
- },
- zeroOneNumbers: {
- number: true,
- min: 0,
- max: 1,
- unitless: true,
- multiple: true
- },
- nOneOneNumber: {
- number: true,
- min: -1,
- max: 1,
- unitless: true
- },
- nonNegativeInt: {
- number: true,
- min: 0,
- integer: true,
- unitless: true
- },
- position: {
- enums: ["parent", "origin"]
- },
- nodeSize: {
- number: true,
- min: 0,
- enums: ["label"]
- },
- number: {
- number: true,
- unitless: true
- },
- numbers: {
- number: true,
- unitless: true,
- multiple: true
- },
- positiveNumber: {
- number: true,
- unitless: true,
- min: 0,
- strictMin: true
- },
- size: {
- number: true,
- min: 0
- },
- bidirectionalSize: {
- number: true
- },
- // allows negative
- bidirectionalSizeMaybePercent: {
- number: true,
- allowPercent: true
- },
- // allows negative
- bidirectionalSizes: {
- number: true,
- multiple: true
- },
- // allows negative
- sizeMaybePercent: {
- number: true,
- min: 0,
- allowPercent: true
- },
- axisDirection: {
- enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"]
- },
- paddingRelativeTo: {
- enums: ["width", "height", "average", "min", "max"]
- },
- bgWH: {
- number: true,
- min: 0,
- allowPercent: true,
- enums: ["auto"],
- multiple: true
- },
- bgPos: {
- number: true,
- allowPercent: true,
- multiple: true
- },
- bgRelativeTo: {
- enums: ["inner", "include-padding"],
- multiple: true
- },
- bgRepeat: {
- enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"],
- multiple: true
- },
- bgFit: {
- enums: ["none", "contain", "cover"],
- multiple: true
- },
- bgCrossOrigin: {
- enums: ["anonymous", "use-credentials"],
- multiple: true
- },
- bgClip: {
- enums: ["none", "node"],
- multiple: true
- },
- bgContainment: {
- enums: ["inside", "over"],
- multiple: true
- },
- color: {
- color: true
- },
- colors: {
- color: true,
- multiple: true
- },
- fill: {
- enums: ["solid", "linear-gradient", "radial-gradient"]
- },
- bool: {
- enums: ["yes", "no"]
- },
- bools: {
- enums: ["yes", "no"],
- multiple: true
- },
- lineStyle: {
- enums: ["solid", "dotted", "dashed"]
- },
- lineCap: {
- enums: ["butt", "round", "square"]
- },
- borderStyle: {
- enums: ["solid", "dotted", "dashed", "double"]
- },
- curveStyle: {
- enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi"]
- },
- fontFamily: {
- regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'
- },
- fontStyle: {
- enums: ["italic", "normal", "oblique"]
- },
- fontWeight: {
- enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900]
- },
- textDecoration: {
- enums: ["none", "underline", "overline", "line-through"]
- },
- textTransform: {
- enums: ["none", "uppercase", "lowercase"]
- },
- textWrap: {
- enums: ["none", "wrap", "ellipsis"]
- },
- textOverflowWrap: {
- enums: ["whitespace", "anywhere"]
- },
- textBackgroundShape: {
- enums: ["rectangle", "roundrectangle", "round-rectangle"]
- },
- nodeShape: {
- enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "polygon"]
- },
- overlayShape: {
- enums: ["roundrectangle", "round-rectangle", "ellipse"]
- },
- compoundIncludeLabels: {
- enums: ["include", "exclude"]
- },
- arrowShape: {
- enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"]
- },
- arrowFill: {
- enums: ["filled", "hollow"]
- },
- display: {
- enums: ["element", "none"]
- },
- visibility: {
- enums: ["hidden", "visible"]
- },
- zCompoundDepth: {
- enums: ["bottom", "orphan", "auto", "top"]
- },
- zIndexCompare: {
- enums: ["auto", "manual"]
- },
- valign: {
- enums: ["top", "center", "bottom"]
- },
- halign: {
- enums: ["left", "center", "right"]
- },
- justification: {
- enums: ["left", "center", "right", "auto"]
- },
- text: {
- string: true
- },
- data: {
- mapping: true,
- regex: data2("data")
- },
- layoutData: {
- mapping: true,
- regex: data2("layoutData")
- },
- scratch: {
- mapping: true,
- regex: data2("scratch")
- },
- mapData: {
- mapping: true,
- regex: mapData("mapData")
- },
- mapLayoutData: {
- mapping: true,
- regex: mapData("mapLayoutData")
- },
- mapScratch: {
- mapping: true,
- regex: mapData("mapScratch")
- },
- fn: {
- mapping: true,
- fn: true
- },
- url: {
- regexes: urlRegexes,
- singleRegexMatchValue: true
- },
- urls: {
- regexes: urlRegexes,
- singleRegexMatchValue: true,
- multiple: true
- },
- propList: {
- propList: true
- },
- angle: {
- number: true,
- units: "deg|rad",
- implicitUnits: "rad"
- },
- textRotation: {
- number: true,
- units: "deg|rad",
- implicitUnits: "rad",
- enums: ["none", "autorotate"]
- },
- polygonPointList: {
- number: true,
- multiple: true,
- evenMultiple: true,
- min: -1,
- max: 1,
- unitless: true
- },
- edgeDistances: {
- enums: ["intersection", "node-position"]
- },
- edgeEndpoint: {
- number: true,
- multiple: true,
- units: "%|px|em|deg|rad",
- implicitUnits: "px",
- enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"],
- singleEnum: true,
- validate: function validate2(valArr, unitsArr) {
- switch (valArr.length) {
- case 2:
- return unitsArr[0] !== "deg" && unitsArr[0] !== "rad" && unitsArr[1] !== "deg" && unitsArr[1] !== "rad";
- case 1:
- return string(valArr[0]) || unitsArr[0] === "deg" || unitsArr[0] === "rad";
- default:
- return false;
- }
- }
- },
- easing: {
- regexes: ["^(spring)\\s*\\(\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*\\)$"],
- enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"]
- },
- gradientDirection: {
- enums: [
- "to-bottom",
- "to-top",
- "to-left",
- "to-right",
- "to-bottom-right",
- "to-bottom-left",
- "to-top-right",
- "to-top-left",
- "to-right-bottom",
- "to-left-bottom",
- "to-right-top",
- "to-left-top"
- // different order
- ]
- },
- boundsExpansion: {
- number: true,
- multiple: true,
- min: 0,
- validate: function validate2(valArr) {
- var length2 = valArr.length;
- return length2 === 1 || length2 === 2 || length2 === 4;
- }
+ BRp$c.checkForInvalidEdgeWarning = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) {
+ rs.loggedErr = false;
+ } else {
+ if (!rs.loggedErr) {
+ rs.loggedErr = true;
+ warn("Edge `" + edge.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.");
}
+ }
+ };
+ BRp$c.findEdgeControlPoints = function(edges5) {
+ var _this = this;
+ if (!edges5 || edges5.length === 0) {
+ return;
+ }
+ var r2 = this;
+ var cy = r2.cy;
+ var hasCompounds = cy.hasCompoundNodes();
+ var hashTable = {
+ map: new Map$2(),
+ get: /* @__PURE__ */ __name(function get6(pairId2) {
+ var map22 = this.map.get(pairId2[0]);
+ if (map22 != null) {
+ return map22.get(pairId2[1]);
+ } else {
+ return null;
+ }
+ }, "get"),
+ set: /* @__PURE__ */ __name(function set6(pairId2, val) {
+ var map22 = this.map.get(pairId2[0]);
+ if (map22 == null) {
+ map22 = new Map$2();
+ this.map.set(pairId2[0], map22);
+ }
+ map22.set(pairId2[1], val);
+ }, "set")
};
- var diff = {
- zeroNonZero: function zeroNonZero(val1, val2) {
- if ((val1 == null || val2 == null) && val1 !== val2) {
- return true;
+ var pairIds = [];
+ var haystackEdges = [];
+ for (var i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ var _p = edge._private;
+ var curveStyle = edge.pstyle("curve-style").value;
+ if (edge.removed() || !edge.takesUpSpace()) {
+ continue;
+ }
+ if (curveStyle === "haystack") {
+ haystackEdges.push(edge);
+ continue;
+ }
+ var edgeIsUnbundled = curveStyle === "unbundled-bezier" || curveStyle.endsWith("segments") || curveStyle === "straight" || curveStyle === "straight-triangle" || curveStyle.endsWith("taxi");
+ var edgeIsBezier = curveStyle === "unbundled-bezier" || curveStyle === "bezier";
+ var src = _p.source;
+ var tgt = _p.target;
+ var srcIndex = src.poolIndex();
+ var tgtIndex = tgt.poolIndex();
+ var pairId = [srcIndex, tgtIndex].sort();
+ var tableEntry = hashTable.get(pairId);
+ if (tableEntry == null) {
+ tableEntry = {
+ eles: []
+ };
+ hashTable.set(pairId, tableEntry);
+ pairIds.push(pairId);
+ }
+ tableEntry.eles.push(edge);
+ if (edgeIsUnbundled) {
+ tableEntry.hasUnbundled = true;
+ }
+ if (edgeIsBezier) {
+ tableEntry.hasBezier = true;
+ }
+ }
+ var _loop = /* @__PURE__ */ __name(function _loop2(p4) {
+ var pairId2 = pairIds[p4];
+ var pairInfo = hashTable.get(pairId2);
+ var swappedpairInfo = void 0;
+ if (!pairInfo.hasUnbundled) {
+ var pllEdges = pairInfo.eles[0].parallelEdges().filter(function(e3) {
+ return e3.isBundledBezier();
+ });
+ clearArray(pairInfo.eles);
+ pllEdges.forEach(function(edge2) {
+ return pairInfo.eles.push(edge2);
+ });
+ pairInfo.eles.sort(function(edge1, edge2) {
+ return edge1.poolIndex() - edge2.poolIndex();
+ });
+ }
+ var firstEdge = pairInfo.eles[0];
+ var src2 = firstEdge.source();
+ var tgt2 = firstEdge.target();
+ if (src2.poolIndex() > tgt2.poolIndex()) {
+ var temp = src2;
+ src2 = tgt2;
+ tgt2 = temp;
+ }
+ var srcPos = pairInfo.srcPos = src2.position();
+ var tgtPos = pairInfo.tgtPos = tgt2.position();
+ var srcW = pairInfo.srcW = src2.outerWidth();
+ var srcH = pairInfo.srcH = src2.outerHeight();
+ var tgtW = pairInfo.tgtW = tgt2.outerWidth();
+ var tgtH = pairInfo.tgtH = tgt2.outerHeight();
+ var srcShape = pairInfo.srcShape = r2.nodeShapes[_this.getNodeShape(src2)];
+ var tgtShape = pairInfo.tgtShape = r2.nodeShapes[_this.getNodeShape(tgt2)];
+ var srcCornerRadius = pairInfo.srcCornerRadius = src2.pstyle("corner-radius").value === "auto" ? "auto" : src2.pstyle("corner-radius").pfValue;
+ var tgtCornerRadius = pairInfo.tgtCornerRadius = tgt2.pstyle("corner-radius").value === "auto" ? "auto" : tgt2.pstyle("corner-radius").pfValue;
+ var tgtRs = pairInfo.tgtRs = tgt2._private.rscratch;
+ var srcRs = pairInfo.srcRs = src2._private.rscratch;
+ pairInfo.dirCounts = {
+ "north": 0,
+ "west": 0,
+ "south": 0,
+ "east": 0,
+ "northwest": 0,
+ "southwest": 0,
+ "northeast": 0,
+ "southeast": 0
+ };
+ for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {
+ var _edge = pairInfo.eles[_i2];
+ var rs = _edge[0]._private.rscratch;
+ var _curveStyle = _edge.pstyle("curve-style").value;
+ var _edgeIsUnbundled = _curveStyle === "unbundled-bezier" || _curveStyle.endsWith("segments") || _curveStyle.endsWith("taxi");
+ var edgeIsSwapped = !src2.same(_edge.source());
+ if (!pairInfo.calculatedIntersection && src2 !== tgt2 && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {
+ pairInfo.calculatedIntersection = true;
+ var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0, srcCornerRadius, srcRs);
+ var srcIntn = pairInfo.srcIntn = srcOutside;
+ var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0, tgtCornerRadius, tgtRs);
+ var tgtIntn = pairInfo.tgtIntn = tgtOutside;
+ var intersectionPts = pairInfo.intersectionPts = {
+ x1: srcOutside[0],
+ x2: tgtOutside[0],
+ y1: srcOutside[1],
+ y2: tgtOutside[1]
+ };
+ var posPts = pairInfo.posPts = {
+ x1: srcPos.x,
+ x2: tgtPos.x,
+ y1: srcPos.y,
+ y2: tgtPos.y
+ };
+ var dy = tgtOutside[1] - srcOutside[1];
+ var dx = tgtOutside[0] - srcOutside[0];
+ var l2 = Math.sqrt(dx * dx + dy * dy);
+ var vector = pairInfo.vector = {
+ x: dx,
+ y: dy
+ };
+ var vectorNorm = pairInfo.vectorNorm = {
+ x: vector.x / l2,
+ y: vector.y / l2
+ };
+ var vectorNormInverse = {
+ x: -vectorNorm.y,
+ y: vectorNorm.x
+ };
+ pairInfo.nodesOverlap = !number$1(l2) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y, tgtCornerRadius, tgtRs) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y, srcCornerRadius, srcRs);
+ pairInfo.vectorNormInverse = vectorNormInverse;
+ swappedpairInfo = {
+ nodesOverlap: pairInfo.nodesOverlap,
+ dirCounts: pairInfo.dirCounts,
+ calculatedIntersection: true,
+ hasBezier: pairInfo.hasBezier,
+ hasUnbundled: pairInfo.hasUnbundled,
+ eles: pairInfo.eles,
+ srcPos: tgtPos,
+ tgtPos: srcPos,
+ srcW: tgtW,
+ srcH: tgtH,
+ tgtW: srcW,
+ tgtH: srcH,
+ srcIntn: tgtIntn,
+ tgtIntn: srcIntn,
+ srcShape: tgtShape,
+ tgtShape: srcShape,
+ posPts: {
+ x1: posPts.x2,
+ y1: posPts.y2,
+ x2: posPts.x1,
+ y2: posPts.y1
+ },
+ intersectionPts: {
+ x1: intersectionPts.x2,
+ y1: intersectionPts.y2,
+ x2: intersectionPts.x1,
+ y2: intersectionPts.y1
+ },
+ vector: {
+ x: -vector.x,
+ y: -vector.y
+ },
+ vectorNorm: {
+ x: -vectorNorm.x,
+ y: -vectorNorm.y
+ },
+ vectorNormInverse: {
+ x: -vectorNormInverse.x,
+ y: -vectorNormInverse.y
+ }
+ };
}
- if (val1 == 0 && val2 != 0) {
- return true;
- } else if (val1 != 0 && val2 == 0) {
- return true;
+ var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;
+ rs.nodesOverlap = passedPairInfo.nodesOverlap;
+ rs.srcIntn = passedPairInfo.srcIntn;
+ rs.tgtIntn = passedPairInfo.tgtIntn;
+ rs.isRound = _curveStyle.startsWith("round");
+ if (hasCompounds && (src2.isParent() || src2.isChild() || tgt2.isParent() || tgt2.isChild()) && (src2.parents().anySame(tgt2) || tgt2.parents().anySame(src2) || src2.same(tgt2) && src2.isParent())) {
+ _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
+ } else if (src2 === tgt2) {
+ _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
+ } else if (_curveStyle.endsWith("segments")) {
+ _this.findSegmentsPoints(_edge, passedPairInfo);
+ } else if (_curveStyle.endsWith("taxi")) {
+ _this.findTaxiPoints(_edge, passedPairInfo);
+ } else if (_curveStyle === "straight" || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {
+ _this.findStraightEdgePoints(_edge);
} else {
- return false;
+ _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);
}
- },
- any: function any(val1, val2) {
- return val1 != val2;
- },
- emptyNonEmpty: function emptyNonEmpty(str1, str2) {
- var empty1 = emptyString(str1);
- var empty2 = emptyString(str2);
- return empty1 && !empty2 || !empty1 && empty2;
+ _this.findEndpoints(_edge);
+ _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);
+ _this.checkForInvalidEdgeWarning(_edge);
+ _this.storeAllpts(_edge);
+ _this.storeEdgeProjections(_edge);
+ _this.calculateArrowAngles(_edge);
+ _this.recalculateEdgeLabelProjections(_edge);
+ _this.calculateLabelAngles(_edge);
}
+ }, "_loop");
+ for (var p3 = 0; p3 < pairIds.length; p3++) {
+ _loop(p3);
+ }
+ this.findHaystackPoints(haystackEdges);
+ };
+ __name(getPts, "getPts");
+ BRp$c.getSegmentPoints = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ var type3 = rs.edgeType;
+ if (type3 === "segments") {
+ this.recalculateRenderedStyle(edge);
+ return getPts(rs.segpts);
+ }
+ };
+ BRp$c.getControlPoints = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ var type3 = rs.edgeType;
+ if (type3 === "bezier" || type3 === "multibezier" || type3 === "self" || type3 === "compound") {
+ this.recalculateRenderedStyle(edge);
+ return getPts(rs.ctrlpts);
+ }
+ };
+ BRp$c.getEdgeMidpoint = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ this.recalculateRenderedStyle(edge);
+ return {
+ x: rs.midX,
+ y: rs.midY
};
- var t4 = styfn$2.types;
- var mainLabel = [{
- name: "label",
- type: t4.text,
- triggersBounds: diff.any,
- triggersZOrder: diff.emptyNonEmpty
- }, {
- name: "text-rotation",
- type: t4.textRotation,
- triggersBounds: diff.any
- }, {
- name: "text-margin-x",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }, {
- name: "text-margin-y",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }];
- var sourceLabel = [{
- name: "source-label",
- type: t4.text,
- triggersBounds: diff.any
- }, {
- name: "source-text-rotation",
- type: t4.textRotation,
- triggersBounds: diff.any
- }, {
- name: "source-text-margin-x",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }, {
- name: "source-text-margin-y",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }, {
- name: "source-text-offset",
- type: t4.size,
- triggersBounds: diff.any
- }];
- var targetLabel = [{
- name: "target-label",
- type: t4.text,
- triggersBounds: diff.any
- }, {
- name: "target-text-rotation",
- type: t4.textRotation,
- triggersBounds: diff.any
- }, {
- name: "target-text-margin-x",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }, {
- name: "target-text-margin-y",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }, {
- name: "target-text-offset",
- type: t4.size,
- triggersBounds: diff.any
- }];
- var labelDimensions = [{
- name: "font-family",
- type: t4.fontFamily,
- triggersBounds: diff.any
- }, {
- name: "font-style",
- type: t4.fontStyle,
- triggersBounds: diff.any
- }, {
- name: "font-weight",
- type: t4.fontWeight,
- triggersBounds: diff.any
- }, {
- name: "font-size",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "text-transform",
- type: t4.textTransform,
- triggersBounds: diff.any
- }, {
- name: "text-wrap",
- type: t4.textWrap,
- triggersBounds: diff.any
- }, {
- name: "text-overflow-wrap",
- type: t4.textOverflowWrap,
- triggersBounds: diff.any
- }, {
- name: "text-max-width",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "text-outline-width",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "line-height",
- type: t4.positiveNumber,
- triggersBounds: diff.any
- }];
- var commonLabel = [{
- name: "text-valign",
- type: t4.valign,
- triggersBounds: diff.any
- }, {
- name: "text-halign",
- type: t4.halign,
- triggersBounds: diff.any
- }, {
- name: "color",
- type: t4.color
- }, {
- name: "text-outline-color",
- type: t4.color
- }, {
- name: "text-outline-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "text-background-color",
- type: t4.color
- }, {
- name: "text-background-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "text-background-padding",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "text-border-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "text-border-color",
- type: t4.color
- }, {
- name: "text-border-width",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "text-border-style",
- type: t4.borderStyle,
- triggersBounds: diff.any
- }, {
- name: "text-background-shape",
- type: t4.textBackgroundShape,
- triggersBounds: diff.any
- }, {
- name: "text-justification",
- type: t4.justification
- }];
- var behavior = [{
- name: "events",
- type: t4.bool
- }, {
- name: "text-events",
- type: t4.bool
- }];
- var visibility = [{
- name: "display",
- type: t4.display,
- triggersZOrder: diff.any,
- triggersBounds: diff.any,
- triggersBoundsOfParallelBeziers: true
- }, {
- name: "visibility",
- type: t4.visibility,
- triggersZOrder: diff.any
- }, {
- name: "opacity",
- type: t4.zeroOneNumber,
- triggersZOrder: diff.zeroNonZero
- }, {
- name: "text-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "min-zoomed-font-size",
- type: t4.size
- }, {
- name: "z-compound-depth",
- type: t4.zCompoundDepth,
- triggersZOrder: diff.any
- }, {
- name: "z-index-compare",
- type: t4.zIndexCompare,
- triggersZOrder: diff.any
- }, {
- name: "z-index",
- type: t4.nonNegativeInt,
- triggersZOrder: diff.any
- }];
- var overlay = [{
- name: "overlay-padding",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "overlay-color",
- type: t4.color
- }, {
- name: "overlay-opacity",
- type: t4.zeroOneNumber,
- triggersBounds: diff.zeroNonZero
- }, {
- name: "overlay-shape",
- type: t4.overlayShape,
- triggersBounds: diff.any
- }];
- var underlay = [{
- name: "underlay-padding",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "underlay-color",
- type: t4.color
- }, {
- name: "underlay-opacity",
- type: t4.zeroOneNumber,
- triggersBounds: diff.zeroNonZero
- }, {
- name: "underlay-shape",
- type: t4.overlayShape,
- triggersBounds: diff.any
- }];
- var transition = [{
- name: "transition-property",
- type: t4.propList
- }, {
- name: "transition-duration",
- type: t4.time
- }, {
- name: "transition-delay",
- type: t4.time
- }, {
- name: "transition-timing-function",
- type: t4.easing
- }];
- var nodeSizeHashOverride = function nodeSizeHashOverride2(ele, parsedProp) {
- if (parsedProp.value === "label") {
- return -ele.poolIndex();
+ };
+ BRp$b = {};
+ BRp$b.manualEndptToPx = function(node2, prop) {
+ var r2 = this;
+ var npos = node2.position();
+ var w3 = node2.outerWidth();
+ var h2 = node2.outerHeight();
+ var rs = node2._private.rscratch;
+ if (prop.value.length === 2) {
+ var p3 = [prop.pfValue[0], prop.pfValue[1]];
+ if (prop.units[0] === "%") {
+ p3[0] = p3[0] * w3;
+ }
+ if (prop.units[1] === "%") {
+ p3[1] = p3[1] * h2;
+ }
+ p3[0] += npos.x;
+ p3[1] += npos.y;
+ return p3;
+ } else {
+ var angle2 = prop.pfValue[0];
+ angle2 = -Math.PI / 2 + angle2;
+ var l2 = 2 * Math.max(w3, h2);
+ var _p = [npos.x + Math.cos(angle2) * l2, npos.y + Math.sin(angle2) * l2];
+ return r2.nodeShapes[this.getNodeShape(node2)].intersectLine(npos.x, npos.y, w3, h2, _p[0], _p[1], 0, node2.pstyle("corner-radius").value === "auto" ? "auto" : node2.pstyle("corner-radius").pfValue, rs);
+ }
+ };
+ BRp$b.findEndpoints = function(edge) {
+ var r2 = this;
+ var intersect3;
+ var source = edge.source()[0];
+ var target = edge.target()[0];
+ var srcPos = source.position();
+ var tgtPos = target.position();
+ var tgtArShape = edge.pstyle("target-arrow-shape").value;
+ var srcArShape = edge.pstyle("source-arrow-shape").value;
+ var tgtDist = edge.pstyle("target-distance-from-node").pfValue;
+ var srcDist = edge.pstyle("source-distance-from-node").pfValue;
+ var srcRs = source._private.rscratch;
+ var tgtRs = target._private.rscratch;
+ var curveStyle = edge.pstyle("curve-style").value;
+ var rs = edge._private.rscratch;
+ var et2 = rs.edgeType;
+ var taxi = curveStyle === "taxi";
+ var self2 = et2 === "self" || et2 === "compound";
+ var bezier = et2 === "bezier" || et2 === "multibezier" || self2;
+ var multi = et2 !== "bezier";
+ var lines = et2 === "straight" || et2 === "segments";
+ var segments = et2 === "segments";
+ var hasEndpts = bezier || multi || lines;
+ var overrideEndpts = self2 || taxi;
+ var srcManEndpt = edge.pstyle("source-endpoint");
+ var srcManEndptVal = overrideEndpts ? "outside-to-node" : srcManEndpt.value;
+ var srcCornerRadius = source.pstyle("corner-radius").value === "auto" ? "auto" : source.pstyle("corner-radius").pfValue;
+ var tgtManEndpt = edge.pstyle("target-endpoint");
+ var tgtManEndptVal = overrideEndpts ? "outside-to-node" : tgtManEndpt.value;
+ var tgtCornerRadius = target.pstyle("corner-radius").value === "auto" ? "auto" : target.pstyle("corner-radius").pfValue;
+ rs.srcManEndpt = srcManEndpt;
+ rs.tgtManEndpt = tgtManEndpt;
+ var p1;
+ var p22;
+ var p1_i;
+ var p2_i;
+ if (bezier) {
+ var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];
+ var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;
+ p1 = cpEnd;
+ p22 = cpStart;
+ } else if (lines) {
+ var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2);
+ var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2);
+ p1 = tgtArrowFromPt;
+ p22 = srcArrowFromPt;
+ }
+ if (tgtManEndptVal === "inside-to-node") {
+ intersect3 = [tgtPos.x, tgtPos.y];
+ } else if (tgtManEndpt.units) {
+ intersect3 = this.manualEndptToPx(target, tgtManEndpt);
+ } else if (tgtManEndptVal === "outside-to-line") {
+ intersect3 = rs.tgtIntn;
+ } else {
+ if (tgtManEndptVal === "outside-to-node" || tgtManEndptVal === "outside-to-node-or-label") {
+ p1_i = p1;
+ } else if (tgtManEndptVal === "outside-to-line" || tgtManEndptVal === "outside-to-line-or-label") {
+ p1_i = [srcPos.x, srcPos.y];
+ }
+ intersect3 = r2.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0, tgtCornerRadius, tgtRs);
+ if (tgtManEndptVal === "outside-to-node-or-label" || tgtManEndptVal === "outside-to-line-or-label") {
+ var trs = target._private.rscratch;
+ var lw = trs.labelWidth;
+ var lh = trs.labelHeight;
+ var lx = trs.labelX;
+ var ly = trs.labelY;
+ var lw2 = lw / 2;
+ var lh2 = lh / 2;
+ var va = target.pstyle("text-valign").value;
+ if (va === "top") {
+ ly -= lh2;
+ } else if (va === "bottom") {
+ ly += lh2;
+ }
+ var ha = target.pstyle("text-halign").value;
+ if (ha === "left") {
+ lx -= lw2;
+ } else if (ha === "right") {
+ lx += lw2;
+ }
+ var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);
+ if (labelIntersect.length > 0) {
+ var refPt = srcPos;
+ var intSqdist = sqdist(refPt, array2point(intersect3));
+ var labIntSqdist = sqdist(refPt, array2point(labelIntersect));
+ var minSqDist = intSqdist;
+ if (labIntSqdist < intSqdist) {
+ intersect3 = labelIntersect;
+ minSqDist = labIntSqdist;
+ }
+ if (labelIntersect.length > 2) {
+ var labInt2SqDist = sqdist(refPt, {
+ x: labelIntersect[2],
+ y: labelIntersect[3]
+ });
+ if (labInt2SqDist < minSqDist) {
+ intersect3 = [labelIntersect[2], labelIntersect[3]];
+ }
+ }
+ }
+ }
+ }
+ var arrowEnd = shortenIntersection(intersect3, p1, r2.arrowShapes[tgtArShape].spacing(edge) + tgtDist);
+ var edgeEnd = shortenIntersection(intersect3, p1, r2.arrowShapes[tgtArShape].gap(edge) + tgtDist);
+ rs.endX = edgeEnd[0];
+ rs.endY = edgeEnd[1];
+ rs.arrowEndX = arrowEnd[0];
+ rs.arrowEndY = arrowEnd[1];
+ if (srcManEndptVal === "inside-to-node") {
+ intersect3 = [srcPos.x, srcPos.y];
+ } else if (srcManEndpt.units) {
+ intersect3 = this.manualEndptToPx(source, srcManEndpt);
+ } else if (srcManEndptVal === "outside-to-line") {
+ intersect3 = rs.srcIntn;
+ } else {
+ if (srcManEndptVal === "outside-to-node" || srcManEndptVal === "outside-to-node-or-label") {
+ p2_i = p22;
+ } else if (srcManEndptVal === "outside-to-line" || srcManEndptVal === "outside-to-line-or-label") {
+ p2_i = [tgtPos.x, tgtPos.y];
+ }
+ intersect3 = r2.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0, srcCornerRadius, srcRs);
+ if (srcManEndptVal === "outside-to-node-or-label" || srcManEndptVal === "outside-to-line-or-label") {
+ var srs = source._private.rscratch;
+ var _lw = srs.labelWidth;
+ var _lh = srs.labelHeight;
+ var _lx = srs.labelX;
+ var _ly = srs.labelY;
+ var _lw2 = _lw / 2;
+ var _lh2 = _lh / 2;
+ var _va = source.pstyle("text-valign").value;
+ if (_va === "top") {
+ _ly -= _lh2;
+ } else if (_va === "bottom") {
+ _ly += _lh2;
+ }
+ var _ha = source.pstyle("text-halign").value;
+ if (_ha === "left") {
+ _lx -= _lw2;
+ } else if (_ha === "right") {
+ _lx += _lw2;
+ }
+ var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);
+ if (_labelIntersect.length > 0) {
+ var _refPt = tgtPos;
+ var _intSqdist = sqdist(_refPt, array2point(intersect3));
+ var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));
+ var _minSqDist = _intSqdist;
+ if (_labIntSqdist < _intSqdist) {
+ intersect3 = [_labelIntersect[0], _labelIntersect[1]];
+ _minSqDist = _labIntSqdist;
+ }
+ if (_labelIntersect.length > 2) {
+ var _labInt2SqDist = sqdist(_refPt, {
+ x: _labelIntersect[2],
+ y: _labelIntersect[3]
+ });
+ if (_labInt2SqDist < _minSqDist) {
+ intersect3 = [_labelIntersect[2], _labelIntersect[3]];
+ }
+ }
+ }
+ }
+ }
+ var arrowStart = shortenIntersection(intersect3, p22, r2.arrowShapes[srcArShape].spacing(edge) + srcDist);
+ var edgeStart = shortenIntersection(intersect3, p22, r2.arrowShapes[srcArShape].gap(edge) + srcDist);
+ rs.startX = edgeStart[0];
+ rs.startY = edgeStart[1];
+ rs.arrowStartX = arrowStart[0];
+ rs.arrowStartY = arrowStart[1];
+ if (hasEndpts) {
+ if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) {
+ rs.badLine = true;
} else {
- return parsedProp.pfValue;
+ rs.badLine = false;
+ }
+ }
+ };
+ BRp$b.getSourceEndpoint = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ this.recalculateRenderedStyle(edge);
+ switch (rs.edgeType) {
+ case "haystack":
+ return {
+ x: rs.haystackPts[0],
+ y: rs.haystackPts[1]
+ };
+ default:
+ return {
+ x: rs.arrowStartX,
+ y: rs.arrowStartY
+ };
+ }
+ };
+ BRp$b.getTargetEndpoint = function(edge) {
+ var rs = edge[0]._private.rscratch;
+ this.recalculateRenderedStyle(edge);
+ switch (rs.edgeType) {
+ case "haystack":
+ return {
+ x: rs.haystackPts[2],
+ y: rs.haystackPts[3]
+ };
+ default:
+ return {
+ x: rs.arrowEndX,
+ y: rs.arrowEndY
+ };
+ }
+ };
+ BRp$a = {};
+ __name(pushBezierPts, "pushBezierPts");
+ BRp$a.storeEdgeProjections = function(edge) {
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ var et2 = rs.edgeType;
+ _p.rstyle.bezierPts = null;
+ _p.rstyle.linePts = null;
+ _p.rstyle.haystackPts = null;
+ if (et2 === "multibezier" || et2 === "bezier" || et2 === "self" || et2 === "compound") {
+ _p.rstyle.bezierPts = [];
+ for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) {
+ pushBezierPts(this, edge, rs.allpts.slice(i2, i2 + 6));
+ }
+ } else if (et2 === "segments") {
+ var lpts = _p.rstyle.linePts = [];
+ for (var i2 = 0; i2 + 1 < rs.allpts.length; i2 += 2) {
+ lpts.push({
+ x: rs.allpts[i2],
+ y: rs.allpts[i2 + 1]
+ });
}
+ } else if (et2 === "haystack") {
+ var hpts = rs.haystackPts;
+ _p.rstyle.haystackPts = [{
+ x: hpts[0],
+ y: hpts[1]
+ }, {
+ x: hpts[2],
+ y: hpts[3]
+ }];
+ }
+ _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
+ };
+ BRp$a.recalculateEdgeProjections = function(edges5) {
+ this.findEdgeControlPoints(edges5);
+ };
+ BRp$9 = {};
+ BRp$9.recalculateNodeLabelProjection = function(node2) {
+ var content = node2.pstyle("label").strValue;
+ if (emptyString(content)) {
+ return;
+ }
+ var textX, textY;
+ var _p = node2._private;
+ var nodeWidth = node2.width();
+ var nodeHeight = node2.height();
+ var padding3 = node2.padding();
+ var nodePos = node2.position();
+ var textHalign = node2.pstyle("text-halign").strValue;
+ var textValign = node2.pstyle("text-valign").strValue;
+ var rs = _p.rscratch;
+ var rstyle = _p.rstyle;
+ switch (textHalign) {
+ case "left":
+ textX = nodePos.x - nodeWidth / 2 - padding3;
+ break;
+ case "right":
+ textX = nodePos.x + nodeWidth / 2 + padding3;
+ break;
+ default:
+ textX = nodePos.x;
+ }
+ switch (textValign) {
+ case "top":
+ textY = nodePos.y - nodeHeight / 2 - padding3;
+ break;
+ case "bottom":
+ textY = nodePos.y + nodeHeight / 2 + padding3;
+ break;
+ default:
+ textY = nodePos.y;
+ }
+ rs.labelX = textX;
+ rs.labelY = textY;
+ rstyle.labelX = textX;
+ rstyle.labelY = textY;
+ this.calculateLabelAngles(node2);
+ this.applyLabelDimensions(node2);
+ };
+ lineAngleFromDelta = /* @__PURE__ */ __name(function lineAngleFromDelta2(dx, dy) {
+ var angle2 = Math.atan(dy / dx);
+ if (dx === 0 && angle2 < 0) {
+ angle2 = angle2 * -1;
+ }
+ return angle2;
+ }, "lineAngleFromDelta");
+ lineAngle = /* @__PURE__ */ __name(function lineAngle2(p0, p1) {
+ var dx = p1.x - p0.x;
+ var dy = p1.y - p0.y;
+ return lineAngleFromDelta(dx, dy);
+ }, "lineAngle");
+ bezierAngle = /* @__PURE__ */ __name(function bezierAngle2(p0, p1, p22, t4) {
+ var t03 = bound(0, t4 - 1e-3, 1);
+ var t13 = bound(0, t4 + 1e-3, 1);
+ var lp0 = qbezierPtAt(p0, p1, p22, t03);
+ var lp1 = qbezierPtAt(p0, p1, p22, t13);
+ return lineAngle(lp0, lp1);
+ }, "bezierAngle");
+ BRp$9.recalculateEdgeLabelProjections = function(edge) {
+ var p3;
+ var _p = edge._private;
+ var rs = _p.rscratch;
+ var r2 = this;
+ var content = {
+ mid: edge.pstyle("label").strValue,
+ source: edge.pstyle("source-label").strValue,
+ target: edge.pstyle("target-label").strValue
};
- var nodeBody = [{
- name: "height",
- type: t4.nodeSize,
- triggersBounds: diff.any,
- hashOverride: nodeSizeHashOverride
- }, {
- name: "width",
- type: t4.nodeSize,
- triggersBounds: diff.any,
- hashOverride: nodeSizeHashOverride
- }, {
- name: "shape",
- type: t4.nodeShape,
- triggersBounds: diff.any
- }, {
- name: "shape-polygon-points",
- type: t4.polygonPointList,
- triggersBounds: diff.any
- }, {
- name: "background-color",
- type: t4.color
- }, {
- name: "background-fill",
- type: t4.fill
- }, {
- name: "background-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "background-blacken",
- type: t4.nOneOneNumber
- }, {
- name: "background-gradient-stop-colors",
- type: t4.colors
- }, {
- name: "background-gradient-stop-positions",
- type: t4.percentages
- }, {
- name: "background-gradient-direction",
- type: t4.gradientDirection
- }, {
- name: "padding",
- type: t4.sizeMaybePercent,
- triggersBounds: diff.any
- }, {
- name: "padding-relative-to",
- type: t4.paddingRelativeTo,
- triggersBounds: diff.any
- }, {
- name: "bounds-expansion",
- type: t4.boundsExpansion,
- triggersBounds: diff.any
- }];
- var nodeBorder = [{
- name: "border-color",
- type: t4.color
- }, {
- name: "border-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "border-width",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "border-style",
- type: t4.borderStyle
- }];
- var backgroundImage = [{
- name: "background-image",
- type: t4.urls
- }, {
- name: "background-image-crossorigin",
- type: t4.bgCrossOrigin
- }, {
- name: "background-image-opacity",
- type: t4.zeroOneNumbers
- }, {
- name: "background-image-containment",
- type: t4.bgContainment
- }, {
- name: "background-image-smoothing",
- type: t4.bools
- }, {
- name: "background-position-x",
- type: t4.bgPos
- }, {
- name: "background-position-y",
- type: t4.bgPos
- }, {
- name: "background-width-relative-to",
- type: t4.bgRelativeTo
- }, {
- name: "background-height-relative-to",
- type: t4.bgRelativeTo
- }, {
- name: "background-repeat",
- type: t4.bgRepeat
- }, {
- name: "background-fit",
- type: t4.bgFit
- }, {
- name: "background-clip",
- type: t4.bgClip
- }, {
- name: "background-width",
- type: t4.bgWH
- }, {
- name: "background-height",
- type: t4.bgWH
- }, {
- name: "background-offset-x",
- type: t4.bgPos
- }, {
- name: "background-offset-y",
- type: t4.bgPos
- }];
- var compound = [{
- name: "position",
- type: t4.position,
- triggersBounds: diff.any
- }, {
- name: "compound-sizing-wrt-labels",
- type: t4.compoundIncludeLabels,
- triggersBounds: diff.any
- }, {
- name: "min-width",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "min-width-bias-left",
- type: t4.sizeMaybePercent,
- triggersBounds: diff.any
- }, {
- name: "min-width-bias-right",
- type: t4.sizeMaybePercent,
- triggersBounds: diff.any
- }, {
- name: "min-height",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "min-height-bias-top",
- type: t4.sizeMaybePercent,
- triggersBounds: diff.any
- }, {
- name: "min-height-bias-bottom",
- type: t4.sizeMaybePercent,
- triggersBounds: diff.any
- }];
- var edgeLine = [{
- name: "line-style",
- type: t4.lineStyle
- }, {
- name: "line-color",
- type: t4.color
- }, {
- name: "line-fill",
- type: t4.fill
- }, {
- name: "line-cap",
- type: t4.lineCap
- }, {
- name: "line-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "line-dash-pattern",
- type: t4.numbers
- }, {
- name: "line-dash-offset",
- type: t4.number
- }, {
- name: "line-gradient-stop-colors",
- type: t4.colors
- }, {
- name: "line-gradient-stop-positions",
- type: t4.percentages
- }, {
- name: "curve-style",
- type: t4.curveStyle,
- triggersBounds: diff.any,
- triggersBoundsOfParallelBeziers: true
- }, {
- name: "haystack-radius",
- type: t4.zeroOneNumber,
- triggersBounds: diff.any
- }, {
- name: "source-endpoint",
- type: t4.edgeEndpoint,
- triggersBounds: diff.any
- }, {
- name: "target-endpoint",
- type: t4.edgeEndpoint,
- triggersBounds: diff.any
- }, {
- name: "control-point-step-size",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "control-point-distances",
- type: t4.bidirectionalSizes,
- triggersBounds: diff.any
- }, {
- name: "control-point-weights",
- type: t4.numbers,
- triggersBounds: diff.any
- }, {
- name: "segment-distances",
- type: t4.bidirectionalSizes,
- triggersBounds: diff.any
- }, {
- name: "segment-weights",
- type: t4.numbers,
- triggersBounds: diff.any
- }, {
- name: "taxi-turn",
- type: t4.bidirectionalSizeMaybePercent,
- triggersBounds: diff.any
- }, {
- name: "taxi-turn-min-distance",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "taxi-direction",
- type: t4.axisDirection,
- triggersBounds: diff.any
- }, {
- name: "edge-distances",
- type: t4.edgeDistances,
- triggersBounds: diff.any
- }, {
- name: "arrow-scale",
- type: t4.positiveNumber,
- triggersBounds: diff.any
- }, {
- name: "loop-direction",
- type: t4.angle,
- triggersBounds: diff.any
- }, {
- name: "loop-sweep",
- type: t4.angle,
- triggersBounds: diff.any
- }, {
- name: "source-distance-from-node",
- type: t4.size,
- triggersBounds: diff.any
- }, {
- name: "target-distance-from-node",
- type: t4.size,
- triggersBounds: diff.any
- }];
- var ghost = [{
- name: "ghost",
- type: t4.bool,
- triggersBounds: diff.any
- }, {
- name: "ghost-offset-x",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }, {
- name: "ghost-offset-y",
- type: t4.bidirectionalSize,
- triggersBounds: diff.any
- }, {
- name: "ghost-opacity",
- type: t4.zeroOneNumber
- }];
- var core3 = [{
- name: "selection-box-color",
- type: t4.color
- }, {
- name: "selection-box-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "selection-box-border-color",
- type: t4.color
- }, {
- name: "selection-box-border-width",
- type: t4.size
- }, {
- name: "active-bg-color",
- type: t4.color
- }, {
- name: "active-bg-opacity",
- type: t4.zeroOneNumber
- }, {
- name: "active-bg-size",
- type: t4.size
- }, {
- name: "outside-texture-bg-color",
- type: t4.color
- }, {
- name: "outside-texture-bg-opacity",
- type: t4.zeroOneNumber
- }];
- var pie2 = [];
- styfn$2.pieBackgroundN = 16;
- pie2.push({
- name: "pie-size",
- type: t4.sizeMaybePercent
- });
- for (var i3 = 1; i3 <= styfn$2.pieBackgroundN; i3++) {
- pie2.push({
- name: "pie-" + i3 + "-background-color",
- type: t4.color
- });
- pie2.push({
- name: "pie-" + i3 + "-background-size",
- type: t4.percent
- });
- pie2.push({
- name: "pie-" + i3 + "-background-opacity",
- type: t4.zeroOneNumber
- });
+ if (content.mid || content.source || content.target) ;
+ else {
+ return;
+ }
+ p3 = {
+ x: rs.midX,
+ y: rs.midY
+ };
+ var setRs = /* @__PURE__ */ __name(function setRs2(propName, prefix, value2) {
+ setPrefixedProperty(_p.rscratch, propName, prefix, value2);
+ setPrefixedProperty(_p.rstyle, propName, prefix, value2);
+ }, "setRs");
+ setRs("labelX", null, p3.x);
+ setRs("labelY", null, p3.y);
+ var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);
+ setRs("labelAutoAngle", null, midAngle);
+ var createControlPointInfo = /* @__PURE__ */ __name(function createControlPointInfo2() {
+ if (createControlPointInfo2.cache) {
+ return createControlPointInfo2.cache;
+ }
+ var ctrlpts = [];
+ for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) {
+ var p0 = {
+ x: rs.allpts[i2],
+ y: rs.allpts[i2 + 1]
+ };
+ var p1 = {
+ x: rs.allpts[i2 + 2],
+ y: rs.allpts[i2 + 3]
+ };
+ var p22 = {
+ x: rs.allpts[i2 + 4],
+ y: rs.allpts[i2 + 5]
+ };
+ ctrlpts.push({
+ p0,
+ p1,
+ p2: p22,
+ startDist: 0,
+ length: 0,
+ segments: []
+ });
+ }
+ var bpts = _p.rstyle.bezierPts;
+ var nProjs = r2.bezierProjPcts.length;
+ function addSegment(cp2, p02, p12, t03, t13) {
+ var length2 = dist(p02, p12);
+ var prevSegment = cp2.segments[cp2.segments.length - 1];
+ var segment = {
+ p0: p02,
+ p1: p12,
+ t0: t03,
+ t1: t13,
+ startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,
+ length: length2
+ };
+ cp2.segments.push(segment);
+ cp2.length += length2;
+ }
+ __name(addSegment, "addSegment");
+ for (var _i = 0; _i < ctrlpts.length; _i++) {
+ var cp = ctrlpts[_i];
+ var prevCp = ctrlpts[_i - 1];
+ if (prevCp) {
+ cp.startDist = prevCp.startDist + prevCp.length;
+ }
+ addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r2.bezierProjPcts[0]);
+ for (var j2 = 0; j2 < nProjs - 1; j2++) {
+ addSegment(cp, bpts[_i * nProjs + j2], bpts[_i * nProjs + j2 + 1], r2.bezierProjPcts[j2], r2.bezierProjPcts[j2 + 1]);
+ }
+ addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r2.bezierProjPcts[nProjs - 1], 1);
+ }
+ return createControlPointInfo2.cache = ctrlpts;
+ }, "createControlPointInfo");
+ var calculateEndProjection = /* @__PURE__ */ __name(function calculateEndProjection2(prefix) {
+ var angle2;
+ var isSrc = prefix === "source";
+ if (!content[prefix]) {
+ return;
+ }
+ var offset = edge.pstyle(prefix + "-text-offset").pfValue;
+ switch (rs.edgeType) {
+ case "self":
+ case "compound":
+ case "bezier":
+ case "multibezier": {
+ var cps = createControlPointInfo();
+ var selected;
+ var startDist = 0;
+ var totalDist = 0;
+ for (var i2 = 0; i2 < cps.length; i2++) {
+ var _cp = cps[isSrc ? i2 : cps.length - 1 - i2];
+ for (var j2 = 0; j2 < _cp.segments.length; j2++) {
+ var _seg = _cp.segments[isSrc ? j2 : _cp.segments.length - 1 - j2];
+ var lastSeg = i2 === cps.length - 1 && j2 === _cp.segments.length - 1;
+ startDist = totalDist;
+ totalDist += _seg.length;
+ if (totalDist >= offset || lastSeg) {
+ selected = {
+ cp: _cp,
+ segment: _seg
+ };
+ break;
+ }
+ }
+ if (selected) {
+ break;
+ }
+ }
+ var cp = selected.cp;
+ var seg = selected.segment;
+ var tSegment = (offset - startDist) / seg.length;
+ var segDt = seg.t1 - seg.t0;
+ var t4 = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;
+ t4 = bound(0, t4, 1);
+ p3 = qbezierPtAt(cp.p0, cp.p1, cp.p2, t4);
+ angle2 = bezierAngle(cp.p0, cp.p1, cp.p2, t4);
+ break;
+ }
+ case "straight":
+ case "segments":
+ case "haystack": {
+ var d2 = 0, di, d0;
+ var p0, p1;
+ var l2 = rs.allpts.length;
+ for (var _i2 = 0; _i2 + 3 < l2; _i2 += 2) {
+ if (isSrc) {
+ p0 = {
+ x: rs.allpts[_i2],
+ y: rs.allpts[_i2 + 1]
+ };
+ p1 = {
+ x: rs.allpts[_i2 + 2],
+ y: rs.allpts[_i2 + 3]
+ };
+ } else {
+ p0 = {
+ x: rs.allpts[l2 - 2 - _i2],
+ y: rs.allpts[l2 - 1 - _i2]
+ };
+ p1 = {
+ x: rs.allpts[l2 - 4 - _i2],
+ y: rs.allpts[l2 - 3 - _i2]
+ };
+ }
+ di = dist(p0, p1);
+ d0 = d2;
+ d2 += di;
+ if (d2 >= offset) {
+ break;
+ }
+ }
+ var pD = offset - d0;
+ var _t = pD / di;
+ _t = bound(0, _t, 1);
+ p3 = lineAt(p0, p1, _t);
+ angle2 = lineAngle(p0, p1);
+ break;
+ }
+ }
+ setRs("labelX", prefix, p3.x);
+ setRs("labelY", prefix, p3.y);
+ setRs("labelAutoAngle", prefix, angle2);
+ }, "calculateEndProjection");
+ calculateEndProjection("source");
+ calculateEndProjection("target");
+ this.applyLabelDimensions(edge);
+ };
+ BRp$9.applyLabelDimensions = function(ele) {
+ this.applyPrefixedLabelDimensions(ele);
+ if (ele.isEdge()) {
+ this.applyPrefixedLabelDimensions(ele, "source");
+ this.applyPrefixedLabelDimensions(ele, "target");
}
- var edgeArrow = [];
- var arrowPrefixes = styfn$2.arrowPrefixes = ["source", "mid-source", "target", "mid-target"];
- [{
- name: "arrow-shape",
- type: t4.arrowShape,
- triggersBounds: diff.any
- }, {
- name: "arrow-color",
- type: t4.color
- }, {
- name: "arrow-fill",
- type: t4.arrowFill
- }].forEach(function(prop2) {
- arrowPrefixes.forEach(function(prefix) {
- var name2 = prefix + "-" + prop2.name;
- var type2 = prop2.type, triggersBounds = prop2.triggersBounds;
- edgeArrow.push({
- name: name2,
- type: type2,
- triggersBounds
- });
- });
- }, {});
- var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, backgroundImage, pie2, compound, edgeLine, edgeArrow, core3);
- var propGroups = styfn$2.propertyGroups = {
- // common to all eles
- behavior,
- transition,
- visibility,
- overlay,
- underlay,
- ghost,
- // labels
- commonLabel,
- labelDimensions,
- mainLabel,
- sourceLabel,
- targetLabel,
- // node props
- nodeBody,
- nodeBorder,
- backgroundImage,
- pie: pie2,
- compound,
- // edge props
- edgeLine,
- edgeArrow,
- core: core3
- };
- var propGroupNames = styfn$2.propertyGroupNames = {};
- var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);
- propGroupKeys.forEach(function(key) {
- propGroupNames[key] = propGroups[key].map(function(prop2) {
- return prop2.name;
- });
- propGroups[key].forEach(function(prop2) {
- return prop2.groupKey = key;
- });
- });
- var aliases = styfn$2.aliases = [{
- name: "content",
- pointsTo: "label"
- }, {
- name: "control-point-distance",
- pointsTo: "control-point-distances"
- }, {
- name: "control-point-weight",
- pointsTo: "control-point-weights"
- }, {
- name: "edge-text-rotation",
- pointsTo: "text-rotation"
- }, {
- name: "padding-left",
- pointsTo: "padding"
- }, {
- name: "padding-right",
- pointsTo: "padding"
- }, {
- name: "padding-top",
- pointsTo: "padding"
- }, {
- name: "padding-bottom",
- pointsTo: "padding"
- }];
- styfn$2.propertyNames = props.map(function(p2) {
- return p2.name;
- });
- for (var _i = 0; _i < props.length; _i++) {
- var prop = props[_i];
- props[prop.name] = prop;
+ };
+ BRp$9.applyPrefixedLabelDimensions = function(ele, prefix) {
+ var _p = ele._private;
+ var text2 = this.getLabelText(ele, prefix);
+ var labelDims = this.calculateLabelDimensions(ele, text2);
+ var lineHeight = ele.pstyle("line-height").pfValue;
+ var textWrap = ele.pstyle("text-wrap").strValue;
+ var lines = getPrefixedProperty(_p.rscratch, "labelWrapCachedLines", prefix) || [];
+ var numLines = textWrap !== "wrap" ? 1 : Math.max(lines.length, 1);
+ var normPerLineHeight = labelDims.height / numLines;
+ var labelLineHeight = normPerLineHeight * lineHeight;
+ var width3 = labelDims.width;
+ var height2 = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;
+ setPrefixedProperty(_p.rstyle, "labelWidth", prefix, width3);
+ setPrefixedProperty(_p.rscratch, "labelWidth", prefix, width3);
+ setPrefixedProperty(_p.rstyle, "labelHeight", prefix, height2);
+ setPrefixedProperty(_p.rscratch, "labelHeight", prefix, height2);
+ setPrefixedProperty(_p.rscratch, "labelLineHeight", prefix, labelLineHeight);
+ };
+ BRp$9.getLabelText = function(ele, prefix) {
+ var _p = ele._private;
+ var pfd = prefix ? prefix + "-" : "";
+ var text2 = ele.pstyle(pfd + "label").strValue;
+ var textTransform = ele.pstyle("text-transform").value;
+ var rscratch = /* @__PURE__ */ __name(function rscratch2(propName, value2) {
+ if (value2) {
+ setPrefixedProperty(_p.rscratch, propName, prefix, value2);
+ return value2;
+ } else {
+ return getPrefixedProperty(_p.rscratch, propName, prefix);
+ }
+ }, "rscratch");
+ if (!text2) {
+ return "";
}
- for (var _i2 = 0; _i2 < aliases.length; _i2++) {
- var alias = aliases[_i2];
- var pointsToProp = props[alias.pointsTo];
- var aliasProp = {
- name: alias.name,
- alias: true,
- pointsTo: pointsToProp
- };
- props.push(aliasProp);
- props[alias.name] = aliasProp;
+ if (textTransform == "none") ;
+ else if (textTransform == "uppercase") {
+ text2 = text2.toUpperCase();
+ } else if (textTransform == "lowercase") {
+ text2 = text2.toLowerCase();
}
- })();
- styfn$2.getDefaultProperty = function(name2) {
- return this.getDefaultProperties()[name2];
+ var wrapStyle = ele.pstyle("text-wrap").value;
+ if (wrapStyle === "wrap") {
+ var labelKey = rscratch("labelKey");
+ if (labelKey != null && rscratch("labelWrapKey") === labelKey) {
+ return rscratch("labelWrapCachedText");
+ }
+ var zwsp = "\u200B";
+ var lines = text2.split("\n");
+ var maxW = ele.pstyle("text-max-width").pfValue;
+ var overflow = ele.pstyle("text-overflow-wrap").value;
+ var overflowAny = overflow === "anywhere";
+ var wrappedLines = [];
+ var separatorRegex = /[\s\u200b]+|$/g;
+ for (var l2 = 0; l2 < lines.length; l2++) {
+ var line2 = lines[l2];
+ var lineDims = this.calculateLabelDimensions(ele, line2);
+ var lineW = lineDims.width;
+ if (overflowAny) {
+ var processedLine = line2.split("").join(zwsp);
+ line2 = processedLine;
+ }
+ if (lineW > maxW) {
+ var separatorMatches = line2.matchAll(separatorRegex);
+ var subline = "";
+ var previousIndex = 0;
+ var _iterator = _createForOfIteratorHelper(separatorMatches), _step;
+ try {
+ for (_iterator.s(); !(_step = _iterator.n()).done; ) {
+ var separatorMatch = _step.value;
+ var wordSeparator = separatorMatch[0];
+ var word = line2.substring(previousIndex, separatorMatch.index);
+ previousIndex = separatorMatch.index + wordSeparator.length;
+ var testLine = subline.length === 0 ? word : subline + word + wordSeparator;
+ var testDims = this.calculateLabelDimensions(ele, testLine);
+ var testW = testDims.width;
+ if (testW <= maxW) {
+ subline += word + wordSeparator;
+ } else {
+ if (subline) {
+ wrappedLines.push(subline);
+ }
+ subline = word + wordSeparator;
+ }
+ }
+ } catch (err) {
+ _iterator.e(err);
+ } finally {
+ _iterator.f();
+ }
+ if (!subline.match(/^[\s\u200b]+$/)) {
+ wrappedLines.push(subline);
+ }
+ } else {
+ wrappedLines.push(line2);
+ }
+ }
+ rscratch("labelWrapCachedLines", wrappedLines);
+ text2 = rscratch("labelWrapCachedText", wrappedLines.join("\n"));
+ rscratch("labelWrapKey", labelKey);
+ } else if (wrapStyle === "ellipsis") {
+ var _maxW = ele.pstyle("text-max-width").pfValue;
+ var ellipsized = "";
+ var ellipsis = "\u2026";
+ var incLastCh = false;
+ if (this.calculateLabelDimensions(ele, text2).width < _maxW) {
+ return text2;
+ }
+ for (var i2 = 0; i2 < text2.length; i2++) {
+ var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text2[i2] + ellipsis).width;
+ if (widthWithNextCh > _maxW) {
+ break;
+ }
+ ellipsized += text2[i2];
+ if (i2 === text2.length - 1) {
+ incLastCh = true;
+ }
+ }
+ if (!incLastCh) {
+ ellipsized += ellipsis;
+ }
+ return ellipsized;
+ }
+ return text2;
};
- styfn$2.getDefaultProperties = function() {
- var _p = this._private;
- if (_p.defaultProperties != null) {
- return _p.defaultProperties;
+ BRp$9.getLabelJustification = function(ele) {
+ var justification = ele.pstyle("text-justification").strValue;
+ var textHalign = ele.pstyle("text-halign").strValue;
+ if (justification === "auto") {
+ if (ele.isNode()) {
+ switch (textHalign) {
+ case "left":
+ return "right";
+ case "right":
+ return "left";
+ default:
+ return "center";
+ }
+ } else {
+ return "center";
+ }
+ } else {
+ return justification;
}
- var rawProps = extend2({
- // core props
- "selection-box-color": "#ddd",
- "selection-box-opacity": 0.65,
- "selection-box-border-color": "#aaa",
- "selection-box-border-width": 1,
- "active-bg-color": "black",
- "active-bg-opacity": 0.15,
- "active-bg-size": 30,
- "outside-texture-bg-color": "#000",
- "outside-texture-bg-opacity": 0.125,
- // common node/edge props
- "events": "yes",
- "text-events": "no",
- "text-valign": "top",
- "text-halign": "center",
- "text-justification": "auto",
- "line-height": 1,
- "color": "#000",
- "text-outline-color": "#000",
- "text-outline-width": 0,
- "text-outline-opacity": 1,
- "text-opacity": 1,
- "text-decoration": "none",
- "text-transform": "none",
- "text-wrap": "none",
- "text-overflow-wrap": "whitespace",
- "text-max-width": 9999,
- "text-background-color": "#000",
- "text-background-opacity": 0,
- "text-background-shape": "rectangle",
- "text-background-padding": 0,
- "text-border-opacity": 0,
- "text-border-width": 0,
- "text-border-style": "solid",
- "text-border-color": "#000",
- "font-family": "Helvetica Neue, Helvetica, sans-serif",
- "font-style": "normal",
- "font-weight": "normal",
- "font-size": 16,
- "min-zoomed-font-size": 0,
- "text-rotation": "none",
- "source-text-rotation": "none",
- "target-text-rotation": "none",
- "visibility": "visible",
- "display": "element",
- "opacity": 1,
- "z-compound-depth": "auto",
- "z-index-compare": "auto",
- "z-index": 0,
- "label": "",
- "text-margin-x": 0,
- "text-margin-y": 0,
- "source-label": "",
- "source-text-offset": 0,
- "source-text-margin-x": 0,
- "source-text-margin-y": 0,
- "target-label": "",
- "target-text-offset": 0,
- "target-text-margin-x": 0,
- "target-text-margin-y": 0,
- "overlay-opacity": 0,
- "overlay-color": "#000",
- "overlay-padding": 10,
- "overlay-shape": "round-rectangle",
- "underlay-opacity": 0,
- "underlay-color": "#000",
- "underlay-padding": 10,
- "underlay-shape": "round-rectangle",
- "transition-property": "none",
- "transition-duration": 0,
- "transition-delay": 0,
- "transition-timing-function": "linear",
- // node props
- "background-blacken": 0,
- "background-color": "#999",
- "background-fill": "solid",
- "background-opacity": 1,
- "background-image": "none",
- "background-image-crossorigin": "anonymous",
- "background-image-opacity": 1,
- "background-image-containment": "inside",
- "background-image-smoothing": "yes",
- "background-position-x": "50%",
- "background-position-y": "50%",
- "background-offset-x": 0,
- "background-offset-y": 0,
- "background-width-relative-to": "include-padding",
- "background-height-relative-to": "include-padding",
- "background-repeat": "no-repeat",
- "background-fit": "none",
- "background-clip": "node",
- "background-width": "auto",
- "background-height": "auto",
- "border-color": "#000",
- "border-opacity": 1,
- "border-width": 0,
- "border-style": "solid",
- "height": 30,
- "width": 30,
- "shape": "ellipse",
- "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1",
- "bounds-expansion": 0,
- // node gradient
- "background-gradient-direction": "to-bottom",
- "background-gradient-stop-colors": "#999",
- "background-gradient-stop-positions": "0%",
- // ghost props
- "ghost": "no",
- "ghost-offset-y": 0,
- "ghost-offset-x": 0,
- "ghost-opacity": 0,
- // compound props
- "padding": 0,
- "padding-relative-to": "width",
- "position": "origin",
- "compound-sizing-wrt-labels": "include",
- "min-width": 0,
- "min-width-bias-left": 0,
- "min-width-bias-right": 0,
- "min-height": 0,
- "min-height-bias-top": 0,
- "min-height-bias-bottom": 0
- }, {
- // node pie bg
- "pie-size": "100%"
- }, [{
- name: "pie-{{i}}-background-color",
- value: "black"
- }, {
- name: "pie-{{i}}-background-size",
- value: "0%"
- }, {
- name: "pie-{{i}}-background-opacity",
- value: 1
- }].reduce(function(css, prop2) {
- for (var i4 = 1; i4 <= styfn$2.pieBackgroundN; i4++) {
- var name3 = prop2.name.replace("{{i}}", i4);
- var val2 = prop2.value;
- css[name3] = val2;
+ };
+ BRp$9.calculateLabelDimensions = function(ele, text2) {
+ var r2 = this;
+ var containerWindow = r2.cy.window();
+ var document2 = containerWindow.document;
+ var cacheKey = hashString(text2, ele._private.labelDimsKey);
+ var cache3 = r2.labelDimCache || (r2.labelDimCache = []);
+ var existingVal = cache3[cacheKey];
+ if (existingVal != null) {
+ return existingVal;
+ }
+ var padding3 = 0;
+ var fStyle = ele.pstyle("font-style").strValue;
+ var size5 = ele.pstyle("font-size").pfValue;
+ var family = ele.pstyle("font-family").strValue;
+ var weight8 = ele.pstyle("font-weight").strValue;
+ var canvas = this.labelCalcCanvas;
+ var c2d = this.labelCalcCanvasContext;
+ if (!canvas) {
+ canvas = this.labelCalcCanvas = document2.createElement("canvas");
+ c2d = this.labelCalcCanvasContext = canvas.getContext("2d");
+ var ds = canvas.style;
+ ds.position = "absolute";
+ ds.left = "-9999px";
+ ds.top = "-9999px";
+ ds.zIndex = "-1";
+ ds.visibility = "hidden";
+ ds.pointerEvents = "none";
+ }
+ c2d.font = "".concat(fStyle, " ").concat(weight8, " ").concat(size5, "px ").concat(family);
+ var width3 = 0;
+ var height2 = 0;
+ var lines = text2.split("\n");
+ for (var i2 = 0; i2 < lines.length; i2++) {
+ var line2 = lines[i2];
+ var metrics = c2d.measureText(line2);
+ var w3 = Math.ceil(metrics.width);
+ var h2 = size5;
+ width3 = Math.max(w3, width3);
+ height2 += h2;
+ }
+ width3 += padding3;
+ height2 += padding3;
+ return cache3[cacheKey] = {
+ width: width3,
+ height: height2
+ };
+ };
+ BRp$9.calculateLabelAngle = function(ele, prefix) {
+ var _p = ele._private;
+ var rs = _p.rscratch;
+ var isEdge2 = ele.isEdge();
+ var prefixDash = prefix ? prefix + "-" : "";
+ var rot = ele.pstyle(prefixDash + "text-rotation");
+ var rotStr = rot.strValue;
+ if (rotStr === "none") {
+ return 0;
+ } else if (isEdge2 && rotStr === "autorotate") {
+ return rs.labelAutoAngle;
+ } else if (rotStr === "autorotate") {
+ return 0;
+ } else {
+ return rot.pfValue;
+ }
+ };
+ BRp$9.calculateLabelAngles = function(ele) {
+ var r2 = this;
+ var isEdge2 = ele.isEdge();
+ var _p = ele._private;
+ var rs = _p.rscratch;
+ rs.labelAngle = r2.calculateLabelAngle(ele);
+ if (isEdge2) {
+ rs.sourceLabelAngle = r2.calculateLabelAngle(ele, "source");
+ rs.targetLabelAngle = r2.calculateLabelAngle(ele, "target");
+ }
+ };
+ BRp$8 = {};
+ TOO_SMALL_CUT_RECT = 28;
+ warnedCutRect = false;
+ BRp$8.getNodeShape = function(node2) {
+ var r2 = this;
+ var shape = node2.pstyle("shape").value;
+ if (shape === "cutrectangle" && (node2.width() < TOO_SMALL_CUT_RECT || node2.height() < TOO_SMALL_CUT_RECT)) {
+ if (!warnedCutRect) {
+ warn("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead");
+ warnedCutRect = true;
}
- return css;
- }, {}), {
- // edge props
- "line-style": "solid",
- "line-color": "#999",
- "line-fill": "solid",
- "line-cap": "butt",
- "line-opacity": 1,
- "line-gradient-stop-colors": "#999",
- "line-gradient-stop-positions": "0%",
- "control-point-step-size": 40,
- "control-point-weights": 0.5,
- "segment-weights": 0.5,
- "segment-distances": 20,
- "taxi-turn": "50%",
- "taxi-turn-min-distance": 10,
- "taxi-direction": "auto",
- "edge-distances": "intersection",
- "curve-style": "haystack",
- "haystack-radius": 0,
- "arrow-scale": 1,
- "loop-direction": "-45deg",
- "loop-sweep": "-90deg",
- "source-distance-from-node": 0,
- "target-distance-from-node": 0,
- "source-endpoint": "outside-to-node",
- "target-endpoint": "outside-to-node",
- "line-dash-pattern": [6, 3],
- "line-dash-offset": 0
- }, [{
- name: "arrow-shape",
- value: "none"
- }, {
- name: "arrow-color",
- value: "#999"
- }, {
- name: "arrow-fill",
- value: "filled"
- }].reduce(function(css, prop2) {
- styfn$2.arrowPrefixes.forEach(function(prefix) {
- var name3 = prefix + "-" + prop2.name;
- var val2 = prop2.value;
- css[name3] = val2;
- });
- return css;
- }, {}));
- var parsedProps = {};
- for (var i3 = 0; i3 < this.properties.length; i3++) {
- var prop = this.properties[i3];
- if (prop.pointsTo) {
- continue;
+ return "rectangle";
+ }
+ if (node2.isParent()) {
+ if (shape === "rectangle" || shape === "roundrectangle" || shape === "round-rectangle" || shape === "cutrectangle" || shape === "cut-rectangle" || shape === "barrel") {
+ return shape;
+ } else {
+ return "rectangle";
}
- var name2 = prop.name;
- var val = rawProps[name2];
- var parsedProp = this.parse(name2, val);
- parsedProps[name2] = parsedProp;
}
- _p.defaultProperties = parsedProps;
- return _p.defaultProperties;
+ if (shape === "polygon") {
+ var points = node2.pstyle("shape-polygon-points").value;
+ return r2.nodeShapes.makePolygon(points).name;
+ }
+ return shape;
};
- styfn$2.addDefaultStylesheet = function() {
- this.selector(":parent").css({
- "shape": "rectangle",
- "padding": 10,
- "background-color": "#eee",
- "border-color": "#ccc",
- "border-width": 1
- }).selector("edge").css({
- "width": 3
- }).selector(":loop").css({
- "curve-style": "bezier"
- }).selector("edge:compound").css({
- "curve-style": "bezier",
- "source-endpoint": "outside-to-line",
- "target-endpoint": "outside-to-line"
- }).selector(":selected").css({
- "background-color": "#0169D9",
- "line-color": "#0169D9",
- "source-arrow-color": "#0169D9",
- "target-arrow-color": "#0169D9",
- "mid-source-arrow-color": "#0169D9",
- "mid-target-arrow-color": "#0169D9"
- }).selector(":parent:selected").css({
- "background-color": "#CCE1F9",
- "border-color": "#aec8e5"
- }).selector(":active").css({
- "overlay-color": "black",
- "overlay-padding": 10,
- "overlay-opacity": 0.25
- });
- this.defaultLength = this.length;
+ BRp$7 = {};
+ BRp$7.registerCalculationListeners = function() {
+ var cy = this.cy;
+ var elesToUpdate = cy.collection();
+ var r2 = this;
+ var enqueue = /* @__PURE__ */ __name(function enqueue2(eles) {
+ var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ elesToUpdate.merge(eles);
+ if (dirtyStyleCaches) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ rstyle.clean = false;
+ rstyle.cleanConnected = false;
+ }
+ }
+ }, "enqueue");
+ r2.binder(cy).on("bounds.* dirty.*", /* @__PURE__ */ __name(function onDirtyBounds(e3) {
+ var ele = e3.target;
+ enqueue(ele);
+ }, "onDirtyBounds")).on("style.* background.*", /* @__PURE__ */ __name(function onDirtyStyle(e3) {
+ var ele = e3.target;
+ enqueue(ele, false);
+ }, "onDirtyStyle"));
+ var updateEleCalcs = /* @__PURE__ */ __name(function updateEleCalcs2(willDraw) {
+ if (willDraw) {
+ var fns = r2.onUpdateEleCalcsFns;
+ elesToUpdate.cleanStyle();
+ for (var i2 = 0; i2 < elesToUpdate.length; i2++) {
+ var ele = elesToUpdate[i2];
+ var rstyle = ele._private.rstyle;
+ if (ele.isNode() && !rstyle.cleanConnected) {
+ enqueue(ele.connectedEdges());
+ rstyle.cleanConnected = true;
+ }
+ }
+ if (fns) {
+ for (var _i = 0; _i < fns.length; _i++) {
+ var fn3 = fns[_i];
+ fn3(willDraw, elesToUpdate);
+ }
+ }
+ r2.recalculateRenderedStyle(elesToUpdate);
+ elesToUpdate = cy.collection();
+ }
+ }, "updateEleCalcs");
+ r2.flushRenderedStyleQueue = function() {
+ updateEleCalcs(true);
+ };
+ r2.beforeRender(updateEleCalcs, r2.beforeRenderPriorities.eleCalcs);
};
- var styfn$1 = {};
- styfn$1.parse = function(name2, value, propIsBypass, propIsFlat) {
- var self2 = this;
- if (fn$6(value)) {
- return self2.parseImplWarn(name2, value, propIsBypass, propIsFlat);
+ BRp$7.onUpdateEleCalcs = function(fn3) {
+ var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];
+ fns.push(fn3);
+ };
+ BRp$7.recalculateRenderedStyle = function(eles, useCache) {
+ var isCleanConnected = /* @__PURE__ */ __name(function isCleanConnected2(ele2) {
+ return ele2._private.rstyle.cleanConnected;
+ }, "isCleanConnected");
+ var edges5 = [];
+ var nodes6 = [];
+ if (this.destroyed) {
+ return;
}
- var flatKey = propIsFlat === "mapping" || propIsFlat === true || propIsFlat === false || propIsFlat == null ? "dontcare" : propIsFlat;
- var bypassKey = propIsBypass ? "t" : "f";
- var valueKey = "" + value;
- var argHash = hashStrings(name2, valueKey, bypassKey, flatKey);
- var propCache = self2.propCache = self2.propCache || [];
- var ret;
- if (!(ret = propCache[argHash])) {
- ret = propCache[argHash] = self2.parseImplWarn(name2, value, propIsBypass, propIsFlat);
+ if (useCache === void 0) {
+ useCache = true;
}
- if (propIsBypass || propIsFlat === "mapping") {
- ret = copy2(ret);
- if (ret) {
- ret.value = copy2(ret.value);
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var _p = ele._private;
+ var rstyle = _p.rstyle;
+ if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {
+ rstyle.clean = false;
+ }
+ if (useCache && rstyle.clean || ele.removed()) {
+ continue;
+ }
+ if (ele.pstyle("display").value === "none") {
+ continue;
+ }
+ if (_p.group === "nodes") {
+ nodes6.push(ele);
+ } else {
+ edges5.push(ele);
}
+ rstyle.clean = true;
}
- return ret;
- };
- styfn$1.parseImplWarn = function(name2, value, propIsBypass, propIsFlat) {
- var prop = this.parseImpl(name2, value, propIsBypass, propIsFlat);
- if (!prop && value != null) {
- warn("The style property `".concat(name2, ": ").concat(value, "` is invalid"));
+ for (var _i2 = 0; _i2 < nodes6.length; _i2++) {
+ var _ele = nodes6[_i2];
+ var _p2 = _ele._private;
+ var _rstyle = _p2.rstyle;
+ var pos = _ele.position();
+ this.recalculateNodeLabelProjection(_ele);
+ _rstyle.nodeX = pos.x;
+ _rstyle.nodeY = pos.y;
+ _rstyle.nodeW = _ele.pstyle("width").pfValue;
+ _rstyle.nodeH = _ele.pstyle("height").pfValue;
}
- if (prop && (prop.name === "width" || prop.name === "height") && value === "label") {
- warn("The style value of `label` is deprecated for `" + prop.name + "`");
+ this.recalculateEdgeProjections(edges5);
+ for (var _i3 = 0; _i3 < edges5.length; _i3++) {
+ var _ele2 = edges5[_i3];
+ var _p3 = _ele2._private;
+ var _rstyle2 = _p3.rstyle;
+ var rs = _p3.rscratch;
+ _rstyle2.srcX = rs.arrowStartX;
+ _rstyle2.srcY = rs.arrowStartY;
+ _rstyle2.tgtX = rs.arrowEndX;
+ _rstyle2.tgtY = rs.arrowEndY;
+ _rstyle2.midX = rs.midX;
+ _rstyle2.midY = rs.midY;
+ _rstyle2.labelAngle = rs.labelAngle;
+ _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;
+ _rstyle2.targetLabelAngle = rs.targetLabelAngle;
}
- return prop;
};
- styfn$1.parseImpl = function(name2, value, propIsBypass, propIsFlat) {
- var self2 = this;
- name2 = camel2dash(name2);
- var property2 = self2.properties[name2];
- var passedValue = value;
- var types = self2.types;
- if (!property2) {
- return null;
+ BRp$6 = {};
+ BRp$6.updateCachedGrabbedEles = function() {
+ var eles = this.cachedZSortedEles;
+ if (!eles) {
+ return;
}
- if (value === void 0) {
- return null;
+ eles.drag = [];
+ eles.nondrag = [];
+ var grabTargets = [];
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var rs = ele._private.rscratch;
+ if (ele.grabbed() && !ele.isParent()) {
+ grabTargets.push(ele);
+ } else if (rs.inDragLayer) {
+ eles.drag.push(ele);
+ } else {
+ eles.nondrag.push(ele);
+ }
}
- if (property2.alias) {
- property2 = property2.pointsTo;
- name2 = property2.name;
+ for (var i2 = 0; i2 < grabTargets.length; i2++) {
+ var ele = grabTargets[i2];
+ eles.drag.push(ele);
}
- var valueIsString = string(value);
- if (valueIsString) {
- value = value.trim();
+ };
+ BRp$6.invalidateCachedZSortedEles = function() {
+ this.cachedZSortedEles = null;
+ };
+ BRp$6.getCachedZSortedEles = function(forceRecalc) {
+ if (forceRecalc || !this.cachedZSortedEles) {
+ var eles = this.cy.mutableElements().toArray();
+ eles.sort(zIndexSort);
+ eles.interactive = eles.filter(function(ele) {
+ return ele.interactive();
+ });
+ this.cachedZSortedEles = eles;
+ this.updateCachedGrabbedEles();
+ } else {
+ eles = this.cachedZSortedEles;
}
- var type2 = property2.type;
- if (!type2) {
- return null;
+ return eles;
+ };
+ BRp$5 = {};
+ [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function(props) {
+ extend2(BRp$5, props);
+ });
+ BRp$4 = {};
+ BRp$4.getCachedImage = function(url, crossOrigin, onLoad) {
+ var r2 = this;
+ var imageCache = r2.imageCache = r2.imageCache || {};
+ var cache3 = imageCache[url];
+ if (cache3) {
+ if (!cache3.image.complete) {
+ cache3.image.addEventListener("load", onLoad);
+ }
+ return cache3.image;
+ } else {
+ cache3 = imageCache[url] = imageCache[url] || {};
+ var image = cache3.image = new Image();
+ image.addEventListener("load", onLoad);
+ image.addEventListener("error", function() {
+ image.error = true;
+ });
+ var dataUriPrefix = "data:";
+ var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;
+ if (!isDataUri) {
+ crossOrigin = crossOrigin === "null" ? null : crossOrigin;
+ image.crossOrigin = crossOrigin;
+ }
+ image.src = url;
+ return image;
}
- if (propIsBypass && (value === "" || value === null)) {
- return {
- name: name2,
- value,
- bypass: true,
- deleteBypass: true
- };
+ };
+ BRp$3 = {};
+ BRp$3.registerBinding = function(target, event3, handler, useCapture) {
+ var args = Array.prototype.slice.apply(arguments, [1]);
+ var b2 = this.binder(target);
+ return b2.on.apply(b2, args);
+ };
+ BRp$3.binder = function(tgt) {
+ var r2 = this;
+ var containerWindow = r2.cy.window();
+ var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt);
+ if (r2.supportsPassiveEvents == null) {
+ var supportsPassive = false;
+ try {
+ var opts = Object.defineProperty({}, "passive", {
+ get: /* @__PURE__ */ __name(function get6() {
+ supportsPassive = true;
+ return true;
+ }, "get")
+ });
+ containerWindow.addEventListener("test", null, opts);
+ } catch (err) {
+ }
+ r2.supportsPassiveEvents = supportsPassive;
}
- if (fn$6(value)) {
- return {
- name: name2,
- value,
- strValue: "fn",
- mapped: types.fn,
- bypass: propIsBypass
- };
+ var on3 = /* @__PURE__ */ __name(function on4(event3, handler, useCapture) {
+ var args = Array.prototype.slice.call(arguments);
+ if (tgtIsDom && r2.supportsPassiveEvents) {
+ args[2] = {
+ capture: useCapture != null ? useCapture : false,
+ passive: false,
+ once: false
+ };
+ }
+ r2.bindings.push({
+ target: tgt,
+ args
+ });
+ (tgt.addEventListener || tgt.on).apply(tgt, args);
+ return this;
+ }, "on");
+ return {
+ on: on3,
+ addEventListener: on3,
+ addListener: on3,
+ bind: on3
+ };
+ };
+ BRp$3.nodeIsDraggable = function(node2) {
+ return node2 && node2.isNode() && !node2.locked() && node2.grabbable();
+ };
+ BRp$3.nodeIsGrabbable = function(node2) {
+ return this.nodeIsDraggable(node2) && node2.interactive();
+ };
+ BRp$3.load = function() {
+ var r2 = this;
+ var containerWindow = r2.cy.window();
+ var isSelected = /* @__PURE__ */ __name(function isSelected2(ele) {
+ return ele.selected();
+ }, "isSelected");
+ var triggerEvents = /* @__PURE__ */ __name(function triggerEvents2(target, names, e3, position5) {
+ if (target == null) {
+ target = r2.cy;
+ }
+ for (var i2 = 0; i2 < names.length; i2++) {
+ var name = names[i2];
+ target.emit({
+ originalEvent: e3,
+ type: name,
+ position: position5
+ });
+ }
+ }, "triggerEvents");
+ var isMultSelKeyDown = /* @__PURE__ */ __name(function isMultSelKeyDown2(e3) {
+ return e3.shiftKey || e3.metaKey || e3.ctrlKey;
+ }, "isMultSelKeyDown");
+ var allowPanningPassthrough = /* @__PURE__ */ __name(function allowPanningPassthrough2(down, downs) {
+ var allowPassthrough = true;
+ if (r2.cy.hasCompoundNodes() && down && down.pannable()) {
+ for (var i2 = 0; downs && i2 < downs.length; i2++) {
+ var down = downs[i2];
+ if (down.isNode() && down.isParent() && !down.pannable()) {
+ allowPassthrough = false;
+ break;
+ }
+ }
+ } else {
+ allowPassthrough = true;
+ }
+ return allowPassthrough;
+ }, "allowPanningPassthrough");
+ var setGrabbed = /* @__PURE__ */ __name(function setGrabbed2(ele) {
+ ele[0]._private.grabbed = true;
+ }, "setGrabbed");
+ var setFreed = /* @__PURE__ */ __name(function setFreed2(ele) {
+ ele[0]._private.grabbed = false;
+ }, "setFreed");
+ var setInDragLayer = /* @__PURE__ */ __name(function setInDragLayer2(ele) {
+ ele[0]._private.rscratch.inDragLayer = true;
+ }, "setInDragLayer");
+ var setOutDragLayer = /* @__PURE__ */ __name(function setOutDragLayer2(ele) {
+ ele[0]._private.rscratch.inDragLayer = false;
+ }, "setOutDragLayer");
+ var setGrabTarget = /* @__PURE__ */ __name(function setGrabTarget2(ele) {
+ ele[0]._private.rscratch.isGrabTarget = true;
+ }, "setGrabTarget");
+ var removeGrabTarget = /* @__PURE__ */ __name(function removeGrabTarget2(ele) {
+ ele[0]._private.rscratch.isGrabTarget = false;
+ }, "removeGrabTarget");
+ var addToDragList = /* @__PURE__ */ __name(function addToDragList2(ele, opts) {
+ var list2 = opts.addToList;
+ var listHasEle = list2.has(ele);
+ if (!listHasEle && ele.grabbable() && !ele.locked()) {
+ list2.merge(ele);
+ setGrabbed(ele);
+ }
+ }, "addToDragList");
+ var addDescendantsToDrag = /* @__PURE__ */ __name(function addDescendantsToDrag2(node2, opts) {
+ if (!node2.cy().hasCompoundNodes()) {
+ return;
+ }
+ if (opts.inDragLayer == null && opts.addToList == null) {
+ return;
+ }
+ var innerNodes = node2.descendants();
+ if (opts.inDragLayer) {
+ innerNodes.forEach(setInDragLayer);
+ innerNodes.connectedEdges().forEach(setInDragLayer);
+ }
+ if (opts.addToList) {
+ addToDragList(innerNodes, opts);
+ }
+ }, "addDescendantsToDrag");
+ var addNodesToDrag = /* @__PURE__ */ __name(function addNodesToDrag2(nodes6, opts) {
+ opts = opts || {};
+ var hasCompoundNodes2 = nodes6.cy().hasCompoundNodes();
+ if (opts.inDragLayer) {
+ nodes6.forEach(setInDragLayer);
+ nodes6.neighborhood().stdFilter(function(ele) {
+ return !hasCompoundNodes2 || ele.isEdge();
+ }).forEach(setInDragLayer);
+ }
+ if (opts.addToList) {
+ nodes6.forEach(function(ele) {
+ addToDragList(ele, opts);
+ });
+ }
+ addDescendantsToDrag(nodes6, opts);
+ updateAncestorsInDragLayer(nodes6, {
+ inDragLayer: opts.inDragLayer
+ });
+ r2.updateCachedGrabbedEles();
+ }, "addNodesToDrag");
+ var addNodeToDrag = addNodesToDrag;
+ var freeDraggedElements = /* @__PURE__ */ __name(function freeDraggedElements2(grabbedEles) {
+ if (!grabbedEles) {
+ return;
+ }
+ r2.getCachedZSortedEles().forEach(function(ele) {
+ setFreed(ele);
+ setOutDragLayer(ele);
+ removeGrabTarget(ele);
+ });
+ r2.updateCachedGrabbedEles();
+ }, "freeDraggedElements");
+ var updateAncestorsInDragLayer = /* @__PURE__ */ __name(function updateAncestorsInDragLayer2(node2, opts) {
+ if (opts.inDragLayer == null && opts.addToList == null) {
+ return;
+ }
+ if (!node2.cy().hasCompoundNodes()) {
+ return;
+ }
+ var parent4 = node2.ancestors().orphans();
+ if (parent4.same(node2)) {
+ return;
+ }
+ var nodes6 = parent4.descendants().spawnSelf().merge(parent4).unmerge(node2).unmerge(node2.descendants());
+ var edges5 = nodes6.connectedEdges();
+ if (opts.inDragLayer) {
+ edges5.forEach(setInDragLayer);
+ nodes6.forEach(setInDragLayer);
+ }
+ if (opts.addToList) {
+ nodes6.forEach(function(ele) {
+ addToDragList(ele, opts);
+ });
+ }
+ }, "updateAncestorsInDragLayer");
+ var blurActiveDomElement = /* @__PURE__ */ __name(function blurActiveDomElement2() {
+ if (document.activeElement != null && document.activeElement.blur != null) {
+ document.activeElement.blur();
+ }
+ }, "blurActiveDomElement");
+ var haveMutationsApi = typeof MutationObserver !== "undefined";
+ var haveResizeObserverApi = typeof ResizeObserver !== "undefined";
+ if (haveMutationsApi) {
+ r2.removeObserver = new MutationObserver(function(mutns) {
+ for (var i2 = 0; i2 < mutns.length; i2++) {
+ var mutn = mutns[i2];
+ var rNodes = mutn.removedNodes;
+ if (rNodes) {
+ for (var j2 = 0; j2 < rNodes.length; j2++) {
+ var rNode = rNodes[j2];
+ if (rNode === r2.container) {
+ r2.destroy();
+ break;
+ }
+ }
+ }
+ }
+ });
+ if (r2.container.parentNode) {
+ r2.removeObserver.observe(r2.container.parentNode, {
+ childList: true
+ });
+ }
+ } else {
+ r2.registerBinding(r2.container, "DOMNodeRemoved", function(e3) {
+ r2.destroy();
+ });
}
- var data2, mapData;
- if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== "a")
- ;
- else if (value.length >= 7 && value[0] === "d" && (data2 = new RegExp(types.data.regex).exec(value))) {
- if (propIsBypass) {
+ var onResize = debounce_1(function() {
+ r2.cy.resize();
+ }, 100);
+ if (haveMutationsApi) {
+ r2.styleObserver = new MutationObserver(onResize);
+ r2.styleObserver.observe(r2.container, {
+ attributes: true
+ });
+ }
+ r2.registerBinding(containerWindow, "resize", onResize);
+ if (haveResizeObserverApi) {
+ r2.resizeObserver = new ResizeObserver(onResize);
+ r2.resizeObserver.observe(r2.container);
+ }
+ var forEachUp = /* @__PURE__ */ __name(function forEachUp2(domEle, fn3) {
+ while (domEle != null) {
+ fn3(domEle);
+ domEle = domEle.parentNode;
+ }
+ }, "forEachUp");
+ var invalidateCoords = /* @__PURE__ */ __name(function invalidateCoords2() {
+ r2.invalidateContainerClientCoordsCache();
+ }, "invalidateCoords");
+ forEachUp(r2.container, function(domEle) {
+ r2.registerBinding(domEle, "transitionend", invalidateCoords);
+ r2.registerBinding(domEle, "animationend", invalidateCoords);
+ r2.registerBinding(domEle, "scroll", invalidateCoords);
+ });
+ r2.registerBinding(r2.container, "contextmenu", function(e3) {
+ e3.preventDefault();
+ });
+ var inBoxSelection = /* @__PURE__ */ __name(function inBoxSelection2() {
+ return r2.selection[4] !== 0;
+ }, "inBoxSelection");
+ var eventInContainer = /* @__PURE__ */ __name(function eventInContainer2(e3) {
+ var containerPageCoords = r2.findContainerClientCoords();
+ var x5 = containerPageCoords[0];
+ var y5 = containerPageCoords[1];
+ var width3 = containerPageCoords[2];
+ var height2 = containerPageCoords[3];
+ var positions2 = e3.touches ? e3.touches : [e3];
+ var atLeastOnePosInside = false;
+ for (var i2 = 0; i2 < positions2.length; i2++) {
+ var p3 = positions2[i2];
+ if (x5 <= p3.clientX && p3.clientX <= x5 + width3 && y5 <= p3.clientY && p3.clientY <= y5 + height2) {
+ atLeastOnePosInside = true;
+ break;
+ }
+ }
+ if (!atLeastOnePosInside) {
return false;
}
- var mapped = types.data;
- return {
- name: name2,
- value: data2,
- strValue: "" + value,
- mapped,
- field: data2[1],
- bypass: propIsBypass
- };
- } else if (value.length >= 10 && value[0] === "m" && (mapData = new RegExp(types.mapData.regex).exec(value))) {
- if (propIsBypass) {
+ var container2 = r2.container;
+ var target = e3.target;
+ var tParent = target.parentNode;
+ var containerIsTarget = false;
+ while (tParent) {
+ if (tParent === container2) {
+ containerIsTarget = true;
+ break;
+ }
+ tParent = tParent.parentNode;
+ }
+ if (!containerIsTarget) {
return false;
}
- if (type2.multiple) {
+ return true;
+ }, "eventInContainer");
+ r2.registerBinding(r2.container, "mousedown", /* @__PURE__ */ __name(function mousedownHandler(e3) {
+ if (!eventInContainer(e3)) {
+ return;
+ }
+ if (r2.hoverData.which === 1 && e3.which !== 1) {
+ return;
+ }
+ e3.preventDefault();
+ blurActiveDomElement();
+ r2.hoverData.capture = true;
+ r2.hoverData.which = e3.which;
+ var cy = r2.cy;
+ var gpos = [e3.clientX, e3.clientY];
+ var pos = r2.projectIntoViewport(gpos[0], gpos[1]);
+ var select = r2.selection;
+ var nears = r2.findNearestElements(pos[0], pos[1], true, false);
+ var near = nears[0];
+ var draggedElements = r2.dragData.possibleDragElements;
+ r2.hoverData.mdownPos = pos;
+ r2.hoverData.mdownGPos = gpos;
+ var checkForTaphold = /* @__PURE__ */ __name(function checkForTaphold2() {
+ r2.hoverData.tapholdCancelled = false;
+ clearTimeout(r2.hoverData.tapholdTimeout);
+ r2.hoverData.tapholdTimeout = setTimeout(function() {
+ if (r2.hoverData.tapholdCancelled) {
+ return;
+ } else {
+ var ele = r2.hoverData.down;
+ if (ele) {
+ ele.emit({
+ originalEvent: e3,
+ type: "taphold",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ } else {
+ cy.emit({
+ originalEvent: e3,
+ type: "taphold",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ }
+ }, r2.tapholdDuration);
+ }, "checkForTaphold");
+ if (e3.which == 3) {
+ r2.hoverData.cxtStarted = true;
+ var cxtEvt = {
+ originalEvent: e3,
+ type: "cxttapstart",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (near) {
+ near.activate();
+ near.emit(cxtEvt);
+ r2.hoverData.down = near;
+ } else {
+ cy.emit(cxtEvt);
+ }
+ r2.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();
+ r2.hoverData.cxtDragged = false;
+ } else if (e3.which == 1) {
+ if (near) {
+ near.activate();
+ }
+ {
+ if (near != null) {
+ if (r2.nodeIsGrabbable(near)) {
+ var makeEvent = /* @__PURE__ */ __name(function makeEvent2(type3) {
+ return {
+ originalEvent: e3,
+ type: type3,
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ }, "makeEvent");
+ var triggerGrab = /* @__PURE__ */ __name(function triggerGrab2(ele) {
+ ele.emit(makeEvent("grab"));
+ }, "triggerGrab");
+ setGrabTarget(near);
+ if (!near.selected()) {
+ draggedElements = r2.dragData.possibleDragElements = cy.collection();
+ addNodeToDrag(near, {
+ addToList: draggedElements
+ });
+ near.emit(makeEvent("grabon")).emit(makeEvent("grab"));
+ } else {
+ draggedElements = r2.dragData.possibleDragElements = cy.collection();
+ var selectedNodes = cy.$(function(ele) {
+ return ele.isNode() && ele.selected() && r2.nodeIsGrabbable(ele);
+ });
+ addNodesToDrag(selectedNodes, {
+ addToList: draggedElements
+ });
+ near.emit(makeEvent("grabon"));
+ selectedNodes.forEach(triggerGrab);
+ }
+ r2.redrawHint("eles", true);
+ r2.redrawHint("drag", true);
+ }
+ }
+ r2.hoverData.down = near;
+ r2.hoverData.downs = nears;
+ r2.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();
+ }
+ triggerEvents(near, ["mousedown", "tapstart", "vmousedown"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ if (near == null) {
+ select[4] = 1;
+ r2.data.bgActivePosistion = {
+ x: pos[0],
+ y: pos[1]
+ };
+ r2.redrawHint("select", true);
+ r2.redraw();
+ } else if (near.pannable()) {
+ select[4] = 1;
+ }
+ checkForTaphold();
+ }
+ select[0] = select[2] = pos[0];
+ select[1] = select[3] = pos[1];
+ }, "mousedownHandler"), false);
+ r2.registerBinding(containerWindow, "mousemove", /* @__PURE__ */ __name(function mousemoveHandler(e3) {
+ var capture = r2.hoverData.capture;
+ if (!capture && !eventInContainer(e3)) {
+ return;
+ }
+ var preventDefault2 = false;
+ var cy = r2.cy;
+ var zoom2 = cy.zoom();
+ var gpos = [e3.clientX, e3.clientY];
+ var pos = r2.projectIntoViewport(gpos[0], gpos[1]);
+ var mdownPos = r2.hoverData.mdownPos;
+ var mdownGPos = r2.hoverData.mdownGPos;
+ var select = r2.selection;
+ var near = null;
+ if (!r2.hoverData.draggingEles && !r2.hoverData.dragging && !r2.hoverData.selecting) {
+ near = r2.findNearestElement(pos[0], pos[1], true, false);
+ }
+ var last3 = r2.hoverData.last;
+ var down = r2.hoverData.down;
+ var disp = [pos[0] - select[2], pos[1] - select[3]];
+ var draggedElements = r2.dragData.possibleDragElements;
+ var isOverThresholdDrag;
+ if (mdownGPos) {
+ var dx = gpos[0] - mdownGPos[0];
+ var dx2 = dx * dx;
+ var dy = gpos[1] - mdownGPos[1];
+ var dy2 = dy * dy;
+ var dist22 = dx2 + dy2;
+ r2.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist22 >= r2.desktopTapThreshold2;
+ }
+ var multSelKeyDown = isMultSelKeyDown(e3);
+ if (isOverThresholdDrag) {
+ r2.hoverData.tapholdCancelled = true;
+ }
+ var updateDragDelta = /* @__PURE__ */ __name(function updateDragDelta2() {
+ var dragDelta2 = r2.hoverData.dragDelta = r2.hoverData.dragDelta || [];
+ if (dragDelta2.length === 0) {
+ dragDelta2.push(disp[0]);
+ dragDelta2.push(disp[1]);
+ } else {
+ dragDelta2[0] += disp[0];
+ dragDelta2[1] += disp[1];
+ }
+ }, "updateDragDelta");
+ preventDefault2 = true;
+ triggerEvents(near, ["mousemove", "vmousemove", "tapdrag"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ var goIntoBoxMode = /* @__PURE__ */ __name(function goIntoBoxMode2() {
+ r2.data.bgActivePosistion = void 0;
+ if (!r2.hoverData.selecting) {
+ cy.emit({
+ originalEvent: e3,
+ type: "boxstart",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ select[4] = 1;
+ r2.hoverData.selecting = true;
+ r2.redrawHint("select", true);
+ r2.redraw();
+ }, "goIntoBoxMode");
+ if (r2.hoverData.which === 3) {
+ if (isOverThresholdDrag) {
+ var cxtEvt = {
+ originalEvent: e3,
+ type: "cxtdrag",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (down) {
+ down.emit(cxtEvt);
+ } else {
+ cy.emit(cxtEvt);
+ }
+ r2.hoverData.cxtDragged = true;
+ if (!r2.hoverData.cxtOver || near !== r2.hoverData.cxtOver) {
+ if (r2.hoverData.cxtOver) {
+ r2.hoverData.cxtOver.emit({
+ originalEvent: e3,
+ type: "cxtdragout",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ r2.hoverData.cxtOver = near;
+ if (near) {
+ near.emit({
+ originalEvent: e3,
+ type: "cxtdragover",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }
+ }
+ }
+ } else if (r2.hoverData.dragging) {
+ preventDefault2 = true;
+ if (cy.panningEnabled() && cy.userPanningEnabled()) {
+ var deltaP;
+ if (r2.hoverData.justStartedPan) {
+ var mdPos = r2.hoverData.mdownPos;
+ deltaP = {
+ x: (pos[0] - mdPos[0]) * zoom2,
+ y: (pos[1] - mdPos[1]) * zoom2
+ };
+ r2.hoverData.justStartedPan = false;
+ } else {
+ deltaP = {
+ x: disp[0] * zoom2,
+ y: disp[1] * zoom2
+ };
+ }
+ cy.panBy(deltaP);
+ cy.emit("dragpan");
+ r2.hoverData.dragged = true;
+ }
+ pos = r2.projectIntoViewport(e3.clientX, e3.clientY);
+ } else if (select[4] == 1 && (down == null || down.pannable())) {
+ if (isOverThresholdDrag) {
+ if (!r2.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {
+ goIntoBoxMode();
+ } else if (!r2.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {
+ var allowPassthrough = allowPanningPassthrough(down, r2.hoverData.downs);
+ if (allowPassthrough) {
+ r2.hoverData.dragging = true;
+ r2.hoverData.justStartedPan = true;
+ select[4] = 0;
+ r2.data.bgActivePosistion = array2point(mdownPos);
+ r2.redrawHint("select", true);
+ r2.redraw();
+ }
+ }
+ if (down && down.pannable() && down.active()) {
+ down.unactivate();
+ }
+ }
+ } else {
+ if (down && down.pannable() && down.active()) {
+ down.unactivate();
+ }
+ if ((!down || !down.grabbed()) && near != last3) {
+ if (last3) {
+ triggerEvents(last3, ["mouseout", "tapdragout"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ }
+ if (near) {
+ triggerEvents(near, ["mouseover", "tapdragover"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ }
+ r2.hoverData.last = near;
+ }
+ if (down) {
+ if (isOverThresholdDrag) {
+ if (cy.boxSelectionEnabled() && multSelKeyDown) {
+ if (down && down.grabbed()) {
+ freeDraggedElements(draggedElements);
+ down.emit("freeon");
+ draggedElements.emit("free");
+ if (r2.dragData.didDrag) {
+ down.emit("dragfreeon");
+ draggedElements.emit("dragfree");
+ }
+ }
+ goIntoBoxMode();
+ } else if (down && down.grabbed() && r2.nodeIsDraggable(down)) {
+ var justStartedDrag = !r2.dragData.didDrag;
+ if (justStartedDrag) {
+ r2.redrawHint("eles", true);
+ }
+ r2.dragData.didDrag = true;
+ if (!r2.hoverData.draggingEles) {
+ addNodesToDrag(draggedElements, {
+ inDragLayer: true
+ });
+ }
+ var totalShift = {
+ x: 0,
+ y: 0
+ };
+ if (number$1(disp[0]) && number$1(disp[1])) {
+ totalShift.x += disp[0];
+ totalShift.y += disp[1];
+ if (justStartedDrag) {
+ var dragDelta = r2.hoverData.dragDelta;
+ if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {
+ totalShift.x += dragDelta[0];
+ totalShift.y += dragDelta[1];
+ }
+ }
+ }
+ r2.hoverData.draggingEles = true;
+ draggedElements.silentShift(totalShift).emit("position drag");
+ r2.redrawHint("drag", true);
+ r2.redraw();
+ }
+ } else {
+ updateDragDelta();
+ }
+ }
+ preventDefault2 = true;
+ }
+ select[2] = pos[0];
+ select[3] = pos[1];
+ if (preventDefault2) {
+ if (e3.stopPropagation) e3.stopPropagation();
+ if (e3.preventDefault) e3.preventDefault();
return false;
}
- var _mapped = types.mapData;
- if (!(type2.color || type2.number)) {
- return false;
+ }, "mousemoveHandler"), false);
+ var clickTimeout, didDoubleClick, prevClickTimeStamp;
+ r2.registerBinding(containerWindow, "mouseup", /* @__PURE__ */ __name(function mouseupHandler(e3) {
+ if (r2.hoverData.which === 1 && e3.which !== 1 && r2.hoverData.capture) {
+ return;
}
- var valueMin = this.parse(name2, mapData[4]);
- if (!valueMin || valueMin.mapped) {
- return false;
+ var capture = r2.hoverData.capture;
+ if (!capture) {
+ return;
}
- var valueMax = this.parse(name2, mapData[5]);
- if (!valueMax || valueMax.mapped) {
- return false;
+ r2.hoverData.capture = false;
+ var cy = r2.cy;
+ var pos = r2.projectIntoViewport(e3.clientX, e3.clientY);
+ var select = r2.selection;
+ var near = r2.findNearestElement(pos[0], pos[1], true, false);
+ var draggedElements = r2.dragData.possibleDragElements;
+ var down = r2.hoverData.down;
+ var multSelKeyDown = isMultSelKeyDown(e3);
+ if (r2.data.bgActivePosistion) {
+ r2.redrawHint("select", true);
+ r2.redraw();
+ }
+ r2.hoverData.tapholdCancelled = true;
+ r2.data.bgActivePosistion = void 0;
+ if (down) {
+ down.unactivate();
}
- if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {
- warn("`" + name2 + ": " + value + "` is not a valid mapper because the output range is zero; converting to `" + name2 + ": " + valueMin.strValue + "`");
- return this.parse(name2, valueMin.strValue);
- } else if (type2.color) {
- var c1 = valueMin.value;
- var c2 = valueMax.value;
- var same = c1[0] === c2[0] && c1[1] === c2[1] && c1[2] === c2[2] && // optional alpha
- (c1[3] === c2[3] || (c1[3] == null || c1[3] === 1) && (c2[3] == null || c2[3] === 1));
- if (same) {
- return false;
+ if (r2.hoverData.which === 3) {
+ var cxtEvt = {
+ originalEvent: e3,
+ type: "cxttapend",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (down) {
+ down.emit(cxtEvt);
+ } else {
+ cy.emit(cxtEvt);
+ }
+ if (!r2.hoverData.cxtDragged) {
+ var cxtTap = {
+ originalEvent: e3,
+ type: "cxttap",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ };
+ if (down) {
+ down.emit(cxtTap);
+ } else {
+ cy.emit(cxtTap);
+ }
+ }
+ r2.hoverData.cxtDragged = false;
+ r2.hoverData.which = null;
+ } else if (r2.hoverData.which === 1) {
+ triggerEvents(near, ["mouseup", "tapend", "vmouseup"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ if (!r2.dragData.didDrag && // didn't move a node around
+ !r2.hoverData.dragged && // didn't pan
+ !r2.hoverData.selecting && // not box selection
+ !r2.hoverData.isOverThresholdDrag) {
+ triggerEvents(down, ["click", "tap", "vclick"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ didDoubleClick = false;
+ if (e3.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {
+ clickTimeout && clearTimeout(clickTimeout);
+ didDoubleClick = true;
+ prevClickTimeStamp = null;
+ triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ } else {
+ clickTimeout = setTimeout(function() {
+ if (didDoubleClick) return;
+ triggerEvents(down, ["oneclick", "onetap", "voneclick"], e3, {
+ x: pos[0],
+ y: pos[1]
+ });
+ }, cy.multiClickDebounceTime());
+ prevClickTimeStamp = e3.timeStamp;
+ }
+ }
+ if (down == null && !r2.dragData.didDrag && !r2.hoverData.selecting && !r2.hoverData.dragged && !isMultSelKeyDown(e3)) {
+ cy.$(isSelected).unselect(["tapunselect"]);
+ if (draggedElements.length > 0) {
+ r2.redrawHint("eles", true);
+ }
+ r2.dragData.possibleDragElements = draggedElements = cy.collection();
+ }
+ if (near == down && !r2.dragData.didDrag && !r2.hoverData.selecting) {
+ if (near != null && near._private.selectable) {
+ if (r2.hoverData.dragging) ;
+ else if (cy.selectionType() === "additive" || multSelKeyDown) {
+ if (near.selected()) {
+ near.unselect(["tapunselect"]);
+ } else {
+ near.select(["tapselect"]);
+ }
+ } else {
+ if (!multSelKeyDown) {
+ cy.$(isSelected).unmerge(near).unselect(["tapunselect"]);
+ near.select(["tapselect"]);
+ }
+ }
+ r2.redrawHint("eles", true);
+ }
+ }
+ if (r2.hoverData.selecting) {
+ var box = cy.collection(r2.getAllInBox(select[0], select[1], select[2], select[3]));
+ r2.redrawHint("select", true);
+ if (box.length > 0) {
+ r2.redrawHint("eles", true);
+ }
+ cy.emit({
+ type: "boxend",
+ originalEvent: e3,
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ var eleWouldBeSelected = /* @__PURE__ */ __name(function eleWouldBeSelected2(ele) {
+ return ele.selectable() && !ele.selected();
+ }, "eleWouldBeSelected");
+ if (cy.selectionType() === "additive") {
+ box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
+ } else {
+ if (!multSelKeyDown) {
+ cy.$(isSelected).unmerge(box).unselect();
+ }
+ box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
+ }
+ r2.redraw();
+ }
+ if (r2.hoverData.dragging) {
+ r2.hoverData.dragging = false;
+ r2.redrawHint("select", true);
+ r2.redrawHint("eles", true);
+ r2.redraw();
+ }
+ if (!select[4]) {
+ r2.redrawHint("drag", true);
+ r2.redrawHint("eles", true);
+ var downWasGrabbed = down && down.grabbed();
+ freeDraggedElements(draggedElements);
+ if (downWasGrabbed) {
+ down.emit("freeon");
+ draggedElements.emit("free");
+ if (r2.dragData.didDrag) {
+ down.emit("dragfreeon");
+ draggedElements.emit("dragfree");
+ }
+ }
}
}
- return {
- name: name2,
- value: mapData,
- strValue: "" + value,
- mapped: _mapped,
- field: mapData[1],
- fieldMin: parseFloat(mapData[2]),
- // min & max are numeric
- fieldMax: parseFloat(mapData[3]),
- valueMin: valueMin.value,
- valueMax: valueMax.value,
- bypass: propIsBypass
- };
- }
- if (type2.multiple && propIsFlat !== "multiple") {
- var vals;
- if (valueIsString) {
- vals = value.split(/\s+/);
- } else if (array2(value)) {
- vals = value;
- } else {
- vals = [value];
- }
- if (type2.evenMultiple && vals.length % 2 !== 0) {
- return null;
+ select[4] = 0;
+ r2.hoverData.down = null;
+ r2.hoverData.cxtStarted = false;
+ r2.hoverData.draggingEles = false;
+ r2.hoverData.selecting = false;
+ r2.hoverData.isOverThresholdDrag = false;
+ r2.dragData.didDrag = false;
+ r2.hoverData.dragged = false;
+ r2.hoverData.dragDelta = [];
+ r2.hoverData.mdownPos = null;
+ r2.hoverData.mdownGPos = null;
+ }, "mouseupHandler"), false);
+ var wheelHandler = /* @__PURE__ */ __name(function wheelHandler2(e3) {
+ if (r2.scrollingPage) {
+ return;
}
- var valArr = [];
- var unitsArr = [];
- var pfValArr = [];
- var strVal = "";
- var hasEnum = false;
- for (var i3 = 0; i3 < vals.length; i3++) {
- var p2 = self2.parse(name2, vals[i3], propIsBypass, "multiple");
- hasEnum = hasEnum || string(p2.value);
- valArr.push(p2.value);
- pfValArr.push(p2.pfValue != null ? p2.pfValue : p2.value);
- unitsArr.push(p2.units);
- strVal += (i3 > 0 ? " " : "") + p2.strValue;
- }
- if (type2.validate && !type2.validate(valArr, unitsArr)) {
- return null;
+ var cy = r2.cy;
+ var zoom2 = cy.zoom();
+ var pan2 = cy.pan();
+ var pos = r2.projectIntoViewport(e3.clientX, e3.clientY);
+ var rpos = [pos[0] * zoom2 + pan2.x, pos[1] * zoom2 + pan2.y];
+ if (r2.hoverData.draggingEles || r2.hoverData.dragging || r2.hoverData.cxtStarted || inBoxSelection()) {
+ e3.preventDefault();
+ return;
}
- if (type2.singleEnum && hasEnum) {
- if (valArr.length === 1 && string(valArr[0])) {
- return {
- name: name2,
- value: valArr[0],
- strValue: valArr[0],
- bypass: propIsBypass
- };
+ if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {
+ e3.preventDefault();
+ r2.data.wheelZooming = true;
+ clearTimeout(r2.data.wheelTimeout);
+ r2.data.wheelTimeout = setTimeout(function() {
+ r2.data.wheelZooming = false;
+ r2.redrawHint("eles", true);
+ r2.redraw();
+ }, 150);
+ var diff2;
+ if (e3.deltaY != null) {
+ diff2 = e3.deltaY / -250;
+ } else if (e3.wheelDeltaY != null) {
+ diff2 = e3.wheelDeltaY / 1e3;
} else {
- return null;
+ diff2 = e3.wheelDelta / 1e3;
}
- }
- return {
- name: name2,
- value: valArr,
- pfValue: pfValArr,
- strValue: strVal,
- bypass: propIsBypass,
- units: unitsArr
- };
- }
- var checkEnums = function checkEnums2() {
- for (var _i = 0; _i < type2.enums.length; _i++) {
- var en2 = type2.enums[_i];
- if (en2 === value) {
- return {
- name: name2,
- value,
- strValue: "" + value,
- bypass: propIsBypass
- };
+ diff2 = diff2 * r2.wheelSensitivity;
+ var needsWheelFix = e3.deltaMode === 1;
+ if (needsWheelFix) {
+ diff2 *= 33;
}
+ var newZoom = cy.zoom() * Math.pow(10, diff2);
+ if (e3.type === "gesturechange") {
+ newZoom = r2.gestureStartZoom * e3.scale;
+ }
+ cy.zoom({
+ level: newZoom,
+ renderedPosition: {
+ x: rpos[0],
+ y: rpos[1]
+ }
+ });
+ cy.emit(e3.type === "gesturechange" ? "pinchzoom" : "scrollzoom");
+ }
+ }, "wheelHandler");
+ r2.registerBinding(r2.container, "wheel", wheelHandler, true);
+ r2.registerBinding(containerWindow, "scroll", /* @__PURE__ */ __name(function scrollHandler(e3) {
+ r2.scrollingPage = true;
+ clearTimeout(r2.scrollingPageTimeout);
+ r2.scrollingPageTimeout = setTimeout(function() {
+ r2.scrollingPage = false;
+ }, 250);
+ }, "scrollHandler"), true);
+ r2.registerBinding(r2.container, "gesturestart", /* @__PURE__ */ __name(function gestureStartHandler(e3) {
+ r2.gestureStartZoom = r2.cy.zoom();
+ if (!r2.hasTouchStarted) {
+ e3.preventDefault();
}
- return null;
- };
- if (type2.number) {
- var units;
- var implicitUnits = "px";
- if (type2.units) {
- units = type2.units;
+ }, "gestureStartHandler"), true);
+ r2.registerBinding(r2.container, "gesturechange", function(e3) {
+ if (!r2.hasTouchStarted) {
+ wheelHandler(e3);
}
- if (type2.implicitUnits) {
- implicitUnits = type2.implicitUnits;
+ }, true);
+ r2.registerBinding(r2.container, "mouseout", /* @__PURE__ */ __name(function mouseOutHandler(e3) {
+ var pos = r2.projectIntoViewport(e3.clientX, e3.clientY);
+ r2.cy.emit({
+ originalEvent: e3,
+ type: "mouseout",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }, "mouseOutHandler"), false);
+ r2.registerBinding(r2.container, "mouseover", /* @__PURE__ */ __name(function mouseOverHandler(e3) {
+ var pos = r2.projectIntoViewport(e3.clientX, e3.clientY);
+ r2.cy.emit({
+ originalEvent: e3,
+ type: "mouseover",
+ position: {
+ x: pos[0],
+ y: pos[1]
+ }
+ });
+ }, "mouseOverHandler"), false);
+ var f1x1, f1y1, f2x1, f2y1;
+ var distance1, distance1Sq;
+ var center1, modelCenter1;
+ var offsetLeft, offsetTop;
+ var containerWidth, containerHeight;
+ var twoFingersStartInside;
+ var distance2 = /* @__PURE__ */ __name(function distance3(x1, y1, x22, y22) {
+ return Math.sqrt((x22 - x1) * (x22 - x1) + (y22 - y1) * (y22 - y1));
+ }, "distance");
+ var distanceSq = /* @__PURE__ */ __name(function distanceSq2(x1, y1, x22, y22) {
+ return (x22 - x1) * (x22 - x1) + (y22 - y1) * (y22 - y1);
+ }, "distanceSq");
+ var touchstartHandler;
+ r2.registerBinding(r2.container, "touchstart", touchstartHandler = /* @__PURE__ */ __name(function touchstartHandler2(e3) {
+ r2.hasTouchStarted = true;
+ if (!eventInContainer(e3)) {
+ return;
}
- if (!type2.unitless) {
- if (valueIsString) {
- var unitsRegex = "px|em" + (type2.allowPercent ? "|\\%" : "");
- if (units) {
- unitsRegex = units;
+ blurActiveDomElement();
+ r2.touchData.capture = true;
+ r2.data.bgActivePosistion = void 0;
+ var cy = r2.cy;
+ var now4 = r2.touchData.now;
+ var earlier = r2.touchData.earlier;
+ if (e3.touches[0]) {
+ var pos = r2.projectIntoViewport(e3.touches[0].clientX, e3.touches[0].clientY);
+ now4[0] = pos[0];
+ now4[1] = pos[1];
+ }
+ if (e3.touches[1]) {
+ var pos = r2.projectIntoViewport(e3.touches[1].clientX, e3.touches[1].clientY);
+ now4[2] = pos[0];
+ now4[3] = pos[1];
+ }
+ if (e3.touches[2]) {
+ var pos = r2.projectIntoViewport(e3.touches[2].clientX, e3.touches[2].clientY);
+ now4[4] = pos[0];
+ now4[5] = pos[1];
+ }
+ if (e3.touches[1]) {
+ r2.touchData.singleTouchMoved = true;
+ freeDraggedElements(r2.dragData.touchDragEles);
+ var offsets = r2.findContainerClientCoords();
+ offsetLeft = offsets[0];
+ offsetTop = offsets[1];
+ containerWidth = offsets[2];
+ containerHeight = offsets[3];
+ f1x1 = e3.touches[0].clientX - offsetLeft;
+ f1y1 = e3.touches[0].clientY - offsetTop;
+ f2x1 = e3.touches[1].clientX - offsetLeft;
+ f2y1 = e3.touches[1].clientY - offsetTop;
+ twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;
+ var pan2 = cy.pan();
+ var zoom2 = cy.zoom();
+ distance1 = distance2(f1x1, f1y1, f2x1, f2y1);
+ distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);
+ center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];
+ modelCenter1 = [(center1[0] - pan2.x) / zoom2, (center1[1] - pan2.y) / zoom2];
+ var cxtDistThreshold = 200;
+ var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;
+ if (distance1Sq < cxtDistThresholdSq && !e3.touches[2]) {
+ var near1 = r2.findNearestElement(now4[0], now4[1], true, true);
+ var near2 = r2.findNearestElement(now4[2], now4[3], true, true);
+ if (near1 && near1.isNode()) {
+ near1.activate().emit({
+ originalEvent: e3,
+ type: "cxttapstart",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ r2.touchData.start = near1;
+ } else if (near2 && near2.isNode()) {
+ near2.activate().emit({
+ originalEvent: e3,
+ type: "cxttapstart",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ r2.touchData.start = near2;
+ } else {
+ cy.emit({
+ originalEvent: e3,
+ type: "cxttapstart",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
}
- var match5 = value.match("^(" + number2 + ")(" + unitsRegex + ")?$");
- if (match5) {
- value = match5[1];
- units = match5[2] || implicitUnits;
+ if (r2.touchData.start) {
+ r2.touchData.start._private.grabbed = false;
}
- } else if (!units || type2.implicitUnits) {
- units = implicitUnits;
+ r2.touchData.cxt = true;
+ r2.touchData.cxtDragged = false;
+ r2.data.bgActivePosistion = void 0;
+ r2.redraw();
+ return;
}
}
- value = parseFloat(value);
- if (isNaN(value) && type2.enums === void 0) {
- return null;
- }
- if (isNaN(value) && type2.enums !== void 0) {
- value = passedValue;
- return checkEnums();
- }
- if (type2.integer && !integer(value)) {
- return null;
- }
- if (type2.min !== void 0 && (value < type2.min || type2.strictMin && value === type2.min) || type2.max !== void 0 && (value > type2.max || type2.strictMax && value === type2.max)) {
- return null;
- }
- var ret = {
- name: name2,
- value,
- strValue: "" + value + (units ? units : ""),
- units,
- bypass: propIsBypass
- };
- if (type2.unitless || units !== "px" && units !== "em") {
- ret.pfValue = value;
- } else {
- ret.pfValue = units === "px" || !units ? value : this.getEmSizeInPixels() * value;
+ if (e3.touches[2]) {
+ if (cy.boxSelectionEnabled()) {
+ e3.preventDefault();
+ }
+ } else if (e3.touches[1]) ;
+ else if (e3.touches[0]) {
+ var nears = r2.findNearestElements(now4[0], now4[1], true, true);
+ var near = nears[0];
+ if (near != null) {
+ near.activate();
+ r2.touchData.start = near;
+ r2.touchData.starts = nears;
+ if (r2.nodeIsGrabbable(near)) {
+ var draggedEles = r2.dragData.touchDragEles = cy.collection();
+ var selectedNodes = null;
+ r2.redrawHint("eles", true);
+ r2.redrawHint("drag", true);
+ if (near.selected()) {
+ selectedNodes = cy.$(function(ele) {
+ return ele.selected() && r2.nodeIsGrabbable(ele);
+ });
+ addNodesToDrag(selectedNodes, {
+ addToList: draggedEles
+ });
+ } else {
+ addNodeToDrag(near, {
+ addToList: draggedEles
+ });
+ }
+ setGrabTarget(near);
+ var makeEvent = /* @__PURE__ */ __name(function makeEvent2(type3) {
+ return {
+ originalEvent: e3,
+ type: type3,
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ };
+ }, "makeEvent");
+ near.emit(makeEvent("grabon"));
+ if (selectedNodes) {
+ selectedNodes.forEach(function(n2) {
+ n2.emit(makeEvent("grab"));
+ });
+ } else {
+ near.emit(makeEvent("grab"));
+ }
+ }
+ }
+ triggerEvents(near, ["touchstart", "tapstart", "vmousedown"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ if (near == null) {
+ r2.data.bgActivePosistion = {
+ x: pos[0],
+ y: pos[1]
+ };
+ r2.redrawHint("select", true);
+ r2.redraw();
+ }
+ r2.touchData.singleTouchMoved = false;
+ r2.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date();
+ clearTimeout(r2.touchData.tapholdTimeout);
+ r2.touchData.tapholdTimeout = setTimeout(function() {
+ if (r2.touchData.singleTouchMoved === false && !r2.pinching && !r2.touchData.selecting) {
+ triggerEvents(r2.touchData.start, ["taphold"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ }
+ }, r2.tapholdDuration);
}
- if (units === "ms" || units === "s") {
- ret.pfValue = units === "ms" ? value : 1e3 * value;
+ if (e3.touches.length >= 1) {
+ var sPos = r2.touchData.startPosition = [null, null, null, null, null, null];
+ for (var i2 = 0; i2 < now4.length; i2++) {
+ sPos[i2] = earlier[i2] = now4[i2];
+ }
+ var touch0 = e3.touches[0];
+ r2.touchData.startGPosition = [touch0.clientX, touch0.clientY];
}
- if (units === "deg" || units === "rad") {
- ret.pfValue = units === "rad" ? value : deg2rad(value);
+ }, "touchstartHandler"), false);
+ var touchmoveHandler;
+ r2.registerBinding(containerWindow, "touchmove", touchmoveHandler = /* @__PURE__ */ __name(function touchmoveHandler2(e3) {
+ var capture = r2.touchData.capture;
+ if (!capture && !eventInContainer(e3)) {
+ return;
}
- if (units === "%") {
- ret.pfValue = value / 100;
+ var select = r2.selection;
+ var cy = r2.cy;
+ var now4 = r2.touchData.now;
+ var earlier = r2.touchData.earlier;
+ var zoom2 = cy.zoom();
+ if (e3.touches[0]) {
+ var pos = r2.projectIntoViewport(e3.touches[0].clientX, e3.touches[0].clientY);
+ now4[0] = pos[0];
+ now4[1] = pos[1];
+ }
+ if (e3.touches[1]) {
+ var pos = r2.projectIntoViewport(e3.touches[1].clientX, e3.touches[1].clientY);
+ now4[2] = pos[0];
+ now4[3] = pos[1];
+ }
+ if (e3.touches[2]) {
+ var pos = r2.projectIntoViewport(e3.touches[2].clientX, e3.touches[2].clientY);
+ now4[4] = pos[0];
+ now4[5] = pos[1];
+ }
+ var startGPos = r2.touchData.startGPosition;
+ var isOverThresholdDrag;
+ if (capture && e3.touches[0] && startGPos) {
+ var disp = [];
+ for (var j2 = 0; j2 < now4.length; j2++) {
+ disp[j2] = now4[j2] - earlier[j2];
+ }
+ var dx = e3.touches[0].clientX - startGPos[0];
+ var dx2 = dx * dx;
+ var dy = e3.touches[0].clientY - startGPos[1];
+ var dy2 = dy * dy;
+ var dist22 = dx2 + dy2;
+ isOverThresholdDrag = dist22 >= r2.touchTapThreshold2;
}
- return ret;
- } else if (type2.propList) {
- var props = [];
- var propsStr = "" + value;
- if (propsStr === "none")
- ;
- else {
- var propsSplit = propsStr.split(/\s*,\s*|\s+/);
- for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {
- var propName = propsSplit[_i2].trim();
- if (self2.properties[propName]) {
- props.push(propName);
+ if (capture && r2.touchData.cxt) {
+ e3.preventDefault();
+ var f1x2 = e3.touches[0].clientX - offsetLeft, f1y2 = e3.touches[0].clientY - offsetTop;
+ var f2x2 = e3.touches[1].clientX - offsetLeft, f2y2 = e3.touches[1].clientY - offsetTop;
+ var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);
+ var factorSq = distance2Sq / distance1Sq;
+ var distThreshold = 150;
+ var distThresholdSq = distThreshold * distThreshold;
+ var factorThreshold = 1.5;
+ var factorThresholdSq = factorThreshold * factorThreshold;
+ if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {
+ r2.touchData.cxt = false;
+ r2.data.bgActivePosistion = void 0;
+ r2.redrawHint("select", true);
+ var cxtEvt = {
+ originalEvent: e3,
+ type: "cxttapend",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ };
+ if (r2.touchData.start) {
+ r2.touchData.start.unactivate().emit(cxtEvt);
+ r2.touchData.start = null;
} else {
- warn("`" + propName + "` is not a valid property name");
+ cy.emit(cxtEvt);
}
}
- if (props.length === 0) {
- return null;
- }
- }
- return {
- name: name2,
- value: props,
- strValue: props.length === 0 ? "none" : props.join(" "),
- bypass: propIsBypass
- };
- } else if (type2.color) {
- var tuple = color2tuple(value);
- if (!tuple) {
- return null;
}
- return {
- name: name2,
- value: tuple,
- pfValue: tuple,
- strValue: "rgb(" + tuple[0] + "," + tuple[1] + "," + tuple[2] + ")",
- // n.b. no spaces b/c of multiple support
- bypass: propIsBypass
- };
- } else if (type2.regex || type2.regexes) {
- if (type2.enums) {
- var enumProp = checkEnums();
- if (enumProp) {
- return enumProp;
+ if (capture && r2.touchData.cxt) {
+ var cxtEvt = {
+ originalEvent: e3,
+ type: "cxtdrag",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ };
+ r2.data.bgActivePosistion = void 0;
+ r2.redrawHint("select", true);
+ if (r2.touchData.start) {
+ r2.touchData.start.emit(cxtEvt);
+ } else {
+ cy.emit(cxtEvt);
}
- }
- var regexes = type2.regexes ? type2.regexes : [type2.regex];
- for (var _i3 = 0; _i3 < regexes.length; _i3++) {
- var regex = new RegExp(regexes[_i3]);
- var m = regex.exec(value);
- if (m) {
- return {
- name: name2,
- value: type2.singleRegexMatchValue ? m[1] : m,
- strValue: "" + value,
- bypass: propIsBypass
+ if (r2.touchData.start) {
+ r2.touchData.start._private.grabbed = false;
+ }
+ r2.touchData.cxtDragged = true;
+ var near = r2.findNearestElement(now4[0], now4[1], true, true);
+ if (!r2.touchData.cxtOver || near !== r2.touchData.cxtOver) {
+ if (r2.touchData.cxtOver) {
+ r2.touchData.cxtOver.emit({
+ originalEvent: e3,
+ type: "cxtdragout",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ }
+ r2.touchData.cxtOver = near;
+ if (near) {
+ near.emit({
+ originalEvent: e3,
+ type: "cxtdragover",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ }
+ }
+ } else if (capture && e3.touches[2] && cy.boxSelectionEnabled()) {
+ e3.preventDefault();
+ r2.data.bgActivePosistion = void 0;
+ this.lastThreeTouch = +/* @__PURE__ */ new Date();
+ if (!r2.touchData.selecting) {
+ cy.emit({
+ originalEvent: e3,
+ type: "boxstart",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ }
+ r2.touchData.selecting = true;
+ r2.touchData.didSelect = true;
+ select[4] = 1;
+ if (!select || select.length === 0 || select[0] === void 0) {
+ select[0] = (now4[0] + now4[2] + now4[4]) / 3;
+ select[1] = (now4[1] + now4[3] + now4[5]) / 3;
+ select[2] = (now4[0] + now4[2] + now4[4]) / 3 + 1;
+ select[3] = (now4[1] + now4[3] + now4[5]) / 3 + 1;
+ } else {
+ select[2] = (now4[0] + now4[2] + now4[4]) / 3;
+ select[3] = (now4[1] + now4[3] + now4[5]) / 3;
+ }
+ r2.redrawHint("select", true);
+ r2.redraw();
+ } else if (capture && e3.touches[1] && !r2.touchData.didSelect && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {
+ e3.preventDefault();
+ r2.data.bgActivePosistion = void 0;
+ r2.redrawHint("select", true);
+ var draggedEles = r2.dragData.touchDragEles;
+ if (draggedEles) {
+ r2.redrawHint("drag", true);
+ for (var i2 = 0; i2 < draggedEles.length; i2++) {
+ var de_p = draggedEles[i2]._private;
+ de_p.grabbed = false;
+ de_p.rscratch.inDragLayer = false;
+ }
+ }
+ var _start = r2.touchData.start;
+ var f1x2 = e3.touches[0].clientX - offsetLeft, f1y2 = e3.touches[0].clientY - offsetTop;
+ var f2x2 = e3.touches[1].clientX - offsetLeft, f2y2 = e3.touches[1].clientY - offsetTop;
+ var distance22 = distance2(f1x2, f1y2, f2x2, f2y2);
+ var factor = distance22 / distance1;
+ if (twoFingersStartInside) {
+ var df1x = f1x2 - f1x1;
+ var df1y = f1y2 - f1y1;
+ var df2x = f2x2 - f2x1;
+ var df2y = f2y2 - f2y1;
+ var tx = (df1x + df2x) / 2;
+ var ty = (df1y + df2y) / 2;
+ var zoom1 = cy.zoom();
+ var zoom22 = zoom1 * factor;
+ var pan1 = cy.pan();
+ var ctrx = modelCenter1[0] * zoom1 + pan1.x;
+ var ctry = modelCenter1[1] * zoom1 + pan1.y;
+ var pan2 = {
+ x: -zoom22 / zoom1 * (ctrx - pan1.x - tx) + ctrx,
+ y: -zoom22 / zoom1 * (ctry - pan1.y - ty) + ctry
};
+ if (_start && _start.active()) {
+ var draggedEles = r2.dragData.touchDragEles;
+ freeDraggedElements(draggedEles);
+ r2.redrawHint("drag", true);
+ r2.redrawHint("eles", true);
+ _start.unactivate().emit("freeon");
+ draggedEles.emit("free");
+ if (r2.dragData.didDrag) {
+ _start.emit("dragfreeon");
+ draggedEles.emit("dragfree");
+ }
+ }
+ cy.viewport({
+ zoom: zoom22,
+ pan: pan2,
+ cancelOnFailedZoom: true
+ });
+ cy.emit("pinchzoom");
+ distance1 = distance22;
+ f1x1 = f1x2;
+ f1y1 = f1y2;
+ f2x1 = f2x2;
+ f2y1 = f2y2;
+ r2.pinching = true;
+ }
+ if (e3.touches[0]) {
+ var pos = r2.projectIntoViewport(e3.touches[0].clientX, e3.touches[0].clientY);
+ now4[0] = pos[0];
+ now4[1] = pos[1];
+ }
+ if (e3.touches[1]) {
+ var pos = r2.projectIntoViewport(e3.touches[1].clientX, e3.touches[1].clientY);
+ now4[2] = pos[0];
+ now4[3] = pos[1];
+ }
+ if (e3.touches[2]) {
+ var pos = r2.projectIntoViewport(e3.touches[2].clientX, e3.touches[2].clientY);
+ now4[4] = pos[0];
+ now4[5] = pos[1];
+ }
+ } else if (e3.touches[0] && !r2.touchData.didSelect) {
+ var start3 = r2.touchData.start;
+ var last3 = r2.touchData.last;
+ var near;
+ if (!r2.hoverData.draggingEles && !r2.swipePanning) {
+ near = r2.findNearestElement(now4[0], now4[1], true, true);
}
- }
- return null;
- } else if (type2.string) {
- return {
- name: name2,
- value: "" + value,
- strValue: "" + value,
- bypass: propIsBypass
- };
- } else if (type2.enums) {
- return checkEnums();
- } else {
- return null;
- }
- };
- var Style = function Style2(cy) {
- if (!(this instanceof Style2)) {
- return new Style2(cy);
- }
- if (!core2(cy)) {
- error("A style must have a core reference");
- return;
- }
- this._private = {
- cy,
- coreStyle: {}
- };
- this.length = 0;
- this.resetToDefault();
- };
- var styfn = Style.prototype;
- styfn.instanceString = function() {
- return "style";
- };
- styfn.clear = function() {
- var _p = this._private;
- var cy = _p.cy;
- var eles = cy.elements();
- for (var i3 = 0; i3 < this.length; i3++) {
- this[i3] = void 0;
- }
- this.length = 0;
- _p.contextStyles = {};
- _p.propDiffs = {};
- this.cleanElements(eles, true);
- eles.forEach(function(ele) {
- var ele_p = ele[0]._private;
- ele_p.styleDirty = true;
- ele_p.appliedInitStyle = false;
- });
- return this;
- };
- styfn.resetToDefault = function() {
- this.clear();
- this.addDefaultStylesheet();
- return this;
- };
- styfn.core = function(propName) {
- return this._private.coreStyle[propName] || this.getDefaultProperty(propName);
- };
- styfn.selector = function(selectorStr) {
- var selector2 = selectorStr === "core" ? null : new Selector(selectorStr);
- var i3 = this.length++;
- this[i3] = {
- selector: selector2,
- properties: [],
- mappedProperties: [],
- index: i3
- };
- return this;
- };
- styfn.css = function() {
- var self2 = this;
- var args = arguments;
- if (args.length === 1) {
- var map2 = args[0];
- for (var i3 = 0; i3 < self2.properties.length; i3++) {
- var prop = self2.properties[i3];
- var mapVal = map2[prop.name];
- if (mapVal === void 0) {
- mapVal = map2[dash2camel(prop.name)];
+ if (capture && start3 != null) {
+ e3.preventDefault();
+ }
+ if (capture && start3 != null && r2.nodeIsDraggable(start3)) {
+ if (isOverThresholdDrag) {
+ var draggedEles = r2.dragData.touchDragEles;
+ var justStartedDrag = !r2.dragData.didDrag;
+ if (justStartedDrag) {
+ addNodesToDrag(draggedEles, {
+ inDragLayer: true
+ });
+ }
+ r2.dragData.didDrag = true;
+ var totalShift = {
+ x: 0,
+ y: 0
+ };
+ if (number$1(disp[0]) && number$1(disp[1])) {
+ totalShift.x += disp[0];
+ totalShift.y += disp[1];
+ if (justStartedDrag) {
+ r2.redrawHint("eles", true);
+ var dragDelta = r2.touchData.dragDelta;
+ if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {
+ totalShift.x += dragDelta[0];
+ totalShift.y += dragDelta[1];
+ }
+ }
+ }
+ r2.hoverData.draggingEles = true;
+ draggedEles.silentShift(totalShift).emit("position drag");
+ r2.redrawHint("drag", true);
+ if (r2.touchData.startPosition[0] == earlier[0] && r2.touchData.startPosition[1] == earlier[1]) {
+ r2.redrawHint("eles", true);
+ }
+ r2.redraw();
+ } else {
+ var dragDelta = r2.touchData.dragDelta = r2.touchData.dragDelta || [];
+ if (dragDelta.length === 0) {
+ dragDelta.push(disp[0]);
+ dragDelta.push(disp[1]);
+ } else {
+ dragDelta[0] += disp[0];
+ dragDelta[1] += disp[1];
+ }
+ }
+ }
+ {
+ triggerEvents(start3 || near, ["touchmove", "tapdrag", "vmousemove"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ if ((!start3 || !start3.grabbed()) && near != last3) {
+ if (last3) {
+ last3.emit({
+ originalEvent: e3,
+ type: "tapdragout",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ }
+ if (near) {
+ near.emit({
+ originalEvent: e3,
+ type: "tapdragover",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ }
+ }
+ r2.touchData.last = near;
}
- if (mapVal !== void 0) {
- this.cssRule(prop.name, mapVal);
+ if (capture) {
+ for (var i2 = 0; i2 < now4.length; i2++) {
+ if (now4[i2] && r2.touchData.startPosition[i2] && isOverThresholdDrag) {
+ r2.touchData.singleTouchMoved = true;
+ }
+ }
}
- }
- } else if (args.length === 2) {
- this.cssRule(args[0], args[1]);
- }
- return this;
- };
- styfn.style = styfn.css;
- styfn.cssRule = function(name2, value) {
- var property2 = this.parse(name2, value);
- if (property2) {
- var i3 = this.length - 1;
- this[i3].properties.push(property2);
- this[i3].properties[property2.name] = property2;
- if (property2.name.match(/pie-(\d+)-background-size/) && property2.value) {
- this._private.hasPie = true;
- }
- if (property2.mapped) {
- this[i3].mappedProperties.push(property2);
- }
- var currentSelectorIsCore = !this[i3].selector;
- if (currentSelectorIsCore) {
- this._private.coreStyle[property2.name] = property2;
- }
- }
- return this;
- };
- styfn.append = function(style) {
- if (stylesheet(style)) {
- style.appendToStyle(this);
- } else if (array2(style)) {
- this.appendFromJson(style);
- } else if (string(style)) {
- this.appendFromString(style);
- }
- return this;
- };
- Style.fromJson = function(cy, json2) {
- var style = new Style(cy);
- style.fromJson(json2);
- return style;
- };
- Style.fromString = function(cy, string2) {
- return new Style(cy).fromString(string2);
- };
- [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function(props) {
- extend2(styfn, props);
- });
- Style.types = styfn.types;
- Style.properties = styfn.properties;
- Style.propertyGroups = styfn.propertyGroups;
- Style.propertyGroupNames = styfn.propertyGroupNames;
- Style.propertyGroupKeys = styfn.propertyGroupKeys;
- var corefn$2 = {
- style: function style(newStyle) {
- if (newStyle) {
- var s = this.setStyle(newStyle);
- s.update();
- }
- return this._private.style;
- },
- setStyle: function setStyle2(style) {
- var _p = this._private;
- if (stylesheet(style)) {
- _p.style = style.generateStyle(this);
- } else if (array2(style)) {
- _p.style = Style.fromJson(this, style);
- } else if (string(style)) {
- _p.style = Style.fromString(this, style);
- } else {
- _p.style = Style(this);
- }
- return _p.style;
- },
- // e.g. cy.data() changed => recalc ele mappers
- updateStyle: function updateStyle() {
- this.mutableElements().updateStyle();
- }
- };
- var defaultSelectionType = "single";
- var corefn$1 = {
- autolock: function autolock(bool2) {
- if (bool2 !== void 0) {
- this._private.autolock = bool2 ? true : false;
- } else {
- return this._private.autolock;
- }
- return this;
- },
- autoungrabify: function autoungrabify(bool2) {
- if (bool2 !== void 0) {
- this._private.autoungrabify = bool2 ? true : false;
- } else {
- return this._private.autoungrabify;
- }
- return this;
- },
- autounselectify: function autounselectify(bool2) {
- if (bool2 !== void 0) {
- this._private.autounselectify = bool2 ? true : false;
- } else {
- return this._private.autounselectify;
- }
- return this;
- },
- selectionType: function selectionType(selType) {
- var _p = this._private;
- if (_p.selectionType == null) {
- _p.selectionType = defaultSelectionType;
- }
- if (selType !== void 0) {
- if (selType === "additive" || selType === "single") {
- _p.selectionType = selType;
+ if (capture && (start3 == null || start3.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {
+ var allowPassthrough = allowPanningPassthrough(start3, r2.touchData.starts);
+ if (allowPassthrough) {
+ e3.preventDefault();
+ if (!r2.data.bgActivePosistion) {
+ r2.data.bgActivePosistion = array2point(r2.touchData.startPosition);
+ }
+ if (r2.swipePanning) {
+ cy.panBy({
+ x: disp[0] * zoom2,
+ y: disp[1] * zoom2
+ });
+ cy.emit("dragpan");
+ } else if (isOverThresholdDrag) {
+ r2.swipePanning = true;
+ cy.panBy({
+ x: dx * zoom2,
+ y: dy * zoom2
+ });
+ cy.emit("dragpan");
+ if (start3) {
+ start3.unactivate();
+ r2.redrawHint("select", true);
+ r2.touchData.start = null;
+ }
+ }
+ }
+ var pos = r2.projectIntoViewport(e3.touches[0].clientX, e3.touches[0].clientY);
+ now4[0] = pos[0];
+ now4[1] = pos[1];
}
- } else {
- return _p.selectionType;
}
- return this;
- },
- panningEnabled: function panningEnabled(bool2) {
- if (bool2 !== void 0) {
- this._private.panningEnabled = bool2 ? true : false;
- } else {
- return this._private.panningEnabled;
+ for (var j2 = 0; j2 < now4.length; j2++) {
+ earlier[j2] = now4[j2];
}
- return this;
- },
- userPanningEnabled: function userPanningEnabled(bool2) {
- if (bool2 !== void 0) {
- this._private.userPanningEnabled = bool2 ? true : false;
- } else {
- return this._private.userPanningEnabled;
+ if (capture && e3.touches.length > 0 && !r2.hoverData.draggingEles && !r2.swipePanning && r2.data.bgActivePosistion != null) {
+ r2.data.bgActivePosistion = void 0;
+ r2.redrawHint("select", true);
+ r2.redraw();
}
- return this;
- },
- zoomingEnabled: function zoomingEnabled(bool2) {
- if (bool2 !== void 0) {
- this._private.zoomingEnabled = bool2 ? true : false;
- } else {
- return this._private.zoomingEnabled;
+ }, "touchmoveHandler"), false);
+ var touchcancelHandler;
+ r2.registerBinding(containerWindow, "touchcancel", touchcancelHandler = /* @__PURE__ */ __name(function touchcancelHandler2(e3) {
+ var start3 = r2.touchData.start;
+ r2.touchData.capture = false;
+ if (start3) {
+ start3.unactivate();
}
- return this;
- },
- userZoomingEnabled: function userZoomingEnabled(bool2) {
- if (bool2 !== void 0) {
- this._private.userZoomingEnabled = bool2 ? true : false;
+ }, "touchcancelHandler"));
+ var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;
+ r2.registerBinding(containerWindow, "touchend", touchendHandler = /* @__PURE__ */ __name(function touchendHandler2(e3) {
+ var start3 = r2.touchData.start;
+ var capture = r2.touchData.capture;
+ if (capture) {
+ if (e3.touches.length === 0) {
+ r2.touchData.capture = false;
+ }
+ e3.preventDefault();
} else {
- return this._private.userZoomingEnabled;
+ return;
}
- return this;
- },
- boxSelectionEnabled: function boxSelectionEnabled(bool2) {
- if (bool2 !== void 0) {
- this._private.boxSelectionEnabled = bool2 ? true : false;
- } else {
- return this._private.boxSelectionEnabled;
+ var select = r2.selection;
+ r2.swipePanning = false;
+ r2.hoverData.draggingEles = false;
+ var cy = r2.cy;
+ var zoom2 = cy.zoom();
+ var now4 = r2.touchData.now;
+ var earlier = r2.touchData.earlier;
+ if (e3.touches[0]) {
+ var pos = r2.projectIntoViewport(e3.touches[0].clientX, e3.touches[0].clientY);
+ now4[0] = pos[0];
+ now4[1] = pos[1];
+ }
+ if (e3.touches[1]) {
+ var pos = r2.projectIntoViewport(e3.touches[1].clientX, e3.touches[1].clientY);
+ now4[2] = pos[0];
+ now4[3] = pos[1];
+ }
+ if (e3.touches[2]) {
+ var pos = r2.projectIntoViewport(e3.touches[2].clientX, e3.touches[2].clientY);
+ now4[4] = pos[0];
+ now4[5] = pos[1];
+ }
+ if (start3) {
+ start3.unactivate();
}
- return this;
- },
- pan: function pan() {
- var args = arguments;
- var pan2 = this._private.pan;
- var dim, val, dims, x2, y2;
- switch (args.length) {
- case 0:
- return pan2;
- case 1:
- if (string(args[0])) {
- dim = args[0];
- return pan2[dim];
- } else if (plainObject(args[0])) {
- if (!this._private.panningEnabled) {
- return this;
- }
- dims = args[0];
- x2 = dims.x;
- y2 = dims.y;
- if (number$12(x2)) {
- pan2.x = x2;
+ var ctxTapend;
+ if (r2.touchData.cxt) {
+ ctxTapend = {
+ originalEvent: e3,
+ type: "cxttapend",
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ };
+ if (start3) {
+ start3.emit(ctxTapend);
+ } else {
+ cy.emit(ctxTapend);
+ }
+ if (!r2.touchData.cxtDragged) {
+ var ctxTap = {
+ originalEvent: e3,
+ type: "cxttap",
+ position: {
+ x: now4[0],
+ y: now4[1]
}
- if (number$12(y2)) {
- pan2.y = y2;
+ };
+ if (start3) {
+ start3.emit(ctxTap);
+ } else {
+ cy.emit(ctxTap);
+ }
+ }
+ if (r2.touchData.start) {
+ r2.touchData.start._private.grabbed = false;
+ }
+ r2.touchData.cxt = false;
+ r2.touchData.start = null;
+ r2.redraw();
+ return;
+ }
+ if (!e3.touches[2] && cy.boxSelectionEnabled() && r2.touchData.selecting) {
+ r2.touchData.selecting = false;
+ var box = cy.collection(r2.getAllInBox(select[0], select[1], select[2], select[3]));
+ select[0] = void 0;
+ select[1] = void 0;
+ select[2] = void 0;
+ select[3] = void 0;
+ select[4] = 0;
+ r2.redrawHint("select", true);
+ cy.emit({
+ type: "boxend",
+ originalEvent: e3,
+ position: {
+ x: now4[0],
+ y: now4[1]
+ }
+ });
+ var eleWouldBeSelected = /* @__PURE__ */ __name(function eleWouldBeSelected2(ele) {
+ return ele.selectable() && !ele.selected();
+ }, "eleWouldBeSelected");
+ box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
+ if (box.nonempty()) {
+ r2.redrawHint("eles", true);
+ }
+ r2.redraw();
+ }
+ if (start3 != null) {
+ start3.unactivate();
+ }
+ if (e3.touches[2]) {
+ r2.data.bgActivePosistion = void 0;
+ r2.redrawHint("select", true);
+ } else if (e3.touches[1]) ;
+ else if (e3.touches[0]) ;
+ else if (!e3.touches[0]) {
+ r2.data.bgActivePosistion = void 0;
+ r2.redrawHint("select", true);
+ var draggedEles = r2.dragData.touchDragEles;
+ if (start3 != null) {
+ var startWasGrabbed = start3._private.grabbed;
+ freeDraggedElements(draggedEles);
+ r2.redrawHint("drag", true);
+ r2.redrawHint("eles", true);
+ if (startWasGrabbed) {
+ start3.emit("freeon");
+ draggedEles.emit("free");
+ if (r2.dragData.didDrag) {
+ start3.emit("dragfreeon");
+ draggedEles.emit("dragfree");
}
- this.emit("pan viewport");
}
- break;
- case 2:
- if (!this._private.panningEnabled) {
- return this;
+ triggerEvents(start3, ["touchend", "tapend", "vmouseup", "tapdragout"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ start3.unactivate();
+ r2.touchData.start = null;
+ } else {
+ var near = r2.findNearestElement(now4[0], now4[1], true, true);
+ triggerEvents(near, ["touchend", "tapend", "vmouseup", "tapdragout"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ }
+ var dx = r2.touchData.startPosition[0] - now4[0];
+ var dx2 = dx * dx;
+ var dy = r2.touchData.startPosition[1] - now4[1];
+ var dy2 = dy * dy;
+ var dist22 = dx2 + dy2;
+ var rdist2 = dist22 * zoom2 * zoom2;
+ if (!r2.touchData.singleTouchMoved) {
+ if (!start3) {
+ cy.$(":selected").unselect(["tapunselect"]);
}
- dim = args[0];
- val = args[1];
- if ((dim === "x" || dim === "y") && number$12(val)) {
- pan2[dim] = val;
+ triggerEvents(start3, ["tap", "vclick"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ didDoubleTouch = false;
+ if (e3.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {
+ touchTimeout && clearTimeout(touchTimeout);
+ didDoubleTouch = true;
+ prevTouchTimeStamp = null;
+ triggerEvents(start3, ["dbltap", "vdblclick"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ } else {
+ touchTimeout = setTimeout(function() {
+ if (didDoubleTouch) return;
+ triggerEvents(start3, ["onetap", "voneclick"], e3, {
+ x: now4[0],
+ y: now4[1]
+ });
+ }, cy.multiClickDebounceTime());
+ prevTouchTimeStamp = e3.timeStamp;
}
- this.emit("pan viewport");
- break;
- }
- this.notify("viewport");
- return this;
- },
- panBy: function panBy(arg0, arg1) {
- var args = arguments;
- var pan = this._private.pan;
- var dim, val, dims, x2, y2;
- if (!this._private.panningEnabled) {
- return this;
- }
- switch (args.length) {
- case 1:
- if (plainObject(arg0)) {
- dims = args[0];
- x2 = dims.x;
- y2 = dims.y;
- if (number$12(x2)) {
- pan.x += x2;
- }
- if (number$12(y2)) {
- pan.y += y2;
+ }
+ if (start3 != null && !r2.dragData.didDrag && start3._private.selectable && rdist2 < r2.touchTapThreshold2 && !r2.pinching) {
+ if (cy.selectionType() === "single") {
+ cy.$(isSelected).unmerge(start3).unselect(["tapunselect"]);
+ start3.select(["tapselect"]);
+ } else {
+ if (start3.selected()) {
+ start3.unselect(["tapunselect"]);
+ } else {
+ start3.select(["tapselect"]);
}
- this.emit("pan viewport");
}
- break;
- case 2:
- dim = arg0;
- val = arg1;
- if ((dim === "x" || dim === "y") && number$12(val)) {
- pan[dim] += val;
- }
- this.emit("pan viewport");
- break;
- }
- this.notify("viewport");
- return this;
- },
- fit: function fit(elements2, padding2) {
- var viewportState = this.getFitViewport(elements2, padding2);
- if (viewportState) {
- var _p = this._private;
- _p.zoom = viewportState.zoom;
- _p.pan = viewportState.pan;
- this.emit("pan zoom viewport");
- this.notify("viewport");
- }
- return this;
- },
- getFitViewport: function getFitViewport(elements2, padding2) {
- if (number$12(elements2) && padding2 === void 0) {
- padding2 = elements2;
- elements2 = void 0;
+ r2.redrawHint("eles", true);
+ }
+ r2.touchData.singleTouchMoved = true;
}
- if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
- return;
+ for (var j2 = 0; j2 < now4.length; j2++) {
+ earlier[j2] = now4[j2];
}
- var bb;
- if (string(elements2)) {
- var sel = elements2;
- elements2 = this.$(sel);
- } else if (boundingBox(elements2)) {
- var bbe = elements2;
- bb = {
- x1: bbe.x1,
- y1: bbe.y1,
- x2: bbe.x2,
- y2: bbe.y2
- };
- bb.w = bb.x2 - bb.x1;
- bb.h = bb.y2 - bb.y1;
- } else if (!elementOrCollection(elements2)) {
- elements2 = this.mutableElements();
+ r2.dragData.didDrag = false;
+ if (e3.touches.length === 0) {
+ r2.touchData.dragDelta = [];
+ r2.touchData.startPosition = [null, null, null, null, null, null];
+ r2.touchData.startGPosition = null;
+ r2.touchData.didSelect = false;
}
- if (elementOrCollection(elements2) && elements2.empty()) {
- return;
+ if (e3.touches.length < 2) {
+ if (e3.touches.length === 1) {
+ r2.touchData.startGPosition = [e3.touches[0].clientX, e3.touches[0].clientY];
+ }
+ r2.pinching = false;
+ r2.redrawHint("eles", true);
+ r2.redraw();
}
- bb = bb || elements2.boundingBox();
- var w2 = this.width();
- var h = this.height();
- var zoom;
- padding2 = number$12(padding2) ? padding2 : 0;
- if (!isNaN(w2) && !isNaN(h) && w2 > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {
- zoom = Math.min((w2 - 2 * padding2) / bb.w, (h - 2 * padding2) / bb.h);
- zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom;
- zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom;
- var pan = {
- // now pan to middle
- x: (w2 - zoom * (bb.x1 + bb.x2)) / 2,
- y: (h - zoom * (bb.y1 + bb.y2)) / 2
- };
+ }, "touchendHandler"), false);
+ if (typeof TouchEvent === "undefined") {
+ var pointers = [];
+ var makeTouch = /* @__PURE__ */ __name(function makeTouch2(e3) {
return {
- zoom,
- pan
- };
- }
- return;
- },
- zoomRange: function zoomRange(min3, max3) {
- var _p = this._private;
- if (max3 == null) {
- var opts = min3;
- min3 = opts.min;
- max3 = opts.max;
- }
- if (number$12(min3) && number$12(max3) && min3 <= max3) {
- _p.minZoom = min3;
- _p.maxZoom = max3;
- } else if (number$12(min3) && max3 === void 0 && min3 <= _p.maxZoom) {
- _p.minZoom = min3;
- } else if (number$12(max3) && min3 === void 0 && max3 >= _p.minZoom) {
- _p.maxZoom = max3;
- }
- return this;
- },
- minZoom: function minZoom(zoom) {
- if (zoom === void 0) {
- return this._private.minZoom;
- } else {
- return this.zoomRange({
- min: zoom
- });
- }
- },
- maxZoom: function maxZoom2(zoom) {
- if (zoom === void 0) {
- return this._private.maxZoom;
- } else {
- return this.zoomRange({
- max: zoom
+ clientX: e3.clientX,
+ clientY: e3.clientY,
+ force: 1,
+ identifier: e3.pointerId,
+ pageX: e3.pageX,
+ pageY: e3.pageY,
+ radiusX: e3.width / 2,
+ radiusY: e3.height / 2,
+ screenX: e3.screenX,
+ screenY: e3.screenY,
+ target: e3.target
+ };
+ }, "makeTouch");
+ var makePointer = /* @__PURE__ */ __name(function makePointer2(e3) {
+ return {
+ event: e3,
+ touch: makeTouch(e3)
+ };
+ }, "makePointer");
+ var addPointer = /* @__PURE__ */ __name(function addPointer2(e3) {
+ pointers.push(makePointer(e3));
+ }, "addPointer");
+ var removePointer = /* @__PURE__ */ __name(function removePointer2(e3) {
+ for (var i2 = 0; i2 < pointers.length; i2++) {
+ var p3 = pointers[i2];
+ if (p3.event.pointerId === e3.pointerId) {
+ pointers.splice(i2, 1);
+ return;
+ }
+ }
+ }, "removePointer");
+ var updatePointer = /* @__PURE__ */ __name(function updatePointer2(e3) {
+ var p3 = pointers.filter(function(p4) {
+ return p4.event.pointerId === e3.pointerId;
+ })[0];
+ p3.event = e3;
+ p3.touch = makeTouch(e3);
+ }, "updatePointer");
+ var addTouchesToEvent = /* @__PURE__ */ __name(function addTouchesToEvent2(e3) {
+ e3.touches = pointers.map(function(p3) {
+ return p3.touch;
});
- }
- },
- getZoomedViewport: function getZoomedViewport(params) {
- var _p = this._private;
- var currentPan = _p.pan;
- var currentZoom = _p.zoom;
- var pos;
- var zoom;
- var bail = false;
- if (!_p.zoomingEnabled) {
- bail = true;
- }
- if (number$12(params)) {
- zoom = params;
- } else if (plainObject(params)) {
- zoom = params.level;
- if (params.position != null) {
- pos = modelToRenderedPosition(params.position, currentZoom, currentPan);
- } else if (params.renderedPosition != null) {
- pos = params.renderedPosition;
+ }, "addTouchesToEvent");
+ var pointerIsMouse = /* @__PURE__ */ __name(function pointerIsMouse2(e3) {
+ return e3.pointerType === "mouse" || e3.pointerType === 4;
+ }, "pointerIsMouse");
+ r2.registerBinding(r2.container, "pointerdown", function(e3) {
+ if (pointerIsMouse(e3)) {
+ return;
}
- if (pos != null && !_p.panningEnabled) {
- bail = true;
+ e3.preventDefault();
+ addPointer(e3);
+ addTouchesToEvent(e3);
+ touchstartHandler(e3);
+ });
+ r2.registerBinding(r2.container, "pointerup", function(e3) {
+ if (pointerIsMouse(e3)) {
+ return;
}
- }
- zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom;
- zoom = zoom < _p.minZoom ? _p.minZoom : zoom;
- if (bail || !number$12(zoom) || zoom === currentZoom || pos != null && (!number$12(pos.x) || !number$12(pos.y))) {
- return null;
- }
- if (pos != null) {
- var pan1 = currentPan;
- var zoom1 = currentZoom;
- var zoom2 = zoom;
- var pan2 = {
- x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x,
- y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y
- };
+ removePointer(e3);
+ addTouchesToEvent(e3);
+ touchendHandler(e3);
+ });
+ r2.registerBinding(r2.container, "pointercancel", function(e3) {
+ if (pointerIsMouse(e3)) {
+ return;
+ }
+ removePointer(e3);
+ addTouchesToEvent(e3);
+ touchcancelHandler(e3);
+ });
+ r2.registerBinding(r2.container, "pointermove", function(e3) {
+ if (pointerIsMouse(e3)) {
+ return;
+ }
+ e3.preventDefault();
+ updatePointer(e3);
+ addTouchesToEvent(e3);
+ touchmoveHandler(e3);
+ });
+ }
+ };
+ BRp$2 = {};
+ BRp$2.generatePolygon = function(name, points) {
+ return this.nodeShapes[name] = {
+ renderer: this,
+ name,
+ points,
+ draw: /* @__PURE__ */ __name(function draw24(context, centerX, centerY, width3, height2, cornerRadius) {
+ this.renderer.nodeShapeImpl("polygon", context, centerX, centerY, width3, height2, this.points);
+ }, "draw"),
+ intersectLine: /* @__PURE__ */ __name(function intersectLine3(nodeX, nodeY, width3, height2, x5, y5, padding3, cornerRadius) {
+ return polygonIntersectLine(x5, y5, this.points, nodeX, nodeY, width3 / 2, height2 / 2, padding3);
+ }, "intersectLine"),
+ checkPoint: /* @__PURE__ */ __name(function checkPoint(x5, y5, padding3, width3, height2, centerX, centerY, cornerRadius) {
+ return pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3, height2, [0, -1], padding3);
+ }, "checkPoint")
+ };
+ };
+ BRp$2.generateEllipse = function() {
+ return this.nodeShapes["ellipse"] = {
+ renderer: this,
+ name: "ellipse",
+ draw: /* @__PURE__ */ __name(function draw24(context, centerX, centerY, width3, height2, cornerRadius) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width3, height2);
+ }, "draw"),
+ intersectLine: /* @__PURE__ */ __name(function intersectLine3(nodeX, nodeY, width3, height2, x5, y5, padding3, cornerRadius) {
+ return intersectLineEllipse(x5, y5, nodeX, nodeY, width3 / 2 + padding3, height2 / 2 + padding3);
+ }, "intersectLine"),
+ checkPoint: /* @__PURE__ */ __name(function checkPoint(x5, y5, padding3, width3, height2, centerX, centerY, cornerRadius) {
+ return checkInEllipse(x5, y5, width3, height2, centerX, centerY, padding3);
+ }, "checkPoint")
+ };
+ };
+ BRp$2.generateRoundPolygon = function(name, points) {
+ return this.nodeShapes[name] = {
+ renderer: this,
+ name,
+ points,
+ getOrCreateCorners: /* @__PURE__ */ __name(function getOrCreateCorners(centerX, centerY, width3, height2, cornerRadius, rs, field) {
+ if (rs[field] !== void 0 && rs[field + "-cx"] === centerX && rs[field + "-cy"] === centerY) {
+ return rs[field];
+ }
+ rs[field] = new Array(points.length / 2);
+ rs[field + "-cx"] = centerX;
+ rs[field + "-cy"] = centerY;
+ var halfW = width3 / 2;
+ var halfH = height2 / 2;
+ cornerRadius = cornerRadius === "auto" ? getRoundPolygonRadius(width3, height2) : cornerRadius;
+ var p3 = new Array(points.length / 2);
+ for (var _i = 0; _i < points.length / 2; _i++) {
+ p3[_i] = {
+ x: centerX + halfW * points[_i * 2],
+ y: centerY + halfH * points[_i * 2 + 1]
+ };
+ }
+ var i2, p1, p22, p32, len = p3.length;
+ p1 = p3[len - 1];
+ for (i2 = 0; i2 < len; i2++) {
+ p22 = p3[i2 % len];
+ p32 = p3[(i2 + 1) % len];
+ rs[field][i2] = getRoundCorner(p1, p22, p32, cornerRadius);
+ p1 = p22;
+ p22 = p32;
+ }
+ return rs[field];
+ }, "getOrCreateCorners"),
+ draw: /* @__PURE__ */ __name(function draw24(context, centerX, centerY, width3, height2, cornerRadius, rs) {
+ this.renderer.nodeShapeImpl("round-polygon", context, centerX, centerY, width3, height2, this.points, this.getOrCreateCorners(centerX, centerY, width3, height2, cornerRadius, rs, "drawCorners"));
+ }, "draw"),
+ intersectLine: /* @__PURE__ */ __name(function intersectLine3(nodeX, nodeY, width3, height2, x5, y5, padding3, cornerRadius, rs) {
+ return roundPolygonIntersectLine(x5, y5, this.points, nodeX, nodeY, width3, height2, padding3, this.getOrCreateCorners(nodeX, nodeY, width3, height2, cornerRadius, rs, "corners"));
+ }, "intersectLine"),
+ checkPoint: /* @__PURE__ */ __name(function checkPoint(x5, y5, padding3, width3, height2, centerX, centerY, cornerRadius, rs) {
+ return pointInsideRoundPolygon(x5, y5, this.points, centerX, centerY, width3, height2, this.getOrCreateCorners(centerX, centerY, width3, height2, cornerRadius, rs, "corners"));
+ }, "checkPoint")
+ };
+ };
+ BRp$2.generateRoundRectangle = function() {
+ return this.nodeShapes["round-rectangle"] = this.nodeShapes["roundrectangle"] = {
+ renderer: this,
+ name: "round-rectangle",
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: /* @__PURE__ */ __name(function draw24(context, centerX, centerY, width3, height2, cornerRadius) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width3, height2, this.points, cornerRadius);
+ }, "draw"),
+ intersectLine: /* @__PURE__ */ __name(function intersectLine3(nodeX, nodeY, width3, height2, x5, y5, padding3, cornerRadius) {
+ return roundRectangleIntersectLine(x5, y5, nodeX, nodeY, width3, height2, padding3, cornerRadius);
+ }, "intersectLine"),
+ checkPoint: /* @__PURE__ */ __name(function checkPoint(x5, y5, padding3, width3, height2, centerX, centerY, cornerRadius) {
+ var halfWidth = width3 / 2;
+ var halfHeight = height2 / 2;
+ cornerRadius = cornerRadius === "auto" ? getRoundRectangleRadius(width3, height2) : cornerRadius;
+ cornerRadius = Math.min(halfWidth, halfHeight, cornerRadius);
+ var diam = cornerRadius * 2;
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3, height2 - diam, [0, -1], padding3)) {
+ return true;
+ }
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3 - diam, height2, [0, -1], padding3)) {
+ return true;
+ }
+ if (checkInEllipse(x5, y5, diam, diam, centerX - halfWidth + cornerRadius, centerY - halfHeight + cornerRadius, padding3)) {
+ return true;
+ }
+ if (checkInEllipse(x5, y5, diam, diam, centerX + halfWidth - cornerRadius, centerY - halfHeight + cornerRadius, padding3)) {
+ return true;
+ }
+ if (checkInEllipse(x5, y5, diam, diam, centerX + halfWidth - cornerRadius, centerY + halfHeight - cornerRadius, padding3)) {
+ return true;
+ }
+ if (checkInEllipse(x5, y5, diam, diam, centerX - halfWidth + cornerRadius, centerY + halfHeight - cornerRadius, padding3)) {
+ return true;
+ }
+ return false;
+ }, "checkPoint")
+ };
+ };
+ BRp$2.generateCutRectangle = function() {
+ return this.nodeShapes["cut-rectangle"] = this.nodeShapes["cutrectangle"] = {
+ renderer: this,
+ name: "cut-rectangle",
+ cornerLength: getCutRectangleCornerLength(),
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: /* @__PURE__ */ __name(function draw24(context, centerX, centerY, width3, height2, cornerRadius) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width3, height2, null, cornerRadius);
+ }, "draw"),
+ generateCutTrianglePts: /* @__PURE__ */ __name(function generateCutTrianglePts(width3, height2, centerX, centerY, cornerRadius) {
+ var cl = cornerRadius === "auto" ? this.cornerLength : cornerRadius;
+ var hh = height2 / 2;
+ var hw = width3 / 2;
+ var xBegin = centerX - hw;
+ var xEnd = centerX + hw;
+ var yBegin = centerY - hh;
+ var yEnd = centerY + hh;
return {
- zoomed: true,
- panned: true,
- zoom: zoom2,
- pan: pan2
+ topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],
+ topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],
+ bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],
+ bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]
};
- } else {
- return {
- zoomed: true,
- panned: false,
- zoom,
- pan: currentPan
+ }, "generateCutTrianglePts"),
+ intersectLine: /* @__PURE__ */ __name(function intersectLine3(nodeX, nodeY, width3, height2, x5, y5, padding3, cornerRadius) {
+ var cPts = this.generateCutTrianglePts(width3 + 2 * padding3, height2 + 2 * padding3, nodeX, nodeY, cornerRadius);
+ var pts2 = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);
+ return polygonIntersectLine(x5, y5, pts2, nodeX, nodeY);
+ }, "intersectLine"),
+ checkPoint: /* @__PURE__ */ __name(function checkPoint(x5, y5, padding3, width3, height2, centerX, centerY, cornerRadius) {
+ var cl = cornerRadius === "auto" ? this.cornerLength : cornerRadius;
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3, height2 - 2 * cl, [0, -1], padding3)) {
+ return true;
+ }
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3 - 2 * cl, height2, [0, -1], padding3)) {
+ return true;
+ }
+ var cutTrianglePts = this.generateCutTrianglePts(width3, height2, centerX, centerY);
+ return pointInsidePolygonPoints(x5, y5, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x5, y5, cutTrianglePts.topRight) || pointInsidePolygonPoints(x5, y5, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x5, y5, cutTrianglePts.bottomLeft);
+ }, "checkPoint")
+ };
+ };
+ BRp$2.generateBarrel = function() {
+ return this.nodeShapes["barrel"] = {
+ renderer: this,
+ name: "barrel",
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: /* @__PURE__ */ __name(function draw24(context, centerX, centerY, width3, height2, cornerRadius) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width3, height2);
+ }, "draw"),
+ intersectLine: /* @__PURE__ */ __name(function intersectLine3(nodeX, nodeY, width3, height2, x5, y5, padding3, cornerRadius) {
+ var t03 = 0.15;
+ var t13 = 0.5;
+ var t22 = 0.85;
+ var bPts = this.generateBarrelBezierPts(width3 + 2 * padding3, height2 + 2 * padding3, nodeX, nodeY);
+ var approximateBarrelCurvePts = /* @__PURE__ */ __name(function approximateBarrelCurvePts2(pts3) {
+ var m0 = qbezierPtAt({
+ x: pts3[0],
+ y: pts3[1]
+ }, {
+ x: pts3[2],
+ y: pts3[3]
+ }, {
+ x: pts3[4],
+ y: pts3[5]
+ }, t03);
+ var m1 = qbezierPtAt({
+ x: pts3[0],
+ y: pts3[1]
+ }, {
+ x: pts3[2],
+ y: pts3[3]
+ }, {
+ x: pts3[4],
+ y: pts3[5]
+ }, t13);
+ var m2 = qbezierPtAt({
+ x: pts3[0],
+ y: pts3[1]
+ }, {
+ x: pts3[2],
+ y: pts3[3]
+ }, {
+ x: pts3[4],
+ y: pts3[5]
+ }, t22);
+ return [pts3[0], pts3[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts3[4], pts3[5]];
+ }, "approximateBarrelCurvePts");
+ var pts2 = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));
+ return polygonIntersectLine(x5, y5, pts2, nodeX, nodeY);
+ }, "intersectLine"),
+ generateBarrelBezierPts: /* @__PURE__ */ __name(function generateBarrelBezierPts(width3, height2, centerX, centerY) {
+ var hh = height2 / 2;
+ var hw = width3 / 2;
+ var xBegin = centerX - hw;
+ var xEnd = centerX + hw;
+ var yBegin = centerY - hh;
+ var yEnd = centerY + hh;
+ var curveConstants = getBarrelCurveConstants(width3, height2);
+ var hOffset = curveConstants.heightOffset;
+ var wOffset = curveConstants.widthOffset;
+ var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width3;
+ var pts2 = {
+ topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],
+ topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],
+ bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],
+ bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]
};
- }
- },
- zoom: function zoom(params) {
- if (params === void 0) {
- return this._private.zoom;
- } else {
- var vp = this.getZoomedViewport(params);
- var _p = this._private;
- if (vp == null || !vp.zoomed) {
- return this;
+ pts2.topLeft.isTop = true;
+ pts2.topRight.isTop = true;
+ pts2.bottomLeft.isBottom = true;
+ pts2.bottomRight.isBottom = true;
+ return pts2;
+ }, "generateBarrelBezierPts"),
+ checkPoint: /* @__PURE__ */ __name(function checkPoint(x5, y5, padding3, width3, height2, centerX, centerY, cornerRadius) {
+ var curveConstants = getBarrelCurveConstants(width3, height2);
+ var hOffset = curveConstants.heightOffset;
+ var wOffset = curveConstants.widthOffset;
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3, height2 - 2 * hOffset, [0, -1], padding3)) {
+ return true;
}
- _p.zoom = vp.zoom;
- if (vp.panned) {
- _p.pan.x = vp.pan.x;
- _p.pan.y = vp.pan.y;
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3 - 2 * wOffset, height2, [0, -1], padding3)) {
+ return true;
}
- this.emit("zoom" + (vp.panned ? " pan" : "") + " viewport");
- this.notify("viewport");
- return this;
- }
- },
- viewport: function viewport(opts) {
- var _p = this._private;
- var zoomDefd = true;
- var panDefd = true;
- var events = [];
- var zoomFailed = false;
- var panFailed = false;
- if (!opts) {
- return this;
- }
- if (!number$12(opts.zoom)) {
- zoomDefd = false;
- }
- if (!plainObject(opts.pan)) {
- panDefd = false;
- }
- if (!zoomDefd && !panDefd) {
- return this;
- }
- if (zoomDefd) {
- var z = opts.zoom;
- if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) {
- zoomFailed = true;
- } else {
- _p.zoom = z;
- events.push("zoom");
+ var barrelCurvePts = this.generateBarrelBezierPts(width3, height2, centerX, centerY);
+ var getCurveT = /* @__PURE__ */ __name(function getCurveT2(x6, y6, curvePts) {
+ var x0 = curvePts[4];
+ var x1 = curvePts[2];
+ var x22 = curvePts[0];
+ var y02 = curvePts[5];
+ var y23 = curvePts[1];
+ var xMin = Math.min(x0, x22);
+ var xMax = Math.max(x0, x22);
+ var yMin = Math.min(y02, y23);
+ var yMax = Math.max(y02, y23);
+ if (xMin <= x6 && x6 <= xMax && yMin <= y6 && y6 <= yMax) {
+ var coeff = bezierPtsToQuadCoeff(x0, x1, x22);
+ var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x6);
+ var validRoots = roots.filter(function(r2) {
+ return 0 <= r2 && r2 <= 1;
+ });
+ if (validRoots.length > 0) {
+ return validRoots[0];
+ }
+ }
+ return null;
+ }, "getCurveT");
+ var curveRegions = Object.keys(barrelCurvePts);
+ for (var i2 = 0; i2 < curveRegions.length; i2++) {
+ var corner = curveRegions[i2];
+ var cornerPts = barrelCurvePts[corner];
+ var t4 = getCurveT(x5, y5, cornerPts);
+ if (t4 == null) {
+ continue;
+ }
+ var y0 = cornerPts[5];
+ var y1 = cornerPts[3];
+ var y22 = cornerPts[1];
+ var bezY = qbezierAt(y0, y1, y22, t4);
+ if (cornerPts.isTop && bezY <= y5) {
+ return true;
+ }
+ if (cornerPts.isBottom && y5 <= bezY) {
+ return true;
+ }
+ }
+ return false;
+ }, "checkPoint")
+ };
+ };
+ BRp$2.generateBottomRoundrectangle = function() {
+ return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes["bottomroundrectangle"] = {
+ renderer: this,
+ name: "bottom-round-rectangle",
+ points: generateUnitNgonPointsFitToSquare(4, 0),
+ draw: /* @__PURE__ */ __name(function draw24(context, centerX, centerY, width3, height2, cornerRadius) {
+ this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width3, height2, this.points, cornerRadius);
+ }, "draw"),
+ intersectLine: /* @__PURE__ */ __name(function intersectLine3(nodeX, nodeY, width3, height2, x5, y5, padding3, cornerRadius) {
+ var topStartX = nodeX - (width3 / 2 + padding3);
+ var topStartY = nodeY - (height2 / 2 + padding3);
+ var topEndY = topStartY;
+ var topEndX = nodeX + (width3 / 2 + padding3);
+ var topIntersections = finiteLinesIntersect(x5, y5, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
+ if (topIntersections.length > 0) {
+ return topIntersections;
}
- }
- if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {
- var p2 = opts.pan;
- if (number$12(p2.x)) {
- _p.pan.x = p2.x;
- panFailed = false;
+ return roundRectangleIntersectLine(x5, y5, nodeX, nodeY, width3, height2, padding3, cornerRadius);
+ }, "intersectLine"),
+ checkPoint: /* @__PURE__ */ __name(function checkPoint(x5, y5, padding3, width3, height2, centerX, centerY, cornerRadius) {
+ cornerRadius = cornerRadius === "auto" ? getRoundRectangleRadius(width3, height2) : cornerRadius;
+ var diam = 2 * cornerRadius;
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3, height2 - diam, [0, -1], padding3)) {
+ return true;
}
- if (number$12(p2.y)) {
- _p.pan.y = p2.y;
- panFailed = false;
+ if (pointInsidePolygon(x5, y5, this.points, centerX, centerY, width3 - diam, height2, [0, -1], padding3)) {
+ return true;
}
- if (!panFailed) {
- events.push("pan");
+ var outerWidth = width3 / 2 + 2 * padding3;
+ var outerHeight = height2 / 2 + 2 * padding3;
+ var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];
+ if (pointInsidePolygonPoints(x5, y5, points)) {
+ return true;
+ }
+ if (checkInEllipse(x5, y5, diam, diam, centerX + width3 / 2 - cornerRadius, centerY + height2 / 2 - cornerRadius, padding3)) {
+ return true;
}
+ if (checkInEllipse(x5, y5, diam, diam, centerX - width3 / 2 + cornerRadius, centerY + height2 / 2 - cornerRadius, padding3)) {
+ return true;
+ }
+ return false;
+ }, "checkPoint")
+ };
+ };
+ BRp$2.registerNodeShapes = function() {
+ var nodeShapes = this.nodeShapes = {};
+ var renderer8 = this;
+ this.generateEllipse();
+ this.generatePolygon("triangle", generateUnitNgonPointsFitToSquare(3, 0));
+ this.generateRoundPolygon("round-triangle", generateUnitNgonPointsFitToSquare(3, 0));
+ this.generatePolygon("rectangle", generateUnitNgonPointsFitToSquare(4, 0));
+ nodeShapes["square"] = nodeShapes["rectangle"];
+ this.generateRoundRectangle();
+ this.generateCutRectangle();
+ this.generateBarrel();
+ this.generateBottomRoundrectangle();
+ {
+ var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];
+ this.generatePolygon("diamond", diamondPoints);
+ this.generateRoundPolygon("round-diamond", diamondPoints);
+ }
+ this.generatePolygon("pentagon", generateUnitNgonPointsFitToSquare(5, 0));
+ this.generateRoundPolygon("round-pentagon", generateUnitNgonPointsFitToSquare(5, 0));
+ this.generatePolygon("hexagon", generateUnitNgonPointsFitToSquare(6, 0));
+ this.generateRoundPolygon("round-hexagon", generateUnitNgonPointsFitToSquare(6, 0));
+ this.generatePolygon("heptagon", generateUnitNgonPointsFitToSquare(7, 0));
+ this.generateRoundPolygon("round-heptagon", generateUnitNgonPointsFitToSquare(7, 0));
+ this.generatePolygon("octagon", generateUnitNgonPointsFitToSquare(8, 0));
+ this.generateRoundPolygon("round-octagon", generateUnitNgonPointsFitToSquare(8, 0));
+ var star5Points = new Array(20);
+ {
+ var outerPoints = generateUnitNgonPoints(5, 0);
+ var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);
+ var innerRadius = 0.5 * (3 - Math.sqrt(5));
+ innerRadius *= 1.57;
+ for (var i2 = 0; i2 < innerPoints.length / 2; i2++) {
+ innerPoints[i2 * 2] *= innerRadius;
+ innerPoints[i2 * 2 + 1] *= innerRadius;
}
- if (events.length > 0) {
- events.push("viewport");
- this.emit(events.join(" "));
- this.notify("viewport");
+ for (var i2 = 0; i2 < 20 / 4; i2++) {
+ star5Points[i2 * 4] = outerPoints[i2 * 2];
+ star5Points[i2 * 4 + 1] = outerPoints[i2 * 2 + 1];
+ star5Points[i2 * 4 + 2] = innerPoints[i2 * 2];
+ star5Points[i2 * 4 + 3] = innerPoints[i2 * 2 + 1];
}
- return this;
- },
- center: function center2(elements2) {
- var pan = this.getCenterPan(elements2);
- if (pan) {
- this._private.pan = pan;
- this.emit("pan viewport");
- this.notify("viewport");
+ }
+ star5Points = fitPolygonToSquare(star5Points);
+ this.generatePolygon("star", star5Points);
+ this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]);
+ this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);
+ this.generatePolygon("right-rhomboid", [-0.333, -1, 1, -1, 0.333, 1, -1, 1]);
+ this.nodeShapes["concavehexagon"] = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);
+ {
+ var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];
+ this.generatePolygon("tag", tagPoints);
+ this.generateRoundPolygon("round-tag", tagPoints);
+ }
+ nodeShapes.makePolygon = function(points) {
+ var key = points.join("$");
+ var name = "polygon-" + key;
+ var shape;
+ if (shape = this[name]) {
+ return shape;
}
- return this;
- },
- getCenterPan: function getCenterPan(elements2, zoom) {
- if (!this._private.panningEnabled) {
+ return renderer8.generatePolygon(name, points);
+ };
+ };
+ BRp$1 = {};
+ BRp$1.timeToRender = function() {
+ return this.redrawTotalTime / this.redrawCount;
+ };
+ BRp$1.redraw = function(options3) {
+ options3 = options3 || staticEmptyObject();
+ var r2 = this;
+ if (r2.averageRedrawTime === void 0) {
+ r2.averageRedrawTime = 0;
+ }
+ if (r2.lastRedrawTime === void 0) {
+ r2.lastRedrawTime = 0;
+ }
+ if (r2.lastDrawTime === void 0) {
+ r2.lastDrawTime = 0;
+ }
+ r2.requestedFrame = true;
+ r2.renderOptions = options3;
+ };
+ BRp$1.beforeRender = function(fn3, priority3) {
+ if (this.destroyed) {
+ return;
+ }
+ if (priority3 == null) {
+ error("Priority is not optional for beforeRender");
+ }
+ var cbs = this.beforeRenderCallbacks;
+ cbs.push({
+ fn: fn3,
+ priority: priority3
+ });
+ cbs.sort(function(a2, b2) {
+ return b2.priority - a2.priority;
+ });
+ };
+ beforeRenderCallbacks = /* @__PURE__ */ __name(function beforeRenderCallbacks2(r2, willDraw, startTime) {
+ var cbs = r2.beforeRenderCallbacks;
+ for (var i2 = 0; i2 < cbs.length; i2++) {
+ cbs[i2].fn(willDraw, startTime);
+ }
+ }, "beforeRenderCallbacks");
+ BRp$1.startRenderLoop = function() {
+ var r2 = this;
+ var cy = r2.cy;
+ if (r2.renderLoopStarted) {
+ return;
+ } else {
+ r2.renderLoopStarted = true;
+ }
+ var renderFn = /* @__PURE__ */ __name(function renderFn2(requestTime) {
+ if (r2.destroyed) {
return;
}
- if (string(elements2)) {
- var selector2 = elements2;
- elements2 = this.mutableElements().filter(selector2);
- } else if (!elementOrCollection(elements2)) {
- elements2 = this.mutableElements();
+ if (cy.batching()) ;
+ else if (r2.requestedFrame && !r2.skipFrame) {
+ beforeRenderCallbacks(r2, true, requestTime);
+ var startTime = performanceNow();
+ r2.render(r2.renderOptions);
+ var endTime = r2.lastDrawTime = performanceNow();
+ if (r2.averageRedrawTime === void 0) {
+ r2.averageRedrawTime = endTime - startTime;
+ }
+ if (r2.redrawCount === void 0) {
+ r2.redrawCount = 0;
+ }
+ r2.redrawCount++;
+ if (r2.redrawTotalTime === void 0) {
+ r2.redrawTotalTime = 0;
+ }
+ var duration = endTime - startTime;
+ r2.redrawTotalTime += duration;
+ r2.lastRedrawTime = duration;
+ r2.averageRedrawTime = r2.averageRedrawTime / 2 + duration / 2;
+ r2.requestedFrame = false;
+ } else {
+ beforeRenderCallbacks(r2, false, requestTime);
}
- if (elements2.length === 0) {
- return;
+ r2.skipFrame = false;
+ requestAnimationFrame2(renderFn2);
+ }, "renderFn");
+ requestAnimationFrame2(renderFn);
+ };
+ BaseRenderer = /* @__PURE__ */ __name(function BaseRenderer2(options3) {
+ this.init(options3);
+ }, "BaseRenderer");
+ BR = BaseRenderer;
+ BRp = BR.prototype;
+ BRp.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"];
+ BRp.init = function(options3) {
+ var r2 = this;
+ r2.options = options3;
+ r2.cy = options3.cy;
+ var ctr = r2.container = options3.cy.container();
+ var containerWindow = r2.cy.window();
+ if (containerWindow) {
+ var document2 = containerWindow.document;
+ var head2 = document2.head;
+ var stylesheetId = "__________cytoscape_stylesheet";
+ var className = "__________cytoscape_container";
+ var stylesheetAlreadyExists = document2.getElementById(stylesheetId) != null;
+ if (ctr.className.indexOf(className) < 0) {
+ ctr.className = (ctr.className || "") + " " + className;
}
- var bb = elements2.boundingBox();
- var w2 = this.width();
- var h = this.height();
- zoom = zoom === void 0 ? this._private.zoom : zoom;
- var pan = {
- // middle
- x: (w2 - zoom * (bb.x1 + bb.x2)) / 2,
- y: (h - zoom * (bb.y1 + bb.y2)) / 2
- };
- return pan;
- },
- reset: function reset2() {
- if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
- return this;
+ if (!stylesheetAlreadyExists) {
+ var stylesheet3 = document2.createElement("style");
+ stylesheet3.id = stylesheetId;
+ stylesheet3.textContent = "." + className + " { position: relative; }";
+ head2.insertBefore(stylesheet3, head2.children[0]);
+ }
+ var computedStyle = containerWindow.getComputedStyle(ctr);
+ var position5 = computedStyle.getPropertyValue("position");
+ if (position5 === "static") {
+ warn("A Cytoscape container has style position:static and so can not use UI extensions properly");
}
- this.viewport({
- pan: {
- x: 0,
- y: 0
- },
- zoom: 1
- });
- return this;
- },
- invalidateSize: function invalidateSize() {
- this._private.sizeCache = null;
- },
- size: function size2() {
- var _p = this._private;
- var container = _p.container;
- return _p.sizeCache = _p.sizeCache || (container ? function() {
- var style = window$1.getComputedStyle(container);
- var val = function val2(name2) {
- return parseFloat(style.getPropertyValue(name2));
- };
- return {
- width: container.clientWidth - val("padding-left") - val("padding-right"),
- height: container.clientHeight - val("padding-top") - val("padding-bottom")
- };
- }() : {
- // fallback if no container (not 0 b/c can be used for dividing etc)
- width: 1,
- height: 1
- });
- },
- width: function width2() {
- return this.size().width;
- },
- height: function height2() {
- return this.size().height;
- },
- extent: function extent() {
- var pan = this._private.pan;
- var zoom = this._private.zoom;
- var rb = this.renderedExtent();
- var b = {
- x1: (rb.x1 - pan.x) / zoom,
- x2: (rb.x2 - pan.x) / zoom,
- y1: (rb.y1 - pan.y) / zoom,
- y2: (rb.y2 - pan.y) / zoom
- };
- b.w = b.x2 - b.x1;
- b.h = b.y2 - b.y1;
- return b;
- },
- renderedExtent: function renderedExtent() {
- var width2 = this.width();
- var height2 = this.height();
- return {
- x1: 0,
- y1: 0,
- x2: width2,
- y2: height2,
- w: width2,
- h: height2
- };
- },
- multiClickDebounceTime: function multiClickDebounceTime(_int) {
- if (_int)
- this._private.multiClickDebounceTime = _int;
- else
- return this._private.multiClickDebounceTime;
- return this;
}
+ r2.selection = [void 0, void 0, void 0, void 0, 0];
+ r2.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];
+ r2.hoverData = {
+ down: null,
+ last: null,
+ downTime: null,
+ triggerMode: null,
+ dragging: false,
+ initialPan: [null, null],
+ capture: false
+ };
+ r2.dragData = {
+ possibleDragElements: []
+ };
+ r2.touchData = {
+ start: null,
+ capture: false,
+ // These 3 fields related to tap, taphold events
+ startPosition: [null, null, null, null, null, null],
+ singleTouchStartTime: null,
+ singleTouchMoved: true,
+ now: [null, null, null, null, null, null],
+ earlier: [null, null, null, null, null, null]
+ };
+ r2.redraws = 0;
+ r2.showFps = options3.showFps;
+ r2.debug = options3.debug;
+ r2.hideEdgesOnViewport = options3.hideEdgesOnViewport;
+ r2.textureOnViewport = options3.textureOnViewport;
+ r2.wheelSensitivity = options3.wheelSensitivity;
+ r2.motionBlurEnabled = options3.motionBlur;
+ r2.forcedPixelRatio = number$1(options3.pixelRatio) ? options3.pixelRatio : null;
+ r2.motionBlur = options3.motionBlur;
+ r2.motionBlurOpacity = options3.motionBlurOpacity;
+ r2.motionBlurTransparency = 1 - r2.motionBlurOpacity;
+ r2.motionBlurPxRatio = 1;
+ r2.mbPxRBlurry = 1;
+ r2.minMbLowQualFrames = 4;
+ r2.fullQualityMb = false;
+ r2.clearedForMotionBlur = [];
+ r2.desktopTapThreshold = options3.desktopTapThreshold;
+ r2.desktopTapThreshold2 = options3.desktopTapThreshold * options3.desktopTapThreshold;
+ r2.touchTapThreshold = options3.touchTapThreshold;
+ r2.touchTapThreshold2 = options3.touchTapThreshold * options3.touchTapThreshold;
+ r2.tapholdDuration = 500;
+ r2.bindings = [];
+ r2.beforeRenderCallbacks = [];
+ r2.beforeRenderPriorities = {
+ // higher priority execs before lower one
+ animations: 400,
+ eleCalcs: 300,
+ eleTxrDeq: 200,
+ lyrTxrDeq: 150,
+ lyrTxrSkip: 100
+ };
+ r2.registerNodeShapes();
+ r2.registerArrowShapes();
+ r2.registerCalculationListeners();
};
- corefn$1.centre = corefn$1.center;
- corefn$1.autolockNodes = corefn$1.autolock;
- corefn$1.autoungrabifyNodes = corefn$1.autoungrabify;
- var fn = {
- data: define3.data({
- field: "data",
- bindingEvent: "data",
- allowBinding: true,
- allowSetting: true,
- settingEvent: "data",
- settingTriggersEvent: true,
- triggerFnName: "trigger",
- allowGetting: true,
- updateStyle: true
- }),
- removeData: define3.removeData({
- field: "data",
- event: "data",
- triggerFnName: "trigger",
- triggerEvent: true,
- updateStyle: true
- }),
- scratch: define3.data({
- field: "scratch",
- bindingEvent: "scratch",
- allowBinding: true,
- allowSetting: true,
- settingEvent: "scratch",
- settingTriggersEvent: true,
- triggerFnName: "trigger",
- allowGetting: true,
- updateStyle: true
- }),
- removeScratch: define3.removeData({
- field: "scratch",
- event: "scratch",
- triggerFnName: "trigger",
- triggerEvent: true,
- updateStyle: true
- })
- };
- fn.attr = fn.data;
- fn.removeAttr = fn.removeData;
- var Core = function Core2(opts) {
- var cy = this;
- opts = extend2({}, opts);
- var container = opts.container;
- if (container && !htmlElement(container) && htmlElement(container[0])) {
- container = container[0];
+ BRp.notify = function(eventName, eles) {
+ var r2 = this;
+ var cy = r2.cy;
+ if (this.destroyed) {
+ return;
}
- var reg = container ? container._cyreg : null;
- reg = reg || {};
- if (reg && reg.cy) {
- reg.cy.destroy();
- reg = {};
+ if (eventName === "init") {
+ r2.load();
+ return;
}
- var readies = reg.readies = reg.readies || [];
- if (container) {
- container._cyreg = reg;
+ if (eventName === "destroy") {
+ r2.destroy();
+ return;
}
- reg.cy = cy;
- var head2 = window$1 !== void 0 && container !== void 0 && !opts.headless;
- var options2 = opts;
- options2.layout = extend2({
- name: head2 ? "grid" : "null"
- }, options2.layout);
- options2.renderer = extend2({
- name: head2 ? "canvas" : "null"
- }, options2.renderer);
- var defVal = function defVal2(def, val, altVal) {
- if (val !== void 0) {
- return val;
- } else if (altVal !== void 0) {
- return altVal;
- } else {
- return def;
+ if (eventName === "add" || eventName === "remove" || eventName === "move" && cy.hasCompoundNodes() || eventName === "load" || eventName === "zorder" || eventName === "mount") {
+ r2.invalidateCachedZSortedEles();
+ }
+ if (eventName === "viewport") {
+ r2.redrawHint("select", true);
+ }
+ if (eventName === "load" || eventName === "resize" || eventName === "mount") {
+ r2.invalidateContainerClientCoordsCache();
+ r2.matchCanvasSize(r2.container);
+ }
+ r2.redrawHint("eles", true);
+ r2.redrawHint("drag", true);
+ this.startRenderLoop();
+ this.redraw();
+ };
+ BRp.destroy = function() {
+ var r2 = this;
+ r2.destroyed = true;
+ r2.cy.stopAnimationLoop();
+ for (var i2 = 0; i2 < r2.bindings.length; i2++) {
+ var binding = r2.bindings[i2];
+ var b2 = binding;
+ var tgt = b2.target;
+ (tgt.off || tgt.removeEventListener).apply(tgt, b2.args);
+ }
+ r2.bindings = [];
+ r2.beforeRenderCallbacks = [];
+ r2.onUpdateEleCalcsFns = [];
+ if (r2.removeObserver) {
+ r2.removeObserver.disconnect();
+ }
+ if (r2.styleObserver) {
+ r2.styleObserver.disconnect();
+ }
+ if (r2.resizeObserver) {
+ r2.resizeObserver.disconnect();
+ }
+ if (r2.labelCalcDiv) {
+ try {
+ document.body.removeChild(r2.labelCalcDiv);
+ } catch (e3) {
}
- };
- var _p = this._private = {
- container,
- // html dom ele container
- ready: false,
- // whether ready has been triggered
- options: options2,
- // cached options
- elements: new Collection(this),
- // elements in the graph
- listeners: [],
- // list of listeners
- aniEles: new Collection(this),
- // elements being animated
- data: options2.data || {},
- // data for the core
- scratch: {},
- // scratch object for core
- layout: null,
- renderer: null,
- destroyed: false,
- // whether destroy was called
- notificationsEnabled: true,
- // whether notifications are sent to the renderer
- minZoom: 1e-50,
- maxZoom: 1e50,
- zoomingEnabled: defVal(true, options2.zoomingEnabled),
- userZoomingEnabled: defVal(true, options2.userZoomingEnabled),
- panningEnabled: defVal(true, options2.panningEnabled),
- userPanningEnabled: defVal(true, options2.userPanningEnabled),
- boxSelectionEnabled: defVal(true, options2.boxSelectionEnabled),
- autolock: defVal(false, options2.autolock, options2.autolockNodes),
- autoungrabify: defVal(false, options2.autoungrabify, options2.autoungrabifyNodes),
- autounselectify: defVal(false, options2.autounselectify),
- styleEnabled: options2.styleEnabled === void 0 ? head2 : options2.styleEnabled,
- zoom: number$12(options2.zoom) ? options2.zoom : 1,
- pan: {
- x: plainObject(options2.pan) && number$12(options2.pan.x) ? options2.pan.x : 0,
- y: plainObject(options2.pan) && number$12(options2.pan.y) ? options2.pan.y : 0
- },
- animation: {
- // object for currently-running animations
- current: [],
- queue: []
- },
- hasCompoundNodes: false,
- multiClickDebounceTime: defVal(250, options2.multiClickDebounceTime)
- };
- this.createEmitter();
- this.selectionType(options2.selectionType);
- this.zoomRange({
- min: options2.minZoom,
- max: options2.maxZoom
+ }
+ };
+ BRp.isHeadless = function() {
+ return false;
+ };
+ [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function(props) {
+ extend2(BRp, props);
+ });
+ fullFpsTime = 1e3 / 60;
+ defs = {
+ setupDequeueing: /* @__PURE__ */ __name(function setupDequeueing(opts) {
+ return /* @__PURE__ */ __name(function setupDequeueingImpl() {
+ var self2 = this;
+ var r2 = this.renderer;
+ if (self2.dequeueingSetup) {
+ return;
+ } else {
+ self2.dequeueingSetup = true;
+ }
+ var queueRedraw = debounce_1(function() {
+ r2.redrawHint("eles", true);
+ r2.redrawHint("drag", true);
+ r2.redraw();
+ }, opts.deqRedrawThreshold);
+ var dequeue = /* @__PURE__ */ __name(function dequeue2(willDraw, frameStartTime) {
+ var startTime = performanceNow();
+ var avgRenderTime = r2.averageRedrawTime;
+ var renderTime = r2.lastRedrawTime;
+ var deqd = [];
+ var extent2 = r2.cy.extent();
+ var pixelRatio = r2.getPixelRatio();
+ if (!willDraw) {
+ r2.flushRenderedStyleQueue();
+ }
+ while (true) {
+ var now4 = performanceNow();
+ var duration = now4 - startTime;
+ var frameDuration = now4 - frameStartTime;
+ if (renderTime < fullFpsTime) {
+ var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);
+ if (frameDuration >= opts.deqFastCost * timeAvailable) {
+ break;
+ }
+ } else {
+ if (willDraw) {
+ if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {
+ break;
+ }
+ } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {
+ break;
+ }
+ }
+ var thisDeqd = opts.deq(self2, pixelRatio, extent2);
+ if (thisDeqd.length > 0) {
+ for (var i2 = 0; i2 < thisDeqd.length; i2++) {
+ deqd.push(thisDeqd[i2]);
+ }
+ } else {
+ break;
+ }
+ }
+ if (deqd.length > 0) {
+ opts.onDeqd(self2, deqd);
+ if (!willDraw && opts.shouldRedraw(self2, deqd, pixelRatio, extent2)) {
+ queueRedraw();
+ }
+ }
+ }, "dequeue");
+ var priority3 = opts.priority || noop$1;
+ r2.beforeRender(dequeue, priority3(self2));
+ }, "setupDequeueingImpl");
+ }, "setupDequeueing")
+ };
+ ElementTextureCacheLookup = /* @__PURE__ */ function() {
+ function ElementTextureCacheLookup2(getKey3) {
+ var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : falsify;
+ _classCallCheck(this, ElementTextureCacheLookup2);
+ this.idsByKey = new Map$2();
+ this.keyForId = new Map$2();
+ this.cachesByLvl = new Map$2();
+ this.lvls = [];
+ this.getKey = getKey3;
+ this.doesEleInvalidateKey = doesEleInvalidateKey;
+ }
+ __name(ElementTextureCacheLookup2, "ElementTextureCacheLookup");
+ _createClass(ElementTextureCacheLookup2, [{
+ key: "getIdsFor",
+ value: /* @__PURE__ */ __name(function getIdsFor(key) {
+ if (key == null) {
+ error("Can not get id list for null key");
+ }
+ var idsByKey = this.idsByKey;
+ var ids = this.idsByKey.get(key);
+ if (!ids) {
+ ids = new Set$1();
+ idsByKey.set(key, ids);
+ }
+ return ids;
+ }, "getIdsFor")
+ }, {
+ key: "addIdForKey",
+ value: /* @__PURE__ */ __name(function addIdForKey(key, id27) {
+ if (key != null) {
+ this.getIdsFor(key).add(id27);
+ }
+ }, "addIdForKey")
+ }, {
+ key: "deleteIdForKey",
+ value: /* @__PURE__ */ __name(function deleteIdForKey(key, id27) {
+ if (key != null) {
+ this.getIdsFor(key)["delete"](id27);
+ }
+ }, "deleteIdForKey")
+ }, {
+ key: "getNumberOfIdsForKey",
+ value: /* @__PURE__ */ __name(function getNumberOfIdsForKey(key) {
+ if (key == null) {
+ return 0;
+ } else {
+ return this.getIdsFor(key).size;
+ }
+ }, "getNumberOfIdsForKey")
+ }, {
+ key: "updateKeyMappingFor",
+ value: /* @__PURE__ */ __name(function updateKeyMappingFor(ele) {
+ var id27 = ele.id();
+ var prevKey = this.keyForId.get(id27);
+ var currKey = this.getKey(ele);
+ this.deleteIdForKey(prevKey, id27);
+ this.addIdForKey(currKey, id27);
+ this.keyForId.set(id27, currKey);
+ }, "updateKeyMappingFor")
+ }, {
+ key: "deleteKeyMappingFor",
+ value: /* @__PURE__ */ __name(function deleteKeyMappingFor(ele) {
+ var id27 = ele.id();
+ var prevKey = this.keyForId.get(id27);
+ this.deleteIdForKey(prevKey, id27);
+ this.keyForId["delete"](id27);
+ }, "deleteKeyMappingFor")
+ }, {
+ key: "keyHasChangedFor",
+ value: /* @__PURE__ */ __name(function keyHasChangedFor(ele) {
+ var id27 = ele.id();
+ var prevKey = this.keyForId.get(id27);
+ var newKey = this.getKey(ele);
+ return prevKey !== newKey;
+ }, "keyHasChangedFor")
+ }, {
+ key: "isInvalid",
+ value: /* @__PURE__ */ __name(function isInvalid(ele) {
+ return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);
+ }, "isInvalid")
+ }, {
+ key: "getCachesAt",
+ value: /* @__PURE__ */ __name(function getCachesAt(lvl) {
+ var cachesByLvl = this.cachesByLvl, lvls = this.lvls;
+ var caches = cachesByLvl.get(lvl);
+ if (!caches) {
+ caches = new Map$2();
+ cachesByLvl.set(lvl, caches);
+ lvls.push(lvl);
+ }
+ return caches;
+ }, "getCachesAt")
+ }, {
+ key: "getCache",
+ value: /* @__PURE__ */ __name(function getCache(key, lvl) {
+ return this.getCachesAt(lvl).get(key);
+ }, "getCache")
+ }, {
+ key: "get",
+ value: /* @__PURE__ */ __name(function get6(ele, lvl) {
+ var key = this.getKey(ele);
+ var cache3 = this.getCache(key, lvl);
+ if (cache3 != null) {
+ this.updateKeyMappingFor(ele);
+ }
+ return cache3;
+ }, "get")
+ }, {
+ key: "getForCachedKey",
+ value: /* @__PURE__ */ __name(function getForCachedKey(ele, lvl) {
+ var key = this.keyForId.get(ele.id());
+ var cache3 = this.getCache(key, lvl);
+ return cache3;
+ }, "getForCachedKey")
+ }, {
+ key: "hasCache",
+ value: /* @__PURE__ */ __name(function hasCache(key, lvl) {
+ return this.getCachesAt(lvl).has(key);
+ }, "hasCache")
+ }, {
+ key: "has",
+ value: /* @__PURE__ */ __name(function has2(ele, lvl) {
+ var key = this.getKey(ele);
+ return this.hasCache(key, lvl);
+ }, "has")
+ }, {
+ key: "setCache",
+ value: /* @__PURE__ */ __name(function setCache(key, lvl, cache3) {
+ cache3.key = key;
+ this.getCachesAt(lvl).set(key, cache3);
+ }, "setCache")
+ }, {
+ key: "set",
+ value: /* @__PURE__ */ __name(function set6(ele, lvl, cache3) {
+ var key = this.getKey(ele);
+ this.setCache(key, lvl, cache3);
+ this.updateKeyMappingFor(ele);
+ }, "set")
+ }, {
+ key: "deleteCache",
+ value: /* @__PURE__ */ __name(function deleteCache(key, lvl) {
+ this.getCachesAt(lvl)["delete"](key);
+ }, "deleteCache")
+ }, {
+ key: "delete",
+ value: /* @__PURE__ */ __name(function _delete(ele, lvl) {
+ var key = this.getKey(ele);
+ this.deleteCache(key, lvl);
+ }, "_delete")
+ }, {
+ key: "invalidateKey",
+ value: /* @__PURE__ */ __name(function invalidateKey(key) {
+ var _this = this;
+ this.lvls.forEach(function(lvl) {
+ return _this.deleteCache(key, lvl);
+ });
+ }, "invalidateKey")
+ // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)
+ }, {
+ key: "invalidate",
+ value: /* @__PURE__ */ __name(function invalidate(ele) {
+ var id27 = ele.id();
+ var key = this.keyForId.get(id27);
+ this.deleteKeyMappingFor(ele);
+ var entireKeyInvalidated = this.doesEleInvalidateKey(ele);
+ if (entireKeyInvalidated) {
+ this.invalidateKey(key);
+ }
+ return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;
+ }, "invalidate")
+ }]);
+ return ElementTextureCacheLookup2;
+ }();
+ minTxrH = 25;
+ txrStepH = 50;
+ minLvl$1 = -4;
+ maxLvl$1 = 3;
+ maxZoom$1 = 7.99;
+ eleTxrSpacing = 8;
+ defTxrWidth = 1024;
+ maxTxrW = 1024;
+ maxTxrH = 1024;
+ minUtility = 0.2;
+ maxFullness = 0.8;
+ maxFullnessChecks = 10;
+ deqCost$1 = 0.15;
+ deqAvgCost$1 = 0.1;
+ deqNoDrawCost$1 = 0.9;
+ deqFastCost$1 = 0.9;
+ deqRedrawThreshold$1 = 100;
+ maxDeqSize$1 = 1;
+ getTxrReasons = {
+ dequeue: "dequeue",
+ downscale: "downscale",
+ highQuality: "highQuality"
+ };
+ initDefaults = defaults$g({
+ getKey: null,
+ doesEleInvalidateKey: falsify,
+ drawElement: null,
+ getBoundingBox: null,
+ getRotationPoint: null,
+ getRotationOffset: null,
+ isVisible: trueify,
+ allowEdgeTxrCaching: true,
+ allowParentTxrCaching: true
+ });
+ ElementTextureCache = /* @__PURE__ */ __name(function ElementTextureCache2(renderer8, initOptions) {
+ var self2 = this;
+ self2.renderer = renderer8;
+ self2.onDequeues = [];
+ var opts = initDefaults(initOptions);
+ extend2(self2, opts);
+ self2.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);
+ self2.setupDequeueing();
+ }, "ElementTextureCache");
+ ETCp = ElementTextureCache.prototype;
+ ETCp.reasons = getTxrReasons;
+ ETCp.getTextureQueue = function(txrH) {
+ var self2 = this;
+ self2.eleImgCaches = self2.eleImgCaches || {};
+ return self2.eleImgCaches[txrH] = self2.eleImgCaches[txrH] || [];
+ };
+ ETCp.getRetiredTextureQueue = function(txrH) {
+ var self2 = this;
+ var rtxtrQs = self2.eleImgCaches.retired = self2.eleImgCaches.retired || {};
+ var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];
+ return rtxtrQ;
+ };
+ ETCp.getElementQueue = function() {
+ var self2 = this;
+ var q2 = self2.eleCacheQueue = self2.eleCacheQueue || new heap(function(a2, b2) {
+ return b2.reqs - a2.reqs;
});
- var loadExtData = function loadExtData2(extData, next2) {
- var anyIsPromise = extData.some(promise);
- if (anyIsPromise) {
- return Promise$12.all(extData).then(next2);
- } else {
- next2(extData);
+ return q2;
+ };
+ ETCp.getElementKeyToQueue = function() {
+ var self2 = this;
+ var k2q = self2.eleKeyToCacheQueue = self2.eleKeyToCacheQueue || {};
+ return k2q;
+ };
+ ETCp.getElement = function(ele, bb, pxRatio, lvl, reason) {
+ var self2 = this;
+ var r2 = this.renderer;
+ var zoom2 = r2.cy.zoom();
+ var lookup2 = this.lookup;
+ if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {
+ return null;
+ }
+ if (!self2.allowEdgeTxrCaching && ele.isEdge() || !self2.allowParentTxrCaching && ele.isParent()) {
+ return null;
+ }
+ if (lvl == null) {
+ lvl = Math.ceil(log22(zoom2 * pxRatio));
+ }
+ if (lvl < minLvl$1) {
+ lvl = minLvl$1;
+ } else if (zoom2 >= maxZoom$1 || lvl > maxLvl$1) {
+ return null;
+ }
+ var scale = Math.pow(2, lvl);
+ var eleScaledH = bb.h * scale;
+ var eleScaledW = bb.w * scale;
+ var scaledLabelShown = r2.eleTextBiggerThanMin(ele, scale);
+ if (!this.isVisible(ele, scaledLabelShown)) {
+ return null;
+ }
+ var eleCache = lookup2.get(ele, lvl);
+ if (eleCache && eleCache.invalidated) {
+ eleCache.invalidated = false;
+ eleCache.texture.invalidatedWidth -= eleCache.width;
+ }
+ if (eleCache) {
+ return eleCache;
+ }
+ var txrH;
+ if (eleScaledH <= minTxrH) {
+ txrH = minTxrH;
+ } else if (eleScaledH <= txrStepH) {
+ txrH = txrStepH;
+ } else {
+ txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;
+ }
+ if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {
+ return null;
+ }
+ var txrQ = self2.getTextureQueue(txrH);
+ var txr = txrQ[txrQ.length - 2];
+ var addNewTxr = /* @__PURE__ */ __name(function addNewTxr2() {
+ return self2.recycleTexture(txrH, eleScaledW) || self2.addTexture(txrH, eleScaledW);
+ }, "addNewTxr");
+ if (!txr) {
+ txr = txrQ[txrQ.length - 1];
+ }
+ if (!txr) {
+ txr = addNewTxr();
+ }
+ if (txr.width - txr.usedWidth < eleScaledW) {
+ txr = addNewTxr();
+ }
+ var scalableFrom = /* @__PURE__ */ __name(function scalableFrom2(otherCache) {
+ return otherCache && otherCache.scaledLabelShown === scaledLabelShown;
+ }, "scalableFrom");
+ var deqing = reason && reason === getTxrReasons.dequeue;
+ var highQualityReq = reason && reason === getTxrReasons.highQuality;
+ var downscaleReq = reason && reason === getTxrReasons.downscale;
+ var higherCache;
+ for (var l2 = lvl + 1; l2 <= maxLvl$1; l2++) {
+ var c3 = lookup2.get(ele, l2);
+ if (c3) {
+ higherCache = c3;
+ break;
}
- };
- if (_p.styleEnabled) {
- cy.setStyle([]);
}
- var rendererOptions = extend2({}, options2, options2.renderer);
- cy.initRenderer(rendererOptions);
- var setElesAndLayout = function setElesAndLayout2(elements2, onload, ondone) {
- cy.notifications(false);
- var oldEles = cy.mutableElements();
- if (oldEles.length > 0) {
- oldEles.remove();
+ var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;
+ var downscale = /* @__PURE__ */ __name(function downscale2() {
+ txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);
+ }, "downscale");
+ txr.context.setTransform(1, 0, 0, 1, 0, 0);
+ txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);
+ if (scalableFrom(oneUpCache)) {
+ downscale();
+ } else if (scalableFrom(higherCache)) {
+ if (highQualityReq) {
+ for (var _l = higherCache.level; _l > lvl; _l--) {
+ oneUpCache = self2.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);
+ }
+ downscale();
+ } else {
+ self2.queueElement(ele, higherCache.level - 1);
+ return higherCache;
}
- if (elements2 != null) {
- if (plainObject(elements2) || array2(elements2)) {
- cy.add(elements2);
+ } else {
+ var lowerCache;
+ if (!deqing && !highQualityReq && !downscaleReq) {
+ for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {
+ var _c = lookup2.get(ele, _l2);
+ if (_c) {
+ lowerCache = _c;
+ break;
+ }
}
}
- cy.one("layoutready", function(e) {
- cy.notifications(true);
- cy.emit(e);
- cy.one("load", onload);
- cy.emitAndNotify("load");
- }).one("layoutstop", function() {
- cy.one("done", ondone);
- cy.emit("done");
- });
- var layoutOpts = extend2({}, cy._private.options.layout);
- layoutOpts.eles = cy.elements();
- cy.layout(layoutOpts).run();
- };
- loadExtData([options2.style, options2.elements], function(thens) {
- var initStyle = thens[0];
- var initEles = thens[1];
- if (_p.styleEnabled) {
- cy.style().append(initStyle);
+ if (scalableFrom(lowerCache)) {
+ self2.queueElement(ele, lvl);
+ return lowerCache;
}
- setElesAndLayout(initEles, function() {
- cy.startAnimationLoop();
- _p.ready = true;
- if (fn$6(options2.ready)) {
- cy.on("ready", options2.ready);
- }
- for (var i3 = 0; i3 < readies.length; i3++) {
- var fn2 = readies[i3];
- cy.on("ready", fn2);
- }
- if (reg) {
- reg.readies = [];
- }
- cy.emit("ready");
- }, options2.done);
- });
+ txr.context.translate(txr.usedWidth, 0);
+ txr.context.scale(scale, scale);
+ this.drawElement(txr.context, ele, bb, scaledLabelShown, false);
+ txr.context.scale(1 / scale, 1 / scale);
+ txr.context.translate(-txr.usedWidth, 0);
+ }
+ eleCache = {
+ x: txr.usedWidth,
+ texture: txr,
+ level: lvl,
+ scale,
+ width: eleScaledW,
+ height: eleScaledH,
+ scaledLabelShown
+ };
+ txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);
+ txr.eleCaches.push(eleCache);
+ lookup2.set(ele, lvl, eleCache);
+ self2.checkTextureFullness(txr);
+ return eleCache;
};
- var corefn = Core.prototype;
- extend2(corefn, {
- instanceString: function instanceString() {
- return "core";
- },
- isReady: function isReady() {
- return this._private.ready;
- },
- destroyed: function destroyed() {
- return this._private.destroyed;
- },
- ready: function ready(fn2) {
- if (this.isReady()) {
- this.emitter().emit("ready", [], fn2);
- } else {
- this.on("ready", fn2);
+ ETCp.invalidateElements = function(eles) {
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ this.invalidateElement(eles[i2]);
+ }
+ };
+ ETCp.invalidateElement = function(ele) {
+ var self2 = this;
+ var lookup2 = self2.lookup;
+ var caches = [];
+ var invalid = lookup2.isInvalid(ele);
+ if (!invalid) {
+ return;
+ }
+ for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {
+ var cache3 = lookup2.getForCachedKey(ele, lvl);
+ if (cache3) {
+ caches.push(cache3);
}
- return this;
- },
- destroy: function destroy() {
- var cy = this;
- if (cy.destroyed())
- return;
- cy.stopAnimationLoop();
- cy.destroyRenderer();
- this.emit("destroy");
- cy._private.destroyed = true;
- return cy;
- },
- hasElementWithId: function hasElementWithId(id2) {
- return this._private.elements.hasElementWithId(id2);
- },
- getElementById: function getElementById2(id2) {
- return this._private.elements.getElementById(id2);
- },
- hasCompoundNodes: function hasCompoundNodes() {
- return this._private.hasCompoundNodes;
- },
- headless: function headless() {
- return this._private.renderer.isHeadless();
- },
- styleEnabled: function styleEnabled() {
- return this._private.styleEnabled;
- },
- addToPool: function addToPool(eles) {
- this._private.elements.merge(eles);
- return this;
- },
- removeFromPool: function removeFromPool(eles) {
- this._private.elements.unmerge(eles);
- return this;
- },
- container: function container() {
- return this._private.container || null;
- },
- mount: function mount(container) {
- if (container == null) {
- return;
+ }
+ var noOtherElesUseCache = lookup2.invalidate(ele);
+ if (noOtherElesUseCache) {
+ for (var i2 = 0; i2 < caches.length; i2++) {
+ var _cache = caches[i2];
+ var txr = _cache.texture;
+ txr.invalidatedWidth += _cache.width;
+ _cache.invalidated = true;
+ self2.checkTextureUtility(txr);
}
- var cy = this;
- var _p = cy._private;
- var options2 = _p.options;
- if (!htmlElement(container) && htmlElement(container[0])) {
- container = container[0];
+ }
+ self2.removeFromQueue(ele);
+ };
+ ETCp.checkTextureUtility = function(txr) {
+ if (txr.invalidatedWidth >= minUtility * txr.width) {
+ this.retireTexture(txr);
+ }
+ };
+ ETCp.checkTextureFullness = function(txr) {
+ var self2 = this;
+ var txrQ = self2.getTextureQueue(txr.height);
+ if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {
+ removeFromArray(txrQ, txr);
+ } else {
+ txr.fullnessChecks++;
+ }
+ };
+ ETCp.retireTexture = function(txr) {
+ var self2 = this;
+ var txrH = txr.height;
+ var txrQ = self2.getTextureQueue(txrH);
+ var lookup2 = this.lookup;
+ removeFromArray(txrQ, txr);
+ txr.retired = true;
+ var eleCaches = txr.eleCaches;
+ for (var i2 = 0; i2 < eleCaches.length; i2++) {
+ var eleCache = eleCaches[i2];
+ lookup2.deleteCache(eleCache.key, eleCache.level);
+ }
+ clearArray(eleCaches);
+ var rtxtrQ = self2.getRetiredTextureQueue(txrH);
+ rtxtrQ.push(txr);
+ };
+ ETCp.addTexture = function(txrH, minW) {
+ var self2 = this;
+ var txrQ = self2.getTextureQueue(txrH);
+ var txr = {};
+ txrQ.push(txr);
+ txr.eleCaches = [];
+ txr.height = txrH;
+ txr.width = Math.max(defTxrWidth, minW);
+ txr.usedWidth = 0;
+ txr.invalidatedWidth = 0;
+ txr.fullnessChecks = 0;
+ txr.canvas = self2.renderer.makeOffscreenCanvas(txr.width, txr.height);
+ txr.context = txr.canvas.getContext("2d");
+ return txr;
+ };
+ ETCp.recycleTexture = function(txrH, minW) {
+ var self2 = this;
+ var txrQ = self2.getTextureQueue(txrH);
+ var rtxtrQ = self2.getRetiredTextureQueue(txrH);
+ for (var i2 = 0; i2 < rtxtrQ.length; i2++) {
+ var txr = rtxtrQ[i2];
+ if (txr.width >= minW) {
+ txr.retired = false;
+ txr.usedWidth = 0;
+ txr.invalidatedWidth = 0;
+ txr.fullnessChecks = 0;
+ clearArray(txr.eleCaches);
+ txr.context.setTransform(1, 0, 0, 1, 0, 0);
+ txr.context.clearRect(0, 0, txr.width, txr.height);
+ removeFromArray(rtxtrQ, txr);
+ txrQ.push(txr);
+ return txr;
}
- cy.stopAnimationLoop();
- cy.destroyRenderer();
- _p.container = container;
- _p.styleEnabled = true;
- cy.invalidateSize();
- cy.initRenderer(extend2({}, options2, options2.renderer, {
- // allow custom renderer name to be re-used, otherwise use canvas
- name: options2.renderer.name === "null" ? "canvas" : options2.renderer.name
- }));
- cy.startAnimationLoop();
- cy.style(options2.style);
- cy.emit("mount");
- return cy;
- },
- unmount: function unmount() {
- var cy = this;
- cy.stopAnimationLoop();
- cy.destroyRenderer();
- cy.initRenderer({
- name: "null"
- });
- cy.emit("unmount");
- return cy;
- },
- options: function options2() {
- return copy2(this._private.options);
- },
- json: function json2(obj) {
- var cy = this;
- var _p = cy._private;
- var eles = cy.mutableElements();
- var getFreshRef = function getFreshRef2(ele) {
- return cy.getElementById(ele.id());
+ }
+ };
+ ETCp.queueElement = function(ele, lvl) {
+ var self2 = this;
+ var q2 = self2.getElementQueue();
+ var k2q = self2.getElementKeyToQueue();
+ var key = this.getKey(ele);
+ var existingReq = k2q[key];
+ if (existingReq) {
+ existingReq.level = Math.max(existingReq.level, lvl);
+ existingReq.eles.merge(ele);
+ existingReq.reqs++;
+ q2.updateItem(existingReq);
+ } else {
+ var req = {
+ eles: ele.spawn().merge(ele),
+ level: lvl,
+ reqs: 1,
+ key
};
- if (plainObject(obj)) {
- cy.startBatch();
- if (obj.elements) {
- var idInJson = {};
- var updateEles = function updateEles2(jsons, gr2) {
- var toAdd = [];
- var toMod = [];
- for (var i4 = 0; i4 < jsons.length; i4++) {
- var json4 = jsons[i4];
- if (!json4.data.id) {
- warn("cy.json() cannot handle elements without an ID attribute");
- continue;
- }
- var id2 = "" + json4.data.id;
- var ele = cy.getElementById(id2);
- idInJson[id2] = true;
- if (ele.length !== 0) {
- toMod.push({
- ele,
- json: json4
- });
- } else {
- if (gr2) {
- json4.group = gr2;
- toAdd.push(json4);
- } else {
- toAdd.push(json4);
- }
- }
- }
- cy.add(toAdd);
- for (var _i = 0; _i < toMod.length; _i++) {
- var _toMod$_i = toMod[_i], _ele = _toMod$_i.ele, _json = _toMod$_i.json;
- _ele.json(_json);
- }
- };
- if (array2(obj.elements)) {
- updateEles(obj.elements);
- } else {
- var grs = ["nodes", "edges"];
- for (var i3 = 0; i3 < grs.length; i3++) {
- var gr = grs[i3];
- var elements2 = obj.elements[gr];
- if (array2(elements2)) {
- updateEles(elements2, gr);
- }
- }
- }
- var parentsToRemove = cy.collection();
- eles.filter(function(ele) {
- return !idInJson[ele.id()];
- }).forEach(function(ele) {
- if (ele.isParent()) {
- parentsToRemove.merge(ele);
- } else {
- ele.remove();
- }
- });
- parentsToRemove.forEach(function(ele) {
- return ele.children().move({
- parent: null
- });
- });
- parentsToRemove.forEach(function(ele) {
- return getFreshRef(ele).remove();
- });
- }
- if (obj.style) {
- cy.style(obj.style);
- }
- if (obj.zoom != null && obj.zoom !== _p.zoom) {
- cy.zoom(obj.zoom);
- }
- if (obj.pan) {
- if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {
- cy.pan(obj.pan);
- }
- }
- if (obj.data) {
- cy.data(obj.data);
- }
- var fields = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"];
- for (var _i2 = 0; _i2 < fields.length; _i2++) {
- var f2 = fields[_i2];
- if (obj[f2] != null) {
- cy[f2](obj[f2]);
- }
+ q2.push(req);
+ k2q[key] = req;
+ }
+ };
+ ETCp.dequeue = function(pxRatio) {
+ var self2 = this;
+ var q2 = self2.getElementQueue();
+ var k2q = self2.getElementKeyToQueue();
+ var dequeued = [];
+ var lookup2 = self2.lookup;
+ for (var i2 = 0; i2 < maxDeqSize$1; i2++) {
+ if (q2.size() > 0) {
+ var req = q2.pop();
+ var key = req.key;
+ var ele = req.eles[0];
+ var cacheExists = lookup2.hasCache(ele, req.level);
+ k2q[key] = null;
+ if (cacheExists) {
+ continue;
}
- cy.endBatch();
- return this;
+ dequeued.push(req);
+ var bb = self2.getBoundingBox(ele);
+ self2.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);
} else {
- var flat = !!obj;
- var json3 = {};
- if (flat) {
- json3.elements = this.elements().map(function(ele) {
- return ele.json();
- });
- } else {
- json3.elements = {};
- eles.forEach(function(ele) {
- var group = ele.group();
- if (!json3.elements[group]) {
- json3.elements[group] = [];
- }
- json3.elements[group].push(ele.json());
- });
- }
- if (this._private.styleEnabled) {
- json3.style = cy.style().json();
- }
- json3.data = copy2(cy.data());
- var options2 = _p.options;
- json3.zoomingEnabled = _p.zoomingEnabled;
- json3.userZoomingEnabled = _p.userZoomingEnabled;
- json3.zoom = _p.zoom;
- json3.minZoom = _p.minZoom;
- json3.maxZoom = _p.maxZoom;
- json3.panningEnabled = _p.panningEnabled;
- json3.userPanningEnabled = _p.userPanningEnabled;
- json3.pan = copy2(_p.pan);
- json3.boxSelectionEnabled = _p.boxSelectionEnabled;
- json3.renderer = copy2(options2.renderer);
- json3.hideEdgesOnViewport = options2.hideEdgesOnViewport;
- json3.textureOnViewport = options2.textureOnViewport;
- json3.wheelSensitivity = options2.wheelSensitivity;
- json3.motionBlur = options2.motionBlur;
- json3.multiClickDebounceTime = options2.multiClickDebounceTime;
- return json3;
+ break;
}
}
- });
- corefn.$id = corefn.getElementById;
- [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function(props) {
- extend2(corefn, props);
- });
- var defaults$7 = {
- fit: true,
- // whether to fit the viewport to the graph
- directed: false,
- // whether the tree is directed downwards (or edges can point in any direction if false)
- padding: 30,
- // padding on fit
- circle: false,
- // put depths in concentric circles if true, put depths top down if false
- grid: false,
- // whether to create an even grid into which the DAG is placed (circle:false only)
- spacingFactor: 1.75,
- // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)
- boundingBox: void 0,
- // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
- avoidOverlap: true,
- // prevents node overlap, may overflow boundingBox if not enough space
- nodeDimensionsIncludeLabels: false,
- // Excludes the label when calculating node bounding boxes for the layout algorithm
- roots: void 0,
- // the roots of the trees
- maximal: false,
- // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only)
- depthSort: void 0,
- // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }
- animate: false,
- // whether to transition the node positions
- animationDuration: 500,
- // duration of animation in ms if enabled
- animationEasing: void 0,
- // easing of animation if enabled,
- animateFilter: function animateFilter(node2, i3) {
- return true;
- },
- // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
- ready: void 0,
- // callback on layoutready
- stop: void 0,
- // callback on layoutstop
- transform: function transform(node2, position3) {
- return position3;
+ return dequeued;
+ };
+ ETCp.removeFromQueue = function(ele) {
+ var self2 = this;
+ var q2 = self2.getElementQueue();
+ var k2q = self2.getElementKeyToQueue();
+ var key = this.getKey(ele);
+ var req = k2q[key];
+ if (req != null) {
+ if (req.eles.length === 1) {
+ req.reqs = MAX_INT$1;
+ q2.updateItem(req);
+ q2.pop();
+ k2q[key] = null;
+ } else {
+ req.eles.unmerge(ele);
+ }
}
- // transform a given node position. Useful for changing flow direction in discrete layouts
};
- var getInfo2 = function getInfo3(ele) {
- return ele.scratch("breadthfirst");
+ ETCp.onDequeue = function(fn3) {
+ this.onDequeues.push(fn3);
};
- var setInfo2 = function setInfo3(ele, obj) {
- return ele.scratch("breadthfirst", obj);
+ ETCp.offDequeue = function(fn3) {
+ removeFromArray(this.onDequeues, fn3);
};
- function BreadthFirstLayout(options2) {
- this.options = extend2({}, defaults$7, options2);
- }
- BreadthFirstLayout.prototype.run = function() {
- var params = this.options;
- var options2 = params;
- var cy = params.cy;
- var eles = options2.eles;
- var nodes2 = eles.nodes().filter(function(n2) {
- return !n2.isParent();
- });
- var graph = eles;
- var directed = options2.directed;
- var maximal = options2.maximal || options2.maximalAdjustments > 0;
- var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
- x1: 0,
- y1: 0,
- w: cy.width(),
- h: cy.height()
- });
- var roots;
- if (elementOrCollection(options2.roots)) {
- roots = options2.roots;
- } else if (array2(options2.roots)) {
- var rootsArray = [];
- for (var i3 = 0; i3 < options2.roots.length; i3++) {
- var id2 = options2.roots[i3];
- var ele = cy.getElementById(id2);
- rootsArray.push(ele);
+ ETCp.setupDequeueing = defs.setupDequeueing({
+ deqRedrawThreshold: deqRedrawThreshold$1,
+ deqCost: deqCost$1,
+ deqAvgCost: deqAvgCost$1,
+ deqNoDrawCost: deqNoDrawCost$1,
+ deqFastCost: deqFastCost$1,
+ deq: /* @__PURE__ */ __name(function deq(self2, pxRatio, extent2) {
+ return self2.dequeue(pxRatio, extent2);
+ }, "deq"),
+ onDeqd: /* @__PURE__ */ __name(function onDeqd(self2, deqd) {
+ for (var i2 = 0; i2 < self2.onDequeues.length; i2++) {
+ var fn3 = self2.onDequeues[i2];
+ fn3(deqd);
+ }
+ }, "onDeqd"),
+ shouldRedraw: /* @__PURE__ */ __name(function shouldRedraw(self2, deqd, pxRatio, extent2) {
+ for (var i2 = 0; i2 < deqd.length; i2++) {
+ var eles = deqd[i2].eles;
+ for (var j2 = 0; j2 < eles.length; j2++) {
+ var bb = eles[j2].boundingBox();
+ if (boundingBoxesIntersect(bb, extent2)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }, "shouldRedraw"),
+ priority: /* @__PURE__ */ __name(function priority(self2) {
+ return self2.renderer.beforeRenderPriorities.eleTxrDeq;
+ }, "priority")
+ });
+ defNumLayers = 1;
+ minLvl = -4;
+ maxLvl = 2;
+ maxZoom2 = 3.99;
+ deqRedrawThreshold = 50;
+ refineEleDebounceTime = 50;
+ deqCost = 0.15;
+ deqAvgCost = 0.1;
+ deqNoDrawCost = 0.9;
+ deqFastCost = 0.9;
+ maxDeqSize = 1;
+ invalidThreshold = 250;
+ maxLayerArea = 4e3 * 4e3;
+ useHighQualityEleTxrReqs = true;
+ LayeredTextureCache = /* @__PURE__ */ __name(function LayeredTextureCache2(renderer8) {
+ var self2 = this;
+ var r2 = self2.renderer = renderer8;
+ var cy = r2.cy;
+ self2.layersByLevel = {};
+ self2.firstGet = true;
+ self2.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;
+ self2.skipping = false;
+ self2.eleTxrDeqs = cy.collection();
+ self2.scheduleElementRefinement = debounce_1(function() {
+ self2.refineElementTextures(self2.eleTxrDeqs);
+ self2.eleTxrDeqs.unmerge(self2.eleTxrDeqs);
+ }, refineEleDebounceTime);
+ r2.beforeRender(function(willDraw, now4) {
+ if (now4 - self2.lastInvalidationTime <= invalidThreshold) {
+ self2.skipping = true;
+ } else {
+ self2.skipping = false;
+ }
+ }, r2.beforeRenderPriorities.lyrTxrSkip);
+ var qSort = /* @__PURE__ */ __name(function qSort2(a2, b2) {
+ return b2.reqs - a2.reqs;
+ }, "qSort");
+ self2.layersQueue = new heap(qSort);
+ self2.setupDequeueing();
+ }, "LayeredTextureCache");
+ LTCp = LayeredTextureCache.prototype;
+ layerIdPool = 0;
+ MAX_INT = Math.pow(2, 53) - 1;
+ LTCp.makeLayer = function(bb, lvl) {
+ var scale = Math.pow(2, lvl);
+ var w3 = Math.ceil(bb.w * scale);
+ var h2 = Math.ceil(bb.h * scale);
+ var canvas = this.renderer.makeOffscreenCanvas(w3, h2);
+ var layer = {
+ id: layerIdPool = ++layerIdPool % MAX_INT,
+ bb,
+ level: lvl,
+ width: w3,
+ height: h2,
+ canvas,
+ context: canvas.getContext("2d"),
+ eles: [],
+ elesQueue: [],
+ reqs: 0
+ };
+ var cxt = layer.context;
+ var dx = -layer.bb.x1;
+ var dy = -layer.bb.y1;
+ cxt.scale(scale, scale);
+ cxt.translate(dx, dy);
+ return layer;
+ };
+ LTCp.getLayers = function(eles, pxRatio, lvl) {
+ var self2 = this;
+ var r2 = self2.renderer;
+ var cy = r2.cy;
+ var zoom2 = cy.zoom();
+ var firstGet = self2.firstGet;
+ self2.firstGet = false;
+ if (lvl == null) {
+ lvl = Math.ceil(log22(zoom2 * pxRatio));
+ if (lvl < minLvl) {
+ lvl = minLvl;
+ } else if (zoom2 >= maxZoom2 || lvl > maxLvl) {
+ return null;
}
- roots = cy.collection(rootsArray);
- } else if (string(options2.roots)) {
- roots = cy.$(options2.roots);
- } else {
- if (directed) {
- roots = nodes2.roots();
- } else {
- var components = eles.components();
- roots = cy.collection();
- var _loop = function _loop2(_i3) {
- var comp = components[_i3];
- var maxDegree = comp.maxDegree(false);
- var compRoots = comp.filter(function(ele2) {
- return ele2.degree(false) === maxDegree;
- });
- roots = roots.add(compRoots);
- };
- for (var _i = 0; _i < components.length; _i++) {
- _loop(_i);
+ }
+ self2.validateLayersElesOrdering(lvl, eles);
+ var layersByLvl = self2.layersByLevel;
+ var scale = Math.pow(2, lvl);
+ var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];
+ var bb;
+ var lvlComplete = self2.levelIsComplete(lvl, eles);
+ var tmpLayers;
+ var checkTempLevels = /* @__PURE__ */ __name(function checkTempLevels2() {
+ var canUseAsTmpLvl = /* @__PURE__ */ __name(function canUseAsTmpLvl2(l2) {
+ self2.validateLayersElesOrdering(l2, eles);
+ if (self2.levelIsComplete(l2, eles)) {
+ tmpLayers = layersByLvl[l2];
+ return true;
+ }
+ }, "canUseAsTmpLvl");
+ var checkLvls = /* @__PURE__ */ __name(function checkLvls2(dir2) {
+ if (tmpLayers) {
+ return;
+ }
+ for (var l2 = lvl + dir2; minLvl <= l2 && l2 <= maxLvl; l2 += dir2) {
+ if (canUseAsTmpLvl(l2)) {
+ break;
+ }
+ }
+ }, "checkLvls");
+ checkLvls(1);
+ checkLvls(-1);
+ for (var i3 = layers.length - 1; i3 >= 0; i3--) {
+ var layer2 = layers[i3];
+ if (layer2.invalid) {
+ removeFromArray(layers, layer2);
}
}
+ }, "checkTempLevels");
+ if (!lvlComplete) {
+ checkTempLevels();
+ } else {
+ return layers;
}
- var depths = [];
- var foundByBfs = {};
- var addToDepth = function addToDepth2(ele2, d) {
- if (depths[d] == null) {
- depths[d] = [];
- }
- var i4 = depths[d].length;
- depths[d].push(ele2);
- setInfo2(ele2, {
- index: i4,
- depth: d
- });
- };
- var changeDepth = function changeDepth2(ele2, newDepth) {
- var _getInfo = getInfo2(ele2), depth = _getInfo.depth, index = _getInfo.index;
- depths[depth][index] = null;
- addToDepth(ele2, newDepth);
- };
- graph.bfs({
- roots,
- directed: options2.directed,
- visit: function visit(node2, edge, pNode, i4, depth) {
- var ele2 = node2[0];
- var id3 = ele2.id();
- addToDepth(ele2, depth);
- foundByBfs[id3] = true;
+ var getBb = /* @__PURE__ */ __name(function getBb2() {
+ if (!bb) {
+ bb = makeBoundingBox();
+ for (var i3 = 0; i3 < eles.length; i3++) {
+ updateBoundingBox(bb, eles[i3].boundingBox());
+ }
}
- });
- var orphanNodes = [];
- for (var _i2 = 0; _i2 < nodes2.length; _i2++) {
- var _ele = nodes2[_i2];
- if (foundByBfs[_ele.id()]) {
- continue;
- } else {
- orphanNodes.push(_ele);
+ return bb;
+ }, "getBb");
+ var makeLayer = /* @__PURE__ */ __name(function makeLayer2(opts) {
+ opts = opts || {};
+ var after = opts.after;
+ getBb();
+ var area = bb.w * scale * (bb.h * scale);
+ if (area > maxLayerArea) {
+ return null;
+ }
+ var layer2 = self2.makeLayer(bb, lvl);
+ if (after != null) {
+ var index = layers.indexOf(after) + 1;
+ layers.splice(index, 0, layer2);
+ } else if (opts.insert === void 0 || opts.insert) {
+ layers.unshift(layer2);
}
+ return layer2;
+ }, "makeLayer");
+ if (self2.skipping && !firstGet) {
+ return null;
}
- var assignDepthsAt = function assignDepthsAt2(i4) {
- var eles2 = depths[i4];
- for (var j = 0; j < eles2.length; j++) {
- var _ele2 = eles2[j];
- if (_ele2 == null) {
- eles2.splice(j, 1);
- j--;
- continue;
- }
- setInfo2(_ele2, {
- depth: i4,
- index: j
+ var layer = null;
+ var maxElesPerLayer = eles.length / defNumLayers;
+ var allowLazyQueueing = !firstGet;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ var rs = ele._private.rscratch;
+ var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
+ var existingLayer = caches[lvl];
+ if (existingLayer) {
+ layer = existingLayer;
+ continue;
+ }
+ if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {
+ layer = makeLayer({
+ insert: true,
+ after: layer
});
+ if (!layer) {
+ return null;
+ }
}
- };
- var assignDepths = function assignDepths2() {
- for (var _i3 = 0; _i3 < depths.length; _i3++) {
- assignDepthsAt(_i3);
+ if (tmpLayers || allowLazyQueueing) {
+ self2.queueLayer(layer, ele);
+ } else {
+ self2.drawEleInLayer(layer, ele, lvl, pxRatio);
}
- };
- var adjustMaximally = function adjustMaximally2(ele2, shifted2) {
- var eInfo = getInfo2(ele2);
- var incomers = ele2.incomers().filter(function(el) {
- return el.isNode() && eles.has(el);
- });
- var maxDepth = -1;
- var id3 = ele2.id();
- for (var k = 0; k < incomers.length; k++) {
- var incmr = incomers[k];
- var iInfo = getInfo2(incmr);
- maxDepth = Math.max(maxDepth, iInfo.depth);
+ layer.eles.push(ele);
+ caches[lvl] = layer;
+ }
+ if (tmpLayers) {
+ return tmpLayers;
+ }
+ if (allowLazyQueueing) {
+ return null;
+ }
+ return layers;
+ };
+ LTCp.getEleLevelForLayerLevel = function(lvl, pxRatio) {
+ return lvl;
+ };
+ LTCp.drawEleInLayer = function(layer, ele, lvl, pxRatio) {
+ var self2 = this;
+ var r2 = this.renderer;
+ var context = layer.context;
+ var bb = ele.boundingBox();
+ if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
+ return;
+ }
+ lvl = self2.getEleLevelForLayerLevel(lvl, pxRatio);
+ {
+ r2.setImgSmoothing(context, false);
+ }
+ {
+ r2.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);
+ }
+ {
+ r2.setImgSmoothing(context, true);
+ }
+ };
+ LTCp.levelIsComplete = function(lvl, eles) {
+ var self2 = this;
+ var layers = self2.layersByLevel[lvl];
+ if (!layers || layers.length === 0) {
+ return false;
+ }
+ var numElesInLayers = 0;
+ for (var i2 = 0; i2 < layers.length; i2++) {
+ var layer = layers[i2];
+ if (layer.reqs > 0) {
+ return false;
}
- if (eInfo.depth <= maxDepth) {
- if (shifted2[id3]) {
- return null;
- }
- changeDepth(ele2, maxDepth + 1);
- shifted2[id3] = true;
- return true;
+ if (layer.invalid) {
+ return false;
}
+ numElesInLayers += layer.eles.length;
+ }
+ if (numElesInLayers !== eles.length) {
return false;
- };
- if (directed && maximal) {
- var Q2 = [];
- var shifted = {};
- var enqueue = function enqueue2(n2) {
- return Q2.push(n2);
- };
- var dequeue = function dequeue2() {
- return Q2.shift();
- };
- nodes2.forEach(function(n2) {
- return Q2.push(n2);
- });
- while (Q2.length > 0) {
- var _ele3 = dequeue();
- var didShift = adjustMaximally(_ele3, shifted);
- if (didShift) {
- _ele3.outgoers().filter(function(el) {
- return el.isNode() && eles.has(el);
- }).forEach(enqueue);
- } else if (didShift === null) {
- warn("Detected double maximal shift for node `" + _ele3.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");
+ }
+ return true;
+ };
+ LTCp.validateLayersElesOrdering = function(lvl, eles) {
+ var layers = this.layersByLevel[lvl];
+ if (!layers) {
+ return;
+ }
+ for (var i2 = 0; i2 < layers.length; i2++) {
+ var layer = layers[i2];
+ var offset = -1;
+ for (var j2 = 0; j2 < eles.length; j2++) {
+ if (layer.eles[0] === eles[j2]) {
+ offset = j2;
break;
}
}
- }
- assignDepths();
- var minDistance = 0;
- if (options2.avoidOverlap) {
- for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
- var n = nodes2[_i4];
- var nbb = n.layoutDimensions(options2);
- var w2 = nbb.w;
- var h = nbb.h;
- minDistance = Math.max(minDistance, w2, h);
- }
- }
- var cachedWeightedPercent = {};
- var getWeightedPercent = function getWeightedPercent2(ele2) {
- if (cachedWeightedPercent[ele2.id()]) {
- return cachedWeightedPercent[ele2.id()];
+ if (offset < 0) {
+ this.invalidateLayer(layer);
+ continue;
}
- var eleDepth = getInfo2(ele2).depth;
- var neighbors = ele2.neighborhood();
- var percent = 0;
- var samples = 0;
- for (var _i5 = 0; _i5 < neighbors.length; _i5++) {
- var neighbor = neighbors[_i5];
- if (neighbor.isEdge() || neighbor.isParent() || !nodes2.has(neighbor)) {
- continue;
+ var o2 = offset;
+ for (var j2 = 0; j2 < layer.eles.length; j2++) {
+ if (layer.eles[j2] !== eles[o2 + j2]) {
+ this.invalidateLayer(layer);
+ break;
}
- var bf = getInfo2(neighbor);
- if (bf == null) {
+ }
+ }
+ };
+ LTCp.updateElementsInLayers = function(eles, update2) {
+ var self2 = this;
+ var isEles = element(eles[0]);
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var req = isEles ? null : eles[i2];
+ var ele = isEles ? eles[i2] : eles[i2].ele;
+ var rs = ele._private.rscratch;
+ var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
+ for (var l2 = minLvl; l2 <= maxLvl; l2++) {
+ var layer = caches[l2];
+ if (!layer) {
continue;
}
- var index = bf.index;
- var depth = bf.depth;
- if (index == null || depth == null) {
+ if (req && self2.getEleLevelForLayerLevel(layer.level) !== req.level) {
continue;
}
- var nDepth = depths[depth].length;
- if (depth < eleDepth) {
- percent += index / nDepth;
- samples++;
- }
- }
- samples = Math.max(1, samples);
- percent = percent / samples;
- if (samples === 0) {
- percent = 0;
+ update2(layer, ele, req);
}
- cachedWeightedPercent[ele2.id()] = percent;
- return percent;
- };
- var sortFn = function sortFn2(a, b) {
- var apct = getWeightedPercent(a);
- var bpct = getWeightedPercent(b);
- var diff = apct - bpct;
- if (diff === 0) {
- return ascending2(a.id(), b.id());
- } else {
- return diff;
+ }
+ };
+ LTCp.haveLayers = function() {
+ var self2 = this;
+ var haveLayers = false;
+ for (var l2 = minLvl; l2 <= maxLvl; l2++) {
+ var layers = self2.layersByLevel[l2];
+ if (layers && layers.length > 0) {
+ haveLayers = true;
+ break;
}
- };
- if (options2.depthSort !== void 0) {
- sortFn = options2.depthSort;
}
- for (var _i6 = 0; _i6 < depths.length; _i6++) {
- depths[_i6].sort(sortFn);
- assignDepthsAt(_i6);
+ return haveLayers;
+ };
+ LTCp.invalidateElements = function(eles) {
+ var self2 = this;
+ if (eles.length === 0) {
+ return;
}
- var orphanDepth = [];
- for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) {
- orphanDepth.push(orphanNodes[_i7]);
+ self2.lastInvalidationTime = performanceNow();
+ if (eles.length === 0 || !self2.haveLayers()) {
+ return;
}
- depths.unshift(orphanDepth);
- assignDepths();
- var biggestDepthSize = 0;
- for (var _i8 = 0; _i8 < depths.length; _i8++) {
- biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);
+ self2.updateElementsInLayers(eles, /* @__PURE__ */ __name(function invalAssocLayers(layer, ele, req) {
+ self2.invalidateLayer(layer);
+ }, "invalAssocLayers"));
+ };
+ LTCp.invalidateLayer = function(layer) {
+ this.lastInvalidationTime = performanceNow();
+ if (layer.invalid) {
+ return;
}
- var center2 = {
- x: bb.x1 + bb.w / 2,
- y: bb.x1 + bb.h / 2
- };
- var maxDepthSize = depths.reduce(function(max3, eles2) {
- return Math.max(max3, eles2.length);
- }, 0);
- var getPosition = function getPosition2(ele2) {
- var _getInfo2 = getInfo2(ele2), depth = _getInfo2.depth, index = _getInfo2.index;
- var depthSize = depths[depth].length;
- var distanceX = Math.max(bb.w / ((options2.grid ? maxDepthSize : depthSize) + 1), minDistance);
- var distanceY = Math.max(bb.h / (depths.length + 1), minDistance);
- var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length);
- radiusStepSize = Math.max(radiusStepSize, minDistance);
- if (!options2.circle) {
- var epos = {
- x: center2.x + (index + 1 - (depthSize + 1) / 2) * distanceX,
- y: (depth + 1) * distanceY
- };
- return epos;
- } else {
- var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);
- var theta = 2 * Math.PI / depths[depth].length * index;
- if (depth === 0 && depths[0].length === 1) {
- radius = 1;
+ var lvl = layer.level;
+ var eles = layer.eles;
+ var layers = this.layersByLevel[lvl];
+ removeFromArray(layers, layer);
+ layer.elesQueue = [];
+ layer.invalid = true;
+ if (layer.replacement) {
+ layer.replacement.invalid = true;
+ }
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var caches = eles[i2]._private.rscratch.imgLayerCaches;
+ if (caches) {
+ caches[lvl] = null;
+ }
+ }
+ };
+ LTCp.refineElementTextures = function(eles) {
+ var self2 = this;
+ self2.updateElementsInLayers(eles, /* @__PURE__ */ __name(function refineEachEle(layer, ele, req) {
+ var rLyr = layer.replacement;
+ if (!rLyr) {
+ rLyr = layer.replacement = self2.makeLayer(layer.bb, layer.level);
+ rLyr.replaces = layer;
+ rLyr.eles = layer.eles;
+ }
+ if (!rLyr.reqs) {
+ for (var i2 = 0; i2 < rLyr.eles.length; i2++) {
+ self2.queueLayer(rLyr, rLyr.eles[i2]);
}
- return {
- x: center2.x + radius * Math.cos(theta),
- y: center2.y + radius * Math.sin(theta)
- };
}
- };
- eles.nodes().layoutPositions(this, options2, getPosition);
- return this;
+ }, "refineEachEle"));
};
- var defaults$6 = {
- fit: true,
- // whether to fit the viewport to the graph
- padding: 30,
- // the padding on fit
- boundingBox: void 0,
- // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
- avoidOverlap: true,
- // prevents node overlap, may overflow boundingBox and radius if not enough space
- nodeDimensionsIncludeLabels: false,
- // Excludes the label when calculating node bounding boxes for the layout algorithm
- spacingFactor: void 0,
- // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
- radius: void 0,
- // the radius of the circle
- startAngle: 3 / 2 * Math.PI,
- // where nodes start in radians
- sweep: void 0,
- // how many radians should be between the first and last node (defaults to full circle)
- clockwise: true,
- // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
- sort: void 0,
- // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
- animate: false,
- // whether to transition the node positions
- animationDuration: 500,
- // duration of animation in ms if enabled
- animationEasing: void 0,
- // easing of animation if enabled
- animateFilter: function animateFilter(node2, i3) {
- return true;
- },
- // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
- ready: void 0,
- // callback on layoutready
- stop: void 0,
- // callback on layoutstop
- transform: function transform(node2, position3) {
- return position3;
- }
- // transform a given node position. Useful for changing flow direction in discrete layouts
+ LTCp.enqueueElementRefinement = function(ele) {
+ this.eleTxrDeqs.merge(ele);
+ this.scheduleElementRefinement();
};
- function CircleLayout(options2) {
- this.options = extend2({}, defaults$6, options2);
- }
- CircleLayout.prototype.run = function() {
- var params = this.options;
- var options2 = params;
- var cy = params.cy;
- var eles = options2.eles;
- var clockwise = options2.counterclockwise !== void 0 ? !options2.counterclockwise : options2.clockwise;
- var nodes2 = eles.nodes().not(":parent");
- if (options2.sort) {
- nodes2 = nodes2.sort(options2.sort);
+ LTCp.queueLayer = function(layer, ele) {
+ var self2 = this;
+ var q2 = self2.layersQueue;
+ var elesQ = layer.elesQueue;
+ var hasId = elesQ.hasId = elesQ.hasId || {};
+ if (layer.replacement) {
+ return;
}
- var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
- x1: 0,
- y1: 0,
- w: cy.width(),
- h: cy.height()
- });
- var center2 = {
- x: bb.x1 + bb.w / 2,
- y: bb.y1 + bb.h / 2
- };
- var sweep = options2.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / nodes2.length : options2.sweep;
- var dTheta = sweep / Math.max(1, nodes2.length - 1);
- var r;
- var minDistance = 0;
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var n = nodes2[i3];
- var nbb = n.layoutDimensions(options2);
- var w2 = nbb.w;
- var h = nbb.h;
- minDistance = Math.max(minDistance, w2, h);
- }
- if (number$12(options2.radius)) {
- r = options2.radius;
- } else if (nodes2.length <= 1) {
- r = 0;
+ if (ele) {
+ if (hasId[ele.id()]) {
+ return;
+ }
+ elesQ.push(ele);
+ hasId[ele.id()] = true;
+ }
+ if (layer.reqs) {
+ layer.reqs++;
+ q2.updateItem(layer);
} else {
- r = Math.min(bb.h, bb.w) / 2 - minDistance;
+ layer.reqs = 1;
+ q2.push(layer);
}
- if (nodes2.length > 1 && options2.avoidOverlap) {
- minDistance *= 1.75;
- var dcos = Math.cos(dTheta) - Math.cos(0);
- var dsin = Math.sin(dTheta) - Math.sin(0);
- var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin));
- r = Math.max(rMin, r);
+ };
+ LTCp.dequeue = function(pxRatio) {
+ var self2 = this;
+ var q2 = self2.layersQueue;
+ var deqd = [];
+ var eleDeqs = 0;
+ while (eleDeqs < maxDeqSize) {
+ if (q2.size() === 0) {
+ break;
+ }
+ var layer = q2.peek();
+ if (layer.replacement) {
+ q2.pop();
+ continue;
+ }
+ if (layer.replaces && layer !== layer.replaces.replacement) {
+ q2.pop();
+ continue;
+ }
+ if (layer.invalid) {
+ q2.pop();
+ continue;
+ }
+ var ele = layer.elesQueue.shift();
+ if (ele) {
+ self2.drawEleInLayer(layer, ele, layer.level, pxRatio);
+ eleDeqs++;
+ }
+ if (deqd.length === 0) {
+ deqd.push(true);
+ }
+ if (layer.elesQueue.length === 0) {
+ q2.pop();
+ layer.reqs = 0;
+ if (layer.replaces) {
+ self2.applyLayerReplacement(layer);
+ }
+ self2.requestRedraw();
+ }
}
- var getPos = function getPos2(ele, i4) {
- var theta = options2.startAngle + i4 * dTheta * (clockwise ? 1 : -1);
- var rx = r * Math.cos(theta);
- var ry = r * Math.sin(theta);
- var pos = {
- x: center2.x + rx,
- y: center2.y + ry
- };
- return pos;
- };
- eles.nodes().layoutPositions(this, options2, getPos);
- return this;
+ return deqd;
};
- var defaults$5 = {
- fit: true,
- // whether to fit the viewport to the graph
- padding: 30,
- // the padding on fit
- startAngle: 3 / 2 * Math.PI,
- // where nodes start in radians
- sweep: void 0,
- // how many radians should be between the first and last node (defaults to full circle)
- clockwise: true,
- // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
- equidistant: false,
- // whether levels have an equal radial distance betwen them, may cause bounding box overflow
- minNodeSpacing: 10,
- // min spacing between outside of nodes (used for radius adjustment)
- boundingBox: void 0,
- // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
- avoidOverlap: true,
- // prevents node overlap, may overflow boundingBox if not enough space
- nodeDimensionsIncludeLabels: false,
- // Excludes the label when calculating node bounding boxes for the layout algorithm
- height: void 0,
- // height of layout area (overrides container height)
- width: void 0,
- // width of layout area (overrides container width)
- spacingFactor: void 0,
- // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
- concentric: function concentric(node2) {
- return node2.degree();
- },
- levelWidth: function levelWidth(nodes2) {
- return nodes2.maxDegree() / 4;
- },
- animate: false,
- // whether to transition the node positions
- animationDuration: 500,
- // duration of animation in ms if enabled
- animationEasing: void 0,
- // easing of animation if enabled
- animateFilter: function animateFilter(node2, i3) {
- return true;
- },
- // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
- ready: void 0,
- // callback on layoutready
- stop: void 0,
- // callback on layoutstop
- transform: function transform(node2, position3) {
- return position3;
+ LTCp.applyLayerReplacement = function(layer) {
+ var self2 = this;
+ var layersInLevel = self2.layersByLevel[layer.level];
+ var replaced = layer.replaces;
+ var index = layersInLevel.indexOf(replaced);
+ if (index < 0 || replaced.invalid) {
+ return;
}
- // transform a given node position. Useful for changing flow direction in discrete layouts
+ layersInLevel[index] = layer;
+ for (var i2 = 0; i2 < layer.eles.length; i2++) {
+ var _p = layer.eles[i2]._private;
+ var cache3 = _p.imgLayerCaches = _p.imgLayerCaches || {};
+ if (cache3) {
+ cache3[layer.level] = layer;
+ }
+ }
+ self2.requestRedraw();
};
- function ConcentricLayout(options2) {
- this.options = extend2({}, defaults$5, options2);
- }
- ConcentricLayout.prototype.run = function() {
- var params = this.options;
- var options2 = params;
- var clockwise = options2.counterclockwise !== void 0 ? !options2.counterclockwise : options2.clockwise;
- var cy = params.cy;
- var eles = options2.eles;
- var nodes2 = eles.nodes().not(":parent");
- var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
- x1: 0,
- y1: 0,
- w: cy.width(),
- h: cy.height()
- });
- var center2 = {
- x: bb.x1 + bb.w / 2,
- y: bb.y1 + bb.h / 2
- };
- var nodeValues = [];
- var maxNodeSize = 0;
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var node2 = nodes2[i3];
- var value = void 0;
- value = options2.concentric(node2);
- nodeValues.push({
- value,
- node: node2
- });
- node2._private.scratch.concentric = value;
+ LTCp.requestRedraw = debounce_1(function() {
+ var r2 = this.renderer;
+ r2.redrawHint("eles", true);
+ r2.redrawHint("drag", true);
+ r2.redraw();
+ }, 100);
+ LTCp.setupDequeueing = defs.setupDequeueing({
+ deqRedrawThreshold,
+ deqCost,
+ deqAvgCost,
+ deqNoDrawCost,
+ deqFastCost,
+ deq: /* @__PURE__ */ __name(function deq2(self2, pxRatio) {
+ return self2.dequeue(pxRatio);
+ }, "deq"),
+ onDeqd: noop$1,
+ shouldRedraw: trueify,
+ priority: /* @__PURE__ */ __name(function priority2(self2) {
+ return self2.renderer.beforeRenderPriorities.lyrTxrDeq;
+ }, "priority")
+ });
+ CRp$a = {};
+ __name(polygon, "polygon");
+ __name(triangleBackcurve, "triangleBackcurve");
+ __name(triangleTee, "triangleTee");
+ __name(circleTriangle, "circleTriangle");
+ __name(circle5, "circle");
+ CRp$a.arrowShapeImpl = function(name) {
+ return (impl || (impl = {
+ "polygon": polygon,
+ "triangle-backcurve": triangleBackcurve,
+ "triangle-tee": triangleTee,
+ "circle-triangle": circleTriangle,
+ "triangle-cross": triangleTee,
+ "circle": circle5
+ }))[name];
+ };
+ CRp$9 = {};
+ CRp$9.drawElement = function(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {
+ var r2 = this;
+ if (ele.isNode()) {
+ r2.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
+ } else {
+ r2.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
}
- nodes2.updateStyle();
- for (var _i = 0; _i < nodes2.length; _i++) {
- var _node = nodes2[_i];
- var nbb = _node.layoutDimensions(options2);
- maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);
+ };
+ CRp$9.drawElementOverlay = function(context, ele) {
+ var r2 = this;
+ if (ele.isNode()) {
+ r2.drawNodeOverlay(context, ele);
+ } else {
+ r2.drawEdgeOverlay(context, ele);
}
- nodeValues.sort(function(a, b) {
- return b.value - a.value;
- });
- var levelWidth = options2.levelWidth(nodes2);
- var levels = [[]];
- var currentLevel = levels[0];
- for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {
- var val = nodeValues[_i2];
- if (currentLevel.length > 0) {
- var diff = Math.abs(currentLevel[0].value - val.value);
- if (diff >= levelWidth) {
- currentLevel = [];
- levels.push(currentLevel);
- }
- }
- currentLevel.push(val);
+ };
+ CRp$9.drawElementUnderlay = function(context, ele) {
+ var r2 = this;
+ if (ele.isNode()) {
+ r2.drawNodeUnderlay(context, ele);
+ } else {
+ r2.drawEdgeUnderlay(context, ele);
}
- var minDist = maxNodeSize + options2.minNodeSpacing;
- if (!options2.avoidOverlap) {
- var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;
- var maxR = Math.min(bb.w, bb.h) / 2 - minDist;
- var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);
- minDist = Math.min(minDist, rStep);
+ };
+ CRp$9.drawCachedElementPortion = function(context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity3) {
+ var r2 = this;
+ var bb = eleTxrCache.getBoundingBox(ele);
+ if (bb.w === 0 || bb.h === 0) {
+ return;
}
- var r = 0;
- for (var _i3 = 0; _i3 < levels.length; _i3++) {
- var level = levels[_i3];
- var sweep = options2.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / level.length : options2.sweep;
- var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);
- if (level.length > 1 && options2.avoidOverlap) {
- var dcos = Math.cos(dTheta) - Math.cos(0);
- var dsin = Math.sin(dTheta) - Math.sin(0);
- var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin));
- r = Math.max(rMin, r);
+ var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);
+ if (eleCache != null) {
+ var opacity = getOpacity3(r2, ele);
+ if (opacity === 0) {
+ return;
}
- level.r = r;
- r += minDist;
- }
- if (options2.equidistant) {
- var rDeltaMax = 0;
- var _r = 0;
- for (var _i4 = 0; _i4 < levels.length; _i4++) {
- var _level = levels[_i4];
- var rDelta = _level.r - _r;
- rDeltaMax = Math.max(rDeltaMax, rDelta);
+ var theta = getRotation(r2, ele);
+ var x1 = bb.x1, y1 = bb.y1, w3 = bb.w, h2 = bb.h;
+ var x5, y5, sx, sy, smooth;
+ if (theta !== 0) {
+ var rotPt = eleTxrCache.getRotationPoint(ele);
+ sx = rotPt.x;
+ sy = rotPt.y;
+ context.translate(sx, sy);
+ context.rotate(theta);
+ smooth = r2.getImgSmoothing(context);
+ if (!smooth) {
+ r2.setImgSmoothing(context, true);
+ }
+ var off = eleTxrCache.getRotationOffset(ele);
+ x5 = off.x;
+ y5 = off.y;
+ } else {
+ x5 = x1;
+ y5 = y1;
}
- _r = 0;
- for (var _i5 = 0; _i5 < levels.length; _i5++) {
- var _level2 = levels[_i5];
- if (_i5 === 0) {
- _r = _level2.r;
+ var oldGlobalAlpha;
+ if (opacity !== 1) {
+ oldGlobalAlpha = context.globalAlpha;
+ context.globalAlpha = oldGlobalAlpha * opacity;
+ }
+ context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x5, y5, w3, h2);
+ if (opacity !== 1) {
+ context.globalAlpha = oldGlobalAlpha;
+ }
+ if (theta !== 0) {
+ context.rotate(-theta);
+ context.translate(-sx, -sy);
+ if (!smooth) {
+ r2.setImgSmoothing(context, false);
}
- _level2.r = _r;
- _r += rDeltaMax;
}
+ } else {
+ eleTxrCache.drawElement(context, ele);
}
- var pos = {};
- for (var _i6 = 0; _i6 < levels.length; _i6++) {
- var _level3 = levels[_i6];
- var _dTheta = _level3.dTheta;
- var _r2 = _level3.r;
- for (var j = 0; j < _level3.length; j++) {
- var _val = _level3[j];
- var theta = options2.startAngle + (clockwise ? 1 : -1) * _dTheta * j;
- var p2 = {
- x: center2.x + _r2 * Math.cos(theta),
- y: center2.y + _r2 * Math.sin(theta)
- };
- pos[_val.node.id()] = p2;
+ };
+ getZeroRotation = /* @__PURE__ */ __name(function getZeroRotation2() {
+ return 0;
+ }, "getZeroRotation");
+ getLabelRotation = /* @__PURE__ */ __name(function getLabelRotation2(r2, ele) {
+ return r2.getTextAngle(ele, null);
+ }, "getLabelRotation");
+ getSourceLabelRotation = /* @__PURE__ */ __name(function getSourceLabelRotation2(r2, ele) {
+ return r2.getTextAngle(ele, "source");
+ }, "getSourceLabelRotation");
+ getTargetLabelRotation = /* @__PURE__ */ __name(function getTargetLabelRotation2(r2, ele) {
+ return r2.getTextAngle(ele, "target");
+ }, "getTargetLabelRotation");
+ getOpacity = /* @__PURE__ */ __name(function getOpacity2(r2, ele) {
+ return ele.effectiveOpacity();
+ }, "getOpacity");
+ getTextOpacity = /* @__PURE__ */ __name(function getTextOpacity2(e3, ele) {
+ return ele.pstyle("text-opacity").pfValue * ele.effectiveOpacity();
+ }, "getTextOpacity");
+ CRp$9.drawCachedElement = function(context, ele, pxRatio, extent2, lvl, requestHighQuality) {
+ var r2 = this;
+ var _r$data = r2.data, eleTxrCache = _r$data.eleTxrCache, lblTxrCache = _r$data.lblTxrCache, slbTxrCache = _r$data.slbTxrCache, tlbTxrCache = _r$data.tlbTxrCache;
+ var bb = ele.boundingBox();
+ var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;
+ if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
+ return;
+ }
+ if (!extent2 || boundingBoxesIntersect(bb, extent2)) {
+ var isEdge2 = ele.isEdge();
+ var badLine = ele.element()._private.rscratch.badLine;
+ r2.drawElementUnderlay(context, ele);
+ r2.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);
+ if (!isEdge2 || !badLine) {
+ r2.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);
}
+ if (isEdge2 && !badLine) {
+ r2.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);
+ r2.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);
+ }
+ r2.drawElementOverlay(context, ele);
}
- eles.nodes().layoutPositions(this, options2, function(ele) {
- var id2 = ele.id();
- return pos[id2];
- });
- return this;
};
- var DEBUG;
- var defaults$4 = {
- // Called on `layoutready`
- ready: function ready() {
- },
- // Called on `layoutstop`
- stop: function stop() {
- },
- // Whether to animate while running the layout
- // true : Animate continuously as the layout is running
- // false : Just show the end result
- // 'end' : Animate with the end result, from the initial positions to the end positions
- animate: true,
- // Easing of the animation for animate:'end'
- animationEasing: void 0,
- // The duration of the animation for animate:'end'
- animationDuration: void 0,
- // A function that determines whether the node should be animated
- // All nodes animated by default on animate enabled
- // Non-animated nodes are positioned immediately when the layout starts
- animateFilter: function animateFilter(node2, i3) {
- return true;
- },
- // The layout animates only after this many milliseconds for animate:true
- // (prevents flashing on fast runs)
- animationThreshold: 250,
- // Number of iterations between consecutive screen positions update
- refresh: 20,
- // Whether to fit the network view after when done
- fit: true,
- // Padding on fit
- padding: 30,
- // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
- boundingBox: void 0,
- // Excludes the label when calculating node bounding boxes for the layout algorithm
- nodeDimensionsIncludeLabels: false,
- // Randomize the initial positions of the nodes (true) or use existing positions (false)
- randomize: false,
- // Extra spacing between components in non-compound graphs
- componentSpacing: 40,
- // Node repulsion (non overlapping) multiplier
- nodeRepulsion: function nodeRepulsion2(node2) {
- return 2048;
- },
- // Node repulsion (overlapping) multiplier
- nodeOverlap: 4,
- // Ideal edge (non nested) length
- idealEdgeLength: function idealEdgeLength(edge) {
- return 32;
- },
- // Divisor to compute edge forces
- edgeElasticity: function edgeElasticity(edge) {
- return 32;
- },
- // Nesting factor (multiplier) to compute ideal edge length for nested edges
- nestingFactor: 1.2,
- // Gravity force (constant)
- gravity: 1,
- // Maximum number of iterations to perform
- numIter: 1e3,
- // Initial temperature (maximum node displacement)
- initialTemp: 1e3,
- // Cooling factor (how the temperature is reduced between consecutive iterations
- coolingFactor: 0.99,
- // Lower temperature threshold (below this point the layout will end)
- minTemp: 1
+ CRp$9.drawElements = function(context, eles) {
+ var r2 = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ r2.drawElement(context, ele);
+ }
};
- function CoseLayout(options2) {
- this.options = extend2({}, defaults$4, options2);
- this.options.layout = this;
- }
- CoseLayout.prototype.run = function() {
- var options2 = this.options;
- var cy = options2.cy;
- var layout3 = this;
- layout3.stopped = false;
- if (options2.animate === true || options2.animate === false) {
- layout3.emit({
- type: "layoutstart",
- layout: layout3
- });
+ CRp$9.drawCachedElements = function(context, eles, pxRatio, extent2) {
+ var r2 = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ r2.drawCachedElement(context, ele, pxRatio, extent2);
}
- if (true === options2.debug) {
- DEBUG = true;
+ };
+ CRp$9.drawCachedNodes = function(context, eles, pxRatio, extent2) {
+ var r2 = this;
+ for (var i2 = 0; i2 < eles.length; i2++) {
+ var ele = eles[i2];
+ if (!ele.isNode()) {
+ continue;
+ }
+ r2.drawCachedElement(context, ele, pxRatio, extent2);
+ }
+ };
+ CRp$9.drawLayeredElements = function(context, eles, pxRatio, extent2) {
+ var r2 = this;
+ var layers = r2.data.lyrTxrCache.getLayers(eles, pxRatio);
+ if (layers) {
+ for (var i2 = 0; i2 < layers.length; i2++) {
+ var layer = layers[i2];
+ var bb = layer.bb;
+ if (bb.w === 0 || bb.h === 0) {
+ continue;
+ }
+ context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);
+ }
} else {
- DEBUG = false;
+ r2.drawCachedElements(context, eles, pxRatio, extent2);
}
- var layoutInfo = createLayoutInfo(cy, layout3, options2);
- if (DEBUG) {
- printLayoutInfo(layoutInfo);
+ };
+ CRp$8 = {};
+ CRp$8.drawEdge = function(context, edge, shiftToOriginWithBb) {
+ var drawLabel4 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ var r2 = this;
+ var rs = edge._private.rscratch;
+ if (shouldDrawOpacity && !edge.visible()) {
+ return;
}
- if (options2.randomize) {
- randomizePositions(layoutInfo);
+ if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {
+ return;
}
- var startTime = performanceNow();
- var refresh = function refresh2() {
- refreshPositions(layoutInfo, cy, options2);
- if (true === options2.fit) {
- cy.fit(options2.padding);
+ var bb;
+ if (shiftToOriginWithBb) {
+ bb = shiftToOriginWithBb;
+ context.translate(-bb.x1, -bb.y1);
+ }
+ var opacity = shouldDrawOpacity ? edge.pstyle("opacity").value : 1;
+ var lineOpacity = shouldDrawOpacity ? edge.pstyle("line-opacity").value : 1;
+ var curveStyle = edge.pstyle("curve-style").value;
+ var lineStyle = edge.pstyle("line-style").value;
+ var edgeWidth = edge.pstyle("width").pfValue;
+ var lineCap = edge.pstyle("line-cap").value;
+ var lineOutlineWidth = edge.pstyle("line-outline-width").value;
+ var lineOutlineColor = edge.pstyle("line-outline-color").value;
+ var effectiveLineOpacity = opacity * lineOpacity;
+ var effectiveArrowOpacity = opacity * lineOpacity;
+ var drawLine = /* @__PURE__ */ __name(function drawLine2() {
+ var strokeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveLineOpacity;
+ if (curveStyle === "straight-triangle") {
+ r2.eleStrokeStyle(context, edge, strokeOpacity);
+ r2.drawEdgeTrianglePath(edge, context, rs.allpts);
+ } else {
+ context.lineWidth = edgeWidth;
+ context.lineCap = lineCap;
+ r2.eleStrokeStyle(context, edge, strokeOpacity);
+ r2.drawEdgePath(edge, context, rs.allpts, lineStyle);
+ context.lineCap = "butt";
}
- };
- var mainLoop = function mainLoop2(i4) {
- if (layout3.stopped || i4 >= options2.numIter) {
- return false;
+ }, "drawLine");
+ var drawLineOutline = /* @__PURE__ */ __name(function drawLineOutline2() {
+ var strokeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveLineOpacity;
+ context.lineWidth = edgeWidth + lineOutlineWidth;
+ context.lineCap = lineCap;
+ if (lineOutlineWidth > 0) {
+ r2.colorStrokeStyle(context, lineOutlineColor[0], lineOutlineColor[1], lineOutlineColor[2], strokeOpacity);
+ } else {
+ context.lineCap = "butt";
+ return;
}
- step(layoutInfo, options2);
- layoutInfo.temperature = layoutInfo.temperature * options2.coolingFactor;
- if (layoutInfo.temperature < options2.minTemp) {
- return false;
+ if (curveStyle === "straight-triangle") {
+ r2.drawEdgeTrianglePath(edge, context, rs.allpts);
+ } else {
+ r2.drawEdgePath(edge, context, rs.allpts, lineStyle);
+ context.lineCap = "butt";
}
- return true;
- };
- var done = function done2() {
- if (options2.animate === true || options2.animate === false) {
- refresh();
- layout3.one("layoutstop", options2.stop);
- layout3.emit({
- type: "layoutstop",
- layout: layout3
- });
+ }, "drawLineOutline");
+ var drawOverlay = /* @__PURE__ */ __name(function drawOverlay2() {
+ if (!shouldDrawOverlay) {
+ return;
+ }
+ r2.drawEdgeOverlay(context, edge);
+ }, "drawOverlay");
+ var drawUnderlay = /* @__PURE__ */ __name(function drawUnderlay2() {
+ if (!shouldDrawOverlay) {
+ return;
+ }
+ r2.drawEdgeUnderlay(context, edge);
+ }, "drawUnderlay");
+ var drawArrows2 = /* @__PURE__ */ __name(function drawArrows3() {
+ var arrowOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveArrowOpacity;
+ r2.drawArrowheads(context, edge, arrowOpacity);
+ }, "drawArrows");
+ var drawText6 = /* @__PURE__ */ __name(function drawText7() {
+ r2.drawElementText(context, edge, null, drawLabel4);
+ }, "drawText");
+ context.lineJoin = "round";
+ var ghost = edge.pstyle("ghost").value === "yes";
+ if (ghost) {
+ var gx = edge.pstyle("ghost-offset-x").pfValue;
+ var gy = edge.pstyle("ghost-offset-y").pfValue;
+ var ghostOpacity = edge.pstyle("ghost-opacity").value;
+ var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;
+ context.translate(gx, gy);
+ drawLine(effectiveGhostOpacity);
+ drawArrows2(effectiveGhostOpacity);
+ context.translate(-gx, -gy);
+ } else {
+ drawLineOutline();
+ }
+ drawUnderlay();
+ drawLine();
+ drawArrows2();
+ drawOverlay();
+ drawText6();
+ if (shiftToOriginWithBb) {
+ context.translate(bb.x1, bb.y1);
+ }
+ };
+ drawEdgeOverlayUnderlay = /* @__PURE__ */ __name(function drawEdgeOverlayUnderlay2(overlayOrUnderlay) {
+ if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
+ throw new Error("Invalid state");
+ }
+ return function(context, edge) {
+ if (!edge.visible()) {
+ return;
+ }
+ var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
+ if (opacity === 0) {
+ return;
+ }
+ var r2 = this;
+ var usePaths = r2.usePaths();
+ var rs = edge._private.rscratch;
+ var padding3 = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
+ var width3 = 2 * padding3;
+ var color2 = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value;
+ context.lineWidth = width3;
+ if (rs.edgeType === "self" && !usePaths) {
+ context.lineCap = "butt";
} else {
- var nodes2 = options2.eles.nodes();
- var getScaledPos = getScaleInBoundsFn(layoutInfo, options2, nodes2);
- nodes2.layoutPositions(layout3, options2, getScaledPos);
+ context.lineCap = "round";
}
+ r2.colorStrokeStyle(context, color2[0], color2[1], color2[2], opacity);
+ r2.drawEdgePath(edge, context, rs.allpts, "solid");
};
- var i3 = 0;
- var loopRet = true;
- if (options2.animate === true) {
- var frame2 = function frame3() {
- var f2 = 0;
- while (loopRet && f2 < options2.refresh) {
- loopRet = mainLoop(i3);
- i3++;
- f2++;
- }
- if (!loopRet) {
- separateComponents(layoutInfo, options2);
- done();
- } else {
- var now3 = performanceNow();
- if (now3 - startTime >= options2.animationThreshold) {
- refresh();
+ }, "drawEdgeOverlayUnderlay");
+ CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay("overlay");
+ CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay("underlay");
+ CRp$8.drawEdgePath = function(edge, context, pts2, type3) {
+ var rs = edge._private.rscratch;
+ var canvasCxt = context;
+ var path4;
+ var pathCacheHit = false;
+ var usePaths = this.usePaths();
+ var lineDashPattern = edge.pstyle("line-dash-pattern").pfValue;
+ var lineDashOffset = edge.pstyle("line-dash-offset").pfValue;
+ if (usePaths) {
+ var pathCacheKey = pts2.join("$");
+ var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;
+ if (keyMatches) {
+ path4 = context = rs.pathCache;
+ pathCacheHit = true;
+ } else {
+ path4 = context = new Path2D();
+ rs.pathCacheKey = pathCacheKey;
+ rs.pathCache = path4;
+ }
+ }
+ if (canvasCxt.setLineDash) {
+ switch (type3) {
+ case "dotted":
+ canvasCxt.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ canvasCxt.setLineDash(lineDashPattern);
+ canvasCxt.lineDashOffset = lineDashOffset;
+ break;
+ case "solid":
+ canvasCxt.setLineDash([]);
+ break;
+ }
+ }
+ if (!pathCacheHit && !rs.badLine) {
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(pts2[0], pts2[1]);
+ switch (rs.edgeType) {
+ case "bezier":
+ case "self":
+ case "compound":
+ case "multibezier":
+ for (var i2 = 2; i2 + 3 < pts2.length; i2 += 4) {
+ context.quadraticCurveTo(pts2[i2], pts2[i2 + 1], pts2[i2 + 2], pts2[i2 + 3]);
}
- requestAnimationFrame2(frame3);
- }
- };
- frame2();
- } else {
- while (loopRet) {
- loopRet = mainLoop(i3);
- i3++;
+ break;
+ case "straight":
+ case "haystack":
+ for (var _i = 2; _i + 1 < pts2.length; _i += 2) {
+ context.lineTo(pts2[_i], pts2[_i + 1]);
+ }
+ break;
+ case "segments":
+ if (rs.isRound) {
+ var _iterator = _createForOfIteratorHelper(rs.roundCorners), _step;
+ try {
+ for (_iterator.s(); !(_step = _iterator.n()).done; ) {
+ var corner = _step.value;
+ drawPreparedRoundCorner(context, corner);
+ }
+ } catch (err) {
+ _iterator.e(err);
+ } finally {
+ _iterator.f();
+ }
+ context.lineTo(pts2[pts2.length - 2], pts2[pts2.length - 1]);
+ } else {
+ for (var _i2 = 2; _i2 + 1 < pts2.length; _i2 += 2) {
+ context.lineTo(pts2[_i2], pts2[_i2 + 1]);
+ }
+ }
+ break;
}
- separateComponents(layoutInfo, options2);
- done();
}
- return this;
+ context = canvasCxt;
+ if (usePaths) {
+ context.stroke(path4);
+ } else {
+ context.stroke();
+ }
+ if (context.setLineDash) {
+ context.setLineDash([]);
+ }
};
- CoseLayout.prototype.stop = function() {
- this.stopped = true;
- if (this.thread) {
- this.thread.stop();
+ CRp$8.drawEdgeTrianglePath = function(edge, context, pts2) {
+ context.fillStyle = context.strokeStyle;
+ var edgeWidth = edge.pstyle("width").pfValue;
+ for (var i2 = 0; i2 + 1 < pts2.length; i2 += 2) {
+ var vector = [pts2[i2 + 2] - pts2[i2], pts2[i2 + 3] - pts2[i2 + 1]];
+ var length2 = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);
+ var normal = [vector[1] / length2, -vector[0] / length2];
+ var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2];
+ context.beginPath();
+ context.moveTo(pts2[i2] - triangleHead[0], pts2[i2 + 1] - triangleHead[1]);
+ context.lineTo(pts2[i2] + triangleHead[0], pts2[i2 + 1] + triangleHead[1]);
+ context.lineTo(pts2[i2 + 2], pts2[i2 + 3]);
+ context.closePath();
+ context.fill();
}
- this.emit("layoutstop");
- return this;
};
- CoseLayout.prototype.destroy = function() {
- if (this.thread) {
- this.thread.stop();
+ CRp$8.drawArrowheads = function(context, edge, opacity) {
+ var rs = edge._private.rscratch;
+ var isHaystack = rs.edgeType === "haystack";
+ if (!isHaystack) {
+ this.drawArrowhead(context, edge, "source", rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);
+ }
+ this.drawArrowhead(context, edge, "mid-target", rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);
+ this.drawArrowhead(context, edge, "mid-source", rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);
+ if (!isHaystack) {
+ this.drawArrowhead(context, edge, "target", rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);
}
- return this;
};
- var createLayoutInfo = function createLayoutInfo2(cy, layout3, options2) {
- var edges2 = options2.eles.edges();
- var nodes2 = options2.eles.nodes();
- var layoutInfo = {
- isCompound: cy.hasCompoundNodes(),
- layoutNodes: [],
- idToIndex: {},
- nodeSize: nodes2.size(),
- graphSet: [],
- indexToGraph: [],
- layoutEdges: [],
- edgeSize: edges2.size(),
- temperature: options2.initialTemp,
- clientWidth: cy.width(),
- clientHeight: cy.width(),
- boundingBox: makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
- x1: 0,
- y1: 0,
- w: cy.width(),
- h: cy.height()
- })
- };
- var components = options2.eles.components();
- var id2cmptId = {};
- for (var i3 = 0; i3 < components.length; i3++) {
- var component = components[i3];
- for (var j = 0; j < component.length; j++) {
- var node2 = component[j];
- id2cmptId[node2.id()] = i3;
- }
+ CRp$8.drawArrowhead = function(context, edge, prefix, x5, y5, angle2, opacity) {
+ if (isNaN(x5) || x5 == null || isNaN(y5) || y5 == null || isNaN(angle2) || angle2 == null) {
+ return;
}
- for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
- var n = nodes2[i3];
- var nbb = n.layoutDimensions(options2);
- var tempNode = {};
- tempNode.isLocked = n.locked();
- tempNode.id = n.data("id");
- tempNode.parentId = n.data("parent");
- tempNode.cmptId = id2cmptId[n.id()];
- tempNode.children = [];
- tempNode.positionX = n.position("x");
- tempNode.positionY = n.position("y");
- tempNode.offsetX = 0;
- tempNode.offsetY = 0;
- tempNode.height = nbb.w;
- tempNode.width = nbb.h;
- tempNode.maxX = tempNode.positionX + tempNode.width / 2;
- tempNode.minX = tempNode.positionX - tempNode.width / 2;
- tempNode.maxY = tempNode.positionY + tempNode.height / 2;
- tempNode.minY = tempNode.positionY - tempNode.height / 2;
- tempNode.padLeft = parseFloat(n.style("padding"));
- tempNode.padRight = parseFloat(n.style("padding"));
- tempNode.padTop = parseFloat(n.style("padding"));
- tempNode.padBottom = parseFloat(n.style("padding"));
- tempNode.nodeRepulsion = fn$6(options2.nodeRepulsion) ? options2.nodeRepulsion(n) : options2.nodeRepulsion;
- layoutInfo.layoutNodes.push(tempNode);
- layoutInfo.idToIndex[tempNode.id] = i3;
+ var self2 = this;
+ var arrowShape = edge.pstyle(prefix + "-arrow-shape").value;
+ if (arrowShape === "none") {
+ return;
}
- var queue = [];
- var start2 = 0;
- var end2 = -1;
- var tempGraph = [];
- for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
- var n = layoutInfo.layoutNodes[i3];
- var p_id = n.parentId;
- if (null != p_id) {
- layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id);
+ var arrowClearFill = edge.pstyle(prefix + "-arrow-fill").value === "hollow" ? "both" : "filled";
+ var arrowFill = edge.pstyle(prefix + "-arrow-fill").value;
+ var edgeWidth = edge.pstyle("width").pfValue;
+ var pArrowWidth = edge.pstyle(prefix + "-arrow-width");
+ var arrowWidth = pArrowWidth.value === "match-line" ? edgeWidth : pArrowWidth.pfValue;
+ if (pArrowWidth.units === "%") arrowWidth *= edgeWidth;
+ var edgeOpacity = edge.pstyle("opacity").value;
+ if (opacity === void 0) {
+ opacity = edgeOpacity;
+ }
+ var gco = context.globalCompositeOperation;
+ if (opacity !== 1 || arrowFill === "hollow") {
+ context.globalCompositeOperation = "destination-out";
+ self2.colorFillStyle(context, 255, 255, 255, 1);
+ self2.colorStrokeStyle(context, 255, 255, 255, 1);
+ self2.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, arrowWidth, x5, y5, angle2);
+ context.globalCompositeOperation = gco;
+ }
+ var color2 = edge.pstyle(prefix + "-arrow-color").value;
+ self2.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
+ self2.colorStrokeStyle(context, color2[0], color2[1], color2[2], opacity);
+ self2.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, arrowWidth, x5, y5, angle2);
+ };
+ CRp$8.drawArrowShape = function(edge, context, fill, edgeWidth, shape, shapeWidth, x5, y5, angle2) {
+ var r2 = this;
+ var usePaths = this.usePaths() && shape !== "triangle-cross";
+ var pathCacheHit = false;
+ var path4;
+ var canvasContext = context;
+ var translation = {
+ x: x5,
+ y: y5
+ };
+ var scale = edge.pstyle("arrow-scale").value;
+ var size5 = this.getArrowWidth(edgeWidth, scale);
+ var shapeImpl = r2.arrowShapes[shape];
+ if (usePaths) {
+ var cache3 = r2.arrowPathCache = r2.arrowPathCache || [];
+ var key = hashString(shape);
+ var cachedPath = cache3[key];
+ if (cachedPath != null) {
+ path4 = context = cachedPath;
+ pathCacheHit = true;
} else {
- queue[++end2] = n.id;
- tempGraph.push(n.id);
+ path4 = context = new Path2D();
+ cache3[key] = path4;
}
}
- layoutInfo.graphSet.push(tempGraph);
- while (start2 <= end2) {
- var node_id = queue[start2++];
- var node_ix = layoutInfo.idToIndex[node_id];
- var node2 = layoutInfo.layoutNodes[node_ix];
- var children2 = node2.children;
- if (children2.length > 0) {
- layoutInfo.graphSet.push(children2);
- for (var i3 = 0; i3 < children2.length; i3++) {
- queue[++end2] = children2[i3];
- }
+ if (!pathCacheHit) {
+ if (context.beginPath) {
+ context.beginPath();
}
- }
- for (var i3 = 0; i3 < layoutInfo.graphSet.length; i3++) {
- var graph = layoutInfo.graphSet[i3];
- for (var j = 0; j < graph.length; j++) {
- var index = layoutInfo.idToIndex[graph[j]];
- layoutInfo.indexToGraph[index] = i3;
+ if (usePaths) {
+ shapeImpl.draw(context, 1, 0, {
+ x: 0,
+ y: 0
+ }, 1);
+ } else {
+ shapeImpl.draw(context, size5, angle2, translation, edgeWidth);
}
- }
- for (var i3 = 0; i3 < layoutInfo.edgeSize; i3++) {
- var e = edges2[i3];
- var tempEdge = {};
- tempEdge.id = e.data("id");
- tempEdge.sourceId = e.data("source");
- tempEdge.targetId = e.data("target");
- var idealLength = fn$6(options2.idealEdgeLength) ? options2.idealEdgeLength(e) : options2.idealEdgeLength;
- var elasticity = fn$6(options2.edgeElasticity) ? options2.edgeElasticity(e) : options2.edgeElasticity;
- var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];
- var targetIx = layoutInfo.idToIndex[tempEdge.targetId];
- var sourceGraph = layoutInfo.indexToGraph[sourceIx];
- var targetGraph = layoutInfo.indexToGraph[targetIx];
- if (sourceGraph != targetGraph) {
- var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);
- var lcaGraph = layoutInfo.graphSet[lca];
- var depth = 0;
- var tempNode = layoutInfo.layoutNodes[sourceIx];
- while (-1 === lcaGraph.indexOf(tempNode.id)) {
- tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
- depth++;
- }
- tempNode = layoutInfo.layoutNodes[targetIx];
- while (-1 === lcaGraph.indexOf(tempNode.id)) {
- tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
- depth++;
- }
- idealLength *= depth * options2.nestingFactor;
+ if (context.closePath) {
+ context.closePath();
}
- tempEdge.idealLength = idealLength;
- tempEdge.elasticity = elasticity;
- layoutInfo.layoutEdges.push(tempEdge);
- }
- return layoutInfo;
- };
- var findLCA = function findLCA2(node1, node2, layoutInfo) {
- var res = findLCA_aux(node1, node2, 0, layoutInfo);
- if (2 > res.count) {
- return 0;
- } else {
- return res.graph;
}
- };
- var findLCA_aux = function findLCA_aux2(node1, node2, graphIx, layoutInfo) {
- var graph = layoutInfo.graphSet[graphIx];
- if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {
- return {
- count: 2,
- graph: graphIx
- };
+ context = canvasContext;
+ if (usePaths) {
+ context.translate(x5, y5);
+ context.rotate(angle2);
+ context.scale(size5, size5);
}
- var c2 = 0;
- for (var i3 = 0; i3 < graph.length; i3++) {
- var nodeId = graph[i3];
- var nodeIx = layoutInfo.idToIndex[nodeId];
- var children2 = layoutInfo.layoutNodes[nodeIx].children;
- if (0 === children2.length) {
- continue;
+ if (fill === "filled" || fill === "both") {
+ if (usePaths) {
+ context.fill(path4);
+ } else {
+ context.fill();
}
- var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children2[0]]];
- var result = findLCA_aux2(node1, node2, childGraphIx, layoutInfo);
- if (0 === result.count) {
- continue;
- } else if (1 === result.count) {
- c2++;
- if (2 === c2) {
- break;
- }
+ }
+ if (fill === "hollow" || fill === "both") {
+ context.lineWidth = shapeWidth / (usePaths ? size5 : 1);
+ context.lineJoin = "miter";
+ if (usePaths) {
+ context.stroke(path4);
} else {
- return result;
+ context.stroke();
}
}
- return {
- count: c2,
- graph: graphIx
- };
+ if (usePaths) {
+ context.scale(1 / size5, 1 / size5);
+ context.rotate(-angle2);
+ context.translate(-x5, -y5);
+ }
};
- var printLayoutInfo;
- var randomizePositions = function randomizePositions2(layoutInfo, cy) {
- var width2 = layoutInfo.clientWidth;
- var height2 = layoutInfo.clientHeight;
- for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
- var n = layoutInfo.layoutNodes[i3];
- if (0 === n.children.length && !n.isLocked) {
- n.positionX = Math.random() * width2;
- n.positionY = Math.random() * height2;
- }
+ CRp$7 = {};
+ CRp$7.safeDrawImage = function(context, img, ix, iy, iw, ih, x5, y5, w3, h2) {
+ if (iw <= 0 || ih <= 0 || w3 <= 0 || h2 <= 0) {
+ return;
+ }
+ try {
+ context.drawImage(img, ix, iy, iw, ih, x5, y5, w3, h2);
+ } catch (e3) {
+ warn(e3);
}
};
- var getScaleInBoundsFn = function getScaleInBoundsFn2(layoutInfo, options2, nodes2) {
- var bb = layoutInfo.boundingBox;
- var coseBB = {
- x1: Infinity,
- x2: -Infinity,
- y1: Infinity,
- y2: -Infinity
- };
- if (options2.boundingBox) {
- nodes2.forEach(function(node2) {
- var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node2.data("id")]];
- coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);
- coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);
- coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);
- coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);
- });
- coseBB.w = coseBB.x2 - coseBB.x1;
- coseBB.h = coseBB.y2 - coseBB.y1;
+ CRp$7.drawInscribedImage = function(context, img, node2, index, nodeOpacity) {
+ var r2 = this;
+ var pos = node2.position();
+ var nodeX = pos.x;
+ var nodeY = pos.y;
+ var styleObj = node2.cy().style();
+ var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);
+ var fit2 = getIndexedStyle(node2, "background-fit", "value", index);
+ var repeat2 = getIndexedStyle(node2, "background-repeat", "value", index);
+ var nodeW = node2.width();
+ var nodeH = node2.height();
+ var paddingX2 = node2.padding() * 2;
+ var nodeTW = nodeW + (getIndexedStyle(node2, "background-width-relative-to", "value", index) === "inner" ? 0 : paddingX2);
+ var nodeTH = nodeH + (getIndexedStyle(node2, "background-height-relative-to", "value", index) === "inner" ? 0 : paddingX2);
+ var rs = node2._private.rscratch;
+ var clip = getIndexedStyle(node2, "background-clip", "value", index);
+ var shouldClip = clip === "node";
+ var imgOpacity = getIndexedStyle(node2, "background-image-opacity", "value", index) * nodeOpacity;
+ var smooth = getIndexedStyle(node2, "background-image-smoothing", "value", index);
+ var cornerRadius = node2.pstyle("corner-radius").value;
+ if (cornerRadius !== "auto") cornerRadius = node2.pstyle("corner-radius").pfValue;
+ var imgW = img.width || img.cachedW;
+ var imgH = img.height || img.cachedH;
+ if (null == imgW || null == imgH) {
+ document.body.appendChild(img);
+ imgW = img.cachedW = img.width || img.offsetWidth;
+ imgH = img.cachedH = img.height || img.offsetHeight;
+ document.body.removeChild(img);
}
- return function(ele, i3) {
- var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data("id")]];
- if (options2.boundingBox) {
- var pctX = (lnode.positionX - coseBB.x1) / coseBB.w;
- var pctY = (lnode.positionY - coseBB.y1) / coseBB.h;
- return {
- x: bb.x1 + pctX * bb.w,
- y: bb.y1 + pctY * bb.h
- };
+ var w3 = imgW;
+ var h2 = imgH;
+ if (getIndexedStyle(node2, "background-width", "value", index) !== "auto") {
+ if (getIndexedStyle(node2, "background-width", "units", index) === "%") {
+ w3 = getIndexedStyle(node2, "background-width", "pfValue", index) * nodeTW;
} else {
- return {
- x: lnode.positionX,
- y: lnode.positionY
- };
+ w3 = getIndexedStyle(node2, "background-width", "pfValue", index);
}
- };
- };
- var refreshPositions = function refreshPositions2(layoutInfo, cy, options2) {
- var layout3 = options2.layout;
- var nodes2 = options2.eles.nodes();
- var getScaledPos = getScaleInBoundsFn(layoutInfo, options2, nodes2);
- nodes2.positions(getScaledPos);
- if (true !== layoutInfo.ready) {
- layoutInfo.ready = true;
- layout3.one("layoutready", options2.ready);
- layout3.emit({
- type: "layoutready",
- layout: this
- });
}
- };
- var step = function step2(layoutInfo, options2, _step) {
- calculateNodeForces(layoutInfo, options2);
- calculateEdgeForces(layoutInfo);
- calculateGravityForces(layoutInfo, options2);
- propagateForces(layoutInfo);
- updatePositions(layoutInfo);
- };
- var calculateNodeForces = function calculateNodeForces2(layoutInfo, options2) {
- for (var i3 = 0; i3 < layoutInfo.graphSet.length; i3++) {
- var graph = layoutInfo.graphSet[i3];
- var numNodes = graph.length;
- for (var j = 0; j < numNodes; j++) {
- var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];
- for (var k = j + 1; k < numNodes; k++) {
- var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]];
- nodeRepulsion(node1, node2, layoutInfo, options2);
- }
+ if (getIndexedStyle(node2, "background-height", "value", index) !== "auto") {
+ if (getIndexedStyle(node2, "background-height", "units", index) === "%") {
+ h2 = getIndexedStyle(node2, "background-height", "pfValue", index) * nodeTH;
+ } else {
+ h2 = getIndexedStyle(node2, "background-height", "pfValue", index);
}
}
- };
- var randomDistance = function randomDistance2(max3) {
- return -max3 + 2 * max3 * Math.random();
- };
- var nodeRepulsion = function nodeRepulsion2(node1, node2, layoutInfo, options2) {
- var cmptId1 = node1.cmptId;
- var cmptId2 = node2.cmptId;
- if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {
+ if (w3 === 0 || h2 === 0) {
return;
}
- var directionX = node2.positionX - node1.positionX;
- var directionY = node2.positionY - node1.positionY;
- var maxRandDist = 1;
- if (0 === directionX && 0 === directionY) {
- directionX = randomDistance(maxRandDist);
- directionY = randomDistance(maxRandDist);
+ if (fit2 === "contain") {
+ var scale = Math.min(nodeTW / w3, nodeTH / h2);
+ w3 *= scale;
+ h2 *= scale;
+ } else if (fit2 === "cover") {
+ var scale = Math.max(nodeTW / w3, nodeTH / h2);
+ w3 *= scale;
+ h2 *= scale;
}
- var overlap = nodesOverlap(node1, node2, directionX, directionY);
- if (overlap > 0) {
- var force = options2.nodeOverlap * overlap;
- var distance2 = Math.sqrt(directionX * directionX + directionY * directionY);
- var forceX = force * directionX / distance2;
- var forceY = force * directionY / distance2;
+ var x5 = nodeX - nodeTW / 2;
+ var posXUnits = getIndexedStyle(node2, "background-position-x", "units", index);
+ var posXPfVal = getIndexedStyle(node2, "background-position-x", "pfValue", index);
+ if (posXUnits === "%") {
+ x5 += (nodeTW - w3) * posXPfVal;
} else {
- var point1 = findClippingPoint(node1, directionX, directionY);
- var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY);
- var distanceX = point2.x - point1.x;
- var distanceY = point2.y - point1.y;
- var distanceSqr = distanceX * distanceX + distanceY * distanceY;
- var distance2 = Math.sqrt(distanceSqr);
- var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;
- var forceX = force * distanceX / distance2;
- var forceY = force * distanceY / distance2;
- }
- if (!node1.isLocked) {
- node1.offsetX -= forceX;
- node1.offsetY -= forceY;
- }
- if (!node2.isLocked) {
- node2.offsetX += forceX;
- node2.offsetY += forceY;
+ x5 += posXPfVal;
}
- return;
- };
- var nodesOverlap = function nodesOverlap2(node1, node2, dX, dY) {
- if (dX > 0) {
- var overlapX = node1.maxX - node2.minX;
+ var offXUnits = getIndexedStyle(node2, "background-offset-x", "units", index);
+ var offXPfVal = getIndexedStyle(node2, "background-offset-x", "pfValue", index);
+ if (offXUnits === "%") {
+ x5 += (nodeTW - w3) * offXPfVal;
} else {
- var overlapX = node2.maxX - node1.minX;
+ x5 += offXPfVal;
}
- if (dY > 0) {
- var overlapY = node1.maxY - node2.minY;
+ var y5 = nodeY - nodeTH / 2;
+ var posYUnits = getIndexedStyle(node2, "background-position-y", "units", index);
+ var posYPfVal = getIndexedStyle(node2, "background-position-y", "pfValue", index);
+ if (posYUnits === "%") {
+ y5 += (nodeTH - h2) * posYPfVal;
} else {
- var overlapY = node2.maxY - node1.minY;
+ y5 += posYPfVal;
}
- if (overlapX >= 0 && overlapY >= 0) {
- return Math.sqrt(overlapX * overlapX + overlapY * overlapY);
+ var offYUnits = getIndexedStyle(node2, "background-offset-y", "units", index);
+ var offYPfVal = getIndexedStyle(node2, "background-offset-y", "pfValue", index);
+ if (offYUnits === "%") {
+ y5 += (nodeTH - h2) * offYPfVal;
} else {
- return 0;
+ y5 += offYPfVal;
}
- };
- var findClippingPoint = function findClippingPoint2(node2, dX, dY) {
- var X = node2.positionX;
- var Y2 = node2.positionY;
- var H2 = node2.height || 1;
- var W2 = node2.width || 1;
- var dirSlope = dY / dX;
- var nodeSlope = H2 / W2;
- var res = {};
- if (0 === dX && 0 < dY) {
- res.x = X;
- res.y = Y2 + H2 / 2;
- return res;
+ if (rs.pathCache) {
+ x5 -= nodeX;
+ y5 -= nodeY;
+ nodeX = 0;
+ nodeY = 0;
}
- if (0 === dX && 0 > dY) {
- res.x = X;
- res.y = Y2 + H2 / 2;
- return res;
+ var gAlpha = context.globalAlpha;
+ context.globalAlpha = imgOpacity;
+ var smoothingEnabled = r2.getImgSmoothing(context);
+ var isSmoothingSwitched = false;
+ if (smooth === "no" && smoothingEnabled) {
+ r2.setImgSmoothing(context, false);
+ isSmoothingSwitched = true;
+ } else if (smooth === "yes" && !smoothingEnabled) {
+ r2.setImgSmoothing(context, true);
+ isSmoothingSwitched = true;
}
- if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
- res.x = X + W2 / 2;
- res.y = Y2 + W2 * dY / 2 / dX;
- return res;
+ if (repeat2 === "no-repeat") {
+ if (shouldClip) {
+ context.save();
+ if (rs.pathCache) {
+ context.clip(rs.pathCache);
+ } else {
+ r2.nodeShapes[r2.getNodeShape(node2)].draw(context, nodeX, nodeY, nodeTW, nodeTH, cornerRadius, rs);
+ context.clip();
+ }
+ }
+ r2.safeDrawImage(context, img, 0, 0, imgW, imgH, x5, y5, w3, h2);
+ if (shouldClip) {
+ context.restore();
+ }
+ } else {
+ var pattern = context.createPattern(img, repeat2);
+ context.fillStyle = pattern;
+ r2.nodeShapes[r2.getNodeShape(node2)].draw(context, nodeX, nodeY, nodeTW, nodeTH, cornerRadius, rs);
+ context.translate(x5, y5);
+ context.fill();
+ context.translate(-x5, -y5);
}
- if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
- res.x = X - W2 / 2;
- res.y = Y2 - W2 * dY / 2 / dX;
- return res;
+ context.globalAlpha = gAlpha;
+ if (isSmoothingSwitched) {
+ r2.setImgSmoothing(context, smoothingEnabled);
}
- if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
- res.x = X + H2 * dX / 2 / dY;
- res.y = Y2 + H2 / 2;
- return res;
+ };
+ CRp$6 = {};
+ CRp$6.eleTextBiggerThanMin = function(ele, scale) {
+ if (!scale) {
+ var zoom2 = ele.cy().zoom();
+ var pxRatio = this.getPixelRatio();
+ var lvl = Math.ceil(log22(zoom2 * pxRatio));
+ scale = Math.pow(2, lvl);
}
- if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
- res.x = X - H2 * dX / 2 / dY;
- res.y = Y2 - H2 / 2;
- return res;
+ var computedSize = ele.pstyle("font-size").pfValue * scale;
+ var minSize = ele.pstyle("min-zoomed-font-size").pfValue;
+ if (computedSize < minSize) {
+ return false;
}
- return res;
+ return true;
};
- var calculateEdgeForces = function calculateEdgeForces2(layoutInfo, options2) {
- for (var i3 = 0; i3 < layoutInfo.edgeSize; i3++) {
- var edge = layoutInfo.layoutEdges[i3];
- var sourceIx = layoutInfo.idToIndex[edge.sourceId];
- var source = layoutInfo.layoutNodes[sourceIx];
- var targetIx = layoutInfo.idToIndex[edge.targetId];
- var target = layoutInfo.layoutNodes[targetIx];
- var directionX = target.positionX - source.positionX;
- var directionY = target.positionY - source.positionY;
- if (0 === directionX && 0 === directionY) {
- continue;
- }
- var point1 = findClippingPoint(source, directionX, directionY);
- var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY);
- var lx = point2.x - point1.x;
- var ly = point2.y - point1.y;
- var l = Math.sqrt(lx * lx + ly * ly);
- var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity;
- if (0 !== l) {
- var forceX = force * lx / l;
- var forceY = force * ly / l;
- } else {
- var forceX = 0;
- var forceY = 0;
- }
- if (!source.isLocked) {
- source.offsetX += forceX;
- source.offsetY += forceY;
- }
- if (!target.isLocked) {
- target.offsetX -= forceX;
- target.offsetY -= forceY;
+ CRp$6.drawElementText = function(context, ele, shiftToOriginWithBb, force, prefix) {
+ var useEleOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ var r2 = this;
+ if (force == null) {
+ if (useEleOpacity && !r2.eleTextBiggerThanMin(ele)) {
+ return;
}
- }
- };
- var calculateGravityForces = function calculateGravityForces2(layoutInfo, options2) {
- if (options2.gravity === 0) {
+ } else if (force === false) {
return;
}
- var distThreshold = 1;
- for (var i3 = 0; i3 < layoutInfo.graphSet.length; i3++) {
- var graph = layoutInfo.graphSet[i3];
- var numNodes = graph.length;
- if (0 === i3) {
- var centerX = layoutInfo.clientHeight / 2;
- var centerY = layoutInfo.clientWidth / 2;
- } else {
- var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];
- var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];
- var centerX = parent.positionX;
- var centerY = parent.positionY;
+ if (ele.isNode()) {
+ var label = ele.pstyle("label");
+ if (!label || !label.value) {
+ return;
}
- for (var j = 0; j < numNodes; j++) {
- var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];
- if (node2.isLocked) {
- continue;
- }
- var dx = centerX - node2.positionX;
- var dy = centerY - node2.positionY;
- var d = Math.sqrt(dx * dx + dy * dy);
- if (d > distThreshold) {
- var fx = options2.gravity * dx / d;
- var fy = options2.gravity * dy / d;
- node2.offsetX += fx;
- node2.offsetY += fy;
- }
+ var justification = r2.getLabelJustification(ele);
+ context.textAlign = justification;
+ context.textBaseline = "bottom";
+ } else {
+ var badLine = ele.element()._private.rscratch.badLine;
+ var _label = ele.pstyle("label");
+ var srcLabel = ele.pstyle("source-label");
+ var tgtLabel = ele.pstyle("target-label");
+ if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {
+ return;
}
+ context.textAlign = "center";
+ context.textBaseline = "bottom";
}
- };
- var propagateForces = function propagateForces2(layoutInfo, options2) {
- var queue = [];
- var start2 = 0;
- var end2 = -1;
- queue.push.apply(queue, layoutInfo.graphSet[0]);
- end2 += layoutInfo.graphSet[0].length;
- while (start2 <= end2) {
- var nodeId = queue[start2++];
- var nodeIndex = layoutInfo.idToIndex[nodeId];
- var node2 = layoutInfo.layoutNodes[nodeIndex];
- var children2 = node2.children;
- if (0 < children2.length && !node2.isLocked) {
- var offX = node2.offsetX;
- var offY = node2.offsetY;
- for (var i3 = 0; i3 < children2.length; i3++) {
- var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children2[i3]]];
- childNode.offsetX += offX;
- childNode.offsetY += offY;
- queue[++end2] = children2[i3];
- }
- node2.offsetX = 0;
- node2.offsetY = 0;
- }
+ var applyRotation = !shiftToOriginWithBb;
+ var bb;
+ if (shiftToOriginWithBb) {
+ bb = shiftToOriginWithBb;
+ context.translate(-bb.x1, -bb.y1);
}
- };
- var updatePositions = function updatePositions2(layoutInfo, options2) {
- for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
- var n = layoutInfo.layoutNodes[i3];
- if (0 < n.children.length) {
- n.maxX = void 0;
- n.minX = void 0;
- n.maxY = void 0;
- n.minY = void 0;
+ if (prefix == null) {
+ r2.drawText(context, ele, null, applyRotation, useEleOpacity);
+ if (ele.isEdge()) {
+ r2.drawText(context, ele, "source", applyRotation, useEleOpacity);
+ r2.drawText(context, ele, "target", applyRotation, useEleOpacity);
}
+ } else {
+ r2.drawText(context, ele, prefix, applyRotation, useEleOpacity);
}
- for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
- var n = layoutInfo.layoutNodes[i3];
- if (0 < n.children.length || n.isLocked) {
- continue;
- }
- var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature);
- n.positionX += tempForce.x;
- n.positionY += tempForce.y;
- n.offsetX = 0;
- n.offsetY = 0;
- n.minX = n.positionX - n.width;
- n.maxX = n.positionX + n.width;
- n.minY = n.positionY - n.height;
- n.maxY = n.positionY + n.height;
- updateAncestryBoundaries(n, layoutInfo);
+ if (shiftToOriginWithBb) {
+ context.translate(bb.x1, bb.y1);
}
- for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
- var n = layoutInfo.layoutNodes[i3];
- if (0 < n.children.length && !n.isLocked) {
- n.positionX = (n.maxX + n.minX) / 2;
- n.positionY = (n.maxY + n.minY) / 2;
- n.width = n.maxX - n.minX;
- n.height = n.maxY - n.minY;
+ };
+ CRp$6.getFontCache = function(context) {
+ var cache3;
+ this.fontCaches = this.fontCaches || [];
+ for (var i2 = 0; i2 < this.fontCaches.length; i2++) {
+ cache3 = this.fontCaches[i2];
+ if (cache3.context === context) {
+ return cache3;
}
}
+ cache3 = {
+ context
+ };
+ this.fontCaches.push(cache3);
+ return cache3;
};
- var limitForce = function limitForce2(forceX, forceY, max3) {
- var force = Math.sqrt(forceX * forceX + forceY * forceY);
- if (force > max3) {
- var res = {
- x: max3 * forceX / force,
- y: max3 * forceY / force
- };
+ CRp$6.setupTextStyle = function(context, ele) {
+ var useEleOpacity = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
+ var labelStyle = ele.pstyle("font-style").strValue;
+ var labelSize = ele.pstyle("font-size").pfValue + "px";
+ var labelFamily = ele.pstyle("font-family").strValue;
+ var labelWeight = ele.pstyle("font-weight").strValue;
+ var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle("text-opacity").value : 1;
+ var outlineOpacity = ele.pstyle("text-outline-opacity").value * opacity;
+ var color2 = ele.pstyle("color").value;
+ var outlineColor = ele.pstyle("text-outline-color").value;
+ context.font = labelStyle + " " + labelWeight + " " + labelSize + " " + labelFamily;
+ context.lineJoin = "round";
+ this.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
+ this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);
+ };
+ __name(roundRect, "roundRect");
+ CRp$6.getTextAngle = function(ele, prefix) {
+ var theta;
+ var _p = ele._private;
+ var rscratch = _p.rscratch;
+ var pdash = prefix ? prefix + "-" : "";
+ var rotation = ele.pstyle(pdash + "text-rotation");
+ var textAngle = getPrefixedProperty(rscratch, "labelAngle", prefix);
+ if (rotation.strValue === "autorotate") {
+ theta = ele.isEdge() ? textAngle : 0;
+ } else if (rotation.strValue === "none") {
+ theta = 0;
} else {
- var res = {
- x: forceX,
- y: forceY
- };
+ theta = rotation.pfValue;
}
- return res;
+ return theta;
};
- var updateAncestryBoundaries = function updateAncestryBoundaries2(node2, layoutInfo) {
- var parentId = node2.parentId;
- if (null == parentId) {
+ CRp$6.drawText = function(context, ele, prefix) {
+ var applyRotation = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var useEleOpacity = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var _p = ele._private;
+ var rscratch = _p.rscratch;
+ var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;
+ if (useEleOpacity && (parentOpacity === 0 || ele.pstyle("text-opacity").value === 0)) {
return;
}
- var p2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];
- var flag = false;
- if (null == p2.maxX || node2.maxX + p2.padRight > p2.maxX) {
- p2.maxX = node2.maxX + p2.padRight;
- flag = true;
- }
- if (null == p2.minX || node2.minX - p2.padLeft < p2.minX) {
- p2.minX = node2.minX - p2.padLeft;
- flag = true;
- }
- if (null == p2.maxY || node2.maxY + p2.padBottom > p2.maxY) {
- p2.maxY = node2.maxY + p2.padBottom;
- flag = true;
- }
- if (null == p2.minY || node2.minY - p2.padTop < p2.minY) {
- p2.minY = node2.minY - p2.padTop;
- flag = true;
- }
- if (flag) {
- return updateAncestryBoundaries2(p2, layoutInfo);
- }
- return;
- };
- var separateComponents = function separateComponents2(layoutInfo, options2) {
- var nodes2 = layoutInfo.layoutNodes;
- var components = [];
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var node2 = nodes2[i3];
- var cid = node2.cmptId;
- var component = components[cid] = components[cid] || [];
- component.push(node2);
+ if (prefix === "main") {
+ prefix = null;
}
- var totalA = 0;
- for (var i3 = 0; i3 < components.length; i3++) {
- var c2 = components[i3];
- if (!c2) {
- continue;
+ var textX = getPrefixedProperty(rscratch, "labelX", prefix);
+ var textY = getPrefixedProperty(rscratch, "labelY", prefix);
+ var orgTextX, orgTextY;
+ var text2 = this.getLabelText(ele, prefix);
+ if (text2 != null && text2 !== "" && !isNaN(textX) && !isNaN(textY)) {
+ this.setupTextStyle(context, ele, useEleOpacity);
+ var pdash = prefix ? prefix + "-" : "";
+ var textW = getPrefixedProperty(rscratch, "labelWidth", prefix);
+ var textH = getPrefixedProperty(rscratch, "labelHeight", prefix);
+ var marginX = ele.pstyle(pdash + "text-margin-x").pfValue;
+ var marginY = ele.pstyle(pdash + "text-margin-y").pfValue;
+ var isEdge2 = ele.isEdge();
+ var halign = ele.pstyle("text-halign").value;
+ var valign = ele.pstyle("text-valign").value;
+ if (isEdge2) {
+ halign = "center";
+ valign = "center";
}
- c2.x1 = Infinity;
- c2.x2 = -Infinity;
- c2.y1 = Infinity;
- c2.y2 = -Infinity;
- for (var j = 0; j < c2.length; j++) {
- var n = c2[j];
- c2.x1 = Math.min(c2.x1, n.positionX - n.width / 2);
- c2.x2 = Math.max(c2.x2, n.positionX + n.width / 2);
- c2.y1 = Math.min(c2.y1, n.positionY - n.height / 2);
- c2.y2 = Math.max(c2.y2, n.positionY + n.height / 2);
- }
- c2.w = c2.x2 - c2.x1;
- c2.h = c2.y2 - c2.y1;
- totalA += c2.w * c2.h;
- }
- components.sort(function(c1, c22) {
- return c22.w * c22.h - c1.w * c1.h;
- });
- var x2 = 0;
- var y2 = 0;
- var usedW = 0;
- var rowH = 0;
- var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;
- for (var i3 = 0; i3 < components.length; i3++) {
- var c2 = components[i3];
- if (!c2) {
- continue;
+ textX += marginX;
+ textY += marginY;
+ var theta;
+ if (!applyRotation) {
+ theta = 0;
+ } else {
+ theta = this.getTextAngle(ele, prefix);
}
- for (var j = 0; j < c2.length; j++) {
- var n = c2[j];
- if (!n.isLocked) {
- n.positionX += x2 - c2.x1;
- n.positionY += y2 - c2.y1;
- }
+ if (theta !== 0) {
+ orgTextX = textX;
+ orgTextY = textY;
+ context.translate(orgTextX, orgTextY);
+ context.rotate(theta);
+ textX = 0;
+ textY = 0;
}
- x2 += c2.w + options2.componentSpacing;
- usedW += c2.w + options2.componentSpacing;
- rowH = Math.max(rowH, c2.h);
- if (usedW > maxRowW) {
- y2 += rowH + options2.componentSpacing;
- x2 = 0;
- usedW = 0;
- rowH = 0;
+ switch (valign) {
+ case "top":
+ break;
+ case "center":
+ textY += textH / 2;
+ break;
+ case "bottom":
+ textY += textH;
+ break;
}
- }
- };
- var defaults$3 = {
- fit: true,
- // whether to fit the viewport to the graph
- padding: 30,
- // padding used on fit
- boundingBox: void 0,
- // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
- avoidOverlap: true,
- // prevents node overlap, may overflow boundingBox if not enough space
- avoidOverlapPadding: 10,
- // extra spacing around nodes when avoidOverlap: true
- nodeDimensionsIncludeLabels: false,
- // Excludes the label when calculating node bounding boxes for the layout algorithm
- spacingFactor: void 0,
- // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
- condense: false,
- // uses all available space on false, uses minimal space on true
- rows: void 0,
- // force num of rows in the grid
- cols: void 0,
- // force num of columns in the grid
- position: function position3(node2) {
- },
- // returns { row, col } for element
- sort: void 0,
- // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
- animate: false,
- // whether to transition the node positions
- animationDuration: 500,
- // duration of animation in ms if enabled
- animationEasing: void 0,
- // easing of animation if enabled
- animateFilter: function animateFilter(node2, i3) {
- return true;
- },
- // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
- ready: void 0,
- // callback on layoutready
- stop: void 0,
- // callback on layoutstop
- transform: function transform(node2, position3) {
- return position3;
- }
- // transform a given node position. Useful for changing flow direction in discrete layouts
- };
- function GridLayout(options2) {
- this.options = extend2({}, defaults$3, options2);
- }
- GridLayout.prototype.run = function() {
- var params = this.options;
- var options2 = params;
- var cy = params.cy;
- var eles = options2.eles;
- var nodes2 = eles.nodes().not(":parent");
- if (options2.sort) {
- nodes2 = nodes2.sort(options2.sort);
- }
- var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
- x1: 0,
- y1: 0,
- w: cy.width(),
- h: cy.height()
- });
- if (bb.h === 0 || bb.w === 0) {
- eles.nodes().layoutPositions(this, options2, function(ele) {
- return {
- x: bb.x1,
- y: bb.y1
- };
- });
- } else {
- var cells = nodes2.size();
- var splits = Math.sqrt(cells * bb.h / bb.w);
- var rows = Math.round(splits);
- var cols = Math.round(bb.w / bb.h * splits);
- var small = function small2(val) {
- if (val == null) {
- return Math.min(rows, cols);
- } else {
- var min3 = Math.min(rows, cols);
- if (min3 == rows) {
- rows = val;
- } else {
- cols = val;
- }
+ var backgroundOpacity = ele.pstyle("text-background-opacity").value;
+ var borderOpacity = ele.pstyle("text-border-opacity").value;
+ var textBorderWidth = ele.pstyle("text-border-width").pfValue;
+ var backgroundPadding = ele.pstyle("text-background-padding").pfValue;
+ var styleShape = ele.pstyle("text-background-shape").strValue;
+ var rounded = styleShape.indexOf("round") === 0;
+ var roundRadius = 2;
+ if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {
+ var bgX = textX - backgroundPadding;
+ switch (halign) {
+ case "left":
+ bgX -= textW;
+ break;
+ case "center":
+ bgX -= textW / 2;
+ break;
}
- };
- var large = function large2(val) {
- if (val == null) {
- return Math.max(rows, cols);
- } else {
- var max3 = Math.max(rows, cols);
- if (max3 == rows) {
- rows = val;
+ var bgY = textY - textH - backgroundPadding;
+ var bgW = textW + 2 * backgroundPadding;
+ var bgH = textH + 2 * backgroundPadding;
+ if (backgroundOpacity > 0) {
+ var textFill = context.fillStyle;
+ var textBackgroundColor = ele.pstyle("text-background-color").value;
+ context.fillStyle = "rgba(" + textBackgroundColor[0] + "," + textBackgroundColor[1] + "," + textBackgroundColor[2] + "," + backgroundOpacity * parentOpacity + ")";
+ if (rounded) {
+ roundRect(context, bgX, bgY, bgW, bgH, roundRadius);
} else {
- cols = val;
+ context.fillRect(bgX, bgY, bgW, bgH);
}
+ context.fillStyle = textFill;
}
- };
- var oRows = options2.rows;
- var oCols = options2.cols != null ? options2.cols : options2.columns;
- if (oRows != null && oCols != null) {
- rows = oRows;
- cols = oCols;
- } else if (oRows != null && oCols == null) {
- rows = oRows;
- cols = Math.ceil(cells / rows);
- } else if (oRows == null && oCols != null) {
- cols = oCols;
- rows = Math.ceil(cells / cols);
- } else if (cols * rows > cells) {
- var sm = small();
- var lg = large();
- if ((sm - 1) * lg >= cells) {
- small(sm - 1);
- } else if ((lg - 1) * sm >= cells) {
- large(lg - 1);
- }
- } else {
- while (cols * rows < cells) {
- var _sm = small();
- var _lg = large();
- if ((_lg + 1) * _sm >= cells) {
- large(_lg + 1);
+ if (textBorderWidth > 0 && borderOpacity > 0) {
+ var textStroke = context.strokeStyle;
+ var textLineWidth = context.lineWidth;
+ var textBorderColor = ele.pstyle("text-border-color").value;
+ var textBorderStyle = ele.pstyle("text-border-style").value;
+ context.strokeStyle = "rgba(" + textBorderColor[0] + "," + textBorderColor[1] + "," + textBorderColor[2] + "," + borderOpacity * parentOpacity + ")";
+ context.lineWidth = textBorderWidth;
+ if (context.setLineDash) {
+ switch (textBorderStyle) {
+ case "dotted":
+ context.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ context.setLineDash([4, 2]);
+ break;
+ case "double":
+ context.lineWidth = textBorderWidth / 4;
+ context.setLineDash([]);
+ break;
+ case "solid":
+ context.setLineDash([]);
+ break;
+ }
+ }
+ if (rounded) {
+ roundRect(context, bgX, bgY, bgW, bgH, roundRadius, "stroke");
} else {
- small(_sm + 1);
+ context.strokeRect(bgX, bgY, bgW, bgH);
+ }
+ if (textBorderStyle === "double") {
+ var whiteWidth = textBorderWidth / 2;
+ if (rounded) {
+ roundRect(context, bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2, roundRadius, "stroke");
+ } else {
+ context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);
+ }
+ }
+ if (context.setLineDash) {
+ context.setLineDash([]);
}
+ context.lineWidth = textLineWidth;
+ context.strokeStyle = textStroke;
}
}
- var cellWidth = bb.w / cols;
- var cellHeight = bb.h / rows;
- if (options2.condense) {
- cellWidth = 0;
- cellHeight = 0;
+ var lineWidth = 2 * ele.pstyle("text-outline-width").pfValue;
+ if (lineWidth > 0) {
+ context.lineWidth = lineWidth;
}
- if (options2.avoidOverlap) {
- for (var i3 = 0; i3 < nodes2.length; i3++) {
- var node2 = nodes2[i3];
- var pos = node2._private.position;
- if (pos.x == null || pos.y == null) {
- pos.x = 0;
- pos.y = 0;
+ if (ele.pstyle("text-wrap").value === "wrap") {
+ var lines = getPrefixedProperty(rscratch, "labelWrapCachedLines", prefix);
+ var lineHeight = getPrefixedProperty(rscratch, "labelLineHeight", prefix);
+ var halfTextW = textW / 2;
+ var justification = this.getLabelJustification(ele);
+ if (justification === "auto") ;
+ else if (halign === "left") {
+ if (justification === "left") {
+ textX += -textW;
+ } else if (justification === "center") {
+ textX += -halfTextW;
}
- var nbb = node2.layoutDimensions(options2);
- var p2 = options2.avoidOverlapPadding;
- var w2 = nbb.w + p2;
- var h = nbb.h + p2;
- cellWidth = Math.max(cellWidth, w2);
- cellHeight = Math.max(cellHeight, h);
- }
- }
- var cellUsed = {};
- var used = function used2(row2, col2) {
- return cellUsed["c-" + row2 + "-" + col2] ? true : false;
- };
- var use = function use2(row2, col2) {
- cellUsed["c-" + row2 + "-" + col2] = true;
- };
- var row = 0;
- var col = 0;
- var moveToNextCell = function moveToNextCell2() {
- col++;
- if (col >= cols) {
- col = 0;
- row++;
- }
- };
- var id2manPos = {};
- for (var _i = 0; _i < nodes2.length; _i++) {
- var _node = nodes2[_i];
- var rcPos = options2.position(_node);
- if (rcPos && (rcPos.row !== void 0 || rcPos.col !== void 0)) {
- var _pos = {
- row: rcPos.row,
- col: rcPos.col
- };
- if (_pos.col === void 0) {
- _pos.col = 0;
- while (used(_pos.row, _pos.col)) {
- _pos.col++;
- }
- } else if (_pos.row === void 0) {
- _pos.row = 0;
- while (used(_pos.row, _pos.col)) {
- _pos.row++;
- }
+ } else if (halign === "center") {
+ if (justification === "left") {
+ textX += -halfTextW;
+ } else if (justification === "right") {
+ textX += halfTextW;
+ }
+ } else if (halign === "right") {
+ if (justification === "center") {
+ textX += halfTextW;
+ } else if (justification === "right") {
+ textX += textW;
}
- id2manPos[_node.id()] = _pos;
- use(_pos.row, _pos.col);
}
- }
- var getPos = function getPos2(element2, i4) {
- var x2, y2;
- if (element2.locked() || element2.isParent()) {
- return false;
+ switch (valign) {
+ case "top":
+ textY -= (lines.length - 1) * lineHeight;
+ break;
+ case "center":
+ case "bottom":
+ textY -= (lines.length - 1) * lineHeight;
+ break;
}
- var rcPos2 = id2manPos[element2.id()];
- if (rcPos2) {
- x2 = rcPos2.col * cellWidth + cellWidth / 2 + bb.x1;
- y2 = rcPos2.row * cellHeight + cellHeight / 2 + bb.y1;
- } else {
- while (used(row, col)) {
- moveToNextCell();
+ for (var l2 = 0; l2 < lines.length; l2++) {
+ if (lineWidth > 0) {
+ context.strokeText(lines[l2], textX, textY);
}
- x2 = col * cellWidth + cellWidth / 2 + bb.x1;
- y2 = row * cellHeight + cellHeight / 2 + bb.y1;
- use(row, col);
- moveToNextCell();
+ context.fillText(lines[l2], textX, textY);
+ textY += lineHeight;
}
- return {
- x: x2,
- y: y2
- };
- };
- nodes2.layoutPositions(this, options2, getPos);
+ } else {
+ if (lineWidth > 0) {
+ context.strokeText(text2, textX, textY);
+ }
+ context.fillText(text2, textX, textY);
+ }
+ if (theta !== 0) {
+ context.rotate(-theta);
+ context.translate(-orgTextX, -orgTextY);
+ }
}
- return this;
};
- var defaults$2 = {
- ready: function ready() {
- },
- // on layoutready
- stop: function stop() {
+ CRp$5 = {};
+ CRp$5.drawNode = function(context, node2, shiftToOriginWithBb) {
+ var drawLabel4 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
+ var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
+ var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
+ var r2 = this;
+ var nodeWidth, nodeHeight;
+ var _p = node2._private;
+ var rs = _p.rscratch;
+ var pos = node2.position();
+ if (!number$1(pos.x) || !number$1(pos.y)) {
+ return;
}
- // on layoutstop
- };
- function NullLayout(options2) {
- this.options = extend2({}, defaults$2, options2);
- }
- NullLayout.prototype.run = function() {
- var options2 = this.options;
- var eles = options2.eles;
- var layout3 = this;
- options2.cy;
- layout3.emit("layoutstart");
- eles.nodes().positions(function() {
- return {
- x: 0,
- y: 0
- };
- });
- layout3.one("layoutready", options2.ready);
- layout3.emit("layoutready");
- layout3.one("layoutstop", options2.stop);
- layout3.emit("layoutstop");
- return this;
- };
- NullLayout.prototype.stop = function() {
- return this;
- };
- var defaults$12 = {
- positions: void 0,
- // map of (node id) => (position obj); or function(node){ return somPos; }
- zoom: void 0,
- // the zoom level to set (prob want fit = false if set)
- pan: void 0,
- // the pan level to set (prob want fit = false if set)
- fit: true,
- // whether to fit to viewport
- padding: 30,
- // padding on fit
- animate: false,
- // whether to transition the node positions
- animationDuration: 500,
- // duration of animation in ms if enabled
- animationEasing: void 0,
- // easing of animation if enabled
- animateFilter: function animateFilter(node2, i3) {
- return true;
- },
- // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
- ready: void 0,
- // callback on layoutready
- stop: void 0,
- // callback on layoutstop
- transform: function transform(node2, position3) {
- return position3;
+ if (shouldDrawOpacity && !node2.visible()) {
+ return;
}
- // transform a given node position. Useful for changing flow direction in discrete layouts
- };
- function PresetLayout(options2) {
- this.options = extend2({}, defaults$12, options2);
- }
- PresetLayout.prototype.run = function() {
- var options2 = this.options;
- var eles = options2.eles;
- var nodes2 = eles.nodes();
- var posIsFn = fn$6(options2.positions);
- function getPosition(node2) {
- if (options2.positions == null) {
- return copyPosition(node2.position());
- }
- if (posIsFn) {
- return options2.positions(node2);
- }
- var pos = options2.positions[node2._private.data.id];
- if (pos == null) {
- return null;
- }
- return pos;
+ var eleOpacity = shouldDrawOpacity ? node2.effectiveOpacity() : 1;
+ var usePaths = r2.usePaths();
+ var path4;
+ var pathCacheHit = false;
+ var padding3 = node2.padding();
+ nodeWidth = node2.width() + 2 * padding3;
+ nodeHeight = node2.height() + 2 * padding3;
+ var bb;
+ if (shiftToOriginWithBb) {
+ bb = shiftToOriginWithBb;
+ context.translate(-bb.x1, -bb.y1);
}
- nodes2.layoutPositions(this, options2, function(node2, i3) {
- var position3 = getPosition(node2);
- if (node2.locked() || position3 == null) {
- return false;
+ var bgImgProp = node2.pstyle("background-image");
+ var urls = bgImgProp.value;
+ var urlDefined = new Array(urls.length);
+ var image = new Array(urls.length);
+ var numImages = 0;
+ for (var i2 = 0; i2 < urls.length; i2++) {
+ var url = urls[i2];
+ var defd = urlDefined[i2] = url != null && url !== "none";
+ if (defd) {
+ var bgImgCrossOrigin = node2.cy().style().getIndexedStyle(node2, "background-image-crossorigin", "value", i2);
+ numImages++;
+ image[i2] = r2.getCachedImage(url, bgImgCrossOrigin, function() {
+ _p.backgroundTimestamp = Date.now();
+ node2.emitAndNotify("background");
+ });
}
- return position3;
- });
- return this;
- };
- var defaults2 = {
- fit: true,
- // whether to fit to viewport
- padding: 30,
- // fit padding
- boundingBox: void 0,
- // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
- animate: false,
- // whether to transition the node positions
- animationDuration: 500,
- // duration of animation in ms if enabled
- animationEasing: void 0,
- // easing of animation if enabled
- animateFilter: function animateFilter(node2, i3) {
- return true;
- },
- // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
- ready: void 0,
- // callback on layoutready
- stop: void 0,
- // callback on layoutstop
- transform: function transform(node2, position3) {
- return position3;
}
- // transform a given node position. Useful for changing flow direction in discrete layouts
- };
- function RandomLayout(options2) {
- this.options = extend2({}, defaults2, options2);
- }
- RandomLayout.prototype.run = function() {
- var options2 = this.options;
- var cy = options2.cy;
- var eles = options2.eles;
- var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
- x1: 0,
- y1: 0,
- w: cy.width(),
- h: cy.height()
- });
- var getPos = function getPos2(node2, i3) {
- return {
- x: bb.x1 + Math.round(Math.random() * bb.w),
- y: bb.y1 + Math.round(Math.random() * bb.h)
- };
- };
- eles.nodes().layoutPositions(this, options2, getPos);
- return this;
- };
- var layout2 = [{
- name: "breadthfirst",
- impl: BreadthFirstLayout
- }, {
- name: "circle",
- impl: CircleLayout
- }, {
- name: "concentric",
- impl: ConcentricLayout
- }, {
- name: "cose",
- impl: CoseLayout
- }, {
- name: "grid",
- impl: GridLayout
- }, {
- name: "null",
- impl: NullLayout
- }, {
- name: "preset",
- impl: PresetLayout
- }, {
- name: "random",
- impl: RandomLayout
- }];
- function NullRenderer(options2) {
- this.options = options2;
- this.notifications = 0;
- }
- var noop2 = function noop3() {
- };
- var throwImgErr = function throwImgErr2() {
- throw new Error("A headless instance can not render images");
- };
- NullRenderer.prototype = {
- recalculateRenderedStyle: noop2,
- notify: function notify() {
- this.notifications++;
- },
- init: noop2,
- isHeadless: function isHeadless() {
- return true;
- },
- png: throwImgErr,
- jpg: throwImgErr
- };
- var BRp$f = {};
- BRp$f.arrowShapeWidth = 0.3;
- BRp$f.registerArrowShapes = function() {
- var arrowShapes = this.arrowShapes = {};
- var renderer3 = this;
- var bbCollide = function bbCollide2(x2, y2, size2, angle, translation, edgeWidth, padding2) {
- var x1 = translation.x - size2 / 2 - padding2;
- var x22 = translation.x + size2 / 2 + padding2;
- var y1 = translation.y - size2 / 2 - padding2;
- var y22 = translation.y + size2 / 2 + padding2;
- var inside = x1 <= x2 && x2 <= x22 && y1 <= y2 && y2 <= y22;
- return inside;
- };
- var transform = function transform2(x2, y2, size2, angle, translation) {
- var xRotated = x2 * Math.cos(angle) - y2 * Math.sin(angle);
- var yRotated = x2 * Math.sin(angle) + y2 * Math.cos(angle);
- var xScaled = xRotated * size2;
- var yScaled = yRotated * size2;
- var xTranslated = xScaled + translation.x;
- var yTranslated = yScaled + translation.y;
+ var darkness = node2.pstyle("background-blacken").value;
+ var borderWidth = node2.pstyle("border-width").pfValue;
+ var bgOpacity = node2.pstyle("background-opacity").value * eleOpacity;
+ var borderColor = node2.pstyle("border-color").value;
+ var borderStyle = node2.pstyle("border-style").value;
+ var borderJoin = node2.pstyle("border-join").value;
+ var borderCap = node2.pstyle("border-cap").value;
+ var borderPosition = node2.pstyle("border-position").value;
+ var borderPattern = node2.pstyle("border-dash-pattern").pfValue;
+ var borderOffset = node2.pstyle("border-dash-offset").pfValue;
+ var borderOpacity = node2.pstyle("border-opacity").value * eleOpacity;
+ var outlineWidth = node2.pstyle("outline-width").pfValue;
+ var outlineColor = node2.pstyle("outline-color").value;
+ var outlineStyle = node2.pstyle("outline-style").value;
+ var outlineOpacity = node2.pstyle("outline-opacity").value * eleOpacity;
+ var outlineOffset = node2.pstyle("outline-offset").value;
+ var cornerRadius = node2.pstyle("corner-radius").value;
+ if (cornerRadius !== "auto") cornerRadius = node2.pstyle("corner-radius").pfValue;
+ var setupShapeColor = /* @__PURE__ */ __name(function setupShapeColor2() {
+ var bgOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : bgOpacity;
+ r2.eleFillStyle(context, node2, bgOpy);
+ }, "setupShapeColor");
+ var setupBorderColor = /* @__PURE__ */ __name(function setupBorderColor2() {
+ var bdrOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : borderOpacity;
+ r2.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);
+ }, "setupBorderColor");
+ var setupOutlineColor = /* @__PURE__ */ __name(function setupOutlineColor2() {
+ var otlnOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : outlineOpacity;
+ r2.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], otlnOpy);
+ }, "setupOutlineColor");
+ var getPath = /* @__PURE__ */ __name(function getPath2(width3, height2, shape, points) {
+ var pathCache = r2.nodePathCache = r2.nodePathCache || [];
+ var key = hashStrings(shape === "polygon" ? shape + "," + points.join(",") : shape, "" + height2, "" + width3, "" + cornerRadius);
+ var cachedPath = pathCache[key];
+ var path5;
+ var cacheHit = false;
+ if (cachedPath != null) {
+ path5 = cachedPath;
+ cacheHit = true;
+ rs.pathCache = path5;
+ } else {
+ path5 = new Path2D();
+ pathCache[key] = rs.pathCache = path5;
+ }
return {
- x: xTranslated,
- y: yTranslated
+ path: path5,
+ cacheHit
};
- };
- var transformPoints = function transformPoints2(pts2, size2, angle, translation) {
- var retPts = [];
- for (var i3 = 0; i3 < pts2.length; i3 += 2) {
- var x2 = pts2[i3];
- var y2 = pts2[i3 + 1];
- retPts.push(transform(x2, y2, size2, angle, translation));
- }
- return retPts;
- };
- var pointsToArr = function pointsToArr2(pts2) {
- var ret = [];
- for (var i3 = 0; i3 < pts2.length; i3++) {
- var p2 = pts2[i3];
- ret.push(p2.x, p2.y);
- }
- return ret;
- };
- var standardGap = function standardGap2(edge) {
- return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").pfValue * 2;
- };
- var defineArrowShape = function defineArrowShape2(name2, defn) {
- if (string(defn)) {
- defn = arrowShapes[defn];
- }
- arrowShapes[name2] = extend2({
- name: name2,
- points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],
- collide: function collide(x2, y2, size2, angle, translation, padding2) {
- var points = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
- var inside = pointInsidePolygonPoints(x2, y2, points);
- return inside;
- },
- roughCollide: bbCollide,
- draw: function draw2(context, size2, angle, translation) {
- var points = transformPoints(this.points, size2, angle, translation);
- renderer3.arrowShapeImpl("polygon")(context, points);
- },
- spacing: function spacing(edge) {
- return 0;
- },
- gap: standardGap
- }, defn);
- };
- defineArrowShape("none", {
- collide: falsify,
- roughCollide: falsify,
- draw: noop$12,
- spacing: zeroify,
- gap: zeroify
- });
- defineArrowShape("triangle", {
- points: [-0.15, -0.3, 0, 0, 0.15, -0.3]
- });
- defineArrowShape("arrow", "triangle");
- defineArrowShape("triangle-backcurve", {
- points: arrowShapes["triangle"].points,
- controlPoint: [0, -0.15],
- roughCollide: bbCollide,
- draw: function draw2(context, size2, angle, translation, edgeWidth) {
- var ptsTrans = transformPoints(this.points, size2, angle, translation);
- var ctrlPt = this.controlPoint;
- var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size2, angle, translation);
- renderer3.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);
- },
- gap: function gap(edge) {
- return standardGap(edge) * 0.8;
- }
- });
- defineArrowShape("triangle-tee", {
- points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
- pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],
- collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
- var triPts = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
- var teePts = pointsToArr(transformPoints(this.pointsTee, size2 + 2 * padding2, angle, translation));
- var inside = pointInsidePolygonPoints(x2, y2, triPts) || pointInsidePolygonPoints(x2, y2, teePts);
- return inside;
- },
- draw: function draw2(context, size2, angle, translation, edgeWidth) {
- var triPts = transformPoints(this.points, size2, angle, translation);
- var teePts = transformPoints(this.pointsTee, size2, angle, translation);
- renderer3.arrowShapeImpl(this.name)(context, triPts, teePts);
- }
- });
- defineArrowShape("circle-triangle", {
- radius: 0.15,
- pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],
- collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
- var t4 = translation;
- var circleInside = Math.pow(t4.x - x2, 2) + Math.pow(t4.y - y2, 2) <= Math.pow((size2 + 2 * padding2) * this.radius, 2);
- var triPts = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
- return pointInsidePolygonPoints(x2, y2, triPts) || circleInside;
- },
- draw: function draw2(context, size2, angle, translation, edgeWidth) {
- var triPts = transformPoints(this.pointsTr, size2, angle, translation);
- renderer3.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size2);
- },
- spacing: function spacing(edge) {
- return renderer3.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
- }
- });
- defineArrowShape("triangle-cross", {
- points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
- baseCrossLinePts: [
- -0.15,
- -0.4,
- // first half of the rectangle
- -0.15,
- -0.4,
- 0.15,
- -0.4,
- // second half of the rectangle
- 0.15,
- -0.4
- ],
- crossLinePts: function crossLinePts(size2, edgeWidth) {
- var p2 = this.baseCrossLinePts.slice();
- var shiftFactor = edgeWidth / size2;
- var y0 = 3;
- var y1 = 5;
- p2[y0] = p2[y0] - shiftFactor;
- p2[y1] = p2[y1] - shiftFactor;
- return p2;
- },
- collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
- var triPts = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
- var teePts = pointsToArr(transformPoints(this.crossLinePts(size2, edgeWidth), size2 + 2 * padding2, angle, translation));
- var inside = pointInsidePolygonPoints(x2, y2, triPts) || pointInsidePolygonPoints(x2, y2, teePts);
- return inside;
- },
- draw: function draw2(context, size2, angle, translation, edgeWidth) {
- var triPts = transformPoints(this.points, size2, angle, translation);
- var crossLinePts = transformPoints(this.crossLinePts(size2, edgeWidth), size2, angle, translation);
- renderer3.arrowShapeImpl(this.name)(context, triPts, crossLinePts);
- }
- });
- defineArrowShape("vee", {
- points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],
- gap: function gap(edge) {
- return standardGap(edge) * 0.525;
+ }, "getPath");
+ var styleShape = node2.pstyle("shape").strValue;
+ var shapePts = node2.pstyle("shape-polygon-points").pfValue;
+ if (usePaths) {
+ context.translate(pos.x, pos.y);
+ var shapePath = getPath(nodeWidth, nodeHeight, styleShape, shapePts);
+ path4 = shapePath.path;
+ pathCacheHit = shapePath.cacheHit;
+ }
+ var drawShape = /* @__PURE__ */ __name(function drawShape2() {
+ if (!pathCacheHit) {
+ var npos = pos;
+ if (usePaths) {
+ npos = {
+ x: 0,
+ y: 0
+ };
+ }
+ r2.nodeShapes[r2.getNodeShape(node2)].draw(path4 || context, npos.x, npos.y, nodeWidth, nodeHeight, cornerRadius, rs);
}
- });
- defineArrowShape("circle", {
- radius: 0.15,
- collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
- var t4 = translation;
- var inside = Math.pow(t4.x - x2, 2) + Math.pow(t4.y - y2, 2) <= Math.pow((size2 + 2 * padding2) * this.radius, 2);
- return inside;
- },
- draw: function draw2(context, size2, angle, translation, edgeWidth) {
- renderer3.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size2);
- },
- spacing: function spacing(edge) {
- return renderer3.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
+ if (usePaths) {
+ context.fill(path4);
+ } else {
+ context.fill();
}
- });
- defineArrowShape("tee", {
- points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],
- spacing: function spacing(edge) {
- return 1;
- },
- gap: function gap(edge) {
- return 1;
+ }, "drawShape");
+ var drawImages = /* @__PURE__ */ __name(function drawImages2() {
+ var nodeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
+ var inside = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ var prevBging = _p.backgrounding;
+ var totalCompleted = 0;
+ for (var _i = 0; _i < image.length; _i++) {
+ var bgContainment = node2.cy().style().getIndexedStyle(node2, "background-image-containment", "value", _i);
+ if (inside && bgContainment === "over" || !inside && bgContainment === "inside") {
+ totalCompleted++;
+ continue;
+ }
+ if (urlDefined[_i] && image[_i].complete && !image[_i].error) {
+ totalCompleted++;
+ r2.drawInscribedImage(context, image[_i], node2, _i, nodeOpacity);
+ }
}
- });
- defineArrowShape("square", {
- points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3]
- });
- defineArrowShape("diamond", {
- points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],
- gap: function gap(edge) {
- return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
+ _p.backgrounding = !(totalCompleted === numImages);
+ if (prevBging !== _p.backgrounding) {
+ node2.updateStyle(false);
}
- });
- defineArrowShape("chevron", {
- points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],
- gap: function gap(edge) {
- return 0.95 * edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
+ }, "drawImages");
+ var drawPie = /* @__PURE__ */ __name(function drawPie2() {
+ var redrawShape = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
+ var pieOpacity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : eleOpacity;
+ if (r2.hasPie(node2)) {
+ r2.drawPie(context, node2, pieOpacity);
+ if (redrawShape) {
+ if (!usePaths) {
+ r2.nodeShapes[r2.getNodeShape(node2)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight, cornerRadius, rs);
+ }
+ }
}
- });
- };
- var BRp$e = {};
- BRp$e.projectIntoViewport = function(clientX, clientY) {
- var cy = this.cy;
- var offsets = this.findContainerClientCoords();
- var offsetLeft = offsets[0];
- var offsetTop = offsets[1];
- var scale = offsets[4];
- var pan = cy.pan();
- var zoom = cy.zoom();
- var x2 = ((clientX - offsetLeft) / scale - pan.x) / zoom;
- var y2 = ((clientY - offsetTop) / scale - pan.y) / zoom;
- return [x2, y2];
- };
- BRp$e.findContainerClientCoords = function() {
- if (this.containerBB) {
- return this.containerBB;
- }
- var container = this.container;
- var rect2 = container.getBoundingClientRect();
- var style = window$1.getComputedStyle(container);
- var styleValue2 = function styleValue3(name2) {
- return parseFloat(style.getPropertyValue(name2));
- };
- var padding2 = {
- left: styleValue2("padding-left"),
- right: styleValue2("padding-right"),
- top: styleValue2("padding-top"),
- bottom: styleValue2("padding-bottom")
- };
- var border = {
- left: styleValue2("border-left-width"),
- right: styleValue2("border-right-width"),
- top: styleValue2("border-top-width"),
- bottom: styleValue2("border-bottom-width")
- };
- var clientWidth = container.clientWidth;
- var clientHeight = container.clientHeight;
- var paddingHor = padding2.left + padding2.right;
- var paddingVer = padding2.top + padding2.bottom;
- var borderHor = border.left + border.right;
- var scale = rect2.width / (clientWidth + borderHor);
- var unscaledW = clientWidth - paddingHor;
- var unscaledH = clientHeight - paddingVer;
- var left2 = rect2.left + padding2.left + border.left;
- var top2 = rect2.top + padding2.top + border.top;
- return this.containerBB = [left2, top2, unscaledW, unscaledH, scale];
- };
- BRp$e.invalidateContainerClientCoordsCache = function() {
- this.containerBB = null;
- };
- BRp$e.findNearestElement = function(x2, y2, interactiveElementsOnly, isTouch) {
- return this.findNearestElements(x2, y2, interactiveElementsOnly, isTouch)[0];
- };
- BRp$e.findNearestElements = function(x2, y2, interactiveElementsOnly, isTouch) {
- var self2 = this;
- var r = this;
- var eles = r.getCachedZSortedEles();
- var near = [];
- var zoom = r.cy.zoom();
- var hasCompounds = r.cy.hasCompoundNodes();
- var edgeThreshold = (isTouch ? 24 : 8) / zoom;
- var nodeThreshold = (isTouch ? 8 : 2) / zoom;
- var labelThreshold = (isTouch ? 8 : 2) / zoom;
- var minSqDist = Infinity;
- var nearEdge;
- var nearNode;
- if (interactiveElementsOnly) {
- eles = eles.interactive;
- }
- function addEle(ele2, sqDist) {
- if (ele2.isNode()) {
- if (nearNode) {
- return;
+ }, "drawPie");
+ var darken2 = /* @__PURE__ */ __name(function darken3() {
+ var darkenOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
+ var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;
+ var c3 = darkness > 0 ? 0 : 255;
+ if (darkness !== 0) {
+ r2.colorFillStyle(context, c3, c3, c3, opacity);
+ if (usePaths) {
+ context.fill(path4);
} else {
- nearNode = ele2;
- near.push(ele2);
+ context.fill();
+ }
+ }
+ }, "darken");
+ var drawBorder = /* @__PURE__ */ __name(function drawBorder2() {
+ if (borderWidth > 0) {
+ context.lineWidth = borderWidth;
+ context.lineCap = borderCap;
+ context.lineJoin = borderJoin;
+ if (context.setLineDash) {
+ switch (borderStyle) {
+ case "dotted":
+ context.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ context.setLineDash(borderPattern);
+ context.lineDashOffset = borderOffset;
+ break;
+ case "solid":
+ case "double":
+ context.setLineDash([]);
+ break;
+ }
}
- }
- if (ele2.isEdge() && (sqDist == null || sqDist < minSqDist)) {
- if (nearEdge) {
- if (nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value && nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value) {
- for (var i4 = 0; i4 < near.length; i4++) {
- if (near[i4].isEdge()) {
- near[i4] = ele2;
- nearEdge = ele2;
- minSqDist = sqDist != null ? sqDist : minSqDist;
- break;
- }
- }
+ if (borderPosition !== "center") {
+ context.save();
+ context.lineWidth *= 2;
+ if (borderPosition === "inside") {
+ usePaths ? context.clip(path4) : context.clip();
+ } else {
+ var region = new Path2D();
+ region.rect(-nodeWidth / 2 - borderWidth, -nodeHeight / 2 - borderWidth, nodeWidth + 2 * borderWidth, nodeHeight + 2 * borderWidth);
+ region.addPath(path4);
+ context.clip(region, "evenodd");
}
+ usePaths ? context.stroke(path4) : context.stroke();
+ context.restore();
} else {
- near.push(ele2);
- nearEdge = ele2;
- minSqDist = sqDist != null ? sqDist : minSqDist;
+ usePaths ? context.stroke(path4) : context.stroke();
}
- }
- }
- function checkNode(node2) {
- var width2 = node2.outerWidth() + 2 * nodeThreshold;
- var height2 = node2.outerHeight() + 2 * nodeThreshold;
- var hw = width2 / 2;
- var hh = height2 / 2;
- var pos = node2.position();
- if (pos.x - hw <= x2 && x2 <= pos.x + hw && pos.y - hh <= y2 && y2 <= pos.y + hh) {
- var shape = r.nodeShapes[self2.getNodeShape(node2)];
- if (shape.checkPoint(x2, y2, 0, width2, height2, pos.x, pos.y)) {
- addEle(node2, 0);
- return true;
+ if (borderStyle === "double") {
+ context.lineWidth = borderWidth / 3;
+ var gco = context.globalCompositeOperation;
+ context.globalCompositeOperation = "destination-out";
+ if (usePaths) {
+ context.stroke(path4);
+ } else {
+ context.stroke();
+ }
+ context.globalCompositeOperation = gco;
+ }
+ if (context.setLineDash) {
+ context.setLineDash([]);
}
}
- }
- function checkEdge(edge) {
- var _p = edge._private;
- var rs = _p.rscratch;
- var styleWidth = edge.pstyle("width").pfValue;
- var scale = edge.pstyle("arrow-scale").value;
- var width2 = styleWidth / 2 + edgeThreshold;
- var widthSq = width2 * width2;
- var width22 = width2 * 2;
- var src = _p.source;
- var tgt = _p.target;
- var sqDist;
- if (rs.edgeType === "segments" || rs.edgeType === "straight" || rs.edgeType === "haystack") {
- var pts2 = rs.allpts;
- for (var i4 = 0; i4 + 3 < pts2.length; i4 += 2) {
- if (inLineVicinity(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3], width22) && widthSq > (sqDist = sqdistToFiniteLine(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3]))) {
- addEle(edge, sqDist);
- return true;
+ }, "drawBorder");
+ var drawOutline = /* @__PURE__ */ __name(function drawOutline2() {
+ if (outlineWidth > 0) {
+ context.lineWidth = outlineWidth;
+ context.lineCap = "butt";
+ if (context.setLineDash) {
+ switch (outlineStyle) {
+ case "dotted":
+ context.setLineDash([1, 1]);
+ break;
+ case "dashed":
+ context.setLineDash([4, 2]);
+ break;
+ case "solid":
+ case "double":
+ context.setLineDash([]);
+ break;
}
}
- } else if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
- var pts2 = rs.allpts;
- for (var i4 = 0; i4 + 5 < rs.allpts.length; i4 += 4) {
- if (inBezierVicinity(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3], pts2[i4 + 4], pts2[i4 + 5], width22) && widthSq > (sqDist = sqdistToQuadraticBezier(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3], pts2[i4 + 4], pts2[i4 + 5]))) {
- addEle(edge, sqDist);
- return true;
+ var npos = pos;
+ if (usePaths) {
+ npos = {
+ x: 0,
+ y: 0
+ };
+ }
+ var shape = r2.getNodeShape(node2);
+ var bWidth = borderWidth;
+ if (borderPosition === "inside") bWidth = 0;
+ if (borderPosition === "outside") bWidth *= 2;
+ var scaleX = (nodeWidth + bWidth + (outlineWidth + outlineOffset)) / nodeWidth;
+ var scaleY = (nodeHeight + bWidth + (outlineWidth + outlineOffset)) / nodeHeight;
+ var sWidth = nodeWidth * scaleX;
+ var sHeight = nodeHeight * scaleY;
+ var points = r2.nodeShapes[shape].points;
+ var _path;
+ if (usePaths) {
+ var outlinePath = getPath(sWidth, sHeight, shape, points);
+ _path = outlinePath.path;
+ }
+ if (shape === "ellipse") {
+ r2.drawEllipsePath(_path || context, npos.x, npos.y, sWidth, sHeight);
+ } else if (["round-diamond", "round-heptagon", "round-hexagon", "round-octagon", "round-pentagon", "round-polygon", "round-triangle", "round-tag"].includes(shape)) {
+ var sMult = 0;
+ var offsetX = 0;
+ var offsetY = 0;
+ if (shape === "round-diamond") {
+ sMult = (bWidth + outlineOffset + outlineWidth) * 1.4;
+ } else if (shape === "round-heptagon") {
+ sMult = (bWidth + outlineOffset + outlineWidth) * 1.075;
+ offsetY = -(bWidth / 2 + outlineOffset + outlineWidth) / 35;
+ } else if (shape === "round-hexagon") {
+ sMult = (bWidth + outlineOffset + outlineWidth) * 1.12;
+ } else if (shape === "round-pentagon") {
+ sMult = (bWidth + outlineOffset + outlineWidth) * 1.13;
+ offsetY = -(bWidth / 2 + outlineOffset + outlineWidth) / 15;
+ } else if (shape === "round-tag") {
+ sMult = (bWidth + outlineOffset + outlineWidth) * 1.12;
+ offsetX = (bWidth / 2 + outlineWidth + outlineOffset) * 0.07;
+ } else if (shape === "round-triangle") {
+ sMult = (bWidth + outlineOffset + outlineWidth) * (Math.PI / 2);
+ offsetY = -(bWidth + outlineOffset / 2 + outlineWidth) / Math.PI;
+ }
+ if (sMult !== 0) {
+ scaleX = (nodeWidth + sMult) / nodeWidth;
+ sWidth = nodeWidth * scaleX;
+ if (!["round-hexagon", "round-tag"].includes(shape)) {
+ scaleY = (nodeHeight + sMult) / nodeHeight;
+ sHeight = nodeHeight * scaleY;
+ }
+ }
+ cornerRadius = cornerRadius === "auto" ? getRoundPolygonRadius(sWidth, sHeight) : cornerRadius;
+ var halfW = sWidth / 2;
+ var halfH = sHeight / 2;
+ var radius2 = cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2;
+ var p3 = new Array(points.length / 2);
+ var corners = new Array(points.length / 2);
+ for (var _i3 = 0; _i3 < points.length / 2; _i3++) {
+ p3[_i3] = {
+ x: npos.x + offsetX + halfW * points[_i3 * 2],
+ y: npos.y + offsetY + halfH * points[_i3 * 2 + 1]
+ };
}
+ var _i2, p1, p22, p32, len = p3.length;
+ p1 = p3[len - 1];
+ for (_i2 = 0; _i2 < len; _i2++) {
+ p22 = p3[_i2 % len];
+ p32 = p3[(_i2 + 1) % len];
+ corners[_i2] = getRoundCorner(p1, p22, p32, radius2);
+ p1 = p22;
+ p22 = p32;
+ }
+ r2.drawRoundPolygonPath(_path || context, npos.x + offsetX, npos.y + offsetY, nodeWidth * scaleX, nodeHeight * scaleY, points, corners);
+ } else if (["roundrectangle", "round-rectangle"].includes(shape)) {
+ cornerRadius = cornerRadius === "auto" ? getRoundRectangleRadius(sWidth, sHeight) : cornerRadius;
+ r2.drawRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2);
+ } else if (["cutrectangle", "cut-rectangle"].includes(shape)) {
+ cornerRadius = cornerRadius === "auto" ? getCutRectangleCornerLength() : cornerRadius;
+ r2.drawCutRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, null, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 4);
+ } else if (["bottomroundrectangle", "bottom-round-rectangle"].includes(shape)) {
+ cornerRadius = cornerRadius === "auto" ? getRoundRectangleRadius(sWidth, sHeight) : cornerRadius;
+ r2.drawBottomRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2);
+ } else if (shape === "barrel") {
+ r2.drawBarrelPath(_path || context, npos.x, npos.y, sWidth, sHeight);
+ } else if (shape.startsWith("polygon") || ["rhomboid", "right-rhomboid", "round-tag", "tag", "vee"].includes(shape)) {
+ var pad3 = (bWidth + outlineWidth + outlineOffset) / nodeWidth;
+ points = joinLines(expandPolygon(points, pad3));
+ r2.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);
+ } else {
+ var _pad = (bWidth + outlineWidth + outlineOffset) / nodeWidth;
+ points = joinLines(expandPolygon(points, -_pad));
+ r2.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);
}
- }
- var src = src || _p.source;
- var tgt = tgt || _p.target;
- var arSize = self2.getArrowWidth(styleWidth, scale);
- var arrows2 = [{
- name: "source",
- x: rs.arrowStartX,
- y: rs.arrowStartY,
- angle: rs.srcArrowAngle
- }, {
- name: "target",
- x: rs.arrowEndX,
- y: rs.arrowEndY,
- angle: rs.tgtArrowAngle
- }, {
- name: "mid-source",
- x: rs.midX,
- y: rs.midY,
- angle: rs.midsrcArrowAngle
- }, {
- name: "mid-target",
- x: rs.midX,
- y: rs.midY,
- angle: rs.midtgtArrowAngle
- }];
- for (var i4 = 0; i4 < arrows2.length; i4++) {
- var ar = arrows2[i4];
- var shape = r.arrowShapes[edge.pstyle(ar.name + "-arrow-shape").value];
- var edgeWidth = edge.pstyle("width").pfValue;
- if (shape.roughCollide(x2, y2, arSize, ar.angle, {
- x: ar.x,
- y: ar.y
- }, edgeWidth, edgeThreshold) && shape.collide(x2, y2, arSize, ar.angle, {
- x: ar.x,
- y: ar.y
- }, edgeWidth, edgeThreshold)) {
- addEle(edge);
- return true;
+ if (usePaths) {
+ context.stroke(_path);
+ } else {
+ context.stroke();
+ }
+ if (outlineStyle === "double") {
+ context.lineWidth = bWidth / 3;
+ var gco = context.globalCompositeOperation;
+ context.globalCompositeOperation = "destination-out";
+ if (usePaths) {
+ context.stroke(_path);
+ } else {
+ context.stroke();
+ }
+ context.globalCompositeOperation = gco;
+ }
+ if (context.setLineDash) {
+ context.setLineDash([]);
}
}
- if (hasCompounds && near.length > 0) {
- checkNode(src);
- checkNode(tgt);
+ }, "drawOutline");
+ var drawOverlay = /* @__PURE__ */ __name(function drawOverlay2() {
+ if (shouldDrawOverlay) {
+ r2.drawNodeOverlay(context, node2, pos, nodeWidth, nodeHeight);
+ }
+ }, "drawOverlay");
+ var drawUnderlay = /* @__PURE__ */ __name(function drawUnderlay2() {
+ if (shouldDrawOverlay) {
+ r2.drawNodeUnderlay(context, node2, pos, nodeWidth, nodeHeight);
}
+ }, "drawUnderlay");
+ var drawText6 = /* @__PURE__ */ __name(function drawText7() {
+ r2.drawElementText(context, node2, null, drawLabel4);
+ }, "drawText");
+ var ghost = node2.pstyle("ghost").value === "yes";
+ if (ghost) {
+ var gx = node2.pstyle("ghost-offset-x").pfValue;
+ var gy = node2.pstyle("ghost-offset-y").pfValue;
+ var ghostOpacity = node2.pstyle("ghost-opacity").value;
+ var effGhostOpacity = ghostOpacity * eleOpacity;
+ context.translate(gx, gy);
+ setupOutlineColor();
+ drawOutline();
+ setupShapeColor(ghostOpacity * bgOpacity);
+ drawShape();
+ drawImages(effGhostOpacity, true);
+ setupBorderColor(ghostOpacity * borderOpacity);
+ drawBorder();
+ drawPie(darkness !== 0 || borderWidth !== 0);
+ drawImages(effGhostOpacity, false);
+ darken2(effGhostOpacity);
+ context.translate(-gx, -gy);
}
- function preprop(obj, name2, pre) {
- return getPrefixedProperty(obj, name2, pre);
+ if (usePaths) {
+ context.translate(-pos.x, -pos.y);
}
- function checkLabel(ele2, prefix) {
- var _p = ele2._private;
- var th = labelThreshold;
- var prefixDash;
- if (prefix) {
- prefixDash = prefix + "-";
- } else {
- prefixDash = "";
- }
- ele2.boundingBox();
- var bb = _p.labelBounds[prefix || "main"];
- var text2 = ele2.pstyle(prefixDash + "label").value;
- var eventsEnabled = ele2.pstyle("text-events").strValue === "yes";
- if (!eventsEnabled || !text2) {
+ drawUnderlay();
+ if (usePaths) {
+ context.translate(pos.x, pos.y);
+ }
+ setupOutlineColor();
+ drawOutline();
+ setupShapeColor();
+ drawShape();
+ drawImages(eleOpacity, true);
+ setupBorderColor();
+ drawBorder();
+ drawPie(darkness !== 0 || borderWidth !== 0);
+ drawImages(eleOpacity, false);
+ darken2();
+ if (usePaths) {
+ context.translate(-pos.x, -pos.y);
+ }
+ drawText6();
+ drawOverlay();
+ if (shiftToOriginWithBb) {
+ context.translate(bb.x1, bb.y1);
+ }
+ };
+ drawNodeOverlayUnderlay = /* @__PURE__ */ __name(function drawNodeOverlayUnderlay2(overlayOrUnderlay) {
+ if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
+ throw new Error("Invalid state");
+ }
+ return function(context, node2, pos, nodeWidth, nodeHeight) {
+ var r2 = this;
+ if (!node2.visible()) {
return;
}
- var lx = preprop(_p.rscratch, "labelX", prefix);
- var ly = preprop(_p.rscratch, "labelY", prefix);
- var theta = preprop(_p.rscratch, "labelAngle", prefix);
- var ox = ele2.pstyle(prefixDash + "text-margin-x").pfValue;
- var oy = ele2.pstyle(prefixDash + "text-margin-y").pfValue;
- var lx1 = bb.x1 - th - ox;
- var lx2 = bb.x2 + th - ox;
- var ly1 = bb.y1 - th - oy;
- var ly2 = bb.y2 + th - oy;
- if (theta) {
- var cos3 = Math.cos(theta);
- var sin3 = Math.sin(theta);
- var rotate = function rotate2(x3, y3) {
- x3 = x3 - lx;
- y3 = y3 - ly;
- return {
- x: x3 * cos3 - y3 * sin3 + lx,
- y: x3 * sin3 + y3 * cos3 + ly
- };
- };
- var px1y1 = rotate(lx1, ly1);
- var px1y2 = rotate(lx1, ly2);
- var px2y1 = rotate(lx2, ly1);
- var px2y2 = rotate(lx2, ly2);
- var points = [
- // with the margin added after the rotation is applied
- px1y1.x + ox,
- px1y1.y + oy,
- px2y1.x + ox,
- px2y1.y + oy,
- px2y2.x + ox,
- px2y2.y + oy,
- px1y2.x + ox,
- px1y2.y + oy
- ];
- if (pointInsidePolygonPoints(x2, y2, points)) {
- addEle(ele2);
- return true;
- }
- } else {
- if (inBoundingBox(bb, x2, y2)) {
- addEle(ele2);
- return true;
+ var padding3 = node2.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
+ var opacity = node2.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
+ var color2 = node2.pstyle("".concat(overlayOrUnderlay, "-color")).value;
+ var shape = node2.pstyle("".concat(overlayOrUnderlay, "-shape")).value;
+ var radius2 = node2.pstyle("".concat(overlayOrUnderlay, "-corner-radius")).value;
+ if (opacity > 0) {
+ pos = pos || node2.position();
+ if (nodeWidth == null || nodeHeight == null) {
+ var _padding = node2.padding();
+ nodeWidth = node2.width() + 2 * _padding;
+ nodeHeight = node2.height() + 2 * _padding;
}
+ r2.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
+ r2.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding3 * 2, nodeHeight + padding3 * 2, radius2);
+ context.fill();
}
+ };
+ }, "drawNodeOverlayUnderlay");
+ CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay("overlay");
+ CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay("underlay");
+ CRp$5.hasPie = function(node2) {
+ node2 = node2[0];
+ return node2._private.hasPie;
+ };
+ CRp$5.drawPie = function(context, node2, nodeOpacity, pos) {
+ node2 = node2[0];
+ pos = pos || node2.position();
+ var cyStyle = node2.cy().style();
+ var pieSize = node2.pstyle("pie-size");
+ var x5 = pos.x;
+ var y5 = pos.y;
+ var nodeW = node2.width();
+ var nodeH = node2.height();
+ var radius2 = Math.min(nodeW, nodeH) / 2;
+ var lastPercent = 0;
+ var usePaths = this.usePaths();
+ if (usePaths) {
+ x5 = 0;
+ y5 = 0;
}
- for (var i3 = eles.length - 1; i3 >= 0; i3--) {
- var ele = eles[i3];
- if (ele.isNode()) {
- checkNode(ele) || checkLabel(ele);
- } else {
- checkEdge(ele) || checkLabel(ele) || checkLabel(ele, "source") || checkLabel(ele, "target");
+ if (pieSize.units === "%") {
+ radius2 = radius2 * pieSize.pfValue;
+ } else if (pieSize.pfValue !== void 0) {
+ radius2 = pieSize.pfValue / 2;
+ }
+ for (var i2 = 1; i2 <= cyStyle.pieBackgroundN; i2++) {
+ var size5 = node2.pstyle("pie-" + i2 + "-background-size").value;
+ var color2 = node2.pstyle("pie-" + i2 + "-background-color").value;
+ var opacity = node2.pstyle("pie-" + i2 + "-background-opacity").value * nodeOpacity;
+ var percent = size5 / 100;
+ if (percent + lastPercent > 1) {
+ percent = 1 - lastPercent;
+ }
+ var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent;
+ var angleDelta = 2 * Math.PI * percent;
+ var angleEnd = angleStart + angleDelta;
+ if (size5 === 0 || lastPercent >= 1 || lastPercent + percent > 1) {
+ continue;
}
+ context.beginPath();
+ context.moveTo(x5, y5);
+ context.arc(x5, y5, radius2, angleStart, angleEnd);
+ context.closePath();
+ this.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
+ context.fill();
+ lastPercent += percent;
}
- return near;
};
- BRp$e.getAllInBox = function(x1, y1, x2, y2) {
- var eles = this.getCachedZSortedEles().interactive;
- var box = [];
- var x1c = Math.min(x1, x2);
- var x2c = Math.max(x1, x2);
- var y1c = Math.min(y1, y2);
- var y2c = Math.max(y1, y2);
- x1 = x1c;
- x2 = x2c;
- y1 = y1c;
- y2 = y2c;
- var boxBb = makeBoundingBox({
- x1,
- y1,
- x2,
- y2
- });
- for (var e = 0; e < eles.length; e++) {
- var ele = eles[e];
- if (ele.isNode()) {
- var node2 = ele;
- var nodeBb = node2.boundingBox({
- includeNodes: true,
- includeEdges: false,
- includeLabels: false
- });
- if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) {
- box.push(node2);
- }
+ CRp$4 = {};
+ motionBlurDelay = 100;
+ CRp$4.getPixelRatio = function() {
+ var context = this.data.contexts[0];
+ if (this.forcedPixelRatio != null) {
+ return this.forcedPixelRatio;
+ }
+ var containerWindow = this.cy.window();
+ var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;
+ return (containerWindow.devicePixelRatio || 1) / backingStore;
+ };
+ CRp$4.paintCache = function(context) {
+ var caches = this.paintCaches = this.paintCaches || [];
+ var needToCreateCache = true;
+ var cache3;
+ for (var i2 = 0; i2 < caches.length; i2++) {
+ cache3 = caches[i2];
+ if (cache3.context === context) {
+ needToCreateCache = false;
+ break;
+ }
+ }
+ if (needToCreateCache) {
+ cache3 = {
+ context
+ };
+ caches.push(cache3);
+ }
+ return cache3;
+ };
+ CRp$4.createGradientStyleFor = function(context, shapeStyleName, ele, fill, opacity) {
+ var gradientStyle;
+ var usePaths = this.usePaths();
+ var colors2 = ele.pstyle(shapeStyleName + "-gradient-stop-colors").value, positions2 = ele.pstyle(shapeStyleName + "-gradient-stop-positions").pfValue;
+ if (fill === "radial-gradient") {
+ if (ele.isEdge()) {
+ var start3 = ele.sourceEndpoint(), end2 = ele.targetEndpoint(), mid = ele.midpoint();
+ var d1 = dist(start3, mid);
+ var d2 = dist(end2, mid);
+ gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));
} else {
- var edge = ele;
- var _p = edge._private;
- var rs = _p.rscratch;
- if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {
- continue;
- }
- if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {
- continue;
- }
- if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound" || rs.edgeType === "segments" || rs.edgeType === "haystack") {
- var pts2 = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;
- var allInside = true;
- for (var i3 = 0; i3 < pts2.length; i3++) {
- if (!pointInBoundingBox(boxBb, pts2[i3])) {
- allInside = false;
- break;
- }
- }
- if (allInside) {
- box.push(edge);
- }
- } else if (rs.edgeType === "haystack" || rs.edgeType === "straight") {
- box.push(edge);
+ var pos = usePaths ? {
+ x: 0,
+ y: 0
+ } : ele.position(), width3 = ele.paddedWidth(), height2 = ele.paddedHeight();
+ gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width3, height2));
+ }
+ } else {
+ if (ele.isEdge()) {
+ var _start = ele.sourceEndpoint(), _end = ele.targetEndpoint();
+ gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);
+ } else {
+ var _pos = usePaths ? {
+ x: 0,
+ y: 0
+ } : ele.position(), _width = ele.paddedWidth(), _height = ele.paddedHeight(), halfWidth = _width / 2, halfHeight = _height / 2;
+ var direction4 = ele.pstyle("background-gradient-direction").value;
+ switch (direction4) {
+ case "to-bottom":
+ gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);
+ break;
+ case "to-top":
+ gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);
+ break;
+ case "to-left":
+ gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);
+ break;
+ case "to-right":
+ gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);
+ break;
+ case "to-bottom-right":
+ case "to-right-bottom":
+ gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);
+ break;
+ case "to-top-right":
+ case "to-right-top":
+ gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);
+ break;
+ case "to-bottom-left":
+ case "to-left-bottom":
+ gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);
+ break;
+ case "to-top-left":
+ case "to-left-top":
+ gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);
+ break;
}
}
}
- return box;
+ if (!gradientStyle) return null;
+ var hasPositions = positions2.length === colors2.length;
+ var length2 = colors2.length;
+ for (var i2 = 0; i2 < length2; i2++) {
+ gradientStyle.addColorStop(hasPositions ? positions2[i2] : i2 / (length2 - 1), "rgba(" + colors2[i2][0] + "," + colors2[i2][1] + "," + colors2[i2][2] + "," + opacity + ")");
+ }
+ return gradientStyle;
};
- var BRp$d = {};
- BRp$d.calculateArrowAngles = function(edge) {
- var rs = edge._private.rscratch;
- var isHaystack = rs.edgeType === "haystack";
- var isBezier = rs.edgeType === "bezier";
- var isMultibezier = rs.edgeType === "multibezier";
- var isSegments = rs.edgeType === "segments";
- var isCompound = rs.edgeType === "compound";
- var isSelf = rs.edgeType === "self";
- var dispX, dispY;
- var startX, startY, endX, endY, midX, midY;
- if (isHaystack) {
- startX = rs.haystackPts[0];
- startY = rs.haystackPts[1];
- endX = rs.haystackPts[2];
- endY = rs.haystackPts[3];
+ CRp$4.gradientFillStyle = function(context, ele, fill, opacity) {
+ var gradientStyle = this.createGradientStyleFor(context, "background", ele, fill, opacity);
+ if (!gradientStyle) return null;
+ context.fillStyle = gradientStyle;
+ };
+ CRp$4.colorFillStyle = function(context, r2, g2, b2, a2) {
+ context.fillStyle = "rgba(" + r2 + "," + g2 + "," + b2 + "," + a2 + ")";
+ };
+ CRp$4.eleFillStyle = function(context, ele, opacity) {
+ var backgroundFill = ele.pstyle("background-fill").value;
+ if (backgroundFill === "linear-gradient" || backgroundFill === "radial-gradient") {
+ this.gradientFillStyle(context, ele, backgroundFill, opacity);
} else {
- startX = rs.arrowStartX;
- startY = rs.arrowStartY;
- endX = rs.arrowEndX;
- endY = rs.arrowEndY;
+ var backgroundColor = ele.pstyle("background-color").value;
+ this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);
}
- midX = rs.midX;
- midY = rs.midY;
- if (isSegments) {
- dispX = startX - rs.segpts[0];
- dispY = startY - rs.segpts[1];
- } else if (isMultibezier || isCompound || isSelf || isBezier) {
- var pts2 = rs.allpts;
- var bX = qbezierAt(pts2[0], pts2[2], pts2[4], 0.1);
- var bY = qbezierAt(pts2[1], pts2[3], pts2[5], 0.1);
- dispX = startX - bX;
- dispY = startY - bY;
+ };
+ CRp$4.gradientStrokeStyle = function(context, ele, fill, opacity) {
+ var gradientStyle = this.createGradientStyleFor(context, "line", ele, fill, opacity);
+ if (!gradientStyle) return null;
+ context.strokeStyle = gradientStyle;
+ };
+ CRp$4.colorStrokeStyle = function(context, r2, g2, b2, a2) {
+ context.strokeStyle = "rgba(" + r2 + "," + g2 + "," + b2 + "," + a2 + ")";
+ };
+ CRp$4.eleStrokeStyle = function(context, ele, opacity) {
+ var lineFill = ele.pstyle("line-fill").value;
+ if (lineFill === "linear-gradient" || lineFill === "radial-gradient") {
+ this.gradientStrokeStyle(context, ele, lineFill, opacity);
} else {
- dispX = startX - midX;
- dispY = startY - midY;
+ var lineColor = ele.pstyle("line-color").value;
+ this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);
}
- rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);
- var midX = rs.midX;
- var midY = rs.midY;
- if (isHaystack) {
- midX = (startX + endX) / 2;
- midY = (startY + endY) / 2;
+ };
+ CRp$4.matchCanvasSize = function(container2) {
+ var r2 = this;
+ var data5 = r2.data;
+ var bb = r2.findContainerClientCoords();
+ var width3 = bb[2];
+ var height2 = bb[3];
+ var pixelRatio = r2.getPixelRatio();
+ var mbPxRatio = r2.motionBlurPxRatio;
+ if (container2 === r2.data.bufferCanvases[r2.MOTIONBLUR_BUFFER_NODE] || container2 === r2.data.bufferCanvases[r2.MOTIONBLUR_BUFFER_DRAG]) {
+ pixelRatio = mbPxRatio;
+ }
+ var canvasWidth = width3 * pixelRatio;
+ var canvasHeight = height2 * pixelRatio;
+ var canvas;
+ if (canvasWidth === r2.canvasWidth && canvasHeight === r2.canvasHeight) {
+ return;
+ }
+ r2.fontCaches = null;
+ var canvasContainer = data5.canvasContainer;
+ canvasContainer.style.width = width3 + "px";
+ canvasContainer.style.height = height2 + "px";
+ for (var i2 = 0; i2 < r2.CANVAS_LAYERS; i2++) {
+ canvas = data5.canvases[i2];
+ canvas.width = canvasWidth;
+ canvas.height = canvasHeight;
+ canvas.style.width = width3 + "px";
+ canvas.style.height = height2 + "px";
+ }
+ for (var i2 = 0; i2 < r2.BUFFER_COUNT; i2++) {
+ canvas = data5.bufferCanvases[i2];
+ canvas.width = canvasWidth;
+ canvas.height = canvasHeight;
+ canvas.style.width = width3 + "px";
+ canvas.style.height = height2 + "px";
+ }
+ r2.textureMult = 1;
+ if (pixelRatio <= 1) {
+ canvas = data5.bufferCanvases[r2.TEXTURE_BUFFER];
+ r2.textureMult = 2;
+ canvas.width = canvasWidth * r2.textureMult;
+ canvas.height = canvasHeight * r2.textureMult;
+ }
+ r2.canvasWidth = canvasWidth;
+ r2.canvasHeight = canvasHeight;
+ };
+ CRp$4.renderTo = function(cxt, zoom2, pan2, pxRatio) {
+ this.render({
+ forcedContext: cxt,
+ forcedZoom: zoom2,
+ forcedPan: pan2,
+ drawAllLayers: true,
+ forcedPxRatio: pxRatio
+ });
+ };
+ CRp$4.render = function(options3) {
+ options3 = options3 || staticEmptyObject();
+ var forcedContext = options3.forcedContext;
+ var drawAllLayers = options3.drawAllLayers;
+ var drawOnlyNodeLayer = options3.drawOnlyNodeLayer;
+ var forcedZoom = options3.forcedZoom;
+ var forcedPan = options3.forcedPan;
+ var r2 = this;
+ var pixelRatio = options3.forcedPxRatio === void 0 ? this.getPixelRatio() : options3.forcedPxRatio;
+ var cy = r2.cy;
+ var data5 = r2.data;
+ var needDraw = data5.canvasNeedsRedraw;
+ var textureDraw = r2.textureOnViewport && !forcedContext && (r2.pinching || r2.hoverData.dragging || r2.swipePanning || r2.data.wheelZooming);
+ var motionBlur = options3.motionBlur !== void 0 ? options3.motionBlur : r2.motionBlur;
+ var mbPxRatio = r2.motionBlurPxRatio;
+ var hasCompoundNodes2 = cy.hasCompoundNodes();
+ var inNodeDragGesture = r2.hoverData.draggingEles;
+ var inBoxSelection = r2.hoverData.selecting || r2.touchData.selecting ? true : false;
+ motionBlur = motionBlur && !forcedContext && r2.motionBlurEnabled && !inBoxSelection;
+ var motionBlurFadeEffect = motionBlur;
+ if (!forcedContext) {
+ if (r2.prevPxRatio !== pixelRatio) {
+ r2.invalidateContainerClientCoordsCache();
+ r2.matchCanvasSize(r2.container);
+ r2.redrawHint("eles", true);
+ r2.redrawHint("drag", true);
+ }
+ r2.prevPxRatio = pixelRatio;
+ }
+ if (!forcedContext && r2.motionBlurTimeout) {
+ clearTimeout(r2.motionBlurTimeout);
+ }
+ if (motionBlur) {
+ if (r2.mbFrames == null) {
+ r2.mbFrames = 0;
+ }
+ r2.mbFrames++;
+ if (r2.mbFrames < 3) {
+ motionBlurFadeEffect = false;
+ }
+ if (r2.mbFrames > r2.minMbLowQualFrames) {
+ r2.motionBlurPxRatio = r2.mbPxRBlurry;
+ }
+ }
+ if (r2.clearingMotionBlur) {
+ r2.motionBlurPxRatio = 1;
+ }
+ if (r2.textureDrawLastFrame && !textureDraw) {
+ needDraw[r2.NODE] = true;
+ needDraw[r2.SELECT_BOX] = true;
+ }
+ var style3 = cy.style();
+ var zoom2 = cy.zoom();
+ var effectiveZoom = forcedZoom !== void 0 ? forcedZoom : zoom2;
+ var pan2 = cy.pan();
+ var effectivePan = {
+ x: pan2.x,
+ y: pan2.y
+ };
+ var vp = {
+ zoom: zoom2,
+ pan: {
+ x: pan2.x,
+ y: pan2.y
+ }
+ };
+ var prevVp = r2.prevViewport;
+ var viewportIsDiff = prevVp === void 0 || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;
+ if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes2)) {
+ r2.motionBlurPxRatio = 1;
+ }
+ if (forcedPan) {
+ effectivePan = forcedPan;
+ }
+ effectiveZoom *= pixelRatio;
+ effectivePan.x *= pixelRatio;
+ effectivePan.y *= pixelRatio;
+ var eles = r2.getCachedZSortedEles();
+ function mbclear(context2, x5, y5, w3, h2) {
+ var gco = context2.globalCompositeOperation;
+ context2.globalCompositeOperation = "destination-out";
+ r2.colorFillStyle(context2, 255, 255, 255, r2.motionBlurTransparency);
+ context2.fillRect(x5, y5, w3, h2);
+ context2.globalCompositeOperation = gco;
+ }
+ __name(mbclear, "mbclear");
+ function setContextTransform(context2, clear31) {
+ var ePan, eZoom, w3, h2;
+ if (!r2.clearingMotionBlur && (context2 === data5.bufferContexts[r2.MOTIONBLUR_BUFFER_NODE] || context2 === data5.bufferContexts[r2.MOTIONBLUR_BUFFER_DRAG])) {
+ ePan = {
+ x: pan2.x * mbPxRatio,
+ y: pan2.y * mbPxRatio
+ };
+ eZoom = zoom2 * mbPxRatio;
+ w3 = r2.canvasWidth * mbPxRatio;
+ h2 = r2.canvasHeight * mbPxRatio;
+ } else {
+ ePan = effectivePan;
+ eZoom = effectiveZoom;
+ w3 = r2.canvasWidth;
+ h2 = r2.canvasHeight;
+ }
+ context2.setTransform(1, 0, 0, 1, 0, 0);
+ if (clear31 === "motionBlur") {
+ mbclear(context2, 0, 0, w3, h2);
+ } else if (!forcedContext && (clear31 === void 0 || clear31)) {
+ context2.clearRect(0, 0, w3, h2);
+ }
+ if (!drawAllLayers) {
+ context2.translate(ePan.x, ePan.y);
+ context2.scale(eZoom, eZoom);
+ }
+ if (forcedPan) {
+ context2.translate(forcedPan.x, forcedPan.y);
+ }
+ if (forcedZoom) {
+ context2.scale(forcedZoom, forcedZoom);
+ }
+ }
+ __name(setContextTransform, "setContextTransform");
+ if (!textureDraw) {
+ r2.textureDrawLastFrame = false;
+ }
+ if (textureDraw) {
+ r2.textureDrawLastFrame = true;
+ if (!r2.textureCache) {
+ r2.textureCache = {};
+ r2.textureCache.bb = cy.mutableElements().boundingBox();
+ r2.textureCache.texture = r2.data.bufferCanvases[r2.TEXTURE_BUFFER];
+ var cxt = r2.data.bufferContexts[r2.TEXTURE_BUFFER];
+ cxt.setTransform(1, 0, 0, 1, 0, 0);
+ cxt.clearRect(0, 0, r2.canvasWidth * r2.textureMult, r2.canvasHeight * r2.textureMult);
+ r2.render({
+ forcedContext: cxt,
+ drawOnlyNodeLayer: true,
+ forcedPxRatio: pixelRatio * r2.textureMult
+ });
+ var vp = r2.textureCache.viewport = {
+ zoom: cy.zoom(),
+ pan: cy.pan(),
+ width: r2.canvasWidth,
+ height: r2.canvasHeight
+ };
+ vp.mpan = {
+ x: (0 - vp.pan.x) / vp.zoom,
+ y: (0 - vp.pan.y) / vp.zoom
+ };
+ }
+ needDraw[r2.DRAG] = false;
+ needDraw[r2.NODE] = false;
+ var context = data5.contexts[r2.NODE];
+ var texture = r2.textureCache.texture;
+ var vp = r2.textureCache.viewport;
+ context.setTransform(1, 0, 0, 1, 0, 0);
+ if (motionBlur) {
+ mbclear(context, 0, 0, vp.width, vp.height);
+ } else {
+ context.clearRect(0, 0, vp.width, vp.height);
+ }
+ var outsideBgColor = style3.core("outside-texture-bg-color").value;
+ var outsideBgOpacity = style3.core("outside-texture-bg-opacity").value;
+ r2.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);
+ context.fillRect(0, 0, vp.width, vp.height);
+ var zoom2 = cy.zoom();
+ setContextTransform(context, false);
+ context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
+ context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
+ } else if (r2.textureOnViewport && !forcedContext) {
+ r2.textureCache = null;
}
- dispX = endX - startX;
- dispY = endY - startY;
- if (isSegments) {
- var pts2 = rs.allpts;
- if (pts2.length / 2 % 2 === 0) {
- var i22 = pts2.length / 2;
- var i1 = i22 - 2;
- dispX = pts2[i22] - pts2[i1];
- dispY = pts2[i22 + 1] - pts2[i1 + 1];
+ var extent2 = cy.extent();
+ var vpManip = r2.pinching || r2.hoverData.dragging || r2.swipePanning || r2.data.wheelZooming || r2.hoverData.draggingEles || r2.cy.animated();
+ var hideEdges = r2.hideEdgesOnViewport && vpManip;
+ var needMbClear = [];
+ needMbClear[r2.NODE] = !needDraw[r2.NODE] && motionBlur && !r2.clearedForMotionBlur[r2.NODE] || r2.clearingMotionBlur;
+ if (needMbClear[r2.NODE]) {
+ r2.clearedForMotionBlur[r2.NODE] = true;
+ }
+ needMbClear[r2.DRAG] = !needDraw[r2.DRAG] && motionBlur && !r2.clearedForMotionBlur[r2.DRAG] || r2.clearingMotionBlur;
+ if (needMbClear[r2.DRAG]) {
+ r2.clearedForMotionBlur[r2.DRAG] = true;
+ }
+ if (needDraw[r2.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r2.NODE]) {
+ var useBuffer = motionBlur && !needMbClear[r2.NODE] && mbPxRatio !== 1;
+ var context = forcedContext || (useBuffer ? r2.data.bufferContexts[r2.MOTIONBLUR_BUFFER_NODE] : data5.contexts[r2.NODE]);
+ var clear30 = motionBlur && !useBuffer ? "motionBlur" : void 0;
+ setContextTransform(context, clear30);
+ if (hideEdges) {
+ r2.drawCachedNodes(context, eles.nondrag, pixelRatio, extent2);
} else {
- var i22 = pts2.length / 2 - 1;
- var i1 = i22 - 2;
- var i3 = i22 + 2;
- dispX = pts2[i22] - pts2[i1];
- dispY = pts2[i22 + 1] - pts2[i1 + 1];
+ r2.drawLayeredElements(context, eles.nondrag, pixelRatio, extent2);
}
- } else if (isMultibezier || isCompound || isSelf) {
- var pts2 = rs.allpts;
- var cpts = rs.ctrlpts;
- var bp0x, bp0y;
- var bp1x, bp1y;
- if (cpts.length / 2 % 2 === 0) {
- var p0 = pts2.length / 2 - 1;
- var ic = p0 + 2;
- var p1 = ic + 2;
- bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0);
- bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0);
- bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 1e-4);
- bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 1e-4);
+ if (r2.debug) {
+ r2.drawDebugPoints(context, eles.nondrag);
+ }
+ if (!drawAllLayers && !motionBlur) {
+ needDraw[r2.NODE] = false;
+ }
+ }
+ if (!drawOnlyNodeLayer && (needDraw[r2.DRAG] || drawAllLayers || needMbClear[r2.DRAG])) {
+ var useBuffer = motionBlur && !needMbClear[r2.DRAG] && mbPxRatio !== 1;
+ var context = forcedContext || (useBuffer ? r2.data.bufferContexts[r2.MOTIONBLUR_BUFFER_DRAG] : data5.contexts[r2.DRAG]);
+ setContextTransform(context, motionBlur && !useBuffer ? "motionBlur" : void 0);
+ if (hideEdges) {
+ r2.drawCachedNodes(context, eles.drag, pixelRatio, extent2);
} else {
- var ic = pts2.length / 2 - 1;
- var p0 = ic - 2;
- var p1 = ic + 2;
- bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.4999);
- bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.4999);
- bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.5);
- bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.5);
+ r2.drawCachedElements(context, eles.drag, pixelRatio, extent2);
+ }
+ if (r2.debug) {
+ r2.drawDebugPoints(context, eles.drag);
+ }
+ if (!drawAllLayers && !motionBlur) {
+ needDraw[r2.DRAG] = false;
}
- dispX = bp1x - bp0x;
- dispY = bp1y - bp0y;
}
- rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);
- rs.midDispX = dispX;
- rs.midDispY = dispY;
- dispX *= -1;
- dispY *= -1;
- if (isSegments) {
- var pts2 = rs.allpts;
- if (pts2.length / 2 % 2 === 0)
- ;
- else {
- var i22 = pts2.length / 2 - 1;
- var i3 = i22 + 2;
- dispX = -(pts2[i3] - pts2[i22]);
- dispY = -(pts2[i3 + 1] - pts2[i22 + 1]);
+ if (r2.showFps || !drawOnlyNodeLayer && needDraw[r2.SELECT_BOX] && !drawAllLayers) {
+ var context = forcedContext || data5.contexts[r2.SELECT_BOX];
+ setContextTransform(context);
+ if (r2.selection[4] == 1 && (r2.hoverData.selecting || r2.touchData.selecting)) {
+ var zoom2 = r2.cy.zoom();
+ var borderWidth = style3.core("selection-box-border-width").value / zoom2;
+ context.lineWidth = borderWidth;
+ context.fillStyle = "rgba(" + style3.core("selection-box-color").value[0] + "," + style3.core("selection-box-color").value[1] + "," + style3.core("selection-box-color").value[2] + "," + style3.core("selection-box-opacity").value + ")";
+ context.fillRect(r2.selection[0], r2.selection[1], r2.selection[2] - r2.selection[0], r2.selection[3] - r2.selection[1]);
+ if (borderWidth > 0) {
+ context.strokeStyle = "rgba(" + style3.core("selection-box-border-color").value[0] + "," + style3.core("selection-box-border-color").value[1] + "," + style3.core("selection-box-border-color").value[2] + "," + style3.core("selection-box-opacity").value + ")";
+ context.strokeRect(r2.selection[0], r2.selection[1], r2.selection[2] - r2.selection[0], r2.selection[3] - r2.selection[1]);
+ }
+ }
+ if (data5.bgActivePosistion && !r2.hoverData.selecting) {
+ var zoom2 = r2.cy.zoom();
+ var pos = data5.bgActivePosistion;
+ context.fillStyle = "rgba(" + style3.core("active-bg-color").value[0] + "," + style3.core("active-bg-color").value[1] + "," + style3.core("active-bg-color").value[2] + "," + style3.core("active-bg-opacity").value + ")";
+ context.beginPath();
+ context.arc(pos.x, pos.y, style3.core("active-bg-size").pfValue / zoom2, 0, 2 * Math.PI);
+ context.fill();
+ }
+ var timeToRender = r2.lastRedrawTime;
+ if (r2.showFps && timeToRender) {
+ timeToRender = Math.round(timeToRender);
+ var fps = Math.round(1e3 / timeToRender);
+ context.setTransform(1, 0, 0, 1, 0, 0);
+ context.fillStyle = "rgba(255, 0, 0, 0.75)";
+ context.strokeStyle = "rgba(255, 0, 0, 0.75)";
+ context.lineWidth = 1;
+ context.fillText("1 frame = " + timeToRender + " ms = " + fps + " fps", 0, 20);
+ var maxFps = 60;
+ context.strokeRect(0, 30, 250, 20);
+ context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20);
+ }
+ if (!drawAllLayers) {
+ needDraw[r2.SELECT_BOX] = false;
}
}
- rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);
- if (isSegments) {
- dispX = endX - rs.segpts[rs.segpts.length - 2];
- dispY = endY - rs.segpts[rs.segpts.length - 1];
- } else if (isMultibezier || isCompound || isSelf || isBezier) {
- var pts2 = rs.allpts;
- var l = pts2.length;
- var bX = qbezierAt(pts2[l - 6], pts2[l - 4], pts2[l - 2], 0.9);
- var bY = qbezierAt(pts2[l - 5], pts2[l - 3], pts2[l - 1], 0.9);
- dispX = endX - bX;
- dispY = endY - bY;
- } else {
- dispX = endX - midX;
- dispY = endY - midY;
+ if (motionBlur && mbPxRatio !== 1) {
+ var cxtNode = data5.contexts[r2.NODE];
+ var txtNode = r2.data.bufferCanvases[r2.MOTIONBLUR_BUFFER_NODE];
+ var cxtDrag = data5.contexts[r2.DRAG];
+ var txtDrag = r2.data.bufferCanvases[r2.MOTIONBLUR_BUFFER_DRAG];
+ var drawMotionBlur = /* @__PURE__ */ __name(function drawMotionBlur2(cxt2, txt, needClear) {
+ cxt2.setTransform(1, 0, 0, 1, 0, 0);
+ if (needClear || !motionBlurFadeEffect) {
+ cxt2.clearRect(0, 0, r2.canvasWidth, r2.canvasHeight);
+ } else {
+ mbclear(cxt2, 0, 0, r2.canvasWidth, r2.canvasHeight);
+ }
+ var pxr = mbPxRatio;
+ cxt2.drawImage(
+ txt,
+ // img
+ 0,
+ 0,
+ // sx, sy
+ r2.canvasWidth * pxr,
+ r2.canvasHeight * pxr,
+ // sw, sh
+ 0,
+ 0,
+ // x, y
+ r2.canvasWidth,
+ r2.canvasHeight
+ // w, h
+ );
+ }, "drawMotionBlur");
+ if (needDraw[r2.NODE] || needMbClear[r2.NODE]) {
+ drawMotionBlur(cxtNode, txtNode, needMbClear[r2.NODE]);
+ needDraw[r2.NODE] = false;
+ }
+ if (needDraw[r2.DRAG] || needMbClear[r2.DRAG]) {
+ drawMotionBlur(cxtDrag, txtDrag, needMbClear[r2.DRAG]);
+ needDraw[r2.DRAG] = false;
+ }
}
- rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);
- };
- BRp$d.getArrowWidth = BRp$d.getArrowHeight = function(edgeWidth, scale) {
- var cache2 = this.arrowWidthCache = this.arrowWidthCache || {};
- var cachedVal = cache2[edgeWidth + ", " + scale];
- if (cachedVal) {
- return cachedVal;
+ r2.prevViewport = vp;
+ if (r2.clearingMotionBlur) {
+ r2.clearingMotionBlur = false;
+ r2.motionBlurCleared = true;
+ r2.motionBlur = true;
}
- cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;
- cache2[edgeWidth + ", " + scale] = cachedVal;
- return cachedVal;
- };
- var BRp$c = {};
- BRp$c.findHaystackPoints = function(edges2) {
- for (var i3 = 0; i3 < edges2.length; i3++) {
- var edge = edges2[i3];
- var _p = edge._private;
- var rs = _p.rscratch;
- if (!rs.haystack) {
- var angle = Math.random() * 2 * Math.PI;
- rs.source = {
- x: Math.cos(angle),
- y: Math.sin(angle)
- };
- angle = Math.random() * 2 * Math.PI;
- rs.target = {
- x: Math.cos(angle),
- y: Math.sin(angle)
- };
- }
- var src = _p.source;
- var tgt = _p.target;
- var srcPos = src.position();
- var tgtPos = tgt.position();
- var srcW = src.width();
- var tgtW = tgt.width();
- var srcH = src.height();
- var tgtH = tgt.height();
- var radius = edge.pstyle("haystack-radius").value;
- var halfRadius = radius / 2;
- rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];
- rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;
- rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;
- rs.edgeType = "haystack";
- rs.haystack = true;
- this.storeEdgeProjections(edge);
- this.calculateArrowAngles(edge);
- this.recalculateEdgeLabelProjections(edge);
- this.calculateLabelAngles(edge);
+ if (motionBlur) {
+ r2.motionBlurTimeout = setTimeout(function() {
+ r2.motionBlurTimeout = null;
+ r2.clearedForMotionBlur[r2.NODE] = false;
+ r2.clearedForMotionBlur[r2.DRAG] = false;
+ r2.motionBlur = false;
+ r2.clearingMotionBlur = !textureDraw;
+ r2.mbFrames = 0;
+ needDraw[r2.NODE] = true;
+ needDraw[r2.DRAG] = true;
+ r2.redraw();
+ }, motionBlurDelay);
}
- };
- BRp$c.findSegmentsPoints = function(edge, pairInfo) {
- var rs = edge._private.rscratch;
- var posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts, vectorNormInverse = pairInfo.vectorNormInverse;
- var edgeDistances = edge.pstyle("edge-distances").value;
- var segmentWs = edge.pstyle("segment-weights");
- var segmentDs = edge.pstyle("segment-distances");
- var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);
- rs.edgeType = "segments";
- rs.segpts = [];
- for (var s = 0; s < segmentsN; s++) {
- var w2 = segmentWs.pfValue[s];
- var d = segmentDs.pfValue[s];
- var w1 = 1 - w2;
- var w22 = w2;
- var midptPts = edgeDistances === "node-position" ? posPts : intersectionPts;
- var adjustedMidpt = {
- x: midptPts.x1 * w1 + midptPts.x2 * w22,
- y: midptPts.y1 * w1 + midptPts.y2 * w22
- };
- rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d);
+ if (!forcedContext) {
+ cy.emit("render");
}
};
- BRp$c.findLoopPoints = function(edge, pairInfo, i3, edgeIsUnbundled) {
- var rs = edge._private.rscratch;
- var dirCounts = pairInfo.dirCounts, srcPos = pairInfo.srcPos;
- var ctrlptDists = edge.pstyle("control-point-distances");
- var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
- var loopDir = edge.pstyle("loop-direction").pfValue;
- var loopSwp = edge.pstyle("loop-sweep").pfValue;
- var stepSize = edge.pstyle("control-point-step-size").pfValue;
- rs.edgeType = "self";
- var j = i3;
- var loopDist = stepSize;
- if (edgeIsUnbundled) {
- j = 0;
- loopDist = ctrlptDist;
+ CRp$3 = {};
+ CRp$3.drawPolygonPath = function(context, x5, y5, width3, height2, points) {
+ var halfW = width3 / 2;
+ var halfH = height2 / 2;
+ if (context.beginPath) {
+ context.beginPath();
}
- var loopAngle = loopDir - Math.PI / 2;
- var outAngle = loopAngle - loopSwp / 2;
- var inAngle = loopAngle + loopSwp / 2;
- var dc = String(loopDir + "_" + loopSwp);
- j = dirCounts[dc] === void 0 ? dirCounts[dc] = 0 : ++dirCounts[dc];
- rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)];
+ context.moveTo(x5 + halfW * points[0], y5 + halfH * points[1]);
+ for (var i2 = 1; i2 < points.length / 2; i2++) {
+ context.lineTo(x5 + halfW * points[i2 * 2], y5 + halfH * points[i2 * 2 + 1]);
+ }
+ context.closePath();
};
- BRp$c.findCompoundLoopPoints = function(edge, pairInfo, i3, edgeIsUnbundled) {
- var rs = edge._private.rscratch;
- rs.edgeType = "compound";
- var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
- var stepSize = edge.pstyle("control-point-step-size").pfValue;
- var ctrlptDists = edge.pstyle("control-point-distances");
- var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
- var j = i3;
- var loopDist = stepSize;
- if (edgeIsUnbundled) {
- j = 0;
- loopDist = ctrlptDist;
+ CRp$3.drawRoundPolygonPath = function(context, x5, y5, width3, height2, points, corners) {
+ corners.forEach(function(corner) {
+ return drawPreparedRoundCorner(context, corner);
+ });
+ context.closePath();
+ };
+ CRp$3.drawRoundRectanglePath = function(context, x5, y5, width3, height2, radius2) {
+ var halfWidth = width3 / 2;
+ var halfHeight = height2 / 2;
+ var cornerRadius = radius2 === "auto" ? getRoundRectangleRadius(width3, height2) : Math.min(radius2, halfHeight, halfWidth);
+ if (context.beginPath) {
+ context.beginPath();
}
- var loopW = 50;
- var loopaPos = {
- x: srcPos.x - srcW / 2,
- y: srcPos.y - srcH / 2
- };
- var loopbPos = {
- x: tgtPos.x - tgtW / 2,
- y: tgtPos.y - tgtH / 2
- };
- var loopPos = {
- x: Math.min(loopaPos.x, loopbPos.x),
- y: Math.min(loopaPos.y, loopbPos.y)
- };
- var minCompoundStretch = 0.5;
- var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01));
- var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01));
- rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y];
+ context.moveTo(x5, y5 - halfHeight);
+ context.arcTo(x5 + halfWidth, y5 - halfHeight, x5 + halfWidth, y5, cornerRadius);
+ context.arcTo(x5 + halfWidth, y5 + halfHeight, x5, y5 + halfHeight, cornerRadius);
+ context.arcTo(x5 - halfWidth, y5 + halfHeight, x5 - halfWidth, y5, cornerRadius);
+ context.arcTo(x5 - halfWidth, y5 - halfHeight, x5, y5 - halfHeight, cornerRadius);
+ context.lineTo(x5, y5 - halfHeight);
+ context.closePath();
};
- BRp$c.findStraightEdgePoints = function(edge) {
- edge._private.rscratch.edgeType = "straight";
+ CRp$3.drawBottomRoundRectanglePath = function(context, x5, y5, width3, height2, radius2) {
+ var halfWidth = width3 / 2;
+ var halfHeight = height2 / 2;
+ var cornerRadius = radius2 === "auto" ? getRoundRectangleRadius(width3, height2) : radius2;
+ if (context.beginPath) {
+ context.beginPath();
+ }
+ context.moveTo(x5, y5 - halfHeight);
+ context.lineTo(x5 + halfWidth, y5 - halfHeight);
+ context.lineTo(x5 + halfWidth, y5);
+ context.arcTo(x5 + halfWidth, y5 + halfHeight, x5, y5 + halfHeight, cornerRadius);
+ context.arcTo(x5 - halfWidth, y5 + halfHeight, x5 - halfWidth, y5, cornerRadius);
+ context.lineTo(x5 - halfWidth, y5 - halfHeight);
+ context.lineTo(x5, y5 - halfHeight);
+ context.closePath();
};
- BRp$c.findBezierPoints = function(edge, pairInfo, i3, edgeIsUnbundled, edgeIsSwapped) {
- var rs = edge._private.rscratch;
- var vectorNormInverse = pairInfo.vectorNormInverse, posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts;
- var edgeDistances = edge.pstyle("edge-distances").value;
- var stepSize = edge.pstyle("control-point-step-size").pfValue;
- var ctrlptDists = edge.pstyle("control-point-distances");
- var ctrlptWs = edge.pstyle("control-point-weights");
- var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;
- var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
- var ctrlptWeight = ctrlptWs.value[0];
- var multi = edgeIsUnbundled;
- rs.edgeType = multi ? "multibezier" : "bezier";
- rs.ctrlpts = [];
- for (var b = 0; b < bezierN; b++) {
- var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i3) * stepSize * (edgeIsSwapped ? -1 : 1);
- var manctrlptDist = void 0;
- var sign2 = signum(normctrlptDist);
- if (multi) {
- ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize;
- ctrlptWeight = ctrlptWs.value[b];
- }
- if (edgeIsUnbundled) {
- manctrlptDist = ctrlptDist;
- } else {
- manctrlptDist = ctrlptDist !== void 0 ? sign2 * ctrlptDist : void 0;
- }
- var distanceFromMidpoint = manctrlptDist !== void 0 ? manctrlptDist : normctrlptDist;
- var w1 = 1 - ctrlptWeight;
- var w2 = ctrlptWeight;
- var midptPts = edgeDistances === "node-position" ? posPts : intersectionPts;
- var adjustedMidpt = {
- x: midptPts.x1 * w1 + midptPts.x2 * w2,
- y: midptPts.y1 * w1 + midptPts.y2 * w2
- };
- rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);
+ CRp$3.drawCutRectanglePath = function(context, x5, y5, width3, height2, points, corners) {
+ var halfWidth = width3 / 2;
+ var halfHeight = height2 / 2;
+ var cornerLength = corners === "auto" ? getCutRectangleCornerLength() : corners;
+ if (context.beginPath) {
+ context.beginPath();
}
+ context.moveTo(x5 - halfWidth + cornerLength, y5 - halfHeight);
+ context.lineTo(x5 + halfWidth - cornerLength, y5 - halfHeight);
+ context.lineTo(x5 + halfWidth, y5 - halfHeight + cornerLength);
+ context.lineTo(x5 + halfWidth, y5 + halfHeight - cornerLength);
+ context.lineTo(x5 + halfWidth - cornerLength, y5 + halfHeight);
+ context.lineTo(x5 - halfWidth + cornerLength, y5 + halfHeight);
+ context.lineTo(x5 - halfWidth, y5 + halfHeight - cornerLength);
+ context.lineTo(x5 - halfWidth, y5 - halfHeight + cornerLength);
+ context.closePath();
};
- BRp$c.findTaxiPoints = function(edge, pairInfo) {
- var rs = edge._private.rscratch;
- rs.edgeType = "segments";
- var VERTICAL = "vertical";
- var HORIZONTAL = "horizontal";
- var LEFTWARD = "leftward";
- var RIGHTWARD = "rightward";
- var DOWNWARD = "downward";
- var UPWARD = "upward";
- var AUTO = "auto";
- var posPts = pairInfo.posPts, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
- var edgeDistances = edge.pstyle("edge-distances").value;
- var dIncludesNodeBody = edgeDistances !== "node-position";
- var taxiDir = edge.pstyle("taxi-direction").value;
- var rawTaxiDir = taxiDir;
- var taxiTurn = edge.pstyle("taxi-turn");
- var turnIsPercent = taxiTurn.units === "%";
- var taxiTurnPfVal = taxiTurn.pfValue;
- var turnIsNegative = taxiTurnPfVal < 0;
- var minD = edge.pstyle("taxi-turn-min-distance").pfValue;
- var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;
- var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;
- var pdx = posPts.x2 - posPts.x1;
- var pdy = posPts.y2 - posPts.y1;
- var subDWH = function subDWH2(dxy, dwh) {
- if (dxy > 0) {
- return Math.max(dxy - dwh, 0);
- } else {
- return Math.min(dxy + dwh, 0);
- }
- };
- var dx = subDWH(pdx, dw);
- var dy = subDWH(pdy, dh);
- var isExplicitDir = false;
- if (rawTaxiDir === AUTO) {
- taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;
- } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {
- taxiDir = VERTICAL;
- isExplicitDir = true;
- } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {
- taxiDir = HORIZONTAL;
- isExplicitDir = true;
+ CRp$3.drawBarrelPath = function(context, x5, y5, width3, height2) {
+ var halfWidth = width3 / 2;
+ var halfHeight = height2 / 2;
+ var xBegin = x5 - halfWidth;
+ var xEnd = x5 + halfWidth;
+ var yBegin = y5 - halfHeight;
+ var yEnd = y5 + halfHeight;
+ var barrelCurveConstants = getBarrelCurveConstants(width3, height2);
+ var wOffset = barrelCurveConstants.widthOffset;
+ var hOffset = barrelCurveConstants.heightOffset;
+ var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset;
+ if (context.beginPath) {
+ context.beginPath();
}
- var isVert = taxiDir === VERTICAL;
- var l = isVert ? dy : dx;
- var pl = isVert ? pdy : pdx;
- var sgnL = signum(pl);
- var forcedDir = false;
- if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {
- sgnL *= -1;
- l = sgnL * Math.abs(l);
- forcedDir = true;
+ context.moveTo(xBegin, yBegin + hOffset);
+ context.lineTo(xBegin, yEnd - hOffset);
+ context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd);
+ context.lineTo(xEnd - wOffset, yEnd);
+ context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset);
+ context.lineTo(xEnd, yBegin + hOffset);
+ context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin);
+ context.lineTo(xBegin + wOffset, yBegin);
+ context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset);
+ context.closePath();
+ };
+ sin0 = Math.sin(0);
+ cos0 = Math.cos(0);
+ sin2 = {};
+ cos2 = {};
+ ellipseStepSize = Math.PI / 40;
+ for (i2 = 0 * Math.PI; i2 < 2 * Math.PI; i2 += ellipseStepSize) {
+ sin2[i2] = Math.sin(i2);
+ cos2[i2] = Math.cos(i2);
+ }
+ CRp$3.drawEllipsePath = function(context, centerX, centerY, width3, height2) {
+ if (context.beginPath) {
+ context.beginPath();
}
- var d;
- if (turnIsPercent) {
- var p2 = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;
- d = p2 * l;
+ if (context.ellipse) {
+ context.ellipse(centerX, centerY, width3 / 2, height2 / 2, 0, 0, 2 * Math.PI);
} else {
- var k = taxiTurnPfVal < 0 ? l : 0;
- d = k + taxiTurnPfVal * sgnL;
- }
- var getIsTooClose = function getIsTooClose2(d2) {
- return Math.abs(d2) < minD || Math.abs(d2) >= Math.abs(l);
- };
- var isTooCloseSrc = getIsTooClose(d);
- var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d));
- var isTooClose = isTooCloseSrc || isTooCloseTgt;
- if (isTooClose && !forcedDir) {
- if (isVert) {
- var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;
- var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;
- if (lShapeInsideSrc) {
- var x2 = (posPts.x1 + posPts.x2) / 2;
- var y1 = posPts.y1, y2 = posPts.y2;
- rs.segpts = [x2, y1, x2, y2];
- } else if (lShapeInsideTgt) {
- var y3 = (posPts.y1 + posPts.y2) / 2;
- var x1 = posPts.x1, x22 = posPts.x2;
- rs.segpts = [x1, y3, x22, y3];
- } else {
- rs.segpts = [posPts.x1, posPts.y2];
- }
- } else {
- var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;
- var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;
- if (_lShapeInsideSrc) {
- var _y = (posPts.y1 + posPts.y2) / 2;
- var _x = posPts.x1, _x2 = posPts.x2;
- rs.segpts = [_x, _y, _x2, _y];
- } else if (_lShapeInsideTgt) {
- var _x3 = (posPts.x1 + posPts.x2) / 2;
- var _y2 = posPts.y1, _y3 = posPts.y2;
- rs.segpts = [_x3, _y2, _x3, _y3];
+ var xPos, yPos;
+ var rw = width3 / 2;
+ var rh = height2 / 2;
+ for (var i2 = 0 * Math.PI; i2 < 2 * Math.PI; i2 += ellipseStepSize) {
+ xPos = centerX - rw * sin2[i2] * sin0 + rw * cos2[i2] * cos0;
+ yPos = centerY + rh * cos2[i2] * sin0 + rh * sin2[i2] * cos0;
+ if (i2 === 0) {
+ context.moveTo(xPos, yPos);
} else {
- rs.segpts = [posPts.x2, posPts.y1];
+ context.lineTo(xPos, yPos);
}
}
- } else {
- if (isVert) {
- var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);
- var _x4 = posPts.x1, _x5 = posPts.x2;
- rs.segpts = [_x4, _y4, _x5, _y4];
- } else {
- var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);
- var _y5 = posPts.y1, _y6 = posPts.y2;
- rs.segpts = [_x6, _y5, _x6, _y6];
- }
}
+ context.closePath();
};
- BRp$c.tryToCorrectInvalidPoints = function(edge, pairInfo) {
- var rs = edge._private.rscratch;
- if (rs.edgeType === "bezier") {
- var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH, srcShape = pairInfo.srcShape, tgtShape = pairInfo.tgtShape;
- var badStart = !number$12(rs.startX) || !number$12(rs.startY);
- var badAStart = !number$12(rs.arrowStartX) || !number$12(rs.arrowStartY);
- var badEnd = !number$12(rs.endX) || !number$12(rs.endY);
- var badAEnd = !number$12(rs.arrowEndX) || !number$12(rs.arrowEndY);
- var minCpADistFactor = 3;
- var arrowW = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
- var minCpADist = minCpADistFactor * arrowW;
- var startACpDist = dist2({
- x: rs.ctrlpts[0],
- y: rs.ctrlpts[1]
- }, {
- x: rs.startX,
- y: rs.startY
- });
- var closeStartACp = startACpDist < minCpADist;
- var endACpDist = dist2({
- x: rs.ctrlpts[0],
- y: rs.ctrlpts[1]
- }, {
- x: rs.endX,
- y: rs.endY
- });
- var closeEndACp = endACpDist < minCpADist;
- var overlapping = false;
- if (badStart || badAStart || closeStartACp) {
- overlapping = true;
- var cpD = {
- // delta
- x: rs.ctrlpts[0] - srcPos.x,
- y: rs.ctrlpts[1] - srcPos.y
- };
- var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y);
- var cpM = {
- // normalised delta
- x: cpD.x / cpL,
- y: cpD.y / cpL
- };
- var radius = Math.max(srcW, srcH);
- var cpProj = {
- // *2 radius guarantees outside shape
- x: rs.ctrlpts[0] + cpM.x * 2 * radius,
- y: rs.ctrlpts[1] + cpM.y * 2 * radius
- };
- var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0);
- if (closeStartACp) {
- rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);
- rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);
- } else {
- rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;
- rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;
- }
+ CRp$2 = {};
+ CRp$2.createBuffer = function(w3, h2) {
+ var buffer = document.createElement("canvas");
+ buffer.width = w3;
+ buffer.height = h2;
+ return [buffer, buffer.getContext("2d")];
+ };
+ CRp$2.bufferCanvasImage = function(options3) {
+ var cy = this.cy;
+ var eles = cy.mutableElements();
+ var bb = eles.boundingBox();
+ var ctrRect = this.findContainerClientCoords();
+ var width3 = options3.full ? Math.ceil(bb.w) : ctrRect[2];
+ var height2 = options3.full ? Math.ceil(bb.h) : ctrRect[3];
+ var specdMaxDims = number$1(options3.maxWidth) || number$1(options3.maxHeight);
+ var pxRatio = this.getPixelRatio();
+ var scale = 1;
+ if (options3.scale !== void 0) {
+ width3 *= options3.scale;
+ height2 *= options3.scale;
+ scale = options3.scale;
+ } else if (specdMaxDims) {
+ var maxScaleW = Infinity;
+ var maxScaleH = Infinity;
+ if (number$1(options3.maxWidth)) {
+ maxScaleW = scale * options3.maxWidth / width3;
}
- if (badEnd || badAEnd || closeEndACp) {
- overlapping = true;
- var _cpD = {
- // delta
- x: rs.ctrlpts[0] - tgtPos.x,
- y: rs.ctrlpts[1] - tgtPos.y
- };
- var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y);
- var _cpM = {
- // normalised delta
- x: _cpD.x / _cpL,
- y: _cpD.y / _cpL
- };
- var _radius = Math.max(srcW, srcH);
- var _cpProj = {
- // *2 radius guarantees outside shape
- x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,
- y: rs.ctrlpts[1] + _cpM.y * 2 * _radius
+ if (number$1(options3.maxHeight)) {
+ maxScaleH = scale * options3.maxHeight / height2;
+ }
+ scale = Math.min(maxScaleW, maxScaleH);
+ width3 *= scale;
+ height2 *= scale;
+ }
+ if (!specdMaxDims) {
+ width3 *= pxRatio;
+ height2 *= pxRatio;
+ scale *= pxRatio;
+ }
+ var buffCanvas = document.createElement("canvas");
+ buffCanvas.width = width3;
+ buffCanvas.height = height2;
+ buffCanvas.style.width = width3 + "px";
+ buffCanvas.style.height = height2 + "px";
+ var buffCxt = buffCanvas.getContext("2d");
+ if (width3 > 0 && height2 > 0) {
+ buffCxt.clearRect(0, 0, width3, height2);
+ buffCxt.globalCompositeOperation = "source-over";
+ var zsortedEles = this.getCachedZSortedEles();
+ if (options3.full) {
+ buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale);
+ buffCxt.scale(scale, scale);
+ this.drawElements(buffCxt, zsortedEles);
+ buffCxt.scale(1 / scale, 1 / scale);
+ buffCxt.translate(bb.x1 * scale, bb.y1 * scale);
+ } else {
+ var pan2 = cy.pan();
+ var translation = {
+ x: pan2.x * scale,
+ y: pan2.y * scale
};
- var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0);
- if (closeEndACp) {
- rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);
- rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);
- } else {
- rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;
- rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;
- }
+ scale *= cy.zoom();
+ buffCxt.translate(translation.x, translation.y);
+ buffCxt.scale(scale, scale);
+ this.drawElements(buffCxt, zsortedEles);
+ buffCxt.scale(1 / scale, 1 / scale);
+ buffCxt.translate(-translation.x, -translation.y);
}
- if (overlapping) {
- this.findEndpoints(edge);
+ if (options3.bg) {
+ buffCxt.globalCompositeOperation = "destination-over";
+ buffCxt.fillStyle = options3.bg;
+ buffCxt.rect(0, 0, width3, height2);
+ buffCxt.fill();
}
}
+ return buffCanvas;
+ };
+ __name(b64ToBlob, "b64ToBlob");
+ __name(b64UriToB64, "b64UriToB64");
+ __name(output, "output");
+ CRp$2.png = function(options3) {
+ return output(options3, this.bufferCanvasImage(options3), "image/png");
+ };
+ CRp$2.jpg = function(options3) {
+ return output(options3, this.bufferCanvasImage(options3), "image/jpeg");
+ };
+ CRp$1 = {};
+ CRp$1.nodeShapeImpl = function(name, context, centerX, centerY, width3, height2, points, corners) {
+ switch (name) {
+ case "ellipse":
+ return this.drawEllipsePath(context, centerX, centerY, width3, height2);
+ case "polygon":
+ return this.drawPolygonPath(context, centerX, centerY, width3, height2, points);
+ case "round-polygon":
+ return this.drawRoundPolygonPath(context, centerX, centerY, width3, height2, points, corners);
+ case "roundrectangle":
+ case "round-rectangle":
+ return this.drawRoundRectanglePath(context, centerX, centerY, width3, height2, corners);
+ case "cutrectangle":
+ case "cut-rectangle":
+ return this.drawCutRectanglePath(context, centerX, centerY, width3, height2, points, corners);
+ case "bottomroundrectangle":
+ case "bottom-round-rectangle":
+ return this.drawBottomRoundRectanglePath(context, centerX, centerY, width3, height2, corners);
+ case "barrel":
+ return this.drawBarrelPath(context, centerX, centerY, width3, height2);
+ }
+ };
+ CR = CanvasRenderer;
+ CRp = CanvasRenderer.prototype;
+ CRp.CANVAS_LAYERS = 3;
+ CRp.SELECT_BOX = 0;
+ CRp.DRAG = 1;
+ CRp.NODE = 2;
+ CRp.BUFFER_COUNT = 3;
+ CRp.TEXTURE_BUFFER = 0;
+ CRp.MOTIONBLUR_BUFFER_NODE = 1;
+ CRp.MOTIONBLUR_BUFFER_DRAG = 2;
+ __name(CanvasRenderer, "CanvasRenderer");
+ CRp.redrawHint = function(group2, bool2) {
+ var r2 = this;
+ switch (group2) {
+ case "eles":
+ r2.data.canvasNeedsRedraw[CRp.NODE] = bool2;
+ break;
+ case "drag":
+ r2.data.canvasNeedsRedraw[CRp.DRAG] = bool2;
+ break;
+ case "select":
+ r2.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool2;
+ break;
+ }
+ };
+ pathsImpld = typeof Path2D !== "undefined";
+ CRp.path2dEnabled = function(on3) {
+ if (on3 === void 0) {
+ return this.pathsEnabled;
+ }
+ this.pathsEnabled = on3 ? true : false;
+ };
+ CRp.usePaths = function() {
+ return pathsImpld && this.pathsEnabled;
+ };
+ CRp.setImgSmoothing = function(context, bool2) {
+ if (context.imageSmoothingEnabled != null) {
+ context.imageSmoothingEnabled = bool2;
+ } else {
+ context.webkitImageSmoothingEnabled = bool2;
+ context.mozImageSmoothingEnabled = bool2;
+ context.msImageSmoothingEnabled = bool2;
+ }
};
- BRp$c.storeAllpts = function(edge) {
- var rs = edge._private.rscratch;
- if (rs.edgeType === "multibezier" || rs.edgeType === "bezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
- rs.allpts = [];
- rs.allpts.push(rs.startX, rs.startY);
- for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) {
- rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]);
- if (b + 3 < rs.ctrlpts.length) {
- rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2);
- }
- }
- rs.allpts.push(rs.endX, rs.endY);
- var m, mt;
- if (rs.ctrlpts.length / 2 % 2 === 0) {
- m = rs.allpts.length / 2 - 1;
- rs.midX = rs.allpts[m];
- rs.midY = rs.allpts[m + 1];
- } else {
- m = rs.allpts.length / 2 - 3;
- mt = 0.5;
- rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt);
- rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt);
- }
- } else if (rs.edgeType === "straight") {
- rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];
- rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;
- rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;
- } else if (rs.edgeType === "segments") {
- rs.allpts = [];
- rs.allpts.push(rs.startX, rs.startY);
- rs.allpts.push.apply(rs.allpts, rs.segpts);
- rs.allpts.push(rs.endX, rs.endY);
- if (rs.segpts.length % 4 === 0) {
- var i22 = rs.segpts.length / 2;
- var i1 = i22 - 2;
- rs.midX = (rs.segpts[i1] + rs.segpts[i22]) / 2;
- rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i22 + 1]) / 2;
- } else {
- var _i = rs.segpts.length / 2 - 1;
- rs.midX = rs.segpts[_i];
- rs.midY = rs.segpts[_i + 1];
- }
+ CRp.getImgSmoothing = function(context) {
+ if (context.imageSmoothingEnabled != null) {
+ return context.imageSmoothingEnabled;
+ } else {
+ return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled;
}
};
- BRp$c.checkForInvalidEdgeWarning = function(edge) {
- var rs = edge[0]._private.rscratch;
- if (rs.nodesOverlap || number$12(rs.startX) && number$12(rs.startY) && number$12(rs.endX) && number$12(rs.endY)) {
- rs.loggedErr = false;
+ CRp.makeOffscreenCanvas = function(width3, height2) {
+ var canvas;
+ if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== "undefined") {
+ canvas = new OffscreenCanvas(width3, height2);
} else {
- if (!rs.loggedErr) {
- rs.loggedErr = true;
- warn("Edge `" + edge.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.");
- }
+ var containerWindow = this.cy.window();
+ var document2 = containerWindow.document;
+ canvas = document2.createElement("canvas");
+ canvas.width = width3;
+ canvas.height = height2;
}
+ return canvas;
};
- BRp$c.findEdgeControlPoints = function(edges2) {
- var _this = this;
- if (!edges2 || edges2.length === 0) {
- return;
+ [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function(props) {
+ extend2(CRp, props);
+ });
+ renderer5 = [{
+ name: "null",
+ impl: NullRenderer
+ }, {
+ name: "base",
+ impl: BR
+ }, {
+ name: "canvas",
+ impl: CR
+ }];
+ incExts = [{
+ type: "layout",
+ extensions: layout4
+ }, {
+ type: "renderer",
+ extensions: renderer5
+ }];
+ extensions = {};
+ modules = {};
+ __name(setExtension, "setExtension");
+ __name(getExtension, "getExtension");
+ __name(setModule, "setModule");
+ __name(getModule, "getModule");
+ extension3 = /* @__PURE__ */ __name(function extension4() {
+ if (arguments.length === 2) {
+ return getExtension.apply(null, arguments);
+ } else if (arguments.length === 3) {
+ return setExtension.apply(null, arguments);
+ } else if (arguments.length === 4) {
+ return getModule.apply(null, arguments);
+ } else if (arguments.length === 5) {
+ return setModule.apply(null, arguments);
+ } else {
+ error("Invalid extension access syntax");
}
- var r = this;
- var cy = r.cy;
- var hasCompounds = cy.hasCompoundNodes();
- var hashTable = {
- map: new Map$22(),
- get: function get3(pairId2) {
- var map2 = this.map.get(pairId2[0]);
- if (map2 != null) {
- return map2.get(pairId2[1]);
- } else {
- return null;
+ }, "extension");
+ Core.prototype.extension = extension3;
+ incExts.forEach(function(group2) {
+ group2.extensions.forEach(function(ext) {
+ setExtension(group2.type, ext.name, ext.impl);
+ });
+ });
+ Stylesheet = /* @__PURE__ */ __name(function Stylesheet2() {
+ if (!(this instanceof Stylesheet2)) {
+ return new Stylesheet2();
+ }
+ this.length = 0;
+ }, "Stylesheet");
+ sheetfn = Stylesheet.prototype;
+ sheetfn.instanceString = function() {
+ return "stylesheet";
+ };
+ sheetfn.selector = function(selector) {
+ var i2 = this.length++;
+ this[i2] = {
+ selector,
+ properties: []
+ };
+ return this;
+ };
+ sheetfn.css = function(name, value2) {
+ var i2 = this.length - 1;
+ if (string(name)) {
+ this[i2].properties.push({
+ name,
+ value: value2
+ });
+ } else if (plainObject(name)) {
+ var map5 = name;
+ var propNames = Object.keys(map5);
+ for (var j2 = 0; j2 < propNames.length; j2++) {
+ var key = propNames[j2];
+ var mapVal = map5[key];
+ if (mapVal == null) {
+ continue;
}
- },
- set: function set3(pairId2, val) {
- var map2 = this.map.get(pairId2[0]);
- if (map2 == null) {
- map2 = new Map$22();
- this.map.set(pairId2[0], map2);
+ var prop = Style2.properties[key] || Style2.properties[dash2camel(key)];
+ if (prop == null) {
+ continue;
}
- map2.set(pairId2[1], val);
- }
- };
- var pairIds = [];
- var haystackEdges = [];
- for (var i3 = 0; i3 < edges2.length; i3++) {
- var edge = edges2[i3];
- var _p = edge._private;
- var curveStyle = edge.pstyle("curve-style").value;
- if (edge.removed() || !edge.takesUpSpace()) {
- continue;
- }
- if (curveStyle === "haystack") {
- haystackEdges.push(edge);
- continue;
- }
- var edgeIsUnbundled = curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "straight" || curveStyle === "straight-triangle" || curveStyle === "taxi";
- var edgeIsBezier = curveStyle === "unbundled-bezier" || curveStyle === "bezier";
- var src = _p.source;
- var tgt = _p.target;
- var srcIndex = src.poolIndex();
- var tgtIndex = tgt.poolIndex();
- var pairId = [srcIndex, tgtIndex].sort();
- var tableEntry = hashTable.get(pairId);
- if (tableEntry == null) {
- tableEntry = {
- eles: []
- };
- hashTable.set(pairId, tableEntry);
- pairIds.push(pairId);
- }
- tableEntry.eles.push(edge);
- if (edgeIsUnbundled) {
- tableEntry.hasUnbundled = true;
- }
- if (edgeIsBezier) {
- tableEntry.hasBezier = true;
- }
- }
- var _loop = function _loop2(p3) {
- var pairId2 = pairIds[p3];
- var pairInfo = hashTable.get(pairId2);
- var swappedpairInfo = void 0;
- if (!pairInfo.hasUnbundled) {
- var pllEdges = pairInfo.eles[0].parallelEdges().filter(function(e) {
- return e.isBundledBezier();
- });
- clearArray(pairInfo.eles);
- pllEdges.forEach(function(edge2) {
- return pairInfo.eles.push(edge2);
- });
- pairInfo.eles.sort(function(edge1, edge2) {
- return edge1.poolIndex() - edge2.poolIndex();
+ var _name = prop.name;
+ var _value = mapVal;
+ this[i2].properties.push({
+ name: _name,
+ value: _value
});
}
- var firstEdge = pairInfo.eles[0];
- var src2 = firstEdge.source();
- var tgt2 = firstEdge.target();
- if (src2.poolIndex() > tgt2.poolIndex()) {
- var temp = src2;
- src2 = tgt2;
- tgt2 = temp;
+ }
+ return this;
+ };
+ sheetfn.style = sheetfn.css;
+ sheetfn.generateStyle = function(cy) {
+ var style3 = new Style2(cy);
+ return this.appendToStyle(style3);
+ };
+ sheetfn.appendToStyle = function(style3) {
+ for (var i2 = 0; i2 < this.length; i2++) {
+ var context = this[i2];
+ var selector = context.selector;
+ var props = context.properties;
+ style3.selector(selector);
+ for (var j2 = 0; j2 < props.length; j2++) {
+ var prop = props[j2];
+ style3.css(prop.name, prop.value);
}
- var srcPos = pairInfo.srcPos = src2.position();
- var tgtPos = pairInfo.tgtPos = tgt2.position();
- var srcW = pairInfo.srcW = src2.outerWidth();
- var srcH = pairInfo.srcH = src2.outerHeight();
- var tgtW = pairInfo.tgtW = tgt2.outerWidth();
- var tgtH = pairInfo.tgtH = tgt2.outerHeight();
- var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src2)];
- var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt2)];
- pairInfo.dirCounts = {
- "north": 0,
- "west": 0,
- "south": 0,
- "east": 0,
- "northwest": 0,
- "southwest": 0,
- "northeast": 0,
- "southeast": 0
- };
- for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {
- var _edge = pairInfo.eles[_i2];
- var rs = _edge[0]._private.rscratch;
- var _curveStyle = _edge.pstyle("curve-style").value;
- var _edgeIsUnbundled = _curveStyle === "unbundled-bezier" || _curveStyle === "segments" || _curveStyle === "taxi";
- var edgeIsSwapped = !src2.same(_edge.source());
- if (!pairInfo.calculatedIntersection && src2 !== tgt2 && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {
- pairInfo.calculatedIntersection = true;
- var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0);
- var srcIntn = pairInfo.srcIntn = srcOutside;
- var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0);
- var tgtIntn = pairInfo.tgtIntn = tgtOutside;
- var intersectionPts = pairInfo.intersectionPts = {
- x1: srcOutside[0],
- x2: tgtOutside[0],
- y1: srcOutside[1],
- y2: tgtOutside[1]
+ }
+ return style3;
+ };
+ version3 = "3.30.1";
+ cytoscape2 = /* @__PURE__ */ __name(function cytoscape3(options3) {
+ if (options3 === void 0) {
+ options3 = {};
+ }
+ if (plainObject(options3)) {
+ return new Core(options3);
+ } else if (string(options3)) {
+ return extension3.apply(extension3, arguments);
+ }
+ }, "cytoscape");
+ cytoscape2.use = function(ext) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ args.unshift(cytoscape2);
+ ext.apply(null, args);
+ return this;
+ };
+ cytoscape2.warnings = function(bool2) {
+ return warnings(bool2);
+ };
+ cytoscape2.version = version3;
+ cytoscape2.stylesheet = cytoscape2.Stylesheet = Stylesheet;
+ }
+ });
+
+ // ../../node_modules/.pnpm/layout-base@1.0.2/node_modules/layout-base/layout-base.js
+ var require_layout_base = __commonJS({
+ "../../node_modules/.pnpm/layout-base@1.0.2/node_modules/layout-base/layout-base.js"(exports2, module2) {
+ "use strict";
+ (/* @__PURE__ */ __name(function webpackUniversalModuleDefinition(root4, factory) {
+ if (typeof exports2 === "object" && typeof module2 === "object")
+ module2.exports = factory();
+ else if (typeof define === "function" && define.amd)
+ define([], factory);
+ else if (typeof exports2 === "object")
+ exports2["layoutBase"] = factory();
+ else
+ root4["layoutBase"] = factory();
+ }, "webpackUniversalModuleDefinition"))(exports2, function() {
+ return (
+ /******/
+ function(modules2) {
+ var installedModules = {};
+ function __webpack_require__(moduleId) {
+ if (installedModules[moduleId]) {
+ return installedModules[moduleId].exports;
+ }
+ var module3 = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+ /******/
+ l: false,
+ /******/
+ exports: {}
+ /******/
+ };
+ modules2[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
+ module3.l = true;
+ return module3.exports;
+ }
+ __name(__webpack_require__, "__webpack_require__");
+ __webpack_require__.m = modules2;
+ __webpack_require__.c = installedModules;
+ __webpack_require__.i = function(value2) {
+ return value2;
+ };
+ __webpack_require__.d = function(exports3, name, getter) {
+ if (!__webpack_require__.o(exports3, name)) {
+ Object.defineProperty(exports3, name, {
+ /******/
+ configurable: false,
+ /******/
+ enumerable: true,
+ /******/
+ get: getter
+ /******/
+ });
+ }
+ };
+ __webpack_require__.n = function(module3) {
+ var getter = module3 && module3.__esModule ? (
+ /******/
+ /* @__PURE__ */ __name(function getDefault() {
+ return module3["default"];
+ }, "getDefault")
+ ) : (
+ /******/
+ /* @__PURE__ */ __name(function getModuleExports() {
+ return module3;
+ }, "getModuleExports")
+ );
+ __webpack_require__.d(getter, "a", getter);
+ return getter;
+ };
+ __webpack_require__.o = function(object3, property2) {
+ return Object.prototype.hasOwnProperty.call(object3, property2);
+ };
+ __webpack_require__.p = "";
+ return __webpack_require__(__webpack_require__.s = 26);
+ }([
+ /* 0 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function LayoutConstants() {
+ }
+ __name(LayoutConstants, "LayoutConstants");
+ LayoutConstants.QUALITY = 1;
+ LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;
+ LayoutConstants.DEFAULT_INCREMENTAL = false;
+ LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;
+ LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;
+ LayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;
+ LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;
+ LayoutConstants.DEFAULT_GRAPH_MARGIN = 15;
+ LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;
+ LayoutConstants.SIMPLE_NODE_SIZE = 40;
+ LayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;
+ LayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;
+ LayoutConstants.MIN_EDGE_LENGTH = 1;
+ LayoutConstants.WORLD_BOUNDARY = 1e6;
+ LayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1e3;
+ LayoutConstants.WORLD_CENTER_X = 1200;
+ LayoutConstants.WORLD_CENTER_Y = 900;
+ module3.exports = LayoutConstants;
+ },
+ /* 1 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LGraphObject = __webpack_require__(2);
+ var IGeometry = __webpack_require__(8);
+ var IMath = __webpack_require__(9);
+ function LEdge(source, target, vEdge) {
+ LGraphObject.call(this, vEdge);
+ this.isOverlapingSourceAndTarget = false;
+ this.vGraphObject = vEdge;
+ this.bendpoints = [];
+ this.source = source;
+ this.target = target;
+ }
+ __name(LEdge, "LEdge");
+ LEdge.prototype = Object.create(LGraphObject.prototype);
+ for (var prop in LGraphObject) {
+ LEdge[prop] = LGraphObject[prop];
+ }
+ LEdge.prototype.getSource = function() {
+ return this.source;
+ };
+ LEdge.prototype.getTarget = function() {
+ return this.target;
+ };
+ LEdge.prototype.isInterGraph = function() {
+ return this.isInterGraph;
+ };
+ LEdge.prototype.getLength = function() {
+ return this.length;
+ };
+ LEdge.prototype.isOverlapingSourceAndTarget = function() {
+ return this.isOverlapingSourceAndTarget;
+ };
+ LEdge.prototype.getBendpoints = function() {
+ return this.bendpoints;
+ };
+ LEdge.prototype.getLca = function() {
+ return this.lca;
+ };
+ LEdge.prototype.getSourceInLca = function() {
+ return this.sourceInLca;
+ };
+ LEdge.prototype.getTargetInLca = function() {
+ return this.targetInLca;
+ };
+ LEdge.prototype.getOtherEnd = function(node2) {
+ if (this.source === node2) {
+ return this.target;
+ } else if (this.target === node2) {
+ return this.source;
+ } else {
+ throw "Node is not incident with this edge";
+ }
+ };
+ LEdge.prototype.getOtherEndInGraph = function(node2, graph) {
+ var otherEnd = this.getOtherEnd(node2);
+ var root4 = graph.getGraphManager().getRoot();
+ while (true) {
+ if (otherEnd.getOwner() == graph) {
+ return otherEnd;
+ }
+ if (otherEnd.getOwner() == root4) {
+ break;
+ }
+ otherEnd = otherEnd.getOwner().getParent();
+ }
+ return null;
+ };
+ LEdge.prototype.updateLength = function() {
+ var clipPointCoordinates = new Array(4);
+ this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);
+ if (!this.isOverlapingSourceAndTarget) {
+ this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];
+ this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];
+ if (Math.abs(this.lengthX) < 1) {
+ this.lengthX = IMath.sign(this.lengthX);
+ }
+ if (Math.abs(this.lengthY) < 1) {
+ this.lengthY = IMath.sign(this.lengthY);
+ }
+ this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);
+ }
+ };
+ LEdge.prototype.updateLengthSimple = function() {
+ this.lengthX = this.target.getCenterX() - this.source.getCenterX();
+ this.lengthY = this.target.getCenterY() - this.source.getCenterY();
+ if (Math.abs(this.lengthX) < 1) {
+ this.lengthX = IMath.sign(this.lengthX);
+ }
+ if (Math.abs(this.lengthY) < 1) {
+ this.lengthY = IMath.sign(this.lengthY);
+ }
+ this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);
+ };
+ module3.exports = LEdge;
+ },
+ /* 2 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function LGraphObject(vGraphObject) {
+ this.vGraphObject = vGraphObject;
+ }
+ __name(LGraphObject, "LGraphObject");
+ module3.exports = LGraphObject;
+ },
+ /* 3 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LGraphObject = __webpack_require__(2);
+ var Integer = __webpack_require__(10);
+ var RectangleD = __webpack_require__(13);
+ var LayoutConstants = __webpack_require__(0);
+ var RandomSeed = __webpack_require__(16);
+ var PointD = __webpack_require__(4);
+ function LNode(gm, loc, size5, vNode) {
+ if (size5 == null && vNode == null) {
+ vNode = loc;
+ }
+ LGraphObject.call(this, vNode);
+ if (gm.graphManager != null) gm = gm.graphManager;
+ this.estimatedSize = Integer.MIN_VALUE;
+ this.inclusionTreeDepth = Integer.MAX_VALUE;
+ this.vGraphObject = vNode;
+ this.edges = [];
+ this.graphManager = gm;
+ if (size5 != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size5.width, size5.height);
+ else this.rect = new RectangleD();
+ }
+ __name(LNode, "LNode");
+ LNode.prototype = Object.create(LGraphObject.prototype);
+ for (var prop in LGraphObject) {
+ LNode[prop] = LGraphObject[prop];
+ }
+ LNode.prototype.getEdges = function() {
+ return this.edges;
+ };
+ LNode.prototype.getChild = function() {
+ return this.child;
+ };
+ LNode.prototype.getOwner = function() {
+ return this.owner;
+ };
+ LNode.prototype.getWidth = function() {
+ return this.rect.width;
+ };
+ LNode.prototype.setWidth = function(width3) {
+ this.rect.width = width3;
+ };
+ LNode.prototype.getHeight = function() {
+ return this.rect.height;
+ };
+ LNode.prototype.setHeight = function(height2) {
+ this.rect.height = height2;
+ };
+ LNode.prototype.getCenterX = function() {
+ return this.rect.x + this.rect.width / 2;
+ };
+ LNode.prototype.getCenterY = function() {
+ return this.rect.y + this.rect.height / 2;
+ };
+ LNode.prototype.getCenter = function() {
+ return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);
+ };
+ LNode.prototype.getLocation = function() {
+ return new PointD(this.rect.x, this.rect.y);
+ };
+ LNode.prototype.getRect = function() {
+ return this.rect;
+ };
+ LNode.prototype.getDiagonal = function() {
+ return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);
+ };
+ LNode.prototype.getHalfTheDiagonal = function() {
+ return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;
+ };
+ LNode.prototype.setRect = function(upperLeft, dimension) {
+ this.rect.x = upperLeft.x;
+ this.rect.y = upperLeft.y;
+ this.rect.width = dimension.width;
+ this.rect.height = dimension.height;
+ };
+ LNode.prototype.setCenter = function(cx, cy) {
+ this.rect.x = cx - this.rect.width / 2;
+ this.rect.y = cy - this.rect.height / 2;
+ };
+ LNode.prototype.setLocation = function(x5, y5) {
+ this.rect.x = x5;
+ this.rect.y = y5;
+ };
+ LNode.prototype.moveBy = function(dx, dy) {
+ this.rect.x += dx;
+ this.rect.y += dy;
+ };
+ LNode.prototype.getEdgeListToNode = function(to) {
+ var edgeList2 = [];
+ var edge;
+ var self2 = this;
+ self2.edges.forEach(function(edge2) {
+ if (edge2.target == to) {
+ if (edge2.source != self2) throw "Incorrect edge source!";
+ edgeList2.push(edge2);
+ }
+ });
+ return edgeList2;
+ };
+ LNode.prototype.getEdgesBetween = function(other) {
+ var edgeList2 = [];
+ var edge;
+ var self2 = this;
+ self2.edges.forEach(function(edge2) {
+ if (!(edge2.source == self2 || edge2.target == self2)) throw "Incorrect edge source and/or target";
+ if (edge2.target == other || edge2.source == other) {
+ edgeList2.push(edge2);
+ }
+ });
+ return edgeList2;
+ };
+ LNode.prototype.getNeighborsList = function() {
+ var neighbors = /* @__PURE__ */ new Set();
+ var self2 = this;
+ self2.edges.forEach(function(edge) {
+ if (edge.source == self2) {
+ neighbors.add(edge.target);
+ } else {
+ if (edge.target != self2) {
+ throw "Incorrect incidency!";
+ }
+ neighbors.add(edge.source);
+ }
+ });
+ return neighbors;
+ };
+ LNode.prototype.withChildren = function() {
+ var withNeighborsList = /* @__PURE__ */ new Set();
+ var childNode;
+ var children2;
+ withNeighborsList.add(this);
+ if (this.child != null) {
+ var nodes6 = this.child.getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ childNode = nodes6[i2];
+ children2 = childNode.withChildren();
+ children2.forEach(function(node2) {
+ withNeighborsList.add(node2);
+ });
+ }
+ }
+ return withNeighborsList;
+ };
+ LNode.prototype.getNoOfChildren = function() {
+ var noOfChildren = 0;
+ var childNode;
+ if (this.child == null) {
+ noOfChildren = 1;
+ } else {
+ var nodes6 = this.child.getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ childNode = nodes6[i2];
+ noOfChildren += childNode.getNoOfChildren();
+ }
+ }
+ if (noOfChildren == 0) {
+ noOfChildren = 1;
+ }
+ return noOfChildren;
+ };
+ LNode.prototype.getEstimatedSize = function() {
+ if (this.estimatedSize == Integer.MIN_VALUE) {
+ throw "assert failed";
+ }
+ return this.estimatedSize;
+ };
+ LNode.prototype.calcEstimatedSize = function() {
+ if (this.child == null) {
+ return this.estimatedSize = (this.rect.width + this.rect.height) / 2;
+ } else {
+ this.estimatedSize = this.child.calcEstimatedSize();
+ this.rect.width = this.estimatedSize;
+ this.rect.height = this.estimatedSize;
+ return this.estimatedSize;
+ }
+ };
+ LNode.prototype.scatter = function() {
+ var randomCenterX;
+ var randomCenterY;
+ var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;
+ var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;
+ randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;
+ this.rect.x = randomCenterX;
+ this.rect.y = randomCenterY;
+ };
+ LNode.prototype.updateBounds = function() {
+ if (this.getChild() == null) {
+ throw "assert failed";
+ }
+ if (this.getChild().getNodes().length != 0) {
+ var childGraph = this.getChild();
+ childGraph.updateBounds(true);
+ this.rect.x = childGraph.getLeft();
+ this.rect.y = childGraph.getTop();
+ this.setWidth(childGraph.getRight() - childGraph.getLeft());
+ this.setHeight(childGraph.getBottom() - childGraph.getTop());
+ if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {
+ var width3 = childGraph.getRight() - childGraph.getLeft();
+ var height2 = childGraph.getBottom() - childGraph.getTop();
+ if (this.labelWidth > width3) {
+ this.rect.x -= (this.labelWidth - width3) / 2;
+ this.setWidth(this.labelWidth);
+ }
+ if (this.labelHeight > height2) {
+ if (this.labelPos == "center") {
+ this.rect.y -= (this.labelHeight - height2) / 2;
+ } else if (this.labelPos == "top") {
+ this.rect.y -= this.labelHeight - height2;
+ }
+ this.setHeight(this.labelHeight);
+ }
+ }
+ }
+ };
+ LNode.prototype.getInclusionTreeDepth = function() {
+ if (this.inclusionTreeDepth == Integer.MAX_VALUE) {
+ throw "assert failed";
+ }
+ return this.inclusionTreeDepth;
+ };
+ LNode.prototype.transform = function(trans) {
+ var left3 = this.rect.x;
+ if (left3 > LayoutConstants.WORLD_BOUNDARY) {
+ left3 = LayoutConstants.WORLD_BOUNDARY;
+ } else if (left3 < -LayoutConstants.WORLD_BOUNDARY) {
+ left3 = -LayoutConstants.WORLD_BOUNDARY;
+ }
+ var top2 = this.rect.y;
+ if (top2 > LayoutConstants.WORLD_BOUNDARY) {
+ top2 = LayoutConstants.WORLD_BOUNDARY;
+ } else if (top2 < -LayoutConstants.WORLD_BOUNDARY) {
+ top2 = -LayoutConstants.WORLD_BOUNDARY;
+ }
+ var leftTop = new PointD(left3, top2);
+ var vLeftTop = trans.inverseTransformPoint(leftTop);
+ this.setLocation(vLeftTop.x, vLeftTop.y);
+ };
+ LNode.prototype.getLeft = function() {
+ return this.rect.x;
+ };
+ LNode.prototype.getRight = function() {
+ return this.rect.x + this.rect.width;
+ };
+ LNode.prototype.getTop = function() {
+ return this.rect.y;
+ };
+ LNode.prototype.getBottom = function() {
+ return this.rect.y + this.rect.height;
+ };
+ LNode.prototype.getParent = function() {
+ if (this.owner == null) {
+ return null;
+ }
+ return this.owner.getParent();
+ };
+ module3.exports = LNode;
+ },
+ /* 4 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function PointD(x5, y5) {
+ if (x5 == null && y5 == null) {
+ this.x = 0;
+ this.y = 0;
+ } else {
+ this.x = x5;
+ this.y = y5;
+ }
+ }
+ __name(PointD, "PointD");
+ PointD.prototype.getX = function() {
+ return this.x;
+ };
+ PointD.prototype.getY = function() {
+ return this.y;
+ };
+ PointD.prototype.setX = function(x5) {
+ this.x = x5;
+ };
+ PointD.prototype.setY = function(y5) {
+ this.y = y5;
+ };
+ PointD.prototype.getDifference = function(pt) {
+ return new DimensionD(this.x - pt.x, this.y - pt.y);
+ };
+ PointD.prototype.getCopy = function() {
+ return new PointD(this.x, this.y);
+ };
+ PointD.prototype.translate = function(dim) {
+ this.x += dim.width;
+ this.y += dim.height;
+ return this;
+ };
+ module3.exports = PointD;
+ },
+ /* 5 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LGraphObject = __webpack_require__(2);
+ var Integer = __webpack_require__(10);
+ var LayoutConstants = __webpack_require__(0);
+ var LGraphManager = __webpack_require__(6);
+ var LNode = __webpack_require__(3);
+ var LEdge = __webpack_require__(1);
+ var RectangleD = __webpack_require__(13);
+ var Point3 = __webpack_require__(12);
+ var LinkedList = __webpack_require__(11);
+ function LGraph(parent4, obj2, vGraph) {
+ LGraphObject.call(this, vGraph);
+ this.estimatedSize = Integer.MIN_VALUE;
+ this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;
+ this.edges = [];
+ this.nodes = [];
+ this.isConnected = false;
+ this.parent = parent4;
+ if (obj2 != null && obj2 instanceof LGraphManager) {
+ this.graphManager = obj2;
+ } else if (obj2 != null && obj2 instanceof Layout) {
+ this.graphManager = obj2.graphManager;
+ }
+ }
+ __name(LGraph, "LGraph");
+ LGraph.prototype = Object.create(LGraphObject.prototype);
+ for (var prop in LGraphObject) {
+ LGraph[prop] = LGraphObject[prop];
+ }
+ LGraph.prototype.getNodes = function() {
+ return this.nodes;
+ };
+ LGraph.prototype.getEdges = function() {
+ return this.edges;
+ };
+ LGraph.prototype.getGraphManager = function() {
+ return this.graphManager;
+ };
+ LGraph.prototype.getParent = function() {
+ return this.parent;
+ };
+ LGraph.prototype.getLeft = function() {
+ return this.left;
+ };
+ LGraph.prototype.getRight = function() {
+ return this.right;
+ };
+ LGraph.prototype.getTop = function() {
+ return this.top;
+ };
+ LGraph.prototype.getBottom = function() {
+ return this.bottom;
+ };
+ LGraph.prototype.isConnected = function() {
+ return this.isConnected;
+ };
+ LGraph.prototype.add = function(obj1, sourceNode, targetNode) {
+ if (sourceNode == null && targetNode == null) {
+ var newNode = obj1;
+ if (this.graphManager == null) {
+ throw "Graph has no graph mgr!";
+ }
+ if (this.getNodes().indexOf(newNode) > -1) {
+ throw "Node already in graph!";
+ }
+ newNode.owner = this;
+ this.getNodes().push(newNode);
+ return newNode;
+ } else {
+ var newEdge = obj1;
+ if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {
+ throw "Source or target not in graph!";
+ }
+ if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {
+ throw "Both owners must be this graph!";
+ }
+ if (sourceNode.owner != targetNode.owner) {
+ return null;
+ }
+ newEdge.source = sourceNode;
+ newEdge.target = targetNode;
+ newEdge.isInterGraph = false;
+ this.getEdges().push(newEdge);
+ sourceNode.edges.push(newEdge);
+ if (targetNode != sourceNode) {
+ targetNode.edges.push(newEdge);
+ }
+ return newEdge;
+ }
+ };
+ LGraph.prototype.remove = function(obj) {
+ var node2 = obj;
+ if (obj instanceof LNode) {
+ if (node2 == null) {
+ throw "Node is null!";
+ }
+ if (!(node2.owner != null && node2.owner == this)) {
+ throw "Owner graph is invalid!";
+ }
+ if (this.graphManager == null) {
+ throw "Owner graph manager is invalid!";
+ }
+ var edgesToBeRemoved = node2.edges.slice();
+ var edge;
+ var s2 = edgesToBeRemoved.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ edge = edgesToBeRemoved[i2];
+ if (edge.isInterGraph) {
+ this.graphManager.remove(edge);
+ } else {
+ edge.source.owner.remove(edge);
+ }
+ }
+ var index = this.nodes.indexOf(node2);
+ if (index == -1) {
+ throw "Node not in owner node list!";
+ }
+ this.nodes.splice(index, 1);
+ } else if (obj instanceof LEdge) {
+ var edge = obj;
+ if (edge == null) {
+ throw "Edge is null!";
+ }
+ if (!(edge.source != null && edge.target != null)) {
+ throw "Source and/or target is null!";
+ }
+ if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {
+ throw "Source and/or target owner is invalid!";
+ }
+ var sourceIndex = edge.source.edges.indexOf(edge);
+ var targetIndex = edge.target.edges.indexOf(edge);
+ if (!(sourceIndex > -1 && targetIndex > -1)) {
+ throw "Source and/or target doesn't know this edge!";
+ }
+ edge.source.edges.splice(sourceIndex, 1);
+ if (edge.target != edge.source) {
+ edge.target.edges.splice(targetIndex, 1);
+ }
+ var index = edge.source.owner.getEdges().indexOf(edge);
+ if (index == -1) {
+ throw "Not in owner's edge list!";
+ }
+ edge.source.owner.getEdges().splice(index, 1);
+ }
+ };
+ LGraph.prototype.updateLeftTop = function() {
+ var top2 = Integer.MAX_VALUE;
+ var left3 = Integer.MAX_VALUE;
+ var nodeTop;
+ var nodeLeft;
+ var margin;
+ var nodes6 = this.getNodes();
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
+ nodeTop = lNode.getTop();
+ nodeLeft = lNode.getLeft();
+ if (top2 > nodeTop) {
+ top2 = nodeTop;
+ }
+ if (left3 > nodeLeft) {
+ left3 = nodeLeft;
+ }
+ }
+ if (top2 == Integer.MAX_VALUE) {
+ return null;
+ }
+ if (nodes6[0].getParent().paddingLeft != void 0) {
+ margin = nodes6[0].getParent().paddingLeft;
+ } else {
+ margin = this.margin;
+ }
+ this.left = left3 - margin;
+ this.top = top2 - margin;
+ return new Point3(this.left, this.top);
+ };
+ LGraph.prototype.updateBounds = function(recursive) {
+ var left3 = Integer.MAX_VALUE;
+ var right3 = -Integer.MAX_VALUE;
+ var top2 = Integer.MAX_VALUE;
+ var bottom2 = -Integer.MAX_VALUE;
+ var nodeLeft;
+ var nodeRight;
+ var nodeTop;
+ var nodeBottom;
+ var margin;
+ var nodes6 = this.nodes;
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
+ if (recursive && lNode.child != null) {
+ lNode.updateBounds();
+ }
+ nodeLeft = lNode.getLeft();
+ nodeRight = lNode.getRight();
+ nodeTop = lNode.getTop();
+ nodeBottom = lNode.getBottom();
+ if (left3 > nodeLeft) {
+ left3 = nodeLeft;
+ }
+ if (right3 < nodeRight) {
+ right3 = nodeRight;
+ }
+ if (top2 > nodeTop) {
+ top2 = nodeTop;
+ }
+ if (bottom2 < nodeBottom) {
+ bottom2 = nodeBottom;
+ }
+ }
+ var boundingRect = new RectangleD(left3, top2, right3 - left3, bottom2 - top2);
+ if (left3 == Integer.MAX_VALUE) {
+ this.left = this.parent.getLeft();
+ this.right = this.parent.getRight();
+ this.top = this.parent.getTop();
+ this.bottom = this.parent.getBottom();
+ }
+ if (nodes6[0].getParent().paddingLeft != void 0) {
+ margin = nodes6[0].getParent().paddingLeft;
+ } else {
+ margin = this.margin;
+ }
+ this.left = boundingRect.x - margin;
+ this.right = boundingRect.x + boundingRect.width + margin;
+ this.top = boundingRect.y - margin;
+ this.bottom = boundingRect.y + boundingRect.height + margin;
+ };
+ LGraph.calculateBounds = function(nodes6) {
+ var left3 = Integer.MAX_VALUE;
+ var right3 = -Integer.MAX_VALUE;
+ var top2 = Integer.MAX_VALUE;
+ var bottom2 = -Integer.MAX_VALUE;
+ var nodeLeft;
+ var nodeRight;
+ var nodeTop;
+ var nodeBottom;
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
+ nodeLeft = lNode.getLeft();
+ nodeRight = lNode.getRight();
+ nodeTop = lNode.getTop();
+ nodeBottom = lNode.getBottom();
+ if (left3 > nodeLeft) {
+ left3 = nodeLeft;
+ }
+ if (right3 < nodeRight) {
+ right3 = nodeRight;
+ }
+ if (top2 > nodeTop) {
+ top2 = nodeTop;
+ }
+ if (bottom2 < nodeBottom) {
+ bottom2 = nodeBottom;
+ }
+ }
+ var boundingRect = new RectangleD(left3, top2, right3 - left3, bottom2 - top2);
+ return boundingRect;
+ };
+ LGraph.prototype.getInclusionTreeDepth = function() {
+ if (this == this.graphManager.getRoot()) {
+ return 1;
+ } else {
+ return this.parent.getInclusionTreeDepth();
+ }
+ };
+ LGraph.prototype.getEstimatedSize = function() {
+ if (this.estimatedSize == Integer.MIN_VALUE) {
+ throw "assert failed";
+ }
+ return this.estimatedSize;
+ };
+ LGraph.prototype.calcEstimatedSize = function() {
+ var size5 = 0;
+ var nodes6 = this.nodes;
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
+ size5 += lNode.calcEstimatedSize();
+ }
+ if (size5 == 0) {
+ this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;
+ } else {
+ this.estimatedSize = size5 / Math.sqrt(this.nodes.length);
+ }
+ return this.estimatedSize;
+ };
+ LGraph.prototype.updateConnected = function() {
+ var self2 = this;
+ if (this.nodes.length == 0) {
+ this.isConnected = true;
+ return;
+ }
+ var queue = new LinkedList();
+ var visited = /* @__PURE__ */ new Set();
+ var currentNode = this.nodes[0];
+ var neighborEdges;
+ var currentNeighbor;
+ var childrenOfNode = currentNode.withChildren();
+ childrenOfNode.forEach(function(node2) {
+ queue.push(node2);
+ visited.add(node2);
+ });
+ while (queue.length !== 0) {
+ currentNode = queue.shift();
+ neighborEdges = currentNode.getEdges();
+ var size5 = neighborEdges.length;
+ for (var i2 = 0; i2 < size5; i2++) {
+ var neighborEdge = neighborEdges[i2];
+ currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);
+ if (currentNeighbor != null && !visited.has(currentNeighbor)) {
+ var childrenOfNeighbor = currentNeighbor.withChildren();
+ childrenOfNeighbor.forEach(function(node2) {
+ queue.push(node2);
+ visited.add(node2);
+ });
+ }
+ }
+ }
+ this.isConnected = false;
+ if (visited.size >= this.nodes.length) {
+ var noOfVisitedInThisGraph = 0;
+ visited.forEach(function(visitedNode) {
+ if (visitedNode.owner == self2) {
+ noOfVisitedInThisGraph++;
+ }
+ });
+ if (noOfVisitedInThisGraph == this.nodes.length) {
+ this.isConnected = true;
+ }
+ }
+ };
+ module3.exports = LGraph;
+ },
+ /* 6 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LGraph;
+ var LEdge = __webpack_require__(1);
+ function LGraphManager(layout6) {
+ LGraph = __webpack_require__(5);
+ this.layout = layout6;
+ this.graphs = [];
+ this.edges = [];
+ }
+ __name(LGraphManager, "LGraphManager");
+ LGraphManager.prototype.addRoot = function() {
+ var ngraph = this.layout.newGraph();
+ var nnode = this.layout.newNode(null);
+ var root4 = this.add(ngraph, nnode);
+ this.setRootGraph(root4);
+ return this.rootGraph;
+ };
+ LGraphManager.prototype.add = function(newGraph, parentNode, newEdge, sourceNode, targetNode) {
+ if (newEdge == null && sourceNode == null && targetNode == null) {
+ if (newGraph == null) {
+ throw "Graph is null!";
+ }
+ if (parentNode == null) {
+ throw "Parent node is null!";
+ }
+ if (this.graphs.indexOf(newGraph) > -1) {
+ throw "Graph already in this graph mgr!";
+ }
+ this.graphs.push(newGraph);
+ if (newGraph.parent != null) {
+ throw "Already has a parent!";
+ }
+ if (parentNode.child != null) {
+ throw "Already has a child!";
+ }
+ newGraph.parent = parentNode;
+ parentNode.child = newGraph;
+ return newGraph;
+ } else {
+ targetNode = newEdge;
+ sourceNode = parentNode;
+ newEdge = newGraph;
+ var sourceGraph = sourceNode.getOwner();
+ var targetGraph = targetNode.getOwner();
+ if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {
+ throw "Source not in this graph mgr!";
+ }
+ if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {
+ throw "Target not in this graph mgr!";
+ }
+ if (sourceGraph == targetGraph) {
+ newEdge.isInterGraph = false;
+ return sourceGraph.add(newEdge, sourceNode, targetNode);
+ } else {
+ newEdge.isInterGraph = true;
+ newEdge.source = sourceNode;
+ newEdge.target = targetNode;
+ if (this.edges.indexOf(newEdge) > -1) {
+ throw "Edge already in inter-graph edge list!";
+ }
+ this.edges.push(newEdge);
+ if (!(newEdge.source != null && newEdge.target != null)) {
+ throw "Edge source and/or target is null!";
+ }
+ if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {
+ throw "Edge already in source and/or target incidency list!";
+ }
+ newEdge.source.edges.push(newEdge);
+ newEdge.target.edges.push(newEdge);
+ return newEdge;
+ }
+ }
+ };
+ LGraphManager.prototype.remove = function(lObj) {
+ if (lObj instanceof LGraph) {
+ var graph = lObj;
+ if (graph.getGraphManager() != this) {
+ throw "Graph not in this graph mgr";
+ }
+ if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {
+ throw "Invalid parent node!";
+ }
+ var edgesToBeRemoved = [];
+ edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());
+ var edge;
+ var s2 = edgesToBeRemoved.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ edge = edgesToBeRemoved[i2];
+ graph.remove(edge);
+ }
+ var nodesToBeRemoved = [];
+ nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());
+ var node2;
+ s2 = nodesToBeRemoved.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ node2 = nodesToBeRemoved[i2];
+ graph.remove(node2);
+ }
+ if (graph == this.rootGraph) {
+ this.setRootGraph(null);
+ }
+ var index = this.graphs.indexOf(graph);
+ this.graphs.splice(index, 1);
+ graph.parent = null;
+ } else if (lObj instanceof LEdge) {
+ edge = lObj;
+ if (edge == null) {
+ throw "Edge is null!";
+ }
+ if (!edge.isInterGraph) {
+ throw "Not an inter-graph edge!";
+ }
+ if (!(edge.source != null && edge.target != null)) {
+ throw "Source and/or target is null!";
+ }
+ if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {
+ throw "Source and/or target doesn't know this edge!";
+ }
+ var index = edge.source.edges.indexOf(edge);
+ edge.source.edges.splice(index, 1);
+ index = edge.target.edges.indexOf(edge);
+ edge.target.edges.splice(index, 1);
+ if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {
+ throw "Edge owner graph or owner graph manager is null!";
+ }
+ if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {
+ throw "Not in owner graph manager's edge list!";
+ }
+ var index = edge.source.owner.getGraphManager().edges.indexOf(edge);
+ edge.source.owner.getGraphManager().edges.splice(index, 1);
+ }
};
- var posPts = pairInfo.posPts = {
- x1: srcPos.x,
- x2: tgtPos.x,
- y1: srcPos.y,
- y2: tgtPos.y
+ LGraphManager.prototype.updateBounds = function() {
+ this.rootGraph.updateBounds(true);
};
- var dy = tgtOutside[1] - srcOutside[1];
- var dx = tgtOutside[0] - srcOutside[0];
- var l = Math.sqrt(dx * dx + dy * dy);
- var vector = pairInfo.vector = {
- x: dx,
- y: dy
+ LGraphManager.prototype.getGraphs = function() {
+ return this.graphs;
};
- var vectorNorm = pairInfo.vectorNorm = {
- x: vector.x / l,
- y: vector.y / l
+ LGraphManager.prototype.getAllNodes = function() {
+ if (this.allNodes == null) {
+ var nodeList = [];
+ var graphs = this.getGraphs();
+ var s2 = graphs.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ nodeList = nodeList.concat(graphs[i2].getNodes());
+ }
+ this.allNodes = nodeList;
+ }
+ return this.allNodes;
};
- var vectorNormInverse = {
- x: -vectorNorm.y,
- y: vectorNorm.x
+ LGraphManager.prototype.resetAllNodes = function() {
+ this.allNodes = null;
};
- pairInfo.nodesOverlap = !number$12(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y);
- pairInfo.vectorNormInverse = vectorNormInverse;
- swappedpairInfo = {
- nodesOverlap: pairInfo.nodesOverlap,
- dirCounts: pairInfo.dirCounts,
- calculatedIntersection: true,
- hasBezier: pairInfo.hasBezier,
- hasUnbundled: pairInfo.hasUnbundled,
- eles: pairInfo.eles,
- srcPos: tgtPos,
- tgtPos: srcPos,
- srcW: tgtW,
- srcH: tgtH,
- tgtW: srcW,
- tgtH: srcH,
- srcIntn: tgtIntn,
- tgtIntn: srcIntn,
- srcShape: tgtShape,
- tgtShape: srcShape,
- posPts: {
- x1: posPts.x2,
- y1: posPts.y2,
- x2: posPts.x1,
- y2: posPts.y1
- },
- intersectionPts: {
- x1: intersectionPts.x2,
- y1: intersectionPts.y2,
- x2: intersectionPts.x1,
- y2: intersectionPts.y1
- },
- vector: {
- x: -vector.x,
- y: -vector.y
- },
- vectorNorm: {
- x: -vectorNorm.x,
- y: -vectorNorm.y
- },
- vectorNormInverse: {
- x: -vectorNormInverse.x,
- y: -vectorNormInverse.y
- }
+ LGraphManager.prototype.resetAllEdges = function() {
+ this.allEdges = null;
};
- }
- var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;
- rs.nodesOverlap = passedPairInfo.nodesOverlap;
- rs.srcIntn = passedPairInfo.srcIntn;
- rs.tgtIntn = passedPairInfo.tgtIntn;
- if (hasCompounds && (src2.isParent() || src2.isChild() || tgt2.isParent() || tgt2.isChild()) && (src2.parents().anySame(tgt2) || tgt2.parents().anySame(src2) || src2.same(tgt2) && src2.isParent())) {
- _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
- } else if (src2 === tgt2) {
- _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
- } else if (_curveStyle === "segments") {
- _this.findSegmentsPoints(_edge, passedPairInfo);
- } else if (_curveStyle === "taxi") {
- _this.findTaxiPoints(_edge, passedPairInfo);
- } else if (_curveStyle === "straight" || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {
- _this.findStraightEdgePoints(_edge);
- } else {
- _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);
- }
- _this.findEndpoints(_edge);
- _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);
- _this.checkForInvalidEdgeWarning(_edge);
- _this.storeAllpts(_edge);
- _this.storeEdgeProjections(_edge);
- _this.calculateArrowAngles(_edge);
- _this.recalculateEdgeLabelProjections(_edge);
- _this.calculateLabelAngles(_edge);
- }
- };
- for (var p2 = 0; p2 < pairIds.length; p2++) {
- _loop(p2);
- }
- this.findHaystackPoints(haystackEdges);
- };
- function getPts(pts2) {
- var retPts = [];
- if (pts2 == null) {
- return;
- }
- for (var i3 = 0; i3 < pts2.length; i3 += 2) {
- var x2 = pts2[i3];
- var y2 = pts2[i3 + 1];
- retPts.push({
- x: x2,
- y: y2
- });
- }
- return retPts;
- }
- BRp$c.getSegmentPoints = function(edge) {
- var rs = edge[0]._private.rscratch;
- var type2 = rs.edgeType;
- if (type2 === "segments") {
- this.recalculateRenderedStyle(edge);
- return getPts(rs.segpts);
- }
- };
- BRp$c.getControlPoints = function(edge) {
- var rs = edge[0]._private.rscratch;
- var type2 = rs.edgeType;
- if (type2 === "bezier" || type2 === "multibezier" || type2 === "self" || type2 === "compound") {
- this.recalculateRenderedStyle(edge);
- return getPts(rs.ctrlpts);
- }
- };
- BRp$c.getEdgeMidpoint = function(edge) {
- var rs = edge[0]._private.rscratch;
- this.recalculateRenderedStyle(edge);
- return {
- x: rs.midX,
- y: rs.midY
- };
- };
- var BRp$b = {};
- BRp$b.manualEndptToPx = function(node2, prop) {
- var r = this;
- var npos = node2.position();
- var w2 = node2.outerWidth();
- var h = node2.outerHeight();
- if (prop.value.length === 2) {
- var p2 = [prop.pfValue[0], prop.pfValue[1]];
- if (prop.units[0] === "%") {
- p2[0] = p2[0] * w2;
- }
- if (prop.units[1] === "%") {
- p2[1] = p2[1] * h;
- }
- p2[0] += npos.x;
- p2[1] += npos.y;
- return p2;
- } else {
- var angle = prop.pfValue[0];
- angle = -Math.PI / 2 + angle;
- var l = 2 * Math.max(w2, h);
- var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l];
- return r.nodeShapes[this.getNodeShape(node2)].intersectLine(npos.x, npos.y, w2, h, _p[0], _p[1], 0);
- }
- };
- BRp$b.findEndpoints = function(edge) {
- var r = this;
- var intersect2;
- var source = edge.source()[0];
- var target = edge.target()[0];
- var srcPos = source.position();
- var tgtPos = target.position();
- var tgtArShape = edge.pstyle("target-arrow-shape").value;
- var srcArShape = edge.pstyle("source-arrow-shape").value;
- var tgtDist = edge.pstyle("target-distance-from-node").pfValue;
- var srcDist = edge.pstyle("source-distance-from-node").pfValue;
- var curveStyle = edge.pstyle("curve-style").value;
- var rs = edge._private.rscratch;
- var et = rs.edgeType;
- var taxi = curveStyle === "taxi";
- var self2 = et === "self" || et === "compound";
- var bezier = et === "bezier" || et === "multibezier" || self2;
- var multi = et !== "bezier";
- var lines = et === "straight" || et === "segments";
- var segments = et === "segments";
- var hasEndpts = bezier || multi || lines;
- var overrideEndpts = self2 || taxi;
- var srcManEndpt = edge.pstyle("source-endpoint");
- var srcManEndptVal = overrideEndpts ? "outside-to-node" : srcManEndpt.value;
- var tgtManEndpt = edge.pstyle("target-endpoint");
- var tgtManEndptVal = overrideEndpts ? "outside-to-node" : tgtManEndpt.value;
- rs.srcManEndpt = srcManEndpt;
- rs.tgtManEndpt = tgtManEndpt;
- var p1;
- var p2;
- var p1_i;
- var p2_i;
- if (bezier) {
- var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];
- var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;
- p1 = cpEnd;
- p2 = cpStart;
- } else if (lines) {
- var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2);
- var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2);
- p1 = tgtArrowFromPt;
- p2 = srcArrowFromPt;
- }
- if (tgtManEndptVal === "inside-to-node") {
- intersect2 = [tgtPos.x, tgtPos.y];
- } else if (tgtManEndpt.units) {
- intersect2 = this.manualEndptToPx(target, tgtManEndpt);
- } else if (tgtManEndptVal === "outside-to-line") {
- intersect2 = rs.tgtIntn;
- } else {
- if (tgtManEndptVal === "outside-to-node" || tgtManEndptVal === "outside-to-node-or-label") {
- p1_i = p1;
- } else if (tgtManEndptVal === "outside-to-line" || tgtManEndptVal === "outside-to-line-or-label") {
- p1_i = [srcPos.x, srcPos.y];
- }
- intersect2 = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0);
- if (tgtManEndptVal === "outside-to-node-or-label" || tgtManEndptVal === "outside-to-line-or-label") {
- var trs = target._private.rscratch;
- var lw = trs.labelWidth;
- var lh = trs.labelHeight;
- var lx = trs.labelX;
- var ly = trs.labelY;
- var lw2 = lw / 2;
- var lh2 = lh / 2;
- var va = target.pstyle("text-valign").value;
- if (va === "top") {
- ly -= lh2;
- } else if (va === "bottom") {
- ly += lh2;
- }
- var ha = target.pstyle("text-halign").value;
- if (ha === "left") {
- lx -= lw2;
- } else if (ha === "right") {
- lx += lw2;
- }
- var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);
- if (labelIntersect.length > 0) {
- var refPt = srcPos;
- var intSqdist = sqdist(refPt, array2point(intersect2));
- var labIntSqdist = sqdist(refPt, array2point(labelIntersect));
- var minSqDist = intSqdist;
- if (labIntSqdist < intSqdist) {
- intersect2 = labelIntersect;
- minSqDist = labIntSqdist;
- }
- if (labelIntersect.length > 2) {
- var labInt2SqDist = sqdist(refPt, {
- x: labelIntersect[2],
- y: labelIntersect[3]
- });
- if (labInt2SqDist < minSqDist) {
- intersect2 = [labelIntersect[2], labelIntersect[3]];
+ LGraphManager.prototype.resetAllNodesToApplyGravitation = function() {
+ this.allNodesToApplyGravitation = null;
+ };
+ LGraphManager.prototype.getAllEdges = function() {
+ if (this.allEdges == null) {
+ var edgeList2 = [];
+ var graphs = this.getGraphs();
+ var s2 = graphs.length;
+ for (var i2 = 0; i2 < graphs.length; i2++) {
+ edgeList2 = edgeList2.concat(graphs[i2].getEdges());
+ }
+ edgeList2 = edgeList2.concat(this.edges);
+ this.allEdges = edgeList2;
}
- }
- }
- }
- }
- var arrowEnd = shortenIntersection(intersect2, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist);
- var edgeEnd = shortenIntersection(intersect2, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist);
- rs.endX = edgeEnd[0];
- rs.endY = edgeEnd[1];
- rs.arrowEndX = arrowEnd[0];
- rs.arrowEndY = arrowEnd[1];
- if (srcManEndptVal === "inside-to-node") {
- intersect2 = [srcPos.x, srcPos.y];
- } else if (srcManEndpt.units) {
- intersect2 = this.manualEndptToPx(source, srcManEndpt);
- } else if (srcManEndptVal === "outside-to-line") {
- intersect2 = rs.srcIntn;
- } else {
- if (srcManEndptVal === "outside-to-node" || srcManEndptVal === "outside-to-node-or-label") {
- p2_i = p2;
- } else if (srcManEndptVal === "outside-to-line" || srcManEndptVal === "outside-to-line-or-label") {
- p2_i = [tgtPos.x, tgtPos.y];
- }
- intersect2 = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0);
- if (srcManEndptVal === "outside-to-node-or-label" || srcManEndptVal === "outside-to-line-or-label") {
- var srs = source._private.rscratch;
- var _lw = srs.labelWidth;
- var _lh = srs.labelHeight;
- var _lx = srs.labelX;
- var _ly = srs.labelY;
- var _lw2 = _lw / 2;
- var _lh2 = _lh / 2;
- var _va = source.pstyle("text-valign").value;
- if (_va === "top") {
- _ly -= _lh2;
- } else if (_va === "bottom") {
- _ly += _lh2;
- }
- var _ha = source.pstyle("text-halign").value;
- if (_ha === "left") {
- _lx -= _lw2;
- } else if (_ha === "right") {
- _lx += _lw2;
- }
- var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);
- if (_labelIntersect.length > 0) {
- var _refPt = tgtPos;
- var _intSqdist = sqdist(_refPt, array2point(intersect2));
- var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));
- var _minSqDist = _intSqdist;
- if (_labIntSqdist < _intSqdist) {
- intersect2 = [_labelIntersect[0], _labelIntersect[1]];
- _minSqDist = _labIntSqdist;
- }
- if (_labelIntersect.length > 2) {
- var _labInt2SqDist = sqdist(_refPt, {
- x: _labelIntersect[2],
- y: _labelIntersect[3]
- });
- if (_labInt2SqDist < _minSqDist) {
- intersect2 = [_labelIntersect[2], _labelIntersect[3]];
+ return this.allEdges;
+ };
+ LGraphManager.prototype.getAllNodesToApplyGravitation = function() {
+ return this.allNodesToApplyGravitation;
+ };
+ LGraphManager.prototype.setAllNodesToApplyGravitation = function(nodeList) {
+ if (this.allNodesToApplyGravitation != null) {
+ throw "assert failed";
}
- }
- }
- }
- }
- var arrowStart = shortenIntersection(intersect2, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist);
- var edgeStart = shortenIntersection(intersect2, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist);
- rs.startX = edgeStart[0];
- rs.startY = edgeStart[1];
- rs.arrowStartX = arrowStart[0];
- rs.arrowStartY = arrowStart[1];
- if (hasEndpts) {
- if (!number$12(rs.startX) || !number$12(rs.startY) || !number$12(rs.endX) || !number$12(rs.endY)) {
- rs.badLine = true;
- } else {
- rs.badLine = false;
- }
- }
- };
- BRp$b.getSourceEndpoint = function(edge) {
- var rs = edge[0]._private.rscratch;
- this.recalculateRenderedStyle(edge);
- switch (rs.edgeType) {
- case "haystack":
- return {
- x: rs.haystackPts[0],
- y: rs.haystackPts[1]
- };
- default:
- return {
- x: rs.arrowStartX,
- y: rs.arrowStartY
- };
- }
- };
- BRp$b.getTargetEndpoint = function(edge) {
- var rs = edge[0]._private.rscratch;
- this.recalculateRenderedStyle(edge);
- switch (rs.edgeType) {
- case "haystack":
- return {
- x: rs.haystackPts[2],
- y: rs.haystackPts[3]
- };
- default:
- return {
- x: rs.arrowEndX,
- y: rs.arrowEndY
- };
- }
- };
- var BRp$a = {};
- function pushBezierPts(r, edge, pts2) {
- var qbezierAt$1 = function qbezierAt$12(p1, p22, p3, t4) {
- return qbezierAt(p1, p22, p3, t4);
- };
- var _p = edge._private;
- var bpts = _p.rstyle.bezierPts;
- for (var i3 = 0; i3 < r.bezierProjPcts.length; i3++) {
- var p2 = r.bezierProjPcts[i3];
- bpts.push({
- x: qbezierAt$1(pts2[0], pts2[2], pts2[4], p2),
- y: qbezierAt$1(pts2[1], pts2[3], pts2[5], p2)
- });
- }
- }
- BRp$a.storeEdgeProjections = function(edge) {
- var _p = edge._private;
- var rs = _p.rscratch;
- var et = rs.edgeType;
- _p.rstyle.bezierPts = null;
- _p.rstyle.linePts = null;
- _p.rstyle.haystackPts = null;
- if (et === "multibezier" || et === "bezier" || et === "self" || et === "compound") {
- _p.rstyle.bezierPts = [];
- for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) {
- pushBezierPts(this, edge, rs.allpts.slice(i3, i3 + 6));
- }
- } else if (et === "segments") {
- var lpts = _p.rstyle.linePts = [];
- for (var i3 = 0; i3 + 1 < rs.allpts.length; i3 += 2) {
- lpts.push({
- x: rs.allpts[i3],
- y: rs.allpts[i3 + 1]
- });
- }
- } else if (et === "haystack") {
- var hpts = rs.haystackPts;
- _p.rstyle.haystackPts = [{
- x: hpts[0],
- y: hpts[1]
- }, {
- x: hpts[2],
- y: hpts[3]
- }];
- }
- _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
- };
- BRp$a.recalculateEdgeProjections = function(edges2) {
- this.findEdgeControlPoints(edges2);
- };
- var BRp$9 = {};
- BRp$9.recalculateNodeLabelProjection = function(node2) {
- var content = node2.pstyle("label").strValue;
- if (emptyString(content)) {
- return;
- }
- var textX, textY;
- var _p = node2._private;
- var nodeWidth = node2.width();
- var nodeHeight = node2.height();
- var padding2 = node2.padding();
- var nodePos = node2.position();
- var textHalign = node2.pstyle("text-halign").strValue;
- var textValign = node2.pstyle("text-valign").strValue;
- var rs = _p.rscratch;
- var rstyle = _p.rstyle;
- switch (textHalign) {
- case "left":
- textX = nodePos.x - nodeWidth / 2 - padding2;
- break;
- case "right":
- textX = nodePos.x + nodeWidth / 2 + padding2;
- break;
- default:
- textX = nodePos.x;
- }
- switch (textValign) {
- case "top":
- textY = nodePos.y - nodeHeight / 2 - padding2;
- break;
- case "bottom":
- textY = nodePos.y + nodeHeight / 2 + padding2;
- break;
- default:
- textY = nodePos.y;
- }
- rs.labelX = textX;
- rs.labelY = textY;
- rstyle.labelX = textX;
- rstyle.labelY = textY;
- this.calculateLabelAngles(node2);
- this.applyLabelDimensions(node2);
- };
- var lineAngleFromDelta = function lineAngleFromDelta2(dx, dy) {
- var angle = Math.atan(dy / dx);
- if (dx === 0 && angle < 0) {
- angle = angle * -1;
- }
- return angle;
- };
- var lineAngle = function lineAngle2(p0, p1) {
- var dx = p1.x - p0.x;
- var dy = p1.y - p0.y;
- return lineAngleFromDelta(dx, dy);
- };
- var bezierAngle = function bezierAngle2(p0, p1, p2, t4) {
- var t02 = bound(0, t4 - 1e-3, 1);
- var t12 = bound(0, t4 + 1e-3, 1);
- var lp0 = qbezierPtAt(p0, p1, p2, t02);
- var lp1 = qbezierPtAt(p0, p1, p2, t12);
- return lineAngle(lp0, lp1);
- };
- BRp$9.recalculateEdgeLabelProjections = function(edge) {
- var p2;
- var _p = edge._private;
- var rs = _p.rscratch;
- var r = this;
- var content = {
- mid: edge.pstyle("label").strValue,
- source: edge.pstyle("source-label").strValue,
- target: edge.pstyle("target-label").strValue
- };
- if (content.mid || content.source || content.target)
- ;
- else {
- return;
- }
- p2 = {
- x: rs.midX,
- y: rs.midY
- };
- var setRs = function setRs2(propName, prefix, value) {
- setPrefixedProperty(_p.rscratch, propName, prefix, value);
- setPrefixedProperty(_p.rstyle, propName, prefix, value);
- };
- setRs("labelX", null, p2.x);
- setRs("labelY", null, p2.y);
- var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);
- setRs("labelAutoAngle", null, midAngle);
- var createControlPointInfo = function createControlPointInfo2() {
- if (createControlPointInfo2.cache) {
- return createControlPointInfo2.cache;
- }
- var ctrlpts = [];
- for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) {
- var p0 = {
- x: rs.allpts[i3],
- y: rs.allpts[i3 + 1]
- };
- var p1 = {
- x: rs.allpts[i3 + 2],
- y: rs.allpts[i3 + 3]
- };
- var p22 = {
- x: rs.allpts[i3 + 4],
- y: rs.allpts[i3 + 5]
- };
- ctrlpts.push({
- p0,
- p1,
- p2: p22,
- startDist: 0,
- length: 0,
- segments: []
- });
- }
- var bpts = _p.rstyle.bezierPts;
- var nProjs = r.bezierProjPcts.length;
- function addSegment(cp2, p02, p12, t02, t12) {
- var length2 = dist2(p02, p12);
- var prevSegment = cp2.segments[cp2.segments.length - 1];
- var segment = {
- p0: p02,
- p1: p12,
- t0: t02,
- t1: t12,
- startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,
- length: length2
- };
- cp2.segments.push(segment);
- cp2.length += length2;
- }
- for (var _i = 0; _i < ctrlpts.length; _i++) {
- var cp = ctrlpts[_i];
- var prevCp = ctrlpts[_i - 1];
- if (prevCp) {
- cp.startDist = prevCp.startDist + prevCp.length;
- }
- addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]);
- for (var j = 0; j < nProjs - 1; j++) {
- addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]);
- }
- addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1);
- }
- return createControlPointInfo2.cache = ctrlpts;
- };
- var calculateEndProjection = function calculateEndProjection2(prefix) {
- var angle;
- var isSrc = prefix === "source";
- if (!content[prefix]) {
- return;
- }
- var offset = edge.pstyle(prefix + "-text-offset").pfValue;
- switch (rs.edgeType) {
- case "self":
- case "compound":
- case "bezier":
- case "multibezier": {
- var cps = createControlPointInfo();
- var selected;
- var startDist = 0;
- var totalDist = 0;
- for (var i3 = 0; i3 < cps.length; i3++) {
- var _cp = cps[isSrc ? i3 : cps.length - 1 - i3];
- for (var j = 0; j < _cp.segments.length; j++) {
- var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j];
- var lastSeg = i3 === cps.length - 1 && j === _cp.segments.length - 1;
- startDist = totalDist;
- totalDist += _seg.length;
- if (totalDist >= offset || lastSeg) {
- selected = {
- cp: _cp,
- segment: _seg
- };
- break;
- }
+ this.allNodesToApplyGravitation = nodeList;
+ };
+ LGraphManager.prototype.getRoot = function() {
+ return this.rootGraph;
+ };
+ LGraphManager.prototype.setRootGraph = function(graph) {
+ if (graph.getGraphManager() != this) {
+ throw "Root not in this graph mgr!";
}
- if (selected) {
- break;
+ this.rootGraph = graph;
+ if (graph.parent == null) {
+ graph.parent = this.layout.newNode("Root node");
}
- }
- var cp = selected.cp;
- var seg = selected.segment;
- var tSegment = (offset - startDist) / seg.length;
- var segDt = seg.t1 - seg.t0;
- var t4 = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;
- t4 = bound(0, t4, 1);
- p2 = qbezierPtAt(cp.p0, cp.p1, cp.p2, t4);
- angle = bezierAngle(cp.p0, cp.p1, cp.p2, t4);
- break;
- }
- case "straight":
- case "segments":
- case "haystack": {
- var d = 0, di, d0;
- var p0, p1;
- var l = rs.allpts.length;
- for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) {
- if (isSrc) {
- p0 = {
- x: rs.allpts[_i2],
- y: rs.allpts[_i2 + 1]
- };
- p1 = {
- x: rs.allpts[_i2 + 2],
- y: rs.allpts[_i2 + 3]
- };
- } else {
- p0 = {
- x: rs.allpts[l - 2 - _i2],
- y: rs.allpts[l - 1 - _i2]
- };
- p1 = {
- x: rs.allpts[l - 4 - _i2],
- y: rs.allpts[l - 3 - _i2]
- };
+ };
+ LGraphManager.prototype.getLayout = function() {
+ return this.layout;
+ };
+ LGraphManager.prototype.isOneAncestorOfOther = function(firstNode, secondNode) {
+ if (!(firstNode != null && secondNode != null)) {
+ throw "assert failed";
}
- di = dist2(p0, p1);
- d0 = d;
- d += di;
- if (d >= offset) {
- break;
+ if (firstNode == secondNode) {
+ return true;
}
- }
- var pD = offset - d0;
- var _t = pD / di;
- _t = bound(0, _t, 1);
- p2 = lineAt(p0, p1, _t);
- angle = lineAngle(p0, p1);
- break;
- }
- }
- setRs("labelX", prefix, p2.x);
- setRs("labelY", prefix, p2.y);
- setRs("labelAutoAngle", prefix, angle);
- };
- calculateEndProjection("source");
- calculateEndProjection("target");
- this.applyLabelDimensions(edge);
- };
- BRp$9.applyLabelDimensions = function(ele) {
- this.applyPrefixedLabelDimensions(ele);
- if (ele.isEdge()) {
- this.applyPrefixedLabelDimensions(ele, "source");
- this.applyPrefixedLabelDimensions(ele, "target");
- }
- };
- BRp$9.applyPrefixedLabelDimensions = function(ele, prefix) {
- var _p = ele._private;
- var text2 = this.getLabelText(ele, prefix);
- var labelDims = this.calculateLabelDimensions(ele, text2);
- var lineHeight = ele.pstyle("line-height").pfValue;
- var textWrap = ele.pstyle("text-wrap").strValue;
- var lines = getPrefixedProperty(_p.rscratch, "labelWrapCachedLines", prefix) || [];
- var numLines = textWrap !== "wrap" ? 1 : Math.max(lines.length, 1);
- var normPerLineHeight = labelDims.height / numLines;
- var labelLineHeight = normPerLineHeight * lineHeight;
- var width2 = labelDims.width;
- var height2 = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;
- setPrefixedProperty(_p.rstyle, "labelWidth", prefix, width2);
- setPrefixedProperty(_p.rscratch, "labelWidth", prefix, width2);
- setPrefixedProperty(_p.rstyle, "labelHeight", prefix, height2);
- setPrefixedProperty(_p.rscratch, "labelHeight", prefix, height2);
- setPrefixedProperty(_p.rscratch, "labelLineHeight", prefix, labelLineHeight);
- };
- BRp$9.getLabelText = function(ele, prefix) {
- var _p = ele._private;
- var pfd = prefix ? prefix + "-" : "";
- var text2 = ele.pstyle(pfd + "label").strValue;
- var textTransform = ele.pstyle("text-transform").value;
- var rscratch = function rscratch2(propName, value) {
- if (value) {
- setPrefixedProperty(_p.rscratch, propName, prefix, value);
- return value;
- } else {
- return getPrefixedProperty(_p.rscratch, propName, prefix);
- }
- };
- if (!text2) {
- return "";
- }
- if (textTransform == "none")
- ;
- else if (textTransform == "uppercase") {
- text2 = text2.toUpperCase();
- } else if (textTransform == "lowercase") {
- text2 = text2.toLowerCase();
- }
- var wrapStyle = ele.pstyle("text-wrap").value;
- if (wrapStyle === "wrap") {
- var labelKey = rscratch("labelKey");
- if (labelKey != null && rscratch("labelWrapKey") === labelKey) {
- return rscratch("labelWrapCachedText");
- }
- var zwsp = "";
- var lines = text2.split("\n");
- var maxW = ele.pstyle("text-max-width").pfValue;
- var overflow = ele.pstyle("text-overflow-wrap").value;
- var overflowAny = overflow === "anywhere";
- var wrappedLines = [];
- var wordsRegex = /[\s\u200b]+/;
- var wordSeparator = overflowAny ? "" : " ";
- for (var l = 0; l < lines.length; l++) {
- var line2 = lines[l];
- var lineDims = this.calculateLabelDimensions(ele, line2);
- var lineW = lineDims.width;
- if (overflowAny) {
- var processedLine = line2.split("").join(zwsp);
- line2 = processedLine;
- }
- if (lineW > maxW) {
- var words = line2.split(wordsRegex);
- var subline = "";
- for (var w2 = 0; w2 < words.length; w2++) {
- var word = words[w2];
- var testLine = subline.length === 0 ? word : subline + wordSeparator + word;
- var testDims = this.calculateLabelDimensions(ele, testLine);
- var testW = testDims.width;
- if (testW <= maxW) {
- subline += word + wordSeparator;
- } else {
- if (subline) {
- wrappedLines.push(subline);
+ var ownerGraph = firstNode.getOwner();
+ var parentNode;
+ do {
+ parentNode = ownerGraph.getParent();
+ if (parentNode == null) {
+ break;
}
- subline = word + wordSeparator;
- }
- }
- if (!subline.match(/^[\s\u200b]+$/)) {
- wrappedLines.push(subline);
- }
- } else {
- wrappedLines.push(line2);
- }
- }
- rscratch("labelWrapCachedLines", wrappedLines);
- text2 = rscratch("labelWrapCachedText", wrappedLines.join("\n"));
- rscratch("labelWrapKey", labelKey);
- } else if (wrapStyle === "ellipsis") {
- var _maxW = ele.pstyle("text-max-width").pfValue;
- var ellipsized = "";
- var ellipsis = "…";
- var incLastCh = false;
- if (this.calculateLabelDimensions(ele, text2).width < _maxW) {
- return text2;
- }
- for (var i3 = 0; i3 < text2.length; i3++) {
- var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text2[i3] + ellipsis).width;
- if (widthWithNextCh > _maxW) {
- break;
- }
- ellipsized += text2[i3];
- if (i3 === text2.length - 1) {
- incLastCh = true;
- }
- }
- if (!incLastCh) {
- ellipsized += ellipsis;
- }
- return ellipsized;
- }
- return text2;
- };
- BRp$9.getLabelJustification = function(ele) {
- var justification = ele.pstyle("text-justification").strValue;
- var textHalign = ele.pstyle("text-halign").strValue;
- if (justification === "auto") {
- if (ele.isNode()) {
- switch (textHalign) {
- case "left":
- return "right";
- case "right":
- return "left";
- default:
- return "center";
- }
- } else {
- return "center";
- }
- } else {
- return justification;
- }
- };
- BRp$9.calculateLabelDimensions = function(ele, text2) {
- var r = this;
- var cacheKey = hashString(text2, ele._private.labelDimsKey);
- var cache2 = r.labelDimCache || (r.labelDimCache = []);
- var existingVal = cache2[cacheKey];
- if (existingVal != null) {
- return existingVal;
- }
- var padding2 = 0;
- var fStyle = ele.pstyle("font-style").strValue;
- var size2 = ele.pstyle("font-size").pfValue;
- var family = ele.pstyle("font-family").strValue;
- var weight = ele.pstyle("font-weight").strValue;
- var canvas = this.labelCalcCanvas;
- var c2d = this.labelCalcCanvasContext;
- if (!canvas) {
- canvas = this.labelCalcCanvas = document.createElement("canvas");
- c2d = this.labelCalcCanvasContext = canvas.getContext("2d");
- var ds = canvas.style;
- ds.position = "absolute";
- ds.left = "-9999px";
- ds.top = "-9999px";
- ds.zIndex = "-1";
- ds.visibility = "hidden";
- ds.pointerEvents = "none";
- }
- c2d.font = "".concat(fStyle, " ").concat(weight, " ").concat(size2, "px ").concat(family);
- var width2 = 0;
- var height2 = 0;
- var lines = text2.split("\n");
- for (var i3 = 0; i3 < lines.length; i3++) {
- var line2 = lines[i3];
- var metrics = c2d.measureText(line2);
- var w2 = Math.ceil(metrics.width);
- var h = size2;
- width2 = Math.max(w2, width2);
- height2 += h;
- }
- width2 += padding2;
- height2 += padding2;
- return cache2[cacheKey] = {
- width: width2,
- height: height2
- };
- };
- BRp$9.calculateLabelAngle = function(ele, prefix) {
- var _p = ele._private;
- var rs = _p.rscratch;
- var isEdge = ele.isEdge();
- var prefixDash = prefix ? prefix + "-" : "";
- var rot = ele.pstyle(prefixDash + "text-rotation");
- var rotStr = rot.strValue;
- if (rotStr === "none") {
- return 0;
- } else if (isEdge && rotStr === "autorotate") {
- return rs.labelAutoAngle;
- } else if (rotStr === "autorotate") {
- return 0;
- } else {
- return rot.pfValue;
- }
- };
- BRp$9.calculateLabelAngles = function(ele) {
- var r = this;
- var isEdge = ele.isEdge();
- var _p = ele._private;
- var rs = _p.rscratch;
- rs.labelAngle = r.calculateLabelAngle(ele);
- if (isEdge) {
- rs.sourceLabelAngle = r.calculateLabelAngle(ele, "source");
- rs.targetLabelAngle = r.calculateLabelAngle(ele, "target");
- }
- };
- var BRp$8 = {};
- var TOO_SMALL_CUT_RECT = 28;
- var warnedCutRect = false;
- BRp$8.getNodeShape = function(node2) {
- var r = this;
- var shape = node2.pstyle("shape").value;
- if (shape === "cutrectangle" && (node2.width() < TOO_SMALL_CUT_RECT || node2.height() < TOO_SMALL_CUT_RECT)) {
- if (!warnedCutRect) {
- warn("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead");
- warnedCutRect = true;
- }
- return "rectangle";
- }
- if (node2.isParent()) {
- if (shape === "rectangle" || shape === "roundrectangle" || shape === "round-rectangle" || shape === "cutrectangle" || shape === "cut-rectangle" || shape === "barrel") {
- return shape;
- } else {
- return "rectangle";
- }
- }
- if (shape === "polygon") {
- var points = node2.pstyle("shape-polygon-points").value;
- return r.nodeShapes.makePolygon(points).name;
- }
- return shape;
- };
- var BRp$7 = {};
- BRp$7.registerCalculationListeners = function() {
- var cy = this.cy;
- var elesToUpdate = cy.collection();
- var r = this;
- var enqueue = function enqueue2(eles) {
- var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- elesToUpdate.merge(eles);
- if (dirtyStyleCaches) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var _p = ele._private;
- var rstyle = _p.rstyle;
- rstyle.clean = false;
- rstyle.cleanConnected = false;
- }
- }
- };
- r.binder(cy).on("bounds.* dirty.*", function onDirtyBounds(e) {
- var ele = e.target;
- enqueue(ele);
- }).on("style.* background.*", function onDirtyStyle(e) {
- var ele = e.target;
- enqueue(ele, false);
- });
- var updateEleCalcs = function updateEleCalcs2(willDraw) {
- if (willDraw) {
- var fns = r.onUpdateEleCalcsFns;
- elesToUpdate.cleanStyle();
- for (var i3 = 0; i3 < elesToUpdate.length; i3++) {
- var ele = elesToUpdate[i3];
- var rstyle = ele._private.rstyle;
- if (ele.isNode() && !rstyle.cleanConnected) {
- enqueue(ele.connectedEdges());
- rstyle.cleanConnected = true;
- }
- }
- if (fns) {
- for (var _i = 0; _i < fns.length; _i++) {
- var fn2 = fns[_i];
- fn2(willDraw, elesToUpdate);
- }
- }
- r.recalculateRenderedStyle(elesToUpdate);
- elesToUpdate = cy.collection();
- }
- };
- r.flushRenderedStyleQueue = function() {
- updateEleCalcs(true);
- };
- r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs);
- };
- BRp$7.onUpdateEleCalcs = function(fn2) {
- var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];
- fns.push(fn2);
- };
- BRp$7.recalculateRenderedStyle = function(eles, useCache) {
- var isCleanConnected = function isCleanConnected2(ele2) {
- return ele2._private.rstyle.cleanConnected;
- };
- var edges2 = [];
- var nodes2 = [];
- if (this.destroyed) {
- return;
- }
- if (useCache === void 0) {
- useCache = true;
- }
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var _p = ele._private;
- var rstyle = _p.rstyle;
- if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {
- rstyle.clean = false;
- }
- if (useCache && rstyle.clean || ele.removed()) {
- continue;
- }
- if (ele.pstyle("display").value === "none") {
- continue;
- }
- if (_p.group === "nodes") {
- nodes2.push(ele);
- } else {
- edges2.push(ele);
- }
- rstyle.clean = true;
- }
- for (var _i2 = 0; _i2 < nodes2.length; _i2++) {
- var _ele = nodes2[_i2];
- var _p2 = _ele._private;
- var _rstyle = _p2.rstyle;
- var pos = _ele.position();
- this.recalculateNodeLabelProjection(_ele);
- _rstyle.nodeX = pos.x;
- _rstyle.nodeY = pos.y;
- _rstyle.nodeW = _ele.pstyle("width").pfValue;
- _rstyle.nodeH = _ele.pstyle("height").pfValue;
- }
- this.recalculateEdgeProjections(edges2);
- for (var _i3 = 0; _i3 < edges2.length; _i3++) {
- var _ele2 = edges2[_i3];
- var _p3 = _ele2._private;
- var _rstyle2 = _p3.rstyle;
- var rs = _p3.rscratch;
- _rstyle2.srcX = rs.arrowStartX;
- _rstyle2.srcY = rs.arrowStartY;
- _rstyle2.tgtX = rs.arrowEndX;
- _rstyle2.tgtY = rs.arrowEndY;
- _rstyle2.midX = rs.midX;
- _rstyle2.midY = rs.midY;
- _rstyle2.labelAngle = rs.labelAngle;
- _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;
- _rstyle2.targetLabelAngle = rs.targetLabelAngle;
- }
- };
- var BRp$6 = {};
- BRp$6.updateCachedGrabbedEles = function() {
- var eles = this.cachedZSortedEles;
- if (!eles) {
- return;
- }
- eles.drag = [];
- eles.nondrag = [];
- var grabTargets = [];
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var rs = ele._private.rscratch;
- if (ele.grabbed() && !ele.isParent()) {
- grabTargets.push(ele);
- } else if (rs.inDragLayer) {
- eles.drag.push(ele);
- } else {
- eles.nondrag.push(ele);
- }
- }
- for (var i3 = 0; i3 < grabTargets.length; i3++) {
- var ele = grabTargets[i3];
- eles.drag.push(ele);
- }
- };
- BRp$6.invalidateCachedZSortedEles = function() {
- this.cachedZSortedEles = null;
- };
- BRp$6.getCachedZSortedEles = function(forceRecalc) {
- if (forceRecalc || !this.cachedZSortedEles) {
- var eles = this.cy.mutableElements().toArray();
- eles.sort(zIndexSort);
- eles.interactive = eles.filter(function(ele) {
- return ele.interactive();
- });
- this.cachedZSortedEles = eles;
- this.updateCachedGrabbedEles();
- } else {
- eles = this.cachedZSortedEles;
- }
- return eles;
- };
- var BRp$5 = {};
- [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function(props) {
- extend2(BRp$5, props);
- });
- var BRp$4 = {};
- BRp$4.getCachedImage = function(url, crossOrigin, onLoad) {
- var r = this;
- var imageCache = r.imageCache = r.imageCache || {};
- var cache2 = imageCache[url];
- if (cache2) {
- if (!cache2.image.complete) {
- cache2.image.addEventListener("load", onLoad);
- }
- return cache2.image;
- } else {
- cache2 = imageCache[url] = imageCache[url] || {};
- var image = cache2.image = new Image();
- image.addEventListener("load", onLoad);
- image.addEventListener("error", function() {
- image.error = true;
- });
- var dataUriPrefix = "data:";
- var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;
- if (!isDataUri) {
- image.crossOrigin = crossOrigin;
- }
- image.src = url;
- return image;
- }
- };
- var BRp$3 = {};
- BRp$3.registerBinding = function(target, event2, handler, useCapture) {
- var args = Array.prototype.slice.apply(arguments, [1]);
- var b = this.binder(target);
- return b.on.apply(b, args);
- };
- BRp$3.binder = function(tgt) {
- var r = this;
- var tgtIsDom = tgt === window || tgt === document || tgt === document.body || domElement(tgt);
- if (r.supportsPassiveEvents == null) {
- var supportsPassive = false;
- try {
- var opts = Object.defineProperty({}, "passive", {
- get: function get3() {
- supportsPassive = true;
- return true;
- }
- });
- window.addEventListener("test", null, opts);
- } catch (err) {
- }
- r.supportsPassiveEvents = supportsPassive;
- }
- var on = function on2(event2, handler, useCapture) {
- var args = Array.prototype.slice.call(arguments);
- if (tgtIsDom && r.supportsPassiveEvents) {
- args[2] = {
- capture: useCapture != null ? useCapture : false,
- passive: false,
- once: false
- };
- }
- r.bindings.push({
- target: tgt,
- args
- });
- (tgt.addEventListener || tgt.on).apply(tgt, args);
- return this;
- };
- return {
- on,
- addEventListener: on,
- addListener: on,
- bind: on
- };
- };
- BRp$3.nodeIsDraggable = function(node2) {
- return node2 && node2.isNode() && !node2.locked() && node2.grabbable();
- };
- BRp$3.nodeIsGrabbable = function(node2) {
- return this.nodeIsDraggable(node2) && node2.interactive();
- };
- BRp$3.load = function() {
- var r = this;
- var isSelected = function isSelected2(ele) {
- return ele.selected();
- };
- var triggerEvents = function triggerEvents2(target, names, e, position3) {
- if (target == null) {
- target = r.cy;
- }
- for (var i3 = 0; i3 < names.length; i3++) {
- var name2 = names[i3];
- target.emit({
- originalEvent: e,
- type: name2,
- position: position3
- });
- }
- };
- var isMultSelKeyDown = function isMultSelKeyDown2(e) {
- return e.shiftKey || e.metaKey || e.ctrlKey;
- };
- var allowPanningPassthrough = function allowPanningPassthrough2(down, downs) {
- var allowPassthrough = true;
- if (r.cy.hasCompoundNodes() && down && down.pannable()) {
- for (var i3 = 0; downs && i3 < downs.length; i3++) {
- var down = downs[i3];
- if (down.isNode() && down.isParent() && !down.pannable()) {
- allowPassthrough = false;
- break;
- }
- }
- } else {
- allowPassthrough = true;
- }
- return allowPassthrough;
- };
- var setGrabbed = function setGrabbed2(ele) {
- ele[0]._private.grabbed = true;
- };
- var setFreed = function setFreed2(ele) {
- ele[0]._private.grabbed = false;
- };
- var setInDragLayer = function setInDragLayer2(ele) {
- ele[0]._private.rscratch.inDragLayer = true;
- };
- var setOutDragLayer = function setOutDragLayer2(ele) {
- ele[0]._private.rscratch.inDragLayer = false;
- };
- var setGrabTarget = function setGrabTarget2(ele) {
- ele[0]._private.rscratch.isGrabTarget = true;
- };
- var removeGrabTarget = function removeGrabTarget2(ele) {
- ele[0]._private.rscratch.isGrabTarget = false;
- };
- var addToDragList = function addToDragList2(ele, opts) {
- var list = opts.addToList;
- var listHasEle = list.has(ele);
- if (!listHasEle && ele.grabbable() && !ele.locked()) {
- list.merge(ele);
- setGrabbed(ele);
- }
- };
- var addDescendantsToDrag = function addDescendantsToDrag2(node2, opts) {
- if (!node2.cy().hasCompoundNodes()) {
- return;
- }
- if (opts.inDragLayer == null && opts.addToList == null) {
- return;
- }
- var innerNodes = node2.descendants();
- if (opts.inDragLayer) {
- innerNodes.forEach(setInDragLayer);
- innerNodes.connectedEdges().forEach(setInDragLayer);
- }
- if (opts.addToList) {
- addToDragList(innerNodes, opts);
- }
- };
- var addNodesToDrag = function addNodesToDrag2(nodes2, opts) {
- opts = opts || {};
- var hasCompoundNodes = nodes2.cy().hasCompoundNodes();
- if (opts.inDragLayer) {
- nodes2.forEach(setInDragLayer);
- nodes2.neighborhood().stdFilter(function(ele) {
- return !hasCompoundNodes || ele.isEdge();
- }).forEach(setInDragLayer);
- }
- if (opts.addToList) {
- nodes2.forEach(function(ele) {
- addToDragList(ele, opts);
- });
- }
- addDescendantsToDrag(nodes2, opts);
- updateAncestorsInDragLayer(nodes2, {
- inDragLayer: opts.inDragLayer
- });
- r.updateCachedGrabbedEles();
- };
- var addNodeToDrag = addNodesToDrag;
- var freeDraggedElements = function freeDraggedElements2(grabbedEles) {
- if (!grabbedEles) {
- return;
- }
- r.getCachedZSortedEles().forEach(function(ele) {
- setFreed(ele);
- setOutDragLayer(ele);
- removeGrabTarget(ele);
- });
- r.updateCachedGrabbedEles();
- };
- var updateAncestorsInDragLayer = function updateAncestorsInDragLayer2(node2, opts) {
- if (opts.inDragLayer == null && opts.addToList == null) {
- return;
- }
- if (!node2.cy().hasCompoundNodes()) {
- return;
- }
- var parent = node2.ancestors().orphans();
- if (parent.same(node2)) {
- return;
- }
- var nodes2 = parent.descendants().spawnSelf().merge(parent).unmerge(node2).unmerge(node2.descendants());
- var edges2 = nodes2.connectedEdges();
- if (opts.inDragLayer) {
- edges2.forEach(setInDragLayer);
- nodes2.forEach(setInDragLayer);
- }
- if (opts.addToList) {
- nodes2.forEach(function(ele) {
- addToDragList(ele, opts);
- });
- }
- };
- var blurActiveDomElement = function blurActiveDomElement2() {
- if (document.activeElement != null && document.activeElement.blur != null) {
- document.activeElement.blur();
- }
- };
- var haveMutationsApi = typeof MutationObserver !== "undefined";
- var haveResizeObserverApi = typeof ResizeObserver !== "undefined";
- if (haveMutationsApi) {
- r.removeObserver = new MutationObserver(function(mutns) {
- for (var i3 = 0; i3 < mutns.length; i3++) {
- var mutn = mutns[i3];
- var rNodes = mutn.removedNodes;
- if (rNodes) {
- for (var j = 0; j < rNodes.length; j++) {
- var rNode = rNodes[j];
- if (rNode === r.container) {
- r.destroy();
+ if (parentNode == secondNode) {
+ return true;
+ }
+ ownerGraph = parentNode.getOwner();
+ if (ownerGraph == null) {
+ break;
+ }
+ } while (true);
+ ownerGraph = secondNode.getOwner();
+ do {
+ parentNode = ownerGraph.getParent();
+ if (parentNode == null) {
+ break;
+ }
+ if (parentNode == firstNode) {
+ return true;
+ }
+ ownerGraph = parentNode.getOwner();
+ if (ownerGraph == null) {
break;
}
+ } while (true);
+ return false;
+ };
+ LGraphManager.prototype.calcLowestCommonAncestors = function() {
+ var edge;
+ var sourceNode;
+ var targetNode;
+ var sourceAncestorGraph;
+ var targetAncestorGraph;
+ var edges5 = this.getAllEdges();
+ var s2 = edges5.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ edge = edges5[i2];
+ sourceNode = edge.source;
+ targetNode = edge.target;
+ edge.lca = null;
+ edge.sourceInLca = sourceNode;
+ edge.targetInLca = targetNode;
+ if (sourceNode == targetNode) {
+ edge.lca = sourceNode.getOwner();
+ continue;
+ }
+ sourceAncestorGraph = sourceNode.getOwner();
+ while (edge.lca == null) {
+ edge.targetInLca = targetNode;
+ targetAncestorGraph = targetNode.getOwner();
+ while (edge.lca == null) {
+ if (targetAncestorGraph == sourceAncestorGraph) {
+ edge.lca = targetAncestorGraph;
+ break;
+ }
+ if (targetAncestorGraph == this.rootGraph) {
+ break;
+ }
+ if (edge.lca != null) {
+ throw "assert failed";
+ }
+ edge.targetInLca = targetAncestorGraph.getParent();
+ targetAncestorGraph = edge.targetInLca.getOwner();
+ }
+ if (sourceAncestorGraph == this.rootGraph) {
+ break;
+ }
+ if (edge.lca == null) {
+ edge.sourceInLca = sourceAncestorGraph.getParent();
+ sourceAncestorGraph = edge.sourceInLca.getOwner();
+ }
+ }
+ if (edge.lca == null) {
+ throw "assert failed";
+ }
}
- }
- }
- });
- if (r.container.parentNode) {
- r.removeObserver.observe(r.container.parentNode, {
- childList: true
- });
- }
- } else {
- r.registerBinding(r.container, "DOMNodeRemoved", function(e) {
- r.destroy();
- });
- }
- var onResize = debounce_1(function() {
- r.cy.resize();
- }, 100);
- if (haveMutationsApi) {
- r.styleObserver = new MutationObserver(onResize);
- r.styleObserver.observe(r.container, {
- attributes: true
- });
- }
- r.registerBinding(window, "resize", onResize);
- if (haveResizeObserverApi) {
- r.resizeObserver = new ResizeObserver(onResize);
- r.resizeObserver.observe(r.container);
- }
- var forEachUp = function forEachUp2(domEle, fn2) {
- while (domEle != null) {
- fn2(domEle);
- domEle = domEle.parentNode;
- }
- };
- var invalidateCoords = function invalidateCoords2() {
- r.invalidateContainerClientCoordsCache();
- };
- forEachUp(r.container, function(domEle) {
- r.registerBinding(domEle, "transitionend", invalidateCoords);
- r.registerBinding(domEle, "animationend", invalidateCoords);
- r.registerBinding(domEle, "scroll", invalidateCoords);
- });
- r.registerBinding(r.container, "contextmenu", function(e) {
- e.preventDefault();
- });
- var inBoxSelection = function inBoxSelection2() {
- return r.selection[4] !== 0;
- };
- var eventInContainer = function eventInContainer2(e) {
- var containerPageCoords = r.findContainerClientCoords();
- var x2 = containerPageCoords[0];
- var y2 = containerPageCoords[1];
- var width2 = containerPageCoords[2];
- var height2 = containerPageCoords[3];
- var positions = e.touches ? e.touches : [e];
- var atLeastOnePosInside = false;
- for (var i3 = 0; i3 < positions.length; i3++) {
- var p2 = positions[i3];
- if (x2 <= p2.clientX && p2.clientX <= x2 + width2 && y2 <= p2.clientY && p2.clientY <= y2 + height2) {
- atLeastOnePosInside = true;
- break;
- }
- }
- if (!atLeastOnePosInside) {
- return false;
- }
- var container = r.container;
- var target = e.target;
- var tParent = target.parentNode;
- var containerIsTarget = false;
- while (tParent) {
- if (tParent === container) {
- containerIsTarget = true;
- break;
- }
- tParent = tParent.parentNode;
- }
- if (!containerIsTarget) {
- return false;
- }
- return true;
- };
- r.registerBinding(r.container, "mousedown", function mousedownHandler(e) {
- if (!eventInContainer(e)) {
- return;
- }
- e.preventDefault();
- blurActiveDomElement();
- r.hoverData.capture = true;
- r.hoverData.which = e.which;
- var cy = r.cy;
- var gpos = [e.clientX, e.clientY];
- var pos = r.projectIntoViewport(gpos[0], gpos[1]);
- var select2 = r.selection;
- var nears = r.findNearestElements(pos[0], pos[1], true, false);
- var near = nears[0];
- var draggedElements = r.dragData.possibleDragElements;
- r.hoverData.mdownPos = pos;
- r.hoverData.mdownGPos = gpos;
- var checkForTaphold = function checkForTaphold2() {
- r.hoverData.tapholdCancelled = false;
- clearTimeout(r.hoverData.tapholdTimeout);
- r.hoverData.tapholdTimeout = setTimeout(function() {
- if (r.hoverData.tapholdCancelled) {
- return;
- } else {
- var ele = r.hoverData.down;
- if (ele) {
- ele.emit({
- originalEvent: e,
- type: "taphold",
- position: {
- x: pos[0],
- y: pos[1]
+ };
+ LGraphManager.prototype.calcLowestCommonAncestor = function(firstNode, secondNode) {
+ if (firstNode == secondNode) {
+ return firstNode.getOwner();
+ }
+ var firstOwnerGraph = firstNode.getOwner();
+ do {
+ if (firstOwnerGraph == null) {
+ break;
+ }
+ var secondOwnerGraph = secondNode.getOwner();
+ do {
+ if (secondOwnerGraph == null) {
+ break;
}
- });
- } else {
- cy.emit({
- originalEvent: e,
- type: "taphold",
- position: {
- x: pos[0],
- y: pos[1]
+ if (secondOwnerGraph == firstOwnerGraph) {
+ return secondOwnerGraph;
}
- });
+ secondOwnerGraph = secondOwnerGraph.getParent().getOwner();
+ } while (true);
+ firstOwnerGraph = firstOwnerGraph.getParent().getOwner();
+ } while (true);
+ return firstOwnerGraph;
+ };
+ LGraphManager.prototype.calcInclusionTreeDepths = function(graph, depth) {
+ if (graph == null && depth == null) {
+ graph = this.rootGraph;
+ depth = 1;
}
- }
- }, r.tapholdDuration);
- };
- if (e.which == 3) {
- r.hoverData.cxtStarted = true;
- var cxtEvt = {
- originalEvent: e,
- type: "cxttapstart",
- position: {
- x: pos[0],
- y: pos[1]
- }
- };
- if (near) {
- near.activate();
- near.emit(cxtEvt);
- r.hoverData.down = near;
- } else {
- cy.emit(cxtEvt);
- }
- r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();
- r.hoverData.cxtDragged = false;
- } else if (e.which == 1) {
- if (near) {
- near.activate();
- }
- {
- if (near != null) {
- if (r.nodeIsGrabbable(near)) {
- var makeEvent = function makeEvent2(type2) {
- return {
- originalEvent: e,
- type: type2,
- position: {
- x: pos[0],
- y: pos[1]
- }
- };
- };
- var triggerGrab = function triggerGrab2(ele) {
- ele.emit(makeEvent("grab"));
- };
- setGrabTarget(near);
- if (!near.selected()) {
- draggedElements = r.dragData.possibleDragElements = cy.collection();
- addNodeToDrag(near, {
- addToList: draggedElements
- });
- near.emit(makeEvent("grabon")).emit(makeEvent("grab"));
- } else {
- draggedElements = r.dragData.possibleDragElements = cy.collection();
- var selectedNodes = cy.$(function(ele) {
- return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele);
- });
- addNodesToDrag(selectedNodes, {
- addToList: draggedElements
- });
- near.emit(makeEvent("grabon"));
- selectedNodes.forEach(triggerGrab);
+ var node2;
+ var nodes6 = graph.getNodes();
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ node2 = nodes6[i2];
+ node2.inclusionTreeDepth = depth;
+ if (node2.child != null) {
+ this.calcInclusionTreeDepths(node2.child, depth + 1);
+ }
+ }
+ };
+ LGraphManager.prototype.includesInvalidEdge = function() {
+ var edge;
+ var s2 = this.edges.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ edge = this.edges[i2];
+ if (this.isOneAncestorOfOther(edge.source, edge.target)) {
+ return true;
}
- r.redrawHint("eles", true);
- r.redrawHint("drag", true);
}
+ return false;
+ };
+ module3.exports = LGraphManager;
+ },
+ /* 7 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LayoutConstants = __webpack_require__(0);
+ function FDLayoutConstants() {
}
- r.hoverData.down = near;
- r.hoverData.downs = nears;
- r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();
- }
- triggerEvents(near, ["mousedown", "tapstart", "vmousedown"], e, {
- x: pos[0],
- y: pos[1]
- });
- if (near == null) {
- select2[4] = 1;
- r.data.bgActivePosistion = {
- x: pos[0],
- y: pos[1]
+ __name(FDLayoutConstants, "FDLayoutConstants");
+ for (var prop in LayoutConstants) {
+ FDLayoutConstants[prop] = LayoutConstants[prop];
+ }
+ FDLayoutConstants.MAX_ITERATIONS = 2500;
+ FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;
+ FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;
+ FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500;
+ FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;
+ FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1;
+ FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;
+ FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;
+ FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;
+ FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;
+ FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;
+ FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;
+ FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1e3;
+ FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5e3;
+ FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100;
+ FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;
+ FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10;
+ FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;
+ FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;
+ FDLayoutConstants.MIN_EDGE_LENGTH = 1;
+ FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;
+ module3.exports = FDLayoutConstants;
+ },
+ /* 8 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var Point3 = __webpack_require__(12);
+ function IGeometry() {
+ }
+ __name(IGeometry, "IGeometry");
+ IGeometry.calcSeparationAmount = function(rectA, rectB, overlapAmount, separationBuffer) {
+ if (!rectA.intersects(rectB)) {
+ throw "assert failed";
+ }
+ var directions = new Array(2);
+ this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);
+ overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);
+ overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);
+ if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {
+ overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());
+ } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {
+ overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());
+ }
+ if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {
+ overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());
+ } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {
+ overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());
+ }
+ var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));
+ if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {
+ slope = 1;
+ }
+ var moveByY = slope * overlapAmount[0];
+ var moveByX = overlapAmount[1] / slope;
+ if (overlapAmount[0] < moveByX) {
+ moveByX = overlapAmount[0];
+ } else {
+ moveByY = overlapAmount[1];
+ }
+ overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);
+ overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);
};
- r.redrawHint("select", true);
- r.redraw();
- } else if (near.pannable()) {
- select2[4] = 1;
- }
- checkForTaphold();
- }
- select2[0] = select2[2] = pos[0];
- select2[1] = select2[3] = pos[1];
- }, false);
- r.registerBinding(window, "mousemove", function mousemoveHandler(e) {
- var capture = r.hoverData.capture;
- if (!capture && !eventInContainer(e)) {
- return;
- }
- var preventDefault = false;
- var cy = r.cy;
- var zoom = cy.zoom();
- var gpos = [e.clientX, e.clientY];
- var pos = r.projectIntoViewport(gpos[0], gpos[1]);
- var mdownPos = r.hoverData.mdownPos;
- var mdownGPos = r.hoverData.mdownGPos;
- var select2 = r.selection;
- var near = null;
- if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) {
- near = r.findNearestElement(pos[0], pos[1], true, false);
- }
- var last2 = r.hoverData.last;
- var down = r.hoverData.down;
- var disp = [pos[0] - select2[2], pos[1] - select2[3]];
- var draggedElements = r.dragData.possibleDragElements;
- var isOverThresholdDrag;
- if (mdownGPos) {
- var dx = gpos[0] - mdownGPos[0];
- var dx2 = dx * dx;
- var dy = gpos[1] - mdownGPos[1];
- var dy2 = dy * dy;
- var dist22 = dx2 + dy2;
- r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist22 >= r.desktopTapThreshold2;
- }
- var multSelKeyDown = isMultSelKeyDown(e);
- if (isOverThresholdDrag) {
- r.hoverData.tapholdCancelled = true;
- }
- var updateDragDelta = function updateDragDelta2() {
- var dragDelta2 = r.hoverData.dragDelta = r.hoverData.dragDelta || [];
- if (dragDelta2.length === 0) {
- dragDelta2.push(disp[0]);
- dragDelta2.push(disp[1]);
- } else {
- dragDelta2[0] += disp[0];
- dragDelta2[1] += disp[1];
- }
- };
- preventDefault = true;
- triggerEvents(near, ["mousemove", "vmousemove", "tapdrag"], e, {
- x: pos[0],
- y: pos[1]
- });
- var goIntoBoxMode = function goIntoBoxMode2() {
- r.data.bgActivePosistion = void 0;
- if (!r.hoverData.selecting) {
- cy.emit({
- originalEvent: e,
- type: "boxstart",
- position: {
- x: pos[0],
- y: pos[1]
+ IGeometry.decideDirectionsForOverlappingNodes = function(rectA, rectB, directions) {
+ if (rectA.getCenterX() < rectB.getCenterX()) {
+ directions[0] = -1;
+ } else {
+ directions[0] = 1;
+ }
+ if (rectA.getCenterY() < rectB.getCenterY()) {
+ directions[1] = -1;
+ } else {
+ directions[1] = 1;
+ }
+ };
+ IGeometry.getIntersection2 = function(rectA, rectB, result) {
+ var p1x = rectA.getCenterX();
+ var p1y = rectA.getCenterY();
+ var p2x = rectB.getCenterX();
+ var p2y = rectB.getCenterY();
+ if (rectA.intersects(rectB)) {
+ result[0] = p1x;
+ result[1] = p1y;
+ result[2] = p2x;
+ result[3] = p2y;
+ return true;
+ }
+ var topLeftAx = rectA.getX();
+ var topLeftAy = rectA.getY();
+ var topRightAx = rectA.getRight();
+ var bottomLeftAx = rectA.getX();
+ var bottomLeftAy = rectA.getBottom();
+ var bottomRightAx = rectA.getRight();
+ var halfWidthA = rectA.getWidthHalf();
+ var halfHeightA = rectA.getHeightHalf();
+ var topLeftBx = rectB.getX();
+ var topLeftBy = rectB.getY();
+ var topRightBx = rectB.getRight();
+ var bottomLeftBx = rectB.getX();
+ var bottomLeftBy = rectB.getBottom();
+ var bottomRightBx = rectB.getRight();
+ var halfWidthB = rectB.getWidthHalf();
+ var halfHeightB = rectB.getHeightHalf();
+ var clipPointAFound = false;
+ var clipPointBFound = false;
+ if (p1x === p2x) {
+ if (p1y > p2y) {
+ result[0] = p1x;
+ result[1] = topLeftAy;
+ result[2] = p2x;
+ result[3] = bottomLeftBy;
+ return false;
+ } else if (p1y < p2y) {
+ result[0] = p1x;
+ result[1] = bottomLeftAy;
+ result[2] = p2x;
+ result[3] = topLeftBy;
+ return false;
+ } else {
+ }
+ } else if (p1y === p2y) {
+ if (p1x > p2x) {
+ result[0] = topLeftAx;
+ result[1] = p1y;
+ result[2] = topRightBx;
+ result[3] = p2y;
+ return false;
+ } else if (p1x < p2x) {
+ result[0] = topRightAx;
+ result[1] = p1y;
+ result[2] = topLeftBx;
+ result[3] = p2y;
+ return false;
+ } else {
+ }
+ } else {
+ var slopeA = rectA.height / rectA.width;
+ var slopeB = rectB.height / rectB.width;
+ var slopePrime = (p2y - p1y) / (p2x - p1x);
+ var cardinalDirectionA = void 0;
+ var cardinalDirectionB = void 0;
+ var tempPointAx = void 0;
+ var tempPointAy = void 0;
+ var tempPointBx = void 0;
+ var tempPointBy = void 0;
+ if (-slopeA === slopePrime) {
+ if (p1x > p2x) {
+ result[0] = bottomLeftAx;
+ result[1] = bottomLeftAy;
+ clipPointAFound = true;
+ } else {
+ result[0] = topRightAx;
+ result[1] = topLeftAy;
+ clipPointAFound = true;
+ }
+ } else if (slopeA === slopePrime) {
+ if (p1x > p2x) {
+ result[0] = topLeftAx;
+ result[1] = topLeftAy;
+ clipPointAFound = true;
+ } else {
+ result[0] = bottomRightAx;
+ result[1] = bottomLeftAy;
+ clipPointAFound = true;
+ }
+ }
+ if (-slopeB === slopePrime) {
+ if (p2x > p1x) {
+ result[2] = bottomLeftBx;
+ result[3] = bottomLeftBy;
+ clipPointBFound = true;
+ } else {
+ result[2] = topRightBx;
+ result[3] = topLeftBy;
+ clipPointBFound = true;
+ }
+ } else if (slopeB === slopePrime) {
+ if (p2x > p1x) {
+ result[2] = topLeftBx;
+ result[3] = topLeftBy;
+ clipPointBFound = true;
+ } else {
+ result[2] = bottomRightBx;
+ result[3] = bottomLeftBy;
+ clipPointBFound = true;
+ }
+ }
+ if (clipPointAFound && clipPointBFound) {
+ return false;
+ }
+ if (p1x > p2x) {
+ if (p1y > p2y) {
+ cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);
+ cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);
+ } else {
+ cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);
+ cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);
+ }
+ } else {
+ if (p1y > p2y) {
+ cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);
+ cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);
+ } else {
+ cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);
+ cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);
+ }
+ }
+ if (!clipPointAFound) {
+ switch (cardinalDirectionA) {
+ case 1:
+ tempPointAy = topLeftAy;
+ tempPointAx = p1x + -halfHeightA / slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ case 2:
+ tempPointAx = bottomRightAx;
+ tempPointAy = p1y + halfWidthA * slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ case 3:
+ tempPointAy = bottomLeftAy;
+ tempPointAx = p1x + halfHeightA / slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ case 4:
+ tempPointAx = bottomLeftAx;
+ tempPointAy = p1y + -halfWidthA * slopePrime;
+ result[0] = tempPointAx;
+ result[1] = tempPointAy;
+ break;
+ }
+ }
+ if (!clipPointBFound) {
+ switch (cardinalDirectionB) {
+ case 1:
+ tempPointBy = topLeftBy;
+ tempPointBx = p2x + -halfHeightB / slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ case 2:
+ tempPointBx = bottomRightBx;
+ tempPointBy = p2y + halfWidthB * slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ case 3:
+ tempPointBy = bottomLeftBy;
+ tempPointBx = p2x + halfHeightB / slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ case 4:
+ tempPointBx = bottomLeftBx;
+ tempPointBy = p2y + -halfWidthB * slopePrime;
+ result[2] = tempPointBx;
+ result[3] = tempPointBy;
+ break;
+ }
+ }
}
- });
- }
- select2[4] = 1;
- r.hoverData.selecting = true;
- r.redrawHint("select", true);
- r.redraw();
- };
- if (r.hoverData.which === 3) {
- if (isOverThresholdDrag) {
- var cxtEvt = {
- originalEvent: e,
- type: "cxtdrag",
- position: {
- x: pos[0],
- y: pos[1]
+ return false;
+ };
+ IGeometry.getCardinalDirection = function(slope, slopePrime, line2) {
+ if (slope > slopePrime) {
+ return line2;
+ } else {
+ return 1 + line2 % 4;
}
};
- if (down) {
- down.emit(cxtEvt);
- } else {
- cy.emit(cxtEvt);
- }
- r.hoverData.cxtDragged = true;
- if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) {
- if (r.hoverData.cxtOver) {
- r.hoverData.cxtOver.emit({
- originalEvent: e,
- type: "cxtdragout",
- position: {
- x: pos[0],
- y: pos[1]
- }
- });
+ IGeometry.getIntersection = function(s1, s2, f1, f22) {
+ if (f22 == null) {
+ return this.getIntersection2(s1, s2, f1);
}
- r.hoverData.cxtOver = near;
- if (near) {
- near.emit({
- originalEvent: e,
- type: "cxtdragover",
- position: {
- x: pos[0],
- y: pos[1]
- }
- });
+ var x1 = s1.x;
+ var y1 = s1.y;
+ var x22 = s2.x;
+ var y22 = s2.y;
+ var x32 = f1.x;
+ var y32 = f1.y;
+ var x42 = f22.x;
+ var y42 = f22.y;
+ var x5 = void 0, y5 = void 0;
+ var a1 = void 0, a2 = void 0, b1 = void 0, b2 = void 0, c1 = void 0, c22 = void 0;
+ var denom = void 0;
+ a1 = y22 - y1;
+ b1 = x1 - x22;
+ c1 = x22 * y1 - x1 * y22;
+ a2 = y42 - y32;
+ b2 = x32 - x42;
+ c22 = x42 * y32 - x32 * y42;
+ denom = a1 * b2 - a2 * b1;
+ if (denom === 0) {
+ return null;
}
- }
- }
- } else if (r.hoverData.dragging) {
- preventDefault = true;
- if (cy.panningEnabled() && cy.userPanningEnabled()) {
- var deltaP;
- if (r.hoverData.justStartedPan) {
- var mdPos = r.hoverData.mdownPos;
- deltaP = {
- x: (pos[0] - mdPos[0]) * zoom,
- y: (pos[1] - mdPos[1]) * zoom
- };
- r.hoverData.justStartedPan = false;
- } else {
- deltaP = {
- x: disp[0] * zoom,
- y: disp[1] * zoom
- };
- }
- cy.panBy(deltaP);
- cy.emit("dragpan");
- r.hoverData.dragged = true;
- }
- pos = r.projectIntoViewport(e.clientX, e.clientY);
- } else if (select2[4] == 1 && (down == null || down.pannable())) {
- if (isOverThresholdDrag) {
- if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {
- goIntoBoxMode();
- } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {
- var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs);
- if (allowPassthrough) {
- r.hoverData.dragging = true;
- r.hoverData.justStartedPan = true;
- select2[4] = 0;
- r.data.bgActivePosistion = array2point(mdownPos);
- r.redrawHint("select", true);
- r.redraw();
+ x5 = (b1 * c22 - b2 * c1) / denom;
+ y5 = (a2 * c1 - a1 * c22) / denom;
+ return new Point3(x5, y5);
+ };
+ IGeometry.angleOfVector = function(Cx, Cy, Nx, Ny) {
+ var C_angle = void 0;
+ if (Cx !== Nx) {
+ C_angle = Math.atan((Ny - Cy) / (Nx - Cx));
+ if (Nx < Cx) {
+ C_angle += Math.PI;
+ } else if (Ny < Cy) {
+ C_angle += this.TWO_PI;
+ }
+ } else if (Ny < Cy) {
+ C_angle = this.ONE_AND_HALF_PI;
+ } else {
+ C_angle = this.HALF_PI;
}
+ return C_angle;
+ };
+ IGeometry.doIntersect = function(p1, p22, p3, p4) {
+ var a2 = p1.x;
+ var b2 = p1.y;
+ var c3 = p22.x;
+ var d2 = p22.y;
+ var p5 = p3.x;
+ var q2 = p3.y;
+ var r2 = p4.x;
+ var s2 = p4.y;
+ var det = (c3 - a2) * (s2 - q2) - (r2 - p5) * (d2 - b2);
+ if (det === 0) {
+ return false;
+ } else {
+ var lambda = ((s2 - q2) * (r2 - a2) + (p5 - r2) * (s2 - b2)) / det;
+ var gamma2 = ((b2 - d2) * (r2 - a2) + (c3 - a2) * (s2 - b2)) / det;
+ return 0 < lambda && lambda < 1 && 0 < gamma2 && gamma2 < 1;
+ }
+ };
+ IGeometry.HALF_PI = 0.5 * Math.PI;
+ IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;
+ IGeometry.TWO_PI = 2 * Math.PI;
+ IGeometry.THREE_PI = 3 * Math.PI;
+ module3.exports = IGeometry;
+ },
+ /* 9 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function IMath() {
}
- if (down && down.pannable() && down.active()) {
- down.unactivate();
- }
- }
- } else {
- if (down && down.pannable() && down.active()) {
- down.unactivate();
- }
- if ((!down || !down.grabbed()) && near != last2) {
- if (last2) {
- triggerEvents(last2, ["mouseout", "tapdragout"], e, {
- x: pos[0],
- y: pos[1]
- });
- }
- if (near) {
- triggerEvents(near, ["mouseover", "tapdragover"], e, {
- x: pos[0],
- y: pos[1]
- });
+ __name(IMath, "IMath");
+ IMath.sign = function(value2) {
+ if (value2 > 0) {
+ return 1;
+ } else if (value2 < 0) {
+ return -1;
+ } else {
+ return 0;
+ }
+ };
+ IMath.floor = function(value2) {
+ return value2 < 0 ? Math.ceil(value2) : Math.floor(value2);
+ };
+ IMath.ceil = function(value2) {
+ return value2 < 0 ? Math.floor(value2) : Math.ceil(value2);
+ };
+ module3.exports = IMath;
+ },
+ /* 10 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function Integer() {
}
- r.hoverData.last = near;
- }
- if (down) {
- if (isOverThresholdDrag) {
- if (cy.boxSelectionEnabled() && multSelKeyDown) {
- if (down && down.grabbed()) {
- freeDraggedElements(draggedElements);
- down.emit("freeon");
- draggedElements.emit("free");
- if (r.dragData.didDrag) {
- down.emit("dragfreeon");
- draggedElements.emit("dragfree");
- }
- }
- goIntoBoxMode();
- } else if (down && down.grabbed() && r.nodeIsDraggable(down)) {
- var justStartedDrag = !r.dragData.didDrag;
- if (justStartedDrag) {
- r.redrawHint("eles", true);
+ __name(Integer, "Integer");
+ Integer.MAX_VALUE = 2147483647;
+ Integer.MIN_VALUE = -2147483648;
+ module3.exports = Integer;
+ },
+ /* 11 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var _createClass2 = /* @__PURE__ */ function() {
+ function defineProperties(target, props) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var descriptor = props[i2];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
}
- r.dragData.didDrag = true;
- if (!r.hoverData.draggingEles) {
- addNodesToDrag(draggedElements, {
- inDragLayer: true
+ }
+ __name(defineProperties, "defineProperties");
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck2(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ __name(_classCallCheck2, "_classCallCheck");
+ var nodeFrom = /* @__PURE__ */ __name(function nodeFrom2(value2) {
+ return { value: value2, next: null, prev: null };
+ }, "nodeFrom");
+ var add3 = /* @__PURE__ */ __name(function add4(prev2, node2, next3, list2) {
+ if (prev2 !== null) {
+ prev2.next = node2;
+ } else {
+ list2.head = node2;
+ }
+ if (next3 !== null) {
+ next3.prev = node2;
+ } else {
+ list2.tail = node2;
+ }
+ node2.prev = prev2;
+ node2.next = next3;
+ list2.length++;
+ return node2;
+ }, "add");
+ var _remove = /* @__PURE__ */ __name(function _remove2(node2, list2) {
+ var prev2 = node2.prev, next3 = node2.next;
+ if (prev2 !== null) {
+ prev2.next = next3;
+ } else {
+ list2.head = next3;
+ }
+ if (next3 !== null) {
+ next3.prev = prev2;
+ } else {
+ list2.tail = prev2;
+ }
+ node2.prev = node2.next = null;
+ list2.length--;
+ return node2;
+ }, "_remove");
+ var LinkedList = function() {
+ function LinkedList2(vals) {
+ var _this = this;
+ _classCallCheck2(this, LinkedList2);
+ this.length = 0;
+ this.head = null;
+ this.tail = null;
+ if (vals != null) {
+ vals.forEach(function(v3) {
+ return _this.push(v3);
});
}
- var totalShift = {
- x: 0,
- y: 0
- };
- if (number$12(disp[0]) && number$12(disp[1])) {
- totalShift.x += disp[0];
- totalShift.y += disp[1];
- if (justStartedDrag) {
- var dragDelta = r.hoverData.dragDelta;
- if (dragDelta && number$12(dragDelta[0]) && number$12(dragDelta[1])) {
- totalShift.x += dragDelta[0];
- totalShift.y += dragDelta[1];
+ }
+ __name(LinkedList2, "LinkedList");
+ _createClass2(LinkedList2, [{
+ key: "size",
+ value: /* @__PURE__ */ __name(function size5() {
+ return this.length;
+ }, "size")
+ }, {
+ key: "insertBefore",
+ value: /* @__PURE__ */ __name(function insertBefore(val, otherNode) {
+ return add3(otherNode.prev, nodeFrom(val), otherNode, this);
+ }, "insertBefore")
+ }, {
+ key: "insertAfter",
+ value: /* @__PURE__ */ __name(function insertAfter(val, otherNode) {
+ return add3(otherNode, nodeFrom(val), otherNode.next, this);
+ }, "insertAfter")
+ }, {
+ key: "insertNodeBefore",
+ value: /* @__PURE__ */ __name(function insertNodeBefore(newNode, otherNode) {
+ return add3(otherNode.prev, newNode, otherNode, this);
+ }, "insertNodeBefore")
+ }, {
+ key: "insertNodeAfter",
+ value: /* @__PURE__ */ __name(function insertNodeAfter(newNode, otherNode) {
+ return add3(otherNode, newNode, otherNode.next, this);
+ }, "insertNodeAfter")
+ }, {
+ key: "push",
+ value: /* @__PURE__ */ __name(function push3(val) {
+ return add3(this.tail, nodeFrom(val), null, this);
+ }, "push")
+ }, {
+ key: "unshift",
+ value: /* @__PURE__ */ __name(function unshift(val) {
+ return add3(null, nodeFrom(val), this.head, this);
+ }, "unshift")
+ }, {
+ key: "remove",
+ value: /* @__PURE__ */ __name(function remove3(node2) {
+ return _remove(node2, this);
+ }, "remove")
+ }, {
+ key: "pop",
+ value: /* @__PURE__ */ __name(function pop() {
+ return _remove(this.tail, this).value;
+ }, "pop")
+ }, {
+ key: "popNode",
+ value: /* @__PURE__ */ __name(function popNode() {
+ return _remove(this.tail, this);
+ }, "popNode")
+ }, {
+ key: "shift",
+ value: /* @__PURE__ */ __name(function shift2() {
+ return _remove(this.head, this).value;
+ }, "shift")
+ }, {
+ key: "shiftNode",
+ value: /* @__PURE__ */ __name(function shiftNode() {
+ return _remove(this.head, this);
+ }, "shiftNode")
+ }, {
+ key: "get_object_at",
+ value: /* @__PURE__ */ __name(function get_object_at(index) {
+ if (index <= this.length()) {
+ var i2 = 1;
+ var current = this.head;
+ while (i2 < index) {
+ current = current.next;
+ i2++;
}
+ return current.value;
}
- }
- r.hoverData.draggingEles = true;
- draggedElements.silentShift(totalShift).emit("position drag");
- r.redrawHint("drag", true);
- r.redraw();
+ }, "get_object_at")
+ }, {
+ key: "set_object_at",
+ value: /* @__PURE__ */ __name(function set_object_at(index, value2) {
+ if (index <= this.length()) {
+ var i2 = 1;
+ var current = this.head;
+ while (i2 < index) {
+ current = current.next;
+ i2++;
+ }
+ current.value = value2;
+ }
+ }, "set_object_at")
+ }]);
+ return LinkedList2;
+ }();
+ module3.exports = LinkedList;
+ },
+ /* 12 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function Point3(x5, y5, p3) {
+ this.x = null;
+ this.y = null;
+ if (x5 == null && y5 == null && p3 == null) {
+ this.x = 0;
+ this.y = 0;
+ } else if (typeof x5 == "number" && typeof y5 == "number" && p3 == null) {
+ this.x = x5;
+ this.y = y5;
+ } else if (x5.constructor.name == "Point" && y5 == null && p3 == null) {
+ p3 = x5;
+ this.x = p3.x;
+ this.y = p3.y;
}
- } else {
- updateDragDelta();
- }
- }
- preventDefault = true;
- }
- select2[2] = pos[0];
- select2[3] = pos[1];
- if (preventDefault) {
- if (e.stopPropagation)
- e.stopPropagation();
- if (e.preventDefault)
- e.preventDefault();
- return false;
- }
- }, false);
- var clickTimeout, didDoubleClick, prevClickTimeStamp;
- r.registerBinding(window, "mouseup", function mouseupHandler(e) {
- var capture = r.hoverData.capture;
- if (!capture) {
- return;
- }
- r.hoverData.capture = false;
- var cy = r.cy;
- var pos = r.projectIntoViewport(e.clientX, e.clientY);
- var select2 = r.selection;
- var near = r.findNearestElement(pos[0], pos[1], true, false);
- var draggedElements = r.dragData.possibleDragElements;
- var down = r.hoverData.down;
- var multSelKeyDown = isMultSelKeyDown(e);
- if (r.data.bgActivePosistion) {
- r.redrawHint("select", true);
- r.redraw();
- }
- r.hoverData.tapholdCancelled = true;
- r.data.bgActivePosistion = void 0;
- if (down) {
- down.unactivate();
- }
- if (r.hoverData.which === 3) {
- var cxtEvt = {
- originalEvent: e,
- type: "cxttapend",
- position: {
- x: pos[0],
- y: pos[1]
}
- };
- if (down) {
- down.emit(cxtEvt);
- } else {
- cy.emit(cxtEvt);
- }
- if (!r.hoverData.cxtDragged) {
- var cxtTap = {
- originalEvent: e,
- type: "cxttap",
- position: {
- x: pos[0],
- y: pos[1]
- }
+ __name(Point3, "Point");
+ Point3.prototype.getX = function() {
+ return this.x;
};
- if (down) {
- down.emit(cxtTap);
- } else {
- cy.emit(cxtTap);
- }
- }
- r.hoverData.cxtDragged = false;
- r.hoverData.which = null;
- } else if (r.hoverData.which === 1) {
- triggerEvents(near, ["mouseup", "tapend", "vmouseup"], e, {
- x: pos[0],
- y: pos[1]
- });
- if (!r.dragData.didDrag && // didn't move a node around
- !r.hoverData.dragged && // didn't pan
- !r.hoverData.selecting && // not box selection
- !r.hoverData.isOverThresholdDrag) {
- triggerEvents(down, ["click", "tap", "vclick"], e, {
- x: pos[0],
- y: pos[1]
- });
- didDoubleClick = false;
- if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {
- clickTimeout && clearTimeout(clickTimeout);
- didDoubleClick = true;
- prevClickTimeStamp = null;
- triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e, {
- x: pos[0],
- y: pos[1]
- });
- } else {
- clickTimeout = setTimeout(function() {
- if (didDoubleClick)
- return;
- triggerEvents(down, ["oneclick", "onetap", "voneclick"], e, {
- x: pos[0],
- y: pos[1]
- });
- }, cy.multiClickDebounceTime());
- prevClickTimeStamp = e.timeStamp;
- }
- }
- if (down == null && !r.dragData.didDrag && !r.hoverData.selecting && !r.hoverData.dragged && !isMultSelKeyDown(e)) {
- cy.$(isSelected).unselect(["tapunselect"]);
- if (draggedElements.length > 0) {
- r.redrawHint("eles", true);
- }
- r.dragData.possibleDragElements = draggedElements = cy.collection();
- }
- if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) {
- if (near != null && near._private.selectable) {
- if (r.hoverData.dragging)
- ;
- else if (cy.selectionType() === "additive" || multSelKeyDown) {
- if (near.selected()) {
- near.unselect(["tapunselect"]);
+ Point3.prototype.getY = function() {
+ return this.y;
+ };
+ Point3.prototype.getLocation = function() {
+ return new Point3(this.x, this.y);
+ };
+ Point3.prototype.setLocation = function(x5, y5, p3) {
+ if (x5.constructor.name == "Point" && y5 == null && p3 == null) {
+ p3 = x5;
+ this.setLocation(p3.x, p3.y);
+ } else if (typeof x5 == "number" && typeof y5 == "number" && p3 == null) {
+ if (parseInt(x5) == x5 && parseInt(y5) == y5) {
+ this.move(x5, y5);
} else {
- near.select(["tapselect"]);
- }
- } else {
- if (!multSelKeyDown) {
- cy.$(isSelected).unmerge(near).unselect(["tapunselect"]);
- near.select(["tapselect"]);
+ this.x = Math.floor(x5 + 0.5);
+ this.y = Math.floor(y5 + 0.5);
}
}
- r.redrawHint("eles", true);
- }
- }
- if (r.hoverData.selecting) {
- var box = cy.collection(r.getAllInBox(select2[0], select2[1], select2[2], select2[3]));
- r.redrawHint("select", true);
- if (box.length > 0) {
- r.redrawHint("eles", true);
- }
- cy.emit({
- type: "boxend",
- originalEvent: e,
- position: {
- x: pos[0],
- y: pos[1]
+ };
+ Point3.prototype.move = function(x5, y5) {
+ this.x = x5;
+ this.y = y5;
+ };
+ Point3.prototype.translate = function(dx, dy) {
+ this.x += dx;
+ this.y += dy;
+ };
+ Point3.prototype.equals = function(obj) {
+ if (obj.constructor.name == "Point") {
+ var pt = obj;
+ return this.x == pt.x && this.y == pt.y;
}
- });
- var eleWouldBeSelected = function eleWouldBeSelected2(ele) {
- return ele.selectable() && !ele.selected();
+ return this == obj;
};
- if (cy.selectionType() === "additive") {
- box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
- } else {
- if (!multSelKeyDown) {
- cy.$(isSelected).unmerge(box).unselect();
+ Point3.prototype.toString = function() {
+ return new Point3().constructor.name + "[x=" + this.x + ",y=" + this.y + "]";
+ };
+ module3.exports = Point3;
+ },
+ /* 13 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function RectangleD(x5, y5, width3, height2) {
+ this.x = 0;
+ this.y = 0;
+ this.width = 0;
+ this.height = 0;
+ if (x5 != null && y5 != null && width3 != null && height2 != null) {
+ this.x = x5;
+ this.y = y5;
+ this.width = width3;
+ this.height = height2;
}
- box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
}
- r.redraw();
- }
- if (r.hoverData.dragging) {
- r.hoverData.dragging = false;
- r.redrawHint("select", true);
- r.redrawHint("eles", true);
- r.redraw();
- }
- if (!select2[4]) {
- r.redrawHint("drag", true);
- r.redrawHint("eles", true);
- var downWasGrabbed = down && down.grabbed();
- freeDraggedElements(draggedElements);
- if (downWasGrabbed) {
- down.emit("freeon");
- draggedElements.emit("free");
- if (r.dragData.didDrag) {
- down.emit("dragfreeon");
- draggedElements.emit("dragfree");
+ __name(RectangleD, "RectangleD");
+ RectangleD.prototype.getX = function() {
+ return this.x;
+ };
+ RectangleD.prototype.setX = function(x5) {
+ this.x = x5;
+ };
+ RectangleD.prototype.getY = function() {
+ return this.y;
+ };
+ RectangleD.prototype.setY = function(y5) {
+ this.y = y5;
+ };
+ RectangleD.prototype.getWidth = function() {
+ return this.width;
+ };
+ RectangleD.prototype.setWidth = function(width3) {
+ this.width = width3;
+ };
+ RectangleD.prototype.getHeight = function() {
+ return this.height;
+ };
+ RectangleD.prototype.setHeight = function(height2) {
+ this.height = height2;
+ };
+ RectangleD.prototype.getRight = function() {
+ return this.x + this.width;
+ };
+ RectangleD.prototype.getBottom = function() {
+ return this.y + this.height;
+ };
+ RectangleD.prototype.intersects = function(a2) {
+ if (this.getRight() < a2.x) {
+ return false;
}
- }
- }
- }
- select2[4] = 0;
- r.hoverData.down = null;
- r.hoverData.cxtStarted = false;
- r.hoverData.draggingEles = false;
- r.hoverData.selecting = false;
- r.hoverData.isOverThresholdDrag = false;
- r.dragData.didDrag = false;
- r.hoverData.dragged = false;
- r.hoverData.dragDelta = [];
- r.hoverData.mdownPos = null;
- r.hoverData.mdownGPos = null;
- }, false);
- var wheelHandler = function wheelHandler2(e) {
- if (r.scrollingPage) {
- return;
- }
- var cy = r.cy;
- var zoom = cy.zoom();
- var pan = cy.pan();
- var pos = r.projectIntoViewport(e.clientX, e.clientY);
- var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y];
- if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) {
- e.preventDefault();
- return;
- }
- if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {
- e.preventDefault();
- r.data.wheelZooming = true;
- clearTimeout(r.data.wheelTimeout);
- r.data.wheelTimeout = setTimeout(function() {
- r.data.wheelZooming = false;
- r.redrawHint("eles", true);
- r.redraw();
- }, 150);
- var diff;
- if (e.deltaY != null) {
- diff = e.deltaY / -250;
- } else if (e.wheelDeltaY != null) {
- diff = e.wheelDeltaY / 1e3;
- } else {
- diff = e.wheelDelta / 1e3;
- }
- diff = diff * r.wheelSensitivity;
- var needsWheelFix = e.deltaMode === 1;
- if (needsWheelFix) {
- diff *= 33;
- }
- var newZoom = cy.zoom() * Math.pow(10, diff);
- if (e.type === "gesturechange") {
- newZoom = r.gestureStartZoom * e.scale;
- }
- cy.zoom({
- level: newZoom,
- renderedPosition: {
- x: rpos[0],
- y: rpos[1]
- }
- });
- cy.emit(e.type === "gesturechange" ? "pinchzoom" : "scrollzoom");
- }
- };
- r.registerBinding(r.container, "wheel", wheelHandler, true);
- r.registerBinding(window, "scroll", function scrollHandler(e) {
- r.scrollingPage = true;
- clearTimeout(r.scrollingPageTimeout);
- r.scrollingPageTimeout = setTimeout(function() {
- r.scrollingPage = false;
- }, 250);
- }, true);
- r.registerBinding(r.container, "gesturestart", function gestureStartHandler(e) {
- r.gestureStartZoom = r.cy.zoom();
- if (!r.hasTouchStarted) {
- e.preventDefault();
- }
- }, true);
- r.registerBinding(r.container, "gesturechange", function(e) {
- if (!r.hasTouchStarted) {
- wheelHandler(e);
- }
- }, true);
- r.registerBinding(r.container, "mouseout", function mouseOutHandler(e) {
- var pos = r.projectIntoViewport(e.clientX, e.clientY);
- r.cy.emit({
- originalEvent: e,
- type: "mouseout",
- position: {
- x: pos[0],
- y: pos[1]
- }
- });
- }, false);
- r.registerBinding(r.container, "mouseover", function mouseOverHandler(e) {
- var pos = r.projectIntoViewport(e.clientX, e.clientY);
- r.cy.emit({
- originalEvent: e,
- type: "mouseover",
- position: {
- x: pos[0],
- y: pos[1]
- }
- });
- }, false);
- var f1x1, f1y1, f2x1, f2y1;
- var distance1, distance1Sq;
- var center1, modelCenter1;
- var offsetLeft, offsetTop;
- var containerWidth, containerHeight;
- var twoFingersStartInside;
- var distance2 = function distance3(x1, y1, x2, y2) {
- return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
- };
- var distanceSq = function distanceSq2(x1, y1, x2, y2) {
- return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);
- };
- var touchstartHandler;
- r.registerBinding(r.container, "touchstart", touchstartHandler = function touchstartHandler2(e) {
- r.hasTouchStarted = true;
- if (!eventInContainer(e)) {
- return;
- }
- blurActiveDomElement();
- r.touchData.capture = true;
- r.data.bgActivePosistion = void 0;
- var cy = r.cy;
- var now3 = r.touchData.now;
- var earlier = r.touchData.earlier;
- if (e.touches[0]) {
- var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
- now3[0] = pos[0];
- now3[1] = pos[1];
- }
- if (e.touches[1]) {
- var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
- now3[2] = pos[0];
- now3[3] = pos[1];
- }
- if (e.touches[2]) {
- var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
- now3[4] = pos[0];
- now3[5] = pos[1];
- }
- if (e.touches[1]) {
- r.touchData.singleTouchMoved = true;
- freeDraggedElements(r.dragData.touchDragEles);
- var offsets = r.findContainerClientCoords();
- offsetLeft = offsets[0];
- offsetTop = offsets[1];
- containerWidth = offsets[2];
- containerHeight = offsets[3];
- f1x1 = e.touches[0].clientX - offsetLeft;
- f1y1 = e.touches[0].clientY - offsetTop;
- f2x1 = e.touches[1].clientX - offsetLeft;
- f2y1 = e.touches[1].clientY - offsetTop;
- twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;
- var pan = cy.pan();
- var zoom = cy.zoom();
- distance1 = distance2(f1x1, f1y1, f2x1, f2y1);
- distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);
- center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];
- modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom];
- var cxtDistThreshold = 200;
- var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;
- if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) {
- var near1 = r.findNearestElement(now3[0], now3[1], true, true);
- var near2 = r.findNearestElement(now3[2], now3[3], true, true);
- if (near1 && near1.isNode()) {
- near1.activate().emit({
- originalEvent: e,
- type: "cxttapstart",
- position: {
- x: now3[0],
- y: now3[1]
- }
- });
- r.touchData.start = near1;
- } else if (near2 && near2.isNode()) {
- near2.activate().emit({
- originalEvent: e,
- type: "cxttapstart",
- position: {
- x: now3[0],
- y: now3[1]
- }
- });
- r.touchData.start = near2;
- } else {
- cy.emit({
- originalEvent: e,
- type: "cxttapstart",
- position: {
- x: now3[0],
- y: now3[1]
+ if (this.getBottom() < a2.y) {
+ return false;
+ }
+ if (a2.getRight() < this.x) {
+ return false;
+ }
+ if (a2.getBottom() < this.y) {
+ return false;
+ }
+ return true;
+ };
+ RectangleD.prototype.getCenterX = function() {
+ return this.x + this.width / 2;
+ };
+ RectangleD.prototype.getMinX = function() {
+ return this.getX();
+ };
+ RectangleD.prototype.getMaxX = function() {
+ return this.getX() + this.width;
+ };
+ RectangleD.prototype.getCenterY = function() {
+ return this.y + this.height / 2;
+ };
+ RectangleD.prototype.getMinY = function() {
+ return this.getY();
+ };
+ RectangleD.prototype.getMaxY = function() {
+ return this.getY() + this.height;
+ };
+ RectangleD.prototype.getWidthHalf = function() {
+ return this.width / 2;
+ };
+ RectangleD.prototype.getHeightHalf = function() {
+ return this.height / 2;
+ };
+ module3.exports = RectangleD;
+ },
+ /* 14 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
+ return typeof obj;
+ } : function(obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ function UniqueIDGeneretor() {
+ }
+ __name(UniqueIDGeneretor, "UniqueIDGeneretor");
+ UniqueIDGeneretor.lastID = 0;
+ UniqueIDGeneretor.createID = function(obj) {
+ if (UniqueIDGeneretor.isPrimitive(obj)) {
+ return obj;
+ }
+ if (obj.uniqueID != null) {
+ return obj.uniqueID;
+ }
+ obj.uniqueID = UniqueIDGeneretor.getString();
+ UniqueIDGeneretor.lastID++;
+ return obj.uniqueID;
+ };
+ UniqueIDGeneretor.getString = function(id27) {
+ if (id27 == null) id27 = UniqueIDGeneretor.lastID;
+ return "Object#" + id27;
+ };
+ UniqueIDGeneretor.isPrimitive = function(arg) {
+ var type3 = typeof arg === "undefined" ? "undefined" : _typeof2(arg);
+ return arg == null || type3 != "object" && type3 != "function";
+ };
+ module3.exports = UniqueIDGeneretor;
+ },
+ /* 15 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function _toConsumableArray(arr) {
+ if (Array.isArray(arr)) {
+ for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) {
+ arr2[i2] = arr[i2];
}
- });
+ return arr2;
+ } else {
+ return Array.from(arr);
+ }
}
- if (r.touchData.start) {
- r.touchData.start._private.grabbed = false;
+ __name(_toConsumableArray, "_toConsumableArray");
+ var LayoutConstants = __webpack_require__(0);
+ var LGraphManager = __webpack_require__(6);
+ var LNode = __webpack_require__(3);
+ var LEdge = __webpack_require__(1);
+ var LGraph = __webpack_require__(5);
+ var PointD = __webpack_require__(4);
+ var Transform2 = __webpack_require__(17);
+ var Emitter3 = __webpack_require__(27);
+ function Layout2(isRemoteUse) {
+ Emitter3.call(this);
+ this.layoutQuality = LayoutConstants.QUALITY;
+ this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;
+ this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;
+ this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;
+ this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;
+ this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;
+ this.edgeToDummyNodes = /* @__PURE__ */ new Map();
+ this.graphManager = new LGraphManager(this);
+ this.isLayoutFinished = false;
+ this.isSubLayout = false;
+ this.isRemoteUse = false;
+ if (isRemoteUse != null) {
+ this.isRemoteUse = isRemoteUse;
+ }
}
- r.touchData.cxt = true;
- r.touchData.cxtDragged = false;
- r.data.bgActivePosistion = void 0;
- r.redraw();
- return;
- }
- }
- if (e.touches[2]) {
- if (cy.boxSelectionEnabled()) {
- e.preventDefault();
- }
- } else if (e.touches[1])
- ;
- else if (e.touches[0]) {
- var nears = r.findNearestElements(now3[0], now3[1], true, true);
- var near = nears[0];
- if (near != null) {
- near.activate();
- r.touchData.start = near;
- r.touchData.starts = nears;
- if (r.nodeIsGrabbable(near)) {
- var draggedEles = r.dragData.touchDragEles = cy.collection();
- var selectedNodes = null;
- r.redrawHint("eles", true);
- r.redrawHint("drag", true);
- if (near.selected()) {
- selectedNodes = cy.$(function(ele) {
- return ele.selected() && r.nodeIsGrabbable(ele);
- });
- addNodesToDrag(selectedNodes, {
- addToList: draggedEles
- });
- } else {
- addNodeToDrag(near, {
- addToList: draggedEles
- });
+ __name(Layout2, "Layout");
+ Layout2.RANDOM_SEED = 1;
+ Layout2.prototype = Object.create(Emitter3.prototype);
+ Layout2.prototype.getGraphManager = function() {
+ return this.graphManager;
+ };
+ Layout2.prototype.getAllNodes = function() {
+ return this.graphManager.getAllNodes();
+ };
+ Layout2.prototype.getAllEdges = function() {
+ return this.graphManager.getAllEdges();
+ };
+ Layout2.prototype.getAllNodesToApplyGravitation = function() {
+ return this.graphManager.getAllNodesToApplyGravitation();
+ };
+ Layout2.prototype.newGraphManager = function() {
+ var gm = new LGraphManager(this);
+ this.graphManager = gm;
+ return gm;
+ };
+ Layout2.prototype.newGraph = function(vGraph) {
+ return new LGraph(null, this.graphManager, vGraph);
+ };
+ Layout2.prototype.newNode = function(vNode) {
+ return new LNode(this.graphManager, vNode);
+ };
+ Layout2.prototype.newEdge = function(vEdge) {
+ return new LEdge(null, null, vEdge);
+ };
+ Layout2.prototype.checkLayoutSuccess = function() {
+ return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();
+ };
+ Layout2.prototype.runLayout = function() {
+ this.isLayoutFinished = false;
+ if (this.tilingPreLayout) {
+ this.tilingPreLayout();
}
- setGrabTarget(near);
- var makeEvent = function makeEvent2(type2) {
- return {
- originalEvent: e,
- type: type2,
- position: {
- x: now3[0],
- y: now3[1]
- }
- };
- };
- near.emit(makeEvent("grabon"));
- if (selectedNodes) {
- selectedNodes.forEach(function(n) {
- n.emit(makeEvent("grab"));
- });
+ this.initParameters();
+ var isLayoutSuccessfull;
+ if (this.checkLayoutSuccess()) {
+ isLayoutSuccessfull = false;
} else {
- near.emit(makeEvent("grab"));
+ isLayoutSuccessfull = this.layout();
}
- }
- }
- triggerEvents(near, ["touchstart", "tapstart", "vmousedown"], e, {
- x: now3[0],
- y: now3[1]
- });
- if (near == null) {
- r.data.bgActivePosistion = {
- x: pos[0],
- y: pos[1]
+ if (LayoutConstants.ANIMATE === "during") {
+ return false;
+ }
+ if (isLayoutSuccessfull) {
+ if (!this.isSubLayout) {
+ this.doPostLayout();
+ }
+ }
+ if (this.tilingPostLayout) {
+ this.tilingPostLayout();
+ }
+ this.isLayoutFinished = true;
+ return isLayoutSuccessfull;
};
- r.redrawHint("select", true);
- r.redraw();
- }
- r.touchData.singleTouchMoved = false;
- r.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date();
- clearTimeout(r.touchData.tapholdTimeout);
- r.touchData.tapholdTimeout = setTimeout(function() {
- if (r.touchData.singleTouchMoved === false && !r.pinching && !r.touchData.selecting) {
- triggerEvents(r.touchData.start, ["taphold"], e, {
- x: now3[0],
- y: now3[1]
- });
- }
- }, r.tapholdDuration);
- }
- if (e.touches.length >= 1) {
- var sPos = r.touchData.startPosition = [];
- for (var i3 = 0; i3 < now3.length; i3++) {
- sPos[i3] = earlier[i3] = now3[i3];
- }
- var touch0 = e.touches[0];
- r.touchData.startGPosition = [touch0.clientX, touch0.clientY];
- }
- }, false);
- var touchmoveHandler;
- r.registerBinding(window, "touchmove", touchmoveHandler = function touchmoveHandler2(e) {
- var capture = r.touchData.capture;
- if (!capture && !eventInContainer(e)) {
- return;
- }
- var select2 = r.selection;
- var cy = r.cy;
- var now3 = r.touchData.now;
- var earlier = r.touchData.earlier;
- var zoom = cy.zoom();
- if (e.touches[0]) {
- var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
- now3[0] = pos[0];
- now3[1] = pos[1];
- }
- if (e.touches[1]) {
- var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
- now3[2] = pos[0];
- now3[3] = pos[1];
- }
- if (e.touches[2]) {
- var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
- now3[4] = pos[0];
- now3[5] = pos[1];
- }
- var startGPos = r.touchData.startGPosition;
- var isOverThresholdDrag;
- if (capture && e.touches[0] && startGPos) {
- var disp = [];
- for (var j = 0; j < now3.length; j++) {
- disp[j] = now3[j] - earlier[j];
- }
- var dx = e.touches[0].clientX - startGPos[0];
- var dx2 = dx * dx;
- var dy = e.touches[0].clientY - startGPos[1];
- var dy2 = dy * dy;
- var dist22 = dx2 + dy2;
- isOverThresholdDrag = dist22 >= r.touchTapThreshold2;
- }
- if (capture && r.touchData.cxt) {
- e.preventDefault();
- var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop;
- var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop;
- var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);
- var factorSq = distance2Sq / distance1Sq;
- var distThreshold = 150;
- var distThresholdSq = distThreshold * distThreshold;
- var factorThreshold = 1.5;
- var factorThresholdSq = factorThreshold * factorThreshold;
- if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {
- r.touchData.cxt = false;
- r.data.bgActivePosistion = void 0;
- r.redrawHint("select", true);
- var cxtEvt = {
- originalEvent: e,
- type: "cxttapend",
- position: {
- x: now3[0],
- y: now3[1]
+ Layout2.prototype.doPostLayout = function() {
+ if (!this.incremental) {
+ this.transform();
}
+ this.update();
};
- if (r.touchData.start) {
- r.touchData.start.unactivate().emit(cxtEvt);
- r.touchData.start = null;
- } else {
- cy.emit(cxtEvt);
- }
- }
- }
- if (capture && r.touchData.cxt) {
- var cxtEvt = {
- originalEvent: e,
- type: "cxtdrag",
- position: {
- x: now3[0],
- y: now3[1]
- }
- };
- r.data.bgActivePosistion = void 0;
- r.redrawHint("select", true);
- if (r.touchData.start) {
- r.touchData.start.emit(cxtEvt);
- } else {
- cy.emit(cxtEvt);
- }
- if (r.touchData.start) {
- r.touchData.start._private.grabbed = false;
- }
- r.touchData.cxtDragged = true;
- var near = r.findNearestElement(now3[0], now3[1], true, true);
- if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) {
- if (r.touchData.cxtOver) {
- r.touchData.cxtOver.emit({
- originalEvent: e,
- type: "cxtdragout",
- position: {
- x: now3[0],
- y: now3[1]
+ Layout2.prototype.update2 = function() {
+ if (this.createBendsAsNeeded) {
+ this.createBendpointsFromDummyNodes();
+ this.graphManager.resetAllEdges();
+ }
+ if (!this.isRemoteUse) {
+ var edge;
+ var allEdges = this.graphManager.getAllEdges();
+ for (var i2 = 0; i2 < allEdges.length; i2++) {
+ edge = allEdges[i2];
}
- });
- }
- r.touchData.cxtOver = near;
- if (near) {
- near.emit({
- originalEvent: e,
- type: "cxtdragover",
- position: {
- x: now3[0],
- y: now3[1]
+ var node2;
+ var nodes6 = this.graphManager.getRoot().getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ node2 = nodes6[i2];
}
- });
- }
- }
- } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) {
- e.preventDefault();
- r.data.bgActivePosistion = void 0;
- this.lastThreeTouch = +/* @__PURE__ */ new Date();
- if (!r.touchData.selecting) {
- cy.emit({
- originalEvent: e,
- type: "boxstart",
- position: {
- x: now3[0],
- y: now3[1]
+ this.update(this.graphManager.getRoot());
}
- });
- }
- r.touchData.selecting = true;
- r.touchData.didSelect = true;
- select2[4] = 1;
- if (!select2 || select2.length === 0 || select2[0] === void 0) {
- select2[0] = (now3[0] + now3[2] + now3[4]) / 3;
- select2[1] = (now3[1] + now3[3] + now3[5]) / 3;
- select2[2] = (now3[0] + now3[2] + now3[4]) / 3 + 1;
- select2[3] = (now3[1] + now3[3] + now3[5]) / 3 + 1;
- } else {
- select2[2] = (now3[0] + now3[2] + now3[4]) / 3;
- select2[3] = (now3[1] + now3[3] + now3[5]) / 3;
- }
- r.redrawHint("select", true);
- r.redraw();
- } else if (capture && e.touches[1] && !r.touchData.didSelect && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {
- e.preventDefault();
- r.data.bgActivePosistion = void 0;
- r.redrawHint("select", true);
- var draggedEles = r.dragData.touchDragEles;
- if (draggedEles) {
- r.redrawHint("drag", true);
- for (var i3 = 0; i3 < draggedEles.length; i3++) {
- var de_p = draggedEles[i3]._private;
- de_p.grabbed = false;
- de_p.rscratch.inDragLayer = false;
- }
- }
- var _start = r.touchData.start;
- var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop;
- var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop;
- var distance22 = distance2(f1x2, f1y2, f2x2, f2y2);
- var factor = distance22 / distance1;
- if (twoFingersStartInside) {
- var df1x = f1x2 - f1x1;
- var df1y = f1y2 - f1y1;
- var df2x = f2x2 - f2x1;
- var df2y = f2y2 - f2y1;
- var tx = (df1x + df2x) / 2;
- var ty = (df1y + df2y) / 2;
- var zoom1 = cy.zoom();
- var zoom2 = zoom1 * factor;
- var pan1 = cy.pan();
- var ctrx = modelCenter1[0] * zoom1 + pan1.x;
- var ctry = modelCenter1[1] * zoom1 + pan1.y;
- var pan2 = {
- x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx,
- y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry
};
- if (_start && _start.active()) {
- var draggedEles = r.dragData.touchDragEles;
- freeDraggedElements(draggedEles);
- r.redrawHint("drag", true);
- r.redrawHint("eles", true);
- _start.unactivate().emit("freeon");
- draggedEles.emit("free");
- if (r.dragData.didDrag) {
- _start.emit("dragfreeon");
- draggedEles.emit("dragfree");
- }
- }
- cy.viewport({
- zoom: zoom2,
- pan: pan2,
- cancelOnFailedZoom: true
- });
- cy.emit("pinchzoom");
- distance1 = distance22;
- f1x1 = f1x2;
- f1y1 = f1y2;
- f2x1 = f2x2;
- f2y1 = f2y2;
- r.pinching = true;
- }
- if (e.touches[0]) {
- var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
- now3[0] = pos[0];
- now3[1] = pos[1];
- }
- if (e.touches[1]) {
- var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
- now3[2] = pos[0];
- now3[3] = pos[1];
- }
- if (e.touches[2]) {
- var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
- now3[4] = pos[0];
- now3[5] = pos[1];
- }
- } else if (e.touches[0] && !r.touchData.didSelect) {
- var start2 = r.touchData.start;
- var last2 = r.touchData.last;
- var near;
- if (!r.hoverData.draggingEles && !r.swipePanning) {
- near = r.findNearestElement(now3[0], now3[1], true, true);
- }
- if (capture && start2 != null) {
- e.preventDefault();
- }
- if (capture && start2 != null && r.nodeIsDraggable(start2)) {
- if (isOverThresholdDrag) {
- var draggedEles = r.dragData.touchDragEles;
- var justStartedDrag = !r.dragData.didDrag;
- if (justStartedDrag) {
- addNodesToDrag(draggedEles, {
- inDragLayer: true
- });
- }
- r.dragData.didDrag = true;
- var totalShift = {
- x: 0,
- y: 0
- };
- if (number$12(disp[0]) && number$12(disp[1])) {
- totalShift.x += disp[0];
- totalShift.y += disp[1];
- if (justStartedDrag) {
- r.redrawHint("eles", true);
- var dragDelta = r.touchData.dragDelta;
- if (dragDelta && number$12(dragDelta[0]) && number$12(dragDelta[1])) {
- totalShift.x += dragDelta[0];
- totalShift.y += dragDelta[1];
+ Layout2.prototype.update = function(obj) {
+ if (obj == null) {
+ this.update2();
+ } else if (obj instanceof LNode) {
+ var node2 = obj;
+ if (node2.getChild() != null) {
+ var nodes6 = node2.getChild().getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ update(nodes6[i2]);
}
}
+ if (node2.vGraphObject != null) {
+ var vNode = node2.vGraphObject;
+ vNode.update(node2);
+ }
+ } else if (obj instanceof LEdge) {
+ var edge = obj;
+ if (edge.vGraphObject != null) {
+ var vEdge = edge.vGraphObject;
+ vEdge.update(edge);
+ }
+ } else if (obj instanceof LGraph) {
+ var graph = obj;
+ if (graph.vGraphObject != null) {
+ var vGraph = graph.vGraphObject;
+ vGraph.update(graph);
+ }
}
- r.hoverData.draggingEles = true;
- draggedEles.silentShift(totalShift).emit("position drag");
- r.redrawHint("drag", true);
- if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) {
- r.redrawHint("eles", true);
+ };
+ Layout2.prototype.initParameters = function() {
+ if (!this.isSubLayout) {
+ this.layoutQuality = LayoutConstants.QUALITY;
+ this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;
+ this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;
+ this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;
+ this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;
+ this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;
}
- r.redraw();
- } else {
- var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || [];
- if (dragDelta.length === 0) {
- dragDelta.push(disp[0]);
- dragDelta.push(disp[1]);
- } else {
- dragDelta[0] += disp[0];
- dragDelta[1] += disp[1];
+ if (this.animationDuringLayout) {
+ this.animationOnLayout = false;
}
- }
- }
- {
- triggerEvents(start2 || near, ["touchmove", "tapdrag", "vmousemove"], e, {
- x: now3[0],
- y: now3[1]
- });
- if ((!start2 || !start2.grabbed()) && near != last2) {
- if (last2) {
- last2.emit({
- originalEvent: e,
- type: "tapdragout",
- position: {
- x: now3[0],
- y: now3[1]
+ };
+ Layout2.prototype.transform = function(newLeftTop) {
+ if (newLeftTop == void 0) {
+ this.transform(new PointD(0, 0));
+ } else {
+ var trans = new Transform2();
+ var leftTop = this.graphManager.getRoot().updateLeftTop();
+ if (leftTop != null) {
+ trans.setWorldOrgX(newLeftTop.x);
+ trans.setWorldOrgY(newLeftTop.y);
+ trans.setDeviceOrgX(leftTop.x);
+ trans.setDeviceOrgY(leftTop.y);
+ var nodes6 = this.getAllNodes();
+ var node2;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ node2 = nodes6[i2];
+ node2.transform(trans);
}
- });
+ }
}
- if (near) {
- near.emit({
- originalEvent: e,
- type: "tapdragover",
- position: {
- x: now3[0],
- y: now3[1]
+ };
+ Layout2.prototype.positionNodesRandomly = function(graph) {
+ if (graph == void 0) {
+ this.positionNodesRandomly(this.getGraphManager().getRoot());
+ this.getGraphManager().getRoot().updateBounds(true);
+ } else {
+ var lNode;
+ var childGraph;
+ var nodes6 = graph.getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ lNode = nodes6[i2];
+ childGraph = lNode.getChild();
+ if (childGraph == null) {
+ lNode.scatter();
+ } else if (childGraph.getNodes().length == 0) {
+ lNode.scatter();
+ } else {
+ this.positionNodesRandomly(childGraph);
+ lNode.updateBounds();
}
- });
+ }
}
- }
- r.touchData.last = near;
- }
- if (capture) {
- for (var i3 = 0; i3 < now3.length; i3++) {
- if (now3[i3] && r.touchData.startPosition[i3] && isOverThresholdDrag) {
- r.touchData.singleTouchMoved = true;
+ };
+ Layout2.prototype.getFlatForest = function() {
+ var flatForest = [];
+ var isForest = true;
+ var allNodes = this.graphManager.getRoot().getNodes();
+ var isFlat = true;
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ if (allNodes[i2].getChild() != null) {
+ isFlat = false;
+ }
}
- }
- }
- if (capture && (start2 == null || start2.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {
- var allowPassthrough = allowPanningPassthrough(start2, r.touchData.starts);
- if (allowPassthrough) {
- e.preventDefault();
- if (!r.data.bgActivePosistion) {
- r.data.bgActivePosistion = array2point(r.touchData.startPosition);
+ if (!isFlat) {
+ return flatForest;
}
- if (r.swipePanning) {
- cy.panBy({
- x: disp[0] * zoom,
- y: disp[1] * zoom
- });
- cy.emit("dragpan");
- } else if (isOverThresholdDrag) {
- r.swipePanning = true;
- cy.panBy({
- x: dx * zoom,
- y: dy * zoom
- });
- cy.emit("dragpan");
- if (start2) {
- start2.unactivate();
- r.redrawHint("select", true);
- r.touchData.start = null;
+ var visited = /* @__PURE__ */ new Set();
+ var toBeVisited = [];
+ var parents4 = /* @__PURE__ */ new Map();
+ var unProcessedNodes = [];
+ unProcessedNodes = unProcessedNodes.concat(allNodes);
+ while (unProcessedNodes.length > 0 && isForest) {
+ toBeVisited.push(unProcessedNodes[0]);
+ while (toBeVisited.length > 0 && isForest) {
+ var currentNode = toBeVisited[0];
+ toBeVisited.splice(0, 1);
+ visited.add(currentNode);
+ var neighborEdges = currentNode.getEdges();
+ for (var i2 = 0; i2 < neighborEdges.length; i2++) {
+ var currentNeighbor = neighborEdges[i2].getOtherEnd(currentNode);
+ if (parents4.get(currentNode) != currentNeighbor) {
+ if (!visited.has(currentNeighbor)) {
+ toBeVisited.push(currentNeighbor);
+ parents4.set(currentNeighbor, currentNode);
+ } else {
+ isForest = false;
+ break;
+ }
+ }
+ }
+ }
+ if (!isForest) {
+ flatForest = [];
+ } else {
+ var temp = [].concat(_toConsumableArray(visited));
+ flatForest.push(temp);
+ for (var i2 = 0; i2 < temp.length; i2++) {
+ var value2 = temp[i2];
+ var index = unProcessedNodes.indexOf(value2);
+ if (index > -1) {
+ unProcessedNodes.splice(index, 1);
+ }
+ }
+ visited = /* @__PURE__ */ new Set();
+ parents4 = /* @__PURE__ */ new Map();
}
}
- }
- var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
- now3[0] = pos[0];
- now3[1] = pos[1];
- }
- }
- for (var j = 0; j < now3.length; j++) {
- earlier[j] = now3[j];
- }
- if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) {
- r.data.bgActivePosistion = void 0;
- r.redrawHint("select", true);
- r.redraw();
- }
- }, false);
- var touchcancelHandler;
- r.registerBinding(window, "touchcancel", touchcancelHandler = function touchcancelHandler2(e) {
- var start2 = r.touchData.start;
- r.touchData.capture = false;
- if (start2) {
- start2.unactivate();
- }
- });
- var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;
- r.registerBinding(window, "touchend", touchendHandler = function touchendHandler2(e) {
- var start2 = r.touchData.start;
- var capture = r.touchData.capture;
- if (capture) {
- if (e.touches.length === 0) {
- r.touchData.capture = false;
- }
- e.preventDefault();
- } else {
- return;
- }
- var select2 = r.selection;
- r.swipePanning = false;
- r.hoverData.draggingEles = false;
- var cy = r.cy;
- var zoom = cy.zoom();
- var now3 = r.touchData.now;
- var earlier = r.touchData.earlier;
- if (e.touches[0]) {
- var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
- now3[0] = pos[0];
- now3[1] = pos[1];
- }
- if (e.touches[1]) {
- var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
- now3[2] = pos[0];
- now3[3] = pos[1];
- }
- if (e.touches[2]) {
- var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
- now3[4] = pos[0];
- now3[5] = pos[1];
- }
- if (start2) {
- start2.unactivate();
- }
- var ctxTapend;
- if (r.touchData.cxt) {
- ctxTapend = {
- originalEvent: e,
- type: "cxttapend",
- position: {
- x: now3[0],
- y: now3[1]
- }
- };
- if (start2) {
- start2.emit(ctxTapend);
- } else {
- cy.emit(ctxTapend);
- }
- if (!r.touchData.cxtDragged) {
- var ctxTap = {
- originalEvent: e,
- type: "cxttap",
- position: {
- x: now3[0],
- y: now3[1]
- }
+ return flatForest;
};
- if (start2) {
- start2.emit(ctxTap);
- } else {
- cy.emit(ctxTap);
- }
- }
- if (r.touchData.start) {
- r.touchData.start._private.grabbed = false;
- }
- r.touchData.cxt = false;
- r.touchData.start = null;
- r.redraw();
- return;
- }
- if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) {
- r.touchData.selecting = false;
- var box = cy.collection(r.getAllInBox(select2[0], select2[1], select2[2], select2[3]));
- select2[0] = void 0;
- select2[1] = void 0;
- select2[2] = void 0;
- select2[3] = void 0;
- select2[4] = 0;
- r.redrawHint("select", true);
- cy.emit({
- type: "boxend",
- originalEvent: e,
- position: {
- x: now3[0],
- y: now3[1]
- }
- });
- var eleWouldBeSelected = function eleWouldBeSelected2(ele) {
- return ele.selectable() && !ele.selected();
- };
- box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
- if (box.nonempty()) {
- r.redrawHint("eles", true);
- }
- r.redraw();
- }
- if (start2 != null) {
- start2.unactivate();
- }
- if (e.touches[2]) {
- r.data.bgActivePosistion = void 0;
- r.redrawHint("select", true);
- } else if (e.touches[1])
- ;
- else if (e.touches[0])
- ;
- else if (!e.touches[0]) {
- r.data.bgActivePosistion = void 0;
- r.redrawHint("select", true);
- var draggedEles = r.dragData.touchDragEles;
- if (start2 != null) {
- var startWasGrabbed = start2._private.grabbed;
- freeDraggedElements(draggedEles);
- r.redrawHint("drag", true);
- r.redrawHint("eles", true);
- if (startWasGrabbed) {
- start2.emit("freeon");
- draggedEles.emit("free");
- if (r.dragData.didDrag) {
- start2.emit("dragfreeon");
- draggedEles.emit("dragfree");
- }
- }
- triggerEvents(start2, ["touchend", "tapend", "vmouseup", "tapdragout"], e, {
- x: now3[0],
- y: now3[1]
- });
- start2.unactivate();
- r.touchData.start = null;
- } else {
- var near = r.findNearestElement(now3[0], now3[1], true, true);
- triggerEvents(near, ["touchend", "tapend", "vmouseup", "tapdragout"], e, {
- x: now3[0],
- y: now3[1]
- });
- }
- var dx = r.touchData.startPosition[0] - now3[0];
- var dx2 = dx * dx;
- var dy = r.touchData.startPosition[1] - now3[1];
- var dy2 = dy * dy;
- var dist22 = dx2 + dy2;
- var rdist2 = dist22 * zoom * zoom;
- if (!r.touchData.singleTouchMoved) {
- if (!start2) {
- cy.$(":selected").unselect(["tapunselect"]);
- }
- triggerEvents(start2, ["tap", "vclick"], e, {
- x: now3[0],
- y: now3[1]
- });
- didDoubleTouch = false;
- if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {
- touchTimeout && clearTimeout(touchTimeout);
- didDoubleTouch = true;
- prevTouchTimeStamp = null;
- triggerEvents(start2, ["dbltap", "vdblclick"], e, {
- x: now3[0],
- y: now3[1]
- });
- } else {
- touchTimeout = setTimeout(function() {
- if (didDoubleTouch)
- return;
- triggerEvents(start2, ["onetap", "voneclick"], e, {
- x: now3[0],
- y: now3[1]
- });
- }, cy.multiClickDebounceTime());
- prevTouchTimeStamp = e.timeStamp;
- }
- }
- if (start2 != null && !r.dragData.didDrag && start2._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching) {
- if (cy.selectionType() === "single") {
- cy.$(isSelected).unmerge(start2).unselect(["tapunselect"]);
- start2.select(["tapselect"]);
- } else {
- if (start2.selected()) {
- start2.unselect(["tapunselect"]);
+ Layout2.prototype.createDummyNodesForBendpoints = function(edge) {
+ var dummyNodes = [];
+ var prev2 = edge.source;
+ var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);
+ for (var i2 = 0; i2 < edge.bendpoints.length; i2++) {
+ var dummyNode = this.newNode(null);
+ dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));
+ graph.add(dummyNode);
+ var dummyEdge = this.newEdge(null);
+ this.graphManager.add(dummyEdge, prev2, dummyNode);
+ dummyNodes.add(dummyNode);
+ prev2 = dummyNode;
+ }
+ var dummyEdge = this.newEdge(null);
+ this.graphManager.add(dummyEdge, prev2, edge.target);
+ this.edgeToDummyNodes.set(edge, dummyNodes);
+ if (edge.isInterGraph()) {
+ this.graphManager.remove(edge);
} else {
- start2.select(["tapselect"]);
+ graph.remove(edge);
}
- }
- r.redrawHint("eles", true);
- }
- r.touchData.singleTouchMoved = true;
- }
- for (var j = 0; j < now3.length; j++) {
- earlier[j] = now3[j];
- }
- r.dragData.didDrag = false;
- if (e.touches.length === 0) {
- r.touchData.dragDelta = [];
- r.touchData.startPosition = null;
- r.touchData.startGPosition = null;
- r.touchData.didSelect = false;
- }
- if (e.touches.length < 2) {
- if (e.touches.length === 1) {
- r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY];
- }
- r.pinching = false;
- r.redrawHint("eles", true);
- r.redraw();
- }
- }, false);
- if (typeof TouchEvent === "undefined") {
- var pointers = [];
- var makeTouch = function makeTouch2(e) {
- return {
- clientX: e.clientX,
- clientY: e.clientY,
- force: 1,
- identifier: e.pointerId,
- pageX: e.pageX,
- pageY: e.pageY,
- radiusX: e.width / 2,
- radiusY: e.height / 2,
- screenX: e.screenX,
- screenY: e.screenY,
- target: e.target
- };
- };
- var makePointer = function makePointer2(e) {
- return {
- event: e,
- touch: makeTouch(e)
- };
- };
- var addPointer = function addPointer2(e) {
- pointers.push(makePointer(e));
- };
- var removePointer = function removePointer2(e) {
- for (var i3 = 0; i3 < pointers.length; i3++) {
- var p2 = pointers[i3];
- if (p2.event.pointerId === e.pointerId) {
- pointers.splice(i3, 1);
- return;
- }
- }
- };
- var updatePointer = function updatePointer2(e) {
- var p2 = pointers.filter(function(p3) {
- return p3.event.pointerId === e.pointerId;
- })[0];
- p2.event = e;
- p2.touch = makeTouch(e);
- };
- var addTouchesToEvent = function addTouchesToEvent2(e) {
- e.touches = pointers.map(function(p2) {
- return p2.touch;
- });
- };
- var pointerIsMouse = function pointerIsMouse2(e) {
- return e.pointerType === "mouse" || e.pointerType === 4;
- };
- r.registerBinding(r.container, "pointerdown", function(e) {
- if (pointerIsMouse(e)) {
- return;
- }
- e.preventDefault();
- addPointer(e);
- addTouchesToEvent(e);
- touchstartHandler(e);
- });
- r.registerBinding(r.container, "pointerup", function(e) {
- if (pointerIsMouse(e)) {
- return;
- }
- removePointer(e);
- addTouchesToEvent(e);
- touchendHandler(e);
- });
- r.registerBinding(r.container, "pointercancel", function(e) {
- if (pointerIsMouse(e)) {
- return;
- }
- removePointer(e);
- addTouchesToEvent(e);
- touchcancelHandler(e);
- });
- r.registerBinding(r.container, "pointermove", function(e) {
- if (pointerIsMouse(e)) {
- return;
- }
- e.preventDefault();
- updatePointer(e);
- addTouchesToEvent(e);
- touchmoveHandler(e);
- });
- }
- };
- var BRp$2 = {};
- BRp$2.generatePolygon = function(name2, points) {
- return this.nodeShapes[name2] = {
- renderer: this,
- name: name2,
- points,
- draw: function draw2(context, centerX, centerY, width2, height2) {
- this.renderer.nodeShapeImpl("polygon", context, centerX, centerY, width2, height2, this.points);
- },
- intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
- return polygonIntersectLine(x2, y2, this.points, nodeX, nodeY, width2 / 2, height2 / 2, padding2);
- },
- checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
- return pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2, [0, -1], padding2);
- }
- };
- };
- BRp$2.generateEllipse = function() {
- return this.nodeShapes["ellipse"] = {
- renderer: this,
- name: "ellipse",
- draw: function draw2(context, centerX, centerY, width2, height2) {
- this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
- },
- intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
- return intersectLineEllipse(x2, y2, nodeX, nodeY, width2 / 2 + padding2, height2 / 2 + padding2);
- },
- checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
- return checkInEllipse(x2, y2, width2, height2, centerX, centerY, padding2);
- }
- };
- };
- BRp$2.generateRoundPolygon = function(name2, points) {
- var allPoints = new Array(points.length * 2);
- for (var i3 = 0; i3 < points.length / 2; i3++) {
- var sourceIndex = i3 * 2;
- var destIndex = void 0;
- if (i3 < points.length / 2 - 1) {
- destIndex = (i3 + 1) * 2;
- } else {
- destIndex = 0;
- }
- allPoints[i3 * 4] = points[sourceIndex];
- allPoints[i3 * 4 + 1] = points[sourceIndex + 1];
- var xDest = points[destIndex] - points[sourceIndex];
- var yDest = points[destIndex + 1] - points[sourceIndex + 1];
- var norm = Math.sqrt(xDest * xDest + yDest * yDest);
- allPoints[i3 * 4 + 2] = xDest / norm;
- allPoints[i3 * 4 + 3] = yDest / norm;
- }
- return this.nodeShapes[name2] = {
- renderer: this,
- name: name2,
- points: allPoints,
- draw: function draw2(context, centerX, centerY, width2, height2) {
- this.renderer.nodeShapeImpl("round-polygon", context, centerX, centerY, width2, height2, this.points);
- },
- intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
- return roundPolygonIntersectLine(x2, y2, this.points, nodeX, nodeY, width2, height2);
- },
- checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
- return pointInsideRoundPolygon(x2, y2, this.points, centerX, centerY, width2, height2);
- }
- };
- };
- BRp$2.generateRoundRectangle = function() {
- return this.nodeShapes["round-rectangle"] = this.nodeShapes["roundrectangle"] = {
- renderer: this,
- name: "round-rectangle",
- points: generateUnitNgonPointsFitToSquare(4, 0),
- draw: function draw2(context, centerX, centerY, width2, height2) {
- this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
- },
- intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
- return roundRectangleIntersectLine(x2, y2, nodeX, nodeY, width2, height2, padding2);
- },
- checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
- var cornerRadius = getRoundRectangleRadius(width2, height2);
- var diam = cornerRadius * 2;
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - diam, [0, -1], padding2)) {
- return true;
- }
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - diam, height2, [0, -1], padding2)) {
- return true;
- }
- if (checkInEllipse(x2, y2, diam, diam, centerX - width2 / 2 + cornerRadius, centerY - height2 / 2 + cornerRadius, padding2)) {
- return true;
- }
- if (checkInEllipse(x2, y2, diam, diam, centerX + width2 / 2 - cornerRadius, centerY - height2 / 2 + cornerRadius, padding2)) {
- return true;
- }
- if (checkInEllipse(x2, y2, diam, diam, centerX + width2 / 2 - cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
- return true;
- }
- if (checkInEllipse(x2, y2, diam, diam, centerX - width2 / 2 + cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
- return true;
- }
- return false;
- }
- };
- };
- BRp$2.generateCutRectangle = function() {
- return this.nodeShapes["cut-rectangle"] = this.nodeShapes["cutrectangle"] = {
- renderer: this,
- name: "cut-rectangle",
- cornerLength: getCutRectangleCornerLength(),
- points: generateUnitNgonPointsFitToSquare(4, 0),
- draw: function draw2(context, centerX, centerY, width2, height2) {
- this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
- },
- generateCutTrianglePts: function generateCutTrianglePts(width2, height2, centerX, centerY) {
- var cl = this.cornerLength;
- var hh = height2 / 2;
- var hw = width2 / 2;
- var xBegin = centerX - hw;
- var xEnd = centerX + hw;
- var yBegin = centerY - hh;
- var yEnd = centerY + hh;
- return {
- topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],
- topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],
- bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],
- bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]
- };
- },
- intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
- var cPts = this.generateCutTrianglePts(width2 + 2 * padding2, height2 + 2 * padding2, nodeX, nodeY);
- var pts2 = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);
- return polygonIntersectLine(x2, y2, pts2, nodeX, nodeY);
- },
- checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - 2 * this.cornerLength, [0, -1], padding2)) {
- return true;
- }
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - 2 * this.cornerLength, height2, [0, -1], padding2)) {
- return true;
- }
- var cutTrianglePts = this.generateCutTrianglePts(width2, height2, centerX, centerY);
- return pointInsidePolygonPoints(x2, y2, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x2, y2, cutTrianglePts.topRight) || pointInsidePolygonPoints(x2, y2, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x2, y2, cutTrianglePts.bottomLeft);
- }
- };
- };
- BRp$2.generateBarrel = function() {
- return this.nodeShapes["barrel"] = {
- renderer: this,
- name: "barrel",
- points: generateUnitNgonPointsFitToSquare(4, 0),
- draw: function draw2(context, centerX, centerY, width2, height2) {
- this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
- },
- intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
- var t02 = 0.15;
- var t12 = 0.5;
- var t22 = 0.85;
- var bPts = this.generateBarrelBezierPts(width2 + 2 * padding2, height2 + 2 * padding2, nodeX, nodeY);
- var approximateBarrelCurvePts = function approximateBarrelCurvePts2(pts3) {
- var m0 = qbezierPtAt({
- x: pts3[0],
- y: pts3[1]
- }, {
- x: pts3[2],
- y: pts3[3]
- }, {
- x: pts3[4],
- y: pts3[5]
- }, t02);
- var m1 = qbezierPtAt({
- x: pts3[0],
- y: pts3[1]
- }, {
- x: pts3[2],
- y: pts3[3]
- }, {
- x: pts3[4],
- y: pts3[5]
- }, t12);
- var m2 = qbezierPtAt({
- x: pts3[0],
- y: pts3[1]
- }, {
- x: pts3[2],
- y: pts3[3]
- }, {
- x: pts3[4],
- y: pts3[5]
- }, t22);
- return [pts3[0], pts3[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts3[4], pts3[5]];
- };
- var pts2 = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));
- return polygonIntersectLine(x2, y2, pts2, nodeX, nodeY);
- },
- generateBarrelBezierPts: function generateBarrelBezierPts(width2, height2, centerX, centerY) {
- var hh = height2 / 2;
- var hw = width2 / 2;
- var xBegin = centerX - hw;
- var xEnd = centerX + hw;
- var yBegin = centerY - hh;
- var yEnd = centerY + hh;
- var curveConstants = getBarrelCurveConstants(width2, height2);
- var hOffset = curveConstants.heightOffset;
- var wOffset = curveConstants.widthOffset;
- var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width2;
- var pts2 = {
- topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],
- topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],
- bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],
- bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]
- };
- pts2.topLeft.isTop = true;
- pts2.topRight.isTop = true;
- pts2.bottomLeft.isBottom = true;
- pts2.bottomRight.isBottom = true;
- return pts2;
- },
- checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
- var curveConstants = getBarrelCurveConstants(width2, height2);
- var hOffset = curveConstants.heightOffset;
- var wOffset = curveConstants.widthOffset;
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - 2 * hOffset, [0, -1], padding2)) {
- return true;
- }
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - 2 * wOffset, height2, [0, -1], padding2)) {
- return true;
- }
- var barrelCurvePts = this.generateBarrelBezierPts(width2, height2, centerX, centerY);
- var getCurveT = function getCurveT2(x3, y3, curvePts) {
- var x0 = curvePts[4];
- var x1 = curvePts[2];
- var x22 = curvePts[0];
- var y02 = curvePts[5];
- var y23 = curvePts[1];
- var xMin = Math.min(x0, x22);
- var xMax = Math.max(x0, x22);
- var yMin = Math.min(y02, y23);
- var yMax = Math.max(y02, y23);
- if (xMin <= x3 && x3 <= xMax && yMin <= y3 && y3 <= yMax) {
- var coeff = bezierPtsToQuadCoeff(x0, x1, x22);
- var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x3);
- var validRoots = roots.filter(function(r) {
- return 0 <= r && r <= 1;
- });
- if (validRoots.length > 0) {
- return validRoots[0];
+ return dummyNodes;
+ };
+ Layout2.prototype.createBendpointsFromDummyNodes = function() {
+ var edges5 = [];
+ edges5 = edges5.concat(this.graphManager.getAllEdges());
+ edges5 = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges5);
+ for (var k2 = 0; k2 < edges5.length; k2++) {
+ var lEdge = edges5[k2];
+ if (lEdge.bendpoints.length > 0) {
+ var path4 = this.edgeToDummyNodes.get(lEdge);
+ for (var i2 = 0; i2 < path4.length; i2++) {
+ var dummyNode = path4[i2];
+ var p3 = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());
+ var ebp = lEdge.bendpoints.get(i2);
+ ebp.x = p3.x;
+ ebp.y = p3.y;
+ dummyNode.getOwner().remove(dummyNode);
+ }
+ this.graphManager.add(lEdge, lEdge.source, lEdge.target);
+ }
}
+ };
+ Layout2.transform = function(sliderValue, defaultValue, minDiv, maxMul) {
+ if (minDiv != void 0 && maxMul != void 0) {
+ var value2 = defaultValue;
+ if (sliderValue <= 50) {
+ var minValue = defaultValue / minDiv;
+ value2 -= (defaultValue - minValue) / 50 * (50 - sliderValue);
+ } else {
+ var maxValue = defaultValue * maxMul;
+ value2 += (maxValue - defaultValue) / 50 * (sliderValue - 50);
+ }
+ return value2;
+ } else {
+ var a2, b2;
+ if (sliderValue <= 50) {
+ a2 = 9 * defaultValue / 500;
+ b2 = defaultValue / 10;
+ } else {
+ a2 = 9 * defaultValue / 50;
+ b2 = -8 * defaultValue;
+ }
+ return a2 * sliderValue + b2;
+ }
+ };
+ Layout2.findCenterOfTree = function(nodes6) {
+ var list2 = [];
+ list2 = list2.concat(nodes6);
+ var removedNodes = [];
+ var remainingDegrees = /* @__PURE__ */ new Map();
+ var foundCenter = false;
+ var centerNode = null;
+ if (list2.length == 1 || list2.length == 2) {
+ foundCenter = true;
+ centerNode = list2[0];
+ }
+ for (var i2 = 0; i2 < list2.length; i2++) {
+ var node2 = list2[i2];
+ var degree = node2.getNeighborsList().size;
+ remainingDegrees.set(node2, node2.getNeighborsList().size);
+ if (degree == 1) {
+ removedNodes.push(node2);
+ }
+ }
+ var tempList = [];
+ tempList = tempList.concat(removedNodes);
+ while (!foundCenter) {
+ var tempList2 = [];
+ tempList2 = tempList2.concat(tempList);
+ tempList = [];
+ for (var i2 = 0; i2 < list2.length; i2++) {
+ var node2 = list2[i2];
+ var index = list2.indexOf(node2);
+ if (index >= 0) {
+ list2.splice(index, 1);
+ }
+ var neighbours = node2.getNeighborsList();
+ neighbours.forEach(function(neighbour) {
+ if (removedNodes.indexOf(neighbour) < 0) {
+ var otherDegree = remainingDegrees.get(neighbour);
+ var newDegree = otherDegree - 1;
+ if (newDegree == 1) {
+ tempList.push(neighbour);
+ }
+ remainingDegrees.set(neighbour, newDegree);
+ }
+ });
+ }
+ removedNodes = removedNodes.concat(tempList);
+ if (list2.length == 1 || list2.length == 2) {
+ foundCenter = true;
+ centerNode = list2[0];
+ }
+ }
+ return centerNode;
+ };
+ Layout2.prototype.setGraphManager = function(gm) {
+ this.graphManager = gm;
+ };
+ module3.exports = Layout2;
+ },
+ /* 16 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function RandomSeed() {
}
- return null;
- };
- var curveRegions = Object.keys(barrelCurvePts);
- for (var i3 = 0; i3 < curveRegions.length; i3++) {
- var corner = curveRegions[i3];
- var cornerPts = barrelCurvePts[corner];
- var t4 = getCurveT(x2, y2, cornerPts);
- if (t4 == null) {
- continue;
- }
- var y0 = cornerPts[5];
- var y1 = cornerPts[3];
- var y22 = cornerPts[1];
- var bezY = qbezierAt(y0, y1, y22, t4);
- if (cornerPts.isTop && bezY <= y2) {
- return true;
- }
- if (cornerPts.isBottom && y2 <= bezY) {
- return true;
- }
- }
- return false;
- }
- };
- };
- BRp$2.generateBottomRoundrectangle = function() {
- return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes["bottomroundrectangle"] = {
- renderer: this,
- name: "bottom-round-rectangle",
- points: generateUnitNgonPointsFitToSquare(4, 0),
- draw: function draw2(context, centerX, centerY, width2, height2) {
- this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
- },
- intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
- var topStartX = nodeX - (width2 / 2 + padding2);
- var topStartY = nodeY - (height2 / 2 + padding2);
- var topEndY = topStartY;
- var topEndX = nodeX + (width2 / 2 + padding2);
- var topIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
- if (topIntersections.length > 0) {
- return topIntersections;
- }
- return roundRectangleIntersectLine(x2, y2, nodeX, nodeY, width2, height2, padding2);
- },
- checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
- var cornerRadius = getRoundRectangleRadius(width2, height2);
- var diam = 2 * cornerRadius;
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - diam, [0, -1], padding2)) {
- return true;
- }
- if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - diam, height2, [0, -1], padding2)) {
- return true;
- }
- var outerWidth = width2 / 2 + 2 * padding2;
- var outerHeight = height2 / 2 + 2 * padding2;
- var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];
- if (pointInsidePolygonPoints(x2, y2, points)) {
- return true;
- }
- if (checkInEllipse(x2, y2, diam, diam, centerX + width2 / 2 - cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
- return true;
- }
- if (checkInEllipse(x2, y2, diam, diam, centerX - width2 / 2 + cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
- return true;
- }
- return false;
- }
- };
- };
- BRp$2.registerNodeShapes = function() {
- var nodeShapes = this.nodeShapes = {};
- var renderer3 = this;
- this.generateEllipse();
- this.generatePolygon("triangle", generateUnitNgonPointsFitToSquare(3, 0));
- this.generateRoundPolygon("round-triangle", generateUnitNgonPointsFitToSquare(3, 0));
- this.generatePolygon("rectangle", generateUnitNgonPointsFitToSquare(4, 0));
- nodeShapes["square"] = nodeShapes["rectangle"];
- this.generateRoundRectangle();
- this.generateCutRectangle();
- this.generateBarrel();
- this.generateBottomRoundrectangle();
- {
- var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];
- this.generatePolygon("diamond", diamondPoints);
- this.generateRoundPolygon("round-diamond", diamondPoints);
- }
- this.generatePolygon("pentagon", generateUnitNgonPointsFitToSquare(5, 0));
- this.generateRoundPolygon("round-pentagon", generateUnitNgonPointsFitToSquare(5, 0));
- this.generatePolygon("hexagon", generateUnitNgonPointsFitToSquare(6, 0));
- this.generateRoundPolygon("round-hexagon", generateUnitNgonPointsFitToSquare(6, 0));
- this.generatePolygon("heptagon", generateUnitNgonPointsFitToSquare(7, 0));
- this.generateRoundPolygon("round-heptagon", generateUnitNgonPointsFitToSquare(7, 0));
- this.generatePolygon("octagon", generateUnitNgonPointsFitToSquare(8, 0));
- this.generateRoundPolygon("round-octagon", generateUnitNgonPointsFitToSquare(8, 0));
- var star5Points = new Array(20);
- {
- var outerPoints = generateUnitNgonPoints(5, 0);
- var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);
- var innerRadius = 0.5 * (3 - Math.sqrt(5));
- innerRadius *= 1.57;
- for (var i3 = 0; i3 < innerPoints.length / 2; i3++) {
- innerPoints[i3 * 2] *= innerRadius;
- innerPoints[i3 * 2 + 1] *= innerRadius;
- }
- for (var i3 = 0; i3 < 20 / 4; i3++) {
- star5Points[i3 * 4] = outerPoints[i3 * 2];
- star5Points[i3 * 4 + 1] = outerPoints[i3 * 2 + 1];
- star5Points[i3 * 4 + 2] = innerPoints[i3 * 2];
- star5Points[i3 * 4 + 3] = innerPoints[i3 * 2 + 1];
- }
- }
- star5Points = fitPolygonToSquare(star5Points);
- this.generatePolygon("star", star5Points);
- this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]);
- this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);
- this.nodeShapes["concavehexagon"] = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);
- {
- var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];
- this.generatePolygon("tag", tagPoints);
- this.generateRoundPolygon("round-tag", tagPoints);
- }
- nodeShapes.makePolygon = function(points) {
- var key = points.join("$");
- var name2 = "polygon-" + key;
- var shape;
- if (shape = this[name2]) {
- return shape;
- }
- return renderer3.generatePolygon(name2, points);
- };
- };
- var BRp$1 = {};
- BRp$1.timeToRender = function() {
- return this.redrawTotalTime / this.redrawCount;
- };
- BRp$1.redraw = function(options2) {
- options2 = options2 || staticEmptyObject();
- var r = this;
- if (r.averageRedrawTime === void 0) {
- r.averageRedrawTime = 0;
- }
- if (r.lastRedrawTime === void 0) {
- r.lastRedrawTime = 0;
- }
- if (r.lastDrawTime === void 0) {
- r.lastDrawTime = 0;
- }
- r.requestedFrame = true;
- r.renderOptions = options2;
- };
- BRp$1.beforeRender = function(fn2, priority) {
- if (this.destroyed) {
- return;
- }
- if (priority == null) {
- error("Priority is not optional for beforeRender");
- }
- var cbs = this.beforeRenderCallbacks;
- cbs.push({
- fn: fn2,
- priority
- });
- cbs.sort(function(a, b) {
- return b.priority - a.priority;
- });
- };
- var beforeRenderCallbacks = function beforeRenderCallbacks2(r, willDraw, startTime) {
- var cbs = r.beforeRenderCallbacks;
- for (var i3 = 0; i3 < cbs.length; i3++) {
- cbs[i3].fn(willDraw, startTime);
- }
- };
- BRp$1.startRenderLoop = function() {
- var r = this;
- var cy = r.cy;
- if (r.renderLoopStarted) {
- return;
- } else {
- r.renderLoopStarted = true;
- }
- var renderFn = function renderFn2(requestTime) {
- if (r.destroyed) {
- return;
- }
- if (cy.batching())
- ;
- else if (r.requestedFrame && !r.skipFrame) {
- beforeRenderCallbacks(r, true, requestTime);
- var startTime = performanceNow();
- r.render(r.renderOptions);
- var endTime = r.lastDrawTime = performanceNow();
- if (r.averageRedrawTime === void 0) {
- r.averageRedrawTime = endTime - startTime;
- }
- if (r.redrawCount === void 0) {
- r.redrawCount = 0;
- }
- r.redrawCount++;
- if (r.redrawTotalTime === void 0) {
- r.redrawTotalTime = 0;
- }
- var duration = endTime - startTime;
- r.redrawTotalTime += duration;
- r.lastRedrawTime = duration;
- r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2;
- r.requestedFrame = false;
- } else {
- beforeRenderCallbacks(r, false, requestTime);
- }
- r.skipFrame = false;
- requestAnimationFrame2(renderFn2);
- };
- requestAnimationFrame2(renderFn);
- };
- var BaseRenderer = function BaseRenderer2(options2) {
- this.init(options2);
- };
- var BR = BaseRenderer;
- var BRp = BR.prototype;
- BRp.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"];
- BRp.init = function(options2) {
- var r = this;
- r.options = options2;
- r.cy = options2.cy;
- var ctr = r.container = options2.cy.container();
- if (window$1) {
- var document2 = window$1.document;
- var head2 = document2.head;
- var stylesheetId = "__________cytoscape_stylesheet";
- var className = "__________cytoscape_container";
- var stylesheetAlreadyExists = document2.getElementById(stylesheetId) != null;
- if (ctr.className.indexOf(className) < 0) {
- ctr.className = (ctr.className || "") + " " + className;
- }
- if (!stylesheetAlreadyExists) {
- var stylesheet2 = document2.createElement("style");
- stylesheet2.id = stylesheetId;
- stylesheet2.innerHTML = "." + className + " { position: relative; }";
- head2.insertBefore(stylesheet2, head2.children[0]);
- }
- var computedStyle = window$1.getComputedStyle(ctr);
- var position3 = computedStyle.getPropertyValue("position");
- if (position3 === "static") {
- warn("A Cytoscape container has style position:static and so can not use UI extensions properly");
- }
- }
- r.selection = [void 0, void 0, void 0, void 0, 0];
- r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];
- r.hoverData = {
- down: null,
- last: null,
- downTime: null,
- triggerMode: null,
- dragging: false,
- initialPan: [null, null],
- capture: false
- };
- r.dragData = {
- possibleDragElements: []
- };
- r.touchData = {
- start: null,
- capture: false,
- // These 3 fields related to tap, taphold events
- startPosition: [null, null, null, null, null, null],
- singleTouchStartTime: null,
- singleTouchMoved: true,
- now: [null, null, null, null, null, null],
- earlier: [null, null, null, null, null, null]
- };
- r.redraws = 0;
- r.showFps = options2.showFps;
- r.debug = options2.debug;
- r.hideEdgesOnViewport = options2.hideEdgesOnViewport;
- r.textureOnViewport = options2.textureOnViewport;
- r.wheelSensitivity = options2.wheelSensitivity;
- r.motionBlurEnabled = options2.motionBlur;
- r.forcedPixelRatio = number$12(options2.pixelRatio) ? options2.pixelRatio : null;
- r.motionBlur = options2.motionBlur;
- r.motionBlurOpacity = options2.motionBlurOpacity;
- r.motionBlurTransparency = 1 - r.motionBlurOpacity;
- r.motionBlurPxRatio = 1;
- r.mbPxRBlurry = 1;
- r.minMbLowQualFrames = 4;
- r.fullQualityMb = false;
- r.clearedForMotionBlur = [];
- r.desktopTapThreshold = options2.desktopTapThreshold;
- r.desktopTapThreshold2 = options2.desktopTapThreshold * options2.desktopTapThreshold;
- r.touchTapThreshold = options2.touchTapThreshold;
- r.touchTapThreshold2 = options2.touchTapThreshold * options2.touchTapThreshold;
- r.tapholdDuration = 500;
- r.bindings = [];
- r.beforeRenderCallbacks = [];
- r.beforeRenderPriorities = {
- // higher priority execs before lower one
- animations: 400,
- eleCalcs: 300,
- eleTxrDeq: 200,
- lyrTxrDeq: 150,
- lyrTxrSkip: 100
- };
- r.registerNodeShapes();
- r.registerArrowShapes();
- r.registerCalculationListeners();
- };
- BRp.notify = function(eventName, eles) {
- var r = this;
- var cy = r.cy;
- if (this.destroyed) {
- return;
- }
- if (eventName === "init") {
- r.load();
- return;
- }
- if (eventName === "destroy") {
- r.destroy();
- return;
- }
- if (eventName === "add" || eventName === "remove" || eventName === "move" && cy.hasCompoundNodes() || eventName === "load" || eventName === "zorder" || eventName === "mount") {
- r.invalidateCachedZSortedEles();
- }
- if (eventName === "viewport") {
- r.redrawHint("select", true);
- }
- if (eventName === "load" || eventName === "resize" || eventName === "mount") {
- r.invalidateContainerClientCoordsCache();
- r.matchCanvasSize(r.container);
- }
- r.redrawHint("eles", true);
- r.redrawHint("drag", true);
- this.startRenderLoop();
- this.redraw();
- };
- BRp.destroy = function() {
- var r = this;
- r.destroyed = true;
- r.cy.stopAnimationLoop();
- for (var i3 = 0; i3 < r.bindings.length; i3++) {
- var binding = r.bindings[i3];
- var b = binding;
- var tgt = b.target;
- (tgt.off || tgt.removeEventListener).apply(tgt, b.args);
- }
- r.bindings = [];
- r.beforeRenderCallbacks = [];
- r.onUpdateEleCalcsFns = [];
- if (r.removeObserver) {
- r.removeObserver.disconnect();
- }
- if (r.styleObserver) {
- r.styleObserver.disconnect();
- }
- if (r.resizeObserver) {
- r.resizeObserver.disconnect();
- }
- if (r.labelCalcDiv) {
- try {
- document.body.removeChild(r.labelCalcDiv);
- } catch (e) {
- }
- }
- };
- BRp.isHeadless = function() {
- return false;
- };
- [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function(props) {
- extend2(BRp, props);
- });
- var fullFpsTime = 1e3 / 60;
- var defs = {
- setupDequeueing: function setupDequeueing(opts) {
- return function setupDequeueingImpl() {
- var self2 = this;
- var r = this.renderer;
- if (self2.dequeueingSetup) {
- return;
- } else {
- self2.dequeueingSetup = true;
- }
- var queueRedraw = debounce_1(function() {
- r.redrawHint("eles", true);
- r.redrawHint("drag", true);
- r.redraw();
- }, opts.deqRedrawThreshold);
- var dequeue = function dequeue2(willDraw, frameStartTime) {
- var startTime = performanceNow();
- var avgRenderTime = r.averageRedrawTime;
- var renderTime = r.lastRedrawTime;
- var deqd = [];
- var extent = r.cy.extent();
- var pixelRatio = r.getPixelRatio();
- if (!willDraw) {
- r.flushRenderedStyleQueue();
- }
- while (true) {
- var now3 = performanceNow();
- var duration = now3 - startTime;
- var frameDuration = now3 - frameStartTime;
- if (renderTime < fullFpsTime) {
- var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);
- if (frameDuration >= opts.deqFastCost * timeAvailable) {
- break;
+ __name(RandomSeed, "RandomSeed");
+ RandomSeed.seed = 1;
+ RandomSeed.x = 0;
+ RandomSeed.nextDouble = function() {
+ RandomSeed.x = Math.sin(RandomSeed.seed++) * 1e4;
+ return RandomSeed.x - Math.floor(RandomSeed.x);
+ };
+ module3.exports = RandomSeed;
+ },
+ /* 17 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var PointD = __webpack_require__(4);
+ function Transform2(x5, y5) {
+ this.lworldOrgX = 0;
+ this.lworldOrgY = 0;
+ this.ldeviceOrgX = 0;
+ this.ldeviceOrgY = 0;
+ this.lworldExtX = 1;
+ this.lworldExtY = 1;
+ this.ldeviceExtX = 1;
+ this.ldeviceExtY = 1;
+ }
+ __name(Transform2, "Transform");
+ Transform2.prototype.getWorldOrgX = function() {
+ return this.lworldOrgX;
+ };
+ Transform2.prototype.setWorldOrgX = function(wox) {
+ this.lworldOrgX = wox;
+ };
+ Transform2.prototype.getWorldOrgY = function() {
+ return this.lworldOrgY;
+ };
+ Transform2.prototype.setWorldOrgY = function(woy) {
+ this.lworldOrgY = woy;
+ };
+ Transform2.prototype.getWorldExtX = function() {
+ return this.lworldExtX;
+ };
+ Transform2.prototype.setWorldExtX = function(wex) {
+ this.lworldExtX = wex;
+ };
+ Transform2.prototype.getWorldExtY = function() {
+ return this.lworldExtY;
+ };
+ Transform2.prototype.setWorldExtY = function(wey) {
+ this.lworldExtY = wey;
+ };
+ Transform2.prototype.getDeviceOrgX = function() {
+ return this.ldeviceOrgX;
+ };
+ Transform2.prototype.setDeviceOrgX = function(dox) {
+ this.ldeviceOrgX = dox;
+ };
+ Transform2.prototype.getDeviceOrgY = function() {
+ return this.ldeviceOrgY;
+ };
+ Transform2.prototype.setDeviceOrgY = function(doy) {
+ this.ldeviceOrgY = doy;
+ };
+ Transform2.prototype.getDeviceExtX = function() {
+ return this.ldeviceExtX;
+ };
+ Transform2.prototype.setDeviceExtX = function(dex) {
+ this.ldeviceExtX = dex;
+ };
+ Transform2.prototype.getDeviceExtY = function() {
+ return this.ldeviceExtY;
+ };
+ Transform2.prototype.setDeviceExtY = function(dey) {
+ this.ldeviceExtY = dey;
+ };
+ Transform2.prototype.transformX = function(x5) {
+ var xDevice = 0;
+ var worldExtX = this.lworldExtX;
+ if (worldExtX != 0) {
+ xDevice = this.ldeviceOrgX + (x5 - this.lworldOrgX) * this.ldeviceExtX / worldExtX;
+ }
+ return xDevice;
+ };
+ Transform2.prototype.transformY = function(y5) {
+ var yDevice = 0;
+ var worldExtY = this.lworldExtY;
+ if (worldExtY != 0) {
+ yDevice = this.ldeviceOrgY + (y5 - this.lworldOrgY) * this.ldeviceExtY / worldExtY;
+ }
+ return yDevice;
+ };
+ Transform2.prototype.inverseTransformX = function(x5) {
+ var xWorld = 0;
+ var deviceExtX = this.ldeviceExtX;
+ if (deviceExtX != 0) {
+ xWorld = this.lworldOrgX + (x5 - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;
+ }
+ return xWorld;
+ };
+ Transform2.prototype.inverseTransformY = function(y5) {
+ var yWorld = 0;
+ var deviceExtY = this.ldeviceExtY;
+ if (deviceExtY != 0) {
+ yWorld = this.lworldOrgY + (y5 - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;
+ }
+ return yWorld;
+ };
+ Transform2.prototype.inverseTransformPoint = function(inPoint) {
+ var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));
+ return outPoint;
+ };
+ module3.exports = Transform2;
+ },
+ /* 18 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function _toConsumableArray(arr) {
+ if (Array.isArray(arr)) {
+ for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) {
+ arr2[i2] = arr[i2];
}
+ return arr2;
} else {
- if (willDraw) {
- if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {
- break;
+ return Array.from(arr);
+ }
+ }
+ __name(_toConsumableArray, "_toConsumableArray");
+ var Layout2 = __webpack_require__(15);
+ var FDLayoutConstants = __webpack_require__(7);
+ var LayoutConstants = __webpack_require__(0);
+ var IGeometry = __webpack_require__(8);
+ var IMath = __webpack_require__(9);
+ function FDLayout() {
+ Layout2.call(this);
+ this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
+ this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
+ this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
+ this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
+ this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
+ this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
+ this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
+ this.displacementThresholdPerNode = 3 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;
+ this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ this.totalDisplacement = 0;
+ this.oldTotalDisplacement = 0;
+ this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;
+ }
+ __name(FDLayout, "FDLayout");
+ FDLayout.prototype = Object.create(Layout2.prototype);
+ for (var prop in Layout2) {
+ FDLayout[prop] = Layout2[prop];
+ }
+ FDLayout.prototype.initParameters = function() {
+ Layout2.prototype.initParameters.call(this, arguments);
+ this.totalIterations = 0;
+ this.notAnimatedIterations = 0;
+ this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;
+ this.grid = [];
+ };
+ FDLayout.prototype.calcIdealEdgeLengths = function() {
+ var edge;
+ var lcaDepth;
+ var source;
+ var target;
+ var sizeOfSourceInLca;
+ var sizeOfTargetInLca;
+ var allEdges = this.getGraphManager().getAllEdges();
+ for (var i2 = 0; i2 < allEdges.length; i2++) {
+ edge = allEdges[i2];
+ edge.idealLength = this.idealEdgeLength;
+ if (edge.isInterGraph) {
+ source = edge.getSource();
+ target = edge.getTarget();
+ sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();
+ sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();
+ if (this.useSmartIdealEdgeLengthCalculation) {
+ edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;
}
- } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {
- break;
+ lcaDepth = edge.getLca().getInclusionTreeDepth();
+ edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);
}
}
- var thisDeqd = opts.deq(self2, pixelRatio, extent);
- if (thisDeqd.length > 0) {
- for (var i3 = 0; i3 < thisDeqd.length; i3++) {
- deqd.push(thisDeqd[i3]);
+ };
+ FDLayout.prototype.initSpringEmbedder = function() {
+ var s2 = this.getAllNodes().length;
+ if (this.incremental) {
+ if (s2 > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
+ this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s2 - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
}
+ this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;
} else {
- break;
+ if (s2 > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
+ this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1 - (s2 - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
+ } else {
+ this.coolingFactor = 1;
+ }
+ this.initialCoolingFactor = this.coolingFactor;
+ this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;
}
- }
- if (deqd.length > 0) {
- opts.onDeqd(self2, deqd);
- if (!willDraw && opts.shouldRedraw(self2, deqd, pixelRatio, extent)) {
- queueRedraw();
+ this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);
+ this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;
+ this.repulsionRange = this.calcRepulsionRange();
+ };
+ FDLayout.prototype.calcSpringForces = function() {
+ var lEdges = this.getAllEdges();
+ var edge;
+ for (var i2 = 0; i2 < lEdges.length; i2++) {
+ edge = lEdges[i2];
+ this.calcSpringForce(edge, edge.idealLength);
}
+ };
+ FDLayout.prototype.calcRepulsionForces = function() {
+ var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
+ var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
+ var i2, j2;
+ var nodeA, nodeB;
+ var lNodes = this.getAllNodes();
+ var processedNodeSet;
+ if (this.useFRGridVariant) {
+ if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {
+ this.updateGrid();
+ }
+ processedNodeSet = /* @__PURE__ */ new Set();
+ for (i2 = 0; i2 < lNodes.length; i2++) {
+ nodeA = lNodes[i2];
+ this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);
+ processedNodeSet.add(nodeA);
+ }
+ } else {
+ for (i2 = 0; i2 < lNodes.length; i2++) {
+ nodeA = lNodes[i2];
+ for (j2 = i2 + 1; j2 < lNodes.length; j2++) {
+ nodeB = lNodes[j2];
+ if (nodeA.getOwner() != nodeB.getOwner()) {
+ continue;
+ }
+ this.calcRepulsionForce(nodeA, nodeB);
+ }
+ }
+ }
+ };
+ FDLayout.prototype.calcGravitationalForces = function() {
+ var node2;
+ var lNodes = this.getAllNodesToApplyGravitation();
+ for (var i2 = 0; i2 < lNodes.length; i2++) {
+ node2 = lNodes[i2];
+ this.calcGravitationalForce(node2);
+ }
+ };
+ FDLayout.prototype.moveNodes = function() {
+ var lNodes = this.getAllNodes();
+ var node2;
+ for (var i2 = 0; i2 < lNodes.length; i2++) {
+ node2 = lNodes[i2];
+ node2.move();
+ }
+ };
+ FDLayout.prototype.calcSpringForce = function(edge, idealLength) {
+ var sourceNode = edge.getSource();
+ var targetNode = edge.getTarget();
+ var length2;
+ var springForce;
+ var springForceX;
+ var springForceY;
+ if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {
+ edge.updateLengthSimple();
+ } else {
+ edge.updateLength();
+ if (edge.isOverlapingSourceAndTarget) {
+ return;
+ }
+ }
+ length2 = edge.getLength();
+ if (length2 == 0) return;
+ springForce = this.springConstant * (length2 - idealLength);
+ springForceX = springForce * (edge.lengthX / length2);
+ springForceY = springForce * (edge.lengthY / length2);
+ sourceNode.springForceX += springForceX;
+ sourceNode.springForceY += springForceY;
+ targetNode.springForceX -= springForceX;
+ targetNode.springForceY -= springForceY;
+ };
+ FDLayout.prototype.calcRepulsionForce = function(nodeA, nodeB) {
+ var rectA = nodeA.getRect();
+ var rectB = nodeB.getRect();
+ var overlapAmount = new Array(2);
+ var clipPoints = new Array(4);
+ var distanceX;
+ var distanceY;
+ var distanceSquared;
+ var distance2;
+ var repulsionForce;
+ var repulsionForceX;
+ var repulsionForceY;
+ if (rectA.intersects(rectB)) {
+ IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2);
+ repulsionForceX = 2 * overlapAmount[0];
+ repulsionForceY = 2 * overlapAmount[1];
+ var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);
+ nodeA.repulsionForceX -= childrenConstant * repulsionForceX;
+ nodeA.repulsionForceY -= childrenConstant * repulsionForceY;
+ nodeB.repulsionForceX += childrenConstant * repulsionForceX;
+ nodeB.repulsionForceY += childrenConstant * repulsionForceY;
+ } else {
+ if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) {
+ distanceX = rectB.getCenterX() - rectA.getCenterX();
+ distanceY = rectB.getCenterY() - rectA.getCenterY();
+ } else {
+ IGeometry.getIntersection(rectA, rectB, clipPoints);
+ distanceX = clipPoints[2] - clipPoints[0];
+ distanceY = clipPoints[3] - clipPoints[1];
+ }
+ if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {
+ distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;
+ }
+ if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {
+ distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;
+ }
+ distanceSquared = distanceX * distanceX + distanceY * distanceY;
+ distance2 = Math.sqrt(distanceSquared);
+ repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;
+ repulsionForceX = repulsionForce * distanceX / distance2;
+ repulsionForceY = repulsionForce * distanceY / distance2;
+ nodeA.repulsionForceX -= repulsionForceX;
+ nodeA.repulsionForceY -= repulsionForceY;
+ nodeB.repulsionForceX += repulsionForceX;
+ nodeB.repulsionForceY += repulsionForceY;
+ }
+ };
+ FDLayout.prototype.calcGravitationalForce = function(node2) {
+ var ownerGraph;
+ var ownerCenterX;
+ var ownerCenterY;
+ var distanceX;
+ var distanceY;
+ var absDistanceX;
+ var absDistanceY;
+ var estimatedSize;
+ ownerGraph = node2.getOwner();
+ ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;
+ ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;
+ distanceX = node2.getCenterX() - ownerCenterX;
+ distanceY = node2.getCenterY() - ownerCenterY;
+ absDistanceX = Math.abs(distanceX) + node2.getWidth() / 2;
+ absDistanceY = Math.abs(distanceY) + node2.getHeight() / 2;
+ if (node2.getOwner() == this.graphManager.getRoot()) {
+ estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;
+ if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {
+ node2.gravitationForceX = -this.gravityConstant * distanceX;
+ node2.gravitationForceY = -this.gravityConstant * distanceY;
+ }
+ } else {
+ estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;
+ if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {
+ node2.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;
+ node2.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;
+ }
+ }
+ };
+ FDLayout.prototype.isConverged = function() {
+ var converged;
+ var oscilating = false;
+ if (this.totalIterations > this.maxIterations / 3) {
+ oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;
+ }
+ converged = this.totalDisplacement < this.totalDisplacementThreshold;
+ this.oldTotalDisplacement = this.totalDisplacement;
+ return converged || oscilating;
+ };
+ FDLayout.prototype.animate = function() {
+ if (this.animationDuringLayout && !this.isSubLayout) {
+ if (this.notAnimatedIterations == this.animationPeriod) {
+ this.update();
+ this.notAnimatedIterations = 0;
+ } else {
+ this.notAnimatedIterations++;
+ }
+ }
+ };
+ FDLayout.prototype.calcNoOfChildrenForAllNodes = function() {
+ var node2;
+ var allNodes = this.graphManager.getAllNodes();
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ node2 = allNodes[i2];
+ node2.noOfChildren = node2.getNoOfChildren();
+ }
+ };
+ FDLayout.prototype.calcGrid = function(graph) {
+ var sizeX = 0;
+ var sizeY = 0;
+ sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));
+ sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));
+ var grid = new Array(sizeX);
+ for (var i2 = 0; i2 < sizeX; i2++) {
+ grid[i2] = new Array(sizeY);
+ }
+ for (var i2 = 0; i2 < sizeX; i2++) {
+ for (var j2 = 0; j2 < sizeY; j2++) {
+ grid[i2][j2] = new Array();
+ }
+ }
+ return grid;
+ };
+ FDLayout.prototype.addNodeToGrid = function(v3, left3, top2) {
+ var startX2 = 0;
+ var finishX = 0;
+ var startY2 = 0;
+ var finishY = 0;
+ startX2 = parseInt(Math.floor((v3.getRect().x - left3) / this.repulsionRange));
+ finishX = parseInt(Math.floor((v3.getRect().width + v3.getRect().x - left3) / this.repulsionRange));
+ startY2 = parseInt(Math.floor((v3.getRect().y - top2) / this.repulsionRange));
+ finishY = parseInt(Math.floor((v3.getRect().height + v3.getRect().y - top2) / this.repulsionRange));
+ for (var i2 = startX2; i2 <= finishX; i2++) {
+ for (var j2 = startY2; j2 <= finishY; j2++) {
+ this.grid[i2][j2].push(v3);
+ v3.setGridCoordinates(startX2, finishX, startY2, finishY);
+ }
+ }
+ };
+ FDLayout.prototype.updateGrid = function() {
+ var i2;
+ var nodeA;
+ var lNodes = this.getAllNodes();
+ this.grid = this.calcGrid(this.graphManager.getRoot());
+ for (i2 = 0; i2 < lNodes.length; i2++) {
+ nodeA = lNodes[i2];
+ this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());
+ }
+ };
+ FDLayout.prototype.calculateRepulsionForceOfANode = function(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {
+ if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {
+ var surrounding = /* @__PURE__ */ new Set();
+ nodeA.surrounding = new Array();
+ var nodeB;
+ var grid = this.grid;
+ for (var i2 = nodeA.startX - 1; i2 < nodeA.finishX + 2; i2++) {
+ for (var j2 = nodeA.startY - 1; j2 < nodeA.finishY + 2; j2++) {
+ if (!(i2 < 0 || j2 < 0 || i2 >= grid.length || j2 >= grid[0].length)) {
+ for (var k2 = 0; k2 < grid[i2][j2].length; k2++) {
+ nodeB = grid[i2][j2][k2];
+ if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {
+ continue;
+ }
+ if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {
+ var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);
+ var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);
+ if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {
+ surrounding.add(nodeB);
+ }
+ }
+ }
+ }
+ }
+ }
+ nodeA.surrounding = [].concat(_toConsumableArray(surrounding));
+ }
+ for (i2 = 0; i2 < nodeA.surrounding.length; i2++) {
+ this.calcRepulsionForce(nodeA, nodeA.surrounding[i2]);
+ }
+ };
+ FDLayout.prototype.calcRepulsionRange = function() {
+ return 0;
+ };
+ module3.exports = FDLayout;
+ },
+ /* 19 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LEdge = __webpack_require__(1);
+ var FDLayoutConstants = __webpack_require__(7);
+ function FDLayoutEdge(source, target, vEdge) {
+ LEdge.call(this, source, target, vEdge);
+ this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
}
- };
- var priority = opts.priority || noop$12;
- r.beforeRender(dequeue, priority(self2));
- };
- }
- };
- var ElementTextureCacheLookup = /* @__PURE__ */ function() {
- function ElementTextureCacheLookup2(getKey2) {
- var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : falsify;
- _classCallCheck(this, ElementTextureCacheLookup2);
- this.idsByKey = new Map$22();
- this.keyForId = new Map$22();
- this.cachesByLvl = new Map$22();
- this.lvls = [];
- this.getKey = getKey2;
- this.doesEleInvalidateKey = doesEleInvalidateKey;
- }
- _createClass(ElementTextureCacheLookup2, [{
- key: "getIdsFor",
- value: function getIdsFor(key) {
- if (key == null) {
- error("Can not get id list for null key");
- }
- var idsByKey = this.idsByKey;
- var ids = this.idsByKey.get(key);
- if (!ids) {
- ids = new Set$12();
- idsByKey.set(key, ids);
- }
- return ids;
- }
- }, {
- key: "addIdForKey",
- value: function addIdForKey(key, id2) {
- if (key != null) {
- this.getIdsFor(key).add(id2);
- }
- }
- }, {
- key: "deleteIdForKey",
- value: function deleteIdForKey(key, id2) {
- if (key != null) {
- this.getIdsFor(key)["delete"](id2);
- }
- }
- }, {
- key: "getNumberOfIdsForKey",
- value: function getNumberOfIdsForKey(key) {
- if (key == null) {
- return 0;
- } else {
- return this.getIdsFor(key).size;
- }
- }
- }, {
- key: "updateKeyMappingFor",
- value: function updateKeyMappingFor(ele) {
- var id2 = ele.id();
- var prevKey = this.keyForId.get(id2);
- var currKey = this.getKey(ele);
- this.deleteIdForKey(prevKey, id2);
- this.addIdForKey(currKey, id2);
- this.keyForId.set(id2, currKey);
- }
- }, {
- key: "deleteKeyMappingFor",
- value: function deleteKeyMappingFor(ele) {
- var id2 = ele.id();
- var prevKey = this.keyForId.get(id2);
- this.deleteIdForKey(prevKey, id2);
- this.keyForId["delete"](id2);
- }
- }, {
- key: "keyHasChangedFor",
- value: function keyHasChangedFor(ele) {
- var id2 = ele.id();
- var prevKey = this.keyForId.get(id2);
- var newKey = this.getKey(ele);
- return prevKey !== newKey;
- }
- }, {
- key: "isInvalid",
- value: function isInvalid(ele) {
- return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);
- }
- }, {
- key: "getCachesAt",
- value: function getCachesAt(lvl) {
- var cachesByLvl = this.cachesByLvl, lvls = this.lvls;
- var caches = cachesByLvl.get(lvl);
- if (!caches) {
- caches = new Map$22();
- cachesByLvl.set(lvl, caches);
- lvls.push(lvl);
- }
- return caches;
- }
- }, {
- key: "getCache",
- value: function getCache(key, lvl) {
- return this.getCachesAt(lvl).get(key);
- }
- }, {
- key: "get",
- value: function get3(ele, lvl) {
- var key = this.getKey(ele);
- var cache2 = this.getCache(key, lvl);
- if (cache2 != null) {
- this.updateKeyMappingFor(ele);
- }
- return cache2;
- }
- }, {
- key: "getForCachedKey",
- value: function getForCachedKey(ele, lvl) {
- var key = this.keyForId.get(ele.id());
- var cache2 = this.getCache(key, lvl);
- return cache2;
- }
- }, {
- key: "hasCache",
- value: function hasCache(key, lvl) {
- return this.getCachesAt(lvl).has(key);
- }
- }, {
- key: "has",
- value: function has2(ele, lvl) {
- var key = this.getKey(ele);
- return this.hasCache(key, lvl);
- }
- }, {
- key: "setCache",
- value: function setCache(key, lvl, cache2) {
- cache2.key = key;
- this.getCachesAt(lvl).set(key, cache2);
- }
- }, {
- key: "set",
- value: function set3(ele, lvl, cache2) {
- var key = this.getKey(ele);
- this.setCache(key, lvl, cache2);
- this.updateKeyMappingFor(ele);
- }
- }, {
- key: "deleteCache",
- value: function deleteCache(key, lvl) {
- this.getCachesAt(lvl)["delete"](key);
- }
- }, {
- key: "delete",
- value: function _delete(ele, lvl) {
- var key = this.getKey(ele);
- this.deleteCache(key, lvl);
- }
- }, {
- key: "invalidateKey",
- value: function invalidateKey(key) {
- var _this = this;
- this.lvls.forEach(function(lvl) {
- return _this.deleteCache(key, lvl);
- });
- }
- // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)
- }, {
- key: "invalidate",
- value: function invalidate(ele) {
- var id2 = ele.id();
- var key = this.keyForId.get(id2);
- this.deleteKeyMappingFor(ele);
- var entireKeyInvalidated = this.doesEleInvalidateKey(ele);
- if (entireKeyInvalidated) {
- this.invalidateKey(key);
- }
- return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;
- }
- }]);
- return ElementTextureCacheLookup2;
- }();
- var minTxrH = 25;
- var txrStepH = 50;
- var minLvl$1 = -4;
- var maxLvl$1 = 3;
- var maxZoom$1 = 7.99;
- var eleTxrSpacing = 8;
- var defTxrWidth = 1024;
- var maxTxrW = 1024;
- var maxTxrH = 1024;
- var minUtility = 0.2;
- var maxFullness = 0.8;
- var maxFullnessChecks = 10;
- var deqCost$1 = 0.15;
- var deqAvgCost$1 = 0.1;
- var deqNoDrawCost$1 = 0.9;
- var deqFastCost$1 = 0.9;
- var deqRedrawThreshold$1 = 100;
- var maxDeqSize$1 = 1;
- var getTxrReasons = {
- dequeue: "dequeue",
- downscale: "downscale",
- highQuality: "highQuality"
- };
- var initDefaults = defaults$g({
- getKey: null,
- doesEleInvalidateKey: falsify,
- drawElement: null,
- getBoundingBox: null,
- getRotationPoint: null,
- getRotationOffset: null,
- isVisible: trueify,
- allowEdgeTxrCaching: true,
- allowParentTxrCaching: true
- });
- var ElementTextureCache = function ElementTextureCache2(renderer3, initOptions) {
- var self2 = this;
- self2.renderer = renderer3;
- self2.onDequeues = [];
- var opts = initDefaults(initOptions);
- extend2(self2, opts);
- self2.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);
- self2.setupDequeueing();
- };
- var ETCp = ElementTextureCache.prototype;
- ETCp.reasons = getTxrReasons;
- ETCp.getTextureQueue = function(txrH) {
- var self2 = this;
- self2.eleImgCaches = self2.eleImgCaches || {};
- return self2.eleImgCaches[txrH] = self2.eleImgCaches[txrH] || [];
- };
- ETCp.getRetiredTextureQueue = function(txrH) {
- var self2 = this;
- var rtxtrQs = self2.eleImgCaches.retired = self2.eleImgCaches.retired || {};
- var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];
- return rtxtrQ;
- };
- ETCp.getElementQueue = function() {
- var self2 = this;
- var q = self2.eleCacheQueue = self2.eleCacheQueue || new heap(function(a, b) {
- return b.reqs - a.reqs;
- });
- return q;
- };
- ETCp.getElementKeyToQueue = function() {
- var self2 = this;
- var k2q = self2.eleKeyToCacheQueue = self2.eleKeyToCacheQueue || {};
- return k2q;
- };
- ETCp.getElement = function(ele, bb, pxRatio, lvl, reason) {
- var self2 = this;
- var r = this.renderer;
- var zoom = r.cy.zoom();
- var lookup2 = this.lookup;
- if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {
- return null;
- }
- if (!self2.allowEdgeTxrCaching && ele.isEdge() || !self2.allowParentTxrCaching && ele.isParent()) {
- return null;
- }
- if (lvl == null) {
- lvl = Math.ceil(log2(zoom * pxRatio));
- }
- if (lvl < minLvl$1) {
- lvl = minLvl$1;
- } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) {
- return null;
- }
- var scale = Math.pow(2, lvl);
- var eleScaledH = bb.h * scale;
- var eleScaledW = bb.w * scale;
- var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale);
- if (!this.isVisible(ele, scaledLabelShown)) {
- return null;
- }
- var eleCache = lookup2.get(ele, lvl);
- if (eleCache && eleCache.invalidated) {
- eleCache.invalidated = false;
- eleCache.texture.invalidatedWidth -= eleCache.width;
- }
- if (eleCache) {
- return eleCache;
- }
- var txrH;
- if (eleScaledH <= minTxrH) {
- txrH = minTxrH;
- } else if (eleScaledH <= txrStepH) {
- txrH = txrStepH;
- } else {
- txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;
- }
- if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {
- return null;
- }
- var txrQ = self2.getTextureQueue(txrH);
- var txr = txrQ[txrQ.length - 2];
- var addNewTxr = function addNewTxr2() {
- return self2.recycleTexture(txrH, eleScaledW) || self2.addTexture(txrH, eleScaledW);
- };
- if (!txr) {
- txr = txrQ[txrQ.length - 1];
- }
- if (!txr) {
- txr = addNewTxr();
- }
- if (txr.width - txr.usedWidth < eleScaledW) {
- txr = addNewTxr();
- }
- var scalableFrom = function scalableFrom2(otherCache) {
- return otherCache && otherCache.scaledLabelShown === scaledLabelShown;
- };
- var deqing = reason && reason === getTxrReasons.dequeue;
- var highQualityReq = reason && reason === getTxrReasons.highQuality;
- var downscaleReq = reason && reason === getTxrReasons.downscale;
- var higherCache;
- for (var l = lvl + 1; l <= maxLvl$1; l++) {
- var c2 = lookup2.get(ele, l);
- if (c2) {
- higherCache = c2;
- break;
- }
- }
- var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;
- var downscale = function downscale2() {
- txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);
- };
- txr.context.setTransform(1, 0, 0, 1, 0, 0);
- txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);
- if (scalableFrom(oneUpCache)) {
- downscale();
- } else if (scalableFrom(higherCache)) {
- if (highQualityReq) {
- for (var _l = higherCache.level; _l > lvl; _l--) {
- oneUpCache = self2.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);
- }
- downscale();
- } else {
- self2.queueElement(ele, higherCache.level - 1);
- return higherCache;
- }
- } else {
- var lowerCache;
- if (!deqing && !highQualityReq && !downscaleReq) {
- for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {
- var _c = lookup2.get(ele, _l2);
- if (_c) {
- lowerCache = _c;
- break;
- }
- }
- }
- if (scalableFrom(lowerCache)) {
- self2.queueElement(ele, lvl);
- return lowerCache;
- }
- txr.context.translate(txr.usedWidth, 0);
- txr.context.scale(scale, scale);
- this.drawElement(txr.context, ele, bb, scaledLabelShown, false);
- txr.context.scale(1 / scale, 1 / scale);
- txr.context.translate(-txr.usedWidth, 0);
- }
- eleCache = {
- x: txr.usedWidth,
- texture: txr,
- level: lvl,
- scale,
- width: eleScaledW,
- height: eleScaledH,
- scaledLabelShown
- };
- txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);
- txr.eleCaches.push(eleCache);
- lookup2.set(ele, lvl, eleCache);
- self2.checkTextureFullness(txr);
- return eleCache;
- };
- ETCp.invalidateElements = function(eles) {
- for (var i3 = 0; i3 < eles.length; i3++) {
- this.invalidateElement(eles[i3]);
- }
- };
- ETCp.invalidateElement = function(ele) {
- var self2 = this;
- var lookup2 = self2.lookup;
- var caches = [];
- var invalid = lookup2.isInvalid(ele);
- if (!invalid) {
- return;
- }
- for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {
- var cache2 = lookup2.getForCachedKey(ele, lvl);
- if (cache2) {
- caches.push(cache2);
- }
- }
- var noOtherElesUseCache = lookup2.invalidate(ele);
- if (noOtherElesUseCache) {
- for (var i3 = 0; i3 < caches.length; i3++) {
- var _cache = caches[i3];
- var txr = _cache.texture;
- txr.invalidatedWidth += _cache.width;
- _cache.invalidated = true;
- self2.checkTextureUtility(txr);
- }
- }
- self2.removeFromQueue(ele);
- };
- ETCp.checkTextureUtility = function(txr) {
- if (txr.invalidatedWidth >= minUtility * txr.width) {
- this.retireTexture(txr);
- }
- };
- ETCp.checkTextureFullness = function(txr) {
- var self2 = this;
- var txrQ = self2.getTextureQueue(txr.height);
- if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {
- removeFromArray(txrQ, txr);
- } else {
- txr.fullnessChecks++;
- }
- };
- ETCp.retireTexture = function(txr) {
- var self2 = this;
- var txrH = txr.height;
- var txrQ = self2.getTextureQueue(txrH);
- var lookup2 = this.lookup;
- removeFromArray(txrQ, txr);
- txr.retired = true;
- var eleCaches = txr.eleCaches;
- for (var i3 = 0; i3 < eleCaches.length; i3++) {
- var eleCache = eleCaches[i3];
- lookup2.deleteCache(eleCache.key, eleCache.level);
- }
- clearArray(eleCaches);
- var rtxtrQ = self2.getRetiredTextureQueue(txrH);
- rtxtrQ.push(txr);
- };
- ETCp.addTexture = function(txrH, minW) {
- var self2 = this;
- var txrQ = self2.getTextureQueue(txrH);
- var txr = {};
- txrQ.push(txr);
- txr.eleCaches = [];
- txr.height = txrH;
- txr.width = Math.max(defTxrWidth, minW);
- txr.usedWidth = 0;
- txr.invalidatedWidth = 0;
- txr.fullnessChecks = 0;
- txr.canvas = self2.renderer.makeOffscreenCanvas(txr.width, txr.height);
- txr.context = txr.canvas.getContext("2d");
- return txr;
- };
- ETCp.recycleTexture = function(txrH, minW) {
- var self2 = this;
- var txrQ = self2.getTextureQueue(txrH);
- var rtxtrQ = self2.getRetiredTextureQueue(txrH);
- for (var i3 = 0; i3 < rtxtrQ.length; i3++) {
- var txr = rtxtrQ[i3];
- if (txr.width >= minW) {
- txr.retired = false;
- txr.usedWidth = 0;
- txr.invalidatedWidth = 0;
- txr.fullnessChecks = 0;
- clearArray(txr.eleCaches);
- txr.context.setTransform(1, 0, 0, 1, 0, 0);
- txr.context.clearRect(0, 0, txr.width, txr.height);
- removeFromArray(rtxtrQ, txr);
- txrQ.push(txr);
- return txr;
- }
- }
- };
- ETCp.queueElement = function(ele, lvl) {
- var self2 = this;
- var q = self2.getElementQueue();
- var k2q = self2.getElementKeyToQueue();
- var key = this.getKey(ele);
- var existingReq = k2q[key];
- if (existingReq) {
- existingReq.level = Math.max(existingReq.level, lvl);
- existingReq.eles.merge(ele);
- existingReq.reqs++;
- q.updateItem(existingReq);
- } else {
- var req = {
- eles: ele.spawn().merge(ele),
- level: lvl,
- reqs: 1,
- key
- };
- q.push(req);
- k2q[key] = req;
- }
- };
- ETCp.dequeue = function(pxRatio) {
- var self2 = this;
- var q = self2.getElementQueue();
- var k2q = self2.getElementKeyToQueue();
- var dequeued = [];
- var lookup2 = self2.lookup;
- for (var i3 = 0; i3 < maxDeqSize$1; i3++) {
- if (q.size() > 0) {
- var req = q.pop();
- var key = req.key;
- var ele = req.eles[0];
- var cacheExists = lookup2.hasCache(ele, req.level);
- k2q[key] = null;
- if (cacheExists) {
- continue;
- }
- dequeued.push(req);
- var bb = self2.getBoundingBox(ele);
- self2.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);
- } else {
- break;
- }
- }
- return dequeued;
- };
- ETCp.removeFromQueue = function(ele) {
- var self2 = this;
- var q = self2.getElementQueue();
- var k2q = self2.getElementKeyToQueue();
- var key = this.getKey(ele);
- var req = k2q[key];
- if (req != null) {
- if (req.eles.length === 1) {
- req.reqs = MAX_INT$1;
- q.updateItem(req);
- q.pop();
- k2q[key] = null;
- } else {
- req.eles.unmerge(ele);
- }
- }
- };
- ETCp.onDequeue = function(fn2) {
- this.onDequeues.push(fn2);
- };
- ETCp.offDequeue = function(fn2) {
- removeFromArray(this.onDequeues, fn2);
- };
- ETCp.setupDequeueing = defs.setupDequeueing({
- deqRedrawThreshold: deqRedrawThreshold$1,
- deqCost: deqCost$1,
- deqAvgCost: deqAvgCost$1,
- deqNoDrawCost: deqNoDrawCost$1,
- deqFastCost: deqFastCost$1,
- deq: function deq(self2, pxRatio, extent) {
- return self2.dequeue(pxRatio, extent);
- },
- onDeqd: function onDeqd(self2, deqd) {
- for (var i3 = 0; i3 < self2.onDequeues.length; i3++) {
- var fn2 = self2.onDequeues[i3];
- fn2(deqd);
- }
- },
- shouldRedraw: function shouldRedraw(self2, deqd, pxRatio, extent) {
- for (var i3 = 0; i3 < deqd.length; i3++) {
- var eles = deqd[i3].eles;
- for (var j = 0; j < eles.length; j++) {
- var bb = eles[j].boundingBox();
- if (boundingBoxesIntersect(bb, extent)) {
- return true;
+ __name(FDLayoutEdge, "FDLayoutEdge");
+ FDLayoutEdge.prototype = Object.create(LEdge.prototype);
+ for (var prop in LEdge) {
+ FDLayoutEdge[prop] = LEdge[prop];
}
- }
- }
- return false;
- },
- priority: function priority(self2) {
- return self2.renderer.beforeRenderPriorities.eleTxrDeq;
- }
- });
- var defNumLayers = 1;
- var minLvl = -4;
- var maxLvl = 2;
- var maxZoom = 3.99;
- var deqRedrawThreshold = 50;
- var refineEleDebounceTime = 50;
- var deqCost = 0.15;
- var deqAvgCost = 0.1;
- var deqNoDrawCost = 0.9;
- var deqFastCost = 0.9;
- var maxDeqSize = 1;
- var invalidThreshold = 250;
- var maxLayerArea = 4e3 * 4e3;
- var useHighQualityEleTxrReqs = true;
- var LayeredTextureCache = function LayeredTextureCache2(renderer3) {
- var self2 = this;
- var r = self2.renderer = renderer3;
- var cy = r.cy;
- self2.layersByLevel = {};
- self2.firstGet = true;
- self2.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;
- self2.skipping = false;
- self2.eleTxrDeqs = cy.collection();
- self2.scheduleElementRefinement = debounce_1(function() {
- self2.refineElementTextures(self2.eleTxrDeqs);
- self2.eleTxrDeqs.unmerge(self2.eleTxrDeqs);
- }, refineEleDebounceTime);
- r.beforeRender(function(willDraw, now3) {
- if (now3 - self2.lastInvalidationTime <= invalidThreshold) {
- self2.skipping = true;
- } else {
- self2.skipping = false;
- }
- }, r.beforeRenderPriorities.lyrTxrSkip);
- var qSort = function qSort2(a, b) {
- return b.reqs - a.reqs;
- };
- self2.layersQueue = new heap(qSort);
- self2.setupDequeueing();
- };
- var LTCp = LayeredTextureCache.prototype;
- var layerIdPool = 0;
- var MAX_INT = Math.pow(2, 53) - 1;
- LTCp.makeLayer = function(bb, lvl) {
- var scale = Math.pow(2, lvl);
- var w2 = Math.ceil(bb.w * scale);
- var h = Math.ceil(bb.h * scale);
- var canvas = this.renderer.makeOffscreenCanvas(w2, h);
- var layer = {
- id: layerIdPool = ++layerIdPool % MAX_INT,
- bb,
- level: lvl,
- width: w2,
- height: h,
- canvas,
- context: canvas.getContext("2d"),
- eles: [],
- elesQueue: [],
- reqs: 0
- };
- var cxt = layer.context;
- var dx = -layer.bb.x1;
- var dy = -layer.bb.y1;
- cxt.scale(scale, scale);
- cxt.translate(dx, dy);
- return layer;
- };
- LTCp.getLayers = function(eles, pxRatio, lvl) {
- var self2 = this;
- var r = self2.renderer;
- var cy = r.cy;
- var zoom = cy.zoom();
- var firstGet = self2.firstGet;
- self2.firstGet = false;
- if (lvl == null) {
- lvl = Math.ceil(log2(zoom * pxRatio));
- if (lvl < minLvl) {
- lvl = minLvl;
- } else if (zoom >= maxZoom || lvl > maxLvl) {
- return null;
- }
- }
- self2.validateLayersElesOrdering(lvl, eles);
- var layersByLvl = self2.layersByLevel;
- var scale = Math.pow(2, lvl);
- var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];
- var bb;
- var lvlComplete = self2.levelIsComplete(lvl, eles);
- var tmpLayers;
- var checkTempLevels = function checkTempLevels2() {
- var canUseAsTmpLvl = function canUseAsTmpLvl2(l) {
- self2.validateLayersElesOrdering(l, eles);
- if (self2.levelIsComplete(l, eles)) {
- tmpLayers = layersByLvl[l];
- return true;
- }
- };
- var checkLvls = function checkLvls2(dir) {
- if (tmpLayers) {
- return;
- }
- for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) {
- if (canUseAsTmpLvl(l)) {
- break;
+ module3.exports = FDLayoutEdge;
+ },
+ /* 20 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LNode = __webpack_require__(3);
+ function FDLayoutNode(gm, loc, size5, vNode) {
+ LNode.call(this, gm, loc, size5, vNode);
+ this.springForceX = 0;
+ this.springForceY = 0;
+ this.repulsionForceX = 0;
+ this.repulsionForceY = 0;
+ this.gravitationForceX = 0;
+ this.gravitationForceY = 0;
+ this.displacementX = 0;
+ this.displacementY = 0;
+ this.startX = 0;
+ this.finishX = 0;
+ this.startY = 0;
+ this.finishY = 0;
+ this.surrounding = [];
+ }
+ __name(FDLayoutNode, "FDLayoutNode");
+ FDLayoutNode.prototype = Object.create(LNode.prototype);
+ for (var prop in LNode) {
+ FDLayoutNode[prop] = LNode[prop];
+ }
+ FDLayoutNode.prototype.setGridCoordinates = function(_startX, _finishX, _startY, _finishY) {
+ this.startX = _startX;
+ this.finishX = _finishX;
+ this.startY = _startY;
+ this.finishY = _finishY;
+ };
+ module3.exports = FDLayoutNode;
+ },
+ /* 21 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function DimensionD2(width3, height2) {
+ this.width = 0;
+ this.height = 0;
+ if (width3 !== null && height2 !== null) {
+ this.height = height2;
+ this.width = width3;
+ }
+ }
+ __name(DimensionD2, "DimensionD");
+ DimensionD2.prototype.getWidth = function() {
+ return this.width;
+ };
+ DimensionD2.prototype.setWidth = function(width3) {
+ this.width = width3;
+ };
+ DimensionD2.prototype.getHeight = function() {
+ return this.height;
+ };
+ DimensionD2.prototype.setHeight = function(height2) {
+ this.height = height2;
+ };
+ module3.exports = DimensionD2;
+ },
+ /* 22 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var UniqueIDGeneretor = __webpack_require__(14);
+ function HashMap() {
+ this.map = {};
+ this.keys = [];
+ }
+ __name(HashMap, "HashMap");
+ HashMap.prototype.put = function(key, value2) {
+ var theId = UniqueIDGeneretor.createID(key);
+ if (!this.contains(theId)) {
+ this.map[theId] = value2;
+ this.keys.push(key);
+ }
+ };
+ HashMap.prototype.contains = function(key) {
+ var theId = UniqueIDGeneretor.createID(key);
+ return this.map[key] != null;
+ };
+ HashMap.prototype.get = function(key) {
+ var theId = UniqueIDGeneretor.createID(key);
+ return this.map[theId];
+ };
+ HashMap.prototype.keySet = function() {
+ return this.keys;
+ };
+ module3.exports = HashMap;
+ },
+ /* 23 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var UniqueIDGeneretor = __webpack_require__(14);
+ function HashSet() {
+ this.set = {};
+ }
+ __name(HashSet, "HashSet");
+ ;
+ HashSet.prototype.add = function(obj) {
+ var theId = UniqueIDGeneretor.createID(obj);
+ if (!this.contains(theId)) this.set[theId] = obj;
+ };
+ HashSet.prototype.remove = function(obj) {
+ delete this.set[UniqueIDGeneretor.createID(obj)];
+ };
+ HashSet.prototype.clear = function() {
+ this.set = {};
+ };
+ HashSet.prototype.contains = function(obj) {
+ return this.set[UniqueIDGeneretor.createID(obj)] == obj;
+ };
+ HashSet.prototype.isEmpty = function() {
+ return this.size() === 0;
+ };
+ HashSet.prototype.size = function() {
+ return Object.keys(this.set).length;
+ };
+ HashSet.prototype.addAllTo = function(list2) {
+ var keys3 = Object.keys(this.set);
+ var length2 = keys3.length;
+ for (var i2 = 0; i2 < length2; i2++) {
+ list2.push(this.set[keys3[i2]]);
+ }
+ };
+ HashSet.prototype.size = function() {
+ return Object.keys(this.set).length;
+ };
+ HashSet.prototype.addAll = function(list2) {
+ var s2 = list2.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var v3 = list2[i2];
+ this.add(v3);
+ }
+ };
+ module3.exports = HashSet;
+ },
+ /* 24 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var _createClass2 = /* @__PURE__ */ function() {
+ function defineProperties(target, props) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var descriptor = props[i2];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ __name(defineProperties, "defineProperties");
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck2(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
}
+ __name(_classCallCheck2, "_classCallCheck");
+ var LinkedList = __webpack_require__(11);
+ var Quicksort = function() {
+ function Quicksort2(A2, compareFunction) {
+ _classCallCheck2(this, Quicksort2);
+ if (compareFunction !== null || compareFunction !== void 0) this.compareFunction = this._defaultCompareFunction;
+ var length2 = void 0;
+ if (A2 instanceof LinkedList) length2 = A2.size();
+ else length2 = A2.length;
+ this._quicksort(A2, 0, length2 - 1);
+ }
+ __name(Quicksort2, "Quicksort");
+ _createClass2(Quicksort2, [{
+ key: "_quicksort",
+ value: /* @__PURE__ */ __name(function _quicksort(A2, p3, r2) {
+ if (p3 < r2) {
+ var q2 = this._partition(A2, p3, r2);
+ this._quicksort(A2, p3, q2);
+ this._quicksort(A2, q2 + 1, r2);
+ }
+ }, "_quicksort")
+ }, {
+ key: "_partition",
+ value: /* @__PURE__ */ __name(function _partition(A2, p3, r2) {
+ var x5 = this._get(A2, p3);
+ var i2 = p3;
+ var j2 = r2;
+ while (true) {
+ while (this.compareFunction(x5, this._get(A2, j2))) {
+ j2--;
+ }
+ while (this.compareFunction(this._get(A2, i2), x5)) {
+ i2++;
+ }
+ if (i2 < j2) {
+ this._swap(A2, i2, j2);
+ i2++;
+ j2--;
+ } else return j2;
+ }
+ }, "_partition")
+ }, {
+ key: "_get",
+ value: /* @__PURE__ */ __name(function _get(object3, index) {
+ if (object3 instanceof LinkedList) return object3.get_object_at(index);
+ else return object3[index];
+ }, "_get")
+ }, {
+ key: "_set",
+ value: /* @__PURE__ */ __name(function _set(object3, index, value2) {
+ if (object3 instanceof LinkedList) object3.set_object_at(index, value2);
+ else object3[index] = value2;
+ }, "_set")
+ }, {
+ key: "_swap",
+ value: /* @__PURE__ */ __name(function _swap(A2, i2, j2) {
+ var temp = this._get(A2, i2);
+ this._set(A2, i2, this._get(A2, j2));
+ this._set(A2, j2, temp);
+ }, "_swap")
+ }, {
+ key: "_defaultCompareFunction",
+ value: /* @__PURE__ */ __name(function _defaultCompareFunction(a2, b2) {
+ return b2 > a2;
+ }, "_defaultCompareFunction")
+ }]);
+ return Quicksort2;
+ }();
+ module3.exports = Quicksort;
+ },
+ /* 25 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var _createClass2 = /* @__PURE__ */ function() {
+ function defineProperties(target, props) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var descriptor = props[i2];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ __name(defineProperties, "defineProperties");
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck2(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ __name(_classCallCheck2, "_classCallCheck");
+ var NeedlemanWunsch = function() {
+ function NeedlemanWunsch2(sequence1, sequence2) {
+ var match_score = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
+ var mismatch_penalty = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1;
+ var gap_penalty = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1;
+ _classCallCheck2(this, NeedlemanWunsch2);
+ this.sequence1 = sequence1;
+ this.sequence2 = sequence2;
+ this.match_score = match_score;
+ this.mismatch_penalty = mismatch_penalty;
+ this.gap_penalty = gap_penalty;
+ this.iMax = sequence1.length + 1;
+ this.jMax = sequence2.length + 1;
+ this.grid = new Array(this.iMax);
+ for (var i2 = 0; i2 < this.iMax; i2++) {
+ this.grid[i2] = new Array(this.jMax);
+ for (var j2 = 0; j2 < this.jMax; j2++) {
+ this.grid[i2][j2] = 0;
+ }
+ }
+ this.tracebackGrid = new Array(this.iMax);
+ for (var _i = 0; _i < this.iMax; _i++) {
+ this.tracebackGrid[_i] = new Array(this.jMax);
+ for (var _j = 0; _j < this.jMax; _j++) {
+ this.tracebackGrid[_i][_j] = [null, null, null];
+ }
+ }
+ this.alignments = [];
+ this.score = -1;
+ this.computeGrids();
+ }
+ __name(NeedlemanWunsch2, "NeedlemanWunsch");
+ _createClass2(NeedlemanWunsch2, [{
+ key: "getScore",
+ value: /* @__PURE__ */ __name(function getScore() {
+ return this.score;
+ }, "getScore")
+ }, {
+ key: "getAlignments",
+ value: /* @__PURE__ */ __name(function getAlignments2() {
+ return this.alignments;
+ }, "getAlignments")
+ // Main dynamic programming procedure
+ }, {
+ key: "computeGrids",
+ value: /* @__PURE__ */ __name(function computeGrids() {
+ for (var j2 = 1; j2 < this.jMax; j2++) {
+ this.grid[0][j2] = this.grid[0][j2 - 1] + this.gap_penalty;
+ this.tracebackGrid[0][j2] = [false, false, true];
+ }
+ for (var i2 = 1; i2 < this.iMax; i2++) {
+ this.grid[i2][0] = this.grid[i2 - 1][0] + this.gap_penalty;
+ this.tracebackGrid[i2][0] = [false, true, false];
+ }
+ for (var _i2 = 1; _i2 < this.iMax; _i2++) {
+ for (var _j2 = 1; _j2 < this.jMax; _j2++) {
+ var diag = void 0;
+ if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;
+ else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;
+ var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;
+ var left3 = this.grid[_i2][_j2 - 1] + this.gap_penalty;
+ var maxOf = [diag, up, left3];
+ var indices = this.arrayAllMaxIndexes(maxOf);
+ this.grid[_i2][_j2] = maxOf[indices[0]];
+ this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];
+ }
+ }
+ this.score = this.grid[this.iMax - 1][this.jMax - 1];
+ }, "computeGrids")
+ // Gets all possible valid sequence combinations
+ }, {
+ key: "alignmentTraceback",
+ value: /* @__PURE__ */ __name(function alignmentTraceback() {
+ var inProcessAlignments = [];
+ inProcessAlignments.push({
+ pos: [this.sequence1.length, this.sequence2.length],
+ seq1: "",
+ seq2: ""
+ });
+ while (inProcessAlignments[0]) {
+ var current = inProcessAlignments[0];
+ var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];
+ if (directions[0]) {
+ inProcessAlignments.push({
+ pos: [current.pos[0] - 1, current.pos[1] - 1],
+ seq1: this.sequence1[current.pos[0] - 1] + current.seq1,
+ seq2: this.sequence2[current.pos[1] - 1] + current.seq2
+ });
+ }
+ if (directions[1]) {
+ inProcessAlignments.push({
+ pos: [current.pos[0] - 1, current.pos[1]],
+ seq1: this.sequence1[current.pos[0] - 1] + current.seq1,
+ seq2: "-" + current.seq2
+ });
+ }
+ if (directions[2]) {
+ inProcessAlignments.push({
+ pos: [current.pos[0], current.pos[1] - 1],
+ seq1: "-" + current.seq1,
+ seq2: this.sequence2[current.pos[1] - 1] + current.seq2
+ });
+ }
+ if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({
+ sequence1: current.seq1,
+ sequence2: current.seq2
+ });
+ inProcessAlignments.shift();
+ }
+ return this.alignments;
+ }, "alignmentTraceback")
+ // Helper Functions
+ }, {
+ key: "getAllIndexes",
+ value: /* @__PURE__ */ __name(function getAllIndexes(arr, val) {
+ var indexes = [], i2 = -1;
+ while ((i2 = arr.indexOf(val, i2 + 1)) !== -1) {
+ indexes.push(i2);
+ }
+ return indexes;
+ }, "getAllIndexes")
+ }, {
+ key: "arrayAllMaxIndexes",
+ value: /* @__PURE__ */ __name(function arrayAllMaxIndexes(array4) {
+ return this.getAllIndexes(array4, Math.max.apply(null, array4));
+ }, "arrayAllMaxIndexes")
+ }]);
+ return NeedlemanWunsch2;
+ }();
+ module3.exports = NeedlemanWunsch;
+ },
+ /* 26 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var layoutBase = /* @__PURE__ */ __name(function layoutBase2() {
+ return;
+ }, "layoutBase");
+ layoutBase.FDLayout = __webpack_require__(18);
+ layoutBase.FDLayoutConstants = __webpack_require__(7);
+ layoutBase.FDLayoutEdge = __webpack_require__(19);
+ layoutBase.FDLayoutNode = __webpack_require__(20);
+ layoutBase.DimensionD = __webpack_require__(21);
+ layoutBase.HashMap = __webpack_require__(22);
+ layoutBase.HashSet = __webpack_require__(23);
+ layoutBase.IGeometry = __webpack_require__(8);
+ layoutBase.IMath = __webpack_require__(9);
+ layoutBase.Integer = __webpack_require__(10);
+ layoutBase.Point = __webpack_require__(12);
+ layoutBase.PointD = __webpack_require__(4);
+ layoutBase.RandomSeed = __webpack_require__(16);
+ layoutBase.RectangleD = __webpack_require__(13);
+ layoutBase.Transform = __webpack_require__(17);
+ layoutBase.UniqueIDGeneretor = __webpack_require__(14);
+ layoutBase.Quicksort = __webpack_require__(24);
+ layoutBase.LinkedList = __webpack_require__(11);
+ layoutBase.LGraphObject = __webpack_require__(2);
+ layoutBase.LGraph = __webpack_require__(5);
+ layoutBase.LEdge = __webpack_require__(1);
+ layoutBase.LGraphManager = __webpack_require__(6);
+ layoutBase.LNode = __webpack_require__(3);
+ layoutBase.Layout = __webpack_require__(15);
+ layoutBase.LayoutConstants = __webpack_require__(0);
+ layoutBase.NeedlemanWunsch = __webpack_require__(25);
+ module3.exports = layoutBase;
+ },
+ /* 27 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function Emitter3() {
+ this.listeners = [];
+ }
+ __name(Emitter3, "Emitter");
+ var p3 = Emitter3.prototype;
+ p3.addListener = function(event3, callback) {
+ this.listeners.push({
+ event: event3,
+ callback
+ });
+ };
+ p3.removeListener = function(event3, callback) {
+ for (var i2 = this.listeners.length; i2 >= 0; i2--) {
+ var l2 = this.listeners[i2];
+ if (l2.event === event3 && l2.callback === callback) {
+ this.listeners.splice(i2, 1);
+ }
+ }
+ };
+ p3.emit = function(event3, data5) {
+ for (var i2 = 0; i2 < this.listeners.length; i2++) {
+ var l2 = this.listeners[i2];
+ if (event3 === l2.event) {
+ l2.callback(data5);
+ }
+ }
+ };
+ module3.exports = Emitter3;
}
- };
- checkLvls(1);
- checkLvls(-1);
- for (var i4 = layers.length - 1; i4 >= 0; i4--) {
- var layer2 = layers[i4];
- if (layer2.invalid) {
- removeFromArray(layers, layer2);
- }
- }
- };
- if (!lvlComplete) {
- checkTempLevels();
- } else {
- return layers;
- }
- var getBb = function getBb2() {
- if (!bb) {
- bb = makeBoundingBox();
- for (var i4 = 0; i4 < eles.length; i4++) {
- updateBoundingBox(bb, eles[i4].boundingBox());
- }
- }
- return bb;
- };
- var makeLayer = function makeLayer2(opts) {
- opts = opts || {};
- var after = opts.after;
- getBb();
- var area = bb.w * scale * (bb.h * scale);
- if (area > maxLayerArea) {
- return null;
- }
- var layer2 = self2.makeLayer(bb, lvl);
- if (after != null) {
- var index = layers.indexOf(after) + 1;
- layers.splice(index, 0, layer2);
- } else if (opts.insert === void 0 || opts.insert) {
- layers.unshift(layer2);
- }
- return layer2;
- };
- if (self2.skipping && !firstGet) {
- return null;
- }
- var layer = null;
- var maxElesPerLayer = eles.length / defNumLayers;
- var allowLazyQueueing = !firstGet;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- var rs = ele._private.rscratch;
- var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
- var existingLayer = caches[lvl];
- if (existingLayer) {
- layer = existingLayer;
- continue;
- }
- if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {
- layer = makeLayer({
- insert: true,
- after: layer
- });
- if (!layer) {
- return null;
- }
- }
- if (tmpLayers || allowLazyQueueing) {
- self2.queueLayer(layer, ele);
- } else {
- self2.drawEleInLayer(layer, ele, lvl, pxRatio);
- }
- layer.eles.push(ele);
- caches[lvl] = layer;
- }
- if (tmpLayers) {
- return tmpLayers;
- }
- if (allowLazyQueueing) {
- return null;
- }
- return layers;
- };
- LTCp.getEleLevelForLayerLevel = function(lvl, pxRatio) {
- return lvl;
- };
- LTCp.drawEleInLayer = function(layer, ele, lvl, pxRatio) {
- var self2 = this;
- var r = this.renderer;
- var context = layer.context;
- var bb = ele.boundingBox();
- if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
- return;
- }
- lvl = self2.getEleLevelForLayerLevel(lvl, pxRatio);
- {
- r.setImgSmoothing(context, false);
- }
- {
- r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);
- }
- {
- r.setImgSmoothing(context, true);
- }
- };
- LTCp.levelIsComplete = function(lvl, eles) {
- var self2 = this;
- var layers = self2.layersByLevel[lvl];
- if (!layers || layers.length === 0) {
- return false;
- }
- var numElesInLayers = 0;
- for (var i3 = 0; i3 < layers.length; i3++) {
- var layer = layers[i3];
- if (layer.reqs > 0) {
- return false;
- }
- if (layer.invalid) {
- return false;
- }
- numElesInLayers += layer.eles.length;
- }
- if (numElesInLayers !== eles.length) {
- return false;
- }
- return true;
- };
- LTCp.validateLayersElesOrdering = function(lvl, eles) {
- var layers = this.layersByLevel[lvl];
- if (!layers) {
- return;
- }
- for (var i3 = 0; i3 < layers.length; i3++) {
- var layer = layers[i3];
- var offset = -1;
- for (var j = 0; j < eles.length; j++) {
- if (layer.eles[0] === eles[j]) {
- offset = j;
- break;
- }
- }
- if (offset < 0) {
- this.invalidateLayer(layer);
- continue;
- }
- var o = offset;
- for (var j = 0; j < layer.eles.length; j++) {
- if (layer.eles[j] !== eles[o + j]) {
- this.invalidateLayer(layer);
- break;
- }
- }
- }
- };
- LTCp.updateElementsInLayers = function(eles, update2) {
- var self2 = this;
- var isEles = element(eles[0]);
- for (var i3 = 0; i3 < eles.length; i3++) {
- var req = isEles ? null : eles[i3];
- var ele = isEles ? eles[i3] : eles[i3].ele;
- var rs = ele._private.rscratch;
- var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
- for (var l = minLvl; l <= maxLvl; l++) {
- var layer = caches[l];
- if (!layer) {
- continue;
- }
- if (req && self2.getEleLevelForLayerLevel(layer.level) !== req.level) {
- continue;
- }
- update2(layer, ele, req);
- }
- }
- };
- LTCp.haveLayers = function() {
- var self2 = this;
- var haveLayers = false;
- for (var l = minLvl; l <= maxLvl; l++) {
- var layers = self2.layersByLevel[l];
- if (layers && layers.length > 0) {
- haveLayers = true;
- break;
- }
- }
- return haveLayers;
- };
- LTCp.invalidateElements = function(eles) {
- var self2 = this;
- if (eles.length === 0) {
- return;
- }
- self2.lastInvalidationTime = performanceNow();
- if (eles.length === 0 || !self2.haveLayers()) {
- return;
- }
- self2.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) {
- self2.invalidateLayer(layer);
- });
- };
- LTCp.invalidateLayer = function(layer) {
- this.lastInvalidationTime = performanceNow();
- if (layer.invalid) {
- return;
- }
- var lvl = layer.level;
- var eles = layer.eles;
- var layers = this.layersByLevel[lvl];
- removeFromArray(layers, layer);
- layer.elesQueue = [];
- layer.invalid = true;
- if (layer.replacement) {
- layer.replacement.invalid = true;
- }
- for (var i3 = 0; i3 < eles.length; i3++) {
- var caches = eles[i3]._private.rscratch.imgLayerCaches;
- if (caches) {
- caches[lvl] = null;
- }
- }
- };
- LTCp.refineElementTextures = function(eles) {
- var self2 = this;
- self2.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) {
- var rLyr = layer.replacement;
- if (!rLyr) {
- rLyr = layer.replacement = self2.makeLayer(layer.bb, layer.level);
- rLyr.replaces = layer;
- rLyr.eles = layer.eles;
- }
- if (!rLyr.reqs) {
- for (var i3 = 0; i3 < rLyr.eles.length; i3++) {
- self2.queueLayer(rLyr, rLyr.eles[i3]);
- }
- }
- });
- };
- LTCp.enqueueElementRefinement = function(ele) {
- this.eleTxrDeqs.merge(ele);
- this.scheduleElementRefinement();
- };
- LTCp.queueLayer = function(layer, ele) {
- var self2 = this;
- var q = self2.layersQueue;
- var elesQ = layer.elesQueue;
- var hasId = elesQ.hasId = elesQ.hasId || {};
- if (layer.replacement) {
- return;
- }
- if (ele) {
- if (hasId[ele.id()]) {
- return;
- }
- elesQ.push(ele);
- hasId[ele.id()] = true;
- }
- if (layer.reqs) {
- layer.reqs++;
- q.updateItem(layer);
- } else {
- layer.reqs = 1;
- q.push(layer);
- }
- };
- LTCp.dequeue = function(pxRatio) {
- var self2 = this;
- var q = self2.layersQueue;
- var deqd = [];
- var eleDeqs = 0;
- while (eleDeqs < maxDeqSize) {
- if (q.size() === 0) {
- break;
- }
- var layer = q.peek();
- if (layer.replacement) {
- q.pop();
- continue;
- }
- if (layer.replaces && layer !== layer.replaces.replacement) {
- q.pop();
- continue;
- }
- if (layer.invalid) {
- q.pop();
- continue;
- }
- var ele = layer.elesQueue.shift();
- if (ele) {
- self2.drawEleInLayer(layer, ele, layer.level, pxRatio);
- eleDeqs++;
- }
- if (deqd.length === 0) {
- deqd.push(true);
- }
- if (layer.elesQueue.length === 0) {
- q.pop();
- layer.reqs = 0;
- if (layer.replaces) {
- self2.applyLayerReplacement(layer);
- }
- self2.requestRedraw();
- }
- }
- return deqd;
- };
- LTCp.applyLayerReplacement = function(layer) {
- var self2 = this;
- var layersInLevel = self2.layersByLevel[layer.level];
- var replaced = layer.replaces;
- var index = layersInLevel.indexOf(replaced);
- if (index < 0 || replaced.invalid) {
- return;
- }
- layersInLevel[index] = layer;
- for (var i3 = 0; i3 < layer.eles.length; i3++) {
- var _p = layer.eles[i3]._private;
- var cache2 = _p.imgLayerCaches = _p.imgLayerCaches || {};
- if (cache2) {
- cache2[layer.level] = layer;
- }
- }
- self2.requestRedraw();
- };
- LTCp.requestRedraw = debounce_1(function() {
- var r = this.renderer;
- r.redrawHint("eles", true);
- r.redrawHint("drag", true);
- r.redraw();
- }, 100);
- LTCp.setupDequeueing = defs.setupDequeueing({
- deqRedrawThreshold,
- deqCost,
- deqAvgCost,
- deqNoDrawCost,
- deqFastCost,
- deq: function deq(self2, pxRatio) {
- return self2.dequeue(pxRatio);
- },
- onDeqd: noop$12,
- shouldRedraw: trueify,
- priority: function priority(self2) {
- return self2.renderer.beforeRenderPriorities.lyrTxrDeq;
- }
- });
- var CRp$a = {};
- var impl;
- function polygon(context, points) {
- for (var i3 = 0; i3 < points.length; i3++) {
- var pt = points[i3];
- context.lineTo(pt.x, pt.y);
- }
- }
- function triangleBackcurve(context, points, controlPoint) {
- var firstPt;
- for (var i3 = 0; i3 < points.length; i3++) {
- var pt = points[i3];
- if (i3 === 0) {
- firstPt = pt;
- }
- context.lineTo(pt.x, pt.y);
- }
- context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);
- }
- function triangleTee(context, trianglePoints, teePoints) {
- if (context.beginPath) {
- context.beginPath();
- }
- var triPts = trianglePoints;
- for (var i3 = 0; i3 < triPts.length; i3++) {
- var pt = triPts[i3];
- context.lineTo(pt.x, pt.y);
- }
- var teePts = teePoints;
- var firstTeePt = teePoints[0];
- context.moveTo(firstTeePt.x, firstTeePt.y);
- for (var i3 = 1; i3 < teePts.length; i3++) {
- var pt = teePts[i3];
- context.lineTo(pt.x, pt.y);
- }
- if (context.closePath) {
- context.closePath();
- }
- }
- function circleTriangle(context, trianglePoints, rx, ry, r) {
- if (context.beginPath) {
- context.beginPath();
- }
- context.arc(rx, ry, r, 0, Math.PI * 2, false);
- var triPts = trianglePoints;
- var firstTrPt = triPts[0];
- context.moveTo(firstTrPt.x, firstTrPt.y);
- for (var i3 = 0; i3 < triPts.length; i3++) {
- var pt = triPts[i3];
- context.lineTo(pt.x, pt.y);
- }
- if (context.closePath) {
- context.closePath();
- }
- }
- function circle2(context, rx, ry, r) {
- context.arc(rx, ry, r, 0, Math.PI * 2, false);
- }
- CRp$a.arrowShapeImpl = function(name2) {
- return (impl || (impl = {
- "polygon": polygon,
- "triangle-backcurve": triangleBackcurve,
- "triangle-tee": triangleTee,
- "circle-triangle": circleTriangle,
- "triangle-cross": triangleTee,
- "circle": circle2
- }))[name2];
- };
- var CRp$9 = {};
- CRp$9.drawElement = function(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {
- var r = this;
- if (ele.isNode()) {
- r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
- } else {
- r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
- }
- };
- CRp$9.drawElementOverlay = function(context, ele) {
- var r = this;
- if (ele.isNode()) {
- r.drawNodeOverlay(context, ele);
- } else {
- r.drawEdgeOverlay(context, ele);
- }
- };
- CRp$9.drawElementUnderlay = function(context, ele) {
- var r = this;
- if (ele.isNode()) {
- r.drawNodeUnderlay(context, ele);
- } else {
- r.drawEdgeUnderlay(context, ele);
- }
- };
- CRp$9.drawCachedElementPortion = function(context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity2) {
- var r = this;
- var bb = eleTxrCache.getBoundingBox(ele);
- if (bb.w === 0 || bb.h === 0) {
- return;
- }
- var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);
- if (eleCache != null) {
- var opacity = getOpacity2(r, ele);
- if (opacity === 0) {
- return;
- }
- var theta = getRotation(r, ele);
- var x1 = bb.x1, y1 = bb.y1, w2 = bb.w, h = bb.h;
- var x2, y2, sx, sy, smooth;
- if (theta !== 0) {
- var rotPt = eleTxrCache.getRotationPoint(ele);
- sx = rotPt.x;
- sy = rotPt.y;
- context.translate(sx, sy);
- context.rotate(theta);
- smooth = r.getImgSmoothing(context);
- if (!smooth) {
- r.setImgSmoothing(context, true);
- }
- var off = eleTxrCache.getRotationOffset(ele);
- x2 = off.x;
- y2 = off.y;
- } else {
- x2 = x1;
- y2 = y1;
- }
- var oldGlobalAlpha;
- if (opacity !== 1) {
- oldGlobalAlpha = context.globalAlpha;
- context.globalAlpha = oldGlobalAlpha * opacity;
- }
- context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x2, y2, w2, h);
- if (opacity !== 1) {
- context.globalAlpha = oldGlobalAlpha;
- }
- if (theta !== 0) {
- context.rotate(-theta);
- context.translate(-sx, -sy);
- if (!smooth) {
- r.setImgSmoothing(context, false);
- }
- }
- } else {
- eleTxrCache.drawElement(context, ele);
- }
- };
- var getZeroRotation = function getZeroRotation2() {
- return 0;
- };
- var getLabelRotation = function getLabelRotation2(r, ele) {
- return r.getTextAngle(ele, null);
- };
- var getSourceLabelRotation = function getSourceLabelRotation2(r, ele) {
- return r.getTextAngle(ele, "source");
- };
- var getTargetLabelRotation = function getTargetLabelRotation2(r, ele) {
- return r.getTextAngle(ele, "target");
- };
- var getOpacity = function getOpacity2(r, ele) {
- return ele.effectiveOpacity();
- };
- var getTextOpacity = function getTextOpacity2(e, ele) {
- return ele.pstyle("text-opacity").pfValue * ele.effectiveOpacity();
- };
- CRp$9.drawCachedElement = function(context, ele, pxRatio, extent, lvl, requestHighQuality) {
- var r = this;
- var _r$data = r.data, eleTxrCache = _r$data.eleTxrCache, lblTxrCache = _r$data.lblTxrCache, slbTxrCache = _r$data.slbTxrCache, tlbTxrCache = _r$data.tlbTxrCache;
- var bb = ele.boundingBox();
- var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;
- if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
- return;
- }
- if (!extent || boundingBoxesIntersect(bb, extent)) {
- var isEdge = ele.isEdge();
- var badLine = ele.element()._private.rscratch.badLine;
- r.drawElementUnderlay(context, ele);
- r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);
- if (!isEdge || !badLine) {
- r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);
- }
- if (isEdge && !badLine) {
- r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);
- r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);
- }
- r.drawElementOverlay(context, ele);
- }
- };
- CRp$9.drawElements = function(context, eles) {
- var r = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- r.drawElement(context, ele);
- }
- };
- CRp$9.drawCachedElements = function(context, eles, pxRatio, extent) {
- var r = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- r.drawCachedElement(context, ele, pxRatio, extent);
- }
- };
- CRp$9.drawCachedNodes = function(context, eles, pxRatio, extent) {
- var r = this;
- for (var i3 = 0; i3 < eles.length; i3++) {
- var ele = eles[i3];
- if (!ele.isNode()) {
- continue;
- }
- r.drawCachedElement(context, ele, pxRatio, extent);
- }
- };
- CRp$9.drawLayeredElements = function(context, eles, pxRatio, extent) {
- var r = this;
- var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio);
- if (layers) {
- for (var i3 = 0; i3 < layers.length; i3++) {
- var layer = layers[i3];
- var bb = layer.bb;
- if (bb.w === 0 || bb.h === 0) {
- continue;
+ /******/
+ ])
+ );
+ });
+ }
+ });
+
+ // ../../node_modules/.pnpm/cose-base@1.0.3/node_modules/cose-base/cose-base.js
+ var require_cose_base = __commonJS({
+ "../../node_modules/.pnpm/cose-base@1.0.3/node_modules/cose-base/cose-base.js"(exports2, module2) {
+ "use strict";
+ (/* @__PURE__ */ __name(function webpackUniversalModuleDefinition(root4, factory) {
+ if (typeof exports2 === "object" && typeof module2 === "object")
+ module2.exports = factory(require_layout_base());
+ else if (typeof define === "function" && define.amd)
+ define(["layout-base"], factory);
+ else if (typeof exports2 === "object")
+ exports2["coseBase"] = factory(require_layout_base());
+ else
+ root4["coseBase"] = factory(root4["layoutBase"]);
+ }, "webpackUniversalModuleDefinition"))(exports2, function(__WEBPACK_EXTERNAL_MODULE_0__) {
+ return (
+ /******/
+ function(modules2) {
+ var installedModules = {};
+ function __webpack_require__(moduleId) {
+ if (installedModules[moduleId]) {
+ return installedModules[moduleId].exports;
+ }
+ var module3 = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+ /******/
+ l: false,
+ /******/
+ exports: {}
+ /******/
+ };
+ modules2[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
+ module3.l = true;
+ return module3.exports;
}
- context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);
- }
- } else {
- r.drawCachedElements(context, eles, pxRatio, extent);
- }
- };
- var CRp$8 = {};
- CRp$8.drawEdge = function(context, edge, shiftToOriginWithBb) {
- var drawLabel2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
- var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
- var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
- var r = this;
- var rs = edge._private.rscratch;
- if (shouldDrawOpacity && !edge.visible()) {
- return;
- }
- if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {
- return;
- }
- var bb;
- if (shiftToOriginWithBb) {
- bb = shiftToOriginWithBb;
- context.translate(-bb.x1, -bb.y1);
- }
- var opacity = shouldDrawOpacity ? edge.pstyle("opacity").value : 1;
- var lineOpacity = shouldDrawOpacity ? edge.pstyle("line-opacity").value : 1;
- var curveStyle = edge.pstyle("curve-style").value;
- var lineStyle = edge.pstyle("line-style").value;
- var edgeWidth = edge.pstyle("width").pfValue;
- var lineCap = edge.pstyle("line-cap").value;
- var effectiveLineOpacity = opacity * lineOpacity;
- var effectiveArrowOpacity = opacity * lineOpacity;
- var drawLine = function drawLine2() {
- var strokeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveLineOpacity;
- if (curveStyle === "straight-triangle") {
- r.eleStrokeStyle(context, edge, strokeOpacity);
- r.drawEdgeTrianglePath(edge, context, rs.allpts);
- } else {
- context.lineWidth = edgeWidth;
- context.lineCap = lineCap;
- r.eleStrokeStyle(context, edge, strokeOpacity);
- r.drawEdgePath(edge, context, rs.allpts, lineStyle);
- context.lineCap = "butt";
- }
- };
- var drawOverlay = function drawOverlay2() {
- if (!shouldDrawOverlay) {
- return;
- }
- r.drawEdgeOverlay(context, edge);
- };
- var drawUnderlay = function drawUnderlay2() {
- if (!shouldDrawOverlay) {
- return;
- }
- r.drawEdgeUnderlay(context, edge);
- };
- var drawArrows2 = function drawArrows3() {
- var arrowOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveArrowOpacity;
- r.drawArrowheads(context, edge, arrowOpacity);
- };
- var drawText2 = function drawText3() {
- r.drawElementText(context, edge, null, drawLabel2);
- };
- context.lineJoin = "round";
- var ghost = edge.pstyle("ghost").value === "yes";
- if (ghost) {
- var gx = edge.pstyle("ghost-offset-x").pfValue;
- var gy = edge.pstyle("ghost-offset-y").pfValue;
- var ghostOpacity = edge.pstyle("ghost-opacity").value;
- var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;
- context.translate(gx, gy);
- drawLine(effectiveGhostOpacity);
- drawArrows2(effectiveGhostOpacity);
- context.translate(-gx, -gy);
- }
- drawUnderlay();
- drawLine();
- drawArrows2();
- drawOverlay();
- drawText2();
- if (shiftToOriginWithBb) {
- context.translate(bb.x1, bb.y1);
- }
- };
- var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay2(overlayOrUnderlay) {
- if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
- throw new Error("Invalid state");
- }
- return function(context, edge) {
- if (!edge.visible()) {
- return;
- }
- var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
- if (opacity === 0) {
- return;
- }
- var r = this;
- var usePaths = r.usePaths();
- var rs = edge._private.rscratch;
- var padding2 = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
- var width2 = 2 * padding2;
- var color2 = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value;
- context.lineWidth = width2;
- if (rs.edgeType === "self" && !usePaths) {
- context.lineCap = "butt";
- } else {
- context.lineCap = "round";
- }
- r.colorStrokeStyle(context, color2[0], color2[1], color2[2], opacity);
- r.drawEdgePath(edge, context, rs.allpts, "solid");
- };
- };
- CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay("overlay");
- CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay("underlay");
- CRp$8.drawEdgePath = function(edge, context, pts2, type2) {
- var rs = edge._private.rscratch;
- var canvasCxt = context;
- var path2;
- var pathCacheHit = false;
- var usePaths = this.usePaths();
- var lineDashPattern = edge.pstyle("line-dash-pattern").pfValue;
- var lineDashOffset = edge.pstyle("line-dash-offset").pfValue;
- if (usePaths) {
- var pathCacheKey = pts2.join("$");
- var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;
- if (keyMatches) {
- path2 = context = rs.pathCache;
- pathCacheHit = true;
- } else {
- path2 = context = new Path2D();
- rs.pathCacheKey = pathCacheKey;
- rs.pathCache = path2;
- }
- }
- if (canvasCxt.setLineDash) {
- switch (type2) {
- case "dotted":
- canvasCxt.setLineDash([1, 1]);
- break;
- case "dashed":
- canvasCxt.setLineDash(lineDashPattern);
- canvasCxt.lineDashOffset = lineDashOffset;
- break;
- case "solid":
- canvasCxt.setLineDash([]);
- break;
- }
- }
- if (!pathCacheHit && !rs.badLine) {
- if (context.beginPath) {
- context.beginPath();
- }
- context.moveTo(pts2[0], pts2[1]);
- switch (rs.edgeType) {
- case "bezier":
- case "self":
- case "compound":
- case "multibezier":
- for (var i3 = 2; i3 + 3 < pts2.length; i3 += 4) {
- context.quadraticCurveTo(pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3]);
+ __name(__webpack_require__, "__webpack_require__");
+ __webpack_require__.m = modules2;
+ __webpack_require__.c = installedModules;
+ __webpack_require__.i = function(value2) {
+ return value2;
+ };
+ __webpack_require__.d = function(exports3, name, getter) {
+ if (!__webpack_require__.o(exports3, name)) {
+ Object.defineProperty(exports3, name, {
+ /******/
+ configurable: false,
+ /******/
+ enumerable: true,
+ /******/
+ get: getter
+ /******/
+ });
+ }
+ };
+ __webpack_require__.n = function(module3) {
+ var getter = module3 && module3.__esModule ? (
+ /******/
+ /* @__PURE__ */ __name(function getDefault() {
+ return module3["default"];
+ }, "getDefault")
+ ) : (
+ /******/
+ /* @__PURE__ */ __name(function getModuleExports() {
+ return module3;
+ }, "getModuleExports")
+ );
+ __webpack_require__.d(getter, "a", getter);
+ return getter;
+ };
+ __webpack_require__.o = function(object3, property2) {
+ return Object.prototype.hasOwnProperty.call(object3, property2);
+ };
+ __webpack_require__.p = "";
+ return __webpack_require__(__webpack_require__.s = 7);
+ }([
+ /* 0 */
+ /***/
+ function(module3, exports3) {
+ module3.exports = __WEBPACK_EXTERNAL_MODULE_0__;
+ },
+ /* 1 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
+ function CoSEConstants() {
+ }
+ __name(CoSEConstants, "CoSEConstants");
+ for (var prop in FDLayoutConstants) {
+ CoSEConstants[prop] = FDLayoutConstants[prop];
+ }
+ CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;
+ CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;
+ CoSEConstants.TILE = true;
+ CoSEConstants.TILING_PADDING_VERTICAL = 10;
+ CoSEConstants.TILING_PADDING_HORIZONTAL = 10;
+ CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false;
+ module3.exports = CoSEConstants;
+ },
+ /* 2 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;
+ function CoSEEdge(source, target, vEdge) {
+ FDLayoutEdge.call(this, source, target, vEdge);
+ }
+ __name(CoSEEdge, "CoSEEdge");
+ CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);
+ for (var prop in FDLayoutEdge) {
+ CoSEEdge[prop] = FDLayoutEdge[prop];
+ }
+ module3.exports = CoSEEdge;
+ },
+ /* 3 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LGraph = __webpack_require__(0).LGraph;
+ function CoSEGraph(parent4, graphMgr, vGraph) {
+ LGraph.call(this, parent4, graphMgr, vGraph);
+ }
+ __name(CoSEGraph, "CoSEGraph");
+ CoSEGraph.prototype = Object.create(LGraph.prototype);
+ for (var prop in LGraph) {
+ CoSEGraph[prop] = LGraph[prop];
+ }
+ module3.exports = CoSEGraph;
+ },
+ /* 4 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LGraphManager = __webpack_require__(0).LGraphManager;
+ function CoSEGraphManager(layout6) {
+ LGraphManager.call(this, layout6);
+ }
+ __name(CoSEGraphManager, "CoSEGraphManager");
+ CoSEGraphManager.prototype = Object.create(LGraphManager.prototype);
+ for (var prop in LGraphManager) {
+ CoSEGraphManager[prop] = LGraphManager[prop];
+ }
+ module3.exports = CoSEGraphManager;
+ },
+ /* 5 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var FDLayoutNode = __webpack_require__(0).FDLayoutNode;
+ var IMath = __webpack_require__(0).IMath;
+ function CoSENode(gm, loc, size5, vNode) {
+ FDLayoutNode.call(this, gm, loc, size5, vNode);
+ }
+ __name(CoSENode, "CoSENode");
+ CoSENode.prototype = Object.create(FDLayoutNode.prototype);
+ for (var prop in FDLayoutNode) {
+ CoSENode[prop] = FDLayoutNode[prop];
+ }
+ CoSENode.prototype.move = function() {
+ var layout6 = this.graphManager.getLayout();
+ this.displacementX = layout6.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;
+ this.displacementY = layout6.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;
+ if (Math.abs(this.displacementX) > layout6.coolingFactor * layout6.maxNodeDisplacement) {
+ this.displacementX = layout6.coolingFactor * layout6.maxNodeDisplacement * IMath.sign(this.displacementX);
+ }
+ if (Math.abs(this.displacementY) > layout6.coolingFactor * layout6.maxNodeDisplacement) {
+ this.displacementY = layout6.coolingFactor * layout6.maxNodeDisplacement * IMath.sign(this.displacementY);
+ }
+ if (this.child == null) {
+ this.moveBy(this.displacementX, this.displacementY);
+ } else if (this.child.getNodes().length == 0) {
+ this.moveBy(this.displacementX, this.displacementY);
+ } else {
+ this.propogateDisplacementToChildren(this.displacementX, this.displacementY);
+ }
+ layout6.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);
+ this.springForceX = 0;
+ this.springForceY = 0;
+ this.repulsionForceX = 0;
+ this.repulsionForceY = 0;
+ this.gravitationForceX = 0;
+ this.gravitationForceY = 0;
+ this.displacementX = 0;
+ this.displacementY = 0;
+ };
+ CoSENode.prototype.propogateDisplacementToChildren = function(dX, dY) {
+ var nodes6 = this.getChild().getNodes();
+ var node2;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ node2 = nodes6[i2];
+ if (node2.getChild() == null) {
+ node2.moveBy(dX, dY);
+ node2.displacementX += dX;
+ node2.displacementY += dY;
+ } else {
+ node2.propogateDisplacementToChildren(dX, dY);
+ }
+ }
+ };
+ CoSENode.prototype.setPred1 = function(pred12) {
+ this.pred1 = pred12;
+ };
+ CoSENode.prototype.getPred1 = function() {
+ return pred1;
+ };
+ CoSENode.prototype.getPred2 = function() {
+ return pred2;
+ };
+ CoSENode.prototype.setNext = function(next3) {
+ this.next = next3;
+ };
+ CoSENode.prototype.getNext = function() {
+ return next;
+ };
+ CoSENode.prototype.setProcessed = function(processed2) {
+ this.processed = processed2;
+ };
+ CoSENode.prototype.isProcessed = function() {
+ return processed;
+ };
+ module3.exports = CoSENode;
+ },
+ /* 6 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var FDLayout = __webpack_require__(0).FDLayout;
+ var CoSEGraphManager = __webpack_require__(4);
+ var CoSEGraph = __webpack_require__(3);
+ var CoSENode = __webpack_require__(5);
+ var CoSEEdge = __webpack_require__(2);
+ var CoSEConstants = __webpack_require__(1);
+ var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
+ var LayoutConstants = __webpack_require__(0).LayoutConstants;
+ var Point3 = __webpack_require__(0).Point;
+ var PointD = __webpack_require__(0).PointD;
+ var Layout2 = __webpack_require__(0).Layout;
+ var Integer = __webpack_require__(0).Integer;
+ var IGeometry = __webpack_require__(0).IGeometry;
+ var LGraph = __webpack_require__(0).LGraph;
+ var Transform2 = __webpack_require__(0).Transform;
+ function CoSELayout() {
+ FDLayout.call(this);
+ this.toBeTiled = {};
+ }
+ __name(CoSELayout, "CoSELayout");
+ CoSELayout.prototype = Object.create(FDLayout.prototype);
+ for (var prop in FDLayout) {
+ CoSELayout[prop] = FDLayout[prop];
+ }
+ CoSELayout.prototype.newGraphManager = function() {
+ var gm = new CoSEGraphManager(this);
+ this.graphManager = gm;
+ return gm;
+ };
+ CoSELayout.prototype.newGraph = function(vGraph) {
+ return new CoSEGraph(null, this.graphManager, vGraph);
+ };
+ CoSELayout.prototype.newNode = function(vNode) {
+ return new CoSENode(this.graphManager, vNode);
+ };
+ CoSELayout.prototype.newEdge = function(vEdge) {
+ return new CoSEEdge(null, null, vEdge);
+ };
+ CoSELayout.prototype.initParameters = function() {
+ FDLayout.prototype.initParameters.call(this, arguments);
+ if (!this.isSubLayout) {
+ if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {
+ this.idealEdgeLength = 10;
+ } else {
+ this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;
+ }
+ this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
+ this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
+ this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
+ this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
+ this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
+ this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
+ this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
+ this.prunedNodesAll = [];
+ this.growTreeIterations = 0;
+ this.afterGrowthIterations = 0;
+ this.isTreeGrowing = false;
+ this.isGrowthFinished = false;
+ this.coolingCycle = 0;
+ this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;
+ this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;
+ this.coolingAdjuster = 1;
+ }
+ };
+ CoSELayout.prototype.layout = function() {
+ var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ if (createBendsAsNeeded) {
+ this.createBendpoints();
+ this.graphManager.resetAllEdges();
+ }
+ this.level = 0;
+ return this.classicLayout();
+ };
+ CoSELayout.prototype.classicLayout = function() {
+ this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();
+ this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);
+ this.calcNoOfChildrenForAllNodes();
+ this.graphManager.calcLowestCommonAncestors();
+ this.graphManager.calcInclusionTreeDepths();
+ this.graphManager.getRoot().calcEstimatedSize();
+ this.calcIdealEdgeLengths();
+ if (!this.incremental) {
+ var forest = this.getFlatForest();
+ if (forest.length > 0) {
+ this.positionNodesRadially(forest);
+ } else {
+ this.reduceTrees();
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection3 = this.nodesWithGravity.filter(function(x5) {
+ return allNodes.has(x5);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection3);
+ this.positionNodesRandomly();
+ }
+ } else {
+ if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {
+ this.reduceTrees();
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection3 = this.nodesWithGravity.filter(function(x5) {
+ return allNodes.has(x5);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection3);
+ }
+ }
+ this.initSpringEmbedder();
+ this.runSpringEmbedder();
+ return true;
+ };
+ CoSELayout.prototype.tick = function() {
+ this.totalIterations++;
+ if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {
+ if (this.prunedNodesAll.length > 0) {
+ this.isTreeGrowing = true;
+ } else {
+ return true;
+ }
+ }
+ if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {
+ if (this.isConverged()) {
+ if (this.prunedNodesAll.length > 0) {
+ this.isTreeGrowing = true;
+ } else {
+ return true;
+ }
+ }
+ this.coolingCycle++;
+ if (this.layoutQuality == 0) {
+ this.coolingAdjuster = this.coolingCycle;
+ } else if (this.layoutQuality == 1) {
+ this.coolingAdjuster = this.coolingCycle / 3;
+ }
+ this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);
+ this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));
+ }
+ if (this.isTreeGrowing) {
+ if (this.growTreeIterations % 10 == 0) {
+ if (this.prunedNodesAll.length > 0) {
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ this.growTree(this.prunedNodesAll);
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection3 = this.nodesWithGravity.filter(function(x5) {
+ return allNodes.has(x5);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection3);
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ } else {
+ this.isTreeGrowing = false;
+ this.isGrowthFinished = true;
+ }
+ }
+ this.growTreeIterations++;
+ }
+ if (this.isGrowthFinished) {
+ if (this.isConverged()) {
+ return true;
+ }
+ if (this.afterGrowthIterations % 10 == 0) {
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ }
+ this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);
+ this.afterGrowthIterations++;
+ }
+ var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;
+ var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;
+ this.totalDisplacement = 0;
+ this.graphManager.updateBounds();
+ this.calcSpringForces();
+ this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);
+ this.calcGravitationalForces();
+ this.moveNodes();
+ this.animate();
+ return false;
+ };
+ CoSELayout.prototype.getPositionsData = function() {
+ var allNodes = this.graphManager.getAllNodes();
+ var pData = {};
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ var rect4 = allNodes[i2].rect;
+ var id27 = allNodes[i2].id;
+ pData[id27] = {
+ id: id27,
+ x: rect4.getCenterX(),
+ y: rect4.getCenterY(),
+ w: rect4.width,
+ h: rect4.height
+ };
+ }
+ return pData;
+ };
+ CoSELayout.prototype.runSpringEmbedder = function() {
+ this.initialAnimationPeriod = 25;
+ this.animationPeriod = this.initialAnimationPeriod;
+ var layoutEnded = false;
+ if (FDLayoutConstants.ANIMATE === "during") {
+ this.emit("layoutstarted");
+ } else {
+ while (!layoutEnded) {
+ layoutEnded = this.tick();
+ }
+ this.graphManager.updateBounds();
+ }
+ };
+ CoSELayout.prototype.calculateNodesToApplyGravitationTo = function() {
+ var nodeList = [];
+ var graph;
+ var graphs = this.graphManager.getGraphs();
+ var size5 = graphs.length;
+ var i2;
+ for (i2 = 0; i2 < size5; i2++) {
+ graph = graphs[i2];
+ graph.updateConnected();
+ if (!graph.isConnected) {
+ nodeList = nodeList.concat(graph.getNodes());
+ }
+ }
+ return nodeList;
+ };
+ CoSELayout.prototype.createBendpoints = function() {
+ var edges5 = [];
+ edges5 = edges5.concat(this.graphManager.getAllEdges());
+ var visited = /* @__PURE__ */ new Set();
+ var i2;
+ for (i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ if (!visited.has(edge)) {
+ var source = edge.getSource();
+ var target = edge.getTarget();
+ if (source == target) {
+ edge.getBendpoints().push(new PointD());
+ edge.getBendpoints().push(new PointD());
+ this.createDummyNodesForBendpoints(edge);
+ visited.add(edge);
+ } else {
+ var edgeList2 = [];
+ edgeList2 = edgeList2.concat(source.getEdgeListToNode(target));
+ edgeList2 = edgeList2.concat(target.getEdgeListToNode(source));
+ if (!visited.has(edgeList2[0])) {
+ if (edgeList2.length > 1) {
+ var k2;
+ for (k2 = 0; k2 < edgeList2.length; k2++) {
+ var multiEdge = edgeList2[k2];
+ multiEdge.getBendpoints().push(new PointD());
+ this.createDummyNodesForBendpoints(multiEdge);
+ }
+ }
+ edgeList2.forEach(function(edge2) {
+ visited.add(edge2);
+ });
+ }
+ }
+ }
+ if (visited.size == edges5.length) {
+ break;
+ }
+ }
+ };
+ CoSELayout.prototype.positionNodesRadially = function(forest) {
+ var currentStartingPoint = new Point3(0, 0);
+ var numberOfColumns = Math.ceil(Math.sqrt(forest.length));
+ var height2 = 0;
+ var currentY = 0;
+ var currentX = 0;
+ var point8 = new PointD(0, 0);
+ for (var i2 = 0; i2 < forest.length; i2++) {
+ if (i2 % numberOfColumns == 0) {
+ currentX = 0;
+ currentY = height2;
+ if (i2 != 0) {
+ currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;
+ }
+ height2 = 0;
+ }
+ var tree = forest[i2];
+ var centerNode = Layout2.findCenterOfTree(tree);
+ currentStartingPoint.x = currentX;
+ currentStartingPoint.y = currentY;
+ point8 = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);
+ if (point8.y > height2) {
+ height2 = Math.floor(point8.y);
+ }
+ currentX = Math.floor(point8.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);
+ }
+ this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point8.x / 2, LayoutConstants.WORLD_CENTER_Y - point8.y / 2));
+ };
+ CoSELayout.radialLayout = function(tree, centerNode, startingPoint) {
+ var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);
+ CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);
+ var bounds4 = LGraph.calculateBounds(tree);
+ var transform8 = new Transform2();
+ transform8.setDeviceOrgX(bounds4.getMinX());
+ transform8.setDeviceOrgY(bounds4.getMinY());
+ transform8.setWorldOrgX(startingPoint.x);
+ transform8.setWorldOrgY(startingPoint.y);
+ for (var i2 = 0; i2 < tree.length; i2++) {
+ var node2 = tree[i2];
+ node2.transform(transform8);
+ }
+ var bottomRight = new PointD(bounds4.getMaxX(), bounds4.getMaxY());
+ return transform8.inverseTransformPoint(bottomRight);
+ };
+ CoSELayout.branchRadialLayout = function(node2, parentOfNode, startAngle, endAngle, distance2, radialSeparation) {
+ var halfInterval = (endAngle - startAngle + 1) / 2;
+ if (halfInterval < 0) {
+ halfInterval += 180;
+ }
+ var nodeAngle = (halfInterval + startAngle) % 360;
+ var teta = nodeAngle * IGeometry.TWO_PI / 360;
+ var cos_teta = Math.cos(teta);
+ var x_ = distance2 * Math.cos(teta);
+ var y_ = distance2 * Math.sin(teta);
+ node2.setCenter(x_, y_);
+ var neighborEdges = [];
+ neighborEdges = neighborEdges.concat(node2.getEdges());
+ var childCount = neighborEdges.length;
+ if (parentOfNode != null) {
+ childCount--;
+ }
+ var branchCount = 0;
+ var incEdgesCount = neighborEdges.length;
+ var startIndex;
+ var edges5 = node2.getEdgesBetween(parentOfNode);
+ while (edges5.length > 1) {
+ var temp = edges5[0];
+ edges5.splice(0, 1);
+ var index = neighborEdges.indexOf(temp);
+ if (index >= 0) {
+ neighborEdges.splice(index, 1);
+ }
+ incEdgesCount--;
+ childCount--;
+ }
+ if (parentOfNode != null) {
+ startIndex = (neighborEdges.indexOf(edges5[0]) + 1) % incEdgesCount;
+ } else {
+ startIndex = 0;
+ }
+ var stepAngle = Math.abs(endAngle - startAngle) / childCount;
+ for (var i2 = startIndex; branchCount != childCount; i2 = ++i2 % incEdgesCount) {
+ var currentNeighbor = neighborEdges[i2].getOtherEnd(node2);
+ if (currentNeighbor == parentOfNode) {
+ continue;
+ }
+ var childStartAngle = (startAngle + branchCount * stepAngle) % 360;
+ var childEndAngle = (childStartAngle + stepAngle) % 360;
+ CoSELayout.branchRadialLayout(currentNeighbor, node2, childStartAngle, childEndAngle, distance2 + radialSeparation, radialSeparation);
+ branchCount++;
+ }
+ };
+ CoSELayout.maxDiagonalInTree = function(tree) {
+ var maxDiagonal = Integer.MIN_VALUE;
+ for (var i2 = 0; i2 < tree.length; i2++) {
+ var node2 = tree[i2];
+ var diagonal = node2.getDiagonal();
+ if (diagonal > maxDiagonal) {
+ maxDiagonal = diagonal;
+ }
+ }
+ return maxDiagonal;
+ };
+ CoSELayout.prototype.calcRepulsionRange = function() {
+ return 2 * (this.level + 1) * this.idealEdgeLength;
+ };
+ CoSELayout.prototype.groupZeroDegreeMembers = function() {
+ var self2 = this;
+ var tempMemberGroups = {};
+ this.memberGroups = {};
+ this.idToDummyNode = {};
+ var zeroDegree = [];
+ var allNodes = this.graphManager.getAllNodes();
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ var node2 = allNodes[i2];
+ var parent4 = node2.getParent();
+ if (this.getNodeDegreeWithChildren(node2) === 0 && (parent4.id == void 0 || !this.getToBeTiled(parent4))) {
+ zeroDegree.push(node2);
+ }
+ }
+ for (var i2 = 0; i2 < zeroDegree.length; i2++) {
+ var node2 = zeroDegree[i2];
+ var p_id = node2.getParent().id;
+ if (typeof tempMemberGroups[p_id] === "undefined") tempMemberGroups[p_id] = [];
+ tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node2);
+ }
+ Object.keys(tempMemberGroups).forEach(function(p_id2) {
+ if (tempMemberGroups[p_id2].length > 1) {
+ var dummyCompoundId = "DummyCompound_" + p_id2;
+ self2.memberGroups[dummyCompoundId] = tempMemberGroups[p_id2];
+ var parent5 = tempMemberGroups[p_id2][0].getParent();
+ var dummyCompound = new CoSENode(self2.graphManager);
+ dummyCompound.id = dummyCompoundId;
+ dummyCompound.paddingLeft = parent5.paddingLeft || 0;
+ dummyCompound.paddingRight = parent5.paddingRight || 0;
+ dummyCompound.paddingBottom = parent5.paddingBottom || 0;
+ dummyCompound.paddingTop = parent5.paddingTop || 0;
+ self2.idToDummyNode[dummyCompoundId] = dummyCompound;
+ var dummyParentGraph = self2.getGraphManager().add(self2.newGraph(), dummyCompound);
+ var parentGraph = parent5.getChild();
+ parentGraph.add(dummyCompound);
+ for (var i3 = 0; i3 < tempMemberGroups[p_id2].length; i3++) {
+ var node3 = tempMemberGroups[p_id2][i3];
+ parentGraph.remove(node3);
+ dummyParentGraph.add(node3);
+ }
+ }
+ });
+ };
+ CoSELayout.prototype.clearCompounds = function() {
+ var childGraphMap = {};
+ var idToNode = {};
+ this.performDFSOnCompounds();
+ for (var i2 = 0; i2 < this.compoundOrder.length; i2++) {
+ idToNode[this.compoundOrder[i2].id] = this.compoundOrder[i2];
+ childGraphMap[this.compoundOrder[i2].id] = [].concat(this.compoundOrder[i2].getChild().getNodes());
+ this.graphManager.remove(this.compoundOrder[i2].getChild());
+ this.compoundOrder[i2].child = null;
+ }
+ this.graphManager.resetAllNodes();
+ this.tileCompoundMembers(childGraphMap, idToNode);
+ };
+ CoSELayout.prototype.clearZeroDegreeMembers = function() {
+ var self2 = this;
+ var tiledZeroDegreePack = this.tiledZeroDegreePack = [];
+ Object.keys(this.memberGroups).forEach(function(id27) {
+ var compoundNode = self2.idToDummyNode[id27];
+ tiledZeroDegreePack[id27] = self2.tileNodes(self2.memberGroups[id27], compoundNode.paddingLeft + compoundNode.paddingRight);
+ compoundNode.rect.width = tiledZeroDegreePack[id27].width;
+ compoundNode.rect.height = tiledZeroDegreePack[id27].height;
+ });
+ };
+ CoSELayout.prototype.repopulateCompounds = function() {
+ for (var i2 = this.compoundOrder.length - 1; i2 >= 0; i2--) {
+ var lCompoundNode = this.compoundOrder[i2];
+ var id27 = lCompoundNode.id;
+ var horizontalMargin = lCompoundNode.paddingLeft;
+ var verticalMargin = lCompoundNode.paddingTop;
+ this.adjustLocations(this.tiledMemberPack[id27], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);
+ }
+ };
+ CoSELayout.prototype.repopulateZeroDegreeMembers = function() {
+ var self2 = this;
+ var tiledPack = this.tiledZeroDegreePack;
+ Object.keys(tiledPack).forEach(function(id27) {
+ var compoundNode = self2.idToDummyNode[id27];
+ var horizontalMargin = compoundNode.paddingLeft;
+ var verticalMargin = compoundNode.paddingTop;
+ self2.adjustLocations(tiledPack[id27], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);
+ });
+ };
+ CoSELayout.prototype.getToBeTiled = function(node2) {
+ var id27 = node2.id;
+ if (this.toBeTiled[id27] != null) {
+ return this.toBeTiled[id27];
+ }
+ var childGraph = node2.getChild();
+ if (childGraph == null) {
+ this.toBeTiled[id27] = false;
+ return false;
+ }
+ var children2 = childGraph.getNodes();
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var theChild = children2[i2];
+ if (this.getNodeDegree(theChild) > 0) {
+ this.toBeTiled[id27] = false;
+ return false;
+ }
+ if (theChild.getChild() == null) {
+ this.toBeTiled[theChild.id] = false;
+ continue;
+ }
+ if (!this.getToBeTiled(theChild)) {
+ this.toBeTiled[id27] = false;
+ return false;
+ }
+ }
+ this.toBeTiled[id27] = true;
+ return true;
+ };
+ CoSELayout.prototype.getNodeDegree = function(node2) {
+ var id27 = node2.id;
+ var edges5 = node2.getEdges();
+ var degree = 0;
+ for (var i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ if (edge.getSource().id !== edge.getTarget().id) {
+ degree = degree + 1;
+ }
+ }
+ return degree;
+ };
+ CoSELayout.prototype.getNodeDegreeWithChildren = function(node2) {
+ var degree = this.getNodeDegree(node2);
+ if (node2.getChild() == null) {
+ return degree;
+ }
+ var children2 = node2.getChild().getNodes();
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var child = children2[i2];
+ degree += this.getNodeDegreeWithChildren(child);
+ }
+ return degree;
+ };
+ CoSELayout.prototype.performDFSOnCompounds = function() {
+ this.compoundOrder = [];
+ this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());
+ };
+ CoSELayout.prototype.fillCompexOrderByDFS = function(children2) {
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var child = children2[i2];
+ if (child.getChild() != null) {
+ this.fillCompexOrderByDFS(child.getChild().getNodes());
+ }
+ if (this.getToBeTiled(child)) {
+ this.compoundOrder.push(child);
+ }
+ }
+ };
+ CoSELayout.prototype.adjustLocations = function(organization, x5, y5, compoundHorizontalMargin, compoundVerticalMargin) {
+ x5 += compoundHorizontalMargin;
+ y5 += compoundVerticalMargin;
+ var left3 = x5;
+ for (var i2 = 0; i2 < organization.rows.length; i2++) {
+ var row = organization.rows[i2];
+ x5 = left3;
+ var maxHeight = 0;
+ for (var j2 = 0; j2 < row.length; j2++) {
+ var lnode = row[j2];
+ lnode.rect.x = x5;
+ lnode.rect.y = y5;
+ x5 += lnode.rect.width + organization.horizontalPadding;
+ if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;
+ }
+ y5 += maxHeight + organization.verticalPadding;
+ }
+ };
+ CoSELayout.prototype.tileCompoundMembers = function(childGraphMap, idToNode) {
+ var self2 = this;
+ this.tiledMemberPack = [];
+ Object.keys(childGraphMap).forEach(function(id27) {
+ var compoundNode = idToNode[id27];
+ self2.tiledMemberPack[id27] = self2.tileNodes(childGraphMap[id27], compoundNode.paddingLeft + compoundNode.paddingRight);
+ compoundNode.rect.width = self2.tiledMemberPack[id27].width;
+ compoundNode.rect.height = self2.tiledMemberPack[id27].height;
+ });
+ };
+ CoSELayout.prototype.tileNodes = function(nodes6, minWidth) {
+ var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;
+ var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;
+ var organization = {
+ rows: [],
+ rowWidth: [],
+ rowHeight: [],
+ width: 0,
+ height: minWidth,
+ // assume minHeight equals to minWidth
+ verticalPadding,
+ horizontalPadding
+ };
+ nodes6.sort(function(n1, n2) {
+ if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) return -1;
+ if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) return 1;
+ return 0;
+ });
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var lNode = nodes6[i2];
+ if (organization.rows.length == 0) {
+ this.insertNodeToRow(organization, lNode, 0, minWidth);
+ } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {
+ this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);
+ } else {
+ this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);
+ }
+ this.shiftToLastRow(organization);
+ }
+ return organization;
+ };
+ CoSELayout.prototype.insertNodeToRow = function(organization, node2, rowIndex, minWidth) {
+ var minCompoundSize = minWidth;
+ if (rowIndex == organization.rows.length) {
+ var secondDimension = [];
+ organization.rows.push(secondDimension);
+ organization.rowWidth.push(minCompoundSize);
+ organization.rowHeight.push(0);
+ }
+ var w3 = organization.rowWidth[rowIndex] + node2.rect.width;
+ if (organization.rows[rowIndex].length > 0) {
+ w3 += organization.horizontalPadding;
+ }
+ organization.rowWidth[rowIndex] = w3;
+ if (organization.width < w3) {
+ organization.width = w3;
+ }
+ var h2 = node2.rect.height;
+ if (rowIndex > 0) h2 += organization.verticalPadding;
+ var extraHeight = 0;
+ if (h2 > organization.rowHeight[rowIndex]) {
+ extraHeight = organization.rowHeight[rowIndex];
+ organization.rowHeight[rowIndex] = h2;
+ extraHeight = organization.rowHeight[rowIndex] - extraHeight;
+ }
+ organization.height += extraHeight;
+ organization.rows[rowIndex].push(node2);
+ };
+ CoSELayout.prototype.getShortestRowIndex = function(organization) {
+ var r2 = -1;
+ var min9 = Number.MAX_VALUE;
+ for (var i2 = 0; i2 < organization.rows.length; i2++) {
+ if (organization.rowWidth[i2] < min9) {
+ r2 = i2;
+ min9 = organization.rowWidth[i2];
+ }
+ }
+ return r2;
+ };
+ CoSELayout.prototype.getLongestRowIndex = function(organization) {
+ var r2 = -1;
+ var max10 = Number.MIN_VALUE;
+ for (var i2 = 0; i2 < organization.rows.length; i2++) {
+ if (organization.rowWidth[i2] > max10) {
+ r2 = i2;
+ max10 = organization.rowWidth[i2];
+ }
+ }
+ return r2;
+ };
+ CoSELayout.prototype.canAddHorizontal = function(organization, extraWidth, extraHeight) {
+ var sri = this.getShortestRowIndex(organization);
+ if (sri < 0) {
+ return true;
+ }
+ var min9 = organization.rowWidth[sri];
+ if (min9 + organization.horizontalPadding + extraWidth <= organization.width) return true;
+ var hDiff = 0;
+ if (organization.rowHeight[sri] < extraHeight) {
+ if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];
+ }
+ var add_to_row_ratio;
+ if (organization.width - min9 >= extraWidth + organization.horizontalPadding) {
+ add_to_row_ratio = (organization.height + hDiff) / (min9 + extraWidth + organization.horizontalPadding);
+ } else {
+ add_to_row_ratio = (organization.height + hDiff) / organization.width;
+ }
+ hDiff = extraHeight + organization.verticalPadding;
+ var add_new_row_ratio;
+ if (organization.width < extraWidth) {
+ add_new_row_ratio = (organization.height + hDiff) / extraWidth;
+ } else {
+ add_new_row_ratio = (organization.height + hDiff) / organization.width;
+ }
+ if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;
+ if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;
+ return add_to_row_ratio < add_new_row_ratio;
+ };
+ CoSELayout.prototype.shiftToLastRow = function(organization) {
+ var longest = this.getLongestRowIndex(organization);
+ var last3 = organization.rowWidth.length - 1;
+ var row = organization.rows[longest];
+ var node2 = row[row.length - 1];
+ var diff2 = node2.width + organization.horizontalPadding;
+ if (organization.width - organization.rowWidth[last3] > diff2 && longest != last3) {
+ row.splice(-1, 1);
+ organization.rows[last3].push(node2);
+ organization.rowWidth[longest] = organization.rowWidth[longest] - diff2;
+ organization.rowWidth[last3] = organization.rowWidth[last3] + diff2;
+ organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];
+ var maxHeight = Number.MIN_VALUE;
+ for (var i2 = 0; i2 < row.length; i2++) {
+ if (row[i2].height > maxHeight) maxHeight = row[i2].height;
+ }
+ if (longest > 0) maxHeight += organization.verticalPadding;
+ var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last3];
+ organization.rowHeight[longest] = maxHeight;
+ if (organization.rowHeight[last3] < node2.height + organization.verticalPadding) organization.rowHeight[last3] = node2.height + organization.verticalPadding;
+ var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last3];
+ organization.height += finalTotal - prevTotal;
+ this.shiftToLastRow(organization);
+ }
+ };
+ CoSELayout.prototype.tilingPreLayout = function() {
+ if (CoSEConstants.TILE) {
+ this.groupZeroDegreeMembers();
+ this.clearCompounds();
+ this.clearZeroDegreeMembers();
+ }
+ };
+ CoSELayout.prototype.tilingPostLayout = function() {
+ if (CoSEConstants.TILE) {
+ this.repopulateZeroDegreeMembers();
+ this.repopulateCompounds();
+ }
+ };
+ CoSELayout.prototype.reduceTrees = function() {
+ var prunedNodesAll = [];
+ var containsLeaf = true;
+ var node2;
+ while (containsLeaf) {
+ var allNodes = this.graphManager.getAllNodes();
+ var prunedNodesInStepTemp = [];
+ containsLeaf = false;
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ node2 = allNodes[i2];
+ if (node2.getEdges().length == 1 && !node2.getEdges()[0].isInterGraph && node2.getChild() == null) {
+ prunedNodesInStepTemp.push([node2, node2.getEdges()[0], node2.getOwner()]);
+ containsLeaf = true;
+ }
+ }
+ if (containsLeaf == true) {
+ var prunedNodesInStep = [];
+ for (var j2 = 0; j2 < prunedNodesInStepTemp.length; j2++) {
+ if (prunedNodesInStepTemp[j2][0].getEdges().length == 1) {
+ prunedNodesInStep.push(prunedNodesInStepTemp[j2]);
+ prunedNodesInStepTemp[j2][0].getOwner().remove(prunedNodesInStepTemp[j2][0]);
+ }
+ }
+ prunedNodesAll.push(prunedNodesInStep);
+ this.graphManager.resetAllNodes();
+ this.graphManager.resetAllEdges();
+ }
+ }
+ this.prunedNodesAll = prunedNodesAll;
+ };
+ CoSELayout.prototype.growTree = function(prunedNodesAll) {
+ var lengthOfPrunedNodesInStep = prunedNodesAll.length;
+ var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];
+ var nodeData2;
+ for (var i2 = 0; i2 < prunedNodesInStep.length; i2++) {
+ nodeData2 = prunedNodesInStep[i2];
+ this.findPlaceforPrunedNode(nodeData2);
+ nodeData2[2].add(nodeData2[0]);
+ nodeData2[2].add(nodeData2[1], nodeData2[1].source, nodeData2[1].target);
+ }
+ prunedNodesAll.splice(prunedNodesAll.length - 1, 1);
+ this.graphManager.resetAllNodes();
+ this.graphManager.resetAllEdges();
+ };
+ CoSELayout.prototype.findPlaceforPrunedNode = function(nodeData2) {
+ var gridForPrunedNode;
+ var nodeToConnect;
+ var prunedNode = nodeData2[0];
+ if (prunedNode == nodeData2[1].source) {
+ nodeToConnect = nodeData2[1].target;
+ } else {
+ nodeToConnect = nodeData2[1].source;
+ }
+ var startGridX = nodeToConnect.startX;
+ var finishGridX = nodeToConnect.finishX;
+ var startGridY = nodeToConnect.startY;
+ var finishGridY = nodeToConnect.finishY;
+ var upNodeCount = 0;
+ var downNodeCount = 0;
+ var rightNodeCount = 0;
+ var leftNodeCount = 0;
+ var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];
+ if (startGridY > 0) {
+ for (var i2 = startGridX; i2 <= finishGridX; i2++) {
+ controlRegions[0] += this.grid[i2][startGridY - 1].length + this.grid[i2][startGridY].length - 1;
+ }
+ }
+ if (finishGridX < this.grid.length - 1) {
+ for (var i2 = startGridY; i2 <= finishGridY; i2++) {
+ controlRegions[1] += this.grid[finishGridX + 1][i2].length + this.grid[finishGridX][i2].length - 1;
+ }
+ }
+ if (finishGridY < this.grid[0].length - 1) {
+ for (var i2 = startGridX; i2 <= finishGridX; i2++) {
+ controlRegions[2] += this.grid[i2][finishGridY + 1].length + this.grid[i2][finishGridY].length - 1;
+ }
+ }
+ if (startGridX > 0) {
+ for (var i2 = startGridY; i2 <= finishGridY; i2++) {
+ controlRegions[3] += this.grid[startGridX - 1][i2].length + this.grid[startGridX][i2].length - 1;
+ }
+ }
+ var min9 = Integer.MAX_VALUE;
+ var minCount;
+ var minIndex;
+ for (var j2 = 0; j2 < controlRegions.length; j2++) {
+ if (controlRegions[j2] < min9) {
+ min9 = controlRegions[j2];
+ minCount = 1;
+ minIndex = j2;
+ } else if (controlRegions[j2] == min9) {
+ minCount++;
+ }
+ }
+ if (minCount == 3 && min9 == 0) {
+ if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {
+ gridForPrunedNode = 1;
+ } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 0;
+ } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 3;
+ } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 2;
+ }
+ } else if (minCount == 2 && min9 == 0) {
+ var random2 = Math.floor(Math.random() * 2);
+ if (controlRegions[0] == 0 && controlRegions[1] == 0) {
+ ;
+ if (random2 == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 1;
+ }
+ } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 2;
+ }
+ } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 1;
+ } else {
+ gridForPrunedNode = 2;
+ }
+ } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 1;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ } else {
+ if (random2 == 0) {
+ gridForPrunedNode = 2;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ }
+ } else if (minCount == 4 && min9 == 0) {
+ var random2 = Math.floor(Math.random() * 4);
+ gridForPrunedNode = random2;
+ } else {
+ gridForPrunedNode = minIndex;
+ }
+ if (gridForPrunedNode == 0) {
+ prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);
+ } else if (gridForPrunedNode == 1) {
+ prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
+ } else if (gridForPrunedNode == 2) {
+ prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);
+ } else {
+ prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
+ }
+ };
+ module3.exports = CoSELayout;
+ },
+ /* 7 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var coseBase = {};
+ coseBase.layoutBase = __webpack_require__(0);
+ coseBase.CoSEConstants = __webpack_require__(1);
+ coseBase.CoSEEdge = __webpack_require__(2);
+ coseBase.CoSEGraph = __webpack_require__(3);
+ coseBase.CoSEGraphManager = __webpack_require__(4);
+ coseBase.CoSELayout = __webpack_require__(6);
+ coseBase.CoSENode = __webpack_require__(5);
+ module3.exports = coseBase;
+ }
+ /******/
+ ])
+ );
+ });
+ }
+ });
+
+ // ../../node_modules/.pnpm/cytoscape-cose-bilkent@4.1.0_cytoscape@3.30.1/node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js
+ var require_cytoscape_cose_bilkent = __commonJS({
+ "../../node_modules/.pnpm/cytoscape-cose-bilkent@4.1.0_cytoscape@3.30.1/node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js"(exports2, module2) {
+ "use strict";
+ (/* @__PURE__ */ __name(function webpackUniversalModuleDefinition(root4, factory) {
+ if (typeof exports2 === "object" && typeof module2 === "object")
+ module2.exports = factory(require_cose_base());
+ else if (typeof define === "function" && define.amd)
+ define(["cose-base"], factory);
+ else if (typeof exports2 === "object")
+ exports2["cytoscapeCoseBilkent"] = factory(require_cose_base());
+ else
+ root4["cytoscapeCoseBilkent"] = factory(root4["coseBase"]);
+ }, "webpackUniversalModuleDefinition"))(exports2, function(__WEBPACK_EXTERNAL_MODULE_0__) {
+ return (
+ /******/
+ function(modules2) {
+ var installedModules = {};
+ function __webpack_require__(moduleId) {
+ if (installedModules[moduleId]) {
+ return installedModules[moduleId].exports;
}
- break;
- case "straight":
- case "segments":
- case "haystack":
- for (var _i = 2; _i + 1 < pts2.length; _i += 2) {
- context.lineTo(pts2[_i], pts2[_i + 1]);
+ var module3 = installedModules[moduleId] = {
+ /******/
+ i: moduleId,
+ /******/
+ l: false,
+ /******/
+ exports: {}
+ /******/
+ };
+ modules2[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
+ module3.l = true;
+ return module3.exports;
+ }
+ __name(__webpack_require__, "__webpack_require__");
+ __webpack_require__.m = modules2;
+ __webpack_require__.c = installedModules;
+ __webpack_require__.i = function(value2) {
+ return value2;
+ };
+ __webpack_require__.d = function(exports3, name, getter) {
+ if (!__webpack_require__.o(exports3, name)) {
+ Object.defineProperty(exports3, name, {
+ /******/
+ configurable: false,
+ /******/
+ enumerable: true,
+ /******/
+ get: getter
+ /******/
+ });
}
- break;
- }
- }
- context = canvasCxt;
- if (usePaths) {
- context.stroke(path2);
- } else {
- context.stroke();
- }
- if (context.setLineDash) {
- context.setLineDash([]);
- }
- };
- CRp$8.drawEdgeTrianglePath = function(edge, context, pts2) {
- context.fillStyle = context.strokeStyle;
- var edgeWidth = edge.pstyle("width").pfValue;
- for (var i3 = 0; i3 + 1 < pts2.length; i3 += 2) {
- var vector = [pts2[i3 + 2] - pts2[i3], pts2[i3 + 3] - pts2[i3 + 1]];
- var length2 = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);
- var normal2 = [vector[1] / length2, -vector[0] / length2];
- var triangleHead = [normal2[0] * edgeWidth / 2, normal2[1] * edgeWidth / 2];
- context.beginPath();
- context.moveTo(pts2[i3] - triangleHead[0], pts2[i3 + 1] - triangleHead[1]);
- context.lineTo(pts2[i3] + triangleHead[0], pts2[i3 + 1] + triangleHead[1]);
- context.lineTo(pts2[i3 + 2], pts2[i3 + 3]);
- context.closePath();
- context.fill();
- }
- };
- CRp$8.drawArrowheads = function(context, edge, opacity) {
- var rs = edge._private.rscratch;
- var isHaystack = rs.edgeType === "haystack";
- if (!isHaystack) {
- this.drawArrowhead(context, edge, "source", rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);
- }
- this.drawArrowhead(context, edge, "mid-target", rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);
- this.drawArrowhead(context, edge, "mid-source", rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);
- if (!isHaystack) {
- this.drawArrowhead(context, edge, "target", rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);
- }
- };
- CRp$8.drawArrowhead = function(context, edge, prefix, x2, y2, angle, opacity) {
- if (isNaN(x2) || x2 == null || isNaN(y2) || y2 == null || isNaN(angle) || angle == null) {
- return;
- }
- var self2 = this;
- var arrowShape = edge.pstyle(prefix + "-arrow-shape").value;
- if (arrowShape === "none") {
- return;
- }
- var arrowClearFill = edge.pstyle(prefix + "-arrow-fill").value === "hollow" ? "both" : "filled";
- var arrowFill = edge.pstyle(prefix + "-arrow-fill").value;
- var edgeWidth = edge.pstyle("width").pfValue;
- var edgeOpacity = edge.pstyle("opacity").value;
- if (opacity === void 0) {
- opacity = edgeOpacity;
- }
- var gco = context.globalCompositeOperation;
- if (opacity !== 1 || arrowFill === "hollow") {
- context.globalCompositeOperation = "destination-out";
- self2.colorFillStyle(context, 255, 255, 255, 1);
- self2.colorStrokeStyle(context, 255, 255, 255, 1);
- self2.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, x2, y2, angle);
- context.globalCompositeOperation = gco;
- }
- var color2 = edge.pstyle(prefix + "-arrow-color").value;
- self2.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
- self2.colorStrokeStyle(context, color2[0], color2[1], color2[2], opacity);
- self2.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, x2, y2, angle);
- };
- CRp$8.drawArrowShape = function(edge, context, fill, edgeWidth, shape, x2, y2, angle) {
- var r = this;
- var usePaths = this.usePaths() && shape !== "triangle-cross";
- var pathCacheHit = false;
- var path2;
- var canvasContext = context;
- var translation = {
- x: x2,
- y: y2
- };
- var scale = edge.pstyle("arrow-scale").value;
- var size2 = this.getArrowWidth(edgeWidth, scale);
- var shapeImpl = r.arrowShapes[shape];
- if (usePaths) {
- var cache2 = r.arrowPathCache = r.arrowPathCache || [];
- var key = hashString(shape);
- var cachedPath = cache2[key];
- if (cachedPath != null) {
- path2 = context = cachedPath;
- pathCacheHit = true;
- } else {
- path2 = context = new Path2D();
- cache2[key] = path2;
- }
- }
- if (!pathCacheHit) {
- if (context.beginPath) {
- context.beginPath();
- }
- if (usePaths) {
- shapeImpl.draw(context, 1, 0, {
- x: 0,
- y: 0
- }, 1);
- } else {
- shapeImpl.draw(context, size2, angle, translation, edgeWidth);
- }
- if (context.closePath) {
- context.closePath();
- }
- }
- context = canvasContext;
- if (usePaths) {
- context.translate(x2, y2);
- context.rotate(angle);
- context.scale(size2, size2);
- }
- if (fill === "filled" || fill === "both") {
- if (usePaths) {
- context.fill(path2);
+ };
+ __webpack_require__.n = function(module3) {
+ var getter = module3 && module3.__esModule ? (
+ /******/
+ /* @__PURE__ */ __name(function getDefault() {
+ return module3["default"];
+ }, "getDefault")
+ ) : (
+ /******/
+ /* @__PURE__ */ __name(function getModuleExports() {
+ return module3;
+ }, "getModuleExports")
+ );
+ __webpack_require__.d(getter, "a", getter);
+ return getter;
+ };
+ __webpack_require__.o = function(object3, property2) {
+ return Object.prototype.hasOwnProperty.call(object3, property2);
+ };
+ __webpack_require__.p = "";
+ return __webpack_require__(__webpack_require__.s = 1);
+ }([
+ /* 0 */
+ /***/
+ function(module3, exports3) {
+ module3.exports = __WEBPACK_EXTERNAL_MODULE_0__;
+ },
+ /* 1 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants;
+ var FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants;
+ var CoSEConstants = __webpack_require__(0).CoSEConstants;
+ var CoSELayout = __webpack_require__(0).CoSELayout;
+ var CoSENode = __webpack_require__(0).CoSENode;
+ var PointD = __webpack_require__(0).layoutBase.PointD;
+ var DimensionD2 = __webpack_require__(0).layoutBase.DimensionD;
+ var defaults4 = {
+ // Called on `layoutready`
+ ready: /* @__PURE__ */ __name(function ready4() {
+ }, "ready"),
+ // Called on `layoutstop`
+ stop: /* @__PURE__ */ __name(function stop5() {
+ }, "stop"),
+ // 'draft', 'default' or 'proof"
+ // - 'draft' fast cooling rate
+ // - 'default' moderate cooling rate
+ // - "proof" slow cooling rate
+ quality: "default",
+ // include labels in node dimensions
+ nodeDimensionsIncludeLabels: false,
+ // number of ticks per frame; higher is faster but more jerky
+ refresh: 30,
+ // Whether to fit the network view after when done
+ fit: true,
+ // Padding on fit
+ padding: 10,
+ // Whether to enable incremental mode
+ randomize: true,
+ // Node repulsion (non overlapping) multiplier
+ nodeRepulsion: 4500,
+ // Ideal edge (non nested) length
+ idealEdgeLength: 50,
+ // Divisor to compute edge forces
+ edgeElasticity: 0.45,
+ // Nesting factor (multiplier) to compute ideal edge length for nested edges
+ nestingFactor: 0.1,
+ // Gravity force (constant)
+ gravity: 0.25,
+ // Maximum number of iterations to perform
+ numIter: 2500,
+ // For enabling tiling
+ tile: true,
+ // Type of layout animation. The option set is {'during', 'end', false}
+ animate: "end",
+ // Duration for animate:end
+ animationDuration: 500,
+ // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingVertical: 10,
+ // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingHorizontal: 10,
+ // Gravity range (constant) for compounds
+ gravityRangeCompound: 1.5,
+ // Gravity force (constant) for compounds
+ gravityCompound: 1,
+ // Gravity range (constant)
+ gravityRange: 3.8,
+ // Initial cooling factor for incremental layout
+ initialEnergyOnIncremental: 0.5
+ };
+ function extend5(defaults5, options3) {
+ var obj = {};
+ for (var i2 in defaults5) {
+ obj[i2] = defaults5[i2];
+ }
+ for (var i2 in options3) {
+ obj[i2] = options3[i2];
+ }
+ return obj;
+ }
+ __name(extend5, "extend");
+ ;
+ function _CoSELayout(_options) {
+ this.options = extend5(defaults4, _options);
+ getUserOptions(this.options);
+ }
+ __name(_CoSELayout, "_CoSELayout");
+ var getUserOptions = /* @__PURE__ */ __name(function getUserOptions2(options3) {
+ if (options3.nodeRepulsion != null) CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options3.nodeRepulsion;
+ if (options3.idealEdgeLength != null) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options3.idealEdgeLength;
+ if (options3.edgeElasticity != null) CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options3.edgeElasticity;
+ if (options3.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options3.nestingFactor;
+ if (options3.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options3.gravity;
+ if (options3.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options3.numIter;
+ if (options3.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options3.gravityRange;
+ if (options3.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options3.gravityCompound;
+ if (options3.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options3.gravityRangeCompound;
+ if (options3.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options3.initialEnergyOnIncremental;
+ if (options3.quality == "draft") LayoutConstants.QUALITY = 0;
+ else if (options3.quality == "proof") LayoutConstants.QUALITY = 2;
+ else LayoutConstants.QUALITY = 1;
+ CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options3.nodeDimensionsIncludeLabels;
+ CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options3.randomize;
+ CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options3.animate;
+ CoSEConstants.TILE = options3.tile;
+ CoSEConstants.TILING_PADDING_VERTICAL = typeof options3.tilingPaddingVertical === "function" ? options3.tilingPaddingVertical.call() : options3.tilingPaddingVertical;
+ CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options3.tilingPaddingHorizontal === "function" ? options3.tilingPaddingHorizontal.call() : options3.tilingPaddingHorizontal;
+ }, "getUserOptions");
+ _CoSELayout.prototype.run = function() {
+ var ready4;
+ var frameId;
+ var options3 = this.options;
+ var idToLNode = this.idToLNode = {};
+ var layout6 = this.layout = new CoSELayout();
+ var self2 = this;
+ self2.stopped = false;
+ this.cy = this.options.cy;
+ this.cy.trigger({ type: "layoutstart", layout: this });
+ var gm = layout6.newGraphManager();
+ this.gm = gm;
+ var nodes6 = this.options.eles.nodes();
+ var edges5 = this.options.eles.edges();
+ this.root = gm.addRoot();
+ this.processChildrenList(this.root, this.getTopMostNodes(nodes6), layout6);
+ for (var i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ var sourceNode = this.idToLNode[edge.data("source")];
+ var targetNode = this.idToLNode[edge.data("target")];
+ if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {
+ var e1 = gm.add(layout6.newEdge(), sourceNode, targetNode);
+ e1.id = edge.id();
+ }
+ }
+ var getPositions = /* @__PURE__ */ __name(function getPositions2(ele, i3) {
+ if (typeof ele === "number") {
+ ele = i3;
+ }
+ var theId = ele.data("id");
+ var lNode = self2.idToLNode[theId];
+ return {
+ x: lNode.getRect().getCenterX(),
+ y: lNode.getRect().getCenterY()
+ };
+ }, "getPositions");
+ var iterateAnimated = /* @__PURE__ */ __name(function iterateAnimated2() {
+ var afterReposition = /* @__PURE__ */ __name(function afterReposition2() {
+ if (options3.fit) {
+ options3.cy.fit(options3.eles, options3.padding);
+ }
+ if (!ready4) {
+ ready4 = true;
+ self2.cy.one("layoutready", options3.ready);
+ self2.cy.trigger({ type: "layoutready", layout: self2 });
+ }
+ }, "afterReposition");
+ var ticksPerFrame = self2.options.refresh;
+ var isDone;
+ for (var i3 = 0; i3 < ticksPerFrame && !isDone; i3++) {
+ isDone = self2.stopped || self2.layout.tick();
+ }
+ if (isDone) {
+ if (layout6.checkLayoutSuccess() && !layout6.isSubLayout) {
+ layout6.doPostLayout();
+ }
+ if (layout6.tilingPostLayout) {
+ layout6.tilingPostLayout();
+ }
+ layout6.isLayoutFinished = true;
+ self2.options.eles.nodes().positions(getPositions);
+ afterReposition();
+ self2.cy.one("layoutstop", self2.options.stop);
+ self2.cy.trigger({ type: "layoutstop", layout: self2 });
+ if (frameId) {
+ cancelAnimationFrame(frameId);
+ }
+ ready4 = false;
+ return;
+ }
+ var animationData = self2.layout.getPositionsData();
+ options3.eles.nodes().positions(function(ele, i4) {
+ if (typeof ele === "number") {
+ ele = i4;
+ }
+ if (!ele.isParent()) {
+ var theId = ele.id();
+ var pNode = animationData[theId];
+ var temp = ele;
+ while (pNode == null) {
+ pNode = animationData[temp.data("parent")] || animationData["DummyCompound_" + temp.data("parent")];
+ animationData[theId] = pNode;
+ temp = temp.parent()[0];
+ if (temp == void 0) {
+ break;
+ }
+ }
+ if (pNode != null) {
+ return {
+ x: pNode.x,
+ y: pNode.y
+ };
+ } else {
+ return {
+ x: ele.position("x"),
+ y: ele.position("y")
+ };
+ }
+ }
+ });
+ afterReposition();
+ frameId = requestAnimationFrame(iterateAnimated2);
+ }, "iterateAnimated");
+ layout6.addListener("layoutstarted", function() {
+ if (self2.options.animate === "during") {
+ frameId = requestAnimationFrame(iterateAnimated);
+ }
+ });
+ layout6.runLayout();
+ if (this.options.animate !== "during") {
+ self2.options.eles.nodes().not(":parent").layoutPositions(self2, self2.options, getPositions);
+ ready4 = false;
+ }
+ return this;
+ };
+ _CoSELayout.prototype.getTopMostNodes = function(nodes6) {
+ var nodesMap2 = {};
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ nodesMap2[nodes6[i2].id()] = true;
+ }
+ var roots = nodes6.filter(function(ele, i3) {
+ if (typeof ele === "number") {
+ ele = i3;
+ }
+ var parent4 = ele.parent()[0];
+ while (parent4 != null) {
+ if (nodesMap2[parent4.id()]) {
+ return false;
+ }
+ parent4 = parent4.parent()[0];
+ }
+ return true;
+ });
+ return roots;
+ };
+ _CoSELayout.prototype.processChildrenList = function(parent4, children2, layout6) {
+ var size5 = children2.length;
+ for (var i2 = 0; i2 < size5; i2++) {
+ var theChild = children2[i2];
+ var children_of_children = theChild.children();
+ var theNode;
+ var dimensions2 = theChild.layoutDimensions({
+ nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels
+ });
+ if (theChild.outerWidth() != null && theChild.outerHeight() != null) {
+ theNode = parent4.add(new CoSENode(layout6.graphManager, new PointD(theChild.position("x") - dimensions2.w / 2, theChild.position("y") - dimensions2.h / 2), new DimensionD2(parseFloat(dimensions2.w), parseFloat(dimensions2.h))));
+ } else {
+ theNode = parent4.add(new CoSENode(this.graphManager));
+ }
+ theNode.id = theChild.data("id");
+ theNode.paddingLeft = parseInt(theChild.css("padding"));
+ theNode.paddingTop = parseInt(theChild.css("padding"));
+ theNode.paddingRight = parseInt(theChild.css("padding"));
+ theNode.paddingBottom = parseInt(theChild.css("padding"));
+ if (this.options.nodeDimensionsIncludeLabels) {
+ if (theChild.isParent()) {
+ var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w;
+ var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h;
+ var labelPos = theChild.css("text-halign");
+ theNode.labelWidth = labelWidth;
+ theNode.labelHeight = labelHeight;
+ theNode.labelPos = labelPos;
+ }
+ }
+ this.idToLNode[theChild.data("id")] = theNode;
+ if (isNaN(theNode.rect.x)) {
+ theNode.rect.x = 0;
+ }
+ if (isNaN(theNode.rect.y)) {
+ theNode.rect.y = 0;
+ }
+ if (children_of_children != null && children_of_children.length > 0) {
+ var theNewGraph;
+ theNewGraph = layout6.getGraphManager().add(layout6.newGraph(), theNode);
+ this.processChildrenList(theNewGraph, children_of_children, layout6);
+ }
+ }
+ };
+ _CoSELayout.prototype.stop = function() {
+ this.stopped = true;
+ return this;
+ };
+ var register = /* @__PURE__ */ __name(function register2(cytoscape4) {
+ cytoscape4("layout", "cose-bilkent", _CoSELayout);
+ }, "register");
+ if (typeof cytoscape !== "undefined") {
+ register(cytoscape);
+ }
+ module3.exports = register;
+ }
+ /******/
+ ])
+ );
+ });
+ }
+ });
+
+ // src/diagrams/mindmap/svgDraw.ts
+ function insertPolygonShape3(parent4, w3, h2, points, node2) {
+ return parent4.insert("polygon", ":first-child").attr(
+ "points",
+ points.map(function(d2) {
+ return d2.x + "," + d2.y;
+ }).join(" ")
+ ).attr("transform", "translate(" + (node2.width - w3) / 2 + ", " + h2 + ")");
+ }
+ var MAX_SECTIONS2, defaultBkg2, rectBkg, cloudBkg, bangBkg, circleBkg, hexagonBkg, roundedRectBkg, drawNode2, positionNode3;
+ var init_svgDraw6 = __esm({
+ "src/diagrams/mindmap/svgDraw.ts"() {
+ "use strict";
+ init_createText();
+ init_utils2();
+ MAX_SECTIONS2 = 12;
+ defaultBkg2 = /* @__PURE__ */ __name(function(db8, elem, node2, section) {
+ const rd = 5;
+ elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + db8.type2Str(node2.type)).attr(
+ "d",
+ `M0 ${node2.height - rd} v${-node2.height + 2 * rd} q0,-5 5,-5 h${node2.width - 2 * rd} q5,0 5,5 v${node2.height - rd} H0 Z`
+ );
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node2.height).attr("x2", node2.width).attr("y2", node2.height);
+ }, "defaultBkg");
+ rectBkg = /* @__PURE__ */ __name(function(db8, elem, node2) {
+ elem.append("rect").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + db8.type2Str(node2.type)).attr("height", node2.height).attr("width", node2.width);
+ }, "rectBkg");
+ cloudBkg = /* @__PURE__ */ __name(function(db8, elem, node2) {
+ const w3 = node2.width;
+ const h2 = node2.height;
+ const r1 = 0.15 * w3;
+ const r2 = 0.25 * w3;
+ const r3 = 0.35 * w3;
+ const r4 = 0.2 * w3;
+ elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + db8.type2Str(node2.type)).attr(
+ "d",
+ `M0 0 a${r1},${r1} 0 0,1 ${w3 * 0.25},${-1 * w3 * 0.1}
+ a${r3},${r3} 1 0,1 ${w3 * 0.4},${-1 * w3 * 0.1}
+ a${r2},${r2} 1 0,1 ${w3 * 0.35},${1 * w3 * 0.2}
+
+ a${r1},${r1} 1 0,1 ${w3 * 0.15},${1 * h2 * 0.35}
+ a${r4},${r4} 1 0,1 ${-1 * w3 * 0.15},${1 * h2 * 0.65}
+
+ a${r2},${r1} 1 0,1 ${-1 * w3 * 0.25},${w3 * 0.15}
+ a${r3},${r3} 1 0,1 ${-1 * w3 * 0.5},${0}
+ a${r1},${r1} 1 0,1 ${-1 * w3 * 0.25},${-1 * w3 * 0.15}
+
+ a${r1},${r1} 1 0,1 ${-1 * w3 * 0.1},${-1 * h2 * 0.35}
+ a${r4},${r4} 1 0,1 ${w3 * 0.1},${-1 * h2 * 0.65}
+
+ H0 V0 Z`
+ );
+ }, "cloudBkg");
+ bangBkg = /* @__PURE__ */ __name(function(db8, elem, node2) {
+ const w3 = node2.width;
+ const h2 = node2.height;
+ const r2 = 0.15 * w3;
+ elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + db8.type2Str(node2.type)).attr(
+ "d",
+ `M0 0 a${r2},${r2} 1 0,0 ${w3 * 0.25},${-1 * h2 * 0.1}
+ a${r2},${r2} 1 0,0 ${w3 * 0.25},${0}
+ a${r2},${r2} 1 0,0 ${w3 * 0.25},${0}
+ a${r2},${r2} 1 0,0 ${w3 * 0.25},${1 * h2 * 0.1}
+
+ a${r2},${r2} 1 0,0 ${w3 * 0.15},${1 * h2 * 0.33}
+ a${r2 * 0.8},${r2 * 0.8} 1 0,0 ${0},${1 * h2 * 0.34}
+ a${r2},${r2} 1 0,0 ${-1 * w3 * 0.15},${1 * h2 * 0.33}
+
+ a${r2},${r2} 1 0,0 ${-1 * w3 * 0.25},${h2 * 0.15}
+ a${r2},${r2} 1 0,0 ${-1 * w3 * 0.25},${0}
+ a${r2},${r2} 1 0,0 ${-1 * w3 * 0.25},${0}
+ a${r2},${r2} 1 0,0 ${-1 * w3 * 0.25},${-1 * h2 * 0.15}
+
+ a${r2},${r2} 1 0,0 ${-1 * w3 * 0.1},${-1 * h2 * 0.33}
+ a${r2 * 0.8},${r2 * 0.8} 1 0,0 ${0},${-1 * h2 * 0.34}
+ a${r2},${r2} 1 0,0 ${w3 * 0.1},${-1 * h2 * 0.33}
+
+ H0 V0 Z`
+ );
+ }, "bangBkg");
+ circleBkg = /* @__PURE__ */ __name(function(db8, elem, node2) {
+ elem.append("circle").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + db8.type2Str(node2.type)).attr("r", node2.width / 2);
+ }, "circleBkg");
+ __name(insertPolygonShape3, "insertPolygonShape");
+ hexagonBkg = /* @__PURE__ */ __name(function(_db, elem, node2) {
+ const h2 = node2.height;
+ const f3 = 4;
+ const m2 = h2 / f3;
+ const w3 = node2.width - node2.padding + 2 * m2;
+ const points = [
+ { x: m2, y: 0 },
+ { x: w3 - m2, y: 0 },
+ { x: w3, y: -h2 / 2 },
+ { x: w3 - m2, y: -h2 },
+ { x: m2, y: -h2 },
+ { x: 0, y: -h2 / 2 }
+ ];
+ insertPolygonShape3(elem, w3, h2, points, node2);
+ }, "hexagonBkg");
+ roundedRectBkg = /* @__PURE__ */ __name(function(db8, elem, node2) {
+ elem.append("rect").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + db8.type2Str(node2.type)).attr("height", node2.height).attr("rx", node2.padding).attr("ry", node2.padding).attr("width", node2.width);
+ }, "roundedRectBkg");
+ drawNode2 = /* @__PURE__ */ __name(async function(db8, elem, node2, fullSection, conf8) {
+ const htmlLabels = conf8.htmlLabels;
+ const section = fullSection % (MAX_SECTIONS2 - 1);
+ const nodeElem = elem.append("g");
+ node2.section = section;
+ let sectionClass = "section-" + section;
+ if (section < 0) {
+ sectionClass += " section-root";
+ }
+ nodeElem.attr("class", (node2.class ? node2.class + " " : "") + "mindmap-node " + sectionClass);
+ const bkgElem = nodeElem.append("g");
+ const textElem = nodeElem.append("g");
+ const description = node2.descr.replace(/(
)/g, "\n");
+ await createText(
+ textElem,
+ description,
+ {
+ useHtmlLabels: htmlLabels,
+ width: node2.width,
+ classes: "mindmap-node-label"
+ },
+ conf8
+ );
+ if (!htmlLabels) {
+ textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
+ }
+ const bbox = textElem.node().getBBox();
+ const [fontSize] = parseFontSize(conf8.fontSize);
+ node2.height = bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
+ node2.width = bbox.width + 2 * node2.padding;
+ if (node2.icon) {
+ if (node2.type === db8.nodeType.CIRCLE) {
+ node2.height += 50;
+ node2.width += 50;
+ const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node2.width).attr("style", "text-align: center;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node2.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + node2.width / 2 + ", " + (node2.height / 2 - 1.5 * node2.padding) + ")"
+ );
} else {
- context.fill();
+ node2.width += 50;
+ const orgHeight = node2.height;
+ node2.height = Math.max(orgHeight, 60);
+ const heightDiff = Math.abs(node2.height - orgHeight);
+ const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node2.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;");
+ icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node2.icon);
+ textElem.attr(
+ "transform",
+ "translate(" + (25 + node2.width / 2) + ", " + (heightDiff / 2 + node2.padding / 2) + ")"
+ );
}
- }
- if (fill === "hollow" || fill === "both") {
- context.lineWidth = (shapeImpl.matchEdgeWidth ? edgeWidth : 1) / (usePaths ? size2 : 1);
- context.lineJoin = "miter";
- if (usePaths) {
- context.stroke(path2);
+ } else {
+ if (!htmlLabels) {
+ const dx = node2.width / 2;
+ const dy = node2.padding / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
} else {
- context.stroke();
+ const dx = (node2.width - bbox.width) / 2;
+ const dy = (node2.height - bbox.height) / 2;
+ textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
}
}
- if (usePaths) {
- context.scale(1 / size2, 1 / size2);
- context.rotate(-angle);
- context.translate(-x2, -y2);
- }
- };
- var CRp$7 = {};
- CRp$7.safeDrawImage = function(context, img, ix, iy, iw, ih, x2, y2, w2, h) {
- if (iw <= 0 || ih <= 0 || w2 <= 0 || h <= 0) {
- return;
- }
- try {
- context.drawImage(img, ix, iy, iw, ih, x2, y2, w2, h);
- } catch (e) {
- warn(e);
- }
- };
- CRp$7.drawInscribedImage = function(context, img, node2, index, nodeOpacity) {
- var r = this;
- var pos = node2.position();
- var nodeX = pos.x;
- var nodeY = pos.y;
- var styleObj = node2.cy().style();
- var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);
- var fit = getIndexedStyle(node2, "background-fit", "value", index);
- var repeat2 = getIndexedStyle(node2, "background-repeat", "value", index);
- var nodeW = node2.width();
- var nodeH = node2.height();
- var paddingX2 = node2.padding() * 2;
- var nodeTW = nodeW + (getIndexedStyle(node2, "background-width-relative-to", "value", index) === "inner" ? 0 : paddingX2);
- var nodeTH = nodeH + (getIndexedStyle(node2, "background-height-relative-to", "value", index) === "inner" ? 0 : paddingX2);
- var rs = node2._private.rscratch;
- var clip = getIndexedStyle(node2, "background-clip", "value", index);
- var shouldClip = clip === "node";
- var imgOpacity = getIndexedStyle(node2, "background-image-opacity", "value", index) * nodeOpacity;
- var smooth = getIndexedStyle(node2, "background-image-smoothing", "value", index);
- var imgW = img.width || img.cachedW;
- var imgH = img.height || img.cachedH;
- if (null == imgW || null == imgH) {
- document.body.appendChild(img);
- imgW = img.cachedW = img.width || img.offsetWidth;
- imgH = img.cachedH = img.height || img.offsetHeight;
- document.body.removeChild(img);
- }
- var w2 = imgW;
- var h = imgH;
- if (getIndexedStyle(node2, "background-width", "value", index) !== "auto") {
- if (getIndexedStyle(node2, "background-width", "units", index) === "%") {
- w2 = getIndexedStyle(node2, "background-width", "pfValue", index) * nodeTW;
- } else {
- w2 = getIndexedStyle(node2, "background-width", "pfValue", index);
- }
+ switch (node2.type) {
+ case db8.nodeType.DEFAULT:
+ defaultBkg2(db8, bkgElem, node2, section);
+ break;
+ case db8.nodeType.ROUNDED_RECT:
+ roundedRectBkg(db8, bkgElem, node2, section);
+ break;
+ case db8.nodeType.RECT:
+ rectBkg(db8, bkgElem, node2, section);
+ break;
+ case db8.nodeType.CIRCLE:
+ bkgElem.attr("transform", "translate(" + node2.width / 2 + ", " + +node2.height / 2 + ")");
+ circleBkg(db8, bkgElem, node2, section);
+ break;
+ case db8.nodeType.CLOUD:
+ cloudBkg(db8, bkgElem, node2, section);
+ break;
+ case db8.nodeType.BANG:
+ bangBkg(db8, bkgElem, node2, section);
+ break;
+ case db8.nodeType.HEXAGON:
+ hexagonBkg(db8, bkgElem, node2, section);
+ break;
}
- if (getIndexedStyle(node2, "background-height", "value", index) !== "auto") {
- if (getIndexedStyle(node2, "background-height", "units", index) === "%") {
- h = getIndexedStyle(node2, "background-height", "pfValue", index) * nodeTH;
- } else {
- h = getIndexedStyle(node2, "background-height", "pfValue", index);
+ db8.setElementForId(node2.id, nodeElem);
+ return node2.height;
+ }, "drawNode");
+ positionNode3 = /* @__PURE__ */ __name(function(db8, node2) {
+ const nodeElem = db8.getElementById(node2.id);
+ const x5 = node2.x || 0;
+ const y5 = node2.y || 0;
+ nodeElem.attr("transform", "translate(" + x5 + "," + y5 + ")");
+ }, "positionNode");
+ }
+ });
+
+ // src/diagrams/mindmap/mindmapRenderer.ts
+ async function drawNodes(db8, svg, mindmap, section, conf8) {
+ await drawNode2(db8, svg, mindmap, section, conf8);
+ if (mindmap.children) {
+ await Promise.all(
+ mindmap.children.map(
+ (child, index) => drawNodes(db8, svg, child, section < 0 ? index : section, conf8)
+ )
+ );
+ }
+ }
+ function drawEdges(edgesEl, cy) {
+ cy.edges().map((edge, id27) => {
+ const data5 = edge.data();
+ if (edge[0]._private.bodyBounds) {
+ const bounds4 = edge[0]._private.rscratch;
+ log.trace("Edge: ", id27, data5);
+ edgesEl.insert("path").attr(
+ "d",
+ `M ${bounds4.startX},${bounds4.startY} L ${bounds4.midX},${bounds4.midY} L${bounds4.endX},${bounds4.endY} `
+ ).attr("class", "edge section-edge-" + data5.section + " edge-depth-" + data5.depth);
+ }
+ });
+ }
+ function addNodes(mindmap, cy, conf8, level) {
+ cy.add({
+ group: "nodes",
+ data: {
+ id: mindmap.id.toString(),
+ labelText: mindmap.descr,
+ height: mindmap.height,
+ width: mindmap.width,
+ level,
+ nodeId: mindmap.id,
+ padding: mindmap.padding,
+ type: mindmap.type
+ },
+ position: {
+ x: mindmap.x,
+ y: mindmap.y
+ }
+ });
+ if (mindmap.children) {
+ mindmap.children.forEach((child) => {
+ addNodes(child, cy, conf8, level + 1);
+ cy.add({
+ group: "edges",
+ data: {
+ id: `${mindmap.id}_${child.id}`,
+ source: mindmap.id,
+ target: child.id,
+ depth: level,
+ section: child.section
}
- }
- if (w2 === 0 || h === 0) {
- return;
- }
- if (fit === "contain") {
- var scale = Math.min(nodeTW / w2, nodeTH / h);
- w2 *= scale;
- h *= scale;
- } else if (fit === "cover") {
- var scale = Math.max(nodeTW / w2, nodeTH / h);
- w2 *= scale;
- h *= scale;
- }
- var x2 = nodeX - nodeTW / 2;
- var posXUnits = getIndexedStyle(node2, "background-position-x", "units", index);
- var posXPfVal = getIndexedStyle(node2, "background-position-x", "pfValue", index);
- if (posXUnits === "%") {
- x2 += (nodeTW - w2) * posXPfVal;
- } else {
- x2 += posXPfVal;
- }
- var offXUnits = getIndexedStyle(node2, "background-offset-x", "units", index);
- var offXPfVal = getIndexedStyle(node2, "background-offset-x", "pfValue", index);
- if (offXUnits === "%") {
- x2 += (nodeTW - w2) * offXPfVal;
- } else {
- x2 += offXPfVal;
- }
- var y2 = nodeY - nodeTH / 2;
- var posYUnits = getIndexedStyle(node2, "background-position-y", "units", index);
- var posYPfVal = getIndexedStyle(node2, "background-position-y", "pfValue", index);
- if (posYUnits === "%") {
- y2 += (nodeTH - h) * posYPfVal;
- } else {
- y2 += posYPfVal;
- }
- var offYUnits = getIndexedStyle(node2, "background-offset-y", "units", index);
- var offYPfVal = getIndexedStyle(node2, "background-offset-y", "pfValue", index);
- if (offYUnits === "%") {
- y2 += (nodeTH - h) * offYPfVal;
- } else {
- y2 += offYPfVal;
- }
- if (rs.pathCache) {
- x2 -= nodeX;
- y2 -= nodeY;
- nodeX = 0;
- nodeY = 0;
- }
- var gAlpha = context.globalAlpha;
- context.globalAlpha = imgOpacity;
- var smoothingEnabled = r.getImgSmoothing(context);
- var isSmoothingSwitched = false;
- if (smooth === "no" && smoothingEnabled) {
- r.setImgSmoothing(context, false);
- isSmoothingSwitched = true;
- } else if (smooth === "yes" && !smoothingEnabled) {
- r.setImgSmoothing(context, true);
- isSmoothingSwitched = true;
- }
- if (repeat2 === "no-repeat") {
- if (shouldClip) {
- context.save();
- if (rs.pathCache) {
- context.clip(rs.pathCache);
- } else {
- r.nodeShapes[r.getNodeShape(node2)].draw(context, nodeX, nodeY, nodeTW, nodeTH);
- context.clip();
+ });
+ });
+ }
+ }
+ function layoutMindmap(node2, conf8) {
+ return new Promise((resolve3) => {
+ const renderEl = select_default2("body").append("div").attr("id", "cy").attr("style", "display:none");
+ const cy = cytoscape2({
+ container: document.getElementById("cy"),
+ // container to render in
+ style: [
+ {
+ selector: "edge",
+ style: {
+ "curve-style": "bezier"
}
}
- r.safeDrawImage(context, img, 0, 0, imgW, imgH, x2, y2, w2, h);
- if (shouldClip) {
- context.restore();
- }
- } else {
- var pattern = context.createPattern(img, repeat2);
- context.fillStyle = pattern;
- r.nodeShapes[r.getNodeShape(node2)].draw(context, nodeX, nodeY, nodeTW, nodeTH);
- context.translate(x2, y2);
- context.fill();
- context.translate(-x2, -y2);
- }
- context.globalAlpha = gAlpha;
- if (isSmoothingSwitched) {
- r.setImgSmoothing(context, smoothingEnabled);
- }
- };
- var CRp$6 = {};
- CRp$6.eleTextBiggerThanMin = function(ele, scale) {
- if (!scale) {
- var zoom = ele.cy().zoom();
- var pxRatio = this.getPixelRatio();
- var lvl = Math.ceil(log2(zoom * pxRatio));
- scale = Math.pow(2, lvl);
- }
- var computedSize = ele.pstyle("font-size").pfValue * scale;
- var minSize = ele.pstyle("min-zoomed-font-size").pfValue;
- if (computedSize < minSize) {
- return false;
- }
- return true;
- };
- CRp$6.drawElementText = function(context, ele, shiftToOriginWithBb, force, prefix) {
- var useEleOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
- var r = this;
- if (force == null) {
- if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) {
- return;
- }
- } else if (force === false) {
+ ]
+ });
+ renderEl.remove();
+ addNodes(node2, cy, conf8, 0);
+ cy.nodes().forEach(function(n2) {
+ n2.layoutDimensions = () => {
+ const data5 = n2.data();
+ return { w: data5.width, h: data5.height };
+ };
+ });
+ cy.layout({
+ name: "cose-bilkent",
+ // @ts-ignore Types for cose-bilkent are not correct?
+ quality: "proof",
+ styleEnabled: false,
+ animate: false
+ }).run();
+ cy.ready((e3) => {
+ log.info("Ready", e3);
+ resolve3(cy);
+ });
+ });
+ }
+ function positionNodes(db8, cy) {
+ cy.nodes().map((node2, id27) => {
+ const data5 = node2.data();
+ data5.x = node2.position().x;
+ data5.y = node2.position().y;
+ positionNode3(db8, data5);
+ const el = db8.getElementById(data5.nodeId);
+ log.info("Id:", id27, "Position: (", node2.position().x, ", ", node2.position().y, ")", data5);
+ el.attr(
+ "transform",
+ `translate(${node2.position().x - data5.width / 2}, ${node2.position().y - data5.height / 2})`
+ );
+ el.attr("attr", `apa-${id27})`);
+ });
+ }
+ var import_cytoscape_cose_bilkent, draw19, mindmapRenderer_default;
+ var init_mindmapRenderer = __esm({
+ "src/diagrams/mindmap/mindmapRenderer.ts"() {
+ "use strict";
+ init_cytoscape_esm();
+ import_cytoscape_cose_bilkent = __toESM(require_cytoscape_cose_bilkent(), 1);
+ init_src32();
+ init_diagramAPI();
+ init_logger();
+ init_selectSvgElement();
+ init_setupGraphViewbox();
+ init_svgDraw6();
+ init_defaultConfig();
+ cytoscape2.use(import_cytoscape_cose_bilkent.default);
+ __name(drawNodes, "drawNodes");
+ __name(drawEdges, "drawEdges");
+ __name(addNodes, "addNodes");
+ __name(layoutMindmap, "layoutMindmap");
+ __name(positionNodes, "positionNodes");
+ draw19 = /* @__PURE__ */ __name(async (text2, id27, _version, diagObj) => {
+ log.debug("Rendering mindmap diagram\n" + text2);
+ const db8 = diagObj.db;
+ const mm = db8.getMindmap();
+ if (!mm) {
return;
}
- if (ele.isNode()) {
- var label = ele.pstyle("label");
- if (!label || !label.value) {
- return;
- }
- var justification = r.getLabelJustification(ele);
- context.textAlign = justification;
- context.textBaseline = "bottom";
- } else {
- var badLine = ele.element()._private.rscratch.badLine;
- var _label = ele.pstyle("label");
- var srcLabel = ele.pstyle("source-label");
- var tgtLabel = ele.pstyle("target-label");
- if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {
- return;
- }
- context.textAlign = "center";
- context.textBaseline = "bottom";
- }
- var applyRotation = !shiftToOriginWithBb;
- var bb;
- if (shiftToOriginWithBb) {
- bb = shiftToOriginWithBb;
- context.translate(-bb.x1, -bb.y1);
- }
- if (prefix == null) {
- r.drawText(context, ele, null, applyRotation, useEleOpacity);
- if (ele.isEdge()) {
- r.drawText(context, ele, "source", applyRotation, useEleOpacity);
- r.drawText(context, ele, "target", applyRotation, useEleOpacity);
- }
- } else {
- r.drawText(context, ele, prefix, applyRotation, useEleOpacity);
- }
- if (shiftToOriginWithBb) {
- context.translate(bb.x1, bb.y1);
- }
+ const conf8 = getConfig2();
+ conf8.htmlLabels = false;
+ const svg = selectSvgElement(id27);
+ const edgesElem = svg.append("g");
+ edgesElem.attr("class", "mindmap-edges");
+ const nodesElem = svg.append("g");
+ nodesElem.attr("class", "mindmap-nodes");
+ await drawNodes(db8, nodesElem, mm, -1, conf8);
+ const cy = await layoutMindmap(mm, conf8);
+ drawEdges(edgesElem, cy);
+ positionNodes(db8, cy);
+ setupGraphViewbox(
+ void 0,
+ svg,
+ conf8.mindmap?.padding ?? defaultConfig_default.mindmap.padding,
+ conf8.mindmap?.useMaxWidth ?? defaultConfig_default.mindmap.useMaxWidth
+ );
+ }, "draw");
+ mindmapRenderer_default = {
+ draw: draw19
};
- CRp$6.getFontCache = function(context) {
- var cache2;
- this.fontCaches = this.fontCaches || [];
- for (var i3 = 0; i3 < this.fontCaches.length; i3++) {
- cache2 = this.fontCaches[i3];
- if (cache2.context === context) {
- return cache2;
+ }
+ });
+
+ // src/diagrams/mindmap/styles.ts
+ var genSections2, getStyles14, styles_default13;
+ var init_styles13 = __esm({
+ "src/diagrams/mindmap/styles.ts"() {
+ "use strict";
+ init_dist();
+ genSections2 = /* @__PURE__ */ __name((options3) => {
+ let sections5 = "";
+ for (let i2 = 0; i2 < options3.THEME_COLOR_LIMIT; i2++) {
+ options3["lineColor" + i2] = options3["lineColor" + i2] || options3["cScaleInv" + i2];
+ if (is_dark_default(options3["lineColor" + i2])) {
+ options3["lineColor" + i2] = lighten_default(options3["lineColor" + i2], 20);
+ } else {
+ options3["lineColor" + i2] = darken_default(options3["lineColor" + i2], 20);
}
}
- cache2 = {
- context
- };
- this.fontCaches.push(cache2);
- return cache2;
- };
- CRp$6.setupTextStyle = function(context, ele) {
- var useEleOpacity = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
- var labelStyle = ele.pstyle("font-style").strValue;
- var labelSize = ele.pstyle("font-size").pfValue + "px";
- var labelFamily = ele.pstyle("font-family").strValue;
- var labelWeight = ele.pstyle("font-weight").strValue;
- var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle("text-opacity").value : 1;
- var outlineOpacity = ele.pstyle("text-outline-opacity").value * opacity;
- var color2 = ele.pstyle("color").value;
- var outlineColor = ele.pstyle("text-outline-color").value;
- context.font = labelStyle + " " + labelWeight + " " + labelSize + " " + labelFamily;
- context.lineJoin = "round";
- this.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
- this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);
- };
- function roundRect(ctx, x2, y2, width2, height2) {
- var radius = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5;
- ctx.beginPath();
- ctx.moveTo(x2 + radius, y2);
- ctx.lineTo(x2 + width2 - radius, y2);
- ctx.quadraticCurveTo(x2 + width2, y2, x2 + width2, y2 + radius);
- ctx.lineTo(x2 + width2, y2 + height2 - radius);
- ctx.quadraticCurveTo(x2 + width2, y2 + height2, x2 + width2 - radius, y2 + height2);
- ctx.lineTo(x2 + radius, y2 + height2);
- ctx.quadraticCurveTo(x2, y2 + height2, x2, y2 + height2 - radius);
- ctx.lineTo(x2, y2 + radius);
- ctx.quadraticCurveTo(x2, y2, x2 + radius, y2);
- ctx.closePath();
- ctx.fill();
- }
- CRp$6.getTextAngle = function(ele, prefix) {
- var theta;
- var _p = ele._private;
- var rscratch = _p.rscratch;
- var pdash = prefix ? prefix + "-" : "";
- var rotation = ele.pstyle(pdash + "text-rotation");
- var textAngle = getPrefixedProperty(rscratch, "labelAngle", prefix);
- if (rotation.strValue === "autorotate") {
- theta = ele.isEdge() ? textAngle : 0;
- } else if (rotation.strValue === "none") {
- theta = 0;
- } else {
- theta = rotation.pfValue;
+ for (let i2 = 0; i2 < options3.THEME_COLOR_LIMIT; i2++) {
+ const sw = "" + (17 - 3 * i2);
+ sections5 += `
+ .section-${i2 - 1} rect, .section-${i2 - 1} path, .section-${i2 - 1} circle, .section-${i2 - 1} polygon, .section-${i2 - 1} path {
+ fill: ${options3["cScale" + i2]};
+ }
+ .section-${i2 - 1} text {
+ fill: ${options3["cScaleLabel" + i2]};
+ }
+ .node-icon-${i2 - 1} {
+ font-size: 40px;
+ color: ${options3["cScaleLabel" + i2]};
+ }
+ .section-edge-${i2 - 1}{
+ stroke: ${options3["cScale" + i2]};
+ }
+ .edge-depth-${i2 - 1}{
+ stroke-width: ${sw};
+ }
+ .section-${i2 - 1} line {
+ stroke: ${options3["cScaleInv" + i2]} ;
+ stroke-width: 3;
+ }
+
+ .disabled, .disabled circle, .disabled text {
+ fill: lightgray;
+ }
+ .disabled text {
+ fill: #efefef;
+ }
+ `;
}
- return theta;
+ return sections5;
+ }, "genSections");
+ getStyles14 = /* @__PURE__ */ __name((options3) => `
+ .edge {
+ stroke-width: 3;
+ }
+ ${genSections2(options3)}
+ .section-root rect, .section-root path, .section-root circle, .section-root polygon {
+ fill: ${options3.git0};
+ }
+ .section-root text {
+ fill: ${options3.gitBranchLabel0};
+ }
+ .icon-container {
+ height:100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .edge {
+ fill: none;
+ }
+ .mindmap-node-label {
+ dy: 1em;
+ alignment-baseline: middle;
+ text-anchor: middle;
+ dominant-baseline: middle;
+ text-align: center;
+ }
+`, "getStyles");
+ styles_default13 = getStyles14;
+ }
+ });
+
+ // src/diagrams/mindmap/mindmap-definition.ts
+ var mindmap_definition_exports = {};
+ __export(mindmap_definition_exports, {
+ diagram: () => diagram19
+ });
+ var diagram19;
+ var init_mindmap_definition = __esm({
+ "src/diagrams/mindmap/mindmap-definition.ts"() {
+ "use strict";
+ init_mindmap();
+ init_mindmapDb();
+ init_mindmapRenderer();
+ init_styles13();
+ diagram19 = {
+ db: mindmapDb_default,
+ renderer: mindmapRenderer_default,
+ parser: mindmap_default,
+ styles: styles_default13
};
- CRp$6.drawText = function(context, ele, prefix) {
- var applyRotation = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
- var useEleOpacity = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
- var _p = ele._private;
- var rscratch = _p.rscratch;
- var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;
- if (useEleOpacity && (parentOpacity === 0 || ele.pstyle("text-opacity").value === 0)) {
- return;
- }
- if (prefix === "main") {
- prefix = null;
- }
- var textX = getPrefixedProperty(rscratch, "labelX", prefix);
- var textY = getPrefixedProperty(rscratch, "labelY", prefix);
- var orgTextX, orgTextY;
- var text2 = this.getLabelText(ele, prefix);
- if (text2 != null && text2 !== "" && !isNaN(textX) && !isNaN(textY)) {
- this.setupTextStyle(context, ele, useEleOpacity);
- var pdash = prefix ? prefix + "-" : "";
- var textW = getPrefixedProperty(rscratch, "labelWidth", prefix);
- var textH = getPrefixedProperty(rscratch, "labelHeight", prefix);
- var marginX = ele.pstyle(pdash + "text-margin-x").pfValue;
- var marginY = ele.pstyle(pdash + "text-margin-y").pfValue;
- var isEdge = ele.isEdge();
- var halign = ele.pstyle("text-halign").value;
- var valign = ele.pstyle("text-valign").value;
- if (isEdge) {
- halign = "center";
- valign = "center";
- }
- textX += marginX;
- textY += marginY;
- var theta;
- if (!applyRotation) {
- theta = 0;
- } else {
- theta = this.getTextAngle(ele, prefix);
- }
- if (theta !== 0) {
- orgTextX = textX;
- orgTextY = textY;
- context.translate(orgTextX, orgTextY);
- context.rotate(theta);
- textX = 0;
- textY = 0;
- }
- switch (valign) {
- case "top":
- break;
- case "center":
- textY += textH / 2;
- break;
- case "bottom":
- textY += textH;
- break;
- }
- var backgroundOpacity = ele.pstyle("text-background-opacity").value;
- var borderOpacity = ele.pstyle("text-border-opacity").value;
- var textBorderWidth = ele.pstyle("text-border-width").pfValue;
- var backgroundPadding = ele.pstyle("text-background-padding").pfValue;
- if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {
- var bgX = textX - backgroundPadding;
- switch (halign) {
- case "left":
- bgX -= textW;
+ }
+ });
+
+ // src/diagrams/sankey/parser/sankey.jison
+ var parser18, sankey_default;
+ var init_sankey = __esm({
+ "src/diagrams/sankey/parser/sankey.jison"() {
+ "use strict";
+ parser18 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "start": 3, "SANKEY": 4, "NEWLINE": 5, "csv": 6, "opt_eof": 7, "record": 8, "csv_tail": 9, "EOF": 10, "field[source]": 11, "COMMA": 12, "field[target]": 13, "field[value]": 14, "field": 15, "escaped": 16, "non_escaped": 17, "DQUOTE": 18, "ESCAPED_TEXT": 19, "NON_ESCAPED_TEXT": 20, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SANKEY", 5: "NEWLINE", 10: "EOF", 11: "field[source]", 12: "COMMA", 13: "field[target]", 14: "field[value]", 18: "DQUOTE", 19: "ESCAPED_TEXT", 20: "NON_ESCAPED_TEXT" },
+ productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 7:
+ const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('""', '"'));
+ const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('""', '"'));
+ const value2 = parseFloat($$[$0].trim());
+ yy.addLink(source, target, value2);
break;
- case "center":
- bgX -= textW / 2;
+ case 8:
+ case 9:
+ case 11:
+ this.$ = $$[$0];
+ break;
+ case 10:
+ this.$ = $$[$0 - 1];
break;
}
- var bgY = textY - textH - backgroundPadding;
- var bgW = textW + 2 * backgroundPadding;
- var bgH = textH + 2 * backgroundPadding;
- if (backgroundOpacity > 0) {
- var textFill = context.fillStyle;
- var textBackgroundColor = ele.pstyle("text-background-color").value;
- context.fillStyle = "rgba(" + textBackgroundColor[0] + "," + textBackgroundColor[1] + "," + textBackgroundColor[2] + "," + backgroundOpacity * parentOpacity + ")";
- var styleShape = ele.pstyle("text-background-shape").strValue;
- if (styleShape.indexOf("round") === 0) {
- roundRect(context, bgX, bgY, bgW, bgH, 2);
- } else {
- context.fillRect(bgX, bgY, bgW, bgH);
+ }, "anonymous"),
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o2($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o2($V2, [2, 8]), o2($V2, [2, 9]), { 19: [1, 16] }, o2($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o2($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o2($V1, [2, 3]), { 12: [1, 20] }, o2($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o2([1, 5, 10], [2, 7])],
+ defaultActions: { 11: [2, 1], 12: [2, 5] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
+ } else {
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
+ }
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
}
- context.fillStyle = textFill;
+ return token2;
}
- if (textBorderWidth > 0 && borderOpacity > 0) {
- var textStroke = context.strokeStyle;
- var textLineWidth = context.lineWidth;
- var textBorderColor = ele.pstyle("text-border-color").value;
- var textBorderStyle = ele.pstyle("text-border-style").value;
- context.strokeStyle = "rgba(" + textBorderColor[0] + "," + textBorderColor[1] + "," + textBorderColor[2] + "," + borderOpacity * parentOpacity + ")";
- context.lineWidth = textBorderWidth;
- if (context.setLineDash) {
- switch (textBorderStyle) {
- case "dotted":
- context.setLineDash([1, 1]);
- break;
- case "dashed":
- context.setLineDash([4, 2]);
- break;
- case "double":
- context.lineWidth = textBorderWidth / 4;
- context.setLineDash([]);
- break;
- case "solid":
- context.setLineDash([]);
- break;
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
}
+ action = table[state5] && table[state5][symbol];
}
- context.strokeRect(bgX, bgY, bgW, bgH);
- if (textBorderStyle === "double") {
- var whiteWidth = textBorderWidth / 2;
- context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
}
- if (context.setLineDash) {
- context.setLineDash([]);
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
}
- context.lineWidth = textLineWidth;
- context.strokeStyle = textStroke;
}
- }
- var lineWidth = 2 * ele.pstyle("text-outline-width").pfValue;
- if (lineWidth > 0) {
- context.lineWidth = lineWidth;
- }
- if (ele.pstyle("text-wrap").value === "wrap") {
- var lines = getPrefixedProperty(rscratch, "labelWrapCachedLines", prefix);
- var lineHeight = getPrefixedProperty(rscratch, "labelLineHeight", prefix);
- var halfTextW = textW / 2;
- var justification = this.getLabelJustification(ele);
- if (justification === "auto")
- ;
- else if (halign === "left") {
- if (justification === "left") {
- textX += -textW;
- } else if (justification === "center") {
- textX += -halfTextW;
+ return true;
+ }, "parse")
+ };
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
}
- } else if (halign === "center") {
- if (justification === "left") {
- textX += -halfTextW;
- } else if (justification === "right") {
- textX += halfTextW;
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
}
- } else if (halign === "right") {
- if (justification === "center") {
- textX += halfTextW;
- } else if (justification === "right") {
- textX += textW;
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
}
- }
- switch (valign) {
- case "top":
- textY -= (lines.length - 1) * lineHeight;
- break;
- case "center":
- case "bottom":
- textY -= (lines.length - 1) * lineHeight;
- break;
- }
- for (var l = 0; l < lines.length; l++) {
- if (lineWidth > 0) {
- context.strokeText(lines[l], textX, textY);
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
}
- context.fillText(lines[l], textX, textY);
- textY += lineHeight;
- }
- } else {
- if (lineWidth > 0) {
- context.strokeText(text2, textX, textY);
- }
- context.fillText(text2, textX, textY);
- }
- if (theta !== 0) {
- context.rotate(-theta);
- context.translate(-orgTextX, -orgTextY);
- }
- }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: { "case-insensitive": true },
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ this.pushState("csv");
+ return 4;
+ break;
+ case 1:
+ return 10;
+ break;
+ case 2:
+ return 5;
+ break;
+ case 3:
+ return 12;
+ break;
+ case 4:
+ this.pushState("escaped_text");
+ return 18;
+ break;
+ case 5:
+ return 20;
+ break;
+ case 6:
+ this.popState("escaped_text");
+ return 18;
+ break;
+ case 7:
+ return 19;
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:sankey-beta\b)/i, /^(?:$)/i, /^(?:((\u000D\u000A)|(\u000A)))/i, /^(?:(\u002C))/i, /^(?:(\u0022))/i, /^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i, /^(?:(\u0022)(?!(\u0022)))/i, /^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],
+ conditions: { "csv": { "rules": [1, 2, 3, 4, 5, 6, 7], "inclusive": false }, "escaped_text": { "rules": [6, 7], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser18.parser = parser18;
+ sankey_default = parser18;
+ }
+ });
+
+ // src/diagrams/sankey/sankeyDB.ts
+ var links2, nodes5, nodesMap, clear26, SankeyLink, addLink2, SankeyNode, findOrCreateNode, getNodes, getLinks2, getGraph, sankeyDB_default;
+ var init_sankeyDB = __esm({
+ "src/diagrams/sankey/sankeyDB.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_common();
+ init_commonDb();
+ links2 = [];
+ nodes5 = [];
+ nodesMap = /* @__PURE__ */ new Map();
+ clear26 = /* @__PURE__ */ __name(() => {
+ links2 = [];
+ nodes5 = [];
+ nodesMap = /* @__PURE__ */ new Map();
+ clear();
+ }, "clear");
+ SankeyLink = class {
+ constructor(source, target, value2 = 0) {
+ this.source = source;
+ this.target = target;
+ this.value = value2;
+ }
+ static {
+ __name(this, "SankeyLink");
+ }
+ };
+ addLink2 = /* @__PURE__ */ __name((source, target, value2) => {
+ links2.push(new SankeyLink(source, target, value2));
+ }, "addLink");
+ SankeyNode = class {
+ constructor(ID) {
+ this.ID = ID;
+ }
+ static {
+ __name(this, "SankeyNode");
+ }
+ };
+ findOrCreateNode = /* @__PURE__ */ __name((ID) => {
+ ID = common_default.sanitizeText(ID, getConfig2());
+ let node2 = nodesMap.get(ID);
+ if (node2 === void 0) {
+ node2 = new SankeyNode(ID);
+ nodesMap.set(ID, node2);
+ nodes5.push(node2);
+ }
+ return node2;
+ }, "findOrCreateNode");
+ getNodes = /* @__PURE__ */ __name(() => nodes5, "getNodes");
+ getLinks2 = /* @__PURE__ */ __name(() => links2, "getLinks");
+ getGraph = /* @__PURE__ */ __name(() => ({
+ nodes: nodes5.map((node2) => ({ id: node2.ID })),
+ links: links2.map((link3) => ({
+ source: link3.source.ID,
+ target: link3.target.ID,
+ value: link3.value
+ }))
+ }), "getGraph");
+ sankeyDB_default = {
+ nodesMap,
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().sankey, "getConfig"),
+ getNodes,
+ getLinks: getLinks2,
+ getGraph,
+ addLink: addLink2,
+ findOrCreateNode,
+ getAccTitle,
+ setAccTitle,
+ getAccDescription,
+ setAccDescription,
+ getDiagramTitle,
+ setDiagramTitle,
+ clear: clear26
};
- var CRp$5 = {};
- CRp$5.drawNode = function(context, node2, shiftToOriginWithBb) {
- var drawLabel2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
- var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
- var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
- var r = this;
- var nodeWidth, nodeHeight;
- var _p = node2._private;
- var rs = _p.rscratch;
- var pos = node2.position();
- if (!number$12(pos.x) || !number$12(pos.y)) {
- return;
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/max.js
+ function max9(values2, valueof) {
+ let max10;
+ if (valueof === void 0) {
+ for (const value2 of values2) {
+ if (value2 != null && (max10 < value2 || max10 === void 0 && value2 >= value2)) {
+ max10 = value2;
}
- if (shouldDrawOpacity && !node2.visible()) {
- return;
+ }
+ } else {
+ let index = -1;
+ for (let value2 of values2) {
+ if ((value2 = valueof(value2, ++index, values2)) != null && (max10 < value2 || max10 === void 0 && value2 >= value2)) {
+ max10 = value2;
}
- var eleOpacity = shouldDrawOpacity ? node2.effectiveOpacity() : 1;
- var usePaths = r.usePaths();
- var path2;
- var pathCacheHit = false;
- var padding2 = node2.padding();
- nodeWidth = node2.width() + 2 * padding2;
- nodeHeight = node2.height() + 2 * padding2;
- var bb;
- if (shiftToOriginWithBb) {
- bb = shiftToOriginWithBb;
- context.translate(-bb.x1, -bb.y1);
+ }
+ }
+ return max10;
+ }
+ var init_max3 = __esm({
+ "../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/max.js"() {
+ "use strict";
+ __name(max9, "max");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/min.js
+ function min8(values2, valueof) {
+ let min9;
+ if (valueof === void 0) {
+ for (const value2 of values2) {
+ if (value2 != null && (min9 > value2 || min9 === void 0 && value2 >= value2)) {
+ min9 = value2;
}
- var bgImgProp = node2.pstyle("background-image");
- var urls = bgImgProp.value;
- var urlDefined = new Array(urls.length);
- var image = new Array(urls.length);
- var numImages = 0;
- for (var i3 = 0; i3 < urls.length; i3++) {
- var url = urls[i3];
- var defd = urlDefined[i3] = url != null && url !== "none";
- if (defd) {
- var bgImgCrossOrigin = node2.cy().style().getIndexedStyle(node2, "background-image-crossorigin", "value", i3);
- numImages++;
- image[i3] = r.getCachedImage(url, bgImgCrossOrigin, function() {
- _p.backgroundTimestamp = Date.now();
- node2.emitAndNotify("background");
- });
- }
+ }
+ } else {
+ let index = -1;
+ for (let value2 of values2) {
+ if ((value2 = valueof(value2, ++index, values2)) != null && (min9 > value2 || min9 === void 0 && value2 >= value2)) {
+ min9 = value2;
}
- var darkness = node2.pstyle("background-blacken").value;
- var borderWidth = node2.pstyle("border-width").pfValue;
- var bgOpacity = node2.pstyle("background-opacity").value * eleOpacity;
- var borderColor = node2.pstyle("border-color").value;
- var borderStyle = node2.pstyle("border-style").value;
- var borderOpacity = node2.pstyle("border-opacity").value * eleOpacity;
- context.lineJoin = "miter";
- var setupShapeColor = function setupShapeColor2() {
- var bgOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : bgOpacity;
- r.eleFillStyle(context, node2, bgOpy);
- };
- var setupBorderColor = function setupBorderColor2() {
- var bdrOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : borderOpacity;
- r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);
- };
- var styleShape = node2.pstyle("shape").strValue;
- var shapePts = node2.pstyle("shape-polygon-points").pfValue;
- if (usePaths) {
- context.translate(pos.x, pos.y);
- var pathCache = r.nodePathCache = r.nodePathCache || [];
- var key = hashStrings(styleShape === "polygon" ? styleShape + "," + shapePts.join(",") : styleShape, "" + nodeHeight, "" + nodeWidth);
- var cachedPath = pathCache[key];
- if (cachedPath != null) {
- path2 = cachedPath;
- pathCacheHit = true;
- rs.pathCache = path2;
+ }
+ }
+ return min9;
+ }
+ var init_min3 = __esm({
+ "../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/min.js"() {
+ "use strict";
+ __name(min8, "min");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/sum.js
+ function sum(values2, valueof) {
+ let sum2 = 0;
+ if (valueof === void 0) {
+ for (let value2 of values2) {
+ if (value2 = +value2) {
+ sum2 += value2;
+ }
+ }
+ } else {
+ let index = -1;
+ for (let value2 of values2) {
+ if (value2 = +valueof(value2, ++index, values2)) {
+ sum2 += value2;
+ }
+ }
+ }
+ return sum2;
+ }
+ var init_sum = __esm({
+ "../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/sum.js"() {
+ "use strict";
+ __name(sum, "sum");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/index.js
+ var init_src33 = __esm({
+ "../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/index.js"() {
+ "use strict";
+ init_max3();
+ init_min3();
+ init_sum();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/align.js
+ function targetDepth(d2) {
+ return d2.target.depth;
+ }
+ function left2(node2) {
+ return node2.depth;
+ }
+ function right2(node2, n2) {
+ return n2 - 1 - node2.height;
+ }
+ function justify(node2, n2) {
+ return node2.sourceLinks.length ? node2.depth : n2 - 1;
+ }
+ function center3(node2) {
+ return node2.targetLinks.length ? node2.depth : node2.sourceLinks.length ? min8(node2.sourceLinks, targetDepth) - 1 : 0;
+ }
+ var init_align = __esm({
+ "../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/align.js"() {
+ "use strict";
+ init_src33();
+ __name(targetDepth, "targetDepth");
+ __name(left2, "left");
+ __name(right2, "right");
+ __name(justify, "justify");
+ __name(center3, "center");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/constant.js
+ function constant2(x5) {
+ return function() {
+ return x5;
+ };
+ }
+ var init_constant8 = __esm({
+ "../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/constant.js"() {
+ "use strict";
+ __name(constant2, "constant");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankey.js
+ function ascendingSourceBreadth(a2, b2) {
+ return ascendingBreadth(a2.source, b2.source) || a2.index - b2.index;
+ }
+ function ascendingTargetBreadth(a2, b2) {
+ return ascendingBreadth(a2.target, b2.target) || a2.index - b2.index;
+ }
+ function ascendingBreadth(a2, b2) {
+ return a2.y0 - b2.y0;
+ }
+ function value(d2) {
+ return d2.value;
+ }
+ function defaultId(d2) {
+ return d2.index;
+ }
+ function defaultNodes(graph) {
+ return graph.nodes;
+ }
+ function defaultLinks(graph) {
+ return graph.links;
+ }
+ function find3(nodeById, id27) {
+ const node2 = nodeById.get(id27);
+ if (!node2) throw new Error("missing: " + id27);
+ return node2;
+ }
+ function computeLinkBreadths({ nodes: nodes6 }) {
+ for (const node2 of nodes6) {
+ let y0 = node2.y0;
+ let y1 = y0;
+ for (const link3 of node2.sourceLinks) {
+ link3.y0 = y0 + link3.width / 2;
+ y0 += link3.width;
+ }
+ for (const link3 of node2.targetLinks) {
+ link3.y1 = y1 + link3.width / 2;
+ y1 += link3.width;
+ }
+ }
+ }
+ function Sankey() {
+ let x0 = 0, y0 = 0, x1 = 1, y1 = 1;
+ let dx = 24;
+ let dy = 8, py;
+ let id27 = defaultId;
+ let align = justify;
+ let sort3;
+ let linkSort;
+ let nodes6 = defaultNodes;
+ let links3 = defaultLinks;
+ let iterations = 6;
+ function sankey() {
+ const graph = { nodes: nodes6.apply(null, arguments), links: links3.apply(null, arguments) };
+ computeNodeLinks(graph);
+ computeNodeValues(graph);
+ computeNodeDepths(graph);
+ computeNodeHeights(graph);
+ computeNodeBreadths(graph);
+ computeLinkBreadths(graph);
+ return graph;
+ }
+ __name(sankey, "sankey");
+ sankey.update = function(graph) {
+ computeLinkBreadths(graph);
+ return graph;
+ };
+ sankey.nodeId = function(_2) {
+ return arguments.length ? (id27 = typeof _2 === "function" ? _2 : constant2(_2), sankey) : id27;
+ };
+ sankey.nodeAlign = function(_2) {
+ return arguments.length ? (align = typeof _2 === "function" ? _2 : constant2(_2), sankey) : align;
+ };
+ sankey.nodeSort = function(_2) {
+ return arguments.length ? (sort3 = _2, sankey) : sort3;
+ };
+ sankey.nodeWidth = function(_2) {
+ return arguments.length ? (dx = +_2, sankey) : dx;
+ };
+ sankey.nodePadding = function(_2) {
+ return arguments.length ? (dy = py = +_2, sankey) : dy;
+ };
+ sankey.nodes = function(_2) {
+ return arguments.length ? (nodes6 = typeof _2 === "function" ? _2 : constant2(_2), sankey) : nodes6;
+ };
+ sankey.links = function(_2) {
+ return arguments.length ? (links3 = typeof _2 === "function" ? _2 : constant2(_2), sankey) : links3;
+ };
+ sankey.linkSort = function(_2) {
+ return arguments.length ? (linkSort = _2, sankey) : linkSort;
+ };
+ sankey.size = function(_2) {
+ return arguments.length ? (x0 = y0 = 0, x1 = +_2[0], y1 = +_2[1], sankey) : [x1 - x0, y1 - y0];
+ };
+ sankey.extent = function(_2) {
+ return arguments.length ? (x0 = +_2[0][0], x1 = +_2[1][0], y0 = +_2[0][1], y1 = +_2[1][1], sankey) : [[x0, y0], [x1, y1]];
+ };
+ sankey.iterations = function(_2) {
+ return arguments.length ? (iterations = +_2, sankey) : iterations;
+ };
+ function computeNodeLinks({ nodes: nodes7, links: links4 }) {
+ for (const [i2, node2] of nodes7.entries()) {
+ node2.index = i2;
+ node2.sourceLinks = [];
+ node2.targetLinks = [];
+ }
+ const nodeById = new Map(nodes7.map((d2, i2) => [id27(d2, i2, nodes7), d2]));
+ for (const [i2, link3] of links4.entries()) {
+ link3.index = i2;
+ let { source, target } = link3;
+ if (typeof source !== "object") source = link3.source = find3(nodeById, source);
+ if (typeof target !== "object") target = link3.target = find3(nodeById, target);
+ source.sourceLinks.push(link3);
+ target.targetLinks.push(link3);
+ }
+ if (linkSort != null) {
+ for (const { sourceLinks, targetLinks } of nodes7) {
+ sourceLinks.sort(linkSort);
+ targetLinks.sort(linkSort);
+ }
+ }
+ }
+ __name(computeNodeLinks, "computeNodeLinks");
+ function computeNodeValues({ nodes: nodes7 }) {
+ for (const node2 of nodes7) {
+ node2.value = node2.fixedValue === void 0 ? Math.max(sum(node2.sourceLinks, value), sum(node2.targetLinks, value)) : node2.fixedValue;
+ }
+ }
+ __name(computeNodeValues, "computeNodeValues");
+ function computeNodeDepths({ nodes: nodes7 }) {
+ const n2 = nodes7.length;
+ let current = new Set(nodes7);
+ let next3 = /* @__PURE__ */ new Set();
+ let x5 = 0;
+ while (current.size) {
+ for (const node2 of current) {
+ node2.depth = x5;
+ for (const { target } of node2.sourceLinks) {
+ next3.add(target);
+ }
+ }
+ if (++x5 > n2) throw new Error("circular link");
+ current = next3;
+ next3 = /* @__PURE__ */ new Set();
+ }
+ }
+ __name(computeNodeDepths, "computeNodeDepths");
+ function computeNodeHeights({ nodes: nodes7 }) {
+ const n2 = nodes7.length;
+ let current = new Set(nodes7);
+ let next3 = /* @__PURE__ */ new Set();
+ let x5 = 0;
+ while (current.size) {
+ for (const node2 of current) {
+ node2.height = x5;
+ for (const { source } of node2.targetLinks) {
+ next3.add(source);
+ }
+ }
+ if (++x5 > n2) throw new Error("circular link");
+ current = next3;
+ next3 = /* @__PURE__ */ new Set();
+ }
+ }
+ __name(computeNodeHeights, "computeNodeHeights");
+ function computeNodeLayers({ nodes: nodes7 }) {
+ const x5 = max9(nodes7, (d2) => d2.depth) + 1;
+ const kx = (x1 - x0 - dx) / (x5 - 1);
+ const columns = new Array(x5);
+ for (const node2 of nodes7) {
+ const i2 = Math.max(0, Math.min(x5 - 1, Math.floor(align.call(null, node2, x5))));
+ node2.layer = i2;
+ node2.x0 = x0 + i2 * kx;
+ node2.x1 = node2.x0 + dx;
+ if (columns[i2]) columns[i2].push(node2);
+ else columns[i2] = [node2];
+ }
+ if (sort3) for (const column2 of columns) {
+ column2.sort(sort3);
+ }
+ return columns;
+ }
+ __name(computeNodeLayers, "computeNodeLayers");
+ function initializeNodeBreadths(columns) {
+ const ky = min8(columns, (c3) => (y1 - y0 - (c3.length - 1) * py) / sum(c3, value));
+ for (const nodes7 of columns) {
+ let y5 = y0;
+ for (const node2 of nodes7) {
+ node2.y0 = y5;
+ node2.y1 = y5 + node2.value * ky;
+ y5 = node2.y1 + py;
+ for (const link3 of node2.sourceLinks) {
+ link3.width = link3.value * ky;
+ }
+ }
+ y5 = (y1 - y5 + py) / (nodes7.length + 1);
+ for (let i2 = 0; i2 < nodes7.length; ++i2) {
+ const node2 = nodes7[i2];
+ node2.y0 += y5 * (i2 + 1);
+ node2.y1 += y5 * (i2 + 1);
+ }
+ reorderLinks(nodes7);
+ }
+ }
+ __name(initializeNodeBreadths, "initializeNodeBreadths");
+ function computeNodeBreadths(graph) {
+ const columns = computeNodeLayers(graph);
+ py = Math.min(dy, (y1 - y0) / (max9(columns, (c3) => c3.length) - 1));
+ initializeNodeBreadths(columns);
+ for (let i2 = 0; i2 < iterations; ++i2) {
+ const alpha = Math.pow(0.99, i2);
+ const beta = Math.max(1 - alpha, (i2 + 1) / iterations);
+ relaxRightToLeft(columns, alpha, beta);
+ relaxLeftToRight(columns, alpha, beta);
+ }
+ }
+ __name(computeNodeBreadths, "computeNodeBreadths");
+ function relaxLeftToRight(columns, alpha, beta) {
+ for (let i2 = 1, n2 = columns.length; i2 < n2; ++i2) {
+ const column2 = columns[i2];
+ for (const target of column2) {
+ let y5 = 0;
+ let w3 = 0;
+ for (const { source, value: value2 } of target.targetLinks) {
+ let v3 = value2 * (target.layer - source.layer);
+ y5 += targetTop(source, target) * v3;
+ w3 += v3;
+ }
+ if (!(w3 > 0)) continue;
+ let dy2 = (y5 / w3 - target.y0) * alpha;
+ target.y0 += dy2;
+ target.y1 += dy2;
+ reorderNodeLinks(target);
+ }
+ if (sort3 === void 0) column2.sort(ascendingBreadth);
+ resolveCollisions(column2, beta);
+ }
+ }
+ __name(relaxLeftToRight, "relaxLeftToRight");
+ function relaxRightToLeft(columns, alpha, beta) {
+ for (let n2 = columns.length, i2 = n2 - 2; i2 >= 0; --i2) {
+ const column2 = columns[i2];
+ for (const source of column2) {
+ let y5 = 0;
+ let w3 = 0;
+ for (const { target, value: value2 } of source.sourceLinks) {
+ let v3 = value2 * (target.layer - source.layer);
+ y5 += sourceTop(source, target) * v3;
+ w3 += v3;
+ }
+ if (!(w3 > 0)) continue;
+ let dy2 = (y5 / w3 - source.y0) * alpha;
+ source.y0 += dy2;
+ source.y1 += dy2;
+ reorderNodeLinks(source);
+ }
+ if (sort3 === void 0) column2.sort(ascendingBreadth);
+ resolveCollisions(column2, beta);
+ }
+ }
+ __name(relaxRightToLeft, "relaxRightToLeft");
+ function resolveCollisions(nodes7, alpha) {
+ const i2 = nodes7.length >> 1;
+ const subject = nodes7[i2];
+ resolveCollisionsBottomToTop(nodes7, subject.y0 - py, i2 - 1, alpha);
+ resolveCollisionsTopToBottom(nodes7, subject.y1 + py, i2 + 1, alpha);
+ resolveCollisionsBottomToTop(nodes7, y1, nodes7.length - 1, alpha);
+ resolveCollisionsTopToBottom(nodes7, y0, 0, alpha);
+ }
+ __name(resolveCollisions, "resolveCollisions");
+ function resolveCollisionsTopToBottom(nodes7, y5, i2, alpha) {
+ for (; i2 < nodes7.length; ++i2) {
+ const node2 = nodes7[i2];
+ const dy2 = (y5 - node2.y0) * alpha;
+ if (dy2 > 1e-6) node2.y0 += dy2, node2.y1 += dy2;
+ y5 = node2.y1 + py;
+ }
+ }
+ __name(resolveCollisionsTopToBottom, "resolveCollisionsTopToBottom");
+ function resolveCollisionsBottomToTop(nodes7, y5, i2, alpha) {
+ for (; i2 >= 0; --i2) {
+ const node2 = nodes7[i2];
+ const dy2 = (node2.y1 - y5) * alpha;
+ if (dy2 > 1e-6) node2.y0 -= dy2, node2.y1 -= dy2;
+ y5 = node2.y0 - py;
+ }
+ }
+ __name(resolveCollisionsBottomToTop, "resolveCollisionsBottomToTop");
+ function reorderNodeLinks({ sourceLinks, targetLinks }) {
+ if (linkSort === void 0) {
+ for (const { source: { sourceLinks: sourceLinks2 } } of targetLinks) {
+ sourceLinks2.sort(ascendingTargetBreadth);
+ }
+ for (const { target: { targetLinks: targetLinks2 } } of sourceLinks) {
+ targetLinks2.sort(ascendingSourceBreadth);
+ }
+ }
+ }
+ __name(reorderNodeLinks, "reorderNodeLinks");
+ function reorderLinks(nodes7) {
+ if (linkSort === void 0) {
+ for (const { sourceLinks, targetLinks } of nodes7) {
+ sourceLinks.sort(ascendingTargetBreadth);
+ targetLinks.sort(ascendingSourceBreadth);
+ }
+ }
+ }
+ __name(reorderLinks, "reorderLinks");
+ function targetTop(source, target) {
+ let y5 = source.y0 - (source.sourceLinks.length - 1) * py / 2;
+ for (const { target: node2, width: width3 } of source.sourceLinks) {
+ if (node2 === target) break;
+ y5 += width3 + py;
+ }
+ for (const { source: node2, width: width3 } of target.targetLinks) {
+ if (node2 === source) break;
+ y5 -= width3;
+ }
+ return y5;
+ }
+ __name(targetTop, "targetTop");
+ function sourceTop(source, target) {
+ let y5 = target.y0 - (target.targetLinks.length - 1) * py / 2;
+ for (const { source: node2, width: width3 } of target.targetLinks) {
+ if (node2 === source) break;
+ y5 += width3 + py;
+ }
+ for (const { target: node2, width: width3 } of source.sourceLinks) {
+ if (node2 === target) break;
+ y5 -= width3;
+ }
+ return y5;
+ }
+ __name(sourceTop, "sourceTop");
+ return sankey;
+ }
+ var init_sankey2 = __esm({
+ "../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankey.js"() {
+ "use strict";
+ init_src33();
+ init_align();
+ init_constant8();
+ __name(ascendingSourceBreadth, "ascendingSourceBreadth");
+ __name(ascendingTargetBreadth, "ascendingTargetBreadth");
+ __name(ascendingBreadth, "ascendingBreadth");
+ __name(value, "value");
+ __name(defaultId, "defaultId");
+ __name(defaultNodes, "defaultNodes");
+ __name(defaultLinks, "defaultLinks");
+ __name(find3, "find");
+ __name(computeLinkBreadths, "computeLinkBreadths");
+ __name(Sankey, "Sankey");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-path@1.0.9/node_modules/d3-path/src/path.js
+ function Path2() {
+ this._x0 = this._y0 = // start of current subpath
+ this._x1 = this._y1 = null;
+ this._ = "";
+ }
+ function path3() {
+ return new Path2();
+ }
+ var pi3, tau3, epsilon5, tauEpsilon2, path_default;
+ var init_path3 = __esm({
+ "../../node_modules/.pnpm/d3-path@1.0.9/node_modules/d3-path/src/path.js"() {
+ "use strict";
+ pi3 = Math.PI;
+ tau3 = 2 * pi3;
+ epsilon5 = 1e-6;
+ tauEpsilon2 = tau3 - epsilon5;
+ __name(Path2, "Path");
+ __name(path3, "path");
+ Path2.prototype = path3.prototype = {
+ constructor: Path2,
+ moveTo: /* @__PURE__ */ __name(function(x5, y5) {
+ this._ += "M" + (this._x0 = this._x1 = +x5) + "," + (this._y0 = this._y1 = +y5);
+ }, "moveTo"),
+ closePath: /* @__PURE__ */ __name(function() {
+ if (this._x1 !== null) {
+ this._x1 = this._x0, this._y1 = this._y0;
+ this._ += "Z";
+ }
+ }, "closePath"),
+ lineTo: /* @__PURE__ */ __name(function(x5, y5) {
+ this._ += "L" + (this._x1 = +x5) + "," + (this._y1 = +y5);
+ }, "lineTo"),
+ quadraticCurveTo: /* @__PURE__ */ __name(function(x1, y1, x5, y5) {
+ this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x5) + "," + (this._y1 = +y5);
+ }, "quadraticCurveTo"),
+ bezierCurveTo: /* @__PURE__ */ __name(function(x1, y1, x22, y22, x5, y5) {
+ this._ += "C" + +x1 + "," + +y1 + "," + +x22 + "," + +y22 + "," + (this._x1 = +x5) + "," + (this._y1 = +y5);
+ }, "bezierCurveTo"),
+ arcTo: /* @__PURE__ */ __name(function(x1, y1, x22, y22, r2) {
+ x1 = +x1, y1 = +y1, x22 = +x22, y22 = +y22, r2 = +r2;
+ var x0 = this._x1, y0 = this._y1, x21 = x22 - x1, y21 = y22 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;
+ if (r2 < 0) throw new Error("negative radius: " + r2);
+ if (this._x1 === null) {
+ this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
+ } else if (!(l01_2 > epsilon5)) ;
+ else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon5) || !r2) {
+ this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
} else {
- path2 = new Path2D();
- pathCache[key] = rs.pathCache = path2;
- }
+ var x20 = x22 - x0, y20 = y22 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l2 = r2 * Math.tan((pi3 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l2 / l01, t21 = l2 / l21;
+ if (Math.abs(t01 - 1) > epsilon5) {
+ this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
+ }
+ this._ += "A" + r2 + "," + r2 + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
+ }
+ }, "arcTo"),
+ arc: /* @__PURE__ */ __name(function(x5, y5, r2, a0, a1, ccw) {
+ x5 = +x5, y5 = +y5, r2 = +r2, ccw = !!ccw;
+ var dx = r2 * Math.cos(a0), dy = r2 * Math.sin(a0), x0 = x5 + dx, y0 = y5 + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;
+ if (r2 < 0) throw new Error("negative radius: " + r2);
+ if (this._x1 === null) {
+ this._ += "M" + x0 + "," + y0;
+ } else if (Math.abs(this._x1 - x0) > epsilon5 || Math.abs(this._y1 - y0) > epsilon5) {
+ this._ += "L" + x0 + "," + y0;
+ }
+ if (!r2) return;
+ if (da < 0) da = da % tau3 + tau3;
+ if (da > tauEpsilon2) {
+ this._ += "A" + r2 + "," + r2 + ",0,1," + cw + "," + (x5 - dx) + "," + (y5 - dy) + "A" + r2 + "," + r2 + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
+ } else if (da > epsilon5) {
+ this._ += "A" + r2 + "," + r2 + ",0," + +(da >= pi3) + "," + cw + "," + (this._x1 = x5 + r2 * Math.cos(a1)) + "," + (this._y1 = y5 + r2 * Math.sin(a1));
+ }
+ }, "arc"),
+ rect: /* @__PURE__ */ __name(function(x5, y5, w3, h2) {
+ this._ += "M" + (this._x0 = this._x1 = +x5) + "," + (this._y0 = this._y1 = +y5) + "h" + +w3 + "v" + +h2 + "h" + -w3 + "Z";
+ }, "rect"),
+ toString: /* @__PURE__ */ __name(function() {
+ return this._;
+ }, "toString")
+ };
+ path_default = path3;
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-path@1.0.9/node_modules/d3-path/src/index.js
+ var init_src34 = __esm({
+ "../../node_modules/.pnpm/d3-path@1.0.9/node_modules/d3-path/src/index.js"() {
+ "use strict";
+ init_path3();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/constant.js
+ function constant_default7(x5) {
+ return /* @__PURE__ */ __name(function constant3() {
+ return x5;
+ }, "constant");
+ }
+ var init_constant9 = __esm({
+ "../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/constant.js"() {
+ "use strict";
+ __name(constant_default7, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/point.js
+ function x4(p3) {
+ return p3[0];
+ }
+ function y4(p3) {
+ return p3[1];
+ }
+ var init_point2 = __esm({
+ "../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/point.js"() {
+ "use strict";
+ __name(x4, "x");
+ __name(y4, "y");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/array.js
+ var slice3;
+ var init_array4 = __esm({
+ "../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/array.js"() {
+ "use strict";
+ slice3 = Array.prototype.slice;
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/link/index.js
+ function linkSource(d2) {
+ return d2.source;
+ }
+ function linkTarget(d2) {
+ return d2.target;
+ }
+ function link2(curve) {
+ var source = linkSource, target = linkTarget, x5 = x4, y5 = y4, context = null;
+ function link3() {
+ var buffer, argv = slice3.call(arguments), s2 = source.apply(this, argv), t4 = target.apply(this, argv);
+ if (!context) context = buffer = path_default();
+ curve(context, +x5.apply(this, (argv[0] = s2, argv)), +y5.apply(this, argv), +x5.apply(this, (argv[0] = t4, argv)), +y5.apply(this, argv));
+ if (buffer) return context = null, buffer + "" || null;
+ }
+ __name(link3, "link");
+ link3.source = function(_2) {
+ return arguments.length ? (source = _2, link3) : source;
+ };
+ link3.target = function(_2) {
+ return arguments.length ? (target = _2, link3) : target;
+ };
+ link3.x = function(_2) {
+ return arguments.length ? (x5 = typeof _2 === "function" ? _2 : constant_default7(+_2), link3) : x5;
+ };
+ link3.y = function(_2) {
+ return arguments.length ? (y5 = typeof _2 === "function" ? _2 : constant_default7(+_2), link3) : y5;
+ };
+ link3.context = function(_2) {
+ return arguments.length ? (context = _2 == null ? null : _2, link3) : context;
+ };
+ return link3;
+ }
+ function curveHorizontal(context, x0, y0, x1, y1) {
+ context.moveTo(x0, y0);
+ context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
+ }
+ function linkHorizontal() {
+ return link2(curveHorizontal);
+ }
+ var init_link = __esm({
+ "../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/link/index.js"() {
+ "use strict";
+ init_src34();
+ init_array4();
+ init_constant9();
+ init_point2();
+ __name(linkSource, "linkSource");
+ __name(linkTarget, "linkTarget");
+ __name(link2, "link");
+ __name(curveHorizontal, "curveHorizontal");
+ __name(linkHorizontal, "linkHorizontal");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/index.js
+ var init_src35 = __esm({
+ "../../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/index.js"() {
+ "use strict";
+ init_link();
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankeyLinkHorizontal.js
+ function horizontalSource(d2) {
+ return [d2.source.x1, d2.y0];
+ }
+ function horizontalTarget(d2) {
+ return [d2.target.x0, d2.y1];
+ }
+ function sankeyLinkHorizontal_default() {
+ return linkHorizontal().source(horizontalSource).target(horizontalTarget);
+ }
+ var init_sankeyLinkHorizontal = __esm({
+ "../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankeyLinkHorizontal.js"() {
+ "use strict";
+ init_src35();
+ __name(horizontalSource, "horizontalSource");
+ __name(horizontalTarget, "horizontalTarget");
+ __name(sankeyLinkHorizontal_default, "default");
+ }
+ });
+
+ // ../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/index.js
+ var init_src36 = __esm({
+ "../../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/index.js"() {
+ "use strict";
+ init_sankey2();
+ init_align();
+ init_sankeyLinkHorizontal();
+ }
+ });
+
+ // src/rendering-util/uid.ts
+ var Uid;
+ var init_uid = __esm({
+ "src/rendering-util/uid.ts"() {
+ "use strict";
+ Uid = class _Uid {
+ static {
+ __name(this, "Uid");
+ }
+ static {
+ this.count = 0;
+ }
+ static next(name) {
+ return new _Uid(name + ++_Uid.count);
+ }
+ constructor(id27) {
+ this.id = id27;
+ this.href = `#${id27}`;
+ }
+ toString() {
+ return "url(" + this.href + ")";
+ }
+ };
+ }
+ });
+
+ // src/diagrams/sankey/sankeyRenderer.ts
+ var alignmentsMap, draw20, sankeyRenderer_default;
+ var init_sankeyRenderer = __esm({
+ "src/diagrams/sankey/sankeyRenderer.ts"() {
+ "use strict";
+ init_diagramAPI();
+ init_src32();
+ init_src36();
+ init_setupGraphViewbox();
+ init_uid();
+ alignmentsMap = {
+ left: left2,
+ right: right2,
+ center: center3,
+ justify
+ };
+ draw20 = /* @__PURE__ */ __name(function(text2, id27, _version, diagObj) {
+ const { securityLevel, sankey: conf8 } = getConfig2();
+ const defaultSankeyConfig = defaultConfig2.sankey;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = securityLevel === "sandbox" ? root4.select(`[id="${id27}"]`) : select_default2(`[id="${id27}"]`);
+ const width3 = conf8?.width ?? defaultSankeyConfig.width;
+ const height2 = conf8?.height ?? defaultSankeyConfig.width;
+ const useMaxWidth = conf8?.useMaxWidth ?? defaultSankeyConfig.useMaxWidth;
+ const nodeAlignment = conf8?.nodeAlignment ?? defaultSankeyConfig.nodeAlignment;
+ const prefix = conf8?.prefix ?? defaultSankeyConfig.prefix;
+ const suffix = conf8?.suffix ?? defaultSankeyConfig.suffix;
+ const showValues = conf8?.showValues ?? defaultSankeyConfig.showValues;
+ const graph = diagObj.db.getGraph();
+ const nodeAlign = alignmentsMap[nodeAlignment];
+ const nodeWidth = 10;
+ const sankey = Sankey().nodeId((d2) => d2.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([
+ [0, 0],
+ [width3, height2]
+ ]);
+ sankey(graph);
+ const colorScheme = ordinal(Tableau10_default);
+ svg.append("g").attr("class", "nodes").selectAll(".node").data(graph.nodes).join("g").attr("class", "node").attr("id", (d2) => (d2.uid = Uid.next("node-")).id).attr("transform", function(d2) {
+ return "translate(" + d2.x0 + "," + d2.y0 + ")";
+ }).attr("x", (d2) => d2.x0).attr("y", (d2) => d2.y0).append("rect").attr("height", (d2) => {
+ return d2.y1 - d2.y0;
+ }).attr("width", (d2) => d2.x1 - d2.x0).attr("fill", (d2) => colorScheme(d2.id));
+ const getText = /* @__PURE__ */ __name(({ id: id28, value: value2 }) => {
+ if (!showValues) {
+ return id28;
+ }
+ return `${id28}
+${prefix}${Math.round(value2 * 100) / 100}${suffix}`;
+ }, "getText");
+ svg.append("g").attr("class", "node-labels").attr("font-family", "sans-serif").attr("font-size", 14).selectAll("text").data(graph.nodes).join("text").attr("x", (d2) => d2.x0 < width3 / 2 ? d2.x1 + 6 : d2.x0 - 6).attr("y", (d2) => (d2.y1 + d2.y0) / 2).attr("dy", `${showValues ? "0" : "0.35"}em`).attr("text-anchor", (d2) => d2.x0 < width3 / 2 ? "start" : "end").text(getText);
+ const link3 = svg.append("g").attr("class", "links").attr("fill", "none").attr("stroke-opacity", 0.5).selectAll(".link").data(graph.links).join("g").attr("class", "link").style("mix-blend-mode", "multiply");
+ const linkColor = conf8?.linkColor ?? "gradient";
+ if (linkColor === "gradient") {
+ const gradient = link3.append("linearGradient").attr("id", (d2) => (d2.uid = Uid.next("linearGradient-")).id).attr("gradientUnits", "userSpaceOnUse").attr("x1", (d2) => d2.source.x1).attr("x2", (d2) => d2.target.x0);
+ gradient.append("stop").attr("offset", "0%").attr("stop-color", (d2) => colorScheme(d2.source.id));
+ gradient.append("stop").attr("offset", "100%").attr("stop-color", (d2) => colorScheme(d2.target.id));
+ }
+ let coloring;
+ switch (linkColor) {
+ case "gradient":
+ coloring = /* @__PURE__ */ __name((d2) => d2.uid, "coloring");
+ break;
+ case "source":
+ coloring = /* @__PURE__ */ __name((d2) => colorScheme(d2.source.id), "coloring");
+ break;
+ case "target":
+ coloring = /* @__PURE__ */ __name((d2) => colorScheme(d2.target.id), "coloring");
+ break;
+ default:
+ coloring = linkColor;
}
- var drawShape = function drawShape2() {
- if (!pathCacheHit) {
- var npos = pos;
- if (usePaths) {
- npos = {
- x: 0,
- y: 0
- };
- }
- r.nodeShapes[r.getNodeShape(node2)].draw(path2 || context, npos.x, npos.y, nodeWidth, nodeHeight);
- }
- if (usePaths) {
- context.fill(path2);
- } else {
- context.fill();
+ link3.append("path").attr("d", sankeyLinkHorizontal_default()).attr("stroke", coloring).attr("stroke-width", (d2) => Math.max(1, d2.width));
+ setupGraphViewbox(void 0, svg, 0, useMaxWidth);
+ }, "draw");
+ sankeyRenderer_default = {
+ draw: draw20
+ };
+ }
+ });
+
+ // src/diagrams/sankey/sankeyUtils.ts
+ var prepareTextForParsing;
+ var init_sankeyUtils = __esm({
+ "src/diagrams/sankey/sankeyUtils.ts"() {
+ "use strict";
+ prepareTextForParsing = /* @__PURE__ */ __name((text2) => {
+ const textToParse = text2.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g, "").replaceAll(/([\n\r])+/g, "\n").trim();
+ return textToParse;
+ }, "prepareTextForParsing");
+ }
+ });
+
+ // src/diagrams/sankey/sankeyDiagram.ts
+ var sankeyDiagram_exports = {};
+ __export(sankeyDiagram_exports, {
+ diagram: () => diagram20
+ });
+ var originalParse, diagram20;
+ var init_sankeyDiagram = __esm({
+ "src/diagrams/sankey/sankeyDiagram.ts"() {
+ "use strict";
+ init_sankey();
+ init_sankeyDB();
+ init_sankeyRenderer();
+ init_sankeyUtils();
+ originalParse = sankey_default.parse.bind(sankey_default);
+ sankey_default.parse = (text2) => originalParse(prepareTextForParsing(text2));
+ diagram20 = {
+ parser: sankey_default,
+ db: sankeyDB_default,
+ renderer: sankeyRenderer_default
+ };
+ }
+ });
+
+ // src/diagrams/packet/db.ts
+ var defaultPacketData, data4, DEFAULT_PACKET_CONFIG, getConfig5, getPacket, pushWord, clear27, db5;
+ var init_db = __esm({
+ "src/diagrams/packet/db.ts"() {
+ "use strict";
+ init_config();
+ init_defaultConfig();
+ init_utils2();
+ init_commonDb();
+ defaultPacketData = {
+ packet: []
+ };
+ data4 = structuredClone(defaultPacketData);
+ DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;
+ getConfig5 = /* @__PURE__ */ __name(() => {
+ const config6 = cleanAndMerge({
+ ...DEFAULT_PACKET_CONFIG,
+ ...getConfig().packet
+ });
+ if (config6.showBits) {
+ config6.paddingY += 10;
+ }
+ return config6;
+ }, "getConfig");
+ getPacket = /* @__PURE__ */ __name(() => data4.packet, "getPacket");
+ pushWord = /* @__PURE__ */ __name((word) => {
+ if (word.length > 0) {
+ data4.packet.push(word);
+ }
+ }, "pushWord");
+ clear27 = /* @__PURE__ */ __name(() => {
+ clear();
+ data4 = structuredClone(defaultPacketData);
+ }, "clear");
+ db5 = {
+ pushWord,
+ getPacket,
+ getConfig: getConfig5,
+ clear: clear27,
+ setAccTitle,
+ getAccTitle,
+ setDiagramTitle,
+ getDiagramTitle,
+ getAccDescription,
+ setAccDescription
+ };
+ }
+ });
+
+ // src/diagrams/packet/parser.ts
+ var maxPacketSize, populate16, getNextFittingBlock, parser19;
+ var init_parser3 = __esm({
+ "src/diagrams/packet/parser.ts"() {
+ "use strict";
+ init_mermaid_parser_core();
+ init_logger();
+ init_populateCommonDb();
+ init_db();
+ maxPacketSize = 1e4;
+ populate16 = /* @__PURE__ */ __name((ast) => {
+ populateCommonDb(ast, db5);
+ let lastByte = -1;
+ let word = [];
+ let row = 1;
+ const { bitsPerRow } = db5.getConfig();
+ for (let { start: start3, end: end2, label } of ast.blocks) {
+ if (end2 && end2 < start3) {
+ throw new Error(`Packet block ${start3} - ${end2} is invalid. End must be greater than start.`);
+ }
+ if (start3 !== lastByte + 1) {
+ throw new Error(
+ `Packet block ${start3} - ${end2 ?? start3} is not contiguous. It should start from ${lastByte + 1}.`
+ );
}
- };
- var drawImages = function drawImages2() {
- var nodeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
- var inside = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
- var prevBging = _p.backgrounding;
- var totalCompleted = 0;
- for (var _i = 0; _i < image.length; _i++) {
- var bgContainment = node2.cy().style().getIndexedStyle(node2, "background-image-containment", "value", _i);
- if (inside && bgContainment === "over" || !inside && bgContainment === "inside") {
- totalCompleted++;
- continue;
+ lastByte = end2 ?? start3;
+ log.debug(`Packet block ${start3} - ${lastByte} with label ${label}`);
+ while (word.length <= bitsPerRow + 1 && db5.getPacket().length < maxPacketSize) {
+ const [block3, nextBlock] = getNextFittingBlock({ start: start3, end: end2, label }, row, bitsPerRow);
+ word.push(block3);
+ if (block3.end + 1 === row * bitsPerRow) {
+ db5.pushWord(word);
+ word = [];
+ row++;
}
- if (urlDefined[_i] && image[_i].complete && !image[_i].error) {
- totalCompleted++;
- r.drawInscribedImage(context, image[_i], node2, _i, nodeOpacity);
+ if (!nextBlock) {
+ break;
}
+ ({ start: start3, end: end2, label } = nextBlock);
}
- _p.backgrounding = !(totalCompleted === numImages);
- if (prevBging !== _p.backgrounding) {
- node2.updateStyle(false);
+ }
+ db5.pushWord(word);
+ }, "populate");
+ getNextFittingBlock = /* @__PURE__ */ __name((block3, row, bitsPerRow) => {
+ if (block3.end === void 0) {
+ block3.end = block3.start;
+ }
+ if (block3.start > block3.end) {
+ throw new Error(`Block start ${block3.start} is greater than block end ${block3.end}.`);
+ }
+ if (block3.end + 1 <= row * bitsPerRow) {
+ return [block3, void 0];
+ }
+ return [
+ {
+ start: block3.start,
+ end: row * bitsPerRow - 1,
+ label: block3.label
+ },
+ {
+ start: row * bitsPerRow,
+ end: block3.end,
+ label: block3.label
}
- };
- var drawPie = function drawPie2() {
- var redrawShape = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
- var pieOpacity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : eleOpacity;
- if (r.hasPie(node2)) {
- r.drawPie(context, node2, pieOpacity);
- if (redrawShape) {
- if (!usePaths) {
- r.nodeShapes[r.getNodeShape(node2)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight);
- }
- }
+ ];
+ }, "getNextFittingBlock");
+ parser19 = {
+ parse: /* @__PURE__ */ __name(async (input) => {
+ const ast = await parse2("packet", input);
+ log.debug(ast);
+ populate16(ast);
+ }, "parse")
+ };
+ }
+ });
+
+ // src/diagrams/packet/renderer.ts
+ var draw21, drawWord, renderer6;
+ var init_renderer = __esm({
+ "src/diagrams/packet/renderer.ts"() {
+ "use strict";
+ init_selectSvgElement();
+ init_setupGraphViewbox();
+ draw21 = /* @__PURE__ */ __name((_text, id27, _version, diagram24) => {
+ const db8 = diagram24.db;
+ const config6 = db8.getConfig();
+ const { rowHeight, paddingY, bitWidth, bitsPerRow } = config6;
+ const words = db8.getPacket();
+ const title2 = db8.getDiagramTitle();
+ const totalRowHeight = rowHeight + paddingY;
+ const svgHeight = totalRowHeight * (words.length + 1) - (title2 ? 0 : rowHeight);
+ const svgWidth = bitWidth * bitsPerRow + 2;
+ const svg = selectSvgElement(id27);
+ svg.attr("viewbox", `0 0 ${svgWidth} ${svgHeight}`);
+ configureSvgSize(svg, svgHeight, svgWidth, config6.useMaxWidth);
+ for (const [word, packet2] of words.entries()) {
+ drawWord(svg, packet2, word, config6);
+ }
+ svg.append("text").text(title2).attr("x", svgWidth / 2).attr("y", svgHeight - totalRowHeight / 2).attr("dominant-baseline", "middle").attr("text-anchor", "middle").attr("class", "packetTitle");
+ }, "draw");
+ drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {
+ const group2 = svg.append("g");
+ const wordY = rowNumber * (rowHeight + paddingY) + paddingY;
+ for (const block3 of word) {
+ const blockX = block3.start % bitsPerRow * bitWidth + 1;
+ const width3 = (block3.end - block3.start + 1) * bitWidth - paddingX;
+ group2.append("rect").attr("x", blockX).attr("y", wordY).attr("width", width3).attr("height", rowHeight).attr("class", "packetBlock");
+ group2.append("text").attr("x", blockX + width3 / 2).attr("y", wordY + rowHeight / 2).attr("class", "packetLabel").attr("dominant-baseline", "middle").attr("text-anchor", "middle").text(block3.label);
+ if (!showBits) {
+ continue;
}
- };
- var darken2 = function darken3() {
- var darkenOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
- var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;
- var c2 = darkness > 0 ? 0 : 255;
- if (darkness !== 0) {
- r.colorFillStyle(context, c2, c2, c2, opacity);
- if (usePaths) {
- context.fill(path2);
- } else {
- context.fill();
- }
+ const isSingleBlock = block3.end === block3.start;
+ const bitNumberY = wordY - 2;
+ group2.append("text").attr("x", blockX + (isSingleBlock ? width3 / 2 : 0)).attr("y", bitNumberY).attr("class", "packetByte start").attr("dominant-baseline", "auto").attr("text-anchor", isSingleBlock ? "middle" : "start").text(block3.start);
+ if (!isSingleBlock) {
+ group2.append("text").attr("x", blockX + width3).attr("y", bitNumberY).attr("class", "packetByte end").attr("dominant-baseline", "auto").attr("text-anchor", "end").text(block3.end);
}
- };
- var drawBorder = function drawBorder2() {
- if (borderWidth > 0) {
- context.lineWidth = borderWidth;
- context.lineCap = "butt";
- if (context.setLineDash) {
- switch (borderStyle) {
- case "dotted":
- context.setLineDash([1, 1]);
- break;
- case "dashed":
- context.setLineDash([4, 2]);
- break;
- case "solid":
- case "double":
- context.setLineDash([]);
- break;
- }
+ }
+ }, "drawWord");
+ renderer6 = { draw: draw21 };
+ }
+ });
+
+ // src/diagrams/packet/styles.ts
+ var defaultPacketStyleOptions, styles2;
+ var init_styles14 = __esm({
+ "src/diagrams/packet/styles.ts"() {
+ "use strict";
+ init_utils2();
+ defaultPacketStyleOptions = {
+ byteFontSize: "10px",
+ startByteColor: "black",
+ endByteColor: "black",
+ labelColor: "black",
+ labelFontSize: "12px",
+ titleColor: "black",
+ titleFontSize: "14px",
+ blockStrokeColor: "black",
+ blockStrokeWidth: "1",
+ blockFillColor: "#efefef"
+ };
+ styles2 = /* @__PURE__ */ __name(({ packet: packet2 } = {}) => {
+ const options3 = cleanAndMerge(defaultPacketStyleOptions, packet2);
+ return `
+ .packetByte {
+ font-size: ${options3.byteFontSize};
+ }
+ .packetByte.start {
+ fill: ${options3.startByteColor};
+ }
+ .packetByte.end {
+ fill: ${options3.endByteColor};
+ }
+ .packetLabel {
+ fill: ${options3.labelColor};
+ font-size: ${options3.labelFontSize};
+ }
+ .packetTitle {
+ fill: ${options3.titleColor};
+ font-size: ${options3.titleFontSize};
+ }
+ .packetBlock {
+ stroke: ${options3.blockStrokeColor};
+ stroke-width: ${options3.blockStrokeWidth};
+ fill: ${options3.blockFillColor};
+ }
+ `;
+ }, "styles");
+ }
+ });
+
+ // src/diagrams/packet/diagram.ts
+ var diagram_exports = {};
+ __export(diagram_exports, {
+ diagram: () => diagram21
+ });
+ var diagram21;
+ var init_diagram = __esm({
+ "src/diagrams/packet/diagram.ts"() {
+ "use strict";
+ init_db();
+ init_parser3();
+ init_renderer();
+ init_styles14();
+ diagram21 = {
+ parser: parser19,
+ db: db5,
+ renderer: renderer6,
+ styles: styles2
+ };
+ }
+ });
+
+ // src/diagrams/block/parser/block.jison
+ var parser20, block_default;
+ var init_block = __esm({
+ "src/diagrams/block/parser/block.jison"() {
+ "use strict";
+ parser20 = function() {
+ var o2 = /* @__PURE__ */ __name(function(k2, v3, o3, l2) {
+ for (o3 = o3 || {}, l2 = k2.length; l2--; o3[k2[l2]] = v3) ;
+ return o3;
+ }, "o"), $V0 = [1, 7], $V1 = [1, 13], $V2 = [1, 14], $V3 = [1, 15], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Vd = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47], $Ve = [1, 49];
+ var parser22 = {
+ trace: /* @__PURE__ */ __name(function trace() {
+ }, "trace"),
+ yy: {},
+ symbols_: { "error": 2, "spaceLines": 3, "SPACELINE": 4, "NL": 5, "separator": 6, "SPACE": 7, "EOF": 8, "start": 9, "BLOCK_DIAGRAM_KEY": 10, "document": 11, "stop": 12, "statement": 13, "link": 14, "LINK": 15, "START_LINK": 16, "LINK_LABEL": 17, "STR": 18, "nodeStatement": 19, "columnsStatement": 20, "SPACE_BLOCK": 21, "blockStatement": 22, "classDefStatement": 23, "cssClassStatement": 24, "styleStatement": 25, "node": 26, "SIZE": 27, "COLUMNS": 28, "id-block": 29, "end": 30, "block": 31, "NODE_ID": 32, "nodeShapeNLabel": 33, "dirList": 34, "DIR": 35, "NODE_DSTART": 36, "NODE_DEND": 37, "BLOCK_ARROW_START": 38, "BLOCK_ARROW_END": 39, "classDef": 40, "CLASSDEF_ID": 41, "CLASSDEF_STYLEOPTS": 42, "DEFAULT": 43, "class": 44, "CLASSENTITY_IDS": 45, "STYLECLASS": 46, "style": 47, "STYLE_ENTITY_IDS": 48, "STYLE_DEFINITION_DATA": 49, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 4: "SPACELINE", 5: "NL", 7: "SPACE", 8: "EOF", 10: "BLOCK_DIAGRAM_KEY", 15: "LINK", 16: "START_LINK", 17: "LINK_LABEL", 18: "STR", 21: "SPACE_BLOCK", 27: "SIZE", 28: "COLUMNS", 29: "id-block", 30: "end", 31: "block", 32: "NODE_ID", 35: "DIR", 36: "NODE_DSTART", 37: "NODE_DEND", 38: "BLOCK_ARROW_START", 39: "BLOCK_ARROW_END", 40: "classDef", 41: "CLASSDEF_ID", 42: "CLASSDEF_STYLEOPTS", 43: "DEFAULT", 44: "class", 45: "CLASSENTITY_IDS", 46: "STYLECLASS", 47: "style", 48: "STYLE_ENTITY_IDS", 49: "STYLE_DEFINITION_DATA" },
+ productions_: [0, [3, 1], [3, 2], [3, 2], [6, 1], [6, 1], [6, 1], [9, 3], [12, 1], [12, 1], [12, 2], [12, 2], [11, 1], [11, 2], [14, 1], [14, 4], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [19, 3], [19, 2], [19, 1], [20, 1], [22, 4], [22, 3], [26, 1], [26, 2], [34, 1], [34, 2], [33, 3], [33, 4], [23, 3], [23, 3], [24, 3], [25, 3]],
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 4:
+ yy.getLogger().debug("Rule: separator (NL) ");
+ break;
+ case 5:
+ yy.getLogger().debug("Rule: separator (Space) ");
+ break;
+ case 6:
+ yy.getLogger().debug("Rule: separator (EOF) ");
+ break;
+ case 7:
+ yy.getLogger().debug("Rule: hierarchy: ", $$[$0 - 1]);
+ yy.setHierarchy($$[$0 - 1]);
+ break;
+ case 8:
+ yy.getLogger().debug("Stop NL ");
+ break;
+ case 9:
+ yy.getLogger().debug("Stop EOF ");
+ break;
+ case 10:
+ yy.getLogger().debug("Stop NL2 ");
+ break;
+ case 11:
+ yy.getLogger().debug("Stop EOF2 ");
+ break;
+ case 12:
+ yy.getLogger().debug("Rule: statement: ", $$[$0]);
+ typeof $$[$0].length === "number" ? this.$ = $$[$0] : this.$ = [$$[$0]];
+ break;
+ case 13:
+ yy.getLogger().debug("Rule: statement #2: ", $$[$0 - 1]);
+ this.$ = [$$[$0 - 1]].concat($$[$0]);
+ break;
+ case 14:
+ yy.getLogger().debug("Rule: link: ", $$[$0], yytext);
+ this.$ = { edgeTypeStr: $$[$0], label: "" };
+ break;
+ case 15:
+ yy.getLogger().debug("Rule: LABEL link: ", $$[$0 - 3], $$[$0 - 1], $$[$0]);
+ this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] };
+ break;
+ case 18:
+ const num = parseInt($$[$0]);
+ const spaceId = yy.generateId();
+ this.$ = { id: spaceId, type: "space", label: "", width: num, children: [] };
+ break;
+ case 23:
+ yy.getLogger().debug("Rule: (nodeStatement link node) ", $$[$0 - 2], $$[$0 - 1], $$[$0], " typestr: ", $$[$0 - 1].edgeTypeStr);
+ const edgeData2 = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr);
+ this.$ = [
+ { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions },
+ { id: $$[$0 - 2].id + "-" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: "edge", directions: $$[$0].directions, arrowTypeEnd: edgeData2, arrowTypeStart: "arrow_open" },
+ { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions }
+ ];
+ break;
+ case 24:
+ yy.getLogger().debug("Rule: nodeStatement (abc88 node size) ", $$[$0 - 1], $$[$0]);
+ this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) };
+ break;
+ case 25:
+ yy.getLogger().debug("Rule: nodeStatement (node) ", $$[$0]);
+ this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 };
+ break;
+ case 26:
+ yy.getLogger().debug("APA123", this ? this : "na");
+ yy.getLogger().debug("COLUMNS: ", $$[$0]);
+ this.$ = { type: "column-setting", columns: $$[$0] === "auto" ? -1 : parseInt($$[$0]) };
+ break;
+ case 27:
+ yy.getLogger().debug("Rule: id-block statement : ", $$[$0 - 2], $$[$0 - 1]);
+ const id27 = yy.generateId();
+ this.$ = { ...$$[$0 - 2], type: "composite", children: $$[$0 - 1] };
+ break;
+ case 28:
+ yy.getLogger().debug("Rule: blockStatement : ", $$[$0 - 2], $$[$0 - 1], $$[$0]);
+ const id28 = yy.generateId();
+ this.$ = { id: id28, type: "composite", label: "", children: $$[$0 - 1] };
+ break;
+ case 29:
+ yy.getLogger().debug("Rule: node (NODE_ID separator): ", $$[$0]);
+ this.$ = { id: $$[$0] };
+ break;
+ case 30:
+ yy.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ", $$[$0 - 1], $$[$0]);
+ this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions };
+ break;
+ case 31:
+ yy.getLogger().debug("Rule: dirList: ", $$[$0]);
+ this.$ = [$$[$0]];
+ break;
+ case 32:
+ yy.getLogger().debug("Rule: dirList: ", $$[$0 - 1], $$[$0]);
+ this.$ = [$$[$0 - 1]].concat($$[$0]);
+ break;
+ case 33:
+ yy.getLogger().debug("Rule: nodeShapeNLabel: ", $$[$0 - 2], $$[$0 - 1], $$[$0]);
+ this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] };
+ break;
+ case 34:
+ yy.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ", $$[$0 - 3], $$[$0 - 2], " #3:", $$[$0 - 1], $$[$0]);
+ this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] };
+ break;
+ case 35:
+ case 36:
+ this.$ = { type: "classDef", id: $$[$0 - 1].trim(), css: $$[$0].trim() };
+ break;
+ case 37:
+ this.$ = { type: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };
+ break;
+ case 38:
+ this.$ = { type: "applyStyles", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() };
+ break;
}
- if (usePaths) {
- context.stroke(path2);
+ }, "anonymous"),
+ table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 11: 3, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 8: [1, 20] }, o2($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 21: $V0, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }), o2($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o2($V9, [2, 17]), o2($V9, [2, 18]), o2($V9, [2, 19]), o2($V9, [2, 20]), o2($V9, [2, 21]), o2($V9, [2, 22]), o2($Vc, [2, 25], { 27: [1, 25] }), o2($V9, [2, 26]), { 19: 26, 26: 12, 32: $V4 }, { 11: 27, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 41: [1, 28], 43: [1, 29] }, { 45: [1, 30] }, { 48: [1, 31] }, o2($Vd, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }), { 1: [2, 7] }, o2($V8, [2, 13]), { 26: 35, 32: $V4 }, { 32: [2, 14] }, { 17: [1, 36] }, o2($Vc, [2, 24]), { 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 30: [1, 38] }, { 42: [1, 39] }, { 42: [1, 40] }, { 46: [1, 41] }, { 49: [1, 42] }, o2($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o2($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o2($V9, [2, 28]), o2($V9, [2, 35]), o2($V9, [2, 36]), o2($V9, [2, 37]), o2($V9, [2, 38]), { 37: [1, 47] }, { 34: 48, 35: $Ve }, { 15: [1, 50] }, o2($V9, [2, 27]), o2($Vd, [2, 33]), { 39: [1, 51] }, { 34: 52, 35: $Ve, 39: [2, 31] }, { 32: [2, 15] }, o2($Vd, [2, 34]), { 39: [2, 32] }],
+ defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] },
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (hash.recoverable) {
+ this.trace(str2);
} else {
- context.stroke();
+ var error3 = new Error(str2);
+ error3.hash = hash;
+ throw error3;
+ }
+ }, "parseError"),
+ parse: /* @__PURE__ */ __name(function parse8(input) {
+ var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF2 = 1;
+ var args = lstack.slice.call(arguments, 1);
+ var lexer3 = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ for (var k2 in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k2)) {
+ sharedState.yy[k2] = this.yy[k2];
+ }
+ }
+ lexer3.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer3;
+ sharedState.yy.parser = this;
+ if (typeof lexer3.yylloc == "undefined") {
+ lexer3.yylloc = {};
+ }
+ var yyloc = lexer3.yylloc;
+ lstack.push(yyloc);
+ var ranges = lexer3.options && lexer3.options.ranges;
+ if (typeof sharedState.yy.parseError === "function") {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
}
- if (borderStyle === "double") {
- context.lineWidth = borderWidth / 3;
- var gco = context.globalCompositeOperation;
- context.globalCompositeOperation = "destination-out";
- if (usePaths) {
- context.stroke(path2);
- } else {
- context.stroke();
- }
- context.globalCompositeOperation = gco;
+ function popStack(n2) {
+ stack.length = stack.length - 2 * n2;
+ vstack.length = vstack.length - n2;
+ lstack.length = lstack.length - n2;
}
- if (context.setLineDash) {
- context.setLineDash([]);
+ __name(popStack, "popStack");
+ function lex2() {
+ var token2;
+ token2 = tstack.pop() || lexer3.lex() || EOF2;
+ if (typeof token2 !== "number") {
+ if (token2 instanceof Array) {
+ tstack = token2;
+ token2 = tstack.pop();
+ }
+ token2 = self2.symbols_[token2] || token2;
+ }
+ return token2;
}
- }
- };
- var drawOverlay = function drawOverlay2() {
- if (shouldDrawOverlay) {
- r.drawNodeOverlay(context, node2, pos, nodeWidth, nodeHeight);
- }
- };
- var drawUnderlay = function drawUnderlay2() {
- if (shouldDrawOverlay) {
- r.drawNodeUnderlay(context, node2, pos, nodeWidth, nodeHeight);
- }
- };
- var drawText2 = function drawText3() {
- r.drawElementText(context, node2, null, drawLabel2);
- };
- var ghost = node2.pstyle("ghost").value === "yes";
- if (ghost) {
- var gx = node2.pstyle("ghost-offset-x").pfValue;
- var gy = node2.pstyle("ghost-offset-y").pfValue;
- var ghostOpacity = node2.pstyle("ghost-opacity").value;
- var effGhostOpacity = ghostOpacity * eleOpacity;
- context.translate(gx, gy);
- setupShapeColor(ghostOpacity * bgOpacity);
- drawShape();
- drawImages(effGhostOpacity, true);
- setupBorderColor(ghostOpacity * borderOpacity);
- drawBorder();
- drawPie(darkness !== 0 || borderWidth !== 0);
- drawImages(effGhostOpacity, false);
- darken2(effGhostOpacity);
- context.translate(-gx, -gy);
- }
- if (usePaths) {
- context.translate(-pos.x, -pos.y);
- }
- drawUnderlay();
- if (usePaths) {
- context.translate(pos.x, pos.y);
- }
- setupShapeColor();
- drawShape();
- drawImages(eleOpacity, true);
- setupBorderColor();
- drawBorder();
- drawPie(darkness !== 0 || borderWidth !== 0);
- drawImages(eleOpacity, false);
- darken2();
- if (usePaths) {
- context.translate(-pos.x, -pos.y);
- }
- drawText2();
- drawOverlay();
- if (shiftToOriginWithBb) {
- context.translate(bb.x1, bb.y1);
- }
- };
- var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay2(overlayOrUnderlay) {
- if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
- throw new Error("Invalid state");
- }
- return function(context, node2, pos, nodeWidth, nodeHeight) {
- var r = this;
- if (!node2.visible()) {
- return;
- }
- var padding2 = node2.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
- var opacity = node2.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
- var color2 = node2.pstyle("".concat(overlayOrUnderlay, "-color")).value;
- var shape = node2.pstyle("".concat(overlayOrUnderlay, "-shape")).value;
- if (opacity > 0) {
- pos = pos || node2.position();
- if (nodeWidth == null || nodeHeight == null) {
- var _padding = node2.padding();
- nodeWidth = node2.width() + 2 * _padding;
- nodeHeight = node2.height() + 2 * _padding;
+ __name(lex2, "lex");
+ var symbol, preErrorSymbol, state5, action, a2, r2, yyval = {}, p3, len, newState2, expected;
+ while (true) {
+ state5 = stack[stack.length - 1];
+ if (this.defaultActions[state5]) {
+ action = this.defaultActions[state5];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex2();
+ }
+ action = table[state5] && table[state5][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ expected = [];
+ for (p3 in table[state5]) {
+ if (this.terminals_[p3] && p3 > TERROR) {
+ expected.push("'" + this.terminals_[p3] + "'");
+ }
+ }
+ if (lexer3.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer3.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF2 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {
+ text: lexer3.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer3.yylineno,
+ loc: yyloc,
+ expected
+ });
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state5 + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(lexer3.yytext);
+ lstack.push(lexer3.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = lexer3.yyleng;
+ yytext = lexer3.yytext;
+ yylineno = lexer3.yylineno;
+ yyloc = lexer3.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {
+ first_line: lstack[lstack.length - (len || 1)].first_line,
+ last_line: lstack[lstack.length - 1].last_line,
+ first_column: lstack[lstack.length - (len || 1)].first_column,
+ last_column: lstack[lstack.length - 1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [
+ lstack[lstack.length - (len || 1)].range[0],
+ lstack[lstack.length - 1].range[1]
+ ];
+ }
+ r2 = this.performAction.apply(yyval, [
+ yytext,
+ yyleng,
+ yylineno,
+ sharedState.yy,
+ action[1],
+ vstack,
+ lstack
+ ].concat(args));
+ if (typeof r2 !== "undefined") {
+ return r2;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState2 = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState2);
+ break;
+ case 3:
+ return true;
+ }
}
- r.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
- r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding2 * 2, nodeHeight + padding2 * 2);
- context.fill();
- }
+ return true;
+ }, "parse")
};
- };
- CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay("overlay");
- CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay("underlay");
- CRp$5.hasPie = function(node2) {
- node2 = node2[0];
- return node2._private.hasPie;
- };
- CRp$5.drawPie = function(context, node2, nodeOpacity, pos) {
- node2 = node2[0];
- pos = pos || node2.position();
- var cyStyle = node2.cy().style();
- var pieSize = node2.pstyle("pie-size");
- var x2 = pos.x;
- var y2 = pos.y;
- var nodeW = node2.width();
- var nodeH = node2.height();
- var radius = Math.min(nodeW, nodeH) / 2;
- var lastPercent = 0;
- var usePaths = this.usePaths();
- if (usePaths) {
- x2 = 0;
- y2 = 0;
- }
- if (pieSize.units === "%") {
- radius = radius * pieSize.pfValue;
- } else if (pieSize.pfValue !== void 0) {
- radius = pieSize.pfValue / 2;
+ var lexer2 = /* @__PURE__ */ function() {
+ var lexer3 = {
+ EOF: 1,
+ parseError: /* @__PURE__ */ __name(function parseError(str2, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str2, hash);
+ } else {
+ throw new Error(str2);
+ }
+ }, "parseError"),
+ // resets the lexer, sets new input
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = "";
+ this.conditionStack = ["INITIAL"];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0, 0];
+ }
+ this.offset = 0;
+ return this;
+ }, "setInput"),
+ // consumes and returns one char from the input
+ input: /* @__PURE__ */ __name(function() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+ this._input = this._input.slice(1);
+ return ch;
+ }, "input"),
+ // unshifts one char (or a string) into the input
+ unput: /* @__PURE__ */ __name(function(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r2 = this.yylloc.range;
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [r2[0], r2[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ }, "unput"),
+ // When called from action, caches matched text and appends it on next action
+ more: /* @__PURE__ */ __name(function() {
+ this._more = true;
+ return this;
+ }, "more"),
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+ reject: /* @__PURE__ */ __name(function() {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ return this;
+ }, "reject"),
+ // retain first n characters of the match
+ less: /* @__PURE__ */ __name(function(n2) {
+ this.unput(this.match.slice(n2));
+ }, "less"),
+ // displays already matched input, i.e. for error messages
+ pastInput: /* @__PURE__ */ __name(function() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
+ }, "pastInput"),
+ // displays upcoming input, i.e. for error messages
+ upcomingInput: /* @__PURE__ */ __name(function() {
+ var next3 = this.match;
+ if (next3.length < 20) {
+ next3 += this._input.substr(0, 20 - next3.length);
+ }
+ return (next3.substr(0, 20) + (next3.length > 20 ? "..." : "")).replace(/\n/g, "");
+ }, "upcomingInput"),
+ // displays the character position where the lexing error occurred, i.e. for error messages
+ showPosition: /* @__PURE__ */ __name(function() {
+ var pre = this.pastInput();
+ var c3 = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c3 + "^";
+ }, "showPosition"),
+ // test the lexed token: return FALSE when not a match, otherwise return token
+ test_match: /* @__PURE__ */ __name(function(match2, indexed_rule) {
+ var token2, lines, backup;
+ if (this.options.backtrack_lexer) {
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+ lines = match2[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match2[0].length
+ };
+ this.yytext += match2[0];
+ this.match += match2[0];
+ this.matches = match2;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match2[0].length);
+ this.matched += match2[0];
+ token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token2) {
+ return token2;
+ } else if (this._backtrack) {
+ for (var k2 in backup) {
+ this[k2] = backup[k2];
+ }
+ return false;
+ }
+ return false;
+ }, "test_match"),
+ // return next match in input
+ next: /* @__PURE__ */ __name(function() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+ var token2, match2, tempMatch, index;
+ if (!this._more) {
+ this.yytext = "";
+ this.match = "";
+ }
+ var rules = this._currentRules();
+ for (var i2 = 0; i2 < rules.length; i2++) {
+ tempMatch = this._input.match(this.rules[rules[i2]]);
+ if (tempMatch && (!match2 || tempMatch[0].length > match2[0].length)) {
+ match2 = tempMatch;
+ index = i2;
+ if (this.options.backtrack_lexer) {
+ token2 = this.test_match(tempMatch, rules[i2]);
+ if (token2 !== false) {
+ return token2;
+ } else if (this._backtrack) {
+ match2 = false;
+ continue;
+ } else {
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match2) {
+ token2 = this.test_match(match2, rules[index]);
+ if (token2 !== false) {
+ return token2;
+ }
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ }, "next"),
+ // return next match that has a token
+ lex: /* @__PURE__ */ __name(function lex2() {
+ var r2 = this.next();
+ if (r2) {
+ return r2;
+ } else {
+ return this.lex();
+ }
+ }, "lex"),
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+ begin: /* @__PURE__ */ __name(function begin(condition) {
+ this.conditionStack.push(condition);
+ }, "begin"),
+ // pop the previously active lexer condition state off the condition stack
+ popState: /* @__PURE__ */ __name(function popState() {
+ var n2 = this.conditionStack.length - 1;
+ if (n2 > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ }, "popState"),
+ // produce the lexer rule set which is active for the currently active lexer condition state
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ }, "_currentRules"),
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+ topState: /* @__PURE__ */ __name(function topState(n2) {
+ n2 = this.conditionStack.length - 1 - Math.abs(n2 || 0);
+ if (n2 >= 0) {
+ return this.conditionStack[n2];
+ } else {
+ return "INITIAL";
+ }
+ }, "topState"),
+ // alias for begin(condition)
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
+ this.begin(condition);
+ }, "pushState"),
+ // return the number of states currently on the stack
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
+ return this.conditionStack.length;
+ }, "stateStackSize"),
+ options: {},
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ return 10;
+ break;
+ case 1:
+ yy.getLogger().debug("Found space-block");
+ return 31;
+ break;
+ case 2:
+ yy.getLogger().debug("Found nl-block");
+ return 31;
+ break;
+ case 3:
+ yy.getLogger().debug("Found space-block");
+ return 29;
+ break;
+ case 4:
+ yy.getLogger().debug(".", yy_.yytext);
+ break;
+ case 5:
+ yy.getLogger().debug("_", yy_.yytext);
+ break;
+ case 6:
+ return 5;
+ break;
+ case 7:
+ yy_.yytext = -1;
+ return 28;
+ break;
+ case 8:
+ yy_.yytext = yy_.yytext.replace(/columns\s+/, "");
+ yy.getLogger().debug("COLUMNS (LEX)", yy_.yytext);
+ return 28;
+ break;
+ case 9:
+ this.pushState("md_string");
+ break;
+ case 10:
+ return "MD_STR";
+ break;
+ case 11:
+ this.popState();
+ break;
+ case 12:
+ this.pushState("string");
+ break;
+ case 13:
+ yy.getLogger().debug("LEX: POPPING STR:", yy_.yytext);
+ this.popState();
+ break;
+ case 14:
+ yy.getLogger().debug("LEX: STR end:", yy_.yytext);
+ return "STR";
+ break;
+ case 15:
+ yy_.yytext = yy_.yytext.replace(/space\:/, "");
+ yy.getLogger().debug("SPACE NUM (LEX)", yy_.yytext);
+ return 21;
+ break;
+ case 16:
+ yy_.yytext = "1";
+ yy.getLogger().debug("COLUMNS (LEX)", yy_.yytext);
+ return 21;
+ break;
+ case 17:
+ return 43;
+ break;
+ case 18:
+ return "LINKSTYLE";
+ break;
+ case 19:
+ return "INTERPOLATE";
+ break;
+ case 20:
+ this.pushState("CLASSDEF");
+ return 40;
+ break;
+ case 21:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return "DEFAULT_CLASSDEF_ID";
+ break;
+ case 22:
+ this.popState();
+ this.pushState("CLASSDEFID");
+ return 41;
+ break;
+ case 23:
+ this.popState();
+ return 42;
+ break;
+ case 24:
+ this.pushState("CLASS");
+ return 44;
+ break;
+ case 25:
+ this.popState();
+ this.pushState("CLASS_STYLE");
+ return 45;
+ break;
+ case 26:
+ this.popState();
+ return 46;
+ break;
+ case 27:
+ this.pushState("STYLE_STMNT");
+ return 47;
+ break;
+ case 28:
+ this.popState();
+ this.pushState("STYLE_DEFINITION");
+ return 48;
+ break;
+ case 29:
+ this.popState();
+ return 49;
+ break;
+ case 30:
+ this.pushState("acc_title");
+ return "acc_title";
+ break;
+ case 31:
+ this.popState();
+ return "acc_title_value";
+ break;
+ case 32:
+ this.pushState("acc_descr");
+ return "acc_descr";
+ break;
+ case 33:
+ this.popState();
+ return "acc_descr_value";
+ break;
+ case 34:
+ this.pushState("acc_descr_multiline");
+ break;
+ case 35:
+ this.popState();
+ break;
+ case 36:
+ return "acc_descr_multiline_value";
+ break;
+ case 37:
+ return 30;
+ break;
+ case 38:
+ this.popState();
+ yy.getLogger().debug("Lex: ((");
+ return "NODE_DEND";
+ break;
+ case 39:
+ this.popState();
+ yy.getLogger().debug("Lex: ((");
+ return "NODE_DEND";
+ break;
+ case 40:
+ this.popState();
+ yy.getLogger().debug("Lex: ))");
+ return "NODE_DEND";
+ break;
+ case 41:
+ this.popState();
+ yy.getLogger().debug("Lex: ((");
+ return "NODE_DEND";
+ break;
+ case 42:
+ this.popState();
+ yy.getLogger().debug("Lex: ((");
+ return "NODE_DEND";
+ break;
+ case 43:
+ this.popState();
+ yy.getLogger().debug("Lex: (-");
+ return "NODE_DEND";
+ break;
+ case 44:
+ this.popState();
+ yy.getLogger().debug("Lex: -)");
+ return "NODE_DEND";
+ break;
+ case 45:
+ this.popState();
+ yy.getLogger().debug("Lex: ((");
+ return "NODE_DEND";
+ break;
+ case 46:
+ this.popState();
+ yy.getLogger().debug("Lex: ]]");
+ return "NODE_DEND";
+ break;
+ case 47:
+ this.popState();
+ yy.getLogger().debug("Lex: (");
+ return "NODE_DEND";
+ break;
+ case 48:
+ this.popState();
+ yy.getLogger().debug("Lex: ])");
+ return "NODE_DEND";
+ break;
+ case 49:
+ this.popState();
+ yy.getLogger().debug("Lex: /]");
+ return "NODE_DEND";
+ break;
+ case 50:
+ this.popState();
+ yy.getLogger().debug("Lex: /]");
+ return "NODE_DEND";
+ break;
+ case 51:
+ this.popState();
+ yy.getLogger().debug("Lex: )]");
+ return "NODE_DEND";
+ break;
+ case 52:
+ this.popState();
+ yy.getLogger().debug("Lex: )");
+ return "NODE_DEND";
+ break;
+ case 53:
+ this.popState();
+ yy.getLogger().debug("Lex: ]>");
+ return "NODE_DEND";
+ break;
+ case 54:
+ this.popState();
+ yy.getLogger().debug("Lex: ]");
+ return "NODE_DEND";
+ break;
+ case 55:
+ yy.getLogger().debug("Lexa: -)");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 56:
+ yy.getLogger().debug("Lexa: (-");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 57:
+ yy.getLogger().debug("Lexa: ))");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 58:
+ yy.getLogger().debug("Lexa: )");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 59:
+ yy.getLogger().debug("Lex: (((");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 60:
+ yy.getLogger().debug("Lexa: )");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 61:
+ yy.getLogger().debug("Lexa: )");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 62:
+ yy.getLogger().debug("Lexa: )");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 63:
+ yy.getLogger().debug("Lexc: >");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 64:
+ yy.getLogger().debug("Lexa: ([");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 65:
+ yy.getLogger().debug("Lexa: )");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 66:
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 67:
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 68:
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 69:
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 70:
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 71:
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 72:
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 73:
+ yy.getLogger().debug("Lexa: [");
+ this.pushState("NODE");
+ return 36;
+ break;
+ case 74:
+ this.pushState("BLOCK_ARROW");
+ yy.getLogger().debug("LEX ARR START");
+ return 38;
+ break;
+ case 75:
+ yy.getLogger().debug("Lex: NODE_ID", yy_.yytext);
+ return 32;
+ break;
+ case 76:
+ yy.getLogger().debug("Lex: EOF", yy_.yytext);
+ return 8;
+ break;
+ case 77:
+ this.pushState("md_string");
+ break;
+ case 78:
+ this.pushState("md_string");
+ break;
+ case 79:
+ return "NODE_DESCR";
+ break;
+ case 80:
+ this.popState();
+ break;
+ case 81:
+ yy.getLogger().debug("Lex: Starting string");
+ this.pushState("string");
+ break;
+ case 82:
+ yy.getLogger().debug("LEX ARR: Starting string");
+ this.pushState("string");
+ break;
+ case 83:
+ yy.getLogger().debug("LEX: NODE_DESCR:", yy_.yytext);
+ return "NODE_DESCR";
+ break;
+ case 84:
+ yy.getLogger().debug("LEX POPPING");
+ this.popState();
+ break;
+ case 85:
+ yy.getLogger().debug("Lex: =>BAE");
+ this.pushState("ARROW_DIR");
+ break;
+ case 86:
+ yy_.yytext = yy_.yytext.replace(/^,\s*/, "");
+ yy.getLogger().debug("Lex (right): dir:", yy_.yytext);
+ return "DIR";
+ break;
+ case 87:
+ yy_.yytext = yy_.yytext.replace(/^,\s*/, "");
+ yy.getLogger().debug("Lex (left):", yy_.yytext);
+ return "DIR";
+ break;
+ case 88:
+ yy_.yytext = yy_.yytext.replace(/^,\s*/, "");
+ yy.getLogger().debug("Lex (x):", yy_.yytext);
+ return "DIR";
+ break;
+ case 89:
+ yy_.yytext = yy_.yytext.replace(/^,\s*/, "");
+ yy.getLogger().debug("Lex (y):", yy_.yytext);
+ return "DIR";
+ break;
+ case 90:
+ yy_.yytext = yy_.yytext.replace(/^,\s*/, "");
+ yy.getLogger().debug("Lex (up):", yy_.yytext);
+ return "DIR";
+ break;
+ case 91:
+ yy_.yytext = yy_.yytext.replace(/^,\s*/, "");
+ yy.getLogger().debug("Lex (down):", yy_.yytext);
+ return "DIR";
+ break;
+ case 92:
+ yy_.yytext = "]>";
+ yy.getLogger().debug("Lex (ARROW_DIR end):", yy_.yytext);
+ this.popState();
+ this.popState();
+ return "BLOCK_ARROW_END";
+ break;
+ case 93:
+ yy.getLogger().debug("Lex: LINK", "#" + yy_.yytext + "#");
+ return 15;
+ break;
+ case 94:
+ yy.getLogger().debug("Lex: LINK", yy_.yytext);
+ return 15;
+ break;
+ case 95:
+ yy.getLogger().debug("Lex: LINK", yy_.yytext);
+ return 15;
+ break;
+ case 96:
+ yy.getLogger().debug("Lex: LINK", yy_.yytext);
+ return 15;
+ break;
+ case 97:
+ yy.getLogger().debug("Lex: START_LINK", yy_.yytext);
+ this.pushState("LLABEL");
+ return 16;
+ break;
+ case 98:
+ yy.getLogger().debug("Lex: START_LINK", yy_.yytext);
+ this.pushState("LLABEL");
+ return 16;
+ break;
+ case 99:
+ yy.getLogger().debug("Lex: START_LINK", yy_.yytext);
+ this.pushState("LLABEL");
+ return 16;
+ break;
+ case 100:
+ this.pushState("md_string");
+ break;
+ case 101:
+ yy.getLogger().debug("Lex: Starting string");
+ this.pushState("string");
+ return "LINK_LABEL";
+ break;
+ case 102:
+ this.popState();
+ yy.getLogger().debug("Lex: LINK", "#" + yy_.yytext + "#");
+ return 15;
+ break;
+ case 103:
+ this.popState();
+ yy.getLogger().debug("Lex: LINK", yy_.yytext);
+ return 15;
+ break;
+ case 104:
+ this.popState();
+ yy.getLogger().debug("Lex: LINK", yy_.yytext);
+ return 15;
+ break;
+ case 105:
+ yy.getLogger().debug("Lex: COLON", yy_.yytext);
+ yy_.yytext = yy_.yytext.slice(1);
+ return 27;
+ break;
+ }
+ }, "anonymous"),
+ rules: [/^(?:block-beta\b)/, /^(?:block\s+)/, /^(?:block\n+)/, /^(?:block:)/, /^(?:[\s]+)/, /^(?:[\n]+)/, /^(?:((\u000D\u000A)|(\u000A)))/, /^(?:columns\s+auto\b)/, /^(?:columns\s+[\d]+)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:space[:]\d+)/, /^(?:space\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\s+)/, /^(?:DEFAULT\s+)/, /^(?:\w+\s+)/, /^(?:[^\n]*)/, /^(?:class\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:style\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:end\b\s*)/, /^(?:\(\(\()/, /^(?:\)\)\))/, /^(?:[\)]\))/, /^(?:\}\})/, /^(?:\})/, /^(?:\(-)/, /^(?:-\))/, /^(?:\(\()/, /^(?:\]\])/, /^(?:\()/, /^(?:\]\))/, /^(?:\\\])/, /^(?:\/\])/, /^(?:\)\])/, /^(?:[\)])/, /^(?:\]>)/, /^(?:[\]])/, /^(?:-\))/, /^(?:\(-)/, /^(?:\)\))/, /^(?:\))/, /^(?:\(\(\()/, /^(?:\(\()/, /^(?:\{\{)/, /^(?:\{)/, /^(?:>)/, /^(?:\(\[)/, /^(?:\()/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\[\\)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:\[)/, /^(?:<\[)/, /^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/, /^(?:$)/, /^(?:["][`])/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:\]>\s*\()/, /^(?:,?\s*right\s*)/, /^(?:,?\s*left\s*)/, /^(?:,?\s*x\s*)/, /^(?:,?\s*y\s*)/, /^(?:,?\s*up\s*)/, /^(?:,?\s*down\s*)/, /^(?:\)\s*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:["][`])/, /^(?:["])/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?::\d+)/],
+ conditions: { "STYLE_DEFINITION": { "rules": [29], "inclusive": false }, "STYLE_STMNT": { "rules": [28], "inclusive": false }, "CLASSDEFID": { "rules": [23], "inclusive": false }, "CLASSDEF": { "rules": [21, 22], "inclusive": false }, "CLASS_STYLE": { "rules": [26], "inclusive": false }, "CLASS": { "rules": [25], "inclusive": false }, "LLABEL": { "rules": [100, 101, 102, 103, 104], "inclusive": false }, "ARROW_DIR": { "rules": [86, 87, 88, 89, 90, 91, 92], "inclusive": false }, "BLOCK_ARROW": { "rules": [77, 82, 85], "inclusive": false }, "NODE": { "rules": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], "inclusive": false }, "md_string": { "rules": [10, 11, 79, 80], "inclusive": false }, "space": { "rules": [], "inclusive": false }, "string": { "rules": [13, 14, 83, 84], "inclusive": false }, "acc_descr_multiline": { "rules": [35, 36], "inclusive": false }, "acc_descr": { "rules": [33], "inclusive": false }, "acc_title": { "rules": [31], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105], "inclusive": true } }
+ };
+ return lexer3;
+ }();
+ parser22.lexer = lexer2;
+ function Parser3() {
+ this.yy = {};
+ }
+ __name(Parser3, "Parser");
+ Parser3.prototype = parser22;
+ parser22.Parser = Parser3;
+ return new Parser3();
+ }();
+ parser20.parser = parser20;
+ block_default = parser20;
+ }
+ });
+
+ // src/diagrams/block/blockDB.ts
+ function typeStr2Type(typeStr) {
+ log.debug("typeStr2Type", typeStr);
+ switch (typeStr) {
+ case "[]":
+ return "square";
+ case "()":
+ log.debug("we have a round");
+ return "round";
+ case "(())":
+ return "circle";
+ case ">]":
+ return "rect_left_inv_arrow";
+ case "{}":
+ return "diamond";
+ case "{{}}":
+ return "hexagon";
+ case "([])":
+ return "stadium";
+ case "[[]]":
+ return "subroutine";
+ case "[()]":
+ return "cylinder";
+ case "((()))":
+ return "doublecircle";
+ case "[//]":
+ return "lean_right";
+ case "[\\\\]":
+ return "lean_left";
+ case "[/\\]":
+ return "trapezoid";
+ case "[\\/]":
+ return "inv_trapezoid";
+ case "<[]>":
+ return "block_arrow";
+ default:
+ return "na";
+ }
+ }
+ function edgeTypeStr2Type(typeStr) {
+ log.debug("typeStr2Type", typeStr);
+ switch (typeStr) {
+ case "==":
+ return "thick";
+ default:
+ return "normal";
+ }
+ }
+ function edgeStrToEdgeData(typeStr) {
+ switch (typeStr.trim()) {
+ case "--x":
+ return "arrow_cross";
+ case "--o":
+ return "arrow_circle";
+ default:
+ return "arrow_point";
+ }
+ }
+ var blockDatabase, edgeList, edgeCount3, COLOR_KEYWORD2, FILL_KEYWORD2, BG_FILL2, STYLECLASS_SEP2, config5, classes5, sanitizeText7, addStyleClass2, addStyle2Node, setCssClass3, populateBlockDatabase, blocks, rootBlock, clear28, cnt3, generateId3, setHierarchy, getColumns, getBlocksFlat, getBlocks, getEdges2, getBlock, setBlock, getLogger2, getClasses6, db6, blockDB_default;
+ var init_blockDB = __esm({
+ "src/diagrams/block/blockDB.ts"() {
+ "use strict";
+ init_clone2();
+ init_config();
+ init_diagramAPI();
+ init_logger();
+ init_common();
+ init_commonDb();
+ blockDatabase = /* @__PURE__ */ new Map();
+ edgeList = [];
+ edgeCount3 = /* @__PURE__ */ new Map();
+ COLOR_KEYWORD2 = "color";
+ FILL_KEYWORD2 = "fill";
+ BG_FILL2 = "bgFill";
+ STYLECLASS_SEP2 = ",";
+ config5 = getConfig2();
+ classes5 = /* @__PURE__ */ new Map();
+ sanitizeText7 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, config5), "sanitizeText");
+ addStyleClass2 = /* @__PURE__ */ __name(function(id27, styleAttributes = "") {
+ let foundClass = classes5.get(id27);
+ if (!foundClass) {
+ foundClass = { id: id27, styles: [], textStyles: [] };
+ classes5.set(id27, foundClass);
+ }
+ if (styleAttributes !== void 0 && styleAttributes !== null) {
+ styleAttributes.split(STYLECLASS_SEP2).forEach((attrib) => {
+ const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim();
+ if (RegExp(COLOR_KEYWORD2).exec(attrib)) {
+ const newStyle1 = fixedAttrib.replace(FILL_KEYWORD2, BG_FILL2);
+ const newStyle2 = newStyle1.replace(COLOR_KEYWORD2, FILL_KEYWORD2);
+ foundClass.textStyles.push(newStyle2);
+ }
+ foundClass.styles.push(fixedAttrib);
+ });
}
- for (var i3 = 1; i3 <= cyStyle.pieBackgroundN; i3++) {
- var size2 = node2.pstyle("pie-" + i3 + "-background-size").value;
- var color2 = node2.pstyle("pie-" + i3 + "-background-color").value;
- var opacity = node2.pstyle("pie-" + i3 + "-background-opacity").value * nodeOpacity;
- var percent = size2 / 100;
- if (percent + lastPercent > 1) {
- percent = 1 - lastPercent;
- }
- var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent;
- var angleDelta = 2 * Math.PI * percent;
- var angleEnd = angleStart + angleDelta;
- if (size2 === 0 || lastPercent >= 1 || lastPercent + percent > 1) {
+ }, "addStyleClass");
+ addStyle2Node = /* @__PURE__ */ __name(function(id27, styles3 = "") {
+ const foundBlock = blockDatabase.get(id27);
+ if (styles3 !== void 0 && styles3 !== null) {
+ foundBlock.styles = styles3.split(STYLECLASS_SEP2);
+ }
+ }, "addStyle2Node");
+ setCssClass3 = /* @__PURE__ */ __name(function(itemIds, cssClassName) {
+ itemIds.split(",").forEach(function(id27) {
+ let foundBlock = blockDatabase.get(id27);
+ if (foundBlock === void 0) {
+ const trimmedId = id27.trim();
+ foundBlock = { id: trimmedId, type: "na", children: [] };
+ blockDatabase.set(trimmedId, foundBlock);
+ }
+ if (!foundBlock.classes) {
+ foundBlock.classes = [];
+ }
+ foundBlock.classes.push(cssClassName);
+ });
+ }, "setCssClass");
+ populateBlockDatabase = /* @__PURE__ */ __name((_blockList, parent4) => {
+ const blockList = _blockList.flat();
+ const children2 = [];
+ for (const block3 of blockList) {
+ if (block3.label) {
+ block3.label = sanitizeText7(block3.label);
+ }
+ if (block3.type === "classDef") {
+ addStyleClass2(block3.id, block3.css);
continue;
}
- context.beginPath();
- context.moveTo(x2, y2);
- context.arc(x2, y2, radius, angleStart, angleEnd);
- context.closePath();
- this.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
- context.fill();
- lastPercent += percent;
- }
- };
- var CRp$4 = {};
- var motionBlurDelay = 100;
- CRp$4.getPixelRatio = function() {
- var context = this.data.contexts[0];
- if (this.forcedPixelRatio != null) {
- return this.forcedPixelRatio;
- }
- var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;
- return (window.devicePixelRatio || 1) / backingStore;
- };
- CRp$4.paintCache = function(context) {
- var caches = this.paintCaches = this.paintCaches || [];
- var needToCreateCache = true;
- var cache2;
- for (var i3 = 0; i3 < caches.length; i3++) {
- cache2 = caches[i3];
- if (cache2.context === context) {
- needToCreateCache = false;
- break;
+ if (block3.type === "applyClass") {
+ setCssClass3(block3.id, block3?.styleClass ?? "");
+ continue;
}
- }
- if (needToCreateCache) {
- cache2 = {
- context
- };
- caches.push(cache2);
- }
- return cache2;
- };
- CRp$4.createGradientStyleFor = function(context, shapeStyleName, ele, fill, opacity) {
- var gradientStyle;
- var usePaths = this.usePaths();
- var colors2 = ele.pstyle(shapeStyleName + "-gradient-stop-colors").value, positions = ele.pstyle(shapeStyleName + "-gradient-stop-positions").pfValue;
- if (fill === "radial-gradient") {
- if (ele.isEdge()) {
- var start2 = ele.sourceEndpoint(), end2 = ele.targetEndpoint(), mid = ele.midpoint();
- var d1 = dist2(start2, mid);
- var d2 = dist2(end2, mid);
- gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));
- } else {
- var pos = usePaths ? {
- x: 0,
- y: 0
- } : ele.position(), width2 = ele.paddedWidth(), height2 = ele.paddedHeight();
- gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width2, height2));
+ if (block3.type === "applyStyles") {
+ if (block3?.stylesStr) {
+ addStyle2Node(block3.id, block3?.stylesStr);
+ }
+ continue;
}
- } else {
- if (ele.isEdge()) {
- var _start = ele.sourceEndpoint(), _end = ele.targetEndpoint();
- gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);
+ if (block3.type === "column-setting") {
+ parent4.columns = block3.columns ?? -1;
+ } else if (block3.type === "edge") {
+ const count = (edgeCount3.get(block3.id) ?? 0) + 1;
+ edgeCount3.set(block3.id, count);
+ block3.id = count + "-" + block3.id;
+ edgeList.push(block3);
} else {
- var _pos = usePaths ? {
- x: 0,
- y: 0
- } : ele.position(), _width = ele.paddedWidth(), _height = ele.paddedHeight(), halfWidth = _width / 2, halfHeight = _height / 2;
- var direction2 = ele.pstyle("background-gradient-direction").value;
- switch (direction2) {
- case "to-bottom":
- gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);
- break;
- case "to-top":
- gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);
- break;
- case "to-left":
- gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);
- break;
- case "to-right":
- gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);
- break;
- case "to-bottom-right":
- case "to-right-bottom":
- gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);
- break;
- case "to-top-right":
- case "to-right-top":
- gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);
- break;
- case "to-bottom-left":
- case "to-left-bottom":
- gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);
- break;
- case "to-top-left":
- case "to-left-top":
- gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);
- break;
+ if (!block3.label) {
+ if (block3.type === "composite") {
+ block3.label = "";
+ } else {
+ block3.label = block3.id;
+ }
}
- }
- }
- if (!gradientStyle)
- return null;
- var hasPositions = positions.length === colors2.length;
- var length2 = colors2.length;
- for (var i3 = 0; i3 < length2; i3++) {
- gradientStyle.addColorStop(hasPositions ? positions[i3] : i3 / (length2 - 1), "rgba(" + colors2[i3][0] + "," + colors2[i3][1] + "," + colors2[i3][2] + "," + opacity + ")");
- }
- return gradientStyle;
- };
- CRp$4.gradientFillStyle = function(context, ele, fill, opacity) {
- var gradientStyle = this.createGradientStyleFor(context, "background", ele, fill, opacity);
- if (!gradientStyle)
- return null;
- context.fillStyle = gradientStyle;
- };
- CRp$4.colorFillStyle = function(context, r, g, b, a) {
- context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")";
- };
- CRp$4.eleFillStyle = function(context, ele, opacity) {
- var backgroundFill = ele.pstyle("background-fill").value;
- if (backgroundFill === "linear-gradient" || backgroundFill === "radial-gradient") {
- this.gradientFillStyle(context, ele, backgroundFill, opacity);
- } else {
- var backgroundColor = ele.pstyle("background-color").value;
- this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);
- }
- };
- CRp$4.gradientStrokeStyle = function(context, ele, fill, opacity) {
- var gradientStyle = this.createGradientStyleFor(context, "line", ele, fill, opacity);
- if (!gradientStyle)
- return null;
- context.strokeStyle = gradientStyle;
- };
- CRp$4.colorStrokeStyle = function(context, r, g, b, a) {
- context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")";
- };
- CRp$4.eleStrokeStyle = function(context, ele, opacity) {
- var lineFill = ele.pstyle("line-fill").value;
- if (lineFill === "linear-gradient" || lineFill === "radial-gradient") {
- this.gradientStrokeStyle(context, ele, lineFill, opacity);
- } else {
- var lineColor = ele.pstyle("line-color").value;
- this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);
- }
- };
- CRp$4.matchCanvasSize = function(container) {
- var r = this;
- var data2 = r.data;
- var bb = r.findContainerClientCoords();
- var width2 = bb[2];
- var height2 = bb[3];
- var pixelRatio = r.getPixelRatio();
- var mbPxRatio = r.motionBlurPxRatio;
- if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) {
- pixelRatio = mbPxRatio;
- }
- var canvasWidth = width2 * pixelRatio;
- var canvasHeight = height2 * pixelRatio;
- var canvas;
- if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) {
- return;
- }
- r.fontCaches = null;
- var canvasContainer = data2.canvasContainer;
- canvasContainer.style.width = width2 + "px";
- canvasContainer.style.height = height2 + "px";
- for (var i3 = 0; i3 < r.CANVAS_LAYERS; i3++) {
- canvas = data2.canvases[i3];
- canvas.width = canvasWidth;
- canvas.height = canvasHeight;
- canvas.style.width = width2 + "px";
- canvas.style.height = height2 + "px";
+ const existingBlock = blockDatabase.get(block3.id);
+ if (existingBlock === void 0) {
+ blockDatabase.set(block3.id, block3);
+ } else {
+ if (block3.type !== "na") {
+ existingBlock.type = block3.type;
+ }
+ if (block3.label !== block3.id) {
+ existingBlock.label = block3.label;
+ }
+ }
+ if (block3.children) {
+ populateBlockDatabase(block3.children, block3);
+ }
+ if (block3.type === "space") {
+ const w3 = block3.width ?? 1;
+ for (let j2 = 0; j2 < w3; j2++) {
+ const newBlock = clone_default2(block3);
+ newBlock.id = newBlock.id + "-" + j2;
+ blockDatabase.set(newBlock.id, newBlock);
+ children2.push(newBlock);
+ }
+ } else if (existingBlock === void 0) {
+ children2.push(block3);
+ }
+ }
+ }
+ parent4.children = children2;
+ }, "populateBlockDatabase");
+ blocks = [];
+ rootBlock = { id: "root", type: "composite", children: [], columns: -1 };
+ clear28 = /* @__PURE__ */ __name(() => {
+ log.debug("Clear called");
+ clear();
+ rootBlock = { id: "root", type: "composite", children: [], columns: -1 };
+ blockDatabase = /* @__PURE__ */ new Map([["root", rootBlock]]);
+ blocks = [];
+ classes5 = /* @__PURE__ */ new Map();
+ edgeList = [];
+ edgeCount3 = /* @__PURE__ */ new Map();
+ }, "clear");
+ __name(typeStr2Type, "typeStr2Type");
+ __name(edgeTypeStr2Type, "edgeTypeStr2Type");
+ __name(edgeStrToEdgeData, "edgeStrToEdgeData");
+ cnt3 = 0;
+ generateId3 = /* @__PURE__ */ __name(() => {
+ cnt3++;
+ return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt3;
+ }, "generateId");
+ setHierarchy = /* @__PURE__ */ __name((block3) => {
+ rootBlock.children = block3;
+ populateBlockDatabase(block3, rootBlock);
+ blocks = rootBlock.children;
+ }, "setHierarchy");
+ getColumns = /* @__PURE__ */ __name((blockId) => {
+ const block3 = blockDatabase.get(blockId);
+ if (!block3) {
+ return -1;
}
- for (var i3 = 0; i3 < r.BUFFER_COUNT; i3++) {
- canvas = data2.bufferCanvases[i3];
- canvas.width = canvasWidth;
- canvas.height = canvasHeight;
- canvas.style.width = width2 + "px";
- canvas.style.height = height2 + "px";
+ if (block3.columns) {
+ return block3.columns;
}
- r.textureMult = 1;
- if (pixelRatio <= 1) {
- canvas = data2.bufferCanvases[r.TEXTURE_BUFFER];
- r.textureMult = 2;
- canvas.width = canvasWidth * r.textureMult;
- canvas.height = canvasHeight * r.textureMult;
+ if (!block3.children) {
+ return -1;
}
- r.canvasWidth = canvasWidth;
- r.canvasHeight = canvasHeight;
- };
- CRp$4.renderTo = function(cxt, zoom, pan, pxRatio) {
- this.render({
- forcedContext: cxt,
- forcedZoom: zoom,
- forcedPan: pan,
- drawAllLayers: true,
- forcedPxRatio: pxRatio
- });
+ return block3.children.length;
+ }, "getColumns");
+ getBlocksFlat = /* @__PURE__ */ __name(() => {
+ return [...blockDatabase.values()];
+ }, "getBlocksFlat");
+ getBlocks = /* @__PURE__ */ __name(() => {
+ return blocks || [];
+ }, "getBlocks");
+ getEdges2 = /* @__PURE__ */ __name(() => {
+ return edgeList;
+ }, "getEdges");
+ getBlock = /* @__PURE__ */ __name((id27) => {
+ return blockDatabase.get(id27);
+ }, "getBlock");
+ setBlock = /* @__PURE__ */ __name((block3) => {
+ blockDatabase.set(block3.id, block3);
+ }, "setBlock");
+ getLogger2 = /* @__PURE__ */ __name(() => console, "getLogger");
+ getClasses6 = /* @__PURE__ */ __name(function() {
+ return classes5;
+ }, "getClasses");
+ db6 = {
+ getConfig: /* @__PURE__ */ __name(() => getConfig().block, "getConfig"),
+ typeStr2Type,
+ edgeTypeStr2Type,
+ edgeStrToEdgeData,
+ getLogger: getLogger2,
+ getBlocksFlat,
+ getBlocks,
+ getEdges: getEdges2,
+ setHierarchy,
+ getBlock,
+ setBlock,
+ getColumns,
+ getClasses: getClasses6,
+ clear: clear28,
+ generateId: generateId3
+ };
+ blockDB_default = db6;
+ }
+ });
+
+ // src/diagrams/block/styles.ts
+ var fade2, getStyles15, styles_default14;
+ var init_styles15 = __esm({
+ "src/diagrams/block/styles.ts"() {
+ "use strict";
+ init_dist();
+ fade2 = /* @__PURE__ */ __name((color2, opacity) => {
+ const channel2 = channel_default2;
+ const r2 = channel2(color2, "r");
+ const g2 = channel2(color2, "g");
+ const b2 = channel2(color2, "b");
+ return rgba_default(r2, g2, b2, opacity);
+ }, "fade");
+ getStyles15 = /* @__PURE__ */ __name((options3) => `.label {
+ font-family: ${options3.fontFamily};
+ color: ${options3.nodeTextColor || options3.textColor};
+ }
+ .cluster-label text {
+ fill: ${options3.titleColor};
+ }
+ .cluster-label span,p {
+ color: ${options3.titleColor};
+ }
+
+
+
+ .label text,span,p {
+ fill: ${options3.nodeTextColor || options3.textColor};
+ color: ${options3.nodeTextColor || options3.textColor};
+ }
+
+ .node rect,
+ .node circle,
+ .node ellipse,
+ .node polygon,
+ .node path {
+ fill: ${options3.mainBkg};
+ stroke: ${options3.nodeBorder};
+ stroke-width: 1px;
+ }
+ .flowchart-label text {
+ text-anchor: middle;
+ }
+ // .flowchart-label .text-outer-tspan {
+ // text-anchor: middle;
+ // }
+ // .flowchart-label .text-inner-tspan {
+ // text-anchor: start;
+ // }
+
+ .node .label {
+ text-align: center;
+ }
+ .node.clickable {
+ cursor: pointer;
+ }
+
+ .arrowheadPath {
+ fill: ${options3.arrowheadColor};
+ }
+
+ .edgePath .path {
+ stroke: ${options3.lineColor};
+ stroke-width: 2.0px;
+ }
+
+ .flowchart-link {
+ stroke: ${options3.lineColor};
+ fill: none;
+ }
+
+ .edgeLabel {
+ background-color: ${options3.edgeLabelBackground};
+ rect {
+ opacity: 0.5;
+ background-color: ${options3.edgeLabelBackground};
+ fill: ${options3.edgeLabelBackground};
+ }
+ text-align: center;
+ }
+
+ /* For html labels only */
+ .labelBkg {
+ background-color: ${fade2(options3.edgeLabelBackground, 0.5)};
+ // background-color:
+ }
+
+ .node .cluster {
+ // fill: ${fade2(options3.mainBkg, 0.5)};
+ fill: ${fade2(options3.clusterBkg, 0.5)};
+ stroke: ${fade2(options3.clusterBorder, 0.2)};
+ box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
+ stroke-width: 1px;
+ }
+
+ .cluster text {
+ fill: ${options3.titleColor};
+ }
+
+ .cluster span,p {
+ color: ${options3.titleColor};
+ }
+ /* .cluster div {
+ color: ${options3.titleColor};
+ } */
+
+ div.mermaidTooltip {
+ position: absolute;
+ text-align: center;
+ max-width: 200px;
+ padding: 2px;
+ font-family: ${options3.fontFamily};
+ font-size: 12px;
+ background: ${options3.tertiaryColor};
+ border: 1px solid ${options3.border2};
+ border-radius: 2px;
+ pointer-events: none;
+ z-index: 100;
+ }
+
+ .flowchartTitleText {
+ text-anchor: middle;
+ font-size: 18px;
+ fill: ${options3.textColor};
+ }
+`, "getStyles");
+ styles_default14 = getStyles15;
+ }
+ });
+
+ // src/diagrams/block/layout.ts
+ function calculateBlockPosition(columns, position5) {
+ if (columns === 0 || !Number.isInteger(columns)) {
+ throw new Error("Columns must be an integer !== 0.");
+ }
+ if (position5 < 0 || !Number.isInteger(position5)) {
+ throw new Error("Position must be a non-negative integer." + position5);
+ }
+ if (columns < 0) {
+ return { px: position5, py: 0 };
+ }
+ if (columns === 1) {
+ return { px: 0, py: position5 };
+ }
+ const px = position5 % columns;
+ const py = Math.floor(position5 / columns);
+ return { px, py };
+ }
+ function setBlockSizes(block3, db8, siblingWidth = 0, siblingHeight = 0) {
+ log.debug(
+ "setBlockSizes abc95 (start)",
+ block3.id,
+ block3?.size?.x,
+ "block width =",
+ block3?.size,
+ "sieblingWidth",
+ siblingWidth
+ );
+ if (!block3?.size?.width) {
+ block3.size = {
+ width: siblingWidth,
+ height: siblingHeight,
+ x: 0,
+ y: 0
};
- CRp$4.render = function(options2) {
- options2 = options2 || staticEmptyObject();
- var forcedContext = options2.forcedContext;
- var drawAllLayers = options2.drawAllLayers;
- var drawOnlyNodeLayer = options2.drawOnlyNodeLayer;
- var forcedZoom = options2.forcedZoom;
- var forcedPan = options2.forcedPan;
- var r = this;
- var pixelRatio = options2.forcedPxRatio === void 0 ? this.getPixelRatio() : options2.forcedPxRatio;
- var cy = r.cy;
- var data2 = r.data;
- var needDraw = data2.canvasNeedsRedraw;
- var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming);
- var motionBlur = options2.motionBlur !== void 0 ? options2.motionBlur : r.motionBlur;
- var mbPxRatio = r.motionBlurPxRatio;
- var hasCompoundNodes = cy.hasCompoundNodes();
- var inNodeDragGesture = r.hoverData.draggingEles;
- var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false;
- motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection;
- var motionBlurFadeEffect = motionBlur;
- if (!forcedContext) {
- if (r.prevPxRatio !== pixelRatio) {
- r.invalidateContainerClientCoordsCache();
- r.matchCanvasSize(r.container);
- r.redrawHint("eles", true);
- r.redrawHint("drag", true);
- }
- r.prevPxRatio = pixelRatio;
- }
- if (!forcedContext && r.motionBlurTimeout) {
- clearTimeout(r.motionBlurTimeout);
- }
- if (motionBlur) {
- if (r.mbFrames == null) {
- r.mbFrames = 0;
- }
- r.mbFrames++;
- if (r.mbFrames < 3) {
- motionBlurFadeEffect = false;
- }
- if (r.mbFrames > r.minMbLowQualFrames) {
- r.motionBlurPxRatio = r.mbPxRBlurry;
- }
- }
- if (r.clearingMotionBlur) {
- r.motionBlurPxRatio = 1;
- }
- if (r.textureDrawLastFrame && !textureDraw) {
- needDraw[r.NODE] = true;
- needDraw[r.SELECT_BOX] = true;
- }
- var style = cy.style();
- var zoom = cy.zoom();
- var effectiveZoom = forcedZoom !== void 0 ? forcedZoom : zoom;
- var pan = cy.pan();
- var effectivePan = {
- x: pan.x,
- y: pan.y
- };
- var vp = {
- zoom,
- pan: {
- x: pan.x,
- y: pan.y
- }
- };
- var prevVp = r.prevViewport;
- var viewportIsDiff = prevVp === void 0 || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;
- if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) {
- r.motionBlurPxRatio = 1;
- }
- if (forcedPan) {
- effectivePan = forcedPan;
- }
- effectiveZoom *= pixelRatio;
- effectivePan.x *= pixelRatio;
- effectivePan.y *= pixelRatio;
- var eles = r.getCachedZSortedEles();
- function mbclear(context2, x2, y2, w2, h) {
- var gco = context2.globalCompositeOperation;
- context2.globalCompositeOperation = "destination-out";
- r.colorFillStyle(context2, 255, 255, 255, r.motionBlurTransparency);
- context2.fillRect(x2, y2, w2, h);
- context2.globalCompositeOperation = gco;
+ }
+ let maxWidth = 0;
+ let maxHeight = 0;
+ if (block3.children?.length > 0) {
+ for (const child of block3.children) {
+ setBlockSizes(child, db8);
+ }
+ const childSize = getMaxChildSize(block3);
+ maxWidth = childSize.width;
+ maxHeight = childSize.height;
+ log.debug("setBlockSizes abc95 maxWidth of", block3.id, ":s children is ", maxWidth, maxHeight);
+ for (const child of block3.children) {
+ if (child.size) {
+ log.debug(
+ `abc95 Setting size of children of ${block3.id} id=${child.id} ${maxWidth} ${maxHeight} ${JSON.stringify(child.size)}`
+ );
+ child.size.width = maxWidth * (child.widthInColumns ?? 1) + padding2 * ((child.widthInColumns ?? 1) - 1);
+ child.size.height = maxHeight;
+ child.size.x = 0;
+ child.size.y = 0;
+ log.debug(
+ `abc95 updating size of ${block3.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}`
+ );
}
- function setContextTransform(context2, clear3) {
- var ePan, eZoom, w2, h;
- if (!r.clearingMotionBlur && (context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) {
- ePan = {
- x: pan.x * mbPxRatio,
- y: pan.y * mbPxRatio
- };
- eZoom = zoom * mbPxRatio;
- w2 = r.canvasWidth * mbPxRatio;
- h = r.canvasHeight * mbPxRatio;
- } else {
- ePan = effectivePan;
- eZoom = effectiveZoom;
- w2 = r.canvasWidth;
- h = r.canvasHeight;
- }
- context2.setTransform(1, 0, 0, 1, 0, 0);
- if (clear3 === "motionBlur") {
- mbclear(context2, 0, 0, w2, h);
- } else if (!forcedContext && (clear3 === void 0 || clear3)) {
- context2.clearRect(0, 0, w2, h);
- }
- if (!drawAllLayers) {
- context2.translate(ePan.x, ePan.y);
- context2.scale(eZoom, eZoom);
- }
- if (forcedPan) {
- context2.translate(forcedPan.x, forcedPan.y);
- }
- if (forcedZoom) {
- context2.scale(forcedZoom, forcedZoom);
+ }
+ for (const child of block3.children) {
+ setBlockSizes(child, db8, maxWidth, maxHeight);
+ }
+ const columns = block3.columns ?? -1;
+ let numItems = 0;
+ for (const child of block3.children) {
+ numItems += child.widthInColumns ?? 1;
+ }
+ let xSize = block3.children.length;
+ if (columns > 0 && columns < numItems) {
+ xSize = columns;
+ }
+ const ySize = Math.ceil(numItems / xSize);
+ let width3 = xSize * (maxWidth + padding2) + padding2;
+ let height2 = ySize * (maxHeight + padding2) + padding2;
+ if (width3 < siblingWidth) {
+ log.debug(
+ `Detected to small siebling: abc95 ${block3.id} sieblingWidth ${siblingWidth} sieblingHeight ${siblingHeight} width ${width3}`
+ );
+ width3 = siblingWidth;
+ height2 = siblingHeight;
+ const childWidth = (siblingWidth - xSize * padding2 - padding2) / xSize;
+ const childHeight = (siblingHeight - ySize * padding2 - padding2) / ySize;
+ log.debug("Size indata abc88", block3.id, "childWidth", childWidth, "maxWidth", maxWidth);
+ log.debug("Size indata abc88", block3.id, "childHeight", childHeight, "maxHeight", maxHeight);
+ log.debug("Size indata abc88 xSize", xSize, "padding", padding2);
+ for (const child of block3.children) {
+ if (child.size) {
+ child.size.width = childWidth;
+ child.size.height = childHeight;
+ child.size.x = 0;
+ child.size.y = 0;
+ }
+ }
+ }
+ log.debug(
+ `abc95 (finale calc) ${block3.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block3.children.length} width=${Math.max(width3, block3.size?.width || 0)}`
+ );
+ if (width3 < (block3?.size?.width || 0)) {
+ width3 = block3?.size?.width || 0;
+ const num = columns > 0 ? Math.min(block3.children.length, columns) : block3.children.length;
+ if (num > 0) {
+ const childWidth = (width3 - num * padding2 - padding2) / num;
+ log.debug("abc95 (growing to fit) width", block3.id, width3, block3.size?.width, childWidth);
+ for (const child of block3.children) {
+ if (child.size) {
+ child.size.width = childWidth;
+ }
}
}
- if (!textureDraw) {
- r.textureDrawLastFrame = false;
- }
- if (textureDraw) {
- r.textureDrawLastFrame = true;
- if (!r.textureCache) {
- r.textureCache = {};
- r.textureCache.bb = cy.mutableElements().boundingBox();
- r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER];
- var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER];
- cxt.setTransform(1, 0, 0, 1, 0, 0);
- cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult);
- r.render({
- forcedContext: cxt,
- drawOnlyNodeLayer: true,
- forcedPxRatio: pixelRatio * r.textureMult
- });
- var vp = r.textureCache.viewport = {
- zoom: cy.zoom(),
- pan: cy.pan(),
- width: r.canvasWidth,
- height: r.canvasHeight
- };
- vp.mpan = {
- x: (0 - vp.pan.x) / vp.zoom,
- y: (0 - vp.pan.y) / vp.zoom
- };
- }
- needDraw[r.DRAG] = false;
- needDraw[r.NODE] = false;
- var context = data2.contexts[r.NODE];
- var texture = r.textureCache.texture;
- var vp = r.textureCache.viewport;
- context.setTransform(1, 0, 0, 1, 0, 0);
- if (motionBlur) {
- mbclear(context, 0, 0, vp.width, vp.height);
- } else {
- context.clearRect(0, 0, vp.width, vp.height);
- }
- var outsideBgColor = style.core("outside-texture-bg-color").value;
- var outsideBgOpacity = style.core("outside-texture-bg-opacity").value;
- r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);
- context.fillRect(0, 0, vp.width, vp.height);
- var zoom = cy.zoom();
- setContextTransform(context, false);
- context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
- context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
- } else if (r.textureOnViewport && !forcedContext) {
- r.textureCache = null;
+ }
+ block3.size = {
+ width: width3,
+ height: height2,
+ x: 0,
+ y: 0
+ };
+ }
+ log.debug(
+ "setBlockSizes abc94 (done)",
+ block3.id,
+ block3?.size?.x,
+ block3?.size?.width,
+ block3?.size?.y,
+ block3?.size?.height
+ );
+ }
+ function layoutBlocks(block3, db8) {
+ log.debug(
+ `abc85 layout blocks (=>layoutBlocks) ${block3.id} x: ${block3?.size?.x} y: ${block3?.size?.y} width: ${block3?.size?.width}`
+ );
+ const columns = block3.columns ?? -1;
+ log.debug("layoutBlocks columns abc95", block3.id, "=>", columns, block3);
+ if (block3.children && // find max width of children
+ block3.children.length > 0) {
+ const width3 = block3?.children[0]?.size?.width ?? 0;
+ const widthOfChildren = block3.children.length * width3 + (block3.children.length - 1) * padding2;
+ log.debug("widthOfChildren 88", widthOfChildren, "posX");
+ let columnPos = 0;
+ log.debug("abc91 block?.size?.x", block3.id, block3?.size?.x);
+ let startingPosX = block3?.size?.x ? block3?.size?.x + (-block3?.size?.width / 2 || 0) : -padding2;
+ let rowPos = 0;
+ for (const child of block3.children) {
+ const parent4 = block3;
+ if (!child.size) {
+ continue;
}
- var extent = cy.extent();
- var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated();
- var hideEdges = r.hideEdgesOnViewport && vpManip;
- var needMbClear = [];
- needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur;
- if (needMbClear[r.NODE]) {
- r.clearedForMotionBlur[r.NODE] = true;
- }
- needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur;
- if (needMbClear[r.DRAG]) {
- r.clearedForMotionBlur[r.DRAG] = true;
- }
- if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) {
- var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1;
- var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data2.contexts[r.NODE]);
- var clear2 = motionBlur && !useBuffer ? "motionBlur" : void 0;
- setContextTransform(context, clear2);
- if (hideEdges) {
- r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent);
- } else {
- r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent);
- }
- if (r.debug) {
- r.drawDebugPoints(context, eles.nondrag);
- }
- if (!drawAllLayers && !motionBlur) {
- needDraw[r.NODE] = false;
- }
+ const { width: width4, height: height2 } = child.size;
+ const { px, py } = calculateBlockPosition(columns, columnPos);
+ if (py != rowPos) {
+ rowPos = py;
+ startingPosX = block3?.size?.x ? block3?.size?.x + (-block3?.size?.width / 2 || 0) : -padding2;
+ log.debug("New row in layout for block", block3.id, " and child ", child.id, rowPos);
}
- if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) {
- var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1;
- var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data2.contexts[r.DRAG]);
- setContextTransform(context, motionBlur && !useBuffer ? "motionBlur" : void 0);
- if (hideEdges) {
- r.drawCachedNodes(context, eles.drag, pixelRatio, extent);
- } else {
- r.drawCachedElements(context, eles.drag, pixelRatio, extent);
- }
- if (r.debug) {
- r.drawDebugPoints(context, eles.drag);
- }
- if (!drawAllLayers && !motionBlur) {
- needDraw[r.DRAG] = false;
- }
+ log.debug(
+ `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${parent4?.size?.x},${parent4?.size?.y}) parent: ${parent4.id} width: ${width4}${padding2}`
+ );
+ if (parent4.size) {
+ const halfWidth = width4 / 2;
+ child.size.x = startingPosX + padding2 + halfWidth;
+ log.debug(
+ `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding2} width=${width4} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width4 * (child?.widthInColumns ?? 1) / 2}`
+ );
+ startingPosX = child.size.x + halfWidth;
+ child.size.y = parent4.size.y - parent4.size.height / 2 + py * (height2 + padding2) + height2 / 2 + padding2;
+ log.debug(
+ `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding2}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width4 * (child?.widthInColumns ?? 1) / 2}`
+ );
}
- if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) {
- var context = forcedContext || data2.contexts[r.SELECT_BOX];
- setContextTransform(context);
- if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) {
- var zoom = r.cy.zoom();
- var borderWidth = style.core("selection-box-border-width").value / zoom;
- context.lineWidth = borderWidth;
- context.fillStyle = "rgba(" + style.core("selection-box-color").value[0] + "," + style.core("selection-box-color").value[1] + "," + style.core("selection-box-color").value[2] + "," + style.core("selection-box-opacity").value + ")";
- context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);
- if (borderWidth > 0) {
- context.strokeStyle = "rgba(" + style.core("selection-box-border-color").value[0] + "," + style.core("selection-box-border-color").value[1] + "," + style.core("selection-box-border-color").value[2] + "," + style.core("selection-box-opacity").value + ")";
- context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);
- }
- }
- if (data2.bgActivePosistion && !r.hoverData.selecting) {
- var zoom = r.cy.zoom();
- var pos = data2.bgActivePosistion;
- context.fillStyle = "rgba(" + style.core("active-bg-color").value[0] + "," + style.core("active-bg-color").value[1] + "," + style.core("active-bg-color").value[2] + "," + style.core("active-bg-opacity").value + ")";
- context.beginPath();
- context.arc(pos.x, pos.y, style.core("active-bg-size").pfValue / zoom, 0, 2 * Math.PI);
- context.fill();
- }
- var timeToRender = r.lastRedrawTime;
- if (r.showFps && timeToRender) {
- timeToRender = Math.round(timeToRender);
- var fps = Math.round(1e3 / timeToRender);
- context.setTransform(1, 0, 0, 1, 0, 0);
- context.fillStyle = "rgba(255, 0, 0, 0.75)";
- context.strokeStyle = "rgba(255, 0, 0, 0.75)";
- context.lineWidth = 1;
- context.fillText("1 frame = " + timeToRender + " ms = " + fps + " fps", 0, 20);
- var maxFps = 60;
- context.strokeRect(0, 30, 250, 20);
- context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20);
- }
- if (!drawAllLayers) {
- needDraw[r.SELECT_BOX] = false;
- }
+ if (child.children) {
+ layoutBlocks(child, db8);
}
- if (motionBlur && mbPxRatio !== 1) {
- var cxtNode = data2.contexts[r.NODE];
- var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE];
- var cxtDrag = data2.contexts[r.DRAG];
- var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG];
- var drawMotionBlur = function drawMotionBlur2(cxt2, txt, needClear) {
- cxt2.setTransform(1, 0, 0, 1, 0, 0);
- if (needClear || !motionBlurFadeEffect) {
- cxt2.clearRect(0, 0, r.canvasWidth, r.canvasHeight);
- } else {
- mbclear(cxt2, 0, 0, r.canvasWidth, r.canvasHeight);
- }
- var pxr = mbPxRatio;
- cxt2.drawImage(
- txt,
- // img
- 0,
- 0,
- // sx, sy
- r.canvasWidth * pxr,
- r.canvasHeight * pxr,
- // sw, sh
- 0,
- 0,
- // x, y
- r.canvasWidth,
- r.canvasHeight
- // w, h
- );
- };
- if (needDraw[r.NODE] || needMbClear[r.NODE]) {
- drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]);
- needDraw[r.NODE] = false;
+ columnPos += child?.widthInColumns ?? 1;
+ log.debug("abc88 columnsPos", child, columnPos);
+ }
+ }
+ log.debug(
+ `layout blocks (<==layoutBlocks) ${block3.id} x: ${block3?.size?.x} y: ${block3?.size?.y} width: ${block3?.size?.width}`
+ );
+ }
+ function findBounds(block3, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) {
+ if (block3.size && block3.id !== "root") {
+ const { x: x5, y: y5, width: width3, height: height2 } = block3.size;
+ if (x5 - width3 / 2 < minX) {
+ minX = x5 - width3 / 2;
+ }
+ if (y5 - height2 / 2 < minY) {
+ minY = y5 - height2 / 2;
+ }
+ if (x5 + width3 / 2 > maxX) {
+ maxX = x5 + width3 / 2;
+ }
+ if (y5 + height2 / 2 > maxY) {
+ maxY = y5 + height2 / 2;
+ }
+ }
+ if (block3.children) {
+ for (const child of block3.children) {
+ ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY }));
+ }
+ }
+ return { minX, minY, maxX, maxY };
+ }
+ function layout5(db8) {
+ const root4 = db8.getBlock("root");
+ if (!root4) {
+ return;
+ }
+ setBlockSizes(root4, db8, 0, 0);
+ layoutBlocks(root4, db8);
+ log.debug("getBlocks", JSON.stringify(root4, null, 2));
+ const { minX, minY, maxX, maxY } = findBounds(root4);
+ const height2 = maxY - minY;
+ const width3 = maxX - minX;
+ return { x: minX, y: minY, width: width3, height: height2 };
+ }
+ var padding2, getMaxChildSize;
+ var init_layout2 = __esm({
+ "src/diagrams/block/layout.ts"() {
+ "use strict";
+ init_logger();
+ init_diagramAPI();
+ padding2 = getConfig2()?.block?.padding ?? 8;
+ __name(calculateBlockPosition, "calculateBlockPosition");
+ getMaxChildSize = /* @__PURE__ */ __name((block3) => {
+ let maxWidth = 0;
+ let maxHeight = 0;
+ for (const child of block3.children) {
+ const { width: width3, height: height2, x: x5, y: y5 } = child.size ?? { width: 0, height: 0, x: 0, y: 0 };
+ log.debug(
+ "getMaxChildSize abc95 child:",
+ child.id,
+ "width:",
+ width3,
+ "height:",
+ height2,
+ "x:",
+ x5,
+ "y:",
+ y5,
+ child.type
+ );
+ if (child.type === "space") {
+ continue;
}
- if (needDraw[r.DRAG] || needMbClear[r.DRAG]) {
- drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]);
- needDraw[r.DRAG] = false;
+ if (width3 > maxWidth) {
+ maxWidth = width3 / (block3.widthInColumns ?? 1);
}
- }
- r.prevViewport = vp;
- if (r.clearingMotionBlur) {
- r.clearingMotionBlur = false;
- r.motionBlurCleared = true;
- r.motionBlur = true;
- }
- if (motionBlur) {
- r.motionBlurTimeout = setTimeout(function() {
- r.motionBlurTimeout = null;
- r.clearedForMotionBlur[r.NODE] = false;
- r.clearedForMotionBlur[r.DRAG] = false;
- r.motionBlur = false;
- r.clearingMotionBlur = !textureDraw;
- r.mbFrames = 0;
- needDraw[r.NODE] = true;
- needDraw[r.DRAG] = true;
- r.redraw();
- }, motionBlurDelay);
- }
- if (!forcedContext) {
- cy.emit("render");
- }
- };
- var CRp$3 = {};
- CRp$3.drawPolygonPath = function(context, x2, y2, width2, height2, points) {
- var halfW = width2 / 2;
- var halfH = height2 / 2;
- if (context.beginPath) {
- context.beginPath();
- }
- context.moveTo(x2 + halfW * points[0], y2 + halfH * points[1]);
- for (var i3 = 1; i3 < points.length / 2; i3++) {
- context.lineTo(x2 + halfW * points[i3 * 2], y2 + halfH * points[i3 * 2 + 1]);
- }
- context.closePath();
- };
- CRp$3.drawRoundPolygonPath = function(context, x2, y2, width2, height2, points) {
- var halfW = width2 / 2;
- var halfH = height2 / 2;
- var cornerRadius = getRoundPolygonRadius(width2, height2);
- if (context.beginPath) {
- context.beginPath();
- }
- for (var _i = 0; _i < points.length / 4; _i++) {
- var sourceUv = void 0, destUv = void 0;
- if (_i === 0) {
- sourceUv = points.length - 2;
- } else {
- sourceUv = _i * 4 - 2;
- }
- destUv = _i * 4 + 2;
- var px = x2 + halfW * points[_i * 4];
- var py = y2 + halfH * points[_i * 4 + 1];
- var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1];
- var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
- var cp0x = px - offset * points[sourceUv];
- var cp0y = py - offset * points[sourceUv + 1];
- var cp1x = px + offset * points[destUv];
- var cp1y = py + offset * points[destUv + 1];
- if (_i === 0) {
- context.moveTo(cp0x, cp0y);
- } else {
- context.lineTo(cp0x, cp0y);
+ if (height2 > maxHeight) {
+ maxHeight = height2;
}
- context.arcTo(px, py, cp1x, cp1y, cornerRadius);
- }
- context.closePath();
- };
- CRp$3.drawRoundRectanglePath = function(context, x2, y2, width2, height2) {
- var halfWidth = width2 / 2;
- var halfHeight = height2 / 2;
- var cornerRadius = getRoundRectangleRadius(width2, height2);
- if (context.beginPath) {
- context.beginPath();
- }
- context.moveTo(x2, y2 - halfHeight);
- context.arcTo(x2 + halfWidth, y2 - halfHeight, x2 + halfWidth, y2, cornerRadius);
- context.arcTo(x2 + halfWidth, y2 + halfHeight, x2, y2 + halfHeight, cornerRadius);
- context.arcTo(x2 - halfWidth, y2 + halfHeight, x2 - halfWidth, y2, cornerRadius);
- context.arcTo(x2 - halfWidth, y2 - halfHeight, x2, y2 - halfHeight, cornerRadius);
- context.lineTo(x2, y2 - halfHeight);
- context.closePath();
- };
- CRp$3.drawBottomRoundRectanglePath = function(context, x2, y2, width2, height2) {
- var halfWidth = width2 / 2;
- var halfHeight = height2 / 2;
- var cornerRadius = getRoundRectangleRadius(width2, height2);
- if (context.beginPath) {
- context.beginPath();
- }
- context.moveTo(x2, y2 - halfHeight);
- context.lineTo(x2 + halfWidth, y2 - halfHeight);
- context.lineTo(x2 + halfWidth, y2);
- context.arcTo(x2 + halfWidth, y2 + halfHeight, x2, y2 + halfHeight, cornerRadius);
- context.arcTo(x2 - halfWidth, y2 + halfHeight, x2 - halfWidth, y2, cornerRadius);
- context.lineTo(x2 - halfWidth, y2 - halfHeight);
- context.lineTo(x2, y2 - halfHeight);
- context.closePath();
- };
- CRp$3.drawCutRectanglePath = function(context, x2, y2, width2, height2) {
- var halfWidth = width2 / 2;
- var halfHeight = height2 / 2;
- var cornerLength = getCutRectangleCornerLength();
- if (context.beginPath) {
- context.beginPath();
- }
- context.moveTo(x2 - halfWidth + cornerLength, y2 - halfHeight);
- context.lineTo(x2 + halfWidth - cornerLength, y2 - halfHeight);
- context.lineTo(x2 + halfWidth, y2 - halfHeight + cornerLength);
- context.lineTo(x2 + halfWidth, y2 + halfHeight - cornerLength);
- context.lineTo(x2 + halfWidth - cornerLength, y2 + halfHeight);
- context.lineTo(x2 - halfWidth + cornerLength, y2 + halfHeight);
- context.lineTo(x2 - halfWidth, y2 + halfHeight - cornerLength);
- context.lineTo(x2 - halfWidth, y2 - halfHeight + cornerLength);
- context.closePath();
- };
- CRp$3.drawBarrelPath = function(context, x2, y2, width2, height2) {
- var halfWidth = width2 / 2;
- var halfHeight = height2 / 2;
- var xBegin = x2 - halfWidth;
- var xEnd = x2 + halfWidth;
- var yBegin = y2 - halfHeight;
- var yEnd = y2 + halfHeight;
- var barrelCurveConstants = getBarrelCurveConstants(width2, height2);
- var wOffset = barrelCurveConstants.widthOffset;
- var hOffset = barrelCurveConstants.heightOffset;
- var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset;
- if (context.beginPath) {
- context.beginPath();
}
- context.moveTo(xBegin, yBegin + hOffset);
- context.lineTo(xBegin, yEnd - hOffset);
- context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd);
- context.lineTo(xEnd - wOffset, yEnd);
- context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset);
- context.lineTo(xEnd, yBegin + hOffset);
- context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin);
- context.lineTo(xBegin + wOffset, yBegin);
- context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset);
- context.closePath();
- };
- var sin0 = Math.sin(0);
- var cos0 = Math.cos(0);
- var sin2 = {};
- var cos2 = {};
- var ellipseStepSize = Math.PI / 40;
- for (var i2 = 0 * Math.PI; i2 < 2 * Math.PI; i2 += ellipseStepSize) {
- sin2[i2] = Math.sin(i2);
- cos2[i2] = Math.cos(i2);
+ return { width: maxWidth, height: maxHeight };
+ }, "getMaxChildSize");
+ __name(setBlockSizes, "setBlockSizes");
+ __name(layoutBlocks, "layoutBlocks");
+ __name(findBounds, "findBounds");
+ __name(layout5, "layout");
+ }
+ });
+
+ // src/diagrams/block/renderHelpers.ts
+ function getNodeFromBlock(block3, db8, positioned = false) {
+ const vertex = block3;
+ let classStr = "default";
+ if ((vertex?.classes?.length || 0) > 0) {
+ classStr = (vertex?.classes ?? []).join(" ");
+ }
+ classStr = classStr + " flowchart-label";
+ let radius2 = 0;
+ let shape = "";
+ let padding3;
+ switch (vertex.type) {
+ case "round":
+ radius2 = 5;
+ shape = "rect";
+ break;
+ case "composite":
+ radius2 = 0;
+ shape = "composite";
+ padding3 = 0;
+ break;
+ case "square":
+ shape = "rect";
+ break;
+ case "diamond":
+ shape = "question";
+ break;
+ case "hexagon":
+ shape = "hexagon";
+ break;
+ case "block_arrow":
+ shape = "block_arrow";
+ break;
+ case "odd":
+ shape = "rect_left_inv_arrow";
+ break;
+ case "lean_right":
+ shape = "lean_right";
+ break;
+ case "lean_left":
+ shape = "lean_left";
+ break;
+ case "trapezoid":
+ shape = "trapezoid";
+ break;
+ case "inv_trapezoid":
+ shape = "inv_trapezoid";
+ break;
+ case "rect_left_inv_arrow":
+ shape = "rect_left_inv_arrow";
+ break;
+ case "circle":
+ shape = "circle";
+ break;
+ case "ellipse":
+ shape = "ellipse";
+ break;
+ case "stadium":
+ shape = "stadium";
+ break;
+ case "subroutine":
+ shape = "subroutine";
+ break;
+ case "cylinder":
+ shape = "cylinder";
+ break;
+ case "group":
+ shape = "rect";
+ break;
+ case "doublecircle":
+ shape = "doublecircle";
+ break;
+ default:
+ shape = "rect";
+ }
+ const styles3 = getStylesFromArray(vertex?.styles ?? []);
+ const vertexText = vertex.label;
+ const bounds4 = vertex.size ?? { width: 0, height: 0, x: 0, y: 0 };
+ const node2 = {
+ labelStyle: styles3.labelStyle,
+ shape,
+ labelText: vertexText,
+ rx: radius2,
+ ry: radius2,
+ class: classStr,
+ style: styles3.style,
+ id: vertex.id,
+ directions: vertex.directions,
+ width: bounds4.width,
+ height: bounds4.height,
+ x: bounds4.x,
+ y: bounds4.y,
+ positioned,
+ intersect: void 0,
+ type: vertex.type,
+ padding: padding3 ?? getConfig()?.block?.padding ?? 0
+ };
+ return node2;
+ }
+ async function calculateBlockSize(elem, block3, db8) {
+ const node2 = getNodeFromBlock(block3, db8, false);
+ if (node2.type === "group") {
+ return;
+ }
+ const nodeEl = await insertNode(elem, node2);
+ const boundingBox3 = nodeEl.node().getBBox();
+ const obj = db8.getBlock(node2.id);
+ obj.size = { width: boundingBox3.width, height: boundingBox3.height, x: 0, y: 0, node: nodeEl };
+ db8.setBlock(obj);
+ nodeEl.remove();
+ }
+ async function insertBlockPositioned(elem, block3, db8) {
+ const node2 = getNodeFromBlock(block3, db8, true);
+ const obj = db8.getBlock(node2.id);
+ if (obj.type !== "space") {
+ await insertNode(elem, node2);
+ block3.intersect = node2?.intersect;
+ positionNode(node2);
+ }
+ }
+ async function performOperations(elem, blocks2, db8, operation) {
+ for (const block3 of blocks2) {
+ await operation(elem, block3, db8);
+ if (block3.children) {
+ await performOperations(elem, block3.children, db8, operation);
+ }
+ }
+ }
+ async function calculateBlockSizes(elem, blocks2, db8) {
+ await performOperations(elem, blocks2, db8, calculateBlockSize);
+ }
+ async function insertBlocks(elem, blocks2, db8) {
+ await performOperations(elem, blocks2, db8, insertBlockPositioned);
+ }
+ async function insertEdges(elem, edges5, blocks2, db8, id27) {
+ const g2 = new Graph({
+ multigraph: true,
+ compound: true
+ });
+ g2.setGraph({
+ rankdir: "TB",
+ nodesep: 10,
+ ranksep: 10,
+ marginx: 8,
+ marginy: 8
+ });
+ for (const block3 of blocks2) {
+ if (block3.size) {
+ g2.setNode(block3.id, {
+ width: block3.size.width,
+ height: block3.size.height,
+ intersect: block3.intersect
+ });
}
- CRp$3.drawEllipsePath = function(context, centerX, centerY, width2, height2) {
- if (context.beginPath) {
- context.beginPath();
- }
- if (context.ellipse) {
- context.ellipse(centerX, centerY, width2 / 2, height2 / 2, 0, 0, 2 * Math.PI);
- } else {
- var xPos, yPos;
- var rw = width2 / 2;
- var rh = height2 / 2;
- for (var i3 = 0 * Math.PI; i3 < 2 * Math.PI; i3 += ellipseStepSize) {
- xPos = centerX - rw * sin2[i3] * sin0 + rw * cos2[i3] * cos0;
- yPos = centerY + rh * cos2[i3] * sin0 + rh * sin2[i3] * cos0;
- if (i3 === 0) {
- context.moveTo(xPos, yPos);
- } else {
- context.lineTo(xPos, yPos);
- }
+ }
+ for (const edge of edges5) {
+ if (edge.start && edge.end) {
+ const startBlock = db8.getBlock(edge.start);
+ const endBlock = db8.getBlock(edge.end);
+ if (startBlock?.size && endBlock?.size) {
+ const start3 = startBlock.size;
+ const end2 = endBlock.size;
+ const points = [
+ { x: start3.x, y: start3.y },
+ { x: start3.x + (end2.x - start3.x) / 2, y: start3.y + (end2.y - start3.y) / 2 },
+ { x: end2.x, y: end2.y }
+ ];
+ insertEdge2(
+ elem,
+ { v: edge.start, w: edge.end, name: edge.id },
+ {
+ ...edge,
+ arrowTypeEnd: edge.arrowTypeEnd,
+ arrowTypeStart: edge.arrowTypeStart,
+ points,
+ classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"
+ },
+ void 0,
+ "block",
+ g2,
+ id27
+ );
+ if (edge.label) {
+ await insertEdgeLabel2(elem, {
+ ...edge,
+ label: edge.label,
+ labelStyle: "stroke: #333; stroke-width: 1.5px;fill:none;",
+ arrowTypeEnd: edge.arrowTypeEnd,
+ arrowTypeStart: edge.arrowTypeStart,
+ points,
+ classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"
+ });
+ positionEdgeLabel2(
+ { ...edge, x: points[1].x, y: points[1].y },
+ {
+ originalPath: points
+ }
+ );
}
}
- context.closePath();
+ }
+ }
+ }
+ var init_renderHelpers = __esm({
+ "src/diagrams/block/renderHelpers.ts"() {
+ "use strict";
+ init_graphlib();
+ init_config();
+ init_edges2();
+ init_nodes2();
+ init_utils2();
+ __name(getNodeFromBlock, "getNodeFromBlock");
+ __name(calculateBlockSize, "calculateBlockSize");
+ __name(insertBlockPositioned, "insertBlockPositioned");
+ __name(performOperations, "performOperations");
+ __name(calculateBlockSizes, "calculateBlockSizes");
+ __name(insertBlocks, "insertBlocks");
+ __name(insertEdges, "insertEdges");
+ }
+ });
+
+ // src/diagrams/block/blockRenderer.ts
+ var getClasses7, draw22, blockRenderer_default;
+ var init_blockRenderer = __esm({
+ "src/diagrams/block/blockRenderer.ts"() {
+ "use strict";
+ init_src32();
+ init_config();
+ init_markers2();
+ init_logger();
+ init_setupGraphViewbox();
+ init_layout2();
+ init_renderHelpers();
+ getClasses7 = /* @__PURE__ */ __name(function(text2, diagObj) {
+ return diagObj.db.getClasses();
+ }, "getClasses");
+ draw22 = /* @__PURE__ */ __name(async function(text2, id27, _version, diagObj) {
+ const { securityLevel, block: conf8 } = getConfig();
+ const db8 = diagObj.db;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select_default2("#i" + id27);
+ }
+ const root4 = securityLevel === "sandbox" ? select_default2(sandboxElement.nodes()[0].contentDocument.body) : select_default2("body");
+ const svg = securityLevel === "sandbox" ? root4.select(`[id="${id27}"]`) : select_default2(`[id="${id27}"]`);
+ const markers3 = ["point", "circle", "cross"];
+ markers_default2(svg, markers3, diagObj.type, id27);
+ const bl = db8.getBlocks();
+ const blArr = db8.getBlocksFlat();
+ const edges5 = db8.getEdges();
+ const nodes6 = svg.insert("g").attr("class", "block");
+ await calculateBlockSizes(nodes6, bl, db8);
+ const bounds4 = layout5(db8);
+ await insertBlocks(nodes6, bl, db8);
+ await insertEdges(nodes6, edges5, blArr, db8, id27);
+ if (bounds4) {
+ const bounds22 = bounds4;
+ const magicFactor = Math.max(1, Math.round(0.125 * (bounds22.width / bounds22.height)));
+ const height2 = bounds22.height + magicFactor + 10;
+ const width3 = bounds22.width + 10;
+ const { useMaxWidth } = conf8;
+ configureSvgSize(svg, height2, width3, !!useMaxWidth);
+ log.debug("Here Bounds", bounds4, bounds22);
+ svg.attr(
+ "viewBox",
+ `${bounds22.x - 5} ${bounds22.y - 5} ${bounds22.width + 10} ${bounds22.height + 10}`
+ );
+ }
+ }, "draw");
+ blockRenderer_default = {
+ draw: draw22,
+ getClasses: getClasses7
};
- var CRp$2 = {};
- CRp$2.createBuffer = function(w2, h) {
- var buffer = document.createElement("canvas");
- buffer.width = w2;
- buffer.height = h;
- return [buffer, buffer.getContext("2d")];
+ }
+ });
+
+ // src/diagrams/block/blockDiagram.ts
+ var blockDiagram_exports = {};
+ __export(blockDiagram_exports, {
+ diagram: () => diagram22
+ });
+ var diagram22;
+ var init_blockDiagram = __esm({
+ "src/diagrams/block/blockDiagram.ts"() {
+ "use strict";
+ init_block();
+ init_blockDB();
+ init_styles15();
+ init_blockRenderer();
+ diagram22 = {
+ parser: block_default,
+ db: blockDB_default,
+ renderer: blockRenderer_default,
+ styles: styles_default14
};
- CRp$2.bufferCanvasImage = function(options2) {
- var cy = this.cy;
- var eles = cy.mutableElements();
- var bb = eles.boundingBox();
- var ctrRect = this.findContainerClientCoords();
- var width2 = options2.full ? Math.ceil(bb.w) : ctrRect[2];
- var height2 = options2.full ? Math.ceil(bb.h) : ctrRect[3];
- var specdMaxDims = number$12(options2.maxWidth) || number$12(options2.maxHeight);
- var pxRatio = this.getPixelRatio();
- var scale = 1;
- if (options2.scale !== void 0) {
- width2 *= options2.scale;
- height2 *= options2.scale;
- scale = options2.scale;
- } else if (specdMaxDims) {
- var maxScaleW = Infinity;
- var maxScaleH = Infinity;
- if (number$12(options2.maxWidth)) {
- maxScaleW = scale * options2.maxWidth / width2;
+ }
+ });
+
+ // src/diagrams/architecture/architectureTypes.ts
+ var ArchitectureDirectionName, ArchitectureDirectionArrow, ArchitectureDirectionArrowShift, getOppositeArchitectureDirection, isArchitectureDirection, isArchitectureDirectionX, isArchitectureDirectionY, isArchitectureDirectionXY, isArchitecturePairXY, isValidArchitectureDirectionPair, getArchitectureDirectionPair, shiftPositionByArchitectureDirectionPair, getArchitectureDirectionXYFactors, isArchitectureService, isArchitectureJunction, edgeData, nodeData;
+ var init_architectureTypes = __esm({
+ "src/diagrams/architecture/architectureTypes.ts"() {
+ "use strict";
+ ArchitectureDirectionName = {
+ L: "left",
+ R: "right",
+ T: "top",
+ B: "bottom"
+ };
+ ArchitectureDirectionArrow = {
+ L: /* @__PURE__ */ __name((scale) => `${scale},${scale / 2} 0,${scale} 0,0`, "L"),
+ R: /* @__PURE__ */ __name((scale) => `0,${scale / 2} ${scale},0 ${scale},${scale}`, "R"),
+ T: /* @__PURE__ */ __name((scale) => `0,0 ${scale},0 ${scale / 2},${scale}`, "T"),
+ B: /* @__PURE__ */ __name((scale) => `${scale / 2},0 ${scale},${scale} 0,${scale}`, "B")
+ };
+ ArchitectureDirectionArrowShift = {
+ L: /* @__PURE__ */ __name((orig, arrowSize) => orig - arrowSize + 2, "L"),
+ R: /* @__PURE__ */ __name((orig, _arrowSize) => orig - 2, "R"),
+ T: /* @__PURE__ */ __name((orig, arrowSize) => orig - arrowSize + 2, "T"),
+ B: /* @__PURE__ */ __name((orig, _arrowSize) => orig - 2, "B")
+ };
+ getOppositeArchitectureDirection = /* @__PURE__ */ __name(function(x5) {
+ if (isArchitectureDirectionX(x5)) {
+ return x5 === "L" ? "R" : "L";
+ } else {
+ return x5 === "T" ? "B" : "T";
+ }
+ }, "getOppositeArchitectureDirection");
+ isArchitectureDirection = /* @__PURE__ */ __name(function(x5) {
+ const temp = x5;
+ return temp === "L" || temp === "R" || temp === "T" || temp === "B";
+ }, "isArchitectureDirection");
+ isArchitectureDirectionX = /* @__PURE__ */ __name(function(x5) {
+ const temp = x5;
+ return temp === "L" || temp === "R";
+ }, "isArchitectureDirectionX");
+ isArchitectureDirectionY = /* @__PURE__ */ __name(function(x5) {
+ const temp = x5;
+ return temp === "T" || temp === "B";
+ }, "isArchitectureDirectionY");
+ isArchitectureDirectionXY = /* @__PURE__ */ __name(function(a2, b2) {
+ const aX_bY = isArchitectureDirectionX(a2) && isArchitectureDirectionY(b2);
+ const aY_bX = isArchitectureDirectionY(a2) && isArchitectureDirectionX(b2);
+ return aX_bY || aY_bX;
+ }, "isArchitectureDirectionXY");
+ isArchitecturePairXY = /* @__PURE__ */ __name(function(pair) {
+ const lhs = pair[0];
+ const rhs = pair[1];
+ const aX_bY = isArchitectureDirectionX(lhs) && isArchitectureDirectionY(rhs);
+ const aY_bX = isArchitectureDirectionY(lhs) && isArchitectureDirectionX(rhs);
+ return aX_bY || aY_bX;
+ }, "isArchitecturePairXY");
+ isValidArchitectureDirectionPair = /* @__PURE__ */ __name(function(x5) {
+ return x5 !== "LL" && x5 !== "RR" && x5 !== "TT" && x5 !== "BB";
+ }, "isValidArchitectureDirectionPair");
+ getArchitectureDirectionPair = /* @__PURE__ */ __name(function(sourceDir, targetDir) {
+ const pair = `${sourceDir}${targetDir}`;
+ return isValidArchitectureDirectionPair(pair) ? pair : void 0;
+ }, "getArchitectureDirectionPair");
+ shiftPositionByArchitectureDirectionPair = /* @__PURE__ */ __name(function([x5, y5], pair) {
+ const lhs = pair[0];
+ const rhs = pair[1];
+ if (isArchitectureDirectionX(lhs)) {
+ if (isArchitectureDirectionY(rhs)) {
+ return [x5 + (lhs === "L" ? -1 : 1), y5 + (rhs === "T" ? 1 : -1)];
+ } else {
+ return [x5 + (lhs === "L" ? -1 : 1), y5];
}
- if (number$12(options2.maxHeight)) {
- maxScaleH = scale * options2.maxHeight / height2;
+ } else {
+ if (isArchitectureDirectionX(rhs)) {
+ return [x5 + (rhs === "L" ? 1 : -1), y5 + (lhs === "T" ? 1 : -1)];
+ } else {
+ return [x5, y5 + (lhs === "T" ? 1 : -1)];
}
- scale = Math.min(maxScaleW, maxScaleH);
- width2 *= scale;
- height2 *= scale;
}
- if (!specdMaxDims) {
- width2 *= pxRatio;
- height2 *= pxRatio;
- scale *= pxRatio;
+ }, "shiftPositionByArchitectureDirectionPair");
+ getArchitectureDirectionXYFactors = /* @__PURE__ */ __name(function(pair) {
+ if (pair === "LT" || pair === "TL") {
+ return [1, 1];
+ } else if (pair === "BL" || pair === "LB") {
+ return [1, -1];
+ } else if (pair === "BR" || pair === "RB") {
+ return [-1, -1];
+ } else {
+ return [-1, 1];
+ }
+ }, "getArchitectureDirectionXYFactors");
+ isArchitectureService = /* @__PURE__ */ __name(function(x5) {
+ const temp = x5;
+ return temp.type === "service";
+ }, "isArchitectureService");
+ isArchitectureJunction = /* @__PURE__ */ __name(function(x5) {
+ const temp = x5;
+ return temp.type === "junction";
+ }, "isArchitectureJunction");
+ edgeData = /* @__PURE__ */ __name((edge) => {
+ return edge.data();
+ }, "edgeData");
+ nodeData = /* @__PURE__ */ __name((node2) => {
+ return node2.data();
+ }, "nodeData");
+ }
+ });
+
+ // src/diagrams/architecture/architectureDb.ts
+ function getConfigField(field) {
+ const arch = getConfig2().architecture;
+ if (arch?.[field]) {
+ return arch[field];
+ }
+ return DEFAULT_ARCHITECTURE_CONFIG[field];
+ }
+ var DEFAULT_ARCHITECTURE_CONFIG, state4, clear29, addService, getServices, addJunction, getJunctions, getNodes2, getNode, addGroup, getGroups, addEdge, getEdges3, getDataStructures, setElementForId2, getElementById3, db7;
+ var init_architectureDb = __esm({
+ "src/diagrams/architecture/architectureDb.ts"() {
+ "use strict";
+ init_defaultConfig();
+ init_diagramAPI();
+ init_imperativeState();
+ init_commonDb();
+ init_architectureTypes();
+ DEFAULT_ARCHITECTURE_CONFIG = defaultConfig_default.architecture;
+ state4 = new ImperativeState(() => ({
+ nodes: {},
+ groups: {},
+ edges: [],
+ registeredIds: {},
+ config: DEFAULT_ARCHITECTURE_CONFIG,
+ dataStructures: void 0,
+ elements: {}
+ }));
+ clear29 = /* @__PURE__ */ __name(() => {
+ state4.reset();
+ clear();
+ }, "clear");
+ addService = /* @__PURE__ */ __name(function({
+ id: id27,
+ icon,
+ in: parent4,
+ title: title2,
+ iconText
+ }) {
+ if (state4.records.registeredIds[id27] !== void 0) {
+ throw new Error(
+ `The service id [${id27}] is already in use by another ${state4.records.registeredIds[id27]}`
+ );
}
- var buffCanvas = document.createElement("canvas");
- buffCanvas.width = width2;
- buffCanvas.height = height2;
- buffCanvas.style.width = width2 + "px";
- buffCanvas.style.height = height2 + "px";
- var buffCxt = buffCanvas.getContext("2d");
- if (width2 > 0 && height2 > 0) {
- buffCxt.clearRect(0, 0, width2, height2);
- buffCxt.globalCompositeOperation = "source-over";
- var zsortedEles = this.getCachedZSortedEles();
- if (options2.full) {
- buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale);
- buffCxt.scale(scale, scale);
- this.drawElements(buffCxt, zsortedEles);
- buffCxt.scale(1 / scale, 1 / scale);
- buffCxt.translate(bb.x1 * scale, bb.y1 * scale);
- } else {
- var pan = cy.pan();
- var translation = {
- x: pan.x * scale,
- y: pan.y * scale
- };
- scale *= cy.zoom();
- buffCxt.translate(translation.x, translation.y);
- buffCxt.scale(scale, scale);
- this.drawElements(buffCxt, zsortedEles);
- buffCxt.scale(1 / scale, 1 / scale);
- buffCxt.translate(-translation.x, -translation.y);
+ if (parent4 !== void 0) {
+ if (id27 === parent4) {
+ throw new Error(`The service [${id27}] cannot be placed within itself`);
}
- if (options2.bg) {
- buffCxt.globalCompositeOperation = "destination-over";
- buffCxt.fillStyle = options2.bg;
- buffCxt.rect(0, 0, width2, height2);
- buffCxt.fill();
+ if (state4.records.registeredIds[parent4] === void 0) {
+ throw new Error(
+ `The service [${id27}]'s parent does not exist. Please make sure the parent is created before this service`
+ );
+ }
+ if (state4.records.registeredIds[parent4] === "node") {
+ throw new Error(`The service [${id27}]'s parent is not a group`);
}
}
- return buffCanvas;
- };
- function b64ToBlob(b64, mimeType) {
- var bytes = atob(b64);
- var buff = new ArrayBuffer(bytes.length);
- var buffUint8 = new Uint8Array(buff);
- for (var i3 = 0; i3 < bytes.length; i3++) {
- buffUint8[i3] = bytes.charCodeAt(i3);
- }
- return new Blob([buff], {
- type: mimeType
- });
- }
- function b64UriToB64(b64uri) {
- var i3 = b64uri.indexOf(",");
- return b64uri.substr(i3 + 1);
- }
- function output(options2, canvas, mimeType) {
- var getB64Uri = function getB64Uri2() {
- return canvas.toDataURL(mimeType, options2.quality);
- };
- switch (options2.output) {
- case "blob-promise":
- return new Promise$12(function(resolve2, reject) {
- try {
- canvas.toBlob(function(blob) {
- if (blob != null) {
- resolve2(blob);
- } else {
- reject(new Error("`canvas.toBlob()` sent a null value in its callback"));
- }
- }, mimeType, options2.quality);
- } catch (err) {
- reject(err);
- }
- });
- case "blob":
- return b64ToBlob(b64UriToB64(getB64Uri()), mimeType);
- case "base64":
- return b64UriToB64(getB64Uri());
- case "base64uri":
- default:
- return getB64Uri();
- }
- }
- CRp$2.png = function(options2) {
- return output(options2, this.bufferCanvasImage(options2), "image/png");
- };
- CRp$2.jpg = function(options2) {
- return output(options2, this.bufferCanvasImage(options2), "image/jpeg");
- };
- var CRp$1 = {};
- CRp$1.nodeShapeImpl = function(name2, context, centerX, centerY, width2, height2, points) {
- switch (name2) {
- case "ellipse":
- return this.drawEllipsePath(context, centerX, centerY, width2, height2);
- case "polygon":
- return this.drawPolygonPath(context, centerX, centerY, width2, height2, points);
- case "round-polygon":
- return this.drawRoundPolygonPath(context, centerX, centerY, width2, height2, points);
- case "roundrectangle":
- case "round-rectangle":
- return this.drawRoundRectanglePath(context, centerX, centerY, width2, height2);
- case "cutrectangle":
- case "cut-rectangle":
- return this.drawCutRectanglePath(context, centerX, centerY, width2, height2);
- case "bottomroundrectangle":
- case "bottom-round-rectangle":
- return this.drawBottomRoundRectanglePath(context, centerX, centerY, width2, height2);
- case "barrel":
- return this.drawBarrelPath(context, centerX, centerY, width2, height2);
- }
- };
- var CR = CanvasRenderer;
- var CRp = CanvasRenderer.prototype;
- CRp.CANVAS_LAYERS = 3;
- CRp.SELECT_BOX = 0;
- CRp.DRAG = 1;
- CRp.NODE = 2;
- CRp.BUFFER_COUNT = 3;
- CRp.TEXTURE_BUFFER = 0;
- CRp.MOTIONBLUR_BUFFER_NODE = 1;
- CRp.MOTIONBLUR_BUFFER_DRAG = 2;
- function CanvasRenderer(options2) {
- var r = this;
- r.data = {
- canvases: new Array(CRp.CANVAS_LAYERS),
- contexts: new Array(CRp.CANVAS_LAYERS),
- canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS),
- bufferCanvases: new Array(CRp.BUFFER_COUNT),
- bufferContexts: new Array(CRp.CANVAS_LAYERS)
- };
- var tapHlOffAttr = "-webkit-tap-highlight-color";
- var tapHlOffStyle = "rgba(0,0,0,0)";
- r.data.canvasContainer = document.createElement("div");
- var containerStyle = r.data.canvasContainer.style;
- r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle;
- containerStyle.position = "relative";
- containerStyle.zIndex = "0";
- containerStyle.overflow = "hidden";
- var container = options2.cy.container();
- container.appendChild(r.data.canvasContainer);
- container.style[tapHlOffAttr] = tapHlOffStyle;
- var styleMap = {
- "-webkit-user-select": "none",
- "-moz-user-select": "-moz-none",
- "user-select": "none",
- "-webkit-tap-highlight-color": "rgba(0,0,0,0)",
- "outline-style": "none"
- };
- if (ms()) {
- styleMap["-ms-touch-action"] = "none";
- styleMap["touch-action"] = "none";
- }
- for (var i3 = 0; i3 < CRp.CANVAS_LAYERS; i3++) {
- var canvas = r.data.canvases[i3] = document.createElement("canvas");
- r.data.contexts[i3] = canvas.getContext("2d");
- Object.keys(styleMap).forEach(function(k) {
- canvas.style[k] = styleMap[k];
- });
- canvas.style.position = "absolute";
- canvas.setAttribute("data-id", "layer" + i3);
- canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i3);
- r.data.canvasContainer.appendChild(canvas);
- r.data.canvasNeedsRedraw[i3] = false;
- }
- r.data.topCanvas = r.data.canvases[0];
- r.data.canvases[CRp.NODE].setAttribute("data-id", "layer" + CRp.NODE + "-node");
- r.data.canvases[CRp.SELECT_BOX].setAttribute("data-id", "layer" + CRp.SELECT_BOX + "-selectbox");
- r.data.canvases[CRp.DRAG].setAttribute("data-id", "layer" + CRp.DRAG + "-drag");
- for (var i3 = 0; i3 < CRp.BUFFER_COUNT; i3++) {
- r.data.bufferCanvases[i3] = document.createElement("canvas");
- r.data.bufferContexts[i3] = r.data.bufferCanvases[i3].getContext("2d");
- r.data.bufferCanvases[i3].style.position = "absolute";
- r.data.bufferCanvases[i3].setAttribute("data-id", "buffer" + i3);
- r.data.bufferCanvases[i3].style.zIndex = String(-i3 - 1);
- r.data.bufferCanvases[i3].style.visibility = "hidden";
- }
- r.pathsEnabled = true;
- var emptyBb = makeBoundingBox();
- var getBoxCenter = function getBoxCenter2(bb) {
- return {
- x: (bb.x1 + bb.x2) / 2,
- y: (bb.y1 + bb.y2) / 2
- };
- };
- var getCenterOffset = function getCenterOffset2(bb) {
- return {
- x: -bb.w / 2,
- y: -bb.h / 2
- };
- };
- var backgroundTimestampHasChanged = function backgroundTimestampHasChanged2(ele) {
- var _p = ele[0]._private;
- var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp;
- return !same;
- };
- var getStyleKey = function getStyleKey2(ele) {
- return ele[0]._private.nodeKey;
- };
- var getLabelKey = function getLabelKey2(ele) {
- return ele[0]._private.labelStyleKey;
- };
- var getSourceLabelKey = function getSourceLabelKey2(ele) {
- return ele[0]._private.sourceLabelStyleKey;
- };
- var getTargetLabelKey = function getTargetLabelKey2(ele) {
- return ele[0]._private.targetLabelStyleKey;
- };
- var drawElement = function drawElement2(context, ele, bb, scaledLabelShown, useEleOpacity) {
- return r.drawElement(context, ele, bb, false, false, useEleOpacity);
- };
- var drawLabel2 = function drawLabel3(context, ele, bb, scaledLabelShown, useEleOpacity) {
- return r.drawElementText(context, ele, bb, scaledLabelShown, "main", useEleOpacity);
- };
- var drawSourceLabel = function drawSourceLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
- return r.drawElementText(context, ele, bb, scaledLabelShown, "source", useEleOpacity);
- };
- var drawTargetLabel = function drawTargetLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
- return r.drawElementText(context, ele, bb, scaledLabelShown, "target", useEleOpacity);
- };
- var getElementBox = function getElementBox2(ele) {
- ele.boundingBox();
- return ele[0]._private.bodyBounds;
- };
- var getLabelBox = function getLabelBox2(ele) {
- ele.boundingBox();
- return ele[0]._private.labelBounds.main || emptyBb;
- };
- var getSourceLabelBox = function getSourceLabelBox2(ele) {
- ele.boundingBox();
- return ele[0]._private.labelBounds.source || emptyBb;
- };
- var getTargetLabelBox = function getTargetLabelBox2(ele) {
- ele.boundingBox();
- return ele[0]._private.labelBounds.target || emptyBb;
- };
- var isLabelVisibleAtScale = function isLabelVisibleAtScale2(ele, scaledLabelShown) {
- return scaledLabelShown;
- };
- var getElementRotationPoint = function getElementRotationPoint2(ele) {
- return getBoxCenter(getElementBox(ele));
- };
- var addTextMargin = function addTextMargin2(prefix, pt, ele) {
- var pre = prefix ? prefix + "-" : "";
- return {
- x: pt.x + ele.pstyle(pre + "text-margin-x").pfValue,
- y: pt.y + ele.pstyle(pre + "text-margin-y").pfValue
- };
- };
- var getRsPt = function getRsPt2(ele, x2, y2) {
- var rs = ele[0]._private.rscratch;
- return {
- x: rs[x2],
- y: rs[y2]
- };
- };
- var getLabelRotationPoint = function getLabelRotationPoint2(ele) {
- return addTextMargin("", getRsPt(ele, "labelX", "labelY"), ele);
- };
- var getSourceLabelRotationPoint = function getSourceLabelRotationPoint2(ele) {
- return addTextMargin("source", getRsPt(ele, "sourceLabelX", "sourceLabelY"), ele);
- };
- var getTargetLabelRotationPoint = function getTargetLabelRotationPoint2(ele) {
- return addTextMargin("target", getRsPt(ele, "targetLabelX", "targetLabelY"), ele);
- };
- var getElementRotationOffset = function getElementRotationOffset2(ele) {
- return getCenterOffset(getElementBox(ele));
- };
- var getSourceLabelRotationOffset = function getSourceLabelRotationOffset2(ele) {
- return getCenterOffset(getSourceLabelBox(ele));
+ state4.records.registeredIds[id27] = "node";
+ state4.records.nodes[id27] = {
+ id: id27,
+ type: "service",
+ icon,
+ iconText,
+ title: title2,
+ edges: [],
+ in: parent4
};
- var getTargetLabelRotationOffset = function getTargetLabelRotationOffset2(ele) {
- return getCenterOffset(getTargetLabelBox(ele));
+ }, "addService");
+ getServices = /* @__PURE__ */ __name(() => Object.values(state4.records.nodes).filter(isArchitectureService), "getServices");
+ addJunction = /* @__PURE__ */ __name(function({ id: id27, in: parent4 }) {
+ state4.records.registeredIds[id27] = "node";
+ state4.records.nodes[id27] = {
+ id: id27,
+ type: "junction",
+ edges: [],
+ in: parent4
};
- var getLabelRotationOffset = function getLabelRotationOffset2(ele) {
- var bb = getLabelBox(ele);
- var p2 = getCenterOffset(getLabelBox(ele));
- if (ele.isNode()) {
- switch (ele.pstyle("text-halign").value) {
- case "left":
- p2.x = -bb.w;
- break;
- case "right":
- p2.x = 0;
- break;
- }
- switch (ele.pstyle("text-valign").value) {
- case "top":
- p2.y = -bb.h;
- break;
- case "bottom":
- p2.y = 0;
- break;
- }
+ }, "addJunction");
+ getJunctions = /* @__PURE__ */ __name(() => Object.values(state4.records.nodes).filter(isArchitectureJunction), "getJunctions");
+ getNodes2 = /* @__PURE__ */ __name(() => Object.values(state4.records.nodes), "getNodes");
+ getNode = /* @__PURE__ */ __name((id27) => state4.records.nodes[id27], "getNode");
+ addGroup = /* @__PURE__ */ __name(function({ id: id27, icon, in: parent4, title: title2 }) {
+ if (state4.records.registeredIds[id27] !== void 0) {
+ throw new Error(
+ `The group id [${id27}] is already in use by another ${state4.records.registeredIds[id27]}`
+ );
+ }
+ if (parent4 !== void 0) {
+ if (id27 === parent4) {
+ throw new Error(`The group [${id27}] cannot be placed within itself`);
}
- return p2;
- };
- var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, {
- getKey: getStyleKey,
- doesEleInvalidateKey: backgroundTimestampHasChanged,
- drawElement,
- getBoundingBox: getElementBox,
- getRotationPoint: getElementRotationPoint,
- getRotationOffset: getElementRotationOffset,
- allowEdgeTxrCaching: false,
- allowParentTxrCaching: false
- });
- var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, {
- getKey: getLabelKey,
- drawElement: drawLabel2,
- getBoundingBox: getLabelBox,
- getRotationPoint: getLabelRotationPoint,
- getRotationOffset: getLabelRotationOffset,
- isVisible: isLabelVisibleAtScale
- });
- var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, {
- getKey: getSourceLabelKey,
- drawElement: drawSourceLabel,
- getBoundingBox: getSourceLabelBox,
- getRotationPoint: getSourceLabelRotationPoint,
- getRotationOffset: getSourceLabelRotationOffset,
- isVisible: isLabelVisibleAtScale
- });
- var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, {
- getKey: getTargetLabelKey,
- drawElement: drawTargetLabel,
- getBoundingBox: getTargetLabelBox,
- getRotationPoint: getTargetLabelRotationPoint,
- getRotationOffset: getTargetLabelRotationOffset,
- isVisible: isLabelVisibleAtScale
- });
- var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r);
- r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) {
- eleTxrCache.invalidateElements(eles);
- lblTxrCache.invalidateElements(eles);
- slbTxrCache.invalidateElements(eles);
- tlbTxrCache.invalidateElements(eles);
- lyrTxrCache.invalidateElements(eles);
- for (var _i = 0; _i < eles.length; _i++) {
- var _p = eles[_i]._private;
- _p.oldBackgroundTimestamp = _p.backgroundTimestamp;
+ if (state4.records.registeredIds[parent4] === void 0) {
+ throw new Error(
+ `The group [${id27}]'s parent does not exist. Please make sure the parent is created before this group`
+ );
}
- });
- var refineInLayers = function refineInLayers2(reqs) {
- for (var i4 = 0; i4 < reqs.length; i4++) {
- lyrTxrCache.enqueueElementRefinement(reqs[i4].ele);
+ if (state4.records.registeredIds[parent4] === "node") {
+ throw new Error(`The group [${id27}]'s parent is not a group`);
}
+ }
+ state4.records.registeredIds[id27] = "group";
+ state4.records.groups[id27] = {
+ id: id27,
+ icon,
+ title: title2,
+ in: parent4
};
- eleTxrCache.onDequeue(refineInLayers);
- lblTxrCache.onDequeue(refineInLayers);
- slbTxrCache.onDequeue(refineInLayers);
- tlbTxrCache.onDequeue(refineInLayers);
- }
- CRp.redrawHint = function(group, bool2) {
- var r = this;
- switch (group) {
- case "eles":
- r.data.canvasNeedsRedraw[CRp.NODE] = bool2;
- break;
- case "drag":
- r.data.canvasNeedsRedraw[CRp.DRAG] = bool2;
- break;
- case "select":
- r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool2;
- break;
+ }, "addGroup");
+ getGroups = /* @__PURE__ */ __name(() => {
+ return Object.values(state4.records.groups);
+ }, "getGroups");
+ addEdge = /* @__PURE__ */ __name(function({
+ lhsId,
+ rhsId,
+ lhsDir,
+ rhsDir,
+ lhsInto,
+ rhsInto,
+ lhsGroup,
+ rhsGroup,
+ title: title2
+ }) {
+ if (!isArchitectureDirection(lhsDir)) {
+ throw new Error(
+ `Invalid direction given for left hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${lhsDir}`
+ );
}
- };
- var pathsImpld = typeof Path2D !== "undefined";
- CRp.path2dEnabled = function(on) {
- if (on === void 0) {
- return this.pathsEnabled;
+ if (!isArchitectureDirection(rhsDir)) {
+ throw new Error(
+ `Invalid direction given for right hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${rhsDir}`
+ );
}
- this.pathsEnabled = on ? true : false;
- };
- CRp.usePaths = function() {
- return pathsImpld && this.pathsEnabled;
- };
- CRp.setImgSmoothing = function(context, bool2) {
- if (context.imageSmoothingEnabled != null) {
- context.imageSmoothingEnabled = bool2;
- } else {
- context.webkitImageSmoothingEnabled = bool2;
- context.mozImageSmoothingEnabled = bool2;
- context.msImageSmoothingEnabled = bool2;
+ if (state4.records.nodes[lhsId] === void 0 && state4.records.groups[lhsId] === void 0) {
+ throw new Error(
+ `The left-hand id [${lhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`
+ );
}
- };
- CRp.getImgSmoothing = function(context) {
- if (context.imageSmoothingEnabled != null) {
- return context.imageSmoothingEnabled;
- } else {
- return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled;
+ if (state4.records.nodes[rhsId] === void 0 && state4.records.groups[lhsId] === void 0) {
+ throw new Error(
+ `The right-hand id [${rhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`
+ );
}
- };
- CRp.makeOffscreenCanvas = function(width2, height2) {
- var canvas;
- if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== "undefined") {
- canvas = new OffscreenCanvas(width2, height2);
- } else {
- canvas = document.createElement("canvas");
- canvas.width = width2;
- canvas.height = height2;
+ const lhsGroupId = state4.records.nodes[lhsId].in;
+ const rhsGroupId = state4.records.nodes[rhsId].in;
+ if (lhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {
+ throw new Error(
+ `The left-hand id [${lhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`
+ );
}
- return canvas;
- };
- [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function(props) {
- extend2(CRp, props);
- });
- var renderer2 = [{
- name: "null",
- impl: NullRenderer
- }, {
- name: "base",
- impl: BR
- }, {
- name: "canvas",
- impl: CR
- }];
- var incExts = [{
- type: "layout",
- extensions: layout2
- }, {
- type: "renderer",
- extensions: renderer2
- }];
- var extensions = {};
- var modules = {};
- function setExtension(type2, name2, registrant) {
- var ext = registrant;
- var overrideErr = function overrideErr2(field) {
- warn("Can not register `" + name2 + "` for `" + type2 + "` since `" + field + "` already exists in the prototype and can not be overridden");
+ if (rhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {
+ throw new Error(
+ `The right-hand id [${rhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`
+ );
+ }
+ const edge = {
+ lhsId,
+ lhsDir,
+ lhsInto,
+ lhsGroup,
+ rhsId,
+ rhsDir,
+ rhsInto,
+ rhsGroup,
+ title: title2
};
- if (type2 === "core") {
- if (Core.prototype[name2]) {
- return overrideErr(name2);
- } else {
- Core.prototype[name2] = registrant;
- }
- } else if (type2 === "collection") {
- if (Collection.prototype[name2]) {
- return overrideErr(name2);
- } else {
- Collection.prototype[name2] = registrant;
- }
- } else if (type2 === "layout") {
- var Layout2 = function Layout3(options2) {
- this.options = options2;
- registrant.call(this, options2);
- if (!plainObject(this._private)) {
- this._private = {};
- }
- this._private.cy = options2.cy;
- this._private.listeners = [];
- this.createEmitter();
- };
- var layoutProto = Layout2.prototype = Object.create(registrant.prototype);
- var optLayoutFns = [];
- for (var i3 = 0; i3 < optLayoutFns.length; i3++) {
- var fnName = optLayoutFns[i3];
- layoutProto[fnName] = layoutProto[fnName] || function() {
- return this;
- };
- }
- if (layoutProto.start && !layoutProto.run) {
- layoutProto.run = function() {
- this.start();
- return this;
- };
- } else if (!layoutProto.start && layoutProto.run) {
- layoutProto.start = function() {
- this.run();
- return this;
- };
- }
- var regStop = registrant.prototype.stop;
- layoutProto.stop = function() {
- var opts = this.options;
- if (opts && opts.animate) {
- var anis = this.animations;
- if (anis) {
- for (var _i = 0; _i < anis.length; _i++) {
- anis[_i].stop();
+ state4.records.edges.push(edge);
+ if (state4.records.nodes[lhsId] && state4.records.nodes[rhsId]) {
+ state4.records.nodes[lhsId].edges.push(state4.records.edges[state4.records.edges.length - 1]);
+ state4.records.nodes[rhsId].edges.push(state4.records.edges[state4.records.edges.length - 1]);
+ }
+ }, "addEdge");
+ getEdges3 = /* @__PURE__ */ __name(() => state4.records.edges, "getEdges");
+ getDataStructures = /* @__PURE__ */ __name(() => {
+ if (state4.records.dataStructures === void 0) {
+ const adjList = Object.entries(state4.records.nodes).reduce((prevOuter, [id27, service]) => {
+ prevOuter[id27] = service.edges.reduce((prevInner, edge) => {
+ if (edge.lhsId === id27) {
+ const pair = getArchitectureDirectionPair(edge.lhsDir, edge.rhsDir);
+ if (pair) {
+ prevInner[pair] = edge.rhsId;
}
+ } else {
+ const pair = getArchitectureDirectionPair(edge.rhsDir, edge.lhsDir);
+ if (pair) {
+ prevInner[pair] = edge.lhsId;
+ }
+ }
+ return prevInner;
+ }, {});
+ return prevOuter;
+ }, {});
+ const firstId = Object.keys(adjList)[0];
+ const visited = { [firstId]: 1 };
+ const notVisited = Object.keys(adjList).reduce(
+ (prev2, id27) => id27 === firstId ? prev2 : { ...prev2, [id27]: 1 },
+ {}
+ );
+ const BFS = /* @__PURE__ */ __name((startingId) => {
+ const spatialMap = { [startingId]: [0, 0] };
+ const queue = [startingId];
+ while (queue.length > 0) {
+ const id27 = queue.shift();
+ if (id27) {
+ visited[id27] = 1;
+ delete notVisited[id27];
+ const adj = adjList[id27];
+ const [posX, posY] = spatialMap[id27];
+ Object.entries(adj).forEach(([dir2, rhsId]) => {
+ if (!visited[rhsId]) {
+ spatialMap[rhsId] = shiftPositionByArchitectureDirectionPair(
+ [posX, posY],
+ dir2
+ );
+ queue.push(rhsId);
+ }
+ });
}
}
- if (regStop) {
- regStop.call(this);
- } else {
- this.emit("layoutstop");
- }
- return this;
- };
- if (!layoutProto.destroy) {
- layoutProto.destroy = function() {
- return this;
- };
+ return spatialMap;
+ }, "BFS");
+ const spatialMaps = [BFS(firstId)];
+ while (Object.keys(notVisited).length > 0) {
+ spatialMaps.push(BFS(Object.keys(notVisited)[0]));
}
- layoutProto.cy = function() {
- return this._private.cy;
- };
- var getCy = function getCy2(layout3) {
- return layout3._private.cy;
- };
- var emitterOpts = {
- addEventFields: function addEventFields(layout3, evt) {
- evt.layout = layout3;
- evt.cy = getCy(layout3);
- evt.target = layout3;
- },
- bubble: function bubble() {
- return true;
- },
- parent: function parent(layout3) {
- return getCy(layout3);
- }
- };
- extend2(layoutProto, {
- createEmitter: function createEmitter() {
- this._private.emitter = new Emitter(emitterOpts, this);
- return this;
- },
- emitter: function emitter() {
- return this._private.emitter;
- },
- on: function on(evt, cb) {
- this.emitter().on(evt, cb);
- return this;
- },
- one: function one2(evt, cb) {
- this.emitter().one(evt, cb);
- return this;
- },
- once: function once(evt, cb) {
- this.emitter().one(evt, cb);
- return this;
- },
- removeListener: function removeListener(evt, cb) {
- this.emitter().removeListener(evt, cb);
- return this;
- },
- removeAllListeners: function removeAllListeners() {
- this.emitter().removeAllListeners();
- return this;
- },
- emit: function emit(evt, params) {
- this.emitter().emit(evt, params);
- return this;
- }
- });
- define3.eventAliasesOn(layoutProto);
- ext = Layout2;
- } else if (type2 === "renderer" && name2 !== "null" && name2 !== "base") {
- var BaseRenderer2 = getExtension("renderer", "base");
- var bProto = BaseRenderer2.prototype;
- var RegistrantRenderer = registrant;
- var rProto = registrant.prototype;
- var Renderer = function Renderer2() {
- BaseRenderer2.apply(this, arguments);
- RegistrantRenderer.apply(this, arguments);
+ state4.records.dataStructures = {
+ adjList,
+ spatialMaps
};
- var proto2 = Renderer.prototype;
- for (var pName in bProto) {
- var pVal = bProto[pName];
- var existsInR = rProto[pName] != null;
- if (existsInR) {
- return overrideErr(pName);
- }
- proto2[pName] = pVal;
- }
- for (var _pName in rProto) {
- proto2[_pName] = rProto[_pName];
- }
- bProto.clientFunctions.forEach(function(name3) {
- proto2[name3] = proto2[name3] || function() {
- error("Renderer does not implement `renderer." + name3 + "()` on its prototype");
- };
- });
- ext = Renderer;
- } else if (type2 === "__proto__" || type2 === "constructor" || type2 === "prototype") {
- return error(type2 + " is an illegal type to be registered, possibly lead to prototype pollutions");
- }
- return setMap({
- map: extensions,
- keys: [type2, name2],
- value: ext
- });
- }
- function getExtension(type2, name2) {
- return getMap({
- map: extensions,
- keys: [type2, name2]
- });
- }
- function setModule(type2, name2, moduleType, moduleName, registrant) {
- return setMap({
- map: modules,
- keys: [type2, name2, moduleType, moduleName],
- value: registrant
- });
- }
- function getModule(type2, name2, moduleType, moduleName) {
- return getMap({
- map: modules,
- keys: [type2, name2, moduleType, moduleName]
- });
- }
- var extension2 = function extension3() {
- if (arguments.length === 2) {
- return getExtension.apply(null, arguments);
- } else if (arguments.length === 3) {
- return setExtension.apply(null, arguments);
- } else if (arguments.length === 4) {
- return getModule.apply(null, arguments);
- } else if (arguments.length === 5) {
- return setModule.apply(null, arguments);
- } else {
- error("Invalid extension access syntax");
- }
- };
- Core.prototype.extension = extension2;
- incExts.forEach(function(group) {
- group.extensions.forEach(function(ext) {
- setExtension(group.type, ext.name, ext.impl);
- });
- });
- var Stylesheet = function Stylesheet2() {
- if (!(this instanceof Stylesheet2)) {
- return new Stylesheet2();
- }
- this.length = 0;
- };
- var sheetfn = Stylesheet.prototype;
- sheetfn.instanceString = function() {
- return "stylesheet";
- };
- sheetfn.selector = function(selector2) {
- var i3 = this.length++;
- this[i3] = {
- selector: selector2,
- properties: []
- };
- return this;
- };
- sheetfn.css = function(name2, value) {
- var i3 = this.length - 1;
- if (string(name2)) {
- this[i3].properties.push({
- name: name2,
- value
- });
- } else if (plainObject(name2)) {
- var map2 = name2;
- var propNames = Object.keys(map2);
- for (var j = 0; j < propNames.length; j++) {
- var key = propNames[j];
- var mapVal = map2[key];
- if (mapVal == null) {
- continue;
- }
- var prop = Style.properties[key] || Style.properties[dash2camel(key)];
- if (prop == null) {
- continue;
- }
- var _name = prop.name;
- var _value = mapVal;
- this[i3].properties.push({
- name: _name,
- value: _value
- });
- }
- }
- return this;
- };
- sheetfn.style = sheetfn.css;
- sheetfn.generateStyle = function(cy) {
- var style = new Style(cy);
- return this.appendToStyle(style);
- };
- sheetfn.appendToStyle = function(style) {
- for (var i3 = 0; i3 < this.length; i3++) {
- var context = this[i3];
- var selector2 = context.selector;
- var props = context.properties;
- style.selector(selector2);
- for (var j = 0; j < props.length; j++) {
- var prop = props[j];
- style.css(prop.name, prop.value);
- }
- }
- return style;
- };
- var version2 = "3.23.0";
- var cytoscape2 = function cytoscape3(options2) {
- if (options2 === void 0) {
- options2 = {};
- }
- if (plainObject(options2)) {
- return new Core(options2);
- } else if (string(options2)) {
- return extension2.apply(extension2, arguments);
}
- };
- cytoscape2.use = function(ext) {
- var args = Array.prototype.slice.call(arguments, 1);
- args.unshift(cytoscape2);
- ext.apply(null, args);
- return this;
- };
- cytoscape2.warnings = function(bool2) {
- return warnings(bool2);
- };
- cytoscape2.version = version2;
- cytoscape2.stylesheet = cytoscape2.Stylesheet = Stylesheet;
- return cytoscape2;
- });
- })(cytoscape_umd);
- const cytoscape$1 = cytoscape_umdExports;
- var cytoscapeCoseBilkentExports = {};
- var cytoscapeCoseBilkent = {
- get exports() {
- return cytoscapeCoseBilkentExports;
- },
- set exports(v) {
- cytoscapeCoseBilkentExports = v;
+ return state4.records.dataStructures;
+ }, "getDataStructures");
+ setElementForId2 = /* @__PURE__ */ __name((id27, element3) => {
+ state4.records.elements[id27] = element3;
+ }, "setElementForId");
+ getElementById3 = /* @__PURE__ */ __name((id27) => state4.records.elements[id27], "getElementById");
+ db7 = {
+ clear: clear29,
+ setDiagramTitle,
+ getDiagramTitle,
+ setAccTitle,
+ getAccTitle,
+ setAccDescription,
+ getAccDescription,
+ addService,
+ getServices,
+ addJunction,
+ getJunctions,
+ getNodes: getNodes2,
+ getNode,
+ addGroup,
+ getGroups,
+ addEdge,
+ getEdges: getEdges3,
+ setElementForId: setElementForId2,
+ getElementById: getElementById3,
+ getDataStructures
+ };
+ __name(getConfigField, "getConfigField");
}
- };
- var coseBaseExports = {};
- var coseBase = {
- get exports() {
- return coseBaseExports;
- },
- set exports(v) {
- coseBaseExports = v;
+ });
+
+ // src/diagrams/architecture/architectureParser.ts
+ var populateDb2, parser21;
+ var init_architectureParser = __esm({
+ "src/diagrams/architecture/architectureParser.ts"() {
+ "use strict";
+ init_mermaid_parser_core();
+ init_logger();
+ init_populateCommonDb();
+ init_architectureDb();
+ populateDb2 = /* @__PURE__ */ __name((ast, db8) => {
+ populateCommonDb(ast, db8);
+ ast.groups.map(db8.addGroup);
+ ast.services.map((service) => db8.addService({ ...service, type: "service" }));
+ ast.junctions.map((service) => db8.addJunction({ ...service, type: "junction" }));
+ ast.edges.map(db8.addEdge);
+ }, "populateDb");
+ parser21 = {
+ parse: /* @__PURE__ */ __name(async (input) => {
+ const ast = await parse2("architecture", input);
+ log.debug(ast);
+ populateDb2(ast, db7);
+ }, "parse")
+ };
}
- };
- var layoutBaseExports = {};
- var layoutBase = {
- get exports() {
- return layoutBaseExports;
- },
- set exports(v) {
- layoutBaseExports = v;
+ });
+
+ // src/diagrams/architecture/architectureStyles.ts
+ var getStyles16, architectureStyles_default;
+ var init_architectureStyles = __esm({
+ "src/diagrams/architecture/architectureStyles.ts"() {
+ "use strict";
+ getStyles16 = /* @__PURE__ */ __name((options3) => `
+ .edge {
+ stroke-width: ${options3.archEdgeWidth};
+ stroke: ${options3.archEdgeColor};
+ fill: none;
+ }
+
+ .arrow {
+ fill: ${options3.archEdgeArrowColor};
+ }
+
+ .node-bkg {
+ fill: none;
+ stroke: ${options3.archGroupBorderColor};
+ stroke-width: ${options3.archGroupBorderWidth};
+ stroke-dasharray: 8;
+ }
+ .node-icon-text {
+ display: flex;
+ align-items: center;
+ }
+
+ .node-icon-text > div {
+ color: #fff;
+ margin: 1px;
+ height: fit-content;
+ text-align: center;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ }
+`, "getStyles");
+ architectureStyles_default = getStyles16;
}
- };
- var hasRequiredLayoutBase;
- function requireLayoutBase() {
- if (hasRequiredLayoutBase)
- return layoutBaseExports;
- hasRequiredLayoutBase = 1;
- (function(module2, exports2) {
- (function webpackUniversalModuleDefinition(root2, factory) {
- module2.exports = factory();
- })(commonjsGlobal, function() {
+ });
+
+ // ../../node_modules/.pnpm/layout-base@2.0.1/node_modules/layout-base/layout-base.js
+ var require_layout_base2 = __commonJS({
+ "../../node_modules/.pnpm/layout-base@2.0.1/node_modules/layout-base/layout-base.js"(exports2, module2) {
+ "use strict";
+ (/* @__PURE__ */ __name(function webpackUniversalModuleDefinition(root4, factory) {
+ if (typeof exports2 === "object" && typeof module2 === "object")
+ module2.exports = factory();
+ else if (typeof define === "function" && define.amd)
+ define([], factory);
+ else if (typeof exports2 === "object")
+ exports2["layoutBase"] = factory();
+ else
+ root4["layoutBase"] = factory();
+ }, "webpackUniversalModuleDefinition"))(exports2, function() {
return (
/******/
- function(modules) {
+ function(modules2) {
var installedModules = {};
function __webpack_require__(moduleId) {
if (installedModules[moduleId]) {
@@ -163312,18 +130842,19 @@ g.stateGroup line {
exports: {}
/******/
};
- modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
+ modules2[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
module3.l = true;
return module3.exports;
}
- __webpack_require__.m = modules;
+ __name(__webpack_require__, "__webpack_require__");
+ __webpack_require__.m = modules2;
__webpack_require__.c = installedModules;
- __webpack_require__.i = function(value) {
- return value;
+ __webpack_require__.i = function(value2) {
+ return value2;
};
- __webpack_require__.d = function(exports3, name2, getter) {
- if (!__webpack_require__.o(exports3, name2)) {
- Object.defineProperty(exports3, name2, {
+ __webpack_require__.d = function(exports3, name, getter) {
+ if (!__webpack_require__.o(exports3, name)) {
+ Object.defineProperty(exports3, name, {
/******/
configurable: false,
/******/
@@ -163337,29 +130868,31 @@ g.stateGroup line {
__webpack_require__.n = function(module3) {
var getter = module3 && module3.__esModule ? (
/******/
- function getDefault() {
+ /* @__PURE__ */ __name(function getDefault() {
return module3["default"];
- }
+ }, "getDefault")
) : (
/******/
- function getModuleExports() {
+ /* @__PURE__ */ __name(function getModuleExports() {
return module3;
- }
+ }, "getModuleExports")
);
__webpack_require__.d(getter, "a", getter);
return getter;
};
- __webpack_require__.o = function(object2, property2) {
- return Object.prototype.hasOwnProperty.call(object2, property2);
+ __webpack_require__.o = function(object3, property2) {
+ return Object.prototype.hasOwnProperty.call(object3, property2);
};
__webpack_require__.p = "";
- return __webpack_require__(__webpack_require__.s = 26);
+ return __webpack_require__(__webpack_require__.s = 28);
}([
/* 0 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
function LayoutConstants() {
}
+ __name(LayoutConstants, "LayoutConstants");
LayoutConstants.QUALITY = 1;
LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;
LayoutConstants.DEFAULT_INCREMENTAL = false;
@@ -163382,6 +130915,7 @@ g.stateGroup line {
/* 1 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var LGraphObject = __webpack_require__(2);
var IGeometry = __webpack_require__(8);
var IMath = __webpack_require__(9);
@@ -163393,6 +130927,7 @@ g.stateGroup line {
this.source = source;
this.target = target;
}
+ __name(LEdge, "LEdge");
LEdge.prototype = Object.create(LGraphObject.prototype);
for (var prop in LGraphObject) {
LEdge[prop] = LGraphObject[prop];
@@ -163435,12 +130970,12 @@ g.stateGroup line {
};
LEdge.prototype.getOtherEndInGraph = function(node2, graph) {
var otherEnd = this.getOtherEnd(node2);
- var root2 = graph.getGraphManager().getRoot();
+ var root4 = graph.getGraphManager().getRoot();
while (true) {
if (otherEnd.getOwner() == graph) {
return otherEnd;
}
- if (otherEnd.getOwner() == root2) {
+ if (otherEnd.getOwner() == root4) {
break;
}
otherEnd = otherEnd.getOwner().getParent();
@@ -163478,37 +131013,38 @@ g.stateGroup line {
/* 2 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
function LGraphObject(vGraphObject) {
this.vGraphObject = vGraphObject;
}
+ __name(LGraphObject, "LGraphObject");
module3.exports = LGraphObject;
},
/* 3 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var LGraphObject = __webpack_require__(2);
var Integer = __webpack_require__(10);
var RectangleD = __webpack_require__(13);
var LayoutConstants = __webpack_require__(0);
var RandomSeed = __webpack_require__(16);
- var PointD = __webpack_require__(4);
- function LNode(gm, loc, size2, vNode) {
- if (size2 == null && vNode == null) {
+ var PointD = __webpack_require__(5);
+ function LNode(gm, loc, size5, vNode) {
+ if (size5 == null && vNode == null) {
vNode = loc;
}
LGraphObject.call(this, vNode);
- if (gm.graphManager != null)
- gm = gm.graphManager;
+ if (gm.graphManager != null) gm = gm.graphManager;
this.estimatedSize = Integer.MIN_VALUE;
this.inclusionTreeDepth = Integer.MAX_VALUE;
this.vGraphObject = vNode;
this.edges = [];
this.graphManager = gm;
- if (size2 != null && loc != null)
- this.rect = new RectangleD(loc.x, loc.y, size2.width, size2.height);
- else
- this.rect = new RectangleD();
+ if (size5 != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size5.width, size5.height);
+ else this.rect = new RectangleD();
}
+ __name(LNode, "LNode");
LNode.prototype = Object.create(LGraphObject.prototype);
for (var prop in LGraphObject) {
LNode[prop] = LGraphObject[prop];
@@ -163525,8 +131061,8 @@ g.stateGroup line {
LNode.prototype.getWidth = function() {
return this.rect.width;
};
- LNode.prototype.setWidth = function(width2) {
- this.rect.width = width2;
+ LNode.prototype.setWidth = function(width3) {
+ this.rect.width = width3;
};
LNode.prototype.getHeight = function() {
return this.rect.height;
@@ -163565,37 +131101,37 @@ g.stateGroup line {
this.rect.x = cx - this.rect.width / 2;
this.rect.y = cy - this.rect.height / 2;
};
- LNode.prototype.setLocation = function(x2, y2) {
- this.rect.x = x2;
- this.rect.y = y2;
+ LNode.prototype.setLocation = function(x5, y5) {
+ this.rect.x = x5;
+ this.rect.y = y5;
};
LNode.prototype.moveBy = function(dx, dy) {
this.rect.x += dx;
this.rect.y += dy;
};
LNode.prototype.getEdgeListToNode = function(to) {
- var edgeList = [];
+ var edgeList2 = [];
+ var edge;
var self2 = this;
- self2.edges.forEach(function(edge) {
- if (edge.target == to) {
- if (edge.source != self2)
- throw "Incorrect edge source!";
- edgeList.push(edge);
+ self2.edges.forEach(function(edge2) {
+ if (edge2.target == to) {
+ if (edge2.source != self2) throw "Incorrect edge source!";
+ edgeList2.push(edge2);
}
});
- return edgeList;
+ return edgeList2;
};
LNode.prototype.getEdgesBetween = function(other) {
- var edgeList = [];
+ var edgeList2 = [];
+ var edge;
var self2 = this;
- self2.edges.forEach(function(edge) {
- if (!(edge.source == self2 || edge.target == self2))
- throw "Incorrect edge source and/or target";
- if (edge.target == other || edge.source == other) {
- edgeList.push(edge);
+ self2.edges.forEach(function(edge2) {
+ if (!(edge2.source == self2 || edge2.target == self2)) throw "Incorrect edge source and/or target";
+ if (edge2.target == other || edge2.source == other) {
+ edgeList2.push(edge2);
}
});
- return edgeList;
+ return edgeList2;
};
LNode.prototype.getNeighborsList = function() {
var neighbors = /* @__PURE__ */ new Set();
@@ -163618,9 +131154,9 @@ g.stateGroup line {
var children2;
withNeighborsList.add(this);
if (this.child != null) {
- var nodes2 = this.child.getNodes();
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- childNode = nodes2[i2];
+ var nodes6 = this.child.getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ childNode = nodes6[i2];
children2 = childNode.withChildren();
children2.forEach(function(node2) {
withNeighborsList.add(node2);
@@ -163635,9 +131171,9 @@ g.stateGroup line {
if (this.child == null) {
noOfChildren = 1;
} else {
- var nodes2 = this.child.getNodes();
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- childNode = nodes2[i2];
+ var nodes6 = this.child.getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ childNode = nodes6[i2];
noOfChildren += childNode.getNoOfChildren();
}
}
@@ -163686,19 +131222,29 @@ g.stateGroup line {
this.setWidth(childGraph.getRight() - childGraph.getLeft());
this.setHeight(childGraph.getBottom() - childGraph.getTop());
if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {
- var width2 = childGraph.getRight() - childGraph.getLeft();
+ var width3 = childGraph.getRight() - childGraph.getLeft();
var height2 = childGraph.getBottom() - childGraph.getTop();
- if (this.labelWidth > width2) {
- this.rect.x -= (this.labelWidth - width2) / 2;
- this.setWidth(this.labelWidth);
+ if (this.labelWidth) {
+ if (this.labelPosHorizontal == "left") {
+ this.rect.x -= this.labelWidth;
+ this.setWidth(width3 + this.labelWidth);
+ } else if (this.labelPosHorizontal == "center" && this.labelWidth > width3) {
+ this.rect.x -= (this.labelWidth - width3) / 2;
+ this.setWidth(this.labelWidth);
+ } else if (this.labelPosHorizontal == "right") {
+ this.setWidth(width3 + this.labelWidth);
+ }
}
- if (this.labelHeight > height2) {
- if (this.labelPos == "center") {
+ if (this.labelHeight) {
+ if (this.labelPosVertical == "top") {
+ this.rect.y -= this.labelHeight;
+ this.setHeight(height2 + this.labelHeight);
+ } else if (this.labelPosVertical == "center" && this.labelHeight > height2) {
this.rect.y -= (this.labelHeight - height2) / 2;
- } else if (this.labelPos == "top") {
- this.rect.y -= this.labelHeight - height2;
+ this.setHeight(this.labelHeight);
+ } else if (this.labelPosVertical == "bottom") {
+ this.setHeight(height2 + this.labelHeight);
}
- this.setHeight(this.labelHeight);
}
}
}
@@ -163710,11 +131256,11 @@ g.stateGroup line {
return this.inclusionTreeDepth;
};
LNode.prototype.transform = function(trans) {
- var left2 = this.rect.x;
- if (left2 > LayoutConstants.WORLD_BOUNDARY) {
- left2 = LayoutConstants.WORLD_BOUNDARY;
- } else if (left2 < -LayoutConstants.WORLD_BOUNDARY) {
- left2 = -LayoutConstants.WORLD_BOUNDARY;
+ var left3 = this.rect.x;
+ if (left3 > LayoutConstants.WORLD_BOUNDARY) {
+ left3 = LayoutConstants.WORLD_BOUNDARY;
+ } else if (left3 < -LayoutConstants.WORLD_BOUNDARY) {
+ left3 = -LayoutConstants.WORLD_BOUNDARY;
}
var top2 = this.rect.y;
if (top2 > LayoutConstants.WORLD_BOUNDARY) {
@@ -163722,7 +131268,7 @@ g.stateGroup line {
} else if (top2 < -LayoutConstants.WORLD_BOUNDARY) {
top2 = -LayoutConstants.WORLD_BOUNDARY;
}
- var leftTop = new PointD(left2, top2);
+ var leftTop = new PointD(left3, top2);
var vLeftTop = trans.inverseTransformPoint(leftTop);
this.setLocation(vLeftTop.x, vLeftTop.y);
};
@@ -163749,26 +131295,62 @@ g.stateGroup line {
/* 4 */
/***/
function(module3, exports3, __webpack_require__) {
- function PointD(x2, y2) {
- if (x2 == null && y2 == null) {
+ "use strict";
+ var LayoutConstants = __webpack_require__(0);
+ function FDLayoutConstants() {
+ }
+ __name(FDLayoutConstants, "FDLayoutConstants");
+ for (var prop in LayoutConstants) {
+ FDLayoutConstants[prop] = LayoutConstants[prop];
+ }
+ FDLayoutConstants.MAX_ITERATIONS = 2500;
+ FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;
+ FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;
+ FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500;
+ FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;
+ FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1;
+ FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;
+ FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;
+ FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;
+ FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;
+ FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;
+ FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;
+ FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1e3;
+ FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5e3;
+ FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100;
+ FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;
+ FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10;
+ FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;
+ FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;
+ FDLayoutConstants.MIN_EDGE_LENGTH = 1;
+ FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;
+ module3.exports = FDLayoutConstants;
+ },
+ /* 5 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ function PointD(x5, y5) {
+ if (x5 == null && y5 == null) {
this.x = 0;
this.y = 0;
} else {
- this.x = x2;
- this.y = y2;
+ this.x = x5;
+ this.y = y5;
}
}
+ __name(PointD, "PointD");
PointD.prototype.getX = function() {
return this.x;
};
PointD.prototype.getY = function() {
return this.y;
};
- PointD.prototype.setX = function(x2) {
- this.x = x2;
+ PointD.prototype.setX = function(x5) {
+ this.x = x5;
};
- PointD.prototype.setY = function(y2) {
- this.y = y2;
+ PointD.prototype.setY = function(y5) {
+ this.y = y5;
};
PointD.prototype.getDifference = function(pt) {
return new DimensionD(this.x - pt.x, this.y - pt.y);
@@ -163783,32 +131365,34 @@ g.stateGroup line {
};
module3.exports = PointD;
},
- /* 5 */
+ /* 6 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var LGraphObject = __webpack_require__(2);
var Integer = __webpack_require__(10);
var LayoutConstants = __webpack_require__(0);
- var LGraphManager = __webpack_require__(6);
+ var LGraphManager = __webpack_require__(7);
var LNode = __webpack_require__(3);
var LEdge = __webpack_require__(1);
var RectangleD = __webpack_require__(13);
- var Point2 = __webpack_require__(12);
+ var Point3 = __webpack_require__(12);
var LinkedList = __webpack_require__(11);
- function LGraph(parent, obj2, vGraph) {
+ function LGraph(parent4, obj2, vGraph) {
LGraphObject.call(this, vGraph);
this.estimatedSize = Integer.MIN_VALUE;
this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;
this.edges = [];
this.nodes = [];
this.isConnected = false;
- this.parent = parent;
+ this.parent = parent4;
if (obj2 != null && obj2 instanceof LGraphManager) {
this.graphManager = obj2;
} else if (obj2 != null && obj2 instanceof Layout) {
this.graphManager = obj2.graphManager;
}
}
+ __name(LGraph, "LGraph");
LGraph.prototype = Object.create(LGraphObject.prototype);
for (var prop in LGraphObject) {
LGraph[prop] = LGraphObject[prop];
@@ -163888,8 +131472,8 @@ g.stateGroup line {
}
var edgesToBeRemoved = node2.edges.slice();
var edge;
- var s = edgesToBeRemoved.length;
- for (var i2 = 0; i2 < s; i2++) {
+ var s2 = edgesToBeRemoved.length;
+ for (var i2 = 0; i2 < s2; i2++) {
edge = edgesToBeRemoved[i2];
if (edge.isInterGraph) {
this.graphManager.remove(edge);
@@ -163931,38 +131515,38 @@ g.stateGroup line {
};
LGraph.prototype.updateLeftTop = function() {
var top2 = Integer.MAX_VALUE;
- var left2 = Integer.MAX_VALUE;
+ var left3 = Integer.MAX_VALUE;
var nodeTop;
var nodeLeft;
var margin;
- var nodes2 = this.getNodes();
- var s = nodes2.length;
- for (var i2 = 0; i2 < s; i2++) {
- var lNode = nodes2[i2];
+ var nodes6 = this.getNodes();
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
nodeTop = lNode.getTop();
nodeLeft = lNode.getLeft();
if (top2 > nodeTop) {
top2 = nodeTop;
}
- if (left2 > nodeLeft) {
- left2 = nodeLeft;
+ if (left3 > nodeLeft) {
+ left3 = nodeLeft;
}
}
if (top2 == Integer.MAX_VALUE) {
return null;
}
- if (nodes2[0].getParent().paddingLeft != void 0) {
- margin = nodes2[0].getParent().paddingLeft;
+ if (nodes6[0].getParent().paddingLeft != void 0) {
+ margin = nodes6[0].getParent().paddingLeft;
} else {
margin = this.margin;
}
- this.left = left2 - margin;
+ this.left = left3 - margin;
this.top = top2 - margin;
- return new Point2(this.left, this.top);
+ return new Point3(this.left, this.top);
};
LGraph.prototype.updateBounds = function(recursive) {
- var left2 = Integer.MAX_VALUE;
- var right2 = -Integer.MAX_VALUE;
+ var left3 = Integer.MAX_VALUE;
+ var right3 = -Integer.MAX_VALUE;
var top2 = Integer.MAX_VALUE;
var bottom2 = -Integer.MAX_VALUE;
var nodeLeft;
@@ -163970,10 +131554,10 @@ g.stateGroup line {
var nodeTop;
var nodeBottom;
var margin;
- var nodes2 = this.nodes;
- var s = nodes2.length;
- for (var i2 = 0; i2 < s; i2++) {
- var lNode = nodes2[i2];
+ var nodes6 = this.nodes;
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
if (recursive && lNode.child != null) {
lNode.updateBounds();
}
@@ -163981,11 +131565,11 @@ g.stateGroup line {
nodeRight = lNode.getRight();
nodeTop = lNode.getTop();
nodeBottom = lNode.getBottom();
- if (left2 > nodeLeft) {
- left2 = nodeLeft;
+ if (left3 > nodeLeft) {
+ left3 = nodeLeft;
}
- if (right2 < nodeRight) {
- right2 = nodeRight;
+ if (right3 < nodeRight) {
+ right3 = nodeRight;
}
if (top2 > nodeTop) {
top2 = nodeTop;
@@ -163994,15 +131578,15 @@ g.stateGroup line {
bottom2 = nodeBottom;
}
}
- var boundingRect = new RectangleD(left2, top2, right2 - left2, bottom2 - top2);
- if (left2 == Integer.MAX_VALUE) {
+ var boundingRect = new RectangleD(left3, top2, right3 - left3, bottom2 - top2);
+ if (left3 == Integer.MAX_VALUE) {
this.left = this.parent.getLeft();
this.right = this.parent.getRight();
this.top = this.parent.getTop();
this.bottom = this.parent.getBottom();
}
- if (nodes2[0].getParent().paddingLeft != void 0) {
- margin = nodes2[0].getParent().paddingLeft;
+ if (nodes6[0].getParent().paddingLeft != void 0) {
+ margin = nodes6[0].getParent().paddingLeft;
} else {
margin = this.margin;
}
@@ -164011,27 +131595,27 @@ g.stateGroup line {
this.top = boundingRect.y - margin;
this.bottom = boundingRect.y + boundingRect.height + margin;
};
- LGraph.calculateBounds = function(nodes2) {
- var left2 = Integer.MAX_VALUE;
- var right2 = -Integer.MAX_VALUE;
+ LGraph.calculateBounds = function(nodes6) {
+ var left3 = Integer.MAX_VALUE;
+ var right3 = -Integer.MAX_VALUE;
var top2 = Integer.MAX_VALUE;
var bottom2 = -Integer.MAX_VALUE;
var nodeLeft;
var nodeRight;
var nodeTop;
var nodeBottom;
- var s = nodes2.length;
- for (var i2 = 0; i2 < s; i2++) {
- var lNode = nodes2[i2];
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
nodeLeft = lNode.getLeft();
nodeRight = lNode.getRight();
nodeTop = lNode.getTop();
nodeBottom = lNode.getBottom();
- if (left2 > nodeLeft) {
- left2 = nodeLeft;
+ if (left3 > nodeLeft) {
+ left3 = nodeLeft;
}
- if (right2 < nodeRight) {
- right2 = nodeRight;
+ if (right3 < nodeRight) {
+ right3 = nodeRight;
}
if (top2 > nodeTop) {
top2 = nodeTop;
@@ -164040,7 +131624,7 @@ g.stateGroup line {
bottom2 = nodeBottom;
}
}
- var boundingRect = new RectangleD(left2, top2, right2 - left2, bottom2 - top2);
+ var boundingRect = new RectangleD(left3, top2, right3 - left3, bottom2 - top2);
return boundingRect;
};
LGraph.prototype.getInclusionTreeDepth = function() {
@@ -164057,17 +131641,17 @@ g.stateGroup line {
return this.estimatedSize;
};
LGraph.prototype.calcEstimatedSize = function() {
- var size2 = 0;
- var nodes2 = this.nodes;
- var s = nodes2.length;
- for (var i2 = 0; i2 < s; i2++) {
- var lNode = nodes2[i2];
- size2 += lNode.calcEstimatedSize();
- }
- if (size2 == 0) {
+ var size5 = 0;
+ var nodes6 = this.nodes;
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var lNode = nodes6[i2];
+ size5 += lNode.calcEstimatedSize();
+ }
+ if (size5 == 0) {
this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;
} else {
- this.estimatedSize = size2 / Math.sqrt(this.nodes.length);
+ this.estimatedSize = size5 / Math.sqrt(this.nodes.length);
}
return this.estimatedSize;
};
@@ -164090,8 +131674,8 @@ g.stateGroup line {
while (queue.length !== 0) {
currentNode = queue.shift();
neighborEdges = currentNode.getEdges();
- var size2 = neighborEdges.length;
- for (var i2 = 0; i2 < size2; i2++) {
+ var size5 = neighborEdges.length;
+ for (var i2 = 0; i2 < size5; i2++) {
var neighborEdge = neighborEdges[i2];
currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);
if (currentNeighbor != null && !visited.has(currentNeighbor)) {
@@ -164118,22 +131702,24 @@ g.stateGroup line {
};
module3.exports = LGraph;
},
- /* 6 */
+ /* 7 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var LGraph;
var LEdge = __webpack_require__(1);
- function LGraphManager(layout2) {
- LGraph = __webpack_require__(5);
- this.layout = layout2;
+ function LGraphManager(layout6) {
+ LGraph = __webpack_require__(6);
+ this.layout = layout6;
this.graphs = [];
this.edges = [];
}
+ __name(LGraphManager, "LGraphManager");
LGraphManager.prototype.addRoot = function() {
var ngraph = this.layout.newGraph();
var nnode = this.layout.newNode(null);
- var root2 = this.add(ngraph, nnode);
- this.setRootGraph(root2);
+ var root4 = this.add(ngraph, nnode);
+ this.setRootGraph(root4);
return this.rootGraph;
};
LGraphManager.prototype.add = function(newGraph, parentNode, newEdge, sourceNode, targetNode) {
@@ -164204,16 +131790,16 @@ g.stateGroup line {
var edgesToBeRemoved = [];
edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());
var edge;
- var s = edgesToBeRemoved.length;
- for (var i2 = 0; i2 < s; i2++) {
+ var s2 = edgesToBeRemoved.length;
+ for (var i2 = 0; i2 < s2; i2++) {
edge = edgesToBeRemoved[i2];
graph.remove(edge);
}
var nodesToBeRemoved = [];
nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());
var node2;
- s = nodesToBeRemoved.length;
- for (var i2 = 0; i2 < s; i2++) {
+ s2 = nodesToBeRemoved.length;
+ for (var i2 = 0; i2 < s2; i2++) {
node2 = nodesToBeRemoved[i2];
graph.remove(node2);
}
@@ -164261,8 +131847,8 @@ g.stateGroup line {
if (this.allNodes == null) {
var nodeList = [];
var graphs = this.getGraphs();
- var s = graphs.length;
- for (var i2 = 0; i2 < s; i2++) {
+ var s2 = graphs.length;
+ for (var i2 = 0; i2 < s2; i2++) {
nodeList = nodeList.concat(graphs[i2].getNodes());
}
this.allNodes = nodeList;
@@ -164280,14 +131866,14 @@ g.stateGroup line {
};
LGraphManager.prototype.getAllEdges = function() {
if (this.allEdges == null) {
- var edgeList = [];
+ var edgeList2 = [];
var graphs = this.getGraphs();
- graphs.length;
+ var s2 = graphs.length;
for (var i2 = 0; i2 < graphs.length; i2++) {
- edgeList = edgeList.concat(graphs[i2].getEdges());
+ edgeList2 = edgeList2.concat(graphs[i2].getEdges());
}
- edgeList = edgeList.concat(this.edges);
- this.allEdges = edgeList;
+ edgeList2 = edgeList2.concat(this.edges);
+ this.allEdges = edgeList2;
}
return this.allEdges;
};
@@ -164359,10 +131945,10 @@ g.stateGroup line {
var targetNode;
var sourceAncestorGraph;
var targetAncestorGraph;
- var edges2 = this.getAllEdges();
- var s = edges2.length;
- for (var i2 = 0; i2 < s; i2++) {
- edge = edges2[i2];
+ var edges5 = this.getAllEdges();
+ var s2 = edges5.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ edge = edges5[i2];
sourceNode = edge.source;
targetNode = edge.target;
edge.lca = null;
@@ -164432,10 +132018,10 @@ g.stateGroup line {
depth = 1;
}
var node2;
- var nodes2 = graph.getNodes();
- var s = nodes2.length;
- for (var i2 = 0; i2 < s; i2++) {
- node2 = nodes2[i2];
+ var nodes6 = graph.getNodes();
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ node2 = nodes6[i2];
node2.inclusionTreeDepth = depth;
if (node2.child != null) {
this.calcInclusionTreeDepths(node2.child, depth + 1);
@@ -164444,55 +132030,29 @@ g.stateGroup line {
};
LGraphManager.prototype.includesInvalidEdge = function() {
var edge;
- var s = this.edges.length;
- for (var i2 = 0; i2 < s; i2++) {
+ var edgesToRemove = [];
+ var s2 = this.edges.length;
+ for (var i2 = 0; i2 < s2; i2++) {
edge = this.edges[i2];
if (this.isOneAncestorOfOther(edge.source, edge.target)) {
- return true;
+ edgesToRemove.push(edge);
}
}
+ for (var i2 = 0; i2 < edgesToRemove.length; i2++) {
+ this.remove(edgesToRemove[i2]);
+ }
return false;
};
module3.exports = LGraphManager;
},
- /* 7 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var LayoutConstants = __webpack_require__(0);
- function FDLayoutConstants() {
- }
- for (var prop in LayoutConstants) {
- FDLayoutConstants[prop] = LayoutConstants[prop];
- }
- FDLayoutConstants.MAX_ITERATIONS = 2500;
- FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;
- FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;
- FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500;
- FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;
- FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1;
- FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;
- FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;
- FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;
- FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;
- FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;
- FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;
- FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1e3;
- FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5e3;
- FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100;
- FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;
- FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10;
- FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;
- FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;
- FDLayoutConstants.MIN_EDGE_LENGTH = 1;
- FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;
- module3.exports = FDLayoutConstants;
- },
/* 8 */
/***/
function(module3, exports3, __webpack_require__) {
- var Point2 = __webpack_require__(12);
+ "use strict";
+ var Point3 = __webpack_require__(12);
function IGeometry() {
}
+ __name(IGeometry, "IGeometry");
IGeometry.calcSeparationAmount = function(rectA, rectB, overlapAmount, separationBuffer) {
if (!rectA.intersects(rectB)) {
throw "assert failed";
@@ -164580,8 +132140,8 @@ g.stateGroup line {
result[2] = p2x;
result[3] = topLeftBy;
return false;
- } else
- ;
+ } else {
+ }
} else if (p1y === p2y) {
if (p1x > p2x) {
result[0] = topLeftAx;
@@ -164595,8 +132155,8 @@ g.stateGroup line {
result[2] = topLeftBx;
result[3] = p2y;
return false;
- } else
- ;
+ } else {
+ }
} else {
var slopeA = rectA.height / rectA.width;
var slopeB = rectB.height / rectB.width;
@@ -164735,34 +132295,34 @@ g.stateGroup line {
return 1 + line2 % 4;
}
};
- IGeometry.getIntersection = function(s1, s2, f1, f2) {
- if (f2 == null) {
+ IGeometry.getIntersection = function(s1, s2, f1, f22) {
+ if (f22 == null) {
return this.getIntersection2(s1, s2, f1);
}
var x1 = s1.x;
var y1 = s1.y;
- var x2 = s2.x;
- var y2 = s2.y;
- var x3 = f1.x;
- var y3 = f1.y;
- var x4 = f2.x;
- var y4 = f2.y;
+ var x22 = s2.x;
+ var y22 = s2.y;
+ var x32 = f1.x;
+ var y32 = f1.y;
+ var x42 = f22.x;
+ var y42 = f22.y;
var x5 = void 0, y5 = void 0;
- var a1 = void 0, a2 = void 0, b1 = void 0, b2 = void 0, c1 = void 0, c2 = void 0;
+ var a1 = void 0, a2 = void 0, b1 = void 0, b2 = void 0, c1 = void 0, c22 = void 0;
var denom = void 0;
- a1 = y2 - y1;
- b1 = x1 - x2;
- c1 = x2 * y1 - x1 * y2;
- a2 = y4 - y3;
- b2 = x3 - x4;
- c2 = x4 * y3 - x3 * y4;
+ a1 = y22 - y1;
+ b1 = x1 - x22;
+ c1 = x22 * y1 - x1 * y22;
+ a2 = y42 - y32;
+ b2 = x32 - x42;
+ c22 = x42 * y32 - x32 * y42;
denom = a1 * b2 - a2 * b1;
if (denom === 0) {
return null;
}
- x5 = (b1 * c2 - b2 * c1) / denom;
- y5 = (a2 * c1 - a1 * c2) / denom;
- return new Point2(x5, y5);
+ x5 = (b1 * c22 - b2 * c1) / denom;
+ y5 = (a2 * c1 - a1 * c22) / denom;
+ return new Point3(x5, y5);
};
IGeometry.angleOfVector = function(Cx, Cy, Nx, Ny) {
var C_angle = void 0;
@@ -164780,24 +132340,42 @@ g.stateGroup line {
}
return C_angle;
};
- IGeometry.doIntersect = function(p1, p2, p3, p4) {
- var a = p1.x;
- var b = p1.y;
- var c2 = p2.x;
- var d = p2.y;
- var p = p3.x;
- var q = p3.y;
- var r = p4.x;
- var s = p4.y;
- var det = (c2 - a) * (s - q) - (r - p) * (d - b);
+ IGeometry.doIntersect = function(p1, p22, p3, p4) {
+ var a2 = p1.x;
+ var b2 = p1.y;
+ var c3 = p22.x;
+ var d2 = p22.y;
+ var p5 = p3.x;
+ var q2 = p3.y;
+ var r2 = p4.x;
+ var s2 = p4.y;
+ var det = (c3 - a2) * (s2 - q2) - (r2 - p5) * (d2 - b2);
if (det === 0) {
return false;
} else {
- var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;
- var gamma2 = ((b - d) * (r - a) + (c2 - a) * (s - b)) / det;
+ var lambda = ((s2 - q2) * (r2 - a2) + (p5 - r2) * (s2 - b2)) / det;
+ var gamma2 = ((b2 - d2) * (r2 - a2) + (c3 - a2) * (s2 - b2)) / det;
return 0 < lambda && lambda < 1 && 0 < gamma2 && gamma2 < 1;
}
};
+ IGeometry.findCircleLineIntersections = function(Ex, Ey, Lx, Ly, Cx, Cy, r2) {
+ var a2 = (Lx - Ex) * (Lx - Ex) + (Ly - Ey) * (Ly - Ey);
+ var b2 = 2 * ((Ex - Cx) * (Lx - Ex) + (Ey - Cy) * (Ly - Ey));
+ var c3 = (Ex - Cx) * (Ex - Cx) + (Ey - Cy) * (Ey - Cy) - r2 * r2;
+ var disc = b2 * b2 - 4 * a2 * c3;
+ if (disc >= 0) {
+ var t13 = (-b2 + Math.sqrt(b2 * b2 - 4 * a2 * c3)) / (2 * a2);
+ var t22 = (-b2 - Math.sqrt(b2 * b2 - 4 * a2 * c3)) / (2 * a2);
+ var intersections = null;
+ if (t13 >= 0 && t13 <= 1) {
+ return [t13];
+ }
+ if (t22 >= 0 && t22 <= 1) {
+ return [t22];
+ }
+ return intersections;
+ } else return null;
+ };
IGeometry.HALF_PI = 0.5 * Math.PI;
IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;
IGeometry.TWO_PI = 2 * Math.PI;
@@ -164807,30 +132385,34 @@ g.stateGroup line {
/* 9 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
function IMath() {
}
- IMath.sign = function(value) {
- if (value > 0) {
+ __name(IMath, "IMath");
+ IMath.sign = function(value2) {
+ if (value2 > 0) {
return 1;
- } else if (value < 0) {
+ } else if (value2 < 0) {
return -1;
} else {
return 0;
}
};
- IMath.floor = function(value) {
- return value < 0 ? Math.ceil(value) : Math.floor(value);
+ IMath.floor = function(value2) {
+ return value2 < 0 ? Math.ceil(value2) : Math.floor(value2);
};
- IMath.ceil = function(value) {
- return value < 0 ? Math.floor(value) : Math.ceil(value);
+ IMath.ceil = function(value2) {
+ return value2 < 0 ? Math.floor(value2) : Math.ceil(value2);
};
module3.exports = IMath;
},
/* 10 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
function Integer() {
}
+ __name(Integer, "Integer");
Integer.MAX_VALUE = 2147483647;
Integer.MIN_VALUE = -2147483648;
module3.exports = Integer;
@@ -164838,141 +132420,142 @@ g.stateGroup line {
/* 11 */
/***/
function(module3, exports3, __webpack_require__) {
- var _createClass = function() {
+ "use strict";
+ var _createClass2 = /* @__PURE__ */ function() {
function defineProperties(target, props) {
for (var i2 = 0; i2 < props.length; i2++) {
var descriptor = props[i2];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
+ if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
+ __name(defineProperties, "defineProperties");
return function(Constructor, protoProps, staticProps) {
- if (protoProps)
- defineProperties(Constructor.prototype, protoProps);
- if (staticProps)
- defineProperties(Constructor, staticProps);
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
- function _classCallCheck(instance2, Constructor) {
+ function _classCallCheck2(instance2, Constructor) {
if (!(instance2 instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
- var nodeFrom = function nodeFrom2(value) {
- return { value, next: null, prev: null };
- };
- var add = function add2(prev2, node2, next2, list) {
+ __name(_classCallCheck2, "_classCallCheck");
+ var nodeFrom = /* @__PURE__ */ __name(function nodeFrom2(value2) {
+ return { value: value2, next: null, prev: null };
+ }, "nodeFrom");
+ var add3 = /* @__PURE__ */ __name(function add4(prev2, node2, next3, list2) {
if (prev2 !== null) {
prev2.next = node2;
} else {
- list.head = node2;
+ list2.head = node2;
}
- if (next2 !== null) {
- next2.prev = node2;
+ if (next3 !== null) {
+ next3.prev = node2;
} else {
- list.tail = node2;
+ list2.tail = node2;
}
node2.prev = prev2;
- node2.next = next2;
- list.length++;
+ node2.next = next3;
+ list2.length++;
return node2;
- };
- var _remove = function _remove2(node2, list) {
- var prev2 = node2.prev, next2 = node2.next;
+ }, "add");
+ var _remove = /* @__PURE__ */ __name(function _remove2(node2, list2) {
+ var prev2 = node2.prev, next3 = node2.next;
if (prev2 !== null) {
- prev2.next = next2;
+ prev2.next = next3;
} else {
- list.head = next2;
+ list2.head = next3;
}
- if (next2 !== null) {
- next2.prev = prev2;
+ if (next3 !== null) {
+ next3.prev = prev2;
} else {
- list.tail = prev2;
+ list2.tail = prev2;
}
node2.prev = node2.next = null;
- list.length--;
+ list2.length--;
return node2;
- };
+ }, "_remove");
var LinkedList = function() {
function LinkedList2(vals) {
var _this = this;
- _classCallCheck(this, LinkedList2);
+ _classCallCheck2(this, LinkedList2);
this.length = 0;
this.head = null;
this.tail = null;
if (vals != null) {
- vals.forEach(function(v) {
- return _this.push(v);
+ vals.forEach(function(v3) {
+ return _this.push(v3);
});
}
}
- _createClass(LinkedList2, [{
+ __name(LinkedList2, "LinkedList");
+ _createClass2(LinkedList2, [{
key: "size",
- value: function size2() {
+ value: /* @__PURE__ */ __name(function size5() {
return this.length;
- }
+ }, "size")
}, {
key: "insertBefore",
- value: function insertBefore(val, otherNode) {
- return add(otherNode.prev, nodeFrom(val), otherNode, this);
- }
+ value: /* @__PURE__ */ __name(function insertBefore(val, otherNode) {
+ return add3(otherNode.prev, nodeFrom(val), otherNode, this);
+ }, "insertBefore")
}, {
key: "insertAfter",
- value: function insertAfter(val, otherNode) {
- return add(otherNode, nodeFrom(val), otherNode.next, this);
- }
+ value: /* @__PURE__ */ __name(function insertAfter(val, otherNode) {
+ return add3(otherNode, nodeFrom(val), otherNode.next, this);
+ }, "insertAfter")
}, {
key: "insertNodeBefore",
- value: function insertNodeBefore(newNode, otherNode) {
- return add(otherNode.prev, newNode, otherNode, this);
- }
+ value: /* @__PURE__ */ __name(function insertNodeBefore(newNode, otherNode) {
+ return add3(otherNode.prev, newNode, otherNode, this);
+ }, "insertNodeBefore")
}, {
key: "insertNodeAfter",
- value: function insertNodeAfter(newNode, otherNode) {
- return add(otherNode, newNode, otherNode.next, this);
- }
+ value: /* @__PURE__ */ __name(function insertNodeAfter(newNode, otherNode) {
+ return add3(otherNode, newNode, otherNode.next, this);
+ }, "insertNodeAfter")
}, {
key: "push",
- value: function push(val) {
- return add(this.tail, nodeFrom(val), null, this);
- }
+ value: /* @__PURE__ */ __name(function push3(val) {
+ return add3(this.tail, nodeFrom(val), null, this);
+ }, "push")
}, {
key: "unshift",
- value: function unshift(val) {
- return add(null, nodeFrom(val), this.head, this);
- }
+ value: /* @__PURE__ */ __name(function unshift(val) {
+ return add3(null, nodeFrom(val), this.head, this);
+ }, "unshift")
}, {
key: "remove",
- value: function remove2(node2) {
+ value: /* @__PURE__ */ __name(function remove3(node2) {
return _remove(node2, this);
- }
+ }, "remove")
}, {
key: "pop",
- value: function pop() {
+ value: /* @__PURE__ */ __name(function pop() {
return _remove(this.tail, this).value;
- }
+ }, "pop")
}, {
key: "popNode",
- value: function popNode() {
+ value: /* @__PURE__ */ __name(function popNode() {
return _remove(this.tail, this);
- }
+ }, "popNode")
}, {
key: "shift",
- value: function shift() {
+ value: /* @__PURE__ */ __name(function shift2() {
return _remove(this.head, this).value;
- }
+ }, "shift")
}, {
key: "shiftNode",
- value: function shiftNode() {
+ value: /* @__PURE__ */ __name(function shiftNode() {
return _remove(this.head, this);
- }
+ }, "shiftNode")
}, {
key: "get_object_at",
- value: function get_object_at(index) {
+ value: /* @__PURE__ */ __name(function get_object_at(index) {
if (index <= this.length()) {
var i2 = 1;
var current = this.head;
@@ -164982,10 +132565,10 @@ g.stateGroup line {
}
return current.value;
}
- }
+ }, "get_object_at")
}, {
key: "set_object_at",
- value: function set_object_at(index, value) {
+ value: /* @__PURE__ */ __name(function set_object_at(index, value2) {
if (index <= this.length()) {
var i2 = 1;
var current = this.head;
@@ -164993,9 +132576,9 @@ g.stateGroup line {
current = current.next;
i2++;
}
- current.value = value;
+ current.value = value2;
}
- }
+ }, "set_object_at")
}]);
return LinkedList2;
}();
@@ -165004,95 +132587,99 @@ g.stateGroup line {
/* 12 */
/***/
function(module3, exports3, __webpack_require__) {
- function Point2(x2, y2, p) {
+ "use strict";
+ function Point3(x5, y5, p3) {
this.x = null;
this.y = null;
- if (x2 == null && y2 == null && p == null) {
+ if (x5 == null && y5 == null && p3 == null) {
this.x = 0;
this.y = 0;
- } else if (typeof x2 == "number" && typeof y2 == "number" && p == null) {
- this.x = x2;
- this.y = y2;
- } else if (x2.constructor.name == "Point" && y2 == null && p == null) {
- p = x2;
- this.x = p.x;
- this.y = p.y;
+ } else if (typeof x5 == "number" && typeof y5 == "number" && p3 == null) {
+ this.x = x5;
+ this.y = y5;
+ } else if (x5.constructor.name == "Point" && y5 == null && p3 == null) {
+ p3 = x5;
+ this.x = p3.x;
+ this.y = p3.y;
}
}
- Point2.prototype.getX = function() {
+ __name(Point3, "Point");
+ Point3.prototype.getX = function() {
return this.x;
};
- Point2.prototype.getY = function() {
+ Point3.prototype.getY = function() {
return this.y;
};
- Point2.prototype.getLocation = function() {
- return new Point2(this.x, this.y);
+ Point3.prototype.getLocation = function() {
+ return new Point3(this.x, this.y);
};
- Point2.prototype.setLocation = function(x2, y2, p) {
- if (x2.constructor.name == "Point" && y2 == null && p == null) {
- p = x2;
- this.setLocation(p.x, p.y);
- } else if (typeof x2 == "number" && typeof y2 == "number" && p == null) {
- if (parseInt(x2) == x2 && parseInt(y2) == y2) {
- this.move(x2, y2);
+ Point3.prototype.setLocation = function(x5, y5, p3) {
+ if (x5.constructor.name == "Point" && y5 == null && p3 == null) {
+ p3 = x5;
+ this.setLocation(p3.x, p3.y);
+ } else if (typeof x5 == "number" && typeof y5 == "number" && p3 == null) {
+ if (parseInt(x5) == x5 && parseInt(y5) == y5) {
+ this.move(x5, y5);
} else {
- this.x = Math.floor(x2 + 0.5);
- this.y = Math.floor(y2 + 0.5);
+ this.x = Math.floor(x5 + 0.5);
+ this.y = Math.floor(y5 + 0.5);
}
}
};
- Point2.prototype.move = function(x2, y2) {
- this.x = x2;
- this.y = y2;
+ Point3.prototype.move = function(x5, y5) {
+ this.x = x5;
+ this.y = y5;
};
- Point2.prototype.translate = function(dx, dy) {
+ Point3.prototype.translate = function(dx, dy) {
this.x += dx;
this.y += dy;
};
- Point2.prototype.equals = function(obj) {
+ Point3.prototype.equals = function(obj) {
if (obj.constructor.name == "Point") {
var pt = obj;
return this.x == pt.x && this.y == pt.y;
}
return this == obj;
};
- Point2.prototype.toString = function() {
- return new Point2().constructor.name + "[x=" + this.x + ",y=" + this.y + "]";
+ Point3.prototype.toString = function() {
+ return new Point3().constructor.name + "[x=" + this.x + ",y=" + this.y + "]";
};
- module3.exports = Point2;
+ module3.exports = Point3;
},
/* 13 */
/***/
function(module3, exports3, __webpack_require__) {
- function RectangleD(x2, y2, width2, height2) {
+ "use strict";
+ function RectangleD(x5, y5, width3, height2) {
this.x = 0;
this.y = 0;
this.width = 0;
this.height = 0;
- if (x2 != null && y2 != null && width2 != null && height2 != null) {
- this.x = x2;
- this.y = y2;
- this.width = width2;
+ if (x5 != null && y5 != null && width3 != null && height2 != null) {
+ this.x = x5;
+ this.y = y5;
+ this.width = width3;
this.height = height2;
}
}
+ __name(RectangleD, "RectangleD");
RectangleD.prototype.getX = function() {
return this.x;
};
- RectangleD.prototype.setX = function(x2) {
- this.x = x2;
+ RectangleD.prototype.setX = function(x5) {
+ this.x = x5;
};
RectangleD.prototype.getY = function() {
return this.y;
};
- RectangleD.prototype.setY = function(y2) {
- this.y = y2;
+ RectangleD.prototype.setY = function(y5) {
+ this.y = y5;
};
RectangleD.prototype.getWidth = function() {
return this.width;
};
- RectangleD.prototype.setWidth = function(width2) {
- this.width = width2;
+ RectangleD.prototype.setWidth = function(width3) {
+ this.width = width3;
};
RectangleD.prototype.getHeight = function() {
return this.height;
@@ -165106,17 +132693,17 @@ g.stateGroup line {
RectangleD.prototype.getBottom = function() {
return this.y + this.height;
};
- RectangleD.prototype.intersects = function(a) {
- if (this.getRight() < a.x) {
+ RectangleD.prototype.intersects = function(a2) {
+ if (this.getRight() < a2.x) {
return false;
}
- if (this.getBottom() < a.y) {
+ if (this.getBottom() < a2.y) {
return false;
}
- if (a.getRight() < this.x) {
+ if (a2.getRight() < this.x) {
return false;
}
- if (a.getBottom() < this.y) {
+ if (a2.getBottom() < this.y) {
return false;
}
return true;
@@ -165150,13 +132737,15 @@ g.stateGroup line {
/* 14 */
/***/
function(module3, exports3, __webpack_require__) {
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
+ "use strict";
+ var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
return typeof obj;
} : function(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
function UniqueIDGeneretor() {
}
+ __name(UniqueIDGeneretor, "UniqueIDGeneretor");
UniqueIDGeneretor.lastID = 0;
UniqueIDGeneretor.createID = function(obj) {
if (UniqueIDGeneretor.isPrimitive(obj)) {
@@ -165169,20 +132758,20 @@ g.stateGroup line {
UniqueIDGeneretor.lastID++;
return obj.uniqueID;
};
- UniqueIDGeneretor.getString = function(id2) {
- if (id2 == null)
- id2 = UniqueIDGeneretor.lastID;
- return "Object#" + id2;
+ UniqueIDGeneretor.getString = function(id27) {
+ if (id27 == null) id27 = UniqueIDGeneretor.lastID;
+ return "Object#" + id27;
};
UniqueIDGeneretor.isPrimitive = function(arg) {
- var type2 = typeof arg === "undefined" ? "undefined" : _typeof(arg);
- return arg == null || type2 != "object" && type2 != "function";
+ var type3 = typeof arg === "undefined" ? "undefined" : _typeof2(arg);
+ return arg == null || type3 != "object" && type3 != "function";
};
module3.exports = UniqueIDGeneretor;
},
/* 15 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
function _toConsumableArray(arr) {
if (Array.isArray(arr)) {
for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) {
@@ -165193,16 +132782,17 @@ g.stateGroup line {
return Array.from(arr);
}
}
+ __name(_toConsumableArray, "_toConsumableArray");
var LayoutConstants = __webpack_require__(0);
- var LGraphManager = __webpack_require__(6);
+ var LGraphManager = __webpack_require__(7);
var LNode = __webpack_require__(3);
var LEdge = __webpack_require__(1);
- var LGraph = __webpack_require__(5);
- var PointD = __webpack_require__(4);
+ var LGraph = __webpack_require__(6);
+ var PointD = __webpack_require__(5);
var Transform2 = __webpack_require__(17);
- var Emitter = __webpack_require__(27);
+ var Emitter3 = __webpack_require__(29);
function Layout2(isRemoteUse) {
- Emitter.call(this);
+ Emitter3.call(this);
this.layoutQuality = LayoutConstants.QUALITY;
this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;
@@ -165219,8 +132809,9 @@ g.stateGroup line {
this.isRemoteUse = isRemoteUse;
}
}
+ __name(Layout2, "Layout");
Layout2.RANDOM_SEED = 1;
- Layout2.prototype = Object.create(Emitter.prototype);
+ Layout2.prototype = Object.create(Emitter3.prototype);
Layout2.prototype.getGraphManager = function() {
return this.graphManager;
};
@@ -165288,13 +132879,15 @@ g.stateGroup line {
this.graphManager.resetAllEdges();
}
if (!this.isRemoteUse) {
+ var edge;
var allEdges = this.graphManager.getAllEdges();
for (var i2 = 0; i2 < allEdges.length; i2++) {
- allEdges[i2];
+ edge = allEdges[i2];
}
- var nodes2 = this.graphManager.getRoot().getNodes();
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- nodes2[i2];
+ var node2;
+ var nodes6 = this.graphManager.getRoot().getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ node2 = nodes6[i2];
}
this.update(this.graphManager.getRoot());
}
@@ -165305,9 +132898,9 @@ g.stateGroup line {
} else if (obj instanceof LNode) {
var node2 = obj;
if (node2.getChild() != null) {
- var nodes2 = node2.getChild().getNodes();
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- update(nodes2[i2]);
+ var nodes6 = node2.getChild().getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ update(nodes6[i2]);
}
}
if (node2.vGraphObject != null) {
@@ -165353,10 +132946,10 @@ g.stateGroup line {
trans.setWorldOrgY(newLeftTop.y);
trans.setDeviceOrgX(leftTop.x);
trans.setDeviceOrgY(leftTop.y);
- var nodes2 = this.getAllNodes();
+ var nodes6 = this.getAllNodes();
var node2;
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- node2 = nodes2[i2];
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ node2 = nodes6[i2];
node2.transform(trans);
}
}
@@ -165369,9 +132962,9 @@ g.stateGroup line {
} else {
var lNode;
var childGraph;
- var nodes2 = graph.getNodes();
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- lNode = nodes2[i2];
+ var nodes6 = graph.getNodes();
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ lNode = nodes6[i2];
childGraph = lNode.getChild();
if (childGraph == null) {
lNode.scatter();
@@ -165399,7 +132992,7 @@ g.stateGroup line {
}
var visited = /* @__PURE__ */ new Set();
var toBeVisited = [];
- var parents2 = /* @__PURE__ */ new Map();
+ var parents4 = /* @__PURE__ */ new Map();
var unProcessedNodes = [];
unProcessedNodes = unProcessedNodes.concat(allNodes);
while (unProcessedNodes.length > 0 && isForest) {
@@ -165411,10 +133004,10 @@ g.stateGroup line {
var neighborEdges = currentNode.getEdges();
for (var i2 = 0; i2 < neighborEdges.length; i2++) {
var currentNeighbor = neighborEdges[i2].getOtherEnd(currentNode);
- if (parents2.get(currentNode) != currentNeighbor) {
+ if (parents4.get(currentNode) != currentNeighbor) {
if (!visited.has(currentNeighbor)) {
toBeVisited.push(currentNeighbor);
- parents2.set(currentNeighbor, currentNode);
+ parents4.set(currentNeighbor, currentNode);
} else {
isForest = false;
break;
@@ -165428,14 +133021,14 @@ g.stateGroup line {
var temp = [].concat(_toConsumableArray(visited));
flatForest.push(temp);
for (var i2 = 0; i2 < temp.length; i2++) {
- var value = temp[i2];
- var index = unProcessedNodes.indexOf(value);
+ var value2 = temp[i2];
+ var index = unProcessedNodes.indexOf(value2);
if (index > -1) {
unProcessedNodes.splice(index, 1);
}
}
visited = /* @__PURE__ */ new Set();
- parents2 = /* @__PURE__ */ new Map();
+ parents4 = /* @__PURE__ */ new Map();
}
}
return flatForest;
@@ -165464,19 +133057,19 @@ g.stateGroup line {
return dummyNodes;
};
Layout2.prototype.createBendpointsFromDummyNodes = function() {
- var edges2 = [];
- edges2 = edges2.concat(this.graphManager.getAllEdges());
- edges2 = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges2);
- for (var k = 0; k < edges2.length; k++) {
- var lEdge = edges2[k];
+ var edges5 = [];
+ edges5 = edges5.concat(this.graphManager.getAllEdges());
+ edges5 = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges5);
+ for (var k2 = 0; k2 < edges5.length; k2++) {
+ var lEdge = edges5[k2];
if (lEdge.bendpoints.length > 0) {
- var path2 = this.edgeToDummyNodes.get(lEdge);
- for (var i2 = 0; i2 < path2.length; i2++) {
- var dummyNode = path2[i2];
- var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());
+ var path4 = this.edgeToDummyNodes.get(lEdge);
+ for (var i2 = 0; i2 < path4.length; i2++) {
+ var dummyNode = path4[i2];
+ var p3 = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());
var ebp = lEdge.bendpoints.get(i2);
- ebp.x = p.x;
- ebp.y = p.y;
+ ebp.x = p3.x;
+ ebp.y = p3.y;
dummyNode.getOwner().remove(dummyNode);
}
this.graphManager.add(lEdge, lEdge.source, lEdge.target);
@@ -165485,40 +133078,40 @@ g.stateGroup line {
};
Layout2.transform = function(sliderValue, defaultValue, minDiv, maxMul) {
if (minDiv != void 0 && maxMul != void 0) {
- var value = defaultValue;
+ var value2 = defaultValue;
if (sliderValue <= 50) {
var minValue = defaultValue / minDiv;
- value -= (defaultValue - minValue) / 50 * (50 - sliderValue);
+ value2 -= (defaultValue - minValue) / 50 * (50 - sliderValue);
} else {
var maxValue = defaultValue * maxMul;
- value += (maxValue - defaultValue) / 50 * (sliderValue - 50);
+ value2 += (maxValue - defaultValue) / 50 * (sliderValue - 50);
}
- return value;
+ return value2;
} else {
- var a, b;
+ var a2, b2;
if (sliderValue <= 50) {
- a = 9 * defaultValue / 500;
- b = defaultValue / 10;
+ a2 = 9 * defaultValue / 500;
+ b2 = defaultValue / 10;
} else {
- a = 9 * defaultValue / 50;
- b = -8 * defaultValue;
+ a2 = 9 * defaultValue / 50;
+ b2 = -8 * defaultValue;
}
- return a * sliderValue + b;
+ return a2 * sliderValue + b2;
}
};
- Layout2.findCenterOfTree = function(nodes2) {
- var list = [];
- list = list.concat(nodes2);
+ Layout2.findCenterOfTree = function(nodes6) {
+ var list2 = [];
+ list2 = list2.concat(nodes6);
var removedNodes = [];
var remainingDegrees = /* @__PURE__ */ new Map();
var foundCenter = false;
var centerNode = null;
- if (list.length == 1 || list.length == 2) {
+ if (list2.length == 1 || list2.length == 2) {
foundCenter = true;
- centerNode = list[0];
+ centerNode = list2[0];
}
- for (var i2 = 0; i2 < list.length; i2++) {
- var node2 = list[i2];
+ for (var i2 = 0; i2 < list2.length; i2++) {
+ var node2 = list2[i2];
var degree = node2.getNeighborsList().size;
remainingDegrees.set(node2, node2.getNeighborsList().size);
if (degree == 1) {
@@ -165531,11 +133124,11 @@ g.stateGroup line {
var tempList2 = [];
tempList2 = tempList2.concat(tempList);
tempList = [];
- for (var i2 = 0; i2 < list.length; i2++) {
- var node2 = list[i2];
- var index = list.indexOf(node2);
+ for (var i2 = 0; i2 < list2.length; i2++) {
+ var node2 = list2[i2];
+ var index = list2.indexOf(node2);
if (index >= 0) {
- list.splice(index, 1);
+ list2.splice(index, 1);
}
var neighbours = node2.getNeighborsList();
neighbours.forEach(function(neighbour) {
@@ -165550,9 +133143,9 @@ g.stateGroup line {
});
}
removedNodes = removedNodes.concat(tempList);
- if (list.length == 1 || list.length == 2) {
+ if (list2.length == 1 || list2.length == 2) {
foundCenter = true;
- centerNode = list[0];
+ centerNode = list2[0];
}
}
return centerNode;
@@ -165565,8 +133158,10 @@ g.stateGroup line {
/* 16 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
function RandomSeed() {
}
+ __name(RandomSeed, "RandomSeed");
RandomSeed.seed = 1;
RandomSeed.x = 0;
RandomSeed.nextDouble = function() {
@@ -165578,8 +133173,9 @@ g.stateGroup line {
/* 17 */
/***/
function(module3, exports3, __webpack_require__) {
- var PointD = __webpack_require__(4);
- function Transform2(x2, y2) {
+ "use strict";
+ var PointD = __webpack_require__(5);
+ function Transform2(x5, y5) {
this.lworldOrgX = 0;
this.lworldOrgY = 0;
this.ldeviceOrgX = 0;
@@ -165589,6 +133185,7 @@ g.stateGroup line {
this.ldeviceExtX = 1;
this.ldeviceExtY = 1;
}
+ __name(Transform2, "Transform");
Transform2.prototype.getWorldOrgX = function() {
return this.lworldOrgX;
};
@@ -165637,35 +133234,35 @@ g.stateGroup line {
Transform2.prototype.setDeviceExtY = function(dey) {
this.ldeviceExtY = dey;
};
- Transform2.prototype.transformX = function(x2) {
+ Transform2.prototype.transformX = function(x5) {
var xDevice = 0;
var worldExtX = this.lworldExtX;
if (worldExtX != 0) {
- xDevice = this.ldeviceOrgX + (x2 - this.lworldOrgX) * this.ldeviceExtX / worldExtX;
+ xDevice = this.ldeviceOrgX + (x5 - this.lworldOrgX) * this.ldeviceExtX / worldExtX;
}
return xDevice;
};
- Transform2.prototype.transformY = function(y2) {
+ Transform2.prototype.transformY = function(y5) {
var yDevice = 0;
var worldExtY = this.lworldExtY;
if (worldExtY != 0) {
- yDevice = this.ldeviceOrgY + (y2 - this.lworldOrgY) * this.ldeviceExtY / worldExtY;
+ yDevice = this.ldeviceOrgY + (y5 - this.lworldOrgY) * this.ldeviceExtY / worldExtY;
}
return yDevice;
};
- Transform2.prototype.inverseTransformX = function(x2) {
+ Transform2.prototype.inverseTransformX = function(x5) {
var xWorld = 0;
var deviceExtX = this.ldeviceExtX;
if (deviceExtX != 0) {
- xWorld = this.lworldOrgX + (x2 - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;
+ xWorld = this.lworldOrgX + (x5 - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;
}
return xWorld;
};
- Transform2.prototype.inverseTransformY = function(y2) {
+ Transform2.prototype.inverseTransformY = function(y5) {
var yWorld = 0;
var deviceExtY = this.ldeviceExtY;
if (deviceExtY != 0) {
- yWorld = this.lworldOrgY + (y2 - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;
+ yWorld = this.lworldOrgY + (y5 - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;
}
return yWorld;
};
@@ -165678,6 +133275,7 @@ g.stateGroup line {
/* 18 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
function _toConsumableArray(arr) {
if (Array.isArray(arr)) {
for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) {
@@ -165688,17 +133286,15 @@ g.stateGroup line {
return Array.from(arr);
}
}
+ __name(_toConsumableArray, "_toConsumableArray");
var Layout2 = __webpack_require__(15);
- var FDLayoutConstants = __webpack_require__(7);
+ var FDLayoutConstants = __webpack_require__(4);
var LayoutConstants = __webpack_require__(0);
var IGeometry = __webpack_require__(8);
var IMath = __webpack_require__(9);
function FDLayout() {
Layout2.call(this);
this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
- this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
- this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
- this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
@@ -165710,6 +133306,7 @@ g.stateGroup line {
this.oldTotalDisplacement = 0;
this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;
}
+ __name(FDLayout, "FDLayout");
FDLayout.prototype = Object.create(Layout2.prototype);
for (var prop in Layout2) {
FDLayout[prop] = Layout2[prop];
@@ -165723,6 +133320,7 @@ g.stateGroup line {
};
FDLayout.prototype.calcIdealEdgeLengths = function() {
var edge;
+ var originalIdealLength;
var lcaDepth;
var source;
var target;
@@ -165731,7 +133329,7 @@ g.stateGroup line {
var allEdges = this.getGraphManager().getAllEdges();
for (var i2 = 0; i2 < allEdges.length; i2++) {
edge = allEdges[i2];
- edge.idealLength = this.idealEdgeLength;
+ originalIdealLength = edge.idealLength;
if (edge.isInterGraph) {
source = edge.getSource();
target = edge.getTarget();
@@ -165741,20 +133339,20 @@ g.stateGroup line {
edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;
}
lcaDepth = edge.getLca().getInclusionTreeDepth();
- edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);
+ edge.idealLength += originalIdealLength * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);
}
}
};
FDLayout.prototype.initSpringEmbedder = function() {
- var s = this.getAllNodes().length;
+ var s2 = this.getAllNodes().length;
if (this.incremental) {
- if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
- this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
+ if (s2 > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
+ this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s2 - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
}
this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;
} else {
- if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
- this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
+ if (s2 > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
+ this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1 - (s2 - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
} else {
this.coolingFactor = 1;
}
@@ -165762,6 +133360,7 @@ g.stateGroup line {
this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;
}
this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);
+ this.displacementThresholdPerNode = 3 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;
this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;
this.repulsionRange = this.calcRepulsionRange();
};
@@ -165776,7 +133375,7 @@ g.stateGroup line {
FDLayout.prototype.calcRepulsionForces = function() {
var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
- var i2, j;
+ var i2, j2;
var nodeA, nodeB;
var lNodes = this.getAllNodes();
var processedNodeSet;
@@ -165793,8 +133392,8 @@ g.stateGroup line {
} else {
for (i2 = 0; i2 < lNodes.length; i2++) {
nodeA = lNodes[i2];
- for (j = i2 + 1; j < lNodes.length; j++) {
- nodeB = lNodes[j];
+ for (j2 = i2 + 1; j2 < lNodes.length; j2++) {
+ nodeB = lNodes[j2];
if (nodeA.getOwner() != nodeB.getOwner()) {
continue;
}
@@ -165835,9 +133434,8 @@ g.stateGroup line {
}
}
length2 = edge.getLength();
- if (length2 == 0)
- return;
- springForce = this.springConstant * (length2 - idealLength);
+ if (length2 == 0) return;
+ springForce = edge.edgeElasticity * (length2 - idealLength);
springForceX = springForce * (edge.lengthX / length2);
springForceY = springForce * (edge.lengthY / length2);
sourceNode.springForceX += springForceX;
@@ -165883,7 +133481,7 @@ g.stateGroup line {
}
distanceSquared = distanceX * distanceX + distanceY * distanceY;
distance2 = Math.sqrt(distanceSquared);
- repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;
+ repulsionForce = (nodeA.nodeRepulsion / 2 + nodeB.nodeRepulsion / 2) * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;
repulsionForceX = repulsionForce * distanceX / distance2;
repulsionForceY = repulsionForce * distanceY / distance2;
nodeA.repulsionForceX -= repulsionForceX;
@@ -165960,25 +133558,25 @@ g.stateGroup line {
grid[i2] = new Array(sizeY);
}
for (var i2 = 0; i2 < sizeX; i2++) {
- for (var j = 0; j < sizeY; j++) {
- grid[i2][j] = new Array();
+ for (var j2 = 0; j2 < sizeY; j2++) {
+ grid[i2][j2] = new Array();
}
}
return grid;
};
- FDLayout.prototype.addNodeToGrid = function(v, left2, top2) {
- var startX = 0;
+ FDLayout.prototype.addNodeToGrid = function(v3, left3, top2) {
+ var startX2 = 0;
var finishX = 0;
- var startY = 0;
+ var startY2 = 0;
var finishY = 0;
- startX = parseInt(Math.floor((v.getRect().x - left2) / this.repulsionRange));
- finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left2) / this.repulsionRange));
- startY = parseInt(Math.floor((v.getRect().y - top2) / this.repulsionRange));
- finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top2) / this.repulsionRange));
- for (var i2 = startX; i2 <= finishX; i2++) {
- for (var j = startY; j <= finishY; j++) {
- this.grid[i2][j].push(v);
- v.setGridCoordinates(startX, finishX, startY, finishY);
+ startX2 = parseInt(Math.floor((v3.getRect().x - left3) / this.repulsionRange));
+ finishX = parseInt(Math.floor((v3.getRect().width + v3.getRect().x - left3) / this.repulsionRange));
+ startY2 = parseInt(Math.floor((v3.getRect().y - top2) / this.repulsionRange));
+ finishY = parseInt(Math.floor((v3.getRect().height + v3.getRect().y - top2) / this.repulsionRange));
+ for (var i2 = startX2; i2 <= finishX; i2++) {
+ for (var j2 = startY2; j2 <= finishY; j2++) {
+ this.grid[i2][j2].push(v3);
+ v3.setGridCoordinates(startX2, finishX, startY2, finishY);
}
}
};
@@ -165999,10 +133597,10 @@ g.stateGroup line {
var nodeB;
var grid = this.grid;
for (var i2 = nodeA.startX - 1; i2 < nodeA.finishX + 2; i2++) {
- for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {
- if (!(i2 < 0 || j < 0 || i2 >= grid.length || j >= grid[0].length)) {
- for (var k = 0; k < grid[i2][j].length; k++) {
- nodeB = grid[i2][j][k];
+ for (var j2 = nodeA.startY - 1; j2 < nodeA.finishY + 2; j2++) {
+ if (!(i2 < 0 || j2 < 0 || i2 >= grid.length || j2 >= grid[0].length)) {
+ for (var k2 = 0; k2 < grid[i2][j2].length; k2++) {
+ nodeB = grid[i2][j2][k2];
if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {
continue;
}
@@ -166031,12 +133629,15 @@ g.stateGroup line {
/* 19 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var LEdge = __webpack_require__(1);
- var FDLayoutConstants = __webpack_require__(7);
+ var FDLayoutConstants = __webpack_require__(4);
function FDLayoutEdge(source, target, vEdge) {
LEdge.call(this, source, target, vEdge);
this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ this.edgeElasticity = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
}
+ __name(FDLayoutEdge, "FDLayoutEdge");
FDLayoutEdge.prototype = Object.create(LEdge.prototype);
for (var prop in LEdge) {
FDLayoutEdge[prop] = LEdge[prop];
@@ -166046,9 +133647,12 @@ g.stateGroup line {
/* 20 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var LNode = __webpack_require__(3);
- function FDLayoutNode(gm, loc, size2, vNode) {
- LNode.call(this, gm, loc, size2, vNode);
+ var FDLayoutConstants = __webpack_require__(4);
+ function FDLayoutNode(gm, loc, size5, vNode) {
+ LNode.call(this, gm, loc, size5, vNode);
+ this.nodeRepulsion = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
this.springForceX = 0;
this.springForceY = 0;
this.repulsionForceX = 0;
@@ -166063,6 +133667,7 @@ g.stateGroup line {
this.finishY = 0;
this.surrounding = [];
}
+ __name(FDLayoutNode, "FDLayoutNode");
FDLayoutNode.prototype = Object.create(LNode.prototype);
for (var prop in LNode) {
FDLayoutNode[prop] = LNode[prop];
@@ -166078,19 +133683,21 @@ g.stateGroup line {
/* 21 */
/***/
function(module3, exports3, __webpack_require__) {
- function DimensionD2(width2, height2) {
+ "use strict";
+ function DimensionD2(width3, height2) {
this.width = 0;
this.height = 0;
- if (width2 !== null && height2 !== null) {
+ if (width3 !== null && height2 !== null) {
this.height = height2;
- this.width = width2;
+ this.width = width3;
}
}
+ __name(DimensionD2, "DimensionD");
DimensionD2.prototype.getWidth = function() {
return this.width;
};
- DimensionD2.prototype.setWidth = function(width2) {
- this.width = width2;
+ DimensionD2.prototype.setWidth = function(width3) {
+ this.width = width3;
};
DimensionD2.prototype.getHeight = function() {
return this.height;
@@ -166103,20 +133710,22 @@ g.stateGroup line {
/* 22 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var UniqueIDGeneretor = __webpack_require__(14);
function HashMap() {
this.map = {};
this.keys = [];
}
- HashMap.prototype.put = function(key, value) {
+ __name(HashMap, "HashMap");
+ HashMap.prototype.put = function(key, value2) {
var theId = UniqueIDGeneretor.createID(key);
if (!this.contains(theId)) {
- this.map[theId] = value;
+ this.map[theId] = value2;
this.keys.push(key);
}
};
HashMap.prototype.contains = function(key) {
- UniqueIDGeneretor.createID(key);
+ var theId = UniqueIDGeneretor.createID(key);
return this.map[key] != null;
};
HashMap.prototype.get = function(key) {
@@ -166131,14 +133740,16 @@ g.stateGroup line {
/* 23 */
/***/
function(module3, exports3, __webpack_require__) {
+ "use strict";
var UniqueIDGeneretor = __webpack_require__(14);
function HashSet() {
this.set = {};
}
+ __name(HashSet, "HashSet");
+ ;
HashSet.prototype.add = function(obj) {
var theId = UniqueIDGeneretor.createID(obj);
- if (!this.contains(theId))
- this.set[theId] = obj;
+ if (!this.contains(theId)) this.set[theId] = obj;
};
HashSet.prototype.remove = function(obj) {
delete this.set[UniqueIDGeneretor.createID(obj)];
@@ -166155,21 +133766,21 @@ g.stateGroup line {
HashSet.prototype.size = function() {
return Object.keys(this.set).length;
};
- HashSet.prototype.addAllTo = function(list) {
- var keys2 = Object.keys(this.set);
- var length2 = keys2.length;
+ HashSet.prototype.addAllTo = function(list2) {
+ var keys3 = Object.keys(this.set);
+ var length2 = keys3.length;
for (var i2 = 0; i2 < length2; i2++) {
- list.push(this.set[keys2[i2]]);
+ list2.push(this.set[keys3[i2]]);
}
};
HashSet.prototype.size = function() {
return Object.keys(this.set).length;
};
- HashSet.prototype.addAll = function(list) {
- var s = list.length;
- for (var i2 = 0; i2 < s; i2++) {
- var v = list[i2];
- this.add(v);
+ HashSet.prototype.addAll = function(list2) {
+ var s2 = list2.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var v3 = list2[i2];
+ this.add(v3);
}
};
module3.exports = HashSet;
@@ -166177,139 +133788,700 @@ g.stateGroup line {
/* 24 */
/***/
function(module3, exports3, __webpack_require__) {
- var _createClass = function() {
+ "use strict";
+ function Matrix() {
+ }
+ __name(Matrix, "Matrix");
+ Matrix.multMat = function(array1, array22) {
+ var result = [];
+ for (var i2 = 0; i2 < array1.length; i2++) {
+ result[i2] = [];
+ for (var j2 = 0; j2 < array22[0].length; j2++) {
+ result[i2][j2] = 0;
+ for (var k2 = 0; k2 < array1[0].length; k2++) {
+ result[i2][j2] += array1[i2][k2] * array22[k2][j2];
+ }
+ }
+ }
+ return result;
+ };
+ Matrix.transpose = function(array4) {
+ var result = [];
+ for (var i2 = 0; i2 < array4[0].length; i2++) {
+ result[i2] = [];
+ for (var j2 = 0; j2 < array4.length; j2++) {
+ result[i2][j2] = array4[j2][i2];
+ }
+ }
+ return result;
+ };
+ Matrix.multCons = function(array4, constant3) {
+ var result = [];
+ for (var i2 = 0; i2 < array4.length; i2++) {
+ result[i2] = array4[i2] * constant3;
+ }
+ return result;
+ };
+ Matrix.minusOp = function(array1, array22) {
+ var result = [];
+ for (var i2 = 0; i2 < array1.length; i2++) {
+ result[i2] = array1[i2] - array22[i2];
+ }
+ return result;
+ };
+ Matrix.dotProduct = function(array1, array22) {
+ var product = 0;
+ for (var i2 = 0; i2 < array1.length; i2++) {
+ product += array1[i2] * array22[i2];
+ }
+ return product;
+ };
+ Matrix.mag = function(array4) {
+ return Math.sqrt(this.dotProduct(array4, array4));
+ };
+ Matrix.normalize = function(array4) {
+ var result = [];
+ var magnitude = this.mag(array4);
+ for (var i2 = 0; i2 < array4.length; i2++) {
+ result[i2] = array4[i2] / magnitude;
+ }
+ return result;
+ };
+ Matrix.multGamma = function(array4) {
+ var result = [];
+ var sum2 = 0;
+ for (var i2 = 0; i2 < array4.length; i2++) {
+ sum2 += array4[i2];
+ }
+ sum2 *= -1 / array4.length;
+ for (var _i = 0; _i < array4.length; _i++) {
+ result[_i] = sum2 + array4[_i];
+ }
+ return result;
+ };
+ Matrix.multL = function(array4, C2, INV) {
+ var result = [];
+ var temp1 = [];
+ var temp2 = [];
+ for (var i2 = 0; i2 < C2[0].length; i2++) {
+ var sum2 = 0;
+ for (var j2 = 0; j2 < C2.length; j2++) {
+ sum2 += -0.5 * C2[j2][i2] * array4[j2];
+ }
+ temp1[i2] = sum2;
+ }
+ for (var _i2 = 0; _i2 < INV.length; _i2++) {
+ var _sum = 0;
+ for (var _j = 0; _j < INV.length; _j++) {
+ _sum += INV[_i2][_j] * temp1[_j];
+ }
+ temp2[_i2] = _sum;
+ }
+ for (var _i3 = 0; _i3 < C2.length; _i3++) {
+ var _sum2 = 0;
+ for (var _j2 = 0; _j2 < C2[0].length; _j2++) {
+ _sum2 += C2[_i3][_j2] * temp2[_j2];
+ }
+ result[_i3] = _sum2;
+ }
+ return result;
+ };
+ module3.exports = Matrix;
+ },
+ /* 25 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var _createClass2 = /* @__PURE__ */ function() {
function defineProperties(target, props) {
for (var i2 = 0; i2 < props.length; i2++) {
var descriptor = props[i2];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
+ if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
+ __name(defineProperties, "defineProperties");
return function(Constructor, protoProps, staticProps) {
- if (protoProps)
- defineProperties(Constructor.prototype, protoProps);
- if (staticProps)
- defineProperties(Constructor, staticProps);
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
- function _classCallCheck(instance2, Constructor) {
+ function _classCallCheck2(instance2, Constructor) {
if (!(instance2 instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
+ __name(_classCallCheck2, "_classCallCheck");
var LinkedList = __webpack_require__(11);
var Quicksort = function() {
- function Quicksort2(A, compareFunction) {
- _classCallCheck(this, Quicksort2);
- if (compareFunction !== null || compareFunction !== void 0)
- this.compareFunction = this._defaultCompareFunction;
+ function Quicksort2(A2, compareFunction) {
+ _classCallCheck2(this, Quicksort2);
+ if (compareFunction !== null || compareFunction !== void 0) this.compareFunction = this._defaultCompareFunction;
var length2 = void 0;
- if (A instanceof LinkedList)
- length2 = A.size();
- else
- length2 = A.length;
- this._quicksort(A, 0, length2 - 1);
+ if (A2 instanceof LinkedList) length2 = A2.size();
+ else length2 = A2.length;
+ this._quicksort(A2, 0, length2 - 1);
}
- _createClass(Quicksort2, [{
+ __name(Quicksort2, "Quicksort");
+ _createClass2(Quicksort2, [{
key: "_quicksort",
- value: function _quicksort(A, p, r) {
- if (p < r) {
- var q = this._partition(A, p, r);
- this._quicksort(A, p, q);
- this._quicksort(A, q + 1, r);
+ value: /* @__PURE__ */ __name(function _quicksort(A2, p3, r2) {
+ if (p3 < r2) {
+ var q2 = this._partition(A2, p3, r2);
+ this._quicksort(A2, p3, q2);
+ this._quicksort(A2, q2 + 1, r2);
}
- }
+ }, "_quicksort")
}, {
key: "_partition",
- value: function _partition(A, p, r) {
- var x2 = this._get(A, p);
- var i2 = p;
- var j = r;
+ value: /* @__PURE__ */ __name(function _partition(A2, p3, r2) {
+ var x5 = this._get(A2, p3);
+ var i2 = p3;
+ var j2 = r2;
while (true) {
- while (this.compareFunction(x2, this._get(A, j))) {
- j--;
+ while (this.compareFunction(x5, this._get(A2, j2))) {
+ j2--;
}
- while (this.compareFunction(this._get(A, i2), x2)) {
+ while (this.compareFunction(this._get(A2, i2), x5)) {
i2++;
}
- if (i2 < j) {
- this._swap(A, i2, j);
+ if (i2 < j2) {
+ this._swap(A2, i2, j2);
i2++;
- j--;
- } else
- return j;
+ j2--;
+ } else return j2;
}
- }
+ }, "_partition")
}, {
key: "_get",
- value: function _get(object2, index) {
- if (object2 instanceof LinkedList)
- return object2.get_object_at(index);
- else
- return object2[index];
- }
+ value: /* @__PURE__ */ __name(function _get(object3, index) {
+ if (object3 instanceof LinkedList) return object3.get_object_at(index);
+ else return object3[index];
+ }, "_get")
}, {
key: "_set",
- value: function _set(object2, index, value) {
- if (object2 instanceof LinkedList)
- object2.set_object_at(index, value);
- else
- object2[index] = value;
- }
+ value: /* @__PURE__ */ __name(function _set(object3, index, value2) {
+ if (object3 instanceof LinkedList) object3.set_object_at(index, value2);
+ else object3[index] = value2;
+ }, "_set")
}, {
key: "_swap",
- value: function _swap(A, i2, j) {
- var temp = this._get(A, i2);
- this._set(A, i2, this._get(A, j));
- this._set(A, j, temp);
- }
+ value: /* @__PURE__ */ __name(function _swap(A2, i2, j2) {
+ var temp = this._get(A2, i2);
+ this._set(A2, i2, this._get(A2, j2));
+ this._set(A2, j2, temp);
+ }, "_swap")
}, {
key: "_defaultCompareFunction",
- value: function _defaultCompareFunction(a, b) {
- return b > a;
- }
+ value: /* @__PURE__ */ __name(function _defaultCompareFunction(a2, b2) {
+ return b2 > a2;
+ }, "_defaultCompareFunction")
}]);
return Quicksort2;
}();
module3.exports = Quicksort;
},
- /* 25 */
+ /* 26 */
/***/
function(module3, exports3, __webpack_require__) {
- var _createClass = function() {
+ "use strict";
+ function SVD() {
+ }
+ __name(SVD, "SVD");
+ ;
+ SVD.svd = function(A2) {
+ this.U = null;
+ this.V = null;
+ this.s = null;
+ this.m = 0;
+ this.n = 0;
+ this.m = A2.length;
+ this.n = A2[0].length;
+ var nu = Math.min(this.m, this.n);
+ this.s = function(s2) {
+ var a2 = [];
+ while (s2-- > 0) {
+ a2.push(0);
+ }
+ return a2;
+ }(Math.min(this.m + 1, this.n));
+ this.U = function(dims) {
+ var allocate = /* @__PURE__ */ __name(function allocate2(dims2) {
+ if (dims2.length == 0) {
+ return 0;
+ } else {
+ var array4 = [];
+ for (var i3 = 0; i3 < dims2[0]; i3++) {
+ array4.push(allocate2(dims2.slice(1)));
+ }
+ return array4;
+ }
+ }, "allocate");
+ return allocate(dims);
+ }([this.m, nu]);
+ this.V = function(dims) {
+ var allocate = /* @__PURE__ */ __name(function allocate2(dims2) {
+ if (dims2.length == 0) {
+ return 0;
+ } else {
+ var array4 = [];
+ for (var i3 = 0; i3 < dims2[0]; i3++) {
+ array4.push(allocate2(dims2.slice(1)));
+ }
+ return array4;
+ }
+ }, "allocate");
+ return allocate(dims);
+ }([this.n, this.n]);
+ var e3 = function(s2) {
+ var a2 = [];
+ while (s2-- > 0) {
+ a2.push(0);
+ }
+ return a2;
+ }(this.n);
+ var work = function(s2) {
+ var a2 = [];
+ while (s2-- > 0) {
+ a2.push(0);
+ }
+ return a2;
+ }(this.m);
+ var wantu = true;
+ var wantv = true;
+ var nct = Math.min(this.m - 1, this.n);
+ var nrt = Math.max(0, Math.min(this.n - 2, this.m));
+ for (var k2 = 0; k2 < Math.max(nct, nrt); k2++) {
+ if (k2 < nct) {
+ this.s[k2] = 0;
+ for (var i2 = k2; i2 < this.m; i2++) {
+ this.s[k2] = SVD.hypot(this.s[k2], A2[i2][k2]);
+ }
+ ;
+ if (this.s[k2] !== 0) {
+ if (A2[k2][k2] < 0) {
+ this.s[k2] = -this.s[k2];
+ }
+ for (var _i = k2; _i < this.m; _i++) {
+ A2[_i][k2] /= this.s[k2];
+ }
+ ;
+ A2[k2][k2] += 1;
+ }
+ this.s[k2] = -this.s[k2];
+ }
+ for (var j2 = k2 + 1; j2 < this.n; j2++) {
+ if (/* @__PURE__ */ function(lhs, rhs) {
+ return lhs && rhs;
+ }(k2 < nct, this.s[k2] !== 0)) {
+ var t4 = 0;
+ for (var _i2 = k2; _i2 < this.m; _i2++) {
+ t4 += A2[_i2][k2] * A2[_i2][j2];
+ }
+ ;
+ t4 = -t4 / A2[k2][k2];
+ for (var _i3 = k2; _i3 < this.m; _i3++) {
+ A2[_i3][j2] += t4 * A2[_i3][k2];
+ }
+ ;
+ }
+ e3[j2] = A2[k2][j2];
+ }
+ ;
+ if (/* @__PURE__ */ function(lhs, rhs) {
+ return lhs && rhs;
+ }(wantu, k2 < nct)) {
+ for (var _i4 = k2; _i4 < this.m; _i4++) {
+ this.U[_i4][k2] = A2[_i4][k2];
+ }
+ ;
+ }
+ if (k2 < nrt) {
+ e3[k2] = 0;
+ for (var _i5 = k2 + 1; _i5 < this.n; _i5++) {
+ e3[k2] = SVD.hypot(e3[k2], e3[_i5]);
+ }
+ ;
+ if (e3[k2] !== 0) {
+ if (e3[k2 + 1] < 0) {
+ e3[k2] = -e3[k2];
+ }
+ for (var _i6 = k2 + 1; _i6 < this.n; _i6++) {
+ e3[_i6] /= e3[k2];
+ }
+ ;
+ e3[k2 + 1] += 1;
+ }
+ e3[k2] = -e3[k2];
+ if (/* @__PURE__ */ function(lhs, rhs) {
+ return lhs && rhs;
+ }(k2 + 1 < this.m, e3[k2] !== 0)) {
+ for (var _i7 = k2 + 1; _i7 < this.m; _i7++) {
+ work[_i7] = 0;
+ }
+ ;
+ for (var _j = k2 + 1; _j < this.n; _j++) {
+ for (var _i8 = k2 + 1; _i8 < this.m; _i8++) {
+ work[_i8] += e3[_j] * A2[_i8][_j];
+ }
+ ;
+ }
+ ;
+ for (var _j2 = k2 + 1; _j2 < this.n; _j2++) {
+ var _t = -e3[_j2] / e3[k2 + 1];
+ for (var _i9 = k2 + 1; _i9 < this.m; _i9++) {
+ A2[_i9][_j2] += _t * work[_i9];
+ }
+ ;
+ }
+ ;
+ }
+ if (wantv) {
+ for (var _i10 = k2 + 1; _i10 < this.n; _i10++) {
+ this.V[_i10][k2] = e3[_i10];
+ }
+ ;
+ }
+ }
+ }
+ ;
+ var p3 = Math.min(this.n, this.m + 1);
+ if (nct < this.n) {
+ this.s[nct] = A2[nct][nct];
+ }
+ if (this.m < p3) {
+ this.s[p3 - 1] = 0;
+ }
+ if (nrt + 1 < p3) {
+ e3[nrt] = A2[nrt][p3 - 1];
+ }
+ e3[p3 - 1] = 0;
+ if (wantu) {
+ for (var _j3 = nct; _j3 < nu; _j3++) {
+ for (var _i11 = 0; _i11 < this.m; _i11++) {
+ this.U[_i11][_j3] = 0;
+ }
+ ;
+ this.U[_j3][_j3] = 1;
+ }
+ ;
+ for (var _k = nct - 1; _k >= 0; _k--) {
+ if (this.s[_k] !== 0) {
+ for (var _j4 = _k + 1; _j4 < nu; _j4++) {
+ var _t2 = 0;
+ for (var _i12 = _k; _i12 < this.m; _i12++) {
+ _t2 += this.U[_i12][_k] * this.U[_i12][_j4];
+ }
+ ;
+ _t2 = -_t2 / this.U[_k][_k];
+ for (var _i13 = _k; _i13 < this.m; _i13++) {
+ this.U[_i13][_j4] += _t2 * this.U[_i13][_k];
+ }
+ ;
+ }
+ ;
+ for (var _i14 = _k; _i14 < this.m; _i14++) {
+ this.U[_i14][_k] = -this.U[_i14][_k];
+ }
+ ;
+ this.U[_k][_k] = 1 + this.U[_k][_k];
+ for (var _i15 = 0; _i15 < _k - 1; _i15++) {
+ this.U[_i15][_k] = 0;
+ }
+ ;
+ } else {
+ for (var _i16 = 0; _i16 < this.m; _i16++) {
+ this.U[_i16][_k] = 0;
+ }
+ ;
+ this.U[_k][_k] = 1;
+ }
+ }
+ ;
+ }
+ if (wantv) {
+ for (var _k2 = this.n - 1; _k2 >= 0; _k2--) {
+ if (/* @__PURE__ */ function(lhs, rhs) {
+ return lhs && rhs;
+ }(_k2 < nrt, e3[_k2] !== 0)) {
+ for (var _j5 = _k2 + 1; _j5 < nu; _j5++) {
+ var _t3 = 0;
+ for (var _i17 = _k2 + 1; _i17 < this.n; _i17++) {
+ _t3 += this.V[_i17][_k2] * this.V[_i17][_j5];
+ }
+ ;
+ _t3 = -_t3 / this.V[_k2 + 1][_k2];
+ for (var _i18 = _k2 + 1; _i18 < this.n; _i18++) {
+ this.V[_i18][_j5] += _t3 * this.V[_i18][_k2];
+ }
+ ;
+ }
+ ;
+ }
+ for (var _i19 = 0; _i19 < this.n; _i19++) {
+ this.V[_i19][_k2] = 0;
+ }
+ ;
+ this.V[_k2][_k2] = 1;
+ }
+ ;
+ }
+ var pp = p3 - 1;
+ var iter = 0;
+ var eps = Math.pow(2, -52);
+ var tiny = Math.pow(2, -966);
+ while (p3 > 0) {
+ var _k3 = void 0;
+ var kase = void 0;
+ for (_k3 = p3 - 2; _k3 >= -1; _k3--) {
+ if (_k3 === -1) {
+ break;
+ }
+ if (Math.abs(e3[_k3]) <= tiny + eps * (Math.abs(this.s[_k3]) + Math.abs(this.s[_k3 + 1]))) {
+ e3[_k3] = 0;
+ break;
+ }
+ }
+ ;
+ if (_k3 === p3 - 2) {
+ kase = 4;
+ } else {
+ var ks = void 0;
+ for (ks = p3 - 1; ks >= _k3; ks--) {
+ if (ks === _k3) {
+ break;
+ }
+ var _t4 = (ks !== p3 ? Math.abs(e3[ks]) : 0) + (ks !== _k3 + 1 ? Math.abs(e3[ks - 1]) : 0);
+ if (Math.abs(this.s[ks]) <= tiny + eps * _t4) {
+ this.s[ks] = 0;
+ break;
+ }
+ }
+ ;
+ if (ks === _k3) {
+ kase = 3;
+ } else if (ks === p3 - 1) {
+ kase = 1;
+ } else {
+ kase = 2;
+ _k3 = ks;
+ }
+ }
+ _k3++;
+ switch (kase) {
+ case 1:
+ {
+ var f3 = e3[p3 - 2];
+ e3[p3 - 2] = 0;
+ for (var _j6 = p3 - 2; _j6 >= _k3; _j6--) {
+ var _t5 = SVD.hypot(this.s[_j6], f3);
+ var cs = this.s[_j6] / _t5;
+ var sn = f3 / _t5;
+ this.s[_j6] = _t5;
+ if (_j6 !== _k3) {
+ f3 = -sn * e3[_j6 - 1];
+ e3[_j6 - 1] = cs * e3[_j6 - 1];
+ }
+ if (wantv) {
+ for (var _i20 = 0; _i20 < this.n; _i20++) {
+ _t5 = cs * this.V[_i20][_j6] + sn * this.V[_i20][p3 - 1];
+ this.V[_i20][p3 - 1] = -sn * this.V[_i20][_j6] + cs * this.V[_i20][p3 - 1];
+ this.V[_i20][_j6] = _t5;
+ }
+ ;
+ }
+ }
+ ;
+ }
+ ;
+ break;
+ case 2:
+ {
+ var _f = e3[_k3 - 1];
+ e3[_k3 - 1] = 0;
+ for (var _j7 = _k3; _j7 < p3; _j7++) {
+ var _t6 = SVD.hypot(this.s[_j7], _f);
+ var _cs = this.s[_j7] / _t6;
+ var _sn = _f / _t6;
+ this.s[_j7] = _t6;
+ _f = -_sn * e3[_j7];
+ e3[_j7] = _cs * e3[_j7];
+ if (wantu) {
+ for (var _i21 = 0; _i21 < this.m; _i21++) {
+ _t6 = _cs * this.U[_i21][_j7] + _sn * this.U[_i21][_k3 - 1];
+ this.U[_i21][_k3 - 1] = -_sn * this.U[_i21][_j7] + _cs * this.U[_i21][_k3 - 1];
+ this.U[_i21][_j7] = _t6;
+ }
+ ;
+ }
+ }
+ ;
+ }
+ ;
+ break;
+ case 3:
+ {
+ var scale = Math.max(Math.max(Math.max(Math.max(Math.abs(this.s[p3 - 1]), Math.abs(this.s[p3 - 2])), Math.abs(e3[p3 - 2])), Math.abs(this.s[_k3])), Math.abs(e3[_k3]));
+ var sp = this.s[p3 - 1] / scale;
+ var spm1 = this.s[p3 - 2] / scale;
+ var epm1 = e3[p3 - 2] / scale;
+ var sk = this.s[_k3] / scale;
+ var ek = e3[_k3] / scale;
+ var b2 = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;
+ var c3 = sp * epm1 * (sp * epm1);
+ var shift2 = 0;
+ if (/* @__PURE__ */ function(lhs, rhs) {
+ return lhs || rhs;
+ }(b2 !== 0, c3 !== 0)) {
+ shift2 = Math.sqrt(b2 * b2 + c3);
+ if (b2 < 0) {
+ shift2 = -shift2;
+ }
+ shift2 = c3 / (b2 + shift2);
+ }
+ var _f2 = (sk + sp) * (sk - sp) + shift2;
+ var g2 = sk * ek;
+ for (var _j8 = _k3; _j8 < p3 - 1; _j8++) {
+ var _t7 = SVD.hypot(_f2, g2);
+ var _cs2 = _f2 / _t7;
+ var _sn2 = g2 / _t7;
+ if (_j8 !== _k3) {
+ e3[_j8 - 1] = _t7;
+ }
+ _f2 = _cs2 * this.s[_j8] + _sn2 * e3[_j8];
+ e3[_j8] = _cs2 * e3[_j8] - _sn2 * this.s[_j8];
+ g2 = _sn2 * this.s[_j8 + 1];
+ this.s[_j8 + 1] = _cs2 * this.s[_j8 + 1];
+ if (wantv) {
+ for (var _i22 = 0; _i22 < this.n; _i22++) {
+ _t7 = _cs2 * this.V[_i22][_j8] + _sn2 * this.V[_i22][_j8 + 1];
+ this.V[_i22][_j8 + 1] = -_sn2 * this.V[_i22][_j8] + _cs2 * this.V[_i22][_j8 + 1];
+ this.V[_i22][_j8] = _t7;
+ }
+ ;
+ }
+ _t7 = SVD.hypot(_f2, g2);
+ _cs2 = _f2 / _t7;
+ _sn2 = g2 / _t7;
+ this.s[_j8] = _t7;
+ _f2 = _cs2 * e3[_j8] + _sn2 * this.s[_j8 + 1];
+ this.s[_j8 + 1] = -_sn2 * e3[_j8] + _cs2 * this.s[_j8 + 1];
+ g2 = _sn2 * e3[_j8 + 1];
+ e3[_j8 + 1] = _cs2 * e3[_j8 + 1];
+ if (wantu && _j8 < this.m - 1) {
+ for (var _i23 = 0; _i23 < this.m; _i23++) {
+ _t7 = _cs2 * this.U[_i23][_j8] + _sn2 * this.U[_i23][_j8 + 1];
+ this.U[_i23][_j8 + 1] = -_sn2 * this.U[_i23][_j8] + _cs2 * this.U[_i23][_j8 + 1];
+ this.U[_i23][_j8] = _t7;
+ }
+ ;
+ }
+ }
+ ;
+ e3[p3 - 2] = _f2;
+ iter = iter + 1;
+ }
+ ;
+ break;
+ case 4:
+ {
+ if (this.s[_k3] <= 0) {
+ this.s[_k3] = this.s[_k3] < 0 ? -this.s[_k3] : 0;
+ if (wantv) {
+ for (var _i24 = 0; _i24 <= pp; _i24++) {
+ this.V[_i24][_k3] = -this.V[_i24][_k3];
+ }
+ ;
+ }
+ }
+ while (_k3 < pp) {
+ if (this.s[_k3] >= this.s[_k3 + 1]) {
+ break;
+ }
+ var _t8 = this.s[_k3];
+ this.s[_k3] = this.s[_k3 + 1];
+ this.s[_k3 + 1] = _t8;
+ if (wantv && _k3 < this.n - 1) {
+ for (var _i25 = 0; _i25 < this.n; _i25++) {
+ _t8 = this.V[_i25][_k3 + 1];
+ this.V[_i25][_k3 + 1] = this.V[_i25][_k3];
+ this.V[_i25][_k3] = _t8;
+ }
+ ;
+ }
+ if (wantu && _k3 < this.m - 1) {
+ for (var _i26 = 0; _i26 < this.m; _i26++) {
+ _t8 = this.U[_i26][_k3 + 1];
+ this.U[_i26][_k3 + 1] = this.U[_i26][_k3];
+ this.U[_i26][_k3] = _t8;
+ }
+ ;
+ }
+ _k3++;
+ }
+ ;
+ iter = 0;
+ p3--;
+ }
+ ;
+ break;
+ }
+ }
+ ;
+ var result = { U: this.U, V: this.V, S: this.s };
+ return result;
+ };
+ SVD.hypot = function(a2, b2) {
+ var r2 = void 0;
+ if (Math.abs(a2) > Math.abs(b2)) {
+ r2 = b2 / a2;
+ r2 = Math.abs(a2) * Math.sqrt(1 + r2 * r2);
+ } else if (b2 != 0) {
+ r2 = a2 / b2;
+ r2 = Math.abs(b2) * Math.sqrt(1 + r2 * r2);
+ } else {
+ r2 = 0;
+ }
+ return r2;
+ };
+ module3.exports = SVD;
+ },
+ /* 27 */
+ /***/
+ function(module3, exports3, __webpack_require__) {
+ "use strict";
+ var _createClass2 = /* @__PURE__ */ function() {
function defineProperties(target, props) {
for (var i2 = 0; i2 < props.length; i2++) {
var descriptor = props[i2];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
+ if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
+ __name(defineProperties, "defineProperties");
return function(Constructor, protoProps, staticProps) {
- if (protoProps)
- defineProperties(Constructor.prototype, protoProps);
- if (staticProps)
- defineProperties(Constructor, staticProps);
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
- function _classCallCheck(instance2, Constructor) {
+ function _classCallCheck2(instance2, Constructor) {
if (!(instance2 instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
+ __name(_classCallCheck2, "_classCallCheck");
var NeedlemanWunsch = function() {
function NeedlemanWunsch2(sequence1, sequence2) {
var match_score = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
var mismatch_penalty = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1;
var gap_penalty = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1;
- _classCallCheck(this, NeedlemanWunsch2);
+ _classCallCheck2(this, NeedlemanWunsch2);
this.sequence1 = sequence1;
this.sequence2 = sequence2;
this.match_score = match_score;
@@ -166320,8 +134492,8 @@ g.stateGroup line {
this.grid = new Array(this.iMax);
for (var i2 = 0; i2 < this.iMax; i2++) {
this.grid[i2] = new Array(this.jMax);
- for (var j = 0; j < this.jMax; j++) {
- this.grid[i2][j] = 0;
+ for (var j2 = 0; j2 < this.jMax; j2++) {
+ this.grid[i2][j2] = 0;
}
}
this.tracebackGrid = new Array(this.iMax);
@@ -166335,23 +134507,24 @@ g.stateGroup line {
this.score = -1;
this.computeGrids();
}
- _createClass(NeedlemanWunsch2, [{
+ __name(NeedlemanWunsch2, "NeedlemanWunsch");
+ _createClass2(NeedlemanWunsch2, [{
key: "getScore",
- value: function getScore() {
+ value: /* @__PURE__ */ __name(function getScore() {
return this.score;
- }
+ }, "getScore")
}, {
key: "getAlignments",
- value: function getAlignments() {
+ value: /* @__PURE__ */ __name(function getAlignments2() {
return this.alignments;
- }
+ }, "getAlignments")
// Main dynamic programming procedure
}, {
key: "computeGrids",
- value: function computeGrids() {
- for (var j = 1; j < this.jMax; j++) {
- this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;
- this.tracebackGrid[0][j] = [false, false, true];
+ value: /* @__PURE__ */ __name(function computeGrids() {
+ for (var j2 = 1; j2 < this.jMax; j2++) {
+ this.grid[0][j2] = this.grid[0][j2 - 1] + this.gap_penalty;
+ this.tracebackGrid[0][j2] = [false, false, true];
}
for (var i2 = 1; i2 < this.iMax; i2++) {
this.grid[i2][0] = this.grid[i2 - 1][0] + this.gap_penalty;
@@ -166360,24 +134533,22 @@ g.stateGroup line {
for (var _i2 = 1; _i2 < this.iMax; _i2++) {
for (var _j2 = 1; _j2 < this.jMax; _j2++) {
var diag = void 0;
- if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1])
- diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;
- else
- diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;
+ if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;
+ else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;
var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;
- var left2 = this.grid[_i2][_j2 - 1] + this.gap_penalty;
- var maxOf = [diag, up, left2];
+ var left3 = this.grid[_i2][_j2 - 1] + this.gap_penalty;
+ var maxOf = [diag, up, left3];
var indices = this.arrayAllMaxIndexes(maxOf);
this.grid[_i2][_j2] = maxOf[indices[0]];
this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];
}
}
this.score = this.grid[this.iMax - 1][this.jMax - 1];
- }
+ }, "computeGrids")
// Gets all possible valid sequence combinations
}, {
key: "alignmentTraceback",
- value: function alignmentTraceback() {
+ value: /* @__PURE__ */ __name(function alignmentTraceback() {
var inProcessAlignments = [];
inProcessAlignments.push({
pos: [this.sequence1.length, this.sequence2.length],
@@ -166408,1797 +134579,9018 @@ g.stateGroup line {
seq2: this.sequence2[current.pos[1] - 1] + current.seq2
});
}
- if (current.pos[0] === 0 && current.pos[1] === 0)
- this.alignments.push({
- sequence1: current.seq1,
- sequence2: current.seq2
- });
+ if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({
+ sequence1: current.seq1,
+ sequence2: current.seq2
+ });
inProcessAlignments.shift();
}
return this.alignments;
- }
+ }, "alignmentTraceback")
// Helper Functions
}, {
key: "getAllIndexes",
- value: function getAllIndexes(arr, val) {
+ value: /* @__PURE__ */ __name(function getAllIndexes(arr, val) {
var indexes = [], i2 = -1;
while ((i2 = arr.indexOf(val, i2 + 1)) !== -1) {
indexes.push(i2);
}
return indexes;
- }
+ }, "getAllIndexes")
}, {
- key: "arrayAllMaxIndexes",
- value: function arrayAllMaxIndexes(array2) {
- return this.getAllIndexes(array2, Math.max.apply(null, array2));
- }
- }]);
- return NeedlemanWunsch2;
- }();
- module3.exports = NeedlemanWunsch;
- },
- /* 26 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var layoutBase2 = function layoutBase3() {
- return;
- };
- layoutBase2.FDLayout = __webpack_require__(18);
- layoutBase2.FDLayoutConstants = __webpack_require__(7);
- layoutBase2.FDLayoutEdge = __webpack_require__(19);
- layoutBase2.FDLayoutNode = __webpack_require__(20);
- layoutBase2.DimensionD = __webpack_require__(21);
- layoutBase2.HashMap = __webpack_require__(22);
- layoutBase2.HashSet = __webpack_require__(23);
- layoutBase2.IGeometry = __webpack_require__(8);
- layoutBase2.IMath = __webpack_require__(9);
- layoutBase2.Integer = __webpack_require__(10);
- layoutBase2.Point = __webpack_require__(12);
- layoutBase2.PointD = __webpack_require__(4);
- layoutBase2.RandomSeed = __webpack_require__(16);
- layoutBase2.RectangleD = __webpack_require__(13);
- layoutBase2.Transform = __webpack_require__(17);
- layoutBase2.UniqueIDGeneretor = __webpack_require__(14);
- layoutBase2.Quicksort = __webpack_require__(24);
- layoutBase2.LinkedList = __webpack_require__(11);
- layoutBase2.LGraphObject = __webpack_require__(2);
- layoutBase2.LGraph = __webpack_require__(5);
- layoutBase2.LEdge = __webpack_require__(1);
- layoutBase2.LGraphManager = __webpack_require__(6);
- layoutBase2.LNode = __webpack_require__(3);
- layoutBase2.Layout = __webpack_require__(15);
- layoutBase2.LayoutConstants = __webpack_require__(0);
- layoutBase2.NeedlemanWunsch = __webpack_require__(25);
- module3.exports = layoutBase2;
- },
- /* 27 */
- /***/
- function(module3, exports3, __webpack_require__) {
- function Emitter() {
- this.listeners = [];
- }
- var p = Emitter.prototype;
- p.addListener = function(event, callback) {
- this.listeners.push({
- event,
- callback
- });
- };
- p.removeListener = function(event, callback) {
- for (var i2 = this.listeners.length; i2 >= 0; i2--) {
- var l = this.listeners[i2];
- if (l.event === event && l.callback === callback) {
- this.listeners.splice(i2, 1);
- }
- }
- };
- p.emit = function(event, data) {
- for (var i2 = 0; i2 < this.listeners.length; i2++) {
- var l = this.listeners[i2];
- if (event === l.event) {
- l.callback(data);
- }
- }
- };
- module3.exports = Emitter;
- }
- /******/
- ])
- );
- });
- })(layoutBase);
- return layoutBaseExports;
- }
- var hasRequiredCoseBase;
- function requireCoseBase() {
- if (hasRequiredCoseBase)
- return coseBaseExports;
- hasRequiredCoseBase = 1;
- (function(module2, exports2) {
- (function webpackUniversalModuleDefinition(root2, factory) {
- module2.exports = factory(requireLayoutBase());
- })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) {
- return (
- /******/
- function(modules) {
- var installedModules = {};
- function __webpack_require__(moduleId) {
- if (installedModules[moduleId]) {
- return installedModules[moduleId].exports;
- }
- var module3 = installedModules[moduleId] = {
- /******/
- i: moduleId,
- /******/
- l: false,
- /******/
- exports: {}
- /******/
- };
- modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
- module3.l = true;
- return module3.exports;
- }
- __webpack_require__.m = modules;
- __webpack_require__.c = installedModules;
- __webpack_require__.i = function(value) {
- return value;
- };
- __webpack_require__.d = function(exports3, name2, getter) {
- if (!__webpack_require__.o(exports3, name2)) {
- Object.defineProperty(exports3, name2, {
- /******/
- configurable: false,
- /******/
- enumerable: true,
- /******/
- get: getter
- /******/
- });
- }
- };
- __webpack_require__.n = function(module3) {
- var getter = module3 && module3.__esModule ? (
- /******/
- function getDefault() {
- return module3["default"];
- }
- ) : (
- /******/
- function getModuleExports() {
- return module3;
- }
- );
- __webpack_require__.d(getter, "a", getter);
- return getter;
- };
- __webpack_require__.o = function(object2, property2) {
- return Object.prototype.hasOwnProperty.call(object2, property2);
- };
- __webpack_require__.p = "";
- return __webpack_require__(__webpack_require__.s = 7);
- }([
- /* 0 */
- /***/
- function(module3, exports3) {
- module3.exports = __WEBPACK_EXTERNAL_MODULE_0__;
- },
- /* 1 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
- function CoSEConstants() {
- }
- for (var prop in FDLayoutConstants) {
- CoSEConstants[prop] = FDLayoutConstants[prop];
- }
- CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;
- CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
- CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;
- CoSEConstants.TILE = true;
- CoSEConstants.TILING_PADDING_VERTICAL = 10;
- CoSEConstants.TILING_PADDING_HORIZONTAL = 10;
- CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false;
- module3.exports = CoSEConstants;
- },
- /* 2 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;
- function CoSEEdge(source, target, vEdge) {
- FDLayoutEdge.call(this, source, target, vEdge);
- }
- CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);
- for (var prop in FDLayoutEdge) {
- CoSEEdge[prop] = FDLayoutEdge[prop];
- }
- module3.exports = CoSEEdge;
- },
- /* 3 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var LGraph = __webpack_require__(0).LGraph;
- function CoSEGraph(parent, graphMgr, vGraph) {
- LGraph.call(this, parent, graphMgr, vGraph);
- }
- CoSEGraph.prototype = Object.create(LGraph.prototype);
- for (var prop in LGraph) {
- CoSEGraph[prop] = LGraph[prop];
- }
- module3.exports = CoSEGraph;
- },
- /* 4 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var LGraphManager = __webpack_require__(0).LGraphManager;
- function CoSEGraphManager(layout2) {
- LGraphManager.call(this, layout2);
- }
- CoSEGraphManager.prototype = Object.create(LGraphManager.prototype);
- for (var prop in LGraphManager) {
- CoSEGraphManager[prop] = LGraphManager[prop];
- }
- module3.exports = CoSEGraphManager;
+ key: "arrayAllMaxIndexes",
+ value: /* @__PURE__ */ __name(function arrayAllMaxIndexes(array4) {
+ return this.getAllIndexes(array4, Math.max.apply(null, array4));
+ }, "arrayAllMaxIndexes")
+ }]);
+ return NeedlemanWunsch2;
+ }();
+ module3.exports = NeedlemanWunsch;
},
- /* 5 */
+ /* 28 */
/***/
function(module3, exports3, __webpack_require__) {
- var FDLayoutNode = __webpack_require__(0).FDLayoutNode;
- var IMath = __webpack_require__(0).IMath;
- function CoSENode(gm, loc, size2, vNode) {
- FDLayoutNode.call(this, gm, loc, size2, vNode);
- }
- CoSENode.prototype = Object.create(FDLayoutNode.prototype);
- for (var prop in FDLayoutNode) {
- CoSENode[prop] = FDLayoutNode[prop];
- }
- CoSENode.prototype.move = function() {
- var layout2 = this.graphManager.getLayout();
- this.displacementX = layout2.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;
- this.displacementY = layout2.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;
- if (Math.abs(this.displacementX) > layout2.coolingFactor * layout2.maxNodeDisplacement) {
- this.displacementX = layout2.coolingFactor * layout2.maxNodeDisplacement * IMath.sign(this.displacementX);
- }
- if (Math.abs(this.displacementY) > layout2.coolingFactor * layout2.maxNodeDisplacement) {
- this.displacementY = layout2.coolingFactor * layout2.maxNodeDisplacement * IMath.sign(this.displacementY);
- }
- if (this.child == null) {
- this.moveBy(this.displacementX, this.displacementY);
- } else if (this.child.getNodes().length == 0) {
- this.moveBy(this.displacementX, this.displacementY);
- } else {
- this.propogateDisplacementToChildren(this.displacementX, this.displacementY);
- }
- layout2.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);
- this.springForceX = 0;
- this.springForceY = 0;
- this.repulsionForceX = 0;
- this.repulsionForceY = 0;
- this.gravitationForceX = 0;
- this.gravitationForceY = 0;
- this.displacementX = 0;
- this.displacementY = 0;
- };
- CoSENode.prototype.propogateDisplacementToChildren = function(dX, dY) {
- var nodes2 = this.getChild().getNodes();
- var node2;
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- node2 = nodes2[i2];
- if (node2.getChild() == null) {
- node2.moveBy(dX, dY);
- node2.displacementX += dX;
- node2.displacementY += dY;
- } else {
- node2.propogateDisplacementToChildren(dX, dY);
- }
- }
- };
- CoSENode.prototype.setPred1 = function(pred12) {
- this.pred1 = pred12;
- };
- CoSENode.prototype.getPred1 = function() {
- return pred1;
- };
- CoSENode.prototype.getPred2 = function() {
- return pred2;
- };
- CoSENode.prototype.setNext = function(next2) {
- this.next = next2;
- };
- CoSENode.prototype.getNext = function() {
- return next;
- };
- CoSENode.prototype.setProcessed = function(processed2) {
- this.processed = processed2;
- };
- CoSENode.prototype.isProcessed = function() {
- return processed;
- };
- module3.exports = CoSENode;
+ "use strict";
+ var layoutBase = /* @__PURE__ */ __name(function layoutBase2() {
+ return;
+ }, "layoutBase");
+ layoutBase.FDLayout = __webpack_require__(18);
+ layoutBase.FDLayoutConstants = __webpack_require__(4);
+ layoutBase.FDLayoutEdge = __webpack_require__(19);
+ layoutBase.FDLayoutNode = __webpack_require__(20);
+ layoutBase.DimensionD = __webpack_require__(21);
+ layoutBase.HashMap = __webpack_require__(22);
+ layoutBase.HashSet = __webpack_require__(23);
+ layoutBase.IGeometry = __webpack_require__(8);
+ layoutBase.IMath = __webpack_require__(9);
+ layoutBase.Integer = __webpack_require__(10);
+ layoutBase.Point = __webpack_require__(12);
+ layoutBase.PointD = __webpack_require__(5);
+ layoutBase.RandomSeed = __webpack_require__(16);
+ layoutBase.RectangleD = __webpack_require__(13);
+ layoutBase.Transform = __webpack_require__(17);
+ layoutBase.UniqueIDGeneretor = __webpack_require__(14);
+ layoutBase.Quicksort = __webpack_require__(25);
+ layoutBase.LinkedList = __webpack_require__(11);
+ layoutBase.LGraphObject = __webpack_require__(2);
+ layoutBase.LGraph = __webpack_require__(6);
+ layoutBase.LEdge = __webpack_require__(1);
+ layoutBase.LGraphManager = __webpack_require__(7);
+ layoutBase.LNode = __webpack_require__(3);
+ layoutBase.Layout = __webpack_require__(15);
+ layoutBase.LayoutConstants = __webpack_require__(0);
+ layoutBase.NeedlemanWunsch = __webpack_require__(27);
+ layoutBase.Matrix = __webpack_require__(24);
+ layoutBase.SVD = __webpack_require__(26);
+ module3.exports = layoutBase;
},
- /* 6 */
+ /* 29 */
/***/
function(module3, exports3, __webpack_require__) {
- var FDLayout = __webpack_require__(0).FDLayout;
- var CoSEGraphManager = __webpack_require__(4);
- var CoSEGraph = __webpack_require__(3);
- var CoSENode = __webpack_require__(5);
- var CoSEEdge = __webpack_require__(2);
- var CoSEConstants = __webpack_require__(1);
- var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
- var LayoutConstants = __webpack_require__(0).LayoutConstants;
- var Point2 = __webpack_require__(0).Point;
- var PointD = __webpack_require__(0).PointD;
- var Layout2 = __webpack_require__(0).Layout;
- var Integer = __webpack_require__(0).Integer;
- var IGeometry = __webpack_require__(0).IGeometry;
- var LGraph = __webpack_require__(0).LGraph;
- var Transform2 = __webpack_require__(0).Transform;
- function CoSELayout() {
- FDLayout.call(this);
- this.toBeTiled = {};
- }
- CoSELayout.prototype = Object.create(FDLayout.prototype);
- for (var prop in FDLayout) {
- CoSELayout[prop] = FDLayout[prop];
+ "use strict";
+ function Emitter3() {
+ this.listeners = [];
}
- CoSELayout.prototype.newGraphManager = function() {
- var gm = new CoSEGraphManager(this);
- this.graphManager = gm;
- return gm;
- };
- CoSELayout.prototype.newGraph = function(vGraph) {
- return new CoSEGraph(null, this.graphManager, vGraph);
- };
- CoSELayout.prototype.newNode = function(vNode) {
- return new CoSENode(this.graphManager, vNode);
- };
- CoSELayout.prototype.newEdge = function(vEdge) {
- return new CoSEEdge(null, null, vEdge);
+ __name(Emitter3, "Emitter");
+ var p3 = Emitter3.prototype;
+ p3.addListener = function(event3, callback) {
+ this.listeners.push({
+ event: event3,
+ callback
+ });
};
- CoSELayout.prototype.initParameters = function() {
- FDLayout.prototype.initParameters.call(this, arguments);
- if (!this.isSubLayout) {
- if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {
- this.idealEdgeLength = 10;
- } else {
- this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;
+ p3.removeListener = function(event3, callback) {
+ for (var i2 = this.listeners.length; i2 >= 0; i2--) {
+ var l2 = this.listeners[i2];
+ if (l2.event === event3 && l2.callback === callback) {
+ this.listeners.splice(i2, 1);
}
- this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
- this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
- this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
- this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
- this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
- this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
- this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
- this.prunedNodesAll = [];
- this.growTreeIterations = 0;
- this.afterGrowthIterations = 0;
- this.isTreeGrowing = false;
- this.isGrowthFinished = false;
- this.coolingCycle = 0;
- this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;
- this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;
- this.coolingAdjuster = 1;
}
};
- CoSELayout.prototype.layout = function() {
- var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
- if (createBendsAsNeeded) {
- this.createBendpoints();
- this.graphManager.resetAllEdges();
+ p3.emit = function(event3, data5) {
+ for (var i2 = 0; i2 < this.listeners.length; i2++) {
+ var l2 = this.listeners[i2];
+ if (event3 === l2.event) {
+ l2.callback(data5);
+ }
}
- this.level = 0;
- return this.classicLayout();
};
- CoSELayout.prototype.classicLayout = function() {
- this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();
- this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);
- this.calcNoOfChildrenForAllNodes();
- this.graphManager.calcLowestCommonAncestors();
- this.graphManager.calcInclusionTreeDepths();
- this.graphManager.getRoot().calcEstimatedSize();
- this.calcIdealEdgeLengths();
- if (!this.incremental) {
- var forest = this.getFlatForest();
- if (forest.length > 0) {
- this.positionNodesRadially(forest);
- } else {
- this.reduceTrees();
- this.graphManager.resetAllNodesToApplyGravitation();
- var allNodes = new Set(this.getAllNodes());
- var intersection2 = this.nodesWithGravity.filter(function(x2) {
- return allNodes.has(x2);
+ module3.exports = Emitter3;
+ }
+ /******/
+ ])
+ );
+ });
+ }
+ });
+
+ // ../../node_modules/.pnpm/cose-base@2.2.0/node_modules/cose-base/cose-base.js
+ var require_cose_base2 = __commonJS({
+ "../../node_modules/.pnpm/cose-base@2.2.0/node_modules/cose-base/cose-base.js"(exports2, module2) {
+ "use strict";
+ (/* @__PURE__ */ __name(function webpackUniversalModuleDefinition(root4, factory) {
+ if (typeof exports2 === "object" && typeof module2 === "object")
+ module2.exports = factory(require_layout_base2());
+ else if (typeof define === "function" && define.amd)
+ define(["layout-base"], factory);
+ else if (typeof exports2 === "object")
+ exports2["coseBase"] = factory(require_layout_base2());
+ else
+ root4["coseBase"] = factory(root4["layoutBase"]);
+ }, "webpackUniversalModuleDefinition"))(exports2, function(__WEBPACK_EXTERNAL_MODULE__551__) {
+ return (
+ /******/
+ (() => {
+ "use strict";
+ var __webpack_modules__ = {
+ /***/
+ 45: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var coseBase = {};
+ coseBase.layoutBase = __webpack_require__2(551);
+ coseBase.CoSEConstants = __webpack_require__2(806);
+ coseBase.CoSEEdge = __webpack_require__2(767);
+ coseBase.CoSEGraph = __webpack_require__2(880);
+ coseBase.CoSEGraphManager = __webpack_require__2(578);
+ coseBase.CoSELayout = __webpack_require__2(765);
+ coseBase.CoSENode = __webpack_require__2(991);
+ coseBase.ConstraintHandler = __webpack_require__2(902);
+ module3.exports = coseBase;
+ }
+ ),
+ /***/
+ 806: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var FDLayoutConstants = __webpack_require__2(551).FDLayoutConstants;
+ function CoSEConstants() {
+ }
+ __name(CoSEConstants, "CoSEConstants");
+ for (var prop in FDLayoutConstants) {
+ CoSEConstants[prop] = FDLayoutConstants[prop];
+ }
+ CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;
+ CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;
+ CoSEConstants.TILE = true;
+ CoSEConstants.TILING_PADDING_VERTICAL = 10;
+ CoSEConstants.TILING_PADDING_HORIZONTAL = 10;
+ CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;
+ CoSEConstants.ENFORCE_CONSTRAINTS = true;
+ CoSEConstants.APPLY_LAYOUT = true;
+ CoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS = true;
+ CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = true;
+ CoSEConstants.PURE_INCREMENTAL = CoSEConstants.DEFAULT_INCREMENTAL;
+ module3.exports = CoSEConstants;
+ }
+ ),
+ /***/
+ 767: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var FDLayoutEdge = __webpack_require__2(551).FDLayoutEdge;
+ function CoSEEdge(source, target, vEdge) {
+ FDLayoutEdge.call(this, source, target, vEdge);
+ }
+ __name(CoSEEdge, "CoSEEdge");
+ CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);
+ for (var prop in FDLayoutEdge) {
+ CoSEEdge[prop] = FDLayoutEdge[prop];
+ }
+ module3.exports = CoSEEdge;
+ }
+ ),
+ /***/
+ 880: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var LGraph = __webpack_require__2(551).LGraph;
+ function CoSEGraph(parent4, graphMgr, vGraph) {
+ LGraph.call(this, parent4, graphMgr, vGraph);
+ }
+ __name(CoSEGraph, "CoSEGraph");
+ CoSEGraph.prototype = Object.create(LGraph.prototype);
+ for (var prop in LGraph) {
+ CoSEGraph[prop] = LGraph[prop];
+ }
+ module3.exports = CoSEGraph;
+ }
+ ),
+ /***/
+ 578: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var LGraphManager = __webpack_require__2(551).LGraphManager;
+ function CoSEGraphManager(layout6) {
+ LGraphManager.call(this, layout6);
+ }
+ __name(CoSEGraphManager, "CoSEGraphManager");
+ CoSEGraphManager.prototype = Object.create(LGraphManager.prototype);
+ for (var prop in LGraphManager) {
+ CoSEGraphManager[prop] = LGraphManager[prop];
+ }
+ module3.exports = CoSEGraphManager;
+ }
+ ),
+ /***/
+ 765: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var FDLayout = __webpack_require__2(551).FDLayout;
+ var CoSEGraphManager = __webpack_require__2(578);
+ var CoSEGraph = __webpack_require__2(880);
+ var CoSENode = __webpack_require__2(991);
+ var CoSEEdge = __webpack_require__2(767);
+ var CoSEConstants = __webpack_require__2(806);
+ var ConstraintHandler = __webpack_require__2(902);
+ var FDLayoutConstants = __webpack_require__2(551).FDLayoutConstants;
+ var LayoutConstants = __webpack_require__2(551).LayoutConstants;
+ var Point3 = __webpack_require__2(551).Point;
+ var PointD = __webpack_require__2(551).PointD;
+ var DimensionD2 = __webpack_require__2(551).DimensionD;
+ var Layout2 = __webpack_require__2(551).Layout;
+ var Integer = __webpack_require__2(551).Integer;
+ var IGeometry = __webpack_require__2(551).IGeometry;
+ var LGraph = __webpack_require__2(551).LGraph;
+ var Transform2 = __webpack_require__2(551).Transform;
+ var LinkedList = __webpack_require__2(551).LinkedList;
+ function CoSELayout() {
+ FDLayout.call(this);
+ this.toBeTiled = {};
+ this.constraints = {};
+ }
+ __name(CoSELayout, "CoSELayout");
+ CoSELayout.prototype = Object.create(FDLayout.prototype);
+ for (var prop in FDLayout) {
+ CoSELayout[prop] = FDLayout[prop];
+ }
+ CoSELayout.prototype.newGraphManager = function() {
+ var gm = new CoSEGraphManager(this);
+ this.graphManager = gm;
+ return gm;
+ };
+ CoSELayout.prototype.newGraph = function(vGraph) {
+ return new CoSEGraph(null, this.graphManager, vGraph);
+ };
+ CoSELayout.prototype.newNode = function(vNode) {
+ return new CoSENode(this.graphManager, vNode);
+ };
+ CoSELayout.prototype.newEdge = function(vEdge) {
+ return new CoSEEdge(null, null, vEdge);
+ };
+ CoSELayout.prototype.initParameters = function() {
+ FDLayout.prototype.initParameters.call(this, arguments);
+ if (!this.isSubLayout) {
+ if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {
+ this.idealEdgeLength = 10;
+ } else {
+ this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;
+ }
+ this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
+ this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
+ this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
+ this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
+ this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
+ this.prunedNodesAll = [];
+ this.growTreeIterations = 0;
+ this.afterGrowthIterations = 0;
+ this.isTreeGrowing = false;
+ this.isGrowthFinished = false;
+ }
+ };
+ CoSELayout.prototype.initSpringEmbedder = function() {
+ FDLayout.prototype.initSpringEmbedder.call(this);
+ this.coolingCycle = 0;
+ this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;
+ this.finalTemperature = 0.04;
+ this.coolingAdjuster = 1;
+ };
+ CoSELayout.prototype.layout = function() {
+ var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
+ if (createBendsAsNeeded) {
+ this.createBendpoints();
+ this.graphManager.resetAllEdges();
+ }
+ this.level = 0;
+ return this.classicLayout();
+ };
+ CoSELayout.prototype.classicLayout = function() {
+ this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();
+ this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);
+ this.calcNoOfChildrenForAllNodes();
+ this.graphManager.calcLowestCommonAncestors();
+ this.graphManager.calcInclusionTreeDepths();
+ this.graphManager.getRoot().calcEstimatedSize();
+ this.calcIdealEdgeLengths();
+ if (!this.incremental) {
+ var forest = this.getFlatForest();
+ if (forest.length > 0) {
+ this.positionNodesRadially(forest);
+ } else {
+ this.reduceTrees();
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection3 = this.nodesWithGravity.filter(function(x5) {
+ return allNodes.has(x5);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection3);
+ this.positionNodesRandomly();
+ }
+ } else {
+ if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {
+ this.reduceTrees();
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection3 = this.nodesWithGravity.filter(function(x5) {
+ return allNodes.has(x5);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection3);
+ }
+ }
+ if (Object.keys(this.constraints).length > 0) {
+ ConstraintHandler.handleConstraints(this);
+ this.initConstraintVariables();
+ }
+ this.initSpringEmbedder();
+ if (CoSEConstants.APPLY_LAYOUT) {
+ this.runSpringEmbedder();
+ }
+ return true;
+ };
+ CoSELayout.prototype.tick = function() {
+ this.totalIterations++;
+ if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {
+ if (this.prunedNodesAll.length > 0) {
+ this.isTreeGrowing = true;
+ } else {
+ return true;
+ }
+ }
+ if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {
+ if (this.isConverged()) {
+ if (this.prunedNodesAll.length > 0) {
+ this.isTreeGrowing = true;
+ } else {
+ return true;
+ }
+ }
+ this.coolingCycle++;
+ if (this.layoutQuality == 0) {
+ this.coolingAdjuster = this.coolingCycle;
+ } else if (this.layoutQuality == 1) {
+ this.coolingAdjuster = this.coolingCycle / 3;
+ }
+ this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);
+ this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));
+ }
+ if (this.isTreeGrowing) {
+ if (this.growTreeIterations % 10 == 0) {
+ if (this.prunedNodesAll.length > 0) {
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ this.growTree(this.prunedNodesAll);
+ this.graphManager.resetAllNodesToApplyGravitation();
+ var allNodes = new Set(this.getAllNodes());
+ var intersection3 = this.nodesWithGravity.filter(function(x5) {
+ return allNodes.has(x5);
+ });
+ this.graphManager.setAllNodesToApplyGravitation(intersection3);
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ if (CoSEConstants.PURE_INCREMENTAL) this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL / 2;
+ else this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ } else {
+ this.isTreeGrowing = false;
+ this.isGrowthFinished = true;
+ }
+ }
+ this.growTreeIterations++;
+ }
+ if (this.isGrowthFinished) {
+ if (this.isConverged()) {
+ return true;
+ }
+ if (this.afterGrowthIterations % 10 == 0) {
+ this.graphManager.updateBounds();
+ this.updateGrid();
+ }
+ if (CoSEConstants.PURE_INCREMENTAL) this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL / 2 * ((100 - this.afterGrowthIterations) / 100);
+ else this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);
+ this.afterGrowthIterations++;
+ }
+ var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;
+ var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;
+ this.totalDisplacement = 0;
+ this.graphManager.updateBounds();
+ this.calcSpringForces();
+ this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);
+ this.calcGravitationalForces();
+ this.moveNodes();
+ this.animate();
+ return false;
+ };
+ CoSELayout.prototype.getPositionsData = function() {
+ var allNodes = this.graphManager.getAllNodes();
+ var pData = {};
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ var rect4 = allNodes[i2].rect;
+ var id27 = allNodes[i2].id;
+ pData[id27] = {
+ id: id27,
+ x: rect4.getCenterX(),
+ y: rect4.getCenterY(),
+ w: rect4.width,
+ h: rect4.height
+ };
+ }
+ return pData;
+ };
+ CoSELayout.prototype.runSpringEmbedder = function() {
+ this.initialAnimationPeriod = 25;
+ this.animationPeriod = this.initialAnimationPeriod;
+ var layoutEnded = false;
+ if (FDLayoutConstants.ANIMATE === "during") {
+ this.emit("layoutstarted");
+ } else {
+ while (!layoutEnded) {
+ layoutEnded = this.tick();
+ }
+ this.graphManager.updateBounds();
+ }
+ };
+ CoSELayout.prototype.moveNodes = function() {
+ var lNodes = this.getAllNodes();
+ var node2;
+ for (var i2 = 0; i2 < lNodes.length; i2++) {
+ node2 = lNodes[i2];
+ node2.calculateDisplacement();
+ }
+ if (Object.keys(this.constraints).length > 0) {
+ this.updateDisplacements();
+ }
+ for (var i2 = 0; i2 < lNodes.length; i2++) {
+ node2 = lNodes[i2];
+ node2.move();
+ }
+ };
+ CoSELayout.prototype.initConstraintVariables = function() {
+ var self2 = this;
+ this.idToNodeMap = /* @__PURE__ */ new Map();
+ this.fixedNodeSet = /* @__PURE__ */ new Set();
+ var allNodes = this.graphManager.getAllNodes();
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ var node2 = allNodes[i2];
+ this.idToNodeMap.set(node2.id, node2);
+ }
+ var calculateCompoundWeight = /* @__PURE__ */ __name(function calculateCompoundWeight2(compoundNode) {
+ var nodes6 = compoundNode.getChild().getNodes();
+ var node3;
+ var fixedNodeWeight2 = 0;
+ for (var i3 = 0; i3 < nodes6.length; i3++) {
+ node3 = nodes6[i3];
+ if (node3.getChild() == null) {
+ if (self2.fixedNodeSet.has(node3.id)) {
+ fixedNodeWeight2 += 100;
+ }
+ } else {
+ fixedNodeWeight2 += calculateCompoundWeight2(node3);
+ }
+ }
+ return fixedNodeWeight2;
+ }, "calculateCompoundWeight");
+ if (this.constraints.fixedNodeConstraint) {
+ this.constraints.fixedNodeConstraint.forEach(function(nodeData2) {
+ self2.fixedNodeSet.add(nodeData2.nodeId);
+ });
+ var allNodes = this.graphManager.getAllNodes();
+ var node2;
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ node2 = allNodes[i2];
+ if (node2.getChild() != null) {
+ var fixedNodeWeight = calculateCompoundWeight(node2);
+ if (fixedNodeWeight > 0) {
+ node2.fixedNodeWeight = fixedNodeWeight;
+ }
+ }
+ }
+ }
+ if (this.constraints.relativePlacementConstraint) {
+ var nodeToDummyForVerticalAlignment = /* @__PURE__ */ new Map();
+ var nodeToDummyForHorizontalAlignment = /* @__PURE__ */ new Map();
+ this.dummyToNodeForVerticalAlignment = /* @__PURE__ */ new Map();
+ this.dummyToNodeForHorizontalAlignment = /* @__PURE__ */ new Map();
+ this.fixedNodesOnHorizontal = /* @__PURE__ */ new Set();
+ this.fixedNodesOnVertical = /* @__PURE__ */ new Set();
+ this.fixedNodeSet.forEach(function(nodeId) {
+ self2.fixedNodesOnHorizontal.add(nodeId);
+ self2.fixedNodesOnVertical.add(nodeId);
+ });
+ if (this.constraints.alignmentConstraint) {
+ if (this.constraints.alignmentConstraint.vertical) {
+ var verticalAlignment2 = this.constraints.alignmentConstraint.vertical;
+ for (var i2 = 0; i2 < verticalAlignment2.length; i2++) {
+ this.dummyToNodeForVerticalAlignment.set("dummy" + i2, []);
+ verticalAlignment2[i2].forEach(function(nodeId) {
+ nodeToDummyForVerticalAlignment.set(nodeId, "dummy" + i2);
+ self2.dummyToNodeForVerticalAlignment.get("dummy" + i2).push(nodeId);
+ if (self2.fixedNodeSet.has(nodeId)) {
+ self2.fixedNodesOnHorizontal.add("dummy" + i2);
+ }
+ });
+ }
+ }
+ if (this.constraints.alignmentConstraint.horizontal) {
+ var horizontalAlignment = this.constraints.alignmentConstraint.horizontal;
+ for (var i2 = 0; i2 < horizontalAlignment.length; i2++) {
+ this.dummyToNodeForHorizontalAlignment.set("dummy" + i2, []);
+ horizontalAlignment[i2].forEach(function(nodeId) {
+ nodeToDummyForHorizontalAlignment.set(nodeId, "dummy" + i2);
+ self2.dummyToNodeForHorizontalAlignment.get("dummy" + i2).push(nodeId);
+ if (self2.fixedNodeSet.has(nodeId)) {
+ self2.fixedNodesOnVertical.add("dummy" + i2);
+ }
+ });
+ }
+ }
+ }
+ if (CoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS) {
+ this.shuffle = function(array4) {
+ var j2, x5, i3;
+ for (i3 = array4.length - 1; i3 >= 2 * array4.length / 3; i3--) {
+ j2 = Math.floor(Math.random() * (i3 + 1));
+ x5 = array4[i3];
+ array4[i3] = array4[j2];
+ array4[j2] = x5;
+ }
+ return array4;
+ };
+ this.nodesInRelativeHorizontal = [];
+ this.nodesInRelativeVertical = [];
+ this.nodeToRelativeConstraintMapHorizontal = /* @__PURE__ */ new Map();
+ this.nodeToRelativeConstraintMapVertical = /* @__PURE__ */ new Map();
+ this.nodeToTempPositionMapHorizontal = /* @__PURE__ */ new Map();
+ this.nodeToTempPositionMapVertical = /* @__PURE__ */ new Map();
+ this.constraints.relativePlacementConstraint.forEach(function(constraint) {
+ if (constraint.left) {
+ var nodeIdLeft = nodeToDummyForVerticalAlignment.has(constraint.left) ? nodeToDummyForVerticalAlignment.get(constraint.left) : constraint.left;
+ var nodeIdRight = nodeToDummyForVerticalAlignment.has(constraint.right) ? nodeToDummyForVerticalAlignment.get(constraint.right) : constraint.right;
+ if (!self2.nodesInRelativeHorizontal.includes(nodeIdLeft)) {
+ self2.nodesInRelativeHorizontal.push(nodeIdLeft);
+ self2.nodeToRelativeConstraintMapHorizontal.set(nodeIdLeft, []);
+ if (self2.dummyToNodeForVerticalAlignment.has(nodeIdLeft)) {
+ self2.nodeToTempPositionMapHorizontal.set(nodeIdLeft, self2.idToNodeMap.get(self2.dummyToNodeForVerticalAlignment.get(nodeIdLeft)[0]).getCenterX());
+ } else {
+ self2.nodeToTempPositionMapHorizontal.set(nodeIdLeft, self2.idToNodeMap.get(nodeIdLeft).getCenterX());
+ }
+ }
+ if (!self2.nodesInRelativeHorizontal.includes(nodeIdRight)) {
+ self2.nodesInRelativeHorizontal.push(nodeIdRight);
+ self2.nodeToRelativeConstraintMapHorizontal.set(nodeIdRight, []);
+ if (self2.dummyToNodeForVerticalAlignment.has(nodeIdRight)) {
+ self2.nodeToTempPositionMapHorizontal.set(nodeIdRight, self2.idToNodeMap.get(self2.dummyToNodeForVerticalAlignment.get(nodeIdRight)[0]).getCenterX());
+ } else {
+ self2.nodeToTempPositionMapHorizontal.set(nodeIdRight, self2.idToNodeMap.get(nodeIdRight).getCenterX());
+ }
+ }
+ self2.nodeToRelativeConstraintMapHorizontal.get(nodeIdLeft).push({ right: nodeIdRight, gap: constraint.gap });
+ self2.nodeToRelativeConstraintMapHorizontal.get(nodeIdRight).push({ left: nodeIdLeft, gap: constraint.gap });
+ } else {
+ var nodeIdTop = nodeToDummyForHorizontalAlignment.has(constraint.top) ? nodeToDummyForHorizontalAlignment.get(constraint.top) : constraint.top;
+ var nodeIdBottom = nodeToDummyForHorizontalAlignment.has(constraint.bottom) ? nodeToDummyForHorizontalAlignment.get(constraint.bottom) : constraint.bottom;
+ if (!self2.nodesInRelativeVertical.includes(nodeIdTop)) {
+ self2.nodesInRelativeVertical.push(nodeIdTop);
+ self2.nodeToRelativeConstraintMapVertical.set(nodeIdTop, []);
+ if (self2.dummyToNodeForHorizontalAlignment.has(nodeIdTop)) {
+ self2.nodeToTempPositionMapVertical.set(nodeIdTop, self2.idToNodeMap.get(self2.dummyToNodeForHorizontalAlignment.get(nodeIdTop)[0]).getCenterY());
+ } else {
+ self2.nodeToTempPositionMapVertical.set(nodeIdTop, self2.idToNodeMap.get(nodeIdTop).getCenterY());
+ }
+ }
+ if (!self2.nodesInRelativeVertical.includes(nodeIdBottom)) {
+ self2.nodesInRelativeVertical.push(nodeIdBottom);
+ self2.nodeToRelativeConstraintMapVertical.set(nodeIdBottom, []);
+ if (self2.dummyToNodeForHorizontalAlignment.has(nodeIdBottom)) {
+ self2.nodeToTempPositionMapVertical.set(nodeIdBottom, self2.idToNodeMap.get(self2.dummyToNodeForHorizontalAlignment.get(nodeIdBottom)[0]).getCenterY());
+ } else {
+ self2.nodeToTempPositionMapVertical.set(nodeIdBottom, self2.idToNodeMap.get(nodeIdBottom).getCenterY());
+ }
+ }
+ self2.nodeToRelativeConstraintMapVertical.get(nodeIdTop).push({ bottom: nodeIdBottom, gap: constraint.gap });
+ self2.nodeToRelativeConstraintMapVertical.get(nodeIdBottom).push({ top: nodeIdTop, gap: constraint.gap });
+ }
+ });
+ } else {
+ var subGraphOnHorizontal = /* @__PURE__ */ new Map();
+ var subGraphOnVertical = /* @__PURE__ */ new Map();
+ this.constraints.relativePlacementConstraint.forEach(function(constraint) {
+ if (constraint.left) {
+ var left3 = nodeToDummyForVerticalAlignment.has(constraint.left) ? nodeToDummyForVerticalAlignment.get(constraint.left) : constraint.left;
+ var right3 = nodeToDummyForVerticalAlignment.has(constraint.right) ? nodeToDummyForVerticalAlignment.get(constraint.right) : constraint.right;
+ if (subGraphOnHorizontal.has(left3)) {
+ subGraphOnHorizontal.get(left3).push(right3);
+ } else {
+ subGraphOnHorizontal.set(left3, [right3]);
+ }
+ if (subGraphOnHorizontal.has(right3)) {
+ subGraphOnHorizontal.get(right3).push(left3);
+ } else {
+ subGraphOnHorizontal.set(right3, [left3]);
+ }
+ } else {
+ var top2 = nodeToDummyForHorizontalAlignment.has(constraint.top) ? nodeToDummyForHorizontalAlignment.get(constraint.top) : constraint.top;
+ var bottom2 = nodeToDummyForHorizontalAlignment.has(constraint.bottom) ? nodeToDummyForHorizontalAlignment.get(constraint.bottom) : constraint.bottom;
+ if (subGraphOnVertical.has(top2)) {
+ subGraphOnVertical.get(top2).push(bottom2);
+ } else {
+ subGraphOnVertical.set(top2, [bottom2]);
+ }
+ if (subGraphOnVertical.has(bottom2)) {
+ subGraphOnVertical.get(bottom2).push(top2);
+ } else {
+ subGraphOnVertical.set(bottom2, [top2]);
+ }
+ }
+ });
+ var constructComponents = /* @__PURE__ */ __name(function constructComponents2(graph, fixedNodes) {
+ var components3 = [];
+ var isFixed = [];
+ var queue = new LinkedList();
+ var visited = /* @__PURE__ */ new Set();
+ var count = 0;
+ graph.forEach(function(value2, key) {
+ if (!visited.has(key)) {
+ components3[count] = [];
+ isFixed[count] = false;
+ var currentNode = key;
+ queue.push(currentNode);
+ visited.add(currentNode);
+ components3[count].push(currentNode);
+ while (queue.length != 0) {
+ currentNode = queue.shift();
+ if (fixedNodes.has(currentNode)) {
+ isFixed[count] = true;
+ }
+ var neighbors = graph.get(currentNode);
+ neighbors.forEach(function(neighbor) {
+ if (!visited.has(neighbor)) {
+ queue.push(neighbor);
+ visited.add(neighbor);
+ components3[count].push(neighbor);
+ }
+ });
+ }
+ count++;
+ }
+ });
+ return { components: components3, isFixed };
+ }, "constructComponents");
+ var resultOnHorizontal = constructComponents(subGraphOnHorizontal, self2.fixedNodesOnHorizontal);
+ this.componentsOnHorizontal = resultOnHorizontal.components;
+ this.fixedComponentsOnHorizontal = resultOnHorizontal.isFixed;
+ var resultOnVertical = constructComponents(subGraphOnVertical, self2.fixedNodesOnVertical);
+ this.componentsOnVertical = resultOnVertical.components;
+ this.fixedComponentsOnVertical = resultOnVertical.isFixed;
+ }
+ }
+ };
+ CoSELayout.prototype.updateDisplacements = function() {
+ var self2 = this;
+ if (this.constraints.fixedNodeConstraint) {
+ this.constraints.fixedNodeConstraint.forEach(function(nodeData2) {
+ var fixedNode = self2.idToNodeMap.get(nodeData2.nodeId);
+ fixedNode.displacementX = 0;
+ fixedNode.displacementY = 0;
+ });
+ }
+ if (this.constraints.alignmentConstraint) {
+ if (this.constraints.alignmentConstraint.vertical) {
+ var allVerticalAlignments = this.constraints.alignmentConstraint.vertical;
+ for (var i2 = 0; i2 < allVerticalAlignments.length; i2++) {
+ var totalDisplacementX = 0;
+ for (var j2 = 0; j2 < allVerticalAlignments[i2].length; j2++) {
+ if (this.fixedNodeSet.has(allVerticalAlignments[i2][j2])) {
+ totalDisplacementX = 0;
+ break;
+ }
+ totalDisplacementX += this.idToNodeMap.get(allVerticalAlignments[i2][j2]).displacementX;
+ }
+ var averageDisplacementX = totalDisplacementX / allVerticalAlignments[i2].length;
+ for (var j2 = 0; j2 < allVerticalAlignments[i2].length; j2++) {
+ this.idToNodeMap.get(allVerticalAlignments[i2][j2]).displacementX = averageDisplacementX;
+ }
+ }
+ }
+ if (this.constraints.alignmentConstraint.horizontal) {
+ var allHorizontalAlignments = this.constraints.alignmentConstraint.horizontal;
+ for (var i2 = 0; i2 < allHorizontalAlignments.length; i2++) {
+ var totalDisplacementY = 0;
+ for (var j2 = 0; j2 < allHorizontalAlignments[i2].length; j2++) {
+ if (this.fixedNodeSet.has(allHorizontalAlignments[i2][j2])) {
+ totalDisplacementY = 0;
+ break;
+ }
+ totalDisplacementY += this.idToNodeMap.get(allHorizontalAlignments[i2][j2]).displacementY;
+ }
+ var averageDisplacementY = totalDisplacementY / allHorizontalAlignments[i2].length;
+ for (var j2 = 0; j2 < allHorizontalAlignments[i2].length; j2++) {
+ this.idToNodeMap.get(allHorizontalAlignments[i2][j2]).displacementY = averageDisplacementY;
+ }
+ }
+ }
+ }
+ if (this.constraints.relativePlacementConstraint) {
+ if (CoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS) {
+ if (this.totalIterations % 10 == 0) {
+ this.shuffle(this.nodesInRelativeHorizontal);
+ this.shuffle(this.nodesInRelativeVertical);
+ }
+ this.nodesInRelativeHorizontal.forEach(function(nodeId) {
+ if (!self2.fixedNodesOnHorizontal.has(nodeId)) {
+ var displacement = 0;
+ if (self2.dummyToNodeForVerticalAlignment.has(nodeId)) {
+ displacement = self2.idToNodeMap.get(self2.dummyToNodeForVerticalAlignment.get(nodeId)[0]).displacementX;
+ } else {
+ displacement = self2.idToNodeMap.get(nodeId).displacementX;
+ }
+ self2.nodeToRelativeConstraintMapHorizontal.get(nodeId).forEach(function(constraint) {
+ if (constraint.right) {
+ var diff2 = self2.nodeToTempPositionMapHorizontal.get(constraint.right) - self2.nodeToTempPositionMapHorizontal.get(nodeId) - displacement;
+ if (diff2 < constraint.gap) {
+ displacement -= constraint.gap - diff2;
+ }
+ } else {
+ var diff2 = self2.nodeToTempPositionMapHorizontal.get(nodeId) - self2.nodeToTempPositionMapHorizontal.get(constraint.left) + displacement;
+ if (diff2 < constraint.gap) {
+ displacement += constraint.gap - diff2;
+ }
+ }
+ });
+ self2.nodeToTempPositionMapHorizontal.set(nodeId, self2.nodeToTempPositionMapHorizontal.get(nodeId) + displacement);
+ if (self2.dummyToNodeForVerticalAlignment.has(nodeId)) {
+ self2.dummyToNodeForVerticalAlignment.get(nodeId).forEach(function(nodeId2) {
+ self2.idToNodeMap.get(nodeId2).displacementX = displacement;
+ });
+ } else {
+ self2.idToNodeMap.get(nodeId).displacementX = displacement;
+ }
+ }
+ });
+ this.nodesInRelativeVertical.forEach(function(nodeId) {
+ if (!self2.fixedNodesOnHorizontal.has(nodeId)) {
+ var displacement = 0;
+ if (self2.dummyToNodeForHorizontalAlignment.has(nodeId)) {
+ displacement = self2.idToNodeMap.get(self2.dummyToNodeForHorizontalAlignment.get(nodeId)[0]).displacementY;
+ } else {
+ displacement = self2.idToNodeMap.get(nodeId).displacementY;
+ }
+ self2.nodeToRelativeConstraintMapVertical.get(nodeId).forEach(function(constraint) {
+ if (constraint.bottom) {
+ var diff2 = self2.nodeToTempPositionMapVertical.get(constraint.bottom) - self2.nodeToTempPositionMapVertical.get(nodeId) - displacement;
+ if (diff2 < constraint.gap) {
+ displacement -= constraint.gap - diff2;
+ }
+ } else {
+ var diff2 = self2.nodeToTempPositionMapVertical.get(nodeId) - self2.nodeToTempPositionMapVertical.get(constraint.top) + displacement;
+ if (diff2 < constraint.gap) {
+ displacement += constraint.gap - diff2;
+ }
+ }
+ });
+ self2.nodeToTempPositionMapVertical.set(nodeId, self2.nodeToTempPositionMapVertical.get(nodeId) + displacement);
+ if (self2.dummyToNodeForHorizontalAlignment.has(nodeId)) {
+ self2.dummyToNodeForHorizontalAlignment.get(nodeId).forEach(function(nodeId2) {
+ self2.idToNodeMap.get(nodeId2).displacementY = displacement;
+ });
+ } else {
+ self2.idToNodeMap.get(nodeId).displacementY = displacement;
+ }
+ }
+ });
+ } else {
+ for (var i2 = 0; i2 < this.componentsOnHorizontal.length; i2++) {
+ var component2 = this.componentsOnHorizontal[i2];
+ if (this.fixedComponentsOnHorizontal[i2]) {
+ for (var j2 = 0; j2 < component2.length; j2++) {
+ if (this.dummyToNodeForVerticalAlignment.has(component2[j2])) {
+ this.dummyToNodeForVerticalAlignment.get(component2[j2]).forEach(function(nodeId) {
+ self2.idToNodeMap.get(nodeId).displacementX = 0;
+ });
+ } else {
+ this.idToNodeMap.get(component2[j2]).displacementX = 0;
+ }
+ }
+ } else {
+ var sum2 = 0;
+ var count = 0;
+ for (var j2 = 0; j2 < component2.length; j2++) {
+ if (this.dummyToNodeForVerticalAlignment.has(component2[j2])) {
+ var actualNodes = this.dummyToNodeForVerticalAlignment.get(component2[j2]);
+ sum2 += actualNodes.length * this.idToNodeMap.get(actualNodes[0]).displacementX;
+ count += actualNodes.length;
+ } else {
+ sum2 += this.idToNodeMap.get(component2[j2]).displacementX;
+ count++;
+ }
+ }
+ var averageDisplacement = sum2 / count;
+ for (var j2 = 0; j2 < component2.length; j2++) {
+ if (this.dummyToNodeForVerticalAlignment.has(component2[j2])) {
+ this.dummyToNodeForVerticalAlignment.get(component2[j2]).forEach(function(nodeId) {
+ self2.idToNodeMap.get(nodeId).displacementX = averageDisplacement;
+ });
+ } else {
+ this.idToNodeMap.get(component2[j2]).displacementX = averageDisplacement;
+ }
+ }
+ }
+ }
+ for (var i2 = 0; i2 < this.componentsOnVertical.length; i2++) {
+ var component2 = this.componentsOnVertical[i2];
+ if (this.fixedComponentsOnVertical[i2]) {
+ for (var j2 = 0; j2 < component2.length; j2++) {
+ if (this.dummyToNodeForHorizontalAlignment.has(component2[j2])) {
+ this.dummyToNodeForHorizontalAlignment.get(component2[j2]).forEach(function(nodeId) {
+ self2.idToNodeMap.get(nodeId).displacementY = 0;
+ });
+ } else {
+ this.idToNodeMap.get(component2[j2]).displacementY = 0;
+ }
+ }
+ } else {
+ var sum2 = 0;
+ var count = 0;
+ for (var j2 = 0; j2 < component2.length; j2++) {
+ if (this.dummyToNodeForHorizontalAlignment.has(component2[j2])) {
+ var actualNodes = this.dummyToNodeForHorizontalAlignment.get(component2[j2]);
+ sum2 += actualNodes.length * this.idToNodeMap.get(actualNodes[0]).displacementY;
+ count += actualNodes.length;
+ } else {
+ sum2 += this.idToNodeMap.get(component2[j2]).displacementY;
+ count++;
+ }
+ }
+ var averageDisplacement = sum2 / count;
+ for (var j2 = 0; j2 < component2.length; j2++) {
+ if (this.dummyToNodeForHorizontalAlignment.has(component2[j2])) {
+ this.dummyToNodeForHorizontalAlignment.get(component2[j2]).forEach(function(nodeId) {
+ self2.idToNodeMap.get(nodeId).displacementY = averageDisplacement;
+ });
+ } else {
+ this.idToNodeMap.get(component2[j2]).displacementY = averageDisplacement;
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+ CoSELayout.prototype.calculateNodesToApplyGravitationTo = function() {
+ var nodeList = [];
+ var graph;
+ var graphs = this.graphManager.getGraphs();
+ var size5 = graphs.length;
+ var i2;
+ for (i2 = 0; i2 < size5; i2++) {
+ graph = graphs[i2];
+ graph.updateConnected();
+ if (!graph.isConnected) {
+ nodeList = nodeList.concat(graph.getNodes());
+ }
+ }
+ return nodeList;
+ };
+ CoSELayout.prototype.createBendpoints = function() {
+ var edges5 = [];
+ edges5 = edges5.concat(this.graphManager.getAllEdges());
+ var visited = /* @__PURE__ */ new Set();
+ var i2;
+ for (i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ if (!visited.has(edge)) {
+ var source = edge.getSource();
+ var target = edge.getTarget();
+ if (source == target) {
+ edge.getBendpoints().push(new PointD());
+ edge.getBendpoints().push(new PointD());
+ this.createDummyNodesForBendpoints(edge);
+ visited.add(edge);
+ } else {
+ var edgeList2 = [];
+ edgeList2 = edgeList2.concat(source.getEdgeListToNode(target));
+ edgeList2 = edgeList2.concat(target.getEdgeListToNode(source));
+ if (!visited.has(edgeList2[0])) {
+ if (edgeList2.length > 1) {
+ var k2;
+ for (k2 = 0; k2 < edgeList2.length; k2++) {
+ var multiEdge = edgeList2[k2];
+ multiEdge.getBendpoints().push(new PointD());
+ this.createDummyNodesForBendpoints(multiEdge);
+ }
+ }
+ edgeList2.forEach(function(edge2) {
+ visited.add(edge2);
+ });
+ }
+ }
+ }
+ if (visited.size == edges5.length) {
+ break;
+ }
+ }
+ };
+ CoSELayout.prototype.positionNodesRadially = function(forest) {
+ var currentStartingPoint = new Point3(0, 0);
+ var numberOfColumns = Math.ceil(Math.sqrt(forest.length));
+ var height2 = 0;
+ var currentY = 0;
+ var currentX = 0;
+ var point8 = new PointD(0, 0);
+ for (var i2 = 0; i2 < forest.length; i2++) {
+ if (i2 % numberOfColumns == 0) {
+ currentX = 0;
+ currentY = height2;
+ if (i2 != 0) {
+ currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;
+ }
+ height2 = 0;
+ }
+ var tree = forest[i2];
+ var centerNode = Layout2.findCenterOfTree(tree);
+ currentStartingPoint.x = currentX;
+ currentStartingPoint.y = currentY;
+ point8 = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);
+ if (point8.y > height2) {
+ height2 = Math.floor(point8.y);
+ }
+ currentX = Math.floor(point8.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);
+ }
+ this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point8.x / 2, LayoutConstants.WORLD_CENTER_Y - point8.y / 2));
+ };
+ CoSELayout.radialLayout = function(tree, centerNode, startingPoint) {
+ var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);
+ CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);
+ var bounds4 = LGraph.calculateBounds(tree);
+ var transform8 = new Transform2();
+ transform8.setDeviceOrgX(bounds4.getMinX());
+ transform8.setDeviceOrgY(bounds4.getMinY());
+ transform8.setWorldOrgX(startingPoint.x);
+ transform8.setWorldOrgY(startingPoint.y);
+ for (var i2 = 0; i2 < tree.length; i2++) {
+ var node2 = tree[i2];
+ node2.transform(transform8);
+ }
+ var bottomRight = new PointD(bounds4.getMaxX(), bounds4.getMaxY());
+ return transform8.inverseTransformPoint(bottomRight);
+ };
+ CoSELayout.branchRadialLayout = function(node2, parentOfNode, startAngle, endAngle, distance2, radialSeparation) {
+ var halfInterval = (endAngle - startAngle + 1) / 2;
+ if (halfInterval < 0) {
+ halfInterval += 180;
+ }
+ var nodeAngle = (halfInterval + startAngle) % 360;
+ var teta = nodeAngle * IGeometry.TWO_PI / 360;
+ var cos_teta = Math.cos(teta);
+ var x_ = distance2 * Math.cos(teta);
+ var y_ = distance2 * Math.sin(teta);
+ node2.setCenter(x_, y_);
+ var neighborEdges = [];
+ neighborEdges = neighborEdges.concat(node2.getEdges());
+ var childCount = neighborEdges.length;
+ if (parentOfNode != null) {
+ childCount--;
+ }
+ var branchCount = 0;
+ var incEdgesCount = neighborEdges.length;
+ var startIndex;
+ var edges5 = node2.getEdgesBetween(parentOfNode);
+ while (edges5.length > 1) {
+ var temp = edges5[0];
+ edges5.splice(0, 1);
+ var index = neighborEdges.indexOf(temp);
+ if (index >= 0) {
+ neighborEdges.splice(index, 1);
+ }
+ incEdgesCount--;
+ childCount--;
+ }
+ if (parentOfNode != null) {
+ startIndex = (neighborEdges.indexOf(edges5[0]) + 1) % incEdgesCount;
+ } else {
+ startIndex = 0;
+ }
+ var stepAngle = Math.abs(endAngle - startAngle) / childCount;
+ for (var i2 = startIndex; branchCount != childCount; i2 = ++i2 % incEdgesCount) {
+ var currentNeighbor = neighborEdges[i2].getOtherEnd(node2);
+ if (currentNeighbor == parentOfNode) {
+ continue;
+ }
+ var childStartAngle = (startAngle + branchCount * stepAngle) % 360;
+ var childEndAngle = (childStartAngle + stepAngle) % 360;
+ CoSELayout.branchRadialLayout(currentNeighbor, node2, childStartAngle, childEndAngle, distance2 + radialSeparation, radialSeparation);
+ branchCount++;
+ }
+ };
+ CoSELayout.maxDiagonalInTree = function(tree) {
+ var maxDiagonal = Integer.MIN_VALUE;
+ for (var i2 = 0; i2 < tree.length; i2++) {
+ var node2 = tree[i2];
+ var diagonal = node2.getDiagonal();
+ if (diagonal > maxDiagonal) {
+ maxDiagonal = diagonal;
+ }
+ }
+ return maxDiagonal;
+ };
+ CoSELayout.prototype.calcRepulsionRange = function() {
+ return 2 * (this.level + 1) * this.idealEdgeLength;
+ };
+ CoSELayout.prototype.groupZeroDegreeMembers = function() {
+ var self2 = this;
+ var tempMemberGroups = {};
+ this.memberGroups = {};
+ this.idToDummyNode = {};
+ var zeroDegree = [];
+ var allNodes = this.graphManager.getAllNodes();
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ var node2 = allNodes[i2];
+ var parent4 = node2.getParent();
+ if (this.getNodeDegreeWithChildren(node2) === 0 && (parent4.id == void 0 || !this.getToBeTiled(parent4))) {
+ zeroDegree.push(node2);
+ }
+ }
+ for (var i2 = 0; i2 < zeroDegree.length; i2++) {
+ var node2 = zeroDegree[i2];
+ var p_id = node2.getParent().id;
+ if (typeof tempMemberGroups[p_id] === "undefined") tempMemberGroups[p_id] = [];
+ tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node2);
+ }
+ Object.keys(tempMemberGroups).forEach(function(p_id2) {
+ if (tempMemberGroups[p_id2].length > 1) {
+ var dummyCompoundId = "DummyCompound_" + p_id2;
+ self2.memberGroups[dummyCompoundId] = tempMemberGroups[p_id2];
+ var parent5 = tempMemberGroups[p_id2][0].getParent();
+ var dummyCompound = new CoSENode(self2.graphManager);
+ dummyCompound.id = dummyCompoundId;
+ dummyCompound.paddingLeft = parent5.paddingLeft || 0;
+ dummyCompound.paddingRight = parent5.paddingRight || 0;
+ dummyCompound.paddingBottom = parent5.paddingBottom || 0;
+ dummyCompound.paddingTop = parent5.paddingTop || 0;
+ self2.idToDummyNode[dummyCompoundId] = dummyCompound;
+ var dummyParentGraph = self2.getGraphManager().add(self2.newGraph(), dummyCompound);
+ var parentGraph = parent5.getChild();
+ parentGraph.add(dummyCompound);
+ for (var i3 = 0; i3 < tempMemberGroups[p_id2].length; i3++) {
+ var node3 = tempMemberGroups[p_id2][i3];
+ parentGraph.remove(node3);
+ dummyParentGraph.add(node3);
+ }
+ }
});
- this.graphManager.setAllNodesToApplyGravitation(intersection2);
- this.positionNodesRandomly();
- }
- } else {
- if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {
- this.reduceTrees();
- this.graphManager.resetAllNodesToApplyGravitation();
- var allNodes = new Set(this.getAllNodes());
- var intersection2 = this.nodesWithGravity.filter(function(x2) {
- return allNodes.has(x2);
+ };
+ CoSELayout.prototype.clearCompounds = function() {
+ var childGraphMap = {};
+ var idToNode = {};
+ this.performDFSOnCompounds();
+ for (var i2 = 0; i2 < this.compoundOrder.length; i2++) {
+ idToNode[this.compoundOrder[i2].id] = this.compoundOrder[i2];
+ childGraphMap[this.compoundOrder[i2].id] = [].concat(this.compoundOrder[i2].getChild().getNodes());
+ this.graphManager.remove(this.compoundOrder[i2].getChild());
+ this.compoundOrder[i2].child = null;
+ }
+ this.graphManager.resetAllNodes();
+ this.tileCompoundMembers(childGraphMap, idToNode);
+ };
+ CoSELayout.prototype.clearZeroDegreeMembers = function() {
+ var self2 = this;
+ var tiledZeroDegreePack = this.tiledZeroDegreePack = [];
+ Object.keys(this.memberGroups).forEach(function(id27) {
+ var compoundNode = self2.idToDummyNode[id27];
+ tiledZeroDegreePack[id27] = self2.tileNodes(self2.memberGroups[id27], compoundNode.paddingLeft + compoundNode.paddingRight);
+ compoundNode.rect.width = tiledZeroDegreePack[id27].width;
+ compoundNode.rect.height = tiledZeroDegreePack[id27].height;
+ compoundNode.setCenter(tiledZeroDegreePack[id27].centerX, tiledZeroDegreePack[id27].centerY);
+ compoundNode.labelMarginLeft = 0;
+ compoundNode.labelMarginTop = 0;
+ if (CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {
+ var width3 = compoundNode.rect.width;
+ var height2 = compoundNode.rect.height;
+ if (compoundNode.labelWidth) {
+ if (compoundNode.labelPosHorizontal == "left") {
+ compoundNode.rect.x -= compoundNode.labelWidth;
+ compoundNode.setWidth(width3 + compoundNode.labelWidth);
+ compoundNode.labelMarginLeft = compoundNode.labelWidth;
+ } else if (compoundNode.labelPosHorizontal == "center" && compoundNode.labelWidth > width3) {
+ compoundNode.rect.x -= (compoundNode.labelWidth - width3) / 2;
+ compoundNode.setWidth(compoundNode.labelWidth);
+ compoundNode.labelMarginLeft = (compoundNode.labelWidth - width3) / 2;
+ } else if (compoundNode.labelPosHorizontal == "right") {
+ compoundNode.setWidth(width3 + compoundNode.labelWidth);
+ }
+ }
+ if (compoundNode.labelHeight) {
+ if (compoundNode.labelPosVertical == "top") {
+ compoundNode.rect.y -= compoundNode.labelHeight;
+ compoundNode.setHeight(height2 + compoundNode.labelHeight);
+ compoundNode.labelMarginTop = compoundNode.labelHeight;
+ } else if (compoundNode.labelPosVertical == "center" && compoundNode.labelHeight > height2) {
+ compoundNode.rect.y -= (compoundNode.labelHeight - height2) / 2;
+ compoundNode.setHeight(compoundNode.labelHeight);
+ compoundNode.labelMarginTop = (compoundNode.labelHeight - height2) / 2;
+ } else if (compoundNode.labelPosVertical == "bottom") {
+ compoundNode.setHeight(height2 + compoundNode.labelHeight);
+ }
+ }
+ }
});
- this.graphManager.setAllNodesToApplyGravitation(intersection2);
- }
- }
- this.initSpringEmbedder();
- this.runSpringEmbedder();
- return true;
- };
- CoSELayout.prototype.tick = function() {
- this.totalIterations++;
- if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {
- if (this.prunedNodesAll.length > 0) {
- this.isTreeGrowing = true;
- } else {
+ };
+ CoSELayout.prototype.repopulateCompounds = function() {
+ for (var i2 = this.compoundOrder.length - 1; i2 >= 0; i2--) {
+ var lCompoundNode = this.compoundOrder[i2];
+ var id27 = lCompoundNode.id;
+ var horizontalMargin = lCompoundNode.paddingLeft;
+ var verticalMargin = lCompoundNode.paddingTop;
+ var labelMarginLeft = lCompoundNode.labelMarginLeft;
+ var labelMarginTop = lCompoundNode.labelMarginTop;
+ this.adjustLocations(this.tiledMemberPack[id27], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin, labelMarginLeft, labelMarginTop);
+ }
+ };
+ CoSELayout.prototype.repopulateZeroDegreeMembers = function() {
+ var self2 = this;
+ var tiledPack = this.tiledZeroDegreePack;
+ Object.keys(tiledPack).forEach(function(id27) {
+ var compoundNode = self2.idToDummyNode[id27];
+ var horizontalMargin = compoundNode.paddingLeft;
+ var verticalMargin = compoundNode.paddingTop;
+ var labelMarginLeft = compoundNode.labelMarginLeft;
+ var labelMarginTop = compoundNode.labelMarginTop;
+ self2.adjustLocations(tiledPack[id27], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin, labelMarginLeft, labelMarginTop);
+ });
+ };
+ CoSELayout.prototype.getToBeTiled = function(node2) {
+ var id27 = node2.id;
+ if (this.toBeTiled[id27] != null) {
+ return this.toBeTiled[id27];
+ }
+ var childGraph = node2.getChild();
+ if (childGraph == null) {
+ this.toBeTiled[id27] = false;
+ return false;
+ }
+ var children2 = childGraph.getNodes();
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var theChild = children2[i2];
+ if (this.getNodeDegree(theChild) > 0) {
+ this.toBeTiled[id27] = false;
+ return false;
+ }
+ if (theChild.getChild() == null) {
+ this.toBeTiled[theChild.id] = false;
+ continue;
+ }
+ if (!this.getToBeTiled(theChild)) {
+ this.toBeTiled[id27] = false;
+ return false;
+ }
+ }
+ this.toBeTiled[id27] = true;
return true;
- }
- }
- if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {
- if (this.isConverged()) {
- if (this.prunedNodesAll.length > 0) {
- this.isTreeGrowing = true;
+ };
+ CoSELayout.prototype.getNodeDegree = function(node2) {
+ var id27 = node2.id;
+ var edges5 = node2.getEdges();
+ var degree = 0;
+ for (var i2 = 0; i2 < edges5.length; i2++) {
+ var edge = edges5[i2];
+ if (edge.getSource().id !== edge.getTarget().id) {
+ degree = degree + 1;
+ }
+ }
+ return degree;
+ };
+ CoSELayout.prototype.getNodeDegreeWithChildren = function(node2) {
+ var degree = this.getNodeDegree(node2);
+ if (node2.getChild() == null) {
+ return degree;
+ }
+ var children2 = node2.getChild().getNodes();
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var child = children2[i2];
+ degree += this.getNodeDegreeWithChildren(child);
+ }
+ return degree;
+ };
+ CoSELayout.prototype.performDFSOnCompounds = function() {
+ this.compoundOrder = [];
+ this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());
+ };
+ CoSELayout.prototype.fillCompexOrderByDFS = function(children2) {
+ for (var i2 = 0; i2 < children2.length; i2++) {
+ var child = children2[i2];
+ if (child.getChild() != null) {
+ this.fillCompexOrderByDFS(child.getChild().getNodes());
+ }
+ if (this.getToBeTiled(child)) {
+ this.compoundOrder.push(child);
+ }
+ }
+ };
+ CoSELayout.prototype.adjustLocations = function(organization, x5, y5, compoundHorizontalMargin, compoundVerticalMargin, compoundLabelMarginLeft, compoundLabelMarginTop) {
+ x5 += compoundHorizontalMargin + compoundLabelMarginLeft;
+ y5 += compoundVerticalMargin + compoundLabelMarginTop;
+ var left3 = x5;
+ for (var i2 = 0; i2 < organization.rows.length; i2++) {
+ var row = organization.rows[i2];
+ x5 = left3;
+ var maxHeight = 0;
+ for (var j2 = 0; j2 < row.length; j2++) {
+ var lnode = row[j2];
+ lnode.rect.x = x5;
+ lnode.rect.y = y5;
+ x5 += lnode.rect.width + organization.horizontalPadding;
+ if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;
+ }
+ y5 += maxHeight + organization.verticalPadding;
+ }
+ };
+ CoSELayout.prototype.tileCompoundMembers = function(childGraphMap, idToNode) {
+ var self2 = this;
+ this.tiledMemberPack = [];
+ Object.keys(childGraphMap).forEach(function(id27) {
+ var compoundNode = idToNode[id27];
+ self2.tiledMemberPack[id27] = self2.tileNodes(childGraphMap[id27], compoundNode.paddingLeft + compoundNode.paddingRight);
+ compoundNode.rect.width = self2.tiledMemberPack[id27].width;
+ compoundNode.rect.height = self2.tiledMemberPack[id27].height;
+ compoundNode.setCenter(self2.tiledMemberPack[id27].centerX, self2.tiledMemberPack[id27].centerY);
+ compoundNode.labelMarginLeft = 0;
+ compoundNode.labelMarginTop = 0;
+ if (CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {
+ var width3 = compoundNode.rect.width;
+ var height2 = compoundNode.rect.height;
+ if (compoundNode.labelWidth) {
+ if (compoundNode.labelPosHorizontal == "left") {
+ compoundNode.rect.x -= compoundNode.labelWidth;
+ compoundNode.setWidth(width3 + compoundNode.labelWidth);
+ compoundNode.labelMarginLeft = compoundNode.labelWidth;
+ } else if (compoundNode.labelPosHorizontal == "center" && compoundNode.labelWidth > width3) {
+ compoundNode.rect.x -= (compoundNode.labelWidth - width3) / 2;
+ compoundNode.setWidth(compoundNode.labelWidth);
+ compoundNode.labelMarginLeft = (compoundNode.labelWidth - width3) / 2;
+ } else if (compoundNode.labelPosHorizontal == "right") {
+ compoundNode.setWidth(width3 + compoundNode.labelWidth);
+ }
+ }
+ if (compoundNode.labelHeight) {
+ if (compoundNode.labelPosVertical == "top") {
+ compoundNode.rect.y -= compoundNode.labelHeight;
+ compoundNode.setHeight(height2 + compoundNode.labelHeight);
+ compoundNode.labelMarginTop = compoundNode.labelHeight;
+ } else if (compoundNode.labelPosVertical == "center" && compoundNode.labelHeight > height2) {
+ compoundNode.rect.y -= (compoundNode.labelHeight - height2) / 2;
+ compoundNode.setHeight(compoundNode.labelHeight);
+ compoundNode.labelMarginTop = (compoundNode.labelHeight - height2) / 2;
+ } else if (compoundNode.labelPosVertical == "bottom") {
+ compoundNode.setHeight(height2 + compoundNode.labelHeight);
+ }
+ }
+ }
+ });
+ };
+ CoSELayout.prototype.tileNodes = function(nodes6, minWidth) {
+ var horizontalOrg = this.tileNodesByFavoringDim(nodes6, minWidth, true);
+ var verticalOrg = this.tileNodesByFavoringDim(nodes6, minWidth, false);
+ var horizontalRatio = this.getOrgRatio(horizontalOrg);
+ var verticalRatio = this.getOrgRatio(verticalOrg);
+ var bestOrg;
+ if (verticalRatio < horizontalRatio) {
+ bestOrg = verticalOrg;
+ } else {
+ bestOrg = horizontalOrg;
+ }
+ return bestOrg;
+ };
+ CoSELayout.prototype.getOrgRatio = function(organization) {
+ var width3 = organization.width;
+ var height2 = organization.height;
+ var ratio = width3 / height2;
+ if (ratio < 1) {
+ ratio = 1 / ratio;
+ }
+ return ratio;
+ };
+ CoSELayout.prototype.calcIdealRowWidth = function(members, favorHorizontalDim) {
+ var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;
+ var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;
+ var membersSize = members.length;
+ var totalWidth = 0;
+ var totalHeight = 0;
+ var maxWidth = 0;
+ members.forEach(function(node2) {
+ totalWidth += node2.getWidth();
+ totalHeight += node2.getHeight();
+ if (node2.getWidth() > maxWidth) {
+ maxWidth = node2.getWidth();
+ }
+ });
+ var averageWidth = totalWidth / membersSize;
+ var averageHeight = totalHeight / membersSize;
+ var delta = Math.pow(verticalPadding - horizontalPadding, 2) + 4 * (averageWidth + horizontalPadding) * (averageHeight + verticalPadding) * membersSize;
+ var horizontalCountDouble = (horizontalPadding - verticalPadding + Math.sqrt(delta)) / (2 * (averageWidth + horizontalPadding));
+ var horizontalCount;
+ if (favorHorizontalDim) {
+ horizontalCount = Math.ceil(horizontalCountDouble);
+ if (horizontalCount == horizontalCountDouble) {
+ horizontalCount++;
+ }
} else {
+ horizontalCount = Math.floor(horizontalCountDouble);
+ }
+ var idealWidth = horizontalCount * (averageWidth + horizontalPadding) - horizontalPadding;
+ if (maxWidth > idealWidth) {
+ idealWidth = maxWidth;
+ }
+ idealWidth += horizontalPadding * 2;
+ return idealWidth;
+ };
+ CoSELayout.prototype.tileNodesByFavoringDim = function(nodes6, minWidth, favorHorizontalDim) {
+ var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;
+ var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;
+ var tilingCompareBy = CoSEConstants.TILING_COMPARE_BY;
+ var organization = {
+ rows: [],
+ rowWidth: [],
+ rowHeight: [],
+ width: 0,
+ height: minWidth,
+ // assume minHeight equals to minWidth
+ verticalPadding,
+ horizontalPadding,
+ centerX: 0,
+ centerY: 0
+ };
+ if (tilingCompareBy) {
+ organization.idealRowWidth = this.calcIdealRowWidth(nodes6, favorHorizontalDim);
+ }
+ var getNodeArea = /* @__PURE__ */ __name(function getNodeArea2(n2) {
+ return n2.rect.width * n2.rect.height;
+ }, "getNodeArea");
+ var areaCompareFcn = /* @__PURE__ */ __name(function areaCompareFcn2(n1, n2) {
+ return getNodeArea(n2) - getNodeArea(n1);
+ }, "areaCompareFcn");
+ nodes6.sort(function(n1, n2) {
+ var cmpBy = areaCompareFcn;
+ if (organization.idealRowWidth) {
+ cmpBy = tilingCompareBy;
+ return cmpBy(n1.id, n2.id);
+ }
+ return cmpBy(n1, n2);
+ });
+ var sumCenterX = 0;
+ var sumCenterY = 0;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var lNode = nodes6[i2];
+ sumCenterX += lNode.getCenterX();
+ sumCenterY += lNode.getCenterY();
+ }
+ organization.centerX = sumCenterX / nodes6.length;
+ organization.centerY = sumCenterY / nodes6.length;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ var lNode = nodes6[i2];
+ if (organization.rows.length == 0) {
+ this.insertNodeToRow(organization, lNode, 0, minWidth);
+ } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {
+ var rowIndex = organization.rows.length - 1;
+ if (!organization.idealRowWidth) {
+ rowIndex = this.getShortestRowIndex(organization);
+ }
+ this.insertNodeToRow(organization, lNode, rowIndex, minWidth);
+ } else {
+ this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);
+ }
+ this.shiftToLastRow(organization);
+ }
+ return organization;
+ };
+ CoSELayout.prototype.insertNodeToRow = function(organization, node2, rowIndex, minWidth) {
+ var minCompoundSize = minWidth;
+ if (rowIndex == organization.rows.length) {
+ var secondDimension = [];
+ organization.rows.push(secondDimension);
+ organization.rowWidth.push(minCompoundSize);
+ organization.rowHeight.push(0);
+ }
+ var w3 = organization.rowWidth[rowIndex] + node2.rect.width;
+ if (organization.rows[rowIndex].length > 0) {
+ w3 += organization.horizontalPadding;
+ }
+ organization.rowWidth[rowIndex] = w3;
+ if (organization.width < w3) {
+ organization.width = w3;
+ }
+ var h2 = node2.rect.height;
+ if (rowIndex > 0) h2 += organization.verticalPadding;
+ var extraHeight = 0;
+ if (h2 > organization.rowHeight[rowIndex]) {
+ extraHeight = organization.rowHeight[rowIndex];
+ organization.rowHeight[rowIndex] = h2;
+ extraHeight = organization.rowHeight[rowIndex] - extraHeight;
+ }
+ organization.height += extraHeight;
+ organization.rows[rowIndex].push(node2);
+ };
+ CoSELayout.prototype.getShortestRowIndex = function(organization) {
+ var r2 = -1;
+ var min9 = Number.MAX_VALUE;
+ for (var i2 = 0; i2 < organization.rows.length; i2++) {
+ if (organization.rowWidth[i2] < min9) {
+ r2 = i2;
+ min9 = organization.rowWidth[i2];
+ }
+ }
+ return r2;
+ };
+ CoSELayout.prototype.getLongestRowIndex = function(organization) {
+ var r2 = -1;
+ var max10 = Number.MIN_VALUE;
+ for (var i2 = 0; i2 < organization.rows.length; i2++) {
+ if (organization.rowWidth[i2] > max10) {
+ r2 = i2;
+ max10 = organization.rowWidth[i2];
+ }
+ }
+ return r2;
+ };
+ CoSELayout.prototype.canAddHorizontal = function(organization, extraWidth, extraHeight) {
+ if (organization.idealRowWidth) {
+ var lastRowIndex = organization.rows.length - 1;
+ var lastRowWidth = organization.rowWidth[lastRowIndex];
+ return lastRowWidth + extraWidth + organization.horizontalPadding <= organization.idealRowWidth;
+ }
+ var sri = this.getShortestRowIndex(organization);
+ if (sri < 0) {
return true;
}
- }
- this.coolingCycle++;
- if (this.layoutQuality == 0) {
- this.coolingAdjuster = this.coolingCycle;
- } else if (this.layoutQuality == 1) {
- this.coolingAdjuster = this.coolingCycle / 3;
- }
- this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);
- this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));
- }
- if (this.isTreeGrowing) {
- if (this.growTreeIterations % 10 == 0) {
- if (this.prunedNodesAll.length > 0) {
- this.graphManager.updateBounds();
- this.updateGrid();
- this.growTree(this.prunedNodesAll);
- this.graphManager.resetAllNodesToApplyGravitation();
- var allNodes = new Set(this.getAllNodes());
- var intersection2 = this.nodesWithGravity.filter(function(x2) {
- return allNodes.has(x2);
- });
- this.graphManager.setAllNodesToApplyGravitation(intersection2);
- this.graphManager.updateBounds();
- this.updateGrid();
- this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
+ var min9 = organization.rowWidth[sri];
+ if (min9 + organization.horizontalPadding + extraWidth <= organization.width) return true;
+ var hDiff = 0;
+ if (organization.rowHeight[sri] < extraHeight) {
+ if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];
+ }
+ var add_to_row_ratio;
+ if (organization.width - min9 >= extraWidth + organization.horizontalPadding) {
+ add_to_row_ratio = (organization.height + hDiff) / (min9 + extraWidth + organization.horizontalPadding);
} else {
- this.isTreeGrowing = false;
- this.isGrowthFinished = true;
+ add_to_row_ratio = (organization.height + hDiff) / organization.width;
+ }
+ hDiff = extraHeight + organization.verticalPadding;
+ var add_new_row_ratio;
+ if (organization.width < extraWidth) {
+ add_new_row_ratio = (organization.height + hDiff) / extraWidth;
+ } else {
+ add_new_row_ratio = (organization.height + hDiff) / organization.width;
+ }
+ if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;
+ if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;
+ return add_to_row_ratio < add_new_row_ratio;
+ };
+ CoSELayout.prototype.shiftToLastRow = function(organization) {
+ var longest = this.getLongestRowIndex(organization);
+ var last3 = organization.rowWidth.length - 1;
+ var row = organization.rows[longest];
+ var node2 = row[row.length - 1];
+ var diff2 = node2.width + organization.horizontalPadding;
+ if (organization.width - organization.rowWidth[last3] > diff2 && longest != last3) {
+ row.splice(-1, 1);
+ organization.rows[last3].push(node2);
+ organization.rowWidth[longest] = organization.rowWidth[longest] - diff2;
+ organization.rowWidth[last3] = organization.rowWidth[last3] + diff2;
+ organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];
+ var maxHeight = Number.MIN_VALUE;
+ for (var i2 = 0; i2 < row.length; i2++) {
+ if (row[i2].height > maxHeight) maxHeight = row[i2].height;
+ }
+ if (longest > 0) maxHeight += organization.verticalPadding;
+ var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last3];
+ organization.rowHeight[longest] = maxHeight;
+ if (organization.rowHeight[last3] < node2.height + organization.verticalPadding) organization.rowHeight[last3] = node2.height + organization.verticalPadding;
+ var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last3];
+ organization.height += finalTotal - prevTotal;
+ this.shiftToLastRow(organization);
+ }
+ };
+ CoSELayout.prototype.tilingPreLayout = function() {
+ if (CoSEConstants.TILE) {
+ this.groupZeroDegreeMembers();
+ this.clearCompounds();
+ this.clearZeroDegreeMembers();
+ }
+ };
+ CoSELayout.prototype.tilingPostLayout = function() {
+ if (CoSEConstants.TILE) {
+ this.repopulateZeroDegreeMembers();
+ this.repopulateCompounds();
+ }
+ };
+ CoSELayout.prototype.reduceTrees = function() {
+ var prunedNodesAll = [];
+ var containsLeaf = true;
+ var node2;
+ while (containsLeaf) {
+ var allNodes = this.graphManager.getAllNodes();
+ var prunedNodesInStepTemp = [];
+ containsLeaf = false;
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ node2 = allNodes[i2];
+ if (node2.getEdges().length == 1 && !node2.getEdges()[0].isInterGraph && node2.getChild() == null) {
+ if (CoSEConstants.PURE_INCREMENTAL) {
+ var otherEnd = node2.getEdges()[0].getOtherEnd(node2);
+ var relativePosition2 = new DimensionD2(node2.getCenterX() - otherEnd.getCenterX(), node2.getCenterY() - otherEnd.getCenterY());
+ prunedNodesInStepTemp.push([node2, node2.getEdges()[0], node2.getOwner(), relativePosition2]);
+ } else {
+ prunedNodesInStepTemp.push([node2, node2.getEdges()[0], node2.getOwner()]);
+ }
+ containsLeaf = true;
+ }
+ }
+ if (containsLeaf == true) {
+ var prunedNodesInStep = [];
+ for (var j2 = 0; j2 < prunedNodesInStepTemp.length; j2++) {
+ if (prunedNodesInStepTemp[j2][0].getEdges().length == 1) {
+ prunedNodesInStep.push(prunedNodesInStepTemp[j2]);
+ prunedNodesInStepTemp[j2][0].getOwner().remove(prunedNodesInStepTemp[j2][0]);
+ }
+ }
+ prunedNodesAll.push(prunedNodesInStep);
+ this.graphManager.resetAllNodes();
+ this.graphManager.resetAllEdges();
+ }
}
- }
- this.growTreeIterations++;
- }
- if (this.isGrowthFinished) {
- if (this.isConverged()) {
- return true;
- }
- if (this.afterGrowthIterations % 10 == 0) {
- this.graphManager.updateBounds();
- this.updateGrid();
- }
- this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);
- this.afterGrowthIterations++;
- }
- var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;
- var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;
- this.totalDisplacement = 0;
- this.graphManager.updateBounds();
- this.calcSpringForces();
- this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);
- this.calcGravitationalForces();
- this.moveNodes();
- this.animate();
- return false;
- };
- CoSELayout.prototype.getPositionsData = function() {
- var allNodes = this.graphManager.getAllNodes();
- var pData = {};
- for (var i2 = 0; i2 < allNodes.length; i2++) {
- var rect2 = allNodes[i2].rect;
- var id2 = allNodes[i2].id;
- pData[id2] = {
- id: id2,
- x: rect2.getCenterX(),
- y: rect2.getCenterY(),
- w: rect2.width,
- h: rect2.height
+ this.prunedNodesAll = prunedNodesAll;
};
- }
- return pData;
- };
- CoSELayout.prototype.runSpringEmbedder = function() {
- this.initialAnimationPeriod = 25;
- this.animationPeriod = this.initialAnimationPeriod;
- var layoutEnded = false;
- if (FDLayoutConstants.ANIMATE === "during") {
- this.emit("layoutstarted");
- } else {
- while (!layoutEnded) {
- layoutEnded = this.tick();
- }
- this.graphManager.updateBounds();
- }
- };
- CoSELayout.prototype.calculateNodesToApplyGravitationTo = function() {
- var nodeList = [];
- var graph;
- var graphs = this.graphManager.getGraphs();
- var size2 = graphs.length;
- var i2;
- for (i2 = 0; i2 < size2; i2++) {
- graph = graphs[i2];
- graph.updateConnected();
- if (!graph.isConnected) {
- nodeList = nodeList.concat(graph.getNodes());
- }
- }
- return nodeList;
- };
- CoSELayout.prototype.createBendpoints = function() {
- var edges2 = [];
- edges2 = edges2.concat(this.graphManager.getAllEdges());
- var visited = /* @__PURE__ */ new Set();
- var i2;
- for (i2 = 0; i2 < edges2.length; i2++) {
- var edge = edges2[i2];
- if (!visited.has(edge)) {
- var source = edge.getSource();
- var target = edge.getTarget();
- if (source == target) {
- edge.getBendpoints().push(new PointD());
- edge.getBendpoints().push(new PointD());
- this.createDummyNodesForBendpoints(edge);
- visited.add(edge);
+ CoSELayout.prototype.growTree = function(prunedNodesAll) {
+ var lengthOfPrunedNodesInStep = prunedNodesAll.length;
+ var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];
+ var nodeData2;
+ for (var i2 = 0; i2 < prunedNodesInStep.length; i2++) {
+ nodeData2 = prunedNodesInStep[i2];
+ this.findPlaceforPrunedNode(nodeData2);
+ nodeData2[2].add(nodeData2[0]);
+ nodeData2[2].add(nodeData2[1], nodeData2[1].source, nodeData2[1].target);
+ }
+ prunedNodesAll.splice(prunedNodesAll.length - 1, 1);
+ this.graphManager.resetAllNodes();
+ this.graphManager.resetAllEdges();
+ };
+ CoSELayout.prototype.findPlaceforPrunedNode = function(nodeData2) {
+ var gridForPrunedNode;
+ var nodeToConnect;
+ var prunedNode = nodeData2[0];
+ if (prunedNode == nodeData2[1].source) {
+ nodeToConnect = nodeData2[1].target;
} else {
- var edgeList = [];
- edgeList = edgeList.concat(source.getEdgeListToNode(target));
- edgeList = edgeList.concat(target.getEdgeListToNode(source));
- if (!visited.has(edgeList[0])) {
- if (edgeList.length > 1) {
- var k;
- for (k = 0; k < edgeList.length; k++) {
- var multiEdge = edgeList[k];
- multiEdge.getBendpoints().push(new PointD());
- this.createDummyNodesForBendpoints(multiEdge);
+ nodeToConnect = nodeData2[1].source;
+ }
+ if (CoSEConstants.PURE_INCREMENTAL) {
+ prunedNode.setCenter(nodeToConnect.getCenterX() + nodeData2[3].getWidth(), nodeToConnect.getCenterY() + nodeData2[3].getHeight());
+ } else {
+ var startGridX = nodeToConnect.startX;
+ var finishGridX = nodeToConnect.finishX;
+ var startGridY = nodeToConnect.startY;
+ var finishGridY = nodeToConnect.finishY;
+ var upNodeCount = 0;
+ var downNodeCount = 0;
+ var rightNodeCount = 0;
+ var leftNodeCount = 0;
+ var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];
+ if (startGridY > 0) {
+ for (var i2 = startGridX; i2 <= finishGridX; i2++) {
+ controlRegions[0] += this.grid[i2][startGridY - 1].length + this.grid[i2][startGridY].length - 1;
+ }
+ }
+ if (finishGridX < this.grid.length - 1) {
+ for (var i2 = startGridY; i2 <= finishGridY; i2++) {
+ controlRegions[1] += this.grid[finishGridX + 1][i2].length + this.grid[finishGridX][i2].length - 1;
+ }
+ }
+ if (finishGridY < this.grid[0].length - 1) {
+ for (var i2 = startGridX; i2 <= finishGridX; i2++) {
+ controlRegions[2] += this.grid[i2][finishGridY + 1].length + this.grid[i2][finishGridY].length - 1;
+ }
+ }
+ if (startGridX > 0) {
+ for (var i2 = startGridY; i2 <= finishGridY; i2++) {
+ controlRegions[3] += this.grid[startGridX - 1][i2].length + this.grid[startGridX][i2].length - 1;
+ }
+ }
+ var min9 = Integer.MAX_VALUE;
+ var minCount;
+ var minIndex;
+ for (var j2 = 0; j2 < controlRegions.length; j2++) {
+ if (controlRegions[j2] < min9) {
+ min9 = controlRegions[j2];
+ minCount = 1;
+ minIndex = j2;
+ } else if (controlRegions[j2] == min9) {
+ minCount++;
+ }
+ }
+ if (minCount == 3 && min9 == 0) {
+ if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {
+ gridForPrunedNode = 1;
+ } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 0;
+ } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 3;
+ } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
+ gridForPrunedNode = 2;
+ }
+ } else if (minCount == 2 && min9 == 0) {
+ var random2 = Math.floor(Math.random() * 2);
+ if (controlRegions[0] == 0 && controlRegions[1] == 0) {
+ ;
+ if (random2 == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 1;
+ }
+ } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 2;
+ }
+ } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 0;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 1;
+ } else {
+ gridForPrunedNode = 2;
+ }
+ } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {
+ if (random2 == 0) {
+ gridForPrunedNode = 1;
+ } else {
+ gridForPrunedNode = 3;
+ }
+ } else {
+ if (random2 == 0) {
+ gridForPrunedNode = 2;
+ } else {
+ gridForPrunedNode = 3;
}
}
- edgeList.forEach(function(edge2) {
- visited.add(edge2);
- });
+ } else if (minCount == 4 && min9 == 0) {
+ var random2 = Math.floor(Math.random() * 4);
+ gridForPrunedNode = random2;
+ } else {
+ gridForPrunedNode = minIndex;
+ }
+ if (gridForPrunedNode == 0) {
+ prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);
+ } else if (gridForPrunedNode == 1) {
+ prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
+ } else if (gridForPrunedNode == 2) {
+ prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);
+ } else {
+ prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
}
}
- }
- if (visited.size == edges2.length) {
- break;
- }
- }
- };
- CoSELayout.prototype.positionNodesRadially = function(forest) {
- var currentStartingPoint = new Point2(0, 0);
- var numberOfColumns = Math.ceil(Math.sqrt(forest.length));
- var height2 = 0;
- var currentY = 0;
- var currentX = 0;
- var point2 = new PointD(0, 0);
- for (var i2 = 0; i2 < forest.length; i2++) {
- if (i2 % numberOfColumns == 0) {
- currentX = 0;
- currentY = height2;
- if (i2 != 0) {
- currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;
+ };
+ module3.exports = CoSELayout;
+ }
+ ),
+ /***/
+ 991: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var FDLayoutNode = __webpack_require__2(551).FDLayoutNode;
+ var IMath = __webpack_require__2(551).IMath;
+ function CoSENode(gm, loc, size5, vNode) {
+ FDLayoutNode.call(this, gm, loc, size5, vNode);
+ }
+ __name(CoSENode, "CoSENode");
+ CoSENode.prototype = Object.create(FDLayoutNode.prototype);
+ for (var prop in FDLayoutNode) {
+ CoSENode[prop] = FDLayoutNode[prop];
+ }
+ CoSENode.prototype.calculateDisplacement = function() {
+ var layout6 = this.graphManager.getLayout();
+ if (this.getChild() != null && this.fixedNodeWeight) {
+ this.displacementX += layout6.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.fixedNodeWeight;
+ this.displacementY += layout6.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.fixedNodeWeight;
+ } else {
+ this.displacementX += layout6.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;
+ this.displacementY += layout6.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;
}
- height2 = 0;
- }
- var tree = forest[i2];
- var centerNode = Layout2.findCenterOfTree(tree);
- currentStartingPoint.x = currentX;
- currentStartingPoint.y = currentY;
- point2 = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);
- if (point2.y > height2) {
- height2 = Math.floor(point2.y);
- }
- currentX = Math.floor(point2.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);
- }
- this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point2.x / 2, LayoutConstants.WORLD_CENTER_Y - point2.y / 2));
- };
- CoSELayout.radialLayout = function(tree, centerNode, startingPoint) {
- var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);
- CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);
- var bounds2 = LGraph.calculateBounds(tree);
- var transform = new Transform2();
- transform.setDeviceOrgX(bounds2.getMinX());
- transform.setDeviceOrgY(bounds2.getMinY());
- transform.setWorldOrgX(startingPoint.x);
- transform.setWorldOrgY(startingPoint.y);
- for (var i2 = 0; i2 < tree.length; i2++) {
- var node2 = tree[i2];
- node2.transform(transform);
- }
- var bottomRight = new PointD(bounds2.getMaxX(), bounds2.getMaxY());
- return transform.inverseTransformPoint(bottomRight);
- };
- CoSELayout.branchRadialLayout = function(node2, parentOfNode, startAngle, endAngle, distance2, radialSeparation) {
- var halfInterval = (endAngle - startAngle + 1) / 2;
- if (halfInterval < 0) {
- halfInterval += 180;
- }
- var nodeAngle = (halfInterval + startAngle) % 360;
- var teta = nodeAngle * IGeometry.TWO_PI / 360;
- var x_ = distance2 * Math.cos(teta);
- var y_ = distance2 * Math.sin(teta);
- node2.setCenter(x_, y_);
- var neighborEdges = [];
- neighborEdges = neighborEdges.concat(node2.getEdges());
- var childCount = neighborEdges.length;
- if (parentOfNode != null) {
- childCount--;
- }
- var branchCount = 0;
- var incEdgesCount = neighborEdges.length;
- var startIndex;
- var edges2 = node2.getEdgesBetween(parentOfNode);
- while (edges2.length > 1) {
- var temp = edges2[0];
- edges2.splice(0, 1);
- var index = neighborEdges.indexOf(temp);
- if (index >= 0) {
- neighborEdges.splice(index, 1);
- }
- incEdgesCount--;
- childCount--;
- }
- if (parentOfNode != null) {
- startIndex = (neighborEdges.indexOf(edges2[0]) + 1) % incEdgesCount;
- } else {
- startIndex = 0;
- }
- var stepAngle = Math.abs(endAngle - startAngle) / childCount;
- for (var i2 = startIndex; branchCount != childCount; i2 = ++i2 % incEdgesCount) {
- var currentNeighbor = neighborEdges[i2].getOtherEnd(node2);
- if (currentNeighbor == parentOfNode) {
- continue;
- }
- var childStartAngle = (startAngle + branchCount * stepAngle) % 360;
- var childEndAngle = (childStartAngle + stepAngle) % 360;
- CoSELayout.branchRadialLayout(currentNeighbor, node2, childStartAngle, childEndAngle, distance2 + radialSeparation, radialSeparation);
- branchCount++;
- }
- };
- CoSELayout.maxDiagonalInTree = function(tree) {
- var maxDiagonal = Integer.MIN_VALUE;
- for (var i2 = 0; i2 < tree.length; i2++) {
- var node2 = tree[i2];
- var diagonal = node2.getDiagonal();
- if (diagonal > maxDiagonal) {
- maxDiagonal = diagonal;
- }
- }
- return maxDiagonal;
- };
- CoSELayout.prototype.calcRepulsionRange = function() {
- return 2 * (this.level + 1) * this.idealEdgeLength;
- };
- CoSELayout.prototype.groupZeroDegreeMembers = function() {
- var self2 = this;
- var tempMemberGroups = {};
- this.memberGroups = {};
- this.idToDummyNode = {};
- var zeroDegree = [];
- var allNodes = this.graphManager.getAllNodes();
- for (var i2 = 0; i2 < allNodes.length; i2++) {
- var node2 = allNodes[i2];
- var parent = node2.getParent();
- if (this.getNodeDegreeWithChildren(node2) === 0 && (parent.id == void 0 || !this.getToBeTiled(parent))) {
- zeroDegree.push(node2);
- }
- }
- for (var i2 = 0; i2 < zeroDegree.length; i2++) {
- var node2 = zeroDegree[i2];
- var p_id = node2.getParent().id;
- if (typeof tempMemberGroups[p_id] === "undefined")
- tempMemberGroups[p_id] = [];
- tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node2);
- }
- Object.keys(tempMemberGroups).forEach(function(p_id2) {
- if (tempMemberGroups[p_id2].length > 1) {
- var dummyCompoundId = "DummyCompound_" + p_id2;
- self2.memberGroups[dummyCompoundId] = tempMemberGroups[p_id2];
- var parent2 = tempMemberGroups[p_id2][0].getParent();
- var dummyCompound = new CoSENode(self2.graphManager);
- dummyCompound.id = dummyCompoundId;
- dummyCompound.paddingLeft = parent2.paddingLeft || 0;
- dummyCompound.paddingRight = parent2.paddingRight || 0;
- dummyCompound.paddingBottom = parent2.paddingBottom || 0;
- dummyCompound.paddingTop = parent2.paddingTop || 0;
- self2.idToDummyNode[dummyCompoundId] = dummyCompound;
- var dummyParentGraph = self2.getGraphManager().add(self2.newGraph(), dummyCompound);
- var parentGraph = parent2.getChild();
- parentGraph.add(dummyCompound);
- for (var i3 = 0; i3 < tempMemberGroups[p_id2].length; i3++) {
- var node3 = tempMemberGroups[p_id2][i3];
- parentGraph.remove(node3);
- dummyParentGraph.add(node3);
+ if (Math.abs(this.displacementX) > layout6.coolingFactor * layout6.maxNodeDisplacement) {
+ this.displacementX = layout6.coolingFactor * layout6.maxNodeDisplacement * IMath.sign(this.displacementX);
+ }
+ if (Math.abs(this.displacementY) > layout6.coolingFactor * layout6.maxNodeDisplacement) {
+ this.displacementY = layout6.coolingFactor * layout6.maxNodeDisplacement * IMath.sign(this.displacementY);
+ }
+ if (this.child && this.child.getNodes().length > 0) {
+ this.propogateDisplacementToChildren(this.displacementX, this.displacementY);
+ }
+ };
+ CoSENode.prototype.propogateDisplacementToChildren = function(dX, dY) {
+ var nodes6 = this.getChild().getNodes();
+ var node2;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ node2 = nodes6[i2];
+ if (node2.getChild() == null) {
+ node2.displacementX += dX;
+ node2.displacementY += dY;
+ } else {
+ node2.propogateDisplacementToChildren(dX, dY);
+ }
+ }
+ };
+ CoSENode.prototype.move = function() {
+ var layout6 = this.graphManager.getLayout();
+ if (this.child == null || this.child.getNodes().length == 0) {
+ this.moveBy(this.displacementX, this.displacementY);
+ layout6.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);
+ }
+ this.springForceX = 0;
+ this.springForceY = 0;
+ this.repulsionForceX = 0;
+ this.repulsionForceY = 0;
+ this.gravitationForceX = 0;
+ this.gravitationForceY = 0;
+ this.displacementX = 0;
+ this.displacementY = 0;
+ };
+ CoSENode.prototype.setPred1 = function(pred12) {
+ this.pred1 = pred12;
+ };
+ CoSENode.prototype.getPred1 = function() {
+ return pred1;
+ };
+ CoSENode.prototype.getPred2 = function() {
+ return pred2;
+ };
+ CoSENode.prototype.setNext = function(next3) {
+ this.next = next3;
+ };
+ CoSENode.prototype.getNext = function() {
+ return next;
+ };
+ CoSENode.prototype.setProcessed = function(processed2) {
+ this.processed = processed2;
+ };
+ CoSENode.prototype.isProcessed = function() {
+ return processed;
+ };
+ module3.exports = CoSENode;
+ }
+ ),
+ /***/
+ 902: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ function _toConsumableArray(arr) {
+ if (Array.isArray(arr)) {
+ for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) {
+ arr2[i2] = arr[i2];
+ }
+ return arr2;
+ } else {
+ return Array.from(arr);
}
}
- });
- };
- CoSELayout.prototype.clearCompounds = function() {
- var childGraphMap = {};
- var idToNode = {};
- this.performDFSOnCompounds();
- for (var i2 = 0; i2 < this.compoundOrder.length; i2++) {
- idToNode[this.compoundOrder[i2].id] = this.compoundOrder[i2];
- childGraphMap[this.compoundOrder[i2].id] = [].concat(this.compoundOrder[i2].getChild().getNodes());
- this.graphManager.remove(this.compoundOrder[i2].getChild());
- this.compoundOrder[i2].child = null;
- }
- this.graphManager.resetAllNodes();
- this.tileCompoundMembers(childGraphMap, idToNode);
- };
- CoSELayout.prototype.clearZeroDegreeMembers = function() {
- var self2 = this;
- var tiledZeroDegreePack = this.tiledZeroDegreePack = [];
- Object.keys(this.memberGroups).forEach(function(id2) {
- var compoundNode = self2.idToDummyNode[id2];
- tiledZeroDegreePack[id2] = self2.tileNodes(self2.memberGroups[id2], compoundNode.paddingLeft + compoundNode.paddingRight);
- compoundNode.rect.width = tiledZeroDegreePack[id2].width;
- compoundNode.rect.height = tiledZeroDegreePack[id2].height;
- });
- };
- CoSELayout.prototype.repopulateCompounds = function() {
- for (var i2 = this.compoundOrder.length - 1; i2 >= 0; i2--) {
- var lCompoundNode = this.compoundOrder[i2];
- var id2 = lCompoundNode.id;
- var horizontalMargin = lCompoundNode.paddingLeft;
- var verticalMargin = lCompoundNode.paddingTop;
- this.adjustLocations(this.tiledMemberPack[id2], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);
- }
- };
- CoSELayout.prototype.repopulateZeroDegreeMembers = function() {
- var self2 = this;
- var tiledPack = this.tiledZeroDegreePack;
- Object.keys(tiledPack).forEach(function(id2) {
- var compoundNode = self2.idToDummyNode[id2];
- var horizontalMargin = compoundNode.paddingLeft;
- var verticalMargin = compoundNode.paddingTop;
- self2.adjustLocations(tiledPack[id2], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);
- });
- };
- CoSELayout.prototype.getToBeTiled = function(node2) {
- var id2 = node2.id;
- if (this.toBeTiled[id2] != null) {
- return this.toBeTiled[id2];
- }
- var childGraph = node2.getChild();
- if (childGraph == null) {
- this.toBeTiled[id2] = false;
- return false;
- }
- var children2 = childGraph.getNodes();
- for (var i2 = 0; i2 < children2.length; i2++) {
- var theChild = children2[i2];
- if (this.getNodeDegree(theChild) > 0) {
- this.toBeTiled[id2] = false;
- return false;
- }
- if (theChild.getChild() == null) {
- this.toBeTiled[theChild.id] = false;
- continue;
- }
- if (!this.getToBeTiled(theChild)) {
- this.toBeTiled[id2] = false;
- return false;
- }
- }
- this.toBeTiled[id2] = true;
- return true;
- };
- CoSELayout.prototype.getNodeDegree = function(node2) {
- node2.id;
- var edges2 = node2.getEdges();
- var degree = 0;
- for (var i2 = 0; i2 < edges2.length; i2++) {
- var edge = edges2[i2];
- if (edge.getSource().id !== edge.getTarget().id) {
- degree = degree + 1;
- }
- }
- return degree;
- };
- CoSELayout.prototype.getNodeDegreeWithChildren = function(node2) {
- var degree = this.getNodeDegree(node2);
- if (node2.getChild() == null) {
- return degree;
- }
- var children2 = node2.getChild().getNodes();
- for (var i2 = 0; i2 < children2.length; i2++) {
- var child = children2[i2];
- degree += this.getNodeDegreeWithChildren(child);
- }
- return degree;
- };
- CoSELayout.prototype.performDFSOnCompounds = function() {
- this.compoundOrder = [];
- this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());
- };
- CoSELayout.prototype.fillCompexOrderByDFS = function(children2) {
- for (var i2 = 0; i2 < children2.length; i2++) {
- var child = children2[i2];
- if (child.getChild() != null) {
- this.fillCompexOrderByDFS(child.getChild().getNodes());
- }
- if (this.getToBeTiled(child)) {
- this.compoundOrder.push(child);
- }
- }
- };
- CoSELayout.prototype.adjustLocations = function(organization, x2, y2, compoundHorizontalMargin, compoundVerticalMargin) {
- x2 += compoundHorizontalMargin;
- y2 += compoundVerticalMargin;
- var left2 = x2;
- for (var i2 = 0; i2 < organization.rows.length; i2++) {
- var row = organization.rows[i2];
- x2 = left2;
- var maxHeight = 0;
- for (var j = 0; j < row.length; j++) {
- var lnode = row[j];
- lnode.rect.x = x2;
- lnode.rect.y = y2;
- x2 += lnode.rect.width + organization.horizontalPadding;
- if (lnode.rect.height > maxHeight)
- maxHeight = lnode.rect.height;
- }
- y2 += maxHeight + organization.verticalPadding;
- }
- };
- CoSELayout.prototype.tileCompoundMembers = function(childGraphMap, idToNode) {
- var self2 = this;
- this.tiledMemberPack = [];
- Object.keys(childGraphMap).forEach(function(id2) {
- var compoundNode = idToNode[id2];
- self2.tiledMemberPack[id2] = self2.tileNodes(childGraphMap[id2], compoundNode.paddingLeft + compoundNode.paddingRight);
- compoundNode.rect.width = self2.tiledMemberPack[id2].width;
- compoundNode.rect.height = self2.tiledMemberPack[id2].height;
- });
- };
- CoSELayout.prototype.tileNodes = function(nodes2, minWidth) {
- var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;
- var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;
- var organization = {
- rows: [],
- rowWidth: [],
- rowHeight: [],
- width: 0,
- height: minWidth,
- // assume minHeight equals to minWidth
- verticalPadding,
- horizontalPadding
- };
- nodes2.sort(function(n1, n2) {
- if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height)
- return -1;
- if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height)
- return 1;
- return 0;
- });
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- var lNode = nodes2[i2];
- if (organization.rows.length == 0) {
- this.insertNodeToRow(organization, lNode, 0, minWidth);
- } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {
- this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);
- } else {
- this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);
- }
- this.shiftToLastRow(organization);
- }
- return organization;
- };
- CoSELayout.prototype.insertNodeToRow = function(organization, node2, rowIndex, minWidth) {
- var minCompoundSize = minWidth;
- if (rowIndex == organization.rows.length) {
- var secondDimension = [];
- organization.rows.push(secondDimension);
- organization.rowWidth.push(minCompoundSize);
- organization.rowHeight.push(0);
- }
- var w2 = organization.rowWidth[rowIndex] + node2.rect.width;
- if (organization.rows[rowIndex].length > 0) {
- w2 += organization.horizontalPadding;
- }
- organization.rowWidth[rowIndex] = w2;
- if (organization.width < w2) {
- organization.width = w2;
- }
- var h = node2.rect.height;
- if (rowIndex > 0)
- h += organization.verticalPadding;
- var extraHeight = 0;
- if (h > organization.rowHeight[rowIndex]) {
- extraHeight = organization.rowHeight[rowIndex];
- organization.rowHeight[rowIndex] = h;
- extraHeight = organization.rowHeight[rowIndex] - extraHeight;
- }
- organization.height += extraHeight;
- organization.rows[rowIndex].push(node2);
- };
- CoSELayout.prototype.getShortestRowIndex = function(organization) {
- var r = -1;
- var min2 = Number.MAX_VALUE;
- for (var i2 = 0; i2 < organization.rows.length; i2++) {
- if (organization.rowWidth[i2] < min2) {
- r = i2;
- min2 = organization.rowWidth[i2];
- }
- }
- return r;
- };
- CoSELayout.prototype.getLongestRowIndex = function(organization) {
- var r = -1;
- var max2 = Number.MIN_VALUE;
- for (var i2 = 0; i2 < organization.rows.length; i2++) {
- if (organization.rowWidth[i2] > max2) {
- r = i2;
- max2 = organization.rowWidth[i2];
- }
- }
- return r;
- };
- CoSELayout.prototype.canAddHorizontal = function(organization, extraWidth, extraHeight) {
- var sri = this.getShortestRowIndex(organization);
- if (sri < 0) {
- return true;
- }
- var min2 = organization.rowWidth[sri];
- if (min2 + organization.horizontalPadding + extraWidth <= organization.width)
- return true;
- var hDiff = 0;
- if (organization.rowHeight[sri] < extraHeight) {
- if (sri > 0)
- hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];
- }
- var add_to_row_ratio;
- if (organization.width - min2 >= extraWidth + organization.horizontalPadding) {
- add_to_row_ratio = (organization.height + hDiff) / (min2 + extraWidth + organization.horizontalPadding);
- } else {
- add_to_row_ratio = (organization.height + hDiff) / organization.width;
- }
- hDiff = extraHeight + organization.verticalPadding;
- var add_new_row_ratio;
- if (organization.width < extraWidth) {
- add_new_row_ratio = (organization.height + hDiff) / extraWidth;
- } else {
- add_new_row_ratio = (organization.height + hDiff) / organization.width;
- }
- if (add_new_row_ratio < 1)
- add_new_row_ratio = 1 / add_new_row_ratio;
- if (add_to_row_ratio < 1)
- add_to_row_ratio = 1 / add_to_row_ratio;
- return add_to_row_ratio < add_new_row_ratio;
- };
- CoSELayout.prototype.shiftToLastRow = function(organization) {
- var longest = this.getLongestRowIndex(organization);
- var last2 = organization.rowWidth.length - 1;
- var row = organization.rows[longest];
- var node2 = row[row.length - 1];
- var diff = node2.width + organization.horizontalPadding;
- if (organization.width - organization.rowWidth[last2] > diff && longest != last2) {
- row.splice(-1, 1);
- organization.rows[last2].push(node2);
- organization.rowWidth[longest] = organization.rowWidth[longest] - diff;
- organization.rowWidth[last2] = organization.rowWidth[last2] + diff;
- organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];
- var maxHeight = Number.MIN_VALUE;
- for (var i2 = 0; i2 < row.length; i2++) {
- if (row[i2].height > maxHeight)
- maxHeight = row[i2].height;
- }
- if (longest > 0)
- maxHeight += organization.verticalPadding;
- var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last2];
- organization.rowHeight[longest] = maxHeight;
- if (organization.rowHeight[last2] < node2.height + organization.verticalPadding)
- organization.rowHeight[last2] = node2.height + organization.verticalPadding;
- var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last2];
- organization.height += finalTotal - prevTotal;
- this.shiftToLastRow(organization);
- }
- };
- CoSELayout.prototype.tilingPreLayout = function() {
- if (CoSEConstants.TILE) {
- this.groupZeroDegreeMembers();
- this.clearCompounds();
- this.clearZeroDegreeMembers();
- }
- };
- CoSELayout.prototype.tilingPostLayout = function() {
- if (CoSEConstants.TILE) {
- this.repopulateZeroDegreeMembers();
- this.repopulateCompounds();
- }
- };
- CoSELayout.prototype.reduceTrees = function() {
- var prunedNodesAll = [];
- var containsLeaf = true;
- var node2;
- while (containsLeaf) {
- var allNodes = this.graphManager.getAllNodes();
- var prunedNodesInStepTemp = [];
- containsLeaf = false;
- for (var i2 = 0; i2 < allNodes.length; i2++) {
- node2 = allNodes[i2];
- if (node2.getEdges().length == 1 && !node2.getEdges()[0].isInterGraph && node2.getChild() == null) {
- prunedNodesInStepTemp.push([node2, node2.getEdges()[0], node2.getOwner()]);
- containsLeaf = true;
+ __name(_toConsumableArray, "_toConsumableArray");
+ var CoSEConstants = __webpack_require__2(806);
+ var LinkedList = __webpack_require__2(551).LinkedList;
+ var Matrix = __webpack_require__2(551).Matrix;
+ var SVD = __webpack_require__2(551).SVD;
+ function ConstraintHandler() {
+ }
+ __name(ConstraintHandler, "ConstraintHandler");
+ ConstraintHandler.handleConstraints = function(layout6) {
+ var constraints = {};
+ constraints.fixedNodeConstraint = layout6.constraints.fixedNodeConstraint;
+ constraints.alignmentConstraint = layout6.constraints.alignmentConstraint;
+ constraints.relativePlacementConstraint = layout6.constraints.relativePlacementConstraint;
+ var idToNodeMap = /* @__PURE__ */ new Map();
+ var nodeIndexes = /* @__PURE__ */ new Map();
+ var xCoords = [];
+ var yCoords = [];
+ var allNodes = layout6.getAllNodes();
+ var index = 0;
+ for (var i2 = 0; i2 < allNodes.length; i2++) {
+ var node2 = allNodes[i2];
+ if (node2.getChild() == null) {
+ nodeIndexes.set(node2.id, index++);
+ xCoords.push(node2.getCenterX());
+ yCoords.push(node2.getCenterY());
+ idToNodeMap.set(node2.id, node2);
+ }
+ }
+ if (constraints.relativePlacementConstraint) {
+ constraints.relativePlacementConstraint.forEach(function(constraint) {
+ if (!constraint.gap && constraint.gap != 0) {
+ if (constraint.left) {
+ constraint.gap = CoSEConstants.DEFAULT_EDGE_LENGTH + idToNodeMap.get(constraint.left).getWidth() / 2 + idToNodeMap.get(constraint.right).getWidth() / 2;
+ } else {
+ constraint.gap = CoSEConstants.DEFAULT_EDGE_LENGTH + idToNodeMap.get(constraint.top).getHeight() / 2 + idToNodeMap.get(constraint.bottom).getHeight() / 2;
+ }
+ }
+ });
+ }
+ var calculatePositionDiff = /* @__PURE__ */ __name(function calculatePositionDiff2(pos1, pos2) {
+ return { x: pos1.x - pos2.x, y: pos1.y - pos2.y };
+ }, "calculatePositionDiff");
+ var calculateAvgPosition = /* @__PURE__ */ __name(function calculateAvgPosition2(nodeIdSet) {
+ var xPosSum = 0;
+ var yPosSum = 0;
+ nodeIdSet.forEach(function(nodeId) {
+ xPosSum += xCoords[nodeIndexes.get(nodeId)];
+ yPosSum += yCoords[nodeIndexes.get(nodeId)];
+ });
+ return { x: xPosSum / nodeIdSet.size, y: yPosSum / nodeIdSet.size };
+ }, "calculateAvgPosition");
+ var findAppropriatePositionForRelativePlacement = /* @__PURE__ */ __name(function findAppropriatePositionForRelativePlacement2(graph, direction4, fixedNodes2, dummyPositions, componentSources) {
+ function setUnion(setA, setB) {
+ var union2 = new Set(setA);
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = void 0;
+ try {
+ for (var _iterator = setB[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var elem = _step.value;
+ union2.add(elem);
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return) {
+ _iterator.return();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
+ }
+ return union2;
+ }
+ __name(setUnion, "setUnion");
+ var inDegrees = /* @__PURE__ */ new Map();
+ graph.forEach(function(value2, key) {
+ inDegrees.set(key, 0);
+ });
+ graph.forEach(function(value2, key) {
+ value2.forEach(function(adjacent) {
+ inDegrees.set(adjacent.id, inDegrees.get(adjacent.id) + 1);
+ });
+ });
+ var positionMap = /* @__PURE__ */ new Map();
+ var pastMap = /* @__PURE__ */ new Map();
+ var queue = new LinkedList();
+ inDegrees.forEach(function(value2, key) {
+ if (value2 == 0) {
+ queue.push(key);
+ if (!fixedNodes2) {
+ if (direction4 == "horizontal") {
+ positionMap.set(key, nodeIndexes.has(key) ? xCoords[nodeIndexes.get(key)] : dummyPositions.get(key));
+ } else {
+ positionMap.set(key, nodeIndexes.has(key) ? yCoords[nodeIndexes.get(key)] : dummyPositions.get(key));
+ }
+ }
+ } else {
+ positionMap.set(key, Number.NEGATIVE_INFINITY);
+ }
+ if (fixedNodes2) {
+ pastMap.set(key, /* @__PURE__ */ new Set([key]));
+ }
+ });
+ if (fixedNodes2) {
+ componentSources.forEach(function(component2) {
+ var fixedIds = [];
+ component2.forEach(function(nodeId) {
+ if (fixedNodes2.has(nodeId)) {
+ fixedIds.push(nodeId);
+ }
+ });
+ if (fixedIds.length > 0) {
+ var position5 = 0;
+ fixedIds.forEach(function(fixedId) {
+ if (direction4 == "horizontal") {
+ positionMap.set(fixedId, nodeIndexes.has(fixedId) ? xCoords[nodeIndexes.get(fixedId)] : dummyPositions.get(fixedId));
+ position5 += positionMap.get(fixedId);
+ } else {
+ positionMap.set(fixedId, nodeIndexes.has(fixedId) ? yCoords[nodeIndexes.get(fixedId)] : dummyPositions.get(fixedId));
+ position5 += positionMap.get(fixedId);
+ }
+ });
+ position5 = position5 / fixedIds.length;
+ component2.forEach(function(nodeId) {
+ if (!fixedNodes2.has(nodeId)) {
+ positionMap.set(nodeId, position5);
+ }
+ });
+ } else {
+ var _position = 0;
+ component2.forEach(function(nodeId) {
+ if (direction4 == "horizontal") {
+ _position += nodeIndexes.has(nodeId) ? xCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);
+ } else {
+ _position += nodeIndexes.has(nodeId) ? yCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);
+ }
+ });
+ _position = _position / component2.length;
+ component2.forEach(function(nodeId) {
+ positionMap.set(nodeId, _position);
+ });
+ }
+ });
+ }
+ var _loop = /* @__PURE__ */ __name(function _loop2() {
+ var currentNode = queue.shift();
+ var neighbors = graph.get(currentNode);
+ neighbors.forEach(function(neighbor) {
+ if (positionMap.get(neighbor.id) < positionMap.get(currentNode) + neighbor.gap) {
+ if (fixedNodes2 && fixedNodes2.has(neighbor.id)) {
+ var fixedPosition = void 0;
+ if (direction4 == "horizontal") {
+ fixedPosition = nodeIndexes.has(neighbor.id) ? xCoords[nodeIndexes.get(neighbor.id)] : dummyPositions.get(neighbor.id);
+ } else {
+ fixedPosition = nodeIndexes.has(neighbor.id) ? yCoords[nodeIndexes.get(neighbor.id)] : dummyPositions.get(neighbor.id);
+ }
+ positionMap.set(neighbor.id, fixedPosition);
+ if (fixedPosition < positionMap.get(currentNode) + neighbor.gap) {
+ var diff2 = positionMap.get(currentNode) + neighbor.gap - fixedPosition;
+ pastMap.get(currentNode).forEach(function(nodeId) {
+ positionMap.set(nodeId, positionMap.get(nodeId) - diff2);
+ });
+ }
+ } else {
+ positionMap.set(neighbor.id, positionMap.get(currentNode) + neighbor.gap);
+ }
+ }
+ inDegrees.set(neighbor.id, inDegrees.get(neighbor.id) - 1);
+ if (inDegrees.get(neighbor.id) == 0) {
+ queue.push(neighbor.id);
+ }
+ if (fixedNodes2) {
+ pastMap.set(neighbor.id, setUnion(pastMap.get(currentNode), pastMap.get(neighbor.id)));
+ }
+ });
+ }, "_loop");
+ while (queue.length != 0) {
+ _loop();
+ }
+ if (fixedNodes2) {
+ var sinkNodes = /* @__PURE__ */ new Set();
+ graph.forEach(function(value2, key) {
+ if (value2.length == 0) {
+ sinkNodes.add(key);
+ }
+ });
+ var _components = [];
+ pastMap.forEach(function(value2, key) {
+ if (sinkNodes.has(key)) {
+ var isFixedComponent = false;
+ var _iteratorNormalCompletion2 = true;
+ var _didIteratorError2 = false;
+ var _iteratorError2 = void 0;
+ try {
+ for (var _iterator2 = value2[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
+ var nodeId = _step2.value;
+ if (fixedNodes2.has(nodeId)) {
+ isFixedComponent = true;
+ }
+ }
+ } catch (err) {
+ _didIteratorError2 = true;
+ _iteratorError2 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion2 && _iterator2.return) {
+ _iterator2.return();
+ }
+ } finally {
+ if (_didIteratorError2) {
+ throw _iteratorError2;
+ }
+ }
+ }
+ if (!isFixedComponent) {
+ var isExist = false;
+ var existAt = void 0;
+ _components.forEach(function(component2, index2) {
+ if (component2.has([].concat(_toConsumableArray(value2))[0])) {
+ isExist = true;
+ existAt = index2;
+ }
+ });
+ if (!isExist) {
+ _components.push(new Set(value2));
+ } else {
+ value2.forEach(function(ele) {
+ _components[existAt].add(ele);
+ });
+ }
+ }
+ }
+ });
+ _components.forEach(function(component2, index2) {
+ var minBefore = Number.POSITIVE_INFINITY;
+ var minAfter = Number.POSITIVE_INFINITY;
+ var maxBefore = Number.NEGATIVE_INFINITY;
+ var maxAfter = Number.NEGATIVE_INFINITY;
+ var _iteratorNormalCompletion3 = true;
+ var _didIteratorError3 = false;
+ var _iteratorError3 = void 0;
+ try {
+ for (var _iterator3 = component2[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
+ var nodeId = _step3.value;
+ var posBefore = void 0;
+ if (direction4 == "horizontal") {
+ posBefore = nodeIndexes.has(nodeId) ? xCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);
+ } else {
+ posBefore = nodeIndexes.has(nodeId) ? yCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);
+ }
+ var posAfter = positionMap.get(nodeId);
+ if (posBefore < minBefore) {
+ minBefore = posBefore;
+ }
+ if (posBefore > maxBefore) {
+ maxBefore = posBefore;
+ }
+ if (posAfter < minAfter) {
+ minAfter = posAfter;
+ }
+ if (posAfter > maxAfter) {
+ maxAfter = posAfter;
+ }
+ }
+ } catch (err) {
+ _didIteratorError3 = true;
+ _iteratorError3 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion3 && _iterator3.return) {
+ _iterator3.return();
+ }
+ } finally {
+ if (_didIteratorError3) {
+ throw _iteratorError3;
+ }
+ }
+ }
+ var diff2 = (minBefore + maxBefore) / 2 - (minAfter + maxAfter) / 2;
+ var _iteratorNormalCompletion4 = true;
+ var _didIteratorError4 = false;
+ var _iteratorError4 = void 0;
+ try {
+ for (var _iterator4 = component2[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
+ var _nodeId = _step4.value;
+ positionMap.set(_nodeId, positionMap.get(_nodeId) + diff2);
+ }
+ } catch (err) {
+ _didIteratorError4 = true;
+ _iteratorError4 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion4 && _iterator4.return) {
+ _iterator4.return();
+ }
+ } finally {
+ if (_didIteratorError4) {
+ throw _iteratorError4;
+ }
+ }
+ }
+ });
+ }
+ return positionMap;
+ }, "findAppropriatePositionForRelativePlacement");
+ var applyReflectionForRelativePlacement = /* @__PURE__ */ __name(function applyReflectionForRelativePlacement2(relativePlacementConstraints) {
+ var reflectOnY = 0, notReflectOnY = 0;
+ var reflectOnX = 0, notReflectOnX = 0;
+ relativePlacementConstraints.forEach(function(constraint) {
+ if (constraint.left) {
+ xCoords[nodeIndexes.get(constraint.left)] - xCoords[nodeIndexes.get(constraint.right)] >= 0 ? reflectOnY++ : notReflectOnY++;
+ } else {
+ yCoords[nodeIndexes.get(constraint.top)] - yCoords[nodeIndexes.get(constraint.bottom)] >= 0 ? reflectOnX++ : notReflectOnX++;
+ }
+ });
+ if (reflectOnY > notReflectOnY && reflectOnX > notReflectOnX) {
+ for (var _i = 0; _i < nodeIndexes.size; _i++) {
+ xCoords[_i] = -1 * xCoords[_i];
+ yCoords[_i] = -1 * yCoords[_i];
+ }
+ } else if (reflectOnY > notReflectOnY) {
+ for (var _i2 = 0; _i2 < nodeIndexes.size; _i2++) {
+ xCoords[_i2] = -1 * xCoords[_i2];
+ }
+ } else if (reflectOnX > notReflectOnX) {
+ for (var _i3 = 0; _i3 < nodeIndexes.size; _i3++) {
+ yCoords[_i3] = -1 * yCoords[_i3];
+ }
+ }
+ }, "applyReflectionForRelativePlacement");
+ var findComponents = /* @__PURE__ */ __name(function findComponents2(graph) {
+ var components4 = [];
+ var queue = new LinkedList();
+ var visited = /* @__PURE__ */ new Set();
+ var count = 0;
+ graph.forEach(function(value2, key) {
+ if (!visited.has(key)) {
+ components4[count] = [];
+ var _currentNode = key;
+ queue.push(_currentNode);
+ visited.add(_currentNode);
+ components4[count].push(_currentNode);
+ while (queue.length != 0) {
+ _currentNode = queue.shift();
+ var neighbors = graph.get(_currentNode);
+ neighbors.forEach(function(neighbor) {
+ if (!visited.has(neighbor.id)) {
+ queue.push(neighbor.id);
+ visited.add(neighbor.id);
+ components4[count].push(neighbor.id);
+ }
+ });
+ }
+ count++;
+ }
+ });
+ return components4;
+ }, "findComponents");
+ var dagToUndirected = /* @__PURE__ */ __name(function dagToUndirected2(dag2) {
+ var undirected = /* @__PURE__ */ new Map();
+ dag2.forEach(function(value2, key) {
+ undirected.set(key, []);
+ });
+ dag2.forEach(function(value2, key) {
+ value2.forEach(function(adjacent) {
+ undirected.get(key).push(adjacent);
+ undirected.get(adjacent.id).push({ id: key, gap: adjacent.gap, direction: adjacent.direction });
+ });
+ });
+ return undirected;
+ }, "dagToUndirected");
+ var dagToReversed = /* @__PURE__ */ __name(function dagToReversed2(dag2) {
+ var reversed = /* @__PURE__ */ new Map();
+ dag2.forEach(function(value2, key) {
+ reversed.set(key, []);
+ });
+ dag2.forEach(function(value2, key) {
+ value2.forEach(function(adjacent) {
+ reversed.get(adjacent.id).push({ id: key, gap: adjacent.gap, direction: adjacent.direction });
+ });
+ });
+ return reversed;
+ }, "dagToReversed");
+ var targetMatrix = [];
+ var sourceMatrix = [];
+ var standardTransformation = false;
+ var reflectionType = false;
+ var fixedNodes = /* @__PURE__ */ new Set();
+ var dag = /* @__PURE__ */ new Map();
+ var dagUndirected = /* @__PURE__ */ new Map();
+ var components3 = [];
+ if (constraints.fixedNodeConstraint) {
+ constraints.fixedNodeConstraint.forEach(function(nodeData2) {
+ fixedNodes.add(nodeData2.nodeId);
+ });
}
- }
- if (containsLeaf == true) {
- var prunedNodesInStep = [];
- for (var j = 0; j < prunedNodesInStepTemp.length; j++) {
- if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {
- prunedNodesInStep.push(prunedNodesInStepTemp[j]);
- prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);
+ if (constraints.relativePlacementConstraint) {
+ constraints.relativePlacementConstraint.forEach(function(constraint) {
+ if (constraint.left) {
+ if (dag.has(constraint.left)) {
+ dag.get(constraint.left).push({ id: constraint.right, gap: constraint.gap, direction: "horizontal" });
+ } else {
+ dag.set(constraint.left, [{ id: constraint.right, gap: constraint.gap, direction: "horizontal" }]);
+ }
+ if (!dag.has(constraint.right)) {
+ dag.set(constraint.right, []);
+ }
+ } else {
+ if (dag.has(constraint.top)) {
+ dag.get(constraint.top).push({ id: constraint.bottom, gap: constraint.gap, direction: "vertical" });
+ } else {
+ dag.set(constraint.top, [{ id: constraint.bottom, gap: constraint.gap, direction: "vertical" }]);
+ }
+ if (!dag.has(constraint.bottom)) {
+ dag.set(constraint.bottom, []);
+ }
+ }
+ });
+ dagUndirected = dagToUndirected(dag);
+ components3 = findComponents(dagUndirected);
+ }
+ if (CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING) {
+ if (constraints.fixedNodeConstraint && constraints.fixedNodeConstraint.length > 1) {
+ constraints.fixedNodeConstraint.forEach(function(nodeData2, i3) {
+ targetMatrix[i3] = [nodeData2.position.x, nodeData2.position.y];
+ sourceMatrix[i3] = [xCoords[nodeIndexes.get(nodeData2.nodeId)], yCoords[nodeIndexes.get(nodeData2.nodeId)]];
+ });
+ standardTransformation = true;
+ } else if (constraints.alignmentConstraint) {
+ (function() {
+ var count = 0;
+ if (constraints.alignmentConstraint.vertical) {
+ var verticalAlign = constraints.alignmentConstraint.vertical;
+ var _loop2 = /* @__PURE__ */ __name(function _loop22(_i42) {
+ var alignmentSet = /* @__PURE__ */ new Set();
+ verticalAlign[_i42].forEach(function(nodeId) {
+ alignmentSet.add(nodeId);
+ });
+ var intersection3 = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function(x5) {
+ return fixedNodes.has(x5);
+ }));
+ var xPos = void 0;
+ if (intersection3.size > 0) xPos = xCoords[nodeIndexes.get(intersection3.values().next().value)];
+ else xPos = calculateAvgPosition(alignmentSet).x;
+ verticalAlign[_i42].forEach(function(nodeId) {
+ targetMatrix[count] = [xPos, yCoords[nodeIndexes.get(nodeId)]];
+ sourceMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];
+ count++;
+ });
+ }, "_loop2");
+ for (var _i4 = 0; _i4 < verticalAlign.length; _i4++) {
+ _loop2(_i4);
+ }
+ standardTransformation = true;
+ }
+ if (constraints.alignmentConstraint.horizontal) {
+ var horizontalAlign = constraints.alignmentConstraint.horizontal;
+ var _loop3 = /* @__PURE__ */ __name(function _loop32(_i52) {
+ var alignmentSet = /* @__PURE__ */ new Set();
+ horizontalAlign[_i52].forEach(function(nodeId) {
+ alignmentSet.add(nodeId);
+ });
+ var intersection3 = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function(x5) {
+ return fixedNodes.has(x5);
+ }));
+ var yPos = void 0;
+ if (intersection3.size > 0) yPos = xCoords[nodeIndexes.get(intersection3.values().next().value)];
+ else yPos = calculateAvgPosition(alignmentSet).y;
+ horizontalAlign[_i52].forEach(function(nodeId) {
+ targetMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yPos];
+ sourceMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];
+ count++;
+ });
+ }, "_loop3");
+ for (var _i5 = 0; _i5 < horizontalAlign.length; _i5++) {
+ _loop3(_i5);
+ }
+ standardTransformation = true;
+ }
+ if (constraints.relativePlacementConstraint) {
+ reflectionType = true;
+ }
+ })();
+ } else if (constraints.relativePlacementConstraint) {
+ var largestComponentSize = 0;
+ var largestComponentIndex = 0;
+ for (var _i6 = 0; _i6 < components3.length; _i6++) {
+ if (components3[_i6].length > largestComponentSize) {
+ largestComponentSize = components3[_i6].length;
+ largestComponentIndex = _i6;
+ }
+ }
+ if (largestComponentSize < dagUndirected.size / 2) {
+ applyReflectionForRelativePlacement(constraints.relativePlacementConstraint);
+ standardTransformation = false;
+ reflectionType = false;
+ } else {
+ var subGraphOnHorizontal = /* @__PURE__ */ new Map();
+ var subGraphOnVertical = /* @__PURE__ */ new Map();
+ var constraintsInlargestComponent = [];
+ components3[largestComponentIndex].forEach(function(nodeId) {
+ dag.get(nodeId).forEach(function(adjacent) {
+ if (adjacent.direction == "horizontal") {
+ if (subGraphOnHorizontal.has(nodeId)) {
+ subGraphOnHorizontal.get(nodeId).push(adjacent);
+ } else {
+ subGraphOnHorizontal.set(nodeId, [adjacent]);
+ }
+ if (!subGraphOnHorizontal.has(adjacent.id)) {
+ subGraphOnHorizontal.set(adjacent.id, []);
+ }
+ constraintsInlargestComponent.push({ left: nodeId, right: adjacent.id });
+ } else {
+ if (subGraphOnVertical.has(nodeId)) {
+ subGraphOnVertical.get(nodeId).push(adjacent);
+ } else {
+ subGraphOnVertical.set(nodeId, [adjacent]);
+ }
+ if (!subGraphOnVertical.has(adjacent.id)) {
+ subGraphOnVertical.set(adjacent.id, []);
+ }
+ constraintsInlargestComponent.push({ top: nodeId, bottom: adjacent.id });
+ }
+ });
+ });
+ applyReflectionForRelativePlacement(constraintsInlargestComponent);
+ reflectionType = false;
+ var positionMapHorizontal = findAppropriatePositionForRelativePlacement(subGraphOnHorizontal, "horizontal");
+ var positionMapVertical = findAppropriatePositionForRelativePlacement(subGraphOnVertical, "vertical");
+ components3[largestComponentIndex].forEach(function(nodeId, i3) {
+ sourceMatrix[i3] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];
+ targetMatrix[i3] = [];
+ if (positionMapHorizontal.has(nodeId)) {
+ targetMatrix[i3][0] = positionMapHorizontal.get(nodeId);
+ } else {
+ targetMatrix[i3][0] = xCoords[nodeIndexes.get(nodeId)];
+ }
+ if (positionMapVertical.has(nodeId)) {
+ targetMatrix[i3][1] = positionMapVertical.get(nodeId);
+ } else {
+ targetMatrix[i3][1] = yCoords[nodeIndexes.get(nodeId)];
+ }
+ });
+ standardTransformation = true;
+ }
+ }
+ if (standardTransformation) {
+ var transformationMatrix = void 0;
+ var targetMatrixTranspose = Matrix.transpose(targetMatrix);
+ var sourceMatrixTranspose = Matrix.transpose(sourceMatrix);
+ for (var _i7 = 0; _i7 < targetMatrixTranspose.length; _i7++) {
+ targetMatrixTranspose[_i7] = Matrix.multGamma(targetMatrixTranspose[_i7]);
+ sourceMatrixTranspose[_i7] = Matrix.multGamma(sourceMatrixTranspose[_i7]);
+ }
+ var tempMatrix = Matrix.multMat(targetMatrixTranspose, Matrix.transpose(sourceMatrixTranspose));
+ var SVDResult = SVD.svd(tempMatrix);
+ transformationMatrix = Matrix.multMat(SVDResult.V, Matrix.transpose(SVDResult.U));
+ for (var _i8 = 0; _i8 < nodeIndexes.size; _i8++) {
+ var temp1 = [xCoords[_i8], yCoords[_i8]];
+ var temp2 = [transformationMatrix[0][0], transformationMatrix[1][0]];
+ var temp3 = [transformationMatrix[0][1], transformationMatrix[1][1]];
+ xCoords[_i8] = Matrix.dotProduct(temp1, temp2);
+ yCoords[_i8] = Matrix.dotProduct(temp1, temp3);
+ }
+ if (reflectionType) {
+ applyReflectionForRelativePlacement(constraints.relativePlacementConstraint);
+ }
}
}
- prunedNodesAll.push(prunedNodesInStep);
- this.graphManager.resetAllNodes();
- this.graphManager.resetAllEdges();
- }
+ if (CoSEConstants.ENFORCE_CONSTRAINTS) {
+ if (constraints.fixedNodeConstraint && constraints.fixedNodeConstraint.length > 0) {
+ var translationAmount = { x: 0, y: 0 };
+ constraints.fixedNodeConstraint.forEach(function(nodeData2, i3) {
+ var posInTheory = { x: xCoords[nodeIndexes.get(nodeData2.nodeId)], y: yCoords[nodeIndexes.get(nodeData2.nodeId)] };
+ var posDesired = nodeData2.position;
+ var posDiff = calculatePositionDiff(posDesired, posInTheory);
+ translationAmount.x += posDiff.x;
+ translationAmount.y += posDiff.y;
+ });
+ translationAmount.x /= constraints.fixedNodeConstraint.length;
+ translationAmount.y /= constraints.fixedNodeConstraint.length;
+ xCoords.forEach(function(value2, i3) {
+ xCoords[i3] += translationAmount.x;
+ });
+ yCoords.forEach(function(value2, i3) {
+ yCoords[i3] += translationAmount.y;
+ });
+ constraints.fixedNodeConstraint.forEach(function(nodeData2) {
+ xCoords[nodeIndexes.get(nodeData2.nodeId)] = nodeData2.position.x;
+ yCoords[nodeIndexes.get(nodeData2.nodeId)] = nodeData2.position.y;
+ });
+ }
+ if (constraints.alignmentConstraint) {
+ if (constraints.alignmentConstraint.vertical) {
+ var xAlign = constraints.alignmentConstraint.vertical;
+ var _loop4 = /* @__PURE__ */ __name(function _loop42(_i92) {
+ var alignmentSet = /* @__PURE__ */ new Set();
+ xAlign[_i92].forEach(function(nodeId) {
+ alignmentSet.add(nodeId);
+ });
+ var intersection3 = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function(x5) {
+ return fixedNodes.has(x5);
+ }));
+ var xPos = void 0;
+ if (intersection3.size > 0) xPos = xCoords[nodeIndexes.get(intersection3.values().next().value)];
+ else xPos = calculateAvgPosition(alignmentSet).x;
+ alignmentSet.forEach(function(nodeId) {
+ if (!fixedNodes.has(nodeId)) xCoords[nodeIndexes.get(nodeId)] = xPos;
+ });
+ }, "_loop4");
+ for (var _i9 = 0; _i9 < xAlign.length; _i9++) {
+ _loop4(_i9);
+ }
+ }
+ if (constraints.alignmentConstraint.horizontal) {
+ var yAlign = constraints.alignmentConstraint.horizontal;
+ var _loop5 = /* @__PURE__ */ __name(function _loop52(_i102) {
+ var alignmentSet = /* @__PURE__ */ new Set();
+ yAlign[_i102].forEach(function(nodeId) {
+ alignmentSet.add(nodeId);
+ });
+ var intersection3 = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function(x5) {
+ return fixedNodes.has(x5);
+ }));
+ var yPos = void 0;
+ if (intersection3.size > 0) yPos = yCoords[nodeIndexes.get(intersection3.values().next().value)];
+ else yPos = calculateAvgPosition(alignmentSet).y;
+ alignmentSet.forEach(function(nodeId) {
+ if (!fixedNodes.has(nodeId)) yCoords[nodeIndexes.get(nodeId)] = yPos;
+ });
+ }, "_loop5");
+ for (var _i10 = 0; _i10 < yAlign.length; _i10++) {
+ _loop5(_i10);
+ }
+ }
+ }
+ if (constraints.relativePlacementConstraint) {
+ (function() {
+ var nodeToDummyForVerticalAlignment = /* @__PURE__ */ new Map();
+ var nodeToDummyForHorizontalAlignment = /* @__PURE__ */ new Map();
+ var dummyToNodeForVerticalAlignment = /* @__PURE__ */ new Map();
+ var dummyToNodeForHorizontalAlignment = /* @__PURE__ */ new Map();
+ var dummyPositionsForVerticalAlignment = /* @__PURE__ */ new Map();
+ var dummyPositionsForHorizontalAlignment = /* @__PURE__ */ new Map();
+ var fixedNodesOnHorizontal = /* @__PURE__ */ new Set();
+ var fixedNodesOnVertical = /* @__PURE__ */ new Set();
+ fixedNodes.forEach(function(nodeId2) {
+ fixedNodesOnHorizontal.add(nodeId2);
+ fixedNodesOnVertical.add(nodeId2);
+ });
+ if (constraints.alignmentConstraint) {
+ if (constraints.alignmentConstraint.vertical) {
+ var verticalAlignment2 = constraints.alignmentConstraint.vertical;
+ var _loop6 = /* @__PURE__ */ __name(function _loop62(_i112) {
+ dummyToNodeForVerticalAlignment.set("dummy" + _i112, []);
+ verticalAlignment2[_i112].forEach(function(nodeId2) {
+ nodeToDummyForVerticalAlignment.set(nodeId2, "dummy" + _i112);
+ dummyToNodeForVerticalAlignment.get("dummy" + _i112).push(nodeId2);
+ if (fixedNodes.has(nodeId2)) {
+ fixedNodesOnHorizontal.add("dummy" + _i112);
+ }
+ });
+ dummyPositionsForVerticalAlignment.set("dummy" + _i112, xCoords[nodeIndexes.get(verticalAlignment2[_i112][0])]);
+ }, "_loop6");
+ for (var _i11 = 0; _i11 < verticalAlignment2.length; _i11++) {
+ _loop6(_i11);
+ }
+ }
+ if (constraints.alignmentConstraint.horizontal) {
+ var horizontalAlignment = constraints.alignmentConstraint.horizontal;
+ var _loop7 = /* @__PURE__ */ __name(function _loop72(_i122) {
+ dummyToNodeForHorizontalAlignment.set("dummy" + _i122, []);
+ horizontalAlignment[_i122].forEach(function(nodeId2) {
+ nodeToDummyForHorizontalAlignment.set(nodeId2, "dummy" + _i122);
+ dummyToNodeForHorizontalAlignment.get("dummy" + _i122).push(nodeId2);
+ if (fixedNodes.has(nodeId2)) {
+ fixedNodesOnVertical.add("dummy" + _i122);
+ }
+ });
+ dummyPositionsForHorizontalAlignment.set("dummy" + _i122, yCoords[nodeIndexes.get(horizontalAlignment[_i122][0])]);
+ }, "_loop7");
+ for (var _i12 = 0; _i12 < horizontalAlignment.length; _i12++) {
+ _loop7(_i12);
+ }
+ }
+ }
+ var dagOnHorizontal = /* @__PURE__ */ new Map();
+ var dagOnVertical = /* @__PURE__ */ new Map();
+ var _loop8 = /* @__PURE__ */ __name(function _loop82(nodeId2) {
+ dag.get(nodeId2).forEach(function(adjacent) {
+ var sourceId = void 0;
+ var targetNode = void 0;
+ if (adjacent["direction"] == "horizontal") {
+ sourceId = nodeToDummyForVerticalAlignment.get(nodeId2) ? nodeToDummyForVerticalAlignment.get(nodeId2) : nodeId2;
+ if (nodeToDummyForVerticalAlignment.get(adjacent.id)) {
+ targetNode = { id: nodeToDummyForVerticalAlignment.get(adjacent.id), gap: adjacent.gap, direction: adjacent.direction };
+ } else {
+ targetNode = adjacent;
+ }
+ if (dagOnHorizontal.has(sourceId)) {
+ dagOnHorizontal.get(sourceId).push(targetNode);
+ } else {
+ dagOnHorizontal.set(sourceId, [targetNode]);
+ }
+ if (!dagOnHorizontal.has(targetNode.id)) {
+ dagOnHorizontal.set(targetNode.id, []);
+ }
+ } else {
+ sourceId = nodeToDummyForHorizontalAlignment.get(nodeId2) ? nodeToDummyForHorizontalAlignment.get(nodeId2) : nodeId2;
+ if (nodeToDummyForHorizontalAlignment.get(adjacent.id)) {
+ targetNode = { id: nodeToDummyForHorizontalAlignment.get(adjacent.id), gap: adjacent.gap, direction: adjacent.direction };
+ } else {
+ targetNode = adjacent;
+ }
+ if (dagOnVertical.has(sourceId)) {
+ dagOnVertical.get(sourceId).push(targetNode);
+ } else {
+ dagOnVertical.set(sourceId, [targetNode]);
+ }
+ if (!dagOnVertical.has(targetNode.id)) {
+ dagOnVertical.set(targetNode.id, []);
+ }
+ }
+ });
+ }, "_loop8");
+ var _iteratorNormalCompletion5 = true;
+ var _didIteratorError5 = false;
+ var _iteratorError5 = void 0;
+ try {
+ for (var _iterator5 = dag.keys()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
+ var nodeId = _step5.value;
+ _loop8(nodeId);
+ }
+ } catch (err) {
+ _didIteratorError5 = true;
+ _iteratorError5 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion5 && _iterator5.return) {
+ _iterator5.return();
+ }
+ } finally {
+ if (_didIteratorError5) {
+ throw _iteratorError5;
+ }
+ }
+ }
+ var undirectedOnHorizontal = dagToUndirected(dagOnHorizontal);
+ var undirectedOnVertical = dagToUndirected(dagOnVertical);
+ var componentsOnHorizontal = findComponents(undirectedOnHorizontal);
+ var componentsOnVertical = findComponents(undirectedOnVertical);
+ var reversedDagOnHorizontal = dagToReversed(dagOnHorizontal);
+ var reversedDagOnVertical = dagToReversed(dagOnVertical);
+ var componentSourcesOnHorizontal = [];
+ var componentSourcesOnVertical = [];
+ componentsOnHorizontal.forEach(function(component2, index2) {
+ componentSourcesOnHorizontal[index2] = [];
+ component2.forEach(function(nodeId2) {
+ if (reversedDagOnHorizontal.get(nodeId2).length == 0) {
+ componentSourcesOnHorizontal[index2].push(nodeId2);
+ }
+ });
+ });
+ componentsOnVertical.forEach(function(component2, index2) {
+ componentSourcesOnVertical[index2] = [];
+ component2.forEach(function(nodeId2) {
+ if (reversedDagOnVertical.get(nodeId2).length == 0) {
+ componentSourcesOnVertical[index2].push(nodeId2);
+ }
+ });
+ });
+ var positionMapHorizontal2 = findAppropriatePositionForRelativePlacement(dagOnHorizontal, "horizontal", fixedNodesOnHorizontal, dummyPositionsForVerticalAlignment, componentSourcesOnHorizontal);
+ var positionMapVertical2 = findAppropriatePositionForRelativePlacement(dagOnVertical, "vertical", fixedNodesOnVertical, dummyPositionsForHorizontalAlignment, componentSourcesOnVertical);
+ var _loop9 = /* @__PURE__ */ __name(function _loop92(key2) {
+ if (dummyToNodeForVerticalAlignment.get(key2)) {
+ dummyToNodeForVerticalAlignment.get(key2).forEach(function(nodeId2) {
+ xCoords[nodeIndexes.get(nodeId2)] = positionMapHorizontal2.get(key2);
+ });
+ } else {
+ xCoords[nodeIndexes.get(key2)] = positionMapHorizontal2.get(key2);
+ }
+ }, "_loop9");
+ var _iteratorNormalCompletion6 = true;
+ var _didIteratorError6 = false;
+ var _iteratorError6 = void 0;
+ try {
+ for (var _iterator6 = positionMapHorizontal2.keys()[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
+ var key = _step6.value;
+ _loop9(key);
+ }
+ } catch (err) {
+ _didIteratorError6 = true;
+ _iteratorError6 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion6 && _iterator6.return) {
+ _iterator6.return();
+ }
+ } finally {
+ if (_didIteratorError6) {
+ throw _iteratorError6;
+ }
+ }
+ }
+ var _loop10 = /* @__PURE__ */ __name(function _loop102(key2) {
+ if (dummyToNodeForHorizontalAlignment.get(key2)) {
+ dummyToNodeForHorizontalAlignment.get(key2).forEach(function(nodeId2) {
+ yCoords[nodeIndexes.get(nodeId2)] = positionMapVertical2.get(key2);
+ });
+ } else {
+ yCoords[nodeIndexes.get(key2)] = positionMapVertical2.get(key2);
+ }
+ }, "_loop10");
+ var _iteratorNormalCompletion7 = true;
+ var _didIteratorError7 = false;
+ var _iteratorError7 = void 0;
+ try {
+ for (var _iterator7 = positionMapVertical2.keys()[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
+ var key = _step7.value;
+ _loop10(key);
+ }
+ } catch (err) {
+ _didIteratorError7 = true;
+ _iteratorError7 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion7 && _iterator7.return) {
+ _iterator7.return();
+ }
+ } finally {
+ if (_didIteratorError7) {
+ throw _iteratorError7;
+ }
+ }
+ }
+ })();
+ }
+ }
+ for (var _i13 = 0; _i13 < allNodes.length; _i13++) {
+ var _node = allNodes[_i13];
+ if (_node.getChild() == null) {
+ _node.setCenter(xCoords[nodeIndexes.get(_node.id)], yCoords[nodeIndexes.get(_node.id)]);
+ }
+ }
+ };
+ module3.exports = ConstraintHandler;
}
- this.prunedNodesAll = prunedNodesAll;
- };
- CoSELayout.prototype.growTree = function(prunedNodesAll) {
- var lengthOfPrunedNodesInStep = prunedNodesAll.length;
- var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];
- var nodeData;
- for (var i2 = 0; i2 < prunedNodesInStep.length; i2++) {
- nodeData = prunedNodesInStep[i2];
- this.findPlaceforPrunedNode(nodeData);
- nodeData[2].add(nodeData[0]);
- nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);
+ ),
+ /***/
+ 551: (
+ /***/
+ (module3) => {
+ module3.exports = __WEBPACK_EXTERNAL_MODULE__551__;
}
- prunedNodesAll.splice(prunedNodesAll.length - 1, 1);
- this.graphManager.resetAllNodes();
- this.graphManager.resetAllEdges();
+ )
+ /******/
+ };
+ var __webpack_module_cache__ = {};
+ function __webpack_require__(moduleId) {
+ var cachedModule = __webpack_module_cache__[moduleId];
+ if (cachedModule !== void 0) {
+ return cachedModule.exports;
+ }
+ var module3 = __webpack_module_cache__[moduleId] = {
+ /******/
+ // no module.id needed
+ /******/
+ // no module.loaded needed
+ /******/
+ exports: {}
+ /******/
};
- CoSELayout.prototype.findPlaceforPrunedNode = function(nodeData) {
- var gridForPrunedNode;
- var nodeToConnect;
- var prunedNode = nodeData[0];
- if (prunedNode == nodeData[1].source) {
- nodeToConnect = nodeData[1].target;
- } else {
- nodeToConnect = nodeData[1].source;
- }
- var startGridX = nodeToConnect.startX;
- var finishGridX = nodeToConnect.finishX;
- var startGridY = nodeToConnect.startY;
- var finishGridY = nodeToConnect.finishY;
- var upNodeCount = 0;
- var downNodeCount = 0;
- var rightNodeCount = 0;
- var leftNodeCount = 0;
- var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];
- if (startGridY > 0) {
- for (var i2 = startGridX; i2 <= finishGridX; i2++) {
- controlRegions[0] += this.grid[i2][startGridY - 1].length + this.grid[i2][startGridY].length - 1;
- }
- }
- if (finishGridX < this.grid.length - 1) {
- for (var i2 = startGridY; i2 <= finishGridY; i2++) {
- controlRegions[1] += this.grid[finishGridX + 1][i2].length + this.grid[finishGridX][i2].length - 1;
- }
- }
- if (finishGridY < this.grid[0].length - 1) {
- for (var i2 = startGridX; i2 <= finishGridX; i2++) {
- controlRegions[2] += this.grid[i2][finishGridY + 1].length + this.grid[i2][finishGridY].length - 1;
- }
- }
- if (startGridX > 0) {
- for (var i2 = startGridY; i2 <= finishGridY; i2++) {
- controlRegions[3] += this.grid[startGridX - 1][i2].length + this.grid[startGridX][i2].length - 1;
- }
- }
- var min2 = Integer.MAX_VALUE;
- var minCount;
- var minIndex;
- for (var j = 0; j < controlRegions.length; j++) {
- if (controlRegions[j] < min2) {
- min2 = controlRegions[j];
- minCount = 1;
- minIndex = j;
- } else if (controlRegions[j] == min2) {
- minCount++;
- }
+ __webpack_modules__[moduleId](module3, module3.exports, __webpack_require__);
+ return module3.exports;
+ }
+ __name(__webpack_require__, "__webpack_require__");
+ var __webpack_exports__ = __webpack_require__(45);
+ return __webpack_exports__;
+ })()
+ );
+ });
+ }
+ });
+
+ // ../../node_modules/.pnpm/cytoscape-fcose@2.2.0_cytoscape@3.30.1/node_modules/cytoscape-fcose/cytoscape-fcose.js
+ var require_cytoscape_fcose = __commonJS({
+ "../../node_modules/.pnpm/cytoscape-fcose@2.2.0_cytoscape@3.30.1/node_modules/cytoscape-fcose/cytoscape-fcose.js"(exports2, module2) {
+ "use strict";
+ (/* @__PURE__ */ __name(function webpackUniversalModuleDefinition(root4, factory) {
+ if (typeof exports2 === "object" && typeof module2 === "object")
+ module2.exports = factory(require_cose_base2());
+ else if (typeof define === "function" && define.amd)
+ define(["cose-base"], factory);
+ else if (typeof exports2 === "object")
+ exports2["cytoscapeFcose"] = factory(require_cose_base2());
+ else
+ root4["cytoscapeFcose"] = factory(root4["coseBase"]);
+ }, "webpackUniversalModuleDefinition"))(exports2, function(__WEBPACK_EXTERNAL_MODULE__140__) {
+ return (
+ /******/
+ (() => {
+ "use strict";
+ var __webpack_modules__ = {
+ /***/
+ 658: (
+ /***/
+ (module3) => {
+ module3.exports = Object.assign != null ? Object.assign.bind(Object) : function(tgt) {
+ for (var _len = arguments.length, srcs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ srcs[_key - 1] = arguments[_key];
+ }
+ srcs.forEach(function(src) {
+ Object.keys(src).forEach(function(k2) {
+ return tgt[k2] = src[k2];
+ });
+ });
+ return tgt;
+ };
}
- if (minCount == 3 && min2 == 0) {
- if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {
- gridForPrunedNode = 1;
- } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {
- gridForPrunedNode = 0;
- } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
- gridForPrunedNode = 3;
- } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
- gridForPrunedNode = 2;
- }
- } else if (minCount == 2 && min2 == 0) {
- var random2 = Math.floor(Math.random() * 2);
- if (controlRegions[0] == 0 && controlRegions[1] == 0) {
- if (random2 == 0) {
- gridForPrunedNode = 0;
- } else {
- gridForPrunedNode = 1;
+ ),
+ /***/
+ 548: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var _slicedToArray2 = /* @__PURE__ */ function() {
+ function sliceIterator(arr, i2) {
+ var _arr = [];
+ var _n = true;
+ var _d = false;
+ var _e = void 0;
+ try {
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
+ _arr.push(_s.value);
+ if (i2 && _arr.length === i2) break;
+ }
+ } catch (err) {
+ _d = true;
+ _e = err;
+ } finally {
+ try {
+ if (!_n && _i["return"]) _i["return"]();
+ } finally {
+ if (_d) throw _e;
+ }
+ }
+ return _arr;
}
- } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {
- if (random2 == 0) {
- gridForPrunedNode = 0;
- } else {
- gridForPrunedNode = 2;
+ __name(sliceIterator, "sliceIterator");
+ return function(arr, i2) {
+ if (Array.isArray(arr)) {
+ return arr;
+ } else if (Symbol.iterator in Object(arr)) {
+ return sliceIterator(arr, i2);
+ } else {
+ throw new TypeError("Invalid attempt to destructure non-iterable instance");
+ }
+ };
+ }();
+ var LinkedList = __webpack_require__2(140).layoutBase.LinkedList;
+ var auxiliary = {};
+ auxiliary.getTopMostNodes = function(nodes6) {
+ var nodesMap2 = {};
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ nodesMap2[nodes6[i2].id()] = true;
}
- } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {
- if (random2 == 0) {
- gridForPrunedNode = 0;
- } else {
- gridForPrunedNode = 3;
+ var roots = nodes6.filter(function(ele, i3) {
+ if (typeof ele === "number") {
+ ele = i3;
+ }
+ var parent4 = ele.parent()[0];
+ while (parent4 != null) {
+ if (nodesMap2[parent4.id()]) {
+ return false;
+ }
+ parent4 = parent4.parent()[0];
+ }
+ return true;
+ });
+ return roots;
+ };
+ auxiliary.connectComponents = function(cy, eles, topMostNodes, dummyNodes) {
+ var queue = new LinkedList();
+ var visited = /* @__PURE__ */ new Set();
+ var visitedTopMostNodes = [];
+ var currentNeighbor = void 0;
+ var minDegreeNode = void 0;
+ var minDegree = void 0;
+ var isConnected = false;
+ var count = 1;
+ var nodesConnectedToDummy = [];
+ var components3 = [];
+ var _loop = /* @__PURE__ */ __name(function _loop2() {
+ var cmpt = cy.collection();
+ components3.push(cmpt);
+ var currentNode = topMostNodes[0];
+ var childrenOfCurrentNode = cy.collection();
+ childrenOfCurrentNode.merge(currentNode).merge(currentNode.descendants().intersection(eles));
+ visitedTopMostNodes.push(currentNode);
+ childrenOfCurrentNode.forEach(function(node2) {
+ queue.push(node2);
+ visited.add(node2);
+ cmpt.merge(node2);
+ });
+ var _loop22 = /* @__PURE__ */ __name(function _loop23() {
+ currentNode = queue.shift();
+ var neighborNodes = cy.collection();
+ currentNode.neighborhood().nodes().forEach(function(node2) {
+ if (eles.intersection(currentNode.edgesWith(node2)).length > 0) {
+ neighborNodes.merge(node2);
+ }
+ });
+ for (var i2 = 0; i2 < neighborNodes.length; i2++) {
+ var neighborNode = neighborNodes[i2];
+ currentNeighbor = topMostNodes.intersection(neighborNode.union(neighborNode.ancestors()));
+ if (currentNeighbor != null && !visited.has(currentNeighbor[0])) {
+ var childrenOfNeighbor = currentNeighbor.union(currentNeighbor.descendants());
+ childrenOfNeighbor.forEach(function(node2) {
+ queue.push(node2);
+ visited.add(node2);
+ cmpt.merge(node2);
+ if (topMostNodes.has(node2)) {
+ visitedTopMostNodes.push(node2);
+ }
+ });
+ }
+ }
+ }, "_loop2");
+ while (queue.length != 0) {
+ _loop22();
+ }
+ cmpt.forEach(function(node2) {
+ eles.intersection(node2.connectedEdges()).forEach(function(e3) {
+ if (cmpt.has(e3.source()) && cmpt.has(e3.target())) {
+ cmpt.merge(e3);
+ }
+ });
+ });
+ if (visitedTopMostNodes.length == topMostNodes.length) {
+ isConnected = true;
+ }
+ if (!isConnected || isConnected && count > 1) {
+ minDegreeNode = visitedTopMostNodes[0];
+ minDegree = minDegreeNode.connectedEdges().length;
+ visitedTopMostNodes.forEach(function(node2) {
+ if (node2.connectedEdges().length < minDegree) {
+ minDegree = node2.connectedEdges().length;
+ minDegreeNode = node2;
+ }
+ });
+ nodesConnectedToDummy.push(minDegreeNode.id());
+ var temp = cy.collection();
+ temp.merge(visitedTopMostNodes[0]);
+ visitedTopMostNodes.forEach(function(node2) {
+ temp.merge(node2);
+ });
+ visitedTopMostNodes = [];
+ topMostNodes = topMostNodes.difference(temp);
+ count++;
+ }
+ }, "_loop");
+ do {
+ _loop();
+ } while (!isConnected);
+ if (dummyNodes) {
+ if (nodesConnectedToDummy.length > 0) {
+ dummyNodes.set("dummy" + (dummyNodes.size + 1), nodesConnectedToDummy);
+ }
}
- } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {
- if (random2 == 0) {
- gridForPrunedNode = 1;
- } else {
- gridForPrunedNode = 2;
+ return components3;
+ };
+ auxiliary.relocateComponent = function(originalCenter, componentResult, options3) {
+ if (!options3.fixedNodeConstraint) {
+ var minXCoord = Number.POSITIVE_INFINITY;
+ var maxXCoord = Number.NEGATIVE_INFINITY;
+ var minYCoord = Number.POSITIVE_INFINITY;
+ var maxYCoord = Number.NEGATIVE_INFINITY;
+ if (options3.quality == "draft") {
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = void 0;
+ try {
+ for (var _iterator = componentResult.nodeIndexes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var _ref = _step.value;
+ var _ref2 = _slicedToArray2(_ref, 2);
+ var key = _ref2[0];
+ var value2 = _ref2[1];
+ var cyNode = options3.cy.getElementById(key);
+ if (cyNode) {
+ var nodeBB = cyNode.boundingBox();
+ var leftX = componentResult.xCoords[value2] - nodeBB.w / 2;
+ var rightX = componentResult.xCoords[value2] + nodeBB.w / 2;
+ var topY = componentResult.yCoords[value2] - nodeBB.h / 2;
+ var bottomY = componentResult.yCoords[value2] + nodeBB.h / 2;
+ if (leftX < minXCoord) minXCoord = leftX;
+ if (rightX > maxXCoord) maxXCoord = rightX;
+ if (topY < minYCoord) minYCoord = topY;
+ if (bottomY > maxYCoord) maxYCoord = bottomY;
+ }
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return) {
+ _iterator.return();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
+ }
+ var diffOnX = originalCenter.x - (maxXCoord + minXCoord) / 2;
+ var diffOnY = originalCenter.y - (maxYCoord + minYCoord) / 2;
+ componentResult.xCoords = componentResult.xCoords.map(function(x5) {
+ return x5 + diffOnX;
+ });
+ componentResult.yCoords = componentResult.yCoords.map(function(y5) {
+ return y5 + diffOnY;
+ });
+ } else {
+ Object.keys(componentResult).forEach(function(item) {
+ var node2 = componentResult[item];
+ var leftX2 = node2.getRect().x;
+ var rightX2 = node2.getRect().x + node2.getRect().width;
+ var topY2 = node2.getRect().y;
+ var bottomY2 = node2.getRect().y + node2.getRect().height;
+ if (leftX2 < minXCoord) minXCoord = leftX2;
+ if (rightX2 > maxXCoord) maxXCoord = rightX2;
+ if (topY2 < minYCoord) minYCoord = topY2;
+ if (bottomY2 > maxYCoord) maxYCoord = bottomY2;
+ });
+ var _diffOnX = originalCenter.x - (maxXCoord + minXCoord) / 2;
+ var _diffOnY = originalCenter.y - (maxYCoord + minYCoord) / 2;
+ Object.keys(componentResult).forEach(function(item) {
+ var node2 = componentResult[item];
+ node2.setCenter(node2.getCenterX() + _diffOnX, node2.getCenterY() + _diffOnY);
+ });
+ }
}
- } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {
- if (random2 == 0) {
- gridForPrunedNode = 1;
+ };
+ auxiliary.calcBoundingBox = function(parentNode, xCoords, yCoords, nodeIndexes) {
+ var left3 = Number.MAX_SAFE_INTEGER;
+ var right3 = Number.MIN_SAFE_INTEGER;
+ var top2 = Number.MAX_SAFE_INTEGER;
+ var bottom2 = Number.MIN_SAFE_INTEGER;
+ var nodeLeft = void 0;
+ var nodeRight = void 0;
+ var nodeTop = void 0;
+ var nodeBottom = void 0;
+ var nodes6 = parentNode.descendants().not(":parent");
+ var s2 = nodes6.length;
+ for (var i2 = 0; i2 < s2; i2++) {
+ var node2 = nodes6[i2];
+ nodeLeft = xCoords[nodeIndexes.get(node2.id())] - node2.width() / 2;
+ nodeRight = xCoords[nodeIndexes.get(node2.id())] + node2.width() / 2;
+ nodeTop = yCoords[nodeIndexes.get(node2.id())] - node2.height() / 2;
+ nodeBottom = yCoords[nodeIndexes.get(node2.id())] + node2.height() / 2;
+ if (left3 > nodeLeft) {
+ left3 = nodeLeft;
+ }
+ if (right3 < nodeRight) {
+ right3 = nodeRight;
+ }
+ if (top2 > nodeTop) {
+ top2 = nodeTop;
+ }
+ if (bottom2 < nodeBottom) {
+ bottom2 = nodeBottom;
+ }
+ }
+ var boundingBox3 = {};
+ boundingBox3.topLeftX = left3;
+ boundingBox3.topLeftY = top2;
+ boundingBox3.width = right3 - left3;
+ boundingBox3.height = bottom2 - top2;
+ return boundingBox3;
+ };
+ auxiliary.calcParentsWithoutChildren = function(cy, eles) {
+ var parentsWithoutChildren = cy.collection();
+ eles.nodes(":parent").forEach(function(parent4) {
+ var check = false;
+ parent4.children().forEach(function(child) {
+ if (child.css("display") != "none") {
+ check = true;
+ }
+ });
+ if (!check) {
+ parentsWithoutChildren.merge(parent4);
+ }
+ });
+ return parentsWithoutChildren;
+ };
+ module3.exports = auxiliary;
+ }
+ ),
+ /***/
+ 816: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var aux = __webpack_require__2(548);
+ var CoSELayout = __webpack_require__2(140).CoSELayout;
+ var CoSENode = __webpack_require__2(140).CoSENode;
+ var PointD = __webpack_require__2(140).layoutBase.PointD;
+ var DimensionD2 = __webpack_require__2(140).layoutBase.DimensionD;
+ var LayoutConstants = __webpack_require__2(140).layoutBase.LayoutConstants;
+ var FDLayoutConstants = __webpack_require__2(140).layoutBase.FDLayoutConstants;
+ var CoSEConstants = __webpack_require__2(140).CoSEConstants;
+ var coseLayout = /* @__PURE__ */ __name(function coseLayout2(options3, spectralResult) {
+ var cy = options3.cy;
+ var eles = options3.eles;
+ var nodes6 = eles.nodes();
+ var edges5 = eles.edges();
+ var nodeIndexes = void 0;
+ var xCoords = void 0;
+ var yCoords = void 0;
+ var idToLNode = {};
+ if (options3.randomize) {
+ nodeIndexes = spectralResult["nodeIndexes"];
+ xCoords = spectralResult["xCoords"];
+ yCoords = spectralResult["yCoords"];
+ }
+ var isFn = /* @__PURE__ */ __name(function isFn2(fn3) {
+ return typeof fn3 === "function";
+ }, "isFn");
+ var optFn = /* @__PURE__ */ __name(function optFn2(opt, ele) {
+ if (isFn(opt)) {
+ return opt(ele);
+ } else {
+ return opt;
+ }
+ }, "optFn");
+ var parentsWithoutChildren = aux.calcParentsWithoutChildren(cy, eles);
+ var processChildrenList = /* @__PURE__ */ __name(function processChildrenList2(parent4, children2, layout6, options4) {
+ var size5 = children2.length;
+ for (var i2 = 0; i2 < size5; i2++) {
+ var theChild = children2[i2];
+ var children_of_children = null;
+ if (theChild.intersection(parentsWithoutChildren).length == 0) {
+ children_of_children = theChild.children();
+ }
+ var theNode = void 0;
+ var dimensions2 = theChild.layoutDimensions({
+ nodeDimensionsIncludeLabels: options4.nodeDimensionsIncludeLabels
+ });
+ if (theChild.outerWidth() != null && theChild.outerHeight() != null) {
+ if (options4.randomize) {
+ if (!theChild.isParent()) {
+ theNode = parent4.add(new CoSENode(layout6.graphManager, new PointD(xCoords[nodeIndexes.get(theChild.id())] - dimensions2.w / 2, yCoords[nodeIndexes.get(theChild.id())] - dimensions2.h / 2), new DimensionD2(parseFloat(dimensions2.w), parseFloat(dimensions2.h))));
+ } else {
+ var parentInfo = aux.calcBoundingBox(theChild, xCoords, yCoords, nodeIndexes);
+ if (theChild.intersection(parentsWithoutChildren).length == 0) {
+ theNode = parent4.add(new CoSENode(layout6.graphManager, new PointD(parentInfo.topLeftX, parentInfo.topLeftY), new DimensionD2(parentInfo.width, parentInfo.height)));
+ } else {
+ theNode = parent4.add(new CoSENode(layout6.graphManager, new PointD(parentInfo.topLeftX, parentInfo.topLeftY), new DimensionD2(parseFloat(dimensions2.w), parseFloat(dimensions2.h))));
+ }
+ }
+ } else {
+ theNode = parent4.add(new CoSENode(layout6.graphManager, new PointD(theChild.position("x") - dimensions2.w / 2, theChild.position("y") - dimensions2.h / 2), new DimensionD2(parseFloat(dimensions2.w), parseFloat(dimensions2.h))));
+ }
+ } else {
+ theNode = parent4.add(new CoSENode(this.graphManager));
+ }
+ theNode.id = theChild.data("id");
+ theNode.nodeRepulsion = optFn(options4.nodeRepulsion, theChild);
+ theNode.paddingLeft = parseInt(theChild.css("padding"));
+ theNode.paddingTop = parseInt(theChild.css("padding"));
+ theNode.paddingRight = parseInt(theChild.css("padding"));
+ theNode.paddingBottom = parseInt(theChild.css("padding"));
+ if (options4.nodeDimensionsIncludeLabels) {
+ theNode.labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false, includeOverlays: false }).w;
+ theNode.labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false, includeOverlays: false }).h;
+ theNode.labelPosVertical = theChild.css("text-valign");
+ theNode.labelPosHorizontal = theChild.css("text-halign");
+ }
+ idToLNode[theChild.data("id")] = theNode;
+ if (isNaN(theNode.rect.x)) {
+ theNode.rect.x = 0;
+ }
+ if (isNaN(theNode.rect.y)) {
+ theNode.rect.y = 0;
+ }
+ if (children_of_children != null && children_of_children.length > 0) {
+ var theNewGraph = void 0;
+ theNewGraph = layout6.getGraphManager().add(layout6.newGraph(), theNode);
+ processChildrenList2(theNewGraph, children_of_children, layout6, options4);
+ }
+ }
+ }, "processChildrenList");
+ var processEdges = /* @__PURE__ */ __name(function processEdges2(layout6, gm2, edges6) {
+ var idealLengthTotal = 0;
+ var edgeCount4 = 0;
+ for (var i2 = 0; i2 < edges6.length; i2++) {
+ var edge = edges6[i2];
+ var sourceNode = idToLNode[edge.data("source")];
+ var targetNode = idToLNode[edge.data("target")];
+ if (sourceNode && targetNode && sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {
+ var e1 = gm2.add(layout6.newEdge(), sourceNode, targetNode);
+ e1.id = edge.id();
+ e1.idealLength = optFn(options3.idealEdgeLength, edge);
+ e1.edgeElasticity = optFn(options3.edgeElasticity, edge);
+ idealLengthTotal += e1.idealLength;
+ edgeCount4++;
+ }
+ }
+ if (options3.idealEdgeLength != null) {
+ if (edgeCount4 > 0) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = idealLengthTotal / edgeCount4;
+ else if (!isFn(options3.idealEdgeLength))
+ CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options3.idealEdgeLength;
+ else
+ CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;
+ CoSEConstants.MIN_REPULSION_DIST = FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10;
+ CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
+ }
+ }, "processEdges");
+ var processConstraints = /* @__PURE__ */ __name(function processConstraints2(layout6, options4) {
+ if (options4.fixedNodeConstraint) {
+ layout6.constraints["fixedNodeConstraint"] = options4.fixedNodeConstraint;
+ }
+ if (options4.alignmentConstraint) {
+ layout6.constraints["alignmentConstraint"] = options4.alignmentConstraint;
+ }
+ if (options4.relativePlacementConstraint) {
+ layout6.constraints["relativePlacementConstraint"] = options4.relativePlacementConstraint;
+ }
+ }, "processConstraints");
+ if (options3.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options3.nestingFactor;
+ if (options3.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options3.gravity;
+ if (options3.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options3.numIter;
+ if (options3.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options3.gravityRange;
+ if (options3.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options3.gravityCompound;
+ if (options3.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options3.gravityRangeCompound;
+ if (options3.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options3.initialEnergyOnIncremental;
+ if (options3.tilingCompareBy != null) CoSEConstants.TILING_COMPARE_BY = options3.tilingCompareBy;
+ if (options3.quality == "proof") LayoutConstants.QUALITY = 2;
+ else LayoutConstants.QUALITY = 0;
+ CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options3.nodeDimensionsIncludeLabels;
+ CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options3.randomize;
+ CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options3.animate;
+ CoSEConstants.TILE = options3.tile;
+ CoSEConstants.TILING_PADDING_VERTICAL = typeof options3.tilingPaddingVertical === "function" ? options3.tilingPaddingVertical.call() : options3.tilingPaddingVertical;
+ CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options3.tilingPaddingHorizontal === "function" ? options3.tilingPaddingHorizontal.call() : options3.tilingPaddingHorizontal;
+ CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = true;
+ CoSEConstants.PURE_INCREMENTAL = !options3.randomize;
+ LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = options3.uniformNodeDimensions;
+ if (options3.step == "transformed") {
+ CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;
+ CoSEConstants.ENFORCE_CONSTRAINTS = false;
+ CoSEConstants.APPLY_LAYOUT = false;
+ }
+ if (options3.step == "enforced") {
+ CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;
+ CoSEConstants.ENFORCE_CONSTRAINTS = true;
+ CoSEConstants.APPLY_LAYOUT = false;
+ }
+ if (options3.step == "cose") {
+ CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;
+ CoSEConstants.ENFORCE_CONSTRAINTS = false;
+ CoSEConstants.APPLY_LAYOUT = true;
+ }
+ if (options3.step == "all") {
+ if (options3.randomize) CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;
+ else CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;
+ CoSEConstants.ENFORCE_CONSTRAINTS = true;
+ CoSEConstants.APPLY_LAYOUT = true;
+ }
+ if (options3.fixedNodeConstraint || options3.alignmentConstraint || options3.relativePlacementConstraint) {
+ CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false;
} else {
- gridForPrunedNode = 3;
+ CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = true;
}
- } else {
- if (random2 == 0) {
- gridForPrunedNode = 2;
+ var coseLayout3 = new CoSELayout();
+ var gm = coseLayout3.newGraphManager();
+ processChildrenList(gm.addRoot(), aux.getTopMostNodes(nodes6), coseLayout3, options3);
+ processEdges(coseLayout3, gm, edges5);
+ processConstraints(coseLayout3, options3);
+ coseLayout3.runLayout();
+ return idToLNode;
+ }, "coseLayout");
+ module3.exports = { coseLayout };
+ }
+ ),
+ /***/
+ 212: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var _createClass2 = /* @__PURE__ */ function() {
+ function defineProperties(target, props) {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ var descriptor = props[i2];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ __name(defineProperties, "defineProperties");
+ return function(Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+ function _classCallCheck2(instance2, Constructor) {
+ if (!(instance2 instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+ __name(_classCallCheck2, "_classCallCheck");
+ var assign7 = __webpack_require__2(658);
+ var aux = __webpack_require__2(548);
+ var _require = __webpack_require__2(657), spectralLayout = _require.spectralLayout;
+ var _require2 = __webpack_require__2(816), coseLayout = _require2.coseLayout;
+ var defaults4 = Object.freeze({
+ // 'draft', 'default' or 'proof'
+ // - 'draft' only applies spectral layout
+ // - 'default' improves the quality with subsequent CoSE layout (fast cooling rate)
+ // - 'proof' improves the quality with subsequent CoSE layout (slow cooling rate)
+ quality: "default",
+ // Use random node positions at beginning of layout
+ // if this is set to false, then quality option must be "proof"
+ randomize: true,
+ // Whether or not to animate the layout
+ animate: true,
+ // Duration of animation in ms, if enabled
+ animationDuration: 1e3,
+ // Easing of animation, if enabled
+ animationEasing: void 0,
+ // Fit the viewport to the repositioned nodes
+ fit: true,
+ // Padding around layout
+ padding: 30,
+ // Whether to include labels in node dimensions. Valid in "proof" quality
+ nodeDimensionsIncludeLabels: false,
+ // Whether or not simple nodes (non-compound nodes) are of uniform dimensions
+ uniformNodeDimensions: false,
+ // Whether to pack disconnected components - valid only if randomize: true
+ packComponents: true,
+ // Layout step - all, transformed, enforced, cose - for debug purpose only
+ step: "all",
+ /* spectral layout options */
+ // False for random, true for greedy
+ samplingType: true,
+ // Sample size to construct distance matrix
+ sampleSize: 25,
+ // Separation amount between nodes
+ nodeSeparation: 75,
+ // Power iteration tolerance
+ piTol: 1e-7,
+ /* CoSE layout options */
+ // Node repulsion (non overlapping) multiplier
+ nodeRepulsion: /* @__PURE__ */ __name(function nodeRepulsion4(node2) {
+ return 4500;
+ }, "nodeRepulsion"),
+ // Ideal edge (non nested) length
+ idealEdgeLength: /* @__PURE__ */ __name(function idealEdgeLength2(edge) {
+ return 50;
+ }, "idealEdgeLength"),
+ // Divisor to compute edge forces
+ edgeElasticity: /* @__PURE__ */ __name(function edgeElasticity2(edge) {
+ return 0.45;
+ }, "edgeElasticity"),
+ // Nesting factor (multiplier) to compute ideal edge length for nested edges
+ nestingFactor: 0.1,
+ // Gravity force (constant)
+ gravity: 0.25,
+ // Maximum number of iterations to perform
+ numIter: 2500,
+ // For enabling tiling
+ tile: true,
+ // The function that specifies the criteria for comparing nodes while sorting them during tiling operation.
+ // Takes the node id as a parameter and the default tiling operation is perfomed when this option is not set.
+ tilingCompareBy: void 0,
+ // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingVertical: 10,
+ // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)
+ tilingPaddingHorizontal: 10,
+ // Gravity range (constant) for compounds
+ gravityRangeCompound: 1.5,
+ // Gravity force (constant) for compounds
+ gravityCompound: 1,
+ // Gravity range (constant)
+ gravityRange: 3.8,
+ // Initial cooling factor for incremental layout
+ initialEnergyOnIncremental: 0.3,
+ /* constraint options */
+ // Fix required nodes to predefined positions
+ // [{nodeId: 'n1', position: {x: 100, y: 200}, {...}]
+ fixedNodeConstraint: void 0,
+ // Align required nodes in vertical/horizontal direction
+ // {vertical: [['n1', 'n2')], ['n3', 'n4']], horizontal: ['n2', 'n4']}
+ alignmentConstraint: void 0,
+ // Place two nodes relatively in vertical/horizontal direction
+ // [{top: 'n1', bottom: 'n2', gap: 100}, {left: 'n3', right: 'n4', gap: 75}]
+ relativePlacementConstraint: void 0,
+ /* layout event callbacks */
+ ready: /* @__PURE__ */ __name(function ready4() {
+ }, "ready"),
+ // on layoutready
+ stop: /* @__PURE__ */ __name(function stop5() {
+ }, "stop")
+ // on layoutstop
+ });
+ var Layout2 = function() {
+ function Layout3(options3) {
+ _classCallCheck2(this, Layout3);
+ this.options = assign7({}, defaults4, options3);
+ }
+ __name(Layout3, "Layout");
+ _createClass2(Layout3, [{
+ key: "run",
+ value: /* @__PURE__ */ __name(function run5() {
+ var layout6 = this;
+ var options3 = this.options;
+ var cy = options3.cy;
+ var eles = options3.eles;
+ var spectralResult = [];
+ var xCoords = void 0;
+ var yCoords = void 0;
+ var coseResult = [];
+ var components3 = void 0;
+ var componentCenters = [];
+ if (options3.fixedNodeConstraint && (!Array.isArray(options3.fixedNodeConstraint) || options3.fixedNodeConstraint.length == 0)) {
+ options3.fixedNodeConstraint = void 0;
+ }
+ if (options3.alignmentConstraint) {
+ if (options3.alignmentConstraint.vertical && (!Array.isArray(options3.alignmentConstraint.vertical) || options3.alignmentConstraint.vertical.length == 0)) {
+ options3.alignmentConstraint.vertical = void 0;
+ }
+ if (options3.alignmentConstraint.horizontal && (!Array.isArray(options3.alignmentConstraint.horizontal) || options3.alignmentConstraint.horizontal.length == 0)) {
+ options3.alignmentConstraint.horizontal = void 0;
+ }
+ }
+ if (options3.relativePlacementConstraint && (!Array.isArray(options3.relativePlacementConstraint) || options3.relativePlacementConstraint.length == 0)) {
+ options3.relativePlacementConstraint = void 0;
+ }
+ var constraintExist = options3.fixedNodeConstraint || options3.alignmentConstraint || options3.relativePlacementConstraint;
+ if (constraintExist) {
+ options3.tile = false;
+ options3.packComponents = false;
+ }
+ var layUtil = void 0;
+ var packingEnabled = false;
+ if (cy.layoutUtilities && options3.packComponents) {
+ layUtil = cy.layoutUtilities("get");
+ if (!layUtil) layUtil = cy.layoutUtilities();
+ packingEnabled = true;
+ }
+ if (eles.nodes().length > 0) {
+ if (!packingEnabled) {
+ var boundingBox3 = options3.eles.boundingBox();
+ componentCenters.push({ x: boundingBox3.x1 + boundingBox3.w / 2, y: boundingBox3.y1 + boundingBox3.h / 2 });
+ if (options3.randomize) {
+ var result = spectralLayout(options3);
+ spectralResult.push(result);
+ }
+ if (options3.quality == "default" || options3.quality == "proof") {
+ coseResult.push(coseLayout(options3, spectralResult[0]));
+ aux.relocateComponent(componentCenters[0], coseResult[0], options3);
+ } else {
+ aux.relocateComponent(componentCenters[0], spectralResult[0], options3);
+ }
+ } else {
+ var topMostNodes = aux.getTopMostNodes(options3.eles.nodes());
+ components3 = aux.connectComponents(cy, options3.eles, topMostNodes);
+ components3.forEach(function(component2) {
+ var boundingBox4 = component2.boundingBox();
+ componentCenters.push({ x: boundingBox4.x1 + boundingBox4.w / 2, y: boundingBox4.y1 + boundingBox4.h / 2 });
+ });
+ if (options3.randomize) {
+ components3.forEach(function(component2) {
+ options3.eles = component2;
+ spectralResult.push(spectralLayout(options3));
+ });
+ }
+ if (options3.quality == "default" || options3.quality == "proof") {
+ var toBeTiledNodes = cy.collection();
+ if (options3.tile) {
+ var nodeIndexes = /* @__PURE__ */ new Map();
+ var _xCoords = [];
+ var _yCoords = [];
+ var count = 0;
+ var tempSpectralResult = { nodeIndexes, xCoords: _xCoords, yCoords: _yCoords };
+ var indexesToBeDeleted = [];
+ components3.forEach(function(component2, index) {
+ if (component2.edges().length == 0) {
+ component2.nodes().forEach(function(node2, i3) {
+ toBeTiledNodes.merge(component2.nodes()[i3]);
+ if (!node2.isParent()) {
+ tempSpectralResult.nodeIndexes.set(component2.nodes()[i3].id(), count++);
+ tempSpectralResult.xCoords.push(component2.nodes()[0].position().x);
+ tempSpectralResult.yCoords.push(component2.nodes()[0].position().y);
+ }
+ });
+ indexesToBeDeleted.push(index);
+ }
+ });
+ if (toBeTiledNodes.length > 1) {
+ var _boundingBox = toBeTiledNodes.boundingBox();
+ componentCenters.push({ x: _boundingBox.x1 + _boundingBox.w / 2, y: _boundingBox.y1 + _boundingBox.h / 2 });
+ components3.push(toBeTiledNodes);
+ spectralResult.push(tempSpectralResult);
+ for (var i2 = indexesToBeDeleted.length - 1; i2 >= 0; i2--) {
+ components3.splice(indexesToBeDeleted[i2], 1);
+ spectralResult.splice(indexesToBeDeleted[i2], 1);
+ componentCenters.splice(indexesToBeDeleted[i2], 1);
+ }
+ ;
+ }
+ }
+ components3.forEach(function(component2, index) {
+ options3.eles = component2;
+ coseResult.push(coseLayout(options3, spectralResult[index]));
+ aux.relocateComponent(componentCenters[index], coseResult[index], options3);
+ });
+ } else {
+ components3.forEach(function(component2, index) {
+ aux.relocateComponent(componentCenters[index], spectralResult[index], options3);
+ });
+ }
+ var componentsEvaluated = /* @__PURE__ */ new Set();
+ if (components3.length > 1) {
+ var subgraphs = [];
+ var hiddenEles = eles.filter(function(ele) {
+ return ele.css("display") == "none";
+ });
+ components3.forEach(function(component2, index) {
+ var nodeIndexes2 = void 0;
+ if (options3.quality == "draft") {
+ nodeIndexes2 = spectralResult[index].nodeIndexes;
+ }
+ if (component2.nodes().not(hiddenEles).length > 0) {
+ var subgraph = {};
+ subgraph.edges = [];
+ subgraph.nodes = [];
+ var nodeIndex = void 0;
+ component2.nodes().not(hiddenEles).forEach(function(node2) {
+ if (options3.quality == "draft") {
+ if (!node2.isParent()) {
+ nodeIndex = nodeIndexes2.get(node2.id());
+ subgraph.nodes.push({ x: spectralResult[index].xCoords[nodeIndex] - node2.boundingbox().w / 2, y: spectralResult[index].yCoords[nodeIndex] - node2.boundingbox().h / 2, width: node2.boundingbox().w, height: node2.boundingbox().h });
+ } else {
+ var parentInfo = aux.calcBoundingBox(node2, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes2);
+ subgraph.nodes.push({ x: parentInfo.topLeftX, y: parentInfo.topLeftY, width: parentInfo.width, height: parentInfo.height });
+ }
+ } else {
+ if (coseResult[index][node2.id()]) {
+ subgraph.nodes.push({ x: coseResult[index][node2.id()].getLeft(), y: coseResult[index][node2.id()].getTop(), width: coseResult[index][node2.id()].getWidth(), height: coseResult[index][node2.id()].getHeight() });
+ }
+ }
+ });
+ component2.edges().forEach(function(edge) {
+ var source = edge.source();
+ var target = edge.target();
+ if (source.css("display") != "none" && target.css("display") != "none") {
+ if (options3.quality == "draft") {
+ var sourceNodeIndex = nodeIndexes2.get(source.id());
+ var targetNodeIndex = nodeIndexes2.get(target.id());
+ var sourceCenter = [];
+ var targetCenter = [];
+ if (source.isParent()) {
+ var parentInfo = aux.calcBoundingBox(source, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes2);
+ sourceCenter.push(parentInfo.topLeftX + parentInfo.width / 2);
+ sourceCenter.push(parentInfo.topLeftY + parentInfo.height / 2);
+ } else {
+ sourceCenter.push(spectralResult[index].xCoords[sourceNodeIndex]);
+ sourceCenter.push(spectralResult[index].yCoords[sourceNodeIndex]);
+ }
+ if (target.isParent()) {
+ var _parentInfo = aux.calcBoundingBox(target, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes2);
+ targetCenter.push(_parentInfo.topLeftX + _parentInfo.width / 2);
+ targetCenter.push(_parentInfo.topLeftY + _parentInfo.height / 2);
+ } else {
+ targetCenter.push(spectralResult[index].xCoords[targetNodeIndex]);
+ targetCenter.push(spectralResult[index].yCoords[targetNodeIndex]);
+ }
+ subgraph.edges.push({ startX: sourceCenter[0], startY: sourceCenter[1], endX: targetCenter[0], endY: targetCenter[1] });
+ } else {
+ if (coseResult[index][source.id()] && coseResult[index][target.id()]) {
+ subgraph.edges.push({ startX: coseResult[index][source.id()].getCenterX(), startY: coseResult[index][source.id()].getCenterY(), endX: coseResult[index][target.id()].getCenterX(), endY: coseResult[index][target.id()].getCenterY() });
+ }
+ }
+ }
+ });
+ if (subgraph.nodes.length > 0) {
+ subgraphs.push(subgraph);
+ componentsEvaluated.add(index);
+ }
+ }
+ });
+ var shiftResult = layUtil.packComponents(subgraphs, options3.randomize).shifts;
+ if (options3.quality == "draft") {
+ spectralResult.forEach(function(result2, index) {
+ var newXCoords = result2.xCoords.map(function(x5) {
+ return x5 + shiftResult[index].dx;
+ });
+ var newYCoords = result2.yCoords.map(function(y5) {
+ return y5 + shiftResult[index].dy;
+ });
+ result2.xCoords = newXCoords;
+ result2.yCoords = newYCoords;
+ });
+ } else {
+ var _count = 0;
+ componentsEvaluated.forEach(function(index) {
+ Object.keys(coseResult[index]).forEach(function(item) {
+ var nodeRectangle = coseResult[index][item];
+ nodeRectangle.setCenter(nodeRectangle.getCenterX() + shiftResult[_count].dx, nodeRectangle.getCenterY() + shiftResult[_count].dy);
+ });
+ _count++;
+ });
+ }
+ }
+ }
+ }
+ var getPositions = /* @__PURE__ */ __name(function getPositions2(ele, i3) {
+ if (options3.quality == "default" || options3.quality == "proof") {
+ if (typeof ele === "number") {
+ ele = i3;
+ }
+ var pos = void 0;
+ var node2 = void 0;
+ var theId = ele.data("id");
+ coseResult.forEach(function(result2) {
+ if (theId in result2) {
+ pos = { x: result2[theId].getRect().getCenterX(), y: result2[theId].getRect().getCenterY() };
+ node2 = result2[theId];
+ }
+ });
+ if (options3.nodeDimensionsIncludeLabels) {
+ if (node2.labelWidth) {
+ if (node2.labelPosHorizontal == "left") {
+ pos.x += node2.labelWidth / 2;
+ } else if (node2.labelPosHorizontal == "right") {
+ pos.x -= node2.labelWidth / 2;
+ }
+ }
+ if (node2.labelHeight) {
+ if (node2.labelPosVertical == "top") {
+ pos.y += node2.labelHeight / 2;
+ } else if (node2.labelPosVertical == "bottom") {
+ pos.y -= node2.labelHeight / 2;
+ }
+ }
+ }
+ if (pos == void 0) pos = { x: ele.position("x"), y: ele.position("y") };
+ return {
+ x: pos.x,
+ y: pos.y
+ };
+ } else {
+ var _pos = void 0;
+ spectralResult.forEach(function(result2) {
+ var index = result2.nodeIndexes.get(ele.id());
+ if (index != void 0) {
+ _pos = { x: result2.xCoords[index], y: result2.yCoords[index] };
+ }
+ });
+ if (_pos == void 0) _pos = { x: ele.position("x"), y: ele.position("y") };
+ return {
+ x: _pos.x,
+ y: _pos.y
+ };
+ }
+ }, "getPositions");
+ if (options3.quality == "default" || options3.quality == "proof" || options3.randomize) {
+ var parentsWithoutChildren = aux.calcParentsWithoutChildren(cy, eles);
+ var _hiddenEles = eles.filter(function(ele) {
+ return ele.css("display") == "none";
+ });
+ options3.eles = eles.not(_hiddenEles);
+ eles.nodes().not(":parent").not(_hiddenEles).layoutPositions(layout6, options3, getPositions);
+ if (parentsWithoutChildren.length > 0) {
+ parentsWithoutChildren.forEach(function(ele) {
+ ele.position(getPositions(ele));
+ });
+ }
+ } else {
+ console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.");
+ }
+ }, "run")
+ }]);
+ return Layout3;
+ }();
+ module3.exports = Layout2;
+ }
+ ),
+ /***/
+ 657: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var aux = __webpack_require__2(548);
+ var Matrix = __webpack_require__2(140).layoutBase.Matrix;
+ var SVD = __webpack_require__2(140).layoutBase.SVD;
+ var spectralLayout = /* @__PURE__ */ __name(function spectralLayout2(options3) {
+ var cy = options3.cy;
+ var eles = options3.eles;
+ var nodes6 = eles.nodes();
+ var parentNodes = eles.nodes(":parent");
+ var dummyNodes = /* @__PURE__ */ new Map();
+ var nodeIndexes = /* @__PURE__ */ new Map();
+ var parentChildMap = /* @__PURE__ */ new Map();
+ var allNodesNeighborhood = [];
+ var xCoords = [];
+ var yCoords = [];
+ var samplesColumn = [];
+ var minDistancesColumn = [];
+ var C2 = [];
+ var PHI = [];
+ var INV = [];
+ var firstSample = void 0;
+ var nodeSize = void 0;
+ var infinity = 1e8;
+ var small = 1e-9;
+ var piTol = options3.piTol;
+ var samplingType = options3.samplingType;
+ var nodeSeparation = options3.nodeSeparation;
+ var sampleSize = void 0;
+ var randomSampleCR = /* @__PURE__ */ __name(function randomSampleCR2() {
+ var sample2 = 0;
+ var count = 0;
+ var flag = false;
+ while (count < sampleSize) {
+ sample2 = Math.floor(Math.random() * nodeSize);
+ flag = false;
+ for (var i3 = 0; i3 < count; i3++) {
+ if (samplesColumn[i3] == sample2) {
+ flag = true;
+ break;
+ }
+ }
+ if (!flag) {
+ samplesColumn[count] = sample2;
+ count++;
+ } else {
+ continue;
+ }
+ }
+ }, "randomSampleCR");
+ var BFS = /* @__PURE__ */ __name(function BFS2(pivot, index2, samplingMethod) {
+ var path4 = [];
+ var front = 0;
+ var back = 0;
+ var current = 0;
+ var temp = void 0;
+ var distance2 = [];
+ var max_dist = 0;
+ var max_ind = 1;
+ for (var i3 = 0; i3 < nodeSize; i3++) {
+ distance2[i3] = infinity;
+ }
+ path4[back] = pivot;
+ distance2[pivot] = 0;
+ while (back >= front) {
+ current = path4[front++];
+ var neighbors = allNodesNeighborhood[current];
+ for (var _i = 0; _i < neighbors.length; _i++) {
+ temp = nodeIndexes.get(neighbors[_i]);
+ if (distance2[temp] == infinity) {
+ distance2[temp] = distance2[current] + 1;
+ path4[++back] = temp;
+ }
+ }
+ C2[current][index2] = distance2[current] * nodeSeparation;
+ }
+ if (samplingMethod) {
+ for (var _i2 = 0; _i2 < nodeSize; _i2++) {
+ if (C2[_i2][index2] < minDistancesColumn[_i2]) minDistancesColumn[_i2] = C2[_i2][index2];
+ }
+ for (var _i3 = 0; _i3 < nodeSize; _i3++) {
+ if (minDistancesColumn[_i3] > max_dist) {
+ max_dist = minDistancesColumn[_i3];
+ max_ind = _i3;
+ }
+ }
+ }
+ return max_ind;
+ }, "BFS");
+ var allBFS = /* @__PURE__ */ __name(function allBFS2(samplingMethod) {
+ var sample2 = void 0;
+ if (!samplingMethod) {
+ randomSampleCR();
+ for (var i3 = 0; i3 < sampleSize; i3++) {
+ BFS(samplesColumn[i3], i3, samplingMethod, false);
+ }
+ } else {
+ sample2 = Math.floor(Math.random() * nodeSize);
+ firstSample = sample2;
+ for (var _i4 = 0; _i4 < nodeSize; _i4++) {
+ minDistancesColumn[_i4] = infinity;
+ }
+ for (var _i5 = 0; _i5 < sampleSize; _i5++) {
+ samplesColumn[_i5] = sample2;
+ sample2 = BFS(sample2, _i5, samplingMethod);
+ }
+ }
+ for (var _i6 = 0; _i6 < nodeSize; _i6++) {
+ for (var j2 = 0; j2 < sampleSize; j2++) {
+ C2[_i6][j2] *= C2[_i6][j2];
+ }
+ }
+ for (var _i7 = 0; _i7 < sampleSize; _i7++) {
+ PHI[_i7] = [];
+ }
+ for (var _i8 = 0; _i8 < sampleSize; _i8++) {
+ for (var _j = 0; _j < sampleSize; _j++) {
+ PHI[_i8][_j] = C2[samplesColumn[_j]][_i8];
+ }
+ }
+ }, "allBFS");
+ var sample = /* @__PURE__ */ __name(function sample2() {
+ var SVDResult = SVD.svd(PHI);
+ var a_q = SVDResult.S;
+ var a_u = SVDResult.U;
+ var a_v = SVDResult.V;
+ var max_s = a_q[0] * a_q[0] * a_q[0];
+ var a_Sig = [];
+ for (var i3 = 0; i3 < sampleSize; i3++) {
+ a_Sig[i3] = [];
+ for (var j2 = 0; j2 < sampleSize; j2++) {
+ a_Sig[i3][j2] = 0;
+ if (i3 == j2) {
+ a_Sig[i3][j2] = a_q[i3] / (a_q[i3] * a_q[i3] + max_s / (a_q[i3] * a_q[i3]));
+ }
+ }
+ }
+ INV = Matrix.multMat(Matrix.multMat(a_v, a_Sig), Matrix.transpose(a_u));
+ }, "sample");
+ var powerIteration = /* @__PURE__ */ __name(function powerIteration2() {
+ var theta1 = void 0;
+ var theta2 = void 0;
+ var Y1 = [];
+ var Y22 = [];
+ var V1 = [];
+ var V2 = [];
+ for (var i3 = 0; i3 < nodeSize; i3++) {
+ Y1[i3] = Math.random();
+ Y22[i3] = Math.random();
+ }
+ Y1 = Matrix.normalize(Y1);
+ Y22 = Matrix.normalize(Y22);
+ var count = 0;
+ var current = small;
+ var previous = small;
+ var temp = void 0;
+ while (true) {
+ count++;
+ for (var _i9 = 0; _i9 < nodeSize; _i9++) {
+ V1[_i9] = Y1[_i9];
+ }
+ Y1 = Matrix.multGamma(Matrix.multL(Matrix.multGamma(V1), C2, INV));
+ theta1 = Matrix.dotProduct(V1, Y1);
+ Y1 = Matrix.normalize(Y1);
+ current = Matrix.dotProduct(V1, Y1);
+ temp = Math.abs(current / previous);
+ if (temp <= 1 + piTol && temp >= 1) {
+ break;
+ }
+ previous = current;
+ }
+ for (var _i10 = 0; _i10 < nodeSize; _i10++) {
+ V1[_i10] = Y1[_i10];
+ }
+ count = 0;
+ previous = small;
+ while (true) {
+ count++;
+ for (var _i11 = 0; _i11 < nodeSize; _i11++) {
+ V2[_i11] = Y22[_i11];
+ }
+ V2 = Matrix.minusOp(V2, Matrix.multCons(V1, Matrix.dotProduct(V1, V2)));
+ Y22 = Matrix.multGamma(Matrix.multL(Matrix.multGamma(V2), C2, INV));
+ theta2 = Matrix.dotProduct(V2, Y22);
+ Y22 = Matrix.normalize(Y22);
+ current = Matrix.dotProduct(V2, Y22);
+ temp = Math.abs(current / previous);
+ if (temp <= 1 + piTol && temp >= 1) {
+ break;
+ }
+ previous = current;
+ }
+ for (var _i12 = 0; _i12 < nodeSize; _i12++) {
+ V2[_i12] = Y22[_i12];
+ }
+ xCoords = Matrix.multCons(V1, Math.sqrt(Math.abs(theta1)));
+ yCoords = Matrix.multCons(V2, Math.sqrt(Math.abs(theta2)));
+ }, "powerIteration");
+ aux.connectComponents(cy, eles, aux.getTopMostNodes(nodes6), dummyNodes);
+ parentNodes.forEach(function(ele) {
+ aux.connectComponents(cy, eles, aux.getTopMostNodes(ele.descendants().intersection(eles)), dummyNodes);
+ });
+ var index = 0;
+ for (var i2 = 0; i2 < nodes6.length; i2++) {
+ if (!nodes6[i2].isParent()) {
+ nodeIndexes.set(nodes6[i2].id(), index++);
+ }
+ }
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = void 0;
+ try {
+ for (var _iterator = dummyNodes.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var key = _step.value;
+ nodeIndexes.set(key, index++);
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return) {
+ _iterator.return();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
+ }
+ for (var _i13 = 0; _i13 < nodeIndexes.size; _i13++) {
+ allNodesNeighborhood[_i13] = [];
+ }
+ parentNodes.forEach(function(ele) {
+ var children2 = ele.children().intersection(eles);
+ while (children2.nodes(":childless").length == 0) {
+ children2 = children2.nodes()[0].children().intersection(eles);
+ }
+ var index2 = 0;
+ var min9 = children2.nodes(":childless")[0].connectedEdges().length;
+ children2.nodes(":childless").forEach(function(ele2, i3) {
+ if (ele2.connectedEdges().length < min9) {
+ min9 = ele2.connectedEdges().length;
+ index2 = i3;
+ }
+ });
+ parentChildMap.set(ele.id(), children2.nodes(":childless")[index2].id());
+ });
+ nodes6.forEach(function(ele) {
+ var eleIndex = void 0;
+ if (ele.isParent()) eleIndex = nodeIndexes.get(parentChildMap.get(ele.id()));
+ else eleIndex = nodeIndexes.get(ele.id());
+ ele.neighborhood().nodes().forEach(function(node2) {
+ if (eles.intersection(ele.edgesWith(node2)).length > 0) {
+ if (node2.isParent()) allNodesNeighborhood[eleIndex].push(parentChildMap.get(node2.id()));
+ else allNodesNeighborhood[eleIndex].push(node2.id());
+ }
+ });
+ });
+ var _loop = /* @__PURE__ */ __name(function _loop2(_key2) {
+ var eleIndex = nodeIndexes.get(_key2);
+ var disconnectedId = void 0;
+ dummyNodes.get(_key2).forEach(function(id27) {
+ if (cy.getElementById(id27).isParent()) disconnectedId = parentChildMap.get(id27);
+ else disconnectedId = id27;
+ allNodesNeighborhood[eleIndex].push(disconnectedId);
+ allNodesNeighborhood[nodeIndexes.get(disconnectedId)].push(_key2);
+ });
+ }, "_loop");
+ var _iteratorNormalCompletion2 = true;
+ var _didIteratorError2 = false;
+ var _iteratorError2 = void 0;
+ try {
+ for (var _iterator2 = dummyNodes.keys()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
+ var _key = _step2.value;
+ _loop(_key);
+ }
+ } catch (err) {
+ _didIteratorError2 = true;
+ _iteratorError2 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion2 && _iterator2.return) {
+ _iterator2.return();
+ }
+ } finally {
+ if (_didIteratorError2) {
+ throw _iteratorError2;
+ }
+ }
+ }
+ nodeSize = nodeIndexes.size;
+ var spectralResult = void 0;
+ if (nodeSize > 2) {
+ sampleSize = nodeSize < options3.sampleSize ? nodeSize : options3.sampleSize;
+ for (var _i14 = 0; _i14 < nodeSize; _i14++) {
+ C2[_i14] = [];
+ }
+ for (var _i15 = 0; _i15 < sampleSize; _i15++) {
+ INV[_i15] = [];
+ }
+ if (options3.quality == "draft" || options3.step == "all") {
+ allBFS(samplingType);
+ sample();
+ powerIteration();
+ spectralResult = { nodeIndexes, xCoords, yCoords };
+ } else {
+ nodeIndexes.forEach(function(value2, key2) {
+ xCoords.push(cy.getElementById(key2).position("x"));
+ yCoords.push(cy.getElementById(key2).position("y"));
+ });
+ spectralResult = { nodeIndexes, xCoords, yCoords };
+ }
+ return spectralResult;
} else {
- gridForPrunedNode = 3;
+ var iterator = nodeIndexes.keys();
+ var firstNode = cy.getElementById(iterator.next().value);
+ var firstNodePos = firstNode.position();
+ var firstNodeWidth = firstNode.outerWidth();
+ xCoords.push(firstNodePos.x);
+ yCoords.push(firstNodePos.y);
+ if (nodeSize == 2) {
+ var secondNode = cy.getElementById(iterator.next().value);
+ var secondNodeWidth = secondNode.outerWidth();
+ xCoords.push(firstNodePos.x + firstNodeWidth / 2 + secondNodeWidth / 2 + options3.idealEdgeLength);
+ yCoords.push(firstNodePos.y);
+ }
+ spectralResult = { nodeIndexes, xCoords, yCoords };
+ return spectralResult;
+ }
+ }, "spectralLayout");
+ module3.exports = { spectralLayout };
+ }
+ ),
+ /***/
+ 579: (
+ /***/
+ (module3, __unused_webpack_exports, __webpack_require__2) => {
+ var impl2 = __webpack_require__2(212);
+ var register = /* @__PURE__ */ __name(function register2(cytoscape4) {
+ if (!cytoscape4) {
+ return;
}
+ cytoscape4("layout", "fcose", impl2);
+ }, "register");
+ if (typeof cytoscape !== "undefined") {
+ register(cytoscape);
+ }
+ module3.exports = register;
+ }
+ ),
+ /***/
+ 140: (
+ /***/
+ (module3) => {
+ module3.exports = __WEBPACK_EXTERNAL_MODULE__140__;
+ }
+ )
+ /******/
+ };
+ var __webpack_module_cache__ = {};
+ function __webpack_require__(moduleId) {
+ var cachedModule = __webpack_module_cache__[moduleId];
+ if (cachedModule !== void 0) {
+ return cachedModule.exports;
+ }
+ var module3 = __webpack_module_cache__[moduleId] = {
+ /******/
+ // no module.id needed
+ /******/
+ // no module.loaded needed
+ /******/
+ exports: {}
+ /******/
+ };
+ __webpack_modules__[moduleId](module3, module3.exports, __webpack_require__);
+ return module3.exports;
+ }
+ __name(__webpack_require__, "__webpack_require__");
+ var __webpack_exports__ = __webpack_require__(579);
+ return __webpack_exports__;
+ })()
+ );
+ });
+ }
+ });
+
+ // src/diagrams/architecture/architectureIcons.ts
+ var wrapIcon, architectureIcons;
+ var init_architectureIcons = __esm({
+ "src/diagrams/architecture/architectureIcons.ts"() {
+ "use strict";
+ init_icons();
+ wrapIcon = /* @__PURE__ */ __name((icon) => {
+ return `${icon}`;
+ }, "wrapIcon");
+ architectureIcons = {
+ prefix: "mermaid-architecture",
+ height: 80,
+ width: 80,
+ icons: {
+ database: {
+ body: wrapIcon(
+ ''
+ )
+ },
+ server: {
+ body: wrapIcon(
+ ''
+ )
+ },
+ disk: {
+ body: wrapIcon(
+ ''
+ )
+ },
+ internet: {
+ body: wrapIcon(
+ ''
+ )
+ },
+ cloud: {
+ body: wrapIcon(
+ ''
+ )
+ },
+ unknown: unknownIcon,
+ blank: {
+ body: wrapIcon("")
+ }
+ }
+ };
+ }
+ });
+
+ // src/diagrams/architecture/svgDraw.ts
+ var drawEdges2, drawGroups, drawServices, drawJunctions;
+ var init_svgDraw7 = __esm({
+ "src/diagrams/architecture/svgDraw.ts"() {
+ "use strict";
+ init_icons();
+ init_diagramAPI();
+ init_createText();
+ init_architectureDb();
+ init_architectureIcons();
+ init_architectureTypes();
+ drawEdges2 = /* @__PURE__ */ __name(async function(edgesEl, cy) {
+ const padding3 = getConfigField("padding");
+ const iconSize = getConfigField("iconSize");
+ const halfIconSize = iconSize / 2;
+ const arrowSize = iconSize / 6;
+ const halfArrowSize = arrowSize / 2;
+ await Promise.all(
+ cy.edges().map(async (edge) => {
+ const {
+ source,
+ sourceDir,
+ sourceArrow,
+ sourceGroup,
+ target,
+ targetDir,
+ targetArrow,
+ targetGroup,
+ label
+ } = edgeData(edge);
+ let { x: startX2, y: startY2 } = edge[0].sourceEndpoint();
+ const { x: midX, y: midY } = edge[0].midpoint();
+ let { x: endX, y: endY } = edge[0].targetEndpoint();
+ const groupEdgeShift = padding3 + 4;
+ if (sourceGroup) {
+ if (isArchitectureDirectionX(sourceDir)) {
+ startX2 += sourceDir === "L" ? -groupEdgeShift : groupEdgeShift;
+ } else {
+ startY2 += sourceDir === "T" ? -groupEdgeShift : groupEdgeShift + 18;
+ }
+ }
+ if (targetGroup) {
+ if (isArchitectureDirectionX(targetDir)) {
+ endX += targetDir === "L" ? -groupEdgeShift : groupEdgeShift;
+ } else {
+ endY += targetDir === "T" ? -groupEdgeShift : groupEdgeShift + 18;
+ }
+ }
+ if (!sourceGroup && db7.getNode(source)?.type === "junction") {
+ if (isArchitectureDirectionX(sourceDir)) {
+ startX2 += sourceDir === "L" ? halfIconSize : -halfIconSize;
+ } else {
+ startY2 += sourceDir === "T" ? halfIconSize : -halfIconSize;
+ }
+ }
+ if (!targetGroup && db7.getNode(target)?.type === "junction") {
+ if (isArchitectureDirectionX(targetDir)) {
+ endX += targetDir === "L" ? halfIconSize : -halfIconSize;
+ } else {
+ endY += targetDir === "T" ? halfIconSize : -halfIconSize;
+ }
+ }
+ if (edge[0]._private.rscratch) {
+ const g2 = edgesEl.insert("g");
+ g2.insert("path").attr("d", `M ${startX2},${startY2} L ${midX},${midY} L${endX},${endY} `).attr("class", "edge");
+ if (sourceArrow) {
+ const xShift = isArchitectureDirectionX(sourceDir) ? ArchitectureDirectionArrowShift[sourceDir](startX2, arrowSize) : startX2 - halfArrowSize;
+ const yShift = isArchitectureDirectionY(sourceDir) ? ArchitectureDirectionArrowShift[sourceDir](startY2, arrowSize) : startY2 - halfArrowSize;
+ g2.insert("polygon").attr("points", ArchitectureDirectionArrow[sourceDir](arrowSize)).attr("transform", `translate(${xShift},${yShift})`).attr("class", "arrow");
+ }
+ if (targetArrow) {
+ const xShift = isArchitectureDirectionX(targetDir) ? ArchitectureDirectionArrowShift[targetDir](endX, arrowSize) : endX - halfArrowSize;
+ const yShift = isArchitectureDirectionY(targetDir) ? ArchitectureDirectionArrowShift[targetDir](endY, arrowSize) : endY - halfArrowSize;
+ g2.insert("polygon").attr("points", ArchitectureDirectionArrow[targetDir](arrowSize)).attr("transform", `translate(${xShift},${yShift})`).attr("class", "arrow");
+ }
+ if (label) {
+ const axis2 = !isArchitectureDirectionXY(sourceDir, targetDir) ? isArchitectureDirectionX(sourceDir) ? "X" : "Y" : "XY";
+ let width3 = 0;
+ if (axis2 === "X") {
+ width3 = Math.abs(startX2 - endX);
+ } else if (axis2 === "Y") {
+ width3 = Math.abs(startY2 - endY) / 1.5;
+ } else {
+ width3 = Math.abs(startX2 - endX) / 2;
+ }
+ const textElem = g2.append("g");
+ await createText(
+ textElem,
+ label,
+ {
+ useHtmlLabels: false,
+ width: width3,
+ classes: "architecture-service-label"
+ },
+ getConfig2()
+ );
+ textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
+ if (axis2 === "X") {
+ textElem.attr("transform", "translate(" + midX + ", " + midY + ")");
+ } else if (axis2 === "Y") {
+ textElem.attr("transform", "translate(" + midX + ", " + midY + ") rotate(-90)");
+ } else if (axis2 === "XY") {
+ const pair = getArchitectureDirectionPair(sourceDir, targetDir);
+ if (pair && isArchitecturePairXY(pair)) {
+ const bboxOrig = textElem.node().getBoundingClientRect();
+ const [x5, y5] = getArchitectureDirectionXYFactors(pair);
+ textElem.attr("dominant-baseline", "auto").attr("transform", `rotate(${-1 * x5 * y5 * 45})`);
+ const bboxNew = textElem.node().getBoundingClientRect();
+ textElem.attr(
+ "transform",
+ `
+ translate(${midX}, ${midY - bboxOrig.height / 2})
+ translate(${x5 * bboxNew.width / 2}, ${y5 * bboxNew.height / 2})
+ rotate(${-1 * x5 * y5 * 45}, 0, ${bboxOrig.height / 2})
+ `
+ );
+ }
+ }
+ }
+ }
+ })
+ );
+ }, "drawEdges");
+ drawGroups = /* @__PURE__ */ __name(async function(groupsEl, cy) {
+ const padding3 = getConfigField("padding");
+ const groupIconSize = padding3 * 0.75;
+ const fontSize = getConfigField("fontSize");
+ const iconSize = getConfigField("iconSize");
+ const halfIconSize = iconSize / 2;
+ await Promise.all(
+ cy.nodes().map(async (node2) => {
+ const data5 = nodeData(node2);
+ if (data5.type === "group") {
+ const { h: h2, w: w3, x1, y1 } = node2.boundingBox();
+ groupsEl.append("rect").attr("x", x1 + halfIconSize).attr("y", y1 + halfIconSize).attr("width", w3).attr("height", h2).attr("class", "node-bkg");
+ const groupLabelContainer = groupsEl.append("g");
+ let shiftedX1 = x1;
+ let shiftedY1 = y1;
+ if (data5.icon) {
+ const bkgElem = groupLabelContainer.append("g");
+ bkgElem.html(
+ `${await getIconSVG(data5.icon, { height: groupIconSize, width: groupIconSize, fallbackPrefix: architectureIcons.prefix })}`
+ );
+ bkgElem.attr(
+ "transform",
+ "translate(" + (shiftedX1 + halfIconSize + 1) + ", " + (shiftedY1 + halfIconSize + 1) + ")"
+ );
+ shiftedX1 += groupIconSize;
+ shiftedY1 += fontSize / 2 - 1 - 2;
+ }
+ if (data5.label) {
+ const textElem = groupLabelContainer.append("g");
+ await createText(
+ textElem,
+ data5.label,
+ {
+ useHtmlLabels: false,
+ width: w3,
+ classes: "architecture-service-label"
+ },
+ getConfig2()
+ );
+ textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "start").attr("text-anchor", "start");
+ textElem.attr(
+ "transform",
+ "translate(" + (shiftedX1 + halfIconSize + 4) + ", " + (shiftedY1 + halfIconSize + 2) + ")"
+ );
+ }
+ }
+ })
+ );
+ }, "drawGroups");
+ drawServices = /* @__PURE__ */ __name(async function(db8, elem, services) {
+ for (const service of services) {
+ const serviceElem = elem.append("g");
+ const iconSize = getConfigField("iconSize");
+ if (service.title) {
+ const textElem = serviceElem.append("g");
+ await createText(
+ textElem,
+ service.title,
+ {
+ useHtmlLabels: false,
+ width: iconSize * 1.5,
+ classes: "architecture-service-label"
+ },
+ getConfig2()
+ );
+ textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
+ textElem.attr("transform", "translate(" + iconSize / 2 + ", " + iconSize + ")");
+ }
+ const bkgElem = serviceElem.append("g");
+ if (service.icon) {
+ bkgElem.html(
+ `${await getIconSVG(service.icon, { height: iconSize, width: iconSize, fallbackPrefix: architectureIcons.prefix })}`
+ );
+ } else if (service.iconText) {
+ bkgElem.html(
+ `${await getIconSVG("blank", { height: iconSize, width: iconSize, fallbackPrefix: architectureIcons.prefix })}`
+ );
+ const textElemContainer = bkgElem.append("g");
+ const fo = textElemContainer.append("foreignObject").attr("width", iconSize).attr("height", iconSize);
+ const divElem = fo.append("div").attr("class", "node-icon-text").attr("style", `height: ${iconSize}px;`).append("div").html(service.iconText);
+ const fontSize = parseInt(
+ window.getComputedStyle(divElem.node(), null).getPropertyValue("font-size").replace(/\D/g, "")
+ ) ?? 16;
+ divElem.attr("style", `-webkit-line-clamp: ${Math.floor((iconSize - 2) / fontSize)};`);
+ } else {
+ bkgElem.append("path").attr("class", "node-bkg").attr("id", "node-" + service.id).attr(
+ "d",
+ `M0 ${iconSize} v${-iconSize} q0,-5 5,-5 h${iconSize} q5,0 5,5 v${iconSize} H0 Z`
+ );
+ }
+ serviceElem.attr("class", "architecture-service");
+ const { width: width3, height: height2 } = serviceElem._groups[0][0].getBBox();
+ service.width = width3;
+ service.height = height2;
+ db8.setElementForId(service.id, serviceElem);
+ }
+ return 0;
+ }, "drawServices");
+ drawJunctions = /* @__PURE__ */ __name(function(db8, elem, junctions) {
+ junctions.forEach((junction) => {
+ const junctionElem = elem.append("g");
+ const iconSize = getConfigField("iconSize");
+ const bkgElem = junctionElem.append("g");
+ bkgElem.append("rect").attr("id", "node-" + junction.id).attr("fill-opacity", "0").attr("width", iconSize).attr("height", iconSize);
+ junctionElem.attr("class", "architecture-junction");
+ const { width: width3, height: height2 } = junctionElem._groups[0][0].getBBox();
+ junctionElem.width = width3;
+ junctionElem.height = height2;
+ db8.setElementForId(junction.id, junctionElem);
+ });
+ }, "drawJunctions");
+ }
+ });
+
+ // src/diagrams/architecture/architectureRenderer.ts
+ function addServices(services, cy) {
+ services.forEach((service) => {
+ cy.add({
+ group: "nodes",
+ data: {
+ type: "service",
+ id: service.id,
+ icon: service.icon,
+ label: service.title,
+ parent: service.in,
+ width: getConfigField("iconSize"),
+ height: getConfigField("iconSize")
+ },
+ classes: "node-service"
+ });
+ });
+ }
+ function addJunctions(junctions, cy) {
+ junctions.forEach((junction) => {
+ cy.add({
+ group: "nodes",
+ data: {
+ type: "junction",
+ id: junction.id,
+ parent: junction.in,
+ width: getConfigField("iconSize"),
+ height: getConfigField("iconSize")
+ },
+ classes: "node-junction"
+ });
+ });
+ }
+ function positionNodes2(db8, cy) {
+ cy.nodes().map((node2) => {
+ const data5 = nodeData(node2);
+ if (data5.type === "group") {
+ return;
+ }
+ data5.x = node2.position().x;
+ data5.y = node2.position().y;
+ const nodeElem = db8.getElementById(data5.id);
+ nodeElem.attr("transform", "translate(" + (data5.x || 0) + "," + (data5.y || 0) + ")");
+ });
+ }
+ function addGroups(groups, cy) {
+ groups.forEach((group2) => {
+ cy.add({
+ group: "nodes",
+ data: {
+ type: "group",
+ id: group2.id,
+ icon: group2.icon,
+ label: group2.title,
+ parent: group2.in
+ },
+ classes: "node-group"
+ });
+ });
+ }
+ function addEdges(edges5, cy) {
+ edges5.forEach((parsedEdge) => {
+ const { lhsId, rhsId, lhsInto, lhsGroup, rhsInto, lhsDir, rhsDir, rhsGroup, title: title2 } = parsedEdge;
+ const edgeType = isArchitectureDirectionXY(parsedEdge.lhsDir, parsedEdge.rhsDir) ? "segments" : "straight";
+ const edge = {
+ id: `${lhsId}-${rhsId}`,
+ label: title2,
+ source: lhsId,
+ sourceDir: lhsDir,
+ sourceArrow: lhsInto,
+ sourceGroup: lhsGroup,
+ sourceEndpoint: lhsDir === "L" ? "0 50%" : lhsDir === "R" ? "100% 50%" : lhsDir === "T" ? "50% 0" : "50% 100%",
+ target: rhsId,
+ targetDir: rhsDir,
+ targetArrow: rhsInto,
+ targetGroup: rhsGroup,
+ targetEndpoint: rhsDir === "L" ? "0 50%" : rhsDir === "R" ? "100% 50%" : rhsDir === "T" ? "50% 0" : "50% 100%"
+ };
+ cy.add({
+ group: "edges",
+ data: edge,
+ classes: edgeType
+ });
+ });
+ }
+ function getAlignments(spatialMaps) {
+ const alignments = spatialMaps.map((spatialMap) => {
+ const horizontalAlignments = {};
+ const verticalAlignments = {};
+ Object.entries(spatialMap).forEach(([id27, [x5, y5]]) => {
+ if (!horizontalAlignments[y5]) {
+ horizontalAlignments[y5] = [];
+ }
+ if (!verticalAlignments[x5]) {
+ verticalAlignments[x5] = [];
+ }
+ horizontalAlignments[y5].push(id27);
+ verticalAlignments[x5].push(id27);
+ });
+ return {
+ horiz: Object.values(horizontalAlignments).filter((arr) => arr.length > 1),
+ vert: Object.values(verticalAlignments).filter((arr) => arr.length > 1)
+ };
+ });
+ const [horizontal, vertical] = alignments.reduce(
+ ([prevHoriz, prevVert], { horiz, vert }) => {
+ return [
+ [...prevHoriz, ...horiz],
+ [...prevVert, ...vert]
+ ];
+ },
+ [[], []]
+ );
+ return {
+ horizontal,
+ vertical
+ };
+ }
+ function getRelativeConstraints(spatialMaps) {
+ const relativeConstraints = [];
+ const posToStr = /* @__PURE__ */ __name((pos) => `${pos[0]},${pos[1]}`, "posToStr");
+ const strToPos = /* @__PURE__ */ __name((pos) => pos.split(",").map((p3) => parseInt(p3)), "strToPos");
+ spatialMaps.forEach((spatialMap) => {
+ const invSpatialMap = Object.fromEntries(
+ Object.entries(spatialMap).map(([id27, pos]) => [posToStr(pos), id27])
+ );
+ const queue = [posToStr([0, 0])];
+ const visited = {};
+ const directions = {
+ L: [-1, 0],
+ R: [1, 0],
+ T: [0, 1],
+ B: [0, -1]
+ };
+ while (queue.length > 0) {
+ const curr = queue.shift();
+ if (curr) {
+ visited[curr] = 1;
+ const currId = invSpatialMap[curr];
+ if (currId) {
+ const currPos = strToPos(curr);
+ Object.entries(directions).forEach(([dir2, shift2]) => {
+ const newPos = posToStr([currPos[0] + shift2[0], currPos[1] + shift2[1]]);
+ const newId2 = invSpatialMap[newPos];
+ if (newId2 && !visited[newPos]) {
+ queue.push(newPos);
+ relativeConstraints.push({
+ [ArchitectureDirectionName[dir2]]: newId2,
+ [ArchitectureDirectionName[getOppositeArchitectureDirection(dir2)]]: currId,
+ gap: 1.5 * getConfigField("iconSize")
+ });
+ }
+ });
+ }
+ }
+ }
+ });
+ return relativeConstraints;
+ }
+ function layoutArchitecture(services, junctions, groups, edges5, { spatialMaps }) {
+ return new Promise((resolve3) => {
+ const renderEl = select_default2("body").append("div").attr("id", "cy").attr("style", "display:none");
+ const cy = cytoscape2({
+ container: document.getElementById("cy"),
+ style: [
+ {
+ selector: "edge",
+ style: {
+ "curve-style": "straight",
+ label: "data(label)",
+ "source-endpoint": "data(sourceEndpoint)",
+ "target-endpoint": "data(targetEndpoint)"
+ }
+ },
+ {
+ selector: "edge.segments",
+ style: {
+ "curve-style": "segments",
+ "segment-weights": "0",
+ "segment-distances": [0.5],
+ // @ts-ignore Incorrect library types
+ "edge-distances": "endpoints",
+ "source-endpoint": "data(sourceEndpoint)",
+ "target-endpoint": "data(targetEndpoint)"
+ }
+ },
+ {
+ selector: "node",
+ style: {
+ // @ts-ignore Incorrect library types
+ "compound-sizing-wrt-labels": "include"
+ }
+ },
+ {
+ selector: "node[label]",
+ style: {
+ "text-valign": "bottom",
+ "text-halign": "center",
+ "font-size": `${getConfigField("fontSize")}px`
+ }
+ },
+ {
+ selector: ".node-service",
+ style: {
+ label: "data(label)",
+ width: "data(width)",
+ height: "data(height)"
+ }
+ },
+ {
+ selector: ".node-junction",
+ style: {
+ width: "data(width)",
+ height: "data(height)"
+ }
+ },
+ {
+ selector: ".node-group",
+ style: {
+ // @ts-ignore Incorrect library types
+ padding: `${getConfigField("padding")}px`
+ }
+ }
+ ]
+ });
+ renderEl.remove();
+ addGroups(groups, cy);
+ addServices(services, cy);
+ addJunctions(junctions, cy);
+ addEdges(edges5, cy);
+ const alignmentConstraint = getAlignments(spatialMaps);
+ const relativePlacementConstraint = getRelativeConstraints(spatialMaps);
+ const layout6 = cy.layout({
+ name: "fcose",
+ quality: "proof",
+ styleEnabled: false,
+ animate: false,
+ nodeDimensionsIncludeLabels: false,
+ // Adjust the edge parameters if it passes through the border of a group
+ // Hacky fix for: https://github.com/iVis-at-Bilkent/cytoscape.js-fcose/issues/67
+ idealEdgeLength(edge) {
+ const [nodeA, nodeB] = edge.connectedNodes();
+ const { parent: parentA } = nodeData(nodeA);
+ const { parent: parentB } = nodeData(nodeB);
+ const elasticity = parentA === parentB ? 1.5 * getConfigField("iconSize") : 0.5 * getConfigField("iconSize");
+ return elasticity;
+ },
+ edgeElasticity(edge) {
+ const [nodeA, nodeB] = edge.connectedNodes();
+ const { parent: parentA } = nodeData(nodeA);
+ const { parent: parentB } = nodeData(nodeB);
+ const elasticity = parentA === parentB ? 0.45 : 1e-3;
+ return elasticity;
+ },
+ alignmentConstraint,
+ relativePlacementConstraint
+ });
+ layout6.one("layoutstop", () => {
+ function getSegmentWeights(source, target, pointX, pointY) {
+ let W2, D3;
+ const { x: sX, y: sY } = source;
+ const { x: tX, y: tY } = target;
+ D3 = (pointY - sY + (sX - pointX) * (sY - tY) / (sX - tX)) / Math.sqrt(1 + Math.pow((sY - tY) / (sX - tX), 2));
+ W2 = Math.sqrt(Math.pow(pointY - sY, 2) + Math.pow(pointX - sX, 2) - Math.pow(D3, 2));
+ const distAB = Math.sqrt(Math.pow(tX - sX, 2) + Math.pow(tY - sY, 2));
+ W2 = W2 / distAB;
+ let delta1 = (tX - sX) * (pointY - sY) - (tY - sY) * (pointX - sX);
+ switch (true) {
+ case delta1 >= 0:
+ delta1 = 1;
+ break;
+ case delta1 < 0:
+ delta1 = -1;
+ break;
+ }
+ let delta2 = (tX - sX) * (pointX - sX) + (tY - sY) * (pointY - sY);
+ switch (true) {
+ case delta2 >= 0:
+ delta2 = 1;
+ break;
+ case delta2 < 0:
+ delta2 = -1;
+ break;
+ }
+ D3 = Math.abs(D3) * delta1;
+ W2 = W2 * delta2;
+ return {
+ distances: D3,
+ weights: W2
+ };
+ }
+ __name(getSegmentWeights, "getSegmentWeights");
+ cy.startBatch();
+ for (const edge of Object.values(cy.edges())) {
+ if (edge.data?.()) {
+ const { x: sX, y: sY } = edge.source().position();
+ const { x: tX, y: tY } = edge.target().position();
+ if (sX !== tX && sY !== tY) {
+ const sEP = edge.sourceEndpoint();
+ const tEP = edge.targetEndpoint();
+ const { sourceDir } = edgeData(edge);
+ const [pointX, pointY] = isArchitectureDirectionY(sourceDir) ? [sEP.x, tEP.y] : [tEP.x, sEP.y];
+ const { weights, distances: distances2 } = getSegmentWeights(sEP, tEP, pointX, pointY);
+ edge.style("segment-distances", distances2);
+ edge.style("segment-weights", weights);
+ }
+ }
+ }
+ cy.endBatch();
+ layout6.run();
+ });
+ layout6.run();
+ cy.ready((e3) => {
+ log.info("Ready", e3);
+ resolve3(cy);
+ });
+ });
+ }
+ var import_cytoscape_fcose, draw23, renderer7;
+ var init_architectureRenderer = __esm({
+ "src/diagrams/architecture/architectureRenderer.ts"() {
+ "use strict";
+ init_icons();
+ init_cytoscape_esm();
+ import_cytoscape_fcose = __toESM(require_cytoscape_fcose(), 1);
+ init_src32();
+ init_logger();
+ init_selectSvgElement();
+ init_setupGraphViewbox();
+ init_architectureDb();
+ init_architectureIcons();
+ init_architectureTypes();
+ init_svgDraw7();
+ registerIconPacks([
+ {
+ name: architectureIcons.prefix,
+ icons: architectureIcons
+ }
+ ]);
+ cytoscape2.use(import_cytoscape_fcose.default);
+ __name(addServices, "addServices");
+ __name(addJunctions, "addJunctions");
+ __name(positionNodes2, "positionNodes");
+ __name(addGroups, "addGroups");
+ __name(addEdges, "addEdges");
+ __name(getAlignments, "getAlignments");
+ __name(getRelativeConstraints, "getRelativeConstraints");
+ __name(layoutArchitecture, "layoutArchitecture");
+ draw23 = /* @__PURE__ */ __name(async (text2, id27, _version, diagObj) => {
+ const db8 = diagObj.db;
+ const services = db8.getServices();
+ const junctions = db8.getJunctions();
+ const groups = db8.getGroups();
+ const edges5 = db8.getEdges();
+ const ds = db8.getDataStructures();
+ const svg = selectSvgElement(id27);
+ const edgesElem = svg.append("g");
+ edgesElem.attr("class", "architecture-edges");
+ const servicesElem = svg.append("g");
+ servicesElem.attr("class", "architecture-services");
+ const groupElem = svg.append("g");
+ groupElem.attr("class", "architecture-groups");
+ await drawServices(db8, servicesElem, services);
+ drawJunctions(db8, servicesElem, junctions);
+ const cy = await layoutArchitecture(services, junctions, groups, edges5, ds);
+ await drawEdges2(edgesElem, cy);
+ await drawGroups(groupElem, cy);
+ positionNodes2(db8, cy);
+ setupGraphViewbox(void 0, svg, getConfigField("padding"), getConfigField("useMaxWidth"));
+ }, "draw");
+ renderer7 = { draw: draw23 };
+ }
+ });
+
+ // src/diagrams/architecture/architectureDiagram.ts
+ var architectureDiagram_exports = {};
+ __export(architectureDiagram_exports, {
+ diagram: () => diagram23
+ });
+ var diagram23;
+ var init_architectureDiagram = __esm({
+ "src/diagrams/architecture/architectureDiagram.ts"() {
+ "use strict";
+ init_architectureParser();
+ init_architectureDb();
+ init_architectureStyles();
+ init_architectureRenderer();
+ diagram23 = {
+ parser: parser21,
+ db: db7,
+ renderer: renderer7,
+ styles: architectureStyles_default
+ };
+ }
+ });
+
+ // src/mermaid.ts
+ var mermaid_exports = {};
+ __export(mermaid_exports, {
+ default: () => mermaid_default
+ });
+ init_icons();
+ init_esm();
+ init_detectType();
+
+ // src/diagrams/c4/c4Detector.ts
+ var id2 = "c4";
+ var detector = /* @__PURE__ */ __name((txt) => {
+ return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
+ }, "detector");
+ var loader = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_c4Diagram2(), c4Diagram_exports));
+ return { id: id2, diagram: diagram24 };
+ }, "loader");
+ var plugin = {
+ id: id2,
+ detector,
+ loader
+ };
+ var c4Detector_default = plugin;
+
+ // src/diagrams/flowchart/flowDetector.ts
+ var id3 = "flowchart";
+ var detector2 = /* @__PURE__ */ __name((txt, config6) => {
+ if (config6?.flowchart?.defaultRenderer === "dagre-wrapper" || config6?.flowchart?.defaultRenderer === "elk") {
+ return false;
+ }
+ return /^\s*graph/.test(txt);
+ }, "detector");
+ var loader2 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_flowDiagram(), flowDiagram_exports));
+ return { id: id3, diagram: diagram24 };
+ }, "loader");
+ var plugin2 = {
+ id: id3,
+ detector: detector2,
+ loader: loader2
+ };
+ var flowDetector_default = plugin2;
+
+ // src/diagrams/flowchart/flowDetector-v2.ts
+ var id4 = "flowchart-v2";
+ var detector3 = /* @__PURE__ */ __name((txt, config6) => {
+ if (config6?.flowchart?.defaultRenderer === "dagre-d3") {
+ return false;
+ }
+ if (config6?.flowchart?.defaultRenderer === "elk") {
+ config6.layout = "elk";
+ }
+ if (/^\s*graph/.test(txt) && config6?.flowchart?.defaultRenderer === "dagre-wrapper") {
+ return true;
+ }
+ return /^\s*flowchart/.test(txt);
+ }, "detector");
+ var loader3 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_flowDiagram(), flowDiagram_exports));
+ return { id: id4, diagram: diagram24 };
+ }, "loader");
+ var plugin3 = {
+ id: id4,
+ detector: detector3,
+ loader: loader3
+ };
+ var flowDetector_v2_default = plugin3;
+
+ // src/diagrams/er/erDetector.ts
+ var id5 = "er";
+ var detector4 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*erDiagram/.test(txt);
+ }, "detector");
+ var loader4 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_erDiagram2(), erDiagram_exports));
+ return { id: id5, diagram: diagram24 };
+ }, "loader");
+ var plugin4 = {
+ id: id5,
+ detector: detector4,
+ loader: loader4
+ };
+ var erDetector_default = plugin4;
+
+ // src/diagrams/git/gitGraphDetector.ts
+ var id6 = "gitGraph";
+ var detector5 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*gitGraph/.test(txt);
+ }, "detector");
+ var loader5 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_gitGraphDiagram(), gitGraphDiagram_exports));
+ return { id: id6, diagram: diagram24 };
+ }, "loader");
+ var plugin5 = {
+ id: id6,
+ detector: detector5,
+ loader: loader5
+ };
+ var gitGraphDetector_default = plugin5;
+
+ // src/diagrams/gantt/ganttDetector.ts
+ var id7 = "gantt";
+ var detector6 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*gantt/.test(txt);
+ }, "detector");
+ var loader6 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_ganttDiagram(), ganttDiagram_exports));
+ return { id: id7, diagram: diagram24 };
+ }, "loader");
+ var plugin6 = {
+ id: id7,
+ detector: detector6,
+ loader: loader6
+ };
+ var ganttDetector_default = plugin6;
+
+ // src/diagrams/info/infoDetector.ts
+ var id8 = "info";
+ var detector7 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*info/.test(txt);
+ }, "detector");
+ var loader7 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_infoDiagram(), infoDiagram_exports));
+ return { id: id8, diagram: diagram24 };
+ }, "loader");
+ var info = {
+ id: id8,
+ detector: detector7,
+ loader: loader7
+ };
+
+ // src/diagrams/pie/pieDetector.ts
+ var id9 = "pie";
+ var detector8 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*pie/.test(txt);
+ }, "detector");
+ var loader8 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_pieDiagram(), pieDiagram_exports));
+ return { id: id9, diagram: diagram24 };
+ }, "loader");
+ var pie = {
+ id: id9,
+ detector: detector8,
+ loader: loader8
+ };
+
+ // src/diagrams/quadrant-chart/quadrantDetector.ts
+ var id10 = "quadrantChart";
+ var detector9 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*quadrantChart/.test(txt);
+ }, "detector");
+ var loader9 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_quadrantDiagram(), quadrantDiagram_exports));
+ return { id: id10, diagram: diagram24 };
+ }, "loader");
+ var plugin7 = {
+ id: id10,
+ detector: detector9,
+ loader: loader9
+ };
+ var quadrantDetector_default = plugin7;
+
+ // src/diagrams/xychart/xychartDetector.ts
+ var id11 = "xychart";
+ var detector10 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*xychart-beta/.test(txt);
+ }, "detector");
+ var loader10 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_xychartDiagram(), xychartDiagram_exports));
+ return { id: id11, diagram: diagram24 };
+ }, "loader");
+ var plugin8 = {
+ id: id11,
+ detector: detector10,
+ loader: loader10
+ };
+ var xychartDetector_default = plugin8;
+
+ // src/diagrams/requirement/requirementDetector.ts
+ var id12 = "requirement";
+ var detector11 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*requirement(Diagram)?/.test(txt);
+ }, "detector");
+ var loader11 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_requirementDiagram2(), requirementDiagram_exports));
+ return { id: id12, diagram: diagram24 };
+ }, "loader");
+ var plugin9 = {
+ id: id12,
+ detector: detector11,
+ loader: loader11
+ };
+ var requirementDetector_default = plugin9;
+
+ // src/diagrams/sequence/sequenceDetector.ts
+ var id13 = "sequence";
+ var detector12 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*sequenceDiagram/.test(txt);
+ }, "detector");
+ var loader12 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_sequenceDiagram2(), sequenceDiagram_exports));
+ return { id: id13, diagram: diagram24 };
+ }, "loader");
+ var plugin10 = {
+ id: id13,
+ detector: detector12,
+ loader: loader12
+ };
+ var sequenceDetector_default = plugin10;
+
+ // src/diagrams/class/classDetector.ts
+ var id14 = "class";
+ var detector13 = /* @__PURE__ */ __name((txt, config6) => {
+ if (config6?.class?.defaultRenderer === "dagre-wrapper") {
+ return false;
+ }
+ return /^\s*classDiagram/.test(txt);
+ }, "detector");
+ var loader13 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_classDiagram2(), classDiagram_exports));
+ return { id: id14, diagram: diagram24 };
+ }, "loader");
+ var plugin11 = {
+ id: id14,
+ detector: detector13,
+ loader: loader13
+ };
+ var classDetector_default = plugin11;
+
+ // src/diagrams/class/classDetector-V2.ts
+ var id15 = "classDiagram";
+ var detector14 = /* @__PURE__ */ __name((txt, config6) => {
+ if (/^\s*classDiagram/.test(txt) && config6?.class?.defaultRenderer === "dagre-wrapper") {
+ return true;
+ }
+ return /^\s*classDiagram-v2/.test(txt);
+ }, "detector");
+ var loader14 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_classDiagram_v2(), classDiagram_v2_exports));
+ return { id: id15, diagram: diagram24 };
+ }, "loader");
+ var plugin12 = {
+ id: id15,
+ detector: detector14,
+ loader: loader14
+ };
+ var classDetector_V2_default = plugin12;
+
+ // src/diagrams/state/stateDetector.ts
+ var id16 = "state";
+ var detector15 = /* @__PURE__ */ __name((txt, config6) => {
+ if (config6?.state?.defaultRenderer === "dagre-wrapper") {
+ return false;
+ }
+ return /^\s*stateDiagram/.test(txt);
+ }, "detector");
+ var loader15 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_stateDiagram2(), stateDiagram_exports));
+ return { id: id16, diagram: diagram24 };
+ }, "loader");
+ var plugin13 = {
+ id: id16,
+ detector: detector15,
+ loader: loader15
+ };
+ var stateDetector_default = plugin13;
+
+ // src/diagrams/state/stateDetector-V2.ts
+ var id17 = "stateDiagram";
+ var detector16 = /* @__PURE__ */ __name((txt, config6) => {
+ if (/^\s*stateDiagram-v2/.test(txt)) {
+ return true;
+ }
+ if (/^\s*stateDiagram/.test(txt) && config6?.state?.defaultRenderer === "dagre-wrapper") {
+ return true;
+ }
+ return false;
+ }, "detector");
+ var loader16 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_stateDiagram_v2(), stateDiagram_v2_exports));
+ return { id: id17, diagram: diagram24 };
+ }, "loader");
+ var plugin14 = {
+ id: id17,
+ detector: detector16,
+ loader: loader16
+ };
+ var stateDetector_V2_default = plugin14;
+
+ // src/diagrams/user-journey/journeyDetector.ts
+ var id18 = "journey";
+ var detector17 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*journey/.test(txt);
+ }, "detector");
+ var loader17 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_journeyDiagram(), journeyDiagram_exports));
+ return { id: id18, diagram: diagram24 };
+ }, "loader");
+ var plugin15 = {
+ id: id18,
+ detector: detector17,
+ loader: loader17
+ };
+ var journeyDetector_default = plugin15;
+
+ // src/diagrams/error/errorRenderer.ts
+ init_logger();
+ init_selectSvgElement();
+ init_setupGraphViewbox();
+ var draw17 = /* @__PURE__ */ __name((_text, id27, version4) => {
+ log.debug("rendering svg for syntax error\n");
+ const svg = selectSvgElement(id27);
+ const g2 = svg.append("g");
+ svg.attr("viewBox", "0 0 2412 512");
+ configureSvgSize(svg, 100, 512, true);
+ g2.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"
+ );
+ g2.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"
+ );
+ g2.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"
+ );
+ g2.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"
+ );
+ g2.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"
+ );
+ g2.append("path").attr("class", "error-icon").attr(
+ "d",
+ "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"
+ );
+ g2.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text");
+ g2.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text(`mermaid version ${version4}`);
+ }, "draw");
+ var renderer3 = { draw: draw17 };
+ var errorRenderer_default = renderer3;
+
+ // src/diagrams/error/errorDiagram.ts
+ var diagram17 = {
+ db: {},
+ renderer: renderer3,
+ parser: {
+ parse: /* @__PURE__ */ __name(() => {
+ return;
+ }, "parse")
+ }
+ };
+ var errorDiagram_default = diagram17;
+
+ // src/diagrams/flowchart/elk/detector.ts
+ var id19 = "flowchart-elk";
+ var detector18 = /* @__PURE__ */ __name((txt, config6 = {}) => {
+ if (
+ // If diagram explicitly states flowchart-elk
+ /^\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk
+ /^\s*flowchart|graph/.test(txt) && config6?.flowchart?.defaultRenderer === "elk"
+ ) {
+ config6.layout = "elk";
+ return true;
+ }
+ return false;
+ }, "detector");
+ var loader18 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_flowDiagram(), flowDiagram_exports));
+ return { id: id19, diagram: diagram24 };
+ }, "loader");
+ var plugin16 = {
+ id: id19,
+ detector: detector18,
+ loader: loader18
+ };
+ var detector_default = plugin16;
+
+ // src/diagrams/timeline/detector.ts
+ var id20 = "timeline";
+ var detector19 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*timeline/.test(txt);
+ }, "detector");
+ var loader19 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_timeline_definition(), timeline_definition_exports));
+ return { id: id20, diagram: diagram24 };
+ }, "loader");
+ var plugin17 = {
+ id: id20,
+ detector: detector19,
+ loader: loader19
+ };
+ var detector_default2 = plugin17;
+
+ // src/diagrams/mindmap/detector.ts
+ var id22 = "mindmap";
+ var detector20 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*mindmap/.test(txt);
+ }, "detector");
+ var loader20 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_mindmap_definition(), mindmap_definition_exports));
+ return { id: id22, diagram: diagram24 };
+ }, "loader");
+ var plugin18 = {
+ id: id22,
+ detector: detector20,
+ loader: loader20
+ };
+ var detector_default3 = plugin18;
+
+ // src/diagrams/sankey/sankeyDetector.ts
+ var id23 = "sankey";
+ var detector21 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*sankey-beta/.test(txt);
+ }, "detector");
+ var loader21 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_sankeyDiagram(), sankeyDiagram_exports));
+ return { id: id23, diagram: diagram24 };
+ }, "loader");
+ var plugin19 = {
+ id: id23,
+ detector: detector21,
+ loader: loader21
+ };
+ var sankeyDetector_default = plugin19;
+
+ // src/diagrams/packet/detector.ts
+ var id24 = "packet";
+ var detector22 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*packet-beta/.test(txt);
+ }, "detector");
+ var loader22 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_diagram(), diagram_exports));
+ return { id: id24, diagram: diagram24 };
+ }, "loader");
+ var packet = {
+ id: id24,
+ detector: detector22,
+ loader: loader22
+ };
+
+ // src/diagrams/block/blockDetector.ts
+ var id25 = "block";
+ var detector23 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*block-beta/.test(txt);
+ }, "detector");
+ var loader23 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_blockDiagram(), blockDiagram_exports));
+ return { id: id25, diagram: diagram24 };
+ }, "loader");
+ var plugin20 = {
+ id: id25,
+ detector: detector23,
+ loader: loader23
+ };
+ var blockDetector_default = plugin20;
+
+ // src/diagrams/architecture/architectureDetector.ts
+ var id26 = "architecture";
+ var detector24 = /* @__PURE__ */ __name((txt) => {
+ return /^\s*architecture/.test(txt);
+ }, "detector");
+ var loader24 = /* @__PURE__ */ __name(async () => {
+ const { diagram: diagram24 } = await Promise.resolve().then(() => (init_architectureDiagram(), architectureDiagram_exports));
+ return { id: id26, diagram: diagram24 };
+ }, "loader");
+ var architecture = {
+ id: id26,
+ detector: detector24,
+ loader: loader24
+ };
+ var architectureDetector_default = architecture;
+
+ // src/diagram-api/diagram-orchestration.ts
+ init_detectType();
+ init_diagramAPI();
+ var hasLoadedDiagrams = false;
+ var addDiagrams = /* @__PURE__ */ __name(() => {
+ if (hasLoadedDiagrams) {
+ return;
+ }
+ hasLoadedDiagrams = true;
+ registerDiagram("error", errorDiagram_default, (text2) => {
+ return text2.toLowerCase().trim() === "error";
+ });
+ registerDiagram(
+ "---",
+ // --- diagram type may appear if YAML front-matter is not parsed correctly
+ {
+ db: {
+ clear: /* @__PURE__ */ __name(() => {
+ }, "clear")
+ },
+ styles: {},
+ // should never be used
+ renderer: {
+ draw: /* @__PURE__ */ __name(() => {
+ }, "draw")
+ },
+ parser: {
+ parse: /* @__PURE__ */ __name(() => {
+ throw new Error(
+ "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks"
+ );
+ }, "parse")
+ },
+ init: /* @__PURE__ */ __name(() => null, "init")
+ // no op
+ },
+ (text2) => {
+ return text2.toLowerCase().trimStart().startsWith("---");
+ }
+ );
+ registerLazyLoadedDiagrams(
+ c4Detector_default,
+ classDetector_V2_default,
+ classDetector_default,
+ erDetector_default,
+ ganttDetector_default,
+ info,
+ pie,
+ requirementDetector_default,
+ sequenceDetector_default,
+ detector_default,
+ flowDetector_v2_default,
+ flowDetector_default,
+ detector_default3,
+ detector_default2,
+ gitGraphDetector_default,
+ stateDetector_V2_default,
+ stateDetector_default,
+ journeyDetector_default,
+ quadrantDetector_default,
+ sankeyDetector_default,
+ packet,
+ xychartDetector_default,
+ blockDetector_default,
+ architectureDetector_default
+ );
+ }, "addDiagrams");
+
+ // src/diagram-api/loadDiagram.ts
+ init_logger();
+ init_detectType();
+ init_diagramAPI();
+ var loadRegisteredDiagrams = /* @__PURE__ */ __name(async () => {
+ log.debug(`Loading registered diagrams`);
+ const results = await Promise.allSettled(
+ Object.entries(detectors).map(async ([key, { detector: detector25, loader: loader26 }]) => {
+ if (loader26) {
+ try {
+ getDiagram(key);
+ } catch {
+ try {
+ const { diagram: diagram24, id: id27 } = await loader26();
+ registerDiagram(id27, diagram24, detector25);
+ } catch (err) {
+ log.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);
+ delete detectors[key];
+ throw err;
+ }
+ }
+ }
+ })
+ );
+ const failed = results.filter((result) => result.status === "rejected");
+ if (failed.length > 0) {
+ log.error(`Failed to load ${failed.length} external diagrams`);
+ for (const res of failed) {
+ log.error(res);
+ }
+ throw new Error(`Failed to load ${failed.length} external diagrams`);
+ }
+ }, "loadRegisteredDiagrams");
+
+ // src/mermaid.ts
+ init_logger();
+
+ // src/mermaidAPI.ts
+ init_src32();
+
+ // ../../node_modules/.pnpm/stylis@4.3.4/node_modules/stylis/src/Enum.js
+ var COMMENT = "comm";
+ var RULESET = "rule";
+ var DECLARATION = "decl";
+ var IMPORT = "@import";
+ var KEYFRAMES = "@keyframes";
+ var LAYER = "@layer";
+
+ // ../../node_modules/.pnpm/stylis@4.3.4/node_modules/stylis/src/Utility.js
+ var abs3 = Math.abs;
+ var from = String.fromCharCode;
+ function trim(value2) {
+ return value2.trim();
+ }
+ __name(trim, "trim");
+ function replace(value2, pattern, replacement) {
+ return value2.replace(pattern, replacement);
+ }
+ __name(replace, "replace");
+ function indexof(value2, search, position5) {
+ return value2.indexOf(search, position5);
+ }
+ __name(indexof, "indexof");
+ function charat(value2, index) {
+ return value2.charCodeAt(index) | 0;
+ }
+ __name(charat, "charat");
+ function substr(value2, begin, end2) {
+ return value2.slice(begin, end2);
+ }
+ __name(substr, "substr");
+ function strlen(value2) {
+ return value2.length;
+ }
+ __name(strlen, "strlen");
+ function sizeof(value2) {
+ return value2.length;
+ }
+ __name(sizeof, "sizeof");
+ function append2(value2, array4) {
+ return array4.push(value2), value2;
+ }
+ __name(append2, "append");
+
+ // ../../node_modules/.pnpm/stylis@4.3.4/node_modules/stylis/src/Tokenizer.js
+ var line = 1;
+ var column = 1;
+ var length = 0;
+ var position4 = 0;
+ var character = 0;
+ var characters = "";
+ function node(value2, root4, parent4, type3, props, children2, length2, siblings2) {
+ return { value: value2, root: root4, parent: parent4, type: type3, props, children: children2, line, column, length: length2, return: "", siblings: siblings2 };
+ }
+ __name(node, "node");
+ function char() {
+ return character;
+ }
+ __name(char, "char");
+ function prev() {
+ character = position4 > 0 ? charat(characters, --position4) : 0;
+ if (column--, character === 10)
+ column = 1, line--;
+ return character;
+ }
+ __name(prev, "prev");
+ function next2() {
+ character = position4 < length ? charat(characters, position4++) : 0;
+ if (column++, character === 10)
+ column = 1, line++;
+ return character;
+ }
+ __name(next2, "next");
+ function peek() {
+ return charat(characters, position4);
+ }
+ __name(peek, "peek");
+ function caret2() {
+ return position4;
+ }
+ __name(caret2, "caret");
+ function slice4(begin, end2) {
+ return substr(characters, begin, end2);
+ }
+ __name(slice4, "slice");
+ function token(type3) {
+ switch (type3) {
+ case 0:
+ case 9:
+ case 10:
+ case 13:
+ case 32:
+ return 5;
+ case 33:
+ case 43:
+ case 44:
+ case 47:
+ case 62:
+ case 64:
+ case 126:
+ case 59:
+ case 123:
+ case 125:
+ return 4;
+ case 58:
+ return 3;
+ case 34:
+ case 39:
+ case 40:
+ case 91:
+ return 2;
+ case 41:
+ case 93:
+ return 1;
+ }
+ return 0;
+ }
+ __name(token, "token");
+ function alloc(value2) {
+ return line = column = 1, length = strlen(characters = value2), position4 = 0, [];
+ }
+ __name(alloc, "alloc");
+ function dealloc(value2) {
+ return characters = "", value2;
+ }
+ __name(dealloc, "dealloc");
+ function delimit(type3) {
+ return trim(slice4(position4 - 1, delimiter2(type3 === 91 ? type3 + 2 : type3 === 40 ? type3 + 1 : type3)));
+ }
+ __name(delimit, "delimit");
+ function whitespace(type3) {
+ while (character = peek())
+ if (character < 33)
+ next2();
+ else
+ break;
+ return token(type3) > 2 || token(character) > 3 ? "" : " ";
+ }
+ __name(whitespace, "whitespace");
+ function escaping(index, count) {
+ while (--count && next2())
+ if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97)
+ break;
+ return slice4(index, caret2() + (count < 6 && peek() == 32 && next2() == 32));
+ }
+ __name(escaping, "escaping");
+ function delimiter2(type3) {
+ while (next2())
+ switch (character) {
+ case type3:
+ return position4;
+ case 34:
+ case 39:
+ if (type3 !== 34 && type3 !== 39)
+ delimiter2(character);
+ break;
+ case 40:
+ if (type3 === 41)
+ delimiter2(type3);
+ break;
+ case 92:
+ next2();
+ break;
+ }
+ return position4;
+ }
+ __name(delimiter2, "delimiter");
+ function commenter(type3, index) {
+ while (next2())
+ if (type3 + character === 47 + 10)
+ break;
+ else if (type3 + character === 42 + 42 && peek() === 47)
+ break;
+ return "/*" + slice4(index, position4 - 1) + "*" + from(type3 === 47 ? type3 : next2());
+ }
+ __name(commenter, "commenter");
+ function identifier(index) {
+ while (!token(peek()))
+ next2();
+ return slice4(index, position4);
+ }
+ __name(identifier, "identifier");
+
+ // ../../node_modules/.pnpm/stylis@4.3.4/node_modules/stylis/src/Parser.js
+ function compile(value2) {
+ return dealloc(parse5("", null, null, null, [""], value2 = alloc(value2), 0, [0], value2));
+ }
+ __name(compile, "compile");
+ function parse5(value2, root4, parent4, rule, rules, rulesets, pseudo, points, declarations) {
+ var index = 0;
+ var offset = 0;
+ var length2 = pseudo;
+ var atrule = 0;
+ var property2 = 0;
+ var previous = 0;
+ var variable = 1;
+ var scanning = 1;
+ var ampersand = 1;
+ var character2 = 0;
+ var type3 = "";
+ var props = rules;
+ var children2 = rulesets;
+ var reference = rule;
+ var characters2 = type3;
+ while (scanning)
+ switch (previous = character2, character2 = next2()) {
+ case 40:
+ if (previous != 108 && charat(characters2, length2 - 1) == 58) {
+ if (indexof(characters2 += replace(delimit(character2), "&", "&\f"), "&\f", abs3(index ? points[index - 1] : 0)) != -1)
+ ampersand = -1;
+ break;
+ }
+ case 34:
+ case 39:
+ case 91:
+ characters2 += delimit(character2);
+ break;
+ case 9:
+ case 10:
+ case 13:
+ case 32:
+ characters2 += whitespace(previous);
+ break;
+ case 92:
+ characters2 += escaping(caret2() - 1, 7);
+ continue;
+ case 47:
+ switch (peek()) {
+ case 42:
+ case 47:
+ append2(comment(commenter(next2(), caret2()), root4, parent4, declarations), declarations);
+ if ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters2) && substr(characters2, -1, void 0) !== " ") characters2 += " ";
+ break;
+ default:
+ characters2 += "/";
+ }
+ break;
+ case 123 * variable:
+ points[index++] = strlen(characters2) * ampersand;
+ case 125 * variable:
+ case 59:
+ case 0:
+ switch (character2) {
+ case 0:
+ case 125:
+ scanning = 0;
+ case 59 + offset:
+ if (ampersand == -1) characters2 = replace(characters2, /\f/g, "");
+ if (property2 > 0 && (strlen(characters2) - length2 || variable === 0 && previous === 47))
+ append2(property2 > 32 ? declaration(characters2 + ";", rule, parent4, length2 - 1, declarations) : declaration(replace(characters2, " ", "") + ";", rule, parent4, length2 - 2, declarations), declarations);
+ break;
+ case 59:
+ characters2 += ";";
+ default:
+ append2(reference = ruleset(characters2, root4, parent4, index, offset, rules, points, type3, props = [], children2 = [], length2, rulesets), rulesets);
+ if (character2 === 123)
+ if (offset === 0)
+ parse5(characters2, root4, reference, reference, props, rulesets, length2, points, children2);
+ else
+ switch (atrule === 99 && charat(characters2, 3) === 110 ? 100 : atrule) {
+ case 100:
+ case 108:
+ case 109:
+ case 115:
+ parse5(value2, reference, reference, rule && append2(ruleset(value2, reference, reference, 0, 0, rules, points, type3, rules, props = [], length2, children2), children2), rules, children2, length2, points, rule ? props : children2);
+ break;
+ default:
+ parse5(characters2, reference, reference, reference, [""], children2, 0, points, children2);
}
- } else if (minCount == 4 && min2 == 0) {
- var random2 = Math.floor(Math.random() * 4);
- gridForPrunedNode = random2;
- } else {
- gridForPrunedNode = minIndex;
- }
- if (gridForPrunedNode == 0) {
- prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);
- } else if (gridForPrunedNode == 1) {
- prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
- } else if (gridForPrunedNode == 2) {
- prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);
- } else {
- prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
- }
- };
- module3.exports = CoSELayout;
- },
- /* 7 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var coseBase2 = {};
- coseBase2.layoutBase = __webpack_require__(0);
- coseBase2.CoSEConstants = __webpack_require__(1);
- coseBase2.CoSEEdge = __webpack_require__(2);
- coseBase2.CoSEGraph = __webpack_require__(3);
- coseBase2.CoSEGraphManager = __webpack_require__(4);
- coseBase2.CoSELayout = __webpack_require__(6);
- coseBase2.CoSENode = __webpack_require__(5);
- module3.exports = coseBase2;
+ }
+ index = offset = property2 = 0, variable = ampersand = 1, type3 = characters2 = "", length2 = pseudo;
+ break;
+ case 58:
+ length2 = 1 + strlen(characters2), property2 = previous;
+ default:
+ if (variable < 1) {
+ if (character2 == 123)
+ --variable;
+ else if (character2 == 125 && variable++ == 0 && prev() == 125)
+ continue;
+ }
+ switch (characters2 += from(character2), character2 * variable) {
+ case 38:
+ ampersand = offset > 0 ? 1 : (characters2 += "\f", -1);
+ break;
+ case 44:
+ points[index++] = (strlen(characters2) - 1) * ampersand, ampersand = 1;
+ break;
+ case 64:
+ if (peek() === 45)
+ characters2 += delimit(next2());
+ atrule = peek(), offset = length2 = strlen(type3 = characters2 += identifier(caret2())), character2++;
+ break;
+ case 45:
+ if (previous === 45 && strlen(characters2) == 2)
+ variable = 0;
+ }
+ }
+ return rulesets;
+ }
+ __name(parse5, "parse");
+ function ruleset(value2, root4, parent4, index, offset, rules, points, type3, props, children2, length2, siblings2) {
+ var post = offset - 1;
+ var rule = offset === 0 ? rules : [""];
+ var size5 = sizeof(rule);
+ for (var i2 = 0, j2 = 0, k2 = 0; i2 < index; ++i2)
+ for (var x5 = 0, y5 = substr(value2, post + 1, post = abs3(j2 = points[i2])), z2 = value2; x5 < size5; ++x5)
+ if (z2 = trim(j2 > 0 ? rule[x5] + " " + y5 : replace(y5, /&\f/g, rule[x5])))
+ props[k2++] = z2;
+ return node(value2, root4, parent4, offset === 0 ? RULESET : type3, props, children2, length2, siblings2);
+ }
+ __name(ruleset, "ruleset");
+ function comment(value2, root4, parent4, siblings2) {
+ return node(value2, root4, parent4, COMMENT, from(char()), substr(value2, 2, -2), 0, siblings2);
+ }
+ __name(comment, "comment");
+ function declaration(value2, root4, parent4, length2, siblings2) {
+ return node(value2, root4, parent4, DECLARATION, substr(value2, 0, length2), substr(value2, length2 + 1, -1), length2, siblings2);
+ }
+ __name(declaration, "declaration");
+
+ // ../../node_modules/.pnpm/stylis@4.3.4/node_modules/stylis/src/Serializer.js
+ function serialize(children2, callback) {
+ var output2 = "";
+ for (var i2 = 0; i2 < children2.length; i2++)
+ output2 += callback(children2[i2], i2, children2, callback) || "";
+ return output2;
+ }
+ __name(serialize, "serialize");
+ function stringify(element3, index, children2, callback) {
+ switch (element3.type) {
+ case LAYER:
+ if (element3.children.length) break;
+ case IMPORT:
+ case DECLARATION:
+ return element3.return = element3.return || element3.value;
+ case COMMENT:
+ return "";
+ case KEYFRAMES:
+ return element3.return = element3.value + "{" + serialize(element3.children, callback) + "}";
+ case RULESET:
+ if (!strlen(element3.value = element3.props.join(","))) return "";
+ }
+ return strlen(children2 = serialize(element3.children, callback)) ? element3.return = element3.value + "{" + children2 + "}" : "";
+ }
+ __name(stringify, "stringify");
+
+ // src/mermaidAPI.ts
+ var import_dompurify2 = __toESM(require_purify(), 1);
+ init_isEmpty();
+ init_package();
+
+ // src/accessibility.ts
+ var SVG_ROLE = "graphics-document document";
+ function setA11yDiagramInfo(svg, diagramType) {
+ svg.attr("role", SVG_ROLE);
+ if (diagramType !== "") {
+ svg.attr("aria-roledescription", diagramType);
+ }
+ }
+ __name(setA11yDiagramInfo, "setA11yDiagramInfo");
+ function addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {
+ if (svg.insert === void 0) {
+ return;
+ }
+ if (a11yDesc) {
+ const descId = `chart-desc-${baseId}`;
+ svg.attr("aria-describedby", descId);
+ svg.insert("desc", ":first-child").attr("id", descId).text(a11yDesc);
+ }
+ if (a11yTitle) {
+ const titleId = `chart-title-${baseId}`;
+ svg.attr("aria-labelledby", titleId);
+ svg.insert("title", ":first-child").attr("id", titleId).text(a11yTitle);
+ }
+ }
+ __name(addSVGa11yTitleDescription, "addSVGa11yTitleDescription");
+
+ // src/mermaidAPI.ts
+ init_assignWithDepth();
+ init_config();
+
+ // src/Diagram.ts
+ init_config();
+ init_diagramAPI();
+ init_detectType();
+ init_errors();
+ init_utils2();
+ var Diagram = class _Diagram {
+ constructor(type3, text2, db8, parser22, renderer8) {
+ this.type = type3;
+ this.text = text2;
+ this.db = db8;
+ this.parser = parser22;
+ this.renderer = renderer8;
+ }
+ static {
+ __name(this, "Diagram");
+ }
+ static async fromText(text2, metadata = {}) {
+ const config6 = getConfig();
+ const type3 = detectType(text2, config6);
+ text2 = encodeEntities(text2) + "\n";
+ try {
+ getDiagram(type3);
+ } catch {
+ const loader26 = getDiagramLoader(type3);
+ if (!loader26) {
+ throw new UnknownDiagramError(`Diagram ${type3} not found.`);
+ }
+ const { id: id27, diagram: diagram24 } = await loader26();
+ registerDiagram(id27, diagram24);
+ }
+ const { db: db8, parser: parser22, renderer: renderer8, init: init3 } = getDiagram(type3);
+ if (parser22.parser) {
+ parser22.parser.yy = db8;
+ }
+ db8.clear?.();
+ init3?.(config6);
+ if (metadata.title) {
+ db8.setDiagramTitle?.(metadata.title);
+ }
+ await parser22.parse(text2);
+ return new _Diagram(type3, text2, db8, parser22, renderer8);
+ }
+ async render(id27, version4) {
+ await this.renderer.draw(this.text, id27, version4, this);
+ }
+ getParser() {
+ return this.parser;
+ }
+ getType() {
+ return this.type;
+ }
+ };
+
+ // src/mermaidAPI.ts
+ init_common();
+
+ // src/interactionDb.ts
+ var interactionFunctions = [];
+ var attachFunctions = /* @__PURE__ */ __name(() => {
+ interactionFunctions.forEach((f3) => {
+ f3();
+ });
+ interactionFunctions = [];
+ }, "attachFunctions");
+
+ // src/mermaidAPI.ts
+ init_logger();
+
+ // src/diagram-api/comments.ts
+ var cleanupComments = /* @__PURE__ */ __name((text2) => {
+ return text2.replace(/^\s*%%(?!{)[^\n]+\n?/gm, "").trimStart();
+ }, "cleanupComments");
+
+ // src/diagram-api/frontmatter.ts
+ init_regexes();
+
+ // ../../node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/dist/js-yaml.mjs
+ function isNothing(subject) {
+ return typeof subject === "undefined" || subject === null;
+ }
+ __name(isNothing, "isNothing");
+ function isObject3(subject) {
+ return typeof subject === "object" && subject !== null;
+ }
+ __name(isObject3, "isObject");
+ function toArray2(sequence) {
+ if (Array.isArray(sequence)) return sequence;
+ else if (isNothing(sequence)) return [];
+ return [sequence];
+ }
+ __name(toArray2, "toArray");
+ function extend3(target, source) {
+ var index, length2, key, sourceKeys;
+ if (source) {
+ sourceKeys = Object.keys(source);
+ for (index = 0, length2 = sourceKeys.length; index < length2; index += 1) {
+ key = sourceKeys[index];
+ target[key] = source[key];
+ }
+ }
+ return target;
+ }
+ __name(extend3, "extend");
+ function repeat(string3, count) {
+ var result = "", cycle;
+ for (cycle = 0; cycle < count; cycle += 1) {
+ result += string3;
+ }
+ return result;
+ }
+ __name(repeat, "repeat");
+ function isNegativeZero(number7) {
+ return number7 === 0 && Number.NEGATIVE_INFINITY === 1 / number7;
+ }
+ __name(isNegativeZero, "isNegativeZero");
+ var isNothing_1 = isNothing;
+ var isObject_12 = isObject3;
+ var toArray_1 = toArray2;
+ var repeat_1 = repeat;
+ var isNegativeZero_1 = isNegativeZero;
+ var extend_1 = extend3;
+ var common = {
+ isNothing: isNothing_1,
+ isObject: isObject_12,
+ toArray: toArray_1,
+ repeat: repeat_1,
+ isNegativeZero: isNegativeZero_1,
+ extend: extend_1
+ };
+ function formatError(exception2, compact2) {
+ var where = "", message = exception2.reason || "(unknown reason)";
+ if (!exception2.mark) return message;
+ if (exception2.mark.name) {
+ where += 'in "' + exception2.mark.name + '" ';
+ }
+ where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")";
+ if (!compact2 && exception2.mark.snippet) {
+ where += "\n\n" + exception2.mark.snippet;
+ }
+ return message + " " + where;
+ }
+ __name(formatError, "formatError");
+ function YAMLException$1(reason, mark) {
+ Error.call(this);
+ this.name = "YAMLException";
+ this.reason = reason;
+ this.mark = mark;
+ this.message = formatError(this, false);
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, this.constructor);
+ } else {
+ this.stack = new Error().stack || "";
+ }
+ }
+ __name(YAMLException$1, "YAMLException$1");
+ YAMLException$1.prototype = Object.create(Error.prototype);
+ YAMLException$1.prototype.constructor = YAMLException$1;
+ YAMLException$1.prototype.toString = /* @__PURE__ */ __name(function toString5(compact2) {
+ return this.name + ": " + formatError(this, compact2);
+ }, "toString");
+ var exception = YAMLException$1;
+ function getLine(buffer, lineStart, lineEnd, position5, maxLineLength) {
+ var head2 = "";
+ var tail = "";
+ var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
+ if (position5 - lineStart > maxHalfLength) {
+ head2 = " ... ";
+ lineStart = position5 - maxHalfLength + head2.length;
+ }
+ if (lineEnd - position5 > maxHalfLength) {
+ tail = " ...";
+ lineEnd = position5 + maxHalfLength - tail.length;
+ }
+ return {
+ str: head2 + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail,
+ pos: position5 - lineStart + head2.length
+ // relative position
+ };
+ }
+ __name(getLine, "getLine");
+ function padStart(string3, max10) {
+ return common.repeat(" ", max10 - string3.length) + string3;
+ }
+ __name(padStart, "padStart");
+ function makeSnippet(mark, options3) {
+ options3 = Object.create(options3 || null);
+ if (!mark.buffer) return null;
+ if (!options3.maxLength) options3.maxLength = 79;
+ if (typeof options3.indent !== "number") options3.indent = 1;
+ if (typeof options3.linesBefore !== "number") options3.linesBefore = 3;
+ if (typeof options3.linesAfter !== "number") options3.linesAfter = 2;
+ var re2 = /\r?\n|\r|\0/g;
+ var lineStarts = [0];
+ var lineEnds = [];
+ var match2;
+ var foundLineNo = -1;
+ while (match2 = re2.exec(mark.buffer)) {
+ lineEnds.push(match2.index);
+ lineStarts.push(match2.index + match2[0].length);
+ if (mark.position <= match2.index && foundLineNo < 0) {
+ foundLineNo = lineStarts.length - 2;
+ }
+ }
+ if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;
+ var result = "", i2, line2;
+ var lineNoLength = Math.min(mark.line + options3.linesAfter, lineEnds.length).toString().length;
+ var maxLineLength = options3.maxLength - (options3.indent + lineNoLength + 3);
+ for (i2 = 1; i2 <= options3.linesBefore; i2++) {
+ if (foundLineNo - i2 < 0) break;
+ line2 = getLine(
+ mark.buffer,
+ lineStarts[foundLineNo - i2],
+ lineEnds[foundLineNo - i2],
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i2]),
+ maxLineLength
+ );
+ result = common.repeat(" ", options3.indent) + padStart((mark.line - i2 + 1).toString(), lineNoLength) + " | " + line2.str + "\n" + result;
+ }
+ line2 = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
+ result += common.repeat(" ", options3.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line2.str + "\n";
+ result += common.repeat("-", options3.indent + lineNoLength + 3 + line2.pos) + "^\n";
+ for (i2 = 1; i2 <= options3.linesAfter; i2++) {
+ if (foundLineNo + i2 >= lineEnds.length) break;
+ line2 = getLine(
+ mark.buffer,
+ lineStarts[foundLineNo + i2],
+ lineEnds[foundLineNo + i2],
+ mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i2]),
+ maxLineLength
+ );
+ result += common.repeat(" ", options3.indent) + padStart((mark.line + i2 + 1).toString(), lineNoLength) + " | " + line2.str + "\n";
+ }
+ return result.replace(/\n$/, "");
+ }
+ __name(makeSnippet, "makeSnippet");
+ var snippet = makeSnippet;
+ var TYPE_CONSTRUCTOR_OPTIONS = [
+ "kind",
+ "multi",
+ "resolve",
+ "construct",
+ "instanceOf",
+ "predicate",
+ "represent",
+ "representName",
+ "defaultStyle",
+ "styleAliases"
+ ];
+ var YAML_NODE_KINDS = [
+ "scalar",
+ "sequence",
+ "mapping"
+ ];
+ function compileStyleAliases(map5) {
+ var result = {};
+ if (map5 !== null) {
+ Object.keys(map5).forEach(function(style3) {
+ map5[style3].forEach(function(alias) {
+ result[String(alias)] = style3;
+ });
+ });
+ }
+ return result;
+ }
+ __name(compileStyleAliases, "compileStyleAliases");
+ function Type$1(tag2, options3) {
+ options3 = options3 || {};
+ Object.keys(options3).forEach(function(name) {
+ if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
+ throw new exception('Unknown option "' + name + '" is met in definition of "' + tag2 + '" YAML type.');
+ }
+ });
+ this.options = options3;
+ this.tag = tag2;
+ this.kind = options3["kind"] || null;
+ this.resolve = options3["resolve"] || function() {
+ return true;
+ };
+ this.construct = options3["construct"] || function(data5) {
+ return data5;
+ };
+ this.instanceOf = options3["instanceOf"] || null;
+ this.predicate = options3["predicate"] || null;
+ this.represent = options3["represent"] || null;
+ this.representName = options3["representName"] || null;
+ this.defaultStyle = options3["defaultStyle"] || null;
+ this.multi = options3["multi"] || false;
+ this.styleAliases = compileStyleAliases(options3["styleAliases"] || null);
+ if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
+ throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag2 + '" YAML type.');
+ }
+ }
+ __name(Type$1, "Type$1");
+ var type2 = Type$1;
+ function compileList(schema2, name) {
+ var result = [];
+ schema2[name].forEach(function(currentType) {
+ var newIndex = result.length;
+ result.forEach(function(previousType, previousIndex) {
+ if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
+ newIndex = previousIndex;
+ }
+ });
+ result[newIndex] = currentType;
+ });
+ return result;
+ }
+ __name(compileList, "compileList");
+ function compileMap() {
+ var result = {
+ scalar: {},
+ sequence: {},
+ mapping: {},
+ fallback: {},
+ multi: {
+ scalar: [],
+ sequence: [],
+ mapping: [],
+ fallback: []
+ }
+ }, index, length2;
+ function collectType(type3) {
+ if (type3.multi) {
+ result.multi[type3.kind].push(type3);
+ result.multi["fallback"].push(type3);
+ } else {
+ result[type3.kind][type3.tag] = result["fallback"][type3.tag] = type3;
+ }
+ }
+ __name(collectType, "collectType");
+ for (index = 0, length2 = arguments.length; index < length2; index += 1) {
+ arguments[index].forEach(collectType);
+ }
+ return result;
+ }
+ __name(compileMap, "compileMap");
+ function Schema$1(definition) {
+ return this.extend(definition);
+ }
+ __name(Schema$1, "Schema$1");
+ Schema$1.prototype.extend = /* @__PURE__ */ __name(function extend4(definition) {
+ var implicit2 = [];
+ var explicit = [];
+ if (definition instanceof type2) {
+ explicit.push(definition);
+ } else if (Array.isArray(definition)) {
+ explicit = explicit.concat(definition);
+ } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
+ if (definition.implicit) implicit2 = implicit2.concat(definition.implicit);
+ if (definition.explicit) explicit = explicit.concat(definition.explicit);
+ } else {
+ throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
+ }
+ implicit2.forEach(function(type$1) {
+ if (!(type$1 instanceof type2)) {
+ throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ }
+ if (type$1.loadKind && type$1.loadKind !== "scalar") {
+ throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
+ }
+ if (type$1.multi) {
+ throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
+ }
+ });
+ explicit.forEach(function(type$1) {
+ if (!(type$1 instanceof type2)) {
+ throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
+ }
+ });
+ var result = Object.create(Schema$1.prototype);
+ result.implicit = (this.implicit || []).concat(implicit2);
+ result.explicit = (this.explicit || []).concat(explicit);
+ result.compiledImplicit = compileList(result, "implicit");
+ result.compiledExplicit = compileList(result, "explicit");
+ result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
+ return result;
+ }, "extend");
+ var schema = Schema$1;
+ var str = new type2("tag:yaml.org,2002:str", {
+ kind: "scalar",
+ construct: /* @__PURE__ */ __name(function(data5) {
+ return data5 !== null ? data5 : "";
+ }, "construct")
+ });
+ var seq = new type2("tag:yaml.org,2002:seq", {
+ kind: "sequence",
+ construct: /* @__PURE__ */ __name(function(data5) {
+ return data5 !== null ? data5 : [];
+ }, "construct")
+ });
+ var map4 = new type2("tag:yaml.org,2002:map", {
+ kind: "mapping",
+ construct: /* @__PURE__ */ __name(function(data5) {
+ return data5 !== null ? data5 : {};
+ }, "construct")
+ });
+ var failsafe = new schema({
+ explicit: [
+ str,
+ seq,
+ map4
+ ]
+ });
+ function resolveYamlNull(data5) {
+ if (data5 === null) return true;
+ var max10 = data5.length;
+ return max10 === 1 && data5 === "~" || max10 === 4 && (data5 === "null" || data5 === "Null" || data5 === "NULL");
+ }
+ __name(resolveYamlNull, "resolveYamlNull");
+ function constructYamlNull() {
+ return null;
+ }
+ __name(constructYamlNull, "constructYamlNull");
+ function isNull(object3) {
+ return object3 === null;
+ }
+ __name(isNull, "isNull");
+ var _null = new type2("tag:yaml.org,2002:null", {
+ kind: "scalar",
+ resolve: resolveYamlNull,
+ construct: constructYamlNull,
+ predicate: isNull,
+ represent: {
+ canonical: /* @__PURE__ */ __name(function() {
+ return "~";
+ }, "canonical"),
+ lowercase: /* @__PURE__ */ __name(function() {
+ return "null";
+ }, "lowercase"),
+ uppercase: /* @__PURE__ */ __name(function() {
+ return "NULL";
+ }, "uppercase"),
+ camelcase: /* @__PURE__ */ __name(function() {
+ return "Null";
+ }, "camelcase"),
+ empty: /* @__PURE__ */ __name(function() {
+ return "";
+ }, "empty")
+ },
+ defaultStyle: "lowercase"
+ });
+ function resolveYamlBoolean(data5) {
+ if (data5 === null) return false;
+ var max10 = data5.length;
+ return max10 === 4 && (data5 === "true" || data5 === "True" || data5 === "TRUE") || max10 === 5 && (data5 === "false" || data5 === "False" || data5 === "FALSE");
+ }
+ __name(resolveYamlBoolean, "resolveYamlBoolean");
+ function constructYamlBoolean(data5) {
+ return data5 === "true" || data5 === "True" || data5 === "TRUE";
+ }
+ __name(constructYamlBoolean, "constructYamlBoolean");
+ function isBoolean(object3) {
+ return Object.prototype.toString.call(object3) === "[object Boolean]";
+ }
+ __name(isBoolean, "isBoolean");
+ var bool = new type2("tag:yaml.org,2002:bool", {
+ kind: "scalar",
+ resolve: resolveYamlBoolean,
+ construct: constructYamlBoolean,
+ predicate: isBoolean,
+ represent: {
+ lowercase: /* @__PURE__ */ __name(function(object3) {
+ return object3 ? "true" : "false";
+ }, "lowercase"),
+ uppercase: /* @__PURE__ */ __name(function(object3) {
+ return object3 ? "TRUE" : "FALSE";
+ }, "uppercase"),
+ camelcase: /* @__PURE__ */ __name(function(object3) {
+ return object3 ? "True" : "False";
+ }, "camelcase")
+ },
+ defaultStyle: "lowercase"
+ });
+ function isHexCode(c3) {
+ return 48 <= c3 && c3 <= 57 || 65 <= c3 && c3 <= 70 || 97 <= c3 && c3 <= 102;
+ }
+ __name(isHexCode, "isHexCode");
+ function isOctCode(c3) {
+ return 48 <= c3 && c3 <= 55;
+ }
+ __name(isOctCode, "isOctCode");
+ function isDecCode(c3) {
+ return 48 <= c3 && c3 <= 57;
+ }
+ __name(isDecCode, "isDecCode");
+ function resolveYamlInteger(data5) {
+ if (data5 === null) return false;
+ var max10 = data5.length, index = 0, hasDigits = false, ch;
+ if (!max10) return false;
+ ch = data5[index];
+ if (ch === "-" || ch === "+") {
+ ch = data5[++index];
+ }
+ if (ch === "0") {
+ if (index + 1 === max10) return true;
+ ch = data5[++index];
+ if (ch === "b") {
+ index++;
+ for (; index < max10; index++) {
+ ch = data5[index];
+ if (ch === "_") continue;
+ if (ch !== "0" && ch !== "1") return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ if (ch === "x") {
+ index++;
+ for (; index < max10; index++) {
+ ch = data5[index];
+ if (ch === "_") continue;
+ if (!isHexCode(data5.charCodeAt(index))) return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ if (ch === "o") {
+ index++;
+ for (; index < max10; index++) {
+ ch = data5[index];
+ if (ch === "_") continue;
+ if (!isOctCode(data5.charCodeAt(index))) return false;
+ hasDigits = true;
+ }
+ return hasDigits && ch !== "_";
+ }
+ }
+ if (ch === "_") return false;
+ for (; index < max10; index++) {
+ ch = data5[index];
+ if (ch === "_") continue;
+ if (!isDecCode(data5.charCodeAt(index))) {
+ return false;
+ }
+ hasDigits = true;
+ }
+ if (!hasDigits || ch === "_") return false;
+ return true;
+ }
+ __name(resolveYamlInteger, "resolveYamlInteger");
+ function constructYamlInteger(data5) {
+ var value2 = data5, sign2 = 1, ch;
+ if (value2.indexOf("_") !== -1) {
+ value2 = value2.replace(/_/g, "");
+ }
+ ch = value2[0];
+ if (ch === "-" || ch === "+") {
+ if (ch === "-") sign2 = -1;
+ value2 = value2.slice(1);
+ ch = value2[0];
+ }
+ if (value2 === "0") return 0;
+ if (ch === "0") {
+ if (value2[1] === "b") return sign2 * parseInt(value2.slice(2), 2);
+ if (value2[1] === "x") return sign2 * parseInt(value2.slice(2), 16);
+ if (value2[1] === "o") return sign2 * parseInt(value2.slice(2), 8);
+ }
+ return sign2 * parseInt(value2, 10);
+ }
+ __name(constructYamlInteger, "constructYamlInteger");
+ function isInteger(object3) {
+ return Object.prototype.toString.call(object3) === "[object Number]" && (object3 % 1 === 0 && !common.isNegativeZero(object3));
+ }
+ __name(isInteger, "isInteger");
+ var int = new type2("tag:yaml.org,2002:int", {
+ kind: "scalar",
+ resolve: resolveYamlInteger,
+ construct: constructYamlInteger,
+ predicate: isInteger,
+ represent: {
+ binary: /* @__PURE__ */ __name(function(obj) {
+ return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
+ }, "binary"),
+ octal: /* @__PURE__ */ __name(function(obj) {
+ return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
+ }, "octal"),
+ decimal: /* @__PURE__ */ __name(function(obj) {
+ return obj.toString(10);
+ }, "decimal"),
+ /* eslint-disable max-len */
+ hexadecimal: /* @__PURE__ */ __name(function(obj) {
+ return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
+ }, "hexadecimal")
+ },
+ defaultStyle: "decimal",
+ styleAliases: {
+ binary: [2, "bin"],
+ octal: [8, "oct"],
+ decimal: [10, "dec"],
+ hexadecimal: [16, "hex"]
+ }
+ });
+ var YAML_FLOAT_PATTERN = new RegExp(
+ // 2.5e4, 2.5 and integers
+ "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
+ );
+ function resolveYamlFloat(data5) {
+ if (data5 === null) return false;
+ if (!YAML_FLOAT_PATTERN.test(data5) || // Quick hack to not allow integers end with `_`
+ // Probably should update regexp & check speed
+ data5[data5.length - 1] === "_") {
+ return false;
+ }
+ return true;
+ }
+ __name(resolveYamlFloat, "resolveYamlFloat");
+ function constructYamlFloat(data5) {
+ var value2, sign2;
+ value2 = data5.replace(/_/g, "").toLowerCase();
+ sign2 = value2[0] === "-" ? -1 : 1;
+ if ("+-".indexOf(value2[0]) >= 0) {
+ value2 = value2.slice(1);
+ }
+ if (value2 === ".inf") {
+ return sign2 === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
+ } else if (value2 === ".nan") {
+ return NaN;
+ }
+ return sign2 * parseFloat(value2, 10);
+ }
+ __name(constructYamlFloat, "constructYamlFloat");
+ var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
+ function representYamlFloat(object3, style3) {
+ var res;
+ if (isNaN(object3)) {
+ switch (style3) {
+ case "lowercase":
+ return ".nan";
+ case "uppercase":
+ return ".NAN";
+ case "camelcase":
+ return ".NaN";
+ }
+ } else if (Number.POSITIVE_INFINITY === object3) {
+ switch (style3) {
+ case "lowercase":
+ return ".inf";
+ case "uppercase":
+ return ".INF";
+ case "camelcase":
+ return ".Inf";
+ }
+ } else if (Number.NEGATIVE_INFINITY === object3) {
+ switch (style3) {
+ case "lowercase":
+ return "-.inf";
+ case "uppercase":
+ return "-.INF";
+ case "camelcase":
+ return "-.Inf";
+ }
+ } else if (common.isNegativeZero(object3)) {
+ return "-0.0";
+ }
+ res = object3.toString(10);
+ return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
+ }
+ __name(representYamlFloat, "representYamlFloat");
+ function isFloat(object3) {
+ return Object.prototype.toString.call(object3) === "[object Number]" && (object3 % 1 !== 0 || common.isNegativeZero(object3));
+ }
+ __name(isFloat, "isFloat");
+ var float = new type2("tag:yaml.org,2002:float", {
+ kind: "scalar",
+ resolve: resolveYamlFloat,
+ construct: constructYamlFloat,
+ predicate: isFloat,
+ represent: representYamlFloat,
+ defaultStyle: "lowercase"
+ });
+ var json2 = failsafe.extend({
+ implicit: [
+ _null,
+ bool,
+ int,
+ float
+ ]
+ });
+ var core3 = json2;
+ var YAML_DATE_REGEXP = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
+ );
+ var YAML_TIMESTAMP_REGEXP = new RegExp(
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
+ );
+ function resolveYamlTimestamp(data5) {
+ if (data5 === null) return false;
+ if (YAML_DATE_REGEXP.exec(data5) !== null) return true;
+ if (YAML_TIMESTAMP_REGEXP.exec(data5) !== null) return true;
+ return false;
+ }
+ __name(resolveYamlTimestamp, "resolveYamlTimestamp");
+ function constructYamlTimestamp(data5) {
+ var match2, year, month, day, hour, minute, second2, fraction = 0, delta = null, tz_hour, tz_minute, date2;
+ match2 = YAML_DATE_REGEXP.exec(data5);
+ if (match2 === null) match2 = YAML_TIMESTAMP_REGEXP.exec(data5);
+ if (match2 === null) throw new Error("Date resolve error");
+ year = +match2[1];
+ month = +match2[2] - 1;
+ day = +match2[3];
+ if (!match2[4]) {
+ return new Date(Date.UTC(year, month, day));
+ }
+ hour = +match2[4];
+ minute = +match2[5];
+ second2 = +match2[6];
+ if (match2[7]) {
+ fraction = match2[7].slice(0, 3);
+ while (fraction.length < 3) {
+ fraction += "0";
+ }
+ fraction = +fraction;
+ }
+ if (match2[9]) {
+ tz_hour = +match2[10];
+ tz_minute = +(match2[11] || 0);
+ delta = (tz_hour * 60 + tz_minute) * 6e4;
+ if (match2[9] === "-") delta = -delta;
+ }
+ date2 = new Date(Date.UTC(year, month, day, hour, minute, second2, fraction));
+ if (delta) date2.setTime(date2.getTime() - delta);
+ return date2;
+ }
+ __name(constructYamlTimestamp, "constructYamlTimestamp");
+ function representYamlTimestamp(object3) {
+ return object3.toISOString();
+ }
+ __name(representYamlTimestamp, "representYamlTimestamp");
+ var timestamp = new type2("tag:yaml.org,2002:timestamp", {
+ kind: "scalar",
+ resolve: resolveYamlTimestamp,
+ construct: constructYamlTimestamp,
+ instanceOf: Date,
+ represent: representYamlTimestamp
+ });
+ function resolveYamlMerge(data5) {
+ return data5 === "<<" || data5 === null;
+ }
+ __name(resolveYamlMerge, "resolveYamlMerge");
+ var merge4 = new type2("tag:yaml.org,2002:merge", {
+ kind: "scalar",
+ resolve: resolveYamlMerge
+ });
+ var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
+ function resolveYamlBinary(data5) {
+ if (data5 === null) return false;
+ var code, idx, bitlen = 0, max10 = data5.length, map5 = BASE64_MAP;
+ for (idx = 0; idx < max10; idx++) {
+ code = map5.indexOf(data5.charAt(idx));
+ if (code > 64) continue;
+ if (code < 0) return false;
+ bitlen += 6;
+ }
+ return bitlen % 8 === 0;
+ }
+ __name(resolveYamlBinary, "resolveYamlBinary");
+ function constructYamlBinary(data5) {
+ var idx, tailbits, input = data5.replace(/[\r\n=]/g, ""), max10 = input.length, map5 = BASE64_MAP, bits = 0, result = [];
+ for (idx = 0; idx < max10; idx++) {
+ if (idx % 4 === 0 && idx) {
+ result.push(bits >> 16 & 255);
+ result.push(bits >> 8 & 255);
+ result.push(bits & 255);
+ }
+ bits = bits << 6 | map5.indexOf(input.charAt(idx));
+ }
+ tailbits = max10 % 4 * 6;
+ if (tailbits === 0) {
+ result.push(bits >> 16 & 255);
+ result.push(bits >> 8 & 255);
+ result.push(bits & 255);
+ } else if (tailbits === 18) {
+ result.push(bits >> 10 & 255);
+ result.push(bits >> 2 & 255);
+ } else if (tailbits === 12) {
+ result.push(bits >> 4 & 255);
+ }
+ return new Uint8Array(result);
+ }
+ __name(constructYamlBinary, "constructYamlBinary");
+ function representYamlBinary(object3) {
+ var result = "", bits = 0, idx, tail, max10 = object3.length, map5 = BASE64_MAP;
+ for (idx = 0; idx < max10; idx++) {
+ if (idx % 3 === 0 && idx) {
+ result += map5[bits >> 18 & 63];
+ result += map5[bits >> 12 & 63];
+ result += map5[bits >> 6 & 63];
+ result += map5[bits & 63];
+ }
+ bits = (bits << 8) + object3[idx];
+ }
+ tail = max10 % 3;
+ if (tail === 0) {
+ result += map5[bits >> 18 & 63];
+ result += map5[bits >> 12 & 63];
+ result += map5[bits >> 6 & 63];
+ result += map5[bits & 63];
+ } else if (tail === 2) {
+ result += map5[bits >> 10 & 63];
+ result += map5[bits >> 4 & 63];
+ result += map5[bits << 2 & 63];
+ result += map5[64];
+ } else if (tail === 1) {
+ result += map5[bits >> 2 & 63];
+ result += map5[bits << 4 & 63];
+ result += map5[64];
+ result += map5[64];
+ }
+ return result;
+ }
+ __name(representYamlBinary, "representYamlBinary");
+ function isBinary(obj) {
+ return Object.prototype.toString.call(obj) === "[object Uint8Array]";
+ }
+ __name(isBinary, "isBinary");
+ var binary = new type2("tag:yaml.org,2002:binary", {
+ kind: "scalar",
+ resolve: resolveYamlBinary,
+ construct: constructYamlBinary,
+ predicate: isBinary,
+ represent: representYamlBinary
+ });
+ var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
+ var _toString$2 = Object.prototype.toString;
+ function resolveYamlOmap(data5) {
+ if (data5 === null) return true;
+ var objectKeys = [], index, length2, pair, pairKey, pairHasKey, object3 = data5;
+ for (index = 0, length2 = object3.length; index < length2; index += 1) {
+ pair = object3[index];
+ pairHasKey = false;
+ if (_toString$2.call(pair) !== "[object Object]") return false;
+ for (pairKey in pair) {
+ if (_hasOwnProperty$3.call(pair, pairKey)) {
+ if (!pairHasKey) pairHasKey = true;
+ else return false;
+ }
+ }
+ if (!pairHasKey) return false;
+ if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);
+ else return false;
+ }
+ return true;
+ }
+ __name(resolveYamlOmap, "resolveYamlOmap");
+ function constructYamlOmap(data5) {
+ return data5 !== null ? data5 : [];
+ }
+ __name(constructYamlOmap, "constructYamlOmap");
+ var omap = new type2("tag:yaml.org,2002:omap", {
+ kind: "sequence",
+ resolve: resolveYamlOmap,
+ construct: constructYamlOmap
+ });
+ var _toString$1 = Object.prototype.toString;
+ function resolveYamlPairs(data5) {
+ if (data5 === null) return true;
+ var index, length2, pair, keys3, result, object3 = data5;
+ result = new Array(object3.length);
+ for (index = 0, length2 = object3.length; index < length2; index += 1) {
+ pair = object3[index];
+ if (_toString$1.call(pair) !== "[object Object]") return false;
+ keys3 = Object.keys(pair);
+ if (keys3.length !== 1) return false;
+ result[index] = [keys3[0], pair[keys3[0]]];
+ }
+ return true;
+ }
+ __name(resolveYamlPairs, "resolveYamlPairs");
+ function constructYamlPairs(data5) {
+ if (data5 === null) return [];
+ var index, length2, pair, keys3, result, object3 = data5;
+ result = new Array(object3.length);
+ for (index = 0, length2 = object3.length; index < length2; index += 1) {
+ pair = object3[index];
+ keys3 = Object.keys(pair);
+ result[index] = [keys3[0], pair[keys3[0]]];
+ }
+ return result;
+ }
+ __name(constructYamlPairs, "constructYamlPairs");
+ var pairs = new type2("tag:yaml.org,2002:pairs", {
+ kind: "sequence",
+ resolve: resolveYamlPairs,
+ construct: constructYamlPairs
+ });
+ var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;
+ function resolveYamlSet(data5) {
+ if (data5 === null) return true;
+ var key, object3 = data5;
+ for (key in object3) {
+ if (_hasOwnProperty$2.call(object3, key)) {
+ if (object3[key] !== null) return false;
+ }
+ }
+ return true;
+ }
+ __name(resolveYamlSet, "resolveYamlSet");
+ function constructYamlSet(data5) {
+ return data5 !== null ? data5 : {};
+ }
+ __name(constructYamlSet, "constructYamlSet");
+ var set5 = new type2("tag:yaml.org,2002:set", {
+ kind: "mapping",
+ resolve: resolveYamlSet,
+ construct: constructYamlSet
+ });
+ var _default = core3.extend({
+ implicit: [
+ timestamp,
+ merge4
+ ],
+ explicit: [
+ binary,
+ omap,
+ pairs,
+ set5
+ ]
+ });
+ var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;
+ var CONTEXT_FLOW_IN = 1;
+ var CONTEXT_FLOW_OUT = 2;
+ var CONTEXT_BLOCK_IN = 3;
+ var CONTEXT_BLOCK_OUT = 4;
+ var CHOMPING_CLIP = 1;
+ var CHOMPING_STRIP = 2;
+ var CHOMPING_KEEP = 3;
+ var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+ var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
+ var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
+ var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
+ var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
+ function _class(obj) {
+ return Object.prototype.toString.call(obj);
+ }
+ __name(_class, "_class");
+ function is_EOL(c3) {
+ return c3 === 10 || c3 === 13;
+ }
+ __name(is_EOL, "is_EOL");
+ function is_WHITE_SPACE(c3) {
+ return c3 === 9 || c3 === 32;
+ }
+ __name(is_WHITE_SPACE, "is_WHITE_SPACE");
+ function is_WS_OR_EOL(c3) {
+ return c3 === 9 || c3 === 32 || c3 === 10 || c3 === 13;
+ }
+ __name(is_WS_OR_EOL, "is_WS_OR_EOL");
+ function is_FLOW_INDICATOR(c3) {
+ return c3 === 44 || c3 === 91 || c3 === 93 || c3 === 123 || c3 === 125;
+ }
+ __name(is_FLOW_INDICATOR, "is_FLOW_INDICATOR");
+ function fromHexCode(c3) {
+ var lc;
+ if (48 <= c3 && c3 <= 57) {
+ return c3 - 48;
+ }
+ lc = c3 | 32;
+ if (97 <= lc && lc <= 102) {
+ return lc - 97 + 10;
+ }
+ return -1;
+ }
+ __name(fromHexCode, "fromHexCode");
+ function escapedHexLen(c3) {
+ if (c3 === 120) {
+ return 2;
+ }
+ if (c3 === 117) {
+ return 4;
+ }
+ if (c3 === 85) {
+ return 8;
+ }
+ return 0;
+ }
+ __name(escapedHexLen, "escapedHexLen");
+ function fromDecimalCode(c3) {
+ if (48 <= c3 && c3 <= 57) {
+ return c3 - 48;
+ }
+ return -1;
+ }
+ __name(fromDecimalCode, "fromDecimalCode");
+ function simpleEscapeSequence(c3) {
+ return c3 === 48 ? "\0" : c3 === 97 ? "\x07" : c3 === 98 ? "\b" : c3 === 116 ? " " : c3 === 9 ? " " : c3 === 110 ? "\n" : c3 === 118 ? "\v" : c3 === 102 ? "\f" : c3 === 114 ? "\r" : c3 === 101 ? "\x1B" : c3 === 32 ? " " : c3 === 34 ? '"' : c3 === 47 ? "/" : c3 === 92 ? "\\" : c3 === 78 ? "\x85" : c3 === 95 ? "\xA0" : c3 === 76 ? "\u2028" : c3 === 80 ? "\u2029" : "";
+ }
+ __name(simpleEscapeSequence, "simpleEscapeSequence");
+ function charFromCodepoint(c3) {
+ if (c3 <= 65535) {
+ return String.fromCharCode(c3);
+ }
+ return String.fromCharCode(
+ (c3 - 65536 >> 10) + 55296,
+ (c3 - 65536 & 1023) + 56320
+ );
+ }
+ __name(charFromCodepoint, "charFromCodepoint");
+ var simpleEscapeCheck = new Array(256);
+ var simpleEscapeMap = new Array(256);
+ for (i2 = 0; i2 < 256; i2++) {
+ simpleEscapeCheck[i2] = simpleEscapeSequence(i2) ? 1 : 0;
+ simpleEscapeMap[i2] = simpleEscapeSequence(i2);
+ }
+ var i2;
+ function State$1(input, options3) {
+ this.input = input;
+ this.filename = options3["filename"] || null;
+ this.schema = options3["schema"] || _default;
+ this.onWarning = options3["onWarning"] || null;
+ this.legacy = options3["legacy"] || false;
+ this.json = options3["json"] || false;
+ this.listener = options3["listener"] || null;
+ this.implicitTypes = this.schema.compiledImplicit;
+ this.typeMap = this.schema.compiledTypeMap;
+ this.length = input.length;
+ this.position = 0;
+ this.line = 0;
+ this.lineStart = 0;
+ this.lineIndent = 0;
+ this.firstTabInLine = -1;
+ this.documents = [];
+ }
+ __name(State$1, "State$1");
+ function generateError(state5, message) {
+ var mark = {
+ name: state5.filename,
+ buffer: state5.input.slice(0, -1),
+ // omit trailing \0
+ position: state5.position,
+ line: state5.line,
+ column: state5.position - state5.lineStart
+ };
+ mark.snippet = snippet(mark);
+ return new exception(message, mark);
+ }
+ __name(generateError, "generateError");
+ function throwError(state5, message) {
+ throw generateError(state5, message);
+ }
+ __name(throwError, "throwError");
+ function throwWarning(state5, message) {
+ if (state5.onWarning) {
+ state5.onWarning.call(null, generateError(state5, message));
+ }
+ }
+ __name(throwWarning, "throwWarning");
+ var directiveHandlers = {
+ YAML: /* @__PURE__ */ __name(function handleYamlDirective(state5, name, args) {
+ var match2, major, minor;
+ if (state5.version !== null) {
+ throwError(state5, "duplication of %YAML directive");
+ }
+ if (args.length !== 1) {
+ throwError(state5, "YAML directive accepts exactly one argument");
+ }
+ match2 = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
+ if (match2 === null) {
+ throwError(state5, "ill-formed argument of the YAML directive");
+ }
+ major = parseInt(match2[1], 10);
+ minor = parseInt(match2[2], 10);
+ if (major !== 1) {
+ throwError(state5, "unacceptable YAML version of the document");
+ }
+ state5.version = args[0];
+ state5.checkLineBreaks = minor < 2;
+ if (minor !== 1 && minor !== 2) {
+ throwWarning(state5, "unsupported YAML version of the document");
+ }
+ }, "handleYamlDirective"),
+ TAG: /* @__PURE__ */ __name(function handleTagDirective(state5, name, args) {
+ var handle, prefix;
+ if (args.length !== 2) {
+ throwError(state5, "TAG directive accepts exactly two arguments");
+ }
+ handle = args[0];
+ prefix = args[1];
+ if (!PATTERN_TAG_HANDLE.test(handle)) {
+ throwError(state5, "ill-formed tag handle (first argument) of the TAG directive");
+ }
+ if (_hasOwnProperty$1.call(state5.tagMap, handle)) {
+ throwError(state5, 'there is a previously declared suffix for "' + handle + '" tag handle');
+ }
+ if (!PATTERN_TAG_URI.test(prefix)) {
+ throwError(state5, "ill-formed tag prefix (second argument) of the TAG directive");
+ }
+ try {
+ prefix = decodeURIComponent(prefix);
+ } catch (err) {
+ throwError(state5, "tag prefix is malformed: " + prefix);
+ }
+ state5.tagMap[handle] = prefix;
+ }, "handleTagDirective")
+ };
+ function captureSegment(state5, start3, end2, checkJson) {
+ var _position, _length, _character, _result;
+ if (start3 < end2) {
+ _result = state5.input.slice(start3, end2);
+ if (checkJson) {
+ for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
+ _character = _result.charCodeAt(_position);
+ if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
+ throwError(state5, "expected valid JSON character");
+ }
+ }
+ } else if (PATTERN_NON_PRINTABLE.test(_result)) {
+ throwError(state5, "the stream contains non-printable characters");
+ }
+ state5.result += _result;
+ }
+ }
+ __name(captureSegment, "captureSegment");
+ function mergeMappings(state5, destination, source, overridableKeys) {
+ var sourceKeys, key, index, quantity;
+ if (!common.isObject(source)) {
+ throwError(state5, "cannot merge mappings; the provided source object is unacceptable");
+ }
+ sourceKeys = Object.keys(source);
+ for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
+ key = sourceKeys[index];
+ if (!_hasOwnProperty$1.call(destination, key)) {
+ destination[key] = source[key];
+ overridableKeys[key] = true;
+ }
+ }
+ }
+ __name(mergeMappings, "mergeMappings");
+ function storeMappingPair(state5, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
+ var index, quantity;
+ if (Array.isArray(keyNode)) {
+ keyNode = Array.prototype.slice.call(keyNode);
+ for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
+ if (Array.isArray(keyNode[index])) {
+ throwError(state5, "nested arrays are not supported inside keys");
+ }
+ if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") {
+ keyNode[index] = "[object Object]";
+ }
+ }
+ }
+ if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
+ keyNode = "[object Object]";
+ }
+ keyNode = String(keyNode);
+ if (_result === null) {
+ _result = {};
+ }
+ if (keyTag === "tag:yaml.org,2002:merge") {
+ if (Array.isArray(valueNode)) {
+ for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
+ mergeMappings(state5, _result, valueNode[index], overridableKeys);
+ }
+ } else {
+ mergeMappings(state5, _result, valueNode, overridableKeys);
+ }
+ } else {
+ if (!state5.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {
+ state5.line = startLine || state5.line;
+ state5.lineStart = startLineStart || state5.lineStart;
+ state5.position = startPos || state5.position;
+ throwError(state5, "duplicated mapping key");
+ }
+ if (keyNode === "__proto__") {
+ Object.defineProperty(_result, keyNode, {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: valueNode
+ });
+ } else {
+ _result[keyNode] = valueNode;
+ }
+ delete overridableKeys[keyNode];
+ }
+ return _result;
+ }
+ __name(storeMappingPair, "storeMappingPair");
+ function readLineBreak(state5) {
+ var ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch === 10) {
+ state5.position++;
+ } else if (ch === 13) {
+ state5.position++;
+ if (state5.input.charCodeAt(state5.position) === 10) {
+ state5.position++;
+ }
+ } else {
+ throwError(state5, "a line break is expected");
+ }
+ state5.line += 1;
+ state5.lineStart = state5.position;
+ state5.firstTabInLine = -1;
+ }
+ __name(readLineBreak, "readLineBreak");
+ function skipSeparationSpace(state5, allowComments, checkIndent) {
+ var lineBreaks = 0, ch = state5.input.charCodeAt(state5.position);
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ if (ch === 9 && state5.firstTabInLine === -1) {
+ state5.firstTabInLine = state5.position;
+ }
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ if (allowComments && ch === 35) {
+ do {
+ ch = state5.input.charCodeAt(++state5.position);
+ } while (ch !== 10 && ch !== 13 && ch !== 0);
+ }
+ if (is_EOL(ch)) {
+ readLineBreak(state5);
+ ch = state5.input.charCodeAt(state5.position);
+ lineBreaks++;
+ state5.lineIndent = 0;
+ while (ch === 32) {
+ state5.lineIndent++;
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ } else {
+ break;
+ }
+ }
+ if (checkIndent !== -1 && lineBreaks !== 0 && state5.lineIndent < checkIndent) {
+ throwWarning(state5, "deficient indentation");
+ }
+ return lineBreaks;
+ }
+ __name(skipSeparationSpace, "skipSeparationSpace");
+ function testDocumentSeparator(state5) {
+ var _position = state5.position, ch;
+ ch = state5.input.charCodeAt(_position);
+ if ((ch === 45 || ch === 46) && ch === state5.input.charCodeAt(_position + 1) && ch === state5.input.charCodeAt(_position + 2)) {
+ _position += 3;
+ ch = state5.input.charCodeAt(_position);
+ if (ch === 0 || is_WS_OR_EOL(ch)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ __name(testDocumentSeparator, "testDocumentSeparator");
+ function writeFoldedLines(state5, count) {
+ if (count === 1) {
+ state5.result += " ";
+ } else if (count > 1) {
+ state5.result += common.repeat("\n", count - 1);
+ }
+ }
+ __name(writeFoldedLines, "writeFoldedLines");
+ function readPlainScalar(state5, nodeIndent, withinFlowCollection) {
+ var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state5.kind, _result = state5.result, ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
+ return false;
+ }
+ if (ch === 63 || ch === 45) {
+ following = state5.input.charCodeAt(state5.position + 1);
+ if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ return false;
+ }
+ }
+ state5.kind = "scalar";
+ state5.result = "";
+ captureStart = captureEnd = state5.position;
+ hasPendingContent = false;
+ while (ch !== 0) {
+ if (ch === 58) {
+ following = state5.input.charCodeAt(state5.position + 1);
+ if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
+ break;
+ }
+ } else if (ch === 35) {
+ preceding = state5.input.charCodeAt(state5.position - 1);
+ if (is_WS_OR_EOL(preceding)) {
+ break;
+ }
+ } else if (state5.position === state5.lineStart && testDocumentSeparator(state5) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
+ break;
+ } else if (is_EOL(ch)) {
+ _line = state5.line;
+ _lineStart = state5.lineStart;
+ _lineIndent = state5.lineIndent;
+ skipSeparationSpace(state5, false, -1);
+ if (state5.lineIndent >= nodeIndent) {
+ hasPendingContent = true;
+ ch = state5.input.charCodeAt(state5.position);
+ continue;
+ } else {
+ state5.position = captureEnd;
+ state5.line = _line;
+ state5.lineStart = _lineStart;
+ state5.lineIndent = _lineIndent;
+ break;
+ }
+ }
+ if (hasPendingContent) {
+ captureSegment(state5, captureStart, captureEnd, false);
+ writeFoldedLines(state5, state5.line - _line);
+ captureStart = captureEnd = state5.position;
+ hasPendingContent = false;
+ }
+ if (!is_WHITE_SPACE(ch)) {
+ captureEnd = state5.position + 1;
+ }
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ captureSegment(state5, captureStart, captureEnd, false);
+ if (state5.result) {
+ return true;
+ }
+ state5.kind = _kind;
+ state5.result = _result;
+ return false;
+ }
+ __name(readPlainScalar, "readPlainScalar");
+ function readSingleQuotedScalar(state5, nodeIndent) {
+ var ch, captureStart, captureEnd;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch !== 39) {
+ return false;
+ }
+ state5.kind = "scalar";
+ state5.result = "";
+ state5.position++;
+ captureStart = captureEnd = state5.position;
+ while ((ch = state5.input.charCodeAt(state5.position)) !== 0) {
+ if (ch === 39) {
+ captureSegment(state5, captureStart, state5.position, true);
+ ch = state5.input.charCodeAt(++state5.position);
+ if (ch === 39) {
+ captureStart = state5.position;
+ state5.position++;
+ captureEnd = state5.position;
+ } else {
+ return true;
+ }
+ } else if (is_EOL(ch)) {
+ captureSegment(state5, captureStart, captureEnd, true);
+ writeFoldedLines(state5, skipSeparationSpace(state5, false, nodeIndent));
+ captureStart = captureEnd = state5.position;
+ } else if (state5.position === state5.lineStart && testDocumentSeparator(state5)) {
+ throwError(state5, "unexpected end of the document within a single quoted scalar");
+ } else {
+ state5.position++;
+ captureEnd = state5.position;
+ }
+ }
+ throwError(state5, "unexpected end of the stream within a single quoted scalar");
+ }
+ __name(readSingleQuotedScalar, "readSingleQuotedScalar");
+ function readDoubleQuotedScalar(state5, nodeIndent) {
+ var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch !== 34) {
+ return false;
+ }
+ state5.kind = "scalar";
+ state5.result = "";
+ state5.position++;
+ captureStart = captureEnd = state5.position;
+ while ((ch = state5.input.charCodeAt(state5.position)) !== 0) {
+ if (ch === 34) {
+ captureSegment(state5, captureStart, state5.position, true);
+ state5.position++;
+ return true;
+ } else if (ch === 92) {
+ captureSegment(state5, captureStart, state5.position, true);
+ ch = state5.input.charCodeAt(++state5.position);
+ if (is_EOL(ch)) {
+ skipSeparationSpace(state5, false, nodeIndent);
+ } else if (ch < 256 && simpleEscapeCheck[ch]) {
+ state5.result += simpleEscapeMap[ch];
+ state5.position++;
+ } else if ((tmp = escapedHexLen(ch)) > 0) {
+ hexLength = tmp;
+ hexResult = 0;
+ for (; hexLength > 0; hexLength--) {
+ ch = state5.input.charCodeAt(++state5.position);
+ if ((tmp = fromHexCode(ch)) >= 0) {
+ hexResult = (hexResult << 4) + tmp;
+ } else {
+ throwError(state5, "expected hexadecimal character");
}
- /******/
- ])
- );
- });
- })(coseBase);
- return coseBaseExports;
- }
- (function(module2, exports2) {
- (function webpackUniversalModuleDefinition(root2, factory) {
- module2.exports = factory(requireCoseBase());
- })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) {
- return (
- /******/
- function(modules) {
- var installedModules = {};
- function __webpack_require__(moduleId) {
- if (installedModules[moduleId]) {
- return installedModules[moduleId].exports;
- }
- var module3 = installedModules[moduleId] = {
- /******/
- i: moduleId,
- /******/
- l: false,
- /******/
- exports: {}
- /******/
- };
- modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
- module3.l = true;
- return module3.exports;
- }
- __webpack_require__.m = modules;
- __webpack_require__.c = installedModules;
- __webpack_require__.i = function(value) {
- return value;
- };
- __webpack_require__.d = function(exports3, name2, getter) {
- if (!__webpack_require__.o(exports3, name2)) {
- Object.defineProperty(exports3, name2, {
- /******/
- configurable: false,
- /******/
- enumerable: true,
- /******/
- get: getter
- /******/
- });
+ }
+ state5.result += charFromCodepoint(hexResult);
+ state5.position++;
+ } else {
+ throwError(state5, "unknown escape sequence");
+ }
+ captureStart = captureEnd = state5.position;
+ } else if (is_EOL(ch)) {
+ captureSegment(state5, captureStart, captureEnd, true);
+ writeFoldedLines(state5, skipSeparationSpace(state5, false, nodeIndent));
+ captureStart = captureEnd = state5.position;
+ } else if (state5.position === state5.lineStart && testDocumentSeparator(state5)) {
+ throwError(state5, "unexpected end of the document within a double quoted scalar");
+ } else {
+ state5.position++;
+ captureEnd = state5.position;
+ }
+ }
+ throwError(state5, "unexpected end of the stream within a double quoted scalar");
+ }
+ __name(readDoubleQuotedScalar, "readDoubleQuotedScalar");
+ function readFlowCollection(state5, nodeIndent) {
+ var readNext = true, _line, _lineStart, _pos, _tag2 = state5.tag, _result, _anchor = state5.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch === 91) {
+ terminator = 93;
+ isMapping = false;
+ _result = [];
+ } else if (ch === 123) {
+ terminator = 125;
+ isMapping = true;
+ _result = {};
+ } else {
+ return false;
+ }
+ if (state5.anchor !== null) {
+ state5.anchorMap[state5.anchor] = _result;
+ }
+ ch = state5.input.charCodeAt(++state5.position);
+ while (ch !== 0) {
+ skipSeparationSpace(state5, true, nodeIndent);
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch === terminator) {
+ state5.position++;
+ state5.tag = _tag2;
+ state5.anchor = _anchor;
+ state5.kind = isMapping ? "mapping" : "sequence";
+ state5.result = _result;
+ return true;
+ } else if (!readNext) {
+ throwError(state5, "missed comma between flow collection entries");
+ } else if (ch === 44) {
+ throwError(state5, "expected the node content, but found ','");
+ }
+ keyTag = keyNode = valueNode = null;
+ isPair = isExplicitPair = false;
+ if (ch === 63) {
+ following = state5.input.charCodeAt(state5.position + 1);
+ if (is_WS_OR_EOL(following)) {
+ isPair = isExplicitPair = true;
+ state5.position++;
+ skipSeparationSpace(state5, true, nodeIndent);
+ }
+ }
+ _line = state5.line;
+ _lineStart = state5.lineStart;
+ _pos = state5.position;
+ composeNode(state5, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ keyTag = state5.tag;
+ keyNode = state5.result;
+ skipSeparationSpace(state5, true, nodeIndent);
+ ch = state5.input.charCodeAt(state5.position);
+ if ((isExplicitPair || state5.line === _line) && ch === 58) {
+ isPair = true;
+ ch = state5.input.charCodeAt(++state5.position);
+ skipSeparationSpace(state5, true, nodeIndent);
+ composeNode(state5, nodeIndent, CONTEXT_FLOW_IN, false, true);
+ valueNode = state5.result;
+ }
+ if (isMapping) {
+ storeMappingPair(state5, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
+ } else if (isPair) {
+ _result.push(storeMappingPair(state5, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
+ } else {
+ _result.push(keyNode);
+ }
+ skipSeparationSpace(state5, true, nodeIndent);
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch === 44) {
+ readNext = true;
+ ch = state5.input.charCodeAt(++state5.position);
+ } else {
+ readNext = false;
+ }
+ }
+ throwError(state5, "unexpected end of the stream within a flow collection");
+ }
+ __name(readFlowCollection, "readFlowCollection");
+ function readBlockScalar(state5, nodeIndent) {
+ var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch === 124) {
+ folding = false;
+ } else if (ch === 62) {
+ folding = true;
+ } else {
+ return false;
+ }
+ state5.kind = "scalar";
+ state5.result = "";
+ while (ch !== 0) {
+ ch = state5.input.charCodeAt(++state5.position);
+ if (ch === 43 || ch === 45) {
+ if (CHOMPING_CLIP === chomping) {
+ chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
+ } else {
+ throwError(state5, "repeat of a chomping mode identifier");
+ }
+ } else if ((tmp = fromDecimalCode(ch)) >= 0) {
+ if (tmp === 0) {
+ throwError(state5, "bad explicit indentation width of a block scalar; it cannot be less than one");
+ } else if (!detectedIndent) {
+ textIndent = nodeIndent + tmp - 1;
+ detectedIndent = true;
+ } else {
+ throwError(state5, "repeat of an indentation width identifier");
+ }
+ } else {
+ break;
+ }
+ }
+ if (is_WHITE_SPACE(ch)) {
+ do {
+ ch = state5.input.charCodeAt(++state5.position);
+ } while (is_WHITE_SPACE(ch));
+ if (ch === 35) {
+ do {
+ ch = state5.input.charCodeAt(++state5.position);
+ } while (!is_EOL(ch) && ch !== 0);
+ }
+ }
+ while (ch !== 0) {
+ readLineBreak(state5);
+ state5.lineIndent = 0;
+ ch = state5.input.charCodeAt(state5.position);
+ while ((!detectedIndent || state5.lineIndent < textIndent) && ch === 32) {
+ state5.lineIndent++;
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ if (!detectedIndent && state5.lineIndent > textIndent) {
+ textIndent = state5.lineIndent;
+ }
+ if (is_EOL(ch)) {
+ emptyLines++;
+ continue;
+ }
+ if (state5.lineIndent < textIndent) {
+ if (chomping === CHOMPING_KEEP) {
+ state5.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ } else if (chomping === CHOMPING_CLIP) {
+ if (didReadContent) {
+ state5.result += "\n";
+ }
+ }
+ break;
+ }
+ if (folding) {
+ if (is_WHITE_SPACE(ch)) {
+ atMoreIndented = true;
+ state5.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ } else if (atMoreIndented) {
+ atMoreIndented = false;
+ state5.result += common.repeat("\n", emptyLines + 1);
+ } else if (emptyLines === 0) {
+ if (didReadContent) {
+ state5.result += " ";
+ }
+ } else {
+ state5.result += common.repeat("\n", emptyLines);
+ }
+ } else {
+ state5.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
+ }
+ didReadContent = true;
+ detectedIndent = true;
+ emptyLines = 0;
+ captureStart = state5.position;
+ while (!is_EOL(ch) && ch !== 0) {
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ captureSegment(state5, captureStart, state5.position, false);
+ }
+ return true;
+ }
+ __name(readBlockScalar, "readBlockScalar");
+ function readBlockSequence(state5, nodeIndent) {
+ var _line, _tag2 = state5.tag, _anchor = state5.anchor, _result = [], following, detected = false, ch;
+ if (state5.firstTabInLine !== -1) return false;
+ if (state5.anchor !== null) {
+ state5.anchorMap[state5.anchor] = _result;
+ }
+ ch = state5.input.charCodeAt(state5.position);
+ while (ch !== 0) {
+ if (state5.firstTabInLine !== -1) {
+ state5.position = state5.firstTabInLine;
+ throwError(state5, "tab characters must not be used in indentation");
+ }
+ if (ch !== 45) {
+ break;
+ }
+ following = state5.input.charCodeAt(state5.position + 1);
+ if (!is_WS_OR_EOL(following)) {
+ break;
+ }
+ detected = true;
+ state5.position++;
+ if (skipSeparationSpace(state5, true, -1)) {
+ if (state5.lineIndent <= nodeIndent) {
+ _result.push(null);
+ ch = state5.input.charCodeAt(state5.position);
+ continue;
+ }
+ }
+ _line = state5.line;
+ composeNode(state5, nodeIndent, CONTEXT_BLOCK_IN, false, true);
+ _result.push(state5.result);
+ skipSeparationSpace(state5, true, -1);
+ ch = state5.input.charCodeAt(state5.position);
+ if ((state5.line === _line || state5.lineIndent > nodeIndent) && ch !== 0) {
+ throwError(state5, "bad indentation of a sequence entry");
+ } else if (state5.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+ if (detected) {
+ state5.tag = _tag2;
+ state5.anchor = _anchor;
+ state5.kind = "sequence";
+ state5.result = _result;
+ return true;
+ }
+ return false;
+ }
+ __name(readBlockSequence, "readBlockSequence");
+ function readBlockMapping(state5, nodeIndent, flowIndent) {
+ var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag2 = state5.tag, _anchor = state5.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
+ if (state5.firstTabInLine !== -1) return false;
+ if (state5.anchor !== null) {
+ state5.anchorMap[state5.anchor] = _result;
+ }
+ ch = state5.input.charCodeAt(state5.position);
+ while (ch !== 0) {
+ if (!atExplicitKey && state5.firstTabInLine !== -1) {
+ state5.position = state5.firstTabInLine;
+ throwError(state5, "tab characters must not be used in indentation");
+ }
+ following = state5.input.charCodeAt(state5.position + 1);
+ _line = state5.line;
+ if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
+ if (ch === 63) {
+ if (atExplicitKey) {
+ storeMappingPair(state5, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ detected = true;
+ atExplicitKey = true;
+ allowCompact = true;
+ } else if (atExplicitKey) {
+ atExplicitKey = false;
+ allowCompact = true;
+ } else {
+ throwError(state5, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
+ }
+ state5.position += 1;
+ ch = following;
+ } else {
+ _keyLine = state5.line;
+ _keyLineStart = state5.lineStart;
+ _keyPos = state5.position;
+ if (!composeNode(state5, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
+ break;
+ }
+ if (state5.line === _line) {
+ ch = state5.input.charCodeAt(state5.position);
+ while (is_WHITE_SPACE(ch)) {
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ if (ch === 58) {
+ ch = state5.input.charCodeAt(++state5.position);
+ if (!is_WS_OR_EOL(ch)) {
+ throwError(state5, "a whitespace character is expected after the key-value separator within a block mapping");
}
- };
- __webpack_require__.n = function(module3) {
- var getter = module3 && module3.__esModule ? (
- /******/
- function getDefault() {
- return module3["default"];
- }
- ) : (
- /******/
- function getModuleExports() {
- return module3;
- }
- );
- __webpack_require__.d(getter, "a", getter);
- return getter;
- };
- __webpack_require__.o = function(object2, property2) {
- return Object.prototype.hasOwnProperty.call(object2, property2);
- };
- __webpack_require__.p = "";
- return __webpack_require__(__webpack_require__.s = 1);
- }([
- /* 0 */
- /***/
- function(module3, exports3) {
- module3.exports = __WEBPACK_EXTERNAL_MODULE_0__;
- },
- /* 1 */
- /***/
- function(module3, exports3, __webpack_require__) {
- var LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants;
- var FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants;
- var CoSEConstants = __webpack_require__(0).CoSEConstants;
- var CoSELayout = __webpack_require__(0).CoSELayout;
- var CoSENode = __webpack_require__(0).CoSENode;
- var PointD = __webpack_require__(0).layoutBase.PointD;
- var DimensionD2 = __webpack_require__(0).layoutBase.DimensionD;
- var defaults2 = {
- // Called on `layoutready`
- ready: function ready() {
- },
- // Called on `layoutstop`
- stop: function stop() {
- },
- // 'draft', 'default' or 'proof"
- // - 'draft' fast cooling rate
- // - 'default' moderate cooling rate
- // - "proof" slow cooling rate
- quality: "default",
- // include labels in node dimensions
- nodeDimensionsIncludeLabels: false,
- // number of ticks per frame; higher is faster but more jerky
- refresh: 30,
- // Whether to fit the network view after when done
- fit: true,
- // Padding on fit
- padding: 10,
- // Whether to enable incremental mode
- randomize: true,
- // Node repulsion (non overlapping) multiplier
- nodeRepulsion: 4500,
- // Ideal edge (non nested) length
- idealEdgeLength: 50,
- // Divisor to compute edge forces
- edgeElasticity: 0.45,
- // Nesting factor (multiplier) to compute ideal edge length for nested edges
- nestingFactor: 0.1,
- // Gravity force (constant)
- gravity: 0.25,
- // Maximum number of iterations to perform
- numIter: 2500,
- // For enabling tiling
- tile: true,
- // Type of layout animation. The option set is {'during', 'end', false}
- animate: "end",
- // Duration for animate:end
- animationDuration: 500,
- // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)
- tilingPaddingVertical: 10,
- // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)
- tilingPaddingHorizontal: 10,
- // Gravity range (constant) for compounds
- gravityRangeCompound: 1.5,
- // Gravity force (constant) for compounds
- gravityCompound: 1,
- // Gravity range (constant)
- gravityRange: 3.8,
- // Initial cooling factor for incremental layout
- initialEnergyOnIncremental: 0.5
- };
- function extend2(defaults3, options2) {
- var obj = {};
- for (var i2 in defaults3) {
- obj[i2] = defaults3[i2];
- }
- for (var i2 in options2) {
- obj[i2] = options2[i2];
- }
- return obj;
- }
- function _CoSELayout(_options) {
- this.options = extend2(defaults2, _options);
- getUserOptions(this.options);
- }
- var getUserOptions = function getUserOptions2(options2) {
- if (options2.nodeRepulsion != null)
- CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options2.nodeRepulsion;
- if (options2.idealEdgeLength != null)
- CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options2.idealEdgeLength;
- if (options2.edgeElasticity != null)
- CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options2.edgeElasticity;
- if (options2.nestingFactor != null)
- CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options2.nestingFactor;
- if (options2.gravity != null)
- CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options2.gravity;
- if (options2.numIter != null)
- CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options2.numIter;
- if (options2.gravityRange != null)
- CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options2.gravityRange;
- if (options2.gravityCompound != null)
- CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options2.gravityCompound;
- if (options2.gravityRangeCompound != null)
- CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options2.gravityRangeCompound;
- if (options2.initialEnergyOnIncremental != null)
- CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options2.initialEnergyOnIncremental;
- if (options2.quality == "draft")
- LayoutConstants.QUALITY = 0;
- else if (options2.quality == "proof")
- LayoutConstants.QUALITY = 2;
- else
- LayoutConstants.QUALITY = 1;
- CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options2.nodeDimensionsIncludeLabels;
- CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options2.randomize;
- CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options2.animate;
- CoSEConstants.TILE = options2.tile;
- CoSEConstants.TILING_PADDING_VERTICAL = typeof options2.tilingPaddingVertical === "function" ? options2.tilingPaddingVertical.call() : options2.tilingPaddingVertical;
- CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options2.tilingPaddingHorizontal === "function" ? options2.tilingPaddingHorizontal.call() : options2.tilingPaddingHorizontal;
- };
- _CoSELayout.prototype.run = function() {
- var ready;
- var frameId;
- var options2 = this.options;
- this.idToLNode = {};
- var layout2 = this.layout = new CoSELayout();
- var self2 = this;
- self2.stopped = false;
- this.cy = this.options.cy;
- this.cy.trigger({ type: "layoutstart", layout: this });
- var gm = layout2.newGraphManager();
- this.gm = gm;
- var nodes2 = this.options.eles.nodes();
- var edges2 = this.options.eles.edges();
- this.root = gm.addRoot();
- this.processChildrenList(this.root, this.getTopMostNodes(nodes2), layout2);
- for (var i2 = 0; i2 < edges2.length; i2++) {
- var edge = edges2[i2];
- var sourceNode = this.idToLNode[edge.data("source")];
- var targetNode = this.idToLNode[edge.data("target")];
- if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {
- var e1 = gm.add(layout2.newEdge(), sourceNode, targetNode);
- e1.id = edge.id();
- }
- }
- var getPositions = function getPositions2(ele, i3) {
- if (typeof ele === "number") {
- ele = i3;
- }
- var theId = ele.data("id");
- var lNode = self2.idToLNode[theId];
- return {
- x: lNode.getRect().getCenterX(),
- y: lNode.getRect().getCenterY()
- };
- };
- var iterateAnimated = function iterateAnimated2() {
- var afterReposition = function afterReposition2() {
- if (options2.fit) {
- options2.cy.fit(options2.eles, options2.padding);
- }
- if (!ready) {
- ready = true;
- self2.cy.one("layoutready", options2.ready);
- self2.cy.trigger({ type: "layoutready", layout: self2 });
- }
- };
- var ticksPerFrame = self2.options.refresh;
- var isDone;
- for (var i3 = 0; i3 < ticksPerFrame && !isDone; i3++) {
- isDone = self2.stopped || self2.layout.tick();
- }
- if (isDone) {
- if (layout2.checkLayoutSuccess() && !layout2.isSubLayout) {
- layout2.doPostLayout();
- }
- if (layout2.tilingPostLayout) {
- layout2.tilingPostLayout();
- }
- layout2.isLayoutFinished = true;
- self2.options.eles.nodes().positions(getPositions);
- afterReposition();
- self2.cy.one("layoutstop", self2.options.stop);
- self2.cy.trigger({ type: "layoutstop", layout: self2 });
- if (frameId) {
- cancelAnimationFrame(frameId);
- }
- ready = false;
- return;
- }
- var animationData = self2.layout.getPositionsData();
- options2.eles.nodes().positions(function(ele, i4) {
- if (typeof ele === "number") {
- ele = i4;
- }
- if (!ele.isParent()) {
- var theId = ele.id();
- var pNode = animationData[theId];
- var temp = ele;
- while (pNode == null) {
- pNode = animationData[temp.data("parent")] || animationData["DummyCompound_" + temp.data("parent")];
- animationData[theId] = pNode;
- temp = temp.parent()[0];
- if (temp == void 0) {
- break;
- }
- }
- if (pNode != null) {
- return {
- x: pNode.x,
- y: pNode.y
- };
- } else {
- return {
- x: ele.position("x"),
- y: ele.position("y")
- };
- }
- }
- });
- afterReposition();
- frameId = requestAnimationFrame(iterateAnimated2);
- };
- layout2.addListener("layoutstarted", function() {
- if (self2.options.animate === "during") {
- frameId = requestAnimationFrame(iterateAnimated);
- }
- });
- layout2.runLayout();
- if (this.options.animate !== "during") {
- self2.options.eles.nodes().not(":parent").layoutPositions(self2, self2.options, getPositions);
- ready = false;
- }
- return this;
- };
- _CoSELayout.prototype.getTopMostNodes = function(nodes2) {
- var nodesMap = {};
- for (var i2 = 0; i2 < nodes2.length; i2++) {
- nodesMap[nodes2[i2].id()] = true;
- }
- var roots = nodes2.filter(function(ele, i3) {
- if (typeof ele === "number") {
- ele = i3;
- }
- var parent = ele.parent()[0];
- while (parent != null) {
- if (nodesMap[parent.id()]) {
- return false;
- }
- parent = parent.parent()[0];
- }
- return true;
- });
- return roots;
- };
- _CoSELayout.prototype.processChildrenList = function(parent, children2, layout2) {
- var size2 = children2.length;
- for (var i2 = 0; i2 < size2; i2++) {
- var theChild = children2[i2];
- var children_of_children = theChild.children();
- var theNode;
- var dimensions = theChild.layoutDimensions({
- nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels
- });
- if (theChild.outerWidth() != null && theChild.outerHeight() != null) {
- theNode = parent.add(new CoSENode(layout2.graphManager, new PointD(theChild.position("x") - dimensions.w / 2, theChild.position("y") - dimensions.h / 2), new DimensionD2(parseFloat(dimensions.w), parseFloat(dimensions.h))));
- } else {
- theNode = parent.add(new CoSENode(this.graphManager));
- }
- theNode.id = theChild.data("id");
- theNode.paddingLeft = parseInt(theChild.css("padding"));
- theNode.paddingTop = parseInt(theChild.css("padding"));
- theNode.paddingRight = parseInt(theChild.css("padding"));
- theNode.paddingBottom = parseInt(theChild.css("padding"));
- if (this.options.nodeDimensionsIncludeLabels) {
- if (theChild.isParent()) {
- var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w;
- var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h;
- var labelPos = theChild.css("text-halign");
- theNode.labelWidth = labelWidth;
- theNode.labelHeight = labelHeight;
- theNode.labelPos = labelPos;
- }
- }
- this.idToLNode[theChild.data("id")] = theNode;
- if (isNaN(theNode.rect.x)) {
- theNode.rect.x = 0;
- }
- if (isNaN(theNode.rect.y)) {
- theNode.rect.y = 0;
- }
- if (children_of_children != null && children_of_children.length > 0) {
- var theNewGraph;
- theNewGraph = layout2.getGraphManager().add(layout2.newGraph(), theNode);
- this.processChildrenList(theNewGraph, children_of_children, layout2);
- }
- }
- };
- _CoSELayout.prototype.stop = function() {
- this.stopped = true;
- return this;
- };
- var register = function register2(cytoscape2) {
- cytoscape2("layout", "cose-bilkent", _CoSELayout);
- };
- if (typeof cytoscape !== "undefined") {
- register(cytoscape);
+ if (atExplicitKey) {
+ storeMappingPair(state5, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ detected = true;
+ atExplicitKey = false;
+ allowCompact = false;
+ keyTag = state5.tag;
+ keyNode = state5.result;
+ } else if (detected) {
+ throwError(state5, "can not read an implicit mapping pair; a colon is missed");
+ } else {
+ state5.tag = _tag2;
+ state5.anchor = _anchor;
+ return true;
+ }
+ } else if (detected) {
+ throwError(state5, "can not read a block mapping entry; a multiline key may not be an implicit key");
+ } else {
+ state5.tag = _tag2;
+ state5.anchor = _anchor;
+ return true;
+ }
+ }
+ if (state5.line === _line || state5.lineIndent > nodeIndent) {
+ if (atExplicitKey) {
+ _keyLine = state5.line;
+ _keyLineStart = state5.lineStart;
+ _keyPos = state5.position;
+ }
+ if (composeNode(state5, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
+ if (atExplicitKey) {
+ keyNode = state5.result;
+ } else {
+ valueNode = state5.result;
+ }
+ }
+ if (!atExplicitKey) {
+ storeMappingPair(state5, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
+ keyTag = keyNode = valueNode = null;
+ }
+ skipSeparationSpace(state5, true, -1);
+ ch = state5.input.charCodeAt(state5.position);
+ }
+ if ((state5.line === _line || state5.lineIndent > nodeIndent) && ch !== 0) {
+ throwError(state5, "bad indentation of a mapping entry");
+ } else if (state5.lineIndent < nodeIndent) {
+ break;
+ }
+ }
+ if (atExplicitKey) {
+ storeMappingPair(state5, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
+ }
+ if (detected) {
+ state5.tag = _tag2;
+ state5.anchor = _anchor;
+ state5.kind = "mapping";
+ state5.result = _result;
+ }
+ return detected;
+ }
+ __name(readBlockMapping, "readBlockMapping");
+ function readTagProperty(state5) {
+ var _position, isVerbatim = false, isNamed2 = false, tagHandle, tagName, ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch !== 33) return false;
+ if (state5.tag !== null) {
+ throwError(state5, "duplication of a tag property");
+ }
+ ch = state5.input.charCodeAt(++state5.position);
+ if (ch === 60) {
+ isVerbatim = true;
+ ch = state5.input.charCodeAt(++state5.position);
+ } else if (ch === 33) {
+ isNamed2 = true;
+ tagHandle = "!!";
+ ch = state5.input.charCodeAt(++state5.position);
+ } else {
+ tagHandle = "!";
+ }
+ _position = state5.position;
+ if (isVerbatim) {
+ do {
+ ch = state5.input.charCodeAt(++state5.position);
+ } while (ch !== 0 && ch !== 62);
+ if (state5.position < state5.length) {
+ tagName = state5.input.slice(_position, state5.position);
+ ch = state5.input.charCodeAt(++state5.position);
+ } else {
+ throwError(state5, "unexpected end of the stream within a verbatim tag");
+ }
+ } else {
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ if (ch === 33) {
+ if (!isNamed2) {
+ tagHandle = state5.input.slice(_position - 1, state5.position + 1);
+ if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
+ throwError(state5, "named tag handle cannot contain such characters");
+ }
+ isNamed2 = true;
+ _position = state5.position + 1;
+ } else {
+ throwError(state5, "tag suffix cannot contain exclamation marks");
+ }
+ }
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ tagName = state5.input.slice(_position, state5.position);
+ if (PATTERN_FLOW_INDICATORS.test(tagName)) {
+ throwError(state5, "tag suffix cannot contain flow indicator characters");
+ }
+ }
+ if (tagName && !PATTERN_TAG_URI.test(tagName)) {
+ throwError(state5, "tag name cannot contain such characters: " + tagName);
+ }
+ try {
+ tagName = decodeURIComponent(tagName);
+ } catch (err) {
+ throwError(state5, "tag name is malformed: " + tagName);
+ }
+ if (isVerbatim) {
+ state5.tag = tagName;
+ } else if (_hasOwnProperty$1.call(state5.tagMap, tagHandle)) {
+ state5.tag = state5.tagMap[tagHandle] + tagName;
+ } else if (tagHandle === "!") {
+ state5.tag = "!" + tagName;
+ } else if (tagHandle === "!!") {
+ state5.tag = "tag:yaml.org,2002:" + tagName;
+ } else {
+ throwError(state5, 'undeclared tag handle "' + tagHandle + '"');
+ }
+ return true;
+ }
+ __name(readTagProperty, "readTagProperty");
+ function readAnchorProperty(state5) {
+ var _position, ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch !== 38) return false;
+ if (state5.anchor !== null) {
+ throwError(state5, "duplication of an anchor property");
+ }
+ ch = state5.input.charCodeAt(++state5.position);
+ _position = state5.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ if (state5.position === _position) {
+ throwError(state5, "name of an anchor node must contain at least one character");
+ }
+ state5.anchor = state5.input.slice(_position, state5.position);
+ return true;
+ }
+ __name(readAnchorProperty, "readAnchorProperty");
+ function readAlias(state5) {
+ var _position, alias, ch;
+ ch = state5.input.charCodeAt(state5.position);
+ if (ch !== 42) return false;
+ ch = state5.input.charCodeAt(++state5.position);
+ _position = state5.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ if (state5.position === _position) {
+ throwError(state5, "name of an alias node must contain at least one character");
+ }
+ alias = state5.input.slice(_position, state5.position);
+ if (!_hasOwnProperty$1.call(state5.anchorMap, alias)) {
+ throwError(state5, 'unidentified alias "' + alias + '"');
+ }
+ state5.result = state5.anchorMap[alias];
+ skipSeparationSpace(state5, true, -1);
+ return true;
+ }
+ __name(readAlias, "readAlias");
+ function composeNode(state5, parentIndent, nodeContext, allowToSeek, allowCompact) {
+ var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type3, flowIndent, blockIndent;
+ if (state5.listener !== null) {
+ state5.listener("open", state5);
+ }
+ state5.tag = null;
+ state5.anchor = null;
+ state5.kind = null;
+ state5.result = null;
+ allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
+ if (allowToSeek) {
+ if (skipSeparationSpace(state5, true, -1)) {
+ atNewLine = true;
+ if (state5.lineIndent > parentIndent) {
+ indentStatus = 1;
+ } else if (state5.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state5.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ }
+ }
+ if (indentStatus === 1) {
+ while (readTagProperty(state5) || readAnchorProperty(state5)) {
+ if (skipSeparationSpace(state5, true, -1)) {
+ atNewLine = true;
+ allowBlockCollections = allowBlockStyles;
+ if (state5.lineIndent > parentIndent) {
+ indentStatus = 1;
+ } else if (state5.lineIndent === parentIndent) {
+ indentStatus = 0;
+ } else if (state5.lineIndent < parentIndent) {
+ indentStatus = -1;
+ }
+ } else {
+ allowBlockCollections = false;
+ }
+ }
+ }
+ if (allowBlockCollections) {
+ allowBlockCollections = atNewLine || allowCompact;
+ }
+ if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
+ if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
+ flowIndent = parentIndent;
+ } else {
+ flowIndent = parentIndent + 1;
+ }
+ blockIndent = state5.position - state5.lineStart;
+ if (indentStatus === 1) {
+ if (allowBlockCollections && (readBlockSequence(state5, blockIndent) || readBlockMapping(state5, blockIndent, flowIndent)) || readFlowCollection(state5, flowIndent)) {
+ hasContent = true;
+ } else {
+ if (allowBlockScalars && readBlockScalar(state5, flowIndent) || readSingleQuotedScalar(state5, flowIndent) || readDoubleQuotedScalar(state5, flowIndent)) {
+ hasContent = true;
+ } else if (readAlias(state5)) {
+ hasContent = true;
+ if (state5.tag !== null || state5.anchor !== null) {
+ throwError(state5, "alias node should not have any properties");
+ }
+ } else if (readPlainScalar(state5, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
+ hasContent = true;
+ if (state5.tag === null) {
+ state5.tag = "?";
}
- module3.exports = register;
}
- /******/
- ])
- );
- });
- })(cytoscapeCoseBilkent);
- const coseBilkent = /* @__PURE__ */ getDefaultExportFromCjs(cytoscapeCoseBilkentExports);
- cytoscape$1.use(coseBilkent);
- function drawNodes(svg2, mindmap2, section, conf2) {
- svgDraw.drawNode(svg2, mindmap2, section, conf2);
- if (mindmap2.children) {
- mindmap2.children.forEach((child, index) => {
- drawNodes(svg2, child, section < 0 ? index : section, conf2);
- });
+ if (state5.anchor !== null) {
+ state5.anchorMap[state5.anchor] = state5.result;
+ }
+ }
+ } else if (indentStatus === 0) {
+ hasContent = allowBlockCollections && readBlockSequence(state5, blockIndent);
+ }
+ }
+ if (state5.tag === null) {
+ if (state5.anchor !== null) {
+ state5.anchorMap[state5.anchor] = state5.result;
+ }
+ } else if (state5.tag === "?") {
+ if (state5.result !== null && state5.kind !== "scalar") {
+ throwError(state5, 'unacceptable node kind for !> tag; it should be "scalar", not "' + state5.kind + '"');
+ }
+ for (typeIndex = 0, typeQuantity = state5.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
+ type3 = state5.implicitTypes[typeIndex];
+ if (type3.resolve(state5.result)) {
+ state5.result = type3.construct(state5.result);
+ state5.tag = type3.tag;
+ if (state5.anchor !== null) {
+ state5.anchorMap[state5.anchor] = state5.result;
+ }
+ break;
+ }
+ }
+ } else if (state5.tag !== "!") {
+ if (_hasOwnProperty$1.call(state5.typeMap[state5.kind || "fallback"], state5.tag)) {
+ type3 = state5.typeMap[state5.kind || "fallback"][state5.tag];
+ } else {
+ type3 = null;
+ typeList = state5.typeMap.multi[state5.kind || "fallback"];
+ for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
+ if (state5.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
+ type3 = typeList[typeIndex];
+ break;
+ }
+ }
+ }
+ if (!type3) {
+ throwError(state5, "unknown tag !<" + state5.tag + ">");
+ }
+ if (state5.result !== null && type3.kind !== state5.kind) {
+ throwError(state5, "unacceptable node kind for !<" + state5.tag + '> tag; it should be "' + type3.kind + '", not "' + state5.kind + '"');
+ }
+ if (!type3.resolve(state5.result, state5.tag)) {
+ throwError(state5, "cannot resolve a node with !<" + state5.tag + "> explicit tag");
+ } else {
+ state5.result = type3.construct(state5.result, state5.tag);
+ if (state5.anchor !== null) {
+ state5.anchorMap[state5.anchor] = state5.result;
+ }
+ }
}
+ if (state5.listener !== null) {
+ state5.listener("close", state5);
+ }
+ return state5.tag !== null || state5.anchor !== null || hasContent;
}
- function drawEdges(edgesEl, cy) {
- cy.edges().map((edge, id2) => {
- const data = edge.data();
- if (edge[0]._private.bodyBounds) {
- const bounds2 = edge[0]._private.rscratch;
- log$1.trace("Edge: ", id2, data);
- edgesEl.insert("path").attr(
- "d",
- `M ${bounds2.startX},${bounds2.startY} L ${bounds2.midX},${bounds2.midY} L${bounds2.endX},${bounds2.endY} `
- ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth);
+ __name(composeNode, "composeNode");
+ function readDocument(state5) {
+ var documentStart = state5.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
+ state5.version = null;
+ state5.checkLineBreaks = state5.legacy;
+ state5.tagMap = /* @__PURE__ */ Object.create(null);
+ state5.anchorMap = /* @__PURE__ */ Object.create(null);
+ while ((ch = state5.input.charCodeAt(state5.position)) !== 0) {
+ skipSeparationSpace(state5, true, -1);
+ ch = state5.input.charCodeAt(state5.position);
+ if (state5.lineIndent > 0 || ch !== 37) {
+ break;
}
- });
+ hasDirectives = true;
+ ch = state5.input.charCodeAt(++state5.position);
+ _position = state5.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ directiveName = state5.input.slice(_position, state5.position);
+ directiveArgs = [];
+ if (directiveName.length < 1) {
+ throwError(state5, "directive name must not be less than one character in length");
+ }
+ while (ch !== 0) {
+ while (is_WHITE_SPACE(ch)) {
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ if (ch === 35) {
+ do {
+ ch = state5.input.charCodeAt(++state5.position);
+ } while (ch !== 0 && !is_EOL(ch));
+ break;
+ }
+ if (is_EOL(ch)) break;
+ _position = state5.position;
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
+ ch = state5.input.charCodeAt(++state5.position);
+ }
+ directiveArgs.push(state5.input.slice(_position, state5.position));
+ }
+ if (ch !== 0) readLineBreak(state5);
+ if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
+ directiveHandlers[directiveName](state5, directiveName, directiveArgs);
+ } else {
+ throwWarning(state5, 'unknown document directive "' + directiveName + '"');
+ }
+ }
+ skipSeparationSpace(state5, true, -1);
+ if (state5.lineIndent === 0 && state5.input.charCodeAt(state5.position) === 45 && state5.input.charCodeAt(state5.position + 1) === 45 && state5.input.charCodeAt(state5.position + 2) === 45) {
+ state5.position += 3;
+ skipSeparationSpace(state5, true, -1);
+ } else if (hasDirectives) {
+ throwError(state5, "directives end mark is expected");
+ }
+ composeNode(state5, state5.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
+ skipSeparationSpace(state5, true, -1);
+ if (state5.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state5.input.slice(documentStart, state5.position))) {
+ throwWarning(state5, "non-ASCII line breaks are interpreted as content");
+ }
+ state5.documents.push(state5.result);
+ if (state5.position === state5.lineStart && testDocumentSeparator(state5)) {
+ if (state5.input.charCodeAt(state5.position) === 46) {
+ state5.position += 3;
+ skipSeparationSpace(state5, true, -1);
+ }
+ return;
+ }
+ if (state5.position < state5.length - 1) {
+ throwError(state5, "end of the stream or a document separator is expected");
+ } else {
+ return;
+ }
}
- function addNodes(mindmap2, cy, conf2, level) {
- cy.add({
- group: "nodes",
- data: {
- id: mindmap2.id,
- labelText: mindmap2.descr,
- height: mindmap2.height,
- width: mindmap2.width,
- level,
- nodeId: mindmap2.id,
- padding: mindmap2.padding,
- type: mindmap2.type
- },
- position: {
- x: mindmap2.x,
- y: mindmap2.y
+ __name(readDocument, "readDocument");
+ function loadDocuments(input, options3) {
+ input = String(input);
+ options3 = options3 || {};
+ if (input.length !== 0) {
+ if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
+ input += "\n";
}
- });
- if (mindmap2.children) {
- mindmap2.children.forEach((child) => {
- addNodes(child, cy, conf2, level + 1);
- cy.add({
- group: "edges",
- data: {
- id: `${mindmap2.id}_${child.id}`,
- source: mindmap2.id,
- target: child.id,
- depth: level,
- section: child.section
- }
- });
- });
+ if (input.charCodeAt(0) === 65279) {
+ input = input.slice(1);
+ }
+ }
+ var state5 = new State$1(input, options3);
+ var nullpos = input.indexOf("\0");
+ if (nullpos !== -1) {
+ state5.position = nullpos;
+ throwError(state5, "null byte is not allowed in input");
+ }
+ state5.input += "\0";
+ while (state5.input.charCodeAt(state5.position) === 32) {
+ state5.lineIndent += 1;
+ state5.position += 1;
}
+ while (state5.position < state5.length - 1) {
+ readDocument(state5);
+ }
+ return state5.documents;
}
- function layoutMindmap(node2, conf2) {
- return new Promise((resolve) => {
- const renderEl = select("body").append("div").attr("id", "cy").attr("style", "display:none");
- const cy = cytoscape$1({
- container: document.getElementById("cy"),
- // container to render in
- style: [
- {
- selector: "edge",
- style: {
- "curve-style": "bezier"
- }
- }
- ]
- });
- renderEl.remove();
- addNodes(node2, cy, conf2, 0);
- cy.nodes().forEach(function(n) {
- n.layoutDimensions = () => {
- const data = n.data();
- return { w: data.width, h: data.height };
- };
- });
- cy.layout({
- name: "cose-bilkent",
- quality: "proof",
- // headless: true,
- styleEnabled: false,
- animate: false
- }).run();
- cy.ready((e) => {
- log$1.info("Ready", e);
- resolve(cy);
- });
- });
+ __name(loadDocuments, "loadDocuments");
+ function loadAll$1(input, iterator, options3) {
+ if (iterator !== null && typeof iterator === "object" && typeof options3 === "undefined") {
+ options3 = iterator;
+ iterator = null;
+ }
+ var documents2 = loadDocuments(input, options3);
+ if (typeof iterator !== "function") {
+ return documents2;
+ }
+ for (var index = 0, length2 = documents2.length; index < length2; index += 1) {
+ iterator(documents2[index]);
+ }
}
- function positionNodes(cy) {
- cy.nodes().map((node2, id2) => {
- const data = node2.data();
- data.x = node2.position().x;
- data.y = node2.position().y;
- svgDraw.positionNode(data);
- const el = getElementById(data.nodeId);
- log$1.info("Id:", id2, "Position: (", node2.position().x, ", ", node2.position().y, ")", data);
- el.attr(
- "transform",
- `translate(${node2.position().x - data.width / 2}, ${node2.position().y - data.height / 2})`
- );
- el.attr("attr", `apa-${id2})`);
- });
+ __name(loadAll$1, "loadAll$1");
+ function load$1(input, options3) {
+ var documents2 = loadDocuments(input, options3);
+ if (documents2.length === 0) {
+ return void 0;
+ } else if (documents2.length === 1) {
+ return documents2[0];
+ }
+ throw new exception("expected a single document in the stream, but found more");
}
- const draw = async (text2, id2, version2, diagObj) => {
- const conf2 = getConfig$1();
- conf2.htmlLabels = false;
- diagObj.db.clear();
- diagObj.parser.parse(text2);
- log$1.debug("Rendering mindmap diagram\n" + text2, diagObj.parser);
- const securityLevel = getConfig$1().securityLevel;
- let sandboxElement;
- if (securityLevel === "sandbox") {
- sandboxElement = select("#i" + id2);
- }
- const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
- const svg2 = root2.select("#" + id2);
- svg2.append("g");
- const mm = diagObj.db.getMindmap();
- const edgesElem = svg2.append("g");
- edgesElem.attr("class", "mindmap-edges");
- const nodesElem = svg2.append("g");
- nodesElem.attr("class", "mindmap-nodes");
- drawNodes(nodesElem, mm, -1, conf2);
- const cy = await layoutMindmap(mm, conf2);
- drawEdges(edgesElem, cy);
- positionNodes(cy);
- setupGraphViewbox$1(void 0, svg2, conf2.mindmap.padding, conf2.mindmap.useMaxWidth);
- };
- const mindmapRenderer = {
- draw
+ __name(load$1, "load$1");
+ var loadAll_1 = loadAll$1;
+ var load_1 = load$1;
+ var loader25 = {
+ loadAll: loadAll_1,
+ load: load_1
};
- const genSections = (options2) => {
- let sections2 = "";
- for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
- options2["lineColor" + i2] = options2["lineColor" + i2] || options2["cScaleInv" + i2];
- if (isDark$1(options2["lineColor" + i2])) {
- options2["lineColor" + i2] = lighten$1(options2["lineColor" + i2], 20);
+ var _toString = Object.prototype.toString;
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
+ var CHAR_BOM = 65279;
+ var CHAR_TAB = 9;
+ var CHAR_LINE_FEED = 10;
+ var CHAR_CARRIAGE_RETURN = 13;
+ var CHAR_SPACE = 32;
+ var CHAR_EXCLAMATION = 33;
+ var CHAR_DOUBLE_QUOTE = 34;
+ var CHAR_SHARP = 35;
+ var CHAR_PERCENT = 37;
+ var CHAR_AMPERSAND = 38;
+ var CHAR_SINGLE_QUOTE = 39;
+ var CHAR_ASTERISK = 42;
+ var CHAR_COMMA = 44;
+ var CHAR_MINUS = 45;
+ var CHAR_COLON = 58;
+ var CHAR_EQUALS = 61;
+ var CHAR_GREATER_THAN = 62;
+ var CHAR_QUESTION = 63;
+ var CHAR_COMMERCIAL_AT = 64;
+ var CHAR_LEFT_SQUARE_BRACKET = 91;
+ var CHAR_RIGHT_SQUARE_BRACKET = 93;
+ var CHAR_GRAVE_ACCENT = 96;
+ var CHAR_LEFT_CURLY_BRACKET = 123;
+ var CHAR_VERTICAL_LINE = 124;
+ var CHAR_RIGHT_CURLY_BRACKET = 125;
+ var ESCAPE_SEQUENCES = {};
+ ESCAPE_SEQUENCES[0] = "\\0";
+ ESCAPE_SEQUENCES[7] = "\\a";
+ ESCAPE_SEQUENCES[8] = "\\b";
+ ESCAPE_SEQUENCES[9] = "\\t";
+ ESCAPE_SEQUENCES[10] = "\\n";
+ ESCAPE_SEQUENCES[11] = "\\v";
+ ESCAPE_SEQUENCES[12] = "\\f";
+ ESCAPE_SEQUENCES[13] = "\\r";
+ ESCAPE_SEQUENCES[27] = "\\e";
+ ESCAPE_SEQUENCES[34] = '\\"';
+ ESCAPE_SEQUENCES[92] = "\\\\";
+ ESCAPE_SEQUENCES[133] = "\\N";
+ ESCAPE_SEQUENCES[160] = "\\_";
+ ESCAPE_SEQUENCES[8232] = "\\L";
+ ESCAPE_SEQUENCES[8233] = "\\P";
+ var DEPRECATED_BOOLEANS_SYNTAX = [
+ "y",
+ "Y",
+ "yes",
+ "Yes",
+ "YES",
+ "on",
+ "On",
+ "ON",
+ "n",
+ "N",
+ "no",
+ "No",
+ "NO",
+ "off",
+ "Off",
+ "OFF"
+ ];
+ var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;
+ function compileStyleMap(schema2, map5) {
+ var result, keys3, index, length2, tag2, style3, type3;
+ if (map5 === null) return {};
+ result = {};
+ keys3 = Object.keys(map5);
+ for (index = 0, length2 = keys3.length; index < length2; index += 1) {
+ tag2 = keys3[index];
+ style3 = String(map5[tag2]);
+ if (tag2.slice(0, 2) === "!!") {
+ tag2 = "tag:yaml.org,2002:" + tag2.slice(2);
+ }
+ type3 = schema2.compiledTypeMap["fallback"][tag2];
+ if (type3 && _hasOwnProperty.call(type3.styleAliases, style3)) {
+ style3 = type3.styleAliases[style3];
+ }
+ result[tag2] = style3;
+ }
+ return result;
+ }
+ __name(compileStyleMap, "compileStyleMap");
+ function encodeHex(character2) {
+ var string3, handle, length2;
+ string3 = character2.toString(16).toUpperCase();
+ if (character2 <= 255) {
+ handle = "x";
+ length2 = 2;
+ } else if (character2 <= 65535) {
+ handle = "u";
+ length2 = 4;
+ } else if (character2 <= 4294967295) {
+ handle = "U";
+ length2 = 8;
+ } else {
+ throw new exception("code point within a string may not be greater than 0xFFFFFFFF");
+ }
+ return "\\" + handle + common.repeat("0", length2 - string3.length) + string3;
+ }
+ __name(encodeHex, "encodeHex");
+ var QUOTING_TYPE_SINGLE = 1;
+ var QUOTING_TYPE_DOUBLE = 2;
+ function State(options3) {
+ this.schema = options3["schema"] || _default;
+ this.indent = Math.max(1, options3["indent"] || 2);
+ this.noArrayIndent = options3["noArrayIndent"] || false;
+ this.skipInvalid = options3["skipInvalid"] || false;
+ this.flowLevel = common.isNothing(options3["flowLevel"]) ? -1 : options3["flowLevel"];
+ this.styleMap = compileStyleMap(this.schema, options3["styles"] || null);
+ this.sortKeys = options3["sortKeys"] || false;
+ this.lineWidth = options3["lineWidth"] || 80;
+ this.noRefs = options3["noRefs"] || false;
+ this.noCompatMode = options3["noCompatMode"] || false;
+ this.condenseFlow = options3["condenseFlow"] || false;
+ this.quotingType = options3["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
+ this.forceQuotes = options3["forceQuotes"] || false;
+ this.replacer = typeof options3["replacer"] === "function" ? options3["replacer"] : null;
+ this.implicitTypes = this.schema.compiledImplicit;
+ this.explicitTypes = this.schema.compiledExplicit;
+ this.tag = null;
+ this.result = "";
+ this.duplicates = [];
+ this.usedDuplicates = null;
+ }
+ __name(State, "State");
+ function indentString(string3, spaces) {
+ var ind = common.repeat(" ", spaces), position5 = 0, next3 = -1, result = "", line2, length2 = string3.length;
+ while (position5 < length2) {
+ next3 = string3.indexOf("\n", position5);
+ if (next3 === -1) {
+ line2 = string3.slice(position5);
+ position5 = length2;
} else {
- options2["lineColor" + i2] = darken$1(options2["lineColor" + i2], 20);
+ line2 = string3.slice(position5, next3 + 1);
+ position5 = next3 + 1;
}
+ if (line2.length && line2 !== "\n") result += ind;
+ result += line2;
}
- for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
- const sw = "" + (17 - 3 * i2);
- sections2 += `
- .section-${i2 - 1} rect, .section-${i2 - 1} path, .section-${i2 - 1} circle, .section-${i2 - 1} polygon, .section-${i2 - 1} path {
- fill: ${options2["cScale" + i2]};
+ return result;
+ }
+ __name(indentString, "indentString");
+ function generateNextLine(state5, level) {
+ return "\n" + common.repeat(" ", state5.indent * level);
+ }
+ __name(generateNextLine, "generateNextLine");
+ function testImplicitResolving(state5, str2) {
+ var index, length2, type3;
+ for (index = 0, length2 = state5.implicitTypes.length; index < length2; index += 1) {
+ type3 = state5.implicitTypes[index];
+ if (type3.resolve(str2)) {
+ return true;
+ }
}
- .section-${i2 - 1} text {
- fill: ${options2["cScaleLabel" + i2]};
+ return false;
+ }
+ __name(testImplicitResolving, "testImplicitResolving");
+ function isWhitespace2(c3) {
+ return c3 === CHAR_SPACE || c3 === CHAR_TAB;
+ }
+ __name(isWhitespace2, "isWhitespace");
+ function isPrintable(c3) {
+ return 32 <= c3 && c3 <= 126 || 161 <= c3 && c3 <= 55295 && c3 !== 8232 && c3 !== 8233 || 57344 <= c3 && c3 <= 65533 && c3 !== CHAR_BOM || 65536 <= c3 && c3 <= 1114111;
+ }
+ __name(isPrintable, "isPrintable");
+ function isNsCharOrWhitespace(c3) {
+ return isPrintable(c3) && c3 !== CHAR_BOM && c3 !== CHAR_CARRIAGE_RETURN && c3 !== CHAR_LINE_FEED;
+ }
+ __name(isNsCharOrWhitespace, "isNsCharOrWhitespace");
+ function isPlainSafe(c3, prev2, inblock) {
+ var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c3);
+ var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace2(c3);
+ return (
+ // ns-plain-safe
+ (inblock ? (
+ // c = flow-in
+ cIsNsCharOrWhitespace
+ ) : cIsNsCharOrWhitespace && c3 !== CHAR_COMMA && c3 !== CHAR_LEFT_SQUARE_BRACKET && c3 !== CHAR_RIGHT_SQUARE_BRACKET && c3 !== CHAR_LEFT_CURLY_BRACKET && c3 !== CHAR_RIGHT_CURLY_BRACKET) && c3 !== CHAR_SHARP && !(prev2 === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev2) && !isWhitespace2(prev2) && c3 === CHAR_SHARP || prev2 === CHAR_COLON && cIsNsChar
+ );
+ }
+ __name(isPlainSafe, "isPlainSafe");
+ function isPlainSafeFirst(c3) {
+ return isPrintable(c3) && c3 !== CHAR_BOM && !isWhitespace2(c3) && c3 !== CHAR_MINUS && c3 !== CHAR_QUESTION && c3 !== CHAR_COLON && c3 !== CHAR_COMMA && c3 !== CHAR_LEFT_SQUARE_BRACKET && c3 !== CHAR_RIGHT_SQUARE_BRACKET && c3 !== CHAR_LEFT_CURLY_BRACKET && c3 !== CHAR_RIGHT_CURLY_BRACKET && c3 !== CHAR_SHARP && c3 !== CHAR_AMPERSAND && c3 !== CHAR_ASTERISK && c3 !== CHAR_EXCLAMATION && c3 !== CHAR_VERTICAL_LINE && c3 !== CHAR_EQUALS && c3 !== CHAR_GREATER_THAN && c3 !== CHAR_SINGLE_QUOTE && c3 !== CHAR_DOUBLE_QUOTE && c3 !== CHAR_PERCENT && c3 !== CHAR_COMMERCIAL_AT && c3 !== CHAR_GRAVE_ACCENT;
+ }
+ __name(isPlainSafeFirst, "isPlainSafeFirst");
+ function isPlainSafeLast(c3) {
+ return !isWhitespace2(c3) && c3 !== CHAR_COLON;
+ }
+ __name(isPlainSafeLast, "isPlainSafeLast");
+ function codePointAt(string3, pos) {
+ var first3 = string3.charCodeAt(pos), second2;
+ if (first3 >= 55296 && first3 <= 56319 && pos + 1 < string3.length) {
+ second2 = string3.charCodeAt(pos + 1);
+ if (second2 >= 56320 && second2 <= 57343) {
+ return (first3 - 55296) * 1024 + second2 - 56320 + 65536;
+ }
+ }
+ return first3;
+ }
+ __name(codePointAt, "codePointAt");
+ function needIndentIndicator(string3) {
+ var leadingSpaceRe = /^\n* /;
+ return leadingSpaceRe.test(string3);
+ }
+ __name(needIndentIndicator, "needIndentIndicator");
+ var STYLE_PLAIN = 1;
+ var STYLE_SINGLE = 2;
+ var STYLE_LITERAL = 3;
+ var STYLE_FOLDED = 4;
+ var STYLE_DOUBLE = 5;
+ function chooseScalarStyle(string3, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {
+ var i2;
+ var char2 = 0;
+ var prevChar = null;
+ var hasLineBreak = false;
+ var hasFoldableLine = false;
+ var shouldTrackWidth = lineWidth !== -1;
+ var previousLineBreak = -1;
+ var plain = isPlainSafeFirst(codePointAt(string3, 0)) && isPlainSafeLast(codePointAt(string3, string3.length - 1));
+ if (singleLineOnly || forceQuotes) {
+ for (i2 = 0; i2 < string3.length; char2 >= 65536 ? i2 += 2 : i2++) {
+ char2 = codePointAt(string3, i2);
+ if (!isPrintable(char2)) {
+ return STYLE_DOUBLE;
+ }
+ plain = plain && isPlainSafe(char2, prevChar, inblock);
+ prevChar = char2;
+ }
+ } else {
+ for (i2 = 0; i2 < string3.length; char2 >= 65536 ? i2 += 2 : i2++) {
+ char2 = codePointAt(string3, i2);
+ if (char2 === CHAR_LINE_FEED) {
+ hasLineBreak = true;
+ if (shouldTrackWidth) {
+ hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.
+ i2 - previousLineBreak - 1 > lineWidth && string3[previousLineBreak + 1] !== " ";
+ previousLineBreak = i2;
+ }
+ } else if (!isPrintable(char2)) {
+ return STYLE_DOUBLE;
+ }
+ plain = plain && isPlainSafe(char2, prevChar, inblock);
+ prevChar = char2;
+ }
+ hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i2 - previousLineBreak - 1 > lineWidth && string3[previousLineBreak + 1] !== " ");
+ }
+ if (!hasLineBreak && !hasFoldableLine) {
+ if (plain && !forceQuotes && !testAmbiguousType(string3)) {
+ return STYLE_PLAIN;
+ }
+ return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
+ }
+ if (indentPerLevel > 9 && needIndentIndicator(string3)) {
+ return STYLE_DOUBLE;
+ }
+ if (!forceQuotes) {
+ return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
+ }
+ return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
+ }
+ __name(chooseScalarStyle, "chooseScalarStyle");
+ function writeScalar(state5, string3, level, iskey, inblock) {
+ state5.dump = function() {
+ if (string3.length === 0) {
+ return state5.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
+ }
+ if (!state5.noCompatMode) {
+ if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string3) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string3)) {
+ return state5.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string3 + '"' : "'" + string3 + "'";
+ }
+ }
+ var indent = state5.indent * Math.max(1, level);
+ var lineWidth = state5.lineWidth === -1 ? -1 : Math.max(Math.min(state5.lineWidth, 40), state5.lineWidth - indent);
+ var singleLineOnly = iskey || state5.flowLevel > -1 && level >= state5.flowLevel;
+ function testAmbiguity(string4) {
+ return testImplicitResolving(state5, string4);
+ }
+ __name(testAmbiguity, "testAmbiguity");
+ switch (chooseScalarStyle(
+ string3,
+ singleLineOnly,
+ state5.indent,
+ lineWidth,
+ testAmbiguity,
+ state5.quotingType,
+ state5.forceQuotes && !iskey,
+ inblock
+ )) {
+ case STYLE_PLAIN:
+ return string3;
+ case STYLE_SINGLE:
+ return "'" + string3.replace(/'/g, "''") + "'";
+ case STYLE_LITERAL:
+ return "|" + blockHeader(string3, state5.indent) + dropEndingNewline(indentString(string3, indent));
+ case STYLE_FOLDED:
+ return ">" + blockHeader(string3, state5.indent) + dropEndingNewline(indentString(foldString(string3, lineWidth), indent));
+ case STYLE_DOUBLE:
+ return '"' + escapeString(string3) + '"';
+ default:
+ throw new exception("impossible error: invalid scalar style");
+ }
+ }();
+ }
+ __name(writeScalar, "writeScalar");
+ function blockHeader(string3, indentPerLevel) {
+ var indentIndicator = needIndentIndicator(string3) ? String(indentPerLevel) : "";
+ var clip = string3[string3.length - 1] === "\n";
+ var keep = clip && (string3[string3.length - 2] === "\n" || string3 === "\n");
+ var chomp = keep ? "+" : clip ? "" : "-";
+ return indentIndicator + chomp + "\n";
+ }
+ __name(blockHeader, "blockHeader");
+ function dropEndingNewline(string3) {
+ return string3[string3.length - 1] === "\n" ? string3.slice(0, -1) : string3;
+ }
+ __name(dropEndingNewline, "dropEndingNewline");
+ function foldString(string3, width3) {
+ var lineRe = /(\n+)([^\n]*)/g;
+ var result = function() {
+ var nextLF = string3.indexOf("\n");
+ nextLF = nextLF !== -1 ? nextLF : string3.length;
+ lineRe.lastIndex = nextLF;
+ return foldLine(string3.slice(0, nextLF), width3);
+ }();
+ var prevMoreIndented = string3[0] === "\n" || string3[0] === " ";
+ var moreIndented;
+ var match2;
+ while (match2 = lineRe.exec(string3)) {
+ var prefix = match2[1], line2 = match2[2];
+ moreIndented = line2[0] === " ";
+ result += prefix + (!prevMoreIndented && !moreIndented && line2 !== "" ? "\n" : "") + foldLine(line2, width3);
+ prevMoreIndented = moreIndented;
}
- .node-icon-${i2 - 1} {
- font-size: 40px;
- color: ${options2["cScaleLabel" + i2]};
+ return result;
+ }
+ __name(foldString, "foldString");
+ function foldLine(line2, width3) {
+ if (line2 === "" || line2[0] === " ") return line2;
+ var breakRe = / [^ ]/g;
+ var match2;
+ var start3 = 0, end2, curr = 0, next3 = 0;
+ var result = "";
+ while (match2 = breakRe.exec(line2)) {
+ next3 = match2.index;
+ if (next3 - start3 > width3) {
+ end2 = curr > start3 ? curr : next3;
+ result += "\n" + line2.slice(start3, end2);
+ start3 = end2 + 1;
+ }
+ curr = next3;
+ }
+ result += "\n";
+ if (line2.length - start3 > width3 && curr > start3) {
+ result += line2.slice(start3, curr) + "\n" + line2.slice(curr + 1);
+ } else {
+ result += line2.slice(start3);
+ }
+ return result.slice(1);
+ }
+ __name(foldLine, "foldLine");
+ function escapeString(string3) {
+ var result = "";
+ var char2 = 0;
+ var escapeSeq;
+ for (var i2 = 0; i2 < string3.length; char2 >= 65536 ? i2 += 2 : i2++) {
+ char2 = codePointAt(string3, i2);
+ escapeSeq = ESCAPE_SEQUENCES[char2];
+ if (!escapeSeq && isPrintable(char2)) {
+ result += string3[i2];
+ if (char2 >= 65536) result += string3[i2 + 1];
+ } else {
+ result += escapeSeq || encodeHex(char2);
+ }
}
- .section-edge-${i2 - 1}{
- stroke: ${options2["cScale" + i2]};
+ return result;
+ }
+ __name(escapeString, "escapeString");
+ function writeFlowSequence(state5, level, object3) {
+ var _result = "", _tag2 = state5.tag, index, length2, value2;
+ for (index = 0, length2 = object3.length; index < length2; index += 1) {
+ value2 = object3[index];
+ if (state5.replacer) {
+ value2 = state5.replacer.call(object3, String(index), value2);
+ }
+ if (writeNode(state5, level, value2, false, false) || typeof value2 === "undefined" && writeNode(state5, level, null, false, false)) {
+ if (_result !== "") _result += "," + (!state5.condenseFlow ? " " : "");
+ _result += state5.dump;
+ }
}
- .edge-depth-${i2 - 1}{
- stroke-width: ${sw};
+ state5.tag = _tag2;
+ state5.dump = "[" + _result + "]";
+ }
+ __name(writeFlowSequence, "writeFlowSequence");
+ function writeBlockSequence(state5, level, object3, compact2) {
+ var _result = "", _tag2 = state5.tag, index, length2, value2;
+ for (index = 0, length2 = object3.length; index < length2; index += 1) {
+ value2 = object3[index];
+ if (state5.replacer) {
+ value2 = state5.replacer.call(object3, String(index), value2);
+ }
+ if (writeNode(state5, level + 1, value2, true, true, false, true) || typeof value2 === "undefined" && writeNode(state5, level + 1, null, true, true, false, true)) {
+ if (!compact2 || _result !== "") {
+ _result += generateNextLine(state5, level);
+ }
+ if (state5.dump && CHAR_LINE_FEED === state5.dump.charCodeAt(0)) {
+ _result += "-";
+ } else {
+ _result += "- ";
+ }
+ _result += state5.dump;
+ }
}
- .section-${i2 - 1} line {
- stroke: ${options2["cScaleInv" + i2]} ;
- stroke-width: 3;
+ state5.tag = _tag2;
+ state5.dump = _result || "[]";
+ }
+ __name(writeBlockSequence, "writeBlockSequence");
+ function writeFlowMapping(state5, level, object3) {
+ var _result = "", _tag2 = state5.tag, objectKeyList = Object.keys(object3), index, length2, objectKey, objectValue, pairBuffer;
+ for (index = 0, length2 = objectKeyList.length; index < length2; index += 1) {
+ pairBuffer = "";
+ if (_result !== "") pairBuffer += ", ";
+ if (state5.condenseFlow) pairBuffer += '"';
+ objectKey = objectKeyList[index];
+ objectValue = object3[objectKey];
+ if (state5.replacer) {
+ objectValue = state5.replacer.call(object3, objectKey, objectValue);
+ }
+ if (!writeNode(state5, level, objectKey, false, false)) {
+ continue;
+ }
+ if (state5.dump.length > 1024) pairBuffer += "? ";
+ pairBuffer += state5.dump + (state5.condenseFlow ? '"' : "") + ":" + (state5.condenseFlow ? "" : " ");
+ if (!writeNode(state5, level, objectValue, false, false)) {
+ continue;
+ }
+ pairBuffer += state5.dump;
+ _result += pairBuffer;
+ }
+ state5.tag = _tag2;
+ state5.dump = "{" + _result + "}";
+ }
+ __name(writeFlowMapping, "writeFlowMapping");
+ function writeBlockMapping(state5, level, object3, compact2) {
+ var _result = "", _tag2 = state5.tag, objectKeyList = Object.keys(object3), index, length2, objectKey, objectValue, explicitPair, pairBuffer;
+ if (state5.sortKeys === true) {
+ objectKeyList.sort();
+ } else if (typeof state5.sortKeys === "function") {
+ objectKeyList.sort(state5.sortKeys);
+ } else if (state5.sortKeys) {
+ throw new exception("sortKeys must be a boolean or a function");
+ }
+ for (index = 0, length2 = objectKeyList.length; index < length2; index += 1) {
+ pairBuffer = "";
+ if (!compact2 || _result !== "") {
+ pairBuffer += generateNextLine(state5, level);
+ }
+ objectKey = objectKeyList[index];
+ objectValue = object3[objectKey];
+ if (state5.replacer) {
+ objectValue = state5.replacer.call(object3, objectKey, objectValue);
+ }
+ if (!writeNode(state5, level + 1, objectKey, true, true, true)) {
+ continue;
+ }
+ explicitPair = state5.tag !== null && state5.tag !== "?" || state5.dump && state5.dump.length > 1024;
+ if (explicitPair) {
+ if (state5.dump && CHAR_LINE_FEED === state5.dump.charCodeAt(0)) {
+ pairBuffer += "?";
+ } else {
+ pairBuffer += "? ";
+ }
+ }
+ pairBuffer += state5.dump;
+ if (explicitPair) {
+ pairBuffer += generateNextLine(state5, level);
+ }
+ if (!writeNode(state5, level + 1, objectValue, true, explicitPair)) {
+ continue;
+ }
+ if (state5.dump && CHAR_LINE_FEED === state5.dump.charCodeAt(0)) {
+ pairBuffer += ":";
+ } else {
+ pairBuffer += ": ";
+ }
+ pairBuffer += state5.dump;
+ _result += pairBuffer;
+ }
+ state5.tag = _tag2;
+ state5.dump = _result || "{}";
+ }
+ __name(writeBlockMapping, "writeBlockMapping");
+ function detectType2(state5, object3, explicit) {
+ var _result, typeList, index, length2, type3, style3;
+ typeList = explicit ? state5.explicitTypes : state5.implicitTypes;
+ for (index = 0, length2 = typeList.length; index < length2; index += 1) {
+ type3 = typeList[index];
+ if ((type3.instanceOf || type3.predicate) && (!type3.instanceOf || typeof object3 === "object" && object3 instanceof type3.instanceOf) && (!type3.predicate || type3.predicate(object3))) {
+ if (explicit) {
+ if (type3.multi && type3.representName) {
+ state5.tag = type3.representName(object3);
+ } else {
+ state5.tag = type3.tag;
+ }
+ } else {
+ state5.tag = "?";
+ }
+ if (type3.represent) {
+ style3 = state5.styleMap[type3.tag] || type3.defaultStyle;
+ if (_toString.call(type3.represent) === "[object Function]") {
+ _result = type3.represent(object3, style3);
+ } else if (_hasOwnProperty.call(type3.represent, style3)) {
+ _result = type3.represent[style3](object3, style3);
+ } else {
+ throw new exception("!<" + type3.tag + '> tag resolver accepts not "' + style3 + '" style');
+ }
+ state5.dump = _result;
+ }
+ return true;
+ }
}
-
- .disabled, .disabled circle, .disabled text {
- fill: lightgray;
+ return false;
+ }
+ __name(detectType2, "detectType");
+ function writeNode(state5, level, object3, block3, compact2, iskey, isblockseq) {
+ state5.tag = null;
+ state5.dump = object3;
+ if (!detectType2(state5, object3, false)) {
+ detectType2(state5, object3, true);
+ }
+ var type3 = _toString.call(state5.dump);
+ var inblock = block3;
+ var tagStr;
+ if (block3) {
+ block3 = state5.flowLevel < 0 || state5.flowLevel > level;
+ }
+ var objectOrArray = type3 === "[object Object]" || type3 === "[object Array]", duplicateIndex, duplicate;
+ if (objectOrArray) {
+ duplicateIndex = state5.duplicates.indexOf(object3);
+ duplicate = duplicateIndex !== -1;
+ }
+ if (state5.tag !== null && state5.tag !== "?" || duplicate || state5.indent !== 2 && level > 0) {
+ compact2 = false;
+ }
+ if (duplicate && state5.usedDuplicates[duplicateIndex]) {
+ state5.dump = "*ref_" + duplicateIndex;
+ } else {
+ if (objectOrArray && duplicate && !state5.usedDuplicates[duplicateIndex]) {
+ state5.usedDuplicates[duplicateIndex] = true;
+ }
+ if (type3 === "[object Object]") {
+ if (block3 && Object.keys(state5.dump).length !== 0) {
+ writeBlockMapping(state5, level, state5.dump, compact2);
+ if (duplicate) {
+ state5.dump = "&ref_" + duplicateIndex + state5.dump;
+ }
+ } else {
+ writeFlowMapping(state5, level, state5.dump);
+ if (duplicate) {
+ state5.dump = "&ref_" + duplicateIndex + " " + state5.dump;
+ }
+ }
+ } else if (type3 === "[object Array]") {
+ if (block3 && state5.dump.length !== 0) {
+ if (state5.noArrayIndent && !isblockseq && level > 0) {
+ writeBlockSequence(state5, level - 1, state5.dump, compact2);
+ } else {
+ writeBlockSequence(state5, level, state5.dump, compact2);
+ }
+ if (duplicate) {
+ state5.dump = "&ref_" + duplicateIndex + state5.dump;
+ }
+ } else {
+ writeFlowSequence(state5, level, state5.dump);
+ if (duplicate) {
+ state5.dump = "&ref_" + duplicateIndex + " " + state5.dump;
+ }
+ }
+ } else if (type3 === "[object String]") {
+ if (state5.tag !== "?") {
+ writeScalar(state5, state5.dump, level, iskey, inblock);
+ }
+ } else if (type3 === "[object Undefined]") {
+ return false;
+ } else {
+ if (state5.skipInvalid) return false;
+ throw new exception("unacceptable kind of an object to dump " + type3);
+ }
+ if (state5.tag !== null && state5.tag !== "?") {
+ tagStr = encodeURI(
+ state5.tag[0] === "!" ? state5.tag.slice(1) : state5.tag
+ ).replace(/!/g, "%21");
+ if (state5.tag[0] === "!") {
+ tagStr = "!" + tagStr;
+ } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") {
+ tagStr = "!!" + tagStr.slice(18);
+ } else {
+ tagStr = "!<" + tagStr + ">";
+ }
+ state5.dump = tagStr + " " + state5.dump;
+ }
}
- .disabled text {
- fill: #efefef;
+ return true;
+ }
+ __name(writeNode, "writeNode");
+ function getDuplicateReferences(object3, state5) {
+ var objects = [], duplicatesIndexes = [], index, length2;
+ inspectNode(object3, objects, duplicatesIndexes);
+ for (index = 0, length2 = duplicatesIndexes.length; index < length2; index += 1) {
+ state5.duplicates.push(objects[duplicatesIndexes[index]]);
}
- `;
+ state5.usedDuplicates = new Array(length2);
+ }
+ __name(getDuplicateReferences, "getDuplicateReferences");
+ function inspectNode(object3, objects, duplicatesIndexes) {
+ var objectKeyList, index, length2;
+ if (object3 !== null && typeof object3 === "object") {
+ index = objects.indexOf(object3);
+ if (index !== -1) {
+ if (duplicatesIndexes.indexOf(index) === -1) {
+ duplicatesIndexes.push(index);
+ }
+ } else {
+ objects.push(object3);
+ if (Array.isArray(object3)) {
+ for (index = 0, length2 = object3.length; index < length2; index += 1) {
+ inspectNode(object3[index], objects, duplicatesIndexes);
+ }
+ } else {
+ objectKeyList = Object.keys(object3);
+ for (index = 0, length2 = objectKeyList.length; index < length2; index += 1) {
+ inspectNode(object3[objectKeyList[index]], objects, duplicatesIndexes);
+ }
+ }
+ }
+ }
+ }
+ __name(inspectNode, "inspectNode");
+ function dump$1(input, options3) {
+ options3 = options3 || {};
+ var state5 = new State(options3);
+ if (!state5.noRefs) getDuplicateReferences(input, state5);
+ var value2 = input;
+ if (state5.replacer) {
+ value2 = state5.replacer.call({ "": value2 }, "", value2);
}
- return sections2;
+ if (writeNode(state5, 0, value2, true, true)) return state5.dump + "\n";
+ return "";
+ }
+ __name(dump$1, "dump$1");
+ var dump_1 = dump$1;
+ var dumper = {
+ dump: dump_1
};
- const getStyles = (options2) => `
- .edge {
- stroke-width: 3;
+ function renamed(from2, to) {
+ return function() {
+ throw new Error("Function yaml." + from2 + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default.");
+ };
}
- ${genSections(options2)}
- .section-root rect, .section-root path, .section-root circle, .section-root polygon {
- fill: ${options2.git0};
+ __name(renamed, "renamed");
+ var JSON_SCHEMA = json2;
+ var load = loader25.load;
+ var loadAll = loader25.loadAll;
+ var dump = dumper.dump;
+ var safeLoad = renamed("safeLoad", "load");
+ var safeLoadAll = renamed("safeLoadAll", "loadAll");
+ var safeDump = renamed("safeDump", "dump");
+
+ // src/diagram-api/frontmatter.ts
+ function extractFrontMatter(text2) {
+ const matches33 = text2.match(frontMatterRegex);
+ if (!matches33) {
+ return {
+ text: text2,
+ metadata: {}
+ };
+ }
+ let parsed = load(matches33[1], {
+ // To support config, we need JSON schema.
+ // https://www.yaml.org/spec/1.2/spec.html#id2803231
+ schema: JSON_SCHEMA
+ }) ?? {};
+ parsed = typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
+ const metadata = {};
+ if (parsed.displayMode) {
+ metadata.displayMode = parsed.displayMode.toString();
+ }
+ if (parsed.title) {
+ metadata.title = parsed.title.toString();
+ }
+ if (parsed.config) {
+ metadata.config = parsed.config;
+ }
+ return {
+ text: text2.slice(matches33[0].length),
+ metadata
+ };
}
- .section-root text {
- fill: ${options2.gitBranchLabel0};
+ __name(extractFrontMatter, "extractFrontMatter");
+
+ // src/preprocess.ts
+ init_utils2();
+ var cleanupText = /* @__PURE__ */ __name((code) => {
+ return code.replace(/\r\n?/g, "\n").replace(
+ /<(\w+)([^>]*)>/g,
+ (match2, tag2, attributes) => "<" + tag2 + attributes.replace(/="([^"]*)"/g, "='$1'") + ">"
+ );
+ }, "cleanupText");
+ var processFrontmatter = /* @__PURE__ */ __name((code) => {
+ const { text: text2, metadata } = extractFrontMatter(code);
+ const { displayMode: displayMode2, title: title2, config: config6 = {} } = metadata;
+ if (displayMode2) {
+ if (!config6.gantt) {
+ config6.gantt = {};
+ }
+ config6.gantt.displayMode = displayMode2;
+ }
+ return { title: title2, config: config6, text: text2 };
+ }, "processFrontmatter");
+ var processDirectives = /* @__PURE__ */ __name((code) => {
+ const initDirective = utils_default2.detectInit(code) ?? {};
+ const wrapDirectives = utils_default2.detectDirective(code, "wrap");
+ if (Array.isArray(wrapDirectives)) {
+ initDirective.wrap = wrapDirectives.some(({ type: type3 }) => type3 === "wrap");
+ } else if (wrapDirectives?.type === "wrap") {
+ initDirective.wrap = true;
+ }
+ return {
+ text: removeDirectives(code),
+ directive: initDirective
+ };
+ }, "processDirectives");
+ function preprocessDiagram(code) {
+ const cleanedCode = cleanupText(code);
+ const frontMatterResult = processFrontmatter(cleanedCode);
+ const directiveResult = processDirectives(frontMatterResult.text);
+ const config6 = cleanAndMerge(frontMatterResult.config, directiveResult.directive);
+ code = cleanupComments(directiveResult.text);
+ return {
+ code,
+ title: frontMatterResult.title,
+ config: config6
+ };
}
- .icon-container {
- height:100%;
- display: flex;
- justify-content: center;
- align-items: center;
+ __name(preprocessDiagram, "preprocessDiagram");
+
+ // src/mermaidAPI.ts
+ init_styles();
+ init_themes();
+ init_utils2();
+
+ // src/utils/base64.ts
+ function toBase64(str2) {
+ const utf8Bytes = new TextEncoder().encode(str2);
+ const utf8Str = Array.from(utf8Bytes, (byte) => String.fromCodePoint(byte)).join("");
+ return btoa(utf8Str);
}
- .edge {
- fill: none;
+ __name(toBase64, "toBase64");
+
+ // src/mermaidAPI.ts
+ var MAX_TEXTLENGTH = 5e4;
+ var MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa";
+ var SECURITY_LVL_SANDBOX = "sandbox";
+ var SECURITY_LVL_LOOSE = "loose";
+ var XMLNS_SVG_STD = "http://www.w3.org/2000/svg";
+ var XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink";
+ var XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml";
+ var IFRAME_WIDTH = "100%";
+ var IFRAME_HEIGHT = "100%";
+ var IFRAME_STYLES = "border:0;margin:0;";
+ var IFRAME_BODY_STYLE = "margin:0";
+ var IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups";
+ var IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.';
+ var DOMPURIFY_TAGS = ["foreignobject"];
+ var DOMPURIFY_ATTR = ["dominant-baseline"];
+ function processAndSetConfigs(text2) {
+ const processed2 = preprocessDiagram(text2);
+ reset();
+ addDirective(processed2.config ?? {});
+ return processed2;
}
- .mindmap-node-label {
- dy: 1em;
- alignment-baseline: middle;
- text-anchor: middle;
- dominant-baseline: middle;
- text-align: center;
+ __name(processAndSetConfigs, "processAndSetConfigs");
+ async function parse6(text2, parseOptions) {
+ addDiagrams();
+ try {
+ const { code, config: config6 } = processAndSetConfigs(text2);
+ const diagram24 = await getDiagramFromText(code);
+ return { diagramType: diagram24.type, config: config6 };
+ } catch (error3) {
+ if (parseOptions?.suppressErrors) {
+ return false;
+ }
+ throw error3;
+ }
}
-`;
- const mindmapStyles = getStyles;
- const diagram = {
- db: mindmapDb,
- renderer: mindmapRenderer,
- parser: mindmapParser,
- styles: mindmapStyles
- };
- const mindmapDefinition = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- diagram
- }, Symbol.toStringTag, { value: "Module" }));
- return mermaid;
-});
+ __name(parse6, "parse");
+ var cssImportantStyles = /* @__PURE__ */ __name((cssClass, element3, cssClasses = []) => {
+ return `
+.${cssClass} ${element3} { ${cssClasses.join(" !important; ")} !important; }`;
+ }, "cssImportantStyles");
+ var createCssStyles = /* @__PURE__ */ __name((config6, classDefs = /* @__PURE__ */ new Map()) => {
+ let cssStyles = "";
+ if (config6.themeCSS !== void 0) {
+ cssStyles += `
+${config6.themeCSS}`;
+ }
+ if (config6.fontFamily !== void 0) {
+ cssStyles += `
+:root { --mermaid-font-family: ${config6.fontFamily}}`;
+ }
+ if (config6.altFontFamily !== void 0) {
+ cssStyles += `
+:root { --mermaid-alt-font-family: ${config6.altFontFamily}}`;
+ }
+ if (classDefs instanceof Map) {
+ const htmlLabels = config6.htmlLabels ?? config6.flowchart?.htmlLabels;
+ const cssHtmlElements = ["> *", "span"];
+ const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"];
+ const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;
+ classDefs.forEach((styleClassDef) => {
+ if (!isEmpty_default(styleClassDef.styles)) {
+ cssElements.forEach((cssElement) => {
+ cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);
+ });
+ }
+ if (!isEmpty_default(styleClassDef.textStyles)) {
+ cssStyles += cssImportantStyles(
+ styleClassDef.id,
+ "tspan",
+ (styleClassDef?.textStyles || []).map((s2) => s2.replace("color", "fill"))
+ );
+ }
+ });
+ }
+ return cssStyles;
+ }, "createCssStyles");
+ var createUserStyles = /* @__PURE__ */ __name((config6, graphType, classDefs, svgId) => {
+ const userCSSstyles = createCssStyles(config6, classDefs);
+ const allStyles = styles_default(graphType, userCSSstyles, config6.themeVariables);
+ return serialize(compile(`${svgId}{${allStyles}}`), stringify);
+ }, "createUserStyles");
+ var cleanUpSvgCode = /* @__PURE__ */ __name((svgCode = "", inSandboxMode, useArrowMarkerUrls) => {
+ let cleanedUpSvg = svgCode;
+ if (!useArrowMarkerUrls && !inSandboxMode) {
+ cleanedUpSvg = cleanedUpSvg.replace(
+ /marker-end="url\([\d+./:=?A-Za-z-]*?#/g,
+ 'marker-end="url(#'
+ );
+ }
+ cleanedUpSvg = decodeEntities(cleanedUpSvg);
+ cleanedUpSvg = cleanedUpSvg.replace(/
/g, "
");
+ return cleanedUpSvg;
+ }, "cleanUpSvgCode");
+ var putIntoIFrame = /* @__PURE__ */ __name((svgCode = "", svgElement) => {
+ const height2 = svgElement?.viewBox?.baseVal?.height ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT;
+ const base64encodedSrc = toBase64(`${svgCode}`);
+ return ``;
+ }, "putIntoIFrame");
+ var appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id27, enclosingDivId, divStyle, svgXlink) => {
+ const enclosingDiv = parentRoot.append("div");
+ enclosingDiv.attr("id", enclosingDivId);
+ if (divStyle) {
+ enclosingDiv.attr("style", divStyle);
+ }
+ const svgNode2 = enclosingDiv.append("svg").attr("id", id27).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD);
+ if (svgXlink) {
+ svgNode2.attr("xmlns:xlink", svgXlink);
+ }
+ svgNode2.append("g");
+ return parentRoot;
+ }, "appendDivSvgG");
+ function sandboxedIframe(parentNode, iFrameId) {
+ return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
+ }
+ __name(sandboxedIframe, "sandboxedIframe");
+ var removeExistingElements = /* @__PURE__ */ __name((doc, id27, divId, iFrameId) => {
+ doc.getElementById(id27)?.remove();
+ doc.getElementById(divId)?.remove();
+ doc.getElementById(iFrameId)?.remove();
+ }, "removeExistingElements");
+ var render6 = /* @__PURE__ */ __name(async function(id27, text2, svgContainingElement) {
+ addDiagrams();
+ const processed2 = processAndSetConfigs(text2);
+ text2 = processed2.code;
+ const config6 = getConfig();
+ log.debug(config6);
+ if (text2.length > (config6?.maxTextSize ?? MAX_TEXTLENGTH)) {
+ text2 = MAX_TEXTLENGTH_EXCEEDED_MSG;
+ }
+ const idSelector = "#" + id27;
+ const iFrameID = "i" + id27;
+ const iFrameID_selector = "#" + iFrameID;
+ const enclosingDivID = "d" + id27;
+ const enclosingDivID_selector = "#" + enclosingDivID;
+ const removeTempElements = /* @__PURE__ */ __name(() => {
+ const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
+ const node2 = select_default2(tmpElementSelector).node();
+ if (node2 && "remove" in node2) {
+ node2.remove();
+ }
+ }, "removeTempElements");
+ let root4 = select_default2("body");
+ const isSandboxed = config6.securityLevel === SECURITY_LVL_SANDBOX;
+ const isLooseSecurityLevel = config6.securityLevel === SECURITY_LVL_LOOSE;
+ const fontFamily = config6.fontFamily;
+ if (svgContainingElement !== void 0) {
+ if (svgContainingElement) {
+ svgContainingElement.innerHTML = "";
+ }
+ if (isSandboxed) {
+ const iframe = sandboxedIframe(select_default2(svgContainingElement), iFrameID);
+ root4 = select_default2(iframe.nodes()[0].contentDocument.body);
+ root4.node().style.margin = 0;
+ } else {
+ root4 = select_default2(svgContainingElement);
+ }
+ appendDivSvgG(root4, id27, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);
+ } else {
+ removeExistingElements(document, id27, enclosingDivID, iFrameID);
+ if (isSandboxed) {
+ const iframe = sandboxedIframe(select_default2("body"), iFrameID);
+ root4 = select_default2(iframe.nodes()[0].contentDocument.body);
+ root4.node().style.margin = 0;
+ } else {
+ root4 = select_default2("body");
+ }
+ appendDivSvgG(root4, id27, enclosingDivID);
+ }
+ let diag;
+ let parseEncounteredException;
+ try {
+ diag = await Diagram.fromText(text2, { title: processed2.title });
+ } catch (error3) {
+ if (config6.suppressErrorRendering) {
+ removeTempElements();
+ throw error3;
+ }
+ diag = await Diagram.fromText("error");
+ parseEncounteredException = error3;
+ }
+ const element3 = root4.select(enclosingDivID_selector).node();
+ const diagramType = diag.type;
+ const svg = element3.firstChild;
+ const firstChild = svg.firstChild;
+ const diagramClassDefs = diag.renderer.getClasses?.(text2, diag);
+ const rules = createUserStyles(config6, diagramType, diagramClassDefs, idSelector);
+ const style1 = document.createElement("style");
+ style1.innerHTML = rules;
+ svg.insertBefore(style1, firstChild);
+ try {
+ await diag.renderer.draw(text2, id27, version2, diag);
+ } catch (e3) {
+ if (config6.suppressErrorRendering) {
+ removeTempElements();
+ } else {
+ errorRenderer_default.draw(text2, id27, version2);
+ }
+ throw e3;
+ }
+ const svgNode2 = root4.select(`${enclosingDivID_selector} svg`);
+ const a11yTitle = diag.db.getAccTitle?.();
+ const a11yDescr = diag.db.getAccDescription?.();
+ addA11yInfo(diagramType, svgNode2, a11yTitle, a11yDescr);
+ root4.select(`[id="${id27}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD);
+ let svgCode = root4.select(enclosingDivID_selector).node().innerHTML;
+ log.debug("config.arrowMarkerAbsolute", config6.arrowMarkerAbsolute);
+ svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config6.arrowMarkerAbsolute));
+ if (isSandboxed) {
+ const svgEl = root4.select(enclosingDivID_selector + " svg").node();
+ svgCode = putIntoIFrame(svgCode, svgEl);
+ } else if (!isLooseSecurityLevel) {
+ svgCode = import_dompurify2.default.sanitize(svgCode, {
+ ADD_TAGS: DOMPURIFY_TAGS,
+ ADD_ATTR: DOMPURIFY_ATTR
+ });
+ }
+ attachFunctions();
+ if (parseEncounteredException) {
+ throw parseEncounteredException;
+ }
+ removeTempElements();
+ return {
+ diagramType,
+ svg: svgCode,
+ bindFunctions: diag.db.bindFunctions
+ };
+ }, "render");
+ function initialize(userOptions = {}) {
+ const options3 = assignWithDepth_default({}, userOptions);
+ if (options3?.fontFamily && !options3.themeVariables?.fontFamily) {
+ if (!options3.themeVariables) {
+ options3.themeVariables = {};
+ }
+ options3.themeVariables.fontFamily = options3.fontFamily;
+ }
+ saveConfigFromInitialize(options3);
+ if (options3?.theme && options3.theme in themes_default) {
+ options3.themeVariables = themes_default[options3.theme].getThemeVariables(
+ options3.themeVariables
+ );
+ } else if (options3) {
+ options3.themeVariables = themes_default.default.getThemeVariables(options3.themeVariables);
+ }
+ const config6 = typeof options3 === "object" ? setSiteConfig(options3) : getSiteConfig();
+ setLogLevel(config6.logLevel);
+ addDiagrams();
+ }
+ __name(initialize, "initialize");
+ var getDiagramFromText = /* @__PURE__ */ __name((text2, metadata = {}) => {
+ const { code } = preprocessDiagram(text2);
+ return Diagram.fromText(code, metadata);
+ }, "getDiagramFromText");
+ function addA11yInfo(diagramType, svgNode2, a11yTitle, a11yDescr) {
+ setA11yDiagramInfo(svgNode2, diagramType);
+ addSVGa11yTitleDescription(svgNode2, a11yTitle, a11yDescr, svgNode2.attr("id"));
+ }
+ __name(addA11yInfo, "addA11yInfo");
+ var mermaidAPI = Object.freeze({
+ render: render6,
+ parse: parse6,
+ getDiagramFromText,
+ initialize,
+ getConfig,
+ setConfig,
+ getSiteConfig,
+ updateSiteConfig,
+ reset: /* @__PURE__ */ __name(() => {
+ reset();
+ }, "reset"),
+ globalReset: /* @__PURE__ */ __name(() => {
+ reset(defaultConfig);
+ }, "globalReset"),
+ defaultConfig
+ });
+ setLogLevel(getConfig().logLevel);
+ reset(getConfig());
+
+ // src/mermaid.ts
+ init_render();
+ init_utils2();
+ var handleError = /* @__PURE__ */ __name((error3, errors, parseError) => {
+ log.warn(error3);
+ if (isDetailedError(error3)) {
+ if (parseError) {
+ parseError(error3.str, error3.hash);
+ }
+ errors.push({ ...error3, message: error3.str, error: error3 });
+ } else {
+ if (parseError) {
+ parseError(error3);
+ }
+ if (error3 instanceof Error) {
+ errors.push({
+ str: error3.message,
+ message: error3.message,
+ hash: error3.name,
+ error: error3
+ });
+ }
+ }
+ }, "handleError");
+ var run4 = /* @__PURE__ */ __name(async function(options3 = {
+ querySelector: ".mermaid"
+ }) {
+ try {
+ await runThrowsErrors(options3);
+ } catch (e3) {
+ if (isDetailedError(e3)) {
+ log.error(e3.str);
+ }
+ if (mermaid.parseError) {
+ mermaid.parseError(e3);
+ }
+ if (!options3.suppressErrors) {
+ log.error("Use the suppressErrors option to suppress these errors");
+ throw e3;
+ }
+ }
+ }, "run");
+ var runThrowsErrors = /* @__PURE__ */ __name(async function({ postRenderCallback, querySelector, nodes: nodes6 } = {
+ querySelector: ".mermaid"
+ }) {
+ const conf8 = mermaidAPI.getConfig();
+ log.debug(`${!postRenderCallback ? "No " : ""}Callback function found`);
+ let nodesToProcess;
+ if (nodes6) {
+ nodesToProcess = nodes6;
+ } else if (querySelector) {
+ nodesToProcess = document.querySelectorAll(querySelector);
+ } else {
+ throw new Error("Nodes and querySelector are both undefined");
+ }
+ log.debug(`Found ${nodesToProcess.length} diagrams`);
+ if (conf8?.startOnLoad !== void 0) {
+ log.debug("Start On Load: " + conf8?.startOnLoad);
+ mermaidAPI.updateSiteConfig({ startOnLoad: conf8?.startOnLoad });
+ }
+ const idGenerator = new utils_default2.InitIDGenerator(conf8.deterministicIds, conf8.deterministicIDSeed);
+ let txt;
+ const errors = [];
+ for (const element3 of Array.from(nodesToProcess)) {
+ log.info("Rendering diagram: " + element3.id);
+ if (element3.getAttribute("data-processed")) {
+ continue;
+ }
+ element3.setAttribute("data-processed", "true");
+ const id27 = `mermaid-${idGenerator.next()}`;
+ txt = element3.innerHTML;
+ txt = dedent(utils_default2.entityDecode(txt)).trim().replace(/
/gi, "
");
+ const init3 = utils_default2.detectInit(txt);
+ if (init3) {
+ log.debug("Detected early reinit: ", init3);
+ }
+ try {
+ const { svg, bindFunctions: bindFunctions4 } = await render7(id27, txt, element3);
+ element3.innerHTML = svg;
+ if (postRenderCallback) {
+ await postRenderCallback(id27);
+ }
+ if (bindFunctions4) {
+ bindFunctions4(element3);
+ }
+ } catch (error3) {
+ handleError(error3, errors, mermaid.parseError);
+ }
+ }
+ if (errors.length > 0) {
+ throw errors[0];
+ }
+ }, "runThrowsErrors");
+ var initialize2 = /* @__PURE__ */ __name(function(config6) {
+ mermaidAPI.initialize(config6);
+ }, "initialize");
+ var init2 = /* @__PURE__ */ __name(async function(config6, nodes6, callback) {
+ log.warn("mermaid.init is deprecated. Please use run instead.");
+ if (config6) {
+ initialize2(config6);
+ }
+ const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" };
+ if (typeof nodes6 === "string") {
+ runOptions.querySelector = nodes6;
+ } else if (nodes6) {
+ if (nodes6 instanceof HTMLElement) {
+ runOptions.nodes = [nodes6];
+ } else {
+ runOptions.nodes = nodes6;
+ }
+ }
+ await run4(runOptions);
+ }, "init");
+ var registerExternalDiagrams = /* @__PURE__ */ __name(async (diagrams2, {
+ lazyLoad = true
+ } = {}) => {
+ addDiagrams();
+ registerLazyLoadedDiagrams(...diagrams2);
+ if (lazyLoad === false) {
+ await loadRegisteredDiagrams();
+ }
+ }, "registerExternalDiagrams");
+ var contentLoaded = /* @__PURE__ */ __name(function() {
+ if (mermaid.startOnLoad) {
+ const { startOnLoad } = mermaidAPI.getConfig();
+ if (startOnLoad) {
+ mermaid.run().catch((err) => log.error("Mermaid failed to initialize", err));
+ }
+ }
+ }, "contentLoaded");
+ if (typeof document !== "undefined") {
+ window.addEventListener("load", contentLoaded, false);
+ }
+ var setParseErrorHandler = /* @__PURE__ */ __name(function(parseErrorHandler) {
+ mermaid.parseError = parseErrorHandler;
+ }, "setParseErrorHandler");
+ var executionQueue = [];
+ var executionQueueRunning = false;
+ var executeQueue = /* @__PURE__ */ __name(async () => {
+ if (executionQueueRunning) {
+ return;
+ }
+ executionQueueRunning = true;
+ while (executionQueue.length > 0) {
+ const f3 = executionQueue.shift();
+ if (f3) {
+ try {
+ await f3();
+ } catch (e3) {
+ log.error("Error executing queue", e3);
+ }
+ }
+ }
+ executionQueueRunning = false;
+ }, "executeQueue");
+ var parse7 = /* @__PURE__ */ __name(async (text2, parseOptions) => {
+ return new Promise((resolve3, reject3) => {
+ const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {
+ mermaidAPI.parse(text2, parseOptions).then(
+ (r2) => {
+ res(r2);
+ resolve3(r2);
+ },
+ (e3) => {
+ log.error("Error parsing", e3);
+ mermaid.parseError?.(e3);
+ rej(e3);
+ reject3(e3);
+ }
+ );
+ }), "performCall");
+ executionQueue.push(performCall);
+ executeQueue().catch(reject3);
+ });
+ }, "parse");
+ var render7 = /* @__PURE__ */ __name((id27, text2, container2) => {
+ return new Promise((resolve3, reject3) => {
+ const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {
+ mermaidAPI.render(id27, text2, container2).then(
+ (r2) => {
+ res(r2);
+ resolve3(r2);
+ },
+ (e3) => {
+ log.error("Error parsing", e3);
+ mermaid.parseError?.(e3);
+ rej(e3);
+ reject3(e3);
+ }
+ );
+ }), "performCall");
+ executionQueue.push(performCall);
+ executeQueue().catch(reject3);
+ });
+ }, "render");
+ var mermaid = {
+ startOnLoad: true,
+ mermaidAPI,
+ parse: parse7,
+ render: render7,
+ init: init2,
+ run: run4,
+ registerExternalDiagrams,
+ registerLayoutLoaders,
+ initialize: initialize2,
+ parseError: void 0,
+ contentLoaded,
+ setParseErrorHandler,
+ detectType,
+ registerIconPacks
+ };
+ var mermaid_default = mermaid;
+ return __toCommonJS(mermaid_exports);
+})();
+/*! Check if previously processed */
+/*!
+ * Wait for document loaded before starting the execution
+ */
+/*! Bundled license information:
+
+dompurify/dist/purify.js:
+ (*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE *)
+
+lodash-es/lodash.js:
+ (**
+ * @license
+ * Lodash (Custom Build)
+ * Build: `lodash modularize exports="es" -o ./`
+ * Copyright OpenJS Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ *)
+
+cytoscape/dist/cytoscape.esm.mjs:
+ (*!
+ Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+ Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+ Licensed under The MIT License (http://opensource.org/licenses/MIT)
+ *)
+ (*!
+ Event object based on jQuery events, MIT license
+
+ https://jquery.org/license/
+ https://tldrlegal.com/license/mit-license
+ https://github.com/jquery/jquery/blob/master/src/event.js
+ *)
+ (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
+ (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
+
+js-yaml/dist/js-yaml.mjs:
+ (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
+*/
+globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default;
diff --git a/src/resources/formats/html/mermaid/mermaid.min.js b/src/resources/formats/html/mermaid/mermaid.min.js
index 367f2e01eb..9f2882748c 100644
--- a/src/resources/formats/html/mermaid/mermaid.min.js
+++ b/src/resources/formats/html/mermaid/mermaid.min.js
@@ -1,43 +1,293 @@
-(function(mN,cA){typeof exports=="object"&&typeof module<"u"?module.exports=cA():typeof define=="function"&&define.amd?define(cA):(mN=typeof globalThis<"u"?globalThis:mN||self,mN.mermaid=cA())})(this,function(){"use strict";function mN(i){for(var a=[],f=1;f=f?a:""+Array(f+1-w.length).join(p)+a},a5t=function(a){var f=-a.utcOffset(),p=Math.abs(f),w=Math.floor(p/60),y=p%60;return(f<=0?"+":"-")+Ffe(w,2,"0")+":"+Ffe(y,2,"0")},o5t=function i(a,f){if(a.date()1)return i(b[0])}else{var E=a.name;NE[E]=a,w=E}return!p&&w&&(kN=w),w||!p&&kN},ru=function(a,f){if(jfe(a))return a.clone();var p=typeof f=="object"?f:{};return p.date=a,p.args=arguments,new cU(p)},f5t=function(a,f){return ru(a,{locale:f.$L,utc:f.$u,x:f.$x,$offset:f.$offset})},tl=h5t;tl.l=oU,tl.i=jfe,tl.w=f5t;var d5t=function(a){var f=a.date,p=a.utc;if(f===null)return new Date(NaN);if(tl.u(f))return new Date;if(f instanceof Date)return new Date(f);if(typeof f=="string"&&!/Z$/i.test(f)){var w=f.match(r5t);if(w){var y=w[2]-1||0,b=(w[7]||"0").substring(0,3);return p?new Date(Date.UTC(w[1],y,w[3]||1,w[4]||0,w[5]||0,w[6]||0,b)):new Date(w[1],y,w[3]||1,w[4]||0,w[5]||0,w[6]||0,b)}}return new Date(f)},cU=function(){function i(f){this.$L=oU(f.locale,null,!0),this.parse(f)}var a=i.prototype;return a.parse=function(p){this.$d=d5t(p),this.$x=p.x||{},this.init()},a.init=function(){var p=this.$d;this.$y=p.getFullYear(),this.$M=p.getMonth(),this.$D=p.getDate(),this.$W=p.getDay(),this.$H=p.getHours(),this.$m=p.getMinutes(),this.$s=p.getSeconds(),this.$ms=p.getMilliseconds()},a.$utils=function(){return tl},a.isValid=function(){return this.$d.toString()!==yLe},a.isSame=function(p,w){var y=ru(p);return this.startOf(w)<=y&&y<=this.endOf(w)},a.isAfter=function(p,w){return ru(p){},debug:(...i)=>{},info:(...i)=>{},warn:(...i)=>{},error:(...i)=>{},fatal:(...i)=>{}},$fe=function(i="fatal"){let a=c5.fatal;typeof i=="string"?(i=i.toLowerCase(),i in c5&&(a=c5[i])):typeof i=="number"&&(a=i),Fe.trace=()=>{},Fe.debug=()=>{},Fe.info=()=>{},Fe.warn=()=>{},Fe.error=()=>{},Fe.fatal=()=>{},a<=c5.fatal&&(Fe.fatal=console.error?console.error.bind(console,Gb("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Gb("FATAL"))),a<=c5.error&&(Fe.error=console.error?console.error.bind(console,Gb("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Gb("ERROR"))),a<=c5.warn&&(Fe.warn=console.warn?console.warn.bind(console,Gb("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Gb("WARN"))),a<=c5.info&&(Fe.info=console.info?console.info.bind(console,Gb("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Gb("INFO"))),a<=c5.debug&&(Fe.debug=console.debug?console.debug.bind(console,Gb("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Gb("DEBUG"))),a<=c5.trace&&(Fe.trace=console.debug?console.debug.bind(console,Gb("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Gb("TRACE")))},Gb=i=>`%c${ru().format("ss.SSS")} : ${i} : `;var Wk=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function xLe(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Hfe={};Object.defineProperty(Hfe,"__esModule",{value:!0});var u5=Hfe.sanitizeUrl=void 0,g5t=/^([^\w]*)(javascript|data|vbscript)/im,p5t=/(\w+)(^\w|;)?/g,b5t=/&(newline|tab);/gi,v5t=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,w5t=/^.+(:|:)/gim,m5t=[".","/"];function y5t(i){return m5t.indexOf(i[0])>-1}function k5t(i){return i.replace(p5t,function(a,f){return String.fromCharCode(f)})}function x5t(i){var a=k5t(i||"").replace(b5t,"").replace(v5t,"").trim();if(!a)return"about:blank";if(y5t(a))return a;var f=a.match(w5t);if(!f)return a;var p=f[0];return g5t.test(p)?"about:blank":a}u5=Hfe.sanitizeUrl=x5t;function uU(i,a){return i==null||a==null?NaN:ia?1:i>=a?0:NaN}function E5t(i,a){return i==null||a==null?NaN:ai?1:a>=i?0:NaN}function zfe(i){let a,f,p;i.length!==2?(a=uU,f=(E,S)=>uU(i(E),S),p=(E,S)=>i(E)-S):(a=i===uU||i===E5t?i:T5t,f=i,p=i);function w(E,S,N=0,B=E.length){if(N>>1;f(E[R],S)<0?N=R+1:B=R}while(N>>1;f(E[R],S)<=0?N=R+1:B=R}while(NN&&p(E[R-1],S)>-p(E[R],S)?R-1:R}return{left:w,center:b,right:y}}function T5t(){return 0}function _5t(i){return i===null?NaN:+i}const C5t=zfe(uU).right;zfe(_5t).center;const S5t=C5t;class ELe extends Map{constructor(a,f=M5t){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:f}}),a!=null)for(const[p,w]of a)this.set(p,w)}get(a){return super.get(TLe(this,a))}has(a){return super.has(TLe(this,a))}set(a,f){return super.set(A5t(this,a),f)}delete(a){return super.delete(L5t(this,a))}}function TLe({_intern:i,_key:a},f){const p=a(f);return i.has(p)?i.get(p):f}function A5t({_intern:i,_key:a},f){const p=a(f);return i.has(p)?i.get(p):(i.set(p,f),f)}function L5t({_intern:i,_key:a},f){const p=a(f);return i.has(p)&&(f=i.get(p),i.delete(p)),f}function M5t(i){return i!==null&&typeof i=="object"?i.valueOf():i}var Gfe=Math.sqrt(50),qfe=Math.sqrt(10),Vfe=Math.sqrt(2);function D5t(i,a,f){var p,w=-1,y,b,E;if(a=+a,i=+i,f=+f,i===a&&f>0)return[i];if((p=a0){let S=Math.round(i/E),N=Math.round(a/E);for(S*Ea&&--N,b=new Array(y=N-S+1);++wa&&--N,b=new Array(y=N-S+1);++w=0?(y>=Gfe?10:y>=qfe?5:y>=Vfe?2:1)*Math.pow(10,w):-Math.pow(10,-w)/(y>=Gfe?10:y>=qfe?5:y>=Vfe?2:1)}function Ufe(i,a,f){var p=Math.abs(a-i)/Math.max(0,f),w=Math.pow(10,Math.floor(Math.log(p)/Math.LN10)),y=p/w;return y>=Gfe?w*=10:y>=qfe?w*=5:y>=Vfe&&(w*=2),a=p)&&(f=p);else{let p=-1;for(let w of i)(w=a(w,++p,i))!=null&&(f=w)&&(f=w)}return f}function O5t(i,a){let f;if(a===void 0)for(const p of i)p!=null&&(f>p||f===void 0&&p>=p)&&(f=p);else{let p=-1;for(let w of i)(w=a(w,++p,i))!=null&&(f>w||f===void 0&&w>=w)&&(f=w)}return f}function N5t(i){return i}var lU=1,Wfe=2,Kfe=3,hU=4,CLe=1e-6;function P5t(i){return"translate("+i+",0)"}function B5t(i){return"translate(0,"+i+")"}function R5t(i){return a=>+i(a)}function F5t(i,a){return a=Math.max(0,i.bandwidth()-a*2)/2,i.round()&&(a=Math.round(a)),f=>+i(f)+a}function j5t(){return!this.__axis}function SLe(i,a){var f=[],p=null,w=null,y=6,b=6,E=3,S=typeof window<"u"&&window.devicePixelRatio>1?0:.5,N=i===lU||i===hU?-1:1,B=i===hU||i===Wfe?"x":"y",R=i===lU||i===Kfe?P5t:B5t;function j($){var V=p??(a.ticks?a.ticks.apply(a,f):a.domain()),Q=w??(a.tickFormat?a.tickFormat.apply(a,f):N5t),oe=Math.max(y,0)+E,ce=a.range(),se=+ce[0]+S,ge=+ce[ce.length-1]+S,ye=(a.bandwidth?F5t:R5t)(a.copy(),S),ke=$.selection?$.selection():$,Ae=ke.selectAll(".domain").data([null]),de=ke.selectAll(".tick").data(V,a).order(),ve=de.exit(),te=de.enter().append("g").attr("class","tick"),xe=de.select("line"),De=de.select("text");Ae=Ae.merge(Ae.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),de=de.merge(te),xe=xe.merge(te.append("line").attr("stroke","currentColor").attr(B+"2",N*y)),De=De.merge(te.append("text").attr("fill","currentColor").attr(B,N*oe).attr("dy",i===lU?"0em":i===Kfe?"0.71em":"0.32em")),$!==ke&&(Ae=Ae.transition($),de=de.transition($),xe=xe.transition($),De=De.transition($),ve=ve.transition($).attr("opacity",CLe).attr("transform",function(he){return isFinite(he=ye(he))?R(he+S):this.getAttribute("transform")}),te.attr("opacity",CLe).attr("transform",function(he){var Ie=this.parentNode.__axis;return R((Ie&&isFinite(Ie=Ie(he))?Ie:ye(he))+S)})),ve.remove(),Ae.attr("d",i===hU||i===Wfe?b?"M"+N*b+","+se+"H"+S+"V"+ge+"H"+N*b:"M"+S+","+se+"V"+ge:b?"M"+se+","+N*b+"V"+S+"H"+ge+"V"+N*b:"M"+se+","+S+"H"+ge),de.attr("opacity",1).attr("transform",function(he){return R(ye(he)+S)}),xe.attr(B+"2",N*y),De.attr(B,N*oe).text(Q),ke.filter(j5t).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",i===Wfe?"start":i===hU?"end":"middle"),ke.each(function(){this.__axis=ye})}return j.scale=function($){return arguments.length?(a=$,j):a},j.ticks=function(){return f=Array.from(arguments),j},j.tickArguments=function($){return arguments.length?(f=$==null?[]:Array.from($),j):f.slice()},j.tickValues=function($){return arguments.length?(p=$==null?null:Array.from($),j):p&&p.slice()},j.tickFormat=function($){return arguments.length?(w=$,j):w},j.tickSize=function($){return arguments.length?(y=b=+$,j):y},j.tickSizeInner=function($){return arguments.length?(y=+$,j):y},j.tickSizeOuter=function($){return arguments.length?(b=+$,j):b},j.tickPadding=function($){return arguments.length?(E=+$,j):E},j.offset=function($){return arguments.length?(S=+$,j):S},j}function $5t(i){return SLe(lU,i)}function H5t(i){return SLe(Kfe,i)}var z5t={value:()=>{}};function ALe(){for(var i=0,a=arguments.length,f={},p;i=0&&(p=f.slice(w+1),f=f.slice(0,w)),f&&!a.hasOwnProperty(f))throw new Error("unknown type: "+f);return{type:f,name:p}})}fU.prototype=ALe.prototype={constructor:fU,on:function(i,a){var f=this._,p=G5t(i+"",f),w,y=-1,b=p.length;if(arguments.length<2){for(;++y0)for(var f=new Array(w),p=0,w,y;p=0&&(a=i.slice(0,f))!=="xmlns"&&(i=i.slice(f+1)),MLe.hasOwnProperty(a)?{space:MLe[a],local:i}:i}function V5t(i){return function(){var a=this.ownerDocument,f=this.namespaceURI;return f===Yfe&&a.documentElement.namespaceURI===Yfe?a.createElement(i):a.createElementNS(f,i)}}function U5t(i){return function(){return this.ownerDocument.createElementNS(i.space,i.local)}}function DLe(i){var a=dU(i);return(a.local?U5t:V5t)(a)}function W5t(){}function Xfe(i){return i==null?W5t:function(){return this.querySelector(i)}}function K5t(i){typeof i!="function"&&(i=Xfe(i));for(var a=this._groups,f=a.length,p=new Array(f),w=0;w=ge&&(ge=se+1);!(ke=oe[ge])&&++ge=0;)(b=p[w])&&(y&&b.compareDocumentPosition(y)^4&&y.parentNode.insertBefore(b,y),y=b);return this}function w6t(i){i||(i=m6t);function a(R,j){return R&&j?i(R.__data__,j.__data__):!R-!j}for(var f=this._groups,p=f.length,w=new Array(p),y=0;ya?1:i>=a?0:NaN}function y6t(){var i=arguments[0];return arguments[0]=this,i.apply(null,arguments),this}function k6t(){return Array.from(this)}function x6t(){for(var i=this._groups,a=0,f=i.length;a1?this.each((a==null?O6t:typeof a=="function"?P6t:N6t)(i,a,f??"")):gA(this.node(),i)}function gA(i,a){return i.style.getPropertyValue(a)||RLe(i).getComputedStyle(i,null).getPropertyValue(a)}function R6t(i){return function(){delete this[i]}}function F6t(i,a){return function(){this[i]=a}}function j6t(i,a){return function(){var f=a.apply(this,arguments);f==null?delete this[i]:this[i]=f}}function $6t(i,a){return arguments.length>1?this.each((a==null?R6t:typeof a=="function"?j6t:F6t)(i,a)):this.node()[i]}function FLe(i){return i.trim().split(/^|\s+/)}function Qfe(i){return i.classList||new jLe(i)}function jLe(i){this._node=i,this._names=FLe(i.getAttribute("class")||"")}jLe.prototype={add:function(i){var a=this._names.indexOf(i);a<0&&(this._names.push(i),this._node.setAttribute("class",this._names.join(" ")))},remove:function(i){var a=this._names.indexOf(i);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(i){return this._names.indexOf(i)>=0}};function $Le(i,a){for(var f=Qfe(i),p=-1,w=a.length;++p=0&&(f=a.slice(p+1),a=a.slice(0,p)),{type:a,name:f}})}function gkt(i){return function(){var a=this.__on;if(a){for(var f=0,p=-1,w=a.length,y;f>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):f===8?vU(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):f===4?vU(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=Ekt.exec(i))?new v0(a[1],a[2],a[3],1):(a=Tkt.exec(i))?new v0(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=_kt.exec(i))?vU(a[1],a[2],a[3],a[4]):(a=Ckt.exec(i))?vU(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=Skt.exec(i))?XLe(a[1],a[2]/100,a[3]/100,1):(a=Akt.exec(i))?XLe(a[1],a[2]/100,a[3]/100,a[4]):GLe.hasOwnProperty(i)?ULe(GLe[i]):i==="transparent"?new v0(NaN,NaN,NaN,0):null}function ULe(i){return new v0(i>>16&255,i>>8&255,i&255,1)}function vU(i,a,f,p){return p<=0&&(i=a=f=NaN),new v0(i,a,f,p)}function WLe(i){return i instanceof PE||(i=BE(i)),i?(i=i.rgb(),new v0(i.r,i.g,i.b,i.opacity)):new v0}function e1e(i,a,f,p){return arguments.length===1?WLe(i):new v0(i,a,f,p??1)}function v0(i,a,f,p){this.r=+i,this.g=+a,this.b=+f,this.opacity=+p}EN(v0,e1e,pU(PE,{brighter(i){return i=i==null?bU:Math.pow(bU,i),new v0(this.r*i,this.g*i,this.b*i,this.opacity)},darker(i){return i=i==null?TN:Math.pow(TN,i),new v0(this.r*i,this.g*i,this.b*i,this.opacity)},rgb(){return this},clamp(){return new v0(RE(this.r),RE(this.g),RE(this.b),wU(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:KLe,formatHex:KLe,formatHex8:Dkt,formatRgb:YLe,toString:YLe}));function KLe(){return`#${FE(this.r)}${FE(this.g)}${FE(this.b)}`}function Dkt(){return`#${FE(this.r)}${FE(this.g)}${FE(this.b)}${FE((isNaN(this.opacity)?1:this.opacity)*255)}`}function YLe(){const i=wU(this.opacity);return`${i===1?"rgb(":"rgba("}${RE(this.r)}, ${RE(this.g)}, ${RE(this.b)}${i===1?")":`, ${i})`}`}function wU(i){return isNaN(i)?1:Math.max(0,Math.min(1,i))}function RE(i){return Math.max(0,Math.min(255,Math.round(i)||0))}function FE(i){return i=RE(i),(i<16?"0":"")+i.toString(16)}function XLe(i,a,f,p){return p<=0?i=a=f=NaN:f<=0||f>=1?i=a=NaN:a<=0&&(i=NaN),new $w(i,a,f,p)}function QLe(i){if(i instanceof $w)return new $w(i.h,i.s,i.l,i.opacity);if(i instanceof PE||(i=BE(i)),!i)return new $w;if(i instanceof $w)return i;i=i.rgb();var a=i.r/255,f=i.g/255,p=i.b/255,w=Math.min(a,f,p),y=Math.max(a,f,p),b=NaN,E=y-w,S=(y+w)/2;return E?(a===y?b=(f-p)/E+(f0&&S<1?0:b,new $w(b,E,S,i.opacity)}function Ikt(i,a,f,p){return arguments.length===1?QLe(i):new $w(i,a,f,p??1)}function $w(i,a,f,p){this.h=+i,this.s=+a,this.l=+f,this.opacity=+p}EN($w,Ikt,pU(PE,{brighter(i){return i=i==null?bU:Math.pow(bU,i),new $w(this.h,this.s,this.l*i,this.opacity)},darker(i){return i=i==null?TN:Math.pow(TN,i),new $w(this.h,this.s,this.l*i,this.opacity)},rgb(){var i=this.h%360+(this.h<0)*360,a=isNaN(i)||isNaN(this.s)?0:this.s,f=this.l,p=f+(f<.5?f:1-f)*a,w=2*f-p;return new v0(t1e(i>=240?i-240:i+120,w,p),t1e(i,w,p),t1e(i<120?i+240:i-120,w,p),this.opacity)},clamp(){return new $w(ZLe(this.h),mU(this.s),mU(this.l),wU(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const i=wU(this.opacity);return`${i===1?"hsl(":"hsla("}${ZLe(this.h)}, ${mU(this.s)*100}%, ${mU(this.l)*100}%${i===1?")":`, ${i})`}`}}));function ZLe(i){return i=(i||0)%360,i<0?i+360:i}function mU(i){return Math.max(0,Math.min(1,i||0))}function t1e(i,a,f){return(i<60?a+(f-a)*i/60:i<180?f:i<240?a+(f-a)*(240-i)/60:a)*255}const Okt=Math.PI/180,Nkt=180/Math.PI,yU=18,JLe=.96422,eMe=1,tMe=.82521,nMe=4/29,bA=6/29,rMe=3*bA*bA,Pkt=bA*bA*bA;function iMe(i){if(i instanceof Jy)return new Jy(i.l,i.a,i.b,i.opacity);if(i instanceof l5)return sMe(i);i instanceof v0||(i=WLe(i));var a=s1e(i.r),f=s1e(i.g),p=s1e(i.b),w=n1e((.2225045*a+.7168786*f+.0606169*p)/eMe),y,b;return a===f&&f===p?y=b=w:(y=n1e((.4360747*a+.3850649*f+.1430804*p)/JLe),b=n1e((.0139322*a+.0971045*f+.7141733*p)/tMe)),new Jy(116*w-16,500*(y-w),200*(w-b),i.opacity)}function Bkt(i,a,f,p){return arguments.length===1?iMe(i):new Jy(i,a,f,p??1)}function Jy(i,a,f,p){this.l=+i,this.a=+a,this.b=+f,this.opacity=+p}EN(Jy,Bkt,pU(PE,{brighter(i){return new Jy(this.l+yU*(i??1),this.a,this.b,this.opacity)},darker(i){return new Jy(this.l-yU*(i??1),this.a,this.b,this.opacity)},rgb(){var i=(this.l+16)/116,a=isNaN(this.a)?i:i+this.a/500,f=isNaN(this.b)?i:i-this.b/200;return a=JLe*r1e(a),i=eMe*r1e(i),f=tMe*r1e(f),new v0(i1e(3.1338561*a-1.6168667*i-.4906146*f),i1e(-.9787684*a+1.9161415*i+.033454*f),i1e(.0719453*a-.2289914*i+1.4052427*f),this.opacity)}}));function n1e(i){return i>Pkt?Math.pow(i,1/3):i/rMe+nMe}function r1e(i){return i>bA?i*i*i:rMe*(i-nMe)}function i1e(i){return 255*(i<=.0031308?12.92*i:1.055*Math.pow(i,1/2.4)-.055)}function s1e(i){return(i/=255)<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function Rkt(i){if(i instanceof l5)return new l5(i.h,i.c,i.l,i.opacity);if(i instanceof Jy||(i=iMe(i)),i.a===0&&i.b===0)return new l5(NaN,0()=>i;function aMe(i,a){return function(f){return i+f*a}}function Fkt(i,a,f){return i=Math.pow(i,f),a=Math.pow(a,f)-i,f=1/f,function(p){return Math.pow(i+p*a,f)}}function jkt(i,a){var f=a-i;return f?aMe(i,f>180||f<-180?f-360*Math.round(f/360):f):kU(isNaN(i)?a:i)}function $kt(i){return(i=+i)==1?CN:function(a,f){return f-a?Fkt(a,f,i):kU(isNaN(a)?f:a)}}function CN(i,a){var f=a-i;return f?aMe(i,f):kU(isNaN(i)?a:i)}const xU=function i(a){var f=$kt(a);function p(w,y){var b=f((w=e1e(w)).r,(y=e1e(y)).r),E=f(w.g,y.g),S=f(w.b,y.b),N=CN(w.opacity,y.opacity);return function(B){return w.r=b(B),w.g=E(B),w.b=S(B),w.opacity=N(B),w+""}}return p.gamma=i,p}(1);function Hkt(i,a){a||(a=[]);var f=i?Math.min(a.length,i.length):0,p=a.slice(),w;return function(y){for(w=0;wf&&(y=a.slice(f,y),E[b]?E[b]+=y:E[++b]=y),(p=p[0])===(w=w[0])?E[b]?E[b]+=w:E[++b]=w:(E[++b]=null,S.push({i:b,x:Hw(p,w)})),f=c1e.lastIndex;return f180?B+=360:B-N>180&&(N+=360),j.push({i:R.push(w(R)+"rotate(",null,p)-2,x:Hw(N,B)})):B&&R.push(w(R)+"rotate("+B+p)}function E(N,B,R,j){N!==B?j.push({i:R.push(w(R)+"skewX(",null,p)-2,x:Hw(N,B)}):B&&R.push(w(R)+"skewX("+B+p)}function S(N,B,R,j,$,V){if(N!==R||B!==j){var Q=$.push(w($)+"scale(",null,",",null,")");V.push({i:Q-4,x:Hw(N,R)},{i:Q-2,x:Hw(B,j)})}else(R!==1||j!==1)&&$.push(w($)+"scale("+R+","+j+")")}return function(N,B){var R=[],j=[];return N=i(N),B=i(B),y(N.translateX,N.translateY,B.translateX,B.translateY,R,j),b(N.rotate,B.rotate,R,j),E(N.skewX,B.skewX,R,j),S(N.scaleX,N.scaleY,B.scaleX,B.scaleY,R,j),N=B=null,function($){for(var V=-1,Q=j.length,oe;++V=0&&i._call.call(void 0,a),i=i._next;--vA}function gMe(){jE=(_U=MN.now())+CU,vA=SN=0;try{nxt()}finally{vA=0,ixt(),jE=0}}function rxt(){var i=MN.now(),a=i-_U;a>hMe&&(CU-=a,_U=i)}function ixt(){for(var i,a=TU,f,p=1/0;a;)a._call?(p>a._time&&(p=a._time),i=a,a=a._next):(f=a._next,a._next=null,a=i?i._next=f:TU=f);LN=i,f1e(p)}function f1e(i){if(!vA){SN&&(SN=clearTimeout(SN));var a=i-jE;a>24?(i<1/0&&(SN=setTimeout(gMe,i-MN.now()-CU)),AN&&(AN=clearInterval(AN))):(AN||(_U=MN.now(),AN=setInterval(rxt,hMe)),vA=1,fMe(gMe))}}function pMe(i,a,f){var p=new SU;return a=a==null?0:+a,p.restart(w=>{p.stop(),i(w+a)},a,f),p}var sxt=ALe("start","end","cancel","interrupt"),axt=[],bMe=0,vMe=1,d1e=2,AU=3,wMe=4,g1e=5,LU=6;function MU(i,a,f,p,w,y){var b=i.__transition;if(!b)i.__transition={};else if(f in b)return;oxt(i,f,{name:a,index:p,group:w,on:sxt,tween:axt,time:y.time,delay:y.delay,duration:y.duration,ease:y.ease,timer:null,state:bMe})}function p1e(i,a){var f=zw(i,a);if(f.state>bMe)throw new Error("too late; already scheduled");return f}function e3(i,a){var f=zw(i,a);if(f.state>AU)throw new Error("too late; already running");return f}function zw(i,a){var f=i.__transition;if(!f||!(f=f[a]))throw new Error("transition not found");return f}function oxt(i,a,f){var p=i.__transition,w;p[a]=f,f.timer=dMe(y,0,f.time);function y(N){f.state=vMe,f.timer.restart(b,f.delay,f.time),f.delay<=N&&b(N-f.delay)}function b(N){var B,R,j,$;if(f.state!==vMe)return S();for(B in p)if($=p[B],$.name===f.name){if($.state===AU)return pMe(b);$.state===wMe?($.state=LU,$.timer.stop(),$.on.call("interrupt",i,i.__data__,$.index,$.group),delete p[B]):+Bd1e&&p.state=0&&(a=a.slice(0,f)),!a||a==="start"})}function Fxt(i,a,f){var p,w,y=Rxt(a)?p1e:e3;return function(){var b=y(this,i),E=b.on;E!==p&&(w=(p=E).copy()).on(a,f),b.on=w}}function jxt(i,a){var f=this._id;return arguments.length<2?zw(this.node(),f).on.on(i):this.each(Fxt(f,i,a))}function $xt(i){return function(){var a=this.parentNode;for(var f in this.__transition)if(+f!==i)return;a&&a.removeChild(this)}}function Hxt(){return this.on("end.remove",$xt(this._id))}function zxt(i){var a=this._name,f=this._id;typeof i!="function"&&(i=Xfe(i));for(var p=this._groups,w=p.length,y=new Array(w),b=0;b$E)if(!(Math.abs(B*E-S*N)>$E)||!w)this._+="L"+(this._x1=i)+","+(this._y1=a);else{var j=f-y,$=p-b,V=E*E+S*S,Q=j*j+$*$,oe=Math.sqrt(V),ce=Math.sqrt(R),se=w*Math.tan((v1e-Math.acos((V+R-Q)/(2*oe*ce)))/2),ge=se/ce,ye=se/oe;Math.abs(ge-1)>$E&&(this._+="L"+(i+ge*N)+","+(a+ge*B)),this._+="A"+w+","+w+",0,0,"+ +(B*j>N*$)+","+(this._x1=i+ye*E)+","+(this._y1=a+ye*S)}},arc:function(i,a,f,p,w,y){i=+i,a=+a,f=+f,y=!!y;var b=f*Math.cos(p),E=f*Math.sin(p),S=i+b,N=a+E,B=1^y,R=y?p-w:w-p;if(f<0)throw new Error("negative radius: "+f);this._x1===null?this._+="M"+S+","+N:(Math.abs(this._x1-S)>$E||Math.abs(this._y1-N)>$E)&&(this._+="L"+S+","+N),f&&(R<0&&(R=R%w1e+w1e),R>d8t?this._+="A"+f+","+f+",0,1,"+B+","+(i-b)+","+(a-E)+"A"+f+","+f+",0,1,"+B+","+(this._x1=S)+","+(this._y1=N):R>$E&&(this._+="A"+f+","+f+",0,"+ +(R>=v1e)+","+B+","+(this._x1=i+f*Math.cos(w))+","+(this._y1=a+f*Math.sin(w))))},rect:function(i,a,f,p){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+a)+"h"+ +f+"v"+ +p+"h"+-f+"Z"},toString:function(){return this._}};function g8t(i){if(!i.ok)throw new Error(i.status+" "+i.statusText);return i.text()}function p8t(i,a){return fetch(i,a).then(g8t)}function b8t(i){return(a,f)=>p8t(a,f).then(p=>new DOMParser().parseFromString(p,i))}var v8t=b8t("image/svg+xml");function w8t(i){return Math.abs(i=Math.round(i))>=1e21?i.toLocaleString("en").replace(/,/g,""):i.toString(10)}function DU(i,a){if((f=(i=a?i.toExponential(a-1):i.toExponential()).indexOf("e"))<0)return null;var f,p=i.slice(0,f);return[p.length>1?p[0]+p.slice(2):p,+i.slice(f+1)]}function wA(i){return i=DU(Math.abs(i)),i?i[1]:NaN}function m8t(i,a){return function(f,p){for(var w=f.length,y=[],b=0,E=i[0],S=0;w>0&&E>0&&(S+E+1>p&&(E=Math.max(1,p-S)),y.push(f.substring(w-=E,w+E)),!((S+=E+1)>p));)E=i[b=(b+1)%i.length];return y.reverse().join(a)}}function y8t(i){return function(a){return a.replace(/[0-9]/g,function(f){return i[+f]})}}var k8t=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function IU(i){if(!(a=k8t.exec(i)))throw new Error("invalid format: "+i);var a;return new k1e({fill:a[1],align:a[2],sign:a[3],symbol:a[4],zero:a[5],width:a[6],comma:a[7],precision:a[8]&&a[8].slice(1),trim:a[9],type:a[10]})}IU.prototype=k1e.prototype;function k1e(i){this.fill=i.fill===void 0?" ":i.fill+"",this.align=i.align===void 0?">":i.align+"",this.sign=i.sign===void 0?"-":i.sign+"",this.symbol=i.symbol===void 0?"":i.symbol+"",this.zero=!!i.zero,this.width=i.width===void 0?void 0:+i.width,this.comma=!!i.comma,this.precision=i.precision===void 0?void 0:+i.precision,this.trim=!!i.trim,this.type=i.type===void 0?"":i.type+""}k1e.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function x8t(i){e:for(var a=i.length,f=1,p=-1,w;f0&&(p=0);break}return p>0?i.slice(0,p)+i.slice(w+1):i}var xMe;function E8t(i,a){var f=DU(i,a);if(!f)return i+"";var p=f[0],w=f[1],y=w-(xMe=Math.max(-8,Math.min(8,Math.floor(w/3)))*3)+1,b=p.length;return y===b?p:y>b?p+new Array(y-b+1).join("0"):y>0?p.slice(0,y)+"."+p.slice(y):"0."+new Array(1-y).join("0")+DU(i,Math.max(0,a+y-1))[0]}function EMe(i,a){var f=DU(i,a);if(!f)return i+"";var p=f[0],w=f[1];return w<0?"0."+new Array(-w).join("0")+p:p.length>w+1?p.slice(0,w+1)+"."+p.slice(w+1):p+new Array(w-p.length+2).join("0")}const TMe={"%":(i,a)=>(i*100).toFixed(a),b:i=>Math.round(i).toString(2),c:i=>i+"",d:w8t,e:(i,a)=>i.toExponential(a),f:(i,a)=>i.toFixed(a),g:(i,a)=>i.toPrecision(a),o:i=>Math.round(i).toString(8),p:(i,a)=>EMe(i*100,a),r:EMe,s:E8t,X:i=>Math.round(i).toString(16).toUpperCase(),x:i=>Math.round(i).toString(16)};function _Me(i){return i}var CMe=Array.prototype.map,SMe=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function T8t(i){var a=i.grouping===void 0||i.thousands===void 0?_Me:m8t(CMe.call(i.grouping,Number),i.thousands+""),f=i.currency===void 0?"":i.currency[0]+"",p=i.currency===void 0?"":i.currency[1]+"",w=i.decimal===void 0?".":i.decimal+"",y=i.numerals===void 0?_Me:y8t(CMe.call(i.numerals,String)),b=i.percent===void 0?"%":i.percent+"",E=i.minus===void 0?"−":i.minus+"",S=i.nan===void 0?"NaN":i.nan+"";function N(R){R=IU(R);var j=R.fill,$=R.align,V=R.sign,Q=R.symbol,oe=R.zero,ce=R.width,se=R.comma,ge=R.precision,ye=R.trim,ke=R.type;ke==="n"?(se=!0,ke="g"):TMe[ke]||(ge===void 0&&(ge=12),ye=!0,ke="g"),(oe||j==="0"&&$==="=")&&(oe=!0,j="0",$="=");var Ae=Q==="$"?f:Q==="#"&&/[boxX]/.test(ke)?"0"+ke.toLowerCase():"",de=Q==="$"?p:/[%p]/.test(ke)?b:"",ve=TMe[ke],te=/[defgprs%]/.test(ke);ge=ge===void 0?6:/[gprs]/.test(ke)?Math.max(1,Math.min(21,ge)):Math.max(0,Math.min(20,ge));function xe(De){var he=Ae,Ie=de,ee,rt,me;if(ke==="c")Ie=ve(De)+Ie,De="";else{De=+De;var gt=De<0||1/De<0;if(De=isNaN(De)?S:ve(Math.abs(De),ge),ye&&(De=x8t(De)),gt&&+De==0&&V!=="+"&&(gt=!1),he=(gt?V==="("?V:E:V==="-"||V==="("?"":V)+he,Ie=(ke==="s"?SMe[8+xMe/3]:"")+Ie+(gt&&V==="("?")":""),te){for(ee=-1,rt=De.length;++ee